【AWS入門】AWSの画像認識で、写真内の自動車をカウントするには【Pythonサンプルあり】

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を使って、お好きな物体の数をカウントしてみてはどうでしょうか。

最後まで読んでいただき、ありがとうございます。
また、お会いしましょう。