Amazon Lookout for Visionで異常検出 その2(Python3.6)

はじめに

Amazon AI by ナレコム アドベントカレンダー 2020の20日目の記事です。

前回のAmazon Lookout for Visionで異常検出 その1では、AWSコンソール上でAmazon Lookout for Visionの異常検出プロジェクトを作成し、学習とトライアル検出を行いました。
今回は、boto3を用いて作成したモデルをホスティングし、推論を行ってみましょう。

開発環境

  • AWS CLI 2.1.13
  • boto3 1.16.40
  • Python 3.6
  • Windows PC

導入

IAMユーザーの作成、AWS CLI & SDKs の設定、AmazonLookoutVisionFullAccessのアクセス権限を与えます。AmazonLookoutVisionFullAccessポリシーが見つからなかったので、作成しました。

image.png

AWS CLIとboto3を更新しておきましょう。

Windows での AWS CLI バージョン 2 のインストール、更新、アンインストール

Start

作成したモデルを開始します。プロジェクト名(test)とモデルのバージョン(1)を指定します。

状態が「STARTING_HOSTING」となります。

Describe

モデルを開始したら、状態を確認しましょう。

状態が「STARTING_HOSTING」となっています。

「HOSTED」になれば使用可能です。

もしモデルが停止していた場合は、「TRAINED」となっています。

Detect

モデルの状態が「HOSTED」になったら、推論してみましょう。これらの画像をテストしました。

異常(capsule/test/squeeze/001.png) 正常(capsule/test/good/022.png)
000.png 022.png

正しい予測結果が出ています。

モデルが「STARTING_HOSTING」の状態のときに推論した場合、以下のようなエラーが出ます。

また、AWSコンソールのLookout for Visionのダッシュボードで検出結果を見ることができます。

最初に異常画像を推論した結果です。

image.png

次に正常画像を推論した結果です。ダッシュボードはすぐに更新されます。

image.png

Stop

モデルを停止します。停止するまで料金かかるので注意しましょう。

まとめ

前回作ったモデルをboto3を用いてホスティングし、推論してみました。これで運用できそうです。

参考