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
660
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
ワイがおすすめする新潟の食 / 20250912jasst-niigata-lt
kasacchiful
0
16
WorkersでDiscord botを試してみた / 20250822workers-tech-talk-niigata
kasacchiful
1
38
地域コミュニティへの「感謝」と「恩返し」 / 20250726jawsug-tochigi
kasacchiful
0
160
Amazon Q Developer for CLI を使って PHP Conference 新潟 2025 参加者向けにグルメサイトを構築した話 / 20250620niigata-5min-tech
kasacchiful
1
95
ワイがおすすめする新潟の食 / 20250530phpconf-niigata-eve
kasacchiful
0
400
生成AIでメタデータを生成してみた / 20250525generate-metadata-using-generative-ai
kasacchiful
0
81
Strands Agents SDK で AIエージェント作成 を試してみた / 20250525strands-agents
kasacchiful
0
300
いろんな世界を見てみよう / 20250508ninno_tech_fest
kasacchiful
0
43
Amazon Q Developer for CLIのある生活 / 20250427ai_craft_hacks_niigata1
kasacchiful
1
100
Other Decks in Programming
See All in Programming
AIと私たちの学習の変化を考える - Claude Codeの学習モードを例に
azukiazusa1
10
4.3k
rage against annotate_predecessor
junk0612
0
170
Updates on MLS on Ruby (and maybe more)
sylph01
1
180
そのAPI、誰のため? Androidライブラリ設計における利用者目線の実践テクニック
mkeeda
2
1.8k
私の後悔をAWS DMSで解決した話
hiramax
4
210
Deep Dive into Kotlin Flow
jmatsu
1
360
プロポーザル駆動学習 / Proposal-Driven Learning
mackey0225
2
1.3k
Flutter with Dart MCP: All You Need - 박제창 2025 I/O Extended Busan
itsmedreamwalker
0
150
アルテニア コンサル/ITエンジニア向け 採用ピッチ資料
altenir
0
110
MCPでVibe Working。そして、結局はContext Eng(略)/ Working with Vibe on MCP And Context Eng
rkaga
5
2.3k
Improving my own Ruby thereafter
sisshiki1969
1
160
複雑なフォームに立ち向かう Next.js の技術選定
macchiitaka
2
180
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
77
6k
A Tale of Four Properties
chriscoyier
160
23k
Side Projects
sachag
455
43k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
We Have a Design System, Now What?
morganepeng
53
7.8k
Balancing Empowerment & Direction
lara
3
620
The Pragmatic Product Professional
lauravandoore
36
6.9k
Why Our Code Smells
bkeepers
PRO
339
57k
Rebuilding a faster, lazier Slack
samanthasiow
83
9.2k
Navigating Team Friction
lara
189
15k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
113
20k
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 使用したサンプル画像