LoginSignup
4
4

More than 5 years have passed since last update.

味噌汁に見えるチョコをGoogle Cloud Visionで認識させるとどうなるか

Posted at

Googleが、画像認識API Cloud Visionを公開しました。
一方でこんなツイートを見かけました。

なるほど、確かにこれは味噌汁っぽい…じゃあCloud Visionに認識させたらどうなるのか試してみました。

手順

Google Cloud Platformに登録する

登録後30日までは無料とのことなので、登録してみました。

チュートリアルに従ってAPIの有効化とブラウザキーを作成

今のところ英語のチュートリアルしかありませんが、作業は簡単です。新規プロジェクトを作って、認証情報としてブラウザー鍵を生成するだけです。

リクエストjsonを作る

API呼び出しのためのjsonを作成します。直接jsonをエディタで作成しても良いですが、Google APIs Explorerを使うと割と楽です。

画像ファイルをbase64化する

jsonに画像ファイルの中身をbase64でエンコードして指定する必要があるので、GNU coreutilsのbase64コマンドを使って生成しましょう。
できあがったrequest.jsonはかなり大きくなるのでここには直接張りませんが、gistに自分が作成したものを置いてあります。

リクエストを送信する

wgetでもcurlでもなんでも良いですが、生成したリクエストをhttpsで送信します。私はチュートリアルに習ってcurlを使いました。

call.sh
#!/bin/sh
curl -v -k -s -H "Content-Type: application/json" https://vision.googleapis.com/v1/images:annotate?key="$1" \
 --data-binary @request.json

結果を見る

curlの標準出力にjsonとして結果が返ってきます。2/19日次点で私が得られた結果を以下に示します。

result.json
{
  "responses": [
    {
      "labelAnnotations": [
        {
          "mid": "/m/02q08p0",
          "description": "dish",
          "score": 0.95707446
        },
        {
          "mid": "/m/02wbm",
          "description": "food",
          "score": 0.83514553
        },
        {
          "mid": "/m/0krfg",
          "description": "meal",
          "score": 0.75944263
        },
        {
          "mid": "/m/0271t",
          "description": "drink",
          "score": 0.571712
        },
        {
          "mid": "/m/07xgrh",
          "description": "ingredient",
          "score": 0.5617367
        },
        {
          "mid": "/m/0270h",
          "description": "dessert",
          "score": 0.55429626
        },
        {
          "mid": "/m/0hz4q",
          "description": "breakfast",
          "score": 0.54153788
        },
        {
          "mid": "/m/06l8d",
          "description": "restaurant",
          "score": 0.50432992
        }
      ]
    }
  ]
}

考察

もっとも上位のスコアで返したのはdishでした。以下food, meal, drinkと続きます。food+drinkはそれとなく味噌汁っぽい気がします。その次の次にdessertを返しているので、チョコレートかも?という判断もしていそうです。
今実行すると、また違う結果が返ってくるかもしれません。

注意

  • APIの呼び出し回数制限に気を付けましょう
  • ブラウザ鍵は認証としては非常に弱いので、取り扱いに気を付けましょう

参照

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4