Google Cloudの画像認識で、オブジェクト検出する方法【Pythonコードあり】

  • 2022-04-18
  • 2022-06-03
  • AI
AI

Googleの高性能なAI画像認識エンジンを使って、自分の好きな画像からパパッとオブジェクト検出できるといいですよね。

この記事では、GoogleのCloud Vsion APIを使って、Pythonで画像からオブジェクト検出する方法を解説します。

結論、20行ぐらいのPythonコードで、簡単に画像認識ができます。

※Cloud Vision APIは、たくさん使うと料金が発生する場合があります。ご自身でご確認の上、使用してください。

 

Cloud Vision APIでオブジェクト検出する方法

【手順1】まず、Cloud Vision APIを、使える状態に準備します。

すでに準備できている場合は、本手順は不要です。

 

具体的には、google-cloud-visionのインストールGoogleの認証を実施します。
こちらの記事を参考に、実施してください。

ジコログ

Google Cloud Vision APIへPythonからアクセスするには、Python製のオープンソースであるg…

 

上記のページにある動作確認ができれば、準備完了です。

 

【手順2】Pythonで次のコードを記述します。

from google.cloud import vision
from google.oauth2 import service_account

# 画像認識対象の画像URL
IMG_URL = "http://tekuzo.org/wp-content/uploads/2021/07/22890948_s.jpg"

# 身元証明書のjson読み込み
credentials = service_account.Credentials.from_service_account_file('key.json')

client = vision.ImageAnnotatorClient(credentials=credentials)
image = vision.Image()
image.source.image_uri = IMG_URL

# Cloud Vision APIを使用して、オブジェクト検出
response = client.object_localization(image=image)
labels = response.localized_object_annotations

# オブジェクト検出結果を表示
for label in labels:
    print(label.name + ":" + str(label.score))

if response.error.message:
    raise Exception(
        '{}\nFor more info on error messages, check: '
            'https://cloud.google.com/apis/design/errors'.format(
              response.error.message))

※5行目のIMG_URLは、認識対象の画像のURLを記述してください。
※8行目のAPIキーは、key.jsonというファイル名に変更しています。ご自身のAPIキーのファイル名を記述してください。

 

上記をobjDetection.pyというファイル名で保存します。

 

【手順3】オブジェクト検出対象の画像を、ネット上にアップロードします。この記事では例として、当ブログに掲載している以下の猫画像を使用します。

対象の画像:http://tekuzo.org/wp-content/uploads/2021/07/22890948_s.jpg

オブジェクト検出対象の画像は、好きな画像のURLに置き換えてもらってもOKです。

 

【手順4】Pythonコードを実行します。

> py objDetection.py

 

【手順5】すると、以下の様な認識結果を得られます。

猫が96%、ベッドが62%、程度の認識スコアが得られています。ほぼ正しい結果が得られていますね!

 

以上で、手順は完了です。

 

Cloud Vision APIの猫画像の認識精度は、ml5.jsより良かった

以前のブログで、手軽に画像認識できるJavascriptの画像認識ライブラリml5.jsを紹介しました。

しかしml5.jsを使って、次の黒猫画像を認識した場合、うまく黒猫と判別できませんでした

 

詳細はこちら。

関連記事

自分でAIを使って画像認識してみたいけど、やり方がわからない、ってことありますよね。 この記事では、今とても注目されているAI画像認識を、HTMLだけで簡単に実装する方法を解説します。 結論、HTML上で<scri[…]

 

しかし、Cloud Vision APIの場合、上記の黒猫画像でもしっかりと猫と判別できました
Cloud Vision APIの方が、認識精度が高そうです。

 

こちらが、Cloud Vision APIのオブジェクト検出結果。
黒猫画像も、高い精度で猫と認識できています。

 

Cloud Vision APIで写真から人数検出してみた

ここで、写真に写っている人の人数検出をしてみたいと思い、人が複数写っている画像をオブジェクト検出してみました。

こちらが、オブジェクト検出対象の写真です。

 

上記の写真をオブジェクト検出した結果が、下記です。
Personが6つ検出できているので、人数検出にも使えそうですね!

 

ミニスカートも、約82%と高い精度で検出できています。

 

まとめ

この記事では、Cloud Vision APIでオブジェクト検出する方法を解説しました。

みなさんも、自分の手でいろいろな画像からオブジェクト検出して、遊んでみてはどうでしょうか。

 

ここまで読んでいただき、ありがとうございます。
今回は以上です。