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

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

▶ 日本電気株式会社の特許一覧

特開2024-172358異常解析装置、異常解析方法、及びプログラム
<>
  • 特開-異常解析装置、異常解析方法、及びプログラム 図1
  • 特開-異常解析装置、異常解析方法、及びプログラム 図2
  • 特開-異常解析装置、異常解析方法、及びプログラム 図3
  • 特開-異常解析装置、異常解析方法、及びプログラム 図4
  • 特開-異常解析装置、異常解析方法、及びプログラム 図5
  • 特開-異常解析装置、異常解析方法、及びプログラム 図6
  • 特開-異常解析装置、異常解析方法、及びプログラム 図7
  • 特開-異常解析装置、異常解析方法、及びプログラム 図8
  • 特開-異常解析装置、異常解析方法、及びプログラム 図9
  • 特開-異常解析装置、異常解析方法、及びプログラム 図10
  • 特開-異常解析装置、異常解析方法、及びプログラム 図11
  • 特開-異常解析装置、異常解析方法、及びプログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024172358
(43)【公開日】2024-12-12
(54)【発明の名称】異常解析装置、異常解析方法、及びプログラム
(51)【国際特許分類】
   G06T 7/20 20170101AFI20241205BHJP
   G06T 7/00 20170101ALI20241205BHJP
【FI】
G06T7/20 300Z
G06T7/00 350B
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023090014
(22)【出願日】2023-05-31
(71)【出願人】
【識別番号】000004237
【氏名又は名称】日本電気株式会社
(74)【代理人】
【識別番号】100103894
【弁理士】
【氏名又は名称】家入 健
(72)【発明者】
【氏名】石原 賢太
【テーマコード(参考)】
5L096
【Fターム(参考)】
5L096CA04
5L096HA02
5L096HA11
5L096KA04
(57)【要約】
【課題】行動の異常の解析を行う新たな技術を提供する。
【解決手段】異常解析装置2000は、第1ビデオフレーム列10から、所定の複数の行動のまとまりであるサイクルを表す第2ビデオフレーム列30を検出する。異常解析装置2000は、第2ビデオフレーム列30によって表される各行動の行動時間を特定する。異常解析装置2000は、第2ビデオフレーム列30によって表される行動の順序と各行動の行動時間とに基づいて、第2ビデオフレーム列30によって表される行動の異常の解析を行う。
【選択図】図2
【特許請求の範囲】
【請求項1】
第1ビデオフレーム列から、所定の複数の行動のまとまりであるサイクルを表す第2ビデオフレーム列を検出する検出手段と、
前記第2ビデオフレーム列によって表される各行動の行動時間を特定する特定手段と、
前記第2ビデオフレーム列によって表される行動の順序と各行動の行動時間とに基づいて、前記第2ビデオフレーム列によって表される行動の異常の解析を行う解析手段と、を有する異常解析装置。
【請求項2】
前記解析手段は、前記第2ビデオフレーム列によって表される行動の順序と前記サイクルの定義における行動の順序との乖離度合い、及び前記第2ビデオフレーム列によって表される各行動について特定された前記行動時間に基づいて、前記第2ビデオフレーム列によって表される行動の異常度の算出、又は、前記第2ビデオフレーム列によって表される行動が異常であるか否かを判定を行う、請求項1に記載の異常解析装置。
【請求項3】
前記解析手段は、
ビデオフレーム列によって表される行動の順序と前記サイクルの定義における行動の順序との乖離度合い、及び、そのビデオフレーム列によって表される各行動について特定された前記行動時間が入力されたことに応じて、そのビデオフレーム列によって表される行動の異常度を出力するように訓練されたモデルを有し、
前記第2ビデオフレーム列によって表される行動の順序と前記サイクルの定義における行動の順序との乖離度合い、及び前記第2ビデオフレーム列によって表される各行動について特定された前記行動時間を、前記モデルに入力することで、前記第2ビデオフレーム列によって表される行動の異常度を算出する、請求項2に記載の異常解析装置。
【請求項4】
前記解析手段は、
過去の複数のビデオフレーム列に基づいて、複数の行動それぞれについて、その行動の前記行動時間の統計値を算出し、
前記算出された統計値と、前記第2ビデオフレーム列によって表される各行動について特定された前記行動時間とに基づいて、前記行動時間の異常度を算出する、請求項2に記載の異常解析装置。
【請求項5】
前記特定手段は、前記第2ビデオフレーム列によって表される各行動について、その行動が行われている時間である実行動時間と、その行動が中断されている時間である中断時間とを算出し、
前記解析手段は、
過去の複数のビデオフレーム列に基づいて、複数の行動それぞれについて、前記実行動時間の統計値と前記中断時間の統計値とを算出し、
前記算出された前記実行動時間の統計値及び前記算出された前記中断時間の統計値、並びに、前記第2ビデオフレーム列によって表される各行動について特定された前記実行動時間及び前記中断時間に基づいて、前記第2ビデオフレーム列について、前記実行動時間の異常度及び前記中断時間の異常度を算出する、請求項3に記載の異常解析装置。
【請求項6】
前記検出手段は、
前記サイクルの先頭における1つ以上の行動と、前記サイクルの末尾における1つ以上の行動とが少なくとも含まれるサイクル定義情報を取得し、
前記第1ビデオフレーム列から、互いに同一の行動を表す連続するビデオフレームのまとまりを複数検出することで、前記第1ビデオフレームによって表される行動の順列を生成し、
前記サイクル定義情報を用いて、前記生成した行動の順列から前記サイクルの先頭の位置及び末尾の位置を検出することにより、前記第1ビデオフレーム列から前記サイクルの先頭の位置及び末尾の位置を検出する、請求項1から5いずれか一項に記載の異常解析装置。
【請求項7】
前記サイクル定義情報は、前記サイクルの先頭を表す行動の順列を含み、
前記検出手段は、前記第1ビデオフレームによって表される行動の順列から、前記サイクルの先頭を表す行動の順列に含まれる複数の行動を、前記サイクル定義情報に示される順序で検出することにより、前記サイクルの先頭の位置を検出する、請求項6に記載の異常解析装置。
【請求項8】
前記サイクル定義情報は、前記サイクルの末尾を表す行動を複数含み、
前記検出手段は、前記第1ビデオフレームによって表される行動の順列のうち、前記サイクルの先頭の位置よりも後の部分から、前記サイクルの末尾を表す行動を所定個以上検出し、かつ、当該所定個の行動が検出された後の位置から、前記サイクルの末尾を表す行動以外の行動を検出することにより、前記サイクルの末尾の位置を検出する、請求項6に記載の異常解析装置。
【請求項9】
第1ビデオフレーム列から、所定の複数の行動のまとまりであるサイクルを表す第2ビデオフレーム列を検出する検出ステップと、
前記第2ビデオフレーム列によって表される各行動の行動時間を特定する特定ステップと、
前記第2ビデオフレーム列によって表される行動の順序と各行動の行動時間とに基づいて、前記第2ビデオフレーム列によって表される行動の異常の解析を行う解析ステップと、を有する、コンピュータによって実行される異常解析方法。
【請求項10】
第1ビデオフレーム列から、所定の複数の行動のまとまりであるサイクルを表す第2ビデオフレーム列を検出する検出ステップと、
前記第2ビデオフレーム列によって表される各行動の行動時間を特定する特定ステップと、
前記第2ビデオフレーム列によって表される行動の順序と各行動の行動時間とに基づいて、前記第2ビデオフレーム列によって表される行動の異常の解析を行う解析ステップと、をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、異常解析装置、異常解析方法、及びプログラムに関する。
【背景技術】
【0002】
行動が撮像されている映像から、行動の異常を検出する技術が開発されている。例えば特許文献1は、映像データから生成された行動ラベル群を文ベクトルに変換し、生成した文ベクトルと、予め定められている手順文との類似度を算出することにより、行動の異常を判定する技術を開示する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2023-012795号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1では、行動の順序のみに着目して、行動の異常が判定されている。本開示はこの課題に鑑みてなされたものであり、その目的の一つは、行動の異常の解析を行う新たな技術を提供することである。
【課題を解決するための手段】
【0005】
本開示の異常解析装置は、第1ビデオフレーム列から、所定の複数の行動のまとまりであるサイクルを表す第2ビデオフレーム列を検出する検出手段と、前記第2ビデオフレーム列によって表される各行動の行動時間を特定する特定手段と、前記第2ビデオフレーム列によって表される行動の順序と各行動の行動時間とに基づいて、前記第2ビデオフレーム列によって表される行動の異常の解析を行う解析手段と、を有する。
【0006】
本開示の異常解析方法は、コンピュータによって実行される。当該方法は、第1ビデオフレーム列から、所定の複数の行動のまとまりであるサイクルを表す第2ビデオフレーム列を検出する検出ステップと、前記第2ビデオフレーム列によって表される各行動の行動時間を特定する特定ステップと、前記第2ビデオフレーム列によって表される行動の順序と各行動の行動時間とに基づいて、前記第2ビデオフレーム列によって表される行動の異常の解析を行う解析ステップと、を有する。
【0007】
本開示のプログラムは、本開示の異常解析方法をコンピュータに実行させる。
【発明の効果】
【0008】
本開示によれば、行動の異常を解析する新たな技術が提供される。
【図面の簡単な説明】
【0009】
図1】異常解析装置によって扱われる第1ビデオフレーム列を例示する図である。
図2】異常解析装置の動作の概要を例示する図である。
図3】異常解析装置の機能構成を例示するブロック図である。
図4】異常解析装置を実現するコンピュータのハードウエア構成を例示するブロック図である。
図5】異常解析装置によって実行される処理の流れを例示するフローチャートである。
図6】クラス情報を例示する図である。
図7】サイクル定義情報を例示する図である。
図8】第1ビデオフレーム列と、その第1ビデオフレーム列から生成される対象列クラスとを例示する図である。
図9】対象クラス列からサイクルを検出する処理の流れを例示するフローチャートである。
図10】対象クラス列からサイクルを検出する処理の流れを例示するフローチャートである。
図11】行動区間を例示する図である。
図12】第2ビデオフレーム列の特徴ベクトルを例示する図である。
【発明を実施するための形態】
【0010】
以下では、本開示の実施形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。また、特に説明しない限り、所定値や閾値などといった予め定められている値は、その値を利用する装置からアクセス可能な記憶装置などに予め格納されている。さらに、特に説明しない限り、記憶部は、1つ以上の任意の数の記憶装置によって構成される。
【0011】
<概要>
図1は、異常解析装置によって扱われる第1ビデオフレーム列10を例示する図である。第1ビデオフレーム列10は、時系列の複数のビデオフレーム12で構成される。別の表現では、第1ビデオフレーム列10は、複数のビデオフレーム12が時系列の順に(フレーム番号の昇順に)並べられたフレーム列である。各ビデオフレーム12は、複数のクラスのうちの1つに属するか、又は、いずれのクラスにも属さない。
【0012】
第1ビデオフレーム列10は、複数のチャンク20を含む。チャンク20は、1)互いに同一のクラスに属する複数の連続するビデオフレーム12で構成されるフレーム列、又は、2)いずれのクラスにも属さない複数の連続するビデオフレーム12で構成されるフレーム列である。
【0013】
例えば図1の第1ビデオフレーム列10は、クラス C1 に属する複数のビデオフレーム12で構成されるチャンク20-1、クラス C2 に属する複数のビデオフレーム12で構成されるチャンク20-2、いずれのクラスにも属さない複数のビデオフレーム12で構成されるチャンク20-3、及びクラス C3 に属する複数のビデオフレーム12で構成されるチャンク20-4を、この順に有する。以下、クラスCに属する複数のビデオフレーム12で構成されるチャンクのことを、「クラスCに属するチャンク」や「クラスCのチャンク」とも表記する。
【0014】
ここで、第1ビデオフレーム列10は少なくとも、互いに異なるクラスに属する3つのチャンク20を含む。第1ビデオフレーム列10は、同一のクラスに属するチャンク20を複数含んでもよい。例えば、第1ビデオフレーム列10に4つのチャンク20が含まれており、それら3つのチャンク20が順に、クラス C1、C2、C3、及び C1 に属するケースが存在しうる。
【0015】
第1ビデオフレーム列10は、複数の行動が行われている状況をカメラで撮影することによって生成されたビデオデータの全体、又はその一部である。クラスは、それぞれ異なる種類の行動に割り当てられる。行動は、例えば、工場や店舗などで行われる作業である。
【0016】
例えば、3つの行動 P1、P2、及び P3 が順に行われている様子がビデオカメラを用いて撮影され、当該撮影によって得られたビデオデータが第1ビデオフレーム列10として扱われるとする。また、行動 P1、P2、及び P3 にそれぞれ、クラス C1、C2、及び C3 が割り当てられるとする。
【0017】
この場合、第1ビデオフレーム列10は、行動 P1 を表すビデオフレーム列、行動 P2 を表すビデオフレーム列、及び行動 P3 を表すビデオフレーム列を含む。行動 P1 を表すビデオフレーム列は、クラス C1 のチャンク20である。また、行動 P2 を表すビデオフレーム列は、クラス C2 のチャンク20である。そして、行動 P3 を表すビデオフレーム列は、クラス C3 のチャンク20である。
【0018】
なお、第1ビデオフレーム列10は、行動 P1、P2、及び P3 のいずれも表さないビデオフレーム列を含みうる。このビデオフレーム列は、図1のチャンク20-3のように、いずれのクラスにも属さないチャンク20である。以下、いずれのクラスにも属さないチャンク20は、「無所属チャンク」とも呼ばれる。
【0019】
以下、特に説明しない限り、本開示で説明される例において、行動 Pi にはクラス Ci が割り当てられるものとする。
【0020】
図2は、異常解析装置2000の動作の概要を例示する図である。ここで、図2は、異常解析装置2000の概要の理解を容易にするための図であり、異常解析装置2000の動作は、図2に示したものに限定されない。
【0021】
異常解析装置2000は、第1ビデオフレーム列10から、サイクルを表すと推定されるビデオフレーム列(以下、第2ビデオフレーム列30)を検出する。サイクルとは、所定の一連の行動のまとまりを意味する。
【0022】
例えば、「最初に行動 P1 を行い、次に行動 P2 を行い、最後に行動 P3 を行う。」という一連の行動が、サイクルとして定義される。この場合、このサイクルは、(C1,C2,C3) というクラスの順列(以下、クラス列)で定義することができる。なお、クラスは行動の種類を表しているため、クラスの順列は、行動の順列とも表現できる。以下、このように或るサイクルを定義するクラス列は、そのサイクルの「定義列」と呼ばれる。
【0023】
異常解析装置2000は、第2ビデオフレーム列30によって表される複数の行動それぞれの行動時間を特定する。そして、異常解析装置2000は、第2ビデオフレーム列30によって表される複数の行動の順序及び各行動の行動時間とに基づいて、第2ビデオフレーム列30によって表される行動の異常解析を行う。行動の異常解析は、例えば、行動の異常度の算出や、行動が異常であるか否かの判定などである。
【0024】
<作用効果の例>
前述したように、特許文献1では、行動の順序のみに着目して、行動の異常が判定されている。この点、本開示の異常解析装置2000によれば、行動の順序だけでなく、行動時間を考慮して、行動の異常解析が行われる。よって、本開示の異常解析装置2000によれば、行動の異常の解析を行う新たな技術が開示される。
【0025】
また、特許文献1では、所定の一連の行動を映像データから検出することについては言及されていない。この点、本開示の異常解析装置2000によれば、第1ビデオフレーム列10から、所定の一連の行動であるサイクルを表す第2ビデオフレーム列30が検出される。そして、当該第2ビデオフレーム列30を対象として、行動の異常解析が行われる。そのため、本開示の異常解析装置2000によれば、行動の異常を、サイクルという行動のまとまりごとに解析することができる。
【0026】
行動の異常をサイクル単位で解析することによれば、例えば、行動の異常をより高い精度で解析できるという利点がある。例えば、1つのサイクルが一連の作業のまとまりであるとする。そして、サイクルとサイクルの間に、作業者が休憩を取るとする。
【0027】
この状況において、作業者が所定の順序や標準的な時間で行わなければならない行動は、サイクルに含まれる行動である。休憩中の各行動は、所定の順序や標準的な時間で行われなくてもよい。
【0028】
この状況において異常解析装置2000を利用すると、作業者によって行われる一連の作業については自動的に異常解析の対象として扱われる一方で、休憩中の行動については自動的に異常解析の対象から除外される。このように、異常解析装置2000によれば、異常解析の対象とする必要のない行動を表すビデオフレーム列が、異常解析の対象から自動的に除外されるため、行動の異常解析をより高い精度で行うことができる。
【0029】
以下、本実施形態の異常解析装置2000について、より詳細に説明する。
【0030】
<機能構成の例>
図3は、異常解析装置2000の機能構成を例示する第1のブロック図である。異常解析装置2000は、検出部2020、特定部2040、及び解析部2060を有する。検出部2020は、第1ビデオフレーム列10から第2ビデオフレーム列30を検出する。特定部2040は、第2ビデオフレーム列30によって表される複数の行動それぞれの行動時間を特定する。解析部2060は、行動の順序と各行動の行動時間とに基づいて、第2ビデオフレーム列30によって表される行動の異常解析を行う。
【0031】
<ハードウエア構成の例>
異常解析装置2000の各機能構成部は、各機能構成部を実現するハードウエア(例:ハードワイヤードされた電子回路など)で実現されてもよいし、ハードウエアとソフトウエアとの組み合わせ(例:電子回路とそれを制御するプログラムの組み合わせなど)で実現されてもよい。以下、異常解析装置2000の各機能構成部がハードウエアとソフトウエアとの組み合わせで実現される場合について、さらに説明する。
【0032】
図4は、異常解析装置2000を実現するコンピュータ1000のハードウエア構成を例示するブロック図である。コンピュータ1000は、任意のコンピュータである。例えばコンピュータ1000は、PC(Personal Computer)やサーバマシンなどといった、据え置き型のコンピュータである。その他にも例えば、コンピュータ1000は、スマートフォンやタブレット端末などといった可搬型のコンピュータである。コンピュータ1000は、異常解析装置2000を実現するために設計された専用のコンピュータであってもよいし、汎用のコンピュータであってもよい。
【0033】
例えば、コンピュータ1000に対して所定のアプリケーションをインストールすることにより、コンピュータ1000で、異常解析装置2000の各機能が実現される。上記アプリケーションは、異常解析装置2000の各機能構成部を実現するためのプログラムで構成される。なお、上記プログラムの取得方法は任意である。例えば、当該プログラムが格納されている記憶媒体(DVD ディスクや USB メモリなど)から、当該プログラムを取得することができる。その他にも例えば、当該プログラムが格納されている記憶装置を管理しているサーバ装置から、当該プログラムをダウンロードすることにより、当該プログラムを取得することができる。
【0034】
コンピュータ1000は、バス1020、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120を有する。バス1020は、プロセッサ1040、メモリ1060、ストレージデバイス1080、入出力インタフェース1100、及びネットワークインタフェース1120が、相互にデータを送受信するためのデータ伝送路である。ただし、プロセッサ1040などを互いに接続する方法は、バス接続に限定されない。
【0035】
プロセッサ1040は、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、又は FPGA(Field-Programmable Gate Array)などの種々のプロセッサである。メモリ1060は、RAM(Random Access Memory)などを用いて実現される主記憶装置である。ストレージデバイス1080は、ハードディスク、SSD(Solid State Drive)、メモリカード、又は ROM(Read Only Memory)などを用いて実現される補助記憶装置である。
【0036】
入出力インタフェース1100は、コンピュータ1000と入出力デバイスとを接続するためのインタフェースである。例えば入出力インタフェース1100には、キーボードなどの入力装置や、ディスプレイ装置などの出力装置が接続される。
【0037】
ネットワークインタフェース1120は、コンピュータ1000をネットワークに接続するためのインタフェースである。このネットワークは、LAN(Local Area Network)であってもよいし、WAN(Wide Area Network)であってもよい。
【0038】
ストレージデバイス1080は、異常解析装置2000の各機能構成部を実現するプログラム(前述したアプリケーションを実現するプログラム)を記憶している。プロセッサ1040は、このプログラムをメモリ1060に読み出して実行することで、異常解析装置2000の各機能構成部を実現する。
【0039】
異常解析装置2000は、1つのコンピュータ1000で実現されてもよいし、複数のコンピュータ1000で実現されてもよい。後者の場合において、各コンピュータ1000の構成は同一である必要はなく、それぞれ異なるものとすることができる。
【0040】
<処理の流れ>
図5は、異常解析装置2000によって実行される処理の流れを例示するフローチャートである。検出部2020は、第1ビデオフレーム列10を取得する(S102)。検出部2020は、第1ビデオフレーム列10から第2ビデオフレーム列30を検出する(S104)。特定部2040は、第2ビデオフレーム列30によって表される各行動の行動時間を特定する(S106)。解析部2060は、第2ビデオフレーム列30によって表される複数の行動の順序及び各行動の行動時間に基づいて、第2ビデオフレーム列30によって表される行動の異常解析を行う(S108)。
【0041】
<第1ビデオフレーム列10の取得:S102>
検出部2020は、第1ビデオフレーム列10を取得する(S102)。ここで、処理の対象とするビデオフレーム列を取得する方法には、様々な方法を採用することができる。例えば第1ビデオフレーム列10は、異常解析装置2000から取得可能な態様で、予め任意の記憶部に格納されている。この場合、検出部2020は、当該記憶部から第1ビデオフレーム列10を読み出すことにより、第1ビデオフレーム列10を取得する。
【0042】
その他にも例えば、検出部2020は、他の装置から送信された第1ビデオフレーム列10を受信することにより、第1ビデオフレーム列10を取得する。第1ビデオフレーム列10を送信する装置は、例えば、第1ビデオフレーム列10を生成した装置である。第1ビデオフレーム列10がビデオデータである場合、例えば検出部2020は、第1ビデオフレーム列10を生成したビデオカメラから、第1ビデオフレーム列10を取得する。
【0043】
ここで、第1ビデオフレーム列10は、その全てが一度に取得されてもよいし、複数回に分けて取得されてもよい。後者の場合、例えば検出部2020は、ビデオカメラによって生成されるビデオフレーム12を順次取得することで、第1ビデオフレーム列10を取得する。
【0044】
<<ビデオフレーム12のクラスの特定>>
異常解析装置2000は、各ビデオフレーム12が属するクラスを特定することで、第1ビデオフレーム列10をチャンク20に分割する。そのために、異常解析装置2000は、各ビデオフレーム12が属するクラスを特定できる必要がある。
【0045】
各ビデオフレーム12が属するクラスを特定する方法は、様々である。例えば異常解析装置2000は、各ビデオフレーム12が属するクラスを示す情報(以下、クラス情報)を取得する。
【0046】
例えばクラス情報は、第1ビデオフレーム列10に含まれる各ビデオフレーム12について、その識別情報(例えばフレーム番号)と、そのビデオフレーム12が属するクラスの識別情報との対応付けを示す。その他にも例えば、クラス情報は、第1ビデオフレーム列10に含まれる各チャンク20を特定する情報と、チャンク20のクラス情報とを対応づけて示す。チャンク20を特定する情報は、例えば、そのチャンク20の先頭のビデオフレーム12と末尾のビデオフレーム12のいずれか一方又は双方の識別情報である。
【0047】
図6は、クラス情報を例示する図である。テーブル200は、ビデオフレーム12ごとに、そのビデオフレーム12が属するクラスを示す。より具体的には、ビデオフレーム12の識別情報(フレーム識別情報202)に対応づけて、そのビデオフレーム12が属するクラスの識別情報(クラス識別情報204)を示す。
【0048】
テーブル300は、チャンク20ごとに、そのチャンク20が属するクラスを示す。より具体的には、各チャンク20について、先頭のビデオフレーム12の識別情報(先頭フレーム識別情報302)と末尾のビデオフレーム12の識別情報(末尾フレーム識別情報304)との組み合わせに対応づけて、そのチャンク20が属するクラスの識別情報(クラス識別情報306)を示す。
【0049】
クラス情報は、第1ビデオフレーム列10と一体となっている情報であってもよいし、第1ビデオフレーム列10とは別体となっている情報であってもよい。前者の場合、例えば、第1ビデオフレーム列10に含まれる各ビデオフレーム12に対して、そのビデオフレーム12が属するクラスの識別情報がメタデータとして付加されている。第1ビデオフレーム列10とクラス情報とが別体で構成されている場合、例えば検出部2020は、第1ビデオフレーム列10に加えて、その第1ビデオフレーム列10についてのクラス情報をさらに取得する。
【0050】
クラス情報を取得する方法は、第1ビデオフレーム列10を取得する方法と同様である。例えばクラス情報は、異常解析装置2000から取得可能な態様で、予め記憶部に格納されている。検出部2020は、この記憶部からクラス情報を読み出すことにより、クラス情報を取得する。その他にも例えば、異常解析装置2000は、他の装置(例えば、クラス情報を生成した装置)によって送信されるクラス情報を取得することにより、クラス情報を取得してもよい。
【0051】
異常解析装置2000は、クラス情報を用いずに、第1ビデオフレーム列10を解析することで、各ビデオフレーム12が属するクラスを特定してもよい。各ビデオフレームが属するクラスの特定は、例えば、ニューラルネットワークなどといった機械学習ベースのモデルを利用して実現することができる。以下、このモデルを「分類モデル」と呼ぶ。
【0052】
分類モデルは、ビデオフレーム列が入力されたことに応じ、そのビデオフレーム列を構成する各ビデオフレームに対して、所定の複数のクラスのうちの1つを割り当てるように構成される。ここで、ビデオフレームFに対してクラスCを割り当てることは、そのビデオフレームFがクラスCに属していることを意味する。異常解析装置2000は、この分類モデルに対して第1ビデオフレーム列10を入力することにより、第1ビデオフレーム列10を構成する各ビデオフレーム12のクラスを特定する。
【0053】
<第2ビデオフレーム列30の検出:S104>
検出部2020は、第1ビデオフレーム列10から第2ビデオフレーム列30を検出する(S104)。前述したように、第2ビデオフレーム列30は、サイクル(所定の一連の行動のまとまり)を表す。
【0054】
例えば検出部2020は、第1ビデオフレーム列10から、サイクルの先頭と末尾を検出する。そして、検出部2020は、第1ビデオフレーム列10のうち、サイクルの先頭から末尾までの全てのチャンク20で構成されるビデオフレーム列を、そのサイクルを表す第2ビデオフレーム列30として検出する。
【0055】
サイクルの先頭と末尾は、例えば、それぞれクラス列で定義される。例えばサイクル S1 の定義列が (C1,C3,C4,C7,C5,C2,C11,C8,C9) であるとする。また、サイクルの先頭と末尾がそれぞれ、先頭3つのクラス列と、末尾4つのクラス列で定義されるとする。
【0056】
この場合、サイクル S1 の先頭は、(C1,C3,C4) というクラス列で定義される。また、サイクル S1 の末尾は、(C2,C11,C8,C9) というクラス列で定義される。
【0057】
以下、サイクルの先頭を表すクラス列は、「先頭クラス列」とも表現される。また、サイクルの末尾を表すクラス列は、「末尾クラス列」とも表現される。
【0058】
先頭クラス列と末尾クラス列に含まれるクラスの数は、互いに同じ数であってもよいし、互いに異なる数であってもよい。以下、先頭クラス列の長さと末尾クラス列の長さはそれぞれ、Ns と Ne と表記される。
【0059】
Ns と Ne の一方又は双方は、1であってもよい。すなわち、先頭クラス列と末尾クラス列の一方又は双方は1つのクラスで構成されてもよい。
【0060】
検出部2020は、サイクルの定義を表す情報であるサイクル定義情報を利用する。図7は、サイクル定義情報を例示する図である。図7のサイクル定義情報400は、サイクル識別情報402及び定義列404という2つの列を有する。サイクル識別情報402は、サイクルの識別情報(例えば、各サイクルに割り当てられた番号や記号など)を示す。定義列404は、サイクルの定義列、すなわち、サイクルを構成する一連の行動を表すクラス列である。例えば図7のサイクル定義情報400の1行目は、サイクル S1 の定義列が (C1,C3,C4,C7,C5,C2,C11,C8,C9) であることを表す。
【0061】
サイクル定義情報400は、各サイクルについて、先頭クラス列と末尾クラス列の長さを示してもよい。このようにすることで、先頭クラス列の末尾クラス列の長さを、サイクルごとに定めることができる。
【0062】
サイクル定義情報400は、1つのサイクルを、複数の定義列と対応づけてもよい。このようにすることで、1つのサイクルについて、正常な行動の順序を複数定めることができる。よって、行動の順序に柔軟性を持たせることができる。
【0063】
第1ビデオフレーム列10からサイクルの先頭と末尾を検出するために、検出部2020は、第1ビデオフレーム列10をクラス列(以下、対象クラス列)に置き換える。対象クラス列は、第1ビデオフレーム列10に含まれる各チャンク20のクラスが時系列に並べられたものである。
【0064】
図8は、第1ビデオフレーム列10と、その第1ビデオフレーム列10から生成される対象クラス列40とを例示する図である。図8において、N は無所属チャンクを表す。
【0065】
検出部2020は、対象クラス列40に、無所属チャンクを含めなくてもよい。例えば図8の対象クラス列40は、無所属チャンクを含まない。
【0066】
ここで、対象クラス列40に無所属チャンクを含めない場合、対象クラス列40において、互いに同一のクラスが連続する可能性がある。例えば、(C2,C1,N,C1,C5) というクラス列から無所属チャンクを除くと、(C2,C1,C1,C5) となり、C1 が連続する。そこで検出部2020は、対象クラス列40において、連続する互いに同一のクラスを1つにまとめてもよい。例えば、(C2,C1,C1,C5) が、(C2,C1,C5) に変換される。
【0067】
例えば検出部2020は、1つ以上のサイクルそれぞれについて、対象クラス列40から、そのサイクルの先頭と末尾の検出を試みる。これにより、各サイクルについて、検出部2020は、第1ビデオフレーム列10からそのサイクルを表す第2ビデオフレーム列30の検出を試みる。図9及び図10は、対象クラス列40からサイクルを検出する処理の流れを例示するフローチャートである。
【0068】
ステップS202からS230はループ処理 L1 を構成する。ループ処理 L1 は、第1ビデオフレーム列10からの検出を試みる全てのサイクルについてそれぞれ実行される。
【0069】
S202において、検出部2020は、検出対象の全てのサイクルについて、ループ処理 L1 が既に実行されたか否かを判定する。検出対象の全てのサイクルについて、ループ処理 L1 が既に実行された場合、検出部2020は、サイクルの検出を終了する。
【0070】
検出対象のサイクルの中に、まだループ処理 L1 の対象とされていないサイクルが存在する場合、検出部2020は、まだループ処理 L1 の対象とされていないサイクルのうちの1つを選択する。ここで選択されるサイクルは、「サイクル Si」と表記される。その後、ステップS204が実行される。
【0071】
検出部2020は、サイクル定義情報400を用いて、サイクル Si の先頭クラス列を特定する(S204)。例えば、サイクルの先頭3つのクラスで構成されるクラス列が、サイクルの先頭クラス列として扱われるとする。この場合、検出部2020は、サイクル定義情報400に示されているサイクル Si の定義列404から、先頭の長さ3のクラス列を抽出することで、サイクル Si の先頭クラス列を特定する。
【0072】
S206において、検出部2020は、探索位置 j を1(対象クラス列40の先頭)に初期化する。
【0073】
ステップS208からS214はループ処理 L2 を構成する。ループ処理 L2 は、対象クラス列40からサイクル Si の先頭を検出するために行われる処理である。
【0074】
ループ処理 L2 は、所定の終了条件 E1 が満たされるまで繰り返し実行される。終了条件 E1 は、例えば、「位置 j が対象クラス列40の末尾に到達した」や「対象クラス列40において探索されていない部分の長さが、サイクル Si の長さより短い」などである。
【0075】
ステップS208において、検出部2020は、終了条件 E1 が満たされているか否かを判定する。終了条件 E1 が満たされている場合、フローチャートの処理はステップS230に進む。ステップS230はループ処理 L1 の終端であるため、フローチャートの処理はステップS202に進む。
【0076】
ステップS208において終了条件 E1 が満たされていない場合、検出部2020は、ステップS210を実行する。ステップS210において、検出部2020は、サイクル Si の先頭クラス列に基づいて、対象クラス列40の位置 j がサイクル Si の先頭の位置であるか否かを判定する。
【0077】
対象クラス列40の位置 j がサイクル Si の先頭の位置でない場合(S210:NO)、位置 j に1が加算された上で(S212)、ループ処理 L2 の現在のイテレーションが終了する(S214)。そして、フローチャートの処理は、ループ処理 L2 の先頭であるステップS208に進む。
【0078】
ステップS210において、対象クラス列40の位置 j がサイクル Si の先頭である場合(S210:YES)、検出部2020は、現在の j の値を、サイクル Si の先頭位置 Ps として記録する(S216)。なお、ステップS210において、対象クラス列40の位置 j がサイクル Si の先頭の位置である場合、ループ処理 L2 は終了する。
【0079】
その後、検出部2020は、対象クラス列40のうち、現在の位置 j より後の部分から、サイクル Si の末尾の検出を試みる。まず検出部2020は、サイクル定義情報400を用いて、サイクル Si の末尾クラス列を特定する(S218)。
【0080】
ステップS220からS228はループ処理 L3 を構成する。ループ処理 L3 は、対象クラス列40の位置 j 以降の部分から、サイクル Si の末尾を検出するために行われる処理である。ループ処理 L3 は、所定の終了条件 E2 が満たされるまで、繰り返し実行される。終了条件 E2 は、ループ処理 L2 の終了条件と同様である。
【0081】
ステップS220において、検出部2020は、終了条件 E2 が満たされているか否かを判定する。終了条件 E2 が満たされている場合、フローチャートの処理はステップS230に進む。ステップS230はループ処理 L1 の終端であるため、フローチャートの処理はステップS202に進む。
【0082】
一方、ステップS220において、終了条件 E2 が満たされていない場合、ステップS222が実行される。ステップS222において、検出部2020は、位置 j を基点として、対象クラス列40からサイクル Si の末尾を検出する。
【0083】
S222においてサイクル Si の末尾が検出されない場合(S224:NO)、位置 j に1が加算された上で(S226)、ループ処理 L3 の現在のイテレーションが終了する(S228)。そして、フローチャートの処理は、ループ処理 L3 の先頭であるステップS220に進む。
【0084】
ステップS222においてサイクル Si の末尾が検出された場合(S224:YES)、検出部2020は、第1ビデオフレーム列10から、サイクル Si を表す第2ビデオフレーム列30を抽出する(S232)。
【0085】
ここで、第1ビデオフレーム列10に複数のサイクルが含まれうる場合、S232の実行後、検出部2020は、再度S202から処理を開始する。ただしこの際、S206において探索位置 j に設定する初期値には、直近のS232において検出された第2ビデオフレーム列30の直後の位置が設定される。こうすることで、第1ビデオフレーム列10から第2ビデオフレーム列30が検出された後、第1ビデオフレーム列10の残りの部分について、さらにサイクルの検出が行われる。
【0086】
ここで、前述したように、サイクル定義情報400は、1つのサイクルについて複数の定義列を示しうる。サイクル Si の定義列が複数ある場合、特定部2040は、サイクル Si の先頭クラス列と末尾クラス列を、複数の定義列それぞれから生成する。そして、特定部2040は、複数の先頭クラス列それぞれを用いて、対象クラス列40から、サイクル Si の先頭の検出を試みる。同様に、特定部2040は、複数の末尾クラス列それぞれを用いて、対象クラス列40から、サイクル Si の末尾の検出を試みる。
【0087】
<<検出対象とするサイクル:S202>>
検出対象のサイクルは、サイクル定義情報400に示されている全てのサイクルであってもよいし、サイクル定義情報400に示されているサイクルのうちの一部であってもよい。後者の場合、検出対象とするサイクルを限定することにより、全てのサイクルを検出対象とする場合と比較し、第1ビデオフレーム列10から第2ビデオフレーム列30を検出処理を効率的かつ短い時間で行うことができる。
【0088】
検出部2020は、種々の方法により、第1ビデオフレーム列10によって表されうる1つ以上のサイクルを特定する。第1ビデオフレーム列10によって表されうるサイクルを特定する方法は様々である。例えば検出部2020は、第1ビデオフレーム列10によって表されうるサイクルを指定するユーザ入力を受け付けることで、第1ビデオフレーム列10によって表されうるサイクルを特定する。
【0089】
その他にも例えば、検出部2020は、第1ビデオフレーム列10に撮像されている場所に基づいて、第1ビデオフレーム列10によって表されうるサイクルを特定する。この方法によれば、行われる行動が場所によってそれぞれ異なりうる状況において、第1ビデオフレーム列10によって表されうるサイクルを特定することができる。
【0090】
この場合、場所と、その場所で行われうる1つ以上のサイクルとを対応づけた情報が、異常解析装置2000から取得可能な態様で、予め記憶部に格納される。検出部2020は、第1ビデオフレーム列10に撮像されている場所を特定し、特定した場所に対応づけられている1つ以上のサイクルを、第1ビデオフレーム列10によって表されうるサイクルとして特定する。
【0091】
第1ビデオフレーム列10に撮像されている場所を特定する方法は様々である。例えば第1ビデオフレーム列10に撮像されている場所は、異常解析装置2000のユーザによる入力によって、特定することができる。その他にも例えば、第1ビデオフレーム列10に撮像されている場所は、第1ビデオフレーム列10を生成したカメラの設置場所や撮像範囲に基づいて、特定することができる。
【0092】
検出部2020は、第1ビデオフレーム列10に撮像されている人物に基づいて、第1ビデオフレーム列10によって表されうるサイクルを特定してもよい。この方法によれば、例えば、行動者ごとに行いうる行動が異なる状況において、第1ビデオフレーム列10によって表されうるサイクルを特定することができる。
【0093】
この場合、人と、その人によって行われうる1つ以上のサイクルとを対応づけた情報が、異常解析装置2000から取得可能な態様で、予め記憶部に格納される。検出部2020は、第1ビデオフレーム列10に撮像されている人を特定し、特定した人に対応づけられている1つ以上のサイクルを、第1ビデオフレーム列10によって表されうるサイクルとして特定する。
【0094】
<<サイクルの先頭の検出:S210>>
検出部2020は、サイクル Si の先頭クラス列に基づいて、対象クラス列40の位置 j がサイクル Si の先頭の位置であるか否かを判定する(S210)。以下、この判定の方法について、具体例をいくつか記載する。
【0095】
例えば検出部2020は、対象クラス列40の位置 j のクラスが、先頭クラス列に含まれるクラスであるか否かを判定する。対象クラス列40の位置 j のクラスが、先頭クラス列に含まれるクラスである場合、検出部2020は、位置 j がサイクル Si の先頭の位置であると判定する。一方、対象クラス列40の位置 j のクラスが、先頭クラス列に含まれるクラスでない場合、検出部2020は、位置 j がサイクル Si の先頭の位置ではないと判定する。
【0096】
その他にも例えば、検出部2020は、対象クラス列40において、位置 j から始まる長さ Ns のクラス列が、サイクル Si の先頭クラス列と一致するか否かを判定する。位置 j から始まる長さ Ns のクラス列がサイクル Si の先頭クラス列と一致する場合、検出部2020は、位置 j がサイクル Si の先頭の位置であると判定する。一方、位置 j から始まる長さ Ns のクラス列がサイクル Si の先頭クラス列と一致しない場合、検出部2020は、位置 j がサイクル Si の先頭の位置ではないと判定する。
【0097】
その他にも例えば、検出部2020は、以下の条件1と条件2の双方が満たされる場合に、位置 j がサイクル Si の先頭であると判定する。
【0098】
(条件1)対象クラス列40において、位置 j から始まる長さ a(1<a<Ns)のクラス列に含まれるクラスがいずれも、サイクル Si の先頭クラス列に含まれるクラスである。
(条件2)当該長さ a のクラス列におけるクラスの前後関係が、サイクル Si の先頭クラス列におけるクラスの前後関係と一致する。
【0099】
例えば、サイクル Si の先頭クラス列が (C1,C3,C4) であり、a=2 であるとする。この先頭クラス列におけるクラスの前後関係は、「C1 は、C3 と C4 よりも前である」、「C3 は、C1 よりも後であり、C4 よりも前である」、及び、「C4 は、C1 と C3 よりも後である」という関係である。このような前後関係を満たす長さ2のクラスの列は、(C1,C3)、(C1,C4)、及び (C3,C4) である。
【0100】
このことから、対象クラス列40において、位置 i から始まる長さ2のクラス列が (C1,C3)、(C1,C4)、又は (C3,C4) である場合、検出部2020は、位置 j がサイクル Si の先頭の位置であると判定する。一方、対象クラス列40において、位置 i から始まる長さ2のクラス列が、これら3つのクラス列のいずれでもない場合、検出部2020は、位置 j がサイクル Si の先頭の位置でないと判定する。
【0101】
ここで、条件2の判定において、行動の抜けを許容しないようにしてもよい。サイクル Si の先頭クラス列が (C1,C3,C4) である場合、条件2を満たすクラス列が、(C1,C3) と (C3,C4) の2つになる。クラス列 (C1,C4) は、C1 と C4 の間にある C3 が抜けているため、条件2を満たさないと判定される。
【0102】
その他にも例えば、検出部2020は、前述した条件1のみが満たされる場合でも、位置 i がサイクル Si の先頭の位置であると判定してもよい。すなわち、検出部2020は、前述した条件1が満たされるか否かを判定し、条件1が満たされる場合には、位置 i がサイクル Si の先頭の位置であると判定する。一方、条件1が満たされない場合、検出部2020は、位置 i がサイクル Si の先頭の位置ではないと判定する。
【0103】
例えば、サイクル Si の先頭クラス列が (C1,C3,C4) であり、a=2 であるとする。検出部2020は、位置 j から始まる長さ2のクラス列が (C1,C3)、(C1,C4)、(C3,C1)、(C3,C4)、(C4,C1)、又は (C4,C3) である場合、位置 j がサイクル Si の先頭の位置であると判定する。
【0104】
前述した、対象クラス列40について、サイクル Si の先頭の位置を特定する種々の方法によれば、対象クラス列40について、サイクル Si の先頭の位置を精度良く検出することができる。そのため、異常解析装置2000によれば、第1ビデオフレーム列10からサイクル Si を精度良く検出することができる。
【0105】
<<サイクルの末尾の検出:S222>>
検出部2020は、位置 j を基点として、対象クラス列40からサイクル Si の末尾を検出する(S222)。以下、この検出方法について、具体例をいくつか記載する。
【0106】
例えば検出部2020は、対象クラス列40の位置 j のクラスが、末尾クラス列に含まれるクラスであるか否かを判定する。対象クラス列40の位置 j のクラスが、末尾クラス列に含まれるクラスである場合、検出部2020は、対象クラス列40について、サイクル Si の末尾の位置を特定する。具体的には、検出部2020は、対象クラス列40のうち、位置 j より後の部分から、サイクル Si の末尾クラス列に含まれないクラスを検出する。そして、検出部2020は、検出されたクラスの一つ前の位置を、サイクル Si の末尾として特定する。
【0107】
例えば、サイクル Si の末尾クラス列が (C2,C11,C8,C9) であるとする。また、対象クラス列40において、位置 j 及びそれ以降のクラスの列が、(C8,C11,C3,C1,...) であるとする。
【0108】
位置 j のクラス C8 は、サイクル Si の末尾クラス列に含まれる。そこで検出部2020は、位置 j より後の部分から、サイクル Si の末尾クラス列に含まれないクラスを検出する。ここでは、クラス C3 が検出される。そこで、クラス C3 の一つ前の位置である クラス C11 の位置が、サイクル Si の末尾の位置として特定される。
【0109】
なお、サイクル Si の末尾の位置が特定された場合、ステップS224において、サイクル Si の末尾が検出されたと判定される(S224:YES)。この点は、以降の説明においても同様である。
【0110】
対象クラス列40の位置 j のクラスが、末尾クラス列に含まれるクラスでない場合、検出部2020は、ステップS224において、サイクル Si の末尾が検出されないと判定する(S224:NO)。
【0111】
その他にも例えば、検出部2020は、対象クラス列40において、位置 j から始まる長さ Ne のクラス列が、サイクル Si の末尾クラス列と一致するか否かを判定する。位置 j から始まる長さ Ne のクラス列がサイクル Si の末尾クラス列と一致する場合、検出部2020は、対象クラス列40について、サイクル Si の末尾の位置を特定する。具体的には、検出部2020は、対象クラス列40のうち、位置 j+Ne 以降の部分(位置 j+Ne を含む)から、サイクル Si の末尾クラス列に含まれないクラスを検出する。そして、検出部2020は、検出されたクラスの一つ前の位置を、サイクル Si の末尾の位置として特定する。
【0112】
位置 j から始まる長さ Ne のクラス列がサイクル Si の末尾クラス列と一致しない場合、検出部2020は、ステップS222において、サイクル Si の末尾が検出されないと判定する(S224:NO)。
【0113】
その他にも例えば、検出部2020は、以下の条件3と条件4の双方が満たされるか否かを判定する。
【0114】
(条件3)対象クラス列40において、位置 j から始まる長さ b(1<b<Ne)のクラス列に含まれるクラスがいずれも、サイクル Si の末尾クラス列に含まれるクラスである。
(条件4)当該長さ b のクラス列におけるクラスの前後関係が、サイクル Si の末尾クラス列におけるクラスの前後関係と一致する。
【0115】
条件3と条件4が満たされる場合、検出部2020は、対象クラス列40について、サイクル Si の末尾の位置を特定する。具体的には、検出部2020は、対象クラス列40のうち、位置 j+b 以降の部分(位置 j+b を含む)から、サイクル Si の末尾クラス列に含まれないクラスを検出する。そして、検出部2020は、検出されたクラスの一つ前の位置を、サイクル Si の末尾の位置として特定する。
【0116】
条件3と条件4のうち、少なくとも一方が満たされない場合、検出部2020は、ステップS224において、サイクル Si の末尾が検出されないと判定する(S224:NO)。
【0117】
その他にも例えば、検出部2020は、前述した条件3が満たされない場合のみ、ステップS224において、サイクル Si の末尾が検出されないと判定してもよい。この場合、検出部2020は、条件3が満たされたら、対象クラス列40のうち、位置 j+b 以降の部分(位置 j+b を含む)から、サイクル Si の末尾クラス列に含まれないクラスを検出する。そして、検出部2020は、検出されたクラスの一つ前の位置を、サイクル Si の末尾の位置として特定する。
【0118】
前述した、対象クラス列40について、サイクル Si の末尾の位置を特定する種々の方法によれば、対象クラス列40について、サイクル Si の末尾の位置を精度良く検出することができる。そのため、異常解析装置2000によれば、第1ビデオフレーム列10からサイクル Si を精度良く検出することができる。
【0119】
<行動時間の特定:S106>
特定部2040は、第2ビデオフレーム列30から、各行動についての行動時間を特定する(S106)。例えば特定部2040は、第2ビデオフレーム列30から、行動ごとに、その行動を表す区間である行動区間を特定する。
【0120】
ある行動の行動区間は、その行動のクラスのチャンク20で表される。ただし、互いに同一のクラスに属する複数のチャンク20の間に無所属チャンクがある場合、それら複数のチャンク20により、同一の行動区間が表される。
【0121】
図11は、行動区間を例示する図である。図11において、第2ビデオフレーム列30は、行動 P1 の行動区間 A1、行動 P2 の行動区間 A2、及び行動 P3 の行動区間 A3 を含む。行動区間 A1 は、クラス C1 のチャンク20から始まり、クラス C2 のチャンク20の直前で終了する。行動区間 A2 は、クラス C2 のチャンク20から始まり、クラス C3 のチャンク20の直前で終了する。行動区間 A3 は、クラス C3 のチャンク20から始まり、第2ビデオフレーム列30の末尾で終了する。
【0122】
例えば行動区間は、実行動区間、中断区間、及び移行区間を含む。或る行動 P の行動区間における実行動区間は、行動 P が行われている区間である。より具体的には、実行動区間は、無所属チャンクではないチャンク20によって表される。例えば図11において、行動区間 A1 の実行動区間は、チャンク20-1、チャンク20-3、及びチャンク20-5である。
【0123】
行動 P の行動区間における中断区間は、行動 P の実施が中断されている区間である。具体的には、中断区間は、行動区間の末尾以外にある無所属チャンクによって表される。例えば図11において、行動区間 A1 の中断区間は、チャンク20-2及びチャンク20-4である。
【0124】
行動 P の行動区間における移行区間は、行動 P から別の行動への移行が行われる区間である。具体的には、移行区間は、行動区間の末尾にある無所属チャンクによって表される。例えば図11において、行動区間 A1 の移行区間は、チャンク20-5である。
【0125】
検出部2020は、行動時間として、実行動区間の長さ(以下、実行動時間)、中断区間の長さ(以下、中断時間)、及び移行区間の長さ(以下、移行時間)を算出する。なお、検出部2020は、これら複数の時間の一部のみを算出してもよい。すなわち、検出部2020は、実行動時間、中断時間、及び移行時間のうち、いずれか1つのみ、又は、いずれか2つのみを算出してもよい。
【0126】
例えば図11の例において、行動区間 A1 の実行動時間は、チャンク20-1の長さ、チャンク20-3の長さ、及びチャンク20-5の長さの合計である。また、行動区間 A1 の中断時間は、チャンク20-2の長さとチャンク20-4の長さの合計である。さらに、行動区間 A1 の移行時間は、チャンク20-6の長さである。
【0127】
ここで、時間の長さの表し方(単位)は様々である。例えば時間の長さは、ミリ秒、秒、又は分などで表される。その他にも例えば、時間の長さは、フレーム数で表されてもよい。すなわち、チャンク20を構成するフレームの数により、行動時間の長さが表される。例えば図11の例において、行動区間 A1 の実行動時間は、チャンク20-1を構成するビデオフレーム12の数、チャンク20-3を構成するビデオフレーム12の数、及びチャンク20-5を構成するビデオフレーム12の数の合計で表すことができる。
【0128】
なお、移行区間と中断区間を区別せずに、移行区間も中断区間の一つとして扱うようにしてもよい。この場合、行動 P の行動区間における中断区間は、行動区間内の全ての無所属チャンクによって表される。
【0129】
<異常解析:S108>
解析部2060は、第2ビデオフレーム列30における行動の順序と、各行動の行動時間とに基づいて、第2ビデオフレーム列30における行動の異常解析を行う(S108)。
【0130】
そのために、例えば解析部2060は、第2ビデオフレーム列30によって表される行動の順序と、第2ビデオフレーム列30によって表されるサイクルについて定義されている行動の順序との乖離度(言い換えれば、類似していない度合い)を算出する。これにより、第2ビデオフレーム列30における行動の異常解析に、第2ビデオフレーム列30における行動の順序が用いられる。
【0131】
第2ビデオフレーム列30によって表される行動の順序は、第2ビデオフレーム列30から得られるクラス列によって表される。例えば図11の例において、第2ビデオフレーム列30から得られるクラス列は、(C1,C2,C3) である。また、第2ビデオフレーム列30によって表されるサイクルについて定義されている行動の順序は、当該サイクルの定義列によって表される。
【0132】
ここで、第2ビデオフレーム列30から得るクラス列には、無所属チャンクが含まれてもよい。この場合、図11の例において第2ビデオフレーム列30から得られるクラス列は、(C1,N,C1,N,C1,N,C2,N,C2,C3,N,C3) である。
【0133】
解析部2060は、第2ビデオフレーム列30をクラス列に変換し、当該クラス列と、第2ビデオフレーム列30によって表されるサイクルの定義列との差異の大きさを算出する。2つのクラス列の乖離度は、例えば、編集距離によって表すことができる。そこで例えば、解析部2060は、第2ビデオフレーム列30から得られるクラス列と、第2ビデオフレーム列30によって表されるサイクルの定義列とについて、編集距離を算出する。
【0134】
ここで前述したように、サイクル定義情報400は、1つのサイクルについて複数の定義列を示してもよい。第2ビデオフレーム列30によって表されるサイクルの定義列が複数存在する場合、解析部2060は、これら複数の定義列それぞれについて、第2ビデオフレーム列30から得られるクラス列との乖離度を算出する。そして、解析部2060は、算出した複数の乖離度の統計値(例えば、最小値、最大値、又は平均値など)を、第2ビデオフレーム列30から得られるクラス列と、第2ビデオフレーム列30によって表されるサイクルの定義列との乖離度として利用する。
【0135】
<<異常度の算出>>
例えば解析部2060は、第2ビデオフレーム列30について、定義列との乖離度と、行動時間とを用いて、異常度の算出を行う。例えば解析部2060は、機械学習ベースのモデルを利用して、第2ビデオフレーム列30についての異常度を算出する。以下、このモデルは、「異常度算出モデル」と表記される。異常度算出モデルは、ニューラルネットワークや回帰モデルなどで実現される。
【0136】
例えば異常度算出モデルは、第2ビデオフレーム列30の特徴を表す特徴ベクトルを入力として取得し、当該特徴ベクトルが入力されたことに応じて、第2ビデオフレーム列30によって表される行動の異常度を出力するように構成される。特徴ベクトルは、例えば、定義列との乖離度と、各行動区間に関する情報とが列挙されたベクトルである。
【0137】
図12は、第2ビデオフレーム列30の特徴ベクトルを例示する図である。特徴ベクトルは、定義列との類似と、各クラスの行動区間についての情報を有する。
【0138】
この例では、クラス C1 から Cm という m 個のクラスが異常解析装置2000によって扱われる。そのため、図12の特徴ベクトルは、クラス C1 から Cm それぞれについて、行動区間の情報を示す。行動区間の情報は、実行動時間、中断時間、移行時間、及び中断回数を示す。中断回数は、行動区間に含まれる中断区間の数を表す。
【0139】
ここで、第2ビデオフレーム列30において、互いに同一のクラスの行動区間が複数存在しうる。互いに同一のクラスの行動区間が複数存在する場合、解析部2060は、特徴ベクトルにおいて、そのクラスの行動区間についての情報に、それら複数の区間について算出される値の統計値を利用する。
【0140】
例えば第2ビデオフレーム列30において、行動区間 A5 と A10 がそれぞれ、クラス C7 の行動区間であったとする。この場合、特徴ベクトルにおいて、クラス C7 の情報は、行動区間 A5 について得られる値と、行動区間 A7 について得られる値の統計値で定められる。より具体的な例としては、クラス C7 の実行動時間には、行動区間 A5 の実行動時間と、行動区間 A7 の実行動時間との統計値が用いられる。
【0141】
特徴ベクトルにおいて、第2ビデオフレーム列30に含まれないクラスについての情報には、例えば、そのクラスについての標準的な値が利用される。或るクラスについての標準的な値は、例えば、そのクラスの行動区間について過去のビデオフレーム列の履歴から算出された統計値である。ここで、標準的な値は、過去のビデオフレーム列の履歴のうち、正常な行動を表すビデオフレーム列のみを用いて定められることが好適である。言い換えれば、異常な行動を表す過去のビデオフレーム列は、標準的な値の算出に用いないようにすることが好適である。
【0142】
異常度算出モデルは、訓練データを利用して予め訓練される。訓練データは、入力データと、当該入力データを異常度算出モデルに入力した場合に、異常度算出モデルから出力されるべき出力データ(以下、正解(ground-truth)データ)と、を対応づける。より具体的には、訓練データは、特徴ベクトルと、その特徴ベクトルによって表される特徴を持つビデオフレーム列の異常度とを対応づける。モデルの訓練を行う装置(以下、訓練装置)は、このような訓練データを利用して、異常度算出モデルの訓練可能なパラメータを更新することにより、異常度算出モデルを訓練する。
【0143】
その他にも例えば、解析部2060は、オートエンコーダを利用して、第2ビデオフレーム列30についての異常度を算出してもよい。この場合、オートエンコーダは、第2ビデオフレーム列30の特徴ベクトルが入力されたことに応じて、当該特徴ベクトルのエンコードと、そのエンコード結果のデコードとを行って、デコードの結果を表すベクトルを出力するように構成される。
【0144】
解析部2060は、オートエンコーダによる復元誤差の大きさを、第2ビデオフレーム列30の異常度として利用する。すなわち、解析部2060は、第2ビデオフレーム列30の特徴ベクトルと、オートエンコーダから出力されたベクトルとの乖離度合い(例えば、これら2つのベクトルの距離)を、第2ビデオフレーム列30によって表される行動の異常度として利用する。
【0145】
上記オートエンコーダは、訓練データを利用して予め訓練される。訓練データは、例えば、正常な行動を表すビデオデータ列である。オートエンコーダは、正常な行動を表すビデオデータ列が入力された場合に、入力データと十分に類似するデータを出力するように訓練される。
【0146】
異常度を算出する方法は、機械学習ベースのモデルを利用する方法に限定されない。例えば解析部2060は、以下の方法により、第2ビデオフレーム列30によって表される行動の異常度を算出してもよい。
【0147】
例えば、解析部2060は、複数の過去のビデオフレーム列(言い換えれば、ビデオフレーム列の履歴)それぞれから得られる特徴ベクトルを用いて、第2ビデオフレーム列30について、複数の指標ごとの異常度を算出する。図12の例において、指標は、定義列との乖離度、実行動時間、中断時間、移行時間、及び中断時間である。
【0148】
具体的には、解析部2060は、ビデオフレーム列の履歴から得られる複数の特徴ベクトルを用いて、クラスごとに、各指標の値について、標準値とばらつきを算出する。指標の標準値は、例えば、過去の複数の値の平均値や中央値などで表される。指標の値のばらつきは、例えば、過去の複数の値の標準偏差で表される。ここで、利用される過去のビデオフレーム列は、正常な行動を表すビデオフレーム列であることが好ましい。
【0149】
過去のビデオフレーム列は、異常解析装置2000から取得可能な態様で、予め記憶部に格納しておく。ただし、記憶部は、過去のビデオフレーム列に加え、又はそれに代えて、過去のビデオフレーム列から得られた特徴ベクトルを格納してもよい。
【0150】
解析部2060は、算出した各指標の標準値(例えば平均値)とばらつき、並びに第2ビデオフレーム列30から得られた特徴ベクトルを用いて、第2ビデオフレーム列30について、各指標の異常度を算出する。各指標の異常度は、例えば以下の式(1)を用いて算出される。
【数1】
a は、指標の識別情報を表す。bは、クラスの識別情報を表す。q[a][b]は、クラス b について算出された、指標 a の異常度を表す。例えば a が実行動時間を表し、b がクラス C1 を表す場合、q[a][b] は、第2ビデオフレーム列30について、クラス C1 の行動における実行動時間の異常度を表す。Q[a][b] は、第2ビデオフレーム列30について算出された、指標 a の異常度を表す。
【0151】
T[a][b] は、第2ビデオフレーム列30について算出された、クラス b の行動区間における指標 a の値を表す。μ[a][b] は、履歴を用いてクラス b について算出された、過去の指標 a の値の平均値を表す。σ[a][b] は、履歴を用いてクラス b について算出された、過去の指標 a の値の標準偏差を表す。k は、所定の正の実数である。
【0152】
各指標について異常度を算出することによれば、様々な観点から、第2ビデオフレーム列30における行動の異常度合いを把握することができる。定義列との乖離度に基づく異常度によれば、行動の順序が本来の順序と異なる度合い、行動の抜けの多さ、及び余分な行動の多さなどを総合的に把握することができる。例えば、第2ビデオフレーム列30における行動の順序が、本来の順序と大きく異なっていたり、行動に抜けが多かったり、又は、余分な行動が多かったりすると、定義列との乖離度に基づく異常度が大きくなる。
【0153】
実行動時間に基づく異常度によれば、第2ビデオフレーム列30における実行動時間の長さが、標準的な実行動時間の長さから乖離している度合いを把握することができる。中断時間に基づく異常度によれば、第2ビデオフレーム列30における中断時間の長さが、標準的な中断時間の長さから乖離している度合いを把握することができる。移行時間に基づく異常度によれば、第2ビデオフレーム列30における移行時間の長さが、標準的な移行時間の長さから乖離している度合いを把握することができる。中断回数に基づく異常度によれば、第2ビデオフレーム列30における中断回数が、標準的な中断回数から乖離している度合いを把握することができる。
【0154】
解析部2060は、各指標 a について算出された異常度 Q[a] を用いて、第2ビデオフレーム列30によって表される行動の異常度を算出してもよい。例えば第2ビデオフレーム列30によって表される行動の異常度は、各指標について算出された Q[a] の和、単純平均、重み付き平均その他の統計値で表すことができる。
【0155】
このように、過去のビデオフレーム列から得られる行動時間の統計値と、チャンク20から得られる行動時間との比較によって、行動時間の異常度を算出する方法によれば、過去のデータを基準として、第2ビデオフレーム列30によって表される行動の異常度合いを把握することができる。
【0156】
<<異常判定>>
解析部2060は、第2ビデオフレーム列30によって表される行動が異常であるか否かの判定を行ってもよい。例えば解析部2060は、第2ビデオフレーム列30について算出された異常度を用いて、第2ビデオフレーム列30によって表される行動が異常であるか否かを判定する。
【0157】
例えば解析部2060は、第2ビデオフレーム列30について算出された異常度が閾値以上である場合に、第2ビデオフレーム列30によって表される行動が異常であると判定する。一方、第2ビデオフレーム列30について算出された異常度が閾値未満である場合、解析部2060は、第2ビデオフレーム列30によって表される行動が異常でないと判定する。
【0158】
ここで前述したように、解析部2060は、第2ビデオフレーム列30について、複数の指標それぞれについて異常度を算出しうる。例えば、定義列との乖離度に基づく異常度、実行動時間に基づく異常度、及び中断時間に基づく異常度などである。この場合、解析部2060は、これら複数の指標それぞれについて算出された異常度を用いて異常判定を行ってもよい。
【0159】
複数の指標それぞれについての異常度を用いた異常判定には、様々な方法がある。例えば解析部2060は、複数の指標それぞれの異常度が全て閾値未満である場合に、第2ビデオフレーム列30によって表される行動が異常でないと判定する。一方、少なくとも1つの指標についての異常度が閾値以上である場合、解析部2060は、第2ビデオフレーム列30によって表される行動が異常であると判定する。なお、閾値は、指標ごとに設定されてもよいし、全ての指標について共通の値であってもよい。
【0160】
例として、定義列との乖離度に基づく異常度、実行動時間に基づく異常度、及び中断時間に基づく異常度が用いられるとする。これら3種類の異常度の全てが閾値未満である場合、解析部2060は、第2ビデオフレーム列30によって表される行動が異常でないと判定する。一方、これら3種類の異常度の少なくとも1つが閾値以上である場合、解析部2060は、第2ビデオフレーム列30によって表される行動が異常であると判定する。
【0161】
その他にも例えば、解析部2060は、所定個以上の指標それぞれの異常度が閾値以上である場合に、第2ビデオフレーム列30によって表される行動が異常であると判定してもよい。例えば前述したように3つの指標それぞれについて異常度が算出される場合において、2個以上の指標それぞれの異常度が閾値以上であれば、第2ビデオフレーム列30によって表される行動が異常であると判定するとする。この場合、3種類の指標それぞれに基づく異常度のうちのいずれか1つのみが閾値以上である場合、又は、いずれの異常度も閾値未満である場合には、第2ビデオフレーム列30によって表される行動が異常でないと判定される。
【0162】
解析部2060は、第2ビデオフレーム列30について異常度を明示的に得ずに、第2ビデオフレーム列30によって表される行動が異常であるか否かを判定してもよい。この場合、例えば解析部2060は、第2ビデオフレーム列30の特徴ベクトルが入力されたことに応じて、第2ビデオフレーム列30によって表される行動が異常であるか否かの判定結果を出力するように構成されるモデルを有する。以下、このモデルは「判定モデル」と呼ばれる。
【0163】
判定モデルは、例えば、ニューラルネットワークや SVM(Support Vector Machine)などで実現される。判定モデルも、異常度算出モデルと同様に、入力データと正解データとの組み合わせ示す訓練データを用いて、予め訓練される。
【0164】
<結果の出力>
異常解析装置2000は、実行結果の出力を行う。以下、異常解析装置2000から出力される情報を、「出力情報」と呼ぶ。出力情報は、第2ビデオフレーム列30によって表される異常の解析結果を示す。例えば出力情報は、第2ビデオフレーム列30によって表される行動の異常度、指標毎に算出された異常度、又は、第2ビデオフレーム列30によって表される行動が異常であるか否かの判定結果を示す。
【0165】
出力情報の出力態様は任意である。例えば異常解析装置2000は、出力情報を任意の記憶装置に格納する。その他にも例えば、異常解析装置2000は、出力情報を任意の装置へ送信してもよい。その他にも例えば、異常解析装置2000は、出力情報の内容をディスプレイ装置に表示させてもよい。
【0166】
以上、実施の形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【0167】
なお、上述の例において、プログラムは、コンピュータに読み込まれた場合に、実施形態で説明された1又はそれ以上の機能をコンピュータに行わせるための命令群(又はソフトウェアコード)を含む。プログラムは、非一時的なコンピュータ可読媒体又は実体のある記憶媒体に格納されてもよい。限定ではなく例として、コンピュータ可読媒体又は実体のある記憶媒体は、random-access memory(RAM)、read-only memory(ROM)、フラッシュメモリ、solid-state drive(SSD)又はその他のメモリ技術、CD-ROM、digital versatile disc(DVD)、Blu-ray(登録商標)ディスク又はその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ又はその他の磁気ストレージデバイスを含む。プログラムは、一時的なコンピュータ可読媒体又は通信媒体上で送信されてもよい。限定ではなく例として、一時的なコンピュータ可読媒体又は通信媒体は、電気的、光学的、音響的、またはその他の形式の伝搬信号を含む。
【0168】
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
第1ビデオフレーム列から、所定の複数の行動のまとまりであるサイクルを表す第2ビデオフレーム列を検出する検出手段と、
前記第2ビデオフレーム列によって表される各行動の行動時間を特定する特定手段と、
前記第2ビデオフレーム列によって表される行動の順序と各行動の行動時間とに基づいて、前記第2ビデオフレーム列によって表される行動の異常の解析を行う解析手段と、を有する異常解析装置。
(付記2)
前記解析手段は、前記第2ビデオフレーム列によって表される行動の順序と前記サイクルの定義における行動の順序との乖離度合い、及び前記第2ビデオフレーム列によって表される各行動について特定された前記行動時間に基づいて、前記第2ビデオフレーム列によって表される行動の異常度の算出、又は、前記第2ビデオフレーム列によって表される行動が異常であるか否かを判定を行う、付記1に記載の異常解析装置。
(付記3)
前記解析手段は、
ビデオフレーム列によって表される行動の順序と前記サイクルの定義における行動の順序との乖離度合い、及び、そのビデオフレーム列によって表される各行動について特定された前記行動時間が入力されたことに応じて、そのビデオフレーム列によって表される行動の異常度を出力するように訓練されたモデルを有し、
前記第2ビデオフレーム列によって表される行動の順序と前記サイクルの定義における行動の順序との乖離度合い、及び前記第2ビデオフレーム列によって表される各行動について特定された前記行動時間を、前記モデルに入力することで、前記第2ビデオフレーム列によって表される行動の異常度を算出する、付記2に記載の異常解析装置。
(付記4)
前記解析手段は、
過去の複数のビデオフレーム列に基づいて、複数の行動それぞれについて、その行動の前記行動時間の統計値を算出し、
前記算出された統計値と、前記第2ビデオフレーム列によって表される各行動について特定された前記行動時間とに基づいて、前記行動時間の異常度を算出する、付記2に記載の異常解析装置。
(付記5)
前記特定手段は、前記第2ビデオフレーム列によって表される各行動について、その行動が行われている時間である実行動時間と、その行動が中断されている時間である中断時間とを算出し、
前記解析手段は、
過去の複数のビデオフレーム列に基づいて、複数の行動それぞれについて、前記実行動時間の統計値と前記中断時間の統計値とを算出し、
前記算出された前記実行動時間の統計値及び前記算出された前記中断時間の統計値、並びに、前記第2ビデオフレーム列によって表される各行動について特定された前記実行動時間及び前記中断時間に基づいて、前記第2ビデオフレーム列について、前記実行動時間の異常度及び前記中断時間の異常度を算出する、付記3に記載の異常解析装置。
(付記6)
前記検出手段は、
前記サイクルの先頭における1つ以上の行動と、前記サイクルの末尾における1つ以上の行動とが少なくとも含まれるサイクル定義情報を取得し、
前記第1ビデオフレーム列から、互いに同一の行動を表す連続するビデオフレームのまとまりを複数検出することで、前記第1ビデオフレームによって表される行動の順列を生成し、
前記サイクル定義情報を用いて、前記生成した行動の順列から前記サイクルの先頭の位置及び末尾の位置を検出することにより、前記第1ビデオフレーム列から前記サイクルの先頭の位置及び末尾の位置を検出する、付記1から5いずれか一項に記載の異常解析装置。
(付記7)
前記サイクル定義情報は、前記サイクルの先頭を表す行動の順列を含み、
前記検出手段は、前記第1ビデオフレームによって表される行動の順列から、前記サイクルの先頭を表す行動の順列に含まれる複数の行動を、前記サイクル定義情報に示される順序で検出することにより、前記サイクルの先頭の位置を検出する、付記6に記載の異常解析装置。
(付記8)
前記サイクル定義情報は、前記サイクルの末尾を表す行動を複数含み、
前記検出手段は、前記第1ビデオフレームによって表される行動の順列のうち、前記サイクルの先頭の位置よりも後の部分から、前記サイクルの末尾を表す行動を所定個以上検出し、かつ、当該所定個の行動が検出された後の位置から、前記サイクルの末尾を表す行動以外の行動を検出することにより、前記サイクルの末尾の位置を検出する、付記6に記載の異常解析装置。
(付記9)
第1ビデオフレーム列から、所定の複数の行動のまとまりであるサイクルを表す第2ビデオフレーム列を検出する検出ステップと、
前記第2ビデオフレーム列によって表される各行動の行動時間を特定する特定ステップと、
前記第2ビデオフレーム列によって表される行動の順序と各行動の行動時間とに基づいて、前記第2ビデオフレーム列によって表される行動の異常の解析を行う解析ステップと、を有する、コンピュータによって実行される異常解析方法。
(付記10)
前記解析ステップにおいて、前記第2ビデオフレーム列によって表される行動の順序と前記サイクルの定義における行動の順序との乖離度合い、及び前記第2ビデオフレーム列によって表される各行動について特定された前記行動時間に基づいて、前記第2ビデオフレーム列によって表される行動の異常度の算出、又は、前記第2ビデオフレーム列によって表される行動が異常であるか否かを判定を行う、付記9に記載の異常解析方法。
(付記11)
前記コンピュータは、ビデオフレーム列によって表される行動の順序と前記サイクルの定義における行動の順序との乖離度合い、及び、そのビデオフレーム列によって表される各行動について特定された前記行動時間が入力されたことに応じて、そのビデオフレーム列によって表される行動の異常度を出力するように訓練されたモデルを有し、
前記解析ステップにおいて、前記第2ビデオフレーム列によって表される行動の順序と前記サイクルの定義における行動の順序との乖離度合い、及び前記第2ビデオフレーム列によって表される各行動について特定された前記行動時間を、前記モデルに入力することで、前記第2ビデオフレーム列によって表される行動の異常度を算出する、付記10に記載の異常解析方法。
(付記12)
前記解析ステップにおいて、
過去の複数のビデオフレーム列に基づいて、複数の行動それぞれについて、その行動の前記行動時間の統計値を算出し、
前記算出された統計値と、前記第2ビデオフレーム列によって表される各行動について特定された前記行動時間とに基づいて、前記行動時間の異常度を算出する、付記10に記載の異常解析方法。
(付記13)
前記特定ステップにおいて、前記第2ビデオフレーム列によって表される各行動について、その行動が行われている時間である実行動時間と、その行動が中断されている時間である中断時間とを算出し、
前記解析ステップにおいて、
過去の複数のビデオフレーム列に基づいて、複数の行動それぞれについて、前記実行動時間の統計値と前記中断時間の統計値とを算出し、
前記算出された前記実行動時間の統計値及び前記算出された前記中断時間の統計値、並びに、前記第2ビデオフレーム列によって表される各行動について特定された前記実行動時間及び前記中断時間に基づいて、前記第2ビデオフレーム列について、前記実行動時間の異常度及び前記中断時間の異常度を算出する、付記11に記載の異常解析方法。
(付記14)
前記検出ステップにおいて、
前記サイクルの先頭における1つ以上の行動と、前記サイクルの末尾における1つ以上の行動とが少なくとも含まれるサイクル定義情報を取得し、
前記第1ビデオフレーム列から、互いに同一の行動を表す連続するビデオフレームのまとまりを複数検出することで、前記第1ビデオフレームによって表される行動の順列を生成し、
前記サイクル定義情報を用いて、前記生成した行動の順列から前記サイクルの先頭の位置及び末尾の位置を検出することにより、前記第1ビデオフレーム列から前記サイクルの先頭の位置及び末尾の位置を検出する、付記9から13いずれか一項に記載の異常解析方法。
(付記15)
前記サイクル定義情報は、前記サイクルの先頭を表す行動の順列を含み、
前記検出ステップにおいて、前記第1ビデオフレームによって表される行動の順列から、前記サイクルの先頭を表す行動の順列に含まれる複数の行動を、前記サイクル定義情報に示される順序で検出することにより、前記サイクルの先頭の位置を検出する、付記14に記載の異常解析方法。
(付記16)
前記サイクル定義情報は、前記サイクルの末尾を表す行動を複数含み、
前記検出ステップにおいて、前記第1ビデオフレームによって表される行動の順列のうち、前記サイクルの先頭の位置よりも後の部分から、前記サイクルの末尾を表す行動を所定個以上検出し、かつ、当該所定個の行動が検出された後の位置から、前記サイクルの末尾を表す行動以外の行動を検出することにより、前記サイクルの末尾の位置を検出する、付記14に記載の異常解析方法。
(付記17)
第1ビデオフレーム列から、所定の複数の行動のまとまりであるサイクルを表す第2ビデオフレーム列を検出する検出ステップと、
前記第2ビデオフレーム列によって表される各行動の行動時間を特定する特定ステップと、
前記第2ビデオフレーム列によって表される行動の順序と各行動の行動時間とに基づいて、前記第2ビデオフレーム列によって表される行動の異常の解析を行う解析ステップと、をコンピュータに実行させるプログラム。
(付記18)
前記解析ステップにおいて、前記第2ビデオフレーム列によって表される行動の順序と前記サイクルの定義における行動の順序との乖離度合い、及び前記第2ビデオフレーム列によって表される各行動について特定された前記行動時間に基づいて、前記第2ビデオフレーム列によって表される行動の異常度の算出、又は、前記第2ビデオフレーム列によって表される行動が異常であるか否かを判定を行う、付記17に記載のプログラム。
(付記19)
前記プログラムは、ビデオフレーム列によって表される行動の順序と前記サイクルの定義における行動の順序との乖離度合い、及び、そのビデオフレーム列によって表される各行動について特定された前記行動時間が入力されたことに応じて、そのビデオフレーム列によって表される行動の異常度を出力するように訓練されたモデルを含み、
前記解析ステップにおいて、前記第2ビデオフレーム列によって表される行動の順序と前記サイクルの定義における行動の順序との乖離度合い、及び前記第2ビデオフレーム列によって表される各行動について特定された前記行動時間を、前記モデルに入力することで、前記第2ビデオフレーム列によって表される行動の異常度を算出する、付記18に記載のプログラム。
(付記20)
前記解析ステップにおいて、
過去の複数のビデオフレーム列に基づいて、複数の行動それぞれについて、その行動の前記行動時間の統計値を算出し、
前記算出された統計値と、前記第2ビデオフレーム列によって表される各行動について特定された前記行動時間とに基づいて、前記行動時間の異常度を算出する、付記18に記載のプログラム。
(付記21)
前記特定ステップにおいて、前記第2ビデオフレーム列によって表される各行動について、その行動が行われている時間である実行動時間と、その行動が中断されている時間である中断時間とを算出し、
前記解析ステップにおいて、
過去の複数のビデオフレーム列に基づいて、複数の行動それぞれについて、前記実行動時間の統計値と前記中断時間の統計値とを算出し、
前記算出された前記実行動時間の統計値及び前記算出された前記中断時間の統計値、並びに、前記第2ビデオフレーム列によって表される各行動について特定された前記実行動時間及び前記中断時間に基づいて、前記第2ビデオフレーム列について、前記実行動時間の異常度及び前記中断時間の異常度を算出する、付記19に記載のプログラム。
(付記22)
前記検出ステップにおいて、
前記サイクルの先頭における1つ以上の行動と、前記サイクルの末尾における1つ以上の行動とが少なくとも含まれるサイクル定義情報を取得し、
前記第1ビデオフレーム列から、互いに同一の行動を表す連続するビデオフレームのまとまりを複数検出することで、前記第1ビデオフレームによって表される行動の順列を生成し、
前記サイクル定義情報を用いて、前記生成した行動の順列から前記サイクルの先頭の位置及び末尾の位置を検出することにより、前記第1ビデオフレーム列から前記サイクルの先頭の位置及び末尾の位置を検出する、付記17から21いずれか一項に記載のプログラム。
(付記23)
前記サイクル定義情報は、前記サイクルの先頭を表す行動の順列を含み、
前記検出ステップにおいて、前記第1ビデオフレームによって表される行動の順列から、前記サイクルの先頭を表す行動の順列に含まれる複数の行動を、前記サイクル定義情報に示される順序で検出することにより、前記サイクルの先頭の位置を検出する、付記22に記載のプログラム。
(付記24)
前記サイクル定義情報は、前記サイクルの末尾を表す行動を複数含み、
前記検出ステップにおいて、前記第1ビデオフレームによって表される行動の順列のうち、前記サイクルの先頭の位置よりも後の部分から、前記サイクルの末尾を表す行動を所定個以上検出し、かつ、当該所定個の行動が検出された後の位置から、前記サイクルの末尾を表す行動以外の行動を検出することにより、前記サイクルの末尾の位置を検出する、付記22に記載のプログラム。
【符号の説明】
【0169】
10 第1ビデオフレーム列
12 ビデオフレーム
20 チャンク
30 第2ビデオフレーム列
40 対象クラス列
200 テーブル
202 フレーム識別情報
204 クラス識別情報
300 テーブル
302 先頭フレーム識別情報
304 末尾フレーム識別情報
306 クラス識別情報
400 サイクル定義情報
402 サイクル識別情報
404 定義列
1000 コンピュータ
1020 バス
1040 プロセッサ
1060 メモリ
1080 ストレージデバイス
1100 入出力インタフェース
1120 ネットワークインタフェース
2000 異常解析装置
2020 検出部
2040 特定部
2060 解析部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12