(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-16
(45)【発行日】2024-12-24
(54)【発明の名称】異常判定装置、異常判定方法、及び異常判定プログラム
(51)【国際特許分類】
G06F 16/75 20190101AFI20241217BHJP
【FI】
G06F16/75
(21)【出願番号】P 2023531178
(86)(22)【出願日】2021-06-29
(86)【国際出願番号】 JP2021024476
(87)【国際公開番号】W WO2023275967
(87)【国際公開日】2023-01-05
【審査請求日】2023-10-12
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】高木 基宏
(72)【発明者】
【氏名】横張 和也
(72)【発明者】
【氏名】北原 正樹
(72)【発明者】
【氏名】島村 潤
【審査官】甲斐 哲雄
(56)【参考文献】
【文献】米国特許出願公開第2017/0103264(US,A1)
【文献】中国特許出願公開第111402287(CN,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
(57)【特許請求の範囲】
【請求項1】
映像データの特徴に基づく人の動作に関する複数の動作クラスタを記憶するクラスタリングデータベースと、
少なくとも一つの動作を含む複数の手順の関係を表す手順木であって、前記複数の手順の各々についての前記動作クラスタを格納した手順木を記憶する手順木データベースと、
人の動作を表す映像データを、前記動作クラスタに分類すると共に、前記人の動作が異常であるか否かを判定する動作異常判定部と、
前記動作クラスタの分類結果と前記手順木とに基づいて、前記人の動作を前記手順に分類する手順分類部と、
前記手順の分類結果に基づいて、前記人の動作を含む前記手順が異常であるか否かを判定する手順異常判定部と、
を含む異常判定装置。
【請求項2】
前記動作異常判定部は、各時刻について、前記映像データを前記動作クラスタに分類すると共に、前記人の動作が異常であるか否かを判定し、
前記手順分類部は、各時刻について、前記人の動作を前記手順に分類し、
前記手順異常判定部は、各時刻の前記手順の分類結果に基づいて、前記手順が異常であるか否かを判定する請求項1記載の異常判定装置。
【請求項3】
前記動作異常判定部は、前記複数の動作クラスタの各々に属する確率である動作クラス確率を算出することにより、前記動作クラスタに分類し、
前記手順木は、前記複数の手順の各々に対応する前記動作クラス確率を格納している請求項1又は2記載の異常判定装置。
【請求項4】
前記複数の動作クラスタは、K個の動作クラスタであり、
前記複数の手順は、L個の手順であり、
前記手順木は、K次元のベクトルである前記動作クラス確率を、L次元のベクトルに変換する変換器であり、
前記手順分類部は、前記手順木を用いて、K次元のベクトルである前記動作クラス確率を、L次元のベクトルに変換することにより、前記手順に分類する請求項3記載の異常判定装置。
【請求項5】
映像データの特徴に基づく人の動作に関する複数の動作クラスタを記憶するクラスタリングデータベースと、
少なくとも一つの動作を含む複数の手順の関係を表す手順木であって、前記複数の手順の各々についての前記動作クラスタを格納した手順木を記憶する手順木データベースと、
を含む異常判定装置における異常判定方法であって、
動作異常判定部が、人の動作を表す映像データを、前記動作クラスタに分類すると共に、前記人の動作が異常であるか否かを判定し、
手順分類部が、前記動作クラスタの分類結果と前記手順木とに基づいて、前記人の動作を前記手順に分類し、
手順異常判定部が、前記手順の分類結果に基づいて、前記人の動作を含む前記手順が異常であるか否かを判定する
異常判定方法。
【請求項6】
コンピュータを、請求項1~請求項4の何れか1項記載の異常判定装置として機能させるための異常判定プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の技術は、異常判定装置、異常判定方法、及び異常判定プログラムに関する。
【背景技術】
【0002】
近年、高精細カメラの普及により、撮影した映像で人の動作を解析する技術のニーズが高まっている。例えば、監視カメラでの犯罪動作の検出や工事現場での危険動作の検出などである。これらの動作を発見するには、大量の映像を観察する必要がある。異常な動作の定義について理解している人が映像中の動作を観察して異常動作を検出する。しかしながら、人手での検出は時間的・人的コストがかかるため、異常動作を自動で検出するアルゴリズムを構築して検出する方法が考えられる。
【0003】
近年では、ニューラルネットワークを用いた異常動作の検出技術が提案されている(非特許文献1)。非特許文献1の手法では、映像をクラスタリングすることで高精度に異常行動を検出する。
【先行技術文献】
【非特許文献】
【0004】
【文献】Zaheer M.Z., Mahmood A., Astrid M., Lee SI. CLAWS: Clustering Assisted Weakly Supervised Learning with Normalcy Suppression for Anomalous Event Detection. ECCV 2020.
【発明の概要】
【発明が解決しようとする課題】
【0005】
非特許文献1に示す映像にうつる異常動作を検出する従来手法では、手順と動作を明確に区別していない。そのため、例えば、(手順1)床においた脚立を立てる、(手順2)安全帯ベルトを締める、(手順3)脚立を登る、という手順があった場合、それぞれの手順において多数の動作があり、手順の順序が合っているかどうかの判定が困難である。具体的には、手順1では人は膝を曲げて脚立を掴み、脚立を持ち上げて固定する、という多数の動作がある。また同様に、手順2の安全帯ベルトを締めて脚立を登る、といった手順も安全帯ベルトを持ち、人体に固定するといった一連の動作が含まれる。手順3には、脚立の方へ歩いてステップに足をかけ、手で脚立を持って登るという多数の動作が含まれる。このように、動作をある程度まとめて手順としてとらえて、手順の順序が合っているかどうかを確認する必要があるが、現在の異常動作検出手法では個々の動作の異常検出が中心であり、複数の動作がまとまった手順の異常検出に対する検討はなされていない。そのため、安全帯ベルトを締めたタイミングが脚立を登った後であれば、危険である、というような動作の検出を映像から行うことは困難である。また、手順の中の動作自体の異常も検出する必要があるので、これらを同時に検出することを考慮した手法が必要とされている。
【0006】
開示の技術は、上記の点に鑑みてなされたものであり、手順の異常及び動作自体の異常を精度よく判定することができる異常判定装置、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示の第1態様は、異常判定装置であって、映像データの特徴に基づく人の動作に関する複数の動作クラスタを記憶するクラスタリングデータベースと、少なくとも一つの動作を含む複数の手順の関係を表す手順木であって、前記複数の手順の各々についての前記動作クラスタを格納した手順木を記憶する手順木データベースと、人の動作を表す映像データを、前記動作クラスタに分類すると共に、前記人の動作が異常であるか否かを判定する動作異常判定部と、前記動作クラスタの分類結果と前記手順木とに基づいて、前記人の動作を前記手順に分類する手順分類部と、前記手順の分類結果に基づいて、前記人の動作を含む前記手順が異常であるか否かを判定する手順異常判定部と、を含む。
【0008】
本開示の第2態様は、映像データの特徴に基づく人の動作に関する複数の動作クラスタを記憶するクラスタリングデータベースと、少なくとも一つの動作を含む複数の手順の関係を表す手順木であって、前記複数の手順の各々についての前記動作クラスタを格納した手順木を記憶する手順木データベースと、を含む異常判定装置における異常判定方法であって、動作異常判定部が、人の動作を表す映像データを、前記動作クラスタに分類すると共に、前記人の動作が異常であるか否かを判定し、手順分類部が、前記動作クラスタの分類結果と前記手順木とに基づいて、前記人の動作を前記手順に分類し、手順異常判定部が、前記手順の分類結果に基づいて、前記人の動作を含む前記手順が異常であるか否かを判定する。
【0009】
本開示の第3態様は、コンピュータを、第1態様の異常判定装置として機能させるための異常判定プログラムである。
【発明の効果】
【0010】
開示の技術によれば、手順の異常及び動作自体の異常を精度よく判定することができる。
【図面の簡単な説明】
【0011】
【
図1】第1実施形態及び第2実施形態の学習装置及び異常判定装置として機能するコンピュータの一例の概略ブロック図である。
【
図2】第1実施形態及び第2実施形態の学習装置の構成を示すブロック図である。
【
図3】第1実施形態及び第2実施形態の異常判定装置の構成を示すブロック図である。
【
図4】第1実施形態の学習装置のクラスタリング処理ルーチンを示すフローチャートである。
【
図5】第1実施形態の学習装置の動作異常判定モデル学習処理ルーチンを示すフローチャートである。
【
図6】第1実施形態の学習装置の手順木構築処理ルーチンを示すフローチャートである。
【
図7】第1実施形態の異常判定装置の異常判定処理ルーチンを示すフローチャートである。
【
図8】第1実施形態の異常判定装置の動作異常判定部の処理の流れを示すフローチャートである。
【
図9】第1実施形態の異常判定装置の手順分類部の処理の流れを示すフローチャートである。
【
図10】第1実施形態の異常判定装置の手順異常判定部の処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0012】
以下、開示の技術の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一又は等価な構成要素及び部分には同一の参照符号を付与している。また、図面の寸法比率は、説明の都合上誇張されており、実際の比率とは異なる場合がある。
【0013】
[第1実施形態]
<本実施形態の概要>
本実施形態では、映像データを分割した映像セグメントと映像セグメントの映像特徴をクラスタリングして得られるクラスタリング情報を入力として動作異常ラベルと動作クラス確率を出力し、動作クラス確率と手順木を入力として手順確率を出力し、手順確率を入力として手順異常ラベルを出力する。
【0014】
ここで、手順とは、手順文のように人手で規定された手順だけではなく、予め規定されたものではなく、少なくとも1つの動作をまとめた疑似的な手順を含む。一つの手順には、少なくとも一つの動作が含まれる。
【0015】
<本実施形態に係る学習装置の構成>
図1は、本実施形態の学習装置10のハードウェア構成を示すブロック図である。
【0016】
図1に示すように、学習装置10は、CPU(Central Processing Unit)11、ROM(Read Only Memory)12、RAM(Random Access Memory)13、ストレージ14、入力部15、表示部16及び通信インタフェース(I/F)17を有する。各構成は、バス19を介して相互に通信可能に接続されている。
【0017】
CPU11は、中央演算処理ユニットであり、各種プログラムを実行したり、各部を制御したりする。すなわち、CPU11は、ROM12又はストレージ14からプログラムを読み出し、RAM13を作業領域としてプログラムを実行する。CPU11は、ROM12又はストレージ14に記憶されているプログラムに従って、上記各構成の制御及び各種の演算処理を行う。本実施形態では、ROM12又はストレージ14には、学習プログラムが格納されている。学習プログラムは、1つのプログラムであっても良いし、複数のプログラム又はモジュールで構成されるプログラム群であっても良い。
【0018】
ROM12は、各種プログラム及び各種データを格納する。RAM13は、作業領域として一時的にプログラム又はデータを記憶する。ストレージ14は、HDD(Hard Disk Drive)又はSSD(Solid State Drive)により構成され、オペレーティングシステムを含む各種プログラム、及び各種データを格納する。
【0019】
入力部15は、マウス等のポインティングデバイス、及びキーボードを含み、各種の入力を行うために使用される。
【0020】
入力部15は、学習用の映像データを、入力として受け付ける。具体的には、入力部15は、少なくとも一つの動作を表す学習用の映像データを受け付ける。学習用の映像データには、動作自体が異常であるか正常であるかを示すラベルが付与されている。
【0021】
表示部16は、例えば、液晶ディスプレイであり、各種の情報を表示する。表示部16は、タッチパネル方式を採用して、入力部15として機能しても良い。
【0022】
通信インタフェース17は、他の機器と通信するためのインタフェースであり、例えば、イーサネット(登録商標)、FDDI、Wi-Fi(登録商標)等の規格が用いられる。
【0023】
次に、学習装置10の機能構成について説明する。
図2は、学習装置10の機能構成の例を示すブロック図である。
【0024】
学習装置10は、機能的には、
図2に示すように、学習用映像データベース(DB)20、クラスタリング部22、クラスタリングデータベース(DB)24、動作異常判定モデル学習部26、動作クラス算出部28、手順木構築部30、及び手順木データベース(DB)32を備えている。
【0025】
学習用映像データベース20は、入力された学習用の映像データを複数記憶する。学習用の映像データは、映像ごとに入力されたものでもよいし、分割した映像セグメントごとに入力されたものでもよし、映像フレームごとに入力されたものでもよい。ここで映像セグメントは映像を複数フレームごとにまとめて分割した単位であり、例えば32フレームで1セグメントと定めた単位である。
【0026】
クラスタリング部22は、学習用映像データベース20に記憶されている学習用映像セグメント群を入力として、映像データの特徴に基づいて学習用映像セグメント群のクラスタリングを行い、人の動作に関する複数の動作クラスタを表すクラスタリング情報を出力する。映像データの特徴は、事前に学習用映像データの映像セグメントから取り出した特徴ベクトルである。クラスタリング情報は、クラスタリングデータベース24に格納される。動作クラスタの数がK個であれば、クラスタリング情報は、K個の動作クラスタの各々の特徴ベクトルの中心ベクトルである。また、クラスタリング部22は、学習用映像セグメント群に対するクラスタリング結果として、各映像セグメントが所属する動作クラスタを、クラスタリングデータベース24に格納する。
【0027】
動作異常判定モデル学習部26は、学習用映像データベース20から学習用映像セグメント群を取り出し、人の動作を表す映像データを動作クラスタに分類すると共に人の動作自体が異常であるか否かを判定するための動作異常判定モデルを学習する。ここで、動作異常判定モデルとして、ニューラルネットワーク等の機械学習モデルを用いる。また、学習用映像セグメント群には映像毎の時系列順が保持されている。各学習用映像セグメントには異常か正常かのラベルが付与されており、動作異常判定モデル学習部26は、そのラベルと学習用映像セグメント群に対するクラスタリング結果とに対する損失を小さくするように動作異常判定モデルを学習する。
【0028】
動作クラス算出部28は、学習用映像データベース20に記憶されている学習用映像セグメント群とクラスタリングデータベース24に記憶されているクラスタリング情報とを入力として、各学習用映像セグメントについて、複数の動作クラスタの各々に属する確率である動作クラス確率を算出する。具体的には、動作クラス算出部28は、各学習用映像セグメントについて、映像の特徴と、K個の動作クラスタの特徴ベクトルの中心ベクトルとを比較して、複数の動作クラスタの各々に属する確率である動作クラス確率を算出する。動作クラスタの数がK個であれば、動作クラス確率は、K次元のベクトルとなり、ベクトルの各要素の総和は1となる。
【0029】
手順木構築部30は、各学習用映像セグメントについての動作クラス確率を入力として、手順木を出力する。ここで、手順木は、少なくとも一つの動作を含む複数の手順の関係を表すパース木であって、複数の手順の各々についての動作クラスタを格納した木である。具体的には、各学習用映像セグメントについての動作クラス確率に基づいて、学習用映像セグメントが表す動作のまとまりに分けて手順とし、手順の関係を求め、求めた手順の関係を表す手順木の終端ノードの各々に対して、当該終端ノードが表す手順に対応する動作クラス確率を算出し、手順木を構築する。
【0030】
手順木データベース32には、構築された手順木が記憶される。
【0031】
<第1実施形態に係る異常判定装置の構成>
上記
図1は、第1実施形態の異常判定装置50のハードウェア構成を示すブロック図である。
【0032】
上記
図1に示すように、異常判定装置50は、学習装置10と同様の構成であり、ROM12又はストレージ14には、異常動作を判定するための異常判定プログラムが格納されている。
【0033】
入力部15は、人の動作を表す映像データを、入力として受け付ける。
【0034】
次に、異常判定装置50の機能構成について説明する。
図3は、異常判定装置50の機能構成の例を示すブロック図である。
【0035】
異常判定装置50は、機能的には、
図3に示すように、クラスタリングデータベース(DB)60、動作異常判定部62、手順木データベース(DB)64、手順分類部66、及び手順異常判定部68を備えている。
【0036】
クラスタリングデータベース60には、クラスタリングデータベース24と同様に、映像データの特徴に基づく人の動作に関する複数の動作クラスタを表すクラスタリング情報を記憶している。
【0037】
動作異常判定部62は、学習装置10によって学習された動作異常判定モデルを用いて、各時刻について、人の動作を表す映像データを動作クラスタに分類すると共に、人の動作が異常であるか否かを判定する。
【0038】
具体的には、動作異常判定部62は、映像データを分割した映像セグメントと、映像特徴をクラスタリングしたクラスタリング情報とを入力として受け取り、動作異常判定モデルを用いて、動作異常ラベルと、複数の動作クラスタの各々に属する確率である動作クラス確率とを出力する。動作異常ラベルは、入力された映像セグメント中の動作自体が異常であるか正常であるかを、1もしくは0で表す。本実施形態では、動作異常ラベルが1である場合に、動作自体が異常であることを表す。
【0039】
手順木データベース64は、手順木データベース32と同様に、手順木を記憶している。
【0040】
手順分類部66は、各時刻について、動作クラスタの分類結果と手順木とに基づいて、映像データが表す動作を手順に分類する。具体的には、手順分類部66は、各時刻について、動作クラス確率と手順木とに基づいて、複数の手順の各々に属する確率である手順確率を出力する。例えば、手順木は、時刻tまでの動作クラス確率を入力として、時刻tの手順確率を出力する。そのため、手順分類部66は、映像データの入力が開始されてからの各時刻の動作クラス確率を保持する。
【0041】
手順異常判定部68は、各時刻の手順の分類結果に基づいて、映像セグメントが表す動作を含む手順が異常であるか否かを判定する。具体的には、各時刻の手順確率に基づいて、映像セグメントが表す動作を含む手順が異常であるか否かを示す手順異常ラベルを出力する。手順異常ラベルは動作異常ラベルと同様に1もしくは0をとる。
【0042】
<第1実施形態に係る学習装置の作用>
次に、第1実施形態に係る学習装置10の作用について説明する。
【0043】
図4は、学習装置10によるクラスタリング処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から学習プログラムを読み出して、RAM13に展開して実行することにより、動作クラス確率を表現するためのクラスタを構築するクラスタリング処理が行なわれる。また、学習装置10に、学習用の映像データが複数入力され、学習用映像データベース20に格納される。
【0044】
ステップS100で、CPU11は、クラスタリング部22として、学習用映像データベース20から学習用映像セグメント群を受け取る。
【0045】
ステップS102で、CPU11は、クラスタリング部22として、各学習用映像セグメントを、事前学習により得られた動作異常判定モデルに入力し、特徴ベクトルを得る。
【0046】
ステップS104で、CPU11は、クラスタリング部22として、各学習用映像セグメントについて得られた特徴ベクトル群をK個の動作クラスタへ分類するクラスタリングを行う。
【0047】
ステップS106で、CPU11は、クラスタリング部22として、各動作クラスタの特徴ベクトルの中心ベクトルをクラスタリング情報として出力し、クラスタリングデータベース24に格納する。
【0048】
図5は、学習装置10による動作異常判定モデル学習処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から学習プログラムを読み出して、RAM13に展開して実行することにより、動作異常判定モデル学習処理が行なわれる。動作異常判定モデル学習処理の流れは、一般的なニューラルネットワークのバッチ学習と同様である。
【0049】
ステップS110で、CPU11は、動作異常判定モデル学習部26として、学習用映像データベース20から学習用映像セグメント群を受け取る。
【0050】
ステップS112で、CPU11は、動作異常判定モデル学習部26として、学習用映像セグメント群から学習用映像セグメントバッチをサンプリングする。
【0051】
ステップS114で、CPU11は、動作異常判定モデル学習部26として、学習用映像セグメントバッチに含まれる各学習用映像セグメントを動作異常判定モデルに入力する。
【0052】
ステップS116で、CPU11は、動作異常判定モデル学習部26として、各学習用映像セグメントについて、動作異常判定モデルの出力から動作異常スコアと動作クラス確率を得る。
【0053】
ステップS118で、CPU11は、動作異常判定モデル学習部26として、各学習用映像セグメントについての動作異常スコアと動作クラス確率から損失を算出する。具体的には、各学習用映像セグメントについて付与された動作異常ラベル及びクラスタリング結果と、各学習用映像セグメントについての動作異常スコア及び動作クラス確率を比較して、損失を算出する。
【0054】
ステップS120で、CPU11は、動作異常判定モデル学習部26として、得られた損失から勾配を計算し、動作異常判定モデルの重みをバックプロパゲーションで更新する。
【0055】
ステップS122で、CPU11は、動作異常判定モデル学習部26として、損失が十分に小さいか判定する。損失が十分に小さくない場合、CPU11は、ステップS112へ戻る。一方、損失が十分に小さい場合、CPU11は、ステップS124へ移行する。
【0056】
ステップS124で、CPU11は、動作異常判定モデル学習部26として、更新した動作異常判定モデルを出力して終了する。
【0057】
図6は、学習装置10による手順木構築処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から学習プログラムを読み出して、RAM13に展開して実行することにより、手順木構築処理が行なわれる。手順木構築処理は、非特許文献2の記載の手法で手順木を構築する処理である。
【0058】
[非特許文献2]S. Qi et al. Generalized Earley Parser: Bridging Symbolic Grammars and Sequence Data for Future Prediction. ICML2018.
【0059】
非特許文献2ではフレームごとにクラス確率が得られることを想定しているが、本実施形態では動作クラス確率をセグメントごとに算出するように変更して適用する。
【0060】
ステップS130で、CPU11は、動作クラス算出部28として、学習用映像データベース20から学習用映像セグメント群を受け取る。
【0061】
ステップS132で、CPU11は、動作クラス算出部28として、クラスタリングデータベース24からクラスタリング情報を受け取る。
【0062】
ステップS134で、CPU11は、動作クラス算出部28として、学習用映像セグメント群から学習用映像セグメントを取り出す。
【0063】
ステップS136で、CPU11は、動作クラス算出部28として、動作異常判定モデルに学習用映像セグメントを入力して動作クラス確率を算出する。
【0064】
ステップS138で、CPU11は、動作クラス算出部28として、全ての学習用映像セグメントについて上記ステップS134、S136を実施したかを判定する。上記ステップS134、S136を実施していない学習用映像セグメントが存在する場合、CPU11は、ステップS134へ戻り、当該学習用映像セグメントについて処理を繰り返す。一方、全ての学習用映像セグメントについて上記ステップS134、S136を実施した場合には、CPU11は、ステップS140へ移行する。
【0065】
ステップS140で、CPU11は、動作クラス算出部28として、各学習用映像セグメントの動作クラス確率を手順木構築部30へと出力する。
【0066】
ステップS142で、CPU11は、手順木構築部30として、各学習用映像セグメントの動作クラス確率を用いて手順木を構築する。
【0067】
ステップS144で、CPU11は、手順木構築部30として、手順木を手順木データベース32に格納する。
【0068】
<第1実施形態に係る異常判定装置の作用>
次に、第1実施形態に係る異常判定装置50の作用について説明する。
【0069】
図7は、異常判定装置50による異常判定処理の流れを示すフローチャートである。CPU11がROM12又はストレージ14から異常判定プログラムを読み出して、RAM13に展開して実行することにより、異常判定処理が行なわれる。また、異常判定装置50に、人の動作を表す映像データが入力される。
【0070】
ステップS150で、CPU11は、映像データの各映像セグメントを動作異常判定部62に入力する。
【0071】
ステップS152で、CPU11は、動作異常判定部62として、各映像セグメントについて、動作異常判定モデルを用いて動作異常を判定すると同時に動作クラスタに分類する。
【0072】
ステップS154で、CPU11は、動作異常判定部62として、動作異常判定モデルから出力された、各映像セグメントについて動作異常ラベルを表示部16により出力すると同時に動作クラス確率を手順分類部66に出力する。
【0073】
ステップS156で、CPU11は、手順分類部66として、手順木データベース64から手順木を抽出する。
【0074】
ステップS158で、CPU11は、手順分類部66として、各映像セグメントについて、動作クラス確率と手順木を用いて、手順を分類し、手順確率を手順異常判定部68に出力する。
【0075】
ステップS160で、CPU11は、手順異常判定部68として、各映像セグメントについての手順確率から手順異常ラベルを算出し、異常判定処理を終了する。
【0076】
上記ステップS150~S154の処理における詳細動作を
図8に示す。
図8に示す動作は、映像セグメントごとに繰り返し行われる。
【0077】
ステップS170で、CPU11は、映像セグメントを動作異常判定部62に入力する。
【0078】
ステップS172で、CPU11は、動作異常判定部62として、映像セグメントを動作異常判定モデルに入力する。ここで動作異常判定モデルとは、ニューラルネットワーク等の分類モデルである。具体的には、分類のためのK個の動作クラスタの所属確率である動作クラス確率を表現するK次元のベクトルを出力するソフトマックス出力と、0から1の値をとる動作異常スコアを出力するシグモイド出力とを行うように構成されたニューラルネットワークを、動作異常判定モデルとして用いる。
【0079】
ステップS174で、CPU11は、動作異常判定部62として、動作異常判定モデルを用いて動作異常スコアと動作クラス確率を算出する。
【0080】
ステップS176で、CPU11は、動作異常判定部62として、動作異常スコアから動作異常ラベルを判定する。動作異常ラベルは、動作異常スコアを特定の閾値(例えば、0.5)と比較することにより、異常であるか正常であるかを判定することで得られる。
【0081】
ステップS178で、CPU11は、動作異常判定部62として、動作異常ラベルを出力する。
【0082】
ステップS180で、CPU11は、動作異常判定部62として、動作クラス確率を手順分類部66に出力する。
【0083】
上記ステップS156、S158の処理における詳細動作を
図9に示す。
図9に示す動作は、映像セグメントごとに繰り返し行われる。
【0084】
ステップS190で、CPU11は、動作クラス確率を手順分類部66に入力する。ここで、手順分類部66は、映像の開始からの各映像セグメントの動作クラス確率(時刻t-1までの各時刻の動作クラス確率)を保持しており、その過去の動作クラス確率と時刻tの動作クラス確率を用いて手順確率が算出される。ここでL個の手順があるとして、手順確率は、そのL個の手順のどの手順クラスに該当するかを確率で表す。手順や手順確率は具体的には、非特許文献2に記載の手法で算出する。
【0085】
ステップS192で、CPU11は、手順分類部66として、動作クラス確率と手順木とを用いて時刻tの手順確率を算出すると共に、時刻tの動作がどの手順に分類されるかを示す手順クラスを求める。
【0086】
ステップS194で、CPU11は、手順分類部66として、時刻t-1、時刻tの手順確率及び手順クラスと、手順木より予測される時刻t+1の手順確率及び手順クラスを、手順異常判定部68に出力する。
【0087】
上記ステップS160の処理における詳細動作を
図10に示す。
図10に示す動作は、映像セグメントごとに繰り返し行われる。
【0088】
ステップS200で、CPU11は、時刻tの手順確率及び手順クラスを手順異常判定部68に入力する。
【0089】
ステップS202で、CPU11は、手順異常判定部68として、時刻tの手順クラスが時刻t-1、時刻t+1の手順クラスと同一かどうかを判定する。時刻tの手順クラスが時刻t-1、時刻t+1の手順クラスと同一である場合、CPU11は、ステップS206へ移行する。一方、時刻tの手順クラスが時刻t-1、時刻t+1の手順クラスと同一でない場合、CPU11は、ステップS204へ移行する。時刻t-1、時刻t+1の手順クラスが同一でない場合、CPU11は、ステップS206へ移行する。
【0090】
ステップS204で、CPU11は、手順異常判定部68として、時刻tのみの手順クラスが異なるかどうかを判定する。時刻t-1、時刻t+1の手順クラスが同一であり、時刻tのみ手順クラスが異なる場合、CPU11は、ステップS208へ移行する。
【0091】
一方、ステップS206で、CPU11は、手順異常判定部68として、時刻tの手順クラスの手順確率が閾値以下かどうかを判定する。時刻tの手順クラスの手順確率が閾値以下である場合、CPU11は、ステップS208へ移行する。一方、時刻tの手順クラスの手順確率が閾値より大きい場合には、CPU11は、ステップS210へ移行する。
【0092】
ステップS208で、CPU11は、手順異常判定部68として、手順が異常であることを示す手順異常ラベルを出力して終了する。ステップS210で、CPU11は、手順異常判定部68として、手順が正常であることを示す手順異常ラベルを出力して終了する。
【0093】
以上説明したように、第1実施形態に係る異常判定装置は、人の動作を表す映像データを、動作クラスタに分類すると共に、人の動作が異常であるか否かを判定し、動作クラスタの分類結果と手順木とに基づいて、人の動作を手順に分類し、手順の分類結果に基づいて、人の動作を含む手順が異常であるか否かを判定する。これにより、手順の異常及び動作自体の異常を精度よく判定することができる。
【0094】
また、手順と動作の関係をパース木により表現することで、少なくとも一つの動作を表す手順と動作の異常を同時に検出できる。また、ある作業の撮影された映像の一定区間でひとまとまりにできる手順単位での異常行動の検出が可能となる。
【0095】
[第2実施形態]
次に、第2実施形態について説明する。なお、第1実施形態と同様の構成となる部分については、同一符号を付して説明を省略する。
【0096】
第2実施形態では、K次元のベクトルである動作クラス確率を、L次元のベクトルに変換することにより、手順に分類する点が、第1実施形態と異なっている。
【0097】
<第2実施形態の概要>
時刻tに絞って考えると、手順木を、動作クラス確率であるK次元のベクトルをL次元のベクトルへと変換する変換器に変更できる。例えば、非特許文献3の変換器を用いてL次元のベクトルへと変換する方法を用いることができる。
【0098】
[非特許文献3]A. Vaswani et al. Attention is All you Need. NeurIPS2017.
【0099】
その際に、L個の手順クラスを事前の用意し、手順クラスに分類可能にしておく必要がある。具体的には、動作クラス確率を表すK次元のベクトルをL個の手順クラスに分類できるようにk-means等のクラスタ手法を事前に実施し、L個の中心ベクトルを手順クラスとして得ておく。ただ、この場合、時刻t-1、時刻t+1の考慮は別途行う必要がある。具体的には、変換器が、時刻t-1の動作クラス確率であるK次元ベクトルと時刻tの動作クラス確率であるK次元のベクトルの両方を入力として、時刻tのL次元ベクトルを出力するネットワークと、時刻t-1のL次元ベクトル及び時刻tのL次元ベクトルを入力として時刻t+1のL次元ベクトルを出力するネットワークを含むように構成する。
【0100】
上記第1実施形態の手順木は時刻0から時刻tまでの動作クラス確率を入力とすることができるが、第2実施形態の変換器では周辺時刻のみの動作クラス確率を入力としている。そこで、非特許文献4のようにLSTM(Long Short-Term Memory)等を用いて、より長期のコンテキスト情報を変換器に入力するようにしても良い。
【0101】
[非特許文献4]S. Hochreiter and J. Schmidhuber. Long Short-Term Memory. Neural Computation, volume 9, 1997.
【0102】
<第2実施形態に係る学習装置の構成>
第2実施形態の学習装置は、上記第1実施形態の学習装置10と同様であるため、同一符号を付して説明を省略する。
【0103】
学習装置10の手順木構築部30は、各学習用映像セグメントについての動作クラス確率に基づいて、K次元のベクトルである動作クラス確率を、L次元のベクトルに変換する変換器を手順木として構築する。
【0104】
具体的には、各学習用映像セグメントについての動作クラス確率に基づいて、クラスタリング手法により、L個の手順クラスの中心ベクトルを求め、K次元のベクトルである動作クラス確率を、L次元のベクトルに変換する変換器を手順木として構築する。
【0105】
<第2実施形態に係る異常判定装置の構成>
第2実施形態の異常判定装置は、上記第1実施形態の異常判定装置50と同様であるため、同一符号を付して説明を省略する。
【0106】
異常判定装置50の手順分類部66は、学習装置10により構築された手順木である変換器を用いて、K次元のベクトルである動作クラス確率を、L次元のベクトルである手順確率に変換する。
【0107】
なお、第2実施形態に係る学習装置10及び異常判定装置50の他の構成及び作用については、第1実施形態と同様であるため、説明を省略する。
【0108】
<変形例>
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【0109】
例えば、学習装置と異常判定装置とを別々の装置として構成する場合を例に説明したが、これに限定されるものではなく、学習装置と異常判定装置とを一つの装置として構成してもよい。
【0110】
また、上記各実施形態でCPUがソフトウェア(プログラム)を読み込んで実行した各種処理を、CPU以外の各種のプロセッサが実行してもよい。この場合のプロセッサとしては、GPU(Graphics Processing Unit)、FPGA(Field-Programmable Gate Array)等の製造後に回路構成を変更可能なPLD(Programmable Logic Device)、及びASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が例示される。また、学習処理及び異常判定処理を、これらの各種のプロセッサのうちの1つで実行してもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGA、及びCPUとFPGAとの組み合わせ等)で実行してもよい。また、これらの各種のプロセッサのハードウェア的な構造は、より具体的には、半導体素子等の回路素子を組み合わせた電気回路である。
【0111】
また、上記各実施形態では、学習プログラム及び異常判定プログラムがストレージ14に予め記憶(インストール)されている態様を説明したが、これに限定されない。プログラムは、CD-ROM(Compact Disk Read Only Memory)、DVD-ROM(Digital Versatile Disk Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の非一時的(non-transitory)記憶媒体に記憶された形態で提供されてもよい。また、プログラムは、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
【0112】
以上の実施形態に関し、更に以下の付記を開示する。
【0113】
(付記項1)
映像データの特徴に基づく人の動作に関する複数の動作クラスタを記憶するクラスタリングデータベースと、
少なくとも一つの動作を含む複数の手順の関係を表す手順木であって、前記複数の手順の各々についての前記動作クラスタを格納した手順木を記憶する手順木データベースとを含む異常判定装置であって、
メモリと、
前記メモリに接続された少なくとも1つのプロセッサと、
を含み、
前記プロセッサは、
人の動作を表す映像データを、前記動作クラスタに分類すると共に、前記人の動作が異常であるか否かを判定し、
前記動作クラスタの分類結果と前記手順木とに基づいて、前記人の動作を前記手順に分類し、
前記手順の分類結果に基づいて、前記人の動作を含む前記手順が異常であるか否かを判定する
ように構成される異常判定装置。
【0114】
(付記項2)
映像データの特徴に基づく人の動作に関する複数の動作クラスタを記憶するクラスタリングデータベースと、
少なくとも一つの動作を含む複数の手順の関係を表す手順木であって、前記複数の手順の各々についての前記動作クラスタを格納した手順木を記憶する手順木データベースとを含むコンピュータによって、異常判定処理を実行するように実行可能なプログラムを記憶した非一時的記憶媒体であって、
前記異常判定処理は、
人の動作を表す映像データを、前記動作クラスタに分類すると共に、前記人の動作が異常であるか否かを判定し、
前記動作クラスタの分類結果と前記手順木とに基づいて、前記人の動作を前記手順に分類し、
前記手順の分類結果に基づいて、前記人の動作を含む前記手順が異常であるか否かを判定する
非一時的記憶媒体。
【符号の説明】
【0115】
10 学習装置
11 CPU
14 ストレージ
15 入力部
16 表示部
20 学習用映像データベース
22 クラスタリング部
24、60 クラスタリングデータベース
26 動作異常判定モデル学習部
28 動作クラス算出部
30 手順木構築部
32、64 手順木データベース
50 異常判定装置
62 動作異常判定部
66 手順分類部
68 手順異常判定部