(58)【調査した分野】(Int.Cl.,DB名)
撮影カメラで撮影された撮影映像と、前記撮影カメラに装着された姿勢計測手段が当該撮影カメラの姿勢を計測したカメラ姿勢計測情報とを用いて、前記撮影カメラの姿勢を推定するカメラ姿勢推定装置であって、
前記撮影映像を構成するフレーム画像から特徴点を抽出し、異なる前記フレーム画像の間で同一の特徴点が対応付けられた対応点を探索し、外れ値除外処理及び最適化処理により、前記撮影カメラの姿勢を推定したカメラ姿勢推定情報と、前記フレーム画像に含まれる対応点の空間位置とを求めるカメラ姿勢推定手段と、
前記フレーム画像の分割領域毎に、前記カメラ姿勢推定情報を用いて、前記空間位置で表した対応点を前記フレーム画像に再投影した再投影位置と、前記カメラ姿勢推定手段が探索した対応点の画像内位置との再投影誤差平均値を算出し、前記再投影誤差平均値の最大及び最小の比である不均一度を算出する不均一度算出手段と、
前記フレーム画像の各分割領域に含まれる対応点の数に基づいて、前記対応点の偏在度を算出する偏在度算出手段と、
前記偏在度と前記不均一度との比である評価値に基づいて、前記撮影映像について、前記カメラ姿勢推定情報の推定精度が高い高精度区間と、当該推定精度が前記高精度区間よりも低い中精度区間と、当該推定精度が前記中精度区間よりも低い低精度区間とを判定する評価値判定手段と、
前記高精度区間における撮影カメラの姿勢推定結果として、前記カメラ姿勢推定情報を出力する高精度区間推定手段と、
前記カメラ姿勢計測情報を拘束条件とした最適化処理により、前記カメラ姿勢推定情報を用いて前記撮影カメラの姿勢を再推定して、前記中精度区間における撮影カメラの姿勢推定結果として出力する中精度区間推定手段と、
前記低精度区間における撮影カメラの姿勢推定結果として、前記カメラ姿勢計測情報を出力する低精度区間推定手段と、
を備えることを特徴とするカメラ姿勢推定装置。
【発明を実施するための形態】
【0025】
(実施形態)
[カメラ姿勢推定システムの概略]
図1を参照し、カメラ姿勢推定システム100の概略について、説明する。
図1に示すように、カメラ姿勢推定システム100は、撮影カメラCの姿勢を推定するものであり、撮影カメラCと、カメラ姿勢推定装置1とを備える。
【0026】
撮影カメラCは、映像を撮影する一般的なカメラである。本実施形態では、撮影カメラCは、姿勢計測手段Caと、レンズ状態計測手段Cbとを備える。
姿勢計測手段Caは、撮影カメラCの姿勢を計測するものであり、例えば、撮影カメラCに装着されたジャイロスコープ及び加速度センサである。そして、姿勢計測手段Caは、撮影カメラCの姿勢を示すセンサ情報(カメラ姿勢計測情報)を、カメラ姿勢推定装置1に出力する。
このセンサ情報は、撮影カメラCの方向を示す回転情報(回転行列)と、撮影カメラCの位置を示す位置情報(並進行列)とが含まれる。
【0027】
レンズ状態計測手段Cbは、撮影カメラCのレンズ状態(例えば、ズーム値)を計測するものである。例えば、レンズ状態計測手段Cbは、ズームリング(不図示)の回転量を計測するロータリーエンコーダである。そして、レンズ状態計測手段Cbは、レンズ状態を示すレンズ情報を、カメラ姿勢推定装置1に出力する。
【0028】
なお、撮影カメラCは、レンズ状態、及び、カメラ姿勢を計測可能であれば、姿勢計測手段Ca及びレンズ状態計測手段Cbが特に制限されない。例えば、姿勢計測手段Caは、別途、センサーカメラ(不図示)を取り付け、このセンサーカメラの映像を解析して、撮影カメラCの位置情報を生成してもよい。
【0029】
カメラ姿勢推定装置1は、撮影カメラCから入力された撮影映像及びセンサ情報を併用して、撮影カメラCの姿勢を推定するものである。
撮影映像を用いるカメラ姿勢推定手法では、その推定精度が高い程、CG映像の品質が良好になる。このため、撮影映像を用いるカメラ姿勢推定手法は、映像制作に高い親和性を有する。従って、カメラ姿勢推定装置1は、撮影映像を用いるカメラ姿勢推定手法を基本とする。
以下、「撮影映像を用いるカメラ姿勢推定手法」を「画像解析」と略記する場合がある。
【0030】
すなわち、カメラ姿勢推定装置1は、画像解析による推定結果を評価し、撮影映像を、推定精度が高い高精度区間と、推定精度が中程度の中精度区間と、推定精度が低い低精度区間とに区分する。
【0031】
ここで、カメラ姿勢推定装置1は、高精度区間について、画像解析による推定結果をそのまま出力する。
また、カメラ姿勢推定装置1は、中精度区間について、画像解析による推定結果を、センサ情報を利用して補間する。つまり、カメラ姿勢推定装置1は、僅かに特徴点を追跡できる中精度区間において、この特徴点と、姿勢計測手段Caによるセンサ情報とを併用した再推定を行うことで、推定結果の精度を可能な限り向上させる。
さらに、カメラ姿勢推定装置1は、低精度区間について、センサ情報を出力する。
【0032】
[カメラ姿勢推定装置の構成]
以下、カメラ姿勢推定装置1の構成について、説明する。
図1に示すように、カメラ姿勢推定装置1は、記憶手段10と、画像解析手段(カメラ姿勢推定手段)20と、推定結果判定手段30と、第1補間処理手段(高精度区間推定手段)40と、再推定手段(中精度区間推定手段)50と、第2補間処理手段(低精度区間推定手段)60とを備える。
【0033】
記憶手段10は、例えば、撮影カメラCから入力された撮影映像と、センサ情報と、レンズ情報とを記憶する半導体記録装置である。このとき、記憶手段10は、撮影映像を構成するフレーム画像にセンサ情報及びレンズ情報を紐付けて、記憶する。
【0034】
画像解析手段20は、記憶手段10に記憶された撮影映像に画像解析処理を施すことで、撮影カメラCの姿勢を示す姿勢情報(カメラ姿勢推定情報)を求めるものである。具体的には、画像解析手段20は、画像解析処理として、特徴点抽出処理、対応点探索処理、外れ値除外処理、及び、最適化処理を行う。
この姿勢情報は、撮影カメラCの方向を示す回転情報(回転行列)と、撮影カメラCの位置を示す位置情報(並進行列)とが含まれる。
【0035】
まず、画像解析手段20は、基準画像及び参照画像とから、SIFT(Scale Invariant Feature Transform)、SURF(Speeded Up Robust Features)などの特徴点を抽出する。
【0036】
図2に示すように、基準画像90は、撮影映像を構成するフレーム画像のうち、画像解析処理が施されるフレーム画像である。
参照画像91は、基準画像90と異なるフレーム画像である。
【0037】
次に、画像解析手段20は、基準画像90から抽出された特徴点92を追跡し、基準画像90と参照画像91との間で対応点92を探索する。この対応点92は、基準画像90と参照画像91との間で同一の特徴点92が対応付けられたものである。
図2の例では、画像解析手段20は、前景部分の対応点92
1と、テーブルの隅にある対応点92
2と、箱の隅にある対応点92
3とを探索する。
【0038】
次に、画像解析手段20は、RANSAC(RANdom SAmple Consensus)、LMedS(the Least Median of Squares)などの外れ値除外処理を施す。そして、画像解析手段20は、バンドルアジャストメントなど最適化処理を行い、姿勢情報及び対応点92の3次元座標(空間位置)を求める。
図3の例では、基準画像90及び参照画像91,91´において、対応点92
1,92
2,92
3の2次元座標(画像位置)が既知である。また、被写体Objの特徴点92
1,92
2,92
3が、基準画像90及び参照画像91
1,91´の対応点92
1,92
2,92
3に対応する。従って、画像解析手段20は、この対応点92
1,92
2,92
3の対応関係を利用して、最適化処理により、被写体Objの特徴点92
1,92
2,92
3の3次元座標と、姿勢情報とを求めることができる。
【0039】
その後、画像解析手段20は、記憶手段10に記憶された撮影映像と、センサ情報と、レンズ情報とを、推定結果判定手段30に出力する。さらに、画像解析手段20は、画像解析処理により求めた姿勢情報と、被写体Obj上の対応点の3次元座標と、画像解析処理の過程で得られた対応点の2次元座標とを、推定結果判定手段30に出力する。
【0040】
なお、カメラ姿勢推定装置1は、基準画像90及び参照画像91が異なるフレーム画像であれば、基準画像90及び参照画像91を任意に設定できる。例えば、カメラ姿勢推定装置1は、撮影映像が短い場合、基準画像90と参照画像91とを全て組み合わせて、画像解析処理を行う。また、カメラ姿勢推定装置1は、撮影映像が長い場合、処理負荷が高くなるので、撮影映像を一定時間(例えば、30秒)毎に分割し、分割した撮影映像毎に画像解析処理を行ってもよい。さらに、カメラ姿勢推定装置1は、撮影映像が長い場合、撮影映像にシーン抽出処理を施して、同一シーンの撮影映像毎に画像解析処理を行ってもよい。
【0041】
図1に戻り、カメラ姿勢推定装置1の構成について、説明を続ける。
推定結果判定手段30は、画像解析手段20の推定結果がどの程度の精度であるかを判定するものであり、不均一度算出手段31と、偏在度算出手段33と、評価値判定手段35とを備える。
【0042】
不均一度算出手段31は、基準画像90のブロック(分割領域)毎に、姿勢情報を用いて再投影誤差の平均値を算出し、不均一度Dを算出するものである。
この再投影誤差とは、被写体Obj上の対応点を基準画像90に再投影した2次元座標(再投影位置)と、画像解析手段20が抽出した対応点の2次元座標(画像内座標)との誤差を示す。
【0043】
偏在度算出手段33は、基準画像90の各ブロックに含まれる対応点の数に基づいて、偏在度Sを算出するものである。
評価値判定手段35は、偏在度Sと不均一度Dとの比である評価値Cに基づいて、撮影映像について、高精度区間と、中精度区間と、低精度区間とを判定するものである。
【0044】
<推定結果判定手段による判定>
図4,
図5を参照し、推定結果判定手段30による判定について、説明する(適宜
図1参照)。
カメラ姿勢推定装置1は、正解となるカメラ姿勢を有していない。このため、推定結果判定手段30は、推定条件が良いか悪いかを拠り所として、間接的に推定結果の精度を判定することになる。ここで、本願発明者は、以下(A)〜(D)の知見を得ている。
【0045】
(A)動画像中で推定対象のフレーム画像(基準画像)と他のフレーム画像(参照画像)とで同一の特徴点、つまり、対応点が少ない場合、カメラ姿勢の推定が破綻しやすい傾向にある。無論、カメラ姿勢の推定に必要な対応点数を満たさなければ、カメラ姿勢の推定そのものを行えない。
【0046】
(B)対応点は、特徴点の特徴ベクトルの類似度から求められるが、必ずしも正解ではなく、誤対応点が含まれる。推定対象のフレーム画像において、対応点における誤り率、つまり、誤対応の割合が多い場合、推定精度の低下又は推定の破綻を引き起こす。
【0047】
(C)最適化によって、姿勢情報と、対応点の3次元位置とが求まる。求めた姿勢情報及びレンズ情報を用いて、求めた対応点の3次元座標(空間位置)を撮影カメラCの撮像面(基準画像90)に再投影する。この対応点の2次元座標(再投影位置)と、画像解析処理により求めた2次元座標(画像内位置)とは、本来、同一位置になる。なぜならば、最適化処理は、対応点を撮像面に再投影した再投影位置と、画像解析処理により求めた対応点とについて、両位置の距離の総和平均をコスト関数とし、このコスト関数を最小とする処理のためである。
なお、再投影の手法については、説明を後記する。
【0048】
従って、誤対応がある場合、
図4に示すように、対応点92
1と、この対応点92
1を撮影カメラCの撮像面(基準画像90)に再投影した位置92
1´とが、同一位置にならない。つまり、対応点92
1の再投影誤差Δ1は、対応点92
1と再投影位置92
1´との位置ずれを示す。
なお、対応点92
2,92
3も対応点92
1と同様のため、説明を省略する。
【0049】
一般的に、推定が上手く行えたか否かを判定する尺度には、従来の再投影誤差の総和平均が用いられる。この再投影誤差の総和平均は、対応点がフレーム画像に均一に分散し、各対応点における再投影誤差が一様に小さくなるならば、推定精度を正しく評価することができる。しかし、再投影誤差が大きくなる場合、推定精度が低下又は推定が破綻している可能性が高い。最適化処理では、統計的にカメラ姿勢を推定するため、例えば、対応点が偏在する場合、その偏在部位が適切に最適化されない状態となり、全体として真値から外れた値に収束することとなる。この場合、再投影誤差の大きい対応点は、その数が少ないため、最適化にあまり寄与しないか、又は、外れ値として除外されることになる。従って、再投影誤差が不均一であるか否かを基準画像のブロック毎に評価することで、再投影誤差がある程度の範囲に収まっている場合でも、推定精度が低いか否かを判定できる。
【0050】
(D)推定対象のフレーム画像で対応点が偏在する場合、その偏在部分でオーバーフィッティング(過学習)することとなり、推定精度が低下する。
【0051】
ここで、評価値Cを用いるまでもなく、(A)を判定することができる。(B)については、誤対応であるか否かの判定が困難であるが、(C)及び(D)の評価に包含することができる。従って、(C)及び(D)の知見から、評価値Cは、以下のように求めることができる。
【0052】
不均一度Dは、式(1)に示すように、再投影誤差平均値の最大E
reproMaxと、再投影誤差平均値の最小E
reproMinとの比で表される。
【0054】
この場合、不均一度算出手段31は、
図5の破線で図示したように、基準画像90を4個のブロックに分割し、各対応点で再投影誤差を求める。そして、不均一度算出手段31は、各ブロックに含まれる対応点の再投影誤差を平均し、ブロック毎に再投影誤差平均値を求める。さらに、不均一度算出手段31は、最大誤差となるブロックの再投影誤差平均値をE
reproMaxとし、最小誤差となるブロックの再投影誤差平均値をE
reproMinとして、式(1)を用いて、不均一度Dを算出する。
【0055】
偏在度Sは、式(2)に示すように、ブロックの中で最小の対応点の数N
Min及びブロックの中で2番目に少ない対応点の数N
Min2ndの加算値を、ブロック毎の対応点の数N
iの総和で除算する式で定義される。
【0057】
この場合、偏在度算出手段33は、
図5に示すように、基準画像90を4個のブロックに分割し、各ブロックに含まれる対応点の数をカウントする。そして、偏在度算出手段33は、対応点が最小となるブロックの対応点数をN
Minとし、対応点が2番目に少ないブロックの対応点数をN
Min2ndとして、式(2)を用いて、偏在度Sを算出する。
【0058】
評価値Cは、式(3)に示すように、偏在度Sと不均一度Dとの比で表される。この評価値Cは、値が大きくなるほど推定精度が高いことを示し、値が小さくなるほど推定精度が低いことを示す。
【0060】
評価値判定手段35は、各基準画像から評価値Cを算出し、式(4)を用いて、評価値Cが閾値C
th未満であるか否かを判定する。具体的には、評価値判定手段35は、式(4)を満たさない場合、基準画像が高精度区間に属すると判定する。一方、評価値判定手段35は、式(4)を満たす場合、この基準画像が高精度区間以外の区間(中精度区間又は低精度区間の何れか)に属すると判定する。
【0062】
前記したように、対応点の数が少ない場合、推定精度の低下又は推定の破綻を引き起こす。また、対応点探索処理の時点において、ある程度の対応点が残っている場合でも、外れ値除外処理により対応点の数が減少することもある。このため、評価値判定手段35は、最適化処理後の対応点数を用いて、高精度区間以外に属すると判定された区間について、中精度区間としての再推定が行えるか否かを判定する。
【0063】
ここで、最適化処理後に残った対応点が、高精度区間の基準画像と、高精度区間以外の参照画像とに含まれる場合を考える。この場合、高精度区間以外の参照画像に含まれる対応点の数をP
Cとする。そして、評価値判定手段35は、式(5)に示すように、この対応点数P
Cが閾値P
thを超えるか否かを判定する。
【0065】
評価値判定手段35は、式(5)を満たす場合、基準画像が中精度区間に属すると判定する。一方、評価値判定手段35は、式(5)を満さない場合、基準画像が低精度区間に属すると判定する。
【0066】
その後、推定結果判定手段30は、高精度区間について、姿勢情報を第1補間処理手段40に出力する。また、推定結果判定手段30は、中精度区間について、姿勢情報と、センサ情報と、レンズ情報と、対応点情報とを再推定手段50に出力する。さらに、推定結果判定手段30は、低精度区間について、センサ情報を第2補間処理手段60に出力する。
なお、対応点情報とは、基準画像内での対応点の2次元座標と、被写体上の対応点の3次元座標とを示す。
【0067】
なお、閾値C
th及び閾値P
thは、経験的に求めた値を手動で設定することとし、撮影映像のサイズや品質などにより調整することが好ましい。本実施形態では、例えば、閾値C
th=0.05とし、閾値P
th=100とに設定した。
【0068】
<再投影の手法>
以下、再投影の手法について、説明する。
再投影を行うための射影変換は、式(6)及び式(7)で定義することができる。
【0071】
この式(6)及び式(7)では、対応点の3次元座標を(X
world,Y
world,Z
world)、撮影カメラCの回転行列をR、撮影カメラCの並進行列をT、撮影カメラCの撮像面中心を(o
x,o
y)、撮影カメラCの画素サイズを(k
x,k
y)、撮影カメラCのレンズの焦点距離をf、撮影カメラCの撮像面の2次元座標を(x
image,y
image)とする。
【0072】
さらに、撮影カメラCのレンズには歪みがあるので、式(8)及び式(9)を用いて、撮影カメラCの撮像面の2次元座標(x
image,y
image)に、この歪みを反映させる。
【0075】
この式(8)及び式(9)では、歪み補正後の撮像面の2次元座標を(x
u,y
u)、歪み補正前の撮像面の2次元座標を(x
d,y
d)、撮影カメラCのレンズ中心である歪み中心を(x
c,y
c)、n次湾曲歪み係数をK
n、n次タンジェンシャル歪み係数をP
n、撮影カメラCのレンズ中心(x
c,y
c)から2次元座標(x
d,y
d)までの距離をrとする。
【0076】
つまり、式(7)で表される撮像面の2次元座標(x
image,y
image)が、式(8)及び式(9)で表される撮像面の2次元座標(x
d,y
d)に相当する。また、本実施形態では、1次湾曲歪み係数K
1及び2次湾曲歪み係数K
2のみを考慮し(n=1,2)、レンズ中心(x
c,y
c)及びタンジェンシャル歪みを考慮していない。
【0077】
なお、歪みを反映させる手法は、下記の参考文献に記載されているため、これ以上の説明を省略する。
参考文献「de Villiers, J. P.; Leuschner, F.W.; Geldenhuys, R. (17-19 November 2008). "Centi-pixel accurate real-time inverse distortion correction" . 2008 International Symposium on Optomechatronic Technologies. SPIE. doi:10.1117/12.804771」
【0078】
なお、本願発明は、前記レンズモデルに限定されず、他のレンズモデルを適用してもよい。
また、本願発明は、レンズの歪みを考慮せずに、再投影を行ってもよい。
【0079】
図1に戻り、カメラ姿勢推定装置1の構成について、説明を続ける。
第1補間処理手段40は、高精度区間における撮影カメラCの姿勢推定結果として、推定結果判定手段30からの姿勢情報を出力するものである。すなわち、高精度区間では、画像解析処理により求められた姿勢情報が、そのまま出力される。
【0080】
再推定手段50は、センサ情報を拘束条件とした最適化処理(例えば、バンドルアジャストメント)により、姿勢情報と、レンズ情報と、対応点情報とを用いて、撮影カメラCの姿勢を再推定するものである。そして、再推定手段50は、再推定した撮影カメラCの姿勢を、中精度区間の姿勢推定結果として出力する。
【0081】
<再推定手段による再推定>
図6を参照し、再推定手段50による再推定について、説明する(適宜
図1参照)。
最適化処理後に残った対応点が、中精度区間に属するフレーム画像と、高精度区間に属するフレーム画像とに含まれる場合を考える。この高精度区間のフレーム画像に含まれる対応点を「残存対応点」と呼ぶことがある。
【0082】
再推定手段50は、中精度区間では、姿勢情報及びセンサ情報に加えて、対応点情報も利用して再推定を行う。中精度区間は、最適化処理において、真値以外に収束したか、又は、カメラ姿勢の推定が破綻した状態である。このため、中精度区間のフレーム画像に含まれる対応点の2次元座標を用いても、高い精度でカメラ姿勢を推定することが困難である。一方、高精度区間において、最適化処理後に残った対応点(残存対応点)は、3次元座標を有している。従って、中精度区間において、この残存対応点と対応関係がある対応点は、3次元座標に紐付けることが可能になる。さらに、センサ情報のうち、撮影カメラCの方向を示す回転情報も利用可能である。
【0083】
まず、再推定手段50は、中精度区間に属するフレーム画像の対応点に対応した、残存対応点の3次元座標を、対応点情報から得ることができる。また、再推定手段50は、センサ情報から回転情報を抽出する。このとき、再推定手段50は、接続点で回転情報が一致するように、後記する回転情報の接続処理を施す。
なお、接続点とは、時間方向において、高精度区間に属するフレーム画像と、中精度区間又は低精度区間に属するフレーム画像とが接する部分のことである。
【0084】
次に、再推定手段50は、回転情報及びレンズ情報を拘束条件として、各対応点の3次元座標を撮像面に再投影した位置と、画像解析により得た対応点の2次元位置との距離の総和平均値が最小となるように、最適化処理を行う。具体的には、再推定手段50は、
図6に示すように、3次元座標で表された被写体Objの対応点92を撮影カメラCの撮像面93に投影する。このとき、再推定手段50は、回転情報が示す方向に撮像面93を向ける。そして、再推定手段50は、被写体Objの対応点92と、撮像面93に投影された特徴点92との延長線94を求める。さらに、再推定手段50は、全ての延長線94が撮影カメラCの光学主点に収束するように、姿勢情報が示す撮影カメラC(レンズの光学主点)の位置を最適化する。
なお、
図6では、図面を見やすくするため、一部符号のみを図示した。
また、撮影カメラCの撮像面93とは、撮影映像を構成するフレーム画像(基準画像90)のことである。
【0085】
図1に戻り、カメラ姿勢推定装置1の構成について、説明を続ける。
第2補間処理手段60は、低精度区間における撮影カメラCの姿勢推定結果として、推定結果判定手段30からのセンサ情報を出力するものである。
ここで、低精度区間では姿勢情報を利用できない。そこで、第2補間処理手段60は、センサ情報から回転情報と、位置情報とを抽出する。また、第2補間処理手段60は、低精度区間と、中精度区間及び高精度区間との接続点について、回転情報の接続処理と、位置情報の接続処理とを行い、内挿補間する。
【0086】
<回転情報の接続処理>
図7,
図8を参照し、再推定手段50で行われる回転情報の接続処理について、説明する(適宜
図1参照)。
【0087】
図7に示すように、姿勢計測手段Caで計測されたセンサ情報の世界座標系αと、画像解析処理で求められた姿勢情報の世界座標系βとが、異なっている。このため、再推定手段50は、世界座標系α,βを整合させる接続処理を行う。
【0088】
ここで、接続処理は、センサ情報のドリフト成分を抑制するため、撮影映像全体を処理対象とするのではなく、接続点に前後する短い区間(時間)を対象とする。
具体的には、再推定手段50は、式(10)に示すように、姿勢情報に含まれる回転行列R
iを基準として、センサ情報に含まれる回転行列R
sを整合させる。すなわち、再推定手段50は、回転行列R
sと、回転行列R
sの逆行列R
s−1と、回転行列R
iとを乗算する。
【0090】
図8に示すように、この中精度区間95の前側F及び後側Bでは、ドリフト成分の誤差が生じている可能性がある(
図8の符号A)。そこで、再推定手段50は、中精度区間95の前側Fにおいて、逆行列R
s−1により、回転行列R
i,R
sを一致させる。さらに、再推定手段50は、中精度区間95の後側Bを一致させた際に生じる回転行列R
sの誤差成分を4元数で表し、フレーム間距離を用いて、回転行列R
sの誤差成分を線形に配分する。これによって、再推定手段50は、中精度区間95と高精度区間96との接続点において、回転成分のショックを低減し、回転情報が急激に変化することを防止できる(
図8の符号A´)。
なお、第2補間処理手段60は、再推定手段50と同様、低精度区間と、中精度区間又は高精度区間との接続点で、回転情報の接続処理を行うため、説明を省略する。
【0091】
<位置情報の接続処理>
図9,
図10を参照し、第2補間処理手段60で行われる位置情報の接続処理について、説明する(適宜
図1参照)。
【0092】
この低精度区間の前後において、並進成分は、回転成分よりも大きな誤差が生じる。
まず、第2補間処理手段60は、低精度区間の前側において、平行移動によって、姿勢情報に含まれる撮影カメラCの位置と、センサ情報に含まれる撮影カメラC´の位置とを一致させる。具体的には、第2補間処理手段60は、
図9に示すように、位置情報が示す撮影カメラCの位置まで、センサ情報が示す撮影カメラC´の位置を平行移動させて、撮影カメラC,C´の位置を一致させる。
【0093】
次に、第2補間処理手段60は、低精度区間の後側において、空間のせん断処理、又は、スケーリング処理の何れかを行って、姿勢情報に含まれる位置情報と、センサ情報に含まれる位置情報とを一致させる。これによって、第2補間処理手段60は、接続点において、並進成分のショックを低減し、位置情報が急激に変化することを防止できる。
【0094】
空間のせん断処理とは、3次元空間のX,Y,Z軸で、アフィン変換のせん断を行うことである。例えば、X軸方向のせん断であれば、
図10(a)に示すように、X軸方向への変位がY座標値に比例させる。また、X軸方向のせん断では、
図10(b)に示すように、X軸方向への変位をZ座標値に比例させてもよい。この
図10では、アフィン変換前を実線で図示し、アフィン変換後を破線で図示した。
【0095】
スケーリング処理とは、低精度区間の前側を回転軸とし、低精度区間の後側が一致するよう回転及びスケーリングを行う処理のことである。
なお、本実施形態では、第2補間処理手段60が空間のせん断を行っている。
【0096】
[カメラ姿勢推定装置の動作]
図11を参照し、カメラ姿勢推定装置1の動作について、説明する(適宜
図1参照)。
ここで、記憶手段10は、撮影映像と、センサ情報と、レンズ情報とが記憶されていることとする。
【0097】
カメラ姿勢推定装置1は、画像解析手段20によって、記憶手段10に記憶された撮影映像に画像解析処理を施すことで、姿勢情報を求める(ステップS1)。
カメラ姿勢推定装置1は、不均一度算出手段31によって、前記した式(1)を用いて、不均一度Dを算出する(ステップS2)。
カメラ姿勢推定装置1は、偏在度算出手段33によって、前記した式(2)を用いて、偏在度Sを算出する(ステップS3)。
【0098】
カメラ姿勢推定装置1は、評価値判定手段35によって、前記した式(3)を用いて、評価値Cを算出する(ステップS4)。
カメラ姿勢推定装置1は、評価値判定手段35によって、評価値Cが閾値C
th未満であるか否かを判定する(ステップS5)。
評価値Cが閾値C
th未満の場合(ステップS5でYes)、カメラ姿勢推定装置1は、評価値判定手段35によって、対応点数P
Cが閾値P
thを超えるか否かを判定する(ステップS6)。
【0099】
対応点数P
Cが閾値P
thを超える場合(ステップS6でYes)、カメラ姿勢推定装置1は、再推定手段50によって、センサ情報を拘束条件とした最適化処理により、姿勢情報と、レンズ情報と、対応点情報とを用いて、再推定を行う(ステップS7)。
【0100】
対応点数P
Cが閾値P
th以下の場合(ステップS6でNo)、カメラ姿勢推定装置1は、第2補間処理手段60によって、低精度区間における撮影カメラCの姿勢推定結果として、センサ情報を出力する(ステップS8)。
【0101】
評価値Cが閾値C
th以上の場合(ステップS5でNo)、カメラ姿勢推定装置1は、高精度区間における撮影カメラCの姿勢推定結果として、姿勢情報を出力する(ステップS9)。
【0102】
以上のように、カメラ姿勢推定装置1は、対応点が撮影映像に偏在し、各特徴点の再投影誤差が不均一になる場合でも、式(1)〜式(5)を用いて、不均一度D及び偏在度Sを正確に算出することができる。このため、カメラ姿勢推定装置1は、撮影カメラCの姿勢推定精度を正しく評価して、高い精度で撮影カメラの姿勢を推定することができる。
さらに、カメラ姿勢推定装置1は、再推定手段50によって、接続点で急激に撮影カメラCの姿勢が変化しないように再推定を行うので、滑らかなCG映像を制作できる。
【0103】
なお、カメラ姿勢推定装置1は、ディスクリートロジックや、FPGA(Field Programmable Gate Array)などを利用したハードウェアで実現することができる。また、カメラ姿勢推定装置1は、一般的なコンピュータを前記した各手段として協調動作させるソフトウェア(プログラム)で実現することもできる。
【0104】
(変形例)
なお、本願発明は、前記した実施形態に限定されず、その趣旨を逸脱しない範囲で変形を加えることができる。
不均一度算出手段31及び偏在度算出手段33は、基準画像90を4個以外のブロックに分割してもよい。
また、不均一度算出手段31及び偏在度算出手段33は、基準画像90を矩形状のブロックに分割するのではなく、エッジ領域又は色領域で分割してもよい。
【0105】
以下、基準画像90を4個のブロック以外に分割した場合について、評価値Cの算出手法を説明する(適宜
図1参照)。
基本的には、推定結果判定手段30は、分散及び相関と、再投影誤差とを考慮して、評価値Cを算出する。
【0106】
まず、不均一度算出手段31は、再投影誤差が一定以下となる対応点を抽出する。また、不均一度算出手段31は、基準画像内で対応点の分散(画像上の位置)を算出する。この分散は、2次元座標系の共分散でなく、対応点の重心位置からの距離に対する分散である。これによって、不均一度算出手段31は、式(11)に示すように、再投影誤差が小さい対応点が基準画像の特定箇所に集中しているか否かの判定指標(不均一度Dの二乗)を得ることができる。
この式(11)では、対応点の重心位置がx ̄であり、対応点の数がnであり、各対応点の距離がx
jである。
【0108】
偏在度算出手段33は、式(12)に示すように、基準画像内で対応点の相関を算出する。これによって、偏在度算出手段33は、再投影誤差が小さい対応点の偏在傾向の判定指標(偏在度S)を得ることができる。
この式(12)対応点の重心位置の2次元座標が(x ̄,y ̄)であり、対応点の2次元座標が(x
j,y
j)である。
【0110】
図12の例では、偏在度Sが‘0’に近い程、対応点が偏在していないことを示し、偏在度Sが‘1’に近い程、対応点が偏在していることを示す。この
図12の例では、基準画像内での対応点の分布をドットで図示し、その偏在度Sを基準画像の上部に図示した。つまり、
図12では、偏在度Sと、対応点の分布との関係を20パターン例示した。
【0111】
ここで、基準画像を4個のブロック以外に分割した場合を考える。この場合、評価値判定手段35は、ブロック分割する手法と、ブロック分割しない手法とを利用することができる。
【0112】
ブロック分割する場合、評価値判定手段35は、ブロック毎に再投影誤差が一定以下の対応点数をカウントする。そして、評価値判定手段35は、対応点数が一定以上のブロックのフラグを‘1’、対応点数が一定未満のブロックのフラグを‘0’に設定する。さらに、評価値判定手段35は、フラグが‘1’に設定されたブロックに対し、前記した式(11)及び式(12)の算出手法(対応点を1ブロックの座標に置換)を適用することで、前記した(3)を用いて、評価値Cを算出できる。
【0113】
一方、評価値判定手段35は、ブロック分割せずに、再投影誤差が一定以下の対応点を点単位で利用する場合、それら対応点の座標を用いて、前記した式(11)及び式(12)の算出手法(対応点を1ブロックの座標に置換)を適用することで、前記した(3)を用いて、評価値Cを算出できる。