(57)【要約】【課題】任意の多次元特徴データから通常とは異なる異常状態を高い精度で検出することができる異常検出装置を提供すること。【解決手段】異常検出装置は、多次元の特徴データを抽出する手段、予め主成分分析により求められている正常部分空間と特徴データとの角度を計算する手段、角度が所定値よりも大きい場合に異常と判定する第１の異常判定手段、第１の異常判定手段によって異常と判定されなかった特徴データを正常部分空間へ射影する手段、射影手段によって射影された特徴データが予め求められている正常サンプルの分布範囲内か否かを判定する第２の異常判定手段とを備える。従来異常であるのに正常と判定されていた事象についても異常の判定が可能となり、異常判定の精度が向上する。【選択図】図１
2008191754.tif 000002
【特許請求の範囲】
【請求項１】
入力されたデータから特徴データを抽出する特徴データ抽出手段と、
予め求められている正常部分空間と、前記特徴データ抽出手段により抽出された特徴データとの角度を計算する角度計算手段と、
前記角度が所定値よりも大きい場合に異常と判定する第１の異常判定手段と、
前記第１の異常判定手段によって異常と判定されなかった特徴データを前記正常部分空間へ射影する射影手段と、
予め求められている前記正常部分空間内における正常サンプルの分布範囲情報に基づき、前記射影手段によって射影された特徴データが正常サンプルの分布範囲内か否かを判定する第２の異常判定手段と
を備えたことを特徴とする異常検出装置。
【請求項２】
更に、学習用の入力データに基づき、前記特徴データ抽出手段によって抽出された複数の特徴データから主成分分析手法により得られた主成分ベクトルに基づいて前記正常部分空間を算出し、更に前記射影手段によって前記正常部分空間に射影された特徴データから正常部分空間内における正常サンプルの分布範囲情報を算出する学習手段を備えたことを特徴とする請求項１に記載の異常検出装置。
【請求項３】
前記正常部分空間内における正常サンプルの分布範囲情報は、正常部分空間内における正常サンプルの分布範囲を包含あるいは近似する円錐の中心を示す方向ベクトル情報および前記円錐の広がりを示す角度情報であることを特徴とする請求項１に記載の異常検出装置。
【請求項４】
前記特徴データ抽出手段は、入力された複数の画像フレームデータからなる動画像データからフレーム間差分データを生成し、複数の前記フレーム間差分データからなる３次元データから立体高次局所自己相関によって動作特徴データを生成することを特徴とする請求項１に記載の異常検出装置。
【請求項５】
前記射影手段は射影後の特徴データのそれぞれの要素のスケールを正規化するスケール正規化手段を備えたことを特徴とする請求項１に記載の異常検出装置。
【請求項６】
更に、前記射影された特徴データの前記正常空間内の分布を複数のクラスタに分けるクラスタ分割手段を備え、
前記学習手段は分割された各クラスタ毎に前記正常部分空間内における正常サンプルの分布範囲情報を算出し、
第２の異常判定手段は、各クラスタ毎に前記射影手段によって射影された特徴データが正常サンプルの分布範囲内か否かを判定して、前記特徴データが全てのクラスタにおいて異常と判定された場合にのみ当該特徴データを異常と判定することを特徴とする請求項１に記載の異常検出装置。
【請求項７】
更に、前記特徴データを複数のクラスタに分ける特徴データクラスタ分割手段を備え、
前記学習手段は分割された各クラスタ毎に前記正常部分空間および前記正常部分空間内における正常サンプルの分布範囲情報を算出し、
前記角度計算手段は、予め求められている複数の正常部分空間と、前記特徴データ抽出手段により抽出された特徴データとの角度をそれぞれ計算し、
前記第１の異常判定手段と前記第２の異常判定手段は各クラスタ毎に正常か否かを判定し、判定結果が全てのクラスタにおいて異常と判定された場合にのみ当該特徴データを異常と判定することを特徴とする請求項１に記載の異常検出装置。
【請求項８】
入力されたデータから特徴データを抽出するステップ、
予め求められている正常部分空間と、前記特徴データ抽出手段により抽出された特徴データとの角度を計算するステップ、
前記角度が所定値よりも大きい場合に異常と判定する第１の異常判定ステップ、
前記第１の異常判定ステップにおいて異常と判定されなかった特徴データを前記正常部分空間へ射影するステップ、
予め求められている、正常部分空間内における正常サンプルの分布範囲情報に基づき、前記射影された特徴データが正常サンプルの分布範囲内か否かを判定する第２の異常判定ステップ
を備えたことを特徴とする異常検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異常検出装置および異常検出方法に関し、特に、任意の被検出対象から得られた任意の多次元特徴データから通常とは異なる異常状態を高い精度で検出することができる異常検出装置および異常検出方法に関するものである。
【背景技術】
【０００２】
従来、セキュリティ分野における映像監視や老人介護のモニタリングシステムなど、カメラによる監視システムが多く利用されているが、これらは人が監視を行うシステムであった。そこで、コンピュータによる動画像からの異常状態の自動検出システムが求められている。従って、対象に対して動作特徴を抽出するような動画像からの動作認識が必要となる。
【０００３】
動作認識の研究として、本発明者の一部らが発表した下記の特許文献１には、立体高次局所自己相関特徴（以下、CHLACデータとも記す）を用いた異常動作認識を行う技術が開示されている。特許文献１の異常動作検出装置は、ビデオカメラから入力される動画像データからフレーム間差分データを生成し、複数のフレーム間差分データからなる３次元データから立体高次局所自己相関によって特徴データを抽出し、過去の特徴データから主成分分析手法により得られた主成分ベクトルに基づく部分空間と、最新の特徴データとの距離を計算する。そして、この距離が所定値よりも大きい場合に異常と判定する。正常動作を部分空間として学習し、異常動作をそこからの逸脱として検出することにより、例えば画面内に複数人いる場合でも１人の異常動作を検出可能である。
【特許文献１】特開２００６−０７９２７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
上記した従来の異常動作の検出方法においては、主成分分析手法により得られた主成分ベクトルに基づく部分空間と最新の特徴データとの距離によって異常か否かを判定していた。しかし、主成分分析手法により得られた主成分ベクトルに基づく部分空間の近傍や部分空間内にも異常と判定すべき特徴データが存在する可能性があるという問題点があった。本発明の目的はこのような問題点を解決し、任意の被検出対象から得られた任意の多次元特徴データ（特徴ベクトル）から通常とは異なる異常状態を高い精度で検出することができる異常検出装置および異常検出方法を提供する点にある。
【課題を解決するための手段】
【０００５】
本発明の異常検出装置は、入力されたデータから特徴データを抽出する特徴データ抽出手段と、予め求められている正常部分空間と前記特徴データ抽出手段により抽出された特徴データとの角度を計算する角度計算手段と、前記角度が所定値よりも大きい場合に異常と判定する第１の異常判定手段と、前記第１の異常判定手段によって異常と判定されなかった特徴データを前記正常部分空間へ射影する射影手段と、予め求められている前記正常部分空間内における正常サンプルの分布範囲情報に基づき、前記射影手段によって射影された特徴データが正常サンプルの分布範囲内か否かを判定する第２の異常判定手段とを備えたことを主要な特徴とする。
また、前記した異常検出装置において、更に、学習用の入力データに基づき、前記特徴データ抽出手段によって抽出された複数の特徴データから主成分分析手法により得られた主成分ベクトルに基づいて前記正常部分空間を算出し、更に前記射影手段によって前記正常部分空間に射影された特徴データから正常部分空間内における正常サンプルの分布範囲情報を算出する学習手段を備えた点にも特徴がある。
【０００６】
また、前記した異常検出装置において、前記正常部分空間内における正常サンプルの分布範囲情報は、正常部分空間内における正常サンプルの分布範囲を包含する円錐の中心を示す方向ベクトル情報および前記円錐の広がりを示す角度情報である点にも特徴がある。
また、前記した異常検出装置において、前記特徴データ抽出手段は、入力された複数の画像フレームデータからなる動画像データからフレーム間差分データを生成し、複数の前記フレーム間差分データからなる３次元データから立体高次局所自己相関によって動作特徴データを生成する点にも特徴がある。
また、前記した異常検出装置において、前記射影手段は射影後の特徴データのそれぞれの要素のスケールを正規化するスケール正規化手段を備えた点にも特徴がある。
【０００７】
また、前記した異常検出装置において、更に、前記射影された特徴データの前記正常空間内の分布を複数のクラスタに分けるクラスタ分割手段を備え、前記学習手段は分割された各クラスタ毎に前記正常部分空間内における正常サンプルの分布範囲情報を算出し、第２の異常判定手段は、各クラスタ毎に前記射影手段によって射影された特徴データが正常サンプルの分布範囲内か否かを判定して、前記特徴データが全てのクラスタにおいて異常と判定された場合にのみ当該特徴データを異常と判定する点にも特徴がある。
また、前記した異常検出装置において、更に、前記特徴データを複数のクラスタに分ける特徴データクラスタ分割手段を備え、前記学習手段は分割された各クラスタ毎に前記正常部分空間、前記方向ベクトルおよび広がり角度情報を算出し、  前記角度計算手段は、予め求められている複数の正常部分空間と前記特徴データ抽出手段により抽出された特徴データとの角度をそれぞれ計算し、前記第１の異常判定手段と前記第２の異常判定手段は各クラスタ毎に正常か否かを判定し、判定結果が全てのクラスタにおいて異常と判定された場合にのみ当該特徴データを異常と判定する点にも特徴がある。
【０００８】
本発明の異常検出方法は、入力されたデータから特徴データを抽出するステップ、予め求められている正常部分空間と、前記特徴データ抽出手段により抽出された特徴データとの角度を計算するステップ、前記角度が所定値よりも大きい場合に異常と判定する第１の異常判定ステップ、前記第１の異常判定ステップにおいて異常と判定されなかった特徴データを前記正常部分空間へ射影するステップ、予め求められている、正常部分空間内における正常サンプルの分布範囲情報に基づき、前記射影された特徴データが正常サンプルの分布範囲内か否かを判定する第２の異常判定ステップを備えたことを主要な特徴とする。
【発明の効果】
【０００９】
本発明によれば、以下のような効果がある。
（１）従来異常であるのに正常と判定されていた事象についても異常の判定が可能となり、異常判定の精度が向上する。
（２）特徴抽出や異常判定のための計算量が少なく、計算量は対象人数に依らず一定であり、実時間処理が可能である。
（３）さまざまな監視対象に対応して、特徴ベクトルとしてはCHLACデータに限らず任意のものを採用可能である。
（４）CHLACを採用し角度で異常判定を行う場合には、対象のスケールにロバストに異常を検出できる。
（５）異常検出に限らず一般の認識課題（顔、人認識など）における認識手段としても適用可能である。
【発明を実施するための最良の形態】
【００１０】
まず、本発明の実施例としては一例としてCHLACデータを用いた異常動作の検出について開示するが、本発明は、CHLACデータに限らず、任意の被検出対象から得られた任意の多次元特徴データ（特徴ベクトル）から、異常動作に限らず、通常とは異なる異常状態、即ち発生確率の小さな事象を高い精度で検出することができるものである。
【００１１】
次に、「異常」の定義であるが、異常の事象を全て列挙することができないように、異常そのものを定義することはできない。そこで本明細書においては、異常を「正常ではないもの」として定義する。正常は、例えば特徴の統計的な分布を考えた場合に分布の集中する領域であるものとすれば、統計的な分布から学習可能である。そして、その分布から大きく逸脱する動作を異常とする。
【００１２】
例えば、通路や道路などに設置された防犯カメラでは、歩く動作のような一般的な動作は正常動作として学習され認識されるが、挙動不審のような動作は、歩く動作のような周期運動でもなく、発現する確率の非常に低い事象であるため、異常として認識されることになる。
【００１３】
異常検出の具体的な手法としては、まず、例えば立体高次局所自己相関特徴により動作特徴空間の中で正常動作特徴の部分空間を生成し、その部分空間からの角度を異常値として異常を検出する。正常動作部分空間の生成にはノルム正規化主成分分析手法を用い、例えば累積寄与率0.99の主成分ベクトルにより主成分部分空間を構成する（ステップ１）。
【００１４】
ここで、立体高次局所自己相関特徴には、対象の切りだしが不要で画面内において加法性が成り立つという性質がある。この加法性により、正常動作部分空間を構成すると、画面内に何人の人が正常動作を行っても特徴ベクトルは正常動作部分空間の中に収まることになり、その中の一人でも異常動作を行うと、部分空間から飛び出して異常値として検出できることになる。人を個々にトラッキングし、切り出して計算する必要がないため、計算量は対象人数によらず一定となり、高速に計算可能である。
【００１５】
更に、本発明においては、正常部分空間内において正常な特徴ベクトルが１つあるいは複数の（超立体の）円錐形状の領域を合わせた領域内に分布していることを見出し、上記した正常部分空間からの角度で正常と判定された特徴ベクトルについて、この特徴ベクトルを正常部分空間内に射影したベクトルが、上記した１つあるいは複数の円錐形状領域の内の１つの内部に存在しているか否かを判定し、いずれかの円錐形状の内部に存在していれば正常、そうでなければ異常と判定する（ステップ２）。
【００１６】
図１１は、本発明の判定方法（ステップ１）を示す説明図である。図１１は、説明を簡単にするために、CHLAC特徴データ空間を３次元（実際には例えば２５１次元）とし、正常の部分空間を２次元（実施例では例えば累積寄与率0.99とすると３〜１２次元程度）としたものであり、主成分分析によって求められた正常動作部分空間は正常動作のCHLAC特徴データを含む形で存在している。異常動作のCHLAC特徴データは、正常動作部分空間との角度θが大きくなるので、この角度θによって異常を判定する。
【００１７】
図１２は、本発明の判定方法（ステップ２）を示す説明図である。図１１は、説明を簡単にするために、正常動作の部分空間を２次元（図１２（ａ））あるいは３次元（図１２（ｂ））（実施例では例えば累積寄与率0.99とすると３〜１２次元程度）としたものである。２次元（図１２（a））のものは、図１１の正常部分空間内をより詳細に表示したものでもある。
【００１８】
以下、２次元（ａ）の場合について説明すると、正常動作のCHLAC特徴データを正常部分空間へ射影し、更に正規化したベクトルは正常動作部分空間内で実際には扇の中央からの広がり角度がφである扇状（多次元では（超立体）円錐状）と単位円（多次元では単位（超）球）が交わる円弧状に分布している。そこで、正常動作を示す扇の中央方向を示す方向ベクトルγおよび扇の広がり角度を示すφを学習によって求めておき、判定すべきCHLAC特徴データｚの扇形状の中央（ベクトルγ）からの角度を求め、この角度がφより大きいか否かによって異常を判定する。
【００１９】
正常動作を示す扇形状の分布が複数個存在する場合には、まず正常動作の特徴ベクトルに基づき、個々の扇形状の群（クラスタ）に分解してからいずれかの扇形状の領域に入っているか否かを判定する。
以下に本発明の実施例の一例としてCHLACデータを用いた異常動作の検出について説明する。
【実施例１】
【００２０】
図１は、本発明による異常検出装置の構成を示すブロック図である。ビデオカメラ１０は対象となる人や装置の動画像フレームデータをリアルタイムで出力する。ビデオカメラ１０はモノクロでもよいしカラーカメラであってもよい。コンピュータ１１は例えば動画像を取り込むためのビデオキャプチャー回路を備えた周知のパソコン（ＰＣ）であってもよい。本発明は、パソコンなどの周知の任意のコンピュータ１１に後述するプログラムを作成してインストールすることにより実現される。
【００２１】
モニタ装置１２はコンピュータ１１の周知の出力装置であり、例えば異常動作が検出されたことをオペレータに表示するために使用される。キーボード１３およびマウス１４は、オペレータが入力に使用する周知の入力装置である。なお、実施例においては、例えばビデオカメラ１０から入力された動画像データを実時間で処理してもよいし、一旦動画像ファイルに保存してから順次読み出して処理してもよい。
【００２２】
図２は、本発明の異常検出処理の検出時の処理内容を示すフローチャートである。Ｓ１０においては、ビデオカメラ１０からのフレームデータの入力が完了するまで待ち、フレームデータを入力（メモリに読み込む）する。このときの画像データは例えば２５６階調のグレイスケールデータである。Ｓ１１においては、入力されたフレームデータから後述する方法によって特徴ベクトルを生成する。特徴ベクトルは例えば後述する２５１次元のCHLAC特徴データであってもよい。Ｓ１２においては、特徴ベクトルについてベクトルノルムによる正規化を行う。即ち、特徴ベクトルをベクトルノルム（ベクトルの長さ）で除算する。
【００２３】
Ｓ１３においては、正常部分空間との角度θを算出する。正常部分空間は予め後述する学習処理によって求めておく。正常部分空間における直交基底ベクトルをＰとすると、正常部分空間と直交する補空間への射影子Ｐ⊥は数式１で表され、部分空間への角度θの正弦は数式２で表される。ｘは特徴ベクトルである。
【００２４】
【数１】
2008191754.tif 000003
【００２５】
【数２】
2008191754.tif 000004
【００２６】
従って、θの正弦の２乗は下記の数式３の式を用いて算出できる。ｙはＳ１２においてベクトルノルムにより正規化された特徴ベクトルである。
【００２７】
【数３】
2008191754.tif 000005
【００２８】
Ｓ１４においては、算出された角度θが異常判定の角度閾値未満か否かが判定され、判定結果が否定の場合にはＳ１５に移行するが、肯定の場合にはＳ２３に移行する。閾値は学習時に決定する。以上が判定の第１ステップであり、Ｓ１５以降が第２ステップである。
【００２９】
Ｓ１５においては、まず、特徴ベクトルの正常部分空間への射影を行う。部分空間における直交ベクトルをＰとすると、射影されたベクトルｚ’は数式４によって求められる。
【００３０】
【数４】
2008191754.tif 000006
【００３１】
Ｓ１６においては、射影されたベクトルｚ’が（超）球面上で等方的な分布を成すように各要素のスケールを調整する。Λを後述の学習処理における主成分分析の固有値対角行列とするとスケーリング処理後のベクトルｚ”は数式５によって表される。
【００３２】
【数５】
2008191754.tif 000007
【００３３】
Ｓ１７においては、ベクトルノルムによる正規化を行う。正規化後のベクトルｚは数式６によって求められる。
【００３４】
【数６】
2008191754.tif 000008
【００３５】
Ｓ１８においては、未処理のクラスタを選択する。クラスタの数および各クラスタの方向ベクトルγ、広がりを示すφは予め後述する学習処理によって求められている。Ｓ１９においては、数式７に示すような、特徴ベクトルｚと方向ベクトルγとの角度ψを算出する。
【００３６】
【数７】
2008191754.tif 000009
【００３７】
Ｓ２０においては、求めた角度ψが当該クラスタにおける異常判定の閾値であるφ未満か否かが判定され、判定結果が否定の場合にはＳ２１に移行するが、肯定の場合にはＳ２２に移行する。Ｓ２１においては、全クラスタについて判定処理が終了したか否かが判定され、判定結果が否定の場合にはＳ１８に移行するが、肯定の場合にはＳ２３に移行する。
【００３８】
Ｓ２２においては、「正常」を出力し、Ｓ２３においては、「異常」を出力する。Ｓ２４においては、処理の終了が指示されたか否かが判定され、判定結果が否定の場合にはＳ１０に移行して処理を繰り返す。以上のような２ステップの処理によって精度が高く、かつ処理負荷が小さい異常判定が可能となる。
【００３９】
図３は、本発明の異常検出処理の学習時の処理内容を示すフローチャートである。この処理は図２の検出処理に先立って実行しておく。Ｓ３０においては、動作学習用のサンプルフレームデータを入力する。Ｓ３１においては、Ｓ１１と同様に特徴ベクトルを生成する。Ｓ３２においては、Ｓ１２と同様にベクトルノルムによる正規化を行う。
【００４０】
Ｓ３３においては、主成分分析により正常動作の部分空間を算出し、固有ベクトル、固有値、異常指標の閾値を出力する。閾値としては例えば、正常空間への角度を全学習サンプルに対して算出し、その平均のｎ倍（ｎは任意の実数）あるいは最大値を閾値とする。主成分分析手法自体は周知であるので概略を説明する。まず、正常動作の部分空間を構成するために、CHLAC特徴データ群から主成分分析により主成分ベクトルを求める。Ｍ次元のCHLAC特徴ベクトルｘを以下のように表す。
【００４１】
【数８】
2008191754.tif 000010
【００４２】
なお、Ｍ＝２５１である。また、主成分ベクトルを列に並べた行列Ｕ（固有ベクトル）を以下のように表す。
【００４３】
【数９】
2008191754.tif 000011
【００４４】
なお、Ｍ＝２５１である。主成分ベクトルを列に並べた行列Ｕは、以下のように求める。共分散行列Ｒを次式に示す。
【００４５】
【数１０】
2008191754.tif 000012
【００４６】
行列Ｕはこの共分散行列Ｒを用いて、次の式１１の固有値問題より求まる。
【００４７】
【数１１】
2008191754.tif 000013
【００４８】
固有値の対角行列Λを次式１２で表すと、
【数１２】
2008191754.tif 000014
【００４９】
第Ｋ固有値までの累積寄与率αK は、以下の式１３ように表される。
【００５０】
【数１３】
2008191754.tif 000015
【００５１】
ここで、累積寄与率αKが所定値（例えばαK＝0.99）となる次元までの固有ベクトルu1,...,uK により張られる空間を、正常動作の部分空間として適用する。なお、累積寄与率αKの最適値は監視対象や検出精度にも依存するものと考えられるので実験等により決定する。以上の計算を行うことにより、正常動作の部分空間が生成される。
【００５２】
Ｓ３４においては、Ｓ１５と同様に、サンプルデータの特徴ベクトルを部分空間へ射影する。Ｓ３５においては、Ｓ１６と同様に、スケールを調整する。Ｓ３６においては、Ｓ１７と同様に、ベクトルノルムによる正規化を行う。Ｓ３７においては、射影された特徴ベクトルをMean Shift法によりクラスタリングする。
【００５３】
図６は、Ｓ３７のクラスタリング処理の内容を示すフローチャートである。発明者らは公知であるvon Mises-Fisher分布（球面上の正規分布）を用いたMean Shift法を発明した。以下これを説明する。Ｓ７０においては、未処理のサンプル点を１つ選択して参照点ξの初期値とする。Ｓ７１においては、数式１４に示す更新式に基づいて参照点ξの更新処理を行う。κはvon Mises-Fisher分布における集中度を表すパラメータであり、実験により設定する。
【００５４】
【数１４】
2008191754.tif 000016
【００５５】
Ｓ７２においては、ξに変化が無くなったか否か、即ち更新後のξと更新前のξとの差の絶対値が所定値以下か否かが判定され、判定結果が否定の場合にはＳ７１に移行するが、肯定の場合にはＳ７３に移行する。Ｓ７３においては、全てのサンプル点について処理が完了したか否かが判定され、判定結果が否定の場合にはＳ７０に移行するが、肯定の場合にはＳ７４に移行する。以上の処理により、各サンプル点と対応する参照点ξが求まる。Ｓ７４においては、近い位置にある点を統合する。即ち、参照点ξ相互の差が所定値以下である参照点を持つサンプルの集合を１つのクラスタと見なす。
【００５６】
図３に戻って、Ｓ３８においては、未処理のクラスタを１つ選択する。Ｓ３９においては、1-class SVM（1-class Support Vector Machine）法により、方向ベクトルおよび閾値を求める。
【００５７】
図７は、Ｓ３９の方向ベクトル算出処理の内容を示すフローチャートである。1-class SVM法自体は周知であるので概略を説明する。図１２（ｂ）において、方向ベクトルγおよび広がり角度φで規定される（超）球面上の円は（超）球と（超）平面の交線として表現できる。従って、サンプルの射影点（ノルム１に正規化されている）と原点とを分離し、かつ原点からの距離が最大の（超）平面を求めれば、この超平面への法線ベクトルおよびこの（超）平面の原点からの距離から、方向ベクトルγ、角度の範囲φが求まる。即ち、これは1-class SVMの問題と等価になり、以下の数式１５に示す1-class SVMの問題を解けばよいことになる。数式１５は1-class SVMの問題において、最終的に解くべき２次計画問題である。
【００５８】
【数１５】
2008191754.tif 000017
【００５９】
なお、νはユーザが指定するパラメータであり、例えばν＝０．０１であってもよい。上記問題は具体的には以下のようにして解く。Ｓ８０においては、変数ｔ＝１とし、またαを数式１６の条件を満足する範囲でランダムに初期化する。
【００６０】
【数１６】
2008191754.tif 000018
【００６１】
Ｓ８１においては、数式１７に示すように、予備変数Ｏ、ＳＶ、ρを計算する。
【００６２】
【数１７】
2008191754.tif 000019
【００６３】
Ｓ８２においては、数式１８の条件を満たすｉ∈ＳＶを選択する。
【００６４】
【数１８】
2008191754.tif 000020
【００６５】
Ｓ８３においては、ｉはあったか否かが判定され、判定結果が否定の場合にはＳ８４に移行するが、肯定の場合にはＳ８６に移行する。Ｓ８４においては、数式１８の条件を満たすｉ∈1,..,Nを求める。Ｓ８５においては、ｉはあったか否かが判定され、判定結果が否定の場合には処理を終了するが、肯定の場合にはＳ８６に移行する。Ｓ８６においては、下記の数式１９に基づいてｊを求める。Ｓ８７においては、下記の数式２０に基づいてαを更新する。
【００６６】
【数１９】
2008191754.tif 000021
【００６７】
【数２０】
2008191754.tif 000022
【００６８】
Ｓ８８においては、αは数式２１に示す条件を満足しているか否かが判定され、判定結果が否定の場合にはＳ８９に移行するが、肯定の場合にはＳ９０に移行する。
【００６９】
【数２１】
2008191754.tif 000023
【００７０】
Ｓ８９においては、所定の範囲［０，１／νＮ］内に入るようにαjを射影する。即ち、もしα＞1/νNであれば、α＝1/νNとし、もしα＜０ならば、α＝０として、最も近い範囲内の点（端点）に移動する。そして、αiを再計算する。Ｓ９０においては、ｔ＝ｔ＋１としてＳ８１に移行する。
以上の処理によって求められたα、ρを用いて超平面の法線ベクトルγおよびφは以下の数式２２によって求まる。
【００７１】
【数２２】
2008191754.tif 000024
【００７２】
なお、コンピュータで（凸）２次計画問題を解くためには、例えばサイバネットシステム株式会社が販売している科学計算用ソフトウェアＭＡＴＬＡＢ（登録商標）システムのOptimization Toolboxのquadprog関数を使用することができる。また、凸２次計画問題のアルゴリズムについては例えば下記の非特許文献１、２に記載されている。
【非特許文献１】Coleman, T.F. and Y. Li, OA Reflective Newton Method for Minimizing a Quadratic Function Subject to Bounds on some of the Variables,O SIAM Journal on Optimization, Vol. 6, Number 4, pp.1040-1058, 1996.
【非特許文献２】Gill, P. E. and W. Murray, and M.H. Wright, Practical Optimization, Academic Press, London, UK,1981.
【００７３】
図３に戻って、Ｓ４０においては、全クラスタについて処理が完了したか否かが判定され、判定結果が否定の場合にはＳ３８に移行するが、肯定の場合には処理を終了する。
【００７４】
図４は、角度判定処理の内容を示すフローチャートである。この処理はＳ１１〜Ｓ１４に相当する。Ｓ５０においては、差分データを生成し、２値化する。Ｓ５０においては、動画像データに対して「動き」の情報を検出し、背景など静止しているものを除去する目的で差分データを生成する。差分の取り方としては、隣接するフレーム間の同じ位置の画素の輝度の変化を抽出するフレーム間差分方式を採用するが、フレーム内における輝度の変化部分を抽出するエッジ差分、あるいは両方を採用してもよい。
【００７５】
更に、「動き」に無関係な色情報やノイズを除去するために自動閾値選定による２値化を行う。２値化の方法としては、例えば一定閾値、下記非特許文献３に開示されている判別最小二乗自動閾値法、閾値０及びノイズ処理方式（濃淡画像において差が０以外を全て動き有り＝１とし、公知のノイズ除去法によってノイズを除去する方法）を採用可能である。以上の前処理により入力動画データは画素値に「動いた（１）」「動かない（０）」の論理値をもつフレームデータの列となる。
【非特許文献３】大津展之、“判別および最小２乗規準に基づく自動しきい値選定法”電子通信学会論文誌Ｄ、J63-D-4、P349-356、1980年。
【００７６】
Ｓ５１においては、１フレーム分の画素データに関する相関パターンカウント処理を行い、フレームCHLACデータを生成する。詳細については図５を用いて後述するが、２５１次元の特徴ベクトルデータが生成される。時系列の二値差分データからの動作特徴の抽出には、立体高次局所自己相関(CHLAC) 特徴を用いる。Ｎ次自己相関関数は次の式１のようになる。
【００７７】
【数２３】
2008191754.tif 000025
【００７８】
ここで、f は時系列画素値（差分値）であり、参照点（注目画素）ｒおよび参照点からみたＮ個の変位ａi (i = 1，．．．,N) は差分フレーム内の二次元座標に時間も成分として持つ三次元のベクトルである。更に、時間方向の積分範囲はどの程度の時間方向の相関を取るかのパラメータである。但し、Ｓ５１におけるフレームCHLACデータは１フレーム毎のデータであり、これを時間方向に所定期間だけ積分（加算）したものがCHLAC特徴データとなる。
【００７９】
変位方向、次数のとり方により高次自己相関関数は無数に考えられるが、これを局所領域に限定したものが高次局所自己相関関数である。立体高次局所自己相関特徴では変位方向を参照点ｒを中心とする３×３×３画素の局所領域内、即ち参照点ｒの２６近傍に限定している。特徴量の計算は１組の変位方向に対して式１の積分値が１つの特徴量になる。従って変位方向の組み合わせ（＝マスクパターン）の数だけ特徴量が生成される。
【００８０】
特徴量の数、つまり特徴ベクトルの次元はマスクパターンの種類に相当する。２値画像の場合、画素値１を何回乗算しても１であるので、二乗以上の項は乗数のみが異なる１乗の項と重複するものとして削除する。また式１２の積分操作（平行移動：スキャン）で重複するパターンは１つの代表パターンを残して他を削除する。式１右辺の式は参照点（f(r)：局所領域の中心）を必ず含むので、代表パターンとしては中心点を含み、パターン全体が３×３×３画素の局所領域内に収まるものを選択する。
【００８１】
この結果、中心点を含むマスクパターンの種類は、選択画素数が１個のもの：１個、２個のもの：２６個、３個のもの：２６×２５／２＝３２５個の計３５２個あるが、式１の積分操作（平行移動：スキャン）で重複するパターンを除くと、マスクパターンの種類は２５１種類となる。即ち、１つの３次元データに対する立体高次局所自己相関特徴ベクトルは２５１次元となる。
【００８２】
なお、画素の値が多値の濃淡画像の場合には、例えば画素値をａとすると、相関値はａ（０次）≠ａ×ａ（１次）≠ａ×ａ×ａ（２次）となり、選択画素が同じでも乗数の異なるものを重複削除できない。従って、多値の場合には、２値の場合より選択画素数が１の場合に２個、選択画素数が２の場合に２６個増加し、マスクパターンの種類は計２７９種類となる。
【００８３】
立体高次局所自己相関特徴の性質としては、変位方向を局所領域に限定しているためにデータに対する加法性があり、画面全体を通して積分しているためにデータ内の位置不変性がある。
【００８４】
Ｓ５２においては、フレームCHLACデータをフレーム対応に保存する。Ｓ５３においては、現在のCHLACデータにＳ５１で求めた最新のフレームCHLACデータを加算すると共に、所定期間以上古いフレームに対応するフレームCHLACデータを現在のCHLACデータから減算して新たなCHLACデータを生成し、保存する。
【００８５】
図１０は、本発明による動画像の実時間処理の内容を示す説明図である。動画像のデータはフレームのシーケンスとなっている。そこで時間方向に一定幅の時間窓を設定し、窓内のフレーム集合を１つの３次元データとする。そして、新たなフレームが入力される度に時間窓を移動させ、古いフレームを削除することで有限な３次元データが得られる。この時間窓の長さは、認識しようとする動作の１周期と等しいか、より長く設定することが望ましい。
【００８６】
なお、実際には画像フレームデータは差分を取るために１フレームのみ保存され、フレームと対応するフレームCHLACデータが時間窓分だけ保存される。即ち、図１０において時刻ｔに新たなフレームが入力された時点では、直前の時間窓（t-1，t-n-1）に対応するフレームCHLACデータはすでに算出されている。但し、フレームCHLACデータを計算するためには直近の３つの差分フレームが必要であるが、（t-1）フレームは端なのでフレームCHLACデータは（t-2）フレームに対応するものまで算出されている。
【００８７】
そこで、新たに入力されたｔフレームを用いて（t-1）フレームに対応するフレームCHLACデータを生成してCHLACデータに加算する。また、最も古い（t-n-1）フレームと対応するフレームCHLACデータをCHLACデータから減算する。このような処理により、時間窓と対応するCHLAC特徴データが更新される。
【００８８】
Ｓ５４（＝Ｓ１２）においては、ベクトルノルムによる正規化を行う。Ｓ５５（＝Ｓ１３）においては、前述したように、数式３に示す式を用いてＳ５３にて求めたCHLACデータと部分空間との角度θを求める。
Ｓ５６（＝Ｓ１４）においては、θが閾値よりも大きいか否かが判定され、判定結果が否定の場合には図２のＳ１５に移行するが、肯定の場合には図２のＳ２３に移行する。
【００８９】
図５は、Ｓ５１の立体高次局所自己相関特徴抽出処理の内容を示すフローチャートである。Ｓ６０においては、相関パターンカウンタをクリアする。Ｓ６０においては、２５１個の相関パターンカウンタをクリアする。Ｓ６１においては、未処理の画素を１つ選択する（フレーム内で注目画素を順にスキャンする）。Ｓ６２においては、未処理のマスクパターンを１つ選択する。
【００９０】
図８は、３次元画素空間における自己相関処理座標を示す説明図である。図８においては、ｔ−１フレーム、ｔフレーム、ｔ＋１フレームの時間的に隣接する３つの差分フレームのｘｙ平面を並べて図示してある。本発明においては、注目する参照画素を中心とする３×３×３（＝２７）画素の立方体の内部の画素について相関を取る。
【００９１】
マスクパターンは、相関を取る画素の組合せを示す情報であり、マスクパターンによって選択された画素のデータは相関値の計算に使用されるが、マスクパターンによって選択されなかった画素は無視される。前記したように、マスクパターンでは注目画素（中心の画素）は必ず選択される。また、２値画像で０次〜２次までの相関値を考えた場合、３×３×３画素の立方体において重複を排除した後のパターン数は２５１個となる。
【００９２】
図９は、自己相関マスクパターンの例を示す説明図である。図９（１）は注目画素のみの最も簡単な０次のマスクパターンである。（２）はハッチングを施した２つの画素が選択されている１次マスクパターン例、（３）、（４）はハッチングを施した３つの画素が選択されている３次マスクパターン例であり、この他に多数のパターンがある。
【００９３】
図５に戻って、Ｓ６３においては、前記した式２１を用いて相関値を計算する。式２１のf(r)f(r+a1)…f(r+aN)はマスクパターンと対応する座標の差分２値化３次元データの画素値を掛け合わせる（＝相関値、０または１）ことに相当する。また、式２１の積分操作は注目画素をフレーム内で移動（スキャン）させて相関値をマスクパターンと対応するカウンタによって足し合わせる（１をカウントする）ことに相当する。
【００９４】
Ｓ６４においては、相関値は１か否かが判定され、判定結果が肯定の場合にはＳ６５に移行するが、否定の場合にはＳ６６に移行する。Ｓ６５においては、マスクパターンと対応する相関パターンカウンタを＋１する。Ｓ６６においては、全てのパターンについて処理が完了したか否かが判定され、判定結果が肯定の場合にはＳ６７に移行するが、否定の場合にはＳ６２に移行する。
【００９５】
Ｓ６７においては、全ての画素について処理が完了したか否かが判定され、判定結果が肯定の場合にはＳ６８に移行するが、否定の場合にはＳ６１に移行する。Ｓ６８においては、パターンカウンタ値の集合を２５１次元フレームCHLACデータとして出力する。
【実施例２】
【００９６】
次に、事前にクラスタリングを行い、その後に各クラスタにおいて主成分分析により部分空間を求める実施例２について説明する。実施例１においては、まず、部分空間との角度を求め（ステップ１）、これが閾値未満である場合に、特徴ベクトルを部分空間に射影すると共にクラスタリングを行い、各クラスタにおける円錐との角度により判定を行う方法を開示した。しかし、特徴ベクトルが多峰性を有している場合、ステップ１においてクラスタリングを行ってからそれぞれのクラスタにおいて角度による判定を行う方法も考えられる。
【００９７】
図１３は、本発明の実施例２の異常検出処理の検出時の処理内容を示すフローチャートである。なお、個々の処理内容は図２に示した実施例１の各ステップの処理と実質的に同一であるので、対応のみを示す。Ｓ１１０〜Ｓ１１２においては、Ｓ１０〜Ｓ１２と同様の処理が行われる。
【００９８】
Ｓ１１３においては、未処理のクラスタを選択する。なお、クラスタの数および各クラスタの正常部分空間、方向ベクトルγ、広がりを示すφは予め後述する学習処理によって求められている。Ｓ１１４においては、Ｓ１３と同様に正常部分空間との角度θを算出する。
【００９９】
Ｓ１１５においては、算出された角度θが異常判定の閾値未満か否かが判定され、判定結果が否定の場合にはＳ１２１に移行するが、肯定の場合にはＳ１１６に移行する。閾値は学習時に決定する。以上が判定の第１ステップであり、Ｓ１１６以降が第２ステップである。
【０１００】
Ｓ１１６においては、Ｓ１５と同様に特徴ベクトルの正常部分空間への射影を行う。Ｓ１１７においては、Ｓ１６と同様に、射影されたベクトルｚ’が球面上で等方的な分布を成すように各要素のスケールを調整する。Ｓ１１８においては、Ｓ１７と同様にベクトルノルムによる正規化を行う。Ｓ１１９においては、Ｓ１９と同様に、数式７に示すような、特徴ベクトルｚと方向ベクトルγとの角度ψを算出する。
【０１０１】
Ｓ１２０においては、Ｓ２０と同様に、求めた角度ψが当該クラスタにおける異常判定の閾値であるφ未満か否かが判定され、判定結果が否定の場合にはＳ１２１に移行するが、肯定の場合にはＳ１２２に移行する。Ｓ１２１においては、全クラスタについて判定処理が終了したか否かが判定され、判定結果が否定の場合にはＳ１１３に移行するが、肯定の場合にはＳ１２３に移行する。
【０１０２】
Ｓ１２２においては、「正常」を出力し、Ｓ１２３においては、「異常」を出力する。Ｓ１２４においては、処理の終了が指示されたか否かが判定され、判定結果が否定の場合にはＳ１１０に移行して処理を繰り返す。
【０１０３】
図１４は、本発明の実施例２の異常検出処理の学習時の処理内容を示すフローチャートである。この処理は図１３の検出処理に先立って実行しておく。Ｓ１３０〜Ｓ１３２においては、Ｓ３０〜Ｓ３２と同様の処理が行われる。Ｓ１３３においては、Ｓ３７と同様に特徴ベクトルをMean Shift法によりクラスタリングする。Ｓ１３４においては、未処理のクラスタを１つ選択する。Ｓ１３５においては、Ｓ３３と同様に主成分分析により正常動作の部分空間を算出し、固有ベクトル、固有値、異常指標の閾値を出力する。
【０１０４】
Ｓ１３６においては、Ｓ３４と同様に、サンプルデータの特徴ベクトルを部分空間へ射影する。Ｓ１３７においては、Ｓ３５と同様にスケールを調整する。Ｓ１３８においては、Ｓ３６と同様にベクトルノルムによる正規化を行う。Ｓ１３９においては、1-class SVM（1-class Support Vector Machine）法により、方向ベクトルおよび閾値を求める。Ｓ１４０においては、全クラスタについて処理が完了したか否かが判定され、判定結果が否定の場合にはＳ１３４に移行するが、肯定の場合には処理を終了する。
【０１０５】
実施例２においては、まずクラスタリングを行ってから、個々のクラスタ（サンプル群）毎に部分空間を求めて異常の判定を行うので、正常なサンプルデータが複数の群に分かれており、１つの部分空間としてはとらえきれない場合などには実施例１よりも正確に判定を行うことができる可能性がある。
【０１０６】
以上、異常動作の検出を行う実施例について説明したが、本発明には以下のような変形例も考えられる。実施例においては、学習フェーズによって予め正常動作の部分空間を生成しておく例を開示したが、正常動作の部分空間を更新しながら異常動作の検出を行うか、あるいは例えば１分、１時間あるいは１日などのフレーム間隔よりも長い所定の周期で、一部のデータを使用して正常動作の部分空間を更新し、次の更新までは固定した部分空間を使用して異常動作の検出を行ってもよい。このようにすれば処理量は更に減少する。
【０１０７】
更に、リアルタイムに部分空間を更新する学習法として、下記の非特許文献４に開示されているような、主成分分析による固有値問題を解かずに、入力データから逐次近似的に固有べクトルを近似的に求める方法を採用してもよい。
【非特許文献４】Juyang Weng, Yilu Zhang and Wey-Shiuan Hwang, "Candid Covariance-Free Incremental Principal Component Analysis",IEEE Transactions on Pattern Analysis and Machine Intelligence,Vol.25, No.8, pp.1034-1040, 2003
【図面の簡単な説明】
【０１０８】
【図１】本発明による異常検出装置の構成を示すブロック図である。
【図２】本発明の異常検出処理の検出時の処理内容を示すフローチャートである。
【図３】本発明の異常検出処理の学習時の処理内容を示すフローチャートである。
【図４】角度判定処理の内容を示すフローチャートである。
【図５】Ｓ５１の立体高次局所自己相関特徴抽出処理の内容を示すフローチャートである。
【図６】Ｓ３７のクラスタリング処理の内容を示すフローチャートである。
【図７】Ｓ３９の法線ベクトル算出処理の内容を示すフローチャートである。
【図８】３次元画素空間における自己相関処理座標を示す説明図である。
【図９】自己相関マスクパターンの例を示す説明図である。
【図１０】本発明による動画像の実時間処理の内容を示す説明図である。
【図１１】本発明の判定方法（ステップ１）を示す説明図である。
【図１２】本発明の判定方法（ステップ２）を示す説明図である。
【図１３】本発明の実施例２の異常検出処理の検出時の処理内容を示すフローチャートである。
【図１４】本発明の実施例２の異常検出処理の学習時の処理内容を示すフローチャートである。
【符号の説明】
【０１０９】
１０…ビデオカメラ
１１…コンピュータ
１２…モニタ装置
１３…キーボード
１４…マウス
【図１】
2008191754.tif 000026
【図２】
2008191754.tif 000027
【図３】
2008191754.tif 000028
【図４】
2008191754.tif 000029
【図５】
2008191754.tif 000030
【図６】
2008191754.tif 000031
【図７】
2008191754.tif 000032
【図８】
2008191754.tif 000033
【図９】
2008191754.tif 000034
【図１０】
2008191754.tif 000035
【図１１】
2008191754.tif 000036
【図１２】
2008191754.tif 000037
【図１３】
2008191754.tif 000038
【図１４】
2008191754.tif 000039