Google Cloud Vision APIを試してみた
画像を送ったら、画像の中身を解析して、顔とか物とかを判別してJSONで返してくれるというヤツです。
昼休みにざっくりと触ってみたのでメモ。
下準備
こちらのブログが詳しく、大変参考にさせていただいたのでみてください(雑)
ざっくりいうと
というくらい。
料金表によると、月1000リクエストまでは無料っぽいですが、クラウド破産が怖い場合、上記の記事を参考にアラートを飛ぶようにしたほうがよいでしょう(私はアラートが飛ぶようにしましたw)
プログラム
APIキーを付けたCloud Vision APIのURLにbase64エンコードした画像ファイルをJSON形式でPOSTするだけです。
ワンライナーでもいけますが、見づらいのでシェルスクリプトにしておきました。
今回使用した画像はこちら(私のネット上でのアイコンです。スクリプト中のyukidarake.jpeg)
なお、風景写真から物を認識させるとか、人物写真から顔を認識させるのはfeatures
に指定した項目で変わるよう。
今回はLABEL_DETECTION
にしてみました(顔っぽいので、FACE_DETECTION
にしたら結果は空だった・・・)
#!/bin/bash set -ue BODY=$(cat <<JSON { "requests": { "image":{ "content": "$(base64 yukidarake.jpeg)" }, "features": [ { "type": "LABEL_DETECTION", "maxResults": 20 } ] } } JSON ) echo $BODY | curl \ -H "Accept: application/json" \ -H "Content-type: application/json" \ -X POST \ -d @- \ https://vision.googleapis.com/v1/images:annotate?key=API_KEY
実行すると・・・
./vision.sh
こんな結果が。
{ "responses": [ { "labelAnnotations": [ { "mid": "/m/0j272k5", "description": "eyewear", "score": 0.95789468 }, { "mid": "/m/0h8jxfl", "description": "vision care", "score": 0.93333292 }, { "mid": "/m/0jyfg", "description": "glasses", "score": 0.89535505 }, { "mid": "/m/0c_jw", "description": "furniture", "score": 0.84084433 }, { "mid": "/m/0b_rs", "description": "swimming pool", "score": 0.82729644 }, { "mid": "/m/04f6rz", "description": "turquoise", "score": 0.82495272 }, { "mid": "/m/0h8lg0g", "description": "eye glass accessory", "score": 0.799998 }, { "mid": "/m/02_n6y", "description": "goggles", "score": 0.77193254 }, { "mid": "/m/02crq1", "description": "couch", "score": 0.62357479 }, { "mid": "/m/01mzpv", "description": "chair", "score": 0.59412205 } ] } ] }
メガネは認識できているよう。
swimming pool
って・・・
青っぽい画像のシマシマがスイムレーンだと誤って検出されたのでしょう。
まとめ
あんま例がよくなかった気がしますが、いろんな可能性が感じられて楽しいです。
実は、他の画像ではもうちょいうまく検出できました(著作権が気になったので自分のアイコンにしてしまいました。。)
興味持った方は、ぜひ、一度お試しください。