GoogleCloudVisionAPIの画像認識APIを5分で遊ぶ
GoogleCloudVisionAPIの画像認識APIを5分で遊ぶ
GoogleCloudVisionはGoogle製のお手軽な画像認識のAPIです。
画像を指定すると、その画像が一体どのような画像なのかを認識してくれます。

たとえばこんなカンジの先日食べた牛カツの写真。

アップロードすると食べ物、フライ、といったカンジにどんな画像なのかレスポンスを返してくれるAPIです
どんな情報が返却されるかは下記リンクより直接画像をアップロードすることで試すことができます。
さっそくGoogleCloudVisionAPIを使ってみる

GoogleCloudのダッシュボードからAPIとサービスを選びます

APIリストから今回のGoogleCloudVisionAPIを選びます。
あとは手順に従って追加するだけ。すぐにキーを発行してもらえます。

GoogleCloudPlatformsからGoogleCloudVisionAPIの利用を追加します。設定が完了するとキーが発行されるので発行されたキーをコピーします。
利用するにはGoogleCloudに登録済のGoogleアカウントが必要です
なお、APIのキーはGoogleCloudVisionAPI専用のキー発行もできるし、GoogleCloudPlatformsから使えるAPIすべてに対して共通のキーでもOKのです。
さっそくAPIを叩いてみる
キーさえそろえばAPIを叩く準備は整いました。

試しに最近飼い始めた犬さんの画像から、何の画像なのかラベルを抽出したいと思います
APIのアクセス
https://vision.googleapis.com/v1/images:annotate?key=YourKey
json
APIを叩くにはAPIのURLの最後に自分のキーをパラメータとしてセット、データはjson形式で渡します。
画像の渡し方はbase64 エンコード文字列、Google Cloud Storage URI, HTTPまたはHTTPSでアクセス可能な画像URLです。
詳しくはこちらのドキュメントをご確認ください
{
"requests": [
{
"image": {
"source": {
"imageUri": "http://www.kaasan.info/..../IMG_4348-e1522818735397.jpg"
}
},
"features": [
{
"type": "LABEL_DETECTION"
}
]
}
]
}
レスポンス
戻りはこんなカンジでかえってきます。スコアが高い順に「どんな画像なのか」を認識してラベルを返してくれるようです。
{
"responses": [
{
"labelAnnotations": [
{
"mid": "/m/0kpmf",
"description": "dog breed",
"score": 0.93450874,
"topicality": 0.93450874
},
{
"mid": "/m/0bt9lr",
"description": "dog",
"score": 0.9185607,
"topicality": 0.9185607
},
{
"mid": "/m/02xl47d",
"description": "dog breed group",
"score": 0.9120572,
"topicality": 0.9120572
},
{
"mid": "/m/01z5f",
"description": "dog like mammal",
"score": 0.8630419,
"topicality": 0.8630419
},
{
"mid": "/m/05mqq3",
"description": "snout",
"score": 0.7132316,
"topicality": 0.7132316
},
{
"mid": "/m/01z0mh",
"description": "norwegian lundehund",
"score": 0.632862,
"topicality": 0.632862
},
{
"mid": "/m/0cqg0t",
"description": "akita",
"score": 0.5387146,
"topicality": 0.5387146
}
]
}
]
}
なお、90%以上犬ですが、70%の確率で snout 鼻面と認識されました。
もちろんラベル以外にも色合い、いかがわしい画像ではないか、などの認識してくれます。
さらに詳しい情報やAPIの叩き方、フィールドについては入門ガイドを読むといいですよ