このエントリはQiita Advent Calendar 2017 Microsoft Azureサービスいちから紹介 の23日目です。
ナレッジコミュニケーションの大柳です(@oyngtmhr)。
23日目はAzure Cognitive ServicesのComputer Vision APIです。静止画から様々な情報を抽出できます。
概要
cognitive(コグニティブ)とは日本語で「認知」を意味します。ただ機械的に認識するだけでなく、人間と同じようにモノを理解して推論し、さらに自ら学習する、という意味で使われています。
Azure Congnitive Serviceでは視覚、音声、言語、知識、検索の5つのカテゴリで複数のAPIが提供されています。今回は画像認識系のサービスの中からComputer Vision APIを紹介します。静止画や動画などから情報を抽出して認識してくれます。
使える機能について説明していきます。
Tag images based on content
画像にタグ付けします。例えば芝生に建つ家の写真であれば、grass、houseなどのタグが返ってきます。
Categorize images
86のカテゴリから適切なカテゴリを選択してくれます。例えば芝生に建つ家の写真であれば、大カテゴリがOutdoor、小カテゴリがHouseが返されます。
https://docs.microsoft.com/ja-jp/azure/cognitive-services/computer-vision/home から引用
Identify the type and quality of images
画像のタイプを選択します。クリップアートかどうか、線画(Line Drawing)かどうか、を判断してくれます。画像の前処理に使えそうです。
Detect human faces and return their coordinates
静止画から人の顔を認識して、その位置と性別、年齢を予測してくれます。
Recognize domain-specific content
あるカテゴリに特化した認識ができます。現時点で対応しているのは、著名人の顔認識(celebrity recognition)とランドマーク認識(landmark recognition)です。
Generate descriptions of the content
静止画の説明を生成してくれます。例えば、大都会のモノクロ写真を与えると「a black and white photo of a large city」が返ってきます。
Perceiving Color Schemes
色情報を抽出します。背景色、前景色、全体色、アクセントカラー(black, blue, brown, gray, green, orange, pink, purple, red, teal, white, yellow)を判別してくれます。静止画かモノクロかの判定(Black & White or not)もできます。
Flag adult content
アダルトコンテンツかを判定し、成人向け・わいせつな描写を検知することができます。
Optical Character Recognition (OCR)
OCR、つまり画像からテキストを抽出します。文字が傾いていても傾きを検知して文字を認識できます。
25言語に対応しています。対応言語は、アラビア語、簡体字中国語、繁体字中国語、チェコ語、デンマーク語、オランダ語、英語、フィンランド語、フランス語、ドイツ語、ギリシャ語、ハンガリー語、イタリア語、日本語、韓国語、ノルウェー語、ポーランド語、ポルトガル語、ルーマニア語、ロシア語、セルビア語(キリル語とラテン語) 、スペイン語、スウェーデン語、トルコ語です。
Recognize Handwritten Text
プレビューで英語のみの対応ですが、手書き文字の認識もできます。
Generating Thumbnails
画像のサムネイルを作成します。画像のハイライト部分を切り出したり、縦横比も自動的に調整してくれたりします。
その他
・入力はバイナリかイメージのURL指定が利用可能
・JPEG, PNG, GIF, BMPをサポート
・画像ファイルは4MB以下のサイズ、かつ50×50ピクセル以上の大きさ
料金
・トランザクション単位の課金です。
・月間5000トランザクションまでの無料枠あり。
・Tag、Face、GetThumbnail Color、Image Typeは102円/1000トランザクションから
・OCR、Adult、Celebrity、Landmark153円/1000トランザクションから
・説明とOCR(手書き)は255円/1000トランザクションから
まとめ
Computer Vision API、調べてみたら思った以上にいろいろな機能があることが分かりました。APIとして利用することで、アプリケーションに画像認識の機能を追加することができ、応用の場が広そうです。