(57)【要約】  ビデオ監視システムが開示される。このシステムは、複数のモデルを記憶するモデルデータベースと、最近観察軌跡の複数のベクトルを記憶するベクトルデータベースとを有する。システムは、現在軌跡データ構造の動きデータに対応する新しい動きモデルを構築するモデル構築モジュールを含む。システムは、動きデータと異常性スコアを有する現在軌跡データ構造を生成する。システムは、また、ベクトルのサブセットと現在軌跡データ構造との類似性基準に基づいて、現在軌跡データ構造に対して最も類似したベクトルのサブセットを決定するように構成されたデータベースパージモジュールを含む。データベースパージモジュールは、更に、サブセット内のベクトルの量とベクトルのサブセットの最近さとに基づいて、モデルデータベース内の動きモデルのうちの１つを新しい動きモデルと置き換えるように構成される。【選択図】図２
2013520722.tif 000002
【特許請求の範囲】
【請求項１】
ビデオカメラを有し、前記ビデオカメラの視野に対応する画像データを生成するビデオ監視システムであって、
以前観察された物体の動きを定義する複数の動きモデルを記憶するモデルデータベースと、
動きデータ及び少なくとも１つの異常性スコアを有する現在軌跡データ構造であって、前記動きデータが、前記ビデオカメラの視野内で動いていることが観察された現物体の時空軌跡を定義し、前記異常性スコアが、前記複数の動きモデルに対する前記現在軌跡データ構造の異常性の程度を示す現在軌跡データ構造と、
最近観察軌跡の複数のベクトルを記憶するベクトルデータベースであって、各ベクトルが、前記カメラによって最近観察された物体の動きに対応するベクトルデータベースと、
前記現在軌跡データ構造の前記動きデータに対応する新しい動きモデルを構築するモデル構築モジュールと、
前記複数のベクトルから、前記現在軌跡データ構造と最も類似しているベクトルのサブセットを、前記ベクトルのサブセットと前記現在軌跡データ構造との類似性の基準に基づいて決定するように構成されたデータベースパージモジュールと、を備え、
前記データベースパージモジュールが、更に、前記サブセットベクトル内のベクトルの量と、前記ベクトルのサブセットの前記最近観察軌跡が観察されてからの時間量とに基づいて、前記モデルデータベース内の前記動きモデルのうちの１つを前記新しい動きモデルと置き換えるように構成されたビデオ監視システム。
【請求項２】
前記ベクトルデータベースに記憶された前記複数のベクトルが特徴ベクトルであり、各特徴ベクトルが、前記最近観察軌跡の異常性スコアから得られた特徴を有する、請求項１に記載のビデオ監視システム。
【請求項３】
前記データベースパージモジュールが、
前記現在軌跡データ構造を受け取り、前記現在軌跡データ構造の前記少なくとも１つの異常性スコアに特徴抽出を行うことによって前記現在軌跡データ構造の特徴ベクトルを生成するように構成された特徴抽出モジュールと、
前記抽出された特徴ベクトルを受け取り、前記ベクトルのサブセットを、前記現在軌跡データ構造の前記特徴ベクトルと前記ベクトルデータベース内の前記特徴ベクトルとの類似性基準に基づいて決定するように構成された特徴ベクトル照合モジュールと、
前記新しい動きモデルを受け取り、前記ベクトルのサブセット内のベクトルの量と、前記ベクトルのサブセットの前記最近観察軌跡が観察されてからの時間量とに基づいて、前記モデルデータベース内の前記動きモデルのうちの１つを置き換えるように構成されたデータベース更新モジュールと、
を有する、請求項２に記載のビデオ監視システム。
【請求項４】
前記特徴抽出モジュールが、前記現在軌跡データ構造のＨａａｒ変換を生成し、かつ、前記Ｈａａｒ変換から係数の所定のサブセットを選択するように構成された、請求項３に記載のビデオ監視システム。
【請求項５】
前記特徴ベクトル照合モジュールが、ｋ近傍探索を実行して、前記ベクトルデータベース内で前記現在軌跡の前記特徴ベクトルと最も類似したｋ個の特徴ベクトルを検索するように構成された、請求項３に記載のビデオ監視システム。
【請求項６】
前記ベクトルのサブセットが、所定のしきい値より低い前記特徴ベクトルとの類似性基準を有する特徴ベクトルで構成された、請求項５に記載のビデオ監視システム。
【請求項７】
前記現在軌跡データ構造を受け取り、前記現在軌跡データ構造の前記動きデータと前記モデルデータベース内の前記複数の動きモデルとに基づいて、前記現在軌跡データ構造の前記異常性スコアを生成するように構成されたスコアリングエンジンを更に含み、前記動きモデルが、特定タイプの動きを定義し、前記スコアリングエンジンが、前記特定のタイプの動きを検出するように構成された、請求項３に記載のビデオ監視システム。
【請求項８】
前記スコアリングエンジンに対応するサブスコアリングエンジンを更に含み、前記サブスコアリングエンジンが、前記現在軌跡データ構造の前記動きデータ、前記現在軌跡データ構造の前記異常性スコア、及び前記複数の動きモデルのうちの少なくとも１つに基づいて、異常性サブスコアを生成するように構成され、前記サブスコアリングエンジンが、前記特定タイプの動きの下位分類を検出するように構成された、請求項７に記載のビデオ監視システム。
【請求項９】
前記特徴抽出モジュールが、更に、前記現在軌跡データ構造の前記異常性サブスコアの特徴抽出を行い、前記現在軌跡データ構造の前記異常性サブスコアに基づく特徴ベクトルを生成するように構成された、請求項８に記載のビデオ監視システム。
【請求項１０】
前記現在軌跡データ構造がベクトルである、請求項１に記載のビデオ監視システム。
【請求項１１】
以前観察された物体の動きを定義する複数の動きモデルを記憶するモデルデータベースを維持する方法であって、
動きデータ及び少なくとも１つの異常性スコアを有する現在軌跡データ構造を生成するステップであって、前記動きデータが、前記ビデオカメラの視野内で動いていることが観察された現物体の時空軌跡を定義し、前記異常性スコアが、前記複数の動きモデルに対する前記現在軌跡データ構造の異常性の程度を示すステップと、
前記現在軌跡データ構造の前記動きデータに対応する新しい動きモデルを構築するステップと、
ベクトルデータベースに記憶された最近観察軌跡の複数のベクトルからベクトルのサブセットを決定するステップであって、各ベクトルが、前記カメラによって最近観察された物体の動きに対応し、前記ベクトルのサブセットが、前記現在軌跡データ構造に対して最大の類似性量を有し、前記類似性量が類似性基準に基づくステップと、
前記ベクトルのサブセット内のベクトルの量と、前記ベクトルのサブセットの前記最近観察軌跡が観察されてからの時間量とに基づいて、前記モデルデータベース内の前記動きモデルのうちの１つを前記新しい動きモデルと置き換えるステップと、を含む方法。
【請求項１２】
前記ベクトルデータベースに記憶された前記複数のベクトルが特徴ベクトルであり、各特徴ベクトルが、前記最近観察軌跡の異常性スコアから得られた特徴を有する、請求項１に記載の方法。
【請求項１３】
前記現在軌跡データ構造の少なくとも１つの異常性スコアの特徴抽出を行うステップと、
前記特徴抽出から特徴ベクトルを生成するステップと、
前記現在軌跡データ構造の前記特徴ベクトルと前記ベクトルデータベース内の前記特徴ベクトルとの類似性基準に基づいて、前記ベクトルのサブセットを決定するステップと、
を含む、請求項１２に記載の方法。
【請求項１４】
前記特徴抽出を行うステップが、前記現在軌跡データ構造にＨａａｒ変換を実行し、かつ、前記Ｈａａｒ変換から係数の所定のサブセットを選択するステップを更に含む、請求項１３に記載の方法。
【請求項１５】
複数のベクトルからベクトルのサブセットを決定する前記ステップが、更に、前記ベクトルデータベース内でｋ近傍探索を実行するステップを有し、前記ベクトルのサブセットがｋ個以下のベクトルを有する、請求項３に記載の方法。
【請求項１６】
前記ベクトルのサブセットが、所定のしきい値より低い前記特徴ベクトルとの類似性基準を有する特徴ベクトルで構成された、請求項１５に記載の方法。
【請求項１７】
前記現在軌跡データ構造の前記動きデータと前記モデルデータベース内の前記複数の動きモデルとに基づいて、前記現在軌跡データ構造の前記異常性スコアを生成するステップを更に含み、前記動きモデルが、特定の動きタイプを定義する、請求項１３に記載の方法。
【請求項１８】
前記現在軌跡データ構造の前記動きデータ、前記現在軌跡データ構造の前記異常性スコア、及び前記複数の動きモデルのうちの少なくとも１つに基づいて、異常性サブスコアを生成するステップを更に含む、請求項１７に記載の方法。
【請求項１９】
前記現在軌跡データ構造の前記異常サブスコアの特徴抽出を行い、前記現在軌跡データ構造の前記異常性サブスコアに基づく特徴ベクトルを生成するステップを更に含む、請求項１８に記載の方法。
【請求項２０】
前記現在軌跡データ構造がベクトルである、請求項１０に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、異常挙動検出の存在を決定するために使用されるモデルを適応的に更新するビデオ監視システムに関する。
【背景技術】
【０００２】
セキュリティ問題は、かつてないほど、国民的関心レベルまで高まっている。人々と財産の安全を保証するには、危険領域又は空間での監視が極めて重要である。従来より、保安要員が空間を監視することがある。例えば、空港では、保安職員が、保安検査箇所を監視することがあり、保安検査箇所は、一般に、人々が搭乗ゲートを出口から出て、金属探知器と荷物スキャナを通って搭乗ゲートに入ることができるように設定される。保安要員が出口に注意を払うのを一時的に止めると、保安上の脅威が、出口から搭乗ゲートに入る可能性があると想像することができる。これが起こると、空港保安要員がその保安上の脅威を探すために大幅な遅延が起こることがある。更に、監視されるそれぞれの空間が、少なくとも１人の保安要員によって監視されなければならず、したがって、保安コストが増大する。
【０００３】
空間を監視する他の手段は、単一のカメラ又は複数のビデオカメラに空間又は複数の空間を監視させ、保安要員にビデオフィードを監視させることである。しかしながら、この方法は、保安要員がビデオフィードを見ている間に気が散ったり、無関係なビデオフィードを観察している間に該当するビデオフィードを見逃したりすることがあるので、人為ミスの問題を引き起こす。
【０００４】
ビデオ監視システムは次第に自動化されてきているが、現在、空間は、事前に定義された動きモデルを使用することにより監視されている。例えば、保安システムのコンサルタントが、正常としてラベル付けされた軌跡を定義にハードコードし、観察された動きが、ハードコードされた軌跡と比較されて、観察された動きが正常かどうかが判断されることがある。しかしながら、この手法は、正常挙動の静的定義を必要とする。したがって、自動ビデオ監視システム技術では、動きモデルを定義し異常挙動を検出する自動化されかつ／又は適応的な手段が必要とされている。
【０００５】
この節では、本開示と関連し必ずしも先行技術ではない背景情報を提供する。
【発明の概要】
【０００６】
一態様では、ビデオカメラの視野に対応する画像データを生成するビデオカメラを有するビデオ監視システムが開示される。このシステムは、以前観察された物体の動きを定義する複数の動きモデルを記憶するモデルデータベースを含む。システムは、また、動きデータと少なくとも１つの異常性スコアとを有する現在軌跡データ構造を含み、動きデータは、ビデオカメラの視野内で移動していることが観察された現物体の時空軌跡を定義し、異常性スコアは、複数の動きモデルに対する現在軌跡データ構造の異常さの程度を示す。システムは、更に、カメラによって最近観察された物体の動きにそれぞれ対応する最近観察軌跡の複数のベクトルと、現在軌跡データ構造の動きデータに対応する新しい動きモデルを構築するモデル構築モジュールとを記憶するベクトルデータベースを含む。システムは、また、現在軌跡データ構造を受け取り、ベクトルのサブセットと現在軌跡データ構造との類似性の基準に基づいて、ベクトルデータベース内の複数のベクトルから、現在軌跡データ構造に最も類似したベクトルのサブセットを決定するように構成されたデータベースパージモジュールを含む。更に、データベースパージモジュールは、サブセットベクトル内のベクトルの量と、ベクトルのサブセットの最近観察軌跡が観察されてからの時間量とに基づいて、モデルデータベース内の動きモデルのうちの１つを新しい動きモデルと置き換えるように構成される。
【０００７】
この節は、本開示の概要を提供し、本開示の完全な範囲と全ての特徴を包括的に開示するものではない。更に他の適用範囲は、本明細書に示された説明から明らかになる。この要約の説明と具体例は、単に例証のためのものであり、本開示の範囲を限定するものではない。
【図面の簡単な説明】
【０００８】
【図１】例示的なビデオ監視システムを示すブロック図である。
【０００９】
【図２】監視システムの例示的構成要素を示すブロック図である。
【００１０】
【図３Ａ】ビデオカメラの例示的視野（ＦＯＶ）を示す図である。
【００１１】
【図３Ｂ】カメラの例示的なＦＯＶをＦＯＶ上に重ねられたグリッドと共に示す図である。
【００１２】
【図４】例示的な軌跡ベクトルの図である。
【００１３】
【図５】軌跡をスコアリングする例示的な方法を示す流れ図である。
【００１４】
【図６】メタデータ処理モジュールの例示的な構成要素を示すブロック図である。
【００１５】
【図７】方向オクタントに分割されたデータセルを示す図である。
【００１６】
【図８】異常挙動検出モジュールの例示的構成要素を示すブロック図である。
【００１７】
【図９】動的モデルデータベースと特徴ベクトルデータベースの例示的実施形態を示す図である。
【００１８】
【図１０】データベースパージモジュールの例示的構成要素を示すブロック図である。
【００１９】
【図１１】例示的なＨａａｒ変換を示す図である。
【００２０】
【図１２】軌跡の特徴ベクトルを照合する例示的な方法を示す流れ図である。
【００２１】
【図１３】メタデータ処理モジュールの代替実施形態の例示的な構成要素を示すブロック図である。
【００２２】
【図１４】外れ値の存在を決定する例示的な方法を示す流れ図である。
【００２３】
【図１５】バウンディングボックスサイズ内の外れ値の存在を決定する例示的な方法を示す流れ図である。
【００２４】
【図１６】観察された速度での外れ値の存在を決定する例示的な方法を示す流れ図である。
【００２５】
【図１７】観察された加速度での外れ値の存在を決定する例示的な方法を示す流れ図である。
【００２６】
【図１８】外れ値確認を行う方法を示す状態図である。
【００２７】
【図１９】Ｈａａｒフィルタの例示的な構成要素を示すブロック図である。
【００２８】
【図２０Ａ】セルのオクタントのカウントを増分及び減分する種々の手段を示すグラフである。
【図２０Ｂ】セルのオクタントのカウントを増分及び減分する種々の手段を示すグラフである。
【図２０Ｃ】セルのオクタントのカウントを増分及び減分する種々の手段を示すグラフである。
【００２９】
【図２１】係数平滑化を行うために使用される部分的Ｈａａｒ変換を示す図である。
【００３０】
本明細書で説明される図面は、単に特定の実施形態を例証するためのものであり、全ての可能な実施形態を例証するためのものではなく、本開示の範囲を限定するものではない。図面の幾つかの図全体にわたって対応する参照数字は対応する部分を示す。
【発明を実施するための形態】
【００３１】
自動ビデオ監視システムの一実施形態を本明細書で説明する。このシステムは、ビデオストリーム（即ち、画像データ）を受け取り、カメラの視野（ＦＯＶ）内で動いている被観察物体（以下では運動物体と呼ぶ）を検出する。画像データは処理され、運動物体の場所が分析される。運動物体の分析に基づいて運動物体の軌跡が生成される。次に、運動物体の軌跡は、少なくとも１つのスコアリングエンジンを使用してスコアリングされ、また階層的スコアリングエンジンによってスコアリングされてもよい。スコアリングエンジンは、観察軌跡を、対照として正常挙動モデルを使用してスコアリングする。スコアリングエンジンの結果に基づいて、異常挙動が検出されることがある。
【００３２】
正常挙動モデルは、予想挙動又は容認挙動（即ち、通常は警告イベントのレベルまで高まらないことがある挙動）に対応する物体の軌跡又は動きパターンを定義する。例えば、駐車場入口を監視している状況では、ゲートで短期間停止し、次に駐車場に低速で進入する車両は、「正常」挙動と見なされる。
【００３３】
しかしながら、特定の空間内では、正常挙動と見なされることが１日のうちに何度も変化することがあることが分かる。更に、特定の軌跡が予想外であっても正常のことがある特別のイベントが起こることがある。例えば、校舎の扉が監視されている状況がある。通常は、授業期間中、校舎から出る物体（例えば、学生）の観察軌跡は、異常と分類されることがある。しかしながら、その特定の時間に学生のクラスが特別授業のために外出した場合は、学生の軌跡は実際には正常である。より多数の学生が校舎から出ることが観察されたとき、システムは、この軌跡を学習し、その後で軌跡に対応する新しい正常動きモデルを記憶することができる。しかしながら、出来事が特別のものであったとき、その新しい正常動きモデルは、システムからパージされなければならず、したがってその軌跡は正常でなくなる。この新しい正常動きモデルは、より最近観察された軌跡に対応するより新しい動きモデルと置き換えられる。理解されるように、観察された類似軌跡の量と類似軌跡の最近さに基づいて何が正常」挙動であるかを評価する。正常動きモデルに対する類似軌跡の最近さと量の少なくとも一方の指標、又はその関数が、別の組の観察軌跡のしきい値又は指標より低くなると、特定の正常動きモデルをシステムからパージするか徐々に消去することができる。理解されるように、これにより、異常挙動の正確な検出が可能になるだけでなく、システムが必要とする記憶域の量を最小にすることもできる。
【００３４】
図１を参照すると、例示的な自動ビデオ監視システム１０が示される。システムは、検出装置（例えば、ビデオカメラ１２ａ〜１２ｎ）と監視モジュール２０とを含むことがある。検出装置が、赤外線カメラなどの他のタイプの監視カメラでもよいことを理解されたい。説明のため、検出装置は、本明細書ではビデオカメラと呼ばれる。更に、単一のカメラ１２ａに対する言及は、カメラ１２ｂ〜１２ｎに拡張することができる。ビデオカメラ１２ａ〜１２ｎは、空間を監視し、カメラの視野（ＦＯＶ）とＦＯＶ内に観察された物体とに関する画像データを生成し、その画像データを監視モジュール２０に伝える。監視モジュール２０は、画像データを処理して、動きイベントが起きたかどうかを判定するように構成されてもよい。動きイベントとは、カメラ１２ａのＦＯＶ内で運動物体が観察されたことである。運動物体が検出された後で、運動物体の軌跡の動きに対応する観察軌跡が、監視モジュール２０によって生成されることがある。次に、監視モジュール２０は、正常動きモデルを基準として使用する少なくとも１つのスコアリングエンジンを使用して軌跡をスコアリングしてもよい。観察軌跡が異常であると判定された場合は、警告通知が生成されることがある。次に、観察軌跡に対応するスコアを含む観察軌跡の特徴が、他の最近観察軌跡の特徴と比較される。比較的多数の最近観察軌跡が同様にスコアリングされた場合、監視モジュール２０は、正常動きモデルを最近観察軌跡に対応する新しい正常動きモデルを含めるように更新する。監視モジュール２０は、また、ビデオ保持方針を管理することができ、それにより、監視モジュール２０は、記憶すべきビデオと、システムからパージすべきビデオを決定する。
【００３５】
図２は、監視モジュール２０の例示的な構成要素をより詳細に示す。ビデオカメラ１２は、取得したビデオに対応する画像データを生成する。例示的なビデオカメラ１２は、画像データに対応するメタデータを生成するメタデータ生成モジュール２８を含む。あるいは、メタデータ生成モジュール２８が、監視モジュール２０に含まれてもよいことを想起されたい。メタデータ処理モジュール３０は、メタデータを受け取り、運動物体の観察軌跡を決定する。カメラのＦＯＶ内に複数の運動物体を観察することができ、したがってメタデータ処理モジュール３０によって複数の観察軌跡が生成されることがあることを理解されたい。
【００３６】
観察軌跡は、異常挙動検出モジュール３２によって受け取られる。次に、異常挙動検出モジュール３２は、軌跡を１つ又は複数のスコアリングエンジン３４に伝える。スコアリングエンジン３４は、動的モデルデータベース４４から正常動きモデルを取り出し、その正常動きモデルに対して観察軌跡をスコアリングする。幾つかの実施形態では、後述されるように、スコアリングエンジンは階層的である。個別のスコアリングエンジン３４は、異常挙動検出モジュール３２にスコアを返す。次に、異常挙動検出モジュール３２は、スコアを分析して異常挙動が観察されたかどうか判断する。異常挙動が観察された場合、警告イベントは、警告生成モジュール３６に伝えられることがある。更に、正常又は異常の観察軌跡が、データベースパージモジュール３８に伝えられる。
【００３７】
データベース更新モジュール３８は、最近観察軌跡を適応的に学習し分析して運動物体の動きパターン（例えば、運動物体の概略方向）の変化が起きたかどうかを判定する。変化が起きた場合、データベース更新モジュール３８は、新しいフローパターンに対応する正常動きモデルを生成し、新しい正常動きモデルを動的モデルデータベース４４に記憶する。更に、正常動きモデルに対応する軌跡が観察されなくなった場合は、データベース更新モジュール３８が、動的モデルデータベース４０からそのモデルをパージする。
【００３８】
監視モジュール２０は、ＲＡＭ、ＲＯＭ、ＣＤ−ＲＯＭ、ハードディスクドライブなどのコンピュータ可読媒体に埋め込まれたコンピュータ可読命令として実現することができる。更に、命令は、ビデオ監視システムと関連付けられたプロセッサによって実行可能である。更に、監視モジュールの構成要素又は準構成要素の幾つかは、専用ハードウェアとして実現されてもよい。
【００３９】
メタデータ生成モジュール２８は、画像データを受け取り、画像データに対応するメタデータを生成する。メタデータの例には、運動物体識別子、運動物体の周りのバウンディングボックス、バウンディングボックス上の特定点の（ｘ，ｙ）座標（例えば、左上角又は中心点）、バウンディングボックスの高さと幅、及びフレーム番号又はタイムスタンプを挙げることができるが、これらに限定されない。図３Ａは、カメラのＦＯＶ内のバウンディングボックス３１０の例を示す。バウンディングボックスの基準点又は基準位置として左上角が使用されることが分かる。また、図では、（ｘ，ｙ）座標、バウンディングボックス３１０の高さと幅を含む、抽出できるメタデータの例が示されている。更に、ＦＯＶは、複数のセルに分割されてもよい。図３Ｂは、５ｘ５格子（即ち、２５個のセル）に分割された例示的なＦＯＶを示す。参考のため、バウンディングボックスと運動物体も示される。ＦＯＶが格子に分割されたとき、運動物体の位置を、運動物体又はバウンディングボックス上の特定の点があるセルによって参照することができる。更に、カメラの特定の時系列のセル又は領域のメタデータを、データキューブにフォーマットすることができる。更に、各セルのデータキューブは、セルを通過するときに運動物体から得られた観察動き及び外観サンプルに関する統計を含むことができる。
【００４０】
理解されるように、動きイベントが検出されるたびに、タイムスタンプ又はフレーム番号を使用して運動物体特徴を時間的に配列することができる。各イベントで、特定のフレーム又はタイムスタンプのメタデータが生成されてもよい。例えば、以下は、運動物体に対応するメタデータを表わし、タイムスタンプ付きメタデータは、以下の＜ｔ，ｘ，ｙ，ｈ，ｗ，ｏｂｊ＿ｉｄ＞に従ってフォーマットされる。
＜ｔ１，５，５，４，２，１＞，＜ｔ２，４，４，４，２，１＞， ．．．＜ｔ５，１，１，４，２，１＞
【００４１】
運動物体は、１のｉｄタグを有し、高さ４単位と幅２単位のバウンディングボックスを有し、５つのサンプルで点（５，５）から点（１，１）に移動したことが分かる。運動物体は、１組の時空座標によって定義されることを理解されたい。また、メタデータを生成するメタデータ生成モジュール２８によって、現在既知又は今後開発される画像データからメタデータを生成する任意の手段が使用されてもよいことを理解されたい。
【００４２】
メタデータ生成モジュール２８は、メタデータ処理モジュール３０にメタデータを伝える。メタデータ処理モジュール３０は、メタデータから運動物体の軌跡ベクトルを生成する。例えば、メタデータ処理モジュール３０は、特定の運動物体に関する複数のデータキューブを受け取ることができる。メタデータ処理モジュール３０は、タイムスタンプ付きメタデータ又は順番付きメタデータから、運動物体の動きを表わすベクトルを作成することができる。軌跡を表わすベクトルは、特定の時間におけるバウンディングボックスの場所、運動物体の速度、運動物体の加速度を限定ではなく含んでもよく、また特定の時点における軌跡の様々なスコアのフィールドを有してよい。
【００４３】
図４は、軌跡の例示的なベクトル表現を示す。ベクトルから分かるように、運動物体の軌跡をスコアリングエンジン３４に容易に渡すことができ、軌跡がスコアリングされたとき、ＳＥによって指定されたフィールドが、対応するスコアに設定され、それにより異常の程度が示される。軌跡を表わすベクトルを開示するが、軌跡を表わす他のタイプのデータ構造を使用してもよいことを理解されたい。
【００４４】
メタデータ処理モジュール３０は、メタデータから外れ値を除去するように構成されてもよい。例えば、受け取ったメタデータが、残りのメタデータと一致しない場合、メタデータ処理モジュール３０は、受け取ったメタデータが外れ値であると判定し、軌跡データ内にマークする。
【００４５】
図６は、メタデータ処理モジュール３０の例示的な実施形態の構成要素を示す。メタデータ処理モジュール３０は、メタデータ生成モジュール２８からメタデータを受け取る。ベクトル生成モジュール６０は、メタデータを受け取り、生成されるベクトルの量を決定する。例えば、２つの物体が単一シーン内で動いている場合は、２つのベクトルが生成される。ベクトル生成モジュール６０は、所定の量までの軌跡ベクトルを記憶するベクトルバッファを有してもよい。更に、ベクトル内のエントリの量が、運動物体が中で観察されたフレーム又はタイムスタンプ付きフレームの量と等しくなるとき、ベクトル生成モジュール６０は、運動物体に対応する各ベクトルに適切な量のメモリを割り当てることができる。ベクトル生成が実時間で行われる場合、ベクトル生成モジュールは、新しいメタデータを受け取ったときに軌跡内の新しい点に追加メモリを割り当てることができる。ベクトル生成モジュール６０は、また、位置データと時間データを軌跡ベクトルに挿入する。位置データは、メタデータデータキューブから決定される。位置データは、実際の（ｘ，ｙ）座標にリストされてもよく、運動物体が中に観察されたセルを識別することによってリストされてもよい。
【００４６】
速度計算モジュール６２は、様々な時間サンプルで軌跡の速度を計算する。各時間区間での速度が、２つの成分、即ち速度ベクトルの方向と大きさを有することを理解されたい。大きさは、運動物体の速度に関係する。ｔｃｕｒｒでの軌跡の速度ベクトルの大きさ、即ち運動物体の速度は、次の式によって計算することができる。
【数１】
2013520722.tif 000003
あるいは、速度ベクトルの大きさは、次のように個々の成分で表わされてもよい。
【数２】
2013520722.tif 000004
更に、データセル表現が使用される場合、即ち、運動物体の位置が、運動物体が中で見つかったデータセルによって定義される場合は、データセルに対応する所定の（ｘ，ｙ）値が、実際の位置の代わりに使用されてもよいことを理解されたい。計算された速度が、カメラのＦＯＶに対して相対的であり、例えば１秒当たりの画素になることを理解されたい。したがって、２つの物体が、同じ速度又は類似の速度で移動している事実にもかかわらず、遠くの方の物体は、カメラに近い物体より遅く見える。相対速度を使用することが想起されるが、速度が物体の実速度又はその近似値となるように変換されてもよい。例えば、ＦＯＶの下部にある運動物体は、第１のより小さいスカラー量で計ることができ、ＦＯＶの真中の運動物体は、第２の中間のスカラー量で計ることができ、ＦＯＶの上部近くにある物体は、第３のより大きいスカラー量で計ることができる。この例では、ＦＯＶの下部にある物体が、ＦＯＶの真中にある物体より近く、ＦＯＶの真中にある物体が、ＦＯＶの上部近くにある物体より近いと仮定する。更に、相対速度又は絶対速度を計算する他の手段を実施してもよいことが想起される。
【００４７】
各データセルを所定のサブセル（例えば、８つのオクタント）に分割することによって、速度ベクトルの方向を、データセル内のその方向に対して表わすことができる。図７は、８つのオクタント１〜８に分割されたデータセル７０の例を示す。ｔｃｕｒｒ〜ｔｃｕｒｒ＋１のサンプルの軌跡の方向により、軌跡がどのオクタントに入るかを決定することによって方向を近似することができる。例えば、ＮＮＥ（北北東）近くの任意の方向（例えば、実質的に上少し右方向に移動する軌跡は、参照番号７２によって示されたように単一軌跡によって示すことができる。したがって、データセルのどの速度ベクトルも、データセルオクタント識別子及び大きさによって表わすことができる。
【００４８】
加速度計算モジュール６４は、速度計算モジュールと実質的に同じように動作する。位置値の代わりに、様々な時間サンプルでの速度ベクトルの大きさが使用されてもよい。したがって、加速度は、以下の式で計算することができる。
【数３】
2013520722.tif 000005
あるいは、加速度ベクトルの大きさは、次のようにその個々の成分で表わされてもよい。
【数４】
2013520722.tif 000006
【００４９】
方向に関して、加速度ベクトルの方向は、速度ベクトルと同じ方向でよい。しかしながら、運動物体が減速又は回転している場合は、加速度ベクトルの方向が、速度ベクトルの方向と異なることを理解されたい。
【００５０】
外れ値検出モジュール６６は、軌跡ベクトルを受け取り、様々な時間サンプリングでの運動物体の値を読み取る。外れ値とは、データセットの残りの部分と一致しないデータサンプルのことである。例えば、運動物体が、サンプルｔ１及びｔ３でＦＯＶの左上角で検出されたが、サンプルｔ２で右下角にあった場合、外れ値検出モジュール６６は、時間ｔ２での時間サンプルが外れ値であると判定することができる。外れ値検出モジュール６６内で外れ値を検出する任意の手段が実施されてもよいことを想起されたい。更に、外れ値が検出された場合、外れ値検出モジュールは、他のデータサンプルに基づいて運動物体の位置を補間することができる。これは、例えば、外れ値データ点のすぐ前とすぐ後のデータ点における位置を平均化することによって行うことができる。データを補間する他の手段が使用されてもよい。例えば、前後のデータ点の加速度と速度を補間に使用して、より正確な位置の推定を得ることができる。
【００５１】
メタデータ処理モジュール３０が、後述するＨａａｒフィルタを含む他の手段によって運動物体の速度と加速度を計算できることに注意されたい。更に、後述するように、軌跡ベクトルを実時間でスコアリングすることもできる。これらの実施形態では、動きイベントが起きたとき、メタデータ処理モジュール３０は、現在データを決定し、更新軌跡ベクトルを異常挙動検出モジュール３２に渡す。
【００５２】
メタデータ処理モジュール３０は、更に、各セルのデータキューブを生成するように構成されてもよい。データキューブとは、アレイ内の各要素が異なる時間に対応する多次元配列である。各エントリは、対応する時間に特定のセル内で観察された動きデータである。こうして、セルのデータキューブ内で、時間の経過により観察された様々な運動物体の速度と加速度が記録される。更に、データキューブは、最小バウンディングボックスのサイズなどの運動物体の予想属性を含むことがある。
【００５３】
次に、画像データ内で観察された運動物体に対応する観察軌跡ベクトルが、異常挙動検出モジュール３２に伝えられる。異常挙動検出モジュール３２は、観察軌跡ベクトルを受け取り、軌跡ベクトルを１つ又は複数のスコアリングエンジンに伝える。スコアリングエンジンは、軌跡の異常性スコアを返す。異常性スコアは、軌跡ベクトル内の特定のイベントに対応することができ、例えば、軌跡ベクトル内のタイムスタンプごとに、その時間まで運動物体の動きに対応する異常性スコアが戻されてもよい。例えば、各タイムスタンプに関して、特定のタイムスタンプまでの軌跡ベクトルが、様々なスコアリングエンジンによってスコアリングされる。したがって、軌跡ベクトルが、正常軌跡としてスコアリングされ始めた場合、物体の動きが正常動きモデルから逸脱するまでスコアが相対的に低下し、その時点で異常性スコアが上昇する。
【００５４】
図５は、異常挙動検出モジュール３２によって行われることがある例示的な方法を示す。ステップ５０１に示されたように、異常挙動検出モジュール３２が、観察軌跡ベクトルを受け取る。観察軌跡ベクトルは、特定の時点における軌跡の異常性スコアを表わす複数の未定義フィールドを含むことができる。したがって、ステップ５０３で示されたように、異常挙動検出モジュール３２は、軌跡ベクトルを複数のスコアリングエンジンに伝える。後で詳述されるスコアリングエンジンは、様々な時点における軌跡をスコアリングし、そのスコアを軌跡フィールドの適切なフィールドに記録する。
【００５５】
ステップ５０５に示されたように、軌跡ベクトルが、スコアリングエンジンによってスコアリングされた後で、異常挙動検出モジュール３２が、スコアリングされた軌跡ベクトルを受け取り、次に異常挙動が検出されたかどうかを判断できることが分かる。この判断は、スコアリングエンジンに関連する軌跡ベクトルの各行を調べることによって達成されてもよい。各行に関して、連続スコア又はほぼ続きのスコアが、所定のしきい値より大きい異常性スコアを有する場合は、連続実行中に、挙動が異常であったと仮定することができる。異常挙動が検出された場合は、ステップ５１１で示されたように、スコアリングエンジンは、必要に応じてサブスコアリングエンジンを開始することができる。
【００５６】
軌跡ベクトルが、スコアリングエンジン３４と多くの場合サブスコアリングエンジンによってスコアリングされ、スコアリングエンジン３４の１つ又は複数から異常挙動が検出された後で、ステップ５０９に示されたように、異常挙動検出モジュール３２は、運動物体の軌跡を異常性スコアに基づいて分類してもよい。更に、異常挙動検出モジュール３２は、軌跡ベクトルの個々のセグメントを異常性スコアに基づいて分類するように構成されてもよい。
【００５７】
次に、例示的な異常挙動検出モジュール３２と例示的なスコアリングエンジンについて詳しく説明する。位置、速度及び加速度データが計算された後で、異常挙動検出モジュール３２は、メタデータ処理モジュール３０から軌跡ベクトルを受け取る。図８は、異常挙動検出モジュール３０の例示的な構成要素を示す。異常挙動検出モジュールの例示的な構成要素は、複数のスコアリングエンジンと通信するスコア蓄積モジュール８２と、蓄積されたスコアに基づいて運動物体の挙動を分類する挙動分類モジュール８４とを含む。スコア蓄積モジュール８２は、軌跡ベクトルを複数のスコアリングエンジン８６ａ〜ｎに伝える。各スコアリングエンジンは、軌跡ベクトルを、特定の予想挙動又は許容挙動を定義する１つ又は複数の正常動きモデルに対して評価するように構成される。スコアリングエンジンは、各時間サンプルで、１つ又は複数のモデルとの一致の程度を示すスコアを返す。したがって、１６個のエントリを有する軌跡ベクトルは、各スコアリングエンジンから返された１６個のスコアを有することができる。しかしながら、エントリが例外なく対応するスコアを必要とするわけでないことを理解されたい。
【００５８】
スコアリングエンジン８６ａ〜ｎは、軌跡ベクトルを受け取り、軌跡を動的モデルデータベース４４に記憶された動きモデルと比較することによって軌跡をスコアリングする。前述したように、スコアリングエンジン８６ａ〜ｎは、階層的でよい。例えば、高速化スコアリングエンジンは、軌跡を受け取り、その軌跡を「正常」挙動を定義する１つ又は複数のモデルと比較する。軌跡に高速化が検出された場合は、その軌跡は、様々なタイプの高速化の検出と全て関連付けられた種々のサブスコアリングエンジンに伝えられてもよい。例えば、高速化サブスコアリングエンジンは、突発高速化、定加速高速化、長距離高速化、又は他のタイプの高速化を検出するように構成されたスコアリングエンジンを含んでもよい。彷徨サブスコアリングエンジン（wandering sub scoring engine）は、ぶらつき（loitering）又は留まり（staying around）を検出してもよい。異常動きサブスコアリングエンジンは、交通の流れに逆らう動き、交通の流れに垂直な動き、交通の流れの中のジグザグの動き、又は交通の中の折り返しを検出してもよい。種々のスコアリングエンジンが、米国出願第１１／６７６，１２７号を含む前に提出された出願に記載されており、この出願は、参照により本明細書に組み込まれる。
【００５９】
読者に状況を示すために、例示的な高速化スコアリングエンジンと突発高速化スコアリングエンジンについて述べる。高速化スコアリングエンジンは、軌跡ベクトルを受け取る。例えば、｛．．．，［ｔ（ｉ−１），ｘ（ｉ−１），ｙ（ｉ−１），Ｖ（ｉ−１），．．．］，［ｔｉ，ｘｉ，ｙｉ，Ｖｉ，．．．］｝の軌道を受け取る。この例では、時間ｔ（ｉ−１）及びｔｉにおける同じ物体の観察（現在フレームと前フレーム）が、軌跡データに含まれる。更に、軌跡データは、ｔ０で始まる任意又は全ての観察、即ち、物体が検出された最初のフレームを含むことができる。次に、高速化エンジンは、動的モデルデータベース４４から正常速度動きモデルを取り出す。特定の挙動に単一モデルだけを使用する高速化スコアリングエンジンについて述べたが、スコアリングエンジンは、複数の正常速度動きモデルを利用してもよい。したがって、観察軌跡が、モデルのうちの少なくとも１つと一致した場合、即ち、特定の正常動きモデルと比較したときに低い異常性スコアを有する場合、挙動は正常である。スコアが全て異常な場合は、スコアリングエンジンは、軌跡のスコアを幾つか方法（例えば、平均異常性スコア、中間異常性スコア、最高異常性スコア、最低異常性スコア）で提供することができる。
【００６０】
速度動きモデルは、予想速度（μ）（即ち、予想速度成分（μｘ）と（μｙ））と、予想速度の標準偏差（σ）（即ち、（σｘ）と（σｙ））を含むことができる。速度成分を使用することによって、ｔｉでの生高速化スコアを、次の式で計算することができる。
【数５】
2013520722.tif 000007
生高速化スコアは、スコアがｋ＊σからどれだけ離れているかにより生高速化スコアを間隔［０，１］にマッピングする関数によって処理されてもよいことを理解されたい。ここで、ｋは例えば３である。
【００６１】
ｉ番目のフレームの高速化スコアは、多くの方法で決定することができる。１つの可能な方法は、時間ウィンドウの中間スコアを決定することである。例えば、ｉ番目のフレームの高速化スコアは、次の式によって決定されてもよい。
SpeedingScore(i)=median{RawSpeedingScore(i-k-1),...,RawSpeedingScore(i-1),RawspeedingScore(i)}  （６）
この場合も、以上の方法は、高速化スコアを決定する１つの方法に過ぎず、高速化スコアや他のタイプのスコアを決定する他の手段が意図される。
【００６２】
軌跡を分析するとき、各タイムスタンプ又はフレームには高速化スコアが関連付けられる。軌跡が、一般的なスコアリングエンジン（例えば、高速化スコアリングエンジン）によってスコアリングされた後で、スコアリングエンジンは、その軌跡のスコアを調べ、サブスコアリングエンジンを呼び出す必要があるとかどうかを判断する。したがって、所定の量のスコア（例えば、３）がしきい値より大きいことをスコアリング高速化エンジンが検出した場合は、例えば突発高速化スコアリングエンジンを含む高速化サブスコアリングエンジンが呼び出される。
【００６３】
例示的な突発高速化スコアリングエンジンは、時間ウィンドウ内で、突発高速化しきい値を超えるスコア値の数を数えることができる。例えば、ｊ番目のフレームに関して、突発高速化スコアリングエンジンは、前のｍ個（例えば、５個）のスコアを調べて、何個のスコアがしきい値を超えるかを判定する。次に、突発高速化エンジンは、ウィンドウ内の突発高速化しきい値を超えるスコアの比率を計算する、
BurstSpeedingScore(j)=count/window_size  （７）
ここで、countは、時間ウィンドウ内で突発高速化しきい値を超えるスコアの量であり、window_sizeは、突発高速化スコのサンプルサイズ（即ち、ｍ）である。幾つかの実施形態では、標準偏差を計算する代わりにスコアの中央値とスコアの中央値からの偏差の中央値とを計算することによって、突発高速化しきい値を時間ウィンドウ内のスコア値から抽出することができ、バーストしきい値は、しきい値構成を容易にするために「中央値＋偏差の中央値」として定義することができる。
【００６４】
高速化エンジンと突発高速化エンジンの以上の説明は、例示的ために提供された。高速化スコアリングエンジンと突発高速化サブスコアリングエンジンの他の実施形態が意図されることを理解されたい。更に、任意のタイプのスコアリングエンジンとサブスコアリングエンジンがシステム内に実現されてもよい。
【００６５】
スコアリングエンジンが、それぞれのスコアとサブスコアを異常挙動検出モジュール３２に返した後、異常挙動検出モジュール３２は、運動物体の挙動を分類することができる。例えば、運動物体が、異なるタイプの動きを有する３つの個別のセグメントを有する場合、軌跡は、＜突発高速化、彷徨、定加速高速化＞として分類されることがあり、これは、運動物体が、最初に、突発高速化に入り、カメラのＦＯＶ内で彷徨し、次にカメラのＦＯＶから出たときに定加速度で加速されたことを示す。軌跡ベクトルが、様々なスコアリングエンジンとそれらと関連付けられたサブスコアリングエンジンとからのスコアを有することを理解されたい。したがって、異常挙動検出モジュール３２は、軌跡ベクトルの様々なスコアを読み取り、特定のセグメントの異常性スコアに基づいて軌跡ベクトルの各セグメントを分類する。特定のセグメントが、きわめて高い高速化スコアを有する場合、その特定のセグメントは、高速化、即ちその下位分類として分類される。
【００６６】
軌跡ベクトルがスコアリングされた後で、異常挙動モジュール３２が通信し、データベースパージモジュール３８は、スコアリングされた軌跡ベクトルを受け取り、軌跡が動的モデルデータベース４４内の動きモデルとして含まれるかどうかを判断する。データベースパージモジュール３８は、更に、運動物体の時間フローパターンを適応的に学習するように構成される。関連時間フローパターンに対応するモデルを、データベースパージモジュール３８が生成し、動的モデルデータベース４４に記憶することができるので、異常挙動検出モジュール３６は、学習した時間フローパターンを使用して、異常挙動スコアを正確に生成する。
【００６７】
データベースパージモジュール３８は、より昔の関連しない動きモデルを除去し、より新しい関連したモデルを動的モデルデータベース４４に追加することによって、動的モデルデータベース４４を管理する。１日の間に、多くの軌跡が観察されることがあり、またカメラのＦＯＶ内で観察される概略的な交通の流れが変化することがあることが分かる。これにより、特徴ベクトルデータベース４２は、最近観察軌跡の特徴ベクトルを記憶する。特徴ベクトルは、最近観察軌跡の軌跡ベクトルの特定の行から取り出される。他の実施形態では、特徴ベクトルデータベース４４は、最近観察軌跡の実際の軌跡ベクトルを記憶してもよい。類似の特徴ベクトル又は軌跡を有する多数の軌跡が観察されるとき、データベースパージモジュール３８は、それらの軌跡に対応する新しい動きモデルを動的モデルデータベース４４に追加してもよく、モデルの最大量に達した場合は、モデル消去モジュール３８は、妥当性の低い正常動きモデルを新しい動きモデルと置き換えてもよい。データベースパージモジュール３８、動的モデルデータベース４４及び特徴ベクトルデータベース４２の更なる詳細は、後で提供される。
【００６８】
動的モデルデータベース４４は、スコアリングエンジンによって使用される種々の正常動きモデルを含む。したがって、幾つかの実施形態では、動的モデルデータベース４４は、各タイプのスコアリングエンジン用の特定の動きモデルを有する。例えば、動的モデルデータベース４４は、高速化スコアリングエンジン用の３つの特別のモデルと、彷徨スコアリングエンジン用の３つの特別のモデルと、交通の流れスコアリングエンジン用の３つの特別のモデルとを記憶することができる。
【００６９】
更に、動的モデルベース４４は、特定のスコアリングエンジンが動的モデルデータベース４４に記憶することができる動きモデルの量の上限を有することがある。例えば、動的モデルデータベース４４は、高速化スコアリングエンジン用の３つの速度モデルだけを記憶するように制限されてもよい。
【００７０】
更に、動的モデルデータベース４４に記憶された各モデルは、特定のモデルが他のモデルにどれだけ匹敵するかを示す妥当性スコアや他の指標を含むことができる。モデルの妥当性スコアは、特徴ベクトルデータベース４２内の類似軌跡の量とそれらの軌跡の最近さの両方の関数の値である。
【００７１】
図９は、動的モデルデータベース４４と特徴ベクトルデータベース４２の例示的編成を示す。動的モデルデータベース４４は、高速化スコアリングエンジン用のモデルと彷徨スコアリングエンジン用のモデルとを記憶する。前述したように、他のスコアリングエンジンは、また、動的モデルデータベース４４に記憶された対応するモデルを有してもよい。動的モデルデータベース４４に記憶された各モデルは、モデルデータ９２を有する。図では、高速化モデル３の例示的なモデルデータ９２が示される。モデルに対応する妥当性スコアもあることを理解されたい。後述するように、動的モデルデータベース４４に新しいモデルが追加されたとき、特定のスコアリングエンジン用の最大量のモデルが、動的モデルデータベース４４に既に記憶されている場合、新しいモデルが、昔のモデルに置き換わる。モデルの妥当性スコアは、データベースパージモジュール３８が動的モデルデータベース４４からモデルをパージする順序を決定する。更にまた、動的モデルデータベース４４は、後述するように、モデルの妥当性スコアを更新できるようにモデルと一致した最も最近の軌跡のタイムスタンプを記憶する。
【００７２】
特徴ベクトルデータベース４２は、最近観察軌跡の特徴ベクトルを記憶し、特徴ベクトルの特徴は、軌跡ベクトルの異常性スコアに対応することができる。種々のスコアリングエンジンとサブスコアリングエンジンによって軌跡がスコアリングされるときに、軌跡のスコアベクトルの特徴抽出が行われてもよい。更に、軌跡の開始位置と軌跡の時間が特徴ベクトルに含まれてもよい。データベースパージモジュール３８は、特徴ベクトルデータベース４２に記憶された特徴ベクトルを使用して、動的モデルデータベース４４内の正常動きモデルを新しい正常動きモデルと置き換える必要があるとかどうかを判断する。これは、一組又は一群の最近観察軌跡が、動的モデルデータベース４４内のモデルのスコアより高い妥当性スコアを有するときに行われる。
【００７３】
図１０は、例示的なモデル消去モジュール３８の構成要素を示す。モデル消去モジュール３８は、現在軌跡ベクトル１０２を受け取り、現在軌跡ベクトルに基づく新しい動きモデルを、動的モデルデータベース４４内の動きモデルの１つと置き換えるべきかどうかを判断する。詳細には、特徴抽出モジュール１０４は、現在軌跡を受け取り、ベクトルの特徴抽出を行う。次に、抽出された特徴ベクトルが比較され、特徴ベクトルデータベース４２に記憶された特徴ベクトルと照合される。特徴ベクトル照合モジュール１０６は、現在軌跡ベクトルの特徴ベクトルが、特徴ベクトルデータベース４２に記憶された最近観察軌跡の特徴ベクトルの１つ又は複数と類似しているかどうかを判定するように構成される。次に、妥当性スコアカルキュレータ１０８が、１組の類似の特徴ベクトルの妥当性スコアを計算する。データベース更新モジュール１１０は、妥当性スコアを受け取り、それをデータベース内のモデルの妥当性スコアと比較する。その場合、モデル構築モジュール１１２は、現在軌跡ベクトルに基づいて動きモデルを生成し、動きモデルは、動的モデルデータベース４４に記憶される。抽出特徴ベクトルは、特徴ベクトルデータベース４２に記憶される。
【００７４】
特徴抽出モジュール１０４は、現在軌跡ベクトルを受け取り、現在軌跡ベクトルの特徴抽出を行って特徴ベクトルを生成する。幾つかの実施形態では、特徴抽出は、特定のスコアリングエンジンによって生成されたスコアに対応する個々の行（即ち、軌跡ベクトルのスコアベクトル）に行われる。したがって、システムが、１０個のスコアリング及びサブスコアリングエンジンを有する場合は、特徴抽出モジュール１０４の繰り返し１回当たり最大１０個の特徴ベクトルを生成することができる。更に、特徴抽出モジュール１０４は、軌跡ベクトルの開始位置と時間を特徴ベクトルに関連付けることができる。
【００７５】
特徴抽出モジュール１０４が、様々な特徴抽出技法を実行するように構成されてもよいことを想起されたい。１つの技法は、現在軌跡ベクトルのスコアにＨａａｒ変換を実行することである。ベクトルにＨａａｒ変換を実行するには、エントリベクトルは、次数２ｎの長さを有していなければならない。軌跡ベクトルの長さが２ｎでない場合は、行の様々なスコアからの追加の要素を補間するか、ベクトルをゼロ充填することによって、その長さを延長することができる。
【００７６】
図１１は、Ｈａａｒ変換の例を示す。説明のため、長さ８即ち２３のベクトルを示す。Ｈａａｒ変換をベクトルに実行するとき、ベクトルの長さが固定長でなければならないことは明らかになるであろう。図１１のベクトルは、８個の係数＜ａ１，ａ２，．．．，ａ８＞を有する。Ｈａａｒ変換は、３回繰り返し実行され、８個の係数ができる。第１の繰り返しは、隣接要素の平均と隣接要素間の差をとる。第１の繰り返し後、列１がＡ１とＡ２の平均を有し、列２がＡ３とＡ４の平均を有し、一方、列５が（Ａ１−Ａ２）／２を有し、列６が（Ａ３−Ａ４）／２を有することを理解されたい。図から分かるように、第１の繰り返し後、０レベルの列５〜８の係数がそれぞれ、表の下の第５、第６、第７及び第８のＨａａｒ係数に下がることが分かる。第２の繰り返しは、隣接要素の平均を計算するが、列１〜４だけは、隣接要素間の差をとる。例えば、第２の繰り返し後、列１の結果は、（（ａ１＋ａ２）＋（ａ３＋ａ４））／４であり、列３の結果は、（（ａ１＋ａ２）−（ａ３＋ａ４））／４である。第２の繰り返し後、レベル１の列３と列４の係数が、表の下の第３と第４のＨａａｒの係数に下がる。第３の繰り返しは、レベル２からの係数だけを除き第１と第２の繰り返しと類似しており、レベル２の列１と列２が検討される。したがって、第３の繰り返し後、列１の結果は（（ａ１＋ａ２）＋（ａ３＋ａ４）＋（ａ５＋ａ６）＋（ａ７＋ａ８））／８であり、列２の結果は、（（ａ１＋ａ２）＋（ａ３＋ａ４）−（ａ５＋ａ６）＋（ａ７＋ａ８））／８である。列１と列２の結果は、表の下にある最初の２つのＨａａｒ係数に下がる。
【００７７】
幾つかの実施形態では、システムは、各動きイベント（即ち、タイムスタンプ）で、種々のデータとスコアが生成されるように構成されることを理解されたい。これらの繰り返しのそれぞれで、特徴抽出モジュール１０４は、最新ベクトルを受け取り、最新データにＨａａｒ変換を実行する。前述したように、エントリベクトルの長さは２ｎである。第１の少数の動きイベントが、２ｎ未満の長さを有する軌跡ベクトルを有することが分かる。例えば、ｎ＝３の場合、Ｈａａｒ変換は、長さ８のエントリベクトルを受け取る。しかしながら、運動物体が７回しか検出されなかった場合は、軌跡ベクトルは、長さ７しかない。そのような状況では、特徴抽出モジュール１０４が、Ｈａａｒ変換を実行する前に軌跡の残りのスコアを補間し、例えば、それまでの７個のスコアに基づいて第８のデータサンプルが補間されてもよい。任意の補間法を使用できることを想起されたい。
【００７８】
更に、軌跡ベクトルの長さが、Ｈａａｒ変換関数の入力長を超えた後は、特徴抽出モジュール１０４は、軌跡ベクトルの前の２ｎ個のエントリを振り返るスライドウィンドウを使用することができる。したがって、Ｈａａｒ変換が、長さ８のベクトルに実行される例では、第９のサンプルを受け取りスコアリングした後で、Ｈａａｒ変換関数が、軌跡ベクトルの第２〜第９のスコアインスタンスを有するエントリベクトルを受け取ることがある。第１０のサンプルの後で、Ｈａａｒ変換関数が、第３〜第１０のスコアを受け取る。
【００７９】
Ｈａａｒ変換がエントリベクトルに実行された後で、特徴抽出モジュールは、Ｈａａｒの係数から係数選択を行う。左側の係数（例えば、係数１〜４）が、スコアベクトルのより低い周波数成分であり、右側の係数（例えば、５〜８）が、周波数ベクトルのより高い周波数成分であることを理解されたい。これにより、前述の例では、特徴抽出モジュール１０４は、最初の４個の係数を選択する。しかしながら、その他の係数も同様に選択されてもよいこと想起されたい。更に、Ｈａａｒ変換関数が、より長いベクトル（即ち、１６又は３２個のスコア）を受け取る場合は、より多くの係数が選択されてもよい。
【００８０】
以上の説明は、単一スコアベクトルに関して述べたが、Ｈａａｒ変換が、軌跡ベクトルのスコアベクトルの幾つか又は全てに実行されてもよいことを理解されたい。例えば、各繰り返しで、Ｈａａｒ変換は、高速化スコアリングエンジン、彷徨スコアリングエンジン、交通の流れスコアリングエンジン、及びそれぞれのサブスコアリングエンジンの１つ又は複数から生成されたスコアに実行されてもよい。
【００８１】
特徴抽出が行われた後で、特徴ベクトル対照モジュール１０６は、抽出特徴ベクトルを、特徴ベクトルデータベース４２内の前にスコアリングされた軌跡ベクトルの特徴ベクトルと照合する。特徴照合モジュール１０６は、特徴ベクトルデータベース内に、抽出特徴ベクトルと類似の１つ又は複数の特徴ベクトルがあるかどうかを判定する。
【００８２】
類似の特徴ベクトルを識別する１つの可能な方法は、特徴ベクトルデータベース４２にｋ近傍（k-nearest neighbor）（Ｋ−ＮＮ）探索を行うことである。ｋ近傍探索アルゴリズムは、抽出特徴ベクトルを入力として受け取り、特徴ベクトルデータベース４２を調べ、ｋ最近特徴ベクトル（k-closest feature vector）を返す。「接近」を判定するために、距離などの類似性基準が使用されることを理解されたい。ｋ近傍探索は、抽出特徴ベクトルと、特徴ベクトルデータベース４２内の全ての以前抽出特徴ベクトルとの間の距離を決定する。次に、ｋ近傍探索は、ｋ最近特徴ベクトルを返し、また各抽出特徴ベクトルからの距離を返してもよい。幾つかの実施形態における返された距離は、抽出特徴ベクトルと特定の特徴ベクトルとのユークリッド距離であるが、他の距離測定も使用できることを想起されたい。次に、特徴ベクトル照合モジュール１０６は、ｋ戻しベクトル（k-returned vector）が、抽出特徴ベクトルからのしきい距離内にあるかどうかを判断することができる。次に、抽出特徴ベクトルからしきい距離内の特徴ベクトルのサブセットを、妥当性スコアカルキュレータに伝えることができる。
【００８３】
Ｋ−ＮＮ探索アルゴリズムが意図されているが、類似の軌跡を識別するために他のアルゴリズムが使用されてもよいことを理解されたい。例えば、ｋ平均アルゴリズム（k-means clustering algorithm）が使用されてもよい。そのような実施形態では、抽出特徴ベクトルと同じクラスタ内の特徴ベクトルとの距離を計算することができる。抽出特徴ベクトルからしきい距離内のそのようなベクトルは、前述のサブセットに含まれてもよい。
【００８４】
抽出特徴ベクトルからしきい距離内のベクトルのサブセットが識別された後で、妥当性スコアカルキュレータ１０８は、特徴ベクトルのサブセットと抽出特徴ベクトルの妥当性スコアを決定することができる。また、妥当性スコアカルキュレータは、軌跡がスコアリングエンジンによって「正常」とスコアリングされたときに、動的モデルデータベース４４内のモデルのスコアを更新する。例えば、軌道が正常としてスコアリングされたとき、妥当性カルキュレータは、新しい軌跡とｋ最新軌跡（k-most recent trajectory）を使用してモデルの新しい妥当性スコアを計算する。更に、各モデルの妥当性スコアが現在のものになるように、妥当性スコアカルキュレータは、データベースパージモジュール３８の各繰り返しでモデルのスコアを更新してもよい。後述するように、妥当性スコアは、時間の経過に依存する。したがって、各モデルの妥当性スコアは、時間が経過するときに妥当性スコアがモデルの妥当性を正確に表わすように更新されなければならない。
【００８５】
前述したように、妥当性スコアは、サブセットの特徴ベクトルをモデルデータベース内のモデルと比較した妥当さ又はその逆の妥当さの尺度である。幾つかの実施形態では、妥当性スコアは、ベクトルサブセット内の特徴ベクトルの量とそれらの特徴ベクトルの最近さとの関数、即ち、計算されている妥当性スコアを有するモデルとスコアリングエンジンが一致した前のｋ個の軌道の最近さの関数である。
【００８６】
妥当性スコア関数は、幾つか方法で実施することができる。基本的に、この関数は、最近でない軌跡より最近の軌跡に大きい重みを与える。１つの可能な方法は、モデルの最近さスコア（recentness score）と密度スコアを計算することである。最近さスコアは、以下の式を計算することによって算出することができる。
【数６】
2013520722.tif 000008
ここで、Ｔｍｏｄｅｌ（ｉ）は、モデルが最後に使用された時間であり、Ｔｃｕｒｒは、現在時間であり、Ｔｏｌｄは、最も長い間使用されていないモデルが最後に使用された時間である。最近さスコアを、指数関数形崩壊関数（exponential decay function）やシグモイド関数（sigmoid function）などの別のタイプの関数によって表すことができることを理解されたい。
【００８７】
密度スコアは、以下の式を使用することによって算出することができる。
【数７】
2013520722.tif 000009
ここで、Ｄｍｏｄｅｌ（ｉ）は、特徴ベクトルデータベース４２内のモデル（ｉ）と一致する最後の軌跡と一致した特徴ベクトルの数であり、Ｄｍａｘ＝ｋであり、ｋは、ｋ近傍探索を実行するために使用される数である。
【００８８】
これらの２つのスコアに基づき、妥当性スコアを次の式により計算することができる。
【数８】
2013520722.tif 000010
ここで、重みｗ１及びｗ２は、各スコアに与えられる重みである。
【００８９】
式１２を使用して観察軌跡の妥当性スコアをスコアリングすることができ、ここで最新スコアは１であり、密度スコアは、観察軌跡をｋで割ったものと一致した特徴ベクトルの数である。
【００９０】
データベース更新モジュール１１０は、妥当性スコアカルキュレータ１０８から計算された妥当性スコアを受け取る。軌跡が動的モデルデータベース内のモデルと一致した場合、データベース更新モジュール１１０は、妥当性スコアカルキュレータ１０８によって計算された通りにモデルの妥当性スコアを単純に更新する。現在軌跡が異常であると判定された場合は、現在軌跡の妥当性スコアと最近ベクトル（closest vector）のサブセットが、動的モデルデータベース４４内のモデルの妥当性スコアと比較される。計算された妥当性スコアが、動的モデルデータベース４４内のモデルの１つ又は複数より大きい場合、データベース更新モジュール１１０は、最低の妥当性スコアを有するモデルを、モデル構築モジュール１１２によって生成された新しいモデルと置き換える。同じ大きさの場合は、最も最近使用されたモデルをパージするか、最小量の一致特徴ベクトルを除去することができる。
【００９１】
更に、動的モデルデータベース４４が、特定のスコアリングエンジンの最大量のモデルを含んでいない場合、先在モデルを置き換えることなく新しいモデルをデータベースに入ることができる。異常挙動のモデルが、動的モデルデータベース４４に含まれないようにするために、データベース更新モジュール１１０は、サブセットの妥当性スコアが所定のしきい値を超えた後で動的モデルデータベース４４に新しいモデルを記憶しなければならないことがある。
【００９２】
例示的なモデル構築モジュール１１２は、現在軌跡１０２を受け取り、動的モデルデータベース４４に記憶される動きモデルを生成する。また、モデル構築モジュール１１２は、生成するモデルの型を受け取る。例えば、高速化スコアリングエンジンに使用されるモデルの場合、モデル構築モジュール１１２は、高速化スコアリングエンジンに特有のデータを有するモデルを生成する。モデル構築は、スコアリングエンジンの構成とその動作に依存することを理解されたい。モデル構築の例は、米国特許公開番号２００８／０２０１１１６に見ることができる。モデル構築モジュール１１２が、新しいモデルを生成した後で、新しいモデルは、データベース更新モジュール１１０に伝えられ、次にデータベース更新モジュール１１０は、新しいモデルを動的モデルデータベース４４に記憶する。
【００９３】
開示の別の態様では、監視システムは、外れ値を除去しデータを平滑化することによってデータを清浄にするように構成されてもよい。そのような実施形態では、メタデータ処理モジュール３０は、更に、データクレンジングモジュールとＨａａｒフィルタを含んでもよい。以下では、メタデータを処理する代替手段が示されるが、制限するものではない。
【００９４】
図１３は、メタデータ処理モジュール３０の代替実施形態を含む。メタデータ処理モジュール３０の代替実施形態は、前述のメタデータ処理モジュール３０と互換可能に使用されてもよいことを想起されたい。代替の実施形態では、メタデータ処理モジュール３０は、ベクトル生成モジュール１３０、データクレンジングモジュール１３２、外れ値検出モジュール１３４、及びＨａａｒフィルタ１３６を含む。データクレンジングモジュール１３２は、メタデータ生成モジュール２８から受け取った異常位置データを検出するように構成され、更に位置データの異常にラベル付けするように構成される。データクレンジングモジュール１３２は、１）運動速度マップに記録された正常挙動統計、又は２）同じ軌道の以前の動き測定値に基づいて、位置データのバーストノイズをフィルタリングする。運動速度マップは、１片のデータキューブであり、この場合、スライスの「幅」が時間の量に対応する。正常挙動統計の正規分布に対する偏差レベルは、外れ値のシグマレベル、即ちｌｅｖｅｌ＊σとして定義され、ここでσは標準偏差である。また、これは、検出されている外れ値の信頼レベルとも考えられる。試験と検証のため、異なるシグマの外れ値の数の統計を分析用にまとめる。性能最適化のため、動きデータ内の正常点をフィルタリングするために前置フィルタが使用される。軌跡ベクトル内の各点に関して各データ点のシグマレベルが計算される。フィルタリング操作とスコアリング操作にシグマレベルを使用して、スコアの信頼レベルを割り引きするか調整することができる。データクレンジングモジュール１３２は、処理した位置データをメタデータ位置バッファに保存することができる。
【００９５】
代替実施形態では、メタデータ処理モジュール３０は、外れ値検出モジュール１３４も含む。図１４は、外れ値検出を行うために使用されることがある例示的な方法を示す。この特定の実施形態では、データキューブ内の最小バウンディングボックスのサイズ（高さと幅）、ｘ方向とｙ方向両方の速度、及びｘ方向とｙ方向両方の加速度が、ガウス分布に従うと仮定される。したがって、軌跡の任意の位置を、６つの前述の変数のうちの１つが平均値（例えば、６シグマ）から遠すぎる値を有する場合に、外れ値であると判定される。
【００９６】
図で分かるように、ステップ１４０２で、運動物体の軌跡を受け取る。ステップ１４０４で示されたように、外れ値検出モジュール１３４は、最初に、軌跡のバウンディングボックスのサイズ、速度及び加速度の変化を計算する。大きすぎる変化がない場合、軌跡は正常と判定され、方法は、ステップ１４２０に進む。しかしながら、変化のうちの１つが極端すぎる場合、方法はステップ１４０６に進み、特定のセルのデータキューブを取得する。ステップ１４０８で、セル内で観察された運動物体の量がカウントされ、ステップ１４１０で所定のしきい値と比較される。セルに十分なデータがない場合は、ステップ１４１２に示されたように、軌跡の特徴が計算される。この場合、軌跡の位置からの単純な平均を使用してｚ値を計算し、ｚ値は、次の式により算出される。
【数９】
2013520722.tif 000011
【００９７】
データキューブ内に十分なデータがある場合は、１４１４で示されたように、データキューブ自体の特徴が計算される。図１５〜図１７は、データキューブ内の特定タイプのデータの外れ値特徴を計算する例示的な方法を示す。ステップ１４１６で、外れ値確認が行われる。外れ値確認は、６個の決定された外れ値特徴（即ち、６個の特徴のｚ値）に従って位置が外れ値かどうかを判定する。外れ値特徴を分類することによって、図１８に示された状態図を使用して外れ値確認を行うことができる。下に示した表１は、様々な外れ値特徴のカテゴリー分類を提供する。データに追跡エラー又は飛躍が起きたとき、位置が外れ値としてラベル付けされることを理解されたい。
【表１】
2013520722.tif 000012
【００９８】
前述したようにデータキューブ内に十分なデータがある場合は、データキューブ自体の特徴が計算される。図１５〜図１７は、データキューブの特徴を決定する方法を示す。図１５〜図１７は全て、実質的に同じステップを含み、したがって、図１５の説明を使用して図１６と図１７を理解することができる。
【００９９】
ステップ１５０２で、軌跡内の物体の位置を受け取る。ステップ１５０４で、位置に対応するデータキューブが取得され、ステップ１５０６で、データキューブのカウント、即ち所定の時間期間にセル内を通過した軌跡の個数が取得される。カウントが、所定のしきい値（例えば、５）より大きい場合は、方法はステップ１５１０に進み、セル内で観察されたバウンディングボックスの高さと幅の平均と標準偏差が計算される。しかしながら、セルのカウントが、所定のしきい値より小さい場合は、ステップ１５１２で８個の近傍セルのデータキューブが取得される。セルと８個の近傍セルのカウントが、所定のしきい値より大きい場合は、ステップ１５１６で示されたように、それらの９個のセル内で観察されたバウンディングボックスの平均と標準偏差が計算されるか推定される。しかしながら、９個のセルのカウントが、５より小さい場合は、ステップ１５１８で、軌跡内で観察されたバウンディングボックスの高さと幅の平均と標準偏差が計算される。
【０１００】
ステップ１５２０で、ステップ１５１０、１５１６及び１５１８のうちの１つで決定された平均と標準偏差に基づいて、バウンディングボックスの高さと幅のｚスコアが計算される。データのｚスコア（即ち、現在観察されている運動物体のバウンディングボックスの高さと幅）は、次の式を使用して算出することができる。
【数１０】
2013520722.tif 000013
ここで、ｚ（ＢＢ＿Ｈ）は、現在観察されているバウンディングボックスの高さのｚ値であり、ｚ（ＢＢ＿Ｗ）は、現在観察されたバウンディングボックスの幅のｚ値である。計算後、ｚ値は、確認のために記憶される。
【０１０１】
観察された速度と軌跡のｚスコアは、実質的に図１５に対応する図１６と図１７に示された方法によって算出することができることを理解されたい。速度と加速度のｚスコアの計算は、更に、外れ値検出が実行された後でそのような値が計算される場合に運動物体の現在速度と加速度の計算を必要とすることがある。
【０１０２】
また、メタデータ処理モジュール３０の代替の実施形態には、フィルタ１３６が含まれる。フィルタが、Ｋａｌｍａｎフィルタ、Ｈａａｒフィルタ又は他のタイプのデータフィルタでよいことを想起されたい。説明のため、Ｈａａｒフィルタ１３６を仮定する。
【０１０３】
Ｈａａｒフィルタ１３６は、追跡エラーによって生じた動きデータの非線形ノイズの影響を減少させる適応的軌道フィルタリングを提供する。設計を性能とコードベース減少に関して最適化するために、Ｈａａｒフィルタ１３６は、動きデータに単純なＨａａｒ変換を実行するように構成される。Ｈａａｒフィルタ１３６は、以下の特性のうちの少なくとも１つを有することがある。
１．複数のサンプル点を使用して軌跡ベクトルのより正確な速度と加速値を生成して、ランダムホワイトノイズを減少させる。
２．動きデータに集中的な外れ値が検出されたときに、より多くのデータ点を使用して、外れ値信頼シグマ基準（outlier confidence sigma measure）に基づいてマクロレベルの動きを算出する。
３．複雑さｌｏｇ  Ｎを有し、二進シフト演算にのみ関係する。
４．Ｈａａｒフィルタ１３６によって生成された推定点は、予測点と外れ値シグマの関数によって重み付けされた入力からの測定点との加重和に基づく。
５．滑らかな形状保持出力を生成する。
６．各軌跡の動き、速度及び加速度を表わすために必要な点の数を減少させる。
Ｈａａｒフィルタ１３６が、メタデータ位置バッファからのデータを処理し、フィルタリングされた滑らかなデータをメタデータ位置バッファに出力できることを理解されたい。
【０１０４】
外れ値検出モジュール１３４は、Ｈａａｒフィルタ１３６に外れ値の大きさを伝えて外れ値状況のＨａａｒ変換深さを制御する。Ｈａａｒフィルタ１３６は、あるレベルのＤ係数を推定することができ、また逆Ｈａａｒ変換を実行することによって、Ｈａａｒフィルタ１３６は、滑らかでより低レベルのＳ係数を出力することができる。推定Ｄ係数は、速度と加速度の推定に使用される。Ｓ係数は、Ｈａａｒ変換における低周波数係数であり、Ｄ係数は、高周波数係数である。Ｓ係数は、一般に、Ｈａａｒ変換の平均部分に関連し、Ｄ係数は、一般にＨａａｒ変換の差分部分に関連する。
【０１０５】
図１９は、例示的なＨａａｒフィルタを示す。Ｈａａｒフィルタは、第１のＨａａｒ変換モジュール１９０、第２のＨａａｒ変換モジュール１９２、第３のＨａａｒ変換モジュール１９４、Ｄ係数平滑化モジュール１９６（３つ示す）、及び逆Ｈａａｒ変換モジュール１９８（３つ示す）を含む。逆Ｈａａｒ変換モジュール１９８の出力は、第１のＨａａｒ変換モジュール１９０のＳ係数と第１組の平滑化Ｄ係数を受け取ったとき、軌跡の位置推定を生成する。逆Ｈａａｒ変換モジュール１９８の出力は、第２のＨａａｒ変換モジュール１９２のＳ係数と第２組の平滑化Ｄ係数を受け取ったとき、軌跡の速度を生成する。逆Ｈａａｒ変換モジュール１９８の出力は、第３のＨａａｒ変換モジュール１９４のＳ係数と第３組の平滑化Ｄ係数を受け取ったとき、軌跡の加度速を生成する。
【０１０６】
Ｈａａｒ変換モジュール１９０〜１９４が、図１１に関して前述したＨａａｒ変換と類似の方法でＨａａｒ変換を実行することを理解されたい。注意すべきことは、各連続したＨａａｒ変換モジュールが、前のＨａａｒ変換のＤ係数しか受け取らないことである。したがって、エントリベクトルのサイズは、各連続Ｈａａｒ変換モジュール内で２分の１に減少する。例えば、第１のＨａａｒ変換モジュールが、３２エントリベクトルを受け取る場合、第２のＨａａｒ変換モジュール１９２が、１６エントリベクトルを受け取り、第３のＨａａｒ変換モジュール１９４が、８エントリベクトルを受け取る。
【０１０７】
第１のＨａａｒ変換モジュール１９０の出力は、逆Ｈａａｒ変換モジュール１９８に伝えられるＳ係数と、第２のＨａａｒ変換モジュールとＤ係数平滑化モジュールに伝えられるＤ係数である。第１のＨａａｒ変換モジュール１９０によって出力されたＤ係数は、入力軌跡の速度のｘ成分とｙ成分を表わすことを理解されたい。
【０１０８】
第２のＨａａｒ変換モジュール１９２の出力は、逆Ｈａａｒ変換モジュール１９８に伝えられるＳ係数と、第３のＨａａｒ変換モジュールとＤ係数平滑化モジュール１９６とに伝えられるＤ係数である。第２のＨａａｒ変換モジュール１９２によって出力されたＤ係数が、入力軌跡の加速度のｘ成分とｙ成分を表わすことを理解されたい。
【０１０９】
第３のＨａａｒ変換モジュール１９４の出力は、逆Ｈａａｒ変換モジュール１９８に伝えられるＳ係数と、Ｄ係数平滑化モジュール１９６に伝えられるＤ係数である。第２のＨａａｒ変換モジュール１９４によって出力されたＤ係数が、入力軌跡の加速度の変更のｘ成分とｙ成分を表わすことを理解されたい。
【０１１０】
図から分かるように、Ｄ係数は、Ｄ係数平滑化モジュール１９６にも伝えられることを理解されたい。Ｄ係数が平滑化された後で、Ｓ係数と平滑化されたＤ係数が、逆Ｈａａｒ変換モジュール１９８に伝えられる。逆Ｈａａｒ変換モジュール１９８は、Ｈａａｒ変換の逆を実行してエントリベクトルを再構成する。逆Ｈａａｒ変換モジュールの結果が、それぞれのＨａａｒ変換モジュール１９０〜１９４に送られる入力に対応するが、生じたＳ係数と平滑化Ｄ係数に実行されることが分かる。したがって、第１のＨａａｒ変換モジュール１９０からのＳ係数及び対応する平滑化Ｄ係数の逆Ｈａａｒ変換は、軌跡の位置を表わす。第２のＨａａｒ変換モジュール１９２からのＳ係数及び対応する平滑化Ｄ係数の逆Ｈａａｒ変換は、軌跡の速度を表わす。第３のＨａａｒ変換モジュール１９４からのＳ係数及び対応する平滑化Ｄ係数の逆Ｈａａｒ変換は、軌跡の加速度を表わす。Ｈａａｒフィルタ１３６の出力は、軌跡ベクトルの動きデータである。
【０１１１】
Ｄ平滑化モジュール１９６は、Ｈａａｒ変換からＤ係数を受け取るように構成され、係数にＤ平滑化を実行する。Ｄ平滑化モジュール１９６は、図２１に関して述べられる。図２１は、様々なレベルのＨａａｒ変換２１０を示す。図から分かるように、レベル３の係数は、Ｄ平滑化を実行するには必要ないので示されていない。図の影付き部分は、Ｄ係数を表わす。説明のため、Ｄ係数は、Ｄ（１，０）＝（ｘ（８）−ｘ（７））／２，  Ｄ（１，１）＝（ｘ（６）−ｘ（５））／２，  Ｄ（２，０）＝｛（ｘ（８）＋ｘ（７））−（ｘ（６）＋ｘ（５））｝／４など、Ｄ（ｌｅｖｅｌ，ｐｏｓｉｔｉｏｎ）と表される。参考として図２０のＨａａｒ変換を使用すると、以下の式を使用してＤ係数を平滑化することができる。
【表２】
2013520722.tif 000014
ここで、Ｗ１とＷ２は、所定の重みである。幾つかの実施形態では、Ｗ１は１／４に設定され、Ｗ２は、３／４に設定される。平滑化の結果は、逆Ｈａａｒ変換モジュール１９８に伝えられる平滑化Ｄ係数である。前述の構成をもっと大きい組又は小さい組のＤ係数に適用できることを理解されたい。
【０１１２】
逆Ｈａａｒ変換モジュール１９８は、Ｓ係数とＤ係数を受け取り、前記係数に逆Ｈａａｒ変換を実行する。図１１から分かるように、Ｈａａｒ変換の係数は、異なるレベルから導き出される。逆Ｈａａｒ変換は、より低レベルの係数、即ちＳ係数とＤ係数で始まり、前のレベルの係数を繰り返し解決し、その結果、連続したより高レベルの係数から元の低レベルの係数を解決することができるようになる。例えば、図１１を参照すると、逆Ｈａａｒ変換モジュール１９８は、列０及び１の係数の値を使用してレベル２の係数の値を解決することができる。例のこの繰り返しにおいて、列０の係数の値を得るために使用される式が、（（ａ１＋ａ２）＋（ａ３＋ａ４）＋（ａ５＋ａ６）＋（ａ７＋ａ８））／８であり、列１の係数の値を得るために使用される式が、（（（ａ１＋ａ２）＋（ａ３＋ａ４））＋（（ａ５＋ａ６）＋（ａ７＋ａ８）））／８であることを理解されたい。この論理は、レベル２の値と列２及び３の係数を使用してレベル１の値を解決するために使用されることを理解されたい。同じ論理を適用して、レベル１の値と列４〜７の係数を使用してレベル０の値を解決することができる。最後に、レベル０の値を使用して元の要素を算出することができる。逆Ｈａａｒ変換モジュール１９８の出力は、係数を提供するＨａａｒ変換モジュール１９０〜１９４の入力に対応するが、Ｄ係数平滑化によりこれらと異なることがある。
【０１１３】
Ｈａａｒフィルタ１３６の出力された軌跡は、像平面における元の軌跡の形状、速度及び方向を保持する。軌跡の時間間隔は各点で保持される。
【０１１４】
遠くのＦＯＶ内でゆっくりと移動して速度を正確に検出するのに位置精度が十分でないような運動物体の場合、Ｈａａｒフィルタ１３６は、軌跡点の低解像度推定を生成するために複数の点を使用して計算オーバヘッドを減少させる。出力されたダウンサンプリング点は、時間と空間が制限される。時間領域内で、Ｈａａｒフィルタ１３６は、最小時間デフォルト値から最大時間デフォルト値までの範囲（例えば、１．６秒）で最小軌跡点を出力する。空間領域内で、Ｈａａｒフィルタ１３６は、サイズのセル距離のデフォルト値（例えば、１６画素）に関してｘ方向かｙ方向の測定値を出力する。出力決定は、時間しきい値と空間しきい値に基づく。物体が移動していない場合、時間しきい値は、出力の最小レートがあるようにする。物体が移動している場合、空間しきい値は、物体の変位がかなり大きいときに常に出力が生成されるようにする。
【０１１５】
外れ値平滑化は、推定軌跡点を算出するのに必要な点の範囲を決定する入力としてデータクレンジングモジュール１３２からの外れ値検出指標でよい。軌跡点の推定又は補間は、軌跡の大きな飛躍の影響を平滑化することによって、より高レベルの精度を達成する。平滑化を行うために、Ｈａａｒフィルタ１３６は、より高レベルのＤ係数からあるレベルのＤ係数を推定し、次にＨａａｒ逆変換を行って低レベルのＳ又はＤ係数のより良好な推定値を得る。一般に、外れ値平滑化プロセスは、Ｄ係数平滑化とＨａａｒ逆変換の２つの操作を含むことができる。
【０１１６】
Ｈａａｒフィルタ１３６は、内部Ｈａａｒ係数に基づいて軌跡の到着点を予測することができる。例えば、近づいている軌跡のｘ座標を次の式によって予測することができる。
【数１１】
2013520722.tif 000015
ここで、Ｘ（Ｌ，ｉ−１）は、以前のＨａａｒ  Ｓ係数であり、Ｖ（Ｌ，ｉ−１）は、以前のＨａａｒ  Ｄ係数であり、Δｔは、時間の変化である。Ｌは、Ｈａａｒピラミッドのレベルである。Ｈａａｒピラミッドの一例を図１１に示す。Ｈａａｒピラミッドは、係数並びにＨａａｒ変換の中間レベルを含む。演算負荷を減らすために、外れ値検出の大きさ（即ち、ｚ値）に基づいてＨａａｒ変換深さの適切な推定を実施することができる。外れ値の大きさが高いほどＨａａｒ変換深さが深い。予測は、また、非線形曲線当てはめ技術を使用することができる。例えば、補間を用いて、以下の式を使用してＸｐ（ｉ）を予測することがきる。
【数１２】
2013520722.tif 000016
ここで、例えばｆｘ（ｔ）は、次の多項式関数であり、Ｘｐ（ｉ）＝ｆｘ（ｔｉ）である。
【数１３】
2013520722.tif 000017
ここで、ｔ＝ｔ（ｉ−１）のとき、
【数１４】
2013520722.tif 000018
であり、
ｔ＝（ｔ（ｉ−１）＋ｔ（ｉ−２））／２のとき、
【数１５】
2013520722.tif 000019
であり、
ｔ＝（ｔ（ｉ−１）＋ｔ（ｉ−２）＋ｔ（ｉ−３）＋ｔ（ｉ−４））／４のとき、
【数１６】
2013520722.tif 000020
である。
ここで、Ｘ（０，ｉ−１）、Ｘ（１、ｉ−１）、Ｘ（２，ｉ−１）は、レベルＯ、レベル１及びレベル２のＨａａｒ係数である。例えば、座標がＸ（ｉ）の到着点を想定すると、Ｚは、Ｘ高速化の値であり、Ｗは、適応性重み係数である。重み係数Ｗに対するＺ値の関数マッピングは、表１に示されたように示される。
【表３】
2013520722.tif 000021
【数１７】
2013520722.tif 000022
ここで、Ｘ（ｉ）は、Ｈａａｒ変換ピラミッドの最終入力である。下記は、代替のＷ計算表である。
【表４】
2013520722.tif 000023
【０１１７】
Ｈａａｒフィルタ１３６は、更に、全てのＨａａｒピラミッドノードを記録するＨａａｒ変換スライディングウィンドウを実現するように構成されてもよい。このウィンドウは、アレイ又は別のデータ構造タイプによって実現されてもよい。Ｈａａｒフィルタ１３６が３２要素ベクトルを受け取る状況では、最高レベルは５である。ピラミッド内の各ノードには、レベルインデックスと位置インデックス（例えば、インデックス（ｌｅｖｅｌ，ｐｏｓ））によってアクセスすることができる。レベルインデックスは、０〜４である。これはスライディングウィンドウなので、位置は、０から上限まで変化する。例えば、ｌｅｖｅｌ（レベル）０の場合、ｐｏｓ（位置）は、０から１６まで変化する。ｐｏｓは１６を通過した後で０にリセットする。各レベルの最新インデックスが、第２のアレイに保存される。
【０１１８】
Ｈａａｒウィンドウの構造は、一次元配列によって実現される。幾つかの実施形態では、各レベルの最後の２つのノードだけがアレイに保存される。アレイのインデックスは、次の表２によってＨａａｒピラミッドにマッピングされる。
【表５】
2013520722.tif 000024
【０１１９】
Ｈａａｒピラミッドをこの方式で構成することによって、レベルと位置を指定することによりＨａａｒピラミッド内の点にアクセスすることができる。上に示した表では、５つのレベルがあり、レベル４が最も高く、各レベルからの位置は０から１変化する。参考のため、用語Ｄ（ｌｅｖｅｌ，ｐｏｓ）は、特定レベルでのＤ係数を表すために使用され、Ｓ（ｌｅｖｅｌ，ｐｏｓ）は、特定のレベルと位置でのＳ係数を表わすために使用される。
【０１２０】
ノード（ｌｅｖｅｌ，ｐｏｓ）の逆Ｈａａｒ変換から得られる２つの点は、次の通りである。
Ｓ（レベル１，２＊ｐｏｓ）．ｘ＝Ｓ（ｌｅｖｅｌ，ｐｏｓ）．ｘ＋Ｄ（ｌｅｖｅｌ，ｐｏｓ）．ｘ、ｐｏｓ＝０，１，２，．．．
Ｓ（レベル１，２＊ｐｏｓ）．ｙ＝Ｓ（ｌｅｖｅｌ，ｐｏｓ）．ｙ＋Ｄ（ｌｅｖｅｌ，ｐｏｓ）．ｙ、ｐｏｓ＝０，１，２，．．．
…
Ｓ（レベル１，２＊ｐｏｓ＋１）．ｘ＝Ｓ（ｌｅｖｅｌ，ｐｏｓ）．ｘ−Ｄ（ｌｅｖｅｌ，ｐｏｓ）．ｘ、ｐｏｓ＝０，１，２，．．．
Ｓ（レベル１，２＊ｐｏｓ＋１）．ｙ＝Ｓ（ｌｅｖｅｌ，ｐｏｓ）．ｙ−Ｄ（ｌｅｖｅｌ，ｐｏｓ）．ｙ、ｐｏｓ＝０，１，２，．．．
…
【０１２１】
係数ＤとＳが、前のレベルから変更されていない場合、高い方のレベルのノードからの逆Ｈａａｒ変換は、低い方のレベルのノード内のＳ係数と全く同じ結果を出力するはずである。しかし、１つ又は複数の高レベルのＤ係数が変更された場合は、逆Ｈａａｒ変換の実行後に、低い方のレベルのＳ係数も変更される。
【０１２２】
上記の演算は全て、帰納的関数によって実行することができる。この関数は、２つのより低レベルのＳ係数ｐｏｓ１及びｐｏｓ２に基づいて逆Ｈａａｒ変換を実行する。前述の疑似コードを表３に示す。
【表６】
2013520722.tif 000025
【０１２３】
Ｈａａｒフィルタ１３６が異なる基準に基づいてメタデータをメタデータバッファに出力することができる状況は５つある。異なる基準には、開始点出力、遅い移動物体のためのダウンサンプリング出力、きわめて高速の移動物体のための補間出力、均一な遅い移動物体のための長い遅延強制出力、及び軌跡端出力がある。
【０１２４】
１つの軌跡の開始点が、メタデータバッファ内の最初の点でないとき、この点は、メタデータバッファ内の最初の４点の２レベルＨａａｒ変換点でよい。しかしながら、軌跡がきわめて遅い場合、最初の４点が全て１つのセル内にある。したがって、最初の４点の方向は、正確ではない可能性が高い。したがって、開始点は、遅い移動物体が１つのセルから出るときに出力される。
【０１２５】
全ての平滑化Ｈａａｒ係数が得られた後で、ダウンサンプリング手順を実行して平滑化ノードからノードを選出することができる。ダウンサンプリングは、総サンプル数を減らすために使用される。ダウンサンプリング手順の疑似コードを下の表４に示す。
【表７】
2013520722.tif 000026
【０１２６】
Ｈａａｒフィルタ１３６が、メタデータバッファ内の隣り合った元の点の間に長い飛躍（サイズが１セルより大きい）があることを検出した場合、Ｈａａｒフィルタ１３６は、飛躍点の間の幾つかの点を補間して、運動物体が適切なタイムスタンプで通過した全てのセルを軌道がカバーできるようにする。
【０１２７】
Ｈａａｒフィルタ１３６が、所定の時間量より長い期間（例えば、１．６秒にわたって）何も出力しない場合は、運動物体がきわめて遅い可能性が高い。最後の出力点からの距離は、１セル寸法より小さい。しかしながら、実時間性を維持するために、Ｈａａｒフィルタ１３６は、点が以前の出力点から遠くない場合でもその点を出力しなければならない。
【０１２８】
軌跡が終了したときに、新しい点がメタデータバッファに出力されてもよく、Ｈａａｒフィルタは、軌跡の終わりでそれらの点を処理して、メタデータを出力しなければならない。
【０１２９】
前述のように、Ｈａａｒフィルタ１３６は、更に、運動物体の速度と加速度を決定するように構成されてもよい。速度は、２つの隣り合った出力点の速度を使用して算出することができる。
Ｖｅｌｏｃｉｔｙ＿ｘ＝（ＣｕｒＰｏｓ．ｘ−ＰｒｅＰｏｓ．ｘ）／（ＣｕｒＰｏｓ．ｔｉｍｅ−ＰｒｅＰｏｓ．ｔｉｍｅ）
Ｖｅｌｏｃｉｔｙ＿ｙ＝（ＣｕｒＰｏｓ．ｘ−ＰｒｅＰｏｓ．ｘ）／（ＣｕｒＰｏｓ．ｔｉｍｅ−ＰｒｅＰｏｓ．ｔｉｍｅ）
ダウンサンプリングされたノード（ｌｅｖｅｌ，ｐｏｓ）の場合、ノードの局所速度は、例えば次のように、ちょうど対応するより高レベルのＤ係数を時間分で割ったものである。
速度（ｌｅｖｅｌ，ｐｏｓ）．ｘ＝Ｄ（ｌｅｖｅｌ＋１，ｐｏｓ／２）．ｘ／Ｄ（ｌｅｖｅｌ＋１，ｐｏｓ／２）．ｔｉｍｅ
速度（ｌｅｖｅｌ，ｐｏｓ）．ｙ＝Ｄ（ｌｅｖｅｌ＋１，ｐｏｓ／２）．ｙ／Ｄ（ｌｅｖｅｌ＋１，ｐｏｓ／２）．ｔｉｍｅ
ｐｏｓ＝０，１，２，．．．
更に、Ｈａａｒフィルタ１３６は、第２のＨａａｒ変換の係数を参照することができ、様々な分解能の速度がリストされる。第２のＨａａｒ変換後に、加速度が、Ｄ係数としてリストされる。これらの速度と加速度によって軌跡ベクトルを計算できることを想起されたい。
【０１３０】
開示の別の態様では、データベースパージモジュール３８は、更にフェージングモジュール（図示せず）を含むように構成される。フェージングモジュールは、各セルに対する運動物体の時間的流れを適応的に学習するように構成される。モデル構築モジュール１１２は、学習された時間フローパターンを使用して、異常挙動のスコアリングに使用される動きモデルを生成する。前述のように、各セルにデータキューブを関連付けることができ、データキューブは、セル内を通過する運動物体からの時系列の動きデータを記憶する。記憶された動きデータには、観察している運動物体がセルを通過する方向が含まれる。図７に示されたセルに戻って参照すると、運動物体の方向は、方向をオクタントのうちの１つに関連付けることによって定義することができる。フェージングモジュールは、セル内の各オクタントのカウントを更新するように構成されてもよい。したがって、各オクタントにそれ自体のカウントが関連付けられ、それにより、セル内の各オクタントのカウントを比較することによって、セル内で最も多く観察された方向（以下では、セルの「支配的流れ」と呼ばれる）を決定することができる。
【０１３１】
フェージングモジュールは、各オクタントの最小方向カウントを保持する非対称関数を使用して、セルの支配的流れを追跡することができる。セルのオクタントのカウントは、２つの異なる状況で増分又は減分されることがある。一方の状況は、検出ベースの状況であり、他方の状況は、時間ベースの状況である。検出ベースの状況は、運動物体がセル内で検出されたときである。そのような例では、運動物体の方向に対応するオクタントのカウントは増分され、他の７つのオクタントのカウントは減分される。時間ベースの状況では、物体は、所定の時間量より長い間セル内で検出されない。この状況では、セルのカウントは減分される。
【０１３２】
両方の例では、オクタントのカウントが増分又は減分される量は、オクタントのカウントの値に依存する。例えば、オクタントのカウントが増分される場合、カウントが増分される量は、カウントの値を入力として受け取りカウントを増分する量を出力する関数によって決定される。
【０１３３】
説明のため、３つのしきい値を定義し以下に述べる。３つのしきい値は、ＴｈＬｏｗ、ＴｈＴｉｍｅ、及びＴｈＨｉｇｈであり、セル全体にはカウンタＣｅｌｌ．ｘｙ．ｍｅｍ＿ｃｎｔがある。
【０１３４】
図２０Ａと図２０Ｂは、特定のオクタントカウントの値に基づいてオクタンのカウントをそれぞれ増分し減分する量を示す。例えば、図２０Ａのグラフ２００を参照すると、増分されるオクタントのカウントがＴｈＬｏｗより低い場合、カウントは、区分Ａに対応する値（例えば、５０）だけ増分される。増分されるオクタントのカウントが、ＴｈＬｏｗより大きいがＴｈＨｉｇｈより小さいか又は等しい場合は、カウントは、区分Ｂ（例えば、１００）に準じて増分される。増分されるオクタントのカウントが、ＴｈＨｉｇｈより大きい場合、カウントは、区間Ｃ（例えば、２０）に従って増分される。したがって、運動物体が、特定のセルを特定のオクタントの方向に通過したとフェージングモジュールが判定したとき、フェージングモジュールは、グラフ２００に示された関数を使用して、特定のオクタントのカウントを増分する量を決定する。示した数が例示であり限定ではないことを理解されたい。更に、階段関数を示すが、一次関数、二次関数、指数関数、対数などの他のタイプの関数によって様々な区間が定義されてもよい。
【０１３５】
次に図２０Ｂを参照すると、グラフ２０２は、検出状況によってオクタントのカウントが減分される量を示す。オクタントのカウントは、ＴｈＬｏｗより小さい場合。オクタントのカウントがＴｈＬｏｗより大きい場合は、減分されるオクタントのカウントは、区間Ｆに対応する値（例えば、１００）だけ減分される。したがって、運動物体が特定のセル内を特定のオクタントの方向に通過しているとフェージングモジュールが判定したとき、フェージングモジュールは、グラフ２００に示された関数を使用して他のオクタントの各カウントを減分する量を決定する。階段関数以外の他の関数型を使用して、カウントが減分される量を定義してもよいことを理解されたい。
【０１３６】
次に図２０Ｃを参照すると、グラフ２０４は、時間ベースの状況でオクタントのカウントが減分される量を示す。時間ベースの状況では、物体が所定の時間量より長い間検出されていないことを理解されたい。そのような例では、オクタントは、増分されない。時間ベースの状況では、ＴＴｉｍｅより少ないカウントを有するオクタントは減分されない。ＴＴｉｍｅより大きいがＴｈＨｉｇｈより小さいカウントを有するオクタントは、区分Ｈに対応する量だけ増分される。この例の区間Ｇは、一次関数によって定義され、したがってオクタントの実際のカウントに応じて、減分される量が異なることが分かる。最後に、オクタントのカウントが、ＴｈＨｉｇｈより高い場合、カウントは、区間Ｉ（例えば、１００）に従って減分される。したがって、運動物体が、所定の時間量より長い間特定のセルを通過していないとフェージングモジュールが判定したとき、フェージングモジュールは、グラフ２０４に示された関数を使用してオクタントの各カウントを減分する量を決定する。図２０Ｃのグラフは、１つの可能な減分手法の例として示される。他の関数がグラフ２０４の様々な区間を定義してもよいことを想起されたい。
【０１３７】
更に、図２０Ａ〜図２０Ｃを参照すると、任意のオクタントのカウントが増分されたとき、セルの総カウント（例えば、Ｃｅｌｌ．ｘｙ．ｍｅｍ＿ｃｎｔ）は、同じ量だけ増分される。更に、任意のオクタントのカウントが減分されたとき、セルの総カウントは、同じ量だけ減分される。
【０１３８】
幾つかの実施形態では、フェージングモジュールが、セル内をオクタントに対応する方向に移動している物体を検出したときにオクタンのカウントを所定量（例えば、１）だけ増分し、また他のオクタントのカウントを同じ所定量だけ減分してもよいことを想起されたい。同様に、物体がセル内で所定の時間量より長い時間観察されなかったとき、全てのオクタントのカウントが所定の量だけ減分されてもよい。
【０１３９】
本明細書で使用されるとき、モジュールという用語は、特定用途向け集積回路（ＡＳＩＣ）、電子回路、１つ又は複数のソフトウェア又はファームウェアプログラムを実行するプロセッサ（共用、専用、又は１組）及び／又はメモリ（共用、専用、又は１組）、組み合わせ論理回路、及び／又は説明された機能を提供する他の適切な構成要素を指すか、これらの一部又は全てを含んでもよい。
【０１４０】
実施形態の以上の説明は、例証と説明のために提供された。この説明は、網羅的でもなく本発明を限定するものでもない。特定の実施形態の個々の要素又は特徴は、一般に、その特定の実施形態に限定されないが、必要に応じて、交換可能であり、特に示さず説明されない場合でも、特定の実施形態で使用され得る。これらの実施形態は様々に変更されてもよい。そのような変形は、本発明からの逸脱と見なされるべきでなく、そのような修正は全て、本発明の範囲内に含まれるものである。
【図１】
2013520722.tif 000027
【図２】
2013520722.tif 000028
【図３Ａ】
2013520722.tif 000029
【図３Ｂ】
2013520722.tif 000030
【図４】
2013520722.tif 000031
【図５】
2013520722.tif 000032
【図６】
2013520722.tif 000033
【図７】
2013520722.tif 000034
【図８】
2013520722.tif 000035
【図９】
2013520722.tif 000036
【図１０】
2013520722.tif 000037
【図１１】
2013520722.tif 000038
【図１２】
2013520722.tif 000039
【図１３】
2013520722.tif 000040
【図１４】
2013520722.tif 000041
【図１５】
2013520722.tif 000042
【図１６】
2013520722.tif 000043
【図１７】
2013520722.tif 000044
【図１８】
2013520722.tif 000045
【図１９】
2013520722.tif 000046
【図２０Ａ】
2013520722.tif 000047
【図２０Ｂ】
2013520722.tif 000048
【図２０Ｃ】
2013520722.tif 000049
【図２１】
2013520722.tif 000050
【国際調査報告】
2013520722.tif 000051
2013520722.tif 000052