(57)【要約】【課題】検索用タグ付けのためのリアルタイム映像解析を最適化する。【解決手段】バッファメモリに記憶された画像に検索用タグを付するための一連の映像解析を実施する第１の映像解析部320と、第１の映像解析部320による映像解析結果を蓄積する解析結果データベース330と、検索用タグを利用して画像を検索する検索部340と、第２の映像解析部350とを有し、第１の映像解析部は、一連の映像解析のうち、所定の処理時間以内に実施可能な映像解析を実施して解析結果データベース330に蓄積し、検索部340が検索条件に基づき解析結果データベース330から取得した映像解析結果のうち検索用タグが付されていない画像に対して、第２の映像解析部350は以降の映像解析を実施して検索用タグを付する。【選択図】図１
2019020802.tif 000002
【特許請求の範囲】
【請求項１】
カメラからの画像が入力される映像検索装置であって、
前記画像が入力されるバッファメモリと、
前記バッファメモリに記憶された前記画像に検索用タグを付するための一連の映像解析を実施する第１の映像解析部と、
前記第１の映像解析部による映像解析結果を蓄積する解析結果データベースと、
前記検索用タグを利用して前記画像を検索する検索部と、
第２の映像解析部とを有し、
前記第１の映像解析部は、前記バッファメモリに記憶された前記画像に対して、前記一連の映像解析のうち、所定の処理時間以内に実施可能な映像解析を実施し、その映像解析結果を前記解析結果データベースに蓄積し、
前記検索部が検索条件に基づき前記解析結果データベースから取得した前記映像解析結果のうち前記検索用タグが付されていない画像に対して、前記第２の映像解析部は、前記解析結果データベースに蓄積された映像解析結果以降の映像解析を実施して前記検索用タグを付する映像検索装置。
【請求項２】
請求項１において、
前記所定の処理時間は、前記バッファメモリに記憶された前記画像が前記カメラからの次の画像により更新されるまでに前記映像解析のために許容される処理時間に基づき定められる映像検索装置。
【請求項３】
請求項１において、
前記第２の映像解析部は、前記検索部が前記検索条件に基づき前記解析結果データベースから取得した前記映像解析結果のうち前記検索用タグが付されていない前記画像に対して付した前記検索用タグを前記解析結果データベースに上書きする映像検索装置。
【請求項４】
請求項１において、
ネットワークを介して複数の前記カメラが接続され、
前記接続された複数の前記カメラごとに前記バッファメモリが設けられる映像検索装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は映像検索装置に関する。
【背景技術】
【０００２】
特許文献１には、監視端末から送信される映像データ及びメタデータを蓄積し、映像データ又は前記メタデータの中から所望のデータを抽出するための検索条件を予め記憶し、予め記憶させた検索条件を表示させて、表示された検索条件の中から特定の検索条件が選択された場合に、選択された検索条件に合致するメタデータ又は映像データを抽出して表示することが記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１６８９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
監視映像検索システムは、一般的に監視カメラからの入力映像を映像解析するリアルタイム系処理と、映像解析結果を検索する非リアルタイム系処理で構成される。また、監視映像検索システムは、一般的に複数台の監視カメラが接続されており、映像を検索する場合は事前に検索用タグ（キー）を映像に付けることで検索処理の高速化を図っている。
【０００５】
検索用タグ付けの自動化のために映像解析が用いられるが、様々な検索の要求に応えるためには多くのタグが必要であり、動体検出、動線解析、人数計測、人検出、姿勢認識、行動推定、顔検出、表情認識などの映像解析を実行して検索用タグを付与する必要がある。このため、検索用タグの付与に要する処理工数は大きくなる傾向にある。さらにカメラ台数が増えると映像解析のリアルタイム性が損なわれ、システム異常を誘発するおそれがある。
【０００６】
このような映像解析の処理要求の増大に対応して演算能力を高めることは一つの方法であるが、システムコストを増大させてしまう。その一方で、全ての映像を映像解析で処理して検索用タグを付与しても、その結果が一度も参照されないことも監視映像検索システムにおいては珍しくはない。
【０００７】
本発明の課題は、検索用タグ付けのためのリアルタイム映像解析を最適化することにより、所与のプロセッサ負荷にてリアルタイム系処理と非リアルタイム系処理とを実施する映像検索装置を実現することである。
【課題を解決するための手段】
【０００８】
本発明の課題を解決するために、特許請求の範囲に記載の構成を採用する。例えば、カメラからの画像が入力されるバッファメモリと、バッファメモリに記憶された画像に検索用タグを付するための一連の映像解析を実施する第１の映像解析部と、第１の映像解析部による映像解析結果を蓄積する解析結果データベースと、検索用タグを利用して画像を検索する検索部と、第２の映像解析部とを有する映像検索装置であって、第１の映像解析部は、バッファメモリに記憶された画像に対して、一連の映像解析のうち、所定の処理時間以内に実施可能な映像解析を実施し、その映像解析結果を解析結果データベースに蓄積し、検索部が検索条件に基づき解析結果データベースから取得した映像解析結果のうち検索用タグが付されていない画像に対して、第２の映像解析部は、解析結果データベースに蓄積された映像解析結果以降の映像解析を実施して検索用タグを付する。
【発明の効果】
【０００９】
本発明によれば、検索用タグ付け時の映像解析によるリアルタイム性低下を回避しつつ、過剰な映像解析の実行を回避できる映像検索装置を提供することができる。
【図面の簡単な説明】
【００１０】
【図１】監視映像検索システムの構成例である。
【図２】監視映像検索システムを実現するハードウェア構成例である。
【図３】カメラからの映像例である。
【図４】人の行動推定を対象とした映像解析処理フロー定義例である。
【図５】カメラが３台のときの映像解析処理フローである。
【図６】リアルタイム映像解析部での処理フローである。
【図７】リアルタイム映像解析部での処理イメージである。
【図８】リアルタイム映像解析部の映像解析結果例（カメラＩＤ0）である。
【図９】リアルタイム映像解析部の映像解析結果例（カメラＩＤ2）である。
【図１０】検索時映像解析部での処理フローである。
【図１１】検索時映像解析部の映像解析結果例（カメラＩＤ0）である。
【発明を実施するための形態】
【００１１】
以下、図面を用いて本発明を実施するための形態を説明する。図１は監視映像検索システムの構成例を示す模式図である。
【００１２】
映像検索装置300は、ネットワーク200を介して複数のカメラ100と接続されている。映像検索装置300は、カメラ100から入力された映像に対して所定の検索用タグを付し、映像検索時には検索用タグを用いて高速に所望の映像を検索する。ここでは、３台のカメラ100−0〜2から映像が映像検索装置300に入力される場合を例に説明する。もちろん、映像検索装置300に接続されるカメラの台数は３に限定されるものではない。
【００１３】
カメラ100−0〜2からの映像は、それぞれバッファメモリ310−0〜2に蓄えられ、リアルタイム映像解析部320の処理に供される。リアルタイム映像解析部320の処理の詳細については例を用いて後述するが、カメラ100から入力される映像に検索用タグを付けるための映像解析を実施する。リアルタイム映像解析部320は、リアルタイム動作可能な範囲で映像解析を実行する。例えば、複数のカメラ100−0〜2からの映像に対して、できるだけ均等に処理が進むよう、映像解析を実行する。あるいは、カメラごとの処理の進み具合に重み付けをしてもよい。リアルタイム映像解析部320の解析結果は解析結果ＤＢ330に保存される。操作者はＧＵＩ360を通して解析結果ＤＢ330に保存された映像を検索する。検索部340は、解析結果ＤＢ330に保存されている、リアルタイム映像解析部320による解析結果が付された映像を検索し、所望の映像を抽出する。このとき、検索時映像解析部350は、検索部340が検索する範囲の映像に検索用タグが付与されていなければ、映像解析の続きを実行し検索用タグを付する。検索時映像解析部350は、リアルタイム映像解析部320が実施する映像解析と同一の映像解析を実施できる。リアルタイム映像解析部320ではカメラ100からの映像取り込み時にリアルタイム動作可能な範囲で映像解析を実行し、検索時映像解析部350では検索時にリアルタイム映像解析部320において未実施となっている映像解析を実行する。検索時映像解析部350で映像解析を実行した場合には、解析結果ＤＢ330の内容を検索時映像解析部350での解析結果に基づき上書きする。
【００１４】
図２に映像検索装置300を実現するハードウェア構成例を示す。計算機800は、プロセッサ801、主記憶802、補助記憶803、入出力インタフェース804、表示インタフェース805、ネットワークインタフェース806を含み、これらはバス807により結合されている。入出力インタフェース804は、キーボードやマウス等の入力装置809と接続され、表示インタフェース805は、ディスプレイ808に接続され、ＧＵＩ360を実現する。ネットワークインタフェース806はネットワーク200と接続するためのインタフェースである。
【００１５】
補助記憶803は通常、ＨＤＤやフラッシュメモリなどの不揮発性メモリで構成され、計算機800が実行するプログラムやプログラムが処理対象とするデータ等を記憶する。主記憶802はＲＡＭで構成され、プロセッサ801の命令により、プログラムやプログラムの実行に必要なデータ等を一時的に記憶する。プロセッサ801は、補助記憶803から主記憶802にロードしたプログラムを実行する。
【００１６】
映像検索装置300の処理ブロック320, 340, 350のそれぞれはプログラムとして補助記憶803に格納されており、補助記憶803から主記憶802にロードされ、プロセッサ801により実行される。また、解析結果ＤＢ330も補助記憶803に記憶され、補助記憶803から主記憶802に呼び出されて処理がなされる。なお、映像検索装置300は物理的に１台の計算機ではなく、複数台の計算機、クラウドコンピューティング上で実現されてもよい。
【００１７】
リアルタイム映像解析部320と検索時映像解析部350は、映像に検索用タグを付与するため、映像解析の流れを定義する映像解析フロー定義を持つ。図３にカメラ100からの映像例を示す。カメラ100からの映像は、１秒に例えば５コマ、または１０コマという間隔で撮影された静止画列400−1〜Nである。映像解析はこれらの静止画400それぞれに対して実行する。検索用タグ付けに必要な映像解析は用途によって様々であり、例えば人の行動推定を対象とした映像解析であれば、図４に示す映像解析フロー定義が考えられる。
【００１８】
映像解析ＩＤは映像解析のそれぞれに付与されたＩＤである。ここでは、「動体検出」にＩＤ0、「人検出」にＩＤ1、「姿勢認識」にＩＤ2、「行動推定」にＩＤ3が割り振られている。また映像解析ごとに、平均処理時間、入力、出力、次映像解析ＩＤ、次映像解析呼出し条件が定義されている。平均処理時間とは当該映像解析の実行に必要な平均処理時間であり、入力は当該映像解析の実行に必要な入力パラメータであり、出力は当該映像解析が出力する内容であり、次映像解析ＩＤは当該映像解析の次に実施される映像解析ＩＤであり、次映像解析呼出し条件は当該映像解析の終了時に次の映像解析を呼び出すための条件である。
【００１９】
例えば、映像解析ＩＤ0の「動体検出」は、静止画像400が入力され、静止画像に動体が検出された場合には、動体が映っている矩形領域の情報である矩形リストを映像に付して出力する。図３の例では、静止画400−1の場合は、動体401, 402が映っているため、動体それぞれを囲むような矩形401s, 402sが切り出され、矩形リストに矩形401s, 402sの情報が登録される。なお、図の例では、矩形は左上の座標（ｘ、ｙ）と矩形の幅Ｗ及び高さＨで定義されている。動体検出の平均処理時間は5msであり、映像解析後の映像と動体の矩形リストとを出力する。矩形リストのサイズが０より大きいとき、つまり何らかの動体が検出されたときに映像解析ＩＤ1の「人検出」を呼び出す。
【００２０】
「人検出」では、映像解析ＩＤ0から出力された映像解析後の映像と動体の矩形リストが入力され、検出された動体が人であるかどうかを検出する。人であれば真、人以外の動体であれば偽として検出結果を付して出力する。人検出の平均処理時間は10msであり、検出結果が真のとき、つまり人が検出されたときに映像解析ＩＤ2の「姿勢認識」を呼出す。
【００２１】
「姿勢認識」では、同様に映像解析後の映像と人の矩形リストが入力され、人の姿勢パターンについて画像認識を行い、人の姿勢パターンを特定する。各矩形領域に対して認識された姿勢パターンを付して出力する。姿勢認識の平均処理時間は15msであり、無条件で映像解析ＩＤ3の「行動推定」を呼出す。
【００２２】
「行動推定」では、映像解析後の映像、人の矩形リスト、各矩形の姿勢パターンが入力され、人の行動パターンについて画像認識を行い、人の行動パターンを推定する。各矩形領域に対して推定された行動パターンを付して出力する。行動推定の平均処理時間は20msである。
【００２３】
これらの映像解析の処理については図４の処理に限定されるものではなく、任意の映像解析手法が適用できる。また、ここでは人の行動推定を対象とした映像解析を例として説明するが、対象映像、解析内容に応じて適宜、映像解析フローを定義できる。例えば、自動車のナンバー認識であれば、「動体検出」→「車両検出」→「ナンバープレート検出」→「ナンバー検出」といった映像解析を定義し、本実施例の技術を適用可能である。
【００２４】
映像解析の処理フロー定義が図４のようであるとき、カメラ１台かつプロセッサ１台のとき、１枚の静止画に対する処理時間は合計で50msとなる。10fps以上での動作をリアルタイムとするとき、静止画１枚に対する映像解析の最大処理時間は100msである。このため、接続されるカメラが２台以上を超えると、処理時間が合計で100ms超となり、10fpsを下回ってリアルタイム動作ができなくなる。リアルタイム処理とする処理時間は、バッファメモリ310に記憶されたカメラの静止画が次の静止画により更新されるまでに、映像解析のために許容される処理時間に基づき定められる。具体的な値は、バッファメモリ310の更新頻度、映像検索装置300のプロセッサ能力によって定めればよい。
【００２５】
このため、リアルタイム映像解析部320は合計の処理時間が最大処理時間を下回る範囲で複数のカメラからの映像に対して映像解析を実行するように動作する。監視映像検索システムのカメラが３台の場合、各カメラからの映像に対して、図５に示す通りの映像解析処理を行うことになる。各カメラからの静止画に対してそれぞれに順次、動体検出から行動推定を実施していくと150msかかってしまう。
【００２６】
リアルタイム映像解析部320で実施する映像解析処理フローを図６に示す。まず、初期化を行い（S1）、合計処理時間を0、VCA_IDを0とする。なお、VCA_IDは実行する映像解析ＩＤである。続いて、CAMERA_IDに0をセットする（S2）。CAMERA_IDは映像解析の対象となるカメラＩＤである。
【００２７】
次に、現在の合計処理時間にVCA_IDの映像解析に要する処理時間を加算し（S3）、合計処理時間が最大処理時間を超えているかどうか判定する（S4）。上述のように10fpsのプロセッサ１台であれば、最大処理時間は100msとなる。合計処理時間が最大処理時間を超えていればそこで処理を終了し、超えていなければCAMERA_IDの画像に対してVCA_IDの映像解析を実行し（S5）、その映像解析結果を保存する（S6）。CAMERA_IDに1加算し（S7）、すべてのカメラの映像に対してVCA_IDの映像解析を実行したかどうかを判定する（S8）。CAMERA_IDが最後のＩＤでなければ処理S3に戻り、次のCAMERA_IDの映像に対して処理を続行する。すべてのカメラの映像に対してVCA_IDの映像解析が実行されていれば、VCA_IDを次映像解析IDに更新し（S9）、VCA_IDが最後まで処理されたか判定する（S10）。最後まで処理されていればそこで処理は終了し、最後まで処理されていなければ、次映像解析呼出し条件を満たしているか判定する（S11）。呼出し条件を満たしていなければそこで処理は終了し、満たしていれば処理S2にもどり処理を続行する。
【００２８】
図６の処理フローにしたがった処理順序のイメージは図７のようになる。ここでは、カメラ３台、最大処理時間は80msであるとする。映像解析ＩＤ0の処理をカメラＩＤごとに実行した時点で合計処理時間は15msであり、続いて映像解析ＩＤ1の処理をカメラＩＤごとに実行すると合計処理時間は45msとなる。さらに映像解析ＩＤ2の処理をカメラＩＤ1まで実行した時点で合計処理時間が75msとなり、カメラＩＤ2まで実行すると90msとなり最大処理時間を越えてしまうため、リアルタイム映像解析部320は、カメラＩＤ1で処理を打ち切り、そこまでのカメラＩＤ、映像時刻、次映像解析ＩＤ、映像解析パラメータ、映像解析結果画像などの情報を解析結果ＤＢ330に保存する。
【００２９】
このときの映像解析結果例を図８，９に示す。図８は、カメラＩＤ0の入力画像に対する映像解析結果例である。「映像解析ＩＤ」は実行済の映像解析ＩＤを示し（「2」）、「映像時刻」はカメラで撮影した映像の時刻を示し、「入力画像」は入力画像のファイル名を示し、「映像解析結果」は映像解析の結果を示し、「次映像解析ＩＤ」は次に実行する映像解析ＩＤを示す。映像解析結果は、人が存在する位置を示す（Ｘ座標，Ｙ座標，幅，高さ）という形式の矩形情報に対して「歩行」という姿勢パターンを表す文字列が、解析結果ＤＢ330に映像解析結果として保持される。同様に、図９はカメラＩＤ2の入力画像に対する映像解析結果例である。項目は同じであるが、カメラＩＤ2の入力画像に対しては、映像解析ＩＤ1で処理を打ち切っているため、人検出の結果である矩形情報が人かどうかの真偽情報が映像解析結果（「TRUE」）となっており、次映像解析ＩＤは2となっている。
【００３０】
検索時は、ＧＵＩ360上でカメラＩＤ、時刻、行動推定タグなど検索条件を指定し、検索部340は解析結果ＤＢ330から検索条件に合致する解析結果を取得する。このとき、行動推定タグ情報が映像解析結果として登録されており、かつ検索条件に合致していれば該解析結果を検索結果としてＧＵＩ360上に表示する。行動推定タグ情報が映像解析結果として登録されていない場合は、検索時映像解析部350を呼び出し、「映像解析ＩＤ」欄により、実行済の映像解析ＩＤを参照して次の映像解析から残りの映像解析を実行し行動推定タグを得て、行動推定タグ情報を追加した解析結果をＧＵＩ360上に表示する。さらに、検索時映像解析部350は映像解析結果を解析結果ＤＢ330に上書きする。これにより、再度、検索部340により同一画像を対象に別の検索処理を行う場合には、全ての映像解析が実行済なので、映像解析を再実行することなく行動解析タグを取得でき、検索のための映像解析処理を低減できる。
【００３１】
検索時映像解析部350の動作を図１０で説明する。まず、VCA_IDに映像解析を実行する映像解析ＩＤとして「次映像解析ＩＤ」の値をセットし（S21）、CAMERA_IDに映像解析の対象となるカメラＩＤの値をセットする（S22）。CAMERA_IDの画像に対してVCA_IDの映像解析を実行し（S23）、映像解析結果を保存する（S24）。VCA_IDを次映像解析ＩＤに更新し（S25）、VCA_IDが最後まで処理されたか判定する（S26）。最後まで処理されていればそこで処理は終了し、最後まで処理されていなければ処理S23にもどり、処理を続行する。
【００３２】
図８の映像解析結果について検索時映像解析を実行した結果は図１１のようになる。図１１の映像解析結果は行動推定の結果である行動パターンを表す文字列「商品購入」となっており、次映像解析ＩＤは全ての映像解析を実行済なので「−」となっている。全ての映像解析が終了している場合、映像解析結果は検索用タグとして作用する。
【００３３】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【００３４】
100：カメラ、200：ネットワーク、300：映像検索装置、310：バッファメモリ、320：リアルタイム映像解析部、330：解析結果ＤＢ、340：検索部、350：検索時映像解析部、360：ＧＵＩ、800：計算機、801：プロセッサ、802：主記憶、803：補助記憶、804：入出力インタフェース、805：表示インタフェース、806：ネットワークインタフェース、807：バス、808：ディスプレイ、809：入力装置。
【図１】
2019020802.tif 000003
【図２】
2019020802.tif 000004
【図３】
2019020802.tif 000005
【図４】
2019020802.tif 000006
【図５】
2019020802.tif 000007
【図６】
2019020802.tif 000008
【図７】
2019020802.tif 000009
【図８】
2019020802.tif 000010
【図９】
2019020802.tif 000011
【図１０】
2019020802.tif 000012
【図１１】
2019020802.tif 000013