AWSの画像認識AI(Amazon Rekognition)で、写真内の自動車の数を検出するには、detect_labelsを使用します。
目次
画像内の自動車を検出するには【Amazon Rekognition】
入力画像・検出画像
例として、次の駐車場に駐車している自動車4台の画像を使います。
1つ目が入力画像、2つ目が実際のAmazon Rekognitionの検出結果の画像です。
Pythonサンプル
import boto3
#boto3のclient作成、AWSサービス名とリージョンを指定
client = boto3.client('rekognition','ap-northeast-1')
# 画像ファイルを読み込んでバイト列を取得
with open('駐車場.jpg', 'rb') as source_image:
source_bytes = source_image.read()
# AWSへバイト列を渡し、ラベル検出結果を受け取り
response = client.detect_labels(Image={ 'Bytes': source_bytes })
# responseデータで、NameがCarの場合、物体数を表示
for label in response['Labels']:
if label['Name'] == 'Car':
print('自動車の台数:' + str(len(label['Instances'])))
画像内の自動車を検出するPythonサンプルです。
AWSから検出結果をjsonで受け取り、json内のキーがCarの場合の物体数を表示することで、実現できます。
実行結果
自動車の台数:4
自動車4台を、正しくカウントできています。
自動車の検出例(上記のPythonサンプル)
では他の画像でも、正しく自動車をカウントできるのか、気になりますよね?
実際の検出例を、見てみましょう。
入力画像・検出画像①
実行結果①
自動車の台数:3
入力画像の自動車3台を、正しく検出できています。
写真奥の後ろ向きの車も、しっかりと検出できていますね!
入力画像・検出画像②
実行結果②
自動車の台数:4
入力画像は、駐車場の斜め見下ろしの画像です。
検出できた自動車は4台と、1台検出が漏れてしまっています。
手前から2台目の、車体下半分が隠れているシルバーの車は、検出できなかった様です。
しかしながら、最奥の車体がほぼ隠れている車含め4台は、正しく検出できています。
Pythonサンプル使用の前提
・AWSアカウント作成済み
・AWSキー情報を、自分のPCに初期設定済み
上記の準備の上、ご使用ください。
まとめ
Amazon Rekognitionで、画像内の自動車をカウントする方法をまとめました。
みなさんもAmazon Rekognitionを使って、お好きな物体の数をカウントしてみてはどうでしょうか。
最後まで読んでいただき、ありがとうございます。
また、お会いしましょう。