図1は、一実施形態に係る幾何検証装置の機能ブロック図である。図示するように、幾何検証装置10は、局所特徴抽出部11、対応取得部12、反復処理部20及び追加処理部30を備える。反復処理部20はさらに、抽出部21、第一評価部22、モデル生成部23、第二評価部24、モデル検証部25、第三評価部26及び判断部27を備える。第一評価部22はさらに、裏返り評価部1、交差評価部2、第一角度評価部3、第一距離評価部4、面積評価部5及び複比評価部16を備える。第二評価部24はさらに、第二角度評価部6及び第二距離評価部7を備える。第三評価部26はさらに、第三角度評価部8及び第三距離評価部9を備える。
図2は、一実施形態に係る幾何検証装置10の動作のフローチャートである。以下、図2の各ステップを説明しながら幾何検証装置10の各部の処理内容を説明するが、その前に当該動作の全体概略を述べると次の通りである。すなわち、図2のフローチャートは、その枠組みとしては周知のRANSACアルゴリズムに即したものとなっており、大きく分けて次の(1)〜(3)のような処理がなされる。(1)ステップS1において局所特徴抽出部11及び対応取得部12がRANSACで対象とする全データを用意し、(2)当該全データから抽出した各ランダムサンプルに対して、反復処理として示されているステップS2〜S9において反復処理部20がRANSACの反復処理を実施し、(3)当該反復処理で得られた一連の結果の中から、ステップS10において判断部27が、最適結果がどれであるかの判断を行い、また、ステップS11において追加処理部30が当該最適結果に基づいた追加処理を行う。
本発明においては特に、上記(2)のRANSACの反復処理の各回において、反復処理部20の第一評価部22、第二評価部24及び第三評価部26が評価を行うことにより、幾何検証の高精度化及び/又は(精度を落とさないうえでの)高速化が可能となる。
なお、図2の実施形態では当該各部22,24,26の全てを適用する場合を説明するが、後述するようにこれらは個別にも適用可能であり、任意の一部分のみを選択して適用することが可能である。例えば第一評価部22のみを適用し、第二評価部24及び第三評価部26を省略するといったことも可能である。また、図2のフローはRANSACに即したものとして説明するが、後述するようにRANSAC系の任意のアルゴリズムに沿って幾何検証装置10は動作することが可能である。
以下、図2の各ステップを説明する。
[ステップS1:局所特徴対応を用意]
ステップS1では、局所特徴抽出部11及び対応取得部12がこの順番で各処理を行うことにより、入力された質問画像及び参照画像から出力として当該両画像の局所特徴の点対応(質問画像の各局所特徴の点と参照画像の各局所特徴の点との間で対応関係を取得したもの)を得てから、ステップS2へと進む。このため、ステップS1では具体的には、各機能部11,12がこの順番に以下のような処理を行う。
ステップS1ではまず、局所特徴抽出部11が、入力された質問画像及び参照画像からそれぞれの局所特徴を抽出して、対応取得部12へと出力する。当該局所特徴の抽出処理は質問画像及び参照画像について共通であり、以下のような特徴点検出処理及び局所特徴抽出処理がこの順番で実施される。
すなわち、まず、入力された画像(参照画像及び質問画像のそれぞれ)から特徴点検出器を用いて特徴点(エッジ等の点)を検出する。さらに、特徴量検出器を用いて検出した特徴点位置における画像の局所的な特徴を局所特徴と呼ばれるベクトル形式で抽出する。局所特徴抽出アルゴリズムには、一般的に知られているSIFT(スケール不変特徴量変換;Scale invariant feature transform)やSURF(Speeded Up Robust Features)、ORB(oriented BRIEF)、FREAK(Fast Retina Keypoint)等を利用することができる。これらの局所特徴は、画像における座標x=(x,y),方向θ,スケールs,及び特徴ベクトルfにより特徴付けられるものとなる。なお、通常では、一枚の画像から検出された特徴群は、プログラム(局所特徴抽出部11を含む幾何検証装置10を実現するプログラム)上では配列に格納され,その配列の添え字を特徴点IDとして識別することができる。
なお、本発明においてエピポーラ幾何をモデルとして利用する場合には、質問画像と当該質問画像に対して正解となる参照画像との間には、当該両画像は同一立体物を別のカメラ配置で撮影したものであるという関係があるものとする。従って、当該両画像よりそれぞれ抽出された同一立体物の同一点に対応する特徴点同士の間には、エピポーラ幾何で与えられる関係があるものとする。ここで、図3を参照して、本発明にて想定している質問画像と対応する正解の参照画像との間にある関係としての、周知のエピポーラ幾何を簡単に説明する。
図3は、質問画像G1と正解の参照画像G2とが、3次元空間にある同一の立体物としての対象物OB1(例えば家屋)を別のカメラ配置で撮影している際に、対象物OB1の複数の特徴点のうち任意の1つの特徴点Pについて、画像G1上の対応点P1と画像G2上の対応点P2とがエピポーラ幾何で説明される関係にあることを示している。ここで、画像G1,G2を互いに別配置で撮影しているカメラのレンズ主点がそれぞれ図示するような点C1,C2である。三角形C1-C2-Pが乗る平面としてエピポーラ平面EPが形成され、直線C1-C2と画像G1,G2との交点がそれぞれエピポーラ点E1,E2であり、特徴点P1,P2はそれぞれ、直線C1-Pと画像G1の交点及び直線C2-Pと画像G2の交点となる。直線E1-P1及び直線E2-P2をエピポーラ線といい、前述の通り物体認識等に適用する場合を考えると、当該エピポーラ線上の曖昧性が存在する。
このようなエピポーラ幾何の関係にある特徴点P1,P2の同次座標をサイズ3×1の行列(縦ベクトル)で表記してx1=(x1,y1,1)T,x2=(x2,y2,1)Tとする(Tは転置演算を表す)と、周知のように、同一点Pに対応する点P1,P2に関して、サイズ3×3の基礎行列F=(Fij)(1≦i,j≦3)を用いてエピポーラ方程式(以下の式(1))が成立する。
また、周知のように、上記の基礎行列Fを具体的に算出するには、同一点Pに対応する点P1,P2の対応組が7組又は8組必要(立体物の点Pとして異なるものが7個又は8個必要)であり、周知の7-pointアルゴリズムや8-pointアルゴリズムを用いて算出することが可能である。以下、図2のステップS1の説明に戻る。
ステップS1では次に、局所特徴抽出部11にて上記のように得られた質問画像及び参照画像の局所特徴から、対応取得部12が当該両画像における局所特徴の対応(局所特徴を有している点の対応)を取得して、当該点対応を図1中に線L1として示すように抽出部21へと出力し、また、当該点対応を図1中に線L2として示しているようにモデル検証部25へと出力する。具体的には、質問画像の各局所特徴と参照画像の各局所特徴との間で、当該局所特徴の構成データである前述の座標x、方向θ、スケールs及び特徴ベクトルfのうち、特徴ベクトルf同士の距離が最小となるようなもの同士に対応関係を設定するようにすればよい。特徴ベクトルf同士の距離にはユークリッド距離その他任意種類の距離の中から、所定種類の距離を用いてよい。最小となった距離が閾値判定で大きいと判定される場合は、当該局所特徴に関して、対応関係は設定しないようにしてもよい。
なお、対応取得部12では上記特徴ベクトルfに基づいて対応関係を設定したものに対してさらに、前掲の非特許文献2に開示の弱幾何検証を行い、当該弱幾何検証をパスしたもののみを抽出部21及びモデル検証部25へと出力するようにしてもよい。弱幾何検証を行うことで、方向θ及び/又はスケールsの特徴点ペア間での差又は比が画像G1,G2間での同一対象物の撮影方向の違いと整合しているような局所特徴のみを選別し、反復処理部20によるRANSACの繰り返し処理の対象となる点対応を予め、インライアである可能性が高いものに絞り込んでおくことができる。
[ステップS2:抽出部21]
ステップS2では、対応取得部12によりステップS1で得られた質問画像と参照画像との間の点対応(1つの質問画像と1つの参照画像との間で複数の点特徴対応が存在する)の中から、抽出部21がランダムに所定数の点対応を抽出して図1中に線L3及びL4で示すように第一評価部22及びモデル生成部23へと出力してから、ステップS3へ進む。
なお、点対応が多数存在する場合その確率は低いが、ステップS2では次のようにしてもよい。すなわち、現在のステップS2が繰り返しステップS2〜S9(反復処理)の繰り返し回数m回目に該当するものであり、いずれかの過去のn回目(n<m)のステップS2において抽出部21が既に抽出したのと同一の抽出結果が現在のn回目において得られた場合、当該同一結果は破棄し、過去に一度も選択されていない結果が得られるまで抽出部21は抽出を繰り返すようにしてもよい。この場合、抽出部21では反復処理の各回における抽出結果を記憶しておくことで、現在の抽出結果が過去の抽出結果のいずれかに一致していないか判定すればよい。
[ステップS3:第一評価部22]
ステップS3では、ステップS2で抽出部21により抽出された所定数のサンプル(所定数の点対応であるが、RANSACアルゴリズムでの処理対象として「サンプル」とも呼ぶ。以下同様。)に関して、その妥当性を第一評価部22が評価し、図1の線L5に示すように当該評価結果を判断部27へと出力してから、ステップS4へと進む。第一評価部22による評価の詳細については後述する。
[ステップS4:モデル生成部23]
ステップS4では、ステップS3で抽出部21により抽出された所定数の点対応を用いて、モデル生成部23が仮のモデルを生成し、図1中に線L6及びL7として示すように当該モデルを第二評価部24及びモデル検証部25と出力してから、ステップS5へと進む。
当該生成する仮のモデルは具体的には、エピポーラ幾何を用いる実施形態の場合には、図3で説明したようなエピポーラ幾何モデルにおける基礎行列Fである。すなわち、選択された所定数の互いに対応する質問画像G1の局所特徴における点座標x1i=(x1i,y1i)(i=1,2,…,k:kは選択された所定数)と参照画像G2の局所特徴における座標x2i=(x2i,y2i) (i=1,2,…,k)とが、同一対象であると想定している立体物の各特徴点P(i)を各画像において撮影したものであるという仮定のもとで、エピポーラ方程式(前述の式(1))に現れる基礎行列Fである。
ここで、「仮の」モデル(基礎行列F)と称しているのは、最終的に最適なモデルとして得られるものの候補であるためである。すなわち、RANSACアルゴリズムの枠組みにおける当該反復処理S2〜S9の各回(m=1,2,…)において「仮の」モデルF(m)が算出され、当該算出された一連の幾何モデルF(m)の中から最適と判定されるものが後述するステップS10で判断部27により決定される。
ステップS4にてモデル生成部23は、前述の通り周知の7-pointアルゴリズムや8-pointアルゴリズムを用いて基礎行列Fを算出すればよい。なお、前述のステップS2において抽出部21は、点対応を選択する所定数kとして、モデル生成部23が基礎行列Fを算出するのに必要な最小数を採用すればよい。すなわち、7-pointアルゴリズムを使う場合であれば7個の、8-pointアルゴリズムを使う場合であれば8個の、点対応を選択すればよい。
[ステップS5:第二評価部24]
ステップS5では、ステップS4にてモデル生成部23で得られた仮のモデル(基礎行列F)に対して、第二評価部24がその妥当性を評価し、当該評価結果を図1中に線L8として示すように判断部27へと出力してから、ステップS6へと進む。第二評価部24による評価の詳細については後述する。
[ステップS6:モデル検証部25]
ステップS5では、ステップS4にてモデル生成部23で得られた仮のモデル(基礎行列F)及びステップS1にて対応取得部12で得られた点対応全体(ステップS2で抽出部21によりその一部分のみが抽出されたものと区別しての点対応「全体」である)を用いて、モデル検証部25が当該仮のモデルの検証、すなわち、当該点対応全体のうち当該仮のモデルを適用した際にインライアとなるものがどれであるかの判定を行い、当該検証結果すなわち当該点対応全体のうちインライアと判定されたものを図1中に線L9として示すように第三評価部26へと出力してからステップS7へと進む。
当該インライア判定は次のように行うことができる。すなわち、ステップS1で得られた質問画像と参照画像との間の点対応全体のうち、ステップS4で求まった基礎行列Fによって、以下の式(2)を満たすような点対応をインライアと判定し、満たさないものはアウトライアであると判定することができる。
上記において、ベクトルx1及びx2はそれぞれ、質問画像G1と参照画像G2との間の点対応における、画像G1の特徴点の座標(x1,y1)及び画像G2の特徴点の座標(x2,y2)を同次座標表現したものであり、THは判定用の閾値である。なお、エピポーラ幾何において周知のように上記の式の左辺「x1 TF x2」はエピポーラ線と点(x1,y1),(x2,y2)との距離を意味するものである。すなわち、上記の式は基礎行列Fに対応するエピポーラ平面のエピポーラ線と点対応にある2つの特徴点座標(x1,y1),(x2,y2)の一方との距離が閾値TH以下であることを判定するものである。
[ステップS7:第三評価部26]
ステップS7では、ステップS6でモデル検証部25の判定により得られた各インライアに対して、第三評価部26がその妥当性を評価して評価結果を図1中に線L10として示すように判断部27へと出力してから、ステップS8へと進む。第三評価部26による評価の詳細は後述する。
[ステップS8:判断部27]
ステップS8では、判断部27が当該反復処理のm回目における各評価結果を記憶してから、ステップS9へと進む。当該記憶する評価結果は、図1中に線L5,L8,L10で示すものであり、当該反復処理m回目におけるステップS3の第一評価部22によるサンプルの評価結果EVAL1(m)と、ステップS5の第二評価部24による仮のモデル(m回目の基礎行列F(m))の評価結果EVAL2(m)と、ステップS7の第三評価部26による各インライアi(i=1,2, …)の評価結果EVAL3(m,i)と、である。
[ステップS9:判断部27]
ステップS9では、判断部27が、当該m回目までの繰り返し処理によって、RANSACアルゴリズムにおける反復処理の所定の終了条件(反復回数mが所定値に到達している等の条件)が満たされているか否かを判定し、満たしていればステップS10へ進み、満たしていなければ、抽出部21に対して次のm+1回目の処理を継続するよう指示(当該指示の流れは図1では不図示)したうえでステップS2に戻り、ステップS2において抽出部21が前述の通りのランダムサンプル抽出をm+1回目のものとして実施する。
[ステップS10:判断部27]
ステップS10では、判断部27が、以上のRASACアルゴリズムの枠組みに即したステップS2〜S9の反復処理の各m回の結果(仮のモデルとしての基礎行列F(m))の中から、最適な結果がどれであるかを最終的な幾何検証結果として出力してから、ステップS11へと進む。
当該最適結果の判断は、各m回の結果につきそのスコアscore(m)をステップS8で記憶した各結果EVAL1(m),EVAL2(m)及びEVAL3(m,i)に対する所定関数として求め、スコアscore(m)を最大とするようなm=mmax回目の反復処理における基礎行列F(mmax)を最適なものと判断することができる。スコアscore(m)を求めるための所定関数としては例えば、各結果EVAL1(m),EVAL2(m)及びEVAL3(m,i)(当該各結果内容の詳細は各部22,24,26の詳細説明の際に後述する)に対する増加関数として求めることもできるし、所定のルールベース手法として例えば、EVAL3(m,i)で得られているインライア数が最大のものとして求めることもできる。ここで、インライア数が最大のものあるいは上位と判定されるであるものが複数ある場合はさらに、EVAL1(m)及びEVAL2(m)も考慮して最適な結果を決定するようにしてもよい。
[ステップS11:追加処理部30]
ステップS11では、ステップS10での判断部27による最適結果を用いて、追加処理部30が追加処理を実施し、結果を出力してから、図2のフローは終了する。追加処理としては各種のものが可能であり、最適と判定されたモデルが前述のようにループ処理回数m=mmaxにおけるものであったとすると、そのスコア値score(mmax)に基づいて、又はEVAL3(mmax,i)において得られているインライア数INL(mmax)に基づいて、質問画像と参照画像とが同一対象物を写しているものであるか否かを判定するようにしてもよいし、質問画像と参照画像との類似度を出力するようにしてもよい。
また、参照画像が複数存在する場合には、以上のステップS1〜S10を参照画像ごとに実施したうえで、ステップS11において追加処理部30が、質問画像(1枚)は複数の参照画像のうちのいずれに該当するかを、参照画像ごとの上記スコア値又は上記インライア数に基づいて判断するようにしてもよい。
上記のように、ステップS11における追加処理部30の処理を含む(図1に示す線L12及びL13の流れで処理する)ことで、幾何検証装置10は幾何検証に加えてさらに、類似度算出等の機能を担うことができる。また、ステップS11及び追加処理部30を省略する(図1に示す線L11の流れで処理する)ことで、幾何検証装置10では最終的な出力として幾何検証結果のみを出力することもできる。逆に、ステップS11及び追加処理部30を用いる場合、類似度算出等に限らず、最適判定された幾何検証結果に基づく任意出力を幾何検証装置10の出力とすることができる。例えば、質問画像G1のカメラ座標と参照画像G2のカメラ座標との関係(前述の図3に示した各画像を撮影しているカメラ配置を互いに変換する関係を表す回転行列R及び並進ベクトルT)等を、当該最適と判定された幾何検証結果F=F(mmax)におけるものとして出力してもよい。ここで、基礎行列Fを分解することで回転行列R及び並進ベクトルTが得られることは周知である。
なお、前述の通り、図2の実施形態は当該各部22,24,26の全てを適用する場合となっているが、その任意の一部分(任意の1つまたは2つ)を省略する実施形態も可能である。第一評価部22を省略する場合は、対応するステップS3を省略することでステップS2後にただちにステップS4へ移るようにすればよい。第二評価部24を省略する場合は、対応するステップS5を省略することでステップS4後にただちにステップS6へ移るようにすればよい。第三評価部26を省略する場合は、対応するステップS7を省略することでステップS6後にただちにステップS8に移るようにすればよい。
以上、図2のフロー全体を説明した。図4は、図2とは別の一実施形態に係る幾何検証装置10の動作のフローチャートである。図4の実施形態では、RANSACアルゴリズムの枠組みに即した反復処理を行うことは図2の実施形態と同様であるが、第一評価部22及び第二評価部24において2値評価(妥当であるか否かの評価)を行い、いずれか一方で妥当ではないとの評価が得られた場合、当該反復処理m回目で扱っているデータは最終的な最適結果になりうるものではないとの判断(破棄判断)を得てm回目の処理を途中で打ち切り、次のm+1回目の処理に移ることで、RANSACアルゴリズム枠内での処理の高速化を達成することができる。
すなわち、図2のステップS1〜S11に対応するのが、ステップ番号を20増分したものとして示されている図4のステップS21〜S31であり、これらのうちステップS23,S25(及びS28)以外は図2の対応するステップと同様の処理であるため、重複する説明は省略する。(なお、ステップS28に関して、ステップS231及びS251の両方で妥当である旨の判断が得られた場合の当該ステップS28は図2のステップS8と同様であるが、いずれか片方で妥当でない旨の判断が得られた場合、「破棄する旨」を記憶する点が図2のステップS8と異なる。)図4の実施形態では以下のような図2の実施形態とは変更されたステップにより高速化を図ることができる。
まず、第一評価部22(及び破棄判断の場合の判断部27)は図2のステップS3に代えてステップS23,S231,S271のような処理を実施する。ステップS23では、2値評価の実施形態によりステップS22(図1のステップS2と同内容)で得られた点対応が妥当か否かを評価してからステップS231へ進む。ステップS231では、ステップS23の評価結果が妥当であったか否かを判断し、妥当であればステップS24(図1のステップS4と同内容)へ進み、妥当でなければステップS271へ進む。ステップS271では、判断部27がステップS231の結果に従い今回のm回目をRANSAC反復処理から破棄する対象として決定し、ステップS28に進んで当該破棄した旨を記憶する。
また、第二評価部24(及び破棄判断の場合の判断部27)は図2のステップS5に代えてステップS25,S251,S271のような処理を実施する。ステップS25では、2値評価の実施形態によりステップS24(図1のステップS4と同内容)で得られた仮のモデルが妥当か否かを評価してからステップS251へ進む。ステップS251では、ステップS25の評価結果が妥当であったか否かを判断し、妥当であればステップS26(図1のステップS6と同内容)へ進み、妥当でなければステップS271へ進む。ステップS271では、判断部27がステップS251の結果に従い今回のm回目をRANSAC反復処理から破棄する対象として決定し、ステップS28に進んで当該破棄した旨を記憶する。
以上のように、図4の実施形態では第一評価部22又は第二評価部24のいずれかで妥当ではないとの結果が得られた場合、ステップS231からステップS271へ移り、また、ステップS251からステップS271へ移り、当該反復処理m回目の処理を途中で打ち切るようにすることで、RANSAC反復処理を高速化することができる。
以下では、以上説明したような図2(又は図4)のフローチャートに従ってステップS3,S5,S7(又はS23,S25,S27)において動作することができる、図1の各部22,24,26の詳細を説明する。
図5は、各部22,24,26の処理内容を以下に説明する際の対象データ例として用いる、ステップS2で抽出部21により抽出された点対応の例を示す図である。すなわち、図5にて[1]に示すように、質問画像G1及び(これに対する正解画像である)参照画像G2は共に、直方体状の立体の対象物OB2を配置がやや異なるカメラCM1及びCM2で撮影しているものとする。対象物OB2は[1]に示すように局所特徴量が抽出され検出される7つの特徴点a〜g(一般にはより多数の特徴点を有することがあるが、そのうち7つがa〜gであるものとする)を有しているものとする。
図5にて[2-1]に示すように、対象物OB2をその白色の面の側から撮影しているカメラCM1で得られた質問画像G1においては、対象物OB2の特徴点a〜gに対応する画像上の特徴点としてa1〜g1が得られ、[3-1]に示すようにこれらa1〜g1の点集合PG1が得られるものとする。また、[2-2]に示すように、対象物OB2をその灰色の面の側から撮影しているカメラCM2(カメラCM1を「正面」とするとカメラCM2はその「右側寄り」)で得られた参照画像G2においては、対象物OB2の特徴点a〜gに対応する画像上の特徴点としてa2〜g2が得られ、[3-2]に示すようにこれらa2〜g2の点集合PG2が得られるものとする。
そして、図5の点集合PG1,PG2間には対応取得部12によって(結果的に正しいものとして)a1-a2間、b1-b2間、 …, g1-g2間の対応関係を含む一連の対応関係が取得され、抽出部21においてこれら7つの正しい点対応がサンプルとして取得されたものとする。
[第一評価部22について]
第一評価部22では、抽出部21で得られた点対応(抽出サンプル)の妥当性を評価する。当該評価は次のような考察に基づくものである。すなわち、抽出部21の抽出サンプルが全て同一物体の同一位置にある点の対応である場合、(すなわち、図5の例のように正しい点対応である場合、)それらの相対的な位置関係にはいくつかの制約条件を設けることができる、という考察である。当該各制約条件は、同一立体物を図3のような別カメラ配置で撮影した際の正しい点対応において、互いに整合しているはずである配置関係としての制約条件である。
具体的に、当該位置関係の制約としては、種々のものがあるが、以下に説明する第一評価部22の各部1〜5,16は、当該各制約のそれぞれに基づく点対応評価の個別の実施形態を提供するものである。当該各部1〜5,16はいずれか1つだけを単独で利用することもできるし、任意の一部分又は全部を組み合わせて利用することもできる。2つ以上組み合わせて利用する場合、第一評価部22では各実施形態で得られた評価結果に所定関数を適用して得られる総合スコアとして、最終的な評価結果EVAL1(m)を出力するようにすればよい。
[裏返り評価部1について]
裏返り評価部1では、点対応における裏返りの有無に基づいて点対応の妥当性を評価する。当該裏返りの有無に関する考察は以下の通りである。
物体に裏返りが無いと想定する場合、点対応が正しいものである場合に、点を結んで出来る任意の多角形の対応に、裏返りが無い可能性が高い。例えば、図6に示される様に、それぞれの点集合を結んだとする。図6では、図5の[3-1],[3-2]に示した対応が与えられている点集合PG1,PG2のそれぞれにつき、当該対応に沿って各点集合の一部分を辺で結んだものが[4-1],[4-2]として示されている。この時、[4-1]の三角形a1b1c1は時計回りに結ばれており、それに対応する[4-2]の三角形a2b2c2もまた、時計回りに結ばれている。従って、三角形a1b1c1と三角形a2b2c2に裏返りは無いと判定される。この様に、頂点の回転する方向によって、2つの点集合で対応している任意の多角形の裏返りを判定することができる。
ただし、妥当なサンプルから形成される多角形に裏返りが絶対に無いわけではない。物体に凹凸がある場合、視差によっては点の相対的な位置関係が大きく変化し、一部の多角形に裏返りが生じる可能性がある。しかし、ランダムな点対応(結果として間違っている点対応も含みうる)から形成される多角形に比べれば、妥当なサンプルで形成される多角形に裏返りが起こる確率は低いと考えられるため、裏返り評価部1ではその頻度によって妥当性を評価することができる。
具体的に、裏返り評価部1では裏返り有無に基づいて点対応の妥当性を次のように評価することができる。例えば、抽出部21において7つの点対応を抽出する場合、7つの点対応から三角形を形成する場合、その組み合わせ総数は7C3=35通りである。当該総数のうち、裏返りが起こった回数によって閾値判定(閾値より多ければ妥当であり、閾値以下であれば妥当でないという2値判定)してもよいし、あるいは、その回数を妥当性の評価値として出力してもよい。なお、点の結び方や形成する多角形の種類や個数は任意の所定方式を予め定めておけばよい。
なお、三角形を形成する場合、数学関係として周知のように、対応角を挟む2つのベクトルのベクトル積(外積)の正負が一致していれば裏返りがなく、一致していなければ裏返りがあるものと判定することができる。図7に当該ベクトル積を求めるための空間例を示す。図7では、[5-1],[5-2]としてそれぞれ、図6の[4-1],[4-2]に示す画像G1,G2において画像左上頂点を原点Oとし、画像平面上の右方向に+x軸、画像平面上の下方向に+y軸を取った場合に、さらに追加で仮想的な+z軸を右手系のものとして定めて得られる仮想的な3次元空間が示されている。
このような仮想的な3次元空間における始点p1、終点p2のベクトルをV(p1,p2)と書くことにすると、上記説明した三角形a1b1c1及び三角形a2b2c2は、対応角として∠a1及び∠a2を考えると対応角を挟む対応するベクトル積(のz成分)は以下のように両方とも正となるため、裏返りがないことを判定することができる。
(V(a1,b1)×V(a1,c1))Z成分>0
(V(a2,b2)×V(a2,c2))Z成分>0
以上のように、三角形において裏返りの有無を評価することが可能である。形成する多角形として四角形以上のものを用いる場合も、三角形に分割したうえでベクトル積を用いて評価する、あるいはその他の周知の数学的関係及び/またはアルゴリズムに基づく評価を行うことによって、裏返りの有無を評価することができる。
[交差評価部2について]
交差評価部2では、点対応から得られる辺対応における辺の交差状況(交差有無)の一致度合いに基づいて、点対応の妥当性を評価することができる。その考察は以下の通りである。
例えば、前述の通り図6に示される様に、画像G1,G2のそれぞれの点集合PG1,PG2を結んだ(対応する所定点同士の間に線分を設けた)とする。この時、点集合PG1において形成された多角形群の任意の2辺に交差は無く、また、これと点対応で対応している点集合PG2において形成された多角形群の任意の2辺にも交差は無い。一方で、図6においてさらに、頂点a1とd1、およびそれに対応する頂点a2とd2を結んだ場合を考える。この時、辺b1c1と辺a1d1に交差が発生し、そして、それに対応する辺b2c2と辺a2d2にもまた、交差が発生する。この様に、対応する2辺の交差状況の一致を見ることによって、2つの点集合で対応している任意の多角形の辺の交差状況の一致を判定することができる。
ただし、前述の裏返り評価部1の裏返りの有無評価において説明したのと同じ理由(凹凸が大きい同一物体を異なる角度から見た場合等)で、妥当なサンプルから形成される多角形に辺の交差状況の不一致が絶対に無いわけではない。しかし,ランダム抽出の結果、間違っている点対応も含んだから形成される多角形に比べれば、正しいサンプルから形成される多角形の辺の交差状況の不一致が起こる確率は低いと考えられるため、交差評価部2ではその頻度によって妥当性を評価することができる。
例えば、7つの点対応から同じ頂点を持たない2辺を形成する場合、その組み合わせ総数は7C4=35通りが考えられる。従って、交差評価部2では、当該総数の内、辺の交差状況の不一致が起こった回数によって閾値判定(不一致回数が閾値より多ければ妥当ではなく、閾値以下であれば妥当であるという2値判定)してもよいし、あるいは、その回数を妥当性の評価値(ここで、当該不一致回数が多いほど妥当性の評価値を低くする所定関数を適用するものとする)として出力してもよい。なお、交差評価部2における当該判定に使用する辺の結び方や個数は任意のものを予め設定しておくことができる。
[第一角度評価部3について]
第一角度評価部3では、点対応から得られる対応する角度が近い場合に、妥当性が高いものとして評価する。その考察は以下の通りである。
すなわち、妥当な抽出サンプル(点対応)から形成される任意の多角形における,対応する任意の内角(例えば、図6における∠a1b1c1と∠a2b2c2)は、近い値になる可能性が高い。そのため、任意の対応する内角の差によってサンプルの妥当性を評価することができる。例えば、想定する全ての内角の差を閾値判定し、その判定(閾値以内に差が収まったという判定)をクリアした回数によってサンプルの妥当性を閾値判定してもよいし、その回数を評価値(回数が多いほど評価値を高くする所定関数を適用)として出力してもよいし、全ての内角の差を累積した値を閾値判定することによってサンプルの妥当性を2値判定(累積値が閾値以内に収まれば妥当であると判定)してもよいし、当該累積値を評価値(当該累積値が小さいほど評価値を高くするような所定関数を適用)として出力してもよい。
なお、第一角度評価部3において判定に使用する多角形の内角の選び方や個数は任意の所定のものを予め設定しておけばよい。また、対応する角(例えば、図6における∠a1b1c1と∠a2b2c2))はそれぞれ絶対値として求め、その差も絶対値として求め、累積値を求める際も絶対値としての各差の値を累積すればよい。
[第一距離評価部4について]
第一距離評価部4では、点対応から得られる対応する辺の長さ(対応2点間の距離)の整合を評価し、当該辺の長さの整合が大きい場合に点対応の妥当性が高いものとして評価することができる。当該整合評価の際にスケールを考慮してもよい。その考察は以下の通りである。
すなわち、妥当な抽出サンプル(点対応)から形成される任意の多角形における、対応する辺(例えば、図6における辺a1b1と辺a2b2)の長さは、近い値になる可能性が高い。ただし、画像中に写る物体のスケールが異なる場合(画像G1,G2の一方が物体近くで撮影され、もう一方が遠方で撮影された場合、及び/又は画像解像度が異なる場合等)、対応する辺の長さが大きく異なる可能性がある。そこで、同じ画像中の2辺の比同士の比(例えば図6における、辺a1b1と辺b1c1の長さの比と、それに対応する辺a2b2と辺b2c2の長さの比と、の比)をとることによって、スケールの影響を打ち消してもよい。
例えば、辺a1b1と辺b1c1の長さの比が1.2であり、それに対応する辺a2b2と辺b2c2の長さの比が1.3であったとすると、当該2辺の比同士の比は1.2/1.3≒0.92であり、当該「比の比」は1に近い(2辺の比同士はほぼ等しい)と判定されるため、これらの辺に関しての点対応a1,a2とb1,b2とc1,c2とは妥当であると評価することができる。
従って、第一距離評価部4では、任意の対応する辺の長さによって,サンプルの妥当性を判定することができる。例えば、上記の例のように想定する全ての2辺の長さの比の比を閾値判定(当該比の比が1に近いと判定される場合に妥当と判定)し、その判定をクリアした回数(妥当判定された回数)によってサンプルの妥当性を閾値判定(回数の多さに関して閾値判定)しても良いし、その回数を評価値(当該妥当判定回数が多いほど高い評価値となるような所定関数を適用)として出力してもよいし、全ての2辺の長さの比の比を累積した値を閾値判定(累積による「比の比」の1からの乖離の総和が閾値以下であれば妥当と判定)することによってサンプルの妥当性を判定してもよいし、その値(又は当該値に所定の減少関数を適用したもの)を評価値として出力してもよい。
なお、画像G1,G2の物体のスケールが概ね等しいことが予め既知であるような場合で、スケールを考慮する必要がない場合は、上記で2辺の長さの比の比を用いるのに代えて、画像G1,G2間の対応2辺の差の絶対値等を用いて評価することができ、当該差が大きいほど妥当性が低いものとして評価することができる。
なお、第一距離評価部4において判定に使用する多角形の辺の選び方や個数は任意の所定のものを予め設定しておけばよい。
[面積評価部5について]
面積評価部5では、点対応によって対応する多角形の面積に基づいて点対応の妥当性を評価する。第一実施形態及び第二実施形態が可能であり、それらの考察及び妥当性評価の詳細は以下の通りである。
第一実施形態では、画像中の点はピクセル単位で表されるため、あまりにも相対的な位置が近い場合、誤差の影響が大きくなるため、サンプルが局所的に密集しすぎると、幾何モデルの誤差も大きくなるという考察を用いる。従って、抽出サンプル(点対応にある各点集合)から形成される任意の多角形の面積によって、サンプルの妥当性を判定する。例えば、サンプルの全ての点を包括する凸包(Convex Hull)の面積を計算し、閾値判定(当該面積が小さいと判定される場合に妥当でないと判定)してもよいし、その値を評価値(面積が大きいほど妥当であるとの所定関数による評価値)として出力してもよい。
なお、第一実施形態は対応関係にある抽出サンプルの双方においてそれぞれ実施し、総合スコアとして評価結果又は評価値を出力することができる。例えば画像G1の点集合PG1の凸包の面積又は画像G2の点集合PG2の凸包の面積の少なくとも一方が小さいと判定される場合、総合結果として妥当でないという結果を出力することができる。面積判定の閾値は各画像G1,G2の面積に応じて規格化されたものを用いてもよい。
第二実施形態では、点対応によって対応する多角形同士の面積は近いはずであるので、当該面積が近い場合により妥当であるものとして評価することができる。ただしこの際、前述の第一距離評価部4において説明したのと同様にスケールを考慮してもよい。
すなわち、妥当な抽出サンプル(点対応)から形成される任意の対応する多角形(例えば、図6における三角形a1b1c1と三角形a2b2c2)の面積は近い値になる可能性が高い。ただし、画像中に写る物体のスケールが異なる場合、対応する面積が大きく異なる可能性がある。そこで、同じ画像中の2つ多角形の面積比同士の比(例えば図6における、三角形a1b1c1と三角形b1c1d1の面積比と、それに対応する三角形a2b2c2と三角形b2c2d2の面積比と、の比)をとることによって、スケールの影響を打ち消してもよい。
従って、第二実施形態の面積評価部5では、任意の対応する多角形の面積によって、抽出サンプル(点対応)の妥当性を判定することができる。例えば、想定する全ての2つ多角形の面積比の比を閾値判定(前述の通り当該「比の比」が1に近いと判定される場合に妥当と判定する閾値判定)し、その判定をクリアした回数によってサンプルの妥当性を閾値判定してもよいし、その回数を評価値として出力してもよいし、全ての2つ多角形の面積比の比を累積した値を閾値判定することによってサンプルの妥当性を判定してもよいし、その値を評価値として出力してもよい。すなわち、第一距離評価部4で2線分長さの「比の比」を評価した際と同様の手法が、第二実施形態の面積評価部5で2面積の「比の比」の評価にも利用可能である。
なお、面積評価部5にて判定に使用する多角形の種類や選び方や個数は任意の所定のものを予め設定しておけばよい。また、第一実施形態及び第二実施形態は組み合わせて利用してもよい。この場合、各実施形態の評価結果を所定関数等で総合した結果を出力すればよい。
[複比評価部16について]
複比評価部16では、点対応によって対応が定まる複比の値の一致度合いに基づいて点対応の妥当性を評価する。その考察及び評価の詳細は以下の通りである。
まず、複比とは、幾何学分野において周知のように、同一線上の4点A,B,C,Dに対して、その複比(A,B;C,D)は以下の式のように定義される値であり、射影変換に対して不変であるという性質を有する。
ここで、点集合PG1,PG2内の4点を任意に選択したとしても、同一直線上にあることは確率的に稀である。そこで、複比評価部16では以下のようにして、点対応にある点集合PG1,PG2のそれぞれにおいて同一直線上にある対応する4点を(いわば人工的に)定めることで、対応する複比を求める。
点対応において複比を定める手法の例を、図12を参照して説明する。図12では、それぞれ[6-1],[6-2]として図5及び6と共通の画像G1,G2における点集合PG1,PG2が示されている。例えば、[6-1]に示すように、点集合PG1内の所定の2点を結んで線分a1d1を形成する。さらに、当該所定の線分a1d1に対してその端点a1,d1を共有しないような他の所定の2線分として、[6-1]に示すように線分b1c1及び線分b1e1を形成し、線分a1d1との2交点をそれぞれ点A1及びB1として定める。
以上のようにして、所定の線分a1d1に対して別の2線分b1c1,b1e1を取り交点A1,B1を定めることで、共通の線分a1d1(直線)上にある4点a1,A1,B1,d1を点集合PG1において形成することができる。従って、当該4点の複比を上記定義に従い以下のように求めることができる。
(a1,A1;B1,d1)=(a1B1/a1d1)×(A1d1/A1B1)
さらに、[6-2]に示すように、点集合PG1との点対応が与えられた点集合PG2においても、対応する所定の線分a2d2に対して別の所定の2線分b2c2,b2e2を取り交点A2,B2を定めることで、共通の線分a2d2(直線)上にある4点a2,A2,B2,d2を点集合PG2において形成することができる。従って、点対応により対応する複比を上記定義に従い以下のように求めることができる。
(a2,A2;B2,d2)=(a2B2/a2d2)×(A2d2/A2B2)
点集合PG1,PG2間で点対応する座標間に射影変換がある場合、上記のように対応する点対応から定まる複比は、複比が射影変換に不変な量であることから、以下のように互いに等しくなる。
(a1,A1;B1,d1)= (a2,A2;B2,d2)
以上より、妥当なサンプルから形成される互いに対応する任意の複比は、近い値になる可能性が高い。そのため、複比評価部16では、任意の対応する複比の比(上記の例であれば、複比(a1,A1;B1,d1)と複比(a2,A2;B2,d2)との比)によってサンプルの妥当性を判定することができる。例えば、想定する全ての複比の比が1に近いかを閾値判定し,その判定をクリアした回数によってサンプルの妥当性を閾値判定してもよいし、その回数を評価値として出力してもよいし、全ての複比の比を累積した値を閾値判定することによってサンプルの妥当性を判定してもよいし、その値を評価値として出力してもよい。
なお、以下に説明する多角形の形成手法と同様に、判定に使用する複比の選び方(すなわち、図12で説明したような複比算出の同一直線を構成するための所定の第一線分a1d1と、第一線分とは端点a1,d1を共有しない所定の2つの第二線分b1c1,b1e1であって、第一線分a1d1上にその端点a1,d1以外の2点A1,B1を定めるためのものと、の選び方)や個数は任意の所定のもので構わないものとする。
以上、第一評価部22の各実施形態を担う各部1〜5,16を説明したが、各部1〜5,16において判定に使用する多角形の種類や選び方や個数の所定設定に関して、例えば、周知のドロネー図を作成して、各ドロネー三角形(及び場合によってはドロネー四角形、以下同様)を使用することにより、自動で設定することができる。この場合、点対応にあるいずれか片方の画像の点集合でドロネー図を作成し且つドロネー三角形等を設定すれば、もう一方の画像ではドロネー図を作成することなく、点対応をあてはめることにより自動で対応するドロネー三角形(に相当するもの)を決定すればよい。(なお、当該点対応をもう一方の画像にあてはめた場合、ドロネー図にはなっていない場合もありうるが、そのような場合は妥当性が低いという結果が得られる可能性が高い。)
また、各部1〜5,16においてドロネー図以外の手法で多角形を設定する場合も、点対応にあるいずれか一方の画像の点集合で多角形を設定し、もう一方の画像の多角形は当該点対応をあてはめることで自動決定されるものを採用すればよい。(点対応をあてはめた場合、多角形を形成していない場合もあるが、そのような場合は妥当性が低いという結果が得られる可能性が高い。例えば、画像G1で点a1→b1→c1→d1→a1と辿った場合、各辺が交差することなく四角形を描くが、画像G2で対応する点a2→b2→c2→d2→a2を辿った場合、辺が交差して「8」の字型を描き、四角形は描いていないような場合、前述の交差評価部2により妥当性に関して低評価が与えられる可能性が高い。)
[第二評価部24について]
第二評価部24では、モデル生成部23で得られたモデル(基礎行列F)の妥当性を評価する。当該評価する各実施形態を第二角度評価部6及び第二距離評価部7がそれぞれ担うが、いずれの実施形態においても、エピポーラ幾何モデルから計算することができる2つのエピポール(エピ極点)の座標の情報を利用する。当該計算方法は周知であり、第二評価部24では各実施形態での共通処理として当該エピポール座標の計算を行う。
例えば、基礎行列Fからは、2つのエピポールはFTFとFFT(Tは転置)の最も小さい固有値に対応する固有ベクトルとして算出できることが周知である。2つのエピポールとは、画像上に投影されたお互いのカメラの位置である。(図3の例において画像G1における点E1及び画像G2における点E2として示した通りである。)そのため、全てのエピポーラ線はエピポールで交わる。抽出サンプルが全て物体の同一位置にある点の対応であり、妥当なものである場合、エピポールに対するサンプルの相対的な位置関係にいくつかの制約条件を設けることができる。それらの制約条件を用いて、幾何モデルの妥当性を判定する。具体的にどのような制約条件を用いるかの区別により、第二角度評価部6及び第二距離評価部7の各実施形態が可能である。
なお、基礎行列Fから計算される2つのエピポールの座標の情報は、後述する第三評価部26でも利用するので、当該エピポールの計算は第三評価部26においても同様に行うものとしてもよいし、モデル生成部23において基礎行列Fを算出した際に併せて実施しておいてもよい。(なお、エピポールの計算は各部23,24,26のいずれにおいて実施してもよいが、重複して実施する必要はなく、いずれかで1回だけ実施すればよい。)
以下、各部6,7をそれぞれ説明する前に、当該説明の際に共通に用いる例としての図8及び図9を説明する。図8,9の例は、図5,6の例と共通であり、画像G1に特徴点a1〜g1(点集合PG1)があり、画像G2に特徴点a2〜g2(点集合PG2)があり、これらの点集合PG1,PG2間には対応取得部12によって(結果的に正しいものとして)a1-a2間、b1-b2間、 …, g1-g2間の対応関係を含む一連の対応関係が取得され、抽出部21においてこれら7つの正しい点対応が取得されたものとする。従って、モデル生成部23では当該a1-a2間、b1-b2間、 …, g1-g2間の対応関係を入力として、7-pointアルゴリズム等により基礎行列Fを算出したものとする。
図8では、上記算出された基礎行列Fより算出される画像G1のエピポールE1が、画像G1の(画像範囲を超えた)右方側に算出された場合の例として示されている。すなわち、エピポールE1は画像G1の右側に投影されたものとする。エピポールE1と特徴点a1〜g1の各々とを通る各線(各エピポーラ線)がそれぞれE1a1〜E1g1として示されている。図8にて座標系CG1は画像G1の座標であり、画像G1の左上を原点Oとし右方向に+x軸が、下方向に+y軸がある。図8にて円周EPC1はエピポールE1を中心とした円周(ただし、概念的なものとして曲率を誇張して描いており、角度の数値も例としての数値である)であり、各エピポーラ線E1a1〜E1g1のエピポールE1から見た向きを説明するためのものである。
同様に、図9では、上記算出された基礎行列Fより算出される画像G2のエピポールE2が、画像G2の(画像範囲を超えた)左方側に算出された場合の例として示されている。すなわち、すなわち、エピポールE2は画像G2の左側に投影されたものとする。エピポールE2と特徴点a2〜g2の各々とを通る各線(各エピポーラ線)がそれぞれE2a2〜E2g2として示されている。図9にて座標系CG2は画像G2の座標であり、画像G2の左上を原点Oとし右方向に+x軸が、下方向に+y軸がある。図9にて円周EPC2はエピポールE2を中心とした円周(ただし、概念的なものとして曲率を誇張して描いており、角度の数値も例としての数値である)であり、各エピポーラ線E2a2〜E2g2のエピポールE2から見た向きを説明するためのものである。
[第二角度評価部6について]
第二角度評価部6では、エピポールから特徴点へと向かうベクトルのなす角に基づいて、エピポーラ幾何のモデル(基礎行列F)の妥当性を評価する。
ここでは、図8及び図9を用いた説明のために、画像の-x軸方向(左水平方向)に向かう単位ベクトル(-1,0)を基準として時計回りに角度を定めるものとする。すなわち、図8では円周EPC1上に示すように、エピポールE1を中心とした角度はエピポールE1から左水平方向を0°とし、円周EPC1に描いた時計方向の矢印向きに増加するものとする。同様に、図9では円周EPC2上に示すように、エピポールE2を中心とした角度はエピポールE2から右水平方向が180°となり、円周EPC2に描いた時計方向の矢印向きに増加するものとする。
図8及び図9から分かるように、エピポールから特徴点へ向かうベクトルの角度を端から順に並べた場合、図8の画像G1では特徴点a1〜g1を角度のIDとして順を示すことにすると(f1, a1, c1, e1, b1, d1, g1)という順番となり、図9の画像G2では同様に特徴点a2〜g2を角度のIDとして順を示すことにすると(g2, d2, b2, e2, c2, a2, f2)という順番となる。角度のエピポーラ線はカメラから物体までの視線の投影であるため、図8及び図9の当該示した例のように、同一物体を挟んで異なる側面から撮影した場合、エピポールから点へ向かうベクトルのなす角を端から順に並べると、対応する点のIDは逆順になる可能性が高い。
また、図8及び図9の例とは違って、2つのエピポールが物体に対して同じ側面(例えば,両方共に図9のように物体の左側)に位置する場合もある。その場合、エピポールから点へ向かうベクトルのなす角を端から順に並べると、対応する点のIDは(逆順ではなく)同じ順番になる可能性が高い。
なお、角度の循環性の為に、単純に小さい順番に並べてもこの様な順番(逆順又は同じ順)にならない場合もある。そのため、角度の小さい順に並べた点のIDの円順列において、隣合う点のIDにおいて対応するエピポールの成す角が時計回りに180°を超えるペア(図8におけるg1とf1のペア、および図9におけるf2とg2のペア)を探すことによって、両端の点のIDを探すことができ、角度の循環性を解消した点IDの並びを定めることができる。
また、この時、時計回りで見た際に両端における始点と終点のIDが互い違いで一致した場合(例えば,図8及び図9の例における始点がf1とg2であり終点がg1とf2であるような場合)、2つのエピポールが物体に対して異なる側面に位置すると判定することができる。また、時計回りで見た際に両端における始点と終点のIDが一致した場合(例えば,始点がf1とf2であり終点がg1とg2であるような場合)、2つのエピポールが物体に対して同じ側面に位置すると判定することができる。
以上のような考察に基づき、第二角度評価部6では、エピポールから点へ向かうベクトルのなす角を端から順番に並べた際に、2つのエピポールが物体に対して異なる側面に位置する場合(場合1とする)に該当するものとすると妥当な点対応のIDは逆順であるはずであることより、まず、当該IDが逆順に並ぶか否かを調べ、さらに、2つのエピポールが物体に対して同じ側面に位置する場合(場合2とする)に該当するものとすると妥当な点対応のIDは同じ順であるはずであることより、当該IDが同じ順に並ぶか否かを調べることによって、幾何モデルの妥当性を判定することができる。
なお、画像に写っている物体に関して、画像の光軸周りの回転の自由度があるため、上記の(場合1)又は(場合2)のいずれに該当しうるかを各画像G1,G2の点対応の座標と各画像におけるエピポールE1,E2の座標との位置関係から判断することはできない。図8及び図9の例では、画像G1のエピポールE1は画像範囲を逸脱した右側にあり、画像G2のエピポールE2は画像範囲を逸脱した左側にあるため、一見、当該位置関係より上記の(場合1)に該当することを自動検出できるようにも見える。しかしながら、画像G1,G2において物体が光軸周りに同じ向きに写っているという保証はない(前提条件として与えられているわけではない)ため、当該自動検出はできない。
上記のように(場合1)又は(場合2)の区別は、エピポール座標等から自動検出することはできないものの、第二角度評価部6においては、モデルを算出するのに用いた点対応が妥当であった前提のもとで(場合1)又は(場合2)を仮定すると、対応するIDの並びが逆順又は同一順となるはずであることから、IDの並び順を調べることにより間接的に、(場合1)又は(場合2)の区別及びインライアの妥当性を評価する。
また、図8や図9の例とは異なり、サンプル(各画像G1,G2の点集合)が作る凸包の内部にエピポールが位置する場合(場合3とする)、それは2つのカメラ(画像G1,G2の各カメラ)がほぼ前後移動しかしていないことを意味する。その際には、両端を見つけることができないため、第二角度評価部6では、エピポールから点へ向かうベクトルのなす角の小さい順に点のIDを並べ、それらの円順列が同じ順番で一致するか否かを調べることによって、幾何モデルの妥当性を判定すればよい。
なお、(場合3)に該当しうるかは、各画像G1,G2のサンプルが作る凸包の内部にそれぞれのエピポールE1,E2が位置しているかを調べることで、上記の(場合1)又は(場合2)とは異なり、自動判定することができる。また、物体が光軸周りにどのような向きで写っていようとも、円順列としてのIDの並び順は変わらない。従って、第二角度評価部6では、当該凸包の内部に位置しており(場合3)に該当することを自動判定してから、上記の円順列としてのIDの並び順を評価することで、(場合3)のサンプルの妥当性を評価することができる。
ただし、以上の考察はある程度の理想的な状況を想定したものであり、妥当なサンプルおよび幾何モデルを用いた場合であっても、上述の判定が必ず是となるわけではない。物体に凹凸かある場合、視差によっては点の相対的な位置関係が大きく変化することがあるためである。
従って、第二角度評価部6では、以上の理想的な状況を想定した実施形態による判定の他にも、(場合1)又は(場合2)を仮定したうえで点のIDの順番が逆順又は正順として一致する回数(すなわち、順列としての一致度合い)により、また、(場合3)が自動検出された際には円順列の一致度合いによって妥当性を判定するようにしてもよい。例えば、7つの点対応のIDを並べた場合,最大で7組のIDのペアが一致する。この内、IDのペアが一致した回数によって閾値判定しても良いし、あるいは,その回数(すなわち一致度合い)を評価値として出力しても良い。
また例えば、(場合1)〜(場合3)の区別(自動検出や仮定)を行うことなく、以下の[手順1]〜[手順6]のように妥当性を評価してもよい。この場合、簡素な処理によって妥当性の評価結果を得ることができる。
[手順1] 画像G1のエピポールE1に対してなす角の小さい順番(循環性がある場合に解消する情報も得ておく)に画像G1の特徴点IDを並べて、順番OR1を得る。
[手順2] 画像G2のエピポールE2に対してなす角の小さい順番(循環性がある場合に解消する情報も得ておく)に画像G2の特徴点IDを並べて、順番OR2を得る。
[手順3] 順番OR1と順番OR2との一致度を評価する。
[手順4] 順番OR1の逆順と順番OR2との一致度を評価する。
[手順5] 順番OR1と順番OR2との円順列としての一致度を評価する。
[手順6] 上記の[手順3]〜[手順5]で得られた3種類の一致度のうち最大のものに従い、最終的な第二角度評価部6による評価結果を出力する。
上記の[手順1]〜[手順6]により、(場合1)〜(場合3)の区別の適用がそのままではあてはまらない場合も含めて、モデルを与えた点対応の妥当性を評価することができる。例えば、画像G1ではサンプルの作る凸包の内部にエピポールが存在するが、画像G2ではサンプルの作る凸包のわずかに外部にエピポールが存在するような場合であっても、妥当性を評価することができる。
[第二距離評価部7について]
以上の第二角度評価部6ではエピポールから特徴点へ向かうベクトルの「角度」に基づく評価を行ったのに対し、第二距離評価部7では、エピポールと特徴点との「距離」に基づく評価を行う。
図8及び図9から分かるように、エピポールと点の距離を遠い順に並べると、図8の画像G1では(a1, b1, c1, d1, e1, f1, g1)となり、図9の画像G2では(g2, f2, e2, d2, c2, b2, a2)となる。エピポーラ線はカメラから物体までの視線の投影であるため、物体を挟んで異なる側面から撮影した場合、妥当なサンプルにおいては、エピポールと点の距離の相対的な大小関係は逆順になる可能性が高い。そして実際に、図8及び図9の例は妥当なサンプルの例であるため、逆順となっている。
また、図8及び図9の例とは違って、2つのエピポールが物体に対して同じ側面(例えば,両方物体の左側)に位置する場合もある。その場合、エピポールと点の距離を遠い順に並べると、妥当なサンプルにおいては、エピポールと点の距離の相対的な大小関係は同じ順番になる可能性が高い。さらに、抽出サンプル(各画像の点集合)が作る凸包の内部にエピポールが位置する場合、それは2つのカメラがほぼ前後移動しかしていないことを意味するため、エピポールと点の距離を遠い順に並べると、妥当なサンプルにおいては、エピポールと点の距離の相対的な大小関係は同じ順番になる可能性が高い。
従って、第二距離評価部7では、各画像G1,G2の点集合及びエピポールにおいて、エピポールと点の距離を遠い順番に並べた際に、前述の(場合1)と同様の仮定として2つのエピポールが物体に対して異なる側面に位置する場合は逆順に並ぶか否かを調べることによって、また、前述の(場合2)と同様の仮定として2つのエピポールが物体に対して同じ側面に位置する場合及び前述の(場合3)の自動検出により2つのエピポールが共に点集合の凸包の内部にあることが自動検出された場合は同じ順に並ぶか否かを調べることによって、モデルの妥当性を判定することができる。
ただし、妥当なサンプルおよび幾何モデルを用いた場合に、上述の判定が必ず是となるわけではない。物体に凹凸がある場合、視差によっては点の相対的な位置関係が大きく変化することがあるためである。そのため、第二距離評価部7では、上記のように並び順の完全一致で判定するのではなく、(場合1)又は(場合2)を仮定する際と(場合3)が自動検出された際とのそれぞれにおいて、判定対象となる点のIDの順番が一致する回数によって妥当性を評価するようにしてもよい。例えば、7つの点対応のIDを並べた場合、最大で7組のIDのペアが一致する。この内、IDのペアが一致した回数によって閾値判定してもよいし、あるいは、その回数を評価値として出力してもよい。
第二距離評価部7ではまた、前述の第二角度評価部6における[手順1]〜[手順6]に対応する簡素化された手法で点対応の妥当性を評価してもよい。この場合、第二距離評価部7での実施形態として次のように修正すればよい。すなわち、[手順1]及び[手順2]において「なす角の順番(循環性がある場合に解消する情報も得ておく)」との記載を「距離の順番」に置き換え、[手順5]を省略し、[手順6]では[手順3]又は[手順4]のうち最大のものを用いるようにすればよい。
[第三評価部26について]
第三評価部26では、モデル検証部25で得られた各インライアにつき、その妥当性を評価する。その際の「考え方」は前述の第二評価部24と概ね共通である。
すなわち、第二評価部24では各画像G1,G2における点集合PG1,PG2の位置関係に関して、点対応が正しいものでありモデル(基礎行列F)が妥当なものである場合には、エピポーラ幾何の観点から角度及び距離に関する制約条件(エピポールを基準とした対応している角度・距離の大きさ順番の整合による制約条件)があることに基づく評価を行った。一方、モデル検証部25で得られた各インライアについても、当該モデル(基礎行列F)を求める際に用いた点対応の各点集合PG1,PG2と全く同様に、当該点集合PG1,PG2と各インライアとの全体に関して、エピポーラ幾何の観点から対応している角度及び距離の整合に関する制約条件がある。
そこで、第三評価部26では当該制約条件を考慮して各インライアの評価を行う。ここで、角度に関する制約条件を考慮する実施形態で評価するのが第三角度評価部8であり、距離に関する制約条件を考慮する実施形態で評価するのが第三距離評価部9である。当該各部8,9はいずれか片方のみを個別で用いてもよいし、両方を用いて第三評価部26では当該両方の評価の総合スコアとして各インライアの評価結果を出力してもよい。
図10及び図11は、以下に各部8,9を説明する際に用いる例を示す図であり、それぞれ図8及び図9の例に対応する例が示されている。図10及び図11はそれぞれ図8及び図9に対して示されていなかったインライア等を追加で示したものとなっている。
図10ではすなわち、図8と全く同様の画像G1の特徴点a1〜g1及び右側に投影されたエピポールE1並びにこれらを結ぶエピポーラ線E1a1〜E1g1等が示されたうえでさらに、図8では示されていなかった評価対象となる1つのインライア対応の点の例として点i1が追加で示されている。また、エピポールE1とインライア対応の点i1とを通るエピポーラ線E1i1も追加で示されている。同様に、図11ではすなわち、図9と全く同様の画像G2の特徴点a2〜g2及び左側に投影されたエピポールE2並びにこれらを結ぶエピポーラ線E2a2〜E2g2等が示されたうえでさらに、図9では示されていなかった評価対象となる1つのインライア対応の点の例として点i2が追加で示されている。また、エピポールE2とインライア対応の点i2とを通るエピポーラ線E2i2も追加で示されている。
さらに、図10の点i1及び図11の点i2は、モデル検証部25によりインライア判定されたものである(従って、第三評価部26により評価の対象となるものである)とする。すなわち、ある1つの同一のインライア(インライア判定された1つの点対応)の各画像G1,G2における点がi1,i2であるものとする。
[第三角度評価部8について]
第三角度評価部8では、各画像G1,G2におけるエピポールE1,E2からインライアi1,i2へ向かうベクトルのなす角に基づいて、インライアi1,i2の妥当性を評価する。具体的には、当該なす角に関して、(第二角度評価部6において評価したのと同様の)各画像G1,G2におけるエピポールE1,E2から点対応にある各点a1〜g1及びa2〜g2へ向かうベクトルのなす角との間での整合性(位置関係の制約条件によって満たされるべき整合性)を評価し、当該整合性をインライアi1,i2の妥当性の評価結果として出力する。
図10及び図11から分かるように、インライアi1,i2が物体の同じ位置にある場合(妥当なインライアである場合)、エピポールからインライアへ向かうベクトルのなす角(エピポーラ線E1i1のなす角及びエピポーラ線E2i2のなす角)は、エピポールから抽出サンプルの中の同じIDの2点(画像G1におけるb1とe1、及び、画像G2におけるb2とe2)と成す角の間に収まる可能性が高い。そして、図10及び図11の例は妥当なサンプル且つインライアの例であるため、実際にこのように収まっている。
従って、第三角度評価部8では、2つの画像に渡ってエピポールからインライアへ向かうベクトルのなす角が、エピポールから抽出サンプルの中の同じIDの2点と成す角の間に収まるか否かを調べることによって、インライアの妥当性を判定することができる。この判定で否となれば、そのインライアを妥当ではないと判定しアウトライアとみなす。
ここで、ステップS6等でのモデル検証部25によるインライア判定は前述の式(2)の通りのエピポーラ方程式のみに基づく閾値判定であり、位置関係の制約条件は必ずしも考慮できていなかったのに対し、第三角度評価部8では当該制約条件が考慮され、エピポーラ方程式の見かけ上ではインライア判定されたものであってもアウトライアとして排除できることに注意されたい。後述する第三距離評価部9に関しても同様である。
なお、物体に凹凸がある場合、視差によっては点の相対的な位置関係が大きく変化することがあるため、妥当なインライアであってもこの判定が必ず是となるわけではない。そのため、第三角度評価部8では、エピポールからインライアへ向かうベクトルのなす角と、エピポールからサンプルへ向かうベクトルのなす角のk近傍を比較することによって、インライアの妥当性を評価してもよい。
図10及び図11の例では例えば、画像G1のインライアの点i1のベクトル(エピポーラ線E1i1方向)の角度の3近傍にはe1, b1, d1(線E1e1,E1b1,E1d1)があり、画像G2のインライアの点i2のベクトル(エピポーラ線E2i2方向)の角度の3近傍にc2, e2, b2(線E2c2,E2e2,E2b2)があるため、3つ中2つ以上のIDが一致しているという評価(e1-e2とb1-b2が一致し、d1-c2が不一致)によって、妥当なインライアとみなしてもよい。当該評価は、k近傍のk=3と設定し、k近傍一致の閾値判定個数を2個以上とする例である。
なお、図10及び図11はエピポールの位置が画像G1,G2で逆側である(場合1)の例だが、同じ側である(場合2)やエピポールがサンプル凸包の内部にある(場合3)においても上記と同様にして第三角度評価部8による評価が可能である。従って、第二角度評価部6における一実施形態では(場合3)を自動検出したが、第三角度評価部8にて上記評価を行う場合はこうした自動検出は行わなくともよい。
なお、評価対象であるインライアに対して参照するサンプルが妥当である前提で、上記のようにしてインライアが妥当であるかを評価することができる。サンプルの妥当性はモデル生成部23で生成したモデルの妥当性として評価することができるので、図4のフローの手法によって第二評価部24を2値評価で適用する実施形態(さらに追加で第一評価部22を2値評価で適用してもよい)により、モデル生成部23で生成したモデルが妥当であることを予め評価しておけば、上記前提は概ね満たされていると考えられる。当該前提は次に説明する第三距離評価部9に関しても同様である。
[第三距離評価部9について]
以上の第三角度評価部8では評価対象インライアにおけるエピポーラ線の「角度」を評価したが、第三距離評価部9では評価対象インライアにおけるエピポールとの「距離」を評価する。
図10及び図11から分かるように、図10の画像G1ではエピポールE1から見て、インライアの点i1との距離は点a1, b1よりは近く、点c1, d1, e1, f1, g1より遠い。同様に、図11の画像G2ではエピポールE2から見て、インライアの点i2との距離は点a2, b2よりは遠く、点c2, d2, e2, f2, g2より近い。
当該図10及び図11の例の場合のように、2つのエピポールE1,E2が物体に対して異なる側面に位置する場合すなわち(場合1)は、エピポールから見たインライア(妥当なものである場合)と抽出サンプル(妥当なものである場合)における対応点の距離の大小関係が逆になる可能性が高く、当該例ではインライア及び抽出サンプルが共に妥当なものであるため、実際にそのようになっている。また、図10及び図11の例の場合とは異なり、2つのエピポールが物体に対して同じ側面に位置する場合すなわち(場合2)は、エピポールから見た(妥当な)インライアと(妥当な)抽出サンプルにおける対応点の距離の大小関係が同じになる可能性が高い。さらに、2つのエピポールが物体に相当するサンプル凸包の内部にある場合(場合3)も、当該(場合2)と同様に、対応点の距離の大小関係が同じになる可能性が高い。
従って、第三距離評価部9では、2つの画像G1,G2に渡って、エピポールE1,E2とインライアの対応点i1,i2距離と、エピポールE1,E2と抽出サンプルにおける各点集合a1〜g1及びa2〜g2との距離の大小関係が一貫する(同じ又は逆となる)か否かを調べることによって、当該サンプルに関してのインライアの妥当性を判定することができる。この判定で否となれば、そのインライアをアウトライアとみなす。
ここで、前述の第二角度評価部6において説明したのと同様に(場合1)又は(場合2)は妥当性評価のための仮定である。すなわち、距離の大小関係が逆順であった場合は(場合1)の妥当なインライアであり、(場合3)に該当しない場合で且つ同順であった場合は(場合2)の妥当なインライアである可能性が高い。
なお、物体に凹凸がある場合、視差によっては点の相対的な位置関係が大きく変化することがあるため、妥当なインライアであってもこの判定が必ず是となるわけではない。そのため、第三距離評価部9では、(前述の第三角度評価部8において角度に対するk近傍を調べたのと同様に、)エピポールとインライアの距離と、エピポールと抽出サンプルの距離のk近傍を比較することによって、インライアの妥当性を評価してもよい。図10及び図11の例では例えば、(前述の第三角度評価部8の例と全く同様に、)i1の距離の3近傍にa1, b1, c1があり、i2の距離の3近傍にb2, c2, d2があるので、3つ中2つ以上のIDが一致しているという判断(b1-b2とc1-c2が一致し、a1-d2が不一致)により、妥当なインライアとみなしてもよい。
なお、第三距離評価部9では、上記k近傍を評価する実施形態の場合に限らず、第二角度評価部6において実施したような(場合3)の自動検出は省略して、距離の大小関係の一貫を評価するようにしてよい。
以下、本発明における説明上の観点からの補足的事項を説明する。
(補足1)図2及び図4のフローにおいては、繰り返し処理の枠組みはRANSACに即したものであるとして説明したが、他の枠組みを用いてもよい。例えばPROSAC(PROgressive SAmple Consensus)アルゴリズムやARRSAC(Adaptive Real-Time Random Sample Consensus)アルゴリズム等のような、RANSACアルゴリズムの発展系を枠組みとして用いてもよいし、他のロバスト推定法を用いてもよい。この場合、ステップS2,S22における抽出部21の抽出処理や、ステップS9,S29における判断部27の終了判定処理等を、当該他のアルゴリズムに即したものへと変更すればよい。
なお、RANSAC系の処理は、次のような共通の枠組みを有する。すなわち、所与のサンプル全体(本発明では対応取得部12の出力した点対応の全体)からランダムサンプルの取得(本発明では抽出部21による抽出)を行い、当該取得されたランダムサンプルに対して所与のフィッティングモデル(本発明ではエピポーラ幾何モデル等)を適用した際のパラメータを求め(本発明ではモデル生成部23が基礎行列F等を求め)、当該パラメータのもとでのモデルによって前述の所与のサンプル全体のうちいずれがインライアでいずれがアウトライアかを判定する(本発明ではモデル検証部25による検証を行う)ということを繰り返す。当該繰り返した一連の結果の中から、最適なパラメータを、インライア数が最大のものとして決定(本発明では判断部27がインライア数以外にも、各部22,24,26の結果も考慮したうえで最適結果を決定)する。
(補足2)また、本発明の手法は、上記のような通常のRANSAC系の手法(本発明の幾何検証装置10を適用しない手法、すなわち、本発明の幾何検証装置10の各部22,24,26を全て省略した手法)で得られた結果に対しても適用可能である。この場合、通常のRANSAC手法で得られた一連の最適インライアのうち、誤差(前述のエピポーラ方程式(2)の左辺の値)が最小となるような所定数(基礎行列Fを計算するのに必要な所定数)のインライアを、抽出部21が抽出したサンプルとみなして本発明の幾何検証装置10を動作させることにより、通常のRANSAC系の手法で得られたインライアから適切なものをさらに絞り込むこともできる。この場合、幾何検証装置10の各部22,24,26のうち、第三評価部26のみを利用するようにしてもよい。
(補足3)本発明においてはエピポーラ幾何モデルを適用するために、図3で説明したような配置関係にある2つのカメラにより質問画像G1及び(これに対する正解画像である)参照画像G2が撮影されていることを想定しているが、当該カメラによる撮影は、実際の物理的なカメラによる物理的な撮影に限定されない。例えば、3次元コンピュータグラフィックとしての画像G1,G2が図3のような2つのカメラ配置を想定して生成されている場合であっても、本発明は適用可能である。
上記と同様に、本発明は、物体認識等の用途における質問画像G1及び参照画像G2における点対応に限定されず、一般の画像G1及び画像G2における局所特徴対応に対して適用可能である。例えば画像G1,G2は映像上の隣接フレームであり、映像における動物体追跡を行う際に点対応を用いるような場合であっても、本発明による幾何検証が適用可能である。
(補足4)本発明においてエピポーラ幾何モデルを表現しているのは基礎行列Fであるものとして、モデル生成部23で求めモデル検証部25で検証するものとして説明してきたが、これに代えて、エピポーラ幾何モデルを表現しているのは基本行列Eであるものとして、モデル生成部23で求めモデル検証部25で検証してもよい。周知の通り、前述の式(1)のエピポーラ方程式は基本行列Eにおいても同様に、以下の式(3)のように成立する。ここで、点x1及びx2は、各カメラの内部パラメータの行列K1及びK2の逆行列が乗算されたものである。式(2)のようなエピポーラ線との距離の閾値判定も同様に可能である。
x1 TEx2=0 …(3)
なお、基本行列Eに関しては、周知のように基礎行列Fから算出することが可能であるほか、周知の5-pointアルゴリズムによって点対応から算出することも可能である。例えば、基礎行列Fより各画像G1,G2のカメラの焦点距離f1,f2を抽出したうえで基本行列Eが抽出可能である。
(補足5)第一評価部22は、モデル生成部23及びモデル検証部25においてエピポーラ幾何モデルではなく平面射影幾何モデルを用いる場合も利用可能である。ただし、平面射影幾何モデルを用いる場合は、第二評価部24及び第三評価部26は省略されることとなるが、当該省略された構成のもとで図2や図4で説明したフローに沿ってRANSAC系の処理を実施することができる。
平面射影幾何モデルを用いる場合、モデル生成部23では与えられた点対応を利用して、一方の座標系(画像G1の座標系)から他方の座標系(画像G2の座標系)へ写像を行う周知のホモグラフィー(Homography)行列を算出して、モデルとして用いればよい。ここで、図3で説明したエピポーラ幾何モデルの場合と異なり、平面射影幾何モデルの場合、インライアは同一立体物の同一点ではなく同一平面上にある同一特徴点の対応となるので、質問画像G1とこれに対する正解画像としての参照画像G2は、そのような平面上にあるものとして(例えば平面状の対象物として同一ポスター等を別角度から撮影したものを画像G1,G2として)用意しておくものとする。なお、ホモグラフィ行列の計算は周知であり、点対応としては少なくとも4つがあればよいので、抽出部21ではそのように抽出を行えばよい。また、モデル検証部25では求めたホモグラフィ行列Hを適用して画像G2の点の座標x2を画像G1の座標系に変換した位置H(x2)を求め、対応する画像G1の点の座標x1との距離|x1-H(x2)|が閾値以下となるような点対応{x1,x2}をインライアと判定すればよい。
(補足6)本発明は、コンピュータを幾何検証装置10の各部の全て又はその任意の一部分として機能させるプログラムとしても提供可能である。当該コンピュータには、CPU(中央演算装置)、メモリ及び各種I/Fといった周知のハードウェア構成のものを採用することができ、CPUが幾何検証装置10の各部の機能に対応する命令を実行することとなる。