AWSには画像から異常検知を行うAmazon Lookout for Vision
というサービスがあります。
- わずか 30 枚のイメージで、ライブのプロセスラインから異常を発見する機械学習 (ML) モデルを簡単に作成できます。
- 視覚的な異常をリアルタイムで特定し、欠陥の削減と防止、生産品質の向上を実現します。
- 計画外のダウンタイムを防ぎ、運用コストを削減するために、目視検査データを使って潜在的な問題を発見し、是正措置を講じます。
このサービスを試してみました。
題材
画像からの異常検知なので、画像を用意する必要があります。
事前に準備されているサンプル画像を使ってもいいのですが、自分で用意したいと思いました。
そこで用意したのがこちら。
はんこです。
森口
と森田
です。
森口
を異常とすると失礼なので、森口印を正常、森田印を異常として検証しました。
(ちなみに、プリント基板のサンプル画像はこちらで提供されています。)
手順
画像の準備
Lookout for Visionでは、正常の画像が20枚以上、異常の画像が10枚以上必要になります。
せっせとはんこをおして、iPhoneで撮影しました。できるだけ同じアングルになるように取りました。
正常(森口印)
異常(森田印)
判別できそうな予感!
ワークスペースの作成
ここからはマネジメントコンソール上で行います。まずは、Lookout for Visionの画面に移動します。
左メニューのプロジェクトから、プロジェクトを作成します。名前をつけるだけです。
プロジェクトが作成できたら、「データセットを作成」をクリックします。
次の画面では、以下の項目を選択しました。
項目 | 選択肢 |
---|---|
設定オプション | 1つのデータセットを作成する |
イメージをインポート | コンピュータからイメージをアップロードする |
選択したら、「データセットを作成」をクリックします。
すると、このような画面になりますので、イメージを追加ボタンをクリックし、用意した画像をドラッグアンドドロップしてアップロードできます。
まずは正常画像(森口印)20枚をアップロードします。アップロード直後の画面はこのようになります。
「ラベルを追加」→「このページのすべてのイメージを選択」→「正常として分類」と操作を行い、「正常」のラベルを付けます。
1ページあたりの表示が9枚までなのでページングを切り替えてすべての画像に「正常」のラベルを付けた後、「変更を保存」ボタンを押します。
同じようにして、異常画像(森田印)をアップロードし、「異常」のラベルをつけます。
画像の追加アップロードは、「アクション」→「トレーニングデータセットにイメージを追加します」から行います。
フィルターで「ラベルなし」を選ぶと作業がはかどります。
30枚の画像全てにラベルをつけたら、モデルをトレーニングボタンを押し、トレーニングを開始します。
トレーニングが完了すると、トレーニング結果が表示されます。
モデル精度の検証
1回目
トライアル検出で、モデルの精度を検証してみます。
画像は正常3つと異常3つ用意しました。
結果はこちら!
そんなバカな。。全部異常に分類されました。(3勝3敗)
検証用に使った画像についても手動でラベルをつけることができ、この画像を追加してモデルの再学習ができます。
このあたりのフローが簡単にできるのはいいですね。
2回目
1回目の検出に使った6枚の画像を追加して再学習し、再度トライアル検出を行ってみました。
トライアル検出に使用する画像を間違えてしまい、6件全部を正常(森口印)にしてしまいました。(後で間違いに気づきました)
その結果がこちらです。
全部不正解(0勝6敗)です。 (´・ω・`)
やり方が悪いのか、、そもそも題材が悪いのか。。
3回目
予め用意していた画像全部つぎ込んで、最後の実施です。(全部で60枚の画像)
ちなみにこのトライアル検出も使用する画像は間違えたので、すべて正常(森口印)で行っています。
なんと!ここに来て全部正解!!!
やったね。
おまけ
異常を検知できたかがよくわからない検証になったので、改めて、はんこを押しました。
3回目と同じモデルで、森口印10枚、森田印10枚で最終検証です!
期待値 | 検証数 | 正解数 | 不正解数 |
---|---|---|---|
正常(森口印) | 10 | 10 | 0 |
異常(森田印) | 10 | 3 | 7 |
正常(森口印)はすべて正しく判定されました。
浅い知識ですが、、、
あってるか自信はありません。そしてどう判断していいかはわからない。。
指標 | 値 |
---|---|
正解率(Accuracy) | 13/20 = 65% |
適合率(Precision) | 10/17 = 58.9% |
再現率(Recall) | 10/10 = 100% |
まとめ
-
もっと接写して撮ると結果が違うかも?
-
正常20枚、異常10枚の最小枚数でいい精度を出すのは無理がありそう
-
おそらく一生分の森口さん印を押しました(笑)