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の叩き方、フィールドについては入門ガイドを読むといいですよ