3次元位置情報復元装置およびその方法
【課題】透視投影カメラモデルに基づいた擬似的でない正確な3次元位置を復元する。
【解決手段】各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段と、連続する所定数の二次元画像を各特徴点毎に分配する手段と、各特徴点毎の連続する所定数の二次元画像について各特徴点毎の3次元位置Xα′とカメラの位置Πκ′を射影復元する射影復元部と、前記射影復元部により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを求める自己校正部とを有する。
【解決手段】各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段と、連続する所定数の二次元画像を各特徴点毎に分配する手段と、各特徴点毎の連続する所定数の二次元画像について各特徴点毎の3次元位置Xα′とカメラの位置Πκ′を射影復元する射影復元部と、前記射影復元部により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを求める自己校正部とを有する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の二次元画像から注目する特徴点の3次元位置を高速に復元してコンピュータグラフィックスにおけるポリゴンデータの自動生成や複合現実感などの分野に応用可能とする装置およびその方法に関するものである。
【背景技術】
【0002】
図9は従来の3次元位置情報復元処理の概要構成を示す機能ブロック図である。901は撮像部、902は対応点検出部、903は疑似透視投影による因子分解部であり、対応点検出部902と因子分解部903とにおける処理ステップにより、擬似的に3次元点を得る。具体的には、撮像部901で撮像した複数の画像の対応点をとり、その対応点から3次元点を復元する。このとき、撮像部901を構成するカメラの内部パラメータが前もって分かっていることが必要である。
また、3次元復元処理は、カメラモデルを平行投影や弱透視投影(図10(b)に示す。)に限り、擬似的に3次元復元する手法である因子分解法あるいはこの改良型が主流である。このため復元精度が低い。
さらに、従来法は、画像数と特徴点数が増加した場合、因子分解法の処理に必要な画像中の特徴点列から作るモーメント行列の次数が急激に増加するので、処理メモリが急激に増加する手法である。
【0003】
以下、画像をκ、その中の対応点をαとして従来技術の作用および動作を説明する。
特徴点xκαを元に特徴点ベクトルPκαを以下のように作る。
Pκα=(x1αT,…xMαT)T (1)
重心ベクトルPCを以下のように作成する。
【数1】
以下の計算を行いモーメント行列W(2M×N行列)を作る。
Pα′=Pα−PC
W=(P1′,…,PN′) (3)
Wを用い低下のように特異値分解を行い行列UとVを求める。
W=UDVT (4)
このVを用いて、以下の式により擬似的な3次元位置Xαが求まる。
(X1X2…XN)=(v1v2v3)T (5)
但し、
V=(v1v2v3v4) (6)
である。
【発明の開示】
【発明が解決しようとする課題】
【0004】
解決しようとする課題は、透視投影カメラモデル(図10(b))に基づいた擬似的でない正確な3次元位置情報復元装置および方法を提供することである。
また、従来法においては、平行投影のカメラモデルでも画像数Mと特徴点をNとしたとき、このM×Nの値が増加することにより、速度低下および使用メモリの増加をきたしている。本発明が解決しようとする他の課題は、画像数や点数によらず一定のメモリで3次元復元問題が解けるような計算手法を実現する装置および方法を提供することにある。
すなわち、従来法は、カメラモデルを平行投影することによる計算法であるため3次元復元の精度が悪い。また、従来の因子分解法による計算処理法は、画像数Mと対象点Nに依存する。このため実用的なサイズでは計算が遅くなりメモリサイズの制限から実用的なサイズの点数の復元が行えなかった。このため、復元をビデオレートで行うためには処理装置の規模が大きくなり経済的な制約から実用的なものができていない。
因子分解法は、基本的に特異値分解を行うことに結びつくため、画像数Mと一画像当たりの特徴点数Nの積である2M×N行列の特異値問題を解く必要がある。点数が少ない場合は実用に耐えるが、10枚の画像と1000点の特徴点数を例に考えた場合、105要素数の行列を扱う必要がある。
また、復元データが疑似透視投影に基づくため、復元した3次元データの精度が悪い。特に、カメラモデルとして疑似透視投影を用いるため近距離での復元精度に問題がある。
従って、本発明は、カメラモデルとして平行投影を仮定して複数の連続する画像から3次元位置を得る従来の擬似的な3次元復元でなく、カメラモデルとして透視投影を仮定して正確な3次元復元を高速で行う装置および手法を提供することである。
【課題を解決するための手段】
【0005】
以下の式(7)は、3次元位置Xαがκ画像の対応する2次元の点xκαに、カメラ投影行列(プロジェクションマトリクス)Πκを用いて変換される関係を示したものである。図10に対応の模式図を示す。
【数2】
また、カメラ投影行列Πκは、カメラパラメータKκカメラの位置tκおよびRκを用いて以下のように表される。
Πκ=Kκ(Rκtκ) (8)
また、カメラパラメータKκは以下である。
【数3】
この式(7)を満足する、未知のXα,Πκを既知のxκαを用いて求めることが3次元復元である。
このためには、まずこの式(7)を仮に満たすΠκ′とXα′を求める。これを射影復元と呼ぶ。これには複数の画像間で対応する点xκαを縦に積んで作成した特徴点ベクトルP=(x1αT,…,xMαT)Tがランク4の制約を持つことを利用して、実施例の射影復元に示す方法で射影復元する。
次に、これを正しいΠκとXαに変換する。自己構成と呼ぶ。両者の間にはΠκ′=ΠκH,Xα′=H−1Xαの関係があり、このHが射影復元の不定性である。これには、
Πκ=Kκ(Rκtκ) (10)
が
Πκdiag(1,1,1,0)ΠκT=KκKκT (11)
となる性質を拘束条件に利用して、実施例の自己校正処理に示す方法でHおよびKκを得ることにより、正しい3次元復元を行う。
【0006】
すなわち、上記課題を解決するため請求項1に係る3次元位置情報復元装置は、カメラにより撮像した複数の連続する二次元画像を元にして、撮像対象となる情景中の3次元位置を復元する装置であって、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段と、連続する所定数の二次元画像を各特徴点毎に分配する手段と、各特徴点毎の連続する所定数の二次元画像について各特徴点毎の3次元位置Xα′とカメラの位置Πκ′を射影復元する射影復元部と、前記射影復元部により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを求める自己校正部とを有することを特徴とするものである。
【0007】
請求項2に係る3次元位置情報復元装置は、請求項1に記載のものにおいて、射影計算部において3次元位置Xα′を計算するに際して、画像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数4】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数5】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算する
Xκα=(pα,uκ), k=1〜4
ことを特徴とするものである。
【0008】
請求項3に係る3次元位置情報復元装置は、請求項1に記載のものにおいて、自己校正部において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、射影復元部により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とするものである。
【0009】
請求項4に係る3次元位置情報復元装置は、請求項1に記載のものにおいて、射影計算部において3次元位置Xα′を計算するに際して、画像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数6】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数7】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算し、
Xκα=(pα,uκ), k=1〜4
自己校正部において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、
射影復元部により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とするものである。
【0010】
請求項5に係る3次元位置情報復元装置は、請求項1〜請求項4のいずれかに記載のものであって、射影復元部により求めた3次元位置Xα′について自己校正部において求めた数学的に正しいが物理的に偽の3次元位置情報を判定して除去する補正部とを有することを特徴とするものである。
【0011】
請求項6に係る3次元位置情報復元装置は、請求項1に記載のものにおいて、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段が、特徴点の追跡の誤対応の可能性に重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とするものである。
【0012】
請求項7に係る3次元位置情報復元装置は、請求項1に記載のものにおいて、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段が、時刻t+Δtと時刻tの画像I(x,t+Δt),I(x,t)を用いて所定数の段階の詳細度dを持つ画像Id(xd,t),Id(xd,t+Δt)を作成し、詳細度が粗い順に、特徴点の追跡の誤対応の可能性に重み係数を計算し、当該重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とするものである。
【0013】
請求項8に係る3次元位置情報復元装置は、請求項5に記載のものにおいて、射影復元部の射影復元処理と、自己校正部の自己校正処理と、補正部の判定除去処理とをパイプライン化することを特徴とするものである。
【0014】
請求項9に係る3次元位置情報復元装置は、請求項1〜請求項8のいずれかに記載のものにおいて、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段が、復元可能な特徴点数と画像数の数理的関係に基づき特徴点数の変化に対応して画像数を増減することを特徴とするものである。
【0015】
請求項10に係る3次元位置情報復元装置は、請求項1〜請求項9のいずれかに記載のものにおいて、射影復元部の射影復元処理と、自己校正部の自己校正処理と、補正部の判定除去処理とを複数の並列度により構成したことを特徴とするものである。
【0016】
請求項11に係る3次元位置情報復元装置は、カメラにより撮像した複数の連続する二次元画像を元にして、撮像対象となる情景中の3次元位置を復元する方法であって、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程と、連続する所定数の二次元画像を各特徴点毎に分配する過程と、各特徴点毎の連続する所定数の二次元画像について各特徴点毎の3次元位置Xα′とカメラの位置Πκ′を射影復元する射影復元過程と、前記射影復元過程により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを求める自己校正過程とを有することを特徴とするものである。
【0017】
請求項12に係る3次元位置情報復元方法は、請求項11に記載のものにおいて、射影復元過程において3次元位置Xα′を計算するに際して、
画像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数8】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数9】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算する
Xκα=(pα,uκ), k=1〜4
ことを特徴とするものである。
【0018】
請求項13に係る3次元位置情報復元方法は、請求項11に記載のものにおいて、自己校正過程において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、射影復元過程により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とするものである。
【0019】
請求項14に係る3次元位置情報復元方法は、請求項11に記載のものにおいて、射影復元過程において3次元位置Xα′を計算するに際して、
像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数10】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数11】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算し、
Xκα=(pα,uκ), k=1〜4
自己校正過程において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、
射影復元過程により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とするものである。
【0020】
請求項15に係る3次元位置情報復元方法は、請求項11〜請求項14のいずれかに記載のものであって、射影復元過程により求めた3次元位置Xα′について自己校正過程において求めた数学的に正しいが物理的に偽の3次元位置情報を判定して除去する補正過程とを有することを特徴とするものである。
【0021】
請求項16に係る3次元位置情報復元方法は、請求項11に記載のものにおいて、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程が、特徴点の追跡の誤対応の可能性に重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とするものである。
【0022】
請求項17に係る3次元位置情報復元方法は、請求項11に記載のものにおいて、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程が、時刻t+Δtと時刻tの画像I(x,t+Δt),I(x,t)を用いて所定数の段階の詳細度dを持つ画像Id(xd,t),Id(xd,t+Δt)を作成し、詳細度が粗い順に、特徴点の追跡の誤対応の可能性に重み係数を計算し、当該重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とするものである。
【0023】
請求項18に係る3次元位置情報復元方法は、請求項15に記載のものにおいて、射影復元過程の射影復元処理と、自己校正過程の自己校正処理と、補正過程の判定除去処理とをパイプライン化することを特徴とするものである。
【0024】
請求項19に係る3次元位置情報復元方法は、請求項11〜請求項18のいずれかに記載のものにおいて、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程が、復元可能な特徴点数と画像数の数理的関係に基づき特徴点数の変化に対応して画像数を増減することを特徴とするものである。
【0025】
請求項20に係る3次元位置情報復元方法は、射影復元過程の射影復元処理と、自己校正過程の自己校正処理と、補正過程の判定除去処理とを複数の並列度により構成することを特徴とするものである。
【発明の効果】
【0026】
請求項1に係る3次元位置情報復元装置によると、複数の連続する二次元画像を元にして、撮像対象となる情景中の3次元位置情報を復元するに際し、3次元復元処理を「射影復元処理」と「自己校正処理」に分解して処理することにより、計算量の削減を図り3次元座標位置を高速かつ正確に復元することができる。
【0027】
請求項2に係る3次元位置情報復元装置によると、射影復元において、特徴点数Nと画像の枚数Mが増大したとき、計算量および使用メモリ量がN×Mに依存して増加せず一定とすることができる。
【0028】
請求項3に係る3次元位置情報復元装置によると、複数の対象とする画像を撮像したときのカメラの焦点距離や光軸のズレ等の光学的な特性が不明であり、また各々の画像で異なっていても3次元情報の復元が可能とすることができる。
【0029】
請求項4に係る3次元位置情報復元装置によると、復元計算の過程において各々の撮像画像に対応したカメラの焦点距離や光軸のズレ量や、撮像カメラの空間的な位置および姿勢を、正確に推定できる。
【0030】
請求項5に係る3次元位置情報復元装置によると、3次元復元処理が数学的に正しいが実際の3次元情報と異なる偽の3次元復元情報を除去することができる。
【0031】
請求項6に係る3次元位置情報復元装置によると、誤対応の可能性に重み係数を用いて、誤対応の判定誤差を低減することができる。
【0032】
請求項7に係る3次元位置情報復元装置によると、特徴点の追跡処理において詳細度を用いて誤対応の発生を低減することができる。
【0033】
請求項8に係る3次元位置情報復元装置によると、各処理をパイプライン化して行うことができる。
【0034】
請求項9に係る3次元位置情報復元装置によると、復元可能特徴点数と画像数の数理的関係に基づき特徴点数の変化に対応して画像数を増減可能にすることができる。
【0035】
請求項10に係る3次元位置情報復元装置によると、特徴点の増加に対する処理速度の低下を、同一の処理の並列度を増やすことで、対応可能とすることができる。
【0036】
請求項11に係る3次元位置情報復元方法によると、複数の連続する二次元画像を元にして、撮像対象となる情景中の3次元位置情報を復元するに際し、3次元復元処理を「射影復元処理」と「自己校正処理」に分解して処理することにより、計算量の削減を図り3次元座標位置を高速かつ正確に復元することができる。
【0037】
請求項12に係る3次元位置情報復元方法によると、射影復元において、特徴点数Nと画像の枚数Mが増大したとき、計算量および使用メモリ量がN×Mに依存して増加せず一定とすることができる。
【0038】
請求項13に係る3次元位置情報復元方法によると、複数の対象とする画像を撮像したときのカメラの焦点距離や光軸のズレ等の光学的な特性が不明であり、また各々の画像で異なっていても3次元情報の復元が可能とすることができる。
【0039】
請求項14に係る3次元位置情報復元方法によると、復元計算の過程において各々の撮像画像に対応したカメラの焦点距離や光軸のズレ量や、撮像カメラの空間的な位置および姿勢を、正確に推定できる。
【0040】
請求項15に係る3次元位置情報復元方法によると、3次元復元処理が数学的に正しいが実際の3次元情報と異なる偽の3次元復元情報を除去することができる。
【0041】
請求項16に係る3次元位置情報復元方法によると、誤対応の可能性に重み係数を用いて、誤対応の判定誤差を低減することができる。
【0042】
請求項17に係る3次元位置情報復元方法によると、特徴点の追跡処理において詳細度を用いて誤対応の発生を低減することができる。
【0043】
請求項18に係る3次元位置情報復元方法によると、各処理をパイプライン化して行うことができる。
【0044】
請求項19に係る3次元位置情報復元方法によると、復元可能特徴点数と画像数の数理的関係に基づき特徴点数の変化に対応して画像数を増減可能にすることができる。
【0045】
請求項20に係る3次元位置情報復元方法によると、特徴点の増加に対する処理速度の低下を、同一の処理の並列度を増やすことで、対応可能とすることができる。
【実施例1】
【0046】
本発明の実施例を説明する全体の機能ブロック図を図1に、その構成各部の詳細および情報受け渡しを説明する図を図2〜図8に示す。また、そのフロー図を図11〜図20に示す。以下、この図に基づき、作用実施例の詳細な説明を行う。
図1は、本発明の一実施例の構成を示したものである。連続するビデオ画像を入力として検出した特徴点の3次元復元およびカメラ位置の推定を行う実施例を示す。実施例では、特徴点を1000点、追跡画像数を10枚として、対応する画像中の特徴点(二次元)を3次元に復元処理する例を示す。処理対象の特徴点数は、並列処理する処理に応じて増加可能であり、画像数は要求精度が高い場合に対応して増加可能である。
図2は、図1の実施例における処理の詳細を示し、撮像データと特徴点列との対応を表したものである。I(x,t+Δt)に撮像した画像と一フレーム前の画像I(x,t)間で特徴点に対応がとれる可能性があるもので図示されている。Wκα=0が6個以上ある特徴点データ列は、無効として
とされることを示す。
図3は、図1の実施例における処理の詳細を示し、並列処理におけるフレーム数と特徴点の関係を示したものである。
図4は、図1の実施例における処理の詳細を示し、画像蓄積部における輝度計算と画像イメージを示したものである。
図5は、図1の実施例における処理詳細を示し、画像データから特徴点の検出法を示したものである。
図6は、図1の実施例における処理の詳細を示し、対応点の検出および判定を示したものであり、二枚の画像間の想定対応点を比較して誤対応か否かを判定する。
図7は、図1の実施例における処理の詳細を示し、画像分配部の処理を示したものであり、図の処理例では、10画像追跡した1000点の特徴点を100点ずつ並列処理部へ分配することを示す。
図8は、図1の実施例における処理の詳細を示し、並列処理した復元点およびカメラ位置姿勢をシーケンシャルに整理して出力する処理を示す。
図1において、101は撮像装置、102は画像蓄積部、103は特徴点追跡部、104は分配部、105は3次元復元部、106は統合部である。
特徴点追跡部103は、特徴点検出部1031、対応点計算/追跡部1032を備える。
また、3次元復元部105は、射影復元部1051i(i=1〜P)、自己校正部1052i(i=1〜P)、補正部1053i(i=1〜P)に細分され、並列処理の対象として一つの処理部となる。
取り扱う特徴点数が増加した場合、この同一の並列処理部(3次元復元部105)を増やすことにより復元性能の増加を図る。
処理の概要を図1に従い説明する。
撮像部101で連続したフレームの画像が取られ、画像蓄積部102においてグレースケールに変換される。
特徴点検出部1031において、例えば10フレーム間隔で、特徴点として最も良好な性質を持つ複数の画素を特徴点として選択する。以後この特徴点が10枚の画像にわたり追跡点として追跡される。
この複数の追跡ベクトルが、分配部104において並列処理の単位に分解され、3次元復元部105の入力となる特徴点の3次元位置Xα、フレームκにおけるカメラパラメータKκおよびカメラの位置姿勢(Rκtκ)を得る。
統合部106において複数の3次元復元部105からの出力を、一連の順序に従い再配置する。
以下に各機能ブロックの作用、動作の詳細な説明を行う。
【0047】
[1. 画像蓄積の動作の説明:図4]
カメラで得た画像を輝度値によるモノクロ画像に変換する。このときフレーム番号κを連番で割り当てる。
【0048】
[2. 特徴点追跡部103の動作の説明:図5,6]
3次元復元を行うために必要な複数の画像間で特定の特徴点がどのように移動したかの対応付けを行う処理を行う。
この特徴点追跡部103は、追跡点を決める「特徴点の検出」処理を行う特徴点検出部1031と、この特徴点を開始点として二枚の連続する画像間の該当特徴点の追跡を行う「対応点計算および追跡」処理を行う対応点計算/追跡部1032からなる。
(1)特徴点検出:図5 追跡を開始する元となる追跡開始点(画素位置)は手動あるいは自動で発生する。図5の例では、この処理の実行される間隔は、画像枚数例えば10枚毎としている。自動で特徴点を検出する場合は、「特徴量計算」、「特徴量ソート」を経て、「対応点メモリ」に開始点が登録される。以後のフレームからは、この特徴点を追跡の開始点として連続した10枚の画像(例)を追跡する。
(1−1)特徴量計算: 全画素位置x=(x,y)Tに対して、輝度I(x,y)を用いて以下の処理(a)−(b)を行う。
(a)特徴量C(x,y)の計算
Ix=(I(x+1,y)−I(x,y)))/Δx
Iy=(I(x,y+1)−I(x,y)))/Δy
M(x,y)=Σ(Ix,Iy)T(Ix,Iy)
MW=ΣWM(x,y)
C(x,y)=Min(Eigen_value(MW)) (12)
ここにMin(*)は最小値を得ること、(Eigen_value(*))は固有地を得ることをそれぞれ示す。また、Wは対象画像xを中心とした3×3画素の領域を示す。
(b)推測画素が対応するかの判定
最小固有値が閾値λ以下か否かを判断し、閾値以上であれば、C(x,y)と、この値に対応する位置xを後段の処理に出力する。
(1−2)ソート: 送られて来る特徴量C(x,y)をパイプラインソート処理部に入れることによりC(x,y)の大きい順に対応する画像位置xαが「ソート済みメモリ」に格納される。
全画素の処理が終了したとき開始(ENB,xα)がソート順(実施例ではα=1,…,1000)に対応点メモリに格納される。これにより次の画像から、この位置xαを起点として対応点の候補が計算できる。
(2)対応点計算および追跡:図6 「対応点メモリ」にすでに登録されている時刻tの画像における特徴点位置xαを起点として、時刻t+Δtの画像を対象に以下に示す特徴点候補の位置を計算し、特徴量を用いて対応する点か否かを判定する。以下に詳細を示す。
(2−1)勾配計算: 時刻t+Δtと時刻tの画像I(x,t+Δt),I(x,t)を用いて4段階(実施例の場合)の詳細度を持つ画像Id(xd,t),Id(xd,t+Δt)を作成する。ここに添え字dは詳細度を示す。
詳細度dに対応した画像の画素位置xdにおける勾配Gxdは、計算式(13)に示す計算を行うことにより得られる。
Id(xd,t)+Id(xd,t+Δt))/Δx=Gxd
Id(xd,t)+Id(xd,t+Δt))/Δy=Gyd
(Gxd,Gyd)T=Gxd
Id(xd,t+Δt)−Id(xd,t))/Δt=ΔId (13)
これを全ての画素および全ての詳細度に対して行い、結果を「勾配メモリ」に格納する。
(2−2)追跡: κ、FT=0を処理ループのカウンタおよび「対応点メモリ」のアドレスとして以下の処理を、FT≦999,κ≦10まで繰り返す。
「対応点メモリ」に格納されているκおよびFTで指定されたメモリ内の特徴点のENB値が無効
であればFT=FT+1としてメモリ内の次の特徴点を処理の対象とする。
有効であれば、以下の(a)から(b)の処理を行う。
(a)移動ベクトル計算 d=1から4まで以下の計算を行い、各詳細度に対応する移動ベクトルddを求める。
【数12】
但し、Wdは3×3の画素領域を示す。
(b)誤対応検出/重み計算 以下の処理を詳細度が粗い順番(d=4,…,1)に行う。
【数13】
ここにω(Wd)は
となる重みである。
計算結果Errdと予め指定されている誤対応判定の閾値Err_Lvdとの比較を行う。
Errd<Err_Lvd (16)
大きければ、ENB=0として詳細度の繰り返しを抜ける。
小さければ、以下の位置xκαdを計算する。
xκαd =xκαd+dd (17)
詳細度d=d−1として再度、式(15)計算を行う。このとき、d=0であれば、ENB=1として以下の重みを計算する。
Wκα =cos((Err1/2Err_LV1)*π/2*ENB (18)
特徴点番号FT,κを「対応点メモリ」のアドレスとして、特徴点データ(ENB,κ,Wκα,dκd,xκαd:d=1…4)を書き込む。
【0049】
[3. 分配部104の動作の説明: 図7]
特徴点追跡部103の処理が終わった時点で作成される「対応点メモリ」に作成された特徴点追跡データ列から必要なデータを取り出し後段の処理に与える「追跡ベクトルメモリ」(図2,7)を作成する。このときWκα=1の個数が6以下の場合は、追跡ベクトルのENB=0とする。作成された「追跡ベクトルメモリ」の特徴ベクトルを100点単位に分割して、3次元復元部105へ送る。全てを送り終えるとともにトグルスイッチを切り替え、書き込みと読み出しのメモリを反転する。
【0050】
[4. 射影復元部1051の動作の説明]
以下に、本発明による射影復元の手順を示す。以下の説明では座標点は同次座標系を用いている。添え字κは画像番号1〜Mを示し、αは特徴点番号1〜Nを示す。また、表記N[・]は単位ベクトルへの正規化を表し、max[・]は最大値を選択することを示す。
入力:xκα,κ=1,…,M, α=1,…,N
収束判定の最投影誤差Emin
部分空間当てはめの収束判定定数ε
出力:Πκ,κ=1,…,M, Xα,α=1,…,N
[処理手順]
(1)射影的奥行をzκα=1と初期化する。
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして単位ベクトルに正規化する。
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)] (19)
(3)特徴点α=1〜Nに対してpαを求め、次の3M×N行列Pを作る。
P=(p1p2…pN) (20)
(4)行列Pを以下のように特異値分解する。
P=Udiag(σ1,σ2,…)VT (20)
行列Uの最初の4列u1,u2,u3,u4を求める。
(5)3×4の投影行列Πκを次のように計算する。
Πκ = (u1κ u2κ u3κ u4κ)
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算する。
Ckiα=(N[xκα],uik) (23)
(b)次の4×4行列Dα=(Dijα)を計算する。
【数14】
ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα] (25)
このとき、固有値の符号は次のようにする。
【数15】
(d)得られたξαから射影的奥行きzκαを次のように計算する。
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記処理手順(3)の行列Pを再計算する。
(f)3次元位置Xα=(Xκα)を以下のように計算する。
Xκα=(pα,uκ), k=1〜4 (28)
(7)次のように最投影誤差Eを計算する。
【数16】
ただし、Z[・]は第4成分で他の成分を割ることを示す。
誤差の許容基準Eminを用いてE<Eminであれば手続を終了。
(8)次の3M次元ベクトル
を計算する。(κ=1〜4)。
【数17】
(9)
にシュミットの直交化を施したものを
とする。
(10)
を判定する。
条件が成立の場合は、
として前記処理手順(5)
不成立の場合は、
として前記処理手順(8)
【0051】
[5. 自己校正部1052の動作の説明]
射影復元により得られる3次元形状は、元の3次元形状になんらかの射影変換が加わったものであり、真の形状とは異なる。以下の式は、任意のHについて恒等的に成立する。
ΠκXα=ΠκHH−1Xα (31)
従って、前記の射影復元では、カメラモデルΠκとΠκHの差異、およびXαとH−1Xαとの差異がなく任意の値が得られる。射影復元した座標を元に、以下の処理により、正しいカメラモデルΠκと3次元点Xαを得るための射影変換Hを求める。
以下に本発明が示す自己校正部1052の処理手順を示す。
入力:各フレームの光軸点と焦点距離の近似
(uκ0,vκ0),fκ,κ=1,…,M
投影行列Πκ,κ=1,…,M.
出力:射影変換行列H
内部パラメータ行列Kκ,κ=1,…,M.
[処理手順]
(1)次のように初期化する。
【数18】
(2)カメラ内部パラメータKκを以下として、Wκ=1,γκ=1と置く。
【数19】
(3)次のようにQκを定義する。
【数20】
(4)以下の4×4×4×4テンソルA=(Aijkl)を計算する。
【数21】
(5)テンソルAは対称であるので、次の10×10の対称行列Asymに変換する。
(6)行列Asymの固有値問題を解き、最小固有値に対応する10次元の単位固有ベクトルω=(ω1 ω2…ω10)Tを計算する。
(7)以下により仮のωを計算する。
【数22】
(8)Ωの固有値問題を解き、固有値σ1≧σ2≧σ3≧σ4と、それに対応する単位固有ベクトルu1,u2,u3,u4を計算する。
(9)数値的不確かさを排除すればΩがランク3の半正定値である必要があるので以下の計算によりつじつまのあったΩを再計算する。
(10)射影変換Hを以下のように計算する。
(11)次の計算をκ=1,…,Mに渡って行う。
(a)以下からeκ(ij)を計算し、それを用いたFκを計算する。
【数23】
【数24】
(b)cκ(33)>0かつFκ>0であれば以下によりσを計算する。
さらにJκを次のように計算する。
そして、Kκ,γκを次のように更新する。
(c)条件が不成立であればJκ=∞
(12)メジアンを計算する。
(13)Jmed〜0であればH,Kκを返して終了。
(14)
ならば以下を返して終了。
(15)上記条件が成立しない場合は、次のように更新して処理手順(3)に戻る。
【0052】
[6. 3次元点の補正部1053の動作の説明]
以下に、本発明が示す補正部1053による3次元点の補正を示す。
入力:射影復元座標Xα,α=1,…,N
投影行列Πκ,κ=1,…,M
射影変換行列H、内部パラメータ行列Kκ
出力:3次元座標(Xα,Yα,Zα)T,α=1,…,N.
カメラ相対回転Rκ、カメラ相対位置tκ
内部パラメータ行列Kκ
[処理手順]
(1)次の計算によりRκおよびtκを求める。
(a)(Rκ′tκ)の計算
(b)Rκ′の正規化R′の各列のベクトルを単位ベクトルとする。また、detR′>0となるように各ベクトルの符号をあわせる。
(c)Rκの計算
以下のように特異値分解を行う。
Rκ′=diag(λ1,λ2,λ3)VT
以下のように補正する。
R=UVT
(2)射影変換Hと射影復元座標Xα,α=1,…,Nを用いて3次元復元値
を次の計算で得る。
(a)3次元点の暫定計算
【数25】
(b)補正:カメラ後方点の補正
【数26】
以下の関係成立の可否判定
関係が不成立の場合は以下の計算を行う。
tκ←−tκ κ=1,…,M
Xα=−Xα,Yα=−Yα,Zα=−Zα.
【0053】
[7. 統合部106の動作の説明]
並列処理されて前段の補正部1053から複数同時に出力される3次元復元点Xα、カメラパラメータKκ、姿勢(Rκtκ)の系列をカテゴリに分ける。またこのとき、3次元復元データに関しては特徴点の番号に従い一列に順序化する。カメラパラメータ、姿勢に関してはフレームの順に並べる。
【0054】
本発明は、画像上の対象点を高速に(ビデオの撮像と同じ速さ)3次元復元できるため、コンピュータグラフィックにおけるモデルデータの自動作成、地図情報の自動作成、形状を認識できるので任意の形状のスクリーンへの投影に伴う歪み補正に適用可能となる。また、撮像カメラの位置姿勢が計測可能であるため、視角誘導や星を用いたナビゲーションなどにも応用することができる。
【0055】
[他の用途への転用例の説明]
(a)複数カメラから撮像した映像の単一映像への高速な連続合成。
(b)カメラ位置が得られることにより、複数の相対位置姿勢の検出(姿勢制御への応用)
【図面の簡単な説明】
【0056】
【図1】3次元位置情報復元装置の一実施例の機能ブロック図である。(実施例1)
【図2】撮像データと特徴点列との対応を示す図である。
【図3】並列処理における時刻と特徴点の関係を示す図である。
【図4】画像蓄積部における輝度計算と画像イメージを示した図である。
【図5】画像データから特徴点の検出法を示した図である。
【図6】特徴点追跡部の対応点計算および追跡を説明する図である。
【図7】画像分配部の処理を説明する図である。
【図8】統合部の処理を説明する図である。
【図9】従来の3次元位置情報復元を説明する機能ブロックである。
【図10】3次元点と撮像点との対応を説明する図である。
【図11】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図12】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図13】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図14】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図15】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図16】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図17】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図18】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図19】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図20】3次元位置情報復元方法の一実施例を説明するフロー図である。
【符号の説明】
【0057】
101…撮像装置、102…画像蓄積部、103…特徴点追跡部、1031…特徴点検出部、1032…対応点計算/追跡部、104…分配部、105…3次元復元部、1051…射影復元部、1052…自己校正部、1053…補正部、106…統合部。
【技術分野】
【0001】
本発明は、複数の二次元画像から注目する特徴点の3次元位置を高速に復元してコンピュータグラフィックスにおけるポリゴンデータの自動生成や複合現実感などの分野に応用可能とする装置およびその方法に関するものである。
【背景技術】
【0002】
図9は従来の3次元位置情報復元処理の概要構成を示す機能ブロック図である。901は撮像部、902は対応点検出部、903は疑似透視投影による因子分解部であり、対応点検出部902と因子分解部903とにおける処理ステップにより、擬似的に3次元点を得る。具体的には、撮像部901で撮像した複数の画像の対応点をとり、その対応点から3次元点を復元する。このとき、撮像部901を構成するカメラの内部パラメータが前もって分かっていることが必要である。
また、3次元復元処理は、カメラモデルを平行投影や弱透視投影(図10(b)に示す。)に限り、擬似的に3次元復元する手法である因子分解法あるいはこの改良型が主流である。このため復元精度が低い。
さらに、従来法は、画像数と特徴点数が増加した場合、因子分解法の処理に必要な画像中の特徴点列から作るモーメント行列の次数が急激に増加するので、処理メモリが急激に増加する手法である。
【0003】
以下、画像をκ、その中の対応点をαとして従来技術の作用および動作を説明する。
特徴点xκαを元に特徴点ベクトルPκαを以下のように作る。
Pκα=(x1αT,…xMαT)T (1)
重心ベクトルPCを以下のように作成する。
【数1】
以下の計算を行いモーメント行列W(2M×N行列)を作る。
Pα′=Pα−PC
W=(P1′,…,PN′) (3)
Wを用い低下のように特異値分解を行い行列UとVを求める。
W=UDVT (4)
このVを用いて、以下の式により擬似的な3次元位置Xαが求まる。
(X1X2…XN)=(v1v2v3)T (5)
但し、
V=(v1v2v3v4) (6)
である。
【発明の開示】
【発明が解決しようとする課題】
【0004】
解決しようとする課題は、透視投影カメラモデル(図10(b))に基づいた擬似的でない正確な3次元位置情報復元装置および方法を提供することである。
また、従来法においては、平行投影のカメラモデルでも画像数Mと特徴点をNとしたとき、このM×Nの値が増加することにより、速度低下および使用メモリの増加をきたしている。本発明が解決しようとする他の課題は、画像数や点数によらず一定のメモリで3次元復元問題が解けるような計算手法を実現する装置および方法を提供することにある。
すなわち、従来法は、カメラモデルを平行投影することによる計算法であるため3次元復元の精度が悪い。また、従来の因子分解法による計算処理法は、画像数Mと対象点Nに依存する。このため実用的なサイズでは計算が遅くなりメモリサイズの制限から実用的なサイズの点数の復元が行えなかった。このため、復元をビデオレートで行うためには処理装置の規模が大きくなり経済的な制約から実用的なものができていない。
因子分解法は、基本的に特異値分解を行うことに結びつくため、画像数Mと一画像当たりの特徴点数Nの積である2M×N行列の特異値問題を解く必要がある。点数が少ない場合は実用に耐えるが、10枚の画像と1000点の特徴点数を例に考えた場合、105要素数の行列を扱う必要がある。
また、復元データが疑似透視投影に基づくため、復元した3次元データの精度が悪い。特に、カメラモデルとして疑似透視投影を用いるため近距離での復元精度に問題がある。
従って、本発明は、カメラモデルとして平行投影を仮定して複数の連続する画像から3次元位置を得る従来の擬似的な3次元復元でなく、カメラモデルとして透視投影を仮定して正確な3次元復元を高速で行う装置および手法を提供することである。
【課題を解決するための手段】
【0005】
以下の式(7)は、3次元位置Xαがκ画像の対応する2次元の点xκαに、カメラ投影行列(プロジェクションマトリクス)Πκを用いて変換される関係を示したものである。図10に対応の模式図を示す。
【数2】
また、カメラ投影行列Πκは、カメラパラメータKκカメラの位置tκおよびRκを用いて以下のように表される。
Πκ=Kκ(Rκtκ) (8)
また、カメラパラメータKκは以下である。
【数3】
この式(7)を満足する、未知のXα,Πκを既知のxκαを用いて求めることが3次元復元である。
このためには、まずこの式(7)を仮に満たすΠκ′とXα′を求める。これを射影復元と呼ぶ。これには複数の画像間で対応する点xκαを縦に積んで作成した特徴点ベクトルP=(x1αT,…,xMαT)Tがランク4の制約を持つことを利用して、実施例の射影復元に示す方法で射影復元する。
次に、これを正しいΠκとXαに変換する。自己構成と呼ぶ。両者の間にはΠκ′=ΠκH,Xα′=H−1Xαの関係があり、このHが射影復元の不定性である。これには、
Πκ=Kκ(Rκtκ) (10)
が
Πκdiag(1,1,1,0)ΠκT=KκKκT (11)
となる性質を拘束条件に利用して、実施例の自己校正処理に示す方法でHおよびKκを得ることにより、正しい3次元復元を行う。
【0006】
すなわち、上記課題を解決するため請求項1に係る3次元位置情報復元装置は、カメラにより撮像した複数の連続する二次元画像を元にして、撮像対象となる情景中の3次元位置を復元する装置であって、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段と、連続する所定数の二次元画像を各特徴点毎に分配する手段と、各特徴点毎の連続する所定数の二次元画像について各特徴点毎の3次元位置Xα′とカメラの位置Πκ′を射影復元する射影復元部と、前記射影復元部により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを求める自己校正部とを有することを特徴とするものである。
【0007】
請求項2に係る3次元位置情報復元装置は、請求項1に記載のものにおいて、射影計算部において3次元位置Xα′を計算するに際して、画像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数4】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数5】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算する
Xκα=(pα,uκ), k=1〜4
ことを特徴とするものである。
【0008】
請求項3に係る3次元位置情報復元装置は、請求項1に記載のものにおいて、自己校正部において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、射影復元部により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とするものである。
【0009】
請求項4に係る3次元位置情報復元装置は、請求項1に記載のものにおいて、射影計算部において3次元位置Xα′を計算するに際して、画像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数6】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数7】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算し、
Xκα=(pα,uκ), k=1〜4
自己校正部において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、
射影復元部により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とするものである。
【0010】
請求項5に係る3次元位置情報復元装置は、請求項1〜請求項4のいずれかに記載のものであって、射影復元部により求めた3次元位置Xα′について自己校正部において求めた数学的に正しいが物理的に偽の3次元位置情報を判定して除去する補正部とを有することを特徴とするものである。
【0011】
請求項6に係る3次元位置情報復元装置は、請求項1に記載のものにおいて、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段が、特徴点の追跡の誤対応の可能性に重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とするものである。
【0012】
請求項7に係る3次元位置情報復元装置は、請求項1に記載のものにおいて、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段が、時刻t+Δtと時刻tの画像I(x,t+Δt),I(x,t)を用いて所定数の段階の詳細度dを持つ画像Id(xd,t),Id(xd,t+Δt)を作成し、詳細度が粗い順に、特徴点の追跡の誤対応の可能性に重み係数を計算し、当該重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とするものである。
【0013】
請求項8に係る3次元位置情報復元装置は、請求項5に記載のものにおいて、射影復元部の射影復元処理と、自己校正部の自己校正処理と、補正部の判定除去処理とをパイプライン化することを特徴とするものである。
【0014】
請求項9に係る3次元位置情報復元装置は、請求項1〜請求項8のいずれかに記載のものにおいて、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段が、復元可能な特徴点数と画像数の数理的関係に基づき特徴点数の変化に対応して画像数を増減することを特徴とするものである。
【0015】
請求項10に係る3次元位置情報復元装置は、請求項1〜請求項9のいずれかに記載のものにおいて、射影復元部の射影復元処理と、自己校正部の自己校正処理と、補正部の判定除去処理とを複数の並列度により構成したことを特徴とするものである。
【0016】
請求項11に係る3次元位置情報復元装置は、カメラにより撮像した複数の連続する二次元画像を元にして、撮像対象となる情景中の3次元位置を復元する方法であって、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程と、連続する所定数の二次元画像を各特徴点毎に分配する過程と、各特徴点毎の連続する所定数の二次元画像について各特徴点毎の3次元位置Xα′とカメラの位置Πκ′を射影復元する射影復元過程と、前記射影復元過程により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを求める自己校正過程とを有することを特徴とするものである。
【0017】
請求項12に係る3次元位置情報復元方法は、請求項11に記載のものにおいて、射影復元過程において3次元位置Xα′を計算するに際して、
画像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数8】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数9】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算する
Xκα=(pα,uκ), k=1〜4
ことを特徴とするものである。
【0018】
請求項13に係る3次元位置情報復元方法は、請求項11に記載のものにおいて、自己校正過程において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、射影復元過程により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とするものである。
【0019】
請求項14に係る3次元位置情報復元方法は、請求項11に記載のものにおいて、射影復元過程において3次元位置Xα′を計算するに際して、
像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数10】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数11】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算し、
Xκα=(pα,uκ), k=1〜4
自己校正過程において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、
射影復元過程により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とするものである。
【0020】
請求項15に係る3次元位置情報復元方法は、請求項11〜請求項14のいずれかに記載のものであって、射影復元過程により求めた3次元位置Xα′について自己校正過程において求めた数学的に正しいが物理的に偽の3次元位置情報を判定して除去する補正過程とを有することを特徴とするものである。
【0021】
請求項16に係る3次元位置情報復元方法は、請求項11に記載のものにおいて、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程が、特徴点の追跡の誤対応の可能性に重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とするものである。
【0022】
請求項17に係る3次元位置情報復元方法は、請求項11に記載のものにおいて、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程が、時刻t+Δtと時刻tの画像I(x,t+Δt),I(x,t)を用いて所定数の段階の詳細度dを持つ画像Id(xd,t),Id(xd,t+Δt)を作成し、詳細度が粗い順に、特徴点の追跡の誤対応の可能性に重み係数を計算し、当該重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とするものである。
【0023】
請求項18に係る3次元位置情報復元方法は、請求項15に記載のものにおいて、射影復元過程の射影復元処理と、自己校正過程の自己校正処理と、補正過程の判定除去処理とをパイプライン化することを特徴とするものである。
【0024】
請求項19に係る3次元位置情報復元方法は、請求項11〜請求項18のいずれかに記載のものにおいて、各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程が、復元可能な特徴点数と画像数の数理的関係に基づき特徴点数の変化に対応して画像数を増減することを特徴とするものである。
【0025】
請求項20に係る3次元位置情報復元方法は、射影復元過程の射影復元処理と、自己校正過程の自己校正処理と、補正過程の判定除去処理とを複数の並列度により構成することを特徴とするものである。
【発明の効果】
【0026】
請求項1に係る3次元位置情報復元装置によると、複数の連続する二次元画像を元にして、撮像対象となる情景中の3次元位置情報を復元するに際し、3次元復元処理を「射影復元処理」と「自己校正処理」に分解して処理することにより、計算量の削減を図り3次元座標位置を高速かつ正確に復元することができる。
【0027】
請求項2に係る3次元位置情報復元装置によると、射影復元において、特徴点数Nと画像の枚数Mが増大したとき、計算量および使用メモリ量がN×Mに依存して増加せず一定とすることができる。
【0028】
請求項3に係る3次元位置情報復元装置によると、複数の対象とする画像を撮像したときのカメラの焦点距離や光軸のズレ等の光学的な特性が不明であり、また各々の画像で異なっていても3次元情報の復元が可能とすることができる。
【0029】
請求項4に係る3次元位置情報復元装置によると、復元計算の過程において各々の撮像画像に対応したカメラの焦点距離や光軸のズレ量や、撮像カメラの空間的な位置および姿勢を、正確に推定できる。
【0030】
請求項5に係る3次元位置情報復元装置によると、3次元復元処理が数学的に正しいが実際の3次元情報と異なる偽の3次元復元情報を除去することができる。
【0031】
請求項6に係る3次元位置情報復元装置によると、誤対応の可能性に重み係数を用いて、誤対応の判定誤差を低減することができる。
【0032】
請求項7に係る3次元位置情報復元装置によると、特徴点の追跡処理において詳細度を用いて誤対応の発生を低減することができる。
【0033】
請求項8に係る3次元位置情報復元装置によると、各処理をパイプライン化して行うことができる。
【0034】
請求項9に係る3次元位置情報復元装置によると、復元可能特徴点数と画像数の数理的関係に基づき特徴点数の変化に対応して画像数を増減可能にすることができる。
【0035】
請求項10に係る3次元位置情報復元装置によると、特徴点の増加に対する処理速度の低下を、同一の処理の並列度を増やすことで、対応可能とすることができる。
【0036】
請求項11に係る3次元位置情報復元方法によると、複数の連続する二次元画像を元にして、撮像対象となる情景中の3次元位置情報を復元するに際し、3次元復元処理を「射影復元処理」と「自己校正処理」に分解して処理することにより、計算量の削減を図り3次元座標位置を高速かつ正確に復元することができる。
【0037】
請求項12に係る3次元位置情報復元方法によると、射影復元において、特徴点数Nと画像の枚数Mが増大したとき、計算量および使用メモリ量がN×Mに依存して増加せず一定とすることができる。
【0038】
請求項13に係る3次元位置情報復元方法によると、複数の対象とする画像を撮像したときのカメラの焦点距離や光軸のズレ等の光学的な特性が不明であり、また各々の画像で異なっていても3次元情報の復元が可能とすることができる。
【0039】
請求項14に係る3次元位置情報復元方法によると、復元計算の過程において各々の撮像画像に対応したカメラの焦点距離や光軸のズレ量や、撮像カメラの空間的な位置および姿勢を、正確に推定できる。
【0040】
請求項15に係る3次元位置情報復元方法によると、3次元復元処理が数学的に正しいが実際の3次元情報と異なる偽の3次元復元情報を除去することができる。
【0041】
請求項16に係る3次元位置情報復元方法によると、誤対応の可能性に重み係数を用いて、誤対応の判定誤差を低減することができる。
【0042】
請求項17に係る3次元位置情報復元方法によると、特徴点の追跡処理において詳細度を用いて誤対応の発生を低減することができる。
【0043】
請求項18に係る3次元位置情報復元方法によると、各処理をパイプライン化して行うことができる。
【0044】
請求項19に係る3次元位置情報復元方法によると、復元可能特徴点数と画像数の数理的関係に基づき特徴点数の変化に対応して画像数を増減可能にすることができる。
【0045】
請求項20に係る3次元位置情報復元方法によると、特徴点の増加に対する処理速度の低下を、同一の処理の並列度を増やすことで、対応可能とすることができる。
【実施例1】
【0046】
本発明の実施例を説明する全体の機能ブロック図を図1に、その構成各部の詳細および情報受け渡しを説明する図を図2〜図8に示す。また、そのフロー図を図11〜図20に示す。以下、この図に基づき、作用実施例の詳細な説明を行う。
図1は、本発明の一実施例の構成を示したものである。連続するビデオ画像を入力として検出した特徴点の3次元復元およびカメラ位置の推定を行う実施例を示す。実施例では、特徴点を1000点、追跡画像数を10枚として、対応する画像中の特徴点(二次元)を3次元に復元処理する例を示す。処理対象の特徴点数は、並列処理する処理に応じて増加可能であり、画像数は要求精度が高い場合に対応して増加可能である。
図2は、図1の実施例における処理の詳細を示し、撮像データと特徴点列との対応を表したものである。I(x,t+Δt)に撮像した画像と一フレーム前の画像I(x,t)間で特徴点に対応がとれる可能性があるもので図示されている。Wκα=0が6個以上ある特徴点データ列は、無効として
とされることを示す。
図3は、図1の実施例における処理の詳細を示し、並列処理におけるフレーム数と特徴点の関係を示したものである。
図4は、図1の実施例における処理の詳細を示し、画像蓄積部における輝度計算と画像イメージを示したものである。
図5は、図1の実施例における処理詳細を示し、画像データから特徴点の検出法を示したものである。
図6は、図1の実施例における処理の詳細を示し、対応点の検出および判定を示したものであり、二枚の画像間の想定対応点を比較して誤対応か否かを判定する。
図7は、図1の実施例における処理の詳細を示し、画像分配部の処理を示したものであり、図の処理例では、10画像追跡した1000点の特徴点を100点ずつ並列処理部へ分配することを示す。
図8は、図1の実施例における処理の詳細を示し、並列処理した復元点およびカメラ位置姿勢をシーケンシャルに整理して出力する処理を示す。
図1において、101は撮像装置、102は画像蓄積部、103は特徴点追跡部、104は分配部、105は3次元復元部、106は統合部である。
特徴点追跡部103は、特徴点検出部1031、対応点計算/追跡部1032を備える。
また、3次元復元部105は、射影復元部1051i(i=1〜P)、自己校正部1052i(i=1〜P)、補正部1053i(i=1〜P)に細分され、並列処理の対象として一つの処理部となる。
取り扱う特徴点数が増加した場合、この同一の並列処理部(3次元復元部105)を増やすことにより復元性能の増加を図る。
処理の概要を図1に従い説明する。
撮像部101で連続したフレームの画像が取られ、画像蓄積部102においてグレースケールに変換される。
特徴点検出部1031において、例えば10フレーム間隔で、特徴点として最も良好な性質を持つ複数の画素を特徴点として選択する。以後この特徴点が10枚の画像にわたり追跡点として追跡される。
この複数の追跡ベクトルが、分配部104において並列処理の単位に分解され、3次元復元部105の入力となる特徴点の3次元位置Xα、フレームκにおけるカメラパラメータKκおよびカメラの位置姿勢(Rκtκ)を得る。
統合部106において複数の3次元復元部105からの出力を、一連の順序に従い再配置する。
以下に各機能ブロックの作用、動作の詳細な説明を行う。
【0047】
[1. 画像蓄積の動作の説明:図4]
カメラで得た画像を輝度値によるモノクロ画像に変換する。このときフレーム番号κを連番で割り当てる。
【0048】
[2. 特徴点追跡部103の動作の説明:図5,6]
3次元復元を行うために必要な複数の画像間で特定の特徴点がどのように移動したかの対応付けを行う処理を行う。
この特徴点追跡部103は、追跡点を決める「特徴点の検出」処理を行う特徴点検出部1031と、この特徴点を開始点として二枚の連続する画像間の該当特徴点の追跡を行う「対応点計算および追跡」処理を行う対応点計算/追跡部1032からなる。
(1)特徴点検出:図5 追跡を開始する元となる追跡開始点(画素位置)は手動あるいは自動で発生する。図5の例では、この処理の実行される間隔は、画像枚数例えば10枚毎としている。自動で特徴点を検出する場合は、「特徴量計算」、「特徴量ソート」を経て、「対応点メモリ」に開始点が登録される。以後のフレームからは、この特徴点を追跡の開始点として連続した10枚の画像(例)を追跡する。
(1−1)特徴量計算: 全画素位置x=(x,y)Tに対して、輝度I(x,y)を用いて以下の処理(a)−(b)を行う。
(a)特徴量C(x,y)の計算
Ix=(I(x+1,y)−I(x,y)))/Δx
Iy=(I(x,y+1)−I(x,y)))/Δy
M(x,y)=Σ(Ix,Iy)T(Ix,Iy)
MW=ΣWM(x,y)
C(x,y)=Min(Eigen_value(MW)) (12)
ここにMin(*)は最小値を得ること、(Eigen_value(*))は固有地を得ることをそれぞれ示す。また、Wは対象画像xを中心とした3×3画素の領域を示す。
(b)推測画素が対応するかの判定
最小固有値が閾値λ以下か否かを判断し、閾値以上であれば、C(x,y)と、この値に対応する位置xを後段の処理に出力する。
(1−2)ソート: 送られて来る特徴量C(x,y)をパイプラインソート処理部に入れることによりC(x,y)の大きい順に対応する画像位置xαが「ソート済みメモリ」に格納される。
全画素の処理が終了したとき開始(ENB,xα)がソート順(実施例ではα=1,…,1000)に対応点メモリに格納される。これにより次の画像から、この位置xαを起点として対応点の候補が計算できる。
(2)対応点計算および追跡:図6 「対応点メモリ」にすでに登録されている時刻tの画像における特徴点位置xαを起点として、時刻t+Δtの画像を対象に以下に示す特徴点候補の位置を計算し、特徴量を用いて対応する点か否かを判定する。以下に詳細を示す。
(2−1)勾配計算: 時刻t+Δtと時刻tの画像I(x,t+Δt),I(x,t)を用いて4段階(実施例の場合)の詳細度を持つ画像Id(xd,t),Id(xd,t+Δt)を作成する。ここに添え字dは詳細度を示す。
詳細度dに対応した画像の画素位置xdにおける勾配Gxdは、計算式(13)に示す計算を行うことにより得られる。
Id(xd,t)+Id(xd,t+Δt))/Δx=Gxd
Id(xd,t)+Id(xd,t+Δt))/Δy=Gyd
(Gxd,Gyd)T=Gxd
Id(xd,t+Δt)−Id(xd,t))/Δt=ΔId (13)
これを全ての画素および全ての詳細度に対して行い、結果を「勾配メモリ」に格納する。
(2−2)追跡: κ、FT=0を処理ループのカウンタおよび「対応点メモリ」のアドレスとして以下の処理を、FT≦999,κ≦10まで繰り返す。
「対応点メモリ」に格納されているκおよびFTで指定されたメモリ内の特徴点のENB値が無効
であればFT=FT+1としてメモリ内の次の特徴点を処理の対象とする。
有効であれば、以下の(a)から(b)の処理を行う。
(a)移動ベクトル計算 d=1から4まで以下の計算を行い、各詳細度に対応する移動ベクトルddを求める。
【数12】
但し、Wdは3×3の画素領域を示す。
(b)誤対応検出/重み計算 以下の処理を詳細度が粗い順番(d=4,…,1)に行う。
【数13】
ここにω(Wd)は
となる重みである。
計算結果Errdと予め指定されている誤対応判定の閾値Err_Lvdとの比較を行う。
Errd<Err_Lvd (16)
大きければ、ENB=0として詳細度の繰り返しを抜ける。
小さければ、以下の位置xκαdを計算する。
xκαd =xκαd+dd (17)
詳細度d=d−1として再度、式(15)計算を行う。このとき、d=0であれば、ENB=1として以下の重みを計算する。
Wκα =cos((Err1/2Err_LV1)*π/2*ENB (18)
特徴点番号FT,κを「対応点メモリ」のアドレスとして、特徴点データ(ENB,κ,Wκα,dκd,xκαd:d=1…4)を書き込む。
【0049】
[3. 分配部104の動作の説明: 図7]
特徴点追跡部103の処理が終わった時点で作成される「対応点メモリ」に作成された特徴点追跡データ列から必要なデータを取り出し後段の処理に与える「追跡ベクトルメモリ」(図2,7)を作成する。このときWκα=1の個数が6以下の場合は、追跡ベクトルのENB=0とする。作成された「追跡ベクトルメモリ」の特徴ベクトルを100点単位に分割して、3次元復元部105へ送る。全てを送り終えるとともにトグルスイッチを切り替え、書き込みと読み出しのメモリを反転する。
【0050】
[4. 射影復元部1051の動作の説明]
以下に、本発明による射影復元の手順を示す。以下の説明では座標点は同次座標系を用いている。添え字κは画像番号1〜Mを示し、αは特徴点番号1〜Nを示す。また、表記N[・]は単位ベクトルへの正規化を表し、max[・]は最大値を選択することを示す。
入力:xκα,κ=1,…,M, α=1,…,N
収束判定の最投影誤差Emin
部分空間当てはめの収束判定定数ε
出力:Πκ,κ=1,…,M, Xα,α=1,…,N
[処理手順]
(1)射影的奥行をzκα=1と初期化する。
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして単位ベクトルに正規化する。
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)] (19)
(3)特徴点α=1〜Nに対してpαを求め、次の3M×N行列Pを作る。
P=(p1p2…pN) (20)
(4)行列Pを以下のように特異値分解する。
P=Udiag(σ1,σ2,…)VT (20)
行列Uの最初の4列u1,u2,u3,u4を求める。
(5)3×4の投影行列Πκを次のように計算する。
Πκ = (u1κ u2κ u3κ u4κ)
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算する。
Ckiα=(N[xκα],uik) (23)
(b)次の4×4行列Dα=(Dijα)を計算する。
【数14】
ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα] (25)
このとき、固有値の符号は次のようにする。
【数15】
(d)得られたξαから射影的奥行きzκαを次のように計算する。
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記処理手順(3)の行列Pを再計算する。
(f)3次元位置Xα=(Xκα)を以下のように計算する。
Xκα=(pα,uκ), k=1〜4 (28)
(7)次のように最投影誤差Eを計算する。
【数16】
ただし、Z[・]は第4成分で他の成分を割ることを示す。
誤差の許容基準Eminを用いてE<Eminであれば手続を終了。
(8)次の3M次元ベクトル
を計算する。(κ=1〜4)。
【数17】
(9)
にシュミットの直交化を施したものを
とする。
(10)
を判定する。
条件が成立の場合は、
として前記処理手順(5)
不成立の場合は、
として前記処理手順(8)
【0051】
[5. 自己校正部1052の動作の説明]
射影復元により得られる3次元形状は、元の3次元形状になんらかの射影変換が加わったものであり、真の形状とは異なる。以下の式は、任意のHについて恒等的に成立する。
ΠκXα=ΠκHH−1Xα (31)
従って、前記の射影復元では、カメラモデルΠκとΠκHの差異、およびXαとH−1Xαとの差異がなく任意の値が得られる。射影復元した座標を元に、以下の処理により、正しいカメラモデルΠκと3次元点Xαを得るための射影変換Hを求める。
以下に本発明が示す自己校正部1052の処理手順を示す。
入力:各フレームの光軸点と焦点距離の近似
(uκ0,vκ0),fκ,κ=1,…,M
投影行列Πκ,κ=1,…,M.
出力:射影変換行列H
内部パラメータ行列Kκ,κ=1,…,M.
[処理手順]
(1)次のように初期化する。
【数18】
(2)カメラ内部パラメータKκを以下として、Wκ=1,γκ=1と置く。
【数19】
(3)次のようにQκを定義する。
【数20】
(4)以下の4×4×4×4テンソルA=(Aijkl)を計算する。
【数21】
(5)テンソルAは対称であるので、次の10×10の対称行列Asymに変換する。
(6)行列Asymの固有値問題を解き、最小固有値に対応する10次元の単位固有ベクトルω=(ω1 ω2…ω10)Tを計算する。
(7)以下により仮のωを計算する。
【数22】
(8)Ωの固有値問題を解き、固有値σ1≧σ2≧σ3≧σ4と、それに対応する単位固有ベクトルu1,u2,u3,u4を計算する。
(9)数値的不確かさを排除すればΩがランク3の半正定値である必要があるので以下の計算によりつじつまのあったΩを再計算する。
(10)射影変換Hを以下のように計算する。
(11)次の計算をκ=1,…,Mに渡って行う。
(a)以下からeκ(ij)を計算し、それを用いたFκを計算する。
【数23】
【数24】
(b)cκ(33)>0かつFκ>0であれば以下によりσを計算する。
さらにJκを次のように計算する。
そして、Kκ,γκを次のように更新する。
(c)条件が不成立であればJκ=∞
(12)メジアンを計算する。
(13)Jmed〜0であればH,Kκを返して終了。
(14)
ならば以下を返して終了。
(15)上記条件が成立しない場合は、次のように更新して処理手順(3)に戻る。
【0052】
[6. 3次元点の補正部1053の動作の説明]
以下に、本発明が示す補正部1053による3次元点の補正を示す。
入力:射影復元座標Xα,α=1,…,N
投影行列Πκ,κ=1,…,M
射影変換行列H、内部パラメータ行列Kκ
出力:3次元座標(Xα,Yα,Zα)T,α=1,…,N.
カメラ相対回転Rκ、カメラ相対位置tκ
内部パラメータ行列Kκ
[処理手順]
(1)次の計算によりRκおよびtκを求める。
(a)(Rκ′tκ)の計算
(b)Rκ′の正規化R′の各列のベクトルを単位ベクトルとする。また、detR′>0となるように各ベクトルの符号をあわせる。
(c)Rκの計算
以下のように特異値分解を行う。
Rκ′=diag(λ1,λ2,λ3)VT
以下のように補正する。
R=UVT
(2)射影変換Hと射影復元座標Xα,α=1,…,Nを用いて3次元復元値
を次の計算で得る。
(a)3次元点の暫定計算
【数25】
(b)補正:カメラ後方点の補正
【数26】
以下の関係成立の可否判定
関係が不成立の場合は以下の計算を行う。
tκ←−tκ κ=1,…,M
Xα=−Xα,Yα=−Yα,Zα=−Zα.
【0053】
[7. 統合部106の動作の説明]
並列処理されて前段の補正部1053から複数同時に出力される3次元復元点Xα、カメラパラメータKκ、姿勢(Rκtκ)の系列をカテゴリに分ける。またこのとき、3次元復元データに関しては特徴点の番号に従い一列に順序化する。カメラパラメータ、姿勢に関してはフレームの順に並べる。
【0054】
本発明は、画像上の対象点を高速に(ビデオの撮像と同じ速さ)3次元復元できるため、コンピュータグラフィックにおけるモデルデータの自動作成、地図情報の自動作成、形状を認識できるので任意の形状のスクリーンへの投影に伴う歪み補正に適用可能となる。また、撮像カメラの位置姿勢が計測可能であるため、視角誘導や星を用いたナビゲーションなどにも応用することができる。
【0055】
[他の用途への転用例の説明]
(a)複数カメラから撮像した映像の単一映像への高速な連続合成。
(b)カメラ位置が得られることにより、複数の相対位置姿勢の検出(姿勢制御への応用)
【図面の簡単な説明】
【0056】
【図1】3次元位置情報復元装置の一実施例の機能ブロック図である。(実施例1)
【図2】撮像データと特徴点列との対応を示す図である。
【図3】並列処理における時刻と特徴点の関係を示す図である。
【図4】画像蓄積部における輝度計算と画像イメージを示した図である。
【図5】画像データから特徴点の検出法を示した図である。
【図6】特徴点追跡部の対応点計算および追跡を説明する図である。
【図7】画像分配部の処理を説明する図である。
【図8】統合部の処理を説明する図である。
【図9】従来の3次元位置情報復元を説明する機能ブロックである。
【図10】3次元点と撮像点との対応を説明する図である。
【図11】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図12】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図13】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図14】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図15】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図16】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図17】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図18】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図19】3次元位置情報復元方法の一実施例を説明するフロー図である。
【図20】3次元位置情報復元方法の一実施例を説明するフロー図である。
【符号の説明】
【0057】
101…撮像装置、102…画像蓄積部、103…特徴点追跡部、1031…特徴点検出部、1032…対応点計算/追跡部、104…分配部、105…3次元復元部、1051…射影復元部、1052…自己校正部、1053…補正部、106…統合部。
【特許請求の範囲】
【請求項1】
カメラにより撮像した複数の連続する二次元画像を元にして、撮像対象となる情景中の3次元位置を復元する装置であって、
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段と、
連続する所定数の二次元画像を各特徴点毎に分配する手段と、
各特徴点毎の連続する所定数の二次元画像について各特徴点毎の3次元位置Xα′とカメラの位置Πκ′を射影復元する射影復元部と、
前記射影復元部により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを求める自己校正部とを有することを特徴とする3次元位置情報復元装置。
【請求項2】
射影復元部において3次元位置Xα′を計算するに際して、
画像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
Πκ = (u1κ u2κ u3κ u4κ)
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数1】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数2】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算する
Xκα=(pα,uκ), k=1〜4
ことを特徴とする請求項1に記載の3次元位置情報復元装置。
【請求項3】
自己校正部において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、
射影復元部により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とする請求項1に記載の3次元位置情報復元装置。
【請求項4】
射影復元部において3次元位置Xα′を計算するに際して、
画像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数3】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数4】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算し、
Xκα=(pα,uκ), k=1〜4
自己校正部において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、
射影復元部により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とする請求項1に記載の3次元位置情報復元装置。
【請求項5】
射影復元部により求めた3次元位置Xα′について自己校正部において求めた数学的に正しいが物理的に偽の3次元位置情報を判定して除去する補正部と
を有することを特徴とする請求項1〜請求項4のいずれかに記載の3次元位置情報復元装置。
【請求項6】
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段が、特徴点の追跡の誤対応の可能性に重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とする請求項1記載の3次元位置情報復元装置。
【請求項7】
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段が、時刻t+Δtと時刻tの画像I(x,t+Δt),I(x,t)を用いて所定数の段階の詳細度dを持つ画像Id(xd,t),Id(xd,t+Δt)を作成し、詳細度が粗い順に、特徴点の追跡の誤対応の可能性に重み係数を計算し、当該重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とする請求項1記載の3次元位置情報復元装置。
【請求項8】
射影復元部の射影復元処理と、自己校正部の自己校正処理と、補正部の判定除去処理とをパイプライン化することを特徴とする請求項5に記載の3次元位置情報復元装置。
【請求項9】
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段が、復元可能な特徴点数と画像数の数理的関係に基づき特徴点数の変化に対応して画像数を増減することを特徴とする請求項1〜請求項8のいずれかに記載の3次元位置情報復元装置。
【請求項10】
射影復元部の射影復元処理と、自己校正部の自己校正処理と、補正部の判定除去処理とを複数の並列度により構成したことを特徴とする請求項1〜請求項9のいずれかに記載の3次元位置情報復元装置。
【請求項11】
カメラにより撮像した複数の連続する二次元画像を元にして、撮像対象となる情景中の3次元位置を復元する方法であって、
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程と、
連続する所定数の二次元画像を各特徴点毎に分配する過程と、
各特徴点毎の連続する所定数の二次元画像について各特徴点毎の3次元位置Xα′とカメラの位置Πκ′を射影復元する射影復元過程と、
前記射影復元過程により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを求める自己校正過程とを有することを特徴とする3次元位置情報復元方法。
【請求項12】
射影復元過程において3次元位置Xα′を計算するに際して、
画像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数5】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数6】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算する
Xκα=(pα,uκ), k=1〜4
ことを特徴とする請求項11に記載の3次元位置情報復元方法。
【請求項13】
自己校正過程において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、
射影復元過程により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とする請求項11に記載の3次元位置情報復元方法。
【請求項14】
射影復元過程において3次元位置Xα′を計算するに際して、
画像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数7】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数8】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算し、
Xκα=(pα,uκ), k=1〜4
自己校正過程において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、
射影復元過程により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とする請求項11に記載の3次元位置情報復元方法。
【請求項15】
射影復元過程により求めた3次元位置Xα′について自己校正過程において求めた数学的に正しいが物理的に偽の3次元位置情報を判定して除去する補正過程とを有することを特徴とする請求項11〜請求項14のいずれかに記載の3次元位置情報復元方法。
【請求項16】
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程が、特徴点の追跡の誤対応の可能性に重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とする請求項11記載の3次元位置情報復元方法。
【請求項17】
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程が、時刻t+Δtと時刻tの画像I(x,t+Δt),I(x,t)を用いて所定数の段階の詳細度dを持つ画像Id(xd,t),Id(xd,t+Δt)を作成し、詳細度が粗い順に、特徴点の追跡の誤対応の可能性に重み係数を計算し、当該重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とする請求項11記載の3次元位置情報復元方法。
【請求項18】
射影復元過程の射影復元処理と、自己校正過程の自己校正処理と、補正過程の判定除去処理とをパイプライン化することを特徴とする請求項15に記載の3次元位置情報復元方法。
【請求項19】
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程が、復元可能な特徴点数と画像数の数理的関係に基づき特徴点数の変化に対応して画像数を増減することを特徴とする請求項11〜請求項18のいずれかに記載の3次元位置情報復元方法。
【請求項20】
射影復元過程の射影復元処理と、自己校正過程の自己校正処理と、補正過程の判定除去処理とを複数の並列度により構成することを特徴とする請求項11〜請求項19のいずれかに記載の3次元位置情報復元方法。
【請求項1】
カメラにより撮像した複数の連続する二次元画像を元にして、撮像対象となる情景中の3次元位置を復元する装置であって、
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段と、
連続する所定数の二次元画像を各特徴点毎に分配する手段と、
各特徴点毎の連続する所定数の二次元画像について各特徴点毎の3次元位置Xα′とカメラの位置Πκ′を射影復元する射影復元部と、
前記射影復元部により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを求める自己校正部とを有することを特徴とする3次元位置情報復元装置。
【請求項2】
射影復元部において3次元位置Xα′を計算するに際して、
画像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
Πκ = (u1κ u2κ u3κ u4κ)
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数1】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数2】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算する
Xκα=(pα,uκ), k=1〜4
ことを特徴とする請求項1に記載の3次元位置情報復元装置。
【請求項3】
自己校正部において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、
射影復元部により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とする請求項1に記載の3次元位置情報復元装置。
【請求項4】
射影復元部において3次元位置Xα′を計算するに際して、
画像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数3】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数4】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算し、
Xκα=(pα,uκ), k=1〜4
自己校正部において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、
射影復元部により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とする請求項1に記載の3次元位置情報復元装置。
【請求項5】
射影復元部により求めた3次元位置Xα′について自己校正部において求めた数学的に正しいが物理的に偽の3次元位置情報を判定して除去する補正部と
を有することを特徴とする請求項1〜請求項4のいずれかに記載の3次元位置情報復元装置。
【請求項6】
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段が、特徴点の追跡の誤対応の可能性に重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とする請求項1記載の3次元位置情報復元装置。
【請求項7】
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段が、時刻t+Δtと時刻tの画像I(x,t+Δt),I(x,t)を用いて所定数の段階の詳細度dを持つ画像Id(xd,t),Id(xd,t+Δt)を作成し、詳細度が粗い順に、特徴点の追跡の誤対応の可能性に重み係数を計算し、当該重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とする請求項1記載の3次元位置情報復元装置。
【請求項8】
射影復元部の射影復元処理と、自己校正部の自己校正処理と、補正部の判定除去処理とをパイプライン化することを特徴とする請求項5に記載の3次元位置情報復元装置。
【請求項9】
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する手段が、復元可能な特徴点数と画像数の数理的関係に基づき特徴点数の変化に対応して画像数を増減することを特徴とする請求項1〜請求項8のいずれかに記載の3次元位置情報復元装置。
【請求項10】
射影復元部の射影復元処理と、自己校正部の自己校正処理と、補正部の判定除去処理とを複数の並列度により構成したことを特徴とする請求項1〜請求項9のいずれかに記載の3次元位置情報復元装置。
【請求項11】
カメラにより撮像した複数の連続する二次元画像を元にして、撮像対象となる情景中の3次元位置を復元する方法であって、
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程と、
連続する所定数の二次元画像を各特徴点毎に分配する過程と、
各特徴点毎の連続する所定数の二次元画像について各特徴点毎の3次元位置Xα′とカメラの位置Πκ′を射影復元する射影復元過程と、
前記射影復元過程により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを求める自己校正過程とを有することを特徴とする3次元位置情報復元方法。
【請求項12】
射影復元過程において3次元位置Xα′を計算するに際して、
画像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数5】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数6】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算する
Xκα=(pα,uκ), k=1〜4
ことを特徴とする請求項11に記載の3次元位置情報復元方法。
【請求項13】
自己校正過程において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、
射影復元過程により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とする請求項11に記載の3次元位置情報復元方法。
【請求項14】
射影復元過程において3次元位置Xα′を計算するに際して、
画像番号κ(κ=1,…,M)、特徴点番号α(α=1,…,N)の画素点xκα、その単位ベクトルへの正規化をN[xκα]として
(1)射影的奥行をzκα=1と初期化し、
(2)z1αx1α,z2αx2α,…,zMαxMαを縦に並べて3M次元ベクトルpαとして以下の単位ベクトルに正規化し、
pαT=N[(z1αx1αT,z2αx2αT,…,zMαxMαT)]
(3)特徴点α=1〜Nに対してPαを求め、次の3M×N行列Pを作り、
P=(p1p2…pN)
(4)行列Pを以下のように特異値分解し、
P=Udiag(σ1,σ2,…)VT
行列Uの最初の4列u1,u2,u3,u4を求め、
(5)3×4の投影行列Πκを次のように計算し、
(ただし、u1κはuiの、3(κ−1)+1,3(κ−1)+2,3(κ−1)+3成分を第1,2,3成分とする3次元ベクトルである。)
(6)次の計算をα=1,…,Nに渡って計算し、3次元位置Xαを計算する。
(a) 次のCkiαを(κi)要素とするM×4行列Cαを計算し、
Ckiα=(N[xκα],uik)
(b)次の4×4行列Dα=(Dijα)を計算し、
【数7】
(ただし、計算は行列が対称であるのでi<jの(i,j)要素のみ計算し、i>jの(i,j)要素は(j,i)要素の値をコピーする。)
(c)行列Dαの固有値問題を解き、この最大固有値に対応する単位固有ベクトルμαを求め、これを用いて次の計算によりξαを計算し、
ξα=±N[Cαμα]
(このとき、固有値の符号は次のようにする。
【数8】
(d)得られたξαから射影的奥行きzκαを次のように計算し、
zκα=ξκα/‖xκα‖
(e)得られたzκαを用いてベクトルPαを再計算し、さらに正規化し前記(3)の行列Pを再計算し、
(f)3次元位置Xα=(Xκα)を以下のように計算し、
Xκα=(pα,uκ), k=1〜4
自己校正過程において正しい3次元位置Xαとカメラの位置Πκとを求めるに際して、
射影復元過程により射影復元した3次元位置Xα′とカメラの位置Πκ′とを射影変換行列Hおよびカメラパラメータ行列により正しい3次元位置Xαとカメラの位置Πκとを
Πκ′=ΠκH
Xα′=H−1Xα
より求めることを特徴とする請求項11に記載の3次元位置情報復元方法。
【請求項15】
射影復元過程により求めた3次元位置Xα′について自己校正過程において求めた数学的に正しいが物理的に偽の3次元位置情報を判定して除去する補正過程とを有することを特徴とする請求項11〜請求項14のいずれかに記載の3次元位置情報復元方法。
【請求項16】
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程が、特徴点の追跡の誤対応の可能性に重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とする請求項11記載の3次元位置情報復元方法。
【請求項17】
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程が、時刻t+Δtと時刻tの画像I(x,t+Δt),I(x,t)を用いて所定数の段階の詳細度dを持つ画像Id(xd,t),Id(xd,t+Δt)を作成し、詳細度が粗い順に、特徴点の追跡の誤対応の可能性に重み係数を計算し、当該重み係数を用いて、所定の重み係数が所定数以下の場合に連続する所定数の二次元画像を各特徴点毎に分配することを特徴とする請求項11記載の3次元位置情報復元方法。
【請求項18】
射影復元過程の射影復元処理と、自己校正過程の自己校正処理と、補正過程の判定除去処理とをパイプライン化することを特徴とする請求項15に記載の3次元位置情報復元方法。
【請求項19】
各二次元画像から複数の特徴点を検出し各二次元画像について当該特徴点を追跡する過程が、復元可能な特徴点数と画像数の数理的関係に基づき特徴点数の変化に対応して画像数を増減することを特徴とする請求項11〜請求項18のいずれかに記載の3次元位置情報復元方法。
【請求項20】
射影復元過程の射影復元処理と、自己校正過程の自己校正処理と、補正過程の判定除去処理とを複数の並列度により構成することを特徴とする請求項11〜請求項19のいずれかに記載の3次元位置情報復元方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【公開番号】特開2009−53080(P2009−53080A)
【公開日】平成21年3月12日(2009.3.12)
【国際特許分類】
【出願番号】特願2007−220866(P2007−220866)
【出願日】平成19年8月28日(2007.8.28)
【出願人】(000176730)三菱プレシジョン株式会社 (97)
【出願人】(504147243)国立大学法人 岡山大学 (444)
【Fターム(参考)】
【公開日】平成21年3月12日(2009.3.12)
【国際特許分類】
【出願日】平成19年8月28日(2007.8.28)
【出願人】(000176730)三菱プレシジョン株式会社 (97)
【出願人】(504147243)国立大学法人 岡山大学 (444)
【Fターム(参考)】
[ Back to top ]