(57)【特許請求の範囲】
【請求項１】
平面上の所望の計測点から、あらかじめ設定された特徴点のうち最近傍の特徴点までの距離を求める装置において、
前記特徴点の配置を平面上に表した特徴点マップを取得し、前記特徴点マップ上の各格子点から所定の軸方向において最近傍にある特徴点までの距離を、格子点値として格子点ごとに記憶した距離マップを生成する距離マップ生成部と、
前記計測点から、前記所定の軸方向と垂直な方向にある各格子点までの距離と、前記距離マップにおける当該格子点の格子点値とから、前記計測点から特徴点までの距離を計算し、そのうち最も小さい値を前記最近傍の特徴点までの距離とする特徴点探索部と、
を含むことを特徴とする特徴点探索装置。
【請求項２】
入力画像からエッジを抽出したエッジ画像上の各画素から、所定の軸方向において最近傍にあるエッジまでの距離を、当該画素の画素値として記憶した距離マップを生成する距離マップ生成部と、
複数の単位点を含むテンプレート曲線の位置および形状の少なくとも一方を変化させた複数の候補曲線を生成するサンプリング部と、
前記複数の候補曲線に含まれる複数の単位点のそれぞれについて、当該単位点に対して前記所定の軸方向と垂直な方向にある複数の画素を探索先画素とし、各探索先画素までの距離と、前記距離マップにおける当該探索先画素の画素値とから、当該単位点からエッジまでの距離を計算し、そのうち最も小さい値を選択することにより、最近傍のエッジまでの距離を取得するエッジ探索部と、
前記エッジ探索部が取得した、各候補曲線に含まれる複数の単位点から最近傍のエッジまでの距離に基づき、前記複数の候補曲線と前記入力画像とのマッチングを評価する評価部と、
を含むことを特徴とする画像解析装置。
【請求項３】
前記エッジ探索部は、前記探索先画素とする画素の数を、前記候補曲線の大きさによって変化させることを特徴とする請求項２に記載の画像解析装置。
【請求項４】
コンピュータが画像上の所定の位置から最近傍の特徴点を検出する方法であって、
特徴点の配置を平面上に表した特徴点マップのデータをメモリに格納するステップと、
前記メモリを参照して、前記特徴点マップ上の第１の軸方向における最近傍の特徴点までの距離を格子点ごとに取得し、格子点値として前記メモリに保存するステップと、
前記所定の位置から第２の軸方向にある複数の格子点までの距離と、前記メモリに記憶した当該格子点の格子点値とから、前記所定の位置から前記特徴点までの距離を算出するステップと、
前記特徴点までの距離から最小の値を選択することにより前記最近傍の特徴点を特定するステップと、
を含むこと特徴とする最近傍特徴点検出方法。
【請求項５】
コンピュータに画像上の所定の位置から最近傍の特徴点を検出させるコンピュータプログラムであって、
特徴点の配置を平面上に表した特徴点マップのデータをメモリに格納する機能と、
前記メモリを参照して、前記特徴点マップ上の第１の軸方向における最近傍の特徴点までの距離を格子点ごとに取得し、格子点値として前記メモリに保存する機能と、
前記所定の位置から第２の軸方向にある複数の格子点までの距離と、前記メモリに記憶した当該格子点の格子点値とから、前記所定の位置から前記特徴点までの距離を算出する機能と、
前記特徴点までの距離から最小の値を選択することにより前記最近傍の特徴点を特定する機能と、
をコンピュータに実現させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理技術に関し、特に所定の位置から最近傍の特徴点を探索する特徴点探索装置、マッチングを行う画像解析装置、および最近傍特徴点検出方法に関する。
【背景技術】
【０００２】
情報処理の分野において、画像中の任意の箇所から、あらかじめ配置された特徴点のうち最近傍の特徴点までの距離を計算することは、様々な場面で必要とされる処理である。例えば、パーティクルフィルタを視覚追跡に応用したコンデンセーション(Condensation; Conditional Density Propagation)アルゴリズムでは、サンプルポイントを表すパーティクルの観測として、各パーティクルによって決定される候補曲線の単位点ごとに、特徴点である最近傍のエッジを探索する（例えば非特許文献１参照）。
【０００３】
その他、特徴点として配置された障害物を避けて行動する群集エージェントのシミュレーションでは、各エージェントの最近傍にある障害物を探索してその相対位置を把握しながら、進む方向を決定していく。
【０００４】
例えばコンデンセーションアルゴリズムでは一般的に、計算対象の単位点からその候補曲線の法線方向に走査を行ってエッジを探索する。そして検出したエッジまでの距離を計算し、その距離の短い方を最近傍のエッジとする。これをパーティクルによって定まる多数の候補曲線に含まれる単位点ごとに繰り返し行う。
【非特許文献１】CONDENSATION - conditional density propagation for visual tracking, Michael Isard and Andrew Blake, Int. J. Computer Vision, 29, 1, 5-28 (1998)
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述の距離計算をどのような場面で行うにしろ、最近傍の特徴点を精度良く探索し、そこまでの距離を計算するには多くの計算コストが必要となる。また、コンデンセーションアルゴリズムにおいて候補曲線の単位点の数やパーティクルの数を増加させたり、群集エージェントのシミュレーションにおいてエージェントの数を増加させたりといった、距離計算を利用する側の要請によって距離計算を必要とするポイントが増えると、計算コストはさらに増大する。
【０００６】
本発明はこのような課題に鑑みてなされたものであり、その目的は、ある位置から最近傍にある特徴点の探索を効率的に行うことのできる技術を提供することにある。
【課題を解決するための手段】
【０００７】
本発明のある態様は特徴点探索装置に関する。この特徴点探索装置は、平面上の所望の計測点から、あらかじめ設定された特徴点のうち最近傍の特徴点までの距離を求める装置である。そして、特徴点の配置を平面上に表した特徴点マップを取得し、特徴点マップ上の各格子点から所定の軸方向において最近傍にある特徴点までの距離を、格子点値として格子点ごとに記憶した距離マップを生成する距離マップ生成部と、計測点から、所定の軸方向と垂直な方向にある各格子点までの距離と、距離マップにおける当該格子点の格子点値とから、計測点から特徴点までの距離を計算し、そのうち最も小さい値を最近傍の特徴点までの距離とする特徴点探索部と、を含むことを特徴とする。
【０００８】
ここで「特徴点」は不連続な点でもよいし、線を構成する連続的な点でもよい。「格子点」は等間隔のマトリクス状に配された点、または、画素や微細領域など、有限の大きさを有する領域でもよい。後者の場合、例えば領域の重心を基準の位置とすることにより、距離が定義される。
【０００９】
本発明の別の態様は画像解析装置に関する。この画像解析装置は、入力画像からエッジを抽出したエッジ画像上の各画素から、所定の軸方向において最近傍にあるエッジまでの距離を、当該画素の画素値として記憶した距離マップを生成する距離マップ生成部と、複数の単位点を含むテンプレート曲線の位置および形状の少なくとも一方を変化させた複数の候補曲線を生成するサンプリング部と、複数の候補曲線に含まれる複数の単位点のそれぞれについて、当該単位点に対して前記所定の軸方向と垂直な方向にある複数の画素を探索先画素とし、各探索先画素までの距離と、前記距離マップにおける当該探索先画素の画素値とから、当該単位点からエッジまでの距離を計算し、そのうち最も小さい値を選択することにより、最近傍のエッジまでの距離を取得するエッジ探索部と、エッジ探索部が取得した、各候補曲線に含まれる複数の単位点から最近傍のエッジまでの距離に基づき、前記複数の候補曲線と入力画像とのマッチングを評価する評価部と、を含むことを特徴とする。
【００１０】
本発明のさらに別の態様は最近傍特徴点検出方法に関する。この最近傍特徴点検出方法は、コンピュータが画像上の所定の位置から最近傍の特徴点を検出する方法である。そして、特徴点の配置を平面上に表した特徴点マップのデータをメモリに格納するステップと、メモリを参照して、特徴点マップ上の第１の軸方向における最近傍の特徴点までの距離を格子点ごとに取得し、格子点値としてメモリに保存するステップと、所定の位置から第２の軸方向にある複数の格子点までの距離と、メモリに記憶した当該格子点の格子点値とから、所定の位置から特徴点までの距離を算出するステップと、特徴点までの距離から最小の値を選択することにより最近傍の特徴点を特定するステップと、を含むこと特徴とする。
【００１１】
なお、以上の構成要素の任意の組合せ、本発明の表現を方法、装置、システム、コンピュータプログラムなどの間で変換したものもまた、本発明の態様として有効である。
【発明の効果】
【００１２】
本発明によれば、任意の位置から最近傍にある特徴点の探索を効率的に行うことができる。
【発明を実施するための最良の形態】
【００１３】
（実施の形態１）
本実施の形態では、群集を形成するエージェントが同一の目的を持って行動する状況をシミュレーションする場合について述べる。ここでは、水槽の中で複数の魚が泳いでいる状況をシミュレーションするとして説明するが、エージェントは人や動物などに置き換えることができ、それにより水槽は街やゲージなどに置き換えることができる。
【００１４】
図１は、シミュレーションの対象となる水槽内の様子を例示している。水槽２００内には、複数の魚２０２と、塀のような障害物２０４が存在している。魚２０２の数や障害物２０４の大きさ、位置などはユーザにより初期設定される。このシミュレーションでは、魚の位置を時間発展的に解いていく。図１では、水槽２００内の、ある領域２０６を拡大したものを右側に示している。シミュレーションを行うためには同図のように、計算対象のフィールドを２次元マトリクス状の微小領域に分割し、当該微小領域の単位で計算を行う。微小領域は画素と対応していてもよい。
【００１５】
図２は本実施の形態におけるシミュレータの構成を示している。シミュレータ１００は、初期設定部１０２、障害物探索部１０６、行動決定部１０８、データ生成部１１０、データ記憶部１０４を含む。
【００１６】
なお図２において、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、各種条件のもと演算を行うプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００１７】
初期設定部１０２は、水槽２００の大きさ、障害物２０４の位置、魚２０２の数、魚２０２の行動に係るルールなど、計算対象の環境および計算に必要な初期値の入力をユーザより受け付ける。初期設定部１０２ではさらに、ユーザが設定した障害物２０４についてのデータを２次元マトリクスに展開してマッピングを行う。このとき生成されるデータが図１の右側に示したような形式のものであり、以後、これを障害物マップと呼ぶ。初期設定部１０２はさらに、生成した障害物マップに含まれる微小領域のそれぞれに、横方向で最近傍にある障害物２０４までの距離を与えた距離マップを生成する。距離マップについては後述する。ユーザによる設定値および生成された距離マップは、データ記憶部１０４に格納される。
【００１８】
障害物探索部１０６および行動決定部１０８は、シミュレーションの実行時に機能し、魚２０２の位置の微小時間における変位を計算し、計算上の時間を発展させていくことにより魚２０２の位置を決定していく。障害物探索部１０６は、各時刻における魚２０２の最近傍にある障害物２０４を探索し、その距離を魚２０２ごとに算出する。障害物２０４の探索は、魚２０２を中心とした有限の領域において行う。図１の領域２０６では、魚２０２ａに対する探索領域２０８が示されている。探索領域２０８の大きさも、初期設定部１０２に対してユーザが設定することができる。
【００１９】
行動決定部１０８は、魚２０２と障害物２０４との位置関係に基づき、あらかじめ設定した所定の規則に従い魚２０２の微小時間における変位量を計算する。データ生成部１１０は、算出された変位量から、時刻と魚２０２の位置との対応を所定の形式で表し、データ記憶部１０４へ格納する。時刻と魚２０２の位置との対応をデータ記憶部１０４に蓄積していくことにより、魚２０２の位置の時間変化が得られる。このデータを用いて魚が泳ぐ様を動画にしたり、グラフ化したりして、ユーザは所望の出力結果を得る。
【００２０】
次に障害物探索部１０６が行う、魚２０２から最近傍にある障害物２０４までの距離計算の手法について説明する。まず本実施の形態における手法の特徴および効果を明らかにするために、一般的な手法について説明する。
【００２１】
図３は一般的な手法における最近傍の障害物２０４の探索順を示している。この場合、障害物マップにおける探索領域２０８内の左上の微小領域から矢印２１０に示すような順に探索を行う。探索先では、まず障害物２０４の有無を判定し、障害物２０４がある場合は計算対象である魚２０２からの距離を計算する。計算した距離は一時的に、レジスタなどに記憶させておく。これを各微小領域に対して繰り返し、新たに計算した距離が一時記憶させておいた以前の距離より小さければ、レジスタの値を新たに計算した距離に更新する。以上の処理を探索領域２０８に属する全微小領域に対して行えば、魚２０２から最近傍の障害物２０４までの距離がレジスタに記憶されていることになる。
【００２２】
この処理は全ての魚２０２について行われる。ところで多数の魚２０２が近接して存在する場合、それらの魚２０２の探索領域２０８は重複する領域を多く持つことになる。したがって上記の手法では、障害物２０４に対する位置関係が同様である近接した多数の魚２０２について、同様の探索領域２０８における障害物２０４の探索を繰り返し行わなくてはならない。
【００２３】
そこで本実施の形態では、魚２０２の位置によらない、障害物２０４の絶対的な位置情報を障害物マップの全領域に渡って求め、距離マップを生成する。これは障害物２０４の距離計算において、全ての魚２０２に共通に参照されるテーブルのようなものである。具体的には前述のとおり、各微小領域から横方向において最近傍の障害物２０４までの距離を、微小領域のそれぞれに対応づけて記憶する。
【００２４】
図４はこのとき初期設定部１０２が生成する距離マップの例を示している。同図は図１同様、小さい矩形が微小領域２２２、塗りつぶされた微小領域２２２が障害物２０４である。ここでは便宜上、魚２０２の位置および探索領域２０８も示しているが、実際の距離マップ２２０は、各微小領域２２２に横方向で最も近い障害物２０４までの距離を与えたものであればよい。ここで与える数値は、微小領域２２２の幅を１単位とした自然数である。以後、この値を距離値と呼ぶ。なお同図は距離マップ２２０の一部を表しているため、外側にも当然障害物２０４が存在するものとして示している。
【００２５】
図５は上述の距離マップ２２０を用いて魚２０２から最近傍にある障害物２０４までの距離を計算する手順を示している。まず初期設定部１０２は、障害物マップから各微小領域に与える距離値を計算し、距離マップ２２０を生成する（Ｓ３０）。距離マップ２２０は実際には障害物マップに距離値を上書きする形で生成してもよく、距離マップ２２０が障害物マップを兼ねていてよい。
【００２６】
次に障害物探索部１０６は、計算上の各時刻において、全魚２０２に対して以下に述べるＳ３２からＳ４０までの処理を行う。なお同図ではｎ番目の魚２０２についての処理手順のみ示している。Ｎを魚２０２の総数とすると１≦ｎ≦Ｎの範囲で同様の処理を繰り返す。まず、障害物探索部１０６に含まれる図示しないレジスタを初期化する（Ｓ３２）。次に魚２０２の位置から探索領域２０８を特定し、そこに含まれる微小領域２２２の距離値を距離マップから取得する（Ｓ３４）。
【００２７】
次に魚２０２の位置である探索領域２０８の中心から、障害物２０４までの距離を計算する（Ｓ３６）。Ｓ３４において距離マップから取得した距離値は、各微小領域２２２の横方向で最近傍にある障害物２０４までの距離であるから、あとは中心から各微小領域２２２までの縦方向の距離を考慮すれば、中心から障害物２０４までの距離が計算できる。図６はこの場合の探索順を示している。魚２０２の位置から矢印２３０に示すように探索領域２０８内を上下に探索し、その微小領域２２２が保持する距離値と、中心からの縦方向の距離との２乗和などによって、障害物２０４までの距離が計算できる。
【００２８】
図５に戻り、Ｓ３６ではまず探索の出発点である、魚２０２の存在する微小領域２２２の距離値を「現在の最近傍距離」としてレジスタに保存する。次にその上下いずれかの微小領域２２２の距離値と、中心からの縦方向の距離、すなわち"１"とから、その行で最も魚２０２に近い障害物２０４までの距離が計算できる。探索先の微小領域２２２に障害物２０４が存在するときは、当該微小領域２２２までの縦方向の距離を計算値とする。
【００２９】
計算値がレジスタに保存された値より小さければ（Ｓ３８のＹ）、レジスタの値を新たに計算した値に更新する（Ｓ４０）。計算値がレジスタに保存された値以上であれば（Ｓ３８のＮ）、レジスタの値を更新せずに、さらに上または下に隣接する微小領域２２２について計算を行う。以上の処理を、探索領域２０８内で魚２０２の存在する列に属する全ての微小領域２２２について行ったら（Ｓ４２のＹ）、探索を終了する。これによりレジスタには、魚２０２から最近傍にある障害物２０４までの距離が格納されている。
【００３０】
以上述べた本実施の形態によれば、あらかじめ各微小領域の横方向の最近傍障害物までの距離を求めておき、魚の位置と微小領域の縦方向の距離のみを計算時に考慮することにより、魚の位置から最近傍にある障害物までの距離を計算する。これにより、探索領域に含まれる全微小領域について障害物の有無を判定し、魚からそこまでの距離を計算していく一般的な手法と比較すると、探索先の微小領域の数が減るため、シミュレーション実行時における計算量が大幅に削減される。
【００３１】
特に複数の魚が近接している際などは、一般的な手法において必要な、類似計算の反復を大幅に効率化できるため、より効果的に計算量を削減することができる。したがって、魚の数を増加させたり、微小領域のサイズを小さくして解像度を高くしたりと、計算環境を厳しくした場合にも、計算コストの増大を抑制することができる。
【００３２】
さらに本実施の形態は、距離マップの生成や計算アルゴリズムの変更のみで導入可能なため導入障壁が低く、容易に計算の効率化が実現できる。
【００３３】
（実施の形態２）
本実施の形態ではパーティクルフィルタによる視覚追跡を行う。まず前提となる視覚追跡の技術について説明する。図７は人物を追跡対象とした場合の視覚追跡手法を説明するための図である。人物画像５０は実写した動画像やコンピュータグラフィックスなどにより生成された動画像の画像ストリームを構成する画像フレームのひとつであり、追跡対象である人物５２が写っている。
【００３４】
この人物５２の動きを追跡するために、人物５２の頭部輪郭の形状を近似するΩ形の曲線５４を既知の表現で記述する。一方、人物５２を含む人物画像５０にはエッジ抽出処理を施し、エッジ画像を取得しておく。そして曲線５４を規定するパラメータを変化させながら形状および位置を変化させて、その近傍にあるエッジを探索することにより、人物５２の頭部輪郭に最もマッチするパラメータを特定する。以上の処理をフレームごとに繰り返すことにより人物５２の追跡が進捗する。
【００３５】
様々な曲線５４と人物５２の頭部輪郭とのマッチングを行うために、パーティクルフィルタによる確率分布予測技術を導入する。すなわち、ひとつ前のフレームにおけるパラーメータ空間上の対象物の確率分布に応じて曲線５４のサンプリング数を増減させ、追跡候補の絞り込みを行う。これにより存在確率の高い部分に対しては重点的に探索を行うことができ、精度のよいマッチングが効率的に行える。
【００３６】
対象物の輪郭に着目した追跡に対するパーティクルフィルタの適用手法は、例えば非特許文献１に詳述されている。ここでは概要のみを説明する。
【００３７】
まずΩ形の曲線５４を、Ｂスプライン曲線で記述する。Ｂスプライン曲線はｎ個の制御点列（Ｑ０，・・・，Ｑｎ）と単位点列（ｓ０，・・・，ｓｎ）とから定義される。そして基本となる曲線形状、この場合はΩ形の曲線となるように、それらのパラメータをあらかじめ設定しておく。このときの設定によって得られる曲線を以後、テンプレートＱ０と呼ぶ。なお、図７で示した人物画像５０における人物５２の追跡を行う場合は、テンプレートＱ０はΩ形であるが、その形状は追跡対象によって変化させる。すなわち追跡対象がボールであれば円形、手のひらであれば手の形状となる。
【００３８】
次にテンプレートの形状を変化させるための変換パラメータとして、形状空間ベクトルｘを準備する。形状空間ベクトルｘは以下のような６つのパラメータで構成される。
【００３９】
【数１】
0004692969.tif 000002
【００４０】
ここで（shiftｘ，shiftｙ）は（ｘ，ｙ）方向への並進量、（extendｘ，extendｙ）は倍率、θは回転角である。そして形状空間ベクトルｘをテンプレートに作用させるための作用行列Ｗを用いると、変形後の曲線、すなわち候補曲線Ｑは以下のように記述できる。
【００４１】
【数２】
0004692969.tif 000003
【００４２】
式２を用いれば、形状空間ベクトルｘを構成する６つのパラメータを適宜変化させることにより、テンプレートを並進、伸縮、回転させることができ、組み合わせによって候補曲線Ｑの形状や位置を種々変化させることができる。
【００４３】
そして、制御点列、および単位点列の間隔といったテンプレートＱ０のパラメータや、形状空間ベクトルｘを構成する６つのパラメータを変化させることによって表現される複数の候補曲線について、各単位点の近傍にある人物５２のエッジを探索する。その後、エッジとの距離から各候補曲線の尤度を求めることにより、形状空間ベクトルｘを構成する６つのパラメータが張る６次元空間における確率密度分布を推定する。
【００４４】
図８はパーティクルフィルタを用いた確率密度分布推定の手法を説明する図である。同図では理解を簡単にするために、形状空間ベクトルｘを構成する６つのパラメータのうちの１つのパラメータｘ１の変化を横軸に表しているが、実際には６次元空間において同様の処理が行われる。ここで確率密度分布を推定したい画像フレームが時刻ｔの画像フレームであるとする。
【００４５】
まず、時刻ｔの画像フレームのひとつ前のフレームである時刻ｔ−１の画像フレームにおいて推定された、パラメータｘ１軸上の確率密度分布を用いて（Ｓ１０）、時刻ｔにおけるパーティクルを生成する（Ｓ１２）。それまでにフィルタリングを行い、すでにパーティクルが存在する場合は、その分裂、および消滅を決定する。Ｓ１０において表した確率密度分布は、パラメータ空間上の座標に対応して離散的に求められたものであり、円が大きいほど確率密度が高いことを表している。
【００４６】
パーティクルはサンプリングするパラメータｘ１の値とサンプリング密度とを実体化したものであり、例えば時刻ｔ−１において確率密度が高かったパラメータｘ１の領域は、パーティクル密度を高くすることで重点的にサンプリングを行い、確率密度の低かった範囲はパーティクルを少なくすることでサンプリングをあまり行わない。これにより、例えば人物５２のエッジ近傍において候補曲線を多く発生させて、効率よくマッチングを行う。
【００４７】
次に所定の運動モデルを用いてパーティクルをパラメータ空間上で遷移させる（Ｓ１４）。所定の運動モデルとは例えば、ガウシアン型運動モデル、自己回帰予測型運動モデルなどである。前者は、時刻ｔにおける確率密度は時刻ｔ−１における各確率密度の周囲にガウス分布している、とするモデルである。後者は、サンプルデータから取得した２次以上の自己回帰予測モデルを仮定する手法で、例えば人物５２がある速度で等速運動をしているといったことを過去のパラメータの変化から推定する。図８の例では、自己回帰予測型運動モデルによりパラメータｘ１の正方向への動きが推定され、各パーティクルをそのように遷移させている。
【００４８】
次に、各パーティクルで決定される候補曲線の近傍にある人物５２のエッジを、時刻ｔのエッジ画像を用いて探索することにより、各候補曲線の尤度を求め、時刻ｔにおける確率密度分布を推定する（Ｓ１６）。前述のとおり、このときの確率密度分布はＳ１６に示すように、真の確率密度分布４００を離散的に表したものになる。以降、これを繰り返すことにより、各時刻における確率密度分布がパラメータ空間において表される。例えば確率密度分布が単峰性であった場合、すなわち追跡対象が唯一であった場合は、得られた確率密度を用いて各パラメータの値に対し重み付けした和を最終的なパラメータとすることにより、追跡対象に最も近い曲線が得られることになる。
【００４９】
Ｓ１６において推定される時刻ｔにおける確率密度分布p(xti)は以下のように計算される。
【００５０】
【数３】
0004692969.tif 000004
【００５１】
ここでｉはパーティクルに一意に与えられた番号、p(xti|xti, ut-1)は所定の運動モデル、p(yt|xti)は尤度である。
【００５２】
以上説明した視覚追跡の技術を実現する視覚追跡装置について説明する。図９は追跡装置の構成を示している。追跡装置１４は、入力画像データを取得する画像取得部２０、当該入力画像データを記憶する画像記憶部２４、入力画像データからエッジ画像などを生成する画像処理部２２、パーティクルフィルタにより追跡処理を行う追跡処理部２６、得られた追跡結果から所望の出力データを生成するデータ整形部３０、出力データを記憶する結果記憶部３４、出力データの出力を制御する出力制御部３２を含む。
【００５３】
図９において、様々な処理を行う機能ブロックとして記載される各要素は、ハードウェア的には、ＣＰＵ、メモリ、その他のＬＳＩで構成することができ、ソフトウェア的には、画像処理を行うプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。
【００５４】
追跡処理部２６は、追跡開始終了判定部２８、サンプリング部２９、尤度観測部２７を含む。追跡開始終了判定部２８は、所定の条件によって追跡を開始するか、または終了するかを判定する。サンプリング部２９は、一つ前の時刻ｔ−１における画像フレームに対して推定された確率密度分布に基づき、パーティクルを生成または消滅させ、さらに所定の運動モデルに基づきパーティクルを遷移させる。
【００５５】
尤度観測部２７は、遷移後のパーティクルが定める候補曲線の尤度を、入力画像のエッジ画像を用いて計算する。具体的には、候補曲線ごとに単位点の最近傍にあるエッジを探索し、相互の距離を取得する。そして候補曲線ごとにその和をとるなどして、エッジがどの程度近傍に存在しているかの度合いを求める。エッジ探索の手法については後述する。
【００５６】
画像処理部２２は、画像記憶部２４が記憶した入力画像データの画像フレームごとにエッジ抽出処理を施し、エッジ画像を生成する。ここではキャニーエッジフィルタや、ソーベルフィルタなど一般的なエッジ抽出アルゴリズムを用いることができる。
【００５７】
データ整形部３０は、例えば観測尤度からパラメータ空間上の確率密度分布p(xti)を算出し、その結果で重み付けしたパラメータの値の和を、最終的なパラメータ値として算出する。最終的なパラメータ値によって決まる曲線が、追跡対象の位置および形状を表す。データ整形部３０は、この曲線のみで構成される画像や、曲線と入力画像とを合成してできた画像のデータなど、追跡結果を所望のデータ形式に変換した結果を結果記憶部３４に格納する。さらに次の時刻ｔ＋１における追跡処理に使用するため、追跡処理部２６に確率密度分布p(xti)を返す。
【００５８】
次に尤度観測部２７が実施するエッジ探索の手順について説明する。図１０は尤度観測部２７が生成する距離マップの例を示している。同図では、マトリクス状に配された小さい矩形が画素８０、黒く塗りつぶされている画素８０がエッジ７２である。尤度観測部２７は、画像処理部２２が生成したエッジ画像を用いて実施の形態１で説明したのと同様の距離マップ７０を生成する。すなわち、各画素８０の横方向において最近傍のエッジ７２までの距離を距離マップ７０における画素値として設定する。
【００５９】
次にサンプリング部２９が用意したパーティクルに基づく候補曲線を距離マップにあてはめる。図１０では、三角および円で示された画素８０が候補曲線７４である。そして候補曲線７４中、円で示された単位点７６を中心とした領域を探索領域７８とする。探索領域７８の大きさは、各パーティクルが有するパラメータのうち、倍率（extendｘ，extendｙ）に基づき計算する。これは候補曲線７４の大きさによって単位点の密度が異なるための措置であり、候補曲線７４が大きいほど探索領域７８も広くする。これにより候補曲線全体として近傍にあるエッジ７２を検出する確率が正規化され、パラメータ空間上の尤度分布が正確に得られる。候補曲線７４と探索領域７８の大きさの関係は、実験やシミュレーションによって定める。
【００６０】
そして尤度観測部２７は単位点７６の上下方向に探索を行い、実施の形態１の図５で説明したのと同様の手順でエッジ７２までの距離を計算していく。具体的には、距離マップに記憶された各画素値と、単位点７６から各画素までの縦方向の距離とに基づき、その画素の横方向で最近傍のエッジ７２と単位点７６との距離を計算する。そして以前の画素における計算値より小さい計算値となれば図示しないレジスタの値を更新していく。単位点７６の列に属する全画素について計算を行うと、レジスタには単位点７６の最近傍のエッジ７２までの距離が格納されている。
【００６１】
コンデンセーションアルゴリズムなどで一般的に用いられるエッジ探索は、単位点ごとに候補曲線の法線方向にエッジを探索していき、検出されたエッジのうち最も単位点に近いエッジまでの距離を計算する。しかし本来パーティクルは、確率密度の高い領域に多く配されるため、実空間上でも近接した位置に候補曲線が集中しやすい。当然、単位点７６も同一の画素や近接した画素に位置することになり、複数の候補曲線の尤度を計算するために、同様の計算を何度も繰り返す必要が出てくる。
【００６２】
本実施の形態では、候補曲線の法線方向を確認しながら画素を走査していく処理、検出したエッジの座標と単位点７６の座標とから距離を計算する処理など一般的に行われる処理を行わずに、候補曲線の最近傍にあるエッジ７２までの距離を簡易な計算で求めることができる。そのため、複数の候補曲線で近接した位置にある単位点７６についての計算を繰り返す場合も、重複した処理を最小限に抑えることができ、計算効率が大幅に向上する。  
【００６３】
また、法線方向のエッジ探索では、法線上の画素から一つ隣の画素にエッジがあったとしてもそれを検出しないため、単位点７６が疎に存在している場合、候補曲線の近傍にあるエッジを見落とすことによって適正な尤度計算ができない可能性がある。一方、本実施の形態では、探索領域７８内にあるエッジの位置情報があらかじめ距離マップに組み込まれるため、画像上の２次元空間で最近傍にあるエッジを正確に探索できる。しかも実際の探索は探索領域７８内の１列に属する画素に対する計算のみですむため、計算コストの増大を抑えながら探索精度を向上させることができる。結果として精度の高い追跡処理を効率的に実行することができる。
【００６４】
以上、本発明を実施の形態をもとに説明した。上記実施の形態は例示であり、それらの各構成要素や各処理プロセスの組合せにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
【００６５】
例えば本実施の形態では、各微小領域、または各画素から横方向において最近傍の特徴点までの距離を距離マップとして記憶させたが、これは縦方向の距離でもよい。すなわち、障害物の設定手法やエッジ画像など、元となる２次元データの並び順などを考慮して、距離マップを効率的に生成できる方向であればよい。距離マップを縦方向の距離とした場合は、最近傍の特徴点までの距離計算の段階では、探索先は横方向の一行となる。
【図面の簡単な説明】
【００６６】
【図１】実施の形態１で実行するシミュレーションの対象を説明する図である。
【図２】実施の形態１におけるシミュレータの構成を示すブロック図である。
【図３】一般的な障害物の探索手法における探索順を示す図である。
【図４】実施の形態１において初期設定部が生成する距離マップの例を示す図である。
【図５】実施の形態１において最近傍の障害物までの距離を計算する手順を示すフローチャートである。
【図６】実施の形態１の障害物の探索手法における探索順を示す図である。
【図７】実施の形態２における人物を追跡対象とした場合の視覚追跡手法を説明するための図である。
【図８】実施の形態２におけるパーティクルフィルタを用いた確率密度推定の手法を説明する図である。
【図９】実施の形態２における追跡装置の構成を示すブロック図である。
【図１０】実施の形態２において尤度観測部が生成する距離マップの例を示す図である。
【符号の説明】
【００６７】
１４  追跡装置、  ２０  画像取得部、  ２２  画像処理部、  ２４  画像記憶部、  ２６  追跡処理部、  ２７  尤度観測部、  ２８  追跡開始終了判定部、  ２９  サンプリング部、  ３０  データ整形部、  ３２  出力制御部、  ３４  結果記憶部、  １００  シミュレータ、  １０２  初期設定部、  １０４  データ記憶部、  １０６  障害物探索部、  １０８  行動決定部、  １１０  データ生成部。
【図１】
0004692969.tif 000005
【図２】
0004692969.tif 000006
【図３】
0004692969.tif 000007
【図４】
0004692969.tif 000008
【図５】
0004692969.tif 000009
【図６】
0004692969.tif 000010
【図７】
0004692969.tif 000011
【図８】
0004692969.tif 000012
【図９】
0004692969.tif 000013
【図１０】
0004692969.tif 000014