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
WorkersでDiscord botを試してみた / 20250822workers-tech-talk-niigata
kasacchiful
0
33
地域コミュニティへの「感謝」と「恩返し」 / 20250726jawsug-tochigi
kasacchiful
0
140
Amazon Q Developer for CLI を使って PHP Conference 新潟 2025 参加者向けにグルメサイトを構築した話 / 20250620niigata-5min-tech
kasacchiful
1
89
ワイがおすすめする新潟の食 / 20250530phpconf-niigata-eve
kasacchiful
0
380
生成AIでメタデータを生成してみた / 20250525generate-metadata-using-generative-ai
kasacchiful
0
72
Strands Agents SDK で AIエージェント作成 を試してみた / 20250525strands-agents
kasacchiful
0
260
いろんな世界を見てみよう / 20250508ninno_tech_fest
kasacchiful
0
40
Amazon Q Developer for CLIのある生活 / 20250427ai_craft_hacks_niigata1
kasacchiful
1
96
AWSのコンテナサービス / jawsug-akita-aws-container-services
kasacchiful
0
89
Other Decks in Programming
See All in Programming
Portapad紹介プレゼンテーション
gotoumakakeru
1
130
GUI操作LLMの最新動向: UI-TARSと関連論文紹介
kfujikawa
0
1k
DockerからECSへ 〜 AWSの海に出る前に知っておきたいこと 〜
ota1022
5
1.8k
『リコリス・リコイル』に学ぶ!! 〜キャリア戦略における計画的偶発性理論と変わる勇気の重要性〜
wanko_it
1
600
【第4回】関東Kaggler会「Kaggleは執筆に役立つ」
mipypf
0
880
Nuances on Kubernetes - RubyConf Taiwan 2025
envek
0
200
WebAssemblyインタプリタを書く ~Component Modelを添えて~
ruccho
1
920
サイトを作ったらNFCタグキーホルダーを爆速で作れ!
yuukis
0
520
20250808_AIAgent勉強会_ClaudeCodeデータ分析の実運用〜競馬を題材に回収率100%の先を目指すメソッドとは〜
kkakeru
0
210
書き捨てではなく継続開発可能なコードをAIコーディングエージェントで書くために意識していること
shuyakinjo
1
310
ECS初心者の仲間 – TUIツール「e1s」の紹介
keidarcy
0
100
TROCCO×dbtで実現する人にもAIにもやさしいデータ基盤
nealle
0
330
Featured
See All Featured
Done Done
chrislema
185
16k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
229
22k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
139
34k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.4k
Raft: Consensus for Rubyists
vanstee
140
7.1k
Why Our Code Smells
bkeepers
PRO
338
57k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.9k
jQuery: Nuts, Bolts and Bling
dougneiner
64
7.9k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
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 使用したサンプル画像