ISPは、AIを使った異常検知エンジン「gLupe」の開発に成功しました。Factory Automation(以降、FA) / 監視ソリューションでの応用が期待され、多くの注目を集めています。本稿では、ISPのAI異常検知エンジンの仕組みと特徴についてご紹介します。
by Tadaharu Inoue 2016/06/27
≪ 製品Webページはこちら https://glupe.jp ≫
「異常検知」とは
定常状態から外れた状態を検知すること全般を「異常検知」と呼んでいます。例えば、製造ラインに流れている製品のキズを自動で見つけたり、食品への異物混入を検知したり、監視カメラに映っている映像からいつもと違う状況を検知したり…、といった用途を想定しています。
「異常検知」をAIで解決する際の課題
これらのシチュエーションに共通していることとして、異常状態のデータを収集しにくい、といったことが挙げられます。
通常、Deep Learningで何かを判別させるときには、学習用に判別対象のラベル付きデータが大量に必要になります(各ラベル毎に数千~数万の単位で必要)。例えば、製造ラインに流れている製品異常を自動検知する問題で考えてみましょう。Deep Learningでこの問題を解決するためには、「正常な製品画像」と「異常な製品画像」のデータセットが必要になります。「正常な製品画像」については、製造ラインにカメラを設置して撮影し続けることで比較的簡単に収集することができます。しかし、「異常な製品画像」についてはどうでしょうか。カメラを設置したとしても異常が起こらない限り画像データを取得することができません。仮に取得できたとしても、異常部分だけを切出して「異常」というラベルを付けるための人手がかかりますし、そもそも異常状態というのは頻繁に発生するものではないので、Deep Learningの学習に耐える枚数を収集するには膨大な時間を費やす必要があります。
ISPのAI異常検知エンジン「gLupe」の特徴
この問題を解決したのが、ISPのAI異常検知エンジン「gLupe」です。gLupeの学習に必要なデータは、正常状態のデータのみです。異常状態のデータを収集する必要はありません。
先ほどの製造ラインに流れている製品の例でいうと、「正常な製品画像」データのみを使ってDeep Learningで学習し、製品の正常状態ををひたすら覚えこませることになります。すると、判別器は製品の正常状態がどういうものかを認識できるようになり、逆にキズや汚れのついた製品を見ると「いつもと違う」と反応できるようになります。
このように、正常状態のデータのみを使って学習し、正常な状態が何たるかを覚えこませることで異常状態に反応できるようにしているところが、gLupeの最大の特徴です。
囲碁盤と碁石を使ったデモ
最後に、gLupeを用いたデモシステムについて紹介します。今回のターゲットは「囲碁」の画像です。正常状態と異常状態を以下のように定義しました。
正常状態
碁盤の上に碁石がのっている状態
異常状態
碁盤の上に碁石以外のものがのっている状態や、碁石にキズが付いている状態
まずは、学習に用いる正常状態の画像を収集します。碁盤に碁石がのっている画像を動画撮影し、静止画に切出したものを学習データとしました。
次に、収集した正常状態のデータをDeep Learningで学習します。前述したとおり、gLupeでは学習時に異常状態のデータを必要としません。
学習済みの判別器に正常状態の画像と異常状態の画像をそれぞれ入力してみました。以下の出力結果は、異常度をヒートマップで表現しています。ヒートマップ中の赤成分の多いところが、より異常度が高いことを表しています。
正常状態の画像を入力した結果
正常な画像のため、ヒートマップには特に反応なし
常状態の画像を入力した結果1
碁石にキズがあるため、キズ部分が赤く反応
異常状態の画像を入力した結果2
碁盤に碁石以外のものがあるため、異物として赤く反応
正常状態の画像を入力すると全体的に青い表示になるのに対して、異常状態の画像を入力すると碁石の傷の部分や異物に赤く反応し、正しく異常検知できていることが分かります。
さいごに
ISPのAI異常検知エンジン「gLupe」を使えば、これまでAI / Deep Learningでは対応の難しかった課題を解決することができるようになります。また、学習データ収集のハードルが下がることによって、今後FA・監視分野のAI化がより加速していくと予想されます。
ISPでは、用途に合わせたAI / Deep Learningエンジンの開発はもちろん、そのエンジンを応用したアプリケーション開発、システム開発なども含めて対応可能です。お気軽にお問合せください。