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
570
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
データ基盤でのコンテナ活用事例 / jawsug-niigata21-data-platform-with-container
kasacchiful
0
91
AWSのコンテナサービス / jawsug_niigata21_aws_container_services
kasacchiful
1
79
Amazon S3 TablesとAmazon S3 Metadataを触ってみた / 20250201-jawsug-tochigi-s3tables-s3metadata
kasacchiful
0
270
Amazon S3 TablesとAmazon S3 Metadataを動かしてみた / 20250125-niigata-5min-tech-lt
kasacchiful
0
27
dbt coreとFargateでデータ変換 / 20240928-jawsug-toyama-hokuriku-shinkansen
kasacchiful
1
110
What we keep in mind when migrating from Serverless Framework to AWS CDK and AWS SAM
kasacchiful
1
410
AWSでIcebergを使ってデータウェアハウスを構築してみる / 20240810-jawsug-akita
kasacchiful
0
55
サーバーレスパターンを元にAWS CDKでデータ基盤を構築する / 20240731_classmethod_odyssey_online_build_a_data_infrastructures_using_aws_cdk_based_on_serverless_patterns
kasacchiful
0
540
AWS IoT 1-clickがサービス終了するので、SORACOMに移行した話 / 20240518-jawsug-niigata-iotlt-niigata
kasacchiful
0
290
Other Decks in Programming
See All in Programming
メモリウォールを超えて:キャッシュメモリ技術の進歩
kawayu
0
1.9k
Making TCPSocket.new "Happy"!
coe401_
1
120
Enterprise Web App. Development (1): Build Tool Training Ver. 5
knakagawa
1
110
Devin入門と最近のアップデートから見るDevinの進化 / Introduction to Devin and the Evolution of Devin as Seen in Recent Update
rkaga
9
4.7k
Building a macOS screen saver with Kotlin (Android Makers 2025)
zsmb
1
140
ベクトル検索システムの気持ち
monochromegane
31
9.8k
AIコーディングワークフローの試行 〜AIエージェント×ワークフローでの自動化を目指して〜
rkaga
2
3.3k
海外のアプリで見かけたかっこいいTransitionを真似てみる
shogotakasaki
1
160
サービスクラスのありがたみを発見したときの思い出 #phpcon_odawara
77web
4
630
PHP で学ぶ OAuth 入門
azuki
1
120
Preact、HooksとSignalsの両立 / Preact: Harmonizing Hooks and Signals
ssssota
1
1.3k
php-fpm がリクエスト処理する仕組みを追う / Tracing-How-php-fpm-Handles-Requests
shin1x1
5
2.9k
Featured
See All Featured
Designing for Performance
lara
607
69k
KATA
mclloyd
29
14k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Site-Speed That Sticks
csswizardry
5
480
[RailsConf 2023] Rails as a piece of cake
palkan
54
5.4k
GraphQLとの向き合い方2022年版
quramy
46
14k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3.1k
The Cost Of JavaScript in 2023
addyosmani
49
7.7k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.8k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
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 使用したサンプル画像