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 Lookout for Vision デモ / 20231208-aws_sem...
Search
kasacchiful
December 08, 2023
Programming
0
490
Amazon Lookout for Vision デモ / 20231208-aws_seminar-02-lookout-vision-demo
2023/12/08 (金)
新潟県工業技術総合研究所様にてデモンストレーションした
Amazon Lookout for Visionの参考資料
kasacchiful
December 08, 2023
Tweet
Share
More Decks by kasacchiful
See All by kasacchiful
dbt coreとFargateでデータ変換 / 20240928-jawsug-toyama-hokuriku-shinkansen
kasacchiful
1
41
What we keep in mind when migrating from Serverless Framework to AWS CDK and AWS SAM
kasacchiful
1
230
AWSでIcebergを使ってデータウェアハウスを構築してみる / 20240810-jawsug-akita
kasacchiful
0
27
サーバーレスパターンを元にAWS CDKでデータ基盤を構築する / 20240731_classmethod_odyssey_online_build_a_data_infrastructures_using_aws_cdk_based_on_serverless_patterns
kasacchiful
0
380
AWS IoT 1-clickがサービス終了するので、SORACOMに移行した話 / 20240518-jawsug-niigata-iotlt-niigata
kasacchiful
0
200
AWS Application Composerで始める、 サーバーレスなデータ基盤構築 / 20240406-jawsug-hokuriku-shinkansen
kasacchiful
1
510
AWSの各種サービス紹介と活用方法 − AI・ML活用デモを交えて − / 20231208aws-aiml-seminar
kasacchiful
0
490
Amazon Rekognition デモ / 20231208-aws_seminar-01-rekognition-demo
kasacchiful
0
500
Python機械学習勉強会in新潟のロゴが無いので、生成AIで作ってみましょう / osc2023niigata
kasacchiful
0
440
Other Decks in Programming
See All in Programming
Dev ContainersとGitHub Codespacesの素敵な関係
ymd65536
1
140
NSOutlineView何もわからん:( 前編 / I Don't Understand About NSOutlineView :( Pt. 1
usagimaru
0
300
as(型アサーション)を書く前にできること
marokanatani
4
670
From Subtype Polymorphism To Typeclass-based Ad hoc Polymorphism- An Example
philipschwarz
PRO
0
200
シールドクラスをはじめよう / Getting Started with Sealed Classes
mackey0225
3
430
What’s New in Compose Multiplatform - A Live Tour (droidcon London 2024)
zsmb
1
460
役立つログに取り組もう
irof
28
9.4k
ECS Service Connectのこれまでのアップデートと今後のRoadmapを見てみる
tkikuc
2
240
距離関数を極める! / SESSIONS 2024
gam0022
0
130
色々なIaCツールを実際に触って比較してみる
iriikeita
0
320
Googleのテストサイズを活用したテスト環境の構築
toms74209200
0
310
【Kaigi on Rails 2024】YOUTRUST スポンサーLT
krpk1900
1
320
Featured
See All Featured
Designing Experiences People Love
moore
138
23k
[RailsConf 2023] Rails as a piece of cake
palkan
51
4.9k
GitHub's CSS Performance
jonrohan
1030
460k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
25
1.8k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
The Cult of Friendly URLs
andyhume
78
6k
The Pragmatic Product Professional
lauravandoore
31
6.3k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Thoughts on Productivity
jonyablonski
67
4.3k
Art, The Web, and Tiny UX
lynnandtonic
297
20k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
126
18k
Transcript
Amazon Lookout for Vision デモ 2023-12-08
画像分類のデモ クッキーの割れ判別 データはAWSが公開しているサンプル を用います。
1. 画像の収集 「トレーニングデータセット」と「テストデータセット」を用意 画像はPNG形式またはJPEG形式である必要あり
2. 画像のインポート いずれかの方法で画像をインポートします。 今回はS3バケットからインポートします。 ローカルPCからインポート S3バケットからインポート 画像を含むフォルダ名を使用して画像のラベル付けが可能 Amazon SageMaker Ground
Truth マニフェストファイルをインポート
S3バケットに画像をアップロ ード S3バケットを作成します。 20231208-iri-lookout- vision-demo-kasahara とい う名前のバケットを作りまし た。
S3バケットに画像をアップロード バケットに画像をアップロードします。 以下のフォルダに分けてアップロード assets/train/normal/ assets/train/anomaly/ assets/test/normal/ assets/test/anomaly/
プロジェクトを作成 Amazon Lookout for Visionのプロジェクトを作成します。 左側メニューの「プロジェクト」から「プロジェクトを作成」をクリック プロジェクト名を適宜入力して「プロジェクトを作成」をクリック 例: 20231208-iri-lookout-vision-demo 「データセットを作成」をクリック
データセットを作成 データセットを作成の画面で以下のように設定する 「トレーニングデータセットとテストデータセットを作成する」を選択 「トレーニングデータセットの詳細」では「S3バケットからイメージをインポート する」を選択 S3 URIは以下のように設定する s3://< バケット名>/train までのフォルダパス/
例: s3://20231208-iri-lookout-vision-demo- kasahara/assets/train/ 自動ラベル付けは「フォルダ名に基づいてイメージに自動的にラベルをアタッチ」 にチェックをいれる
「データセットの詳細をテストする」では「S3バケットからイメージをインポートす る」を選択 S3 URIは以下のように設定する s3://< バケット名>/test までのフォルダパス/ 例: s3://20231208-iri-lookout-vision-demo-kasahara/assets/test/ 自動ラベル付けは「フォルダ名に基づいてイメージに自動的にラベルをアタッチ」にチ
ェックをいれる
「データセットを作成」ボタンをクリックする この時、S3バケットにまだバケットポリシーを設定してない場合は、ブラウザの別 タブで開いたS3の設定画面にてバケットポリシーを設定します。
データセットに「トレーニング」 と「テスト」の画像が登録されて いることを確認ください。
テスト用の異常画像を追加してラベル付け Amazon Lookout for Visionの画像分類では、トレーニング・テストの各分類において少なく ても10枚以上の画像が必要です。 サンプルで用意された画像は、テスト用の異常画像が8枚しか用意されていないため、追加で 2枚登録する必要があります。 今回はデモなので、トレーニング用の異常画像の中から2枚コピーして使おうと思います。
「アクション」から「テストデータセットを追加します」をクリックします。 トレーニング用の異常画像の中から2枚選択して、「画像をアップロード」をクリックし ます。 アップロードした画像はテスト用のところにあります。これらの画像を「異常として分 類」を設定します。 本来なら、テスト用にアップロードしたトレーニング用の異常画像は、トレーニング用の異 常画像から除いた状態でトレーニングすべきですが、今回はデモなので、このままトレーニ ングに使用します。
モデルのトレーニング データセットの画面から「モデルをトレーニング」ボタンをクリックします。 デフォルトのまま、「モデルをトレーニング」ボタンをクリックします。 「モデルをトレーニングしますか?」と表示されるので、「モデルをトレーニング」を クリックします。
モデルのトレーニングが始まりま した。トレーニング終了までしば らく待ちます。
モデルのトレーニングが完了しま した。
モデルの評価 トレーニングが完了したモデルのリンクをクリックします。 評価指標が表示されています。 Rekognitionより、詳細な結果が確認できます。 評価が悪い場合は、データセットの画像を増やす等の対応をしてモデルの再トレーニン グしてください。
モデルを使った推論 Amazon Lookout for Visionでは、APIサーバによる推論のほか、エッジデバイス側での推論 もサポートしています。 エッジデバイス側の推論では、AWS IoT Greengrass用のパッケージが作成されますので、 エッジデバイス側ではAWS
IoT Greengrassのライブラリを用いて推論します。 今回のデモは、APIサーバによる推論を実施します。 まず推論用のAPIサーバをAWS CLIまたはAWS SDKを使って立ち上げます。 その後、AWS CLIまたはAWS SDKを使って、画像の分類を行います。
推論用APIサーバの立ち上げ 「モデルを使用」をクリックし、「APIをクラウドに統合」をクリックします。 AWS CLIコマンドが表示されます。「モデルを開始」のCLIコマンド文字列をコピーし て、ターミナルで実行します。 aws lookoutvision start-model \ --project-name
20231208-iri-lookout-vision-demo \ --model-version 1 \ --min-inference-units 1 ## 出力結果 { "Status": "STARTING_HOSTING" }
モデルパフォーマンスメトリクスのステータスでは、「ホスティングを開始中」になっ ています。 ステータスが「ホスト済み」になるまで待ちます。 CLIでも確認できます。 aws lookoutvision describe-model \ --project-name 20231208-iri-lookout-vision-demo
\ --model-version 1
## 出力結果 { "ModelDescription": { "ModelVersion": "1", "ModelArn": "arn:aws:lookoutvision:ap-northeast-1:660035202545:model/20231208-iri-lookout-vision-demo/1", "CreationTimestamp":
"2023-12-07T13:50:39.990000+09:00", "Status": "HOSTED", "StatusMessage": "The model is running.", "Performance": { "F1Score": 1.0, "Recall": 1.0, "Precision": 1.0 }, "OutputConfig": { "S3Location": { "Bucket": "lookoutvision-ap-northeast-1-e5a7733458", "Prefix": "projects/20231208-iri-lookout-vision-demo/models/" } }, "EvaluationManifest": { "Bucket": "lookoutvision-ap-northeast-1-e5a7733458", "Key": "projects/20231208-iri-lookout-vision-demo/models/EvaluationManifest-20231208-iri-lookout-vision-demo-1.json" }, "EvaluationResult": { "Bucket": "lookoutvision-ap-northeast-1-e5a7733458", "Key": "projects/20231208-iri-lookout-vision-demo/models/EvaluationResult-20231208-iri-lookout-vision-demo-1.json" }, "EvaluationEndTimestamp": "2023-12-07T14:09:24.886000+09:00" } }
画像の分類 「モデルを使用」をクリックし、「APIをクラウドに統合」をクリックします。 AWS CLIコマンドが表示されます。「モデルを停止」のCLIコマンド文字列をコピーし て、ターミナルで実行します。 --body には、ローカルにある画像のパスを指定します。 aws lookoutvision detect-anomalies
\ --project-name 20231208-iri-lookout-vision-demo \ --model-version 1 \ --content-type image/jpeg \ --body /path/to/image.jpeg PNG画像の場合、 --content-type の値は image/png となります。
例1: aws lookoutvision detect-anomalies \ --project-name 20231208-iri-lookout-vision-demo \ --model-version 1
\ --content-type image/jpeg \ --body ./test-normal-1.jpg 結果: { "DetectAnomalyResult": { "Source": { "Type": "direct" }, "IsAnomalous": false, "Confidence": 0.9268283843994141 } }
例2: aws lookoutvision detect-anomalies \ --project-name 20231208-iri-lookout-vision-demo \ --model-version 1
\ --content-type image/jpeg \ --body ./test-anomaly-1.jpg 結果: { "DetectAnomalyResult": { "Source": { "Type": "direct" }, "IsAnomalous": true, "Confidence": 0.9038475751876831 } }
推論サーバの停止 「モデルを使用」をクリックし、「APIをクラウドに統合」をクリックします。 AWS CLIコマンドが表示されます。「モデルを停止」のCLIコマンド文字列をコピーし て、ターミナルで実行します。 aws lookoutvision stop-model \ --project-name
20231208-iri-lookout-vision-demo \ --model-version 1 ## 出力結果 { "Status": "STOPPING_HOSTING" }
ステータスが「トレーニングが完了しました」になれば、APIホスティングは終了しまし た。
参考 Getting started with Amazon Lookout for Vision - Amazon
Lookout for Vision 使用したサンプル画像