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
4
ワイがおすすめする新潟の食 / 20250912jasst-niigata-lt
kasacchiful
0
26
WorkersでDiscord botを試してみた / 20250822workers-tech-talk-niigata
kasacchiful
1
41
地域コミュニティへの「感謝」と「恩返し」 / 20250726jawsug-tochigi
kasacchiful
0
160
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
350
いろんな世界を見てみよう / 20250508ninno_tech_fest
kasacchiful
0
46
Other Decks in Programming
See All in Programming
AIと人間の共創開発!OSSで試行錯誤した開発スタイル
mae616
1
560
オープンソースソフトウェアへの解像度🔬
utam0k
16
3k
Leading Effective Engineering Teams in the AI Era
addyosmani
6
450
After go func(): Goroutines Through a Beginner’s Eye
97vaibhav
0
400
Cursorハンズオン実践!
eltociear
2
1.1k
Pull-Requestの内容を1クリックで動作確認可能にするワークフロー
natmark
2
520
非同期jobをtransaction内で 呼ぶなよ!絶対に呼ぶなよ!
alstrocrack
0
960
いま中途半端なSwift 6対応をするより、Default ActorやApproachable Concurrencyを有効にしてからでいいんじゃない?
yimajo
2
430
What Spring Developers Should Know About Jakarta EE
ivargrimstad
0
180
Devoxx BE - Local Development in the AI Era
kdubois
0
130
あなたとKaigi on Rails / Kaigi on Rails + You
shimoju
0
160
バッチ処理を「状態の記録」から「事実の記録」へ
panda728
PRO
0
160
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Git: the NoSQL Database
bkeepers
PRO
431
66k
Leading Effective Engineering Teams in the AI Era
addyosmani
6
450
The Invisible Side of Design
smashingmag
302
51k
Making the Leap to Tech Lead
cromwellryan
135
9.6k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
33
2.3k
GitHub's CSS Performance
jonrohan
1032
470k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Typedesign – Prime Four
hannesfritz
42
2.8k
The Straight Up "How To Draw Better" Workshop
denniskardys
238
140k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
The Power of CSS Pseudo Elements
geoffreycrofte
79
6k
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 使用したサンプル画像