Slide 1

Slide 1 text

Amazon Lookout for Vision デモ 2023-12-08

Slide 2

Slide 2 text

画像分類のデモ クッキーの割れ判別 データはAWSが公開しているサンプル を用います。

Slide 3

Slide 3 text

1. 画像の収集 「トレーニングデータセット」と「テストデータセット」を用意 画像はPNG形式またはJPEG形式である必要あり

Slide 4

Slide 4 text

2. 画像のインポート いずれかの方法で画像をインポートします。 今回はS3バケットからインポートします。 ローカルPCからインポート S3バケットからインポート 画像を含むフォルダ名を使用して画像のラベル付けが可能 Amazon SageMaker Ground Truth マニフェストファイルをインポート

Slide 5

Slide 5 text

S3バケットに画像をアップロ ード S3バケットを作成します。 20231208-iri-lookout- vision-demo-kasahara とい う名前のバケットを作りまし た。

Slide 6

Slide 6 text

S3バケットに画像をアップロード バケットに画像をアップロードします。 以下のフォルダに分けてアップロード assets/train/normal/ assets/train/anomaly/ assets/test/normal/ assets/test/anomaly/

Slide 7

Slide 7 text

プロジェクトを作成 Amazon Lookout for Visionのプロジェクトを作成します。 左側メニューの「プロジェクト」から「プロジェクトを作成」をクリック プロジェクト名を適宜入力して「プロジェクトを作成」をクリック 例: 20231208-iri-lookout-vision-demo 「データセットを作成」をクリック

Slide 8

Slide 8 text

データセットを作成 データセットを作成の画面で以下のように設定する 「トレーニングデータセットとテストデータセットを作成する」を選択 「トレーニングデータセットの詳細」では「S3バケットからイメージをインポート する」を選択 S3 URIは以下のように設定する s3://< バケット名>/train までのフォルダパス/ 例: s3://20231208-iri-lookout-vision-demo- kasahara/assets/train/ 自動ラベル付けは「フォルダ名に基づいてイメージに自動的にラベルをアタッチ」 にチェックをいれる

Slide 9

Slide 9 text

「データセットの詳細をテストする」では「S3バケットからイメージをインポートす る」を選択 S3 URIは以下のように設定する s3://< バケット名>/test までのフォルダパス/ 例: s3://20231208-iri-lookout-vision-demo-kasahara/assets/test/ 自動ラベル付けは「フォルダ名に基づいてイメージに自動的にラベルをアタッチ」にチ ェックをいれる

Slide 10

Slide 10 text

「データセットを作成」ボタンをクリックする この時、S3バケットにまだバケットポリシーを設定してない場合は、ブラウザの別 タブで開いたS3の設定画面にてバケットポリシーを設定します。

Slide 11

Slide 11 text

データセットに「トレーニング」 と「テスト」の画像が登録されて いることを確認ください。

Slide 12

Slide 12 text

テスト用の異常画像を追加してラベル付け Amazon Lookout for Visionの画像分類では、トレーニング・テストの各分類において少なく ても10枚以上の画像が必要です。 サンプルで用意された画像は、テスト用の異常画像が8枚しか用意されていないため、追加で 2枚登録する必要があります。 今回はデモなので、トレーニング用の異常画像の中から2枚コピーして使おうと思います。

Slide 13

Slide 13 text

「アクション」から「テストデータセットを追加します」をクリックします。 トレーニング用の異常画像の中から2枚選択して、「画像をアップロード」をクリックし ます。 アップロードした画像はテスト用のところにあります。これらの画像を「異常として分 類」を設定します。 本来なら、テスト用にアップロードしたトレーニング用の異常画像は、トレーニング用の異 常画像から除いた状態でトレーニングすべきですが、今回はデモなので、このままトレーニ ングに使用します。

Slide 14

Slide 14 text

モデルのトレーニング データセットの画面から「モデルをトレーニング」ボタンをクリックします。 デフォルトのまま、「モデルをトレーニング」ボタンをクリックします。 「モデルをトレーニングしますか?」と表示されるので、「モデルをトレーニング」を クリックします。

Slide 15

Slide 15 text

モデルのトレーニングが始まりま した。トレーニング終了までしば らく待ちます。

Slide 16

Slide 16 text

モデルのトレーニングが完了しま した。

Slide 17

Slide 17 text

モデルの評価 トレーニングが完了したモデルのリンクをクリックします。 評価指標が表示されています。 Rekognitionより、詳細な結果が確認できます。 評価が悪い場合は、データセットの画像を増やす等の対応をしてモデルの再トレーニン グしてください。

Slide 18

Slide 18 text

モデルを使った推論 Amazon Lookout for Visionでは、APIサーバによる推論のほか、エッジデバイス側での推論 もサポートしています。 エッジデバイス側の推論では、AWS IoT Greengrass用のパッケージが作成されますので、 エッジデバイス側ではAWS IoT Greengrassのライブラリを用いて推論します。 今回のデモは、APIサーバによる推論を実施します。 まず推論用のAPIサーバをAWS CLIまたはAWS SDKを使って立ち上げます。 その後、AWS CLIまたはAWS SDKを使って、画像の分類を行います。

Slide 19

Slide 19 text

推論用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" }

Slide 20

Slide 20 text

モデルパフォーマンスメトリクスのステータスでは、「ホスティングを開始中」になっ ています。 ステータスが「ホスト済み」になるまで待ちます。 CLIでも確認できます。 aws lookoutvision describe-model \ --project-name 20231208-iri-lookout-vision-demo \ --model-version 1

Slide 21

Slide 21 text

## 出力結果 { "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" } }

Slide 22

Slide 22 text

画像の分類 「モデルを使用」をクリックし、「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 となります。

Slide 23

Slide 23 text

例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 } }

Slide 24

Slide 24 text

例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 } }

Slide 25

Slide 25 text

推論サーバの停止 「モデルを使用」をクリックし、「APIをクラウドに統合」をクリックします。 AWS CLIコマンドが表示されます。「モデルを停止」のCLIコマンド文字列をコピーし て、ターミナルで実行します。 aws lookoutvision stop-model \ --project-name 20231208-iri-lookout-vision-demo \ --model-version 1 ## 出力結果 { "Status": "STOPPING_HOSTING" }

Slide 26

Slide 26 text

ステータスが「トレーニングが完了しました」になれば、APIホスティングは終了しまし た。

Slide 27

Slide 27 text

参考 Getting started with Amazon Lookout for Vision - Amazon Lookout for Vision 使用したサンプル画像