ヤマムギ

growing hard days.

*

Amazon Rekognitionでイベント参加者の顔写真を解析して似ている人ランキングをその場で作る

      2017/10/19


2017/9/21に開催されたAWS Cloud Roadshow 2017 大阪のナイトイベント「JAWS-UG in AWS Cloud Roadshow 2017 大阪」の一部の企画として、当日お越しいただいた参加者の顔写真と、事前に設定している6人の有名人の写真との顔比較を行って、一番似ている人に豪華景品、という催し物をしました。

前日までに準備しておけばよかったのですが、前日まで夜な夜なパーティーが続いていたため、当日の朝に1時間半で準備しました。

結論は、Amazon Rekognitionを使えば、こんなことも1時間半で実現出来てしまうんだと、感動とそしてかなりほっとしました。

構成はこちらです。

Amazon AthenaとQuickSightは15分程度で出来ました。

Lambda Function

ソースコードはこちらです。

ランタイムはPython 3.6です。

Rekognitionクライアントをboto3.clientで作ります。

compare_facesで比較します。

SourceImageとTargetImageを比較します。

両方ともS3にJPGとPNG形式で画像があるので、バケット名とキーを指定します。

SimilarityThresholdで最低の敷居値を指定します。
今回は類似値0.1%とかも全部拾って欲しいので0を指定しました。

responseのFaceMatchesにSimilarityという値があるので、それ拾って別のS3バケットへJSONで格納します。

S3に格納した後はAthenaでクエリー発行してテーブル構造にしてQuickSihtで可視化します。

Athenaでテーブルを作ったときのQuery

GUIから設定してクエリーを生成することが出来ます。

@yamamanx

開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー1年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。

また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - AWS , , , , ,

ad

ad

  関連記事

AWS Step Functions まずはパラレルでLambdaを並列実行してみました

複数のlambdaの実行制御をLambdaでやってましたが、その部分をStep …

AWS 認定クラウドプラクティショナーのサンプル問題

AWS認定クラウドプラクティショナのサンプル問題2018年9月25日現在で、英語 …

AWS EC2 でインスタンスにIPアドレスを紐付ける

AWS EC2で作ったサーバは何もしなければ起動するたびにIPアドレスが変わって …

EC2 Amazon LinuxのNginx+RDS MySQLにレンタルWebサーバーからWordPressを移設する(手順整理版)

ブログサイト(WordPress)をレンタルWebサーバーからAWSに移設する事 …

JAWS FESTA 2017 Reverse X re:Birth

JAWS FESTA 2017 中四国 今年はブログタイトル「JAWS FEST …

Amazon Elasticsearch ServiceにMySQLのデータを投入してkibanaで可視化してみる

MySQLのデータの可視化にAmazon Elasticsearch Servi …

kintoneで設定したスケジュールにあわせてlambda(python)からSQSへメッセージを送る

EC2の起動停止をそろそろ手動でやるのも疲れてきそうなのと、やはり停止するのを忘 …

RDS + VPC + Lambda + API Gateway + CloudFront + WAF + ACMでAPIを構築する

RDSのMySQLの情報を与えられたリクエストをキーにしてjsonで返すAPIを …

AWS Lambda(Python3)でSelenium + Chrome Headless + でwebスクレイピングする

インターネット上に公開されている情報をDynamoDBにつっこみたいだけなので、 …

S3に置いたMP3ファイルをTwilioから電話再生する(AWS Lambda Python)

Google Calendar Twilio ReminderのTwilioを使 …