IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グラスパー テクノロジーズ エーピーエスの特許一覧

特許7372391入力データにおける異常を検知するための概念
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-23
(45)【発行日】2023-10-31
(54)【発明の名称】入力データにおける異常を検知するための概念
(51)【国際特許分類】
   G06T 7/00 20170101AFI20231024BHJP
   G06N 3/08 20230101ALI20231024BHJP
   H04N 23/60 20230101ALI20231024BHJP
【FI】
G06T7/00 300E
G06N3/08
G06T7/00 350C
H04N23/60 500
【請求項の数】 15
【外国語出願】
(21)【出願番号】P 2022083144
(22)【出願日】2022-05-20
(65)【公開番号】P2022184761
(43)【公開日】2022-12-13
【審査請求日】2022-05-23
(31)【優先権主張番号】21176823.9
(32)【優先日】2021-05-31
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】521372655
【氏名又は名称】グラスパー テクノロジーズ エーピーエス
【氏名又は名称原語表記】Grazper Technologies ApS
(74)【代理人】
【識別番号】100147485
【弁理士】
【氏名又は名称】杉村 憲司
(74)【代理人】
【識別番号】230118913
【弁護士】
【氏名又は名称】杉村 光嗣
(74)【代理人】
【識別番号】100211395
【弁理士】
【氏名又は名称】鈴木 裕貴
(72)【発明者】
【氏名】トーマス ヤコブセン
(72)【発明者】
【氏名】マックス ラ コー クリステンセン
(72)【発明者】
【氏名】モルテン サルドラップ ラルセン
【審査官】合田 幸裕
(56)【参考文献】
【文献】国際公開第2020/175147(WO,A1)
【文献】国際公開第2020/088739(WO,A1)
【文献】米国特許出願公開第2020/0387797(US,A1)
【文献】米国特許出願公開第2020/0410322(US,A1)
【文献】米国特許出願公開第2012/0224746(US,A1)
【文献】Mahmood R. Azimi-Sadjadi et al.,Detection and Classification of Buried Dielectric Anomalies Using a Separated Aperture Sensor and a Neural Network Discriminator,IEEE Transactions on Instrumentation and Measurement,米国,IEEE,1992年02月,Vol. 14, No. 1,pages 137-143,<DOI: https://doi.org/10.1109/19.126648>
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00
G06N 3/08
H04N 23/60
IEEE Xplore
JSTPlus(JDreamIII)
(57)【特許請求の範囲】
【請求項1】
入力データにおける異常を検知するための装置(10)であって、前記装置は、1つ又は複数のプロセッサ(14)と1つ又は複数の記憶デバイス(16)とを含み、
前記装置は、
機械学習モデルのシーケンスを使用して前記入力データを処理することであって、
機械学習モデルの前記シーケンスは、前処理された入力データを提供するために前記入力データを前処理するように構成された第1の機械学習モデルと、出力データを提供するために前記前処理された入力データを処理するように構成された第2の機械学習モデルとを含み、
前記第1の機械学習モデルは、前記前処理された入力データが既知の確率分布で統計的に独立している複数のサブコンポーネントを含むように、前記入力データを変換するように訓練され、且つ、前記第2の機械学習モデルは、オートエンコーダである、前記処理することを行い、且つ、
前記第2の機械学習モデルの前記出力データに基づいて前記入力データ内の異常の存在を決定する、
ように構成されている、装置。
【請求項2】
前記第1の機械学習モデルは、前記前処理された入力データを生成するために前記入力データの複数のサブコンポーネントを無相関化するように訓練される、請求項1に記載の装置。
【請求項3】
前記入力データは、複数の画素を含む画像データであり、前記複数の画素は、前記入力データの前記複数のサブコンポーネントに対応する、請求項2に記載の装置。
【請求項4】
前記画像データは、幅w、高さh及び色チャンネル数dの画素の2次元グリッドを含み、前記第1の機械学習モデルは、前記画像データを、w<w、h<h及びd>dである、第1の次元w、第2の次元h及び第3の次元dを有する前記前処理された入力データに変換するように訓練される、請求項3に記載の装置。
【請求項5】
前記第1の機械学習モデルは、前記画像データを、前記第1の次元w、前記第2の次元h及び前記第3の次元dを有する表現に変換するように訓練されたバックボーンコンポーネントと、既知の確率分布で統計的に独立している前記複数のサブコンポーネントを有する前記前処理された入力データを生成するために前記変換された画像データを無相関化するように訓練された無相関コンポーネントとを含む、請求項4に記載の装置。
【請求項6】
前記入力データは画像データであり、前記装置は、前記入力データ内の前記異常の前記存在を決定するために前記前処理された入力データと前記第2の機械学習モデルの前記出力データとの間の差分を決定し、前記差分に基づいて前記入力データ内の前記異常の位置を決定し、且つ、前記異常の前記位置に関する情報を提供するように構成されている、請求項1乃至5のいずれか1項に記載の装置。
【請求項7】
前記異常の前記位置に関する前記情報は、前記異常を包含するバウンディングボックスの1つ又は複数の座標を含み、且つ/或いは、前記装置は、前記差分に基づいて、且つ少なくとも1つの閾値に基づいて、前記異常の前記存在及び/又は位置を決定するように構成されている、請求項6に記載の装置。
【請求項8】
前記装置は、前記前処理された入力データと前記第2の機械学習モデルの前記出力データとの間の前記差分にぼかしを適用し、且つ、前記前処理された入力データと前記第2の機械学習モデルの前記出力データとの間の前記ぼかされた差分に基づいて、且つ少なくとも1つの閾値に基づいて、前記異常の前記存在及び/又は前記位置を決定するように構成されている、請求項6に記載の装置。
【請求項9】
前記少なくとも1つの閾値及び/又は前記前処理された入力データと前記第2の機械学習モデルの前記出力データとの間の前記差分をぼかすために使用されるぼかしパラメータは、外部のエンティティによって設定される、請求項7に記載の装置。
【請求項10】
コンピュータ、プロセッサ、処理回路、又はプログラム可能なハードウェアコンポーネントにより実行される、異常検知に使用する機械学習モデルのシーケンスを訓練するための方法であって、
機械学習モデルの前記シーケンスは、前処理された入力データを提供するために入力データを前処理するように構成された第1の機械学習モデルと、出力データを提供するために前記前処理された入力データを処理するように構成された第2の機械学習モデルとを含み、
前記第1の機械学習モデルは、前記前処理された入力データが既知の確率分布で統計的に独立している複数のサブコンポーネントを含むように、前記入力データを処理するために訓練され、且つ、前記第2の機械学習モデルは、オートエンコーダであり、
前記方法は、異常を含まない訓練用入力データのサンプルの集合に基づいて機械学習モデルの前記シーケンスを共同訓練すること(410)を含む、
方法。
【請求項11】
前記第1の機械学習モデルは、第1の損失関数に基づいて訓練され、且つ、前記第2の機械学習モデルは、第2の損失関数に基づいて訓練される、請求項10に記載の方法。
【請求項12】
前記第2の機械学習モデルは、機械学習モデルの前記シーケンスの前記訓練中に前記第1の機械学習モデルによって提供された前記前処理された入力データに基づいて前記第2の機械学習モデルのための訓練用入力データを生成すること(415)によって訓練され、前記前処理された入力データの前記複数のサブコンポーネントの部分集合は、前記第2の機械学習モデルのための前記訓練用入力データにおいて固定値に設定され、前記第2の損失関数は、前記第2の機械学習モデルの前記出力データと前記前処理された入力データとの間の差分に基づいている、請求項11に記載の方法。
【請求項13】
前記第1の機械学習モデルは、バックボーンコンポーネントと無相関コンポーネントとを含み、前記バックボーンコンポーネントのニューロン間の重みは、機械学習モデルの前記シーケンスの前記共同訓練中に固定される、請求項10乃至12のいずれか1項に記載の方法。
【請求項14】
コンピュータ、プロセッサ、処理回路、又はプログラム可能なハードウェアコンポーネントにより実行される、入力データにおける異常を検知する方法であって、前記方法は、
機械学習モデルのシーケンスを使用して前記入力データを処理すること(110)であって、
機械学習モデルの前記シーケンスは、前処理された入力データを提供するために前記入力データを前処理するように構成された第1の機械学習モデルと、出力データを提供するために前記前処理された入力データを処理するように構成された第2の機械学習モデルとを含み、
前記第1の機械学習モデルは、前記前処理された入力データが既知の確率分布で統計的に独立している複数のサブコンポーネントを含むように、前記入力データを変換するように訓練され、且つ、前記第2の機械学習モデルは、オートエンコーダである、前記処理することと、
前記第2の機械学習モデルの前記出力データに基づいて前記入力データ内の異常の存在を決定すること(150)と、
を含む、方法。
【請求項15】
請求項10乃至12のいずれか1項に記載の方法又は請求項14に記載の方法を実行するためのプログラムコードを有し、コンピュータ、プロセッサ、処理回路、又はプログラム可能なハードウェアコンポーネント上で実行される、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
実施例は、入力データにおける異常を検知するための装置、方法及びコンピュータプログラムに関し、そのような装置を含むカメラデバイス及びシステムに関し、且つ異常検知に使用する機械学習モデルのシーケンスを訓練するための方法及びコンピュータプログラムに関する。
【背景技術】
【0002】
多くの監視シナリオでは、人間のオペレータは、異常についての異なるビデオフィードを監視するために(通常は中央の)監視場所に必要とされる。異常は、無許可の人々又は不必要な物体の存在を含んでもよいが、火災、事故又は類似の重要な或いは危険な事象の存在を含んでもよい。
【0003】
多くのカメラの設置において、カメラはしばしば、VMS(ビデオ管理システム)に接続され、それは、全てのカメラから記録することを処理し、(異なる表示に切り替える、或いは古い映像を表示するために)グラフィカルユーザインタフェースを提示し、注意を要するものがある場合にオペレータに警報を出すことも可能である。いくつかのVMSは、既存のフィードで動作するために、アルゴリズムがVMS内部で実行する、異常検知プラグインを許可する。例えば、矩形が、VMSによって提供されたフィードの表現において異常の周りに描かれ得る。
【0004】
プロセスを自動化するためのいくつかの方法は、1つのビデオ画像フレームから次のフレームへの画像の画素における十分に大きな変化がオペレータに警報を出すために警報を引き起こすアルゴリズムに主に依存する。いくつかの方法はまた、(照明の変化に対応する)画像の正規化、(ノイズに対応する)マルチフレームの平均化、及び安定性の向上のためのエッジ検知のような他の従来のコンピュータビジョンアルゴリズムに依存してもよい。例えば、オープンソースのフレームワーク、OpenCV 2(Open Computer Vi-sion 2)は、そのような機能性を提供し得る。
【0005】
異常検知のためのいくつかの方法は、例えば時系列での異常検知のためのサポートベクターマシン(SVM)を使用する、機械学習を使用してもよい。しかしながら、これらの方法は、低次元の場合に対応するように作られており(不正検知には有用であるが、ビデオデータの解析には有用ではない)、また、(ディープネットワークと比較されると)SVMの低い能力に制限される。
【0006】
場合によっては、ディープラーニングは、文献上ではビデオ異常検知のために提案されている。しかしながら、提案されたアルゴリズムは、一般的に非効率であり、ビデオ解析には適していないことがある。従来の教師ありマルチカテゴリ学習を適用するディープネットワークアプローチは、異常事象のビデオ映像の不足に悩まされる。いくつかのアプローチはまた、オートエンコーダを使用する。
【0007】
しかしながら、そのような概念は一般的に、照明の変化、形状の予想された変化、又は(変化する天候のような)周囲の「通常の」/予想された変化に対してロバストではない。したがって、それらは、連続照明が必要であり得、窓の存在で上手く機能しないことがある。さらに、多くの誤報は、システムを無効化して人間の監視に頼るユーザをもたらし得る。さらに、従来の教師あり学習を使用するディープネットワークベースのアプローチはしばしば、異常の映像が稀であるため、訓練事例の不足に悩まされる。さらに、形状の変化又はPTZ(パン/チルト/ズーム)カメラのパン/ズームは、考えられていない。
カメラの小さな変位又は振動でも悪影響をもたらし得る。多くのアプローチの異なる性質に起因して、しばしば2枚の連続する画像が必要とされるため、遅い更新速度又は単一の画像解析もまた、考えられていない。オートエンコーダの使用に依存する上述のアプローチは、ロバストな差分処理及び閾値処理を実装することを困難にするアンバランスな出力が発生しやすい。
【0008】
監視カメラの画像データのような、入力データにおける異常を検知するための改良された概念が望まれ得る。
【発明の概要】
【0009】
本開示の様々な態様は、オートエンコーダの機械学習モデルに加えて、1つ又は複数の機械学習モデルが、訓練中にオートエンコーダが「崩壊すること」を防止する形式で前処理された入力データを生成するために、オートエンコーダに提供された入力データを前処理するために使用され得るという発見に基づいている。
【0010】
例えば、画像データにおける異常検知のロバスト性を向上させるために、前処理は、局所変換、回転及び/又は色の変化に関する入力データの微細な変化を無視するために、(画像)バックボーンを任意に含んでもよい。オートエンコーダを有する画像バックボーンを使用することは、異常検知の場合にいくつかの利点をもたらすが、そのアプローチには、いくつかの落とし穴がある。これらに対応するために、前処理は、オートエンコーダがその入力において既知の確率分布で統計的に独立している複数のサブコンポーネントを受け取るように、画像バックボーンの出力のサブコンポーネントの無相関化を実行することを含む。そのような入力は、機械学習モデルの共同訓練(ジョイントトレーニング)中に機械学習モデルの崩壊を引き起こす可能性が低い。
【0011】
この入力は、オートエンコーダによって処理され、それは、最初に入力の次元を下げ、その後それを再構成しようと試みる。異常は稀であり、したがって、オートエンコーダの訓練に属さないため、それは、異常なく前処理された入力データのバージョンを再構成する。したがって、オートエンコーダの入力と出力とを比較することによって、異常は検知され得る。
【0012】
このアプローチは、小さな物体さえも検知し得、大きな、予想された変化に対しても高度にロバストである、異常検知への高精度なアプローチを提供し得る。言い換えれば、偽陽性及び偽陰性の数が少ないシステムとなり得る。さらに、この概念は、自動キャリブレーションをサポートする。例えば、機器を設置した後、システムは、正常な視覚的挙動、すなわち、夜/昼の変化、雨、汚れ及びその他の発生が何であるかを決定するために、ある期間、例えば1週間のビデオ映像を解析してもよい。このビデオ映像は、機械学習モデルを訓練するために使用されてもよい。オートエンコーダは、キャリブレーションフィード(すなわち、機械学習モデルを訓練するために使用される訓練用サンプルの集合)中に汚れ、紙及び他のアイテムが存在する場合、それらが画像の異なる位置に現れる場合であっても、無視することを自動的に学習し得る。したがって、機械学習モデルは、正常な(すなわち、非異常な)ビデオ映像のみを使用して訓練されてもよく、それは、(例えば、爆発、火災又は先験的に未知の非常に異なる物体などの)異常の記録が通常稀であり、大きく異なるため、訓練を容易にする。さらに、画像バックボーンを使用することによって、提案された概念は、カメラの向き及び配置(パン/チルト/ズーム)の小さな変化に対してロバストである。
【0013】
本開示の様々な態様は、入力データにおける異常を検知するための装置に関する。装置は、1つ又は複数のプロセッサと、1つ又は複数の記憶デバイスとを含む。装置は、機械学習モデルのシーケンスを使用して入力データを処理するように構成されている。機械学
習モデルのシーケンスは、前処理された入力データを提供するために入力データを前処理するように構成された第1の機械学習モデルと、出力データを提供するために前処理された入力データを処理するように構成された第2の機械学習モデルとを含む。第1の機械学習モデルは、前処理された入力データが既知の確率分布で統計的に独立している複数のサブコンポーネントを含むように、入力データを変換するように訓練される。第2の機械学習モデルは、オートエンコーダである。装置は、第2の機械学習モデルの出力に基づいて入力データ内の異常の存在を決定するように構成されている。オートエンコーダを使用することは、入力データの単一のサンプルでさえもロバストな異常検知を可能にし得、第1の機械学習モデルによって提供された前処理は、機械学習モデルのシーケンスが訓練中に「崩壊すること」、すなわち、機械学習モデルのシーケンスが、例えば常に一定の値を出力することによって、異常を検知するのに適していないように訓練されること、を防止するために使用されてもよい。
【0014】
例えば、第1の機械学習モデルは、前処理された入力データを生成するために入力データの複数のサブコンポーネントを無相関化するように訓練されてもよい。これは、既知の確率分布で統計的に独立している前処理された入力データの複数のサブコンポーネントをもたらす。
【0015】
特に、提案された概念は、画像データ、例えば、監視カメラのビデオストリームのような、ビデオストリームの画像データである入力データと共に使用されてもよい。したがって、入力データは、複数の画素を含む画像データであってもよい。複数の画素は、入力データの複数のサブコンポーネントに対応してもよい。
【0016】
画像データは、表現される情報の「深度」を深くしながら空間解像度を下げるために、例えば前述の画像バックボーンを使用して、更に前処理されてもよい。例えば、画像データは、幅w1、高さh1及び色チャンネル数d1の画素の2次元グリッドを含んでもよい。第1の機械学習モデルは、画像データを、w2<w1、h2<h1及びd2>d1である、第1の次元w2、第2の次元h2及び第3の次元d2を有する前処理された入力データに変換するように訓練されてもよい。そのような変換は、カメラの向き及び配置の小さな変化に関して異常検知をよりロバストにし得る。
【0017】
例えば、第1の機械学習モデルは、第1の次元w2、第2の次元h2及び第3の次元d2(例えば、「深度」)を有する表現に画像データを変換するように訓練されたバックボーンコンポーネントと、既知の確率分布で統計的に独立している複数のサブコンポーネントを有する前処理された入力データを生成するために変換された画像データを無相関化するように訓練された無相関コンポーネントとを含んでもよい。バックボーンコンポーネントは、カメラの向き及び配置の小さな変化に関して異常検知をよりロバストにするために使用され得、無相関コンポーネントは、第2の機械学習モデルが訓練中に「崩壊すること」を防止するために使用される。
【0018】
第2の機械学習モデルは、オートエンコーダである。それに対応して、第2の機械学習モデルは、エンコーダコンポーネントとデコーダコンポーネントとを含む。
【0019】
様々な実施例では、装置は、入力データ内の異常の存在を決定するために前処理された入力データと第2の機械学習モデルの出力との間の差分を決定するように構成されている。オートエンコーダは、予測器として使用されてもよいし、したがって、(理想的には)異常を含まないデータを生成してもよい。前処理された入力データが予測されたデータと異なる場合、入力データは異常を含むとみなされ得る。
【0020】
例えば、上述されたように、入力データは、画像データであってもよい。装置は、差分に基づいて入力データ内の異常の位置を決定するように構成されてもよい。装置は、異常の位置に関する情報を提供するように構成されてもよい。例えば、前処理された入力データにおける(或いは出力データにおける)異常の位置は、例えば、画像データのサブコンポーネントと前処理された入力データのサブコンポーネントとの間の空間的関係に基づいて、画像データにおける異常の位置を導くために使用されてもよい。例えば、異常の位置に関する情報は、異常を包含するバウンディングボックスの1つ又は複数の座標を含んでもよい。そのようなバウンディングボックスは、画像データにオーバーレイされてもよい。
【0021】
いくつかの実施例では、装置は、差分に基づいて、且つ少なくとも1つの閾値に基づいて、異常の存在及び/又は位置を決定するように構成されてもよい。閾値は、「偽陽性」(例えば、関連するには小さすぎる異常を検知すること)と「偽陰性」(例えば、概念のそれぞれの適用において関心のある異常を無視すること)との間のバランスを設定するために使用されてもよい。閾値を使用することによって、より小さな影響を有する変化は、無視され得る。
【0022】
更なる技法は、検知する「偽陽性」と「偽陰性」との間のバランスを微調整するために適用されてもよい。例えば、装置は、前処理された入力データと第2の機械学習モデルの出力との間の差分にぼかしを適用するように構成されてもよい。装置は、前処理された入力データと第2の機械学習モデルの出力との間のぼかされた差分に基づいて、且つ少なくとも1つの閾値に基づいて、異常の存在及び/又は位置を決定するように構成されてもよい。ぼかしを使用することによって、(空間的に)より小さな変化は、無視され得る。
【0023】
閾値及び/又はぼかしは、手元のアプリケーションに適合させてもよい。提案された概念は、多くのシナリオで使用され得るカメラデバイスにおいて使用され得るため、少なくとも閾値及び/又はぼかしに関連するパラメータは、外部のエンティティ、例えば、ビデオ監視システムによって設定されてもよい。例えば、前処理された入力データと第2の機械学習モデルの出力との間の差分をぼかすために使用される少なくとも1つの閾値及び/又はぼかしパラメータは、外部のエンティティによって設定されてもよい。
【0024】
提案された概念は、様々な異なるタイプの入力データと共に使用されてもよい。例えば、入力データは、コード化されたビデオストリームのキーフレームの符号化された画像データのような、画像データ、センサデータ、及び金融データのうちの1つであってもよい。
【0025】
本開示の様々な態様は、入力データにおける異常を検知するための対応する方法に更に関する。方法は、機械学習モデルのシーケンスを使用して入力データを処理することを含む。機械学習モデルのシーケンスは、前処理された入力データを提供するために入力データを前処理するように構成された第1の機械学習モデルと、出力データを提供するために前処理された入力データを処理するように構成された第2の機械学習モデルとを含む。第1の機械学習モデルは、前処理された入力データが既知の確率分布で統計的に独立している複数のサブコンポーネントを含むように、入力データを変換するように訓練される。第2の機械学習モデルは、オートエンコーダである。方法は、第2の機械学習モデルの出力に基づいて入力データ内の異常の存在を決定することを含む。
【0026】
本開示の様々な態様は、撮像センサと上記の装置とを含むカメラデバイス、及び/又は上記の方法を実行するように構成されているカメラデバイスに更に関する。撮像センサは、入力データを生成するように構成されている。装置又は方法は、撮像センサによって生成された入力データを処理するように構成されている。カメラデバイスに異常検知を含めることによって、カメラデバイスのデータを評価するデバイスの処理負荷が減少し得、よ
り非集中型のアプローチを異常検知に提供する。そのような場合、適切に訓練された機械学習モデルを有するカメラデバイスは、評価デバイスに異常検知ロジックを移植する必要なく、ビデオ管理システムのような、別の評価デバイスに移動させてもよい。
【0027】
様々な実施例では、装置は、入力データ内の異常の位置を決定し、異常の位置を強調するオーバーレイを生成し、入力データと入力データにおける異常の位置を強調するオーバーレイとを含む結合表現を出力するように構成されてもよい。この場合、評価デバイスは、検知された異常を表すメタデータを評価する必要さえなくてもよく、代わりにカメラデバイスによって提供された画像データに符号化されるオーバーレイに依存する。
【0028】
別のアプローチでは、異常検知は、中央評価デバイスで完結されてもよい。本開示の様々な態様は、上記で紹介されたように評価デバイスと少なくとも1つの装置とを含むシステムに関する。装置は、評価デバイスに、前処理された入力データと第2の機械学習モデルの出力との間の差分に関する情報を提供するように構成されている。評価デバイスは、入力データにおける異常の存在を決定するために差分に関する情報を処理するように構成されている。
【0029】
装置における実装と同様に、評価デバイスは、差分に基づいて、且つ少なくとも1つの閾値に基づいて、異常の存在及び/又は位置を決定するように構成されてもよい。追加的に或いは代替的に、評価デバイスは、前処理された入力データと第2の機械学習モデルの出力との間の差分にぼかしを適用し、前処理された入力データと第2の機械学習モデルの出力との間のぼかされた差分に基づいて、且つ少なくとも1つの閾値に基づいて、異常の存在及び/又は位置を決定するように構成されてもよい。
【0030】
場合によっては、評価デバイスは、複数の装置についての異常検知を完結するために使用されてもよい。例えば、評価デバイスは、2つ以上の装置から差分に関する情報を取得し、それぞれの差分に基づいてそれぞれの装置の入力データにおける異常のそれぞれの位置を決定するように構成されてもよい。例えば、これは、それぞれの異常の3次元位置を決定するために使用されてもよい。例えば、評価デバイスは、それぞれの装置の入力データにおける異常のそれぞれの位置に基づいて異常の3次元的位置を決定するように構成されてもよい。
【0031】
機械学習モデルは、特定の作業を実行するように訓練され、例えば、第1の機械学習モデルの場合には入力データを前処理するように訓練され、第2の機械学習モデルの場合にはオートエンコーダとして訓練される。したがって、本開示のいくつかの態様は、異常検知に使用する機械学習モデルのシーケンスを訓練するための方法に関する。機械学習モデルのシーケンスは、前処理された入力データを提供するために入力データを前処理するように構成された第1の機械学習モデルと、出力データを提供するために前処理された入力データを処理するように構成された第2の機械学習モデルとを含む。第1の機械学習モデルは、前処理された入力データが既知の確率分布で統計的に独立している複数のサブコンポーネントを含むように、入力データを処理するために訓練される。第2の機械学習モデルは、オートエンコーダである。方法は、異常を含まない訓練用入力データのサンプルの集合に基づいて機械学習モデルのシーケンスを共同訓練することを含む。共同訓練を通して、機械学習モデルの適切なシーケンスは、前処理の一部として入力データの無相関化を実行することによって、訓練中に第2の機械学習モデルの崩壊を回避しつつ、訓練されてもよい。
【0032】
いくつかの実施例では、第1の機械学習モデルは、第1の損失関数に基づいて訓練され、第2の機械学習モデルは、第2の損失関数に基づいて訓練される。言い換えれば、訓練は、訓練中に考慮される異なる最適化基準で実行される。
【0033】
例えば、第2の機械学習モデルは、機械学習モデルのシーケンスの訓練中に第1の機械学習モデルによって提供された前処理された入力データに基づいて第2の機械学習モデルのための訓練用入力データを生成することによって訓練されてもよい。前処理された入力データの複数のサブコンポーネントの部分集合は、第2の機械学習モデルのための訓練用入力データにおいて固定値に設定されてもよい。第2の損失関数は、第2の機械学習モデルの出力と前処理された入力データとの間の差分に基づいていてもよい。第2の機械学習モデルの訓練のために第1の機械学習モデルの出力を使用することによって、機械学習モデルは、共同訓練されてもよい。第1の機械学習モデルによって出力されたデータの一部を省略することによって、第2の機械学習モデルはこれらの部分を再構成するように訓練されるため、第2の機械学習モデルは、第1の機械学習モデルによって出力されたデータの省略された部分を予測する予測器として訓練される。
【0034】
様々な実施例では、第1の損失関数は、前処理された入力データの異なるサブコンポーネントの対の相互相関の合計に基づいている。訓練中に相互相関の合計を減少させることによって、第1の機械学習モデルは、サブコンポーネントを無相関化するように訓練される。
【0035】
上述されたように、第1の機械学習モデルは、バックボーンコンポーネントと無相関コンポーネントとを含んでもよい。バックボーンコンポーネントのニューロン間の重みは、機械学習モデルのシーケンスの共同訓練中に固定されてもよい。言い換えれば、機械学習モデルのシーケンスの共同訓練によって影響を受けない重みを有する、予め訓練されたバックボーンコンポーネントが使用されてもよい。
【0036】
本開示の様々な態様は、コンピュータプログラムがコンピュータ、プロセッサ、処理回路、又はプログラム可能なハードウェアコンポーネント上で実行されるとき、上記の方法のうちの少なくとも1つを実行するためのプログラムコードを有するコンピュータプログラムに関する。
【図面の簡単な説明】
【0037】
装置及び/又は方法のいくつかの実施例は、例としてのみ説明され、添付の図を参照しながら、以下に説明される。
【0038】
図1a図1aは、入力データにおける異常を検知するための装置の一例のブロック図を示す。
図1b図1bは、入力データにおける異常を検知するための方法の一例のフローチャートを示す。
図2a図2aは、異常検知システムの一例の模式図を示す。
図2b図2bは、異常検知システムの予測モジュールの模式図を示す。
図3a図3aは、入力データにおける異常を検知するための装置を含むカメラデバイスの一例の模式図を示す。
図3b図3bは、評価デバイスと、入力データにおける異常を検知するための1つ又は複数の装置とを含むシステムの一例の模式図を示す。
図4a図4aは、異常検知に使用する機械学習モデルのシーケンスを訓練するための方法の一例のフローチャートを示す。
図4b図4bは、異常検知に使用する機械学習モデルのシーケンスを訓練するための装置の一例のブロック図を示す。
【発明を実施するための形態】
【0039】
いくつかの実施例は、同封された図を参照してより詳細に説明される。しかしながら、
他の可能な実施例は、詳細に説明されたこれらの実施形態の特徴に限定されない。他の実施例は、特徴の変更だけでなく、特徴の均等物及び代替物も含んでもよい。さらに、ある一定の実施例を説明するために本明細書で使用される用語は、更なる可能な実施例について制限的であってはならない。
【0040】
図の説明を通じて、同一或いは類似の参照番号は、同一或いは類似の要素及び/又は特徴を参照し、それらは、同一或いは類似の機能を提供しながら同一でもよいし、或いは変更された形で実装されてもよい。図中の線、層及び/又は領域の太さはまた、明確にするために誇張されてもよい。
【0041】
2つの要素A及びBが「又は」を使用して結合されているとき、これは、個々の事例において明確に定義されない限り、全ての可能な組み合わせ、すなわちAのみ、Bのみ、並びにA及びBを開示することとして理解されるものとする。同じ組み合わせについての代替表現として、「A及びBの少なくとも一方」又は「A及び/又はB」が使用されてもよい。これは、2つ以上の要素の組み合わせに等しく適用する。
【0042】
単数形が使用され、単一の要素のみの使用が明示的に或いは暗示的に必須と定義されていない場合、更なる実施例はまた、同じ機能を実装するためにいくつかの要素を使用してもよい。ある機能が複数の要素を使用して実装されるものとして以下に説明される場合、更なる実施例は、単一の要素又は単一の処理エンティティを使用して同じ機能を実装してもよい。用語「含む」及び/又は「含んでいる」は、使用されるとき、指定された特徴、整数、ステップ、操作、プロセス、要素、コンポーネント及び/又はそれらのグループの存在を説明するが、1つ又は複数の他の特徴、整数、ステップ、操作、プロセス、要素、コンポーネント及び/又はそれらのグループの存在又は追加を除外しないことが更に理解されよう。
【0043】
図1aは、入力データにおける異常を検知するための装置10の一例のブロック図を示す。装置10は、1つ又は複数ののプロセッサ14と、1つ又は複数の記憶デバイス16とを含む。装置は、少なくとも1つのインタフェース12を更に含んでもよい。1つ又は複数のプロセッサ14は、少なくとも1つのインタフェース12と、1つ又は複数の記憶デバイス16とに結合される。一般的に、装置の機能性は、(例えば、入力データを取得するため且つ/或いは異常に関する情報を提供するための、情報を交換するために)少なくとも1つのインタフェース12の助けにより、且つ/或いは(使用される機械学習モデルのような、情報を記憶するために)1つ又は複数の記憶デバイス16の助けにより、1つ又は複数のプロセッサ14によって提供される。例えば、少なくとも1つのインタフェースは、(図3aに示されるように)カメラの撮像センサから画像データを取得するのに適していてもよいし、且つ/或いはカメラの撮像センサから画像データを取得するように構成されてもよい。
【0044】
装置は、機械学習モデルのシーケンスを使用して入力データを処理するように構成されている。機械学習モデルのシーケンスは、前処理された入力データを提供するために入力データを前処理するように構成された第1の機械学習モデルと、出力データを提供するために前処理された入力データを処理するように構成された第2の機械学習モデルとを含む。第1の機械学習モデルは、前処理された入力データが既知の確率分布で統計的に独立している複数のサブコンポーネントを含むように、入力データを変換するように訓練される。第2の機械学習モデルは、オートエンコーダである。装置は、第2の機械学習モデルの出力に基づいて入力データ内の異常の存在を決定するように構成されている。
【0045】
図1bは、入力データにおける異常を検知するための対応する(コンピュータで実装された)方法の一例のフローチャートを示す。方法は、機械学習モデルのシーケンスを使用
して入力データを処理すること110を含む。方法は、第2の機械学習モデルの出力に基づいて入力データ内の異常の存在を決定すること150を含む。
【0046】
以下の説明は、図1aに関連して紹介された装置10と、図1bの対応する方法と、対応するコンピュータプログラムとに関する。装置に関連して紹介された特徴は同様に、対応する方法及びコンピュータプログラムに適用され得る(逆も同様)。
【0047】
提案された概念は、高度にロバストな異常の検知のための装置、方法及びコンピュータプログラムに関する。例えば、提案された概念は、例えば、不必要で潜在的に危険な物体の検知によるセキュリティ又は安全性の目的のために、ビデオ監視の画像データにおける異常事象の自動検知のために使用されてもよい。例えば、提案された概念は、現場で許可されていない異常物体又は異常事象を識別するために、空港又は工業用地のビデオ映像の自動解析のために使用されてもよい。しかしながら、提案された概念は、他の状況でも同様に使用されてもよく、例えば、他のタイプのセンサデータの解析のために、(異常な人々の挙動を識別するための異常検知器をもたらす)経時的な動きを描写する3次元人体ポーズで構成している多変量時系列の解析のために、或いは数値データ、例えば金融取引データの解析のために使用されてもよい。
【0048】
提案された概念は、2つのコンポーネント-ディープネットワークアーキテクチャ(以下では、「機械学習モデルのシーケンス」と表記する)と、図4aから図4bに関連してより詳細に紹介される、ディープネットワークアーキテクチャに適用される対応する訓練及びキャリブレーションプロセスとに基づいている。例えば、提案された概念は、1つ又は複数のカメラと、ディープネットワーク(すなわち、機械学習モデルのシーケンス)と、警報システムと、キャリブレーションプロセスとを含むシステムによって実装されてもよい。任意に、ビデオ管理システムが、システムの一部であってもよい。ディープネットワークと、ネットワークのキャリブレーション及び/又は訓練との構成は、提案された概念の焦点である。
【0049】
図1a及び図1bに関連して概説されたように、異常検知器は、入力データを前処理するための第1の機械学習モデルと、異常の存在を決定するために使用される出力を生成する第2の機械学習モデルとを含む機械学習モデルのシーケンスによって実装される。
【0050】
機械学習は、コンピュータシステムが明示的な命令を使用せず、代わりにモデル及び推論に依存して特定の作業を実行するために使用し得るアルゴリズム及び統計モデルを指す。例えば、機械学習では、ルールベースのデータ変換の代わりに、履歴データ及び/又は訓練データの解析から推測されるデータ変換が使用されてもよい。例えば、機械学習ベースのオブジェクト認識では、画像の内容は、機械学習モデルを使用して、或いは機械学習アルゴリズムを使用して解析されてもよい。機械学習モデルが画像の内容を解析するために、機械学習モデルは、入力としての訓練用画像と、出力としての訓練用内容情報とを使用して訓練されてもよい。多くの訓練用画像と関連付けられた訓練用内容情報とを有する機械学習モデルを訓練することによって、機械学習モデルは、画像の内容を認識することを「学習する」ため、訓練用画像に含まれない画像の内容は、機械学習モデルを使用して認識され得る。同じ原理は、他の種類のセンサデータのために同様に使用されてもよい。訓練用センサデータと所望の出力とを使用して機械学習モデルを訓練することによって、機械学習モデルは、センサデータと出力との間の変換を「学習し」、それは、機械学習モデルに提供された非訓練用センサデータに基づいて出力を提供するために使用され得る。
【0051】
提案された概念では、オブジェクト認識に基づいてではなく、代わりにオートエンコーダによる前処理された入力データの「予想された」バージョンの予測と、前処理された入力データと前処理された入力データの予想されたバージョンとの比較とに基づく、異なる
概念が使用される。異常事象及び/又は異常物体についてのビデオデータの解析に関する上記の実施例に関して、異常検知器は、ビデオフィードが与えられると、周囲が通常、現在観測されている照明及び他の外部状況でどのように見えるかを予測するように訓練される機械学習モデルのシーケンスを使用することによって、実質的に実装される。この予測の出力は、本質的に、観測された入力と類似している別の画像である。この実施例では、機械学習モデルのシーケンスは、観測されたシーンのビデオの時間間隔(例えば、1週間のビデオの観測されたシーン)で訓練されてもよい。生成された出力が観測された入力と一致する場合、異常はシーンに存在しないと考えられ得る。一方、未知の物体、例えば、事前に観測されていないスーツケースが観測される場合、予測モジュールは、そのような物体を以前に観測していないため、画像を予測することができない。
【0052】
プロセスは、図2aに示される。図2aは、異常検知システムの一例の模式図を示す。提案された異常検知の概念では、上記の実施例に従って、入力データに対応し得る、入力画像210は、予測モジュール220に送り込まれ、予測モジュール220は、機械学習モデルのシーケンスを含んでもよく、予測された出力画像230及び無相関化された画像235を生成するために使用される。2つの画像は、2つの画像間の差分240を取得するために比較される。閾値処理手順250は、関心のある異常を、問題にするには小さすぎる異常から区別するために使用されてもよく、(例えば、異常に関する情報を含む)異常レポート260が、生成されてもよい。
【0053】
主要な課題は、予測モジュールにおける機械学習モデルのシーケンスの作成と、機械学習モデルのシーケンスがシーンの要素を適切に且つ成功裏に予測し得、差分処理及び閾値の操作が成功するような(ロバストな)訓練手順の作成とにある。提案された概念では、これは、オートエンコーダ構造(すなわち、第2の機械学習モデル)を、1つ又は2つの前処理構造(すなわち、第1の機械学習モデル、任意の「バックボーン」及び無相関モジュール)と組み合わせることによって実装される。訓練プロセスが「崩壊」しないために(すなわち、異常検知に適している出力を提供できない機械学習モデルのシーケンスをもたらさないために)、特別な注意が払われる。このプロセスは、図4a及び図4bに関連して説明される。
【0054】
説明を簡単にするために、ビデオストリームの画像データにおける異常検知の上記の実施例に関して、実施例は、画像データが色チャンネルd1である解像度w1×h1の2次元配列の形式で、すなわち、深度d1=3、及び例えば幅w1=1024と高さh1=768とであるw1×h1×d1の形式で、1つ又は複数のRGB(赤-緑-青)画像を含むと仮定する。実際の入力は、他のタイプのカメラ、IR(赤外線)、マルチスペクトル、又はレーダ又はライダのような他の2次元入力フィールドからの入力を含む、追加のチャンネルを有してもよく、或いは異なる形式であってもよい。さらに、本書を通じて使用される実施例以外では、他のタイプの入力データは同様に使用されてもよい。例えば、入力データは、上記の2次元RGB画像又はコード化されたビデオストリームのキーフレームの符号化された画像データ、センサデータ、身体の動きの多変量時系列データ、及び金融データのような、画像データのうちの1つであってもよい。異常検知は、生の画像データ又はH.264/H.265のような圧縮ストリームで動作し得る。圧縮ストリームは、ソフトウェア又はハードウェアデコーダのいずれかを使用して最初に解凍されてもよく、或いは異常検知は、圧縮ストリームのキーフレームに直接的に適用されてもよい。
【0055】
以下では、機械学習モデルのシーケンスのディープネットワークの貢献が示される。本開示では、用語「シーケンス」は、入力データがシーケンスの第1の機械学習モデルの入力で適用され、出力がシーケンスの最後の機械学習モデルの出力で提供され、機械学習モデルの出力がシーケンスの後続の機械学習モデルの入力に提供され、それぞれの機械学習モデルが順次適用されることから、選択されている。当業者によって理解されるように、
提案された第1及び第2の機械学習モデルの各々は、1つ又は複数のサブモデルを含んでもよい。図2aに示される予測モジュール220は、2つの追加、任意のバックボーン及び無相関モジュールのうちの少なくとも1つを有するオートエンコーダを含んでもよく、或いはそのオートエンコーダで構成されてもよい。結果として得られる精度及びロバスト性に不可欠である提案された概念は、機械学習モデルの特定の組み合わせに関する。特に、入力データのサブコンポーネントを無相関化するために使用される機械学習モデルを有するオートエンコーダを使用することは、他のアプローチでは知られていない。
【0056】
図2bは、異常検知システムの予測モジュールの模式図を示す。例えば、図2bに示されるように、第1の機械学習モデルは、上述のバックボーンを実装する第1のサブモデル222と、無相関化を実装する第2のサブモデル224とを含んでもよいし、第2の機械学習モデルは、オートエンコーダのエンコーダである第1のサブモデル226と、オートエンコーダのデコーダである第2のサブモデル228とを含んでもよい。例えば、第1のサブモデル222の出力は、第1の機械学習モデルの第2のサブモデル224の入力に提供されてもよい。第1の機械学習モデルの第2のサブモデル224の出力(すなわち、前処理された入力データ)は、第2の機械学習モデルの第1のサブモデル226の入力に提供されてもよいし、第2の機械学習モデルの第1のサブモデル226の出力は、第2の機械学習モデルの第2のサブモデル228の入力に提供されてもよい。第2の機械学習モデルの第2のサブモデル228の出力は、第2の機械学習モデルの出力に対応してもよい。さらに、第1の機械学習モデルの第2のサブモデルの出力(すなわち、前処理された入力データ)は、機械学習モデルのシーケンスによって出力されてもよい。
【0057】
いくつかの実施例では、モデル及びサブモデルは、(それらの内部順序を保持しながら)任意の方式で組み合わせられてもよい-例えば、バックボーンモデル及び無相関モデルは、(バックボーン及び無相関の機能性を実装する異なる層を有する)単一の機械学習モデルにおいて組み合わせられてもよいし、エンコーダ及びデコーダは、(エンコーダ及びデコーダの機能性を実装する異なる層を有する)単一の機械学習モデルにおいて組み合わせられてもよい。いくつかの実施例では、機械学習モデルのシーケンスは、第1の機械学習モデルの機能性を実装する第1の層のセットと、第2の機械学習モデルの機能性を実装する異なる第2の層のセットとを有する、単一の機械学習モデルにおいて組み合わせられてもよい。例えば、第1及び第2の機械学習モデルは、ディープネットワーク、すなわち、それらの入力層と出力層との間に複数の隠れ層を有する人工ニューラルネットワークであってもよい。
【0058】
以下では、第1の機械学習モデルの任意の第1のサブモデルである、バックボーン(モジュール)の機能性が紹介される。以下で紹介されるバックボーンは、「画像バックボーン」、すなわち、画像データを変換するためのバックボーンである。しかしながら、類似のバックボーンは、任意のタイプの入力データ、例えば、センサデータ又は金融データのために実装されてもよい。
【0059】
画像データに関して、(寸法w1×h1×d1の)画像データの2次元配列は、いわゆるネットワークバックボーンを使用してRGBとは異なる表現に変換されてもよく、ネットワークバックボーンは、AlexNet、ResNet-101、MobileNetのような既存のディープネットワーク、又は類似のもの、或いはそのようなネットワークの適切に連結されたバージョンであってもよい。
【0060】
(画像)バックボーンは、w×hのRGB画素(深度d=3)の入力解像度を、例えば、d2=512である、h2*w2=(w/32)×(h/32)のセルの深度次元に変える、従来の画像ベースのディープラーニングコンポーネントであってもよい。言い換えれば、画像データは、幅w1、高さh1及び色チャンネル数d1の画素の2次元グリッド
を含んでもよく、第1の機械学習モデルは、第1の次元w2、第2の次元h2及び第3の次元d2を有する前処理された入力データに画像データを変換するように訓練されてもよい。より一般論では、第1の機械学習モデルの第1のサブモデル222の出力において、入力データは、異なる表現に変換されてもよい。したがって、第1サブモデル222(すなわち、バックボーン)は、入力データを、入力データとは異なる形式を有する、変換された入力データに変換してもよい。一般的に、バックボーンの出力の第1及び第2の次元(例えば高さ及び幅)は、入力データの第1及び第2の次元よりも小さくてもよいし、第3の次元(例えば深度)は、より大きくなってもよい。言い換えれば、それぞれの次元は、w2<w1、h2<h1及びd2>d1のように選択されてもよい。バックボーンは、バックボーンからの出力が一定のままであるという意味では画像のわずかな変化、例えば局所変換、回転及び色の変化が無視されるように訓練されてもよい。言い換えれば、第1の機械学習モデルの第1のサブモデル(すなわち、バックボーン)は、わずかな局所変換、回転及び/又は色の変化が第1のサブモデルによって無視されるように、局所変換、回転及び色の変化に関してわずかな差分のみを有する入力データが第1のサブモデルの出力において同じ出力をもたらすように、訓練されてもよい。それはまた、(必要とされる計算数の観点から)より効率的なシステムをもたらし得る。
【0061】
バックボーンの使用は、入力のわずかな変化を無視することを可能にする。例えば、カメラは、全ての内容が4画素ずつ変換されるようにキャリブレーションプロセスのすぐ後に移動されていてもよい(機械学習モデルのシーケンスは、約1週間の通常の画像で訓練されている)。バックボーンが採用されなかった場合、これは、全てが4画素ずつずれている「古い」画像を予測するオートエンコーダネットワークの効果を有することとなる。次にこれは、(2つの変換された画像が実質的に差し引かれるため)何かが異なることを報告する差分モジュールをもたらしてもよい。
【0062】
第1の機械学習モデルの第1のサブモデル(すなわち、バックボーン)の出力は、第1の機械学習モデルの第2のサブモデル(すなわち、無相関モデル)の入力に送り込まれる。無相関モジュールの役割は2つであり、出力を既知の確率分布で統計的に独立させることによってバックボーンの出力のバランスをとることと、バックボーンの自由パラメータで訓練されたときにエンドツーエンドネットワークが「崩壊する」のを防ぐこととである。無相関モジュールが省略された場合、バックボーンのアンバランスは、後で不正確な結果をもたらし得る。さらに、図4a及び図4bに関連して提案されるように、無相関モジュールがない場合、正常な画像のみでエンドツーエンドシステムを訓練することは、一定の出力のみを生成するネットワークを崩壊し得る(実質的に全てを正常として報告し得る)。無相関モジュールの役割は、オートエンコーダへの入力値(したがって、オートエンコーダからの出力値)が既知の確率分布を有することを保証することである。これは、観測された入力と予測された出力との実際の、観測された差分の確率を直接的に計測することを可能にする。
【0063】
無相関モジュールは、バックボーンの出力を、或いはバックボーンが省略される場合には入力データを、無相関化するために使用される。それに対応して、第1の機械学習モデル、特に第1の機械学習モデルの第2のサブモデルは、前処理された入力データを生成するために入力データの複数のサブコンポーネントを無相関化するように構成されている。特に、第1の機械学習モデル(例えば、第1の機械学習モデルの第2のサブモデル)は、前処理された入力データが既知の確率分布で統計的に独立している複数のサブコンポーネントを含むように、入力データを変換するように訓練されてもよい。例えば、入力データが複数の画素を含む画像データである場合、複数の画素は、入力データの複数のサブコンポーネントに対応してもよい。入力データが画像バックボーンによって変換されている場合、結果として得られる表現のサブコンポーネント(例えば、バックボーンの出力の第1及び第2の次元)は、無相関化される複数のサブコンポーネントに対応してもよい。
【0064】
したがって、無相関モジュールの目的は、コンポーネントが、画像全体(又は入力データのサンプル)で考慮されるときには独立同分布の確率変数として解釈され得るが、画像(又は入力データのサンプル)の特定の位置を見るときには定数として解釈され得る表現を出力することである。無相関は、後続の(実際の異常を識別する)差分処理ステップが正確であるように正規化された出力を提供するために使用される。
【0065】
無相関モジュールからの出力は、先行ステップ(バックボーン)からの出力と同じ解像度を有してもよいが、より少ないチャンネル、例えば、w2×h2×d3、d3=384を有してもよい。例えば、無相関は、全てのセル及び全ての出力次元が独立同分布の確率変数(例えば、平均0.0及び分散1.0)とみなし得る出力に、(潜在的に依存する値を有する)事前に未知の分布を有するw2×h2×d2次元の入力(例えば、入力データ、又はバックボーンの出力)を変換するように訓練されてもよい。言い換えれば、第1の機械学習モデルは、第1の次元w2、第2の次元h2及び深度d2を有する表現に画像データを変換するように訓練されたバックボーンコンポーネントと、既知の確率分布で統計的に独立している(且つ、任意に、異なる深度d3<d2を有する)複数のサブコンポーネントを有する入力データを生成するために、変換された画像を無相関化するように訓練された無相関コンポーネントとを含んでもよい。無相関関数は、図4aから図4bに関連して説明される、特定の損失関数を用いて訓練されてもよい。
【0066】
(上記の特性を有する)前処理された入力データは、その後、オートエンコーダである第2の機械学習モデルに提供される。言い換えれば、無相関ネットワーク(すなわち、第1の機械学習モデルの第2のサブモデル)の出力は、オートエンコーダに送り込まれる。オートエンコーダの出力形式は、その入力形式と同一である。
【0067】
オートエンコーダは、(典型的には、低次元表現に入力(例えば、画像)を圧縮する)エンコーダと、(入力(例えば、画像)を復元する)デコーダとの組み合わせで構成されている。したがって、第2の機械学習モデルは、エンコーダコンポーネントとデコーダコンポーネントとを含んでもよい。画像ベースの実施例を参照すると、オートエンコーダネットワークは、対応する位置で入力画像に異常がある場合、2次元配列のセルの出力が変化するように訓練されてもよい(図4a及び図4bに関連した訓練プロセスの詳細な説明を参照)。
【0068】
その後、第2の機械学習モデルの出力(及び入力)は、入力データ内の異常の存在を決定するために使用される。これは、第2の機械学習モデルの入力と出力とを「差分すること」(すなわち、例えば、一方を他方から差し引くことによって、それらの間の差分を計算すること)によって行われてもよい。言い換えれば、装置は、入力データ内の異常の存在を決定するために前処理された入力データ(すなわち、第2の機械学習モデルの入力)と第2の機械学習モデルの出力との間の差分を決定するように構成されてもよい。それに対応して、方法は、入力データ内の異常の存在を決定するために前処理された入力データと第2の機械学習モデルの出力との間の差分を決定すること120を含んでもよい。
【0069】
例えば、各サブコンポーネント(例えば、バックボーンによって生成されたセル)について、差分を表す結果として得られるベクトルの大きさが計算されてもよい。言い換えれば、差分は、各サブコンポーネント(例えば、w2×h2のセルの2次元グリッドの各セル)について、各値v∈d3について差分を計算されてもよく、値v∈d3は、それぞれのサブコンポーネントについての差分の大きさを決定するために各サブコンポーネントについて組み合わせられてもよい。大きさは、任意に(例えば、ReLU関数、Rectifying Linear Unitを使用して)ソフト閾値処理を受けてもよい。これは、深度1及び解像度w2×h2の変化マップをもたらし、特定のセル内の高い数値は、
その位置で異常が発生する確率が高いことを示す。例えば、この2次元変化マップは、前処理された入力データと第2の機械学習モデルの出力との間の差分を表してもよい。例えば、2次元変化マップは、前処理された入力データと第2の機械学習モデルの出力との差分に関する情報を表すために使用されてもよい。例えば、差分、すなわち、変化マップ、又はその派生物を決定することによって、異常の存在が決定されてもよい(異常が差分に存在するか否かを確認するための後続処理が実行されない場合も含む)。言い換えれば、異常の存在を決定することは、前処理された入力データと第2の機械学習モデルの出力との差分、又はその派生物を決定することを含んでもよく、或いは前処理された入力データと第2の機械学習モデルの出力との差分、又はその派生物を決定することで構成されてもよい。
【0070】
差分処理は、任意で、差分のぼかしを含んでもよい。言い換えれば、装置は、前処理された入力データと第2の機械学習モデルの出力との間の差分にぼかしを適用するように構成されてもよい。それに対応して、方法は、前処理された入力データと第2の機械学習モデルの出力との間の差分にぼかしを適用すること140を含んでもよい。異常の存在及び/又は位置は、前処理された入力データと第2の機械学習モデルの出力との間のぼかされた差分に基づいて、且つ少なくとも1つの閾値に基づいて、決定されてもよい。ぼかしを適用することによって、変化マップは、より大きな変化を識別するため、且つ全体のプロセスをノイズに対してよりロバストにするために、平均化処理を受ける。平均化処理は、ユーザが指定したカーネル及びカーネルサイズを使用して、例えば、(3x3のセル/サブコンポーネントにわたる平均を計算するために使用され、3x3のセル/サブコンポーネントの中心セル/サブコンポーネントの値を平均値に置き換える)サイズ3x3の矩形カーネルを使用して、画像をぼかしてもよい。出力は、変化マップと同じ次元(例えば、w2×h2)を有してもよい。
【0071】
その後、(ぼかされた)変化マップは、低すぎる値を有する領域が無視される、閾値処理を受けてもよい。言い換えれば、装置は、差分に基づいて、且つ少なくとも1つの閾値に基づいて、異常の存在及び/又は位置を決定するように構成されてもよい。例えば、最大で少なくとも1つの閾値の値を有するセルは、異常の存在及び/又は位置を決定する際に無視されてもよい。
【0072】
いくつかの実施例では、クラスタリングが、変化マップに適用されてもよい。クラスタリングの目的は、システムが小さな異常、すなわち、単一のセルを占めるだけの異常を無視することを可能にすることである。クラスタリングは、閾値処理ステップを成功裏に通過した、接続されたセルを識別する。(クラスタに属さない)単一のセル又は予め定められたサイズよりも小さなクラスタは、無視されてもよい。ユーザ定義のパラメータを有する他の処理ステップは、変化マップを更にフィルタリングするために使用されてもよい。クラスタリングは、拡張及び侵食のようなコンピュータビジョンアルゴリズムを使用して実装され得る。
【0073】
異常検知をよりロバストにするために適用され得る様々な他の技法がある。例えば、変化マップの(例えば、入力データの複数のサンプルにわたる)マルチフレームの平均化は、ロバスト性を更に高め得る。追加的に或いは代替的に、ノイズ制御のためのヒステリシスは、(境界線の場合にバウンディングボックスが点滅するのを止めるために)時間的な一貫性のために追加され得る。
【0074】
上記の技法、すなわち、「ぼかし」、「閾値処理」及び「クラスタリング」は、異常検知の感度、すなわち、偽陽性又は偽陰性をもたらす異常検知の傾向を決定する。例えば、ぼかし、閾値処理及び/又はクラスタリングに関する異なるパラメータは、感度を変更して偽陽性率及び偽陰性率のバランスをとるためにユーザに公開され得る。例えば、少なく
とも1つの閾値、前処理された入力データと第2の機械学習モデルの出力との間の差分をぼかすために使用されるぼかしパラメータ(例えば、カーネルサイズ及び/又は形状)、及び/又はクラスタリングパラメータ(例えば、クラスタリング閾値)は、外部のエンティティによって設定されてもよい。方法は、外部エンティティからの入力に基づいて、少なくとも1つの閾値、ぼかしパラメータ及び/又はクラスタリングパラメータを設定すること130を含んでもよい。例えば、装置が(例えばカメラデバイスの)埋め込み(embedded)デバイスの一部である場合、それぞれの閾値/パラメータ(複数可)は、埋め込みデバイスに接続されている、ビデオ管理システムのような、中央デバイスによって設定されてもよい。
【0075】
差分、例えば、変化マップが決定されると、それは、例えば、異常レポートとして、装置、方法及びコンピュータプログラムによって提供され得る。例えば、装置は、異常に関する情報を提供するように構成されてもよい。したがって、方法は、異常に関する情報を提供すること170を含んでもよい。例えば、2つの主要なシナリオ-装置が入力データを提供するデバイスに組み込まれている図3a及び3bのシナリオと、装置が中央デバイスに組み込まれており、入力データが1つ又は複数の周辺デバイスによって提供される別のシナリオとは、区別されてもよい。例えば、装置、方法及びコンピュータプログラムは、カメラと組み合わせて埋め込みデバイスに組み込まれてもよいし、(サーバルーム又はクラウドにおける)集中型サーバに組み込まれてもよい。同様に、図4a及び図4bに関連して示されるキャリブレーションアルゴリズムは、同じハードウェアデバイス上で、或いは集中型サーバ上で、実行し得る。
【0076】
装置がカメラデバイスの一部である場合、異常に関する情報は、例えば、中央デバイスに、入力データと共に提供されてもよい。例えば、装置は、図3a及び図3bに示されるように、カメラデバイス、例えば監視カメラ内に組み込まれてもよい。カメラデバイスは、入力データを生成するための撮像センサを含んでもよい。装置は、入力データを解析し、カメラデバイスの出力において入力データと共に異常に関する情報を提供するように構成されてもよい。異常に関する情報は、JSON(JavaScript Object
Notation)フォーマット済みテキスト形式などの、構造化されたデータの形式で、或いは、既存のビデオフィードへのオーバーレイの形式で提供されてもよい。言い換えれば、異常に関する情報は、装置によって、カメラデバイスの出力における画像日付上にオーバーレイとして、或いは入力データに付随するメタデータとして、提供されてもよい。例えば、2つのビデオストリームが、カメラデバイスによって提供されてもよく、1つは、入力データ(又はその処理されたバージョン)に対応し、1つは、入力データ(又はその処理されたバージョン)が異常に関する情報とオーバーレイさせたものである。例えば、異常に関する情報は、入力ビデオストリームに異常を示す矩形をオーバーレイさせた新たなビデオストリームに提示され得る。そのようなシステムは、出力が新たな仮想/インテリジェントカメラとしてVMSに提示され得るため、既存のVMSとインタフェースをとりやすいという利点を有する。いくつかの実施例では、2つのアプローチは、ビデオストリームにメタデータとして警報を埋め込むことによって組み合わせられてもよい。
【0077】
装置がVMSのような、中央デバイスに組み込まれている場合、異常に関する情報は、表示デバイス、例えば、コンピュータモニタ又は監視モニタのような、VMSの表示デバイスを介して提供されてもよい。例えば、異常に関する情報は、表示デバイスに提供されたビデオ又は制御信号内の入力データにオーバーレイされてもよい。異常に関する警報は、音声警報又は警報灯として、表示デバイスを介して提供されてもよい。
【0078】
異常に関する情報は、異なるタイプの情報を含んでもよい。例えば、場合によっては、異常に関する情報は、前処理された入力データと第2の機械学習モデルの出力との間の差分に関する情報、例えば、変化マップの表現(又はその派生物)を含んでもよい。追加的
に或いは代替的に、異常に関する情報は、異常の存在に関する指標、例えば、異常が存在するか否かを表す指標を含んでもよい。
【0079】
いくつかの実施例では、提案された概念はまた、入力データ内の異常の位置を決定するために使用されてもよい。装置は、差分に基づいて入力データ内の異常の位置を決定し、(異常に関する情報の一部として)異常の位置に関する情報を提供するように構成されてもよい。例えば、センサデータが処理される場合、異常なコンポーネントを含む入力データのサンプルが、決定されてもよい。金融データが処理される場合、異常であると考えられる金融データに含まれる金融取引が、分離されてもよい。画像データである入力データの上記の実施例では、前処理された入力データの各サブコンポーネント/セルは、入力データの1つ又は複数の画素(例えば、画素の領域)に基づいていてもよい。サブコンポーネントと画素との間の関係に基づいて、入力データ内の異常の位置が差分に基づいて(例えば、変化マップに基づいて)決定されてもよい。例えば、異常の位置に関する情報は、異常を包含するバウンディングボックスの1つ又は複数の座標を含んでもよい。このバウンディングボックスは、例えば、装置によって、或いはカメラデバイスから異常に関する情報を受け取る評価デバイスによって、入力データ上のオーバーレイとして含まれてもよい。例えば、(例えば閾値処理又はクラスタリングの出力に基づいて)異常を囲む最小軸平行バウンディングボックスが、異常に関する情報として、或いは異常の位置に関する情報として、出力されてもよい。
【0080】
機械学習アルゴリズムは通常、機械学習モデルに基づいている。言い換えれば、用語「機械学習アルゴリズム」は、機械学習モデルを作成し、訓練し、或いは使用するために使用され得る一連の命令を示してもよい。用語「機械学習モデル」は、例えば機械学習アルゴリズムによって実行された訓練に基づいて、学習された知識を表すデータ構造及び/又は一連のルールを示してもよい。本実施形態では、機械学習アルゴリズムの使用は、基礎となる機械学習モデル(又は複数の基礎となる機械学習モデル)の使用を意味してもよい。機械学習モデルの使用は、機械学習モデル及び/又は機械学習モデルであるデータ構造/一連のルールが機械学習アルゴリズムによって訓練されることを意味してもよい。
【0081】
例えば、第1及び第2の機械学習モデルは、人工ニューラルネットワーク(ANN)であってもよい。ANNは、脳に見られ得るような、生物学的な神経ネットワークによって着想を得たシステムである。ANNは、複数の相互接続されたノードと、ノード間の複数の接続、いわゆるエッジとを含む。通常、3つのタイプのノード、入力値を受け取る入力ノードと、他のノードに(のみ)接続される隠れノードと、出力値を提供する出力ノードとがある。各ノードは、人工的な神経細胞を表し得る。各エッジは、1つのノードから別のノードへ、情報を伝達し得る。ノードの出力は、その入力の合計の(非線形)関数として定義されてもよい。ノードの入力は、入力を提供するエッジの「重み」又はノードの「重み」に基づく関数で使用されてもよい。ノードの重み及び/又はエッジの重みは、学習過程で調整されてもよい。その結果、人工ニューラルネットワークの訓練は、人工ニューラルネットワークのノード及び/又はエッジの重みを調整することを含んでもよく、すなわち所定の入力に対する所望の出力を達成することを含んでもよい。少なくともいくつかの実施例では、機械学習モデルは、ディープニューラルネットワーク、例えば、1層又は複数層の隠れノード(すなわち隠れ層)、好ましくは複数の隠れノード層を含むニューラルネット-ワークであってもよい。
【0082】
特に、いわゆる畳み込みニューラルネットワークが、全てのディープネットワークサブコンポーネントのために使用されてもよい。言い換えれば、第1及び第2の機械学習モデルは、畳み込みニューラルネットワークであってもよい。そのようなニューラルネットワークは、例えば、画像データである入力データを処理するために使用されてもよい。これは、物体が画像中の具体的な位置に対して不変でもあるシステムをもたらしてもよい。そ
のようなシステムはまた、(非異常な訓練用ビデオに存在する)特定の物体が訓練用ビデオと同じ位置にない場合であっても、その物体を無視するように学習することを可能にし得る。
【0083】
上記の実施例では、提案された概念は、入力データのリアルタイム解析を提供するために紹介された。代替的に、提案された概念は、過去の集約された入力データに適用されてもよい。例えば、異常検知アルゴリズム自体は、既存の記録されたビデオ映像に適用され得る。
【0084】
図1aに関連して紹介された少なくとも1つのインタフェース12は、情報を受信し且つ/或いは送信する1つ又は複数の入力及び/又は出力に対応してもよく、それは、モジュール内、モジュール間、或いは異なるエンティティのモジュール間で、指定されたコードに従ったデジタル(ビット)値であってもよい。例えば、少なくとも1つのインタフェース12は、情報を受信し且つ/或いは送信するように構成されたインタフェース回路を含んでもよい。例えば、図1aに関連して紹介された1つ又は複数のプロセッサ14は、1つ又は複数の処理ユニット、1つ又は複数の処理デバイス、プロセッサ、コンピュータ、又は適宜適応されたソフトウェアで動作可能であるプログラム可能なハードウェアコンポーネントのような、処理のための任意の手段を使用して実装されてもよい。言い換えれば、1つ又は複数のプロセッサ14の説明された機能は、ソフトウェアで実装されてもよく、それは、次に、1つ又は複数のプログラム可能なハードウェアコンポーネント上で実行される。そのようなハードウェアコンポーネントは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、マイクロコントローラなどを含んでもよい。いくつかの実施例では、1つ又は複数ののプロセッサは、FPGA(Field-Programmable Gate Array)又はGPGPU(General-Purpose Graphics Processing Unit)のような、1つ又は複数ののコンピューティングアクセラレータデバイスであってもよいし、それらを含んでもよい。
【0085】
例えば、図1aに関連して紹介された1つ又は複数のの記憶デバイス16は、例えば、ハードディスクドライブ、フラッシュメモリ、フロッピーディスク、RAM(Random Access Memory)、PROM(Programmable Read Only Memory)、EPROM(Erasable Programmable
Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)、又はネットワークストレージの磁気或い光学記憶媒体のような、コンピュータ可読記憶媒体のグループの少なくとも1つの要素を含んでもよい。
【0086】
例えば、説明された装置は、(機械学習モデルのシーケンスが例えば、GPGPU上で実行される)サーバに含まれてもよいし、或いは埋め込みデバイス(FPGA、埋め込みGPGPU又はディープネットワーク用の専用チップ)上に含まれてもよい。
【0087】
入力データにおける異常を検知するための装置、方法及びコンピュータプログラムの更なる詳細及び態様は、提案された概念、又は上述或いは後述の1つ又は複数の実施例(例えば、図3aから図4b)に関連して言及される。装置、方法及びコンピュータプログラムは、提案された概念、又は上述或いは後述の1つ又は複数の実施例の1つ又は複数の態様に対応する1つ又は複数の追加の任意の特徴を含んでもよい。
【0088】
以下では、提案された装置、方法及びコンピュータプログラムの2つの応用例が紹介され、図3aにおける、第1の実施例では、装置が監視カメラのような、カメラデバイスに組み込まれ、図3bにおける、第2の実施例では、1つ又は複数の装置がそれぞれの装置の出力に依存する評価デバイスと組み合わせて使用される。
【0089】
図3aは、入力データにおける異常を検知するための装置を含むカメラデバイス300の一例の模式図を示す。カメラデバイス300は、撮像センサ310と、図1aから図2bに関連して紹介された装置10とを含む。撮像センサは、入力データを生成するように構成されており、装置は、撮像センサによって生成された入力データを処理するように構成されている。例えば、カメラデバイスは、監視カメラ、例えばIPカメラ(すなわち、インターネットプロトコルに基づいているネットワークを介して接続されるカメラ)、PoEカメラ(すなわち、イーサネットネットワークを介して接続されるカメラであり、カメラの電力もPower over Ethernet規格に従って、オーバーイーサネットで提供される)、USBカメラ(すなわち、ユニバーサルシリアルバスを介して接続されるカメラ)、又は画像データを出力するための他のインタフェースを使用するカメラであってもよい。
【0090】
カメラデバイスとしての装置は、図1aから図2bに関連して説明されたように、撮像センサの入力データに基づいて決定される異常に関する情報を提供するように構成されてもよい。例えば、装置は、外部/中央評価デバイスに異常に関する情報を提供するように構成されてもよい。例えば、装置は、ビデオストリームとして入力データにオーバーレイされた異常に関する情報を提供するように構成されてもよいし、或いは、ビデオストリームとして入力データを提供し、且つビデオストリームに含まれるメタデータとして異常に関する情報を提供するように構成されてもよい。いくつかの実施例では、2つの別々のビデオストリームは、例えば、1つはオーバーレイ付き、1つはオーバーレイ無しで提供されてもよい。
【0091】
特に、図1aから図2bに関連して紹介されたように、装置は、入力データ内の異常の位置を決定し、(例えば、異常の周りにバウンディングボックスを描くことによって)異常の位置を強調するオーバーレイを生成し、例えば、ビデオストリームとして、入力データと入力データにおける異常の位置を強調するオーバーレイとを含む結合表現を出力するように構成されてもよい。
【0092】
一般的に、撮像センサは、APS(Active Pixel Sensor)ベースの、或いはCCD(Charge-Coupled-Device)ベースの撮像センサを含んでもよい。例えば、APSベースの撮像センサでは、光は、画素の光検知器及び能動増幅器を使用して各画素で記録される。APSベースの撮像センサはしばしば、CMOS(Complementary Metal-Oxide-Semiconductor)に基づいている。CCDベースの撮像センサでは、入ってくる光子は、半導体-酸化物の境界で電子電荷に変換され、それは、その後、撮像を実行するためにセンサ撮像モジュールの制御回路によって撮像センサモジュールの容量性のビン間に移動される。代替的に或いは追加的に、撮像センサは、深度センシング入力データを提供するのに適している、深度センシングカメラであってもよいし、或いは深度センサを含んでもよい。したがって、入力データは、深度センシング入力データであってもよいし、或いは2次元且つ深度センシングコンポーネントを含んでもよい。例えば、撮像センサは、深度センサ、例えば飛行時間ベースの深度センサ又は構造化照明ベースの深度センサを含んでもよい。入力データは、2次元カメラ画像データ及び/又は3次元カメラ画像データを含んでもよい。
【0093】
カメラデバイスの更なる詳細及び態様は、提案された概念、又は上述或いは後述の1つ又は複数の実施例(例えば、図1aから図2b、図3bから図4b)に関連して言及される。カメラデバイスは、提案された概念、又は上述或いは後述の1つ又は複数の実施例の1つ又は複数の態様に対応する1つ又は複数の追加の任意の特徴を含んでもよい。
【0094】
図3bは、図3aに関連して示されるように、評価デバイス360と、例えば1つ又は
複数の装置10を有する1つ又は複数のカメラ300などの、入力データにおける異常を検知するための少なくとも1つの装置10とを含むシステム350の一例の模式図を示す。少なくとも1つの装置は、評価デバイスに、前処理された入力データと第2の機械学習モデルの出力との間の差分に関する情報を提供するように構成されている。評価デバイスは、入力データにおける異常の存在を決定するために差分に関する情報を処理するように構成されている。
【0095】
図3bに概説されるシナリオでは、少なくとも1つの装置10は、装置上で、前処理された入力データと第2の機械学習モデルの出力との間の差分を決定するために使用され、最終処理は、中央評価デバイス上で行われる。この場合、例えば、ぼかし、閾値処理、クラスタリング及び位置検知に関する、異常検知の微調整は、評価デバイスによって実行され得る。
【0096】
例えば、装置の代わりに、評価デバイスは、差分に基づいて、且つ少なくとも1つの閾値に基づいて、異常の存在及び/又は位置を決定するように構成されてもよい。同様に、評価デバイスは、前処理された入力データと第2の機械学習モデルの出力との間の差分にぼかしを適用し、前処理された入力データと第2の機械学習モデルの出力との間のぼかされた差分に基づいて、且つ少なくとも1つの閾値に基づいて、異常の存在及び/又は位置を決定するように構成されてもよい。同様に、クラスタリングは、評価デバイスによって適用されてもよい。それぞれの特徴は、図1aから図2bの装置に関連して紹介された特徴と同様に実装されてもよい。
【0097】
カメラの視野が重複するマルチカメラのセットアップでは、異常の3次元位置についての知識を取得するためにカメラの各々からの異常の2次元知識を組み合わせることも可能である。例えば、評価デバイスは、2つ以上の装置10からの差分に関する情報を取得するように構成されてもよい。評価デバイスは、それぞれの差分に基づいてそれぞれの装置の入力データにおける異常のそれぞれの位置を決定し、それぞれの装置の入力データにおける異常のそれぞれの位置に基づいて異常の3次元的位置を決定するように構成されてもよい。例えば、2つ以上の装置を含むカメラの既知の向きに基づいて、異常の3次元位置が、それぞれのカメラデバイスの入力データにおける異常のそれぞれの位置に基づいて三角測量されてもよい。
【0098】
以下では、訓練及びキャリブレーションプロセスが概説される。このキャリブレーションプロセスは、サーバ上(例えば、GPGPU上)で、或いは埋め込みデバイス(FPGA、埋め込みGPGPU又はディープネットワーク用の専用チップ)上で、例えばカメラデバイスの装置10内で直接的に、実行し得る。
【0099】
図4aは、異常検知に使用する機械学習モデルのシーケンス、例えば、図1aから図2bに関連して紹介された機械学習モデルのシーケンスを訓練するための(コンピュータで実装された)方法の一例のフローチャートを示す。要約すると、機械学習モデルのシーケンスは、前処理された入力データを提供するために入力データを前処理するように構成された第1の機械学習モデルと、出力データを提供するために前処理された入力データを処理するように構成された第2の機械学習モデルとを含む。第1の機械学習モデルは、前処理された入力データが既知の確率分布で統計的に独立している複数のサブコンポーネントを含むように、入力データを処理するように訓練される。第2の機械学習モデルは、オートエンコーダである。方法は、異常を含まない訓練用入力データのサンプルの集合に基づいて機械学習モデルのシーケンスを共同訓練すること410を含む。
【0100】
図4bは、異常検知に使用する機械学習モデルのシーケンスを訓練するための対応する装置40の一例のブロック図を示す。装置40は、1つ又は複数のプロセッサ44と、1
つ又は複数の記憶デバイス46と、任意のインタフェース42とを含む。例えば、インタフェース42と、1つ又は複数のプロセッサ44と、1つ又は複数の記憶デバイス46とは、装置10のそれぞれのコンポーネント12、コンポーネント14、コンポーネント16と同様に実装されてもよい。特に、装置40の機能はまた、図1aから図2bの装置10によって実行されてもよい。装置40と、任意に図1aから図2bの装置10とは、図4aの方法を実行するように構成されている。
【0101】
以下の説明は、図4aの方法、対応する図4bの装置40、及び対応するコンピュータプログラムに関する。方法に関連して紹介された特徴は同様に、対応する装置及びコンピュータプログラムに適用されてもよい(逆も同様)。
【0102】
図4a及び図4bの方法、装置及びコンピュータプログラムは、(図1aから図1bに関連して紹介されたように)機械学習モデルのシーケンスの訓練及びキャリブレーションに関する。
【0103】
訓練は、2つのパラダイムに従って実行される-訓練は、共同訓練として実行される、すなわち、第1及び第2の機械学習モデルは、一緒に訓練され、訓練は、(異常を除外した、または含まない)「正常な」入力データに基づいて実行される。第1のパラダイムは、訓練中に第2の機械学習モデルを「崩壊すること」から回避するために従われる。第2のパラダイムは、異常な入力データの偽りの性質に起因して従われる。
【0104】
提案された概念では、機械学習モデルのシーケンスは、機械学習モデルのシーケンスが使用されるべき入力データ、ひいては環境のために訓練される。例えば、機械学習モデルのシーケンスで使用される入力データが監視カメラの撮像センサに由来する場合、機械学習モデルのシーケンスは、特定の監視カメラの位置で記録されるため、その監視カメラの撮像センサデータを含む訓練用入力データのサンプルの集合を使用して訓練されてもよい。特に、機械学習モデルのシーケンスは、機械学習モデルのシーケンスと共に使用される入力データ源から収集された訓練用入力データのサンプルの集合に基づいて訓練されてもよい。言い換えれば、機械学習モデルのシーケンスは、機械学習モデルのシーケンスによって処理される入力データに、例えば、機械学習モデルのシーケンスによって処理される入力データ源に、適合されてもよい。図1aから図3bに関連して使用された実施例に戻って参照すると、機械学習モデルのシーケンスは、機械学習モデルのシーケンスの使用中に入力データを提供するカメラデバイスによって生成された訓練用入力データのサンプルの集合に基づいて訓練されてもよい。
【0105】
入力データが監視カメラの画像データである上記の実施例を参照すると、ネットワークは、異常のない状況の記録された映像(すなわち、記録されたビデオデータ)を使用することによって訓練されてもよい。例えば、映像は、異なる天候、異なる照明、映像に見える人々の異なる数など(或いは季節変化を含めるとより多くのもの)が記録された映像によって表されるように、異なる状況を表す時間間隔、例えば、1週間の期間にわたる時間間隔に及んでもよい。キャリブレーションはまた、(通常は他の目的のために)既にアーカイブされている場合、既存の映像で行い得る。この映像は、カメラの異なるPZT(パン/チルト/ズーム)の設定、又は環境の異なる幾何学的レイアウト(移動するエスカレータ、開閉するドアなどの場合)を含んでもよい。(変換、回転、スケーリング、局所摂動、色の変化などのような)追加のデータの拡張は、訓練プロセス中に適用され得る。例えば、任意の拡張を含む、記録された映像は、訓練用入力データのサンプルの集合に対応してもよい。例えば、記録された映像の各フレーム又はキーフレーム、或いは記録された映像のフレーム又はキーフレームの部分集合は、サンプルの集合の訓練用入力データのサンプルに対応してもよい。H.264/H.265ストリームの圧縮されたキーフレームで直接的に動作するために機械学習モデル(及び特に専用バックエンド)を訓練すること
が可能である。
【0106】
機械学習モデルの完全なシーケンスは、上記で説明されたように複数のディープネットワーク(例えば、第1及び第2の機械学習モデル)と追加の非機械学習アルゴリズムとを含む。ディープネットワークは、訓練されること、すなわち、人工ニューロン間の適切な、すなわち最適な重みを決定することが必要である。
【0107】
機械学習モデルは、訓練用入力データのサンプルを使用して訓練される。提案された概念では、訓練用入力データは、異常のためにその後解析される入力データと非常に類似している。特に、訓練用入力データは、異常を含まない。この文脈では、用語「異常を含まない」は、必ずしも絶対的なものではない。場合によっては、ある程度の異常は、許容され得る。例えば、訓練用入力データのサンプルのうち、最大1%(又は最大0.1%、又は最大0.01%)は、異常を表してもよい。しかしながら、訓練用入力データのサンプルの集合は、異常を表すサンプルで強化されないかもしれない。
【0108】
提案された機械学習モデルのシーケンスは、2つの主要なコンポーネント-入力データを無相関化するための第1の機械学習モデルと、オートエンコーダである第2の機械学習モデルとを含む。これら2つのコンポーネントの訓練は、異なる目標を必要とした-第1の機械学習モデルの訓練は、入力データを無相関化する第1の機械学習モデルを訓練するために使用され、第2の機械学習モデルの訓練は、(前処理された入力データが異常でないという仮定の下で)前処理された入力データを再構成する第2の機械学習モデルを訓練するために使用される。したがって、2つの異なる損失関数が、2つの目標のために使用され得る。言い換えれば、第1の機械学習モデルは、第1の損失関数に基づいて訓練され、第2の機械学習モデルは、第2の損失関数に基づいて訓練されてもよい。第1及び第2の損失関数は、第1及び第2の機械学習モデルの共同訓練のために組み合わせられてもよい。例えば、機械学習モデルのシーケンスは、損失関数Lを使用して訓練されてもよく、損失関数Lは、2つのサブ損失関数、無相関損失Ld(すなわち、第1の損失関数)と再構成損失(オートエンコーダのための、すなわち、第2の損失関数)Lrとの加重和、すなわちL=a・Ld+b・Lrから構成されている。
【0109】
訓練は、機械学習モデルのシーケンスの相互接続されたネットワークが同時に訓練される(したがって、共同訓練される)エンドツーエンド方式で実行される。
【0110】
以下では、第2の機械学習モデルの訓練についての一例が与えられる。一般的に、オートエンコーダの訓練は、使用される訓練用サンプルがラベル付けされていないため、教師なし学習に基づいている。言い換えれば、第2の機械学習モデルは、教師なし学習を使用して訓練されてもよい。特に、オートエンコーダの作業は、入力を符号化してその後再び入力を再構成することによって入力の次元を下げることである。正確な再構成を達成するために、オートエンコーダは、操作中に符号化されて再構成される入力と非常に類似している訓練用入力データのサンプルで訓練される。言い換えれば、第2の機械学習モデルは、通常入力で存在する内容を「学習する」ため、符号化後に再構成され得る。機械学習モデルのシーケンスは、訓練用入力データの「正常な」サンプル、すなわち、異常を含まない訓練用入力データのサンプルで訓練されるため、第2の機械学習モデル(のみ)は、異常なく第2の機械学習モデルに入力されたデータを出力することを学習する。今、第2の機械学習モデルの入力において、入力が異常を含む場合、それは、第2の機械学習モデルのデコーダコンポーネントによって再構成されない(可能性が高い)。したがって、第2の機械学習モデルの入力と出力との差分は、異常の存在を明らかにする。
【0111】
第2の機械学習モデルの訓練中、異常な入力から正常な出力を生成するためのこの特性は、入力に異常を人為的にもたらすことによって、且つ異常のない対応する入力を出力す
るために第2の機械学習モデルを訓練することによって、訓練させる。したがって、第2の機械学習モデルは、ノイズの多いオートエンコーダとして訓練される。第2の機械学習モデルが、第1の機械学習モデルと共同で、使用され、訓練されるため、第1の機械学習モデルは、第2の機械学習モデルのための入力を生成するように使用され、異常は、第1の機械学習モデルと第2の機械学習モデルとの間の入力に導入される。言い換えれば、第2の機械学習モデルは、機械学習モデルのシーケンスの訓練中に第1の機械学習モデルによって提供された前処理された入力データに基づいて第2の機械学習モデルのための訓練用入力データを生成すること415によって訓練されてもよい。特に、前処理された入力データのサブコンポーネントの部分集合は、前処理された入力データが第2の機械学習モデルに提供される前に変更されてもよく、例えば、予め定義された値に設定されてもよいし、或いはランダム値に設定されてもよい。例えば、前処理された入力データの複数のサブコンポーネントの部分集合は、第2の機械学習モデルのための訓練用入力データにおいて固定値(又はランダム値)に設定されてもよい。例えば、第2の機械学習モデルへの入力は、入力における50%のドロップアウトの使用によって大幅に拡張されてもよく、すなわち、サブコンポーネントの半分が値0.0に設定されてもよい。次に、第2の機械学習モデルは、第2の機械学習モデルの出力と第2の機械学習モデルの元の(修正されていない)入力との間の差分に基づいて訓練の損失関数を設定することによって、元の入力を再構成するように訓練される。言い換えれば、第2の損失関数は、第2の機械学習モデルの出力と、前処理された入力データとの差分に基づいていてもよい。
【0112】
以下では、一例が第2の損失関数について与えられる。yを、無相関モジュールからの出力とし、ynoisyを、セル/サブコンポーネントの約半分がゼロに設定された値を有するy(すなわち、前処理された入力データ)のノイズの多いバージョンであるとする。関数gは、オートエンコーダの演算を示すとする。さらに、z=g(ynoisy)を、オートエンコーダの出力(すなわち、第2の機械学習モデルの出力)とする。予測モジュール(すなわち、機械学習モデルのシーケンス)は、入力としてynoisyを使用するとき、出力としてyを報告するように訓練されてもよい。例えば、損失関数は、以下のように定義され得る。
【数1】
ここで、変数iは、全てのサブコンポーネント、例えば、画像セルに対するインデックスである。
【0113】
無相関モジュール(すなわち、第1の機械学習モデルの第2のサブモデル)が存在しなかった場合、バックボーンとオートエンコーダとの両方を同時に上記の損失関数Lrで訓練することは、常に一定の値を出力する「崩壊された」全体のネットワークをもたらし得る。これは、異常が検知されない可能性があるため、完全なシステムを無用なものとし得る。
【0114】
以下では、第1の機械学習モデルの訓練が、より詳細に紹介される。図1aから図2bに関連して概説されたように、第1の機械学習モデルは、バックボーンコンポーネント(すなわち、第1のサブモデル)と無相関コンポーネント(すなわち、第2のサブモデル)とを含んでもよい。一般的に、予め訓練されたバックボーン(すなわち、第1の機械学習モデルの第1のサブモデル)は、例えば、AlexNet、ResNet-101又はMobileNetを参照すると、そのようなバックボーンが存在し、一般的に利用可能であるため、第1の機械学習モデルの任意の第1のサブモデルのために使用されてもよい。
機械学習モデルの訓練中、バックボーンの重みは、バックボーンが通常既に訓練されているため、凍結されてもよい。言い換えれば、第1の機械学習モデルの第1のサブモデルは、人工ニューラルネットワークであってもよいし、特に、ディープニューラルネットワーク又はディープ畳み込みニューラルネットワークであってもよい。バックボーンコンポーネントのニューロン間の重みは、機械学習モデルのシーケンスの共同訓練中に固定(すなわち、凍結)されてもよい。これは、訓練をより速くし、より少ない数の訓練用サンプルを必要とし得る。しかしながら、凍結された重みを使用することは、組み合わせられたシステムの低下した精度をもたらし得る。したがって、代替的に、バックボーンコンポーネントの重みは、機械学習モデルのシーケンスの訓練中に適応されてもよい。
【0115】
以下では、第1の機械学習モデルの第2のサブモデルの訓練、すなわち、無相関モジュールの訓練が説明される。無相関モジュールは、可能な限り独立となるためにその出力を統計的に無相関化するように訓練される。これは、各出力対に数学的に無相関化させることを強制することによって行われ得る。これは、バックボーンからの出力が定数関数に崩壊しないことを保証し得る。
【0116】
この目標を達成するために、教師なし学習ベースの訓練は、サブコンポーネント間の相関を最小化することを目標とする損失関数を用いて、無相関モジュールを訓練するために使用されてもよい。例えば、無相関損失Ldは、無相関モジュールからの(異なる)出力セル/サブコンポーネントの各対の全ての相互相関の合計であってもよい。言い換えれば、第1の損失関数は、前処理された入力データの異なるサブコンポーネントの対の相互相関の合計に基づいていてもよい。
【0117】
以下では、そのような損失関数の第1の例が与えられる。関数gは、無相関モジュールによって実行される無相関演算を示すものとする。yを、無相関からの出力、すなわち、y=f(x)とし、ここで、xは入力データ(例えば、バックボーンからの出力として表される、画像)であるとする。さらに、Yを、正規化されたバージョン、すなわち、
【数2】
とし、ここで、meant及びstdevtはそれぞれ、全ての可能な画像x(t)の平均及び標準偏差を示すものとする。その結果、
【数3】
は、第1の損失関数Ldとして使用され得る。インデックスtは、訓練用入力データのサンプルの集合内の全てのサンプル(例えば、画像)を合計する。
【0118】
以下では、無相関モジュールを訓練するための、より効率的な損失関数が示される。訓練ステップの重要な計算効率の最適化は、代わりに以下の対照的な損失関数を使用することによって行われ得る。全ての合計のコンポーネント(例えば、画像セル)と統計的に独立している出力次元とを訓練する代わりに、無相関モジュールは、入力データの異なるサンプル間の入力データ表現(例えば、画像表現)の直交性について訓練され得る。
【数4】
2つの異なる時間ステップt1、t2からの入力データ(例えば、画像)の2つのサンプルは、損失関数の各項のために使用されることに注意されたい。この損失関数は、上述のLdと同じ値を有することが示され得る。しかしながら、(全ての可能なt1及びt2の対を使用する代わりに)t1及びt2が訓練用入力データ(例えば、訓練用画像)のサンプルの集合からサンプリングされる場合、その(近似)計算は、より小さい計算負荷で実装され得る。実質的に、出力表現は、全ての出力値を無相関化させることを要求する代わりに、異なる時間ステップからの表現に直交性を要求することによって、「押し」出される。
【0119】
ネットワークを訓練し、このようにして特定のセットアップをキャリブレーションした後、それらの重みは、凍結され、以後リアルタイム異常検知に使用される。
【0120】
キャリブレーションはまた、既存の映像が(通常は他の目的のために)既にアーカイブされている場合、既存の映像で行い得る。同様に、異常検知アルゴリズム自体は、既存の記録されたビデオ映像に適用され得る。
【0121】
マルチカメラのセットアップでは、キャリブレーションプロセスの結果(すなわち、訓練されたディープネットワークの重み)は、新たなカメラが同様の位置に設置された他のカメラを訓練した結果を「継承する」ようにカメラ間で共有され得る(これは、キャリブレーションのために必要な予想された時間を短縮する)。
【0122】
機械学習モデルのシーケンスを訓練するための方法、装置及びコンピュータプログラムの更なる詳細及び態様は、上述或いは後述の提案された概念又は1つ又は複数の実施例(例えば、図1aから図3b)に関連して言及される。機械学習モデルのシーケンスを訓練するための方法、装置及びコンピュータプログラムは、上述或いは後述の1つ又は複数の提案された概念の態様又は1つ又は複数の実施例に対応する1つ又は複数の追加の任意の特徴を含んでもよい。
【0123】
先の実施例の特定の1つに関連して説明された態様及び特徴はまた、その更なる実施例の同一或いは類似の特徴を置き換えるために、或いは特徴を更なる実施例に追加的に紹介するために、1つ又は複数の更なる実施例と組み合わせられてもよい。
【0124】
実施例はさらに、プログラムがコンピュータ、プロセッサ又は他のプログラム可能なハードウェアコンポーネント上で実行されるとき、1つ又は複数の上記の方法を実行するためのプログラムコードを含む(コンピュータ)プログラムであってもよいし、或いはそれらに関してもよい。したがって、上述の方法の異なるもののステップ、操作又はプロセスはまた、プログラムされたコンピュータ、プロセッサ又は他のプログラム可能なハードウェアコンポーネントによって実行されてもよい。実施例はまた、機械可読、プロセッサ可読、或いはコンピュータ可読であり、機械実行可能、プロセッサ実行可能、或いはコンピュータ実行可能なプログラム及び命令を符号化し且つ/或いは含む、デジタルデータ記憶媒体のような、プログラム記憶デバイスを対象としてもよい。プログラム記憶デバイスは、例えば、デジタル記憶デバイス、磁気ディスク及び磁気テープのような磁気記憶媒体、ハードディスクドライブ、又は光学的可読なデジタルデータ記憶媒体を含んでもよいし、或いはそれらであってもよい。他の実施例はまた、上述の方法ステップを実行するようにプログラムされた、コンピュータ、プロセッサ、制御ユニット、(フィールド)プログラ
ム可能な論理アレイ((F)PLA)、(フィールド)プログラム可能なゲートアレイ((F)PGA)、グラフィックプロセッサユニット(GPU)、特定用途向け集積回路(ASIC)、集積回路(IC)又はシステムオンチップ(SoC)システムを含んでもよい。
【0125】
本明細書又は特許請求の範囲に開示されたいくつかのステップ、プロセス、操作又は機能の開示は、個々の事例において明確に述べられていない限り或いは技術的な理由で必要でない限り、これらの操作が必ずしも説明された順序に依存することを意味すると解釈してはならないことが更に理解されよう。したがって、先の説明は、いくつかのステップ又は機能の実行をある一定の順序に限定するものではない。さらに、更なる実施例では、単一のステップ、機能、プロセス又は操作は、いくつかのサブステップ、サブ機能、サブプロセス又はサブ操作を含んでもよいし、且つ/或いは分割されてもよい。
【0126】
いくつかの態様がデバイス又はシステムに関連して説明されている場合、これらの態様は、対応する方法の説明としても理解されるべきである。例えば、デバイス又はシステムのブロック、デバイス又は機能的な態様は、対応する方法の、方法ステップのような、特徴に対応してもよい。したがって、方法に関連して説明された態様はまた、対応するデバイス又は対応するシステムの対応するブロック、対応する要素、特性又は機能的な特徴の説明としても理解されるものとする。
【0127】
以下の請求項は、詳細な説明に組み込まれ、各請求項は、別個の一例としてそれ自体で成り立ってもよい。また、特許請求の範囲において、従属請求項は、1つ又は複数の他の請求項との特定の組み合わせを指すが、他の実施例はまた、任意の他の従属請求項又は独立請求項の対象と従属請求項の組み合わせを含んでもよいことに留意されたい。そのような組合せは、個々の事例において特定の組み合わせが意図されていないことが述べられていない限り、ここに明示的に提案される。さらに、ある請求項の特徴は、その請求項がその他の独立請求項に従属するものとして直接的に定義されていない場合でも、任意の他の独立請求項にも含まれるべきである。
図1a
図1b
図2a
図2b
図3a
図3b
図4a
図4b