FutureStandard MAKERS

東京にある映像解析プラットフォーム「SCORER」の開発をしているスタートアップのブログです

SCORERとAWSを利用して顔写真から人の年齢・性別を判定してみよう

f:id:FutureStandard:20181127135619p:plain

今回は、前回の続きとしまして、SCORERの映像から顔画像を出力し、その人の年齢・性別を取得するサンプルプログラムを紹介します。このプログラムは、AWS Rekognitionを利用して、顔画像から情報を収集します。

AWSAPIキーを発行する
下記のサイトの1~3を実施してください。
Amazon Rekognition の使用開始 - Amazon Rekognition


②サンプルプログラムを確認する
下記のSCORER設定ページに移動し、「SCORER SDK Sample」へ移動します。

http://{RaspberrypiのIPアドレス}:20002
f:id:FutureStandard:20181106150938p:plain

サンプルプログラム「Face_info_aws」が存在することを確認します。

f:id:FutureStandard:20181119201629p:plain

※ブラウザキャッシュにより一時的にページが更新されない場合があります。その場合は、キャッシュを削除するか、時間をおいてページを更新してください。
上記対応後もリンクが表示されない場合は下記リンクの「4. SCORER SDKの更新」を実施してください。
http://downloads.scorer.jp/SCORER_SDK_Starter_Guide_v0.4.1.pdf


③boto3のインストール
今回のサンプルプログラムを実行するためには、AWS SDKであるboto3をインストールする必要があります。Cloud9の一番下に表示されているコンソールの一番左のタブを選択し、下記のコマンドを入力します。

pip3 install boto3 --user
f:id:FutureStandard:20181128143550p:plain


AWS APIキーの設定
Cloud9から~/scorer-sdk-python/samples/Face_info_awsに移動し、face_info_aws.pyを開きます。「①AWSAPIキーを発行する」で取得したアクセスキーとシークレットアクセスキーをそれぞれAWS_ACCESS_KEY_IDとAWS_SECRET_ACCESS_KEYに格納してください。また、APIキーを発行したリージョンがアジアパシフィック (東京)以外の場合は31行目のregion_nameをリージョンに合うコードに変更してください(下記リンク先にリージョンとコードの対応表があります)。

f:id:FutureStandard:20181119202651p:plain

リージョンとアベイラビリティーゾーン - Amazon Elastic Compute Cloud


⑤サンプルプログラムの実行
Cloud9から~/scorer-sdk-python/samples/Face_info_awsに移動し、info_aws.pyを開いた状態で「Run」を押して実行します。

f:id:FutureStandard:20181120120520p:plain

その後、再度SCORER開発者画面に移動し、全てのWeb Showをスタート状態にして「all_view」をクリックします。

f:id:FutureStandard:20181120140312p:plain

すると、下記のようにSCORERの映像からロストした顔が年齢と性別を印字した画像として出力されます。
(顔画像はロストするまでの間で顔の面積が最も大きかったものが出力されます)

f:id:FutureStandard:20181127141338p:plain

Ageの左側の数値が年齢範囲の中心値、右側の数値が年齢範囲の誤差です。またGenderには性別が記載されています。


⑥顔画像のログ
Cloud9から~/scorer-sdk-python/samples/Face_info_awsに移動し、aws_info/imgを開くと、これまで出力された顔画像を確認することができます。

f:id:FutureStandard:20181127142224p:plain


⑦年齢、性別以外の情報について
AWS Rekognitionでは、今回紹介した年齢、性別以外にも、目・口の開閉、メガネの着脱、顔の表情などの情報を取得することができます。今回のプログラムでは、face_info_aws.pyの下記の部分でAWSから取得した情報を整理しています。

f:id:FutureStandard:20181127144453p:plain

この部分の記載を変更することで、年齢、性別以外の情報の取得も可能になります。詳しい詳細は下記のリンクにまとめられておりますので、ご興味のある方はぜひお試しください。
イメージ内の顔の検出 - Amazon Rekognition


⑧Azureを利用した年齢、性別判定について
AWS Rekognition以外にも、Azure Face APIを利用することで、顔画像から年齢、性別判定することも可能です。サンプルプログラム、「Face_info_azure」を利用すれば、今回紹介したAWSと同様の手順で年齢、性別を判定することができます。

f:id:FutureStandard:20181127145102p:plain

こちらについても、ご興味のある方はぜひお試しください。

以上で顔画像からの年齢、性別判定の説明は終了です。今回は、顔画像の情報をAWSに連携するだけでしたが、AWS上に画像を保存し、画像情報を管理することも可能です。
次回はこの仕組みを利用した滞在時間測定システムをご紹介します。