アダコテック技術ブログ

株式会社アダコテックの技術ブログです。

やさしい!動画の異常検知 CHLAC入門

はじめに

弊社アダコテックでは、異常検知AIを開発・提供しています。 弊社で取り扱った実績のある異常検知の対象には、いろいろな形式のデータがあります。

  • 静止画
    • 電子部品(半導体部品、受動部品)や、自動車部品など
  • 動画
    • 監視カメラ映像や、製造装置の監視など
  • 時系列信号(センサー)
    • さまざまな機械の劣化検知など
    • さまざまな機械の異音検知など

今回は、弊社でも長年にわたって研究開発してきた、動画の異常検知について説明します。

動画ってなんだっけ?

動画? 動く画像ですよね。 動画像とか映像とかアニメーションとかとも言います。 少しずつ変化する画像を連続的に見ると残像効果で動いているように見えます。

ノートの端などに描いたパラパラアニメも動画ですね

コンピュータ上では、動画は連続した画像の連なりで表現されます。 その画像1枚1枚をフレームと呼びます。(日本語ではコマとも)

ビデオカメラなどで撮影される動画は、画像が連続的に記録されています。1秒間に30枚の画像が記録されているものは 30FPS (Frame per second) というふうに表現され、これをフレームレートといいます。

なお、静止画は2次元データですが、動画は、フレーム画像の縦軸・横軸に時間軸を加えた3次元データです。

動画は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のマスクパターンの一例

CHLACのマスクパターンは、251個 (2値のデータ, 2次までの相関の場合) のパターンになります。

CHLACによる異常検知の流れ

動画では、動きに注目したいと思いますので、まずは動きに特化した前処理をします。

動きに特化した前処理

前処理として、入力フレームに対してグレースケール化し、前後のフレーム間の差分を計算し、二値化します。動きのないピクセルは黒(0)、動きのあるピクセルは白(1)になります。

CHLAC特徴量を抽出

3枚の前後する前処理後のフレームに対して、CHLACの各マスクパターンをX,Y方向にスキャンして積和演算していきます。その結果として、251次元ベクトルの特徴量が得られます。

計算した特徴量から異常動作の判定を部分空間法を用いて計算します。 まず、正常動作の特徴量から部分空間をあらかじめ計算しておきます。 そして、判定したい動作の特徴量正常動作の部分空間との距離異常値*1として、フレームごとに計算していきます。

正常動作の部分空間からの距離を異常値として計算し、異常を判定

異常値が設定した閾値を超えたら異常と判定します。

異常発生!

異常と判定したら警報を発し、警備用途では警備担当に通知したり、また、製造装置の監視用途では製造装置を停止させたりなどの安全対策が可能になります。

おわりに

今回は、動画の異常検知についてかんたんに説明しました。

前処理や特徴量の方法は、他にも、差分を取らずにやったり、グレイスケール画像やカラー画像を用いたり、マスクパターンを 3x3x3 のパターンにかぎらず大きくしてみたりと、いろいろなバリエーションがあると思います。別の機会には、動画の異常検知の他のパターンや実験結果などについて載せられたらと思います。