はじめに
弊社アダコテックでは、異常検知AIを開発・提供しています。 弊社で取り扱った実績のある異常検知の対象には、いろいろな形式のデータがあります。
- 静止画
- 電子部品(半導体部品、受動部品)や、自動車部品など
- 動画
- 監視カメラ映像や、製造装置の監視など
- 時系列信号(センサー)
- さまざまな機械の劣化検知など
- 音
- さまざまな機械の異音検知など
今回は、弊社でも長年にわたって研究開発してきた、動画の異常検知について説明します。
動画ってなんだっけ?
動画? 動く画像ですよね。 動画像とか映像とかアニメーションとかとも言います。 少しずつ変化する画像を連続的に見ると残像効果で動いているように見えます。
コンピュータ上では、動画は連続した画像の連なりで表現されます。 その画像1枚1枚をフレームと呼びます。(日本語ではコマとも)
ビデオカメラなどで撮影される動画は、画像が連続的に記録されています。1秒間に30枚の画像が記録されているものは 30FPS (Frame per second) というふうに表現され、これをフレームレートといいます。
なお、静止画は2次元データですが、動画は、フレーム画像の縦軸・横軸に時間軸を加えた3次元データです。
そもそも異常検知って?
異常検知ってなんでしょうか? コチラを御覧ください
弊社AIエンジニアがわかりやすく異常検知について説明しています。 他の異常検知技術との比較もしているので、あわせてご覧いただきたいです!
HLACによる異常検知
HLAC についても、弊社エンジニアの記事を御覧ください!
弊社AIエンジニアがわかりやすくHLACについて説明しています。 世界一やさしいHLACの解説ですので、今すぐチェックしてください! techblog.adacotech.co.jp
CHLACは動画版HLAC
HLAC は2次元データの静止画に対しての特徴量抽出に用いられますが、 CHLAC (Cubic Higher-order Local Auto Correlation; 立体高次局所自己相関) は、3次元データに対しての HLAC で、主に動画の特徴量抽出に用いられます。
CHLACのマスクパターン
CHLACはマスクパターンも3次元になります。
CHLACのマスクパターンは、251個 (2値のデータ, 2次までの相関の場合) のパターンになります。
CHLACによる異常検知の流れ
動画では、動きに注目したいと思いますので、まずは動きに特化した前処理をします。
前処理として、入力フレームに対してグレースケール化し、前後のフレーム間の差分を計算し、二値化します。動きのないピクセルは黒(0)、動きのあるピクセルは白(1)になります。
3枚の前後する前処理後のフレームに対して、CHLACの各マスクパターンをX,Y方向にスキャンして積和演算していきます。その結果として、251次元ベクトルの特徴量が得られます。
計算した特徴量から異常動作の判定を部分空間法を用いて計算します。 まず、正常動作の特徴量から部分空間をあらかじめ計算しておきます。 そして、判定したい動作の特徴量と正常動作の部分空間との距離を異常値*1として、フレームごとに計算していきます。
異常値が設定した閾値を超えたら異常と判定します。
異常と判定したら警報を発し、警備用途では警備担当に通知したり、また、製造装置の監視用途では製造装置を停止させたりなどの安全対策が可能になります。
おわりに
今回は、動画の異常検知についてかんたんに説明しました。
前処理や特徴量の方法は、他にも、差分を取らずにやったり、グレイスケール画像やカラー画像を用いたり、マスクパターンを 3x3x3 のパターンにかぎらず大きくしてみたりと、いろいろなバリエーションがあると思います。別の機会には、動画の異常検知の他のパターンや実験結果などについて載せられたらと思います。