図1は、いくつかの実施形態による、固定された静的カメラによって録画されたビデオ内の異常を検出する画像処理システム100のブロック図を示す。画像処理システム100は、記憶された命令を実行するように構成されたプロセッサ120と、このプロセッサによって実行可能な命令を記憶するメモリ140とを備える。プロセッサ120は、シングルコアプロセッサ、マルチコアプロセッサ、コンピューティングクラスター、又は任意の数の他の構成とすることができる。メモリ140は、ランダムアクセスメモリ(RAM:random access memory)、リードオンリーメモリ(ROM:read only memory)、フラッシュメモリ、又は他の任意の適したメモリシステムを含むことができる。プロセッサ120は、バス106を通じて1つ以上の入出力デバイスに接続される。これらの命令は、ビデオシーケンス内の異常を検出する方法を実施する。
様々な実施形態において、異常検出は、各ビデオフレーム内の任意の異常のロケーション及びサイズを示すバウンディングボックスのセットを生成する。画像処理システム100は、2つのビデオパッチを比較して、これらの比較されたビデオパッチを類似又は非類似と宣言するようにトレーニングされたニューラルネットワーク135を用いて、ビデオ内の異常を検出するように構成される。ニューラルネットワーク135を用いて、画像処理システム100は、シーンの入力ビデオのビデオパッチを、同じシーンのトレーニングビデオのビデオパッチと比較して、入力ビデオのパッチがトレーニングビデオ内の全てのパッチ又は対応するパッチに非類似である場合、異常を宣言する異常検出器を実装する。例えば、記憶デバイス130は、トレーニング及び/又は入力ビデオフレームの異なる部分から抽出されたビデオパッチのセットを記憶するように適合することができる。記憶デバイス130は、ハードドライブ、光ドライブ、サムドライブ、ドライブのアレイ、又はそれらの任意の組み合わせを用いて実施することができる。
いくつかの実施態様では、画像処理システム100内のヒューマンマシンインターフェース110が、システムをキーボード111及びポインティングデバイス112に接続する。ポインティングデバイス112は、とりわけ、マウス、トラックボール、タッチパッド、ジョイスティック、ポインティングスティック、スタイラス、又はタッチ画面を含むことができる。画像処理システム100は、画像処理システム100をディスプレイデバイス165に接続するように適合されたディスプレイインターフェース160に、バス106を通じて連結することができる。ディスプレイデバイス165は、とりわけ、コンピュータモニタ、カメラ、テレビ、プロジェクタ、又はモバイルデバイスを含むことができる。
画像処理システム100は、システムを撮像デバイス175に接続するように適合された撮像インターフェース170にも接続することができる。1つの実施形態では、異常検出器の処理対象の入力ビデオフレームは、撮像デバイスから受信される。撮像デバイス175は、ビデオカメラ、コンピュータ、モバイルデバイス、ウェブカム、又はそれらの任意の組み合わせを含むことができる。
いくつかの実施形態では、画像処理システム100は、異常検出の結果に基づいて動作することができるアプリケーションデバイス185に画像処理システム100を接続するように適合されたアプリケーションインターフェース180に、バス106を通じて接続される。例えば、デバイス185は、検出された異常のロケーションを用いて、セキュリティガードに更に調査するように警告する監視システムである。
ネットワークインターフェースコントローラ150は、画像処理システム100を、バス106を通じてネットワーク190に接続するように適合されている。ネットワーク190を通じて、ビデオフレーム195、例えばビデオ133の正常又はトレーニングパッチ及び/又はビデオ131の入力又は試験パッチのフレームを、記憶及び/又は更なる処理のためにダウンロードしてコンピュータの記憶システム130内に記憶することができる。いくつかの実施形態では、ビデオのトレーニング及び入力パッチは、対応するパッチから抽出された特徴のセットとして記憶される。そのようにして、記憶要件を削減することができると同時に、ビデオの後続の処理が改善される。
図2は、ビデオ210のフレームを時空間パッチ230のセットに分割する(220)一例を示している。各時空間パッチ、例えば、パッチ251は、各ビデオフレーム内の時空間パッチの領域を定義する空間次元250と、時空間パッチを形成するビデオフレームの数を定義する時間次元240とによって空間及び時間において定義される。ビデオ210は、入力ビデオ131及び/又はトレーニングビデオ133とすることができる。本明細書においては、同じ領域のトレーニングビデオパッチ及び入力ビデオパッチは、互いに対応する。
種々の実施形態が、シーンのビデオの異なる時空間分割を用いて、ビデオパッチを定義することができる。しかしながら、種々の実施態様において、入力ビデオの時空間分割は、トレーニングビデオの時空間分割と同一であり、比較を能率化する。ビデオをパッチに分割すること及びパッチから特徴を抽出することにより、異常検出が簡略化される。
いくつかの実施形態の目的は、異常検出のために、入力ビデオにおける動きと、トレーニングビデオにおける動きとの直接比較を用いることである。そのような直接比較、例えばユークリッド距離に基づく比較は、計算効率がよく、稀な正常な動きであっても検討することができる。例えば、街道における通常の正常な動きが歩行である場合、集約に基づく方法は、歩行と転倒とを区別することができる。しかしながら、正常な動きが、人物が靴紐を結ぶ動きを含む場合、集約に基づく方法は、トレーニングビデオにおいて靴紐を結ぶ動きが時々存在する場合であっても、この動きを異常とみなす。対照的に、直接距離計算方法は、この靴紐を結ぶ動きを、そのようなタイプの動きがトレーニングビデオ内に存在する場合、正常と認識することができる。
いくつかの実施形態は、人工ニューラルネットワーク等の人工知能の進展は、異常検出のための、入力ビデオ内の動きとトレーニングビデオ内の動きとの間の直接比較の計算要件を簡略化することができるという認識に基づく。人工ニューラルネットワーク(ANN)又はコネクショニストシステムは、動物の脳を構成する生物学的ニューラルネットワークに漠然と着想を得たコンピューティングシステムである。ニューラルネットワークシステムは、複雑なデータ入力を処理することができる。そのようなシステムは、一般に一切のタスク固有の規則をプログラミングされることなく、例を検討することによってタスクを実行することを「学習する」。そのため、自動異常検出のための入力ビデオ内の動きとトレーニングビデオ内の動きとの直接比較のためにそのようなニューラルネットワークに基づくシステムを提供することは魅力的である。理論上、そのようなトレーニングされたニューラルネットワークは、例えば閉回路テレビ(CCTV)システムに適した実用的な計算要件及びメモリ要件を有する動きの直接比較に適した異常検出器を提供することができる。
そのために、ビデオ内の異常を検出する1つの手法は、例から分類器をトレーニングして、ビデオの各部分を正常又は非正常と分類することである。これを行うためには、分類器を、正常な動き及び非正常な動きを既述するビデオを用いてトレーニングしなければならない。しかしながら、正常な動きのビデオは、一般的には容易に入手可能である一方で、非正常な動きのビデオは、一般的には入手可能でない。正常な例のみのデータを有することによって、分類器をトレーニングすることはできない。なぜならば、分類器は、自身が見たことがないクラスを学習することはできないためである。その上、いくつかの実施形態は、全て非常に稀にしか発生せず、それゆえ収集するのが非常に困難であるとともに高価であり、非正常な動きには多数のバリエーションが存在するという認識に基づく。分類器をトレーニングするのに十分な非正常な動きのバリエーションのサブセットのみであっても、これを有するビデオをキャプチャする試みはすべて非生産的である。
いくつかの実施形態は、正常なビデオは、容易に収集され、正常な動きをキャプチャするビデオを完全なものとみなすことができるという認識に基づく。これは、トレーニングビデオ内の動きバリエーションが、正常な動きの異なるタイプを表すのみではなく、正常な動き自体も表すことを意味する。そのようにして、トレーニングビデオ内に存在する動きバリエーションは、正常とみなすことができ、一方、トレーニングビデオに存在しないバリエーションは、非正常とみなすことができる。
この理解を踏まえて、いくつかの実施形態は、非正常な動き対正常な動きを分類するのではなく、シーンのビデオのビデオパッチを比較するのにニューラルネットワークをトレーニング及び/又は使用する。ビデオパッチは、ビデオの時空間領域内に含まれるピクセルの全てを含む。そのようにして、ビデオパッチを正常又は非正常と分類するために1つのビデオパッチをニューラルネットワークに提供する代わりに、実施形態は、比較するために2つのビデオパッチをニューラルネットワーク135にサブミットする。或るビデオパッチが正常な動きのデータベースからのものであり、別のビデオパッチは、正常又は非正常と分類されることが必要である入力ビデオからのものである。正常な動きのデータベースに存在しない入力ビデオパッチは、非正常な動きを表す。そのようにして、いくつかの実施形態は、ビデオパッチを正常又は非正常と分類するようにトレーニングせず、2つのビデオパッチを類似又は非類似と分類するようにトレーニングされた分類器に基づく非正常な及び正常な動きのための検出器を提供する。類似/非類似分類器をトレーニングすることは、異常を含む動きの例を必要としない。
具体的には、いくつかの実施形態は、試験ビデオの異常を含む部分を検出することは、試験ビデオの各部分(すなわち、各時空間領域)を、同じ空間領域内の正常なトレーニングビデオの全てと比較することによって達成することができるという理解に基づく。試験ビデオを、同じ空間領域内の正常なトレーニングビデオと比較することは有利である。なぜならば、正常な動きは、ロケーションに依存するためである。例えば、側道に沿って歩行する人物は正常であるが、街道の中央で歩行する人物又は自動車の上にいる人物は、通常では異常である。それゆえ、異常検出の問題は、試験ビデオからのビデオパッチを、正常なトレーニングビデオからのビデオパッチと比較するという問題に還元することができる。しかしながら、2つのビデオパッチを比較する方法を決定する必要がある。例えば、ビデオパッチのいずれの特徴を比較のために用いるべきであるか、いずれの距離関数を用いるべきであるかを決定する必要がある。
いくつかの実施形態は、これらの問いに対する回答が、コンピュータプログラマによって手作業で設計されるのではなく、ニューラルネットワークによる例から最も良く学習されるという理解に基づく。それゆえ、いくつかの実施形態では、ニューラルネットワークが、2つのビデオパッチを入力として取り込み、ビデオパッチ同士の間の距離を出力するようにトレーニングされる。ビデオパッチペアのトレーニングセットの例は、類似のビデオパッチペアが0(又は0に近い小さい数字)のグラウンドトゥルースラベルを有するとともに、異なるビデオパッチペアが1(又は1に近い数字)のグラウンドトゥルースラベルを有するように作成される。ネットワークアーキテクチャは、ネットワークの最初の層が入力ビデオパッチが類似であるか否かを判断するのに有用な特徴を抽出するとともに、ネットワークの最後の層が入力ビデオパッチ同士の間の距離を計算するのにそれらの特徴を用いるように設計される。
図3は、いくつかの実施形態による異常検出のための方法のフローチャートを示している。方法は、メモリ140に記憶された命令に従ってプロセッサ120によって実行することができる。方法は、入力ビデオを入力ビデオパッチ315に分割する(310)ように構成される。ビデオパッチは、空間的広がりを定義するビデオフレーム内のバウンディングボックスと、時間的広がりを定義する固定フレーム数とによって定義することができる時空間領域である。したがって、時空間領域内のビデオのピクセルは、ビデオパッチを構成する。異なるビデオパッチは重複している場合がある。全てのビデオパッチの和集合がビデオシーケンス全体をカバーする。
方法は、ニューラルネットワーク135を用いて、各入力ビデオパッチ315を、ストレージメモリ130から索出された対応するトレーニングビデオパッチ325と比較して(320)、各入力ビデオが少なくとも1つの対応するトレーニングビデオパッチに類似であるか否かを判断する。例えば、ニューラルネットワークは、入力ビデオパッチと各対応するトレーニングビデオパッチとの間の距離を計算する。自身の最近傍への距離である最小距離は、入力ビデオパッチの異常スコアとして記憶される。
方法は、少なくとも1つの入力ビデオパッチが全ての対応するトレーニングビデオパッチに非類似である場合、異常335を宣言する(330)。例えば、ステップ330において、各異常スコアが閾値と比較され、スコアが閾値を超えた場合、閾値を超えた異常スコアを有するビデオパッチによって表される時空間領域は、異常を含むと分類される。そうでない場合、領域は、正常と分類される。例えば、1つの実施形態は、距離のセット内の少なくとも1つの距離が異常検出閾値340よりも大きい場合にシーンの入力ビデオ内で異常を検出するように構成される。実施形態は、異常335を検出することに応答して、制御アクションを更に実行することができる。方法のステップは、異なる入力パッチ315のそれぞれについて実行される。
このように、いくつかの実施形態は、例えば閉回路テレビ(CCTV)システムに適した実用的な計算要件及びメモリ要件を有する動きの直接比較に適した異常検出器を提供することができる。
図4は、1つの実施形態による、シーンの正常なビデオの時空間領域から抽出された正常なビデオパッチである典型例のセットを準備する方法のフローチャートを示している。典型例は、シーン内の正常な挙動を表すとみなされる。換言すれば、入力された試験ビデオパッチが典型例に類似である場合、入力ビデオパッチは、正常とみなされる。そうでない場合、その入力ビデオパッチは、異常を含むとみなされる。
典型例のセットは、シーンの正常なビデオを分析することと、正常なビデオ内に見られる多様な動きをカバーするビデオパッチを選択することとによって決定される。例えば、実施形態は、正常な動きのトレーニングビデオ410を試験ビデオの時空間領域420に分割する(S11)ように構成される。入力ビデオの時空間領域の分解能の次元は、時空間領域420の次元及び/又は分解能に対応する。次に、実施形態は、正常なビデオ420内の時空間領域のそれぞれについてビデオパッチ430を抽出する(S22)。
実施形態は、シーン内の同じ空間領域に対応する正常なビデオパッチの各ペア間の距離を計算して(S33)、正常なビデオパッチ間の距離のセット440を生成するように構成される。次に、実施形態は、類似の正常なビデオパッチをプルーニングする。具体的には、実施形態は、正常なビデオの特定の空間領域を表す典型例を、その空間領域について全ての正常なビデオパッチを「カバーする」ようなビデオパッチのサブセットとして選択する(S44)。ビデオパッチのサブセットは、スーパーセット(superset:上位集合)内の各ビデオパッチと、カバーするサブセット内の最近傍ビデオパッチとの間の距離が閾値未満である場合、ビデオパッチのスーパーセットをカバーする。換言すれば、スーパーセット内の全てのビデオパッチは、カバーするサブセット内のビデオパッチに近い。ビデオパッチ同士の間の距離は、ビデオパッチのペアを、類似又は非類似と分類するようにトレーニングされたニューラルネットワークを用いて計算される。カバーするサブセット内のビデオパッチ及び/又はカバーするサブセット内のビデオパッチから抽出された特徴は、メモリ130に記憶される(133)。
いくつかの実施形態は、正常な動きのデータベースを改善するのにニューラルネットワーク自体を更に用いることができるという別の理解に基づく。そのため、ビデオパッチ同士の間の距離は、事前にトレーニングされたニューラルネットワーク135を用いて計算される。具体的には、いくつかの実施形態では、正常な動きのデータベースは、独自のビデオパッチのみを含み、すなわち、ニューラルネットワークを用いて比較されるいずれの2つのトレーニングビデオパッチも非類似である。そのために、いくつかの実施形態は、正常な動きのデータベースからビデオパッチを除去し、全ての残りのビデオパッチが互いに非類似であるとともに、各除去されたビデオパッチが少なくとも1つの残りのビデオパッチに類似であるようにする。そのようにして、正常な動きのデータベースを記憶するメモリ要件を、異常検出の精度を低下させることなく削減することができる。
図5は、1つの実施形態による、トレーニングビデオパッチを記憶する一例示の概略図を示している。この例では、実施形態は、ニューラルネットワーク135を用いて、4つのトレーニングビデオパッチ510、520、530、及び540を互いに比較する。ニューラルネットワーク135に従って、パッチ520及び530が他のパッチ、例えばパッチ510に類似である場合、それらのパッチは、記憶されたトレーニングパッチ133からプルーニングされる(550)。パッチ540が他の全てのパッチと異なる場合、パッチ540は、記憶されたトレーニングパッチ133に記憶される。そのようにして、トレーニングパッチ133は、ニューラルネットワークを用いて比較されるときにメモリに記憶されたいずれの2つのトレーニングビデオパッチも非類似であるように、非類似のパッチのみを含む。
いくつかの実施形態は、比較されることになるビデオから特徴を抽出する方法も、ニューラルネットワークによって実行することができるという理解に基づく。加えて、又は代替的に、いくつかの実施形態は、比較のために有利であるビデオフレームから特徴を抽出するためにビデオパッチを比較するようにトレーニングされた同じニューラルネットワークを用いる。そのようにして、このニューラルネットワークは、特徴抽出及び特徴比較の双方についてエンドツーエンド方式でトレーニングすることができ、それにより、ビデオ比較の精度を高めることができる。
そのために、いくつかの実施形態は、トレーニングビデオパッチ及び入力ビデオパッチのそれぞれは、異なる時空間パッチから特徴ベクトルを計算し、抽出された特徴ベクトルを比較して異なる時空間パッチのビデオパッチを類似又は非類似と宣言するようにトレーニングされたニューラルネットワークによってトレーニングビデオ及び入力ビデオから計算された特徴ベクトルによって表される。
図6は、いくつかの実施形態によって用いられるシャムニューラルネットワークのアーキテクチャの一例を示している。このニューラルネットワークは、異なる時空間パッチから特徴ベクトルを抽出し、抽出された特徴ベクトルを比較して、異常検出器の性能を改善するとともに、メモリに記憶されたパッチの数を削減する。ニューラルネットワークは、異常スコア(試験ビデオパッチとその最近傍の典型例との間の距離)を割り当てること、及び、空間領域内の全ての正常なビデオパッチのセットをカバーする典型例のセットを選択することの双方について、2つのビデオパッチ間の距離を求めるのに用いられる。ニューラルネットワークは、入力として、2つのビデオパッチ610及び520を取り込み、それらの間の距離を出力するか(690)、又は、それらを「類似」又は「異なる」と分類する。ネットワークの最初の3つの層620は、入力に対する畳み込みのセットを適用する畳み込み層であり、これに、正規化線形関数又はシグモイド関数等の非線形性が後続する。これらの畳み込み層の結果は、後続の比較のための各ビデオパッチ内の重要な情報を含む特徴マップのセットである。これらの畳み込み層の重み及びパラメーターは、ネットワークの上側セクション及び下側セクションにおいて同一であり、特徴の同じセットが双方の入力ビデオパッチから抽出されるようになっている。上側セクション及び下側セクションの最後の畳み込み層によって出力された特徴マップは、連結、加算又は乗算等の単純な演算を用いて結合される(640)。結合された特徴マップは、その後、更なる畳み込み層650、655(非線形性を有する)を通過し、これに、畳み込み層655によって出力された特徴マップを単一の浮動小数点数にマッピングする全結合層670が後続する。その後、この数字を、入力ビデオパッチ同士の間の距離690を表す0〜1の浮動小数点数にマッピングするのに、シグモイド関数680が用いられる。しかしながら、代替的な実施形態は、種々のアーキテクチャのニューラルネットワーク135を用いる。
ネットワークアーキテクチャを問わず、ニューラルネットワークは、ビデオパッチ及び対応するラベル(0又は1等の数字によって表すことができる同じ又は異なる)のペアからなるトレーニング例に対してトレーニングされる。1つの実施形態では、ニューラルネットワークは、多くの異なるビデオからの多様なビデオパッチペアに対して1度トレーニングされ、その後、トレーニング中に用いられたいずれのものとも異なる新規のビデオを含む任意のビデオのためにビデオ異常検出システムにおいて用いられる。いくつかの実施態様では、ニューラルネットワークは、異常検出のために後に用いられる場合がある特定のターゲットビデオからのビデオパッチに対してトレーニングされない。換言すれば、ニューラルネットワークは、任意のビデオからの新規のビデオパッチの類似度を求める問題に適用するのに一般的に十分になるように、多様な異なるビデオを用いてトレーニングされる。
ニューラルネットワークをトレーニングするためのビデオパッチを作成するために、異なる実施形態が、種々のストラテジーを用いる。例えば、1つの実施形態は、1つのビデオパッチペアを定義するためにビデオの時空間領域を選び、その後、第2の類似のビデオパッチペアを定義するために時空間領域に小変換(並進、回転及び拡縮)を適用することによって、類似のビデオパッチペアを作成する。
別の実施形態では、或るシーンの全ての正常な動きを定義する正常なビデオを、いずれの異常も含まない同じシーンの試験ビデオとともに与えられると、試験ビデオの任意のビデオパッチは、定義により、同じ空間領域からの正常なビデオの少なくとも1つのビデオパッチに類似でなければならない。試験ビデオパッチへの最近傍の正常なビデオパッチは、例えば、未加工ピクセルの単純なユークリッド距離を用いて発見することができる。
別の実施形態では、或るシーンの全ての正常な動きを定義する正常なビデオを、(例えば、人間の注釈者によって)注釈を付けられた異常を含む同じシーンの試験ビデオとともに与えられると、全ての異常を含むビデオパッチは、定義により、同じ空間領域内の全ての正常なビデオパッチと異なる。それゆえ、各注釈付けされた異常を含むビデオパッチから多くの可能な異なるビデオパッチペアを作成することができる。
図7は、試験ビデオパッチに最も近い典型例を発見するためにいくつかの実施形態によって用いられる最近傍探索方法の概略図を示している。図7において、fv710は、入力ビデオパッチであり、各xi720は、正常なビデオパッチ(典型例)である。最近傍探索730は、fvと最近傍のxiとの間の最小距離d740を出力する。異なる実施形態は、異なる最近傍探索を用いる。例えば、1つの実施形態は、各入力特徴ベクトルを各トレーニング特徴ベクトルと比較するために力まかせ探索を用いる。いくつかの実施態様では、最近傍探索730は、近似最近傍探索であり、最小距離を得ることが保証されておらず、代わりに、最小値に近い特徴ベクトルを得ることができる。kd木、k平均木、及び局所性鋭敏型ハッシュ等の、当該技術分野において既知の様々な最近傍探索アルゴリズムを用いることができる。
本発明の上記で説明した実施形態は、多数の方法のうちの任意のもので実施することができる。例えば、実施形態は、ハードウェア、ソフトウェア又はそれらの組み合わせを用いて実施することができる。ソフトウェアで実施される場合、ソフトウェアコードは、単一のコンピュータに設けられるのか又は複数のコンピュータ間に分散されるのかにかかわらず、任意の適したプロセッサ又はプロセッサの集合体において実行することができる。そのようなプロセッサは、1つ以上のプロセッサを集積回路部品に有する集積回路として実装することができる。しかしながら、プロセッサは、任意の適したフォーマットの回路類を用いて実装することができる。
また、本発明の実施形態は、例が提供された方法として実施することができる。この方法の一部として実行される動作は、任意の適切な方法で順序付けすることができる。したがって、動作が示したものと異なる順序で実行される実施形態を構築することができ、これには、例示の実施形態では一連の動作として示されたにもかかわらず、いくつかの動作を同時に実行することを含めることもできる。
請求項の要素を修飾する、特許請求の範囲における「第1」、「第2」等の序数の使用は、それ自体で、1つの請求項の要素の別の請求項の要素に対する優先順位も、優位性も、順序も暗示するものでもなければ、方法の動作が実行される時間的な順序も暗示するものでもなく、請求項の要素を区別するために、単に、或る特定の名称を有する1つの請求項の要素を、同じ(序数の用語の使用を除く)名称を有する別の要素と区別するラベルとして用いられているにすぎない。