5
3

More than 1 year has passed since last update.

Amazon Lookout for Visionを試してみました(森口さんvs森田さん)

Posted at

AWSには画像から異常検知を行うAmazon Lookout for Visionというサービスがあります。

  • わずか 30 枚のイメージで、ライブのプロセスラインから異常を発見する機械学習 (ML) モデルを簡単に作成できます。
  • 視覚的な異常をリアルタイムで特定し、欠陥の削減と防止、生産品質の向上を実現します。
  • 計画外のダウンタイムを防ぎ、運用コストを削減するために、目視検査データを使って潜在的な問題を発見し、是正措置を講じます。

このサービスを試してみました。

題材

画像からの異常検知なので、画像を用意する必要があります。
事前に準備されているサンプル画像を使ってもいいのですが、自分で用意したいと思いました。
そこで用意したのがこちら。

20220125_111717764_iOS.jpg

はんこです。
森口森田です。
森口を異常とすると失礼なので、森口印を正常、森田印を異常として検証しました。

(ちなみに、プリント基板のサンプル画像はこちらで提供されています。)

手順

画像の準備

Lookout for Visionでは、正常の画像が20枚以上、異常の画像が10枚以上必要になります。
せっせとはんこをおして、iPhoneで撮影しました。できるだけ同じアングルになるように取りました。

正常(森口印)

68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f313138303434312f39656636663337362d633034342d343264612d353962642d3037383236646333303939362e6a706567.jpeg

異常(森田印)

20220125_112023894_iOS.jpg

判別できそうな予感!

ワークスペースの作成

ここからはマネジメントコンソール上で行います。まずは、Lookout for Visionの画面に移動します。

ap-northeast-1.console.aws.amazon.com_lookoutvision(Surface Pro 7).png

左メニューのプロジェクトから、プロジェクトを作成します。名前をつけるだけです。
プロジェクトが作成できたら、「データセットを作成」をクリックします。

ap-northeast-1.console.aws.amazon.com_lookoutvision(Surface Pro 7) (1).png

次の画面では、以下の項目を選択しました。

項目 選択肢
設定オプション  1つのデータセットを作成する
イメージをインポート コンピュータからイメージをアップロードする

選択したら、「データセットを作成」をクリックします。

すると、このような画面になりますので、イメージを追加ボタンをクリックし、用意した画像をドラッグアンドドロップしてアップロードできます。

まずは正常画像(森口印)20枚をアップロードします。アップロード直後の画面はこのようになります。

ap-northeast-1.console.aws.amazon.com_lookoutvision(Surface Pro 7) (3).png

「ラベルを追加」→「このページのすべてのイメージを選択」→「正常として分類」と操作を行い、「正常」のラベルを付けます。
1ページあたりの表示が9枚までなのでページングを切り替えてすべての画像に「正常」のラベルを付けた後、「変更を保存」ボタンを押します。

同じようにして、異常画像(森田印)をアップロードし、「異常」のラベルをつけます。
画像の追加アップロードは、「アクション」→「トレーニングデータセットにイメージを追加します」から行います。
フィルターで「ラベルなし」を選ぶと作業がはかどります。

30枚の画像全てにラベルをつけたら、モデルをトレーニングボタンを押し、トレーニングを開始します。

トレーニングが完了すると、トレーニング結果が表示されます。

ap-northeast-1.console.aws.amazon.com_lookoutvision_region=ap-northeast-1(Surface Pro 7).png

モデル精度の検証

1回目

トライアル検出で、モデルの精度を検証してみます。
画像は正常3つと異常3つ用意しました。
結果はこちら!

ap-northeast-1.console.aws.amazon.com_lookoutvision_region=ap-northeast-1(Surface Pro 7) (1).png

そんなバカな。。全部異常に分類されました。(3勝3敗)

検証用に使った画像についても手動でラベルをつけることができ、この画像を追加してモデルの再学習ができます。
このあたりのフローが簡単にできるのはいいですね。

2回目

1回目の検出に使った6枚の画像を追加して再学習し、再度トライアル検出を行ってみました。

トライアル検出に使用する画像を間違えてしまい、6件全部を正常(森口印)にしてしまいました。(後で間違いに気づきました)

その結果がこちらです。

ap-northeast-1.console.aws.amazon.com_lookoutvision_region=ap-northeast-1(Surface Pro 7) (4).png

全部不正解(0勝6敗)です。 (´・ω・`)
やり方が悪いのか、、そもそも題材が悪いのか。。

3回目

予め用意していた画像全部つぎ込んで、最後の実施です。(全部で60枚の画像)

ちなみにこのトライアル検出も使用する画像は間違えたので、すべて正常(森口印)で行っています。

ap-northeast-1.console.aws.amazon.com_lookoutvision_region=ap-northeast-1(Surface Pro 7) (5).png

なんと!ここに来て全部正解!!!

やったね。

おまけ

異常を検知できたかがよくわからない検証になったので、改めて、はんこを押しました。
3回目と同じモデルで、森口印10枚、森田印10枚で最終検証です!

ap-northeast-1.console.aws.amazon.com_lookoutvision_region=ap-northeast-1(Surface Pro 7) (6).png

期待値 検証数 正解数 不正解数
正常(森口印) 10 10 0
異常(森田印) 10 3 7

正常(森口印)はすべて正しく判定されました。

浅い知識ですが、、、
あってるか自信はありません。そしてどう判断していいかはわからない。。

指標
正解率(Accuracy) 13/20 = 65%
適合率(Precision) 10/17 = 58.9%
再現率(Recall) 10/10 = 100%

まとめ

  • もっと接写して撮ると結果が違うかも?
  • 正常20枚、異常10枚の最小枚数でいい精度を出すのは無理がありそう

  • おそらく一生分の森口さん印を押しました(笑)

20220125_132804482_iOS.jpg

5
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
3