(57)【特許請求の範囲】
【請求項１】
３次元位置が既知である複数の特徴点の存在する現実空間において、当該現実空間を撮像する撮像手段の位置姿勢を示すパラメータを同定する位置姿勢決定方法であって、
前記撮像手段の位置姿勢を撮像された映像を利用する以外の方法で計測して得られた、該撮像手段の位置姿勢を示す第１パラメータを取得する計測工程と、
前記撮像手段により撮像された現実空間の同一映像に含まれる複数の特徴点の映像における位置と、該複数の特徴点の３次元位置および前記第１パラメータから予測される該複数の特徴点の該映像における第１の予測位置とに基づき、前記撮像手段のパン方向及び／またはチルト方向の回転によって前記第１パラメータを補正し、第２パラメータを生成する第１補正工程と、
前記複数の特徴点の映像における位置と、該複数の特徴点の３次元位置および前記第２パラメータから予測される該複数の特徴点の該映像における第２の予測位置とに基づき、前記撮像手段の視軸を軸とした回転によって前記第２パラメータを補正し、第３パラメータを生成する第２補正工程とを備えることを特徴とする位置姿勢決定方法。
【請求項２】
前記第１補正工程は、前記撮像手段のパン方向及び／またはチルト方向の回転および平行移動によって前記第１パラメータを補正することを特徴とする請求項１記載の位置姿勢決定方法。
【請求項３】
前記第１の補正工程は、前記撮像手段のパン方向及び／またはチルト方向の回転による補正および前記平行移動による補正とを繰り返すことを特徴とする請求項２記載の位置姿勢決定方法。
【請求項４】
３次元位置が既知である複数の特徴点の存在する現実空間において、当該現実空間を撮像する撮像手段の位置姿勢を示すパラメータを同定する位置姿勢決定方法であって、
前記撮像手段の位置姿勢を撮像された映像を利用する以外の方法で計測して得られた、該撮像手段の位置姿勢を示す第１パラメータを取得する計測工程と、
前記撮像手段により撮像された現実空間の同一映像に含まれる複数の特徴点の映像における位置と、該複数の特徴点の３次元位置および前記第１パラメータから予測される該複数の特徴点の該映像における第１の予測位置とに基づき、前記撮像手段の平行移動によって前記第１パラメータを補正し、第２パラメータを生成する第１補正工程と、
前記複数の特徴点の映像における位置と、該複数の特徴点の３次元位置および前記第２パラメータから予測される該複数の特徴点の該映像における第２の予測位置とに基づき、前記撮像手段の視軸を軸とした回転によって前記第２パラメータを補正し、第３パラメータを生成する第２補正工程とを備えることを特徴とする位置姿勢決定方法。
【請求項５】
前記第２補正工程は、前記複数の特徴点の各々について、前記第１補正工程によって取得された補正パラメータを用いて補正された特徴点の前記撮像面における予測位置と、当該特徴点の前記映像における実際の位置との対を取り、前記予測位置と前記実際の位置とを一致もしくは近接させるような前記視軸を中心とした回転角を求め、各特徴点について求めた回転角の平均値を用いて前記第２パラメータの補正を行うことを特徴とする請求項１乃至３のいずれかに記載の位置姿勢決定方法。
【請求項６】
前記第２補正工程は、前記特徴点の位置に応じて重み付けをして前記平均値を求めることを特徴とする請求項５に記載の位置姿勢決定方法。
【請求項７】
前記第２補正工程における前記重み付けにおける重み付け係数は、前記視軸と前記撮像面との交点からの距離に基づいて決定されることを特徴とする請求項６に記載の位置姿勢決定方法。
【請求項８】
前記重み付け係数は、前記交点に近づくにつれて減少し、該交点上で重みが０となる関数であることを特徴とする請求項７に記載の位置姿勢決定方法。
【請求項９】
前記第２補正工程における前記重み付けは、注目する場所の近傍の影響を大きくするような重み付け係数を用いて行われることを特徴とする請求項６に記載の位置姿勢決定方法。
【請求項１０】
請求項１乃至９のいずれかに記載の位置姿勢決定方法が有する各工程をコンピュータに実行させるためのコンピュータプログラム。
【請求項１１】
３次元位置が既知である複数の特徴点の存在する現実空間において、当該現実空間を撮像する撮像手段の位置姿勢を示すパラメータを同定する位置姿勢決定装置であって、
前記撮像手段の位置姿勢を撮像された映像を利用する以外の方法で計測して得られた、該撮像手段の位置姿勢を示す第１パラメータを取得する計測手段と、
前記撮像手段により撮像された現実空間の同一映像に含まれる複数の特徴点の映像における位置と、該複数の特徴点の３次元位置および前記第１パラメータから予測される該複数の特徴点の該映像における第１の予測位置とに基づき、前記撮像手段のパン方向及び／またはチルト方向の回転によって前記第１パラメータを補正し、第２パラメータを生成する第１補正手段と、
前記複数の特徴点の映像における位置と、該複数の特徴点の３次元位置および前記第２パラメータから予測される該複数の特徴点の該映像における第２の予測位置とに基づき、前記撮像手段の視軸を軸とした回転によって前記第２パラメータを補正し、第３パラメータを生成する第２補正手段とを備えることを特徴とする位置姿勢決定装置。
【請求項１２】
３次元位置が既知である複数の特徴点の存在する現実空間において、当該現実空間を撮像する撮像手段の位置姿勢を示すパラメータを同定する位置姿勢決定装置であって、
前記撮像手段の位置姿勢を撮像された映像を利用する以外の方法で計測して得られた、該撮像手段の位置姿勢を示す第１パラメータを取得する計測手段と、
前記撮像手段により撮像された現実空間の同一映像に含まれる複数の特徴点の映像における位置と、該複数の特徴点の３次元位置および前記第１パラメータから予測される該複数の特徴点の該映像における第１の予測位置とに基づき、前記撮像手段の平行移動によって前記第１パラメータを補正し、第２パラメータを生成する第１補正手段と、
前記複数の特徴点の映像における位置と、該複数の特徴点の３次元位置および前記第２パラメータから予測される該複数の特徴点の該映像における第２の予測位置とに基づき、前記撮像手段の視軸を軸とした回転によって前記第２パラメータを補正し、第３パラメータを生成する第２補正手段とを備えることを特徴とする位置姿勢決定装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、現実空間を撮像する撮像手段の位置姿勢を示すパラメータを同定する位置姿勢同定方法及び装置に関する。
【０００２】
【従来の技術】
現実空間を撮像するカメラの外部パラメータ（位置姿勢）を求める方法において、撮像された映像を利用する以外の方法、例えば磁気センサ等の位置姿勢センサを用いてカメラの位置姿勢を計測する方法がある。しかしながら、このような位置姿勢センサによる計測ではその精度が不十分であった。そのため、位置姿勢センサによって計測されたカメラの位置姿勢に基づいて仮想物体を現実空間に重畳表示しようとすると、所望の位置よりずれて表示される場合があった。
【０００３】
そのために従来より、現実空間を撮像するカメラの位置姿勢の精度を向上させる方法がいくつか提案されてきた。その１つとして、現実空間に３次元位置が既知である特徴点（ランドマーク）を配置しておき、カメラにより撮像されたいくつかのランドマークのうち、注目ランドマークの撮像面上における実際の位置と、このときのカメラの位置姿勢により予測される該注目ランドマークの撮像面上の位置との誤差を用いてカメラの位置姿勢を補正する方法が提案されている。
【０００４】
また、複数のランドマークに対して、それぞれの注目ランドマークの実際の位置とカメラの位置姿勢により予測される注目ランドマークの位置との誤差を算出し、その誤差を平均的に補正することにより、カメラの外部パラメータの補正における信頼性を更に向上させる方法が提案されている。
【０００５】
【発明が解決しようとする課題】
しかし、従来の位置姿勢の補正方法では、いずれの方法を利用しても視軸方向の誤差は補正できず、視軸を軸とする回転方向に誤差を持つ場合には誤差が残っていた。ここで言う視軸Ｖとは、カメラの内部パラメータの一つである撮像面上の主点Ｌと、視点位置（レンズ中心）Ｃの２点を結ぶ直線である（図１）。ここで主点Ｌは図１に示す通り、視軸と撮像面との交点であり、視点位置Ｃはカメラキャリブレーションと呼ばれる前処理によってカメラ内部パラメータを算出する時に同時に算出される。
【０００６】
一般的な位置姿勢の補正方法では、視点位置を画像面に対して平行に移動するか、視点姿勢をパン方向及び／又はティルト方向に回転させることで補正が行なわれる。しかしながら、これらの方法のいずれも、視軸を軸とする回転（ロール）方向の成分を持たない。そのため、上記のような一般的な補正方法のみでは、視軸を軸とする回転方向の誤差を補正できず、現実空間の画像と非現実空間の画像を合成しても、夫々の位置が正確に合わない場合があった。
【０００７】
本発明は上記の課題に鑑みてなされたものであり、撮像手段の高精度な位置姿勢検出を可能とすることを目的とする。
【０００８】
【課題を解決するための手段】
上記の目的を達成するための本発明による位置姿勢決定方法は、
３次元位置が既知である複数の特徴点の存在する現実空間において、当該現実空間を撮像する撮像手段の位置姿勢を示すパラメータを同定する位置姿勢決定方法であって、
前記撮像手段の位置姿勢を撮像された映像を利用する以外の方法で計測して得られた、該撮像手段の位置姿勢を示す第１パラメータを取得する計測工程と、
前記撮像手段により撮像された現実空間の同一映像に含まれる複数の特徴点の映像における位置と、該複数の特徴点の３次元位置および前記第１パラメータから予測される該複数の特徴点の該映像における第１の予測位置とに基づき、前記撮像手段のパン方向及び／またはチルト方向の回転によって前記第１パラメータを補正し、第２パラメータを生成する第１補正工程と、
前記複数の特徴点の映像における位置と、該複数の特徴点の３次元位置および前記第２パラメータから予測される該複数の特徴点の該映像における第２の予測位置とに基づき、前記撮像手段の視軸を軸とした回転によって前記第２パラメータを補正し、第３パラメータを生成する第２補正工程とを備える。
【０００９】
また、上記の目的を達成するための本発明の他の態様による位置姿勢決定方法は、
３次元位置が既知である複数の特徴点の存在する現実空間において、当該現実空間を撮像する撮像手段の位置姿勢を示すパラメータを同定する位置姿勢決定方法であって、
前記撮像手段の位置姿勢を撮像された映像を利用する以外の方法で計測して得られた、該撮像手段の位置姿勢を示す第１パラメータを取得する計測工程と、
前記撮像手段により撮像された現実空間の同一映像に含まれる複数の特徴点の映像における位置と、該複数の特徴点の３次元位置および前記第１パラメータから予測される該複数の特徴点の該映像における第１の予測位置とに基づき、前記撮像手段の平行移動によって前記第１パラメータを補正し、第２パラメータを生成する第１補正工程と、
前記複数の特徴点の映像における位置と、該複数の特徴点の３次元位置および前記第２パラメータから予測される該複数の特徴点の該映像における第２の予測位置とに基づき、前記撮像手段の視軸を軸とした回転によって前記第２パラメータを補正し、第３パラメータを生成する第２補正工程とを備える。
【００１０】
【発明の実施の形態】
以下、添付図面を参照して、本発明をその好適な実施形態に従って詳細に説明する。
【００１１】
本実施形態では、撮像された複数のランドマークのうちの少なくとも一つを反映してカメラの位置姿勢を示すパラメータの補正を行った後、さらに該複数のランドマークに基づいて視軸を軸とした回転補正を行い、カメラの位置姿勢を正確に検出する。
【００１２】
まず、一般的な補正方法における、カメラの外部パラメータをランドマーク１点から補正する方法と、ランドマーク複数点を平均的に利用して補正する方法について説明し、次に、視軸に対する回転により追加補正を行う本実施形態の特徴的な処理について説明する。
【００１３】
ここでランドマークとは、人工的に特定の色や形の情報を持ったシール状のものなどを現実空間中の物体に貼り付けたマーカを用いても良いし、自然シーン中の特徴的な点をランドマークとしても良い。
【００１４】
図２は、カメラの外部パラメータ（位置姿勢を表すパラメータ）の一般的な補正方法を説明する模式図である。図２において点Ａはカメラの位置姿勢を表すパラメータに基づいて予測されるランドマークの位置、点Ｂはこのランドマークの実際の位置、点Ｃはカメラ視点の位置を示す。なお点Ａ、点Ｂが示す位置はカメラ座標系における位置であって、点Ｃはカメラ座標系の原点である。また、点Ｐは撮像面上における点Ａの位置、点Ｑは撮像面上における点Ｂの位置を示す。ここで図２に示すように、点Ｐ、Ｑの座標を夫々、（ｘp，ｙp）、（ｘq，yq）、撮像面の幅、高さを夫々ｗ、ｈ、カメラの焦点距離（点Ｃと撮像面との距離）をｄとし、ｖ1を点ＣからＱ点へのベクトル、ｖ2を点Ｃから点Ｐへのベクトル、θをベクトルｖ1とｖ2のなす角とする。
【００１５】
このとき、撮像面においてカメラの位置姿勢により予測されるランドマークの位置と実際の位置とでは、例えば図２に示すようにずれ（誤差）がある。このずれを補正する方法としては、１点のランドマークを利用する方法で２種類（カメラの回転による補正と平行移動による補正）、複数のランドマークを利用する方法で２種類（カメラの回転による補正と平行移動による補正）の合計４種類の方法がある。
【００１６】
最初に、１点のランドマークのみを利用する方法を説明し、次に複数点のランドマークを利用する方法の説明を行う。
【００１７】
＜１．ランドマーク１点を利用する補正方法＞
まず、補正に１点のランドマークを用いる場合について説明する。
【００１８】
１点のランドマークを利用する方法には、カメラの位置を固定して姿勢をθだけ点Ｂ方向から点Ａ方向に変化させる方法（カメラの回転による補正方法）と、点Ａと点Ｂの間の距離だけ点Ｂから点Ａの方向にカメラを平行移動させる方法（カメラの平行移動による補正方法）がある。以下、この２つの方法について夫々の処理のフローチャートを示す図１０及び図１１を用いて説明する。
【００１９】
＜1-1．ランドマーク１点を利用したカメラの回転による補正方法＞
上述のベクトルｖ1、ｖ2を求める。上述の設定からベクトルｖ1、ｖ2の夫々の成分は以下のようになる（ステップＳ１００１）。
【００２０】
【数１】
0003796449.tif 000002
【００２１】
ここで夫々のベクトルを大きさ１のベクトルに正規化する（ステップＳ１００２）。ここで|ｖ|はベクトルｖの大きさを表す。
【００２２】
【数２】
0003796449.tif 000003
【００２３】
ここでカメラを回転させる場合、その回転軸はベクトルｖ1、ｖ2がなす平面と直交し、カメラ視点位置（点Ｃ）を通る直線となる。この回転軸の方向ベクトルはベクトルｖ1、ｖ2の外積により求めることができる（実際にはベクトルｖ1、ｖ2を正規化したもの（ｖ'1、ｖ'2）を用いる）（ステップＳ１００３）。
【００２４】
【数３】
0003796449.tif 000004
【００２５】
ここで、ｖxは回転軸の方向ベクトルであって、その成分を（l,m,n）とする。また回転角θはベクトルｖ1、ｖ2のなす角度なので、以下のようにして求めることができる（実際にはベクトルｖ1、ｖ2を正規化したもの（ｖ'1、ｖ'2）を用いる）（ステップＳ１００４）。
【００２６】
【数４】
0003796449.tif 000005
【００２７】
よって、カメラの回転による補正に用いる補正行列ΔＭcは以下のように計算される（ステップＳ１００５）。
【００２８】
【数５】
0003796449.tif 000006
【００２９】
この補正行列ΔＭcをカメラの位置姿勢を示す行列（ビューイング変換行列）にかけることでカメラの位置姿勢（外部パラメータ）は補正される。つまり点Ｐが点Ｑの位置に表示され、撮像面上におけるランドマークの位置姿勢パラメータから予測される位置と実際の位置とが一致する。なお、この回転変換はパン方向の回転とティルト方向の回転を適切に合成した回転となる。
【００３０】
＜1-2．ランドマーク１点を利用したカメラの平行移動による補正方法＞
カメラの平行移動により誤差を補正する場合、上述の通りカメラの位置をＡＢ間の距離だけ点Ｂから点Ａの方向に平行移動させればよい。その結果撮像面上では点Ｐの位置に見えていたものを点Ｑの位置に見ることができる。まずベクトルｖ1、ｖ2を求めておく（ステップＳ１１０１）。また点Ｐから点Ｑへのベクトルｖmは以下のようになる（ステップＳ１１０２）。
【００３１】
【数６】
0003796449.tif 000007
【００３２】
ここで点Ｃから点Ａへのベクトルをｖaとすると（ステップＳ１１０３）、三角形ＣＰＱと三角形ＣＡＢが相似形であることから、点Ａから点Ｂへのベクトルｖ3を以下のようにして求めることができる（ステップＳ１１０４）。
【００３３】
【数７】
0003796449.tif 000008
【００３４】
このずれ（|ｖ3|）がカメラ空間におけるランドマークの位置のずれに相当するので、ｖ3＝（s,t,u）とおくと、カメラの平行移動に用いる補正行列ΔＭcは以下のようにして計算される（ステップＳ１１０５）。
【００３５】
【数８】
0003796449.tif 000009
【００３６】
この補正行列ΔＭcをカメラの位置姿勢を示す行列にかけることでカメラの位置姿勢（外部パラメータ）は補正され、その結果撮像面上では点Ｐの位置に見えていたものを点Ｑの位置に見ることができる。
【００３７】
＜２．ランドマーク複数点を利用した補正方法＞
次に、複数点のランドマークが観察された場合についての補正方法を説明する。上述の１点のランドマークを利用する方法では、注目ランドマーク近傍に対してのみ上述の誤差は少なくなるが、その他のランドマーク近傍においてはその誤差は大きい場合がある。よってカメラの視野に含まれる全てのランドマーク（複数のランドマーク）に対してずれ検出を行い、平均的に利用する。
【００３８】
図３は複数点のランドマークを利用する補正方法を説明する模式図である。点Ｐ1、Ｐ2、Ｐ3はカメラの位置姿勢に基づいて予測される撮像面上での夫々のランドマーク位置を示し、Ｑ1、Ｑ2、Ｑ3は実際のランドマーク位置を撮像面上に投影した位置を示す。Ｐ1、Ｐ2、Ｐ3の点群が夫々、Ｑ1、Ｑ2、Ｑ3へ平均的に一致するようにカメラの回転、もしくは平行移動を行う。以下、具体的に説明する。
【００３９】
＜2-1．ランドマークを複数点利用したカメラの回転による補正方法＞
この方法では、カメラの回転による補正を行なうが、その際に代表点を求めずに、上述のカメラの回転による補正方法を用いて、夫々のランドマークに対するカメラの回転角、回転軸の方向ベクトルを求め、夫々を平均的に用いる。このランドマークを複数点利用する場合のカメラの回転による平均補正方法の模式図を図４に示す。
【００４０】
以下図１２に示す処理のフローチャートを用いて、ランドマークを複数点利用する場合のカメラの回転による補正方法を説明する。
【００４１】
カメラ位置姿勢に基づいて予測される撮像面での夫々のランドマーク位置を示す変数をＰi(1≦i≦n)、夫々のランドマークの実際の位置を撮像面上に投影した位置を示す変数をＱi(1≦i≦n)とする。
【００４２】
まず各Ｐi、Ｑiを用いて、上述の「ランドマーク１点を利用したカメラの回転による補正方法」と同様の方法により、回転軸の直線の方向ベクトルｖxiを求める（ステップＳ１２０１〜Ｓ１２０３）。そして、それら全てのｖxiの平均値ｖxmeanを求める（ステップＳ１２０４）。
【００４３】
【数９】
0003796449.tif 000010
【００４４】
次にこの回転軸（ｖxmeanを方向ベクトルとする直線）周りに回転するための回転角を求める（ステップＳ１２０６）。まず点Ｃから点Ｑiに対するベクトルｖ1iとｖxmeanを通る平面Ｓiを求める。そして、点Ｃから点Ｐiに対するベクトルｖ2iを平面Ｓiに射影したベクトルｖ4iを求める。図５に以上の各処理により算出されるベクトルｖ4iの生成方法の模式図を示す。同図においてカメラが回転することで点Ｐiが点Ｑiに一致する際の回転角はθiであって、回転角θiはベクトルｖ2i、ｖ4iにより以下の式で求めることができる。
【００４５】
【数１０】
0003796449.tif 000011
【００４６】
そして全ての回転角θiの平均値θmeanを計算する（ステップＳ１２０８）。
【００４７】
【数１１】
0003796449.tif 000012
【００４８】
その結果ｖxmeanを方向ベクトルとする回転軸周りに回転角θmeanだけカメラを回転させることで、撮像面上の全Ｐi、Ｑiを反映したカメラの回転を行うことができる。以上の計算の結果、ｖxmean、θmeanを用いて補正行列ΔＭcを求める（ステップＳ１２０９）。ｖmean＝（l',m',n'）とすると、補正行列ΔＭcは以下の式で表される。
【００４９】
【数１２】
0003796449.tif 000013
【００５０】
この補正行列ΔＭcをカメラの位置姿勢を示す行列にかけることでカメラの位置姿勢（外部パラメータ）は補正される。つまり撮像面上の各点Ｐiが平均的に各点Ｑiの位置に表示され、ランドマークの予測される位置と実際の位置とが平均的に一致する。この方法により撮像面上の全てのランドマーク位置情報を反映して補正行列を生成することができる。
【００５１】
＜2-2．ランドマークを複数点利用したカメラの平行移動による補正方法＞
この方法では、上述のランドマーク１点を利用したカメラの平行移動による補正方法を用いて夫々のランドマークに対するカメラの平行移動成分を求め、夫々を平均的に用いる。このランドマークを複数点利用する場合のカメラの平行移動による補正方法の模式図を図６に示す。
【００５２】
以下図１３に示すフローチャートを用いて説明する。
【００５３】
カメラ位置姿勢に基づいて予測される撮像面上での夫々のランドマーク位置を示す変数をＰi(1≦i≦n)、夫々のランドマークの実際の位置を撮像面上に投影した位置を示す変数をＱi(1≦i≦n)とする。まず上述の１点の特徴点を用いたカメラの平行移動による補正方法を用いて、各Ｐi、Ｑiに対するベクトルｖki＝(si,ti,ui)を求める（ステップＳ１３０１〜Ｓ１３０３）。そして各Ｐi、Ｑiに対するベクトルの平均値を求める（ステップＳ１３０４）。
【００５４】
【数１３】
0003796449.tif 000014
【００５５】
そして平均ベクトルｖkmean＝(smean,tmean,umean)を用いて補正行列を以下のようにして求める（ステップＳ１３０５）。
【００５６】
【数１４】
0003796449.tif 000015
【００５７】
＜３．視軸に平行な軸まわりの回転による補正方法＞
上述した４つの補正方法において、図４と図６に示す補正の方向からもわかるように、回転や、平行移動によって求めた補正値を利用しても、視軸を軸とする回転方向の誤差までは補正できない。よって、本実施形態では、上述の方法で求めた補正行列ΔＭcに、さらに視軸に対する回転補正行列ΔＭrcを施したΔＭ'cを求め、このΔＭ'cをカメラの位置姿勢行列に乗ずることでカメラの位置姿勢を補正する方法を述べる。ただし、この手法においては、画像面上に２点以上のランドマークが映っていることが必要である。
【００５８】
図７は本実施形態による、視軸を軸とした回転による補正方法を説明する模式図である。点Ｐ'1、Ｐ'2、Ｐ'3は、上述した４つの方法のうちのいずれかを利用して補正された値である。視軸Ｖは視点位置（カメラ中心）であるＣから主点Ｌへのベクトルとする。本実施形態では、Ｐ'1、Ｐ'2、Ｐ'3の点群が夫々Ｑ1、Ｑ2、Ｑ3へ平均的に一致するようにカメラの視軸Ｖに対する回転を行う。θR1、θR2、θR3はＰ'1とＱ1、Ｐ'2とＱ2、Ｐ'3とＱ3との夫々のなす（主点Lを中心とする）角を表す。さらに、主点Ｌから、Ｐ'1、Ｐ'2、Ｐ'3へ向かうベクトルをそれぞれｖp1、ｖp2、ｖp3とし、主点Ｌから、Ｑ1、Ｑ2、Ｑ3へ向かうベクトルを、ｖq1、ｖq2、ｖq3とする。
【００５９】
本実施形態の補正処理は画面上でランドマークが２点以上映っている場合を前提としている。ランドマークが１点しか映っていない場合は、ΔＭcをΔＭ'cと見なす。また、ランドマークが画像上に映らなかった場合は、別の位置姿勢センサにより得られるカメラの位置姿勢をそのまま利用する。
【００６０】
＜3-1．方法１＞
以下、本実施形態による補正方法の処理のフローチャートを示す図１４を用いて説明する。
【００６１】
まず、1-1、1-2、2-1、2-2で説明した４種類の補正方法のいずれかによってカメラの位置姿勢の予測位置Ｐ'iを求める（ステップＳ１４０１）。
【００６２】
次に、ｖqiとｖpiのなす角θRiを求める。図７において、Ｐ'iをＱiに一致させるための回転角はθRiであって、回転角θRiはベクトルｖqi、ｖpiにより以下の式で求めることができる（ステップＳ１４０２）。
【００６３】
【数１５】
0003796449.tif 000016
【００６４】
そして、全ての回転角θRiの平均値θRmeanを計算する。
【００６５】
【数１６】
0003796449.tif 000017
【００６６】
その結果、視軸Ｖを方向ベクトルとする回転軸周りに回転角θRmeanだけカメラを回転させることで、撮像面上のＰ'iをＱiに平均的に一致させるカメラの回転を行うことができる。
【００６７】
しかし、上記のv'qi、ｖ'piを求める式からもわかるように、|ｖqi|または|ｖpi|が０である場合、つまり、Ｑiの位置が、回転の中心である撮像面上の主点Ｌ上にある場合は、θRiが不定になり、補正回転角が計算できない。この状態で補正回転角を算出するための一つの方法として、回転角であるθRiに対して重み付けを行い、主点Ｌ付近の点に近づくにつれて、θRiの重みを軽くし、主点Ｌ上では重みを０に設定するような重み付けをする方法が挙げられる。この方法により不定となった回転角の影響を受けずに、それ以外の回転角から回転補正角を求められる。この回転角の重み付けを用いた補正回転角を求める式を以下に示す（ステップＳ１４０４）。
【００６８】
【数１７】
0003796449.tif 000018
【００６９】
なお、不定となる回転角の影響を除去する方法は、重みを付ける方法に限定されるものではなく、適した補正回転角を得られる方法であれば、本実施形態に適応可能である。
【００７０】
重み係数ｗiを決定する関数は、主点Ｌに近づくにつれて重みが減少し、主点Ｌ上での重みが０となるような関数である。この関数をｆとし、|ｖqi|をｄqiとすると、以下の式で表せる。
【００７１】
【数１８】
0003796449.tif 000019
【００７２】
関数ｆの一例を以下の式に示す。
【００７３】
【数１９】
0003796449.tif 000020
【００７４】
なお、本実施形態では、マーカを利用した平行移動もしくは回転移動で補正した後に、２次補正として視軸を軸としたロール補正を実行する。このため、２次補正を行う直前には距離的に|ｖqi|（＝ｄqi）と|ｖpi|（＝ｄpi）には大きな差は生じない。このため、ｄqiを引数として重み付けをすれば充分であり、もし、Ｐiが主点Ｌ上にあっても、不定となるθRiは無視されることになる。しかしながら、ｄpiを考慮した重み付けを行なってもよいことはもちろんである。すなわち、重み係数ｗiを決定する関数は、ｄqiを引数とする関数ｆのみではなく、関数ｆにｄPiを係数とした関数を積算した以下の関数を用いてもよい。
ｗi＝ｆ（ｄqi）・ｆ（ｄPi）
【００７５】
以上の計算の結果から補正行列ΔＭ'cを求める（ステップＳ１４０５）。視軸ベクトルＶは画像面に垂直な直線なので、視軸に対する回転補正行列ΔＭrcを求める式は以下のようになる。
【数２０】
0003796449.tif 000021
【００７６】
この視軸に対する回転補正行列ΔＭrcを、上述の４つの補正方法のいずれかによって得られた補正行列ΔＭcに乗ずることで最終的な補正行列ΔＭ'cを求める。
【００７７】
【数２１】
0003796449.tif 000022
【００７８】
最終的な補正行列ΔＭ'rcをカメラの位置姿勢を示す行列に乗ずることで、カメラの位置姿勢（外部パラメータ）は補正される。
【００７９】
この方法を適応することで、カメラ位置姿勢の視軸方向の回転に対する誤差が補正され、ランドマークの予測される位置と実際の位置との誤差がより小さくなる。
【００８０】
＜3-2．方法２＞
上記方法１では、ステップＳ１４０４の回転角の平均を求める時に、主点Ｌ付近の重みを下げるように重み付けをしている。しかし、仮想物体を重畳する場合、ユーザが注視するのは注目する仮想物体付近である場合が多い。この事象を利用して、撮像された複数のランドマークを平均的に用いる場合において、注目する場所に近いランドマークの影響をその他のランドマークよりも大きくし、注目する場所を重視してカメラの位置姿勢を決定することが考えられる。このような処理を行うことで、注目する場所以外のノイズの影響を受けにくくなり、より信頼性の高いカメラ位置姿勢パラメータを同定できる。
【００８１】
＜方法２＞では、注目点周辺のランドマークの影響を大きくする一例として、回転角の平均の計算時に重み付け平均を利用して、注目する物体周辺のランドマークの影響を大きくする方法を述べる。
【００８２】
なお、注目する物体は仮想物体のことを指している。仮想物体がシーン内に複数存在する場合は、画面中心（主点Ｌではない）に一番近い仮想物体が注目されている可能性が高いので、画像中心に一番近い場所に描画される仮想物体を注目する物体として選択する。また、一番近い仮想物体だけではなく、全ての仮想物体にも重み付けをしてもよい。ここで、重み付けの方法としては、ユーザが重みを選択できたり、画面中心の仮想物体の重みは大きく、中心から離れるに従って小さくなるという重み付け方法等が適用できる。
【００８３】
重み付け平均の式は、以下のとおりである。
【数２２】
0003796449.tif 000023
【００８４】
なお、注目点周辺のランドマークの影響を大きくする方法としては、重み付け平均を利用する方法に限定されるものではなく、注目する物体周辺の位置精度を向上させる方法であれば、本実施形態に適応可能である。
【００８５】
ｗeiを決定する関数に関しては、主点Ｌ付近で重みが最小となり、注目点での重みが最大となるような関数である。このような関数の一例として、以下の式のような関数を挙げる。注目点Ｓと点Ｑの距離をｄsiとすると、ｗeiを決定する関数は以下の式で表せる。
【数２３】
0003796449.tif 000024
ここで、関数ｆは上記＜方法１＞で述べた関数である。ここで、関数ｇの一例として以下の式を挙げる。
【００８６】
【数２４】
0003796449.tif 000025
【００８７】
なお、ｕはｗeiの和が１となる定数とする。
【００８８】
＜3-3．方法３＞
＜方法１＞と＜方法２＞では、一般的な４種類の補正方法のどれか一つの補正方法を選択して得られた補正行列ΔＭcを利用して最終的な補正行列ΔＭ'cを求めている。
【００８９】
これに対して＜方法３＞では、上記４つの方法を組み合わせることでΔＭcを求め、このΔＭcに視軸に対する回転補正行列ΔＭrcをかけることで最終的な補正行列ΔＭ'cを求める。この方法で、平行移動変換と回転変換の両方の補正を行うことにより、予測ランドマーク位置の誤差が減少する。
【００９０】
ここで、４つの補正方法における回転補正と平行移動補正の実行順序、ランドマーク１点を用いた補正と複数のランドマークを平均的に用いた補正の実行順序は固定ではなく、どの補正処理が先に来てもよい。ただし、カメラの平行移動による補正の後はカメラの回転移動による補正を実行するなど、次に実行する補正処理の種類は異なっていなければならない。これは、例えば、複数ランドマークを平均的に利用した平行移動による補正の後に、１点を利用した平行移動による補正を実行するなど、同種の補正処理が２回連続すると、後に行った補正が直前の補正結果を打ち消してしまい、結果的に、後に行った補正を１回実行した結果と同値になるからである。
【００９１】
また、上記の４つの補正処理（1-1、1-2、2-1、2-2）を複数回順番に繰り返してもよい。なお、このとき、上述したように同一種類の補正が連続しないようにする（1-1と2-1の処理が連続しないようにする、及び1-2と2-2の処理が連続しないようにする）。また、このとき、予め定めた回数を単に繰り返すだけではなく、カメラの位置姿勢から予測した撮像面上でのランドマークの予測位置と実際に撮像して得られた位置との間の誤差を基にして繰り返しの判定を行ってもよい。例えば、誤差が一定閾値以下になるまで繰り返すようにしてもよいし、誤差の変化分が一定値以下になるまで繰り返すようにしてもよい。或は、それらの組み合わせ（例えば誤差の大きさが閾値以下になるか或は誤差の変化分が閾値以下になるまで繰り返す）を用いてもよい。
【００９２】
このように、いずれかの方法で求められたΔＭcを利用して、視軸に平行な直線を軸とする回転補正ΔＭrcをかけて最終的な補正行列ΔＭ'cを求める。
【００９３】
＜４．複合現実感提示装置に適用した例＞
図８に本実施形態における上述の補正処理を、現実空間の画像とコンピュータグラフィックス等の非現実空間の画像を合成する複合現実感提示装置に適用した場合の概略構成を示す。８０１はヘッドマウントディスプレイ（以下ＨＭＤ）で、ＨＭＤ８０１の３次元空間における位置姿勢に基づいた信号を後述の位置姿勢計測部８０２に出力する３次元位置姿勢センサ８０１ａ、現実空間の撮像を行うカメラ８０１ｂ、ＨＭＤ８０１を頭部に装着したユーザに対して映像を提供する表示部８０１ｃを備えて構成されている。なお本実施形態におけるＨＭＤ８０１はビデオシースルーのタイプのものであり、ここでＨＭＤ８０１の位置姿勢とは、カメラ８０１ｂの位置姿勢を表すものとする。
【００９４】
８０２は位置姿勢計測部で、３次元位置姿勢センサ８０１ａから出力された信号に基づいてＨＭＤ８０１の位置姿勢を示す行列（ビューイング変換行列）を生成する。８０３はランドマーク検出部で、カメラ８０１ｂにより撮像された映像からランドマークを検出すると共に、ランドマークの位置も検出する。検出の方法はここでは特には限らないが、例えばランドマークとして、予め特定の色を配色したマーカを用い、カメラ８０１ｂにより撮像された映像中でこの特定の色を検出することで、映像中におけるランドマーク及びその位置を検出することができる。
【００９５】
８０４は位置姿勢補正部で、ランドマーク検出部８０３から出力された各ランドマークの位置情報に基づいて上述の視軸まわりの回転による補正を含む補正処理（＜方法１＞、＜方法２＞、＜方法３＞）を用いて補正行列ΔＭ'cを算出し、位置姿勢計測部８０２から出力されたＨＭＤ８０１の位置姿勢を示す行列に掛け、ＨＭＤ８０１の位置姿勢（外部パラメータ）を補正する。８０５は画像生成部で、位置姿勢補正部８０４により補正された行列に基づいて仮想物体の映像を生成し、カメラ８０１ｂから入力される現実空間の映像と合成し、複合現実映像（画像）を生成する。なお仮想物体に関するデータは外部のメモリに格納されているものとする。生成された画像は表示部８０１ｃに出力する。
【００９６】
以上の位置姿勢計測部８０２、ランドマーク検出部８０３、位置姿勢補正部８０４、画像生成部８０５はＨＭＤ８０１の制御部を構成する。この制御部はＨＭＤ８０１に搭載されてもよいし、ＨＭＤ８０１と有線或は無線で通信可能に接続される、ＨＭＤ８０１とは別体の装置として提供されてもよい。
【００９７】
以上の構成を有する制御装置が行う処理のフローチャートを図９に示し、以下説明する。また同図のフローチャートに従ったプログラムコードは本実施形態における制御装置内の不図示のＲＡＭやＲＯＭなどのメモリに格納され、不図示のＣＰＵにより読み出され、実行される。
【００９８】
まず３次元位置姿勢センサ８０１ａからＨＭＤ８０１の位置姿勢を示す信号が位置姿勢計測部８０２に入力され（ステップＳ９０１）、位置姿勢計測部８０２は入力した信号に基づいてＨＭＤ８０１の位置姿勢を示すビューイング変換行列を生成する（ステップＳ９０２）。一方、現実空間の映像がカメラ８０１ｂにより撮像され（ステップＳ９０３）、撮像された映像はランドマーク検出部８０３に入力され、ランドマーク及びその位置が検出される（ステップＳ９０４）。位置姿勢補正部８０４は検出されたランドマークの位置を用いて上述の方法（＜方法１＞、＜方法２＞、＜方法３＞）により補正行列ΔＭ'cを生成する（ステップＳ９０５）。
【００９９】
以上の各処理により生成されたＨＭＤ８０１の位置姿勢を示すビューイング変換行列、及び補正行列ΔＭ'cを用いて位置姿勢補正部８０４はＨＭＤ８０１の位置姿勢を補正する（ステップＳ９０６）。画像生成部８０５は、補正したＨＭＤ８０１の位置姿勢を示す外部パラメータに基づいて、仮想物体の映像を生成し、複合現実感映像を生成する（ステップＳ９０７）。そして生成された複合現実感映像は表示部８０１ｃに出力され（ステップＳ９０８）、表示部８０１ｃによって表示される（ステップＳ９０９）。
【０１００】
以上の説明の通り、上記実施形態によれば、現実空間を撮像する撮像装置の撮像された映像を利用する以外の方法で（例えば、３次元位置姿勢センサを用いて）計測した位置姿勢を示すパラメータを、撮像されたランドマークを用いてカメラのパン方向及び／又はティルト方向の回転と、及び／又は平行移動による補正方法を利用して補正した後、さらに、視軸に関する誤差を排除する補正が行われる。このため、カメラの位置姿勢を示すパラメータに対して、より信頼性の高い補正を行うことができる。また、撮像装置の位置姿勢を決定する用途であれば、どのような形態でも利用可能である。
【０１０１】
このため、本実施形態における補正処理装置及びその方法によれば、３次元位置姿勢センサ８０１ａによるＨＭＤ８０１の位置姿勢の計測精度が不十分でもＨＭＤ８０１の位置姿勢を高精度に補正することができる。
またＨＭＤ８０１内のカメラ８０２ｂにより撮像された現実空間の映像にＨＭＤ８０１の位置姿勢に基づいて生成された仮想物体の映像を合成しても、両映像の位置のずれを防ぐことができる。
また、撮像面上の全てのランドマークを用いてＨＭＤ８０１の位置姿勢の補正を行っているので、カメラの視野範囲の変更による補正値の大きな変更を防ぐことができる。
【０１０２】
［他の実施形態］
本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはＣＰＵやＭＰＵ）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(ＯＳ)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【０１０４】
【発明の効果】
以上説明したように、本発明によれば、撮像手段の高精度な位置姿勢検出が可能となる。
【図面の簡単な説明】
【図１】視軸を説明する模式図である。
【図２】一般的な補正方法を説明する模式図である。
【図３】複数点のランドマークを利用する補正方法を説明する模式図である。
【図４】複数点のランドマークをカメラのパン、チルト方向の回転で補正する方法を説明する模式図である。
【図５】ベクトルｖ4iの生成方法を示す模式図である。
【図６】複数点のランドマークをカメラの平行移動で補正する方法を説明する模式図である。
【図７】本実施形態による視軸まわりの回転による補正方法を説明する模式図である。
【図８】本実施形態による複合現実感提示装置の概略構成を示す図である。
【図９】本実施形態による複合現実感提示装置の処理を説明するフローチャートである。
【図１０】一つのランドマークを利用して、カメラの回転による補正を行う方法のフローチャートである。
【図１１】一つのランドマークを利用して、カメラの平行移動による補正を行う方法のフローチャートである。
【図１２】複数のランドマークを利用して、カメラの回転による補正を行う方法のフローチャートである。
【図１３】複数のランドマークを利用して、カメラの平行移動による補正を行う方法のフローチャートである。
【図１４】本実施形態における追加補正処理を含む補正方法を示すフローチャートである。
【図１】
0003796449.tif 000026
【図２】
0003796449.tif 000027
【図３】
0003796449.tif 000028
【図４】
0003796449.tif 000029
【図５】
0003796449.tif 000030
【図６】
0003796449.tif 000031
【図７】
0003796449.tif 000032
【図８】
0003796449.tif 000033
【図９】
0003796449.tif 000034
【図１０】
0003796449.tif 000035
【図１１】
0003796449.tif 000036
【図１２】
0003796449.tif 000037
【図１３】
0003796449.tif 000038
【図１４】
0003796449.tif 000039