(58)【調査した分野】(Int.Cl.,DB名)
監視対象となる領域の映像を撮像する複数のカメラと、該撮像した映像を記録しながら前記領域内の映像分析情報を収集する映像検索サーバと、少なくとも時刻情報を含む映像検索条件に応じて、該映像検索サーバにより撮像された映像あるいは映像分析情報の少なくとも1つを表示する検索端末を有した映像検索システムにおいて、
映像検索サーバは、
カメラの設置情報及び道路を含む地図情報を保持し、
該複数のカメラの内、該検索端末で任意に選択された物体の映像及びその撮像をした位置及び時刻から、該物体に係る複数の特徴情報を抽出し、
該選択された物体の該特徴情報を用いて、該選択された物体と関連性が推定される1以上のカメラを選択するとともに、カメラ毎に、該特徴情報およびカメラの設置情報を用いて推定出現時刻を算出し、
該選択された物体の特徴情報と類似する特徴情報を呈する映像を、該選択された1以上のカメラの映像の、該推定出現時刻に対応する映像区間内から自動的に探索し、結果を該検索端末に表示させ、
前記映像検索サーバは、
被写体を含む映像を撮影したときの日照或いは天候に関する環境情報を、後に取得できるように該映像若しくは該特徴情報を記録し、
前記探索の結果、前記選択した物体と同一であると判定された物体が発見された場合、上記選択した物体の特徴情報を、該判定された物体の特徴情報と取得した環境情報とに応じて更新或いは追加することを特徴とする請求項1記載の映像検索システム。
前記物体に係る複数の特徴情報は、物体の大きさ、速度、進行方向、カテゴリ、輪郭形状、存在した時刻、画像特徴の内のいずれか複数であることを特徴とする請求項1に記載の映像検索システム。
【実施例1】
【0018】
図1は、本実施例1の映像検索システムのハードウエア構成を示すブロック図である。本例の映像検索システムは、複数であるn個のカメラ1−1〜1−n、映像検索サーバ2、検索端末3を備える。
【0019】
カメラ1−1〜1−nは、それぞれの監視対象領域を撮像する。カメラ1−1〜1−nは、撮像した光学画像を映像信号に変換し、この映像信号を画像入力I/F21に入力する。カメラ1−1〜1−nは、IPネットワークを介して映像検索サーバ2に接続してもよく、マイクを内蔵して音声信号もサーバ2に伝送するようにしてもよい。
【0020】
映像検索サーバ2は、画像入力I/F21、画像メモリ22、CPU23、プログラムメモリ24、ワークメモリ25、記録装置26、撮像情報テーブル27、画像出力I/F28、及びそれらを接続するデータバス29を備える。更に記録装置26は、複数であるn個の個別の記録領域112−1〜112−nと、物体管理データ113を備えている。そして、カメラ1−1〜1−nは画像入力I/F21に接続され、検索端末3は画像出力I/F28に接続されている。
【0021】
検索端末3は、ユーザからカメラIDや撮像日時等の情報(以下、検索条件データ)の入力を受付け、その検索条件データを映像検索サーバへ送信する。また検索結果を表示する。また映像検索サーバ2から受信した検索結果を表示する。
【0022】
映像検索サーバ2において、画像入力I/F21は、入力された映像信号を監視装置2で扱うフォーマット(例えば、幅640画素、高さ480画素)の画像データに変換し、データバス29を介して画像メモリ22に送る。
画像メモリ22は、画像入力I/F21から送られてきた画像データを一時的に保存する。
【0023】
CPU23は、プログラムメモリ24に保存されている動作プログラムに従って、映像解析と映像検索を行う。
映像解析では、ワークメモリ25を使って画像メモリ22に保存された画像の解析を行い、カメラ101の撮像視野内に存在する物体などの情報を得る。そして、物体を検出した時の情報(以下、検出物体情報)をワークメモリ25に一時保存する。例えば、後述の物体確認ステップ202の説明と同様の背景差分法ベースの移動物体検知をし、物体位置にカルマンフィルタ等を適用して追跡処理する。この追跡の初期時には、Haar-like特徴やCoHOG(Co-occurrence Histograms of Oriented Gradients)の検出器を組み合わせ、adaBoostで学習させた識別器を利用して物体のカテゴリ判別、重なった物体の分離、信頼性評価等を行う。
映像検索については物体探索ステップ207で説明する。
【0024】
ワークメモリ25は、解析中の画像データや検出物体情報を保持する。この検出物体情報は、例えば、検出された時刻、物体の存在する領域などを示す情報である。
【0025】
図4に、検出物体情報及び追跡物体テーブルの一例を示す。この検出物体情報及び追跡物体テーブルは映像ソース(カメラ)毎に設けられる。
検出物体情報は、フレーム毎の物体検出(ラベリング)処理の結果が、所定時間分、保持される。検出された時刻はフレームIDで表され、物体の存在する領域(検知物体領域)は、物体の外接矩形の左上と右下の角の座標で表される。このほか、追跡処理に有用な、フレーム内ラベルや物体面積(画素数)等の情報が保持されうる。
追跡物体テーブルは、連続的に検出された、同一であると考えられる物体を集約したデータであり、同一物体毎に、出現フレームID及び退去フレームID、フレーム内ラベル、追跡ラベル、物体特徴の一部(カテゴリや輪郭形状、速度履歴等)が保持される。追跡ラベルは、統合された或いは追跡中の物体にユニークに付されるIDである。出現フレームID及び退去フレームIDは、追跡が開始及び終了した時刻にそれぞれ対応する。追跡中であれば、退去フレームIDは現在のフレームになる。フレーム内ラベルは追跡が終了した(或いは直近の)フレームにおける、その物体のフレーム内ラベルである。種別は、追跡状態やテーブルに追加された理由を示し、追跡失敗(0)、追跡中(1)、検知座標による追跡(2)か、物体特徴(カテゴリ等)による照合を経たもの(3)か、ユーザによりキー画像から指定された物体(4)、カテゴリ判定失敗中(4+失敗回数)等である。追跡物体テーブルは、物体が1度でも検出された時点で追記され、再び検出されることなく所定フレーム数経過した場合に、追跡失敗を示す種別が書き込まれる。もし追跡中に複数の物体の合体や分離が起こったりして物体の一貫性が不確かになる場合、その前後で追跡物体テーブル上の記録を分割し、別の物体として扱うようにする。
【0026】
記録装置26は、予めユーザに設定された記録方法に応じて、画像メモリ22等に一時保存された画像データおよびワークメモリ25に一時保存された検出物体情報が書き込まれ、カメラ1−1〜1−nに対応する記録領域112−1〜112−nに保持する。なお、検出物体情報の有無にかかわらず映像にはフレーム毎に撮影時刻を特定できる情報が付与されて記録されることが望ましい。
物体管理データ113は、本実施例に特徴的なものであり、追跡或いは探索した物体の特徴情報(
図2の物体特徴収集ステップ203で詳述する)や経路情報を保持する。
図5に、物体管理データ113の一例を示す。
【0027】
撮像情報テーブル27は、カメラ1−1〜1−nの設置位置、画角情報、撮像範囲の実距離情報、及び全カメラの位置を網羅した地図情報を保持する。これらの情報は、手動で与えられるほか、カメラ1と通信を行って取得することもできる。
【0028】
画像出力I/F28は、検索端末3との間でソケット通信を行うためのネットワークインタフェースであり、検索条件データを受信したり、検索結果の画像等を送信したりする。
CPU23は、映像検索として、プログラムメモリ24に保存されている検索プログラムに従って、検索条件データに該当する画像の照合を行ない、画像が存在する場合は、記録装置26から該当する画像データ及び必要に応じて検出物体情報を読出し、画像出力I/F28を介して検索端末3に送信する。
【0029】
図2は、本例の検索システムにおいて、ユーザが選択した画像に存在する物体を、複数のカメラで撮像された映像データから時系列に探索した結果を表示する手順を示すフローチャートである。
キー画像設定ステップ201では、検索端末3に表示された検索画面において、自動探索すべき物体が表示された画像を指定する操作をユーザが行なうことにより、本処理において主となる画像(以下、キー画像)が設定される。
図6にキー画像の一例を示す。このキー画像はカメラ1の撮影視野角のままの画像(フレーム)である。
【0030】
物体確認ステップ202では、キー画像設定ステップ201で設定されたキー画像に探索対象物体が存在するか確認するステップである。一例として周知の背景画像との差分検出や、時間的に近接するフレーム間の差分処理により、前景物体や移動物体が検知でき、検出サイズが所定の範囲内のものを探索対象物体の候補とする。探索対象物体の候補が1体存在する場合は、それがそのまま探索対象物体となり、ステップ203に進む。物体が存在しない場合は画面上に通知して、ユーザ自動探索すべき物体が表示された画像を再指定できるような状態に戻し、再度キー画像設定ステップ201を実施するようにする。また、キー画像に複数の探索対象物体の候補が存在する場合は、いずれか1体の物体を指定させる画面状態とすることで、ユーザに1つの探索対象物体を選択させる。
【0031】
物体特徴収集ステップ203では、映像検索サーバ2は、物体確認ステップ202で設定された探索対象物体について取得可能である全ての特徴を自動的に収集する。キー画像から前後の画像を確認して、探索対象物体がカメラの撮像視野内に進入したときのフレームから退去したときのフレームまでの間の、物体が存在する画像を使用して、例えば、対象物体の「大きさ」、「速度」、「進行方向(進入時/退去時)」、自動車・二輪車・人などの「カテゴリ」、「輪郭形状」、「存在する時刻」、「音」の他、車体の色やナンバープレート、ヘッドライトの個数や光源の位置、服の色や顔画像などの「カテゴリ固有の詳細特徴」などの特徴(以下、物体特徴)を抽出する。これらの特徴として、HOG(Histograms of Oriented Gradients)特徴量もしくはその派生物(時空間CoHOG等)を利用できる。抽出の詳細は後述する。
また、特徴抽出に使用した画像の環境状態(天候、時刻など)も収集する。これは、以降のステップで、得られた物体特徴の信頼性を判断するために使用するものである。
このようにして収集した特徴情報を、物体管理データ113として記録装置26に保存する。
【0032】
カメラ推定ステップ204では、物体特徴収集ステップ203で収集された物体特徴および撮像情報テーブル27を用いて、現在のカメラ以外で探索対象物体が撮像されたと推定されるカメラの選定を行なう。例えば、物体特徴の「進行方向(進入時および退去時)」や「速度」と、撮像情報テーブル27に記載されている各カメラの設置場所を照合して、探索対象物体が通過する可能性があるカメラを洗い出す。そして、選定されたカメラに対して、探索する順序を決定する。探索順序については、撮像情報テーブル27にある道路情報やカメラの向きから、現在のカメラから優先する方角などを予め決定しておく。また、キー画像を撮影した時刻から前の時刻(以降、事前時刻)と後の時刻(以降、事後時刻)で少なくとも2台のカメラを推定するが、事前または事後のどちらを優先するか、または事後のみなど一方向の時間帯のみ物体探索をするなどは、ユーザが経験的に(手動で)決定するようにしても良い。
【0033】
ここで、
図7のように監視エリア内にカメラA〜Eの5台が設置されている状態で、探索対象物体がカメラAの映像に映っており、矢印のような左(西)方向への「進行方向」情報を取得した場合を考える。カメラAはある十字路を撮影しており、この「進行方向」情報は、十字路を東から西へ直進したことを示す。このとき、探索対象物体が通過する可能性があるカメラは、例えば重みつきグラフの理論によりB・C・Eの3台と推定される。
検索対象物体の推定移動経路と推定されたカメラとの関係を
図8に示す。
図8で、実線矢印が事後時刻の推定移動経路、破線矢印が事前時刻の推定移動経路を示す。
図8より、事後と推定されるのはカメラBのみ、事前と推定されるのがカメラCおよびEの2台となることが分かる。
【0034】
なお、カメラの推定は、簡易的には撮像情報テーブル27を参照して、カメラAから所定距離内にあるカメラを、近い順に所定数特定するだけもよい。
グラフを用いる方法では、まず、撮像情報テーブル27を参照して、カメラAが撮影している1乃至複数の道路の内、方向が「進行方向」情報に一致するものを特定する。次に、撮像情報テーブル27の地図情報が有するグラフの隣接行列或いは隣接リストを用い、カメラAに相当するノードから出発して所定のコスト内で辿りつけるノードを全て(或いは所定数に達するまで)検索する。このグラフは、カメラの設置点と主要な交差点等をノードとし、辺には通過所要時間に相当する重みが与えられたグラフである。出発点となるノードが十字路であれば最大で4つの辺があるが、「進行方向」情報及び事前/事後の指定により、最初に辿る隣接ノードは1つに限定される。出発ノードから到着ノードまでの辺の重みの和がコストであるが、これは、所要時間の短い経路を選ぼうとする人の行動心理を模して、自然なルートを検索するためのものである。
図8の例ではカメラB・C・Eが検索結果である。
このようなグラフを作成するにあたり、道路の情報には、例えば国土地理院の発行する数値地図を利用できる。この数値地図の交通施設サブパッケージに定義される道路中心線は道路の場所を折れ線で表した空間属性を含む。進行方向により異なる重みを与えられるように有向グラフを作成してもよい。目的であるカメラ設置点間のコスト計算への影響の少ない道路(辺)や交差点(ノード)を削除して、グラフを簡略化することが望ましい。
【0035】
次に、探索順序を決定する。もっとも簡単な方法では、推定された3台のうち、キー画像を得たカメラAから設置距離の近い順、或いは、グラフを用いている場合はノード探索時のコストの小さい順とする。
やや改良された方法では、キー画像を得たカメラAの位置を基準とし、矢印で示される「進行方向」と、推定された各カメラの場所の方向とのなす角に応じた重みを、上記の距離やコストに付与する。
図8の例では、事前時刻として複数のカメラ(カメラCおよびE)が推定されている。この場合は、「進行方向」情報と逆向き(つまり到来方向)に伸ばした半直線と、各カメラの方向の半直線との成す角を計算し、角度が0ならば1、角度が180に近づくほど単調減少する重みを与える。この結果、キー画像のカメラAよりも右(東)側に存在するカメラを優先的に実施するようにすることで、移動経路に違和感のないカメラを優先的に選定できるようになる。
【0036】
より改良された方法では、グラフを用いてノード探索する際に、ノードでの分岐に応じて確率を配分する。
図8の例では、カメラAから経路を辿るとカメラCへの道とカメラEへの道に分岐するので、一例として、カメラCおよびEそれぞれの確率を0.5と0.5に配分する。この配分は、撮像情報テーブル27内にグラフ情報としてノード毎に保持しておいてもよく、「進行方向」情報等の物体特徴に応じて自動で配分してもよい。
ここでは、事前と事後の両方を探索対象とし、カメラB、カメラC、カメラEの順で各カメラの映像を探索することに決定されるものとする。
【0037】
図2に戻り、探索カメラ確認ステップ205では、カメラ推定ステップ204において探索するカメラが一台以上存在するかを確認する。ここでは、カメラB、C、Eと3台のカメラがあるため、ステップ206へ進む。また、カメラ推定ステップ204において探索すべきカメラが一台も存在しなかった場合は、探索終了としてステップ211(後述)に進む。
【0038】
未探索カメラ確認ステップ206では、カメラ推定ステップ204で決定されたカメラの映像で探索対象物体の探索が実施されたかを確認するステップである。初期的には、推定された全てのカメラの映像が未探索のため、物体探索ステップ207へ進む。
【0039】
物体探索ステップ207では、推定されたカメラの映像に存在する物体から、探索対象物体との特徴を照合して同一と思われる物体を検索する(映像検索)。まずカメラBの映像を用いて探索を開始するが、
図7のように、キー画像の撮像時刻が21時15分であると仮定して以降説明する。
キー画像の撮像時刻および物体特徴収集ステップ203で収集した物体特徴の「カテゴリ」や「速度」と、撮像情報テーブル27に保存されているカメラの設置情報から、カメラBに探索対象物体が進入する時間を算出する。算出した結果、カメラBの推定撮像時刻は21時17分だとする。この時刻に対してある一定の幅、例えば前後5分を追加することで誤差による見落としを回避する映像を使用して探索を実行する。ただし、カメラAでの撮像時刻21時15分より前の時間は除外する。
【0040】
従ってカメラBでは、撮像時刻21時15分から21時22分の7分間の映像を検索すべき映像(以下、区間映像)とする。この区間映像に存在する物体に対して、物体特徴収集ステップ203で収集した物体特徴と同様に特徴の抽出を行なう。区間映像に存在する物体の有無に関しては、記録装置26に記録された時点で同時に付加された検知情報(検知物体領域、カテゴリ等)を元にして、物体が存在するフレームのみ特徴抽出を実施してもよいし、区間映像全てに対して差分処理などを用いて物体検知を行ない、その結果として得られた物体領域の画像に対して特徴抽出を行なうようにしてもよい。物体管理データ113に過去の追跡処理結果が保持されていれば、その物体を採用できる。
【0041】
現在参照しているフレーム中の物体から得られた物体特徴と探索対象物体の物体特徴とを照合して、予め設定したしきい値以上の類似度が得られた場合、現在の物体と探索対象物体は同一物体であると判定する。物体特徴の照合方法は、各特徴量に対してしきい値を設け、複数の結果に基づいて判定するようにしても良いし、全ての特徴量(弱識別器)から1つの総合値を算出する式を準備しておき、得られた総合値から判定するようにしてもよい。また、環境状態に応じて物体特徴にプライオリティを設けておくことで照合結果の信頼性を向上させる。例えば、キー画像の時刻や区間画像の時刻が21時台と夜間であり、撮像情報テーブル27に保存されているカメラにおける撮像範囲内の照明情報と合わせて、撮像範囲が一定以下の照度である場合は低コントラスト時刻と判定し、低コントラスト環境で特徴抽出精度が低下する「物体の色」や「輪郭形状」などの特徴による照合のプライオリティを下げ、逆に昼夜を問わない「音」や夜間特有の「ヘッドライト」に関連する特徴のプライオリティを上げることにより、環境変化によって精度が変動しないような照合処理を実施する。また、区間映像に存在する物体は一定時間、少なくとも数フレームは画面内に存在することを前提として、連続して照合結果が一致であると判定された場合、探索対象物体と同一であると見做す。
【0042】
また、本ステップを高速に実施するため、探索対象物体と大きく特徴が異なる場合、例えば、「カテゴリ」が異なるなどの場合は現在の物体に対する特徴抽出処理を打ち切り、次に存在する物体の特徴抽出処理に移る。また、本説明では同一と判断される物体を見つけても区間映像内は全て探索することを想定しているが、物体を見つけた時点で物体探索ステップ208を終了して、ユーザに探索対象物体と同一であるかを確認する画面を表示するようにして、異なる物体であるとユーザに操作された場合は、物体探索ステップ207を再開して区間映像での未探索の映像を照合処理するようにして処理時間を短縮するようにしてもよい。
ここでは、探索対象物体と同一であると照合判定された物体が2体存在するとして次のステップへ進む。
【0043】
該当物体確認ステップ208は、物体探索ステップ207において探索対象物体と同一の物体が存在するかを確認するステップである。本説明では、先のステップで2物体が該当したため、次のステップへ進む。また、1体も見つからなかった場合は、探索カメラ確認ステップ205へ戻り、未探索のカメラがあれば、再度物体探索を実施する。
【0044】
物体数確認ステップ209では、該当する物体が1体であるかを確認するステップである。1体のみであれば次のステップに進む。また、本説明では2体あるため“1”へ進み、以降
図3のフローチャートで説明する。
候補物体表示ステップ301では、
図9のように、照合結果から複数の物体が探索されたという通知と、一連の映像中で最も大きく撮影されているなど各物体の詳細を確認しやすい画像をそれぞれ検索端末3に表示させる。
探索物体選択ステップ302では、候補物体表示ステップ301で表示された画面から、ユーザが選択した画像の物体または該当無しの情報を取得する。
選択物体有無ステップ303では、ユーザが選択した画面の物体情報から、いずれか一体の物体が選択された場合は“2”に進み、該当無しと選択された場合は“3”に進む(
図2のフローチャートに戻る)。
なお、ここでは、探索対象物体と同一であると照合判定された物体が複数存在する場合のみユーザへの確認処理を実施しているが、一体の場合でも同様にユーザへの確認処理をすることによって、ユーザによる画像確認および操作が増加するが、誤った照合判定結果による継続探索を未然に防止するような手段にしてもよい。
【0045】
物体特徴更新ステップ210では、物体探索ステップ207で探索した物体の物体特徴を、物体管理データ113に追加或いは更新する。該当物体確認ステップ208で該当と判断された探索対象物体(該当物体)であれば、その該当物体とキー画像の物体が、同じ同一物体コレクションのメンバーとなる。
図5に示すように、同一物体コレクションは、そのIDと、メンバーの個数、経路情報、及びメンバー数分の物体特徴及び統合情報のセットで構成される。
この時、「進行方向」や「速度」、「時刻」など、同一物体でもカメラに映るたびに発生する情報は、それぞれの「物体特徴」に含まれて保持される。一方、「輪郭形状」や「服装のパターン」などは現在保持する特徴情報と比較して一致する場合は、それらを統合して、より信頼性が高い特徴情報を生成したり、或いはその情報の信頼度を高める更新をし、照合判定でのプライオリティを上げることができる。
【0046】
更に、環境状態に応じて特徴情報を更新するか判定し、信頼性の低いと想定される特徴情報は更新しないことが望ましい。例えば、低コントラスト状態で取得された「輪郭形状」や「物体の色」情報などは信頼性が低いため、更新すべき特徴情報から除外する。このように情報更新することで、安定した物体特徴情報で精度の高い物体照合が可能となる。
本ステップ終了後、カメラ推定ステップ204へ戻る。
【0047】
別のカメラの映像探索を行うため、再度、カメラ推定ステップ204の処理を行なう。ここで、最優先のカメラであるカメラBの映像探索が終了しているが、キー画像に対して事後時刻での探索であったため、次に事前時刻での進入が推定されるカメラCを探索すべきカメラとして、先程と同様に探索カメラ確認ステップ205、未探索カメラ確認ステップ206、物体探索ステップ207を実施する。物体探索ステップ207を実施した結果、本例では該当物体は「無し」として、該当物体確認ステップ208から再び未探索カメラ確認ステップ206へ戻る。
今度は、事前時刻での進入が推定されるカメラEを探索すべきカメラとして、探索カメラ確認ステップ205、未探索カメラ確認ステップ206、物体探索ステップ207を実施する。ここで、該当物体が1体存在するとした場合、該当物体確認ステップ208、物体数確認ステップ209を通過し、物体特徴更新ステップ210で再度物体管理データ113に保存される特徴情報に対して、物体探索ステップ207で探索した物体の特徴情報の更新および追加を行なった後、再度カメラ推定ステップ204へ戻る。
【0048】
図10に、この時点で収集されている各カメラでの探索対象物体の立ち位置とその時刻情報を示す。
当初カメラ推定ステップ204で推定されたカメラB、C、Eの全ての映像探索は終了したが、十分な映像が見つからなかった場合、ユーザは、探索対象物体が新たに撮像されたと推定されるカメラを含め、未探索のカメラ及び映像区間の選定を行なうことができる。例えば、事後時刻の映像はカメラBを始点として、事前時刻の映像はカメラEを始点として、物体特徴および撮像情報テーブル27を用いてカメラを選定する。
本例では、
図7に示したように、それぞれのカメラの事前事後を撮像するカメラが監視領域内には存在しないことから、選定されるカメラは無いという結果になる。
【0049】
探索カメラ確認ステップ205では、探索すべきカメラが0であるため物体ルート生成ステップ211に進む。
物体ルート生成ステップ211では、物体管理データ113に保存された物体特徴および撮像情報テーブル27を用いて、探索対象物体の確からしい移動経路を生成する。本例では、既に探索された該当物体が2体存在しており、其々の各種情報から移動経路を生成するが、探索物体が全く存在しない場合は、カメラの撮像範囲を通らない移動経路を撮像情報テーブル27を用いて生成する。
【0050】
物体ルート画像表示ステップ212では、
図12に示すように、各カメラの映像で探索された探索対象物体の表示と、探索対象物体が通過した経路を表示する。
図12の例では、地図画像上に、物体の移動経路と、各カメラでの探索対象物体のサムネイル画像を表示している。サムネイル画像を選択することによって、探索対象物体が通過する映像を再生するようにしてもよい。また、通過経路生成時に予測された幾つかの候補がある場合は、点線で表示したり確度に応じて色を薄く表示したりすることで予測経路が存在することを示す。
このように、新たに類似する物体が発見されたときにユーザに確認を求めるようにしたので、経路の絞り込みをインタラクティブに行うことができる。
【0051】
なお本例では、探索すべきカメラを自動で推定する説明を行なったが、予め移動経路が絞れている場合などを考慮して、ユーザが探索を優先すべきカメラを指定することで効率よく物体探索を行なうようにしてもよい。また、既存の記録画像に対して任意の物体探索を実施する説明を行なったが、探索対象物体が他のカメラの範囲内を通過するとリアルタイムに推測した場合は、フレームレートや画質を上げるなどで物体映像を詳細に記録するような手段を追加してもよい。また、探索物体が見つからなかった場合などのために、キー画像のカメラから設置位置が近い順に、配置されているすべてのカメラに対して、ある一定の範囲時間内で物体探索を実施する強制探索モードなどを設けてもよい。
【実施例2】
【0052】
本実施例2では、先の実施例1の映像検索システムの物体探索ステップ207において、物体追跡や物体特徴の情報が全くない圧縮符号化映像から映像探索する動作の詳細を説明する。
図13は、本例の映像探索のシーケンス図である。映像探索を行う基本的な機能単位として、映像復号部、物体検出・追跡部、カテゴリ化・特徴量抽出部、及び類似判断部があり、この中で処理負荷が最も大きいのは映像復号部である。
図13ではCPU時間を重視して示してある。
【0053】
映像復号部(デコーダ)は、H.264方式で符号化された映像を復号する。このデコーダは、復号映像品質を指定することができ、VGAサイズの記録映像であれば、品質を妥協することで撮影時のフレームレートの数十倍で復号できる。また、画面全体を完全に復号するのではなく、例えば画面を16分割した領域を任意指定し、その領域でのみ再構築画像を生成し、その領域外を参照する動き補償等を全て省略することもできる。H.264では動きのない領域はスキップマクロブロックとなるため、所定の指示を受けたデコーダは、Iスライスを除き毎フレーム、画面全体に対してマクロブロック単位での動きの有無を出力する。また任意のプロセッサ数を指定してマルチプロセッサで実行したり、GPUで実行することもできる。
本例では、物体検出・追跡部、カテゴリ化・特徴量抽出部、及び類似判断部は、統合された1つのプロセスとして実行され、1フレーム分の処理を完了すると、実行権を手放すシステムコール(POSIX システムであればsched_yield)を行う。或いは、各部をそれぞれを子プロセス或いはユーザレベルスレッドとしてfork(prefork)してもよい。
また実際には、リレーショナルデータベース(RDB)サーバのプロセスも1つ以上起動しており、物体特徴の登録、検索等を提供する。デコーダやRDBサーバはI/O待ちが発生しうるので、これらは別プロセスにして、OSにCPU時間を管理させるものとする。デコーダや物体検出・追跡部、カテゴリ化・特徴量抽出部、及び類似判断部は、検索端末3で実行させてもよい。
【0054】
動作を説明する。
最初に、デコーダは、ユーザからの映像ファイルや再生開始点の指定に応じて(拾得メッセージを受けて)起動し、スタンバイする。再生開始点は、実施例1の物体探索ステップ207で求めた映像区間の先頭に相当する。
ほぼ同時に、物体検出・追跡部も、ユーザからの要求に応じて(拾得メッセージを受けて)起動し、デコーダに再生(或いは新たな復号フレーム)を要求する。またソフトウェアポーリング等により共有メモリの定期的な監視を開始する。またログ用のテキストファイルを開き、映像探索の対象となる映像ファイルおよび再生開始点、現在日時等の情報を書き込む。
これを受けてデコーダは、映像復号化を開始する。指定された再生開始点は、その直前のIDRフレームに変更されうる。復号された映像はフレーム毎の画像データとして、再生位置(映像の先頭からの経過時間)情報等とともに共有メモリ上に書き出される。
次に、物体検出・追尾部が、背景フレームを作成する。最初は復号フレームを単純に加算していき、4、8、16ときりのよいフレーム数になったところでそれを仮の背景フレームとし、以後、仮の背景と差分のある領域を除外して平均化することで、背景フレームを得る。
【0055】
背景フレームが用意できると、物体検出・追跡部は、デコーダによる復号フレームの書き出しを感知するたびに、背景差分のラベリングによる物体検出と、物体の追跡処理を開始する。追跡処理は複数の物体に対して並列に行われる。追尾結果は、追跡物体テーブル(
図4)として蓄積されるほか、所定の条件を満たすと、カテゴリ化・特徴量抽出部へ、当該物体の部分画像とともに(別プロセスの場合は非同期で)渡される。所定の条件としては、物体の画像上のサイズが所定値を超えた、所定値を超える前に追尾終了した、等であり、詳細は後述する。追跡物体は追跡ラベルにより区別される。
【0056】
カテゴリ化・特徴量抽出部は、追跡結果を受け取ると、必要に応じて追尾物体画像のサイズのスケーリングをする。スケーリングの1つの目的は、物体画像サイズが、カメラと物体の距離に依存しないようにすることであり、撮像情報テーブル114のカメラパラメータに基づき、画像上での位置から物体の距離を推定して行う。このスケーリングを行ったにもかかわらず物体画像サイズが大きい場合、その画像は複数の物体を含んでいる可能性があることが分かる。他のスケーリングでは、画像のサイズを常に一定にする。
【0057】
その後、探索対象物体のカテゴリに対応する識別器を使って、カテゴリを判定する。例えば人を探している場合、人識別器のみを試行すればよい。車両は、車種により外見が多様であり、日中、照明のある夜間、真っ暗な夜間(ヘッドライト等だけが映っている)で映り方に差異が大きく、これらに応じて多数の識別器が存在するが、基本的には、探索対象物体の識別に成功した識別器のみを試行すればよい。識別は、部分画像内で位置(やスケール)を変えながら識別器の値が高くなる場所を走査する処理であり、初期的には、走査範囲は広めにとる。部分画像が物体の影を含む場合、識別位置(部分画像内での相対位置)を学習することで、同じカメラで同じ時間帯に撮影された映像に対しては走査範囲を絞ることができる。識別器の値が最大となる位置で閾値処理し、真であれば、探索対象のカテゴリに一致したと判定され、続いて類似検索用の特徴量抽出を行う。偽であれば、カテゴリ非該当である旨と閾値処理前の識別器の値を、物体検出・追尾部に返す。
特徴量抽出では、識別器で判定された位置で物体画像を再度切り出して、カテゴリに固有の特徴量を抽出する。カテゴリが人の場合、更に顔識別器を適用して顔領域を検出し、顔領域から特徴量を抽出し、顔領域以外(つまり体)から服の色等を抽出する。特徴量がHOGであり、識別器もHOGベースであれば、識別器で行った計算を再利用できる。抽出が完了すると、特徴量を、それが抽出されたときのフレームID(再生位置)とともに類似判定部に渡す。
【0058】
類似判定部は、予め抽出されていた探索対象物体の特徴量と、カテゴリ化・特徴量抽出部からの特徴量の非類似度(重み付ノルム)を計算し、類似/非類似の判定結果と非類似度の値をカテゴリ化・特徴量抽出部へ返す。類似(非類似度が閾値未満)のときに両者は同一物体(人物)であると判定し、ユーザへ向けてフレームIDや追跡ラベル等とともに通知する(消失メッセージ)。
ユーザ側GUIでは、ウィンドウが存在しなければ、新たに
図9の様な確認画面ウィンドウを作成し、ユーザの確認操作待ちであれば、確認画面に表示する画像を追加していく。
【0059】
カテゴリ化・特徴量抽出部は、受け取った判定結果と非類似度に応じて、RDBサーバへSQL文を発行する。判定結果が類似/非類似の両方とも、当該物体の物体特徴のカテゴリ判定結果とカテゴリ信頼度を挿入(insert)し、またカテゴリのサブテーブルを作成し、カテゴリ固有の特徴量を挿入する。判定結果が類似のときは、同一物体コレクションのテーブルの有無を調べ、なければ作成し、
図4に示す各データを挿入或いは更新することができる。ここで統合特徴は、複数の物体特徴を統合して信頼性を高めたものであり、信頼度(物体特徴の個々の成分の分散)等も含む。統合情報は、対応する物体特徴を統合したときの状況を示すもので、統合理由はユーザによる目視確認の未/済等を示す。このようにRDBサーバに登録しておくと、以後映像データを直接扱うことなくRDBサーバ上で類似検索が可能になる。特に、統合情報の信頼度を、類似判定部が非類似度を計算する際の重みにフィードバックすることで、その物体の探索精度を向上できる。本例では同時に1つの探索対象物体しか扱わないので、統合情報の信頼度はRDB上で更新するのではなく、カテゴリ化・特徴量抽出部の内部で保持し、類似判定部に渡すようにしても良い。
カテゴリ化・特徴量抽出部は、受け取った判定結果を、物体検出・追跡部へ通知する。
【0060】
物体検出・追跡部は、非該当或いは非類似の通知を受け取ると、その物体についてのカテゴリ再判定の要否を判断する。1つの追跡物体に対する判定回数に上限(例えば4)を設け、上限に達した場合や、識別器の値(スコア)が異常に低い場合や、非類似度が高い場合に否となる。それ以外の場合、例えば非類似度が閾値よりわずかに高く非類似と判定されたような場合は要となり、追跡物体テーブルを参照してその物体が追跡中であれば、追跡終了するまで待つ。追跡終了した場合、追跡時間を参照し、追跡時間が所定値以下であれば、それに応じて判定回数に上限を3以下に変更する。
【0061】
その後、現在の判定が2回目であれば追跡期間を第1の比で内分した位置で、3回目であれば第2の比で内分した位置で、当該物体の部分画像を取得してカテゴリ化・特徴量抽出部に渡し、再判定を行う。ここで第1〜2の比は例えば、それぞれ、追跡期間の中央付近(物体の大きさが最も大きく映るフレームに相当)、追跡期間の終了間際(物体の画像上のサイズが所定値より大きい最後のフレームに相当)であり、別途、最適化手法を用いて学習させる。現在の判定が4回目であれば、追跡期間を1〜3回目の判定の識別器の値の3次補間等により推定した最大位置で再判定する。判定回数の上限は、ユーザから高速探索を指定されているときは、更に小さく設定される。
【0062】
物体検出・追跡部は、類似の通知を受け取るか、デコーダの再生の終了(停止)、自己或いは子プロセスの終了を示すシグナル等を感知すると、必要に応じて子プロセスの終了等を行い、ログ用のテキストファイルに最後の再生位置、現在日時等の情報を追記して閉じ、終了する。ログファイルは、映像ファイルにおける映像探索の未/済の状態を示す記録となり、映像探索が途中を示す場合、適宜中断箇所から探索を再開し、映像全編のRDB登録を完了することができる。
このように、本実施例2では、類似/非類似度判定結果を非同期でユーザに通知し、ユーザの確認結果を待たずに残りの映像についても映像探索を続行するようにしたので、映像全編を確認する時間をより短縮できる。