物体検知できるか?Google Cloud Vision API

久しぶりに画像解析「Google Cloud Vision API」を試してみました。

1年前はβ版で、欲しかった機能がまだなかったのですが、今は充実しているかもしれません。

ボールの座標を取れるか?

顔の座標を取ることはできるのですが、物体の座標を取ることはできるのでしょうか?

この画像を解析してみます。

赤いボール2つ、白いボール1つ、青いボール1つ。

すごく分かりやすそうな画像です。

「Google Cloud Vision API」に解析をお願いするときに、解析の種類を決める必要があります。

Google Cloud PlatformのFeature Typeの項目で、解析の種類一覧があるので選びます。

ボール検出に使えるのは・・・

LABEL_DETECTION(カテゴリ検出)
IMAGE_PROPERTIES(色検出)

くらいでしょうか。

 

「Google Cloud Vision API」に解析お願いします。

・・・。

JSONが返ってきました。

{
 "responses": [
  {
   "labelAnnotations": [
    {
     "mid": "/m/01sdr",
     "description": "color",
     "score": 0.9688637
    },
    {
     "mid": "/m/01fklc",
     "description": "pink",
     "score": 0.9311038
    },
    {
     "mid": "/m/06fvc",
     "description": "red",
     "score": 0.9167749
    }
   ],
   "imagePropertiesAnnotation": {
    "dominantColors": {
     "colors": [
      {
       "color": {
        "red": 115,
        "green": 115,
        "blue": 111
       },
       "score": 0.35743248,
       "pixelFraction": 0.40888888
      },
      {
       "color": {
        "red": 58,
        "green": 112,
        "blue": 226
       },
       "score": 0.055576902,
       "pixelFraction": 0.0024603175
      },
      {
       "color": {
        "red": 205,
        "green": 188,
        "blue": 215
       },
       "score": 0.050076347,
       "pixelFraction": 0.001984127
      },
      {
       "color": {
        "red": 242,
        "green": 240,
        "blue": 249
       },
       "score": 0.04152352,
       "pixelFraction": 0.005079365
      },
      {
       "color": {
        "red": 222,
        "green": 50,
        "blue": 93
       },
       "score": 0.017801886,
       "pixelFraction": 0.005873016
      },
      {
       "color": {
        "red": 162,
        "green": 36,
        "blue": 58
       },
       "score": 0.0063587446,
       "pixelFraction": 0.0037301588
      },
      {
       "color": {
        "red": 192,
        "green": 70,
        "blue": 108
       },
       "score": 0.0024180475,
       "pixelFraction": 0.0015873016
      },
      {
       "color": {
        "red": 99,
        "green": 96,
        "blue": 89
       },
       "score": 0.08766081,
       "pixelFraction": 0.39690477
      },
      {
       "color": {
        "red": 74,
        "green": 119,
        "blue": 211
       },
       "score": 0.039106563,
       "pixelFraction": 0.0018253968
      },
      {
       "color": {
        "red": 233,
        "green": 225,
        "blue": 248
       },
       "score": 0.035073526,
       "pixelFraction": 0.0018253968
      }
     ]
    }
   },
   "cropHintsAnnotation": {
    "cropHints": [
     {
      "boundingPoly": {
       "vertices": [
        {},
        {
         "x": 1279
        },
        {
         "x": 1279,
         "y": 718
        },
        {
         "y": 718
        }
       ]
      },
      "confidence": 0.79999995,
      "importanceFraction": 1
     }
    ]
   }
  }
 ]
}

カテゴリが「色」「ピンク」「赤」って!?

せめて「ボール」って答えてほしかったところ。

 

色の値がいっぱい返ってきましたが、ボールの座標はとれないようです。

 

「Google Cloud Vision API」は、非常に簡単に使えるのですが、物体検知には向いていない気がします。

学習コストがかかりますが、あきらめて「OpenCV」を学ぶか・・・。

“物体検知できるか?Google Cloud Vision API” への2件の返信

  1. KODA様
    最近Google Vision APIを、Pythonで使いたいと思っている山田と申します。
    紹介されておりましたボールの座標をJSONで得るコードを教えていただけませんでしょうか?

    1. 山田様
      ボールの座標をJSONで得ることは、結局OpenCV+Pythonで行いました。
      コードを探してみます。少々お待ちください。
      ボールの認識(座標を知る)については、OpenCVでボールの輪郭描画が参考になるかもしれません。
      ※このやり方は、色でおおざっぱにボール位置を識別する方法で、背景とボールの色に差がないと使えません。

山田太一 へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)