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
480
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
dbt coreとFargateでデータ変換 / 20240928-jawsug-toyama-hokuriku-shinkansen
kasacchiful
1
12
What we keep in mind when migrating from Serverless Framework to AWS CDK and AWS SAM
kasacchiful
1
170
AWSでIcebergを使ってデータウェアハウスを構築してみる / 20240810-jawsug-akita
kasacchiful
0
21
サーバーレスパターンを元にAWS CDKでデータ基盤を構築する / 20240731_classmethod_odyssey_online_build_a_data_infrastructures_using_aws_cdk_based_on_serverless_patterns
kasacchiful
0
340
AWS IoT 1-clickがサービス終了するので、SORACOMに移行した話 / 20240518-jawsug-niigata-iotlt-niigata
kasacchiful
0
170
AWS Application Composerで始める、 サーバーレスなデータ基盤構築 / 20240406-jawsug-hokuriku-shinkansen
kasacchiful
1
470
AWSの各種サービス紹介と活用方法 − AI・ML活用デモを交えて − / 20231208aws-aiml-seminar
kasacchiful
0
470
Amazon Lookout for Vision デモ / 20231208-aws_seminar-02-lookout-vision-demo
kasacchiful
0
480
Python機械学習勉強会in新潟のロゴが無いので、生成AIで作ってみましょう / osc2023niigata
kasacchiful
0
420
Other Decks in Programming
See All in Programming
コードレビューと私の過去と未来
jxmtst
0
140
Pydantic x Database API:turu-pyの開発
yassun7010
1
320
グローバルなソフトウェアテスト組織における課題と戦略 / Challenges and Strategies in a Global Software Testing Organization #mf_techday
imtnd
0
220
Modernisation Progressive d’Applications PHP
hhamon
0
160
いまあるチームにフィットさせる Serverless そして Platform Engineeringへの挑戦 / Serverless Fits the Team You Have and Platform Engineering
seike460
PRO
2
1.2k
Quarto Clean Theme
nicetak
0
220
DjangoNinjaで高速なAPI開発を実現する
masaya00
0
420
2024-10-02 dev2next - Application Observability like you've never heard before
jonatan_ivanov
0
120
RemixとCloudflare Stack におけるFile Upload
ossamoon
1
120
API Platform for Laravel
dunglas
1
1.2k
ファーストペンギンBot @Qiita Hackathon 2024 予選
dyson_web
0
200
NEWTにおけるiOS18対応の進め方
ryu1sazae
0
180
Featured
See All Featured
Designing the Hi-DPI Web
ddemaree
279
34k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Side Projects
sachag
452
42k
How to Ace a Technical Interview
jacobian
275
23k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
4
87
Six Lessons from altMBA
skipperchong
26
3.4k
A Tale of Four Properties
chriscoyier
155
22k
From Idea to $5000 a Month in 5 Months
shpigford
380
46k
The Invisible Side of Design
smashingmag
297
50k
Building Applications with DynamoDB
mza
90
6k
Facilitating Awesome Meetings
lara
49
6k
The Cult of Friendly URLs
andyhume
76
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 使用したサンプル画像