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です。
|
1 2 |
client = boto3.client('rekognition') |
Rekognitionクライアントをboto3.clientで作ります。
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
response = client.compare_faces( SourceImage={ 'S3Object': { 'Bucket': bucket_name, 'Name': key } }, TargetImage={ 'S3Object': { 'Bucket': bucket_name, 'Name': target_key } }, SimilarityThreshold=0 ) |
compare_facesで比較します。
SourceImageとTargetImageを比較します。
両方ともS3にJPGとPNG形式で画像があるので、バケット名とキーを指定します。
SimilarityThresholdで最低の敷居値を指定します。
今回は類似値0.1%とかも全部拾って欲しいので0を指定しました。
|
1 2 |
similarity = response['FaceMatches'][0]['Similarity'] |
responseのFaceMatchesにSimilarityという値があるので、それ拾って別のS3バケットへJSONで格納します。
S3に格納した後はAthenaでクエリー発行してテーブル構造にしてQuickSihtで可視化します。
Athenaでテーブルを作ったときのQuery
GUIから設定してクエリーを生成することが出来ます。
|
1 2 3 4 5 6 7 8 9 10 11 |
CREATE EXTERNAL TABLE IF NOT EXISTS jawsugnight2017.compare_face ( `source` string, `target` string, `similarity` float ) ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe' WITH SERDEPROPERTIES ( 'serialization.format' = '1' ) LOCATION 's3://jawsugnight2017result/' TBLPROPERTIES ('has_encrypted_data'='false'); |
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
AWS Network Firewallの入門
公式のGetting started with AWS Network Fire …
-
-
RocketChatの匿名登録時のtoo many requestsエラー対応
匿名ユーザー登録時のtoo many requestsエラー RocketCha …
-
-
前からできましたっけ??CloudWatch Logsの保持設定を複数まとめて設定
AWSの個人アカウントで要らなさそうなリソースの断捨離をしてます。 CloudW …
-
-
JAWS-UG Osaka 第14回勉強会 「DIY」 〜自社内システムを作る側からの物申す〜に参加、運営、登壇しました
先日、JAWS-UG Osaka 第14回勉強会 「DIY」 〜自社内システムを …
-
-
Systems Manager デフォルトのホスト管理設定(Default Host Management Configuration)を確認しました
2023/2/17のアップデートAWS Systems Manager をアカウ …
-
-
AWS複数アカウントのリソースをLambda(Python)から一括操作したくて
AWSの複数アカウント(30ちょい)のリソースをまとめて自動処理したくて。 とり …
-
-
Amazon SageMaker AIのクイックセットアップ
Amazon SageMaker AI のクイックセットアップを使用するに記載の …
-
-
Amazon SES(Simple Email Service)でメール受信時のアクションでLambdaを実行して渡されるデータを見てみる
Amazon SESで受信したメールをS3に保存して、S3のトリガーでLambd …
-
-
AWS Global Acceleratorでアクセラレーターを作成する
バージニア北部、東京、大阪のEC2インスタンスをエンドポイントにして作成してみま …
-
-
Amazon RDS MySQLでCSVをload data するときに「Access denied」発生
超小ネタです。 AWSのデータベースサービスの Amazon RDSのMySQL …

