画像認識API使ってみた(1)Google Cloud Vision

画像認識APIを使ってみた Google Cloud Vision編

さまざまな画像認識APIがありますが、代表的な画像認識APIの1つであるGoogle Cloud Visionをまず使ってみました。

目次

  1. Google Cloud Visionについて
  2. API利用準備
  3. APIを使って画像認識を実現するサンプルプログラムの作成
  4. Google Cloud Visionを使ってみた感想

Google Cloud Visionについて

Google Cloud VisionはGoogleが提供する画像認識APIで以下のような機能を持っています。
https://cloud.google.com/vision/?hl=ja

  • ラベル検出
  • 不適切なコンテンツの検出
  • ロゴ検出
  • ランドマーク検出
  • 光学式文字認識(OCR)
  • 顔検出
  • 画像属性
  • ウェブ検出
  • 統合された REST API

今回は、画像に写るさまざまな物体を検出する「ラベル検出」をサクッと使ってみようと思います。

利用準備

Googleアカウント作成

ここを参考にGoogleアカウントを作成してください

無料トライアル登録

※既に登録済の場合はスキップしてください
ここにアクセスして「同意して続行」をクリック

支払情報を入力後、「無料トライアルを開始」をクリック

注)月毎の無料回数を超えると課金が発生します。ラベル検出の場合、1,000ユニット/月までが無料です。

プロジェクトの作成

ここにアクセスし、「プロジェクトを選択」をクリック

表示されたダイアログ上の「+」をクリック

「プロジェクト名」を入力して「作成」ボタンをクリック

プロジェクト作成完了(画面右上の通知で作成が終わったかどうか確認できます)

APIの有効化

「プロジェクトを選択」をクリックし、表示されたダイアログ上で先程作成したプロジェクトを選択

画面右上のメニューから「APIとサービス」、「ダッシュボード」をクリック

「APIとサービスの有効化」をクリック

「Cloud Vision API」を検索し、選択

「有効にする」をクリック

APIキーの取得

「認証情報」をクリック

「認証情報を作成」、「APIキー」をクリック

APIキーが作成されるのでどこかにメモっておく

「キーを制限」をクリックし、IPアドレス等で制限しておきましょう

APIを使って画像認識を実現するサンプルプログラムの作成

環境情報

タイトル内容備考
OSmacOS High Sierra バージョン 10.13.2とりあえずは自分のマシンで実行
言語Python 2.7.10とりあえず使ってみたかったpythonで、macにデフォルトで入っていた2.7.10を利用
ライブラリrequestsRest API操作を簡単にするライブラリ

pipインストール

ライブラリを簡単にインストールする為に「pip」をインストール

【command】

 sudo easy_install pip

バージョン確認

【command】

$ pip -V
pip 9.0.1 from /Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg (python 2.7)

ライブラリインストール

【command】

 $ sudo pip install requests

ディレクトリ構成

【tree】

. ├── config.py #各種キー管理 └── getImageDesc.py #画像情報を取得

各種キーは別ファイルに格納

【config.py】

API_KEY = "**********"

画像情報を取得

同じディレクトリ内のsample.jpgの画像情報を取得

【getImageDesc.py】

# -*- coding: utf-8 -*-
import requests
import json
import base64
import config
KEY = config.API_KEY
url = 'https://vision.googleapis.com/v1/images:annotate?key='
api_url = url + KEY
# 画像読み込み
img_file_path = 'sample.jpg'
img = open(img_file_path, 'rb')
img_byte = img.read()
img_content = base64.b64encode(img_byte)
# リクエストBody作成
req_body = json.dumps({
    'requests': [{
        'image': {
            'content': img_content
        },
        'features': [{
            'type': 'LABEL_DETECTION',
            'maxResults': 10,
        }]
    }]
})
# リクエスト発行
res = requests.post(api_url, data=req_body)
# リクエストから画像情報取得
res_json = res.json()
labels = res_json['responses'][0]['labelAnnotations']
for value in labels:
    print value['description']

実行コマンド

【command】

$ python getImageDesc.py

実行結果

画像情報が取得できた!

【command】

$ python getImageDesc.py
woman
geisha
kimono
profession
costume
tradition
temple
shimada
girl

利用した画像はこちら

Google Cloud Visionを使ってみた感想

準備

Googleアカウントを作成する必要はありますが、実際に使い出すまでには「プロジェクト作成」「API有効化」をすればよく、思ったよりも簡単に使い始めることができました。

開発

特殊なことは必要なくて、普通のREST APIを使う感じで開発することができました。

精度

特徴がある画像を使ったのである程度想定したとおりの画像情報が取得できた気がします。
今後、他社の画像解析APIも使ってみようと思っているので、そこで比較できればと思います。
ただ、「shimada」ってなんだろう・・・と思って調べたところ「芸者島田」っていう髪型があるみたいですね。勉強になります。