Intelligent Technology's Technical Blog

株式会社インテリジェントテクノロジーの技術情報ブログです。

Google Cloud Vision API ハンズオン 参加してきました。

中山です。

3/20(日)、香川県高松市の「e-とぴあ・かがわ」で開催されました、「Google Cloud Vision API ハンズオン」イベントに参加してまいりました。

gdgshikoku.connpass.com

しかしこのときはまだ、Googleさんがそんな情報まで把握している、というのは夢にも思わなかったのです・・・。


このハンズオンは、「e-とぴあ文化祭2016」の中のひとつのイベントとして開催されていました。

f:id:IntelligentTechnology:20160322165858j:plain:w400

Google Cloud Vision API とは

Google Cloud Vision API は、Google社が提供する、画像解析のためのAPIです。
以下、ハンズオンのサイトから引用します。

指定されている画像に何が写っているのか、人の場合はその表情が笑っているのか怒っているのか、さらに有名なランドマークが写っていればそれがどこの何かを教えてくれます。
またOCRのように文字を読み取ることも可能です。

Google Cloud Vision API自体は有料ですが、今回のハンズオンでは、無料トライアルの範囲で、機能を試すことができました。
無料トライアルでは、60日間、300ドルの範囲で、機能を試すことができます。また、1ヶ月に1000リクエスト程度まででしたら、料金が発生することなく利用できるようです。

Google Cloud Vision API を試す

ハンズオン自体は、Google Cloud Vision APIの「Getting Started」ページの内容にしたがって進められました。
APIキーなど、各種の設定を行っておく必要がありますが、これらについては、公式サイトの説明にゆずることといたします。

Google Cloud Vision の API としては、実は1種類しかありません。
Macを使う場合、いちばんシンプルに試そうとすると、以下のような手順になります。

1.まずは解析対象の画像ファイルを用意して、

http://people.ucsc.edu/~kamacdon/bulldogpuppy1.jpg
http://people.ucsc.edu/~kamacdon/

2.それをbase64変換して、

f:id:IntelligentTechnology:20160322171525p:plain

3.そのbase64変換した文字列を、以下のようなJSONのデータに埋め込んで、

f:id:IntelligentTechnology:20160322171708p:plain

4.そのJSONデータファイルを、Google Cloud Vision API のサーバに送信すると、

f:id:IntelligentTechnology:20160322172342p:plain

5.サーバから以下のような解析結果が返されます。

f:id:IntelligentTechnology:20160322172637p:plain

今回の場合は、0.99以上のスコアで「dog」である、と判定されたようです。

いろいろ試す

上記のJSONデータファイルに指定する、画像解析の「type」としては、ほかにも以下のようなものが指定できるそうです。

  • FACE_DETECTION: 顔認識
  • LANDMARK_DETECTION: 建物などの画像から、その位置情報を特定
  • LOGO_DETECTION: 企業ロゴ、ブランドロゴの検出
  • LABEL_DETECTION: カテゴリ検出、画像種類判定(上記で使っていたもの)
  • TEXT_DETECTION: 文字認識 OCR機能
  • SAFE_SEARCH_DETECTION: 不適切画像の検出
  • IMAGE_PROPERTIES: 画像の属性情報抽出(画像の主要な色の検出など)

以下いろいろと試してみました。

画像種類判定

四国新聞でも連載中の大人気4コマ漫画、かまタマくんの画像は、

http://pbs.twimg.com/media/CTsOGKvUkAAGD66.jpg
http://sp.shikoku-np.co.jp/comic/archive.htm

f:id:IntelligentTechnology:20160322173424p:plain

解析結果の件数を5件に増やしてみたものの「book」とか「area」とか、なにやらあいまいな結果が。
f:id:IntelligentTechnology:20160322173506p:plain

OCR機能

しかし、おなじかまタマくんの画像でOCR機能を呼び出してみると、
http://pbs.twimg.com/media/CTsOGKvUkAAGD66.jpg
http://sp.shikoku-np.co.jp/comic/archive.htm

f:id:IntelligentTechnology:20160322173748p:plain

かなり正確に文字を拾ってる!

f:id:IntelligentTechnology:20160322173812p:plain

位置情報特定

香川県にある「がもううどん」の写真で「LANDMARK_DETECTION」の機能を呼び出してみると、

http://www.sanuki-udon.net/images/udon/R0063793.jpg
http://www.sanuki-udon.net/2009/12/post_237.html

f:id:IntelligentTechnology:20160322174300p:plain

以下のように、緯度経度の情報が返ってきました。(descriptionは「Udon」。)

f:id:IntelligentTechnology:20160322174403p:plain

ひょっとして、と思い、その緯度経度を Google Mapsで検索すると・・・、

f:id:IntelligentTechnology:20160322174512p:plain

ほんとに「がもううどん」のお店の場所が表示されました。Googleさん、ちょっと怖い!

顔認識

宇宙飛行士の集合写真で顔認識を試したところ、

http://blog-imgs-52.fc2.com/1/0/r/10rank/nasa_convert_20121023004955.jpeg
http://10rank.blog.fc2.com/blog-entry-90.html

f:id:IntelligentTechnology:20160322174954p:plain

認識した顔一つ一つにたいして、その座標などの情報が返されました。

f:id:IntelligentTechnology:20160322175038p:plain

不適切画像の検出

海外ドラマ「ウォーキングデッド」に登場するゾンビの画像が「不適切画像」にあたるかどうかを試したところ、

f:id:IntelligentTechnology:20160322175246p:plain

「VERY_UNLIKELY」とか「UNLIKELY」ばかりでしたので、そんなに「有害」ではない?「violence」が「UNLIKELY」なので、少しスコアが高いか?(画像自体は、恐ろしい写真なので、ここへの掲載は見送りますけど。)

f:id:IntelligentTechnology:20160322175335p:plain

まとめ

けっこう簡単に、画像認識の機能を試すことができました。
Google Cloud Vision API 自体は人工知能ライブラリである「TensorFlow」の機能を利用している、とのことです。

建物の画像から位置情報がわかってしまうのは、ちょっと怖い気もしましたが、これも昨今の人工知能の発達の成果のひとつなのでしょう。
シンプルなAPIなので、応用の幅も広いのではないか、と感じました。