(57)【要約】【課題】映像フレームの特徴点の精度を向上しつつ、特徴点の追跡の処理時間を短縮させる。【解決手段】第１の映像フレームと、第２の映像フレームとに基づき生成される３次元点を仮想の映像フレームに再投影させた再投影点と、前記第２の映像フレームにおける前記再投影点に相当する観測点を前記再投影点と対応付けて、前記第２の映像フレームが撮影されたときの撮像装置のポーズを推定するポーズ推定部と、前記ポーズの推定において、前記観測点と対応付けられなかった前記再投影点のうち、前記第１の映像フレームにおける特徴点と最も類似する前記再投影点の属性値を閾値に設定する閾値設定部と、前記閾値を用いて、前記第２の映像フレームにおける特徴点を、第３の映像フレームにおいて追跡する追跡処理を行う追跡部と、を有する映像処理装置、が提供される。【選択図】図５
2017130042.tif 000002
【特許請求の範囲】
【請求項１】
第１の映像フレームと、第２の映像フレームとに基づき生成される３次元点を仮想の映像フレームに再投影させた再投影点と、前記第２の映像フレームにおける前記再投影点に相当する観測点を前記再投影点と対応付けて、前記第２の映像フレームが撮影されたときの撮像装置のポーズを推定するポーズ推定部と、
前記ポーズの推定において、前記観測点と対応付けられなかった前記再投影点のうち、前記第１の映像フレームにおける特徴点と最も類似する前記再投影点の属性値を閾値に設定する閾値設定部と、
前記閾値を用いて、前記第２の映像フレームにおける特徴点を、第３の映像フレームにおいて追跡する追跡処理を行う追跡部と、を有する映像処理装置。
【請求項２】
前記ポーズ推定部は、
前記第２の映像フレームにおける前記特徴点に対応する観測点を選択し、
選択された前記観測点と、該観測点に対応する前記再投影点との再投影誤差が最小になるようにポーズ推定を行う、請求項１に記載の映像処理装置。
【請求項３】
前記ポーズ推定部は、前記ポーズの推定において、前記観測点と対応付けられた前記再投影点が所定の数以下の場合、前記特徴点を再度選択する、請求項２に記載の映像処理装置。
【請求項４】
前記追跡部は、
前記第３の映像フレームの所定領域において、前記第２の映像フレームにおいて前記特徴点を含む画像の一部が前記所定領域と重複するように移動させ、
前記所定領域において前記画像と重複する重複部分のうち、前記画像における各画素の属性値の合計と、前記重複部分における各画素の属性値の合計との差分が最も少ない重複部分を特定し、
特定された前記重複部分の中心となる点の属性値が、前記閾値より大きいとき、前記中心となる点を前記特徴点に対応する追跡点とする請求項１乃至３のいずれか一項に記載の映像処理装置。
【請求項５】
前記追跡処理は、前記特徴点に対する周辺画素からの際立ちの程度を判定する固有値判定処理を含み、
前記第３の映像フレームで、前記固有値判定処理に用いる閾値は、前記特徴点と最も類似する前記再投影点の固有値に基づいて設定される請求項４に記載の映像処理装置。
【請求項６】
前記追跡処理は、前記特徴点との類似度を算出する極値算出処理とを含み、
前記追跡部は、
前記極値算出処理において、前記特徴点と最も類似する属性値を有する第１の画素の前記特徴点との類似度と、前記特徴点と２番目に類似する第２の画素の前記特徴点との類似度との差が、所定の閾値より大きい場合であって、  
前記第１の画素の位置と前記追跡点とが一致する場合、前記追跡点と前記特徴点とが対応すると判断する、請求項４又は５に記載の映像処理装置。
【請求項７】
前記追跡処理の結果、前記特徴点が抽出されなかった場合、前記追跡部は、前記所定領域を拡大する、請求項４乃至６のいずれか一項に記載の映像処理装置。
【請求項８】
第１の映像フレームと、第２の映像フレームとに基づき生成される３次元点を仮想の映像フレームに再投影させた再投影点と、前記第２の映像フレームにおける前記再投影点に相当する観測点を前記再投影点と対応付けて、前記第２の映像フレームが撮影されたときの撮像装置のポーズを推定するステップと、
前記ポーズの推定において、前記観測点と対応付けられなかった前記再投影点のうち、前記第１の映像フレームにおける特徴点と最も類似する前記再投影点の属性値を閾値に設定するステップと、
前記閾値を用いて、前記第２の映像フレームにおける特徴点を、第３の映像フレームにおいて追跡する追跡処理を行うステップと、を有する映像処理方法。
【請求項９】
第１の映像フレームと、第２の映像フレームとに基づき生成される３次元点を仮想の映像フレームに再投影させた再投影点と、前記第２の映像フレームにおける前記再投影点に相当する観測点を前記再投影点と対応付けて、前記第２の映像フレームが撮影されたときの撮像装置のポーズを推定するステップと、
前記ポーズの推定において、前記観測点と対応付けられなかった前記再投影点のうち、前記第１の映像フレームにおける特徴点と最も類似する前記再投影点の属性値を閾値に設定するステップと、
前記閾値を用いて、前記第２の映像フレームにおける特徴点を、第３の映像フレームにおいて追跡する追跡処理を行うステップと、をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、映像処理装置、映像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
自動車の自立運転等に用いる技術の一つに、自己位置の推定を行う技術（ＳＬＡＭ：Ｓｉｍｕｌｔａｎｅｏｕｓｌｙ  Ｌｏｃａｌｉｚａｔｉｏｎ  Ａｎｄ  Ｍａｐｐｉｎｇ）があり、ＳＬＡＭを用いて自己位置の推定を行う方法が広く検討されている。ＳＬＡＭでは、カメラ等で撮影された映像データから特徴点を抽出し、抽出した特徴点を追跡することにより、自己位置の推定を行う。
【０００３】
特徴点を追跡する手法として、互いに類似する画像パターンを含み得る一の画像と他の画像との画素毎の対応関係を求めることで特徴点の追跡を行う、パターンマッチングが広く知られている。パターンマッチングの手法としては、例えば、一の画像の画素位置と他の画像の画素位置との画素間距離の累積値が最小となる最小累積距離を、ｉ座標、ｊ座標、ｍ座標及びｎ座標からなる４次元空間座標において、累積的に画像間距離を積み上げ計算させることが提案されている（例えば、特許文献１）。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
提案されている方法では、４次元空間座標において、画素間距離を累積的に積み上げるため、処理に時間がかかるという課題があった。
【０００５】
本発明は、上記の課題を鑑みてされたものであって、特徴点の追跡の処理時間の短縮を図ることを目的とする。
【課題を解決するための手段】
【０００６】
一つの態様によれば、第１の映像フレームと、第２の映像フレームとに基づき生成される３次元点を仮想の映像フレームに再投影させた再投影点と、前記第２の映像フレームにおける前記再投影点に相当する観測点を前記再投影点と対応付けて、前記第２の映像フレームが撮影されたときの撮像装置のポーズを推定するポーズ推定部と、前記ポーズの推定において、前記観測点と対応付けられなかった前記再投影点のうち、前記第１の映像フレームにおける特徴点と最も類似する前記再投影点の属性値を閾値に設定する閾値設定部と、前記閾値を用いて、前記第２の映像フレームにおける特徴点を、第３の映像フレームにおいて追跡する追跡処理を行う追跡部と、を有する映像処理装置、が提供される。
【発明の効果】
【０００７】
映像フレームの特徴点の追跡の処理時間の短縮を図ることが可能となる。
【図面の簡単な説明】
【０００８】
【図１】第１の実施形態に係る映像処理システムの一例を示す図である。
【図２】第１の実施形態に係るブロックマッチング処理の一例を示す図（その１）である。
【図３】第１の実施形態に係るブロックマッチング処理の一例を示す図（その２）である。
【図４】第１の実施形態に係るブロックマッチング処理の計算式の一例を表す図である。
【図５】第１の実施形態に係るポーズ推定処理の一例を示す図である。
【図６】第１の実施形態に係る映像処理装置のハードウエア構成の一例を示す図である。
【図７】第１の実施形態に係る機能構成の一例を示す図である。
【図８】第１の実施形態に係る映像処理装置の処理を示すフローチャート（その１）である。
【図９】第１の実施形態に係るポーズ推定処理の計算式の一例を表す図である。
【図１０】第１の実施形態に係る映像処理装置の処理を示すフローチャート（その２）である。
【図１１】第１の実施形態に係る映像処理装置の処理を示すフローチャート（その３）である。
【図１２】第１の実施形態に係る固有値判定処理の計算式の一例を表す図である。
【図１３】第１の実施形態に係る単一性判定処理の一例を示す図である。
【図１４】第１の実施形態に係る映像処理装置の処理を示すフローチャート（その４）である。
【図１５】第１の実施形態に係る映像処理装置の処理を示すフローチャート（その５）である。
【発明を実施するための形態】
【０００９】
［第１の実施形態］
＜概要＞
図１は、第１の実施形態に係る映像処理システム１を示す図である。映像処理システム１は、映像処理装置１０と、カメラ２０とを有する。映像処理装置１０とカメラ２０とは有線又は無線で接続される。カメラ２０は映像を撮影し、映像処理装置１０は、撮影された映像フレームに対して処理を行う。カメラ２０は、単眼カメラ、ステレオカメラのいずれでもよい。カメラ２０は、自動車に取り付ける車載カメラでもよい。映像フレームは、単にフレームと表現されてもよい。
【００１０】
映像処理装置１０は、カメラ２０から受信した第１の映像フレームから特徴点の座標を特定し、第１の映像フレームより後に撮像された映像フレームである第２の映像フレームに対してパターンマッチング処理を行う。そして、映像処理装置１０は、第２の映像フレームにおける特徴点の座標を特定する。
ここで、特徴点とは、映像フレーム内の輝度或いは色が大きくに変化する画素であり、例えば画像における被写体の角等に対応する画素である。
【００１１】
図２乃至図４を用いてブロックマッチング処理について説明する。ここで、ブロックマッチング処理は、パターンマッチング処理の一例であり、特徴点に対応する追跡点を抽出するのに、ブロックマッチング処理以外が用いられてもよいことは勿論である。
【００１２】
図２及び図３は、ブロックマッチングの処理の概要を示す図である。図２の（１）に示すように、映像処理装置１０は、ｎ枚目の映像フレーム４１０から特徴点４００を抽出する。映像処理装置１０は、ｎ枚目の映像フレーム４１０から特徴点４００を中心にＮ（画素）×Ｎ（画素）のサイズの領域を抜き出しテンプレートパッチ４３０を生成する。
【００１３】
図２の（２）に示すように、映像処理装置１０は、ｎ枚目以降の映像フレーム４２０の中のＨ（画素）×Ｗ（画素）のサイズの領域を抜き出し第１の探索ウィンドウ４４０を生成する。
【００１４】
ここで、テンプレートパッチ４３０のサイズ、及び第１の探索ウィンドウ４４０のサイズは映像処理装置１０のユーザが設定可能な値である。
【００１５】
次に、図３の（１）に示すように、映像処理装置１０は、テンプレートパッチ４３０の中心を第１の探索ウィンドウ４４０内で移動させる。つまり、映像処理装置１０は、ｎ枚目以降の映像フレーム４２０の中の（Ｈ＋Ｎ）（画素）×（Ｗ＋Ｎ）（画素）のサイズの領域を抜き出し、かかる領域内にテンプレートパッチ４３０を移動させる。この領域は、第２の探索ウィンドウ４５０と表現されてもよい。
【００１６】
映像処理装置１０は、テンプレートパッチ４３０を、第２の探索ウィンドウ４５０内で移動させ、テンプレートパッチ４３０に含まれる画素の属性値の合計値（第１の合計値）と、第２の探索ウィンドウ４５０内のテンプレートパッチ４３０との重複部分に含まれる画素の属性値の合計値（第２の合計値）とを算出する。画素の属性値とは、例えば画素の輝度値や画素値などである。
【００１７】
例えば、図３の（１）に示すように、映像処理装置１０は、テンプレートパッチ４３０を、第２の探索ウィンドウ４５０内で水平方向に移動させてもよい。映像処理装置１０は、テンプレートパッチ４３０を１画素ずつ、縦、又は横に移動させつつ、重複部分に含まれる画素の属性値の合計値（第２の合計値）を算出する。映像処理装置１０は、１画素よりも細かい単位である副画素単位で、テンプレートパッチ４３０を縦、又は横に移動させて第２の合計値を算出してもよい。
【００１８】
映像処理装置１０は、第２の探索ウィンドウ４５０の重複部分のうち、第１の合計値と、第２の合計値とを比較し、第１の合計値と、第２の合計値との差が最も小さくなる重複部分を特定する。そして、映像処理装置１０は、特定された重複部分の中心の属性値が、所定の閾値よりも大きければ、特定された重複部分の中心を特徴点の移動先の点（追跡点）とする。
【００１９】
本実施形態では、この所定の閾値を、カメラ２０のポーズ推定処理の結果として得られた情報を用いて設定する。所定の閾値を設定する処理の詳細は後述する。
【００２０】
例えば、属性値が各画素の輝度値の場合、第１の合計値と第２の合計値との差分は、図４の式１で表される。
図３の（２）の例では、映像処理装置１０は、テンプレートパッチ４３０の中心がＶｎ（Ｘ、Ｙ）に移動した場合に算出される差分ＥＳＡＤが最小となる場合を示している。この場合、映像処理装置１０は、Ｖｎ（Ｘ、Ｙ）を追跡点５６０として抽出する。
【００２１】
映像処理装置１０は、ｎ枚目のフレームの特徴点４００が、ｎ枚目以降の映像フレーム４２０で追跡点５６０に移動したと判断する。この場合、映像処理装置１０は、特徴点が移動の軌跡５７０に沿って移動したと判断してもよい。映像処理装置１０は、ｎ枚目以降の映像フレームに繰り返しブロックマッチングの処理を行い、特徴点の移動の軌跡を算出してもよい。特徴点の移動の軌跡は、オプティカルフローと呼ばれてもよい。
【００２２】
上述した実施形態では、テンプレートパッチ４３０の輝度値の合計値と、重複部分の輝度値の合計値との絶対値の差（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ）であるＥＳＡＤを用いる場合について説明した。映像処理装置１０は、その他の方法を用いてブロックマッチングの処理を実行してもよい。例えば、映像処理装置１０は、テンプレートパッチ４３０と重複部分の輝度値の差の二乗和を算出するＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅｓ）を用いてもよいし、テンプレートパッチ４３０と重複部分の輝度値の相互相関を算出するＮＣＣ（Ｎｏｒｍａｌｉｚｅｄ  Ｃｒｏｓｓ  Ｃｏｒｒｅｌａｔｉｏｎ）を用いてもよい。
【００２３】
映像フレームがカラーの場合、映像処理装置１０は、各色の輝度値を合計した値を用いて、第１の合計値と第２の合計値とを比較してもよい。
【００２４】
次に、上述したパターンマッチング処理において、重複部分に特徴点に対応する追跡点が存在すると判断する際に用いられる所定の閾値の設定方法について説明する。
【００２５】
第１の実施形態では、ポーズ推定処理の結果に基づいて抽出された画素の属性値を用いて所定の閾値を設定する。
【００２６】
ポーズ推定処理とは、（Ａ）カメラ２０により実際に撮影された２以上の映像フレームから３次元物体を生成し、（Ｂ）この３次元物体を仮想的なカメラで撮影したと仮定した場合の仮想映像フレームを生成し、（Ｃ）仮想映像フレームを撮影したときの仮想的なカメラの位置と姿勢を推定する処理である。ここで、仮想的なカメラは仮想カメラ２４０と呼ばれる。
【００２７】
図５を用いてポーズ推定処理について、具体的に説明する。映像処理装置１０は、上述したブロックマッチング処理により、第１のフレームにおける特徴点、及び第２のフレームにおける特徴点を追跡する。映像処理装置１０は、特徴点が追跡されることにより特定される特徴点の３次元座標と、キーフレームとなる映像フレームが撮影されたときのカメラ２０の位置と姿勢とを記憶している。この３次元座標と、キーフレームに関する位置と姿勢の情報の組み合わせは、マップと呼ばれる。
【００２８】
なお、キーフレームとは、１枚の映像フレームの全画素の情報が記憶されているフレームであり、キーフレーム以外の映像フレームは、キーフレームからの差分情報のみが記憶されている。また、特徴点の３次元座標は２以上の映像フレームにおける特徴点の２次元座標から算出される。
【００２９】
映像処理装置１０は、マップから３次元物体２１０を生成する。３次元物体２１０は、特徴点の３次元座標に基づいて形成されている。つまり、３次元物体２１０は、特徴点の抽出の処理と、パターンマッチング処理の結果、抽出された特徴点の３次元座標を用いて、生成される。
【００３０】
次に、映像処理装置１０は、生成された３次元物体２１０を仮想カメラ２４０で撮影したときの画像である仮想映像フレーム２００を生成する。
【００３１】
生成された仮想映像フレーム２００から、仮想カメラ２４０の位置及び姿勢（ポーズ）が推定される。すなわち、仮想映像フレーム２００は、仮想カメラ２４０により３次元物体２１０を撮像した仮想的な画像であり、第２の映像フレーム２５０は、仮想カメラ２４０と同じポーズで３次元物体２１０を撮像した画像である。したがって、映像処理装置１０は、仮想映像フレーム２００と第２の映像フレーム２５０とを比較することで、推定された仮想カメラのポーズが許容されるか否かが判断できる。なお、仮想カメラ２４０の位置及び姿勢は、所定の初期値が設定される。
【００３２】
映像処理装置１０は、仮想映像フレーム２００において、３次元物体上の３次元座標上の点に対応する点の座標（２次元）を特定する。ここで、仮想映像フレーム２００において、３次元座標上の点に対応する点を再投影点と呼ぶ。図５の（１）は、仮想カメラ２４０により３次元物体２１０が撮影されたときに、３次元座標上の点２２０に対応する再投影点２３０が仮想映像フレーム２００上に形成される様子を示している。
【００３３】
映像処理装置１０は、再投影点２３０と、カメラ２０により撮影された第２の映像フレーム２５０において、再投影点２３０と対応する点（以下、観測点２６０）との距離を算出する。
【００３４】
具体的には、映像処理装置１０は、仮想映像フレーム２００と、第２の映像フレームを重ねた場合に生成されるフレームにおける、再投影点２３０の座標と、観測点２６０の座標とから距離を算出する。この距離は、再投影誤差２７０と呼ばれる。図５の（２）は、映像処理装置１０により再投影誤差２７０が算出される様子を示す図である。
【００３５】
なお、図５では、三次元物体２１０の点２２０に対応する再投影点２３０と観測点２６０とを示したが、再投影点と観測点は、３次元物体２１０を形成している点群の全について存在するものである。したがって、本実施形態において、特徴点とは、観測点の一種であり、観測点に含まれるものである。
【００３６】
第１の実施形態では、特徴点、追跡点、再投影点２３０、及び観測点２６０は、映像フレーム上の座標と、これらの点の座標から特定される画素の属性値とを有するものとして説明を進める。
【００３７】
映像処理装置１０は、以下の処理１乃至処理３のポーズ推定処理を実行する。次に、ポーズ推定の処理結果を用いて、以下の処理４及び処理５により、特徴点に対応する追跡点が存在するか否かを判断する際に用いられる所定の閾値の設定処理を実行する。
【００３８】
映像処理装置１０は、所定の数の特徴点に対応する再投影点２３０を選択し、対応する観測点２６０との再投影誤差２７０が最小になるように仮想カメラ２４０の位置及び姿勢を推定する（処理１）。処理１における「所定の数」は３から５程度の再投影点２３０の数が設定されることが想定されている。処理１で必要な数の再投影点２３０が存在しない場合、つまり、必要な数の特徴点に対応する再投影点２３０が存在しない場合、映像処理装置１０は、ポーズ推定の処理を実行しない。
【００３９】
次に、映像処理装置１０は、処理１で選択されていない再投影点２３０を選択し、対応する観測点２６０との間の再投影誤差２７０を算出する（処理２）。映像処理装置１０は、処理２の結果、算出された再投影誤差２７０が所定の範囲内となる再投影点２３０をインライア（Ｉｎｌｉｅｒ）、所定の範囲外となる再投影点２３０をアウトライア（Ｏｕｔｌｉｅｒ）と分類し、それぞれの数をカウントする（処理３）。インライアと分類された再投影点２３０の数が所定の数よりも多い場合、映像処理装置１０はポーズ推定処理が成功したと判断する。ここで、インライアは、観測点２６０と対応付けられるものと判定された再投影点２３０であることを示し、アウトライアは観測点２６０と対応付けられないものと判定された再投影点２３０であることを示す。
【００４０】
ポーズ推定処理が成功した場合、映像処理装置１０は、アウトライアと分類された再投影点２３０のうち、第２の映像フレームにおける一の特徴点の有する属性値と最も類似する属性値を有する一の再投影点２３０を特定する（処理４）。第１の実施形態では、特徴点と属性値が最も近い再投影点を最も類似する再投影点とする。例えば、第２の映像フレームにおける特徴点における輝度値と、アウトライアと分類された再投影点２３０との輝度値とを比較し、最も輝度値の差が小さい再投影点２３０を特定する。
【００４１】
そして、映像処理装置１０は、特定された再投影点２３０の属性値を、第３の映像フレームにおけるパターンマッチング処理における所定の閾値に決定する（処理５）。
【００４２】
映像処理装置１０は、第３の映像フレームにおけるパターンマッチング処理において、差分ＥＳＡＤが最小となる重複部分の中心の属性値が、所定の閾値より大きいとき、この重複部分の中心を、特徴点の移動先である追跡点と判定する。
【００４３】
ここで、第３の映像フレームは、第２の映像フレームより後の映像フレームである。ポーズ推定処理が成功しなかった場合、映像処理装置１０は、処理１乃至処理３を再度実行する。また、第２の映像フレームに複数の特徴点が存在する場合、映像処理装置１０は、特徴点の各々に対して、処理４及び処理５を実行する。
【００４４】
ここで、再投影誤差２７０の所定の範囲、及びインライアと分類された観測点２６０に関する所定の数は、映像処理装置１０に設定される値である。
【００４５】
上述したように、第１の実施形態によれば、第２のフレームにおける追跡点の抽出後に、ポーズ推定の結果を用いて、第３の映像フレームにおけるパターンマッチング処理における所定の閾値を設定を行う。第１の実施形態によれば、第２の映像フレームのポーズ推定の結果を用いるため、４次元空間座標において累積的に画像間距離を積み上げ計算させる必要がない。このため、映像フレームの特徴点の追跡の処理時間の短縮を図ることが可能となる。
【００４６】
上述した実施形態では、アウトライアと分類された再投影点２３０のうち、第２の映像フレームの特徴点と最も類似する再投影点２３０の属性値を３の映像フレームにおけるパターンマッチング処理における所定の閾値に設定するものとしたが、これに限定されない。
【００４７】
例えば、所定の閾値は、アウトライアに分類された再投影点２３０のうち、特徴点の属性値との差分が所定範囲内にある再投影点２３０の属性値が所定の閾値に設定されても良い。
【００４８】
＜ハードウエア構成＞
映像処理装置１０は入出力部２０１、外部Ｉ／Ｆ２０２、ＲＡＭ２０４、ＲＯＭ２０５、ＣＰＵ２０６、通信Ｉ／Ｆ２０７、ＨＤＤ２０８などを備え、それぞれがバスＢで相互に接続されている。
【００４９】
入出力部２０１は、カメラ２０で撮影した映像フレームを受信すると共に、受信した映像フレームを表示する。入出力部２０１は、映像処理装置１０の状態などを表示する。また、入出力部２０１は、映像処理装置１０のユーザから、映像処理装置１０の各種設定を受け付けてもよい。
【００５０】
通信Ｉ／Ｆ２０７は、サーバ、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）等と、有線、又は無線のネットワークを介して通信を行う。映像処理装置１０は、通信Ｉ／Ｆ２０７を介して、ＰＣ等の端末から、映像処理装置１０に対する指示を受け付けてもよい。また、通信Ｉ／Ｆは、カメラ２０で撮影した映像フレームを、有線、又は無線のネットワークを介して受信してもよい。
【００５１】
ＨＤＤ２０８はプログラムやデータを格納している不揮発性の記憶装置の一例である。格納されるプログラムやデータには映像処理装置１０全体を制御する基本ソフトウエアであるＯＳ、ＯＳ上において各種機能を提供するアプリケーションソフトウエアなどがある。なお、映像処理装置１０はＨＤＤ２０８に替え、記憶媒体としてフラッシュメモリを用いるドライブ装置（例えばソリッドステートドライブ：ＳＳＤ）を利用するものであってもよい。
【００５２】
外部Ｉ／Ｆ２０２は、外部装置とのインタフェースである。外部装置には、記録媒体２０３などがある。これにより、映像処理装置１０は外部Ｉ／Ｆ２０２を介して記録媒体２０３の読み取り及び／又は書き込みを行うことができる。記録媒体２０３にはフレキシブルディスク、ＣＤ、ＤＶＤ、ＳＤメモリカード、及びＵＳＢメモリなどがある。
【００５３】
ＲＯＭ２０５は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリ（記憶装置）の一例である。ＲＯＭ２０５には映像処理装置１０の起動時に実行されるＢＩＯＳ、ＯＳ設定、及びネットワーク設定などのプログラムやデータが格納されている。ＲＡＭ２０４はプログラムやデータを一時保持する揮発性の半導体メモリ（記憶装置）の一例である。
【００５４】
ＣＰＵ２０６は、ＲＯＭ２０５及びＨＤＤ２０８などの記憶装置からプログラムやデータをＲＡＭ２０４上に読み出し、処理を実行することで、映像処理装置１０全体の制御や映像処理装置１０の機能を実現する演算装置である。映像処理装置１０は図６に示すハードウエア構成により、上述した各種処理を実現できる。
【００５５】
＜機能構成＞
図７を用いて、第１の実施形態に係る映像処理装置１０の機能構成について説明する。映像処理装置１０は、映像入力部１１０と、映像補正部１２０と、抽出部１３０と、追跡部１４０と、フレームバッファ１５０と、重複点除去部１６０と、ポーズ推定部１７０と、追跡処理設定部１８０と、３次元再構成部１９０とを有する。
【００５６】
映像入力部１１０は、カメラ２０によって撮影された映像の入力を受け付ける。映像入力部１１０は、カメラ２０で撮影した映像をケーブルを介して受け付けてもよいし、記憶媒体に記憶された映像の入力を受け付けてもよい。また、映像入力部１１０は、有線、又は無線のネットワーク経由で映像の入力を受け付けてもよい。
【００５７】
映像補正部１２０は、映像入力部１１０から映像フレームを取得し、かかる映像フレームのひずみを補正する。
【００５８】
抽出部１３０は、映像フレームの特徴点を抽出する。
【００５９】
フレームバッファ１５０は、映像補正部１２０から取得した映像フレームを記憶する。フレームバッファ１５０は、追跡部１４０に、映像フレームを送信する。
【００６０】
追跡部１４０は、映像補正部１２０から映像フレームを取得する。追跡部１４０は抽出部１３０で抽出された特徴点を追跡する。具体的には、追跡部１４０は、パターンマッチング処理を行い、特徴点が抽出された映像フレームより後の映像フレームから、かかる特徴点に対応する追跡点を抽出する。
【００６１】
追跡部１４０は、抽出部１３０から、かかる映像フレームにおいて抽出された特徴点を取得する。追跡部１４０は、フレームバッファ１５０から特徴点が抽出された映像フレームより前の映像フレームを取得する。追跡部１４０は、取得した映像フレーム、及び特徴点から、特徴点を追跡する。
【００６２】
追跡部１４０が、時刻Ｍにおける映像フレームＦ（Ｍ）で抽出された特徴点を追跡する場合について説明する。
【００６３】
追跡部１４０は、抽出部１３０から時刻Ｍにおける映像フレームＦ（Ｍ）における特徴点を抽出部１３０から取得する。追跡部１４０は、時刻Ｍより後の時刻Ｍ＋１における映像フレームＦ（Ｍ＋１）を映像補正部１２０から取得する。追跡部１４０は、フレームバッファ１５０より、映像フレームＦ（Ｍ）を取得する。
【００６４】
追跡部１４０は、映像フレームＦ（Ｍ）と、取得した映像フレームＦ（Ｍ）における特徴点とから、映像フレームＦ（Ｍ＋１）における特徴点に対応する追跡点を抽出する。追跡部１４０は、パターンマッチング処理を用いて、特徴点に対応する追跡点を抽出する。
【００６５】
例えば、追跡部１４０がブロックマッチングの処理により追跡点を抽出する場合について説明する。追跡部１４０は、映像フレームＦ（Ｍ）から特徴点を含むテンプレートパッチを生成する。そして、追跡部１４０は、映像フレームＦ（Ｍ＋１）に対して、生成されたテンプレートパッチ内の画素の輝度値の合計値と、テンプレートパッチと映像フレームＦ（Ｍ＋１）の重複部分の画素の輝度値の合計値との差ＥＳＡＤを求める。
【００６６】
追跡部１４０は、例えば、テンプレートパッチ内の画素の輝度値の合計値と、重複部分の輝度値の合計値との差ＥＳＡＤが最小となる重複部分を特定し、特定された重複部分の中心を、特徴点に対応する追跡点とする。
【００６７】
重複点除去部１６０は、抽出部１３０で抽出された映像フレームＦ（Ｍ＋１）の特徴点と、追跡部１４０で抽出された映像フレームＦ（Ｍ＋１）の追跡点とが重複する場合に、一方を除去する。
【００６８】
ポーズ推定部１７０は、映像フレームＦ（Ｍ＋１）に対して、上述したポーズ推定処理を行う。具体的には、ポーズ推定部１７０は、映像フレームＦ（Ｍ＋１）に対応する仮想映像フレーム２００上の所定の数の特徴点に対応する再投影点２３０を選択し、映像フレームＦ（Ｍ＋１）における観測点２６０との再投影誤差２７０が最小になるように仮想カメラ２４０の位置及び姿勢を推定する（処理１）。ポーズ推定部１７０は、処理１で選択されていない再投影点２３０を選択し、対応する観測点２６０との間の再投影誤差２７０を算出する（処理２）。ポーズ推定部１７０は、処理２の結果、インライアとなる再投影点２３０と、アウトライアとなる再投影点２３０とを分類し、それぞれの数をカウントする（処理３）。
【００６９】
インライアと分類された再投影点２３０の数が所定の数よりも多い場合、ポーズ推定部１７０は、ポーズ推定処理が成功したと判断する。一方、インライアと分類された再投影点２３０の数が所定の数以下の場合、ポーズ推定部１７０は、処理１〜処理３を再度実行する。
【００７０】
追跡処理設定部１８０は、類似度算出部１８１と、閾値設定部１８２とを有する。類似度算出部１８１は、アウトライアと分類された再投影点２３０から、映像フレームＦ（Ｍ＋１）における特徴点と最も類似する再投影点２３０を選択する（処理４）。ここで、類似度算出部１８１は、特徴点と最も属性値が近い再投影点２３０を最も類似する再投影点２３０として選択する。すなわち、本実施形態の類似度とは、特徴点と再投影点の属性値の差分を示す。両者の差分が小さいほど、両者の類似度は高く、両者の差分が大きいほど、両者の類似度は低いと言える。
【００７１】
閾値設定部１８２は、選択された再投影点２３０の属性値を映像フレームＦ（Ｍ＋２）におけるパターンマッチング処理に用いる所定の閾値を決定し、決定された所定の閾値を追跡部１４０に通知する（処理５）。映像フレームＦ（Ｍ＋１）に複数の特徴点が存在する場合、映像処理装置１０は、処理４及び処理５を繰り返し実行する。
【００７２】
３次元再構成部１９０は、ポーズ推定部１７０による処理の結果から推定される仮想カメラ２４０の位置及び姿勢と、抽出部１３０により抽出された特徴点と、追跡部１４０により抽出された追跡点とに基づいて、３次元座標上の点２２０の座標を更新し記憶する。
【００７３】
記憶部１９５は、映像入力部１１０がカメラ２０から受け付けた映像フレームを記憶する。記憶部１９５は、各映像フレームの特徴点、追跡点、及びそれらの３次元座標上の点２２０の座標を記憶する。記憶部１９５は、３次元座標上の点２２０の座標と、キーフレームとをマップとして記憶する。また、記憶部１９５は、ポーズ推定部１７０、及び追跡部１４０等が処理をするのに必要な情報を記憶する。例えば、記憶部１９５は、パターンマッチング処理に用いる各映像フレームの特徴点毎に設定される所定の閾値、及びポーズ推定処理に用いる必要な再投影点２３０の数、及びインライアとして分類される必要がある再投影点２３０の数（インライア数の閾値Ｔ）等を記憶する。
【００７４】
ここで、映像フレームＦ（Ｍ）は時刻Ｍにおける映像フレームであり、映像フレームＦ（Ｍ＋１）は時刻Ｍ＋１における映像フレームであり、映像フレームＦ（Ｍ）の次の映像フレームである。映像フレームＦ（Ｍ＋２）は、時刻Ｍ＋１より後の時刻Ｍ＋２における映像フレームであり、映像フレームＦ（Ｍ＋１）の次の映像フレームである。上述した説明では、連続した映像フレームに対する処理を実行する場合について説明したが、映像フレームが連続していない場合にも同様の処理を適用可能なことは勿論である。
【００７５】
＜処理手順＞
（１）閾値設定の処理手順
図８のフローチャートを用いて、閾値設定の処理手順について説明する。
【００７６】
ステップＳ８０１で、追跡部１４０は、パターンマッチング処理を行い、抽出部１３０が抽出した映像フレームＦ（Ｍ）における特徴点を追跡する。映像フレームＦ（Ｍ）に複数の特徴点がある場合、追跡部１４０は、複数の特徴点に対してステップＳ８０１の処理を実行する。
【００７７】
ステップＳ８０２で、追跡部１４０は、映像フレームＦ（Ｍ＋１）において、特徴点に対応する追跡点を抽出できたか否かを判断する。追跡点を抽出できなかった場合は、ステップＳ８０３に進む。一方、追跡点を抽出できた場合は、ステップＳ８０４に進む。ここで、追跡点を抽出できなかった場合とは、特徴点に対応する追跡点を１つも抽出できなかった場合である。
【００７８】
ステップＳ８０３で、追跡部１４０は、映像フレームＦ（Ｍ＋１）において特徴点の追跡を失敗したと判断する。処理の完了後、ステップＳ８０９に進む。
【００７９】
ステップＳ８０４で、重複点除去部１６０は、抽出部１３０で抽出された映像フレームＦ（Ｍ＋１）の特徴点と、追跡部１４０で抽出された映像フレームＦ（Ｍ＋１）の追跡点とが重複する場合に、一方を除去する。
【００８０】
ステップＳ８０５で、ポーズ推定部１７０は、映像フレームＦ（Ｍ＋１）に対してポーズ推定処理を行う。ポーズ推定部１７０におけるポーズ推定処理は上述した通りである。ポーズ推定処理の結果、再投影誤差２７０が最小になるように仮想カメラ２４０の位置及び姿勢が推定される。また、インライアとなる再投影点２３０、及びアウトライアとなる再投影点２３０が特定される。
【００８１】
ポーズ推定処理の完了後、ステップＳ８０６と、ステップＳ８０７及びステップＳ８０８とは並列で実行される。
【００８２】
ステップＳ８０６で、３次元再構成部１９０は、ポーズ推定部１７０による処理の結果から推定される仮想カメラ２４０の位置及び姿勢と、特徴点とから３次元座標を更新し、記憶部１９５が更新された３次元座標を記憶する。
【００８３】
ステップＳ８０７で、類似度算出部１８１は、アウトライアと分類された再投影点２３０から、映像フレームＦ（Ｍ＋１）における特徴点の各々と最も類似する再投影点２３０を選択する。
【００８４】
ステップＳ８０８で、閾値設定部１８２は、選択された各々の再投影点２３０の属性値、映像フレームＦ（Ｍ＋２）における、特徴点の各々に対するパターンマッチング処理に用いる所定の閾値を決定する。
【００８５】
ステップＳ８０９で、追跡部１４０は、後続する映像フレームの有無を確認する。この場合、追跡部１４０は、映像フレームＦ（Ｍ＋２）の有無を確認する。後続する映像フレームがある場合（ステップＳ８０９  Ｙｅｓ）、ステップＳ８０１に戻る。一方、後続する映像フレームがない場合（ステップＳ８０９  Ｎｏ）、処理を終了する。
【００８６】
（２）ポーズ推定処理
図９を用いてポーズ推定処理について説明する。映像フレーム（フレーム番号ｉ）の任意の画素Ｐｉの仮想映像フレーム２００における座標は、回転行列Ｒｉ、平行移動成分ｔｉ、マップにおける任意の画素Ｐｉの座標をｐｊとすると、フレーム番号ｉの映像フレームの任意の画素Ｐｉからの仮想映像フレーム２００における位置ｐｉｊは図９の式１で表される。カメラ２０の内部パラメータをＫとすると、任意の画素Ｐｉの再投影点２３０の座標は、図９の式２で表される。
【００８７】
ポーズ推定部１７０は、選択された再投影点２３０における再投影誤差２７０が最小になるように仮想映像フレーム２００を撮影したと仮定した場合の仮想カメラ２４０の位置と姿勢とを算出する。つまり、ポーズ推定部１７０は、回転行列Ｒｉ、平行移動成分ｔｉを算出する。
【００８８】
ここで、再投影誤差２７０は、再投影点２３０と観測点２６０との座標の差分である。また、選択された再投影点２３０に対応する観測点２６０は、映像フレーム（フレーム番号ｉ）における特徴点である。
【００８９】
フレーム番号ｉの映像フレームに含まれる全ての観測点２６０の再投影誤差２７０の和は、図９の式３で表される。ここで、再投影誤差２７０を最小化するＲｉとｔｉとは、非線形最小化問題を解くことで算出することができる。第１の実施形態では、ポーズ推定部１７０は、選択された再投影点２３０における再投影誤差２７０の和を最小化するように仮想カメラ２４０の位置と姿勢とを算出する。つまり、仮想映像フレーム２００と第２映像フレームにおける選択された特徴点に関する再投影誤差２７０の和を最小化するように仮想カメラ２４０の位置と姿勢とを算出する。
【００９０】
次に、ポーズ推定部１７０における処理を図１０のフローチャートを用いて説明する。ここでは、ポーズ推定の処理にＲＡＮＳＡＣ（Ｒａｎｄｏｍ  Ｓａｍｐｌｅ  Ｃｏｎｓｅｎｓｕｓ）を用いた場合について説明する。
【００９１】
ステップＳ１００１で、ポーズ推定部１７０は、映像フレーム（フレーム番号ｉ）に対応する仮想映像フレーム２００において、ポーズ推定を実行するのに必要な数（最低必要数Ｎ）の特徴点に対応する再投影点２３０が存在するか否かを判断する。最低必要数Ｎ以上の再投影点２３０が存在する場合（ステップＳ１００１  Ｙｅｓ）、ステップＳ１００２に進む。一方、最低必要数Ｎ以上の再投影点２３０が存在しない場合（ステップＳ１００１  Ｎｏ）、ステップＳ１００９に進む。
【００９２】
ステップＳ１００２で、ポーズ推定部１７０は、Ｎ個以上の再投影点２３０を選択し、選択された再投影点２３０と、該再投影点２３０に対応する観測点２６０との再投影誤差２７０の和を最小化するようにポーズを推定する処理を行う。つまり、ポーズ推定部１７０は、仮想カメラ２４０の位置と姿勢とを算出する。
【００９３】
ステップＳ１００３で、ポーズ推定部１７０は、ステップＳ１００２で選択されなかった再投影点２３０と、該再投影点２３０に対応する観測点２６０との再投影誤差２７０を算出する。
【００９４】
ステップＳ１００４で、ポーズ推定部１７０は、算出された再投影誤差２７０が、誤差Ｌより小さい再投影点２３０をインライアとして分類する。ポーズ推定部１７０は、算出された再投影誤差２７０が、誤差Ｌ以上の再投影点２３０をアウトライアとして分類する。
【００９５】
ステップＳ１００５で、ポーズ推定部１７０は、インライアとして分類された再投影点２３０の数がインライア数の閾値Ｔを上回るか否かを判断する。インライア数の閾値Ｔを上回る場合（ステップＳ１００５  Ｙｅｓ）、ステップＳ１００６に進む。インライア数の閾値Ｔ以下の場合、ステップＳ１００７に進む。
【００９６】
ステップＳ１００６で、ポーズ推定部１７０は、アウトライアとして分類された再投影点２３０を、追跡処理設定部１８０に通知し、処理を終了する。
【００９７】
ステップＳ１００７で、ポーズ推定部１７０は、ポーズ推定処理の回数を１増加させる。
【００９８】
ステップＳ１００８で、ポーズ推定部１７０は、ポーズ推定処理の回数が、最大繰り返し回数より小さいか否かを確認する。最大繰り返し回数より小さい場合（ステップＳ１００８  Ｙｅｓ）、ステップＳ１００１に戻り、ポーズ推定部１７０は、再度ポーズ推定処理を実行する。一方、最大繰り返し回数以上の場合（ステップＳ１００８  Ｎｏ）、ステップＳ１０１０に進む。
【００９９】
ステップＳ１００９で、ポーズ推定部１７０は、ポーズ推定処理が失敗したと判断し、処理を終了する。
【０１００】
ステップＳ１０１０で、ポーズ推定部１７０は、ポーズ推定処理が失敗したと判断し、処理を終了する。
【０１０１】
なお、「最低必要数Ｎ」、「再投影誤差Ｌ」、「インライア数の閾値Ｔ」、及び「最大繰り返し回数Ｍ」は、映像処理装置１０の管理者により任意の値を設定することが可能であり、記憶部１９５に記憶される。
【０１０２】
（３）固有値判定処理
映像処理装置１０は、パターンマッチング処理の完了後に、固有値判定処理を実行してもよい。これにより、特徴点を正確に抽出することができる。図１１及び図１２を用いて固有値判定処理について説明する。
【０１０３】
図１１は、固有値判定処理を含む、閾値設定の処理手順を示す図である。ステップＳ１１０１乃至ステップＳ１１０３は、ステップＳ８０１乃至ステップＳ８０３と同じ処理であり、ステップＳ１１０６乃至ステップＳ１１１０は、ステップＳ８０４乃至ステップＳ８０８と同じである。また、ステップＳ１１１３は、ステップＳ８０９と同じである。このため、これらの処理についての説明は省略する。
【０１０４】
ステップＳ１１０４で、ポーズ推定部１７０は、映像フレームＦ（Ｍ＋１）に対応する仮想映像フレーム２００に対して固有値算出処理を行う。固有値とは、画素の周辺画素からの際立ち度合いを示す値であり。ポーズ推定部１７０は、算出された仮想映像フレーム２００の各画素の固有値を記憶部１９５に通知し、記憶部１９５は通知された各画素の固有値を記憶する。
【０１０５】
追跡部１４０は、パターンマッチング処理の結果、追跡された特徴点の各々について算出された固有値が所定の条件を満たすか否か判断する固有値判定処理を行う。
【０１０６】
ここで、固有値算出処理及び固有値判定処理とは、特徴点として抽出された画素が周辺の画素に対して際立っている点であるか否かを判定する処理である。具体的な処理の方法については後述する。
【０１０７】
ステップＳ１１０５で、追跡部１４０は、固有値判定処理が成功したか否かを判断する。固有値判定処理が成功した場合（ステップＳ１１０５  Ｙｅｓ）、ステップＳ１１０６に進む。一方、固有値判定処理が失敗した場合（ステップＳ１１０５  Ｎｏ）、ステップＳ１１０３に進む。
【０１０８】
ステップＳ１１１１で、類似度算出部１８１は、ステップＳ１１０９で選択された再投影点２３０における固有値ＴＨを、記憶部１９５から取得する。
【０１０９】
ステップＳ１１１２で、閾値設定部１８２は、固有値ＴＨを、映像フレームＦ（Ｍ＋２）における固有値判定処理の際に用いる固有閾値λｔｈに設定する。設定された固有閾値λｔｈは記憶部１９５に記憶される。
【０１１０】
次に、固有値算出処理及び固有値判定処理の方法について図１２を用いて説明する。
【０１１１】
追跡部１４０は、映像フレームＦ（Ｍ＋１）において、追跡点を中心とする所定のサイズの固有値判定用画像Ｊを生成する。追跡部１４０は、追跡点を中心とする１５×１５の固有値判定用画像Ｊを生成する。次に、追跡部１４０は、固有値判定用画像Ｊに画素間補完を行い、補間画像Ｊ'を生成する。追跡部１４０は、補間画像Ｊ'を横方向（ｘ方向）と、縦方向（ｙ方向）に微分し、勾配画像Ｊ'０ｘ、及び勾配画像Ｊ'０ｙを生成する。
【０１１２】
追跡部１４０は、関数ｆ（λ）と２行２列の行列Ｇを用いて、固有値を算出する。ここで、行列Ｇが図１２の式１で表される場合、関数ｆ（λ）は式２のように表される。
【０１１３】
追跡部１４０は、生成された勾配画像Ｊ'０ｘ、及び勾配画像Ｊ'０ｙを基に、図１２の式３を用いて固有値判定に用いる行列Ｇを算出する。行列Ｇは、勾配画像Ｊ'０ｘ、及び勾配画像Ｊ'０ｙ内の画素の２乗和を算出することにより算出される。ここで、図１２の式３中の「ｘ＝ｐｘ−ｗｘ」、「ｐｘ＋ｗｘ」、「ｙ＝ｐｙ−ｗｙ」、及び「ｐｙ＋ｗｙ」は固有値判定用画像Ｊの映像フレームＦ（Ｍ＋１）内の領域を表している。
【０１１４】
図１２の式３で算出された行列Ｇと関数ｆ（λ）を用いて、映像フレームＦ（Ｍ＋１）の固有値が算出される。
【０１１５】
次に、追跡部１４０は、追跡された特徴点の各々について算出された結果が、式４及び式５を満たすか否かを判断する。式４及び式５を満たす場合、追跡点は滑らかでない、つまり際立っていると判断できるため、追跡部１４０は、特徴点に対する固有値判定処理が成功したと判断する。一方、式４及び式５を満たさない場合、追跡部１４０は、特徴点に対する固有値判定処理が失敗したと判断する。ここで、固有閾値λｔｈは固有値判定処理に用いる固有閾値であり、記憶部１９５に記憶されている。固有閾値λｔｈは閾値設定部１８２により、１つ前の映像フレームの固有値算出処理の結果を基に算出される。映像処理装置１０は、固有値判定の処理を実行することにより、追跡点の誤検出を防ぐことが可能となる。
【０１１６】
（４）単一性判定処理
映像処理装置１０は、パターンマッチング処理の完了後に、単一性判定処理を実行してもよい。これにより、特徴点の抽出の精度を向上させることができる。図１３及び図１４を用いて単一性判定処理について説明する。ここで、単一性とは、特徴点に対応する１つの追跡点が特定できることである。
【０１１７】
図１３を用いて、単一性判定処理の具体例について説明する。図１３の（１）は第１の探索ウィンドウ内の特徴点と再投影点との類似度の分布２８０１を３次元で示す図である。類似度は、第１の探索ウィンドウの幅Ｗ、高さＨ内に分布している。図１３の（２）は第１の探索ウィンドウ内の特徴点と再投影点との類似度の分布２８０２を２次元で示す図である。図１３では、類似度が低い点ほど、属性値が近い値である。
【０１１８】
図１３の（２）では、極値２８０４が最も小さい。また、極値２８０３は、２番目に小さい。つまり、図１３から、極値２８０４を有する再投影点の属性値が特徴点の属性値と最も近く、極値２８０３を有する再投影点の属性値が、その次に特徴点の属性値と近いことがわかる。したがって、極値２８０４を有する再投影点が、特徴点の追跡点となる。
【０１１９】
しかしながら、図１３から分かるように、極値２８０４を有する再投影点の属性値と、極値２８０３を有する再投影点の属性値とは、近い値（差分が小さい値）であり、極値２８０３を有する再投影点が、誤って追跡点として抽出される可能性がある。例えば、縞模様のように輝度値の分布が似ている領域が繰り替えされるような映像フレームの場合、極値を有する再投影点同士の類似度の差が小さくなり、誤った画素が抽出点として抽出される可能性がある。
【０１２０】
第１の実施形態の追跡部１４０は、第１の探索ウィンドウ内の最も小さい極値を有する再投影点と、２番目に小さい極値を有する再投影点との類似度の差が、単一性判断用の閾値以上離れているか否かを判断する（判断１）。判断の結果、単一性判断用の閾値以上離れている場合、追跡部１４０は、最も小さい極値を有する再投影点を追跡点の候補として抽出する。次に、追跡部１４０は、追跡点の候補として抽出した再投影点と、パターンマッチング処理により追跡点として抽出した再投影点が一致するか否かを判断する（判断２）。一致する場合、追跡部１４０は、追跡点の候補とを追跡点とする。
【０１２１】
以上のように、追跡部１４０は、最も小さい極値を有する再投影点の類似度と、次に小さい極値を有する再投影点の類似度との差が単一性判断用の閾値以上であり、且つ、最も小さい極値を有する再投影点が、追跡部１４０が抽出した追跡点と一致するとき、単一性の処理が成功したと判断する。また、追跡部１４０は、上述した２つの条件を両方とも満たさない場合は、単一性の処理が失敗したと判断する。
【０１２２】
図１４は、単一性判定処理を含む閾値設定の処理手順を示す図である。ステップＳ１４０１乃至ステップＳ１４０３は、ステップＳ８０１乃至ステップＳ８０３と同じ処理であり、ステップＳ１４０６乃至ステップＳ１４１１は、ステップＳ８０４乃至ステップＳ８０９と同じである。このため、これらの処理についての説明は省略する。
【０１２３】
ステップＳ１４０４で、追跡部１４０は、パターンマッチング処理の結果、追跡された特徴点の各々に対して単一性判定処理を行う。
【０１２４】
ステップＳ１４０５で、追跡部１４０は、単一性判定が成功したか否かを判断する。単一性判定が成功した場合（ステップＳ１４０５  Ｙｅｓ）、ステップＳ１４０６に進む。一方、単一性判定が失敗した場合（ステップＳ１４０５  Ｎｏ）、ステップＳ１４０３に進む。
【０１２５】
パターンマッチング処理に加えて、単一性判定処理を行うことにより、追跡部１４０は特徴点に対応する追跡点を誤検出する可能性を抑えることができる。
【０１２６】
（５）探索ウィンドウサイズの変更処理
映像処理装置１０は、追跡点を抽出できない場合、第１の探索ウィンドウのサイズを変更してパターンマッチングを行うことにより特徴点に対応する追跡点の抽出を行ってもよい。第１の探索ウィンドウサイズの変更処理は、パターンマッチングの処理が失敗した場合、固有値判定の処理が失敗した場合、又は単一性判定処理が失敗した場合に実行される。
【０１２７】
図１５を用いて、第１の探索ウィンドウサイズの変更処理について説明する。図１５は、固有値判定の処理が失敗したときに、第１の探索ウィンドウサイズの変更処理が実行される場合のフローチャートを示している。ステップＳ１５０１乃至ステップＳ１５０５の手順については、ステップＳ１１０１乃至ステップＳ１１０５の手順と同じである。また、ステップＳ１５０９乃至ステップＳ１５１６の手順については、ステップＳ１１０６乃至ステップＳ１１１３の手順と同じであるため説明を省略する。
【０１２８】
固有値判定処理が失敗した場合（ステップＳ１５０５  Ｎｏ）、ステップＳ１５０６の処理が実行される。
【０１２９】
ステップＳ１５０６で、追跡部１４０は、第１の探索ウィンドウサイズの変更回数が所定の回数を上回っているか否かを判断する。ここで変更回数の初期値は０である。
【０１３０】
変更回数が所定の回数を上回っている場合（ステップＳ１５０６  Ｙｅｓ）、ステップＳ１５０３に進み、追跡部１４０は特徴点の探索に失敗したと判断し処理を終了する。
【０１３１】
一方、変更回数が所定の回数以下の場合（ステップＳ１５０６  Ｎｏ）、ステップＳ１５０７に進む。
【０１３２】
ステップＳ１５０７で、追跡部１４０は第１の探索ウィンドウのサイズを変更する。例えば、追跡部１４０は、第１の探索ウィンドウの縦及び横のサイズを所定の画素数分拡大されてもよいし、第１の探索ウィンドウの縦及び横のサイズを所定の割合拡大してもよい。拡大された第１の探索ウィンドウのサイズは記憶部１９５に記憶される。
【０１３３】
ステップＳ１５０８で、第１の探索ウィンドウの変更回数を１増加させ、ステップＳ１５０１に戻る。ステップＳ１５０１において、サイズが拡大された第１の探索ウィンドウに対するパターンマッチングの処理が実行される。
【０１３４】
第１の探索ウィンドウサイズの変更を行うことにより、第１の探索ウィンドウ内で特徴点に対応する追跡点が抽出されなかった場合でも、サイズが拡大された第１の探索ウィンドウに対するパターンマッチングの処理が実行されるため、特徴点が抽出される可能性が高くなる。なお、拡大するサイズについては、縦及び横のサイズを１０画素ずつ増加させる、又は１０％ずつ増加させる等の設定をすることが想定されている。
【０１３５】
パターンマッチングの処理が失敗したときに、第１の探索ウィンドウサイズの変更処理が実行される場合、ステップＳ１５０２で「Ｎｏ」の後に、ステップＳ１５０４乃至ステップＳ１５０８の第１の探索ウィンドウサイズの変更処理が実行される。
【０１３６】
単一性判定の処理が失敗したときに、第１の探索ウィンドウサイズの変更処理が実行される場合、図１４のステップＳ１４０５において、単一性判定の失敗と判断された後に（ステップＳ１４０５  Ｎｏ）、ステップＳ１５０６乃至ステップＳ１５０８の手順が実行される。
【０１３７】
［その他］
上述した実施形態では、パターンマッチング処理及び固有値判定処理が実行される場合と、パターンマッチング処理及び単一性判定処理が実行される場合について記載したが、特徴点を抽出する際に、パターンマッチング処理、固有値判定処理、及び単一性判定処理が同時に実行されてもよい。
【０１３８】
上述した実施の形態の機能を実現するソフトウエアのプログラムコードを記録した記憶媒体を、映像処理装置１０に供給してもよい。そして、映像処理装置１０が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、上述の実施形態が、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は、いずれかの実施の形態を構成することになる。ここで、記憶媒体は、記録媒体または非一時的な記憶媒体である。
【０１３９】
また、コンピュータ装置が読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけではない。そのプログラムコードの指示に従って、コンピュータ装置上で動作しているオペレーティングシステム（ＯＳ）等が実際の処理の一部または全部を行ってもよい。さらに、その処理によって前述した実施形態の機能が実現されてもよいことは言うまでもない。
【０１４０】
以上、本発明の好ましい実施形態について説明したが、本発明はこうした実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【符号の説明】
【０１４１】
１  映像処理システム
１０  映像処理装置
２０  カメラ
１１０  映像入力部
１２０  映像補正部
１３０  抽出部
１４０  追跡部
１５０  フレームバッファ
１６０  重複点除去部
１７０  ポーズ推定部
１８０  追跡処理設定部
１８１  類似度算出部
１８２  閾値設定部
１９０  ３次元再構成部
１９５  記憶部
【先行技術文献】
【特許文献】
【０１４２】
【特許文献１】特開２０１０−１６５１０４号公報
【図１】
2017130042.tif 000003
【図２】
2017130042.tif 000004
【図３】
2017130042.tif 000005
【図４】
2017130042.tif 000006
【図５】
2017130042.tif 000007
【図６】
2017130042.tif 000008
【図７】
2017130042.tif 000009
【図８】
2017130042.tif 000010
【図９】
2017130042.tif 000011
【図１０】
2017130042.tif 000012
【図１１】
2017130042.tif 000013
【図１２】
2017130042.tif 000014
【図１３】
2017130042.tif 000015
【図１４】
2017130042.tif 000016
【図１５】
2017130042.tif 000017