【新規性喪失の例外の表示】特許法第30条第2項適用 情報処理学会研究報告 コンピュータビジョンとイメージメディア(CVIM) Vol.2014−CVIM−194 No.21 pp.1−8 に発表
【文献】
Peter Sturm and Srikumar Ramalingam,A Generic Concept for Camera Calibration,Proc. 8th European Conference on Computer Vision (ECCV '04),Springer-Verlag,2004年 5月,pp. 1-13
(58)【調査した分野】(Int.Cl.,DB名)
前記姿勢推定部は、同一画素でサンプリングされた前記較正物体上の位置から、1つの画素に対して2本以上の線分を求め、当該線分に対応する方向ベクトル間の外積を最小化するように前記較正物体の姿勢を推定する請求項1に記載のカメラキャリブレーション装置。
前記対応関係に関する情報と、前記姿勢情報とを用いて、同一画素でサンプリングされた前記較正物体上の位置から、1つの画素に対して2本以上の線分を求め、当該線分に対応する方向ベクトル間の外積に基づくキャリブレーション評価値を求めるキャリブレーション評価部を更に備える請求項1または請求項2に記載のカメラキャリブレーション装置。
【発明を実施するための形態】
【0018】
以下、図面を参照して、本発明の実施形態におけるカメラキャリブレーション装置について説明する。
(第1の実施形態)
まず、第1の実施形態として、1つのカメラにおけるキャリブレーションとして、撮影空間中の光線とカメラで撮影された画像の画素とのマッピングの処理(内部キャリブレーション)について説明する。
図1は、第1の実施形態におけるカメラキャリブレーションが行われる撮影空間を示す図である。
図1に示す通り、カメラ1と撮影空間との間に未知の屈折層2が存在し、撮影空間中に較正物体3、3’が設置されている。ここで、較正物体3’は、較正物体3と同一物体であって、較正物体3の姿勢が変更された後の状態を示すものである。なお、較正物体3として、どのような物体を用いても構わないが、後述する画素と較正物体3上の位置との対応関係が得られるものを使う必要がある。本実施形態においては、較正物体3として、グレイコードを表示する平面ディスプレイなどが用いられる。
【0019】
図2は、第1の実施形態における第1キャリブレーション装置の構成を示すブロック図である。
図2に示すように、第1キャリブレーション装置10は、画像入力部11と、対応関係取得部12と、姿勢推定部13と、光線情報出力部14とを備えている。
図1には、示していないが、第1キャリブレーション装置10は、カメラ1で撮影された画像を入力可能で、入力された画像に対して画像処理を行うコンピュータ端末である。
【0020】
画像入力部11は、較正物体3を撮影した画像(群)を入力する。対応関係取得部12は、画像入力部11により入力された画像中の画素と較正物体3上の位置とを対応付ける情報を取得する。姿勢推定部13は、複数の較正物体3、3’間の相対的な姿勢を推定する。光線情報出力部14は、画素に対して光線を対応付ける。
【0021】
次に、
図2に示す第1キャリブレーション装置10の動作を説明する。
図3は、第1の実施形態における第1キャリブレーション装置10の動作を示すフローチャートである。
まず、画像入力部11は、較正物体3の姿勢を変化させながら撮影した画像群{I
n,m|n=0,…,N−1,m=0,…M
n−1}を入力する(ステップS101)。ここで、入力された画像群中に含まれる較正物体3の姿勢の数をNとし、較正物体3がn番目の姿勢である場合の画像の枚数をM
nとする。ここで、Nは3以上とし、M
nは画素とn番目の姿勢の較正物体3上の位置を対応付けるのに必要な画像の枚数とする。M
nは較正物体3の種類や撮影空間の大きさなどに依存する。
【0022】
次に、対応関係取得部12は、較正物体3の姿勢ごとに、画素と較正物体3上の位置を対応付ける(ステップS102)。具体的には、画像平面上の座標値(画素位置)と、較正物体3上で定義された座標系における座標値を対応付ける。ここでの方法は、較正物体3の種類によって異なる。
【0023】
例えば、較正物体3が、平面ディスプレイで構成されており、かつ、較正物体3が、座標値をエンコードしたグレイコードパターンの系列を表示している場合について説明する。画像入力部11は、グレイコードパターンを表示する較正物体3を、撮影して得た画像群を入力する。対応関係取得部12は、入力された画像群から各画素で撮影された信号の系列を求め、それをデコードすることで、その画素に対応する較正物体3上の座標値を得ることができる。グレイコードを用いた画素と較正物体3の平面上の位置との対応付けに関しては、例えば非特許文献1に詳細が記載されている。
【0024】
ここで、ステップS102の結果として得られる、画素kに対するn番目の姿勢の較正物体3上の点P
k,mの座標値をp
k,n(k=1,…,numPixs,n=1,…,N)で表す。ここで、numPixsは、光線との対応関係を求める画素の数である。
【0025】
各画素と較正物体3上の座標値との対応付けた後、姿勢推定部13は、較正物体3の姿勢に関する情報を推定する(ステップS103)。姿勢推定部13において、どのように較正物体3の姿勢に関する情報を表すかは、限定されるものではない。例えば、較正物体3のある姿勢を基準として、異なる姿勢となる較正物体3’を、基準の姿勢に変換するための回転行列R
nと並進ベクトルt
nとを用いる形式で表しても構わない。以下の説明では、姿勢推定部13は、n=1に対する姿勢を基準とした回転行列と並進ベクトルを用いて姿勢を表現する。
【0026】
この回転行列R
nと並進ベクトルt
nを求める処理では、各画素でサンプリングされる光線は、撮影空間中を直進してきたものであるという性質を用いる。つまり、画素kでサンプリングされた較正物体3上の点が、撮影空間中で同一直線上に存在することを用いる。回転行列R
nと並進ベクトルt
nを用いると、以下の(式1)のように、画素kに対するn番目の姿勢の較正物体3上の座標値p
k,nを、1番目の姿勢に対する座標系(以下、基準座標系と呼ぶ)における座標値P
k,n[1]で表すことができる。
【数1】
【0027】
このとき、基準座標系での線分P
k,lP
k,nの方向ベクトルは以下の(式2)で与えられる。
【数2】
【0028】
画素kでサンプリングされた較正物体3上の点が撮影空間中で同一直線上に存在する場合、姿勢iと姿勢jの方向ベクトルの外積が0となる。つまり、以下の(式3)で示される外積が0となる回転上列と並進ベクトルが求める姿勢となる。
【数3】
【0029】
ここで、×は外積を示し、M
kは座標値p
k,nのみで構成される行列、hは回転行列及び並進ベクトルで構成されるベクトルである。なお、ここで同一直線上に存在する条件が成立するためには、3点以上の点が存在する必要がある。つまり、N≧3である必要がある。ここではN=3として説明を行うが、N>3の場合に拡張可能であることは容易に類推可能である。
【0030】
上記の条件は、画素ごとに得られるため、全てをまとめると下記の(式4)に示す連立方程式が得られる。
【数4】
姿勢推定部13は、この連立方程式を解くことで回転行列と並進ベクトルを求めて、較正物体3の姿勢を推定する。なお、(式4)の連立方程式は、どのような方法を用いて解いても構わない。
【0031】
なお、(式4)に示す連立方程式を解かずに較正物体3の姿勢を求める方法もある。例えば、外積の大きさを最小化するような最適化問題を解くことで較正物体3の姿勢を推定しても構わない。つまり、較正物体3の姿勢を表すベクトルをh^(実際のハット(^)はhの上)とし、画素kでサンプリングされた較正物体3上の点によって構成される線分(2本以上の線分)の外積をg
kで表すと、較正物体3の姿勢を示すベクトルhは次の(式5)に示す最小化問題を解くことで得られる。
【数5】
【0032】
また、外積g
kを用いたGの代わりに、以下の(式6)を用いて、外積のノルムg’
kを用いたG’を最小化することで較正物体3の姿勢を示すベクトルhを求めても構わない。較正物体3の姿勢を示すベクトルhのノルムを用いることで外積の各成分を最小化するのではなく、全成分を効率よく最小化する。これにより、最小化に要する演算量を低下させ、較正物体3の姿勢を示す適切なベクトルhを求めることが可能となる。
【数6】
【0033】
更に、姿勢推定部13は、外積を用いずに方向ベクトルが一致する条件を用いて、較正物体3の姿勢を推定するようにしても構わない。例えば、画素kでサンプリングされた較正物体3上の点の方向ベクトルの差分ベクトルの単位ベクトルd
kとすると、以下の(式7)、(式8)を用いた最小化問題を解くことで、較正物体3の姿勢を示すベクトルhを求めることができる。
【数7】
【0034】
較正物体3の姿勢に関する情報を推定した後、光線情報出力部14は、各画素に対して、その画素でサンプリングされる光線を対応付けた光線情報を生成する(ステップS104)。生成された光線情報は、第1キャリブレーション装置10の出力となる。なお、どのような形で対応付けを表現しても構わない。本実施形態における光線情報は、例えば、各画素をインデックスとし、光線を表す直線の式を返すルックアップテーブルを用いて表したものである。
【0035】
なお、較正物体3の姿勢を推定する処理(ステップS103)が終了した後、キャリブレーションの精度、つまり較正物体3の姿勢の推定の精度を表す評価値を求めても構わない。この評価値は、較正物体3の姿勢の推定が正しく行われたか否かを表すことのできるものであれば、どのような評価値を用いても構わない。評価値の具体例1は、画素ごとに得られる較正物体3上の点で構成される線分の外積のノルムについて、和や最大値、分散を求めて、評価値としたものである。また、評価値の具体例2は、画素ごとに得られる較正物体3上の点で構成される方向ベクトルの差分ベクトルのノルムについて、和や最大値、分散を求めて、評価値としたものである。更に、評価値の具体例3は、各画素に対応付けられた光線と較正物体3上の点の距離について、和や最大値、分散を求めて、評価値としたものである。更に、評価値の具体例4は、各画素に対応付けられた光線と較正物体3上の点の較正物体3平面上での距離について、和や最大値、分散を求めて、評価値としたものである。
【0036】
求めた評価値が予め定められた精度を満たさないことを表す場合、第1キャリブレーション装置10は、別の姿勢の較正物体3’を撮影した画像を追加し、更新された画像群を用いて較正物体3’の姿勢を推定する処理(ステップS103)を再度行っても構わない。
【0037】
なお、画像を追加する際には、どのような姿勢の較正物体3を、撮影した画像を追加しても構わない。例えば、既に入力されている画像群と比較し、同じ較正物体3であって画像上の較正物体3の大きさが大きく異なるような画像を追加しても構わないし、同じ較正物体3であって画像上の較正物体3の大きさは同じだが形状が異なるような画像を追加しても構わない。前者は、既に入力されている画像と比較して、画像を撮影したカメラから較正物体3までの距離が異なるような画像であることを意味する。このような画像を入力することで、より長い経路で光線の直進性を考慮したキャリブレーションが可能となる。一方、後者の画像は、より狭い空間での光線の直進性を考慮した、より頑健なキャリブレーションを行うことが可能となる。
【0038】
なお、新たな画像を追加する際に、過去に取得した画像群を全て蓄積しておくのではなく、画像を入れ替えて画像の総数は変化しないようにしても構わない。画像の総数を一定に保つことで、必要なメモリ量や演算量を一定に保つことが可能となる。
【0039】
上記の説明では、画像入力部11より、入力された画像をすべて用いてキャリブレーション処理が行われるが、入力された画像のうち一部のみを選択して使用するようにしても構わない。例えば、画像入力部11より、入力された画像群に基づいて、カメラ1から較正物体3までの距離が大きく変化するような画像群を選択するようにしても構わないし、カメラ1から較正物体3までの距離は同程度で較正物体3の姿勢が大きく変化するような画像群を選択するようにしても構わない。
【0040】
なお、カメラ1から較正物体3までの距離や較正物体3の姿勢に関する情報を正確に得るためにはキャリブレーションを実施する必要がある。それらの情報は別途与えられても構わないし、画像から推定するようにしても構わない。例えば、画像上の較正物体の大きさを用いて、カメラから較正物体までの距離を推定しても構わないし、画像上での較正物体の形状を比較することで較正物体の姿勢の類似性を推定しても構わない。例えば、対応関係取得部12は、カメラ1から較正物体3までの距離の推定方法として、較正物体3を撮影した画像に対して、較正物体3が撮影されている領域の割合にしたがって、カメラ1から較正物体3までの距離を推定する。また、対応関係取得部12は、較正物体3を撮影した画像群に対して、較正物体3の撮影されている領域の形状の違いにしたがって、カメラ1に対する較正物体3の姿勢の類似度を推定する。次に、対応関係取得部12は、推定した距離、類似度に基づいて、カメラ1からの距離の違いが少なく、カメラ1に対する姿勢が異なる較正物体3を撮影した3枚以上の画像群を選択する。
【0041】
(第2の実施形態)
次に、第2の実施形態として、複数のカメラ間の関係を求めるキャリブレーションについて説明する。具体的には、2つのカメラ間の相対的な位置関係を推定し、各画素にマッピングされた光線に対して、カメラ間で共通の座標系を用いた記述を求めるキャリブレーション(外部キャリブレーション)について説明する。
【0042】
図4は、第2の実施形態におけるカメラキャリブレーションを行う撮影空間を示す図である。
図4に示すように、複数のカメラ1a〜1cと、被写体となる較正物体3a、3a’、3b、3b’との間に未知の屈折層2が存在している。較正物体3a、3a’、3b、3b’は、異なる時刻に設置されていて、1度には1つの較正物体しか存在しないものとする。例えば、較正物体3a’は、較正物体3aの姿勢が変更されたものであり、同様に、較正物体3b’は、較正物体3bの姿勢が変更されたものである。なお、較正物体3a、較正物体3bは、異なる物体であっても同じ物体であってもよい。また、較正物体3a、3bとして、どのような物体を用いても構わないが、画素と較正物体上の位置との対応関係が得られるものを使う必要がある。本実施形態における較正物体3a、較正物体3bは、グレイコードを表示する平面ディスプレイなどが用いられる。
【0043】
なお、複数のカメラ1a〜1cに共通の座標系を用いた記述による光線と画素のマッピングを求める最も簡単な方法として、以下の方法が考えらえる。まず、複数のカメラ1a〜1cの各々は、第1の実施形態に示した第1キャリブレーション装置10の構成を有する。そして、複数のカメラ1a〜1cに対して、同じ較正物体の画像群を入力し、同じ画像の較正物体の姿勢を基準として光線を記述し、画素とのマッピングを求める方法である。本実施形態では、そのような方法がつかえないカメラ間においても、共通の座標系を用いた記述による光線と画素のマッピングを求める方法について説明する。
【0044】
上記最も簡単な方法が適用できない撮影空間として、例えば、
図4に示される撮影空間がある。
図4の撮影空間では、カメラ1aとカメラ1bは、共通の較正物体3aを用いて光線記述と画素からのマッピングを求めることが可能であり、カメラ1bとカメラ1cは、共通の較正物体3bを用いて光線記述と画素からのマッピングを求めることが可能である。しかし、カメラ1aとカメラ1cは、共通の較正物体を撮影することができない状況である。本実施形態では、このような
図4に示される撮影空間に対して、3つのカメラ1a〜1cで共通の座標系を用いた記述による光線と画素のマッピングを求める方法を説明する。
【0045】
図5は、第2の実施形態における第2キャリブレーション装置の構成を示すブロック図である。
図5に示すように、第2キャリブレーション装置20は、光線情報入力部21と、光線情報記憶部22と、カメラ位置情報推定部23と、光線記述変換部24とを備えている。
光線情報入力部21は、カメラの画素ごとに対応付けられた光線の情報(以下、光線情報とする。)を入力する。光線情報記憶部22は、入力されたカメラの画素ごとに対応付けられた光線情報を記憶する。カメラ位置情報推定部23は、光線情報を用いてカメラの位置関係を推定する。光線記述変換部24は、得られたカメラの位置関係に基づいて、光線に対して共通の座標系で表現した記述を求める。
【0046】
次に、第2の実施形態における第2キャリブレーション装置20の動作を説明する。
図6は、第2の実施形態における第2キャリブレーション装置20の動作を示すフローチャートである。
まず、光線情報入力部21は、カメラ対(カメラ1aとカメラ1b又はカメラ1bとカメラ1c)に対して、カメラの画素ごとに対応付けられた光線情報を入力し、光線情報記憶部22に記憶する(ステップS201)。ここで、カメラ対ごとに入力される光線情報は、共通の座標系で記述されている。
【0047】
なお、カメラ対ごとに共通の座標系で記述された光線情報を求める方法は、どのような方法であってもよい。例えば、第1の実施形態で示した第1キャリブレーション装置10を用いて、同じ較正物体の画像群を入力し、同じ画像の較正物体の姿勢を基準として、各カメラにおける画素と光線のマッピングを求めることで、共通の座標系で記述された光線情報を求めることができる。
【0048】
つまり、本実施形態においては、光線情報入力部21は、カメラ1aとカメラ1bに対して共通の座標系で記述された光線と画素とをマッピングする光線情報を入力して、カメラ1bとカメラ1cに対して共通の座標系で記述された光線と画素とをマッピングする光線情報を入力する。
【0049】
次に、カメラ位置情報推定部23は、複数の異なる座標系で表現された光線の記述が与えられた画素の集合{p
k|k=1,…,numCPixs}を求める(ステップS202)。この画素の集合は、カメラ1bの画素のうち、カメラ1aと共通の座標系で表された光線l
12(k)へのマッピングを持つ画素の集合と、カメラ1cと共通の座標系であらわされた光線l
23(k)へのマッピングを持つ画素の集合とを含む。ここで画素p
kに対応するカメラ1aと共通の座標系で表された光線をl
12(k)、カメラ1cと共通の座標系で表された光線をl
23(k)で表す。
【0050】
次に、普通の座標系での光線記述が与えられた画素の集合が得られたら、カメラ位置情報推定部23は、それら座標系間の関係を推定する(ステップS203)。具体的には、下記の(式9)を満たす回転行列Rと並進ベクトルtを求める。なお、この(式9)では、カメラ1aの光線が与えられた座標系を基準としているが、カメラ1cの光線が与えられた座標系を基準としても構わない。
【数8】
【0051】
回転行列Rと並進ベクトルtはどのような方法を用いて求めても構わないが、例えば、参考文献(B. Kamgar-Parsi and B. Kamgar-Parsi, "Algorithms for matching 3D line sets," TPAMI, vol.26, No. 5, pp.582−593, May 2004)の方法を用いて求めることができる。この時、全てのp
kについて上記(式9)を満たす回転行列と並進ベクトルを求めても構わない。しかし、画素の点数が多い場合、演算量が膨大になるほか、誤った光線の情報が含まれていた場合、その影響を受けて推定の精度が低下する。そのため、ステップS203では一部の画素のみを用いて推定するようにしても構わない。
【0052】
一部の画素のみを用いて推定を行った場合、推定された回転行列と並進ベクトルの推定精度を求める。どのような方法を用いて推定精度を表現しても構わない。例えば、推定された回転行列と並進ベクトルを用いて、カメラ1cと共通の座標系で表現されていた較正物体3b上の点q
i(k)を下記の(式10)によって変換して得られる点q’
i(k)と光線l
12(k)との距離の和や最大値、分散を用いても構わない。また、q’
i(k)と光線l
12(k)との較正物体上での距離の和や最大値、分散を用いても構わない。
【数9】
【0053】
さらに、カメラ1aと共通の座標系で表現されていた較正物体3a上の点s
j(k)を下記の(式11)によって変換して得られる点s’
j(k)と光線l
23(k)との距離の和や最大値、分散を用いても構わないし、s’
j(k)と光線l
23(k)との較正物体上での距離の和や最大値、分散を用いても構わない。
【数10】
なお、得られた推定精度が予め定めた閾値を超えていない場合は、別の画素の集合を用いて回転行列と並進ベクトルの推定をやり直す。
【0054】
次に、回転行列と並進ベクトルの推定が終了したら、光線記述変換部24は、得られた回転行列と並進ベクトルを用いて、光線の記述を変換することで、共通の座標系における光線と画素のマッピングを生成して出力する(ステップS204)。具体的には、以下の(式12)にしたがって、カメラ1cと共通の座標系で表された光線群{l
23(m)}に対して、カメラ1aと共通の座標系で表した光線群{l
12(m)}を求めることで変換が行われる。
【数11】
【0055】
(ハードウェアの構成例)
図7は、第1の実施形態における第1キャリブレーション装置10又は第2の実施形態における第2キャリブレーション装置20のハードウェアの構成例を示す図である。
図7に示すように、第1キャリブレーション装置10又は第2キャリブレーション装置20を、コンピュータによって構成する場合のハードウェア構成を示すブロック図である。第1キャリブレーション装置10又は第2キャリブレーション装置20は、プログラムを実行するCPU(Central Processing Unit)100と、CPU100がアクセスするプログラムやデータが格納されるRAM等のメモリ101と、カメラ等からの処理対象の画像信号を入力する画像入力部102と、カメラキャリブレーション処理をCPU100に実行させるソフトウェアプログラムであるカメラキャリブレーションプログラム105が格納されたプログラム記憶装置103と、CPU100がメモリ101にロードされたカメラキャリブレーションプログラム105を実行することにより生成された画素と光線の対応関係を出力する光線情報出力部104とが、バスで接続された構成になっている。
【0056】
なお、画像入力部102は、ディスク装置等により画像信号を記憶し、記憶した画像信号を読み出すことで画像信号を入力する記憶部で構成してもよい。また、光線情報出力部104は、ディスク装置等により画素と光線の対応関係を示す光線情報を記憶する記憶部で構成してもよい。また、バスで接続されたCPUやメモリや補助記憶装置などを備え、カメラキャリブレーションプログラムを実行することによってカメラキャリブレーションを備える装置として機能する。なお、カメラキャリブレーションの各機能の全て又は一部は、ASIC(Application Specific Integrated Circuit)やPLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されてもよい。カメラキャリブレーションプログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。コンピュータ読み取り可能な記録媒体とは、例えばフレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置である。カメラキャリブレーションプログラムは、電気通信回線を介して送信されてもよい。
【0057】
このように、第1の実施形態における第1キャリブレーション装置10又は第2の実施形態における第2キャリブレーション装置20を、コンピュータで実現することができる。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、PLD(Programmable Logic Device)やFPGA(Field Programmable Gate Array)等のハードウェアを用いて実現されるものであってもよい。
【0058】
以上説明したように、光線が撮影空間中で直進することを利用して、複数の姿勢で同一の較正物体を撮影した画像群から、画素と光線の対応関係を生成することにより、カメラと被写体との間に任意の屈折層(未知の屈折層または複雑な形状の屈折層)を含む場合においても、カメラのキャリブレーションを実現することができる。また、カメラと被写体との間に屈折層を含まない空間を通して、被写体を撮影不可能な状況においても、カメラのキャリブレーションを実現することができる。
【0059】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。