画像解析APIを試してみよう

こんにちは。GMO NIKKO エンジニアのN.Iです。

最近、機械学習を使って何かサービスを作れないか?
みたいなかるーい感じの話があり、画像解析を触ってみることになりました。
調べてみると、各社WEB画面で画像をUPするだけで、全て無料で簡単に試すことが出来るようになっていた為せっかくなので、状況をまとめてみることにしました。

各サービスの紹介

今回確認したものはGoogle、Microsoft、Amazonで提供している画像認識サービスです。
この内容は2017年12月時点での状況です。機械学習は日々進化するもの(だと思う)ので、
記事公開時に機能が変わっている場合もあるかと思いますが、ご了承ください。

対象サービス一覧

  • Google Cloud Platform (GCP) : Cloud Vision API
  • Microsoft Azure : Computer Vision API
  • Amazon Web Service (AWS) : Rekognition

各社機能比較

各社画像サービスを提供していますが、出来ることが若干違います。
各社できることについて表にまとめてみました。

GCP Cloud Vision API Azure Computer Vision API AWS Rekognition
オブジェクトの検出
顔の分析
有名人の検出
不適切(アダルト)コンテンツの検出
テキストの検出
色情報の検出
ランドマーク/ロゴの検出
キャプションの付与
web類似画像検出

各サービスの実行について

では、各サービスをweb画面から実行して試してみようと思います。
個人的に試すには著名な画像を使用した方が楽しいと思いますが…
今回は、自分で撮影した渋谷の風景写真と、ブログロゴの読み取りをしてみようと思います。

本稿では、下記機能で取得できる情報を確認します。

  • オブジェクトの検出
  • テキストの検出

ちょっと試したい場合はWEBから画像を取り込むことが出来ます。テスト方法は以下になります。
調査対象サービスのAPIに下記画像を与え、各機能で取得できたデータをまとめます。

■GCP Cloud Vision API

公式ページはこちらになります。

GCP Cloud Vision APIは上記ページ中央の[Try the API]に画像をアップすると試せます。

※文字認識は画像アップするだけでは試せませんので、(APIs Explorer)から行う必要があります。

■Azure Computer Vision API

公式ページはこちらになります。

上記ページの[参照]から画像をアップすると試すことが出来ます。

■AWS Rekognition

公式ページはこちらになります。

AWS Rekognitionは、少し敷居が高くサービスにログインしないと試用できません。

AWSのログインアカウントを作成した上で、上記ページの[AMAZON REKOGNIONを無料ではじめる]をクリック後[デモを試す]をクリックすると試すことが出来ます。

では実際に検証してみましょう。

画像認識サービス検証

今回は以下2画像を使用しました。

画像1.渋谷スクランブル交差点画像。

今回用に12月に撮影した画像です。オブジェクト認識確認用

画像2.本テックブログロゴ。画像認識確認用



表1.渋谷スクランブル交差点画像 オブジェクト検出結果 (Top15)

GCP Cloud Vision API Azure Computer Vision API AWS Rekognition
Metropolitan Area 97.3% sky 99.9% Billboard 82.6 %
City 92.5% outdoor 99.8% Building 79.1 %
Metropolis 92.3% city 79.4% City 79.1 %
Urban Area 92.2% crowd 1.6% Downtown 79.1 %
Landmark 90.8% building 20.3% Town 79.1 %
Building 88.4% Urban 79.1 %
Infrastructure 87.9% Bus 72.4 %
Skyscraper 86.0%
Double Decker Bus 72.4 %
Daytime 84.6% Transportation 72.4 %
Sky 84.6% Vehicle 72.4 %
Advertising 74.5% High Rise 65 %
Mixed Use 72.0% Poster 64.1 %
Tower Block 71.8% Path 62.8 %
Downtown 71.0% Pavement 62.8 %
Street 65.0% Sidewalk 62.8 %

2017年12月テスト時の判別結果情報量はGCP ≒ AWS > Azure となっております。
空、ビル、都市など写真の主な構成要素は大体把握できるようです。
GCP、AWSは画面の半分しか移っていないバスを判別できているところがすごいですね。
表だけでは分かりませんが、GCPは、Web上の類似画像を探してくれる機能があり、その画像が使用されているwebページのリンクまで表示されます。クリエイティブ製作時に似ている画像が無いか探すときに役立ちそうです。
Azureは画像のタイトルをつけてくれるユニークな機能があります。今回は「a tall building in a city」とタイトルが付いていました。

表2.本テックブログロゴ テキスト検出結果

GCP Cloud Vision API Azure Computer Vision API AWS Rekognition
GMO AD Partners
TECH BLOG MO
 GMO AD Partners
GMO AD Partners
TECH BLOGe
yMO

分かりやすいロゴなので先頭の「GMO AD Partners」はどれでも認識されました。
文字が大きいので全てのサービスで読み込めると思っていましたが、Azureでは「TECH BLOG」を認識してもらえませんでした。
また、byGMOの部分が各社うまく読み込めておらず、文字が大きさが統一されておらず、次の文字と繋がって読めてしまいそうな文字の認識はあまり認識精度が高くないようです。
また、他の画像で文字認識を試してみましたが、背景色と文字色の色が近似値だとうまく認識出来ないようです。

おわりに

10月にも同じような記事をアド論にも記載しましたが、AWS Rekognitionに文字認識機能の追加、GCP Cloud Vision APIに類似画像のweb検出機能の追加などたった2ヶ月で機能拡張が行われており、画像認識性能の向上が速いペースで進んでいると実感できました。
実際に使用する際は、同じ画像認識技術と行っても、各社少しづつ認識出来ることが違っているため、自分が使用したい機能と結果が合っているか実際に試してみるのが良いと思います。
文字の抽出,人物の抽出,風景を抽出などの得意、不得意がありそうなので、画像分析の用途によってAWS,GCP,Azure 何を使うか決まってくるのかなと思います。

画像認識技術についてはこれから発展する分野だと思いますので、これからも定期的に確認していきたいと思います。