さまざまな画像認識APIがありますが、代表的な画像認識APIの1つである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を使って画像認識を実現するサンプルプログラムの作成
環境情報
タイトル | 内容 | 備考 |
---|---|---|
OS | macOS High Sierra バージョン 10.13.2 | とりあえずは自分のマシンで実行 |
言語 | Python 2.7.10 | とりあえず使ってみたかったpythonで、macにデフォルトで入っていた2.7.10を利用 |
ライブラリ | requests | Rest 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」ってなんだろう・・・と思って調べたところ「芸者島田」っていう髪型があるみたいですね。勉強になります。