Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Amazon Rekognition デモ / 20231208-aws_seminar-01...
Search
kasacchiful
December 08, 2023
Programming
0
670
Amazon Rekognition デモ / 20231208-aws_seminar-01-rekognition-demo
2023/12/08 (金)
新潟県工業技術総合研究所様にてデモンストレーションした
Amazon Rekognitionの参考資料
kasacchiful
December 08, 2023
Tweet
Share
More Decks by kasacchiful
See All by kasacchiful
テーブル定義書の構造化抽出して、生成AIでDWH分析を試してみた / devio2025tokyo
kasacchiful
0
250
ワイがおすすめする新潟の食 / 20250912jasst-niigata-lt
kasacchiful
0
26
WorkersでDiscord botを試してみた / 20250822workers-tech-talk-niigata
kasacchiful
1
44
地域コミュニティへの「感謝」と「恩返し」 / 20250726jawsug-tochigi
kasacchiful
0
170
Amazon Q Developer for CLI を使って PHP Conference 新潟 2025 参加者向けにグルメサイトを構築した話 / 20250620niigata-5min-tech
kasacchiful
1
100
ワイがおすすめする新潟の食 / 20250530phpconf-niigata-eve
kasacchiful
0
420
生成AIでメタデータを生成してみた / 20250525generate-metadata-using-generative-ai
kasacchiful
0
100
Strands Agents SDK で AIエージェント作成 を試してみた / 20250525strands-agents
kasacchiful
0
360
いろんな世界を見てみよう / 20250508ninno_tech_fest
kasacchiful
0
46
Other Decks in Programming
See All in Programming
Claude CodeによるAI駆動開発の実践 〜そこから見えてきたこれからのプログラミング〜
iriikeita
0
320
All About Angular's New Signal Forms
manfredsteyer
PRO
0
200
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
2
770
モテるデスク環境
mozumasu
3
300
実践Claude Code:20の失敗から学ぶAIペアプログラミング
takedatakashi
16
6.4k
One Enishi After Another
snoozer05
PRO
0
140
Webサーバーサイド言語としてのRustについて
kouyuume
0
3.3k
ソフトウェア設計の実践的な考え方
masuda220
PRO
4
630
CSC305 Lecture 09
javiergs
PRO
0
300
SODA - FACT BOOK(JP)
sodainc
1
8.6k
Goで実践するドメイン駆動開発 AIと歩み始めた新規プロダクト開発の現在地
imkaoru
4
870
contribution to astral-sh/uv
shunsock
0
440
Featured
See All Featured
Code Review Best Practice
trishagee
72
19k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
We Have a Design System, Now What?
morganepeng
53
7.8k
Building Adaptive Systems
keathley
44
2.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
353
21k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
14k
Scaling GitHub
holman
463
140k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
132
19k
Why Our Code Smells
bkeepers
PRO
340
57k
BBQ
matthewcrist
89
9.8k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Transcript
Amazon Rekognition デモ 2023-12-08
画像分類のデモ クッキーの割れ判別 データはAWSが公開しているサンプル を用います。
1. 画像の収集 「トレーニングデータセット」と「テストデータセット」を用意 画像はPNG形式またはJPEG形式である必要あり
2. 画像のインポート いずれかの方法で画像をインポートします。 今回はS3バケットからインポートします。 ローカルPCからインポート S3バケットからインポート 画像を含むフォルダ名を使用して画像のラベル付けが可能 Amazon SageMaker Ground
Truth マニフェストファイルをインポート 既存のAmazon Rekognition カスタムラベルデータセットをコピー
S3バケットに画像をアップロ ード S3バケットを作成します。 20231208-iri- rekognition-demo- kasahara という名前のバケ ットを作りました。
S3バケットに画像をアップロード バケットに画像をアップロードします。 以下のフォルダに分けてアップロード assets/train/normal/ assets/train/anomaly/ assets/test/normal/ assets/test/anomaly/
プロジェクトを作成 Amazon Rekognitionカスタムラベルのプロジェクトを作成します。 左側メニューの「カスタムラベルを使用」をクリック 「ご利用開始にあたって」をクリック 左側メニューの「プロジェクト」から「プロジェクトを作成」をクリック プロジェクト名を適宜入力して「プロジェクトを作成」をクリック 例: 20231208-iri-rekognition-demo 「データセットを作成」をクリック
データセットを作成 データセットを作成の画面で以下のように設定する 「トレーニングデータセットとテストデータセットを使用して開始」を選択 トレーニングデータセットの詳細では「S3バケットから画像をインポートする」を 選択 S3 URIは以下のように設定する s3://< バケット名>/train までのフォルダパス/
例: s3://20231208-iri-rekognition-demo- kasahara/assets/train/ 自動ラベル付けは「フォルダ名に基づいて画像レベルのラベルを自動的に画像に割 り当てる」にチェックをいれる
「S3バケットが正しく設定されていることを確認してください」で設定する必要がある バケットポリシーの内容があります。以下の内容をブラウザの別タブで開いたS3の設定 画面にてバケットポリシーを設定します。 { "Version": "2012-10-17", "Statement": [ { "Sid":
"AWSRekognitionS3AclBucketRead20191011", "Effect": "Allow", "Principal": { "Service": "rekognition.amazonaws.com" }, "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "arn:aws:s3:::20231208-iri-rekognition-demo-kasahara" }, { "Sid": "AWSRekognitionS3GetBucket20191011", "Effect": "Allow", "Principal": { "Service": "rekognition.amazonaws.com" }, "Action": [ "s3:GetObject", "s3:GetObjectAcl", "s3:GetObjectVersion", "s3:GetObjectTagging" ], "Resource": "arn:aws:s3:::20231208-iri-rekognition-demo-kasahara/*" }, { "Sid": "AWSRekognitionS3ACLBucketWrite20191011", "Effect": "Allow", "Principal": { "Service": "rekognition.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::20231208-iri-rekognition-demo-kasahara" }, { "Sid": "AWSRekognitionS3PutObject20191011", "Effect": "Allow", "Principal": { "Service": "rekognition.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::20231208-iri-rekognition-demo-kasahara/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control" } } } ] }
テストデータセットの詳細では「S3バケットから画像をインポートする」を選択 S3 URIは以下のように設定する s3://< バケット名>/test までのフォルダパス/ 例: s3://20231208-iri-rekognition-demo-kasahara/assets/train/ 自動ラベル付けは「フォルダ名に基づいて画像レベルのラベルを自動的に画像に割り当 てる」にチェックをいれる
「データセットを作成」ボタンをクリックする この時、S3バケットにまだバケットポリシーを設定してない場合は、ブラウザの別 タブで開いたS3の設定画面にてバケットポリシーを設定します。
データセットに「トレーニング」 と「テスト」の画像が登録されて いることを確認ください。
モデルのトレーニング データセットの画面から「モデルをトレーニング」ボタンをクリックします。
トレーニングの詳細でプロジェクトを選択 先ほど作成したプロジェクトを選択すると、長い文字列が表示されます。これは、 Amazon Resource Name (ARN) と呼ばれ、AWS内で一意のリソースを示すもので す。 「タグ」「イメージデータの暗号化」はデフォルトのままで大丈夫です。 「モデルをトレーニング」ボタンをクリックします。
「モデルをトレーニングしますか?」と表示されるので、「モデルをトレーニング」を クリックします。
モデルのトレーニングが始まりま した。トレーニング終了までしば らく待ちます。
モデルのトレーニングが完了しま した。
モデルの評価 トレーニングが完了したモデルのリンクをクリックします。 評価指標が簡潔に表示されています。 評価が悪い場合は、データセットの画像を増やす等の対応をしてモデルの再トレーニン グしてください。
モデルを使った推論 まず推論用のAPIサーバを立ち上げます。 その後、AWS CLIまたはAWS SDKを使って、画像の分類を行います。
推論用APIサーバの立ち上げ 「モデルを使用」タブをクリックし、「モデルの開始または停止」の「開始」をクリッ クします。 推論単位の数を増やすと、スループットが増えます。 推論が可能になるまで、しばらく待ちます。 「モデルを使用する」に表示されている「Amazonリソースネーム (ARN)」の文字列を メモします。 arn:aws: から始まる長い文字列です。
この文字列は、推論時に指定する必要があります。
画像の分類 S3バケットにある画像、または、ローカルにある画像を指定して実行します。 ローカルにある画像の分類を行う際、画像のサイズは4MB以内にしないといけません。 S3バケットにある画像ファイルを分類する場合 aws rekognition detect-custom-labels \ --project-version-arn <モデルのARN
文字列> \ --image '{"S3Object": {"Bucket": "MY_BUCKET","Name": "PATH_TO_MY_IMAGE"}}' \ --region ap-northeast-1
ローカルにある画像を指定して分類する場合 画像をbase64化して渡します。 image=(`base64 -i ./test-anomaly-1.jpg`);\ aws rekognition detect-custom-labels \ --project-version-arn
<モデルのARN 文字列> \ --image "{\"Bytes\": \"${image}\"}" \ --region ap-northeast-1
結果: { "CustomLabels": [ { "Name": "normal", "Confidence": 88.88899993896484 }
] }
推論サーバの停止 「モデルの開始または停止」の「停止」をクリックします。 テキストフォームに「stop」を入力して「停止」ボタンをクリックします。 停止するまでしばらく待ちます。
参考 チュートリアル:画像の分類 - Rekognition 使用したサンプル画像