【AWS入門】AWSの画像認識で、画像内の顔の数を検出するには【Python】

AWSの画像認識AI(Amazon Rekognition)で、画像内の顔の数を検出するには、detect_facesを使用します。

 

顔の数を検出するには【Amazon Rekognition】

入力画像・検出画像

1つ目が入力画像、2つ目が実際のAmazon Rekognitionの検出結果の画像です。

Pythonサンプル

import boto3

#boto3のclient作成、AWSサービス名とリージョンを指定
client = boto3.client('rekognition','ap-northeast-1')

# 画像ファイルを読み込んでバイト列を取得
with open('./女子会4人.jpg', 'rb') as source_image:
    source_bytes = source_image.read()

# AWSへバイト列を渡し、ラベル検出結果を受け取る
response = client.detect_faces(Image={ 'Bytes': source_bytes })

# responseデータ内の、FaceDetailsの要素数を表示
print('顔の数:' + str(len(response['FaceDetails'])))

実行結果

顔の数:4

女性4人の顔を、正しく検出できています。

 

顔数の検出例(上記のPythonサンプル)

では他の画像でも、正しく顔数をカウントできるのでしょうか?
他の画像での検出例を、見てみましょう。

入力画像・検出画像①

浴衣姿の女性11人の写真です。

実行結果①

顔の数:11

入力画像の浴衣女性11人を、正しく検出できています。
集合写真の様に、人の数が増えても、しっかりと検出できていますね!

 

入力画像・検出画像②

こちらは、図面を見ている男女6人の写真です。

実行結果②

顔の数:6

入力画像の6人の男女を、正しく検出できています。
中央の青いヘルメットの男性も、問題なく検出できています。

 

Pythonサンプル使用の前提

・AWSアカウント作成済み
・AWSキー情報を、自分のPCに初期設定済み

上記の準備の上、ご使用ください。

 

まとめ

Amazon Rekognitionで、画像から顔の数を検出する方法を解説しました。
意外に簡単かつ正確に検出できて、個人的に驚きの結果でした。

みなさんもAmazon Rekognitionを使用して、色んな角度の顔で検出できるか、トライしてみてはどうでしょうか。

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