(57)【特許請求の範囲】
【請求項１】
現実空間の画像を撮影する撮影装置と、
前記撮影装置の撮影視点の姿勢を計測する姿勢センサと、
前記姿勢センサによって計測された姿勢からモデルビュー行列を算出するモデルビュー行列算出手段と、
前記撮影装置が撮影した現実空間画像を取得し、該取得した現実空間画像中に映っている指標の画像座標を検出し、該検出された指標の画像座標を用いて、前記モデルビュー行列を補正するための補正行列を算出する補正行列算出手段と、
前記現実空間画像の撮影タイミングよりも過去の撮影タイミングで前記撮影装置が撮影した画像を用いて前記補正行列算出手段が算出した補正行列を用いて、前記現実空間画像の撮影タイミングで前記姿勢センサによって計測された姿勢から前記モデルビュー行列算出手段が算出したモデルビュー行列、を補正するための補正行列を推測する推測手段と、
前記推測手段が推測した補正行列を用いて、前記現実空間画像の撮影タイミングで前記姿勢センサによって計測された姿勢から前記モデルビュー行列算出手段が算出したモデルビュー行列を補正し、該補正されたモデルビュー行列を用いて仮想物体の画像を生成し、該生成した画像と前記現実空間画像とを合成する合成手段と
を備えることを特徴とする画像処理装置。
【請求項２】
前記補正行列は、前記モデルビュー行列においてピッチ角とヨー角とを補正するための行列であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記推測手段は、前記現実空間画像の撮影タイミングよりも過去の撮影タイミングで前記撮影装置が撮影した画像を用いて前記補正行列算出手段が算出した補正行列を用いた線形予測により、前記現実空間画像の撮影タイミングで前記姿勢センサによって計測された姿勢から前記モデルビュー行列算出手段が算出したモデルビュー行列、を補正するための補正行列を推測することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
現実空間の画像を撮影する撮影装置と、
前記撮影装置の撮影視点の姿勢を計測する姿勢センサと
を備える画像処理装置が行う画像処理方法であって、
前記画像処理装置のモデルビュー行列算出手段が、前記姿勢センサによって計測された姿勢からモデルビュー行列を算出するモデルビュー行列算出工程と、
前記画像処理装置の補正行列算出手段が、前記撮影装置が撮影した現実空間画像を取得し、該取得した現実空間画像中に映っている指標の画像座標を検出し、該検出された指標の画像座標を用いて、前記モデルビュー行列を補正するための補正行列を算出する補正行列算出工程と、
前記画像処理装置の推測手段が、前記現実空間画像の撮影タイミングよりも過去の撮影タイミングで前記撮影装置が撮影した画像を用いて前記補正行列算出工程で算出した補正行列を用いて、前記現実空間画像の撮影タイミングで前記姿勢センサによって計測された姿勢から前記モデルビュー行列算出工程で算出したモデルビュー行列、を補正するための補正行列を推測する推測工程と、
前記画像処理装置の合成手段が、前記推測工程で推測した補正行列を用いて、前記現実空間画像の撮影タイミングで前記姿勢センサによって計測された姿勢から前記モデルビュー行列算出工程で算出したモデルビュー行列を補正し、該補正されたモデルビュー行列を用いて仮想物体の画像を生成し、該生成した画像と前記現実空間画像とを合成する合成工程と
を備えることを特徴とする画像処理方法。
【請求項５】
コンピュータを、請求項１乃至３の何れか１項に記載の画像処理装置が有する各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、計測対象の姿勢または位置姿勢を出力する画像処理装置、画像処理方法、コンピュータプログラムに関するものである。
【０００２】
【従来の技術】
近年、複合現実感（以下、「ＭＲ」（Ｍｉｘｅｄ  Ｒｅａｌｉｔｙ）と称す）に関する研究が盛んに行われている。
【０００３】
ＭＲには、ビデオカメラなどの撮影装置で撮影された現実空間の映像に仮想空間（たとえばコンピュータグラフィックス（以下、ＣＧと称す）により描画された仮想物体や文字情報など）の映像を重畳表示するビデオシースルー方式と、ユーザが頭部に装着したＨＭＤ（Ｈｅａｄ−Ｍｏｕｎｔｅｄ Ｄｉｓｐｌａｙ）に現実空間の像を光学的に透過させつつ、その表示画面に仮想空間の映像を重畳表示する光学シースルー方式がある。
【０００４】
ＭＲの応用としては、患者の体内の様子を透視しているかのように医師に提示する医療補助の用途や、工場において製品の組み立て手順を実物に重ねて表示する作業補助の用途など、今までのＶＲとは質的に全く異なった新たな分野が期待されている。
【０００５】
これらの応用に対して共通に要求されるのは、現実空間と仮想空間の間の位置合わせをいかにして行うかという技術であり、従来から多くの取り組みが行われてきた。
【０００６】
ビデオシースルー方式のＭＲにおける位置合わせの問題は、撮影装置の視点の位置姿勢を正確に求める問題に帰結される。また光学シースルー方式のＭＲにおける位置合わせの問題は、同様にユーザの視点の位置姿勢を求める問題といえる。
【０００７】
従来のＭＲシステム（特に屋内におけるＭＲシステム）では、これらの問題を解決する方法として、磁気センサや超音波センサなどの位置姿勢センサを利用して、これらの視点の位置姿勢を導出することが一般的に行われている。
【０００８】
一方、従来の屋外におけるＭＲシステムでは、これらの視点の姿勢の導出にジャイロセンサ（厳密には、３軸方向の角速度を計測するための複数のジャイロセンサと、３軸方向の加速度を計測するための複数の加速度センサの組み合わせによって構成される３軸姿勢センサであるが、本明細では便宜上これをジャイロセンサと呼ぶこととする）が利用されている。
【０００９】
【発明が解決しようとする課題】
しかし、ジャイロセンサを用いて視点の姿勢を求める場合、高精度なジャイロセンサを用いた場合であっても、ジャイロセンサにはドリフト誤差があるため、時間経過に伴って徐々に方位方向の計測値に誤差が生じてしまう。また、ジャイロセンサは姿勢計測のみしか行えないため、視点の位置の変化に追従することが出来ない。つまり、時間経過や視点の位置の変化に伴って現実空間と仮想空間との間に位置ずれが生じてしまう。
【００１０】
本発明は以上の問題に鑑みてなされたものであり、視点の姿勢または位置姿勢の計測を行うことを目的とし、特に、時間経過に伴って生じる方位方向成分の誤差補正を行うことを目的とする。
【００１１】
【課題を解決するための手段】
本発明の目的を達成するために、例えば本発明の画像処理装置は以下の構成を備える。
【００１２】
すなわち、現実空間の画像を撮影する撮影装置と、
前記撮影装置の撮影視点の姿勢を計測する姿勢センサと、
前記姿勢センサによって計測された姿勢からモデルビュー行列を算出するモデルビュー行列算出手段と、
前記撮影装置が撮影した現実空間画像を取得し、該取得した現実空間画像中に映っている指標の画像座標を検出し、該検出された指標の画像座標を用いて、前記モデルビュー行列を補正するための補正行列を算出する補正行列算出手段と、
前記現実空間画像の撮影タイミングよりも過去の撮影タイミングで前記撮影装置が撮影した画像を用いて前記補正行列算出手段が算出した補正行列を用いて、前記現実空間画像の撮影タイミングで前記姿勢センサによって計測された姿勢から前記モデルビュー行列算出手段が算出したモデルビュー行列、を補正するための補正行列を推測する推測手段と、
前記推測手段が推測した補正行列を用いて、前記現実空間画像の撮影タイミングで前記姿勢センサによって計測された姿勢から前記モデルビュー行列算出手段が算出したモデルビュー行列を補正し、該補正されたモデルビュー行列を用いて仮想物体の画像を生成し、該生成した画像と前記現実空間画像とを合成する合成手段と
を備えることを特徴とする。
【００１３】
本発明の目的を達成するために、例えば本発明の画像処理方法は以下の構成を備える。
【００１４】
すなわち、現実空間の画像を撮影する撮影装置と、
前記撮影装置の撮影視点の姿勢を計測する姿勢センサと
を備える画像処理装置が行う画像処理方法であって、
前記画像処理装置のモデルビュー行列算出手段が、前記姿勢センサによって計測された姿勢からモデルビュー行列を算出するモデルビュー行列算出工程と、
前記画像処理装置の補正行列算出手段が、前記撮影装置が撮影した現実空間画像を取得し、該取得した現実空間画像中に映っている指標の画像座標を検出し、該検出された指標の画像座標を用いて、前記モデルビュー行列を補正するための補正行列を算出する補正行列算出工程と、
前記画像処理装置の推測手段が、前記現実空間画像の撮影タイミングよりも過去の撮影タイミングで前記撮影装置が撮影した画像を用いて前記補正行列算出工程で算出した補正行列を用いて、前記現実空間画像の撮影タイミングで前記姿勢センサによって計測された姿勢から前記モデルビュー行列算出工程で算出したモデルビュー行列、を補正するための補正行列を推測する推測工程と、
前記画像処理装置の合成手段が、前記推測工程で推測した補正行列を用いて、前記現実空間画像の撮影タイミングで前記姿勢センサによって計測された姿勢から前記モデルビュー行列算出工程で算出したモデルビュー行列を補正し、該補正されたモデルビュー行列を用いて仮想物体の画像を生成し、該生成した画像と前記現実空間画像とを合成する合成工程と
を備えることを特徴とする。
【００１５】
【発明の実施の形態】
以下添付図面を参照して、本発明を好適な実施形態に従って詳細に説明する。
【００１６】
［第１の実施形態］
本実施形態では、姿勢センサによるカメラ視点の姿勢計測誤差を補正することで、位置ずれのないＭＲ空間の提示を実現する画像処理装置について説明する。
【００１７】
姿勢センサを備えたＨＭＤの姿勢に応じて、現実物体の画像に仮想物体の画像を重畳描画する従来の画像処理装置の構成を図２に示す。
【００１８】
同図のＨＭＤ２００はビデオシースルー方式のものであって、画像を表示するディスプレイ２０１と、このＨＭＤ２００を装着した観察者の視点位置から現実空間を撮像するカメラ２０２（観察者視点カメラ）を備え、またカメラ２０２の視点の姿勢を計測する姿勢センサ２０３（例えばここではジャイロセンサ）を備えている。又、画像処理装置２１０は、姿勢センサ２０３からセンサ出力を入力するセンサ入力モジュール２１１、カメラ２０２から現実物体の撮影画像を入力する画像入力モジュール２１３、センサ入力モジュール２１１から入力したカメラ２０２の視点の姿勢と他の方法により得たカメラ２０２の視点位置に基づいてカメラ２０２の視点の位置姿勢を表わす情報（例えば４×４のモデルビュー行列Ｍｔ）を生成する視点位置姿勢演算モジュール２１２、視点位置姿勢演算モジュール２１２により演算された視点の位置姿勢を表わす情報に基づいて現実物体の画像に仮想物体の画像を重畳描画した画像を生成する画像生成モジュール２１４から構成されており、ディスプレイ２０１に提示画像を提供する。この場合、時間経過に伴って、センサ出力の誤差の蓄積に応じて生じる位置ずれを含んだ画像がディスプレイ２０１に表示される。
【００１９】
なお、本実施形態においては、視点位置は固定値として予め視点位置姿勢演算モジュール２１２に保持されているものとする。一般に、観察するＭＲ空間中の観察対象物体（現実物体、仮想物体）までの距離が視点位置の実際の移動量に対して相対的に大きい場合には、視点位置に多少の誤差があっても画像上での位置ずれに大幅な影響を与えないという性質がある。特に屋外におけるＭＲシステムのように観察対象物体が遠方に存在する場合で、かつ、観察者が一箇所に立ち止まっているような用途においては、このように視点の位置を固定値とすることが有効である。もちろん、カメラ２０２の視点位置を計測する他の位置センサ（例えばＧＰＳ等）をＨＭＤ２００にさらに装着し、その出力を視点位置として入力してもよい。
【００２０】
尚、本実施形態では、上記の理由から、視点位置の誤差が相対値として十分に小さいものであり、視点位置の誤差に起因する画像上での位置ずれは十分無視できるほどのものであると仮定する。
【００２１】
次に、ＨＭＤ２００を繋いだ本実施形態における画像処理装置の構成を図３に示す。図２と同じ部分には同じ番号を付けており、又、図２と同じ部分については説明は省略する。
【００２２】
図３に示した画像処理装置３１０は、図２に示した画像処理装置２１０に補正値演算モジュール２１５を付加し、さらに、視点位置姿勢演算モジュール２１２を視点位置姿勢演算モジュール３１２に変更した装置の構成となっている。この補正値演算モジュール２１５は、画像入力モジュール２１３から入力した撮影画像とセンサ入力モジュール２１１から入力した視点の姿勢に基づいて、後述する補正値演算処理によって補正値（補正行列ΔＭｔ）を算出し、視点位置姿勢演算モジュール３１２へと出力する。視点位置姿勢演算モジュール３１２は、センサ入力モジュール２１１から入力したカメラ２０２の視点の姿勢と他の方法により得たカメラ２０２の視点位置と補正値演算モジュール２１５から入力した補正値に基づいて、後述する姿勢補正処理を実行して、センサ出力に基づいて算出した位置姿勢情報（モデルビュー行列Ｍｔ）を補正して、補正後の視点位置姿勢情報（補正後のモデルビュー行列Ｍ＄ｔ）を生成する。
【００２３】
次に、補正値演算モジュール２１５における補正値演算処理の基本的原理について説明する。
【００２４】
補正値演算処理は、基本的には、画像上に撮像されるランドマーク（例えばビルの角や家の屋根など、その投影像の画像特徴を位置合わせの指標して利用可能な現実物体（の一部分））を用いて、センサ出力に基づいて予測した画像上におけるランドマークの観測予測位置と、画像処理によって実際に検出される当該ランドマークの画像上における観測位置に基づいて行われる。したがって、画像上から如何に正確かつ安定的にランドマークの観測位置を検出するかが、補正値演算処理の最大のポイントとなる。
【００２５】
本実施形態では、ランドマークのテンプレート画像を用いたテンプレートマッチングによってランドマークの検出を行う。
【００２６】
一般に、テンプレートマッチングによって画像中から画像特徴を抽出する場合には、画像面上における画像特徴の回転が問題となる。この画像特徴の回転は、カメラや撮影対象物体がカメラ座標系におけるロール方向に回転することで生じる。例えば、図１４（ａ）に示したテンプレート画像Ｔを用いて、図１４（ｂ）に示した撮影画像Ｉ上からランドマークＬを検出する場合、画像特徴の回転を考慮しない探索処理を行った場合には安定的にランドマークを検出することが出来ない。一方、図１４（ｃ）に示すように、画像特徴の回転を考慮した形でテンプレート画像Ｔに回転（図の例では４５°毎の回転）を加えたテンプレート画像Ｔ’を複数用意し、各々のテンプレート画像毎に探索処理を行うことで、画像特徴の回転に対処したランドマークの検出を行うことができる。しかし、計算量はテンプレートの数に比例して増加するため、非常に計算負荷の高い処理となってしまう。
【００２７】
本実施形態においては、姿勢センサ２０３によって、カメラ２０２の視点の姿勢が計測されている。この計測値のうちの方位方向の値については前述のとおり時間経過に伴う誤差の蓄積が存在するが、方位方向以外の２軸（すなわち、ロール方向とピッチ方向）については比較的正確な値が取得されている。したがって、図１４（ｄ）に示したように、姿勢センサ２０３によって計測されるカメラ２０２のロール方向の回転角に基づいて撮影画像Ｉに回転を加えた変換画像Ｉ’を生成し、この画像Ｉ’上においてテンプレート画像Ｔによる探索処理を行うことで、画像特徴の回転に依存しないランドマークの検出が可能となる。
【００２８】
さらに、本実施形態においては、他の２軸の姿勢についても姿勢センサ２０３による計測値が得られており、かつ、前フレームまでの処理において姿勢補正値演算モジュール２１５にて前フレームにおける姿勢補正値が得られている。したがって、図１４（ｅ）に示したように、それらの値に基づいて撮影画像Ｉ上におけるランドマークの大まかな位置ｐを予測し、その予測位置の近傍領域（同図におけるターゲット画像抽出領域）に対してのみ上記の回転処理を行うことで、ランドマークの探索処理を行う対象であるターゲット画像Ｒを作成し（図１４（ｆ））、探索範囲を限定することができる。
【００２９】
従って、テンプレートマッチングによるランドマークの検出を高速かつ安定的に行うことが可能となる。
【００３０】
次に、補正値演算モジュール２１５の具体的な構成を図４に示す。
【００３１】
補正値演算モジュール２１５は、後述する画像Ｉ０に基づいてテンプレート画像を生成するテンプレート画像生成モジュール４０３と、時刻ｔにおける画像Ｉｔとカメラ２０２の姿勢（ｒｏｌｌｔ）とに基づいてターゲット画像を生成するターゲット画像生成モジュール４０４、ターゲット画像とテンプレート画像とを用いて類似度を算出し、ランドマークの位置を検出する対応探索モジュール４０２、そして検出されたランドマークの位置に従って、これまでの補正値を最新の補正値（後述する補正行列ΔＭｔ）に更新しこれを出力する補正値更新モジュール４０１により構成されている。
【００３２】
次に、本実施形態で用いる各変数について説明する。
【００３３】
・ｉ番目（ｉ＝１，２，３，，，）のランドマークをＬｉ
・ランドマークＬｉの世界座標における位置（既知）をＰｉ＝（Ｘｉ，Ｙｉ，Ｚｉ，１）Ｔ
・カメラの既定の位置を（Ｘ０，Ｙ０，Ｚ０）
・テンプレート画像生成の際に用いるカメラの既定の姿勢を（ｒｏｌｌ０，ｐｉｔｃｈ０，ｙａｗ０）
・カメラの既定の位置姿勢におけるモデルビュー行列（世界座標系からカメラ座標系への変換行列）をＭ０
・カメラの焦点距離（既知）をｆ
・カメラの射影変換行列（カメラ座標系から画像座標系への変換行列）（既知）をＳ
・カメラの既定の位置姿勢における撮影画像をＩ０
・ランドマークＬｉの画像Ｉ０上における撮影位置をｐｉ０＝（ｘｉ０ｈｉ０，ｙｉ０ｈｉ０，ｈｉ０）Ｔ
・ランドマークＬｉを検索するためのテンプレート画像をＴｉ
・テンプレート画像のサイズ（既定）をＮ×Ｎ
・テンプレート画像の座標の範囲をｘｓＴ，ｘｅＴ，ｙｓＴ，ｙｅＴ（但し、ｘｓＴ＝ｙｓＴ＝−Ｎ／２の小数部を切り捨てた値。ｘｅＴ＝ｙｅＴ＝ｘｓＴ＋Ｎ−１）
・時刻ｔにおいて撮影された画像をＩｔ
・時刻ｔにおけるセンサによる姿勢計測値を（ｒｏｌｌｔ，ｐｉｔｃｈｔ，ｙａｗｔ）
・姿勢計測値（ｒｏｌｌｔ，ｐｉｔｃｈｔ，ｙａｗｔ）から算出したモデルビュー行列（世界座標系からカメラ座標系への変換行列）をＭｔ
・画像Ｉｔ上におけるランドマークＬｉの撮像予測位置をｐｉｔ＝（ｘｉｔｈｉｔ，ｙｉｔｈｉｔ，ｈｉｔ）Ｔ
・画像Ｉｔ上で実際に検出されるランドマークＬｉの撮像位置をｐ＄ｉｔ＝（ｘ＄ｉｔ，ｙ＄ｉｔ）
・画像ＩｔからランドマークＬｉを検出するための探索処理を行う対象となるターゲット画像をＲｉｔ
・ランドマークのｘ方向の探索範囲（既定）を±ｍ
・ランドマークのｙ方向の探索範囲（既定）を±ｎ
・ターゲット画像のサイズをＮ’×Ｎ”（但し、Ｎ’＝Ｎ＋２ｍ，Ｎ”＝Ｎ＋２ｎ）
・ターゲット画像の座標の範囲をｘｓＲ，ｘｅＲ，ｙｓＲ，ｙｅＲ（但し、ｘｓＲ＝ｘｓＴ−ｍ，ｘｅＲ＝ｘｅＴ＋ｍ，ｙｓＲ＝ｙｓＴ−ｎ，ｙｅＲ＝ｙｅＴ＋ｎ）
・ターゲット画像上ＲｉｔにおけるランドマークＬｉの検出座標を（ｊｉｔ，ｋｉｔ）
・各ランドマークの検出座標（ｊｉｔ，ｋｉｔ）の代表値を（ｊｔ，ｋｔ）
・時刻ｔにおいて算出されるカメラの姿勢の補正更新値Δｒｏｌｌ，Δｐｉｔｃｈ，Δｙａｗ
・時刻ｔにおいて算出されるカメラの位置の補正更新値Δｘ，Δｙ，Δｚ
・時刻ｔにおいて算出されるモデルビュー行列Ｍｔを補正するための補正行列をΔＭｔ
・これまでの処理で既に算出されている（時刻ｔ−１で算出されている）補正行列をΔＭｔ−１
・補正行列ΔＭｔ−１を補正行列ΔＭｔに更新するための補正更新行列ΔＭ’ｔ
・Ｍｔを補正行列ΔＭｔによって補正した補正後のモデルビュー行列をＭ＄ｔ・Ｍｔを補正行列ΔＭｔ−１によって補正した補正後のモデルビュー行列をＭ’ｔ
以上の設定に基づいて、本実施形態における姿勢計測誤差の補正処理について処理の流れに従って以下説明する。
【００３４】
＜テンプレート画像の作成＞
まず、現実空間を撮影するカメラを既定の位置姿勢に設定し画像Ｉ０を撮影する。図１に画像Ｉ０の例を示す。同図におけるＬ１〜Ｌ４がランドマークであり、Ｔ１〜Ｔ４で示した枠の部分がそれぞれのランドマークに対応するテンプレート画像として抽出される領域である。
【００３５】
次にモデルビュー行列Ｍ０を算出する。カメラの位置と姿勢からモデルビュー行列を算出する算出方法は公知の方法であるので、ここでの説明は省略する。
【００３６】
また、撮影された画像中のランドマーク毎（図１ではＬ１〜Ｌ４）にｐｉ０を以下の式にて算出する。
【００３７】
ｐｉ０＝ＳＭ０Ｐｉ
そして次に各ランドマーク毎にテンプレート画像Ｔｉ（図１ではＴ１〜Ｔ４で示された部分の画像）を後述の方法により作成する。
【００３８】
ｒｏｌｌ０が０のときは、画像Ｉ０から（ｘｉ０，ｙｉ０）を中心としたＮ×Ｎのサイズの矩形領域を抽出し、これをテンプレート画像Ｔｉとすればよい。テンプレート画像Ｔｉにおいては画像の中心を座標（０，０）と表わすこととすると、この処理は以下のように記述することができる。
【００３９】
Ｔｉ（ｊ，ｋ）＝Ｉ０（ｘｉ０＋ｊ，ｙｉ０＋ｋ）
但し、ｊ＝ｘｓＴ〜ｘｅＴ，ｋ＝ｙｓＴ〜ｙｅＴ。
【００４０】
一方、ｒｏｌｌ０が０でないときは、（ｘｉ０，ｙｉ０）を中心として、Ｎ×Ｎの矩形領域を−ｒｏｌｌ０だけ回転させた矩形領域を抽出する。すなわち、ｊ＝ｘｓＴ〜ｘｅＴ，ｋ＝ｙｓＴ〜ｙｅＴの各画素について、
Ｔｉ（ｊ，ｋ）＝Ｉ０（ｘｉ０＋ｊｃｏｓ（−ｒｏｌｌ０）−ｋｓｉｎ（−ｒｏｌｌ０），ｙｉ０＋ｊｓｉｎ（−ｒｏｌｌ０）＋ｋｃｏｓ（−ｒｏｌｌ０））
となるようなテンプレート画像Ｔｉを作成する。
【００４１】
＜各時刻におけるモデルビュー行列Ｍｔの算出＞
時刻ｔにおけるセンサ出力（姿勢（ｒｏｌｌｔ，ｐｉｔｃｈｔ，ｙａｗｔ））と、カメラの既定の位置（Ｘ０，Ｙ０，Ｚ０）に基づいて、モデルビュー行列Ｍｔを算出する。カメラの位置と姿勢からモデルビュー行列を算出する算出方法は公知の方法であるので、ここでの説明は省略する。
【００４２】
＜補正値演算処理：モデルビュー行列Ｍｔを補正する補正行列ΔＭｔの算出＞モデルビュー行列Ｍｔを補正する補正行列ΔＭｔの算出方法について説明する。
【００４３】
まずこれまでの処理で既に算出されている補正行列ΔＭｔ−１を用いてモデルビュー行列Ｍｔを補正し、Ｍ’ｔを求める。尚、この処理が最初の場合（ｔ＝０の場合）、補正行列ΔＭｔ−１は単位行列とする。
【００４４】
Ｍ’ｔ＝ΔＭｔ−１Ｍｔ
次に各ランドマーク毎にｐｉｔを以下の式に従って算出する。
【００４５】
ｐｉｔ＝ＳＭ’ｔＰｉ
尚、この方法は公知の方法であるため、詳細な説明は省略する。また、各ランドマークの座標を求めた結果、その座標が画像Ｉｔの座標の範囲外であるランドマークは、以後の処理対象から除外する。
【００４６】
次に、各ランドマーク毎にターゲット画像Ｒｉｔを作成する。具体的には、画像Ｉｔから同画像におけるローカル座標である（ｘｉｔ、ｙｉｔ）を中心としたＮ’×Ｎ”の矩形領域を−ｒｏｌｌｔだけ回転させた矩形を抽出する。すなわち、ｊ＝ｘｓＴ〜ｘｅＴ，ｋ＝ｙｓＴ〜ｙｅＴの各画素について、以下の変換を行う。
【００４７】
Ｒｉｔ（ｊ，ｋ）＝Ｉｔ（ｘｉｔ＋ｊｃｏｓ（−ｒｏｌｌｔ）−ｋｓｉｎ（−ｒｏｌｌｔ），ｙｉｔ＋ｊｓｉｎ（−ｒｏｌｌｔ）＋ｋｃｏｓ（−ｒｏｌｌｔ））
次に各ランドマーク毎に、ターゲット画像Ｒｉｔとテンプレート画像Ｔｉのマッチングを行い、ターゲット画像上におけるランドマークの位置（ｊｉｔ，ｋｉｔ）を求める。求める方法の具体的な処理について以下説明する。
【００４８】
まずターゲット画像Ｒｉｔ上の座標（ｊ，ｋ）を中心としたＮ×Ｎの矩形領域とテンプレート画像Ｔｉとの類似度ｅ（ｊ，ｋ）を算出する。類似度の算出は例えば相互相関やＳＳＤ（Ｓｕｍ ｏｆ Ｓｑｕａｒｅｄ Ｄｉｆｆｅｒｅｎｃｅ）などによって行うが、公知のいずれのテンプレートマッチング手法を用いてもよい。この類似度ｅ（ｊ，ｋ）を全てのｊ及びｋ（ただし、ｊ＝−ｍ〜ｍ，ｋ＝−ｎ〜ｎ）について算出し、類似度ｅ（ｊ，ｋ）を最大にするｊ及びｋを（ｊｉｔ，ｋｉｔ）とする。
【００４９】
そして、各ランドマークで求めた（ｊｉｔ，ｋｉｔ）から、代表値（ｊｔ，ｋｔ）を算出する。代表値の算出は、例えば、各ランドマーク毎に求めた（ｊｉｔ，ｋｉｔ）の平均値やメディアン値を求めることで行う。なお、各ランドマーク毎に求めた（ｊｉｔ，ｋｉｔ）のうち、その検出の際の類似度ｅ（ｊｉｔ，ｋｉｔ）が所定の閾値よりも大きいランドマークのみを代表値の算出に用いることで、信頼性の低い検出結果を除外することができる。この場合、類似度ｅ（ｊｉｔ，ｋｉｔ）が前記閾値以上となるランドマークの個数が所定数以下の場合には、時刻ｔにおける補正値演算処理を打ち切ってもよい。
【００５０】
そして次に、ランドマークの検出結果に基づいて、補正行列ΔＭｔの更新を行う。
【００５１】
まず、カメラの姿勢の補正更新値Δｒｏｌｌ，Δｐｉｔｃｈ，Δｙａｗを以下のようにして求める。
【００５２】
Δｒｏｌｌ  ＝０
Δｐｉｔｃｈ＝ａｒｃｔａｎ（ｋｔ／ｆ）
Δｙａｗ    ＝ａｒｃｔａｎ（ｊｔ／ｆ）
又、カメラの位置は固定と仮定しているので、位置の補正更新値Δｘ，Δｙ，Δｚは全て０となる。
【００５３】
次に、以上の姿勢Δｒｏｌｌ，Δｐｉｔｃｈ，Δｙａｗ、及び位置Δｘ，Δｙ，Δｚによって定められるモデルビュー行列として、補正更新行列ΔＭ’ｔを算出する。カメラの位置と姿勢からモデルビュー行列を算出する算出方法は公知の方法であるので、ここでの説明は省略する。
【００５４】
そして、これまでに得られた補正行列ΔＭｔ−１と補正更新行列ΔＭ’ｔから、更新後の補正行列ΔＭｔを以下の式に従って算出する。
【００５５】
ΔＭｔ＝ΔＭ’ｔΔＭｔ−１
＜位置姿勢補正処理：補正後のモデルビュー行列Ｍ＄ｔの算出＞
時刻ｔにおける補正後のモデルビュー行列Ｍ＄ｔは、以下の式に従って求めることができる。
【００５６】
Ｍ＄ｔ＝ΔＭｔＭｔ
そして補正後のモデルビュー行列Ｍ＄ｔを用いてＣＧを描画、表示することで、ジャイロセンサを用いても時間経過に伴った方位方向の位置ずれを軽減することができる。
【００５７】
以上、説明した本実施形態における補正処理のフローチャートを図５乃至７に示し、以下説明する。
【００５８】
図５は上述の補正処理のメインの処理のフローチャートである。
【００５９】
まずテンプレート画像を作成する（ステップＳ５０１）。テンプレート画像を作成する具体的な処理のフローチャートを図６に示す。
【００６０】
まず、既定の位置姿勢に固定されたカメラから画像Ｉ０を入力する（ステップＳ６０１）。次にこのときのカメラの位置姿勢に基づいてモデルビュー行列Ｍ０を算出する（ステップＳ６０２）。次に全てのｉについて（言い換えれば全てのランドマークについて）ｐｉ０を求める（ステップＳ６０３，Ｓ６０４）。次にテンプレート画像を作成する。作成する方法は上述の通りであって、各ランドマークについて上述した範囲内の全てのｊ、ｋに対して画素値を求め、テンプレート画像Ｔｉの座標（ｊ，ｋ）に格納する（ステップＳ６０６乃至Ｓ６０８）。
【００６１】
以上の図６に示した処理に従ってテンプレート画像を生成すると、図５に戻って、画像Ｉｔの撮影を行う（ステップＳ５０２）。又、このときのセンサ出力の取得も行う（ステップＳ５０３）。尚ステップＳ５０２，Ｓ５０３の処理の順序はこれに限定されるものではなく、その順序が逆でも良いし、同期を取って、同時に行っても良い。
【００６２】
次にセンサ出力に基づいてモデルビュー行列Ｍｔの算出を行う（ステップＳ５０４）。そして補正行列ΔＭｔの算出を行う（ステップＳ５０５）。補正行列ΔＭｔの算出における具体的な処理のフローチャートを図７に示し、以下説明する。
【００６３】
まず、補正行列ΔＭｔ−１でモデルビュー行列Ｍｔを補正し、モデルビュー行列Ｍ’ｔを求める（ステップＳ７０１）。そして次に全てのｉについて、言い換えれば全てのランドマークについてｐｉｔを算出する（ステップＳ７０２，Ｓ７０３）。尚、算出したｐｉｔが画像Ｉｔの範囲外に存在する場合には後述の処理の対象外とする。
【００６４】
次に各ランドマーク毎にターゲット画像Ｒｉｔを算出する（ステップＳ７０４乃至Ｓ７０６）。そしてターゲット画像Ｒｉｔとテンプレート画像Ｔｉのマッチングを行い、各ｊ、ｋごとに類似度ｅ（ｊ，ｋ）を算出する（ステップＳ７０７，Ｓ７０８）。そして類似度ｅ（ｊ，ｋ）が最大となる（ｊ，ｋ）を（ｊｉｔ，ｋｉｔ）とする（ステップＳ７０９）。以上のステップＳ７０７からステップＳ７０９までの処理を全てのｉ、言い換えると全てのランドマークに対して求める（ステップＳ７１０）。
【００６５】
そして求めた（ｊｉｔ，ｋｉｔ）の平均値を計算し、（ｊｔ，ｋｔ）を算出する（ステップＳ７１１）。また、カメラの位置姿勢の補正値を求め（ステップＳ７１２）、補正更新行列ΔＭ’ｔを求め（ステップＳ７１３）、最終的に補正行列ΔＭｔを求める（ステップＳ７１４）。
【００６６】
以上の図７に示した処理に従って補正行列ΔＭｔを算出すると、図５に戻って、算出した補正行列ΔＭｔを用いてモデルビュー行列Ｍｔを補正する（ステップＳ５０６）。
【００６７】
そして補正後のモデルビュー行列Ｍ＄ｔを用いてＣＧを描画、表示する（ステップＳ５０７）。
【００６８】
以上の説明により、本実施形態の画像処理装置及びその方法によって、姿勢センサによるカメラ視点の姿勢計測誤差を補正して位置ずれのないＭＲを実現することができる。
【００６９】
［第２の実施形態］
第１の実施形態では、補正処理を単一ループ（描画ループ）の中で行っている。この場合、画像処理の計算負荷が原因となって描画のフレームレートを充分得ることができない。あるいは、描画のフレームレートを確保するために画像処理を簡単なもの（計算量の少ないもの）にすると、補正の充分な精度を得ることができない。
【００７０】
そこで本実施形態では描画ループと補正演算ループとを分離し、独立の更新周期（例えば描画ループを６０Ｈｚで、補正演算ループを１ループ／秒）で動作させる。又、本実施形態の処理を実行する装置として、第１の実施形態で用いた画像処理装置を用いる。
【００７１】
＜描画ループ＞
基本的には図５、６に示したフローチャートに従った処理を実行するが、ステップＳ５０５において、後述の補正演算ループより送信される最新の補正行列ΔＭｓを得てこれをΔＭｔとする処理を行う。
【００７２】
＜補正演算ループ＞
図８に補正演算ループの処理のフローチャートを示す。まず、描画ループから時刻ｓにおける画像Ｉｓと、そのときのモデルビュー行列Ｍｓを入力する（ステップＳ８０１）。そして第１の実施形態で説明したステップＳ５０５における処理と同様にして補正行列ΔＭｓを算出する（ステップＳ８０２）。そして算出した補正行列ΔＭｓを描画ループに送信する（ステップＳ８０３）。そして以上の処理を終了許可があるまで実行する（ステップＳ８０４）。
【００７３】
本実施形態では描画ループと補正演算ループを分け、一つの画像処理装置（例えば）の中で実行していたが、これに限定されるものではなく、夫々のループの処理を夫々個々のコンピュータで実行しても良い。そして、夫々のコンピュータ間で通信可能な状態にしておき、夫々のコンピュータ間で夫々の処理結果を送受信可能にする。このようにすることで、一つのコンピュータが受け持つ処理数は少なくなるので、より迅速な処理が可能となる。
【００７４】
［第３の実施形態］
第２の実施形態ではモデルビュー行列の補正の処理において、得られた補正行列ΔＭｔとセンサによるモデルビュー行列Ｍｔとの単純な積の演算により、補正後のモデルビュー行列Ｍ＄ｔを求めているが、補正行列の更新は描画の周期と比べて間隔が空いているので、補正行列が必ずしも現在のフレーム（時刻ｔ）に適切な補正情報を表しているとは言えない。
【００７５】
そこで本実施形態では、第２の実施形態におけるステップＳ５０５において、補正演算ループから得られる過去の補正行列を用いて、時刻ｔに適した補正行列ΔＭｔを算出する。
【００７６】
まず、時刻ｓにおいて得られる補正行列ΔＭｓを展開して、カメラ姿勢の方位方向の補正値Δｙａｗｓ及びピッチ方向の補正値Δｐｉｔｃｈｔを算出する。モデルビュー行列から個々の回転成分を求める方法は公知であるので、ここでの説明は省略する。時刻ｓ−１においても同様な処理をおこない、時刻ｔにおけるカメラ姿勢の補正値であるΔｙａｗｔ及びΔｐｉｔｃｈｔを以下のようにして求める。
【００７７】
Δｙａｗｔ＝Δｙａｗｓ＋（Δｙａｗｓ−Δｙａｗｓ−１）×Δｓｔ／Δｓ
Δｐｉｔｃｈｔ＝Δｐｉｔｃｈｓ＋（Δｐｉｔｃｈｓ−Δｐｉｔｃｈｓ−１）×Δｓｔ／Δｓ
ここで、Δｓｔは時刻ｓから時刻ｔまでの経過時間、Δｓは時刻ｓ−１から時刻ｓまでの経過時間を表わすものとする。
【００７８】
そして得られた補正値Δｙａｗｔ及びΔｐｉｔｃｈｔを用いて、補正行列ΔＭｔを求める。その結果、本実施形態における補正行列の算出方法を適用することによって、現在のフレーム（時刻ｔ）に適切な補正行列を算出することができる。
【００７９】
尚、本実施形態では上記の式に示したように１次の線形予測によって補正値の外挿を行っているが、補正値の予測方法はこれに限るものではなく、２次の線形予測や他の予測方法を用いることも可能である。
【００８０】
［第４の実施形態］
本実施形態では、第１の実施形態よりもより正確に補正を行う方法を示す。
【００８１】
まず、本実施形態で用いる各変数のうち、上述の実施形態と異なるものについて説明する。
【００８２】
・時刻ｔにおけるセンサ出力に基づいたモデルビュー行列の回転成分  Ｒｔ
・カメラの既定の位置に基づいたモデルビュー行列の平行移動成分  Ｔｔ
・画像Ｉｔ上におけるランドマークＬｉの検出位置  ｐ＄ｉｔ＝（ｘ＄ｉｔ，ｙ＄ｉｔ）
・ランドマークＬｉの「画像Ｉｔ上への投影点」のカメラ座標系における位置ｐｃｉｔ
・ランドマークＬｉから求められる、モデルビュー行列の補正更新行列（方位方向の回転成分）  ΔＲｉ’ｔ
・ランドマークＬｉから求められる、ｙａｗ方向の補正更新値  Δｙａｗｉｔ
・全てのランドマークから求められるｙａｗ方向の補正更新値  Δｙａｗｔ
・モデルビュー行列の補正行列（方位方向の回転成分）  ΔＲｔ
・これまでの処理で既に算出されている補正行列ΔＲｔ−１（はじめのループでは単位行列）
・補正行列ΔＲｔ−１によって補正されたモデルビュー行列の回転成分  Ｒ’ｔ
・補正行列ΔＲｔ−１によって補正されたモデルビュー行列  Ｍ’ｔ
・補正行列ΔＲｔ−１を補正行列ΔＲｔに更新する為の補正更新行列（方位方向の回転成分）  ΔＲ’ｔ
以上の設定に基づいて、本実施形態における補正方法について同方法の処理のフローチャートを示す図９，１０を用いて説明する。
【００８３】
図９は本実施形態におけるメインの処理のフローチャートである。ステップＳ９０１からステップＳ９０３までの処理は第１の実施形態におけるステップＳ５０１からステップＳ５０３までの処理と同じであるため、説明を省略する。
【００８４】
次に、モデルビュー行列の回転成分Ｒｔと、平行移動成分Ｔｔとを算出する（ステップＳ９０４）。具体的には回転成分Ｒｔは、センサ出力（センサから得たカメラの姿勢）（ｒｏｌｌｔ，ｐｉｔｃｈｔ，ｙａｗｔ）に基づいて公知の方法で求める。一方、平行移動成分Ｔｔは、カメラの視点位置に基づいて公知の方法で求める。
【００８５】
そして次に補正行列ΔＲｔを求める（ステップＳ９０５）。補正行列ΔＲｔを求める具体的な処理のフローチャートを図１０に示し、以下説明する。
【００８６】
まず、これまでの処理で既に算出されている補正行列ΔＲｔ−１で行列Ｒｔを以下のようにして補正し、行列Ｒ’ｔを求める。
【００８７】
Ｒ’ｔ＝ＲｔΔＲｔ−１
次に、求めた行列Ｒ’ｔを用いて行列Ｍ’ｔを以下のようにして求める（ステップＳ１００１）。
【００８８】
Ｍ’ｔ＝Ｒ’ｔＴｔ
ステップＳ１００２からステップＳ１０１０までの処理はそれぞれステップＳ７０２からステップＳ７１０までの処理と同じであるために、ここでの説明は省略する。
【００８９】
次に、求まった（ｊｉｔ，ｋｉｔ）を用いて画像Ｉｔ上の各ランドマークの位置ｐ＄ｉｔ＝（ｘ＄ｉｔ，ｙ＄ｉｔ）を算出する（ステップＳ１０１２）。算出は以下の式によって行う。
【００９０】
ｘ＄ｉｔ＝ｘｉｔ＋ｊｉｔｃｏｓ（−ｒｏｌｌｔ）−ｋｉｔｓｉｎ（−ｒｏｌｌｔ）
ｙ＄ｉｔ＝ｙｉｔ＋ｊｉｔｓｉｎ（−ｒｏｌｌｔ）＋ｋｉｔｃｏｓ（−ｒｏｌｌｔ）
そして次に各ランドマークの「画像Ｉｔ上への投影点」のカメラ座標系における位置ｐｃｉｔを算出する（ステップＳ１０１３）。
【００９１】
ｐｃｉｔ＝（ｘ＄ｉｔ、ｙ＄ｉｔ、−ｆ、１）Ｔ
このとき、ａをスケーリングパラメータとすると、ｐｃｉｔ・ａ＝Ｒ’ｔΔＲｉ’ｔＴｔＰｉが成立する。この式を解くことで、Δｙａｗｉｔを算出する。その方法を以下に示す。だたし、以下で、Ｉｎｖ（Ｍ）は行列Ｍの逆行列を示す。
【００９２】
Ｐ＄ｉｔ＝（Ｘ＄ｉｔ，Ｙ＄ｉｔ，Ｚ＄ｉｔ，１）Ｔ＝Ｉｎｖ（Ｒ’ｔ）ｐｃｉｔ
Ｐ’ｉ＝（Ｘ’ｉ，Ｙ’ｉ，Ｚ’ｉ，１）＝ＴｔＰｉ
とおくと、Ｐ＄ｉｔ＝ΔＲｉ’ｔＰ’ｉ／ａとなるので、
Ｘ＄ｉｔ＝｛ｃｏｓ（Δｙａｗｉｔ）Ｘ’ｉ−ｓｉｎ（Δｙａｗｉｔ）Ｚ’ｉ｝／ａ
Ｚ＄ｉｔ＝｛ｓｉｎ（Δｙａｗｉｔ）Ｘ’ｉ＋ｃｏｓ（Δｙａｗｉｔ）Ｚ’ｉ｝／ａ
となり、これを解くことで、
Δｙａｗｉｔ＝ａｒｃｔａｎ｛（Ｚ＄ｉｔ・Ｘ’ｉ−Ｘ＄ｉｔ・Ｚ’ｉ）／（Ｘ＄ｉｔ・Ｘ’ｉ＋Ｚ＄ｉｔ・Ｚ’ｉ）｝
となる（ステップＳ１０１４）。このステップＳ１０１４の処理をすべてのｉ、すなわち、すべてのランドマークに対して求める（ステップＳ１０１５）。そして求めたすべてのΔｙａｗｉｔの平均値Δｙａｗｔを求める（ステップＳ１０１６）。
【００９３】
そして、求めた補正更新値Δｙａｗｔを用いて補正更新行列ΔＲ’ｔを求める（ステップＳ１０１７）。座標系を任意の角度（ここではΔｙａｗｔ）で方位方向に回転させるモデルビュー行列を算出する方法は公知であるので、説明は省略する。この補正更新行列ΔＲ’ｔを用いて、求めるべき補正行列ΔＲｔを以下のようにして求める（ステップＳ１０１８）。
【００９４】
ΔＲｔ＝ΔＲｔ−１ΔＲ’ｔ
以上の図１０に示した処理に従って補正行列ΔＲｔを算出すると、図９に戻って、算出した補正行列ΔＲｔを用いてモデルビュー行列Ｍ＄ｔを算出する（ステップＳ９０６）。算出は以下の式に従って行う。
【００９５】
Ｍ＄ｔ＝ＲｔΔＲｔＴｔ
そして第１の実施形態と同様に、算出したモデルビュー行列を用いてＣＧを描画、表示する（ステップＳ９０７）。
【００９６】
［第５の実施形態］
第１乃至４の実施形態では、視点の位置を既知とし、姿勢（方向、角度）のみの補正を行った。前述したように、観察対象物体までの距離が視点位置の移動量に対して相対的に大きい場合には視点位置を固定値とすること有効であるが、その仮定が成り立たない場合には視点の移動に伴う位置ずれが生じてしまう。よって本実施形態では視点位置の補正を行う方法を示す。ただし本実施形態ではカメラ座標系におけるＺ軸方向（奥行き方向、撮像面に垂直な方向）の移動量ΔＴｚは常に０であるものと仮定する。また、回転成分については、センサにより正しい値が得られていると仮定する。なお、この仮定が成り立つ場合には、最低１点のランドマークの検出により位置の補正を行うことができる。
ここで本実施形態における設定を以下に示す。
【００９７】
・時刻ｔにおけるセンサ出力に基づいたモデルビュー行列の回転成分  Ｒｔ
・時刻ｔにおけるカメラの既定の位置に基づいたモデルビュー行列の平行移動成分  Ｔｔ
・モデルビュー行列の補正行列（世界座標系における平行移動成分）  ΔＴｔ
・ランドマークＬｉから求められるモデルビュー行列の補正行列（世界座標系における平行移動成分）  ΔＴｉｔ
・これまでの処理で既に算出されている補正行列  ΔＴｔ−１（開始ループでは単位行列）
・補正行列ΔＴｔ−１によって補正されたモデルビュー行列の平行移動成分  Ｔ’ｔ
・補正行列ΔＴｔ−１によって補正されたモデルビュー行列  Ｍ’ｔ
・モデルビュー行列の補正更新行列（カメラ座標系における平行移動成分）  ΔＴｃｔ
・ランドマークＬｉから求められる、ｘ軸方向（カメラ座標系）の補正更新値ΔＴｘｉｔ
・ランドマークＬｉから求められる、ｙ軸方向（カメラ座標系）の補正更新値ΔＴｙｉｔ
・全てのランドマークから求められる、ｘ軸方向（カメラ座標系）の補正更新値  ΔＴｘｔ
・全てのランドマークから求められる、ｙ軸方向（カメラ座標系）の補正更新値  ΔＴｙｔ
以上の設定に基づいて本実施形態における補正方法について同方法の処理のフローチャートを示す図１１，１２を用いて説明する。
【００９８】
図１１は本実施形態におけるメインの処理のフローチャートである。ステップＳ１１０１からステップＳ１１０４までの処理は、第４の実施形態におけるステップＳ９０１からステップＳ９０４における各処理と同じなので、ここでは説明は省略する。
【００９９】
次に、補正行列ΔＴｔを求める（ステップＳ１１０５）。補正行列ΔＴｔを求める具体的な処理のフローチャートを図１２に示し、以下説明する。
【０１００】
まず、これまでの処理で既に算出されている補正行列ΔＴｔ−１で行列Ｔｔを補正し、行列Ｔ’ｔと行列Ｍ’ｔを以下のようにして求める（ステップＳ１２０１）。
【０１０１】
Ｔ’ｔ＝ΔＴｔ−１Ｔｔ
Ｍ’ｔ＝ＲｔＴ’ｔ
次のステップＳ１２０２からステップＳ１２１１までの各処理は、第４の実施形態におけるステップＳ１００２からステップＳ１０１２までの各処理を同じであるために、ここのでは説明は省略する。
【０１０２】
次にステップＳ１２１２では、ランドマークＬｉに関する補正更新値ΔＴｘｉｔ、ΔＴｙｉｔを算出する。
【０１０３】
ΔＴｘｉｔ＝ｆ・Ｚｃｉｔ（ｘ＄ｉｔ−ｘｉｔ）
ΔＴｙｉｔ＝ｆ・Ｚｃｉｔ（ｙ＄ｉｔ−ｙｉｔ）
ここでＺｃｉｔはカメラ座標系におけるランドマークのｚ座標で、Ｍ’ｔＰｉの第３成分がその値となる。
【０１０４】
以上の補正更新値ΔＴｘｉｔ、ΔＴｙｉｔをすべてのｉ，つまり、すべてのランドマークに対して求め（ステップＳ１２１３）、次に求めたすべての補正更新値ΔＴｘｉｔ、ΔＴｙｉｔの平均値ΔＴｘｔ、ΔＴｙｔを求める（ステップＳ１２１４）。そして、求めた補正更新値の平均値ΔＴｘｔ、ΔＴｙｔを用いて、ｘ方向にΔＴｘｔ、ｙ方向にΔＴｙｔの平行移動を座標系に施す補正更新行列ΔＴｃｔを算出する（ステップＳ１２１５）。座標系に任意の平行移動を施す座標変換行列を算出する方法は公知であるので、説明は省略する。そして補正行列ΔＴｔを以下のようにして求める（ステップＳ１２１６）。
【０１０５】
ΔＴｔ＝Ｉｎｖ（Ｒｔ）ΔＴｃｔＲｔΔＴｔ−１
以上の図１２に示した処理に従って補正行列ΔＴｔを算出すると、図１１に戻って、算出した補正行列ΔＴｔを用いてモデルビュー行列Ｍ＄ｔを算出する（ステップＳ１１０６）。算出は以下の式に従って行う。
【０１０６】
Ｍ＄ｔ＝ＲｔΔＴｔＴｔ
そして第１の実施形態と同様に、算出したモデルビュー行列を用いてＣＧを描画し、表示する（ステップＳ１１０７）。
【０１０７】
［第６の実施形態］
第５の実施形態ではΔＴｚが常に０と仮定していた為に、視線方向に対して前後に視点位置が移動した場合に正確な位置合わせを行うことができなかった。本実施形態では、常に２点以上のランドマークを観察することで、ΔＴｚが０でない場合にも対応する。
【０１０８】
本実施形態における補正処理のフローチャートは基本的には第５の実施形態で示した図１１，１２と同じであるが、ステップＳ１２１４、Ｓ１２１５における処理の内容が異なる。以下、本実施形態における補正処理でステップＳ１２１４、Ｓ１２１５における各処理について説明する。
【０１０９】
ｘ、ｙ、ｚ軸方向におけるカメラ座標系の補正更新値をΔＴｘｔ、ΔＴｙｔ、ΔＴｚｔとおくと、ランドマークの撮像予測位置ｐｉｔと検出位置ｐ＄ｉｔの間には、各ランドマーク毎に以下の式が成り立つ。
【０１１０】
ΔＴｘｔ＋ｘ＄ｉｔ・ｆ・ΔＴｚｔ＝ｆ・Ｚｃｉｔ（ｘ＄ｉｔ−ｘｉｔ）
ΔＴｙｔ＋ｙ＄ｉｔ・ｆ・ΔＴｚｔ＝ｆ・Ｚｃｉｔ（ｙ＄ｉｔ−ｙｉｔ）
よって、複数のランドマークに対して以下の連立方程式をたて、これを解くことで、未知の補正更新値ΔＴｘｔ、ΔＴｙｔ、ΔＴｚｔを算出する（ステップＳ１２１４）。
【０１１１】
【数１】
0004743818.tif 000002
【０１１２】
そして算出したΔＴｘｔ、ΔＴｙｔ、ΔＴｚｔを用いて、補正更新行列ΔＴｃｔを公知の方法で求める（ステップＳ１２１５）。そしてステップＳ１２１６では求めた更新行列ΔＴｃｔを用いて第５の実施形態と同様にして補正行列ΔＴｔを求める。
【０１１３】
［第７の実施形態］
第１乃至６の実施形態では回転か平行移動のいずれかのみの補正しかできなかった。本実施形態ではその両方の補正を行う。基本的な方法としては、回転の補正を行った後に、平行移動の補正を行う。しかしこれに限定されるものではなく、その逆の順序で補正しても良いし、回転の補正の後に平行移動の補正（もしくはその逆の順序でも良い）を一定回数繰り返しても良いし、予め設定しておいた閾値よりも誤差が小さくなるまで、或いは補正による誤差の変動が閾値よりも小さくなるまで、繰り返し行っても良い。
【０１１４】
ここで本実施形態で以下用いる設定について示す。
【０１１５】
・  処理の中間段階に得られた補正行列によって補正されたモデルビュー行列の回転成分  Ｒ”ｔ
・  処理の中間段階に得られた補正行列によって補正されたモデルビュー行列Ｍ”ｔ
以上の設定に基づいて、本実施形態における補正処理について説明する。
【０１１６】
図１３に本実施形態におけるメインの処理のフローチャートを示す。同図に示したフローチャートは、第４の実施形態の図９に示したフローチャートに補正行列ΔＴｔを算出する処理（ステップＳ１３０６）を追加したフローチャートとなっており、また、補正行列ΔＲｔを算出する処理（ステップＳ１３０５）における処理も異なる。以下では、本実施形態における補正行列ΔＴｔを算出する処理（ステップＳ１３０６）、補正行列ΔＲｔを算出する処理（ステップＳ１３０５）について説明する。又その他の部分については説明は省略する。
【０１１７】
ステップＳ１３０５における補正行列ΔＲｔを算出する具体的な処理のフローチャートは基本的には第４の実施形態の図１０とほぼ同一であるが、本実施形態では、ステップＳ１００１において、行列Ｒ’ｔ及びＭ’ｔの算出に加え行列Ｔ’ｔの算出を行う。
【０１１８】
Ｒ’ｔ＝ＲｔΔＲｔ−１
Ｔ’ｔ＝ΔＴｔ−１Ｔｔ
Ｍ’ｔ＝Ｒ’ｔＴ’ｔ
そして、以降の処理（例えばＳ１０１４）において、図１０における固定値Ｔｔの代わりとして、導出したＴ’ｔを使用する。
【０１１９】
一方、ステップＳ１３０６における補正行列ΔＴｔを補正する具体的な処理のフローチャートは基本的には第５の実施形態の図１２とほぼ同一であるが、本実施形態では、ステップＳ１２０１において、ステップＳ１３０５で求めた補正行列ΔＲｔを用いて行列Ｒｔを補正し、行列Ｒ”ｔとＭ”ｔを以下の式に従って求める。
【０１２０】
Ｒ”ｔ＝ＲｔΔＲｔ
Ｍ”ｔ＝Ｒ”ｔＴ’ｔ
又、本実施形態における処理は図１２のフローチャートにおいて、ステップＳ１２１２でΔＴｘｉｔ、ΔＴｙｉｔを以下のようにして求める。
【０１２１】
ΔＴｘｉｔ＝ｆ・Ｚｃｉｔ（ｘ＄ｉｔ−ｘｉｔ）
ΔＴｙｉｔ＝ｆ・Ｚｃｉｔ（ｙ＄ｉｔ−ｙｉｔ）
ここでＺｃｉｔはカメラ座標系におけるランドマークのｚ座標で、Ｍ”ｔＰｉの第３成分がその値となる。
【０１２２】
又、本実施形態における処理は図１２のフローチャートにおいて、ステップＳ１２１６で補正行列ΔＴｔを算出するが、以下の式に従って算出する。
【０１２３】
ΔＴｔ＝Ｉｎｖ（Ｒ”ｔ）ΔＴｃｔＲ”ｔΔＴｔ−１
そして以上の補正行列ΔＴｔが終了すると、図１３に示したフローチャートに戻り、ステップＳ１３０７においてモデルビュー行列Ｍ＄ｔを以下のようにして算出する。
【０１２４】
Ｍ＄ｔ＝ＲｔΔＲｔΔＴｔＴｔ
また、上述の補正行列ΔＲｔ、ΔＴｔを求める処理（ステップＳ１３０５，Ｓ１３０６）を上述の通り所定回数繰り返しても良い。
【０１２５】
［第８の実施形態］
第１乃至７の実施形態では世界座標系におけるランドマークの位置を既知としたが、それ以外の方法取ることもできる。すなわち、初期位置姿勢における画像Ｉ０上でランドマークの位置を直接指定してもよいし、初期位置姿勢における画像Ｉ０上から顕著な（追跡の容易な）画像特徴（例えばエッジ部分やテクスチャ性の強い部分）を持つ特徴点を抽出し、この位置をランドマークの位置としてもよい。
【０１２６】
ここで、手入力あるいは画像処理によって画像座標（ｘｉ０，ｙｉ０）に撮像されている画像特徴を指定あるいは検出し、ランドマークＬｉとして用いる場合を考える。このランドマークのカメラ座標をＰｃｉ０＝（ｘｉ０，ｙｉ０，ｆ，１）と仮定すると、世界座標は、初期位置姿勢におけるモデルビュー行列Ｍ０の逆行列を用いて，Ｐｉ＝Ｉｎｖ（Ｍ０）Ｐｃｉ０と定義することができ、第１乃至３の実施形態で述べた手法をそのまま適応することができる。
【０１２７】
ただし、ランドマーク位置の奥行き方向の情報は得ることが出来ないので，ランドマーク位置の奥行き情報を用いた補正（第５の実施形態以降で述べた位置の補正）を行うことは出来ない。
【０１２８】
［変形例１］
上記実施形態においては、ＭＲシステムにおけるカメラの視点の姿勢（又は位置姿勢）の計測を行ったが、本発明の適応範囲はこれに留まるものではなく、カメラの視点の姿勢（又は位置姿勢）を計測するいずれの用途に用いることも可能であることはいうまでもない。
【０１２９】
［変形例２］
上記実施形態においては、ビデオシースルー方式のＭＲシステムにおける視点の姿勢（又は位置姿勢）の計測を行ったが、光学シースルー方式のＭＲシステムであっても、本発明の画像処理装置による姿勢（又は位置姿勢）計測を行うことができる。この場合、ＨＭＤに姿勢センサを装着するとともに、計測対象であるところの観察者の視点位置との相対的な姿勢（又は位置姿勢）関係が既知であるような位置に固定されるように、ＨＭＤにカメラを装着する。そして、上記実施形態と同様な手法によってカメラの姿勢（又は位置姿勢）を算出し、さらにその値を変換することで、観察者視点の姿勢（又は位置姿勢）を算出する。また、本発明の適応範囲は計測対象物体に限定されるものではなく、いずれの計測対象物体であっても、同様にカメラ及び姿勢センサを装着することで、その姿勢（又は位置姿勢）を計測することができる。
【０１３０】
［変形例３］
上記実施形態においては、テンプレート画像生成モジュール４３０において、既定の位置姿勢で撮影した画像Ｉ０に基づいてテンプレート画像を生成したが、テンプレート画像は必ずしも画像Ｉ０に基づいて生成しなくてもよく、予め保存されているテンプレート画像を用いても良いし、例えば動的なテンプレートの更新手法といった周知のいずれの方法によって得られたテンプレート画像を用いてもよい。
【０１３１】
［変形例４］
上記実施形態においては、ターゲット画像生成モジュール４０４において、ランドマークの予測位置の近傍領域のみをターゲット画像として抽出したが、テンプレートマッチングの対象画像（すなわちターゲット画像）は、必ずしもランドマークの予測位置の近傍領域を抽出したものでなくても良い。例えば、図１４（ｄ）のように入力画像全体に回転処理を加えた画像Ｉ’を各ランドマークに共通のターゲット画像として設定し、画像Ｉ’内において各々のランドマークの予測位置を求めその近傍において対応探索を行っても良いし、画像Ｉ’の領域全体に対して対応探索を行っても良い。
【０１３２】
［変形例５］
上記実施形態においては、姿勢又は位置姿勢の計測を目的として、その手段としてテンプレートマッチングによるランドマーク検出を用いたが、本発明の画像処理装置におけるランドマーク検出手法は、テンプレートマッチングによって画像中からランドマークの位置を検出する用途であれば、姿勢又は位置姿勢の計測に限定されることなく適応することができる。
【０１３３】
［他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３４】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１３５】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した（図５乃至図１３のうち少なくとも一つに示したフローチャート）に対応するプログラムコードが格納されることになる。
【０１３６】
【発明の効果】
以上の説明により、本発明によって、姿勢センサによるカメラ視点の計測誤差の補正、特に時間経過に伴って生じる方位方向の蓄積誤差の補正を行うことができ、位置ずれのないＭＲを実現することができる。
【図面の簡単な説明】
【図１】初期画像Ｉ０を示す図である。
【図２】従来の画像処理装置の構成を示す図である。
【図３】本発明の第１の実施形態における画像処理装置の構成を示す図である。
【図４】視点位置姿勢補正値演算モジュール２１５の具体的な構成を示す図である。
【図５】本発明の第１の実施形態におけるメインの処理のフローチャートである。
【図６】テンプレート画像を作成する際の具体的な処理のフローチャートである。
【図７】補正行列ΔＭｔの算出における具体的な処理のフローチャートである。
【図８】本発明の第２の実施形態における補正演算ループの処理のフローチャートである。
【図９】本発明の第４の実施形態におけるメインの処理のフローチャートである。
【図１０】補正行列ΔＲｔを求める具体的な処理のフローチャートである。
【図１１】本発明の第５の実施形態におけるメインの処理のフローチャートである。
【図１２】補正行列ΔＴｔを求める具体的な処理のフローチャートである。
【図１３】本発明の第７の実施形態におけるメインの処理のフローチャートである。
【図１４】本発明におけるテンプレートマッチングの基本原理を説明する図である。
【図１】
0004743818.tif 000003
【図２】
0004743818.tif 000004
【図３】
0004743818.tif 000005
【図４】
0004743818.tif 000006
【図５】
0004743818.tif 000007
【図６】
0004743818.tif 000008
【図７】
0004743818.tif 000009
【図８】
0004743818.tif 000010
【図９】
0004743818.tif 000011
【図１０】
0004743818.tif 000012
【図１１】
0004743818.tif 000013
【図１２】
0004743818.tif 000014
【図１３】
0004743818.tif 000015
【図１４】
0004743818.tif 000016