Vieureka(AIカメラ)で異常検知デモを作成しました!

概要

2022年11月に横浜で開催された画像認識 AI EXPO(Edge Tech+ 2022内)へ出展したことをお知らせしておりましたが、今回は出展に際して新たに作成した異常検知デモをご紹介いたします。

デモ内容

今回作成したデモは一定周期で流れてくるお皿の上に乗った紙に異常があるかどうかを判定する、といったものです。特徴としては、合計12枚と非常に少ない枚数の正常系の画像データの学習のみで異常検知を実現しているという点です。従来の異常検知モデルではありがちだった異常画像の準備に掛かるコストや膨大なラベリング作業から解放されています。

ユーザーは正常系の画像の登録を行うのみで下図のようにヒートマップとともにOK/NGの判定結果を取得することができます。

例えば今回のデモの場合、判定対象である紙に書き込みや欠損、しわなどがあれば異常として判定されます。

実際の様子

実際にデモを行なっている様子がこちらです。

紙に異常が発見されなかった場合はピンポーンの音とともにOK判定が画面に表示されます。
異常が発見された場合はブッブーの音とともにNG判定が画面に表示されます。
動画内では紙に書き込みがあるのを検知してNG判定がなされており、異常と検知した部分がヒートマップにも反映されていることが確認できます。

実装内容

今回のデモのフローは以下のようになっています。


今回のデモはVieureka側では1秒に一回撮影される画像の中に対象の紙が乗ったお皿が含まれているかを判断しています。画像内の白いお皿を目印に画像を正方形に抽出し、その後お皿の中央に貼ってある赤い目印が隠れている場合、画像情報をAWS上の推論APIへPOSTします。

クラウド側では画像情報を受け取りAWS Lambda上で推論を実施、判定結果とその画像をそれぞれAmazon DynamoDBとAmazon S3へ保存します。Lambda上での推論の実装方法については当サイトの研究開発ブログ記事「画像を使った異常検知デモの推論をAWS Lambdaで検証する」で詳細に説明しています。

推論がエッジ側(Vieureka内)で完結していない理由としては、2022年10月時点ではでは今回使用したモデルをVieureka内で使用することが難しかったため、このようなアーキテクチャでの実装となっています。

なお、今回のデモの推論で使用した学習モデルPatchCoreの詳細や具体的な実装方法に関しては当サイトの研究開発ブログ記事「アノテーションも異常データも不要?教師なし学習モデルPatchCoreとは」で分かりやすく説明しています。

これから

今回のデモで採用したモデルは比較的少ない枚数の正常画像のみで異常検知を実現でき、異常検知の導入のハードルが低く試しやすいものとなっており、同時に、限られた環境下であれば実用に耐えうる程度の精度での判定も可能なので活用の幅が非常に広いモデルだと考えています。

また、今回は異常検知の推論自体はクラウド側で行なっていますが、推論も含めてエッジ側で完結できるように改善を進めていく予定です。
今後も進捗があり次第、報告をしていきたいと思います。