説明

画像処理装置、画像処理方法、及びプログラム

【課題】従来よりもロバスト性及び精度の高い水平視差の検出を行なうことが可能な、新規かつ改良された画像処理装置等を提供する。
【解決手段】画像処理装置は、同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像のうち、基準画像を構成する基準画素と、参照画像を構成する画素のうち、基準画素と同じ高さ位置に存在する第1の参照画素、及び第1の参照画素と高さ位置が異なる第2の参照画素と、を対比し、当該対比の結果に基づいて、基準画素の水平視差を検出する水平視差検出部を備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【0002】
立体視専用の眼鏡がなくても、画像の立体視表示が可能な裸眼立体視表示装置が知られている。裸眼立体視表示装置は、同じ被写体が異なる水平位置に描かれた複数の画像を取得する。そして、裸眼立体視表示装置は、これらの画像のうち、被写体が描かれた部分である被写体画像同士を対比し、被写体画像同士の水平位置のずれ、即ち水平視差を検出する。そして、裸眼立体視表示装置は、検出された水平視差と、取得した画像とに基づいて、多視点画像を複数生成し、これらの多視点画像を立体視表示する。裸眼立体視表示装置が水平視差を検出する手法として、特許文献1に記載されたローカルマッチング、及び特許文献2に記載されたグローバルマッチングが知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−164297号公報
【特許文献2】特許第4410007号
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、ローカルマッチングには、視差検出のロバスト性及び精度が低いという問題があった。これに対し、グローバルマッチングは、裸眼立体視表示装置が取得した画像の品質が高い、即ち、被写体画像同士の垂直位置にズレがない(垂直ズレがない)場合には、視差検出のロバスト性が高かったが、被写体画像同士の垂直位置にズレがある(垂直ズレがある)場合には、視差検出のロバスト性及び精度が大きく低下するという問題があった。
【0005】
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、従来よりもロバスト性及び精度の高い水平視差の検出を行なうことが可能な、新規かつ改良された画像処理装置、画像処理方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明のある観点によれば、同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像のうち、基準画像を構成する基準画素と、参照画像を構成する画素のうち、基準画素と同じ高さ位置に存在する第1の参照画素、及び第1の参照画素と高さ位置が異なる第2の参照画素と、を対比し、当該対比の結果に基づいて、基準画素の水平視差を検出する水平視差検出部を備える、画像処理装置が提供される。
【0007】
ここで、水平視差検出部は、基準画素を含む基準領域内の特徴量と、第1の参照画素を含む第1の参照領域内の特徴量との差分を評価する第1の評価値と、基準領域内の特徴量と、第2の参照画素を含む第2の参照領域内の特徴量との差分を評価する第2の評価値と、を算出し、第1の評価値及び第2の評価値に基づいて、基準画素の水平視差を検出するようにしてもよい。
【0008】
また、水平視差が検出される前に、基準画像及び参照画像を補正する補正実行部と、補正実行部による補正の信頼度を算出する補正信頼度算出部と、を備え、水平視差検出部は、補正信頼度算出部が算出した信頼度に基づいて、第1の評価値及び第2の評価値を算出するようにしてもよい。
【0009】
また、水平視差検出部は、基準画素の特徴量の単位時間あたりの変化量を算出し、算出された変化量に基づいて、第1の評価値及び第2の評価値を算出するようにしてもよい。
【0010】
また、水平視差検出部は、基準画像の解像度を落とすことでモザイク画像を生成し、基準画像内の基準画素の特徴量と、モザイク画像内の基準画素の特徴量との差分を算出し、算出された差分に基づいて、第1の評価値及び第2の評価値を算出するようにしてもよい。
【0011】
また、水平視差検出部は、基準画素の水平位置と、基準画素の水平視差とがノードの成分となり、第1の評価値及び第2の評価値のうち、第1の評価値及び第2の評価値によって評価される差分の絶対値が小さい方の評価値がノードのスコアとなるDPマップを生成し、基準画素と基準画素の周辺領域の画素との特徴量の差分と、参照画像を構成する画素のうち、基準画素と同じ位置に存在する基準対応画素と、基準対応画素の周辺領域の画素との特徴量の差分と、ノードのスコアと、に基づいて、始点からノードに至るまでの累積コストを算出し、始点から終点までの累積コストが最小となる最短経路を算出し、算出された最短経路に基づいて、基準画素の水平視差を検出するようにしてもよい。
【0012】
また、第2の参照画素と第1の参照画素との高さ位置の差分は、所定の範囲内に制限されるようにしてもよい。
【0013】
また、水平視差検出部である第1の水平視差検出部と異なる検出方法によって、基準画素の水平視差を検出する第2の水平視差検出部と、第1の水平視差検出部が検出した基準画素の水平視差と、第2の水平視差検出部が検出した基準画素の水平視差と、の信頼度をそれぞれ算出し、基準画素毎に信頼度の大きい水平視差を示すディスパリティマップを生成するディスパリティマップ統合部と、を備えるようにしてもよい。
【0014】
また、ディスパリティマップ統合部は、第1の水平視差検出部が検出した基準画素の水平視差と、第2の水平視差検出部が検出した基準画素の水平視差との信頼度をそれぞれ異なる評価手法により算出するようにしてもよい。
【0015】
本発明の他の観点によれば、同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像のうち、基準画像を構成する基準画素と、参照画像を構成する画素のうち、基準画素と同じ高さ位置に存在する第1の参照画素、及び第1の参照画素と高さ位置が異なる第2の参照画素と、を対比し、当該対比の結果に基づいて、基準画素の水平視差を検出するステップを含む、画像処理方法が提供される。
【0016】
本発明の他の観点によれば、コンピュータに、同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像のうち、基準画像を構成する基準画素と、参照画像を構成する画素のうち、基準画素と同じ高さ位置に存在する第1の参照画素、及び第1の参照画素と高さ位置が異なる第2の参照画素と、を対比し、当該対比の結果に基づいて、基準画素の水平視差を検出する水平視差検出機能を実現させる、プログラムが提供される。
【発明の効果】
【0017】
以上説明したように本発明は、基準画素の水平視差検出の際に、基準画素と同じ高さ位置の第1の参照画素の他、基準画素と異なる高さ位置の第2の参照画素も考慮するので、幾何ズレ(垂直ズレ)に強い水平視差の検出を行なうことができる。これにより、本発明は、従来よりもロバスト性及び制度の高い水平視差の検出を行うことができる。
【図面の簡単な説明】
【0018】
【図1】裸眼立体視表示装置による処理の概要を示すフローチャートである。
【図2】入力画像同士の色ズレを示す説明図である。
【図3】入力画像同士の幾何ズレを示す説明図である。
【図4】視差マップ(ディスパリティマップ)及び多視点画像が生成される様子を示す説明図である。
【図5】本発明の実施形態に係る画像処理装置の構成を示すブロック図である。
【図6】カラーキャリブレーション部の構成を示すブロック図である。
【図7】ヒストグラムマッチング部の構成を示すブロック図である。
【図8】入力画像が複数のブロックに分割される様子を示す説明図である。
【図9】ブロックごとに生成されるカラーヒストグラムである。
【図10】カラーヒストグラムマッチングに使用される色対応検出用DPマップである。
【図11】線形カラーパラメータフィッティング部の構成を示すブロック図である。
【図12】カラーキャリブレーションを行った画像とカラーキャリブレーションを行っていない画像とのそれぞれにおけるガンマ曲線を対比して示す説明図である。
【図13】非線形カラーパラメータフィッティング部の構成を示すブロック図である。
【図14】評価部の構成を示すブロック図である。
【図15】カラーキャリブレーションを行った後に生成された多視点画像とカラーキャリブレーションを行わずに生成された多視点画像とを対比して示す説明図である。
【図16】幾何キャリブレーション部の構成を示すブロック図である。
【図17】特徴量マッチング処理が行われた入力画像を示す説明図である。
【図18】対応点リファインメント部の構成を示すブロック図である。
【図19】各ブロック内のベクトルの頻度分布を示すヒストグラムである。
【図20】ミーンシフト(Mean Shift)処理の様子を示す説明図である。
【図21】線形幾何パラメータフィッティング部の構成を示すブロック図である。
【図22】初期化部の構成を示すブロック図である。
【図23】F行列に時間的な拘束をどの程度作用させるかを示す重みを決定するためのグラフである。
【図24】線形幾何パラメータ算出部の構成を示すブロック図である。
【図25】非線形幾何パラメータフィッティング部の構成を示すブロック図である。
【図26】時間的に拘束されていないF行列のパラメータと、時間的に拘束されたF行列のパラメータとが時間の経過に応じて変動する様子を示すグラフである。
【図27】F行列が時間の経過に応じて収束する様子を示すグラフである。
【図28】線形幾何パラメータフィッティング部の他の例を示すブロック図である。
【図29】射影成分算出部の構成を示すブロック図である。
【図30】回転成分算出部の構成を示すブロック図である。
【図31】並進成分算出部の構成を示すブロック図である。
【図32】線形幾何パラメータフィッティング部の他の例を示すブロック図である。
【図33】F行列を更新する際に使用される更新テーブルである。
【図34】更新テーブルにより更新されたF行列が時間の経過に応じて収束する様子を示すグラフである。
【図35】幾何キャリブレーションを行ったF行列の成分と、エラー値との対応関係を示すグラフである。
【図36】画像擦り合わせによる幾何キャリブレーションの様子を示す説明図である。
【図37】視差検出部の構成を示すブロック図である。
【図38】グローバルマッチング部の構成を示すブロック図である。
【図39】モーション記述部の構成を示すブロック図である。
【図40】アンカーベクトル構築部の構成を示すブロック図である。
【図41】視差の頻度を示すローカルヒストグラムである。
【図42】経路構築部の構成を示すブロック図である。
【図43】視差マッチングを行なう際に使用されるDPマップである。
【図44】信頼度マップを示す説明図である。
【図45】各種の視差マップに基づいて生成された多視点画像を示す説明図である。
【図46】カラーキャリブレーションの手順を示すフローチャートである。
【図47】幾何キャリブレーションの手順を示すフローチャートである。
【図48】視差検出の手順を示すフローチャートである。
【発明を実施するための形態】
【0019】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0020】
なお、説明は以下の順序で行うものとする。
1.裸眼立体視表示装置が行なう処理の概要
2.画像処理装置の構成
2−1.カラーキャリブレーション部の構成
2−2.幾何キャリブレーション部の構成
2−3.視差検出部の構成
3.画像処理装置が行なう処理
【0021】
<1.裸眼立体視表示装置が行なう処理の概要>
本願の発明者は、立体視専用の眼鏡がなくても、画像の立体視表示が可能な裸眼立体視表示装置について鋭意研究を重ね、その過程において、本実施の形態に係る画像処理装置を発明するに至った。ここで、立体視表示とは、視認者に両眼視差を生じさせることで、画像を立体的に表示することを意味する。
【0022】
そこで、まず、画像処理装置を含む裸眼立体視表示装置が行なう処理について、図1に示すフローチャートに沿って説明する。
【0023】
ステップS1において、裸眼立体視表示装置は、現フレームの入力画像V、Vを取得する。図2、図3に入力画像V、Vの一例を示す。なお、本実施の形態では、入力画像V、Vの左上端の画素を原点とし、水平方向をx軸、垂直方向をy軸とする。右方向がx軸の正方向であり、下方向がy軸の正方向である。各画素は、座標情報(x、y)と、色情報(輝度(明度)、彩度、色相)とを有している。以下、入力画像V(及び入力画像Vに各キャリブレーションを行なうことで得られる画像)上の画素を「左側座標点」とも称し、入力画像V(及び入力画像Vに各キャリブレーションを行なうことで得られる画像)上の画素を「右側座標点」とも称する。
【0024】
図2、図3に示すように、入力画像V、Vには同じ被写体(例えば海、魚、ペンギン)が互いに異なる水平位置(x座標)に描かれている。
【0025】
図2に示す入力画像V、Vは、互いに色ズレが起こっている。すなわち、同じ被写体が入力画像Vと入力画像Vとで異なる色で描かれている。例えば、被写体画像V1と被写体画像V1とはいずれも同じ海を示すが、色が互いに異なっている。一方、図3に示す入力画像V、Vは、互いに幾何ズレが起こっている。すなわち、同じ被写体が異なる高さ位置(y座標)に描かれている。例えば、被写体画像V2と被写体画像V2とはいずれも同じペンギンを示すが、被写体画像V2のy座標と被写体画像V2のy座標とは互いに異なっている。図3には、幾何ズレの理解を容易にするために、直線L1、L2が描かれている。
【0026】
そこで、裸眼立体視表示装置は、カラーキャリブレーション及び幾何キャリブレーションを行なうことで、これらのズレを低減する。すなわち、カラーキャリブレーションは、入力画像V、Vの色ズレを補正する処理であり、幾何キャリブレーションは、入力画像V、Vの幾何ズレを補正する処理である。
【0027】
ステップS2において、裸眼立体視表示装置は、カラーキャリブレーション及び幾何キャリブレーション済みの入力画像V、Vであるキャリブレーション済み画像VL−2、VR−2に基づいて、視差検出を行なう。視差検出の様子を図4に示す。
【0028】
図4に示すように、裸眼立体視表示装置は、キャリブレーション済み画像VL−2上の座標点PL−21と、エピポーラ線EPR−21上の各点との水平視差d1(x座標の差)を算出し、これらのうち最適なもの、即ち座標点PR−21との水平視差d1を座標点PL−21の水平視差d1とする。ここで、エピポーラ線EPR−21は、キャリブレーション済み画像VR−2上に描かれ、座標点PL−21と同じy座標を有し、水平方向に伸びる直線である。このような探索が可能になるのは、裸眼立体視表示装置が予め幾何キャリブレーションを行なうことで、キャリブレーション済み画像VL−2とキャリブレーション済み画像VR−2との幾何ズレが低減されているからである。
【0029】
裸眼立体視表示装置は、キャリブレーション済み画像VL−2上のすべての画素について水平視差d1を算出することで、視差マップ(ディスパリティマップ)DMを生成する。視差マップDMには、キャリブレーション済み画像VL−2上のすべての画素について水平視差d1が記述されている。図4では、水平視差d1の程度がハッチングの濃淡で示されている。
【0030】
ステップS3において、裸眼立体視表示装置は、視差マップDMと、キャリブレーション済み画像VL−2、VR−2とに基づいて、多視点画像Vを複数生成する。例えば、図4に示す多視点画像Vは、キャリブレーション済み画像VL−2とキャリブレーション済み画像VR−2との間を補間する画像である。したがって、画素PL−21が示す被写体上の点と同じ点を示す画素P1は、画素PL−21と画素PR−21との間に存在する。
【0031】
ここで、各多視点画像Vは、裸眼立体視表示装置によって立体視表示される画像であり、それぞれ異なる視点(視認者の目の位置)に対応する。すなわち、視認者の目が視認する多視点画像Vは、視認者の目の位置に応じて異なる。例えば、視認者の右目と左目とは異なる位置に存在するので、互いに異なる各多視点画像Vを視認する。これにより、視認者は、多視点画像Vを立体視することができる。また、視認者が移動することによって、視認者の視点が変わっても、その視点に対応する多視点画像Vがあれば、視認者は多視点画像Vを立体視することができる。このように、多視点画像Vの数が多いほど、視認者はより多くの位置で多視点画像Vを立体視することができる。また、多視点画像Vが多いほど、逆視、即ち視認者が本来右目で視認すべき多視点画像Vを左目で視認するという現象が生じにくくなる。また、多視点画像Vを複数生成することによって、運動視差の表現が可能となる。
【0032】
ステップS4において、裸眼立体視表示装置は、フォールバックを行なう。この処理は、概略的には、各多視点画像Vをその内容に応じて再度補正する処理である。ステップS5において、裸眼立体視表示装置は、各多視点画像Vを立体視表示する。
【0033】
<2.画像処理装置の構成>
次に、本実施の形態に係る画像処理装置1の構成を図面に基づいて説明する。図5に示すように、画像処理装置1は、カラーキャリブレーション部2と、幾何キャリブレーション部3と、視差検出部4とを備える。カラーキャリブレーション部2は、現フレームの入力画像V、Vに対して上述したカラーキャリブレーションを行い、幾何キャリブレーション部3は、カラーキャリブレーション済みの入力画像V、Vであるカラーキャリブレーション済み画像VL−1、VR−1に対して上述した幾何キャリブレーションを行う。視差検出部4は、キャリブレーション済み画像VL−2、VR−2に対して上述した視差検出を行なう。したがって、画像処理装置1は、裸眼立体視表示装置が行う処理のうち、上述したステップS1〜S2の処理を行う。
【0034】
<2−1.カラーキャリブレーション部の構成>
次に、カラーキャリブレーション部2の構成を図6に基づいて説明する。図6に示すように、カラーキャリブレーション部2は、ヒストグラムマッチング部201と、線形カラーパラメータフィッティング部202と、特徴量マッチング部203と、非線形カラーパラメータフィッティング部204と、評価部205と、カラーキャリブレーション実行部206とを備える。
【0035】
[ヒストグラムマッチング部の構成]
ヒストグラムマッチング部201は、図7に示すように、ブロック分割部207と、ヒストグラム生成部208と、DP(Dynamic Programing)マッチング部209と、カラーペア算出部210とを備える。
【0036】
ブロック分割部207は、図8(a)に示すように、入力画像Vを8つの画素ブロックBL−1に分割する。ここで、各画素ブロックBL−1は矩形となっており、すべて同じ大きさである。また、ブロック分割部207は、各画素ブロックBL−1の中心点となる画素を抽出し、抽出された画素の座標を各画素ブロックBL−1の座標とする。
【0037】
同様に、ブロック分割部207は、図8(b)に示すように、入力画像Vを8つの画素ブロックBR−1に分割する。ここで、各画素ブロックBR−1は画素ブロックBL−1と同じ大きさ、形状となっている。また、ブロック分割部207は、各画素ブロックBR−1の中心点となる画素を抽出し、抽出された画素の座標を各画素ブロックBR−1の座標とする。したがって、各画素ブロックBL−1には、同じ座標を有する画素ブロックBR−1が存在する。言い換えれば、画素ブロックBL−1と画素ブロックBR−1とは1対1で対応する。そこで、ブロック分割部207は、画素ブロックBL−1と画素ブロックBR−1とを対応付ける。なお、画素ブロックBL−1、BR−1の数は8に限定されない。
【0038】
そして、ブロック分割部207は、各画素ブロックBL−1、BR−1内の階調を64階調に落とす。なお、各画素ブロックBL−1、BR−1内の階調は64階調に限定されない。元の入力画像V、Vの階調も特に限定されるものではないが、例えば1024階調となる。そして、ブロック分割部207は、各画素ブロックBL−1、BR−1に関するブロック情報をヒストグラム生成部208に出力する。
【0039】
ヒストグラム生成部208は、ブロック情報に基づいて、以下の処理を行う。すなわち、ヒストグラム生成部208は、画素ブロックBL−1毎に、図9(a)に示すようなカラーヒストグラムCHを生成する。このカラーヒストグラムCHは、画素ブロックBL−1内の輝度分布、即ち、輝度と、その輝度を有する画素の数(頻度)との対応関係を示す。ここでは、輝度は0〜63の整数値で与えられる。同様に、ヒストグラム生成部208は、画素ブロックBR−1毎に、図9(b)に示すようなカラーヒストグラムCHを生成する。このカラーヒストグラムCHは、画素ブロックBR−1内の輝度分布、即ち、輝度と、その輝度を有する画素の数(頻度)との対応関係を示す。画素ブロックBL−1と画素ブロックBR−1とが1対1で対応するので、カラーヒストグラムCHとカラーヒストグラムCHとは1対1で対応する。そこで、ヒストグラム生成部208は、カラーヒストグラムCHとカラーヒストグラムCHとを対応付ける。そして、ヒストグラム生成部208は、カラーヒストグラムCH、CHに関するカラーヒストグラム情報を生成し、DPマッチング部209に出力する。
【0040】
DPマッチング部209(マッチング部)は、カラーヒストグラム情報に基づいて、画素ブロックBL−1と、画素ブロックBL−1に対応する画素ブロックBR−1との組毎に、以下の処理を行なう。すなわち、DPマッチング部209は、まず、図10に示すような色対応検出用DPマップを生成する。色対応検出用DPマップの縦軸は、画素ブロックBL−1内の輝度毎の頻度を示す。たとえば、FL(n)は、輝度n(nは0〜63の整数)の頻度を示す。一方、色対応検出用DPマップの横軸は、画素ブロックBR−1内の輝度毎の頻度を示す。たとえば、FL(n)は、輝度n(nは0〜63の整数)の頻度を示す。また、頻度FL(n)、頻度FL(n)を示すノードは、P(n、n)で表される。
【0041】
そして、DPマッチング部209は、ノードP(0、0)を始点、ノードP(63、63)を終点とし、始点からノードP(n、n)に至るまでの累積コストを以下のように定義する。
【0042】
【数1】

【0043】
ここで、DFI(n、nは、経路PA0を通ってノードP(n、n)に至るときの累積コストであり、DFI(n、nは、経路PA1を通ってノードP(n、n)に至るときの累積コストであり、DFI(n、nは、経路PA2を通ってノードP(n、n)に至るときの累積コストである。また、DFI(n、n−1)は始点からノードP(n、n−1)に至るまでの累積コストである。DFI(n−1、n)は始点からノードP(n−1、n)に至るまでの累積コストである。DFI(n−1、n−1)は始点からノードP(n−1、n−1)に至るまでの累積コストである。
【0044】
DPマッチング部209は、始点から終点を含む各ノードまでの累積コストを計算し、最小の累積コストとなる経路を終点から始点に向かって逆にたどることで、最短経路、即ち始点から終点までの累積コストが最小となる経路を算出する。この最短経路上のノードは、互いに類似する輝度のペアを示す。例えば、最短経路がノードP(n、n)を通る場合、輝度nと輝度nとが類似することになる。DPマッチング部209は、画素ブロックBL−1、BR−1の組毎に算出された最短経路に関する最短経路情報を生成し、カラーペア算出部210に出力する。
【0045】
カラーペア算出部210は、最短経路情報に基づいて、画素ブロックBL−1、BR−1の組毎にカラーペアを算出する。即ち、カラーペア算出部210は、最短経路上のノードが示す輝度のペア、即ち互いに類似する輝度のペアをカラーペアとして算出する。カラーペア算出部210は、1つの画素ブロックBL−1あたり250個程度のカラーペアを算出し、合計で2000個程度のカラーペアを算出する。カラーペア算出部210は、算出されたカラーペアに関するカラーペア情報を生成し、線形カラーパラメータフィッティング部202及び非線形カラーパラメータフィッティング部204に出力する。
【0046】
したがって、ヒストグラムマッチング部201は、画素ブロックBL−1、BR−1内の階調を入力画像V、Vの階調よりも落とすので、ヒストグラムCH、CH等のデータ量を低減することができる。なお、階調が落ちることによって、入力画像V、Vの複数種類の輝度が1つの輝度に分類されることになるので、カラーキャリブレーションの精度が低下することが想定される。そこで、ヒストグラムマッチング部201は、精度の低下を、複数の画素ブロックBL−1、BR−1でカラーペアを算出する、即ちカラーペアの数を増やすことで賄っている。
【0047】
[線形カラーパラメータフィッティング部の構成]
線形カラーパラメータフィッティング部202は、図11に示すように、足し込み行列算出部211と、係数算出部212と、フィルタ部213と、係数保持部214とを備える。
【0048】
線形カラーパラメータフィッティング部202は、カラーペア情報に基づいて、入力画像Vの輝度と入力画像Vの輝度との対応関係を示すモデル式を線形演算により算出する。そこで、まず、このモデル式について説明する。
【0049】
入力画像V、Vのガンマ値が1近傍であると仮定すると、入力画像Vの輝度は、入力画像Vの輝度を用いて以下のように表される。
【0050】
【数2】

【0051】
ここで、Lは入力画像Vの輝度であり、Rは入力画像Vの輝度である。αは裸眼立体視表示装置のゲインであり、γは裸眼立体視表示装置のガンマ値である。即ち、入力画像V、Vの輝度がゲイン及びガンマ値で拘束されている。このようにすることで、くすみのない画像が得られる。式(4)をテイラー展開すると、以下の式(6)が得られる。
【0052】
【数3】

【0053】
ここで、w(iは0以上の整数)は係数、即ちカラー補正係数である。式(6)がモデル式となる。なお、式(6)にオフセット項wを加えた以下の式(7)は、式(6)よりも入力画像V、Vの輝度の変化に正確に追従することができる。そこで、線形カラーパラメータフィッティング部202は、式(6)または式(7)をモデル式(即ち近似式)とする。
【0054】
【数4】

【0055】
ここで、coef(w)はカラー補正係数w、wを示す。
【0056】
次に、各構成要素が行う処理について説明する。足し込み行列算出部211は、以下の式(8)で表される行列をすべてのカラーペアについて算出する。
【0057】
【数5】

【0058】
ここで、n1は2以上の任意の整数であり、n1の値が大きいほど、算出される係数の数が大きくなり、モデル式の精度が向上する。n1の値は、要求される精度、及び処理速度等に応じて決定され、例えば2〜5となる。
【0059】
次に、足し込み行列算出部211は、算出された行列をすべて足し込むことで、以下の式(9)で示される足し込み行列Mを算出する。
【0060】
【数6】

【0061】
足し込み行列算出部211は、算出された足し込み行列Mに関する足し込み行列情報を生成し、カラーペア情報と共に係数算出部212に出力する。
【0062】
係数算出部212(モデル式算出部)は、カラーペア情報に基づいて、以下の式(10)で表される行列をすべてのカラーペアについて算出する。
【0063】
【数7】

【0064】
係数算出部212は、算出された行列をすべて足し込むことで、以下の式(11)で示される係数算出用行列Aを算出する。
【0065】
【数8】

【0066】
次に、係数算出部212は、以下の式(12)に基づいて、カラー補正係数wi、waの第1初期値coef(w)を算出する。
【0067】
【数9】

【0068】
係数算出部212は、算出された第1初期値coef(w)に関する第1初期値情報を生成し、フィルタ部213に出力する。
【0069】
フィルタ部213は、係数算出部212から与えられた第1初期値情報と、係数保持部214から与えられた前フレーム(現フレームよりも1つ前のフレーム)の線形補正係数情報と、以下の式(13)とに基づいて、カラー補正係数wi、waの第2初期値coef(w)を算出する。
【0070】
【数10】

【0071】
ここで、oldcoef(linear)は、前フレームの線形補正係数、即ち前フレームのカラー補正係数wi、waであり、wは前フレームの線形補正係数oldcoef(linear)を第2初期値coef(w)にどの程度作用させるかを示す重みである。重みwの値が大きい(重みが大きい)ほど、第2初期値coef(w)に前フレームの線形補正係数oldcoef(linear)が大きく作用することになる。重みwの値は、例えば0.5〜0.9となる。
【0072】
次いで、フィルタ部213は、第2初期値coef(w)にIIRフィルタを作用させる。フィルタ部213は、これにより得られたカラー補正係数wi、waを線形補正係数coef(linear)とし、線形補正係数coef(linear)に関する線形補正係数情報を係数保持部214、非線形カラーパラメータフィッティング部204、評価部205、カラーキャリブレーション実行部206に出力する。
【0073】
係数保持部214は、フィルタ部213から与えられた線形補正係数情報を保持し、次フレームの第2初期値coef(w)が算出される際に、当該保持された線形補正係数情報を前フレームの線形補正係数情報としてフィルタ部213に出力する。
【0074】
図12に、線形補正係数coef(linear)によって補正された入力画像V、Vのガンマ曲線L1と、補正を行わなかった時の入力画像V、Vのガンマ曲線L2とをガンマ値毎に対比して示す。即ち、図12(a)ではγ=0.6、図12(b)ではγ=0.8、図12(c)ではγ=1.2、図12(d)ではγ=1.4となっている。なお、図12では、式(6)がモデル式となっており、n1=2となっている。図12によれば、カラーキャリブレーション部2は、線形補正係数coef(linear)を用いてカラーキャリブレーションを行なうことで、入力画像V、Vの明るさや鮮やかさを実質的に維持しつつ、輝度の補正を行うことができる。
【0075】
[特徴量マッチング部の構成]
図6に示す特徴量マッチング部203は、現フレームの入力画像V、Vの輝度をマッチングさせることで、カラーペアを抽出する。具体的には、特徴量マッチング部203は、入力画像V、Vから、所定値(例えば、32〜1024)以上の輝度を有する特徴点を抽出する。次いで、特徴量マッチング部203は、入力画像Vの各特徴点について、以下の処理を行なう。すなわち、特徴量マッチング部203は、入力画像Vの特徴点の近傍に存在する(すなわち、x座標の差分の絶対値が64〜256以下で、かつ、y座標の差分の絶対値が8〜64以下となる)入力画像Vの特徴点のうち、輝度が最も類似する(即ち、輝度の差分の絶対値が最も小さい)特徴点を抽出し、この特徴点と入力画像Vの特徴点とを特徴点のペア、すなわちカラーペアとする。ついで、特徴量マッチング部203は、抽出されたカラーペアに関するカラーペア情報を生成し、非線形カラーパラメータフィッティング部204及び評価部205に出力する。
【0076】
[非線形カラーパラメータフィッティング部の構成]
非線形カラーパラメータフィッティング部204は、ヒストグラムマッチング部201及び特徴量マッチング部203から与えられたカラーペア情報と、線形カラーパラメータフィッティング部202から与えられた線形補正係数情報とに基づいて、カラー補正係数wi、waを非線形演算により算出する。
【0077】
具体的には、非線形カラーパラメータフィッティング部204は、図13に示すように、ヤコビ行列算出部215と、ヘッセ行列算出部216と、係数更新部217とを備える。
【0078】
ヤコビ行列算出部215は、線形カラーパラメータフィッティング部202から与えられた線形補正係数情報と、ヒストグラムマッチング部201及び特徴量マッチング部203から与えられたカラーペア情報とに基づいて、以下の式(14)で表されるヤコビ行列Jを算出する。
【0079】
【数11】

【0080】
ここで、Lは入力画像Vの輝度であり、Rは入力画像Vの輝度であり、coef(w)はカラー補正係数wi、waを示す。fe1(L,R,coef(w))は、いわゆるエラー関数であり、以下の式(15)で表される。fe10〜fe1mは、エラー関数fe1(L,R,coef(w))にそれぞれ異なるカラーペア情報を代入したものである。
【0081】
【数12】

【0082】
ここで、g(R,coef(w))は、式(7)に示すように、入力画像Vの輝度を入力画像Vの輝度及びカラー補正係数wi、waで近似した式であるので、(L−g(R,coef(w)))の値は、入力画像Vの実際の値と近似値との誤差(error)を示す。また、RobustFuncは誤差を0〜1の範囲内の値に正規化する関数であり、例えば以下の式(16)で表される。
【0083】
【数13】

【0084】
ここで、wは係数(重み)であり、例えば0.1〜8.0となる。なお、式(15)では、誤差が(L−g(R,coef(w)))とされているが、誤差は他の値、例えば(g(L,coef(w))−g(R,coef(w)))であってもよい。ここで、g(L,coef(w))は、入力画像Vの輝度を入力画像Vの輝度及びカラー補正係数wi、waで近似した値であり、以下の式(7−1)及び(7−2)で表される。
【0085】
【数14】

【0086】
そして、ヤコビ行列算出部215は、算出されたヤコビ行列Jに関するヤコビ行列情報を生成し、ヘッセ行列算出部216に出力する。
【0087】
また、ヤコビ行列算出部215は、後述する係数更新部216から非線形補正係数情報を与えられた場合には、当該非線形補正係数情報が示す非線形補正係数coef(nonlinear)と、カラーペア情報とに基づいて、上述したヤコビ行列Jを算出する。そして、ヤコビ行列算出部215は、算出されたヤコビ行列Jに関するヤコビ行列情報を生成し、ヘッセ行列算出部216に出力する。
【0088】
ヘッセ行列算出部216は、ヤコビ行列算出部216から与えられた情報に基づいて、以下の式(17)で示されるヘッセ行列Hを算出する。
【0089】
【数15】

【0090】
次いで、ヘッセ行列算出部216は、算出されたヘッセ行列Hに関するヘッセ行列情報を生成し、ヤコビ行列算出部215から与えられた情報と共に係数更新部217に出力する。
【0091】
係数更新部217は、ヘッセ行列算出部216から与えられた情報と、以下の式(18)とに基づいて、カラー補正係数w、wを非線形補正係数coef(nonlinear)として算出する。
【0092】
【数16】

【0093】
ここで、Iは単位行列である。wは係数(重み)であり、例えば1.0〜0.0となる。
【0094】
次いで、係数更新部217は、算出された非線形補正係数coef(nonlinear)に関する非線形補正係数情報を生成し、非線形補正係数coef(nonlinear)が一定の値に収束したかを判定する。係数更新部217は、非線形補正係数coef(nonlinear)が収束したと判定した場合には、非線形補正係数情報を評価部205及びカラーキャリブレーション実行部206に出力し、非線形補正係数coef(nonlinear)が収束していないと判定した場合には、非線形補正係数情報をヤコビ行列算出部215に出力する。その後、非線形補正係数coef(nonlinear)が再計算される。したがって、非線形カラーパラメータフィッティング部204は、線形補正係数coef(linear)を初期値として非線形補正係数coef(nonlinear)を算出し、非線形補正係数coef(nonlinear)が一定の値に収束するまで非線形補正係数coef(nonlinear)の算出を繰り返す。
【0095】
[評価部の構成]
評価部14(補正信頼度算出部)は、図14に示すように、カラーコンバート部218と、ヒストグラムベース信頼度算出部219と、特徴点ベース信頼度算出部220と、信頼度マップ生成部221とを備える。
【0096】
カラーコンバート部218は、現フレームの入力画像V、Vを取得する。カラーコンバート部218は、入力画像V、Vと、線形カラーパラメータフィッティング部202から与えられた線形補正係数情報と、に基づいて、入力画像Vの輝度を補正する。具体的には、カラーコンバート部218は、入力画像Vの輝度と、線形補正係数coef(linear)とを式(7)のg(R,coef)に代入することで、g(R,coef)の値を算出する。算出された値は、入力画像Vの輝度に対応する入力画像Vの輝度を示すので、カラーコンバート部218は、この値を新たな入力画像Vの輝度とする。これにより、入力画像Vの輝度と入力画像Vの輝度との差分が低減される。カラーコンバート部218は、入力画像Vと補正後の入力画像Vとを線形カラーキャリブレーション済み画像VL−1a、VR−1aとしてヒストグラムベース信頼度算出部219に出力する。
【0097】
ヒストグラムベース信頼度算出部219は、線形カラーキャリブレーション済み画像VL−1a、VR−1aをそれぞれ8つの画素ブロックBL−1、BR−1に分割する。ここで、画素ブロックBL−1、BR−1は、ヒストグラムマッチング部201が生成したものと同じである。そして、ヒストグラムベース信頼度算出部219は、輝度と、その輝度を有する画素の数(頻度)との対応関係を示す補正後カラーヒストグラムを、画素ブロックBL−1、BR−1毎に生成する。
【0098】
そして、ヒストグラムベース信頼度算出部219は、画素ブロックBL−1の補正後カラーヒストグラムと、画素ブロックBR−1の補正後カラーヒストグラムとの類似度を、正規化相互相関(NCC)を用いて算出する。なお、類似度の算出手法は特に限定されず、例えばインターセクションやBhattacharyya等を用いてもよい。
【0099】
ヒストグラムベース信頼度算出部219は、画素ブロックBL−1毎に類似度を算出し、これらの類似度を例えば上述した式(16)のerrorに代入することで、類似度を0〜1の範囲内の値に正規化する。そして、ヒストグラムベース信頼度算出部219は、正規化された値を線形補正係数coef(linear)の信頼度とする。そして、ヒストグラムベース信頼度算出部219は、算出された各画素ブロックBL−1の信頼度に関する線形補正係数信頼度情報を生成し、信頼度マップ生成部221に出力する。
【0100】
特徴点ベース信頼度算出部220は、特徴量マッチング部203から与えられたカラーペア情報に基づいて、入力画像V内の特徴点を8つの画素ブロックBL−1のそれぞれに分類する。ここで、画素ブロックBL−1はヒストグラムマッチング部201が生成したものと同じである。そして、特徴点ベース信頼度算出部220は、非線形カラーパラメータフィッティング部204から与えられた非線形補正係数情報に基づいて、画素ブロックBL−1毎に非線形補正係数coef(nonlinear)の信頼度を算出する。
【0101】
すなわち、特徴点ベース信頼度算出部220は、画素ブロックBL−1内の各特徴点について、上述したエラー関数fe1(L、R、coef)を用いて誤差を算出する。すなわち、特徴点ベース信頼度算出部220は、fe1(L、R、coef)のL、Rにカラーペア情報の値を、coefに非線形補正係数coef(nonlinear)の値を代入して演算することで、誤差を算出する。そして、特徴点ベース信頼度算出部220は、誤差が所定値(例えば0.5〜8.0)以下となる特徴点を抽出し、抽出した特徴点について、誤差の平均値を算出する。そして、特徴点ベース信頼度算出部220は、算出された平均値を非線形補正係数coef(nonlinear)の信頼度とする。なお、特徴点ベース信頼度算出部220は、誤差が所定値以下となる特徴点の数が所定値(例えば、0〜8)以下となる場合には、信頼度をゼロとする。これにより、特徴点ベース信頼度算出部220は、画素ブロックBL−1毎に非線形補正係数coef(nonlinear)の信頼度を算出する。特徴点ベース信頼度算出部220は、算出された各画素ブロックBL−1の信頼度に関する非線形補正係数信頼度情報を生成し、信頼度マップ生成部221に出力する。
【0102】
信頼度マップ生成部221は、ヒストグラムベース信頼度算出部219及び特徴点ベース信頼度算出部220から与えられた情報に基づいて、カラーキャリブレーション用信頼度マップを生成する。具体的には、信頼度マップ生成部221は、画素ブロックBL−1毎に、線形補正係数coef(linear)の信頼度と非線形補正係数coef(nonlinear)の信頼度とを比較し、大きい方の信頼度をその画素ブロックBL−1の信頼度とする。また、信頼度マップ生成部221は、大きい信頼度を有する補正係数をその画素ブロックBL−1に関連付ける。これにより、信頼度マップ生成部221は、各画素ブロックBL−1に信頼度及び補正係数が関連付けられたカラーキャリブレーション用信頼度マップを生成する。そして、信頼度マップ生成部221は、生成されたカラーキャリブレーション用信頼度マップに関する信頼度マップ情報を生成し、カラーキャリブレーション実行部206及び視差検出部4に出力する。
【0103】
[カラーキャリブレーション実行部の構成]
図6に示すカラーキャリブレーション実行部206(補正実行部)は、現フレームの入力画像V、Vを取得する。さらに、カラーキャリブレーション実行部206は、信頼度マップ情報に基づいて、画素ブロックBL−1毎にどちらの補正係数を使用するかを決定する。そして、カラーキャリブレーション実行部206は、線形補正係数情報と、非線形補正係数情報とに基づいて、画素ブロックBL−1毎にカラーキャリブレーションを実行する。
【0104】
具体的には、カラーキャリブレーション実行部206は、画素ブロックBR−1から画素を抽出し、抽出された画素の輝度と、決定された補正係数とを上述した近似式g(R,coef)に代入して演算し、これにより得られた値を、当該画素の輝度とする。カラーキャリブレーション実行部206は、入力画像Vを構成するすべての画素についてこの処理を行なうことで、カラーキャリブレーションを実行する。カラーキャリブレーション実行部206は、カラーキャリブレーション済みの入力画像V、Vをカラーキャリブレーション済み画像VL−1、VR−1とし、図5に示す幾何キャリブレーション部3に出力する。
【0105】
図15(a)に、裸眼立体視表示装置がカラーキャリブレーションを実行せずに生成した多視点画像V1を示す。同様に、図15(b)に、裸眼立体視表示装置がカラーキャリブレーションを実行した後に生成した多視点画像V2を示す。多視点画像V1では、被写体画像V11が破綻しているが、多視点画像V2では、被写体画像V12が破綻していない。したがって、裸眼立体視表示装置は、カラーキャリブレーションを実行することで、破綻のない多視点画像を生成することができる。
【0106】
[カラーキャリブレーション部による効果]
次に、カラーキャリブレーション部2による効果について説明する。なお、以下の説明では、一部の効果を、特表2007−535829号公報、特開2009−122842号公報と対比して説明する。特表2007−535829号公報記載の技術は、色の分布を示すヒストグラムを画像毎に生成し、これらのヒストグラムをDPマッチングによりマッチングさせることで、色対応テーブルを生成する。そして、特表2007−535829号公報記載の技術は、色対応テーブルに基づいて、各画像の色を補正する。一方、特開2009−122842号公報記載の技術は、複数の画像から特徴点(例えば、人物の肩が描かれた点)を抽出し、特徴点同士の色の対応関係に基づいて、色変換用のモデル式を算出する。そして、特開2009−122842号公報記載の技術は、算出されたモデル式に基づいて、各画像の色を補正する。
【0107】
カラーキャリブレーション部2は、カラーペア情報に基づいて、入力画像Vの輝度を入力画像Vの輝度に変換するためのモデル式を算出する。ここで、カラーペア情報には、特徴点以外の画素が有する輝度情報も含まれている。そして、カラーキャリブレーション部2は、このモデル式にIIRフィルタをかけるので、ロバストなモデル式、特に時間的にロバストなモデル式を算出することができる。このため、カラーキャリブレーション部2は、従来よりもロバスト性の高い色情報の補正を行なうことができる。
【0108】
また、特開2009−122842号公報記載の技術は、色変換パラメータが単純なゲインや多項式で表されるものであったので、補正の精度が低いという問題があった。例えば、色変換パラメータは、ガンマ値の変化を表現しきれていなかった。これに対し、本実施形態のモデル式は、パラメータとして少なくともゲイン、及びガンマ値を含むので、カラーキャリブレーション部2は、精度良くカラーキャリブレーション、即ち色情報の補正を行なうことができる。特に、式(7)は、パラメータとしてこれらの他にオフセット項も含まれるので、より正確な色情報の補正を行うことができる。
【0109】
また、カラーキャリブレーション部2は、入力画像V、Vを複数の画素ブロックBL−1、BR−1に分割し、画素ブロックBL−1、BR−1の階調を落とす。そして、カラーキャリブレーション部2は、画素ブロックBL−1、BR−1毎にカラーヒストグラムCH、CHを生成し、これらのカラーヒストグラムCH、CHに基づいて、カラーペア情報を生成する。したがって、カラーキャリブレーション部2は、階調を落とした画素ブロックBL−1、BR−1に基づいて、カラーペア情報を生成するので、処理負荷の軽いカラーキャリブレーション(色情報の補正)を行なうことができる。また、カラーキャリブレーション部2は、カラーヒストグラムCH、CHをマッチングさせ、この結果に基づいてカラーペア情報を算出するので、より精度の高いカラーペア情報を算出することができる。特に、カラーキャリブレーション部2は、カラーヒストグラムCH、CHをDPマッチングによりマッチングさせるので、より精度の高いマッチングを行うことができる。
【0110】
また、特表2007−535829号公報記載の技術は、画像全体の色分布を示すヒストグラムを生成していたので、画像の解像度が高くなるに従ってヒストグラムのデータ量が大きくなり、処理負荷が重くなるという問題があった。これに対し、カラーキャリブレーション部2は、画素ブロックBL−1、BR−1の階調を落とすので、入力画像V、Vの解像度によらず、処理負荷の軽いカラーキャリブレーション(色情報の補正)を行なうことができる。
【0111】
また、カラーキャリブレーション部2は、画素ブロックBL−1、BR−1の階調を落とすことによる精度の低下を、画素ブロックBL−1毎にカラーペア情報を生成することでカバーすることができる。
【0112】
さらに、カラーキャリブレーション部2は、線形演算で算出したパラメータ、即ちカラー補正係数w、wを初期値として、非線形演算を行うので、より精度の高いパラメータ、即ちモデル式を算出することができる。
【0113】
さらに、カラーキャリブレーション部2は、線形演算で算出されたパラメータと、非線形演算で算出されたパラメータとのそれぞれについて信頼度を算出し、信頼度が高い方のパラメータに基づいてカラーキャリブレーションを行うので、精度の高い色情報の補正を行うことができる。
【0114】
<2−2.幾何キャリブレーション部の構成>
次に、幾何キャリブレーション部3の構成を図面に基づいて説明する。図16に示すように、幾何キャリブレーション部3は、特徴量マッチング部301と、対応点リファインメント部302と、線形幾何パラメータフィッティング部303と、非線形幾何パラメータフィッティング部304と、パラメータ選択部305と、幾何キャリブレーション実行部306とを備える。
【0115】
[特徴量マッチング部の構成]
特徴量マッチング部301は、カラーキャリブレーション済み画像VL−1、VR−1の輝度をマッチングさせることで、特徴量ベクトルを算出する。具体的には、特徴量マッチング部301は、カラーキャリブレーション済み画像VL−1、VR−1をそれぞれ64個の画素ブロックBL−2、BR−2に分割する。ここで、各画素ブロックBL−2、BR−2は矩形となっており、すべて同じ大きさである。また、特徴量マッチング部301は、各画素ブロックBL−2、BR−2の中心点となる画素を抽出し、抽出された画素の座標を各画素ブロックBL−2、BR−2の座標とする。したがって、各画素ブロックBL−2、と、各画素ブロックBR−2とは1対1で対応する。特徴量マッチング部301は、画素ブロックBL−2、BR−2毎に、所定値(例えば、32〜1024)以上の輝度を有する特徴点を抽出する。以下、カラーキャリブレーション済み画像VL−1の特徴点を「左側特徴点」とも称し、カラーキャリブレーション済み画像VR−1の特徴点を「右側特徴点」とも称する。次いで、特徴量マッチング部301は、各左側特徴点について、以下の処理を行なう。すなわち、特徴量マッチング部301は、左側特徴点の近傍に存在する(すなわち、x座標の差分の絶対値が64〜256以下で、かつ、y座標の差分の絶対値が8〜64以下となる)右側特徴点のうち、輝度が最も類似する(即ち、輝度の差分の絶対値が最も小さい)特徴点を抽出し、この右側特徴点と左側特徴点とを特徴点ペアとする。
【0116】
そして、特徴量マッチング部301は、特徴点ペアに基づいて、特徴量ベクトルVEを算出する。ここで、特徴量ベクトルVEの始点は、左側特徴点の座標(u、v)であり、成分は、(u−u、v−v)である。uは右側特徴点のx座標であり、vは右側特徴点のy座標である。図17に、特徴量ベクトルVE及び画素ブロックBL−2の一例を示す。なお、ここでは、画素ブロックBL−2はカラーキャリブレーション済み画像VL−1を4つに分割している。
【0117】
図17に示されるように、何らかのオブジェクトが描かれている部分には、同じ成分を有する多数の特徴量ベクトルVEが存在する。特徴量マッチング部301は、画素ブロックBL−2、BR−2及び特徴量ベクトルVEに関する特徴量ベクトル情報を生成し、対応点リファインメント部302及び非線形幾何パラメータフィッティング部304に出力する。なお、本実施の形態では、カラーキャリブレーションの後に幾何キャリブレーションを行うので、特徴量マッチング部301は、精度良く輝度のマッチングを行なうことができる。このため、幾何キャリブレーションの精度が向上する。もちろん、幾何キャリブレーションをカラーキャリブレーションの前に行ってもよい。この場合、カラーキャリブレーションにおいて、精度良く輝度のマッチングを行なうことができ、ひいては、カラーキャリブレーションの精度が向上する。
【0118】
[対応点リファインメント部の構成]
対応点リファインメント部302は、図18に示すように、ヒストグラム生成部307と、フィルタ部308と、最大頻度検出部309と、座標付与部310と、対応点選択部311とを備える。
【0119】
ヒストグラム生成部307は、特徴量ベクトル情報に基づいて、特徴量ベクトルVEの成分毎の頻度を示すベクトル成分ヒストグラムを画素ブロックBL−2毎に生成する。図19に、ベクトル成分ヒストグラムの例を示す。x軸、y軸はそれぞれ特徴量ベクトルVEのx成分、y成分を示し、z軸は、成分ごとの頻度を示す。画素ブロックBL−2内に何らかのオブジェクトが描かれている場合、そのオブジェクトが描かれている部分には、同じ成分を有する多数の特徴量ベクトルVEが存在する。したがって、この場合、ベクトル成分ヒストグラムは大きなピークを有する。ヒストグラム生成部307は、ベクトル成分ヒストグラムに関するベクトル成分ヒストグラム情報を生成し、フィルタ部308に出力する。
【0120】
フィルタ部308は、ベクトル成分ヒストグラム情報にガウシアンフィルタを複数回作用させることで、ベクトル成分ヒストグラムを平滑化させる。フィルタ部308は、平滑化されたベクトル成分ヒストグラムに関する平滑化ヒストグラム情報を生成し、最大頻度検出部309及び対応点選択部311に出力する。
【0121】
最大頻度検出部309は、平滑化ヒストグラム情報に基づいて、各ベクトル成分ヒストグラムから、頻度が最大となるx成分、y成分を特定する。そして、このようなx成分、y成分を有する特徴量ベクトルVEを、当該特徴量ベクトルVEが属する画素ブロックBL−2の代表ベクトルVEとする。これにより、最大頻度検出部309は、画素ブロックBL−2毎に代表ベクトルVEを算出する。最大頻度検出部309は、代表ベクトルVEの成分に関する代表ベクトル成分情報を生成し、座標付与部310に出力する。
【0122】
座標付与部310は、代表ベクトル成分情報に基づいて、各代表ベクトルVEの座標(始点の座標)を決定する。すなわち、代表ベクトルVEは、ベクトル成分ヒストグラムから算出されるものであるが、ベクトル成分ヒストグラムは、各特徴量ベクトルVEの座標情報を持っていないので、最大頻度検出部309が代表ベクトルVEを算出した時点では、代表ベクトルVEは座標情報を有していない。そこで、座標付与部310は、代表ベクトル情報に基づいて、各代表ベクトルVEの座標(始点の座標)を決定する。具体的には、座標付与部310は、図20に示すように、画素ブロックBL−2の中心点PL−111を代表ベクトルVEの座標の初期値とし、ミーンシフト処理を繰り返し行なう。ここで、ミーンシフト処理は、代表ベクトルVEの座標と、代表ベクトルVEと同じ成分を有する特徴量ベクトルVEの座標との平均値を算出し、この平均値を代表ベクトルVEの新たな座標とする処理である。したがって、ミーンシフト処理が繰り返されることで、代表ベクトルVEの座標は、代表ベクトルVEと同じ成分を有する特徴量ベクトルVEが密集している領域、すなわち密集領域に移動していく。座標付与部310は、代表ベクトルVEの座標が収束するまでミーンシフト処理を繰り返し行なう(例えば10回程度)。これにより、座標付与部310は、代表ベクトルVEの座標を決定する。このとき、代表ベクトルVEの座標は、密集領域の中心PL−121となっている。そして、座標付与部310は、代表ベクトルVEの成分及び座標に関する代表ベクトル情報を生成し、対応点選択部311に出力する。
【0123】
対応点選択部311は、代表ベクトル情報及び平滑化ヒストグラム情報に基づいて、複数の代表ベクトルVEのうち、最大頻度が所定値(例えば,0.1〜0.4)未満となるものを消去する(すなわち、足切りを行なう)。これにより、対応点選択部311は、信頼性の低い代表ベクトルVE、例えばオブジェクトが何ら描かれていない画素ブロックBL−2から算出された代表ベクトルVEを除外することができる。そして、対応点選択部311は、選択された代表ベクトルVEを構成する特徴点ペア、すなわち代表点ペアに関する対応点選択情報を生成し、線形幾何パラメータフィッティング部303に出力する。以下、代表点ペアを構成する座標点のうち、左側座標点を左側代表点、右側座標点を右側代表点とも称する。左側代表点の座標は代表ベクトルの始点(u、v)であり、右側代表点の座標は、代表ベクトルの成分に始点の座標を加えた(u、v)である。
【0124】
このように、特徴量ベクトルVEから代表ベクトルVEを抽出するようにしたのは、線形演算がアウトライヤに弱いからである。すなわち、後述するように、線形幾何パラメータフィッティング部303は、代表ベクトルVEを用いた線形演算を行なうことで、変換行列Fを算出する。この変換行列Fは、カラーキャリブレーション済み画像VL−1、VR−1の座標変換に使用されるものである。一方、特徴量ベクトルVEは、単に特徴点同士を連結したものであるので、値(成分)があばれやすい(即ち、ばらつきやすい)。したがって、仮に特徴量ベクトルVEを用いた線形演算が行われた場合、線形演算によって得られる変換行列Fの各成分もあばれやすくなってしまう。そこで、本実施の形態では、特徴量ベクトルVEから代表ベクトルVEを抽出するようにした。
【0125】
[線形幾何パラメータフィッティング部の構成]
線形幾何パラメータフィッティング部303(変換行列算出部)は、初期化部312と、重み算出部313と、線形幾何パラメータ算出部314とを備える。
【0126】
まず、線形幾何パラメータフィッティング部303が行う処理の概要について説明する。線形幾何パラメータフィッティング部303は、エピポーラ拘束条件及び時間軸拘束条件を満たす変換行列Fを算出し、変換行列Fを分解することで、ホモグラフィー行列HL、HRを算出する。
【0127】
ここで、変換行列Fは、3×3の行列であり、ホモグラフィー行列HL、HRを含む。ホモグラフィー行列HLは、カラーキャリブレーション済み画像VL−1の座標変換を行なうための行列であり、ホモグラフィー行列HRは、カラーキャリブレーション済み画像VR−1の座標変換を行なうための行列である。
【0128】
エピポーラ拘束条件は、右側座標点を変換行列Fによって変換したエピポーラ線上に左側座標点が近接する(好ましくは、乗る)という拘束、言い換えれば、ベクトルu’(u、v、1)に変換行列Fを乗じることで得られるエピポーラベクトルと、ベクトルu(u、v、1)との内積がゼロになるという拘束である。ここで、(u、v)は左側座標点の座標であり、(u、v)は右側座標点の座標である。
【0129】
エピポーラ拘束条件は、以下の式(19)で表される。
【0130】
【数17】

【0131】
ここで、f〜fは変換行列Fの各成分である。線形幾何パラメータフィッティング部303は、式(19)を裂くことで、エピポーラ拘束条件を以下の式(20)で表される最小二乗問題に変換する。
【0132】
【数18】

ここで、Mは演算行列であり、以下の式(21)で表される。
【0133】
【数19】

【0134】
演算行列Mの各行の(u、v)、(u、v)には、それぞれ異なる代表点ペアの座標が代入される。
【0135】
一方、時間軸拘束条件は、現フレームの変換行列Fを、前フレームの変換行列Fn−1に拘束させるという拘束、すなわち、現フレームの変換行列Fと、前フレームの変換行列Fn−1との相関を最大にするという拘束である。変換行列Fは単位ベクトルなので、これらの内積がそのまま相関となる。
【0136】
このような時間軸拘束条件を用いないで算出された変換行列Fは、時間軸方向にばたつく(各時点によって値がまちまちとなる)場合が多いので、本実施の形態では、時間軸拘束条件を用いて変換行列Fを算出することで、変換行列Fの時間軸方向のばたつきを低減している。これにより、変換行列Fの精度が向上する。時間軸拘束条件は、以下の式(22)で表される。
【0137】
【数20】

【0138】
この時間軸拘束条件の式(22)は、以下の式(23)で表される最大二乗問題に置き換えられる。
【0139】
【数21】

【0140】
したがって、線形幾何パラメータフィッティング部303は、式(20)で表される最小二乗問題と、式(23)で表される最大二乗問題との混合問題を解くことになるが、このような混合問題を線形演算で解くことはできない。
【0141】
一方、変換行列Fと変換行列Fn−1との内積が1であるということは、変換行列Fと変換行列Fn−1の直交ベクトル群F’n−1との内積が0になることと同義である。したがって、式(23)の最大二乗問題は、以下の式(24)で表される最小二乗問題に置き換えられる。
【0142】
【数22】

【0143】
したがって、エピポーラ拘束条件及び時間軸拘束条件は、以下の式(25)で示される最小二乗問題にまとめられる。
【0144】
【数23】

【0145】
しかし、変換行列Fn−1はランダムな値なので、変換行列Fn−1の直交ベクトル群F’n−1を直接算出することは容易でない。
【0146】
一方、変換行列Fは、ホモグラフィー行列HL、HRを用いて、以下のように表される。
【0147】
【数24】

【0148】
ここで、行列Fは固定値のみで構成されるベクトルであり、以下の式(27)で表される。
【0149】
【数25】

【0150】
式(19)において、ホモグラフィー行列HL、HRをそれぞれ代表点ペアの3次元座標(u、v、1)、(u、v、1)に乗じると、式(19)は以下のように変換される。
【0151】
【数26】

【0152】
ここで、(u’、v’、1)、(u’、v’、1)は、代表点ペアの3次元座標(u、v、1)、(u、v、1)にホモグラフィー行列HL、HRを乗じる(即ち、ホモグラフィー行列HL、HRで座標変換する)ことで得られる座標(変換ベクトル)である。式(28)を用いて式(25)を書き換えると、以下のようになる。
【0153】
【数27】

【0154】
ここで、M’は、上述した演算行列Mの各成分を、座標変換後の値に変更したものであり、具体的には以下の式(30)で表される。
【0155】
【数28】

【0156】
また、行列F’は行列Fの直交ベクトル群である。行列Fは9成分の行列なので、行列Fの直交ベクトルは8つ存在する。なお、行列Fは固定値なので、直交ベクトル群も固定値となる。したがって、線形幾何パラメータフィッティング部303は、行列F’を算出する必要がない。具体的には、線形幾何パラメータフィッティング部303は、予め行列F’を記憶しておく。
【0157】
また、線形幾何パラメータフィッティング部303は、時間軸拘束条件をそのまま用いるのではなく、時間軸拘束条件に重みwを乗じたものを用いる。この重みwによって、式(29)は以下のように書き換えられる。
【0158】
【数29】

【0159】
したがって、線形幾何パラメータフィッティング部303は、式(31)の最小二乗問題を解くことで、行列F’(固定値相当ベクトル)を算出し、ひいては、変換行列Fを算出する。線形幾何パラメータフィッティング部303は、変換行列Fを分解することで、ホモグラフィー行列HL、HRを算出する。カラーキャリブレーション済み画像VL−1の左側座標点をホモグラフィー行列HLで座標変換し、カラーキャリブレーション済み画像VR−1の右側座標点をホモグラフィー行列HRで座標変換することで、幾何ズレが低減される。このように、本実施の形態では、エピポーラ拘束条件及び時間軸拘束条件を満たす変換行列Fを算出するが、他の拘束条件、例えば入力画像V、Vが互いに平行になっているという拘束を拘束条件として追加してもよい。以下、線形幾何パラメータフィッティング部303の各構成を詳細に説明する。
【0160】
[初期化部の構成]
初期化部312は、図22に示すように、エラー計算部315と、初期パラメータ選択部316と、座標ペア保持部317と、座標ペア統合部318とを備える。
【0161】
エラー計算部315は、対応点選択情報と、後述するパラメータ選択部305から与えられたパラメータ情報とに基づいて、エラー計算を行う。ここで、パラメータ情報には、前フレームで算出されたホモグラフィー行列HLn−1、HRn−1に関する情報が含まれる。
【0162】
具体的には、エラー計算部315は、以下の式(32)、(33)により、エラー値e1、e2を算出する。
【0163】
【数30】

【0164】
ここで、u、u’は代表点ペアの座標を3次元表記したもの、即ち(u、v、1)、(u、v、1)であり、Iは単位行列である。Σは、すべての代表点ペアについて値を合計することを意味する。
【0165】
式(32)、(33)は、エピポーラ拘束条件の式(19)において、変換行列Fのホモグラフィー行列HL、HRをそれぞれ前フレームのホモグラフィー行列HLn−1、HRn−1または単位行列Iに置き換えたものに対応している。
【0166】
したがって、エラー値e1、e2が小さいほど、ホモグラフィー行列HLn−1、HRn−1及び単位行列Iのホモグラフィー行列HL、HRとしての精度が良いこととなる。
【0167】
一般的に、同じシーンが連続している場合には、エラー値e1の方がエラー値e2よりも小さくなるが、シーンチェンジが起こると、エラー値e2の方がエラー値e1よりも小さくなる。
【0168】
そして、エラー計算部315は、算出されたエラー値e1、e2に関するエラー値情報を生成し、対応点選択情報と共に初期パラメータ選択部316に出力する。また、エラー計算部315は、エラー値のうち、値が小さいものを選択し、選択されたエラー値に関する最小エラー値情報を生成する。そして、エラー計算部315は、最小エラー値情報及び対応点選択情報を重み算出部313に出力する。
【0169】
初期パラメータ選択部316は、エラー値情報に基づいて、初期パラメータとして前フレームのホモグラフィー行列HLn−1、HRn−1及び単位行列Iのうちどちらを使用するのかを決定する。具体的には、初期パラメータ選択部316は、エラー値が小さい方の行列を初期パラメータのホモグラフィー行列とする。
【0170】
初期パラメータ選択部316は、選択された初期パラメータに関する初期パラメータ情報を生成し、線形幾何パラメータ算出部314に出力する。また、初期パラメータ選択部316は、対応点選択情報を座標ペア保持部317及び座標ペア統合部318に出力する。また、初期パラメータ選択部316は、初期パラメータとして単位行列を選択した場合には、リセット情報を座標ペア保持部317に出力する。
【0171】
座標ペア保持部317は、初期パラメータ選択部316から与えられた対応点選択情報を保持し、保持された対応点選択情報のうち、過去4フレーム分の対応点選択情報を座標ペア統合部318に出力する。座標ペア保持部317は、初期パラメータ選択部316からリセット情報が与えられた場合に、対応点選択情報を消去する。初期パラメータ選択部316からリセット情報が与えられた場合には、シーンチェンジがあった可能性が高いので、過去フレームの対応点選択情報は使用されないほうが好ましいからである。
【0172】
座標ペア統合部318は、初期パラメータ選択部316及び座標ペア保持部317から与えられた対応点選択情報を統合する。これにより、座標ペア統合部318は、最大で5フレーム分の対応点選択情報を統合する。座標ペア統合部318は、統合された対応点選択情報を重み算出部313及び線形幾何パラメータ算出部314に出力する。
【0173】
[重み算出部の構成]
重み算出部313は、エラー計算部315から与えられた最小エラー値情報及び対応点選択情報に基づいて、変換行列Fの算出の際に時間軸拘束条件をどの程度考慮するかを示す重み、即ち時間軸拘束条件の重みwを算出する。
【0174】
具体的には、重み算出部313は、エラー値(フレーム内初期値誤差)、代表ベクトルVEの数(サンプル数)、及び代表ベクトルVEの分散が0.0〜3.0の範囲(第1の範囲)内となる場合には、時間軸拘束条件の重みwを第1の重みwe1に決定し、エラー値、代表ベクトルVEの数、及び代表ベクトルVEの分散が3.0〜16.0の範囲(第2の範囲)内となる場合には、重みwを第2の重みwに決定し、エラー値、代表ベクトルVEの数、及び代表ベクトルVEの分散が16.0〜の範囲(第3の範囲)内となる場合には、重みwを第3の重みwe3に決定する。各重みの大小関係は、we1>we3>we2となる。第1の重みwe1の値は例えば10.0〜1.0であり、第2の重みwe2の値は例えば1.0〜0.1であり、第3の重みwe3の値は例えば0.1〜0.01である。
【0175】
なお、このように決定することが可能な理由を図23に基づいて説明する。図23は、エラー値、代表ベクトルVEの数、及び代表ベクトルVEの分散と、時間軸拘束条件の重みと、算出される変換行列Fの精度との対応関係を示すグラフである。即ち、グラフ中の各点は、エラー値、代表ベクトルVEの数、及び代表ベクトルVEの分散の対応関係を示す。また、これらの点は、重みが高い(例えば1)方が変換行列Fの精度が良かった場合には、点Pw1で示され、重みが低い(例えば0.01)方が変換行列Fの精度が良かった場合には、点Pw2で示される。
【0176】
図23によれば、エラー値、代表ベクトルVEの数、及び代表ベクトルVEの分散によって、変換行列Fの算出に適した重みが異なっている。また、点Pw1は領域AR1、AR2に分布しており、点Pw4は領域AR3に分布している。なお、点Pw1は、領域AR1、AR2から離れた領域AR4にも分布しているが、これはレンズ歪み(blow−fish)によるものである。
【0177】
領域AR1、AR2は、上述した第1の範囲を示し、領域AR3は、上述した第2の範囲を示す。そこで、重み算出部313は、エラー値、代表ベクトルVEの数、及び代表ベクトルVEの分散が領域AR1または領域AR2に属する場合、即ち第1の範囲内となる場合には、時間軸拘束条件の重みwを最も重い第1の重みwe1に決定する。また、重み算出部313は、エラー値、代表ベクトルVEの数、及び代表ベクトルVEの分散が領域AR3に属する場合、即ち第2の範囲内となる場合には、時間軸拘束条件の重みwを最も軽い第2の重みwe2に決定する。なお、例えば領域AR1に含まれる点は、小さいエラー値、すなわち前フレームのホモグラフィー行列HLn−1、HRn−1によって現フレームの代表点が精度良く幾何補正されることを示す。したがって、エラー値、代表ベクトルVEの数、及び代表ベクトルVEの分散が領域AR1に属する場合、現フレームの変換行列Fが前フレームの変換行列Fn−1に近付いている(即ち、変換行列Fが収束している)といえる。一方、領域AR3に含まれる点は、大きなエラー値、すなわち前フレームのホモグラフィー行列HLn−1、HRn−1によって現フレームの特徴点を幾何補正しても精度が悪いことを示す。したがって、エラー値、代表ベクトルVEの数、及び代表ベクトルVEの分散が領域AR3に属する場合、現フレームの変換行列Fが前フレームの変換行列Fn−1に近付いていない(即ち、変換行列Fが収束していない)といえる。
【0178】
一方、エラー値、代表ベクトルVEの数、及び代表ベクトルVEの分散が領域AR4に属する場合には、レンズ歪みが生じているので、時間軸拘束条件の重みwを第1の重みwe1及び第2の重みwe2と異なるものにすることが望ましいと思われる。そこで、重み算出部313は、エラー値、代表ベクトルVEの数、及び代表ベクトルVEの分散が領域AR4に属する場合、即ち第3の範囲内となる場合には、時間軸拘束条件の重みwを第1の重みwe1と第2の重みwe2との中間である第3の重みwe3に決定する。
【0179】
重み算出部313は、決定された時間軸拘束条件の重みwに関する時間軸拘束重み情報を生成し、線形幾何パラメータ算出部314に出力する。
【0180】
[線形幾何パラメータ算出部の構成]
線形幾何パラメータ算出部314は、図24に示すように、座標変換部319と、マトリックス算出部320と、F行列算出部321と、F行列分解部322とを備える。
【0181】
座標変換部319は、初期化部315から与えられた情報に基づいて、各代表点ペアを座標変換する。具体的には、座標変換部319は、左側代表点を初期パラメータ、即ち前フレームのホモグラフィー行列HLn−1または単位行列Iで座標変換し、右側代表点を初期パラメータ、即ち前フレームのホモグラフィー行列HRn−1または単位行列Iで座標変換する。なお、単位行列Iでは、実質的には座標変換は行われない。
【0182】
なお、このような座標変換により、カラーキャリブレーション済み画像VL−1、VR−1の中心点、及び座標範囲がずれる場合がある。そこで、座標変換部319は、座標変換後の代表点ペアの座標及び初期パラメータを正規化する。具体的には、例えば、座標変換部319は、各代表点ペアの3次元座標及び初期パラメータに、正規化のための変換行列を乗じる。以下、正規化された3次元座標を正規化座標とも称し、正規化された初期パラメータを、正規化ホモグラフィー行列WL、WRとも称する。
【0183】
座標変換部319は、各代表点ペアの正規化座標及び正規化ホモグラフィー行列WL、WRに関する座標変換情報を生成し、マトリックス算出部320に出力する。
【0184】
マトリックス算出部320は、座標変換情報に基づいて、以下の式(34)で表される演算行列Mを算出する。
【0185】
【数31】

【0186】
ここで、Σはすべての代表点ペアについて合計することを意味し、行列Cは上述した直交ベクトル群F’を合成したものであり、以下の式(35)で表される。
【0187】
【数32】

【0188】
マトリックス算出部320は、算出された演算行列Mに関する演算行列情報を生成し、F行列算出部321に出力する。
【0189】
F行列算出部321は、演算行列情報に基づいて、演算行列Mの最小固有ベクトルvminを算出する。なお、最小固有ベクトルvminの算出法は特に限定されないが、例えば特異値分解等が好ましい。
【0190】
さらに、F行列算出部321は、最小固有ベクトルvminの最小特異値が0に落ちるように、最小固有ベクトルvminを3×3の行列に特異値分解する。そして、F行列算出部321は、算出された行列SVD(vmin)と、以下の式(36)とに基づいて、変換行列Fを算出する。
【0191】
【数33】

【0192】
さらに、F行列算出部321は、重みwの値をいくつかの値、例えば2×w、2×w、2−1×w、2−2×wに振って、変換行列Fを算出する。そして、F行列算出部321は、算出された変換行列Fの各々について、上述した式(32)を用いてエラー値を算出する。そして、F行列算出部321は、エラー値の最も小さいものを選択し、選択された変換行列Fに関する変換行列情報を生成し、座標変換情報と共にF行列分解部322に出力する。
【0193】
F行列分解部322は、変換行列情報に基づいて、変換行列Fをホモグラフィー行列HL、HR、行列Fに分解する。実質的には、F行列分解部322は、エピポーラ線を平行にする行列をホモグラフィー行列HL、HRとして算出する。
【0194】
具体的には、F行列分解部322は、まず、エピポール計算を行うことで、エピポール点の座標を算出する。エピポール点は、エピポーラ線の交点である。撮像装置に入射される光線が1点に集約されると仮定すると、これらの光線をカラーキャリブレーション済み画像VL−1、VR−1に射影した直線、即ちエピポーラ線同士も1つのエピポール点で交わることになる。エピポール点は、任意のエピポーラ線上に乗るので、任意のエピポーラ線に対する内積が0になる。
【0195】
そこで、F行列分解部322は、エピポーラ線と、エピポール点の座標との内積の二乗が最小となるようなエピポール点の座標を算出する。具体的には、F行列分解部322は、変換行列Fの二乗を算出する。ついで、F行列分解部322は、算出された行列の最小固有ベクトルをエピポール点の座標とする。なお、エピポール点は、カラーキャリブレーション済み画像VL−1、VR−1のそれぞれに存在するので、これらのエピポール点の座標を算出する。すなわち、F行列分解部322は、以下の式(37)で表される行列FLの最小固有ベクトルelを算出し、これをカラーキャリブレーション済み画像VL−1上のエピポール点、即ち左側エピポール点の座標とする。
【0196】
【数34】

【0197】
ここで、tは転置である。
【0198】
同様に、F行列分解部322は、以下の式(38)で表される行列FRの最小固有ベクトルeRを算出し、これをカラーキャリブレーション済み画像VR−1上のエピポール点、即ち右側エピポール点の座標とする。
【0199】
【数35】

【0200】
そして、F行列分解部322は、左側エピポール点を無限遠に飛ばす(即ち、カラーキャリブレーション済み画像VL−1上のエピポーラ線を平行にする)行列をホモグラフィー行列HLとして算出し、右側エピポール点を無限遠に飛ばす(即ち、カラーキャリブレーション済み画像VR−1上のエピポーラ線を平行にする)行列をホモグラフィー行列HRとして算出する。
【0201】
具体的には、F行列分解部322は、ホモグラフィー行列HL、HRの射影成分行列Hpを、以下の式(39)、(40)により算出する。
【0202】
【数36】

【0203】
ここで、e(2)はエピポールのx座標であり、e(0)はエピポールのz座標である。
【0204】
そして、F行列分解部322は、Rectification.cppのcalcRotationOfRectifyを用いて、ホモグラフィー行列HL、HRの回転成分行列Hrを算出し、Rectification.cppのcalcShearingOfRectifyを用いて、ホモグラフィー行列HL、HRの歪み(並進)成分行列Hshを算出する。そして、F行列分解部322は、以下の式(41)、(42)に基づいて、ホモグラフィー行列HL、HRの垂直スケール成分行列Hsを算出する。
【0205】
【数37】

【0206】
ここで、「Vertical Torerance」は、水平の並進移動量であり、「Average Error」は、移動量に対する差分平均であり、σは、標準偏差である。
【0207】
そして、F行列分解部322は、ホモグラフィー行列HLの射影成分行列Hp、回転成分行列Hr、歪み成分行列Hsh、及び垂直スケール成分行列Hsをかけ合わせることで、ホモグラフィー行列HLを算出する。
【0208】
同様に、F行列分解部322は、ホモグラフィー行列HRの射影成分行列Hp、回転成分行列Hr、歪み成分行列Hsh、及び垂直スケール成分行列Hsをかけ合わせることで、ホモグラフィー行列HRを算出する。
【0209】
次いで、F行列分解部322は、算出されたホモグラフィー行列HL、HRに関する線形補正係数情報を生成し非線形幾何パラメータフィッティング部304及びパラメータ選択部305に出力する。
【0210】
[非線形幾何パラメータフィッティング部の構成]
非線形幾何パラメータフィッティング部304は、図25に示すように、ヤコビ行列算出部323と、ヘッセ行列算出部324と、係数更新部325とを備える。
【0211】
ヤコビ行列算出部323は、特徴量マッチング部301から与えられた特徴量ベクトル情報及び線形幾何パラメータフィッティング部303から与えられた線形補正係数情報に基づいて、以下の式(43)で表されるヤコビ行列Jを算出する。
【0212】
【数38】

【0213】
ここで、uは左側特徴点の3次元座標を示すベクトルであり、u’は右側特徴点の3次元座標を示すベクトルであり、coef(F)は変換行列Fの各成分を示す。fe2(u,u’,coef(F))は、いわゆるエラー関数であり、以下の式(44)で表される。fe20〜fe2mは、エラー関数fe2(u,u’,coef(F))にそれぞれ異なる特徴量ベクトル情報を代入したものである。
【0214】
【数39】

【0215】
ここで、g(u,coef(F))は、左側特徴点の3次元座標に変換行列Fを乗じた値であり、g(u’,coef(F))は、右側特徴点の3次元座標に変換行列Fを乗じた値である。
【0216】
また、RobustFuncは上述した式(16)で表される関数である。
【0217】
そして、ヤコビ行列算出部323は、算出されたヤコビ行列Jに関するヤコビ行列情報を生成し、ヘッセ行列算出部324に出力する。
【0218】
また、ヤコビ行列算出部323は、後述する係数更新部325から非線形補正係数情報を与えられた場合には、当該非線形補正係数情報が示す非線形補正係数coef(nonlinear)と、特徴量ベクトル情報とに基づいて、上述したヤコビ行列Jを算出する。そして、ヤコビ行列算出部323は、算出されたヤコビ行列Jに関するヤコビ行列情報を生成し、ヘッセ行列算出部324に出力する。
【0219】
ヘッセ行列算出部324は、ヤコビ行列算出部323から与えられた情報に基づいて、以下の式(45)で示されるヘッセ行列Hを算出する。
【0220】
【数40】

【0221】
次いで、ヘッセ行列算出部324は、算出されたヘッセ行列Hに関するヘッセ行列情報を生成し、ヤコビ行列算出部323から与えられた情報と共に係数更新部325に出力する。
【0222】
係数更新部325は、ヘッセ行列算出部324から与えられた情報と、以下の式(46)とに基づいて、変換行列Fの各成分を非線形補正係数coef(nonlinear)として算出する。
【0223】
【数41】

【0224】
ここで、Iは単位行列である。wは係数(重み)であり、例えば0.1となる。
【0225】
次いで、係数更新部325は、非線形補正係数coef(nonlinear)を上述したF行列分解部322の処理と同様の処理により分解することでホモグラフィー行列HL、HRを算出する。そして、係数更新部325は、算出されたホモグラフィー行列HL、HRに関する非線形補正係数情報を生成する。そして、係数更新部325は、ホモグラフィー行列HL、HRが一定の値に収束したかを判定し、ホモグラフィー行列HL、HRが一定の値に収束した場合には、非線形補正係数情報をパラメータ選択部306に出力し、ホモグラフィー行列HL、HRが収束していないと判定した場合には、非線形補正係数情報をヤコビ行列算出部323に出力する。その後、ホモグラフィー行列HL、HRが再計算される。したがって、非線形幾何パラメータフィッティング部304は、線形幾何パラメータフィッティング部303が算出したホモグラフィー行列HL、HRを初期値として、ホモグラフィー行列HL、HRを非線形の演算手法により算出し、ホモグラフィー行列HL、HRが一定の値に収束するまで、非線形の演算を繰り返す。
【0226】
[パラメータ選択部の構成]
図16に示すパラメータ選択部305は、線形幾何パラメータフィッティング部303から与えられた線形補正係数情報と、非線形幾何パラメータフィッティング部304から与えられた非線形補正係数情報とのそれぞれについて、上述した式(32)を用いて、画素ブロックBL−2、BR−2の組毎にエラー値を算出する。そして、パラメータ選択部305は、エラー値が小さい方の情報をパラメータ情報として選択する。パラメータ選択部305は、画素ブロックBL−2、BR−2の組毎に、パラメータ情報を選択し、幾何キャリブレーション実行部306及び線形幾何パラメータフィッティング部303に出力する。
【0227】
[幾何キャリブレーション実行部306の構成]
幾何キャリブレーション実行部306は、パラメータ情報に基づいて、カラーキャリブレーション済み画像VL−1、VR−1に対して幾何キャリブレーションを行なう。具体的には、幾何キャリブレーション実行部306は、カラーキャリブレーション済み画像VL−1の各座標点をホモグラフィー行列HLで座標変換し、カラーキャリブレーション済み画像VR−1の各座標点をホモグラフィー行列HRで座標変換する。幾何キャリブレーション実行部306は、幾何キャリブレーション後の各画像をそれぞれキャリブレーション済み画像VL−2、VR−2として、図5に示す視差検出部4に出力する。
【0228】
図26に、時間軸拘束条件を用いることで変換行列Fのあばれが低減される様子を示す。図26(a)の曲線L3は、時間軸拘束条件を用いずに算出された変換行列Fの成分が変動する様子を示し、図26(b)の曲線L4は、時間軸拘束条件を用いて算出された変換行列Fの成分が変動する様子を示す。図26に示されるように、時間軸拘束条件を用いて算出された変換行列Fは、値のあばれが大きく低減されている。
【0229】
図27は、変換行列Fが時間の経過に応じて収束していく様子を示す。曲線L5、L6は、式(32)のエラー値が時間の経過に応じて収束していく様子を示す。なお、曲線L5は、1フレーム分の対応点選択情報を用いて変換行列Fが算出された場合を示し、曲線L6は、5フレーム分の対応点選択情報を用いて変換行列Fが算出された場合を示す。曲線L7は、式(33)のエラー値を示す。図27に示されるように、変換行列Fは時間の経過に応じて大きく収束していく。また、5フレーム分の対応点選択情報を用いて算出された変換行列Fは、1フレーム分の対応点選択情報を用いて算出された変換行列Fよりも大きく収束し、かつ、エラー値も安定しているといえる。
【0230】
[幾何キャリブレーション部3による効果]
次に、幾何キャリブレーション部3による効果について説明する。
【0231】
幾何キャリブレーション部3は、変換行列Fを算出し、この変換行列Fに基づいて幾何キャリブレーション(幾何補正)を行うので、既知パターン(既知モデル)がなくても幾何キャリブレーションを行なうことができる。また、変換行列Fはエピポーラ拘束条件をみたすので、既知パターンよりも多様な画像に適用可能である。幾何キャリブレーション部3は、上述した式(19)を用いてエピポーラ拘束条件を解くので、変換行列Fを精度良く算出することができる。
【0232】
また、幾何キャリブレーション部3は、エピポーラ拘束条件の他、時間軸拘束条件をも満たす変換行列Fを算出するので、高精度かつ時間軸方向にロバストな(時間的なロバスト性の高い)変換行列Fを算出することができる。このため、幾何キャリブレーション部3は、時間的にロバストな幾何キャリブレーションを行なうことができる。なお、本発明者は、幾何キャリブレーションの手法として、RANSAC推定及びM推定といった非線形の推定方法(これらの推定方法の詳細については、例えば、「Mahamud and Hebert 2000, ’’Iterative projective reconstruction from multiple views’’」、及び「Hartley and Zisserman 2000, ’’Multiple view geometry in computer vision’’」等を参照)についても検討した。この結果、RANSAC推定では、変換行列Fのパラメータが時間軸方向であばれやすい(ばたつきやすい)ことが判明した。また、M推定では、画像処理装置の処理負荷が非常に重くなることが判明した。これに対し、本実施の形態で算出される変換行列Fは、時間軸方向にあばれにくく、かつ、処理負荷も軽くなっている。
【0233】
また、幾何キャリブレーション部3は、前フレームで算出された変換行列Fとの相関を時間軸拘束とするので、変換行列Fを精度良く算出することができ、ひいては、幾何キャリブレーションを精度良く行なうことができる。
【0234】
また、幾何キャリブレーション部3は、前フレームで算出された変換行列Fn−1との相関を最大化するという最大二乗問題を、前フレームで算出された変換行列Fn−1の直交ベクトル群F’n−1と相関を最小にする最小二乗問題に変換するので、エピポーラ拘束条件及び時間軸拘束を単一の最小二乗問題として解くことができる。
【0235】
また、幾何キャリブレーション部3は、時間軸拘束を重み付けし、時間軸拘束の重みwを、代表点ペアの状況(サンプル数等)に応じて変更するので、変換行列Fを精度良く算出することができ、ひいては、変換行列Fの収束を早めることができる。
【0236】
また、幾何キャリブレーション部3は、時間軸拘束の重みwをいくつか振り、それぞれの重みwを用いて変換行列Fを算出し、エラー値が最小となる変換行列Fを選択するので、変換行列Fを精度良く算出することができる。
【0237】
また、幾何キャリブレーション部3は、特徴点ペアのうち、特に頻度が高い特徴点ペアを代表点ペアとし、この代表点ペアに基づいて変換行列Fを算出するので、変換行列Fを精度良く算出することができる。
【0238】
また、幾何キャリブレーション部3は、代表ベクトルVEの座標をミーンシフト処理により算出するので、代表ベクトルVEの座標を精度良く算出することができる。
【0239】
また、幾何キャリブレーション部3は、変換行列Fを算出する前に、左側代表点及び右側座標点の座標を初期パラメータ、例えばホモグラフィー行列HLn−1、HRn−1で座標変換するので、変換行列Fを容易に算出することができる。具体的には、幾何キャリブレーション部3は、上記の直交ベクトル群F’n−1を固定値に変換することができる。
【0240】
また、幾何キャリブレーション部3は、線形演算で算出された変換行列Fのパラメータを初期値として非線形演算を行うので、変換行列Fを精度良く算出することができる。
【0241】
また、幾何キャリブレーション部3は、線形演算で算出された変換行列Fと非線形演算で算出された変換行列Fとのそれぞれについてエラー値を算出し、エラー値の小さい方の変換行列Fを用いて幾何キャリブレーションを行うので、幾何キャリブレーションを精度良く行なうことができる。
【0242】
[線形幾何パラメータフィッティング部の第1の変形例]
次に、線形幾何パラメータフィッティング部の第1の変形例を説明する。図28に示すように、線形幾何パラメータフィッティング部326は、初期化部327と、重み算出部328と、座標変換部329と、射影成分算出部330と、回転成分算出部331と、並進成分算出部332と、F行列分解部333とを備える。線形幾何パラメータフィッティング部326は、概略的には、変換行列Fを成分毎、即ち射影成分、回転成分、及び並進成分毎に算出する点と、各成分を算出する際に、算出済みの他の成分を考慮する点とが上述した線形幾何パラメータフィッティング部303と異なる。
【0243】
初期化部327、重み算出部328、及び座標変換部329は、上述した初期化部312、重み算出部313、及び座標変換部319と同様の処理を行なう。ただし、重み算出部328は、上述した時間軸拘束重み情報を射影成分算出部330と、回転成分算出部331と、並進成分算出部332とに出力する。
【0244】
射影成分算出部330は、図29に示すように、マトリックス算出部334と、F行列算出部335とを備える。マトリックス算出部334は、上述したマトリックス算出部320と同様の処理を行なう。ただし、マトリックス算出部334は、以下の式(47)で示される演算行列Mを算出する。
【0245】
【数42】

【0246】
ここで、Σはすべての代表点ペアについて合計することを意味し、行列Cは上述した直交ベクトル群F’の一部を合成したものであり、以下の式(48)で表される。
【0247】
【数43】

【0248】
マトリックス算出部334は、算出された演算行列Mに関する演算行列情報を生成し、F行列算出部335に出力する。
【0249】
F行列算出部335は、演算行列情報に基づいて、上述したF行列算出部321と同様の処理を行う。これにより、以下の式(49)で示される射影成分の変換行列Fを算出する。
【0250】
【数44】

【0251】
ここで、Pj1〜Pj5は任意の数値を示す。F行列算出部335は、射影成分の変換行列Fに関する射影成分変換行列情報を生成し、座標変換情報と共に回転成分算出部331に出力する。
【0252】
回転成分算出部331は、図30に示すように、マトリックス算出部336と、F行列算出部336とを備える。マトリックス算出部336は、上述したマトリックス算出部320と同様の処理を行なう。ただし、マトリックス算出部336は、以下の式(50)で示される演算行列Mを算出する。
【0253】
【数45】

【0254】
ここで、Σはすべての代表点ペアについて合計することを意味し、行列Cは上述した直交ベクトル群F’の一部を合成したものであり、以下の式(51)で表される。
【0255】
【数46】

【0256】
マトリックス算出部336は、算出された演算行列Mに関する演算行列情報を生成し、F行列算出部337に出力する。式(50)に示すように、演算行列Mには、射影成分の変換行列Fが含まれている。即ち、演算行列Mは、射影成分の変換行列Fを考慮したものになっている。
【0257】
F行列算出部337は、演算行列情報に基づいて、上述したF行列算出部321と同様の処理を行う。これにより、以下の式(52)で示される回転成分の変換行列Fを算出する。ここで、演算行列Mには、射影成分の変換行列Fが含まれているので、F行列算出部337は、射影成分の変換行列Fに拘束された変換行列Fを算出することができる。
【0258】
【数47】

【0259】
ここで、Rot1〜Rot4は任意の数値を示す。F行列算出部335は、回転成分の変換行列Fに関する回転成分変換行列情報を生成し、座標変換情報と共に並進成分算出部332に出力する。
【0260】
並進成分算出部331は、図31に示すように、マトリックス算出部338と、F行列算出部339とを備える。マトリックス算出部338は、上述したマトリックス算出部320と同様の処理を行なう。ただし、マトリックス算出部338は、以下の式(53)で示される演算行列Mを算出する。
【0261】
【数48】

【0262】
ここで、Σはすべての代表点ペアについて合計することを意味し、行列Cは上述した直交ベクトル群F’の一部を合成したものであり、以下の式(54)で表される。
【0263】
【数49】

【0264】
マトリックス算出部336は、算出された演算行列Mに関する演算行列情報を生成し、F行列算出部339に出力する。式(53)に示すように、演算行列Mには、回転成分の変換行列Fが含まれている。即ち、演算行列Mは、回転成分の変換行列Fを考慮したものになっている。なお、変換行列Fは、射影成分の変換行列Fに拘束されているので、演算行列Mは、実質的には、射影成分の変換行列Fをも考慮したものになっている。
【0265】
F行列算出部339は、演算行列情報に基づいて、上述したF行列算出部321と同様の処理を行う。これにより、以下の式(55)で示される並進成分の変換行列FShを算出する。ここで、演算行列Mは、射影成分及び回転成分の変換行列F、Fを考慮したものになっているので、F行列算出部339は、射影成分及び回転成分の変換行列F、Fに拘束された変換行列FShを算出することができる。
【0266】
【数50】

【0267】
ここで、v1〜v4は任意の数値を示す。F行列算出部339は、射影成分、回転成分、及び並進成分の変換行列F、F、FShをかけ合わせることで、変換行列Fを算出する。そして、算出された変換行列Fに関する変換行列情報を生成し、座標変換情報と共にF行列分解部322に出力する。
【0268】
図28に示すF行列分解部333は、上述したF行列分解部322と同様の処理を行なう。
【0269】
この変形例に係る線形幾何パラメータフィッティング部326は、変換行列Fを成分毎に算出するので、変換行列Fをロバストかつ精度良く算出することができる。また、線形幾何パラメータフィッティング部326は、各成分を算出する際に、すでに算出された成分を考慮する(拘束条件として用いる)ので、この点でも、変換行列Fを精度良く算出することができる。
【0270】
[線形幾何パラメータフィッティング部の第2の変形例]
次に、線形幾何パラメータフィッティング部の第2の変形例を説明する。図32に示すように、第2の変形例に係る線形幾何パラメータフィッティング部340は、初期化部341と、座標変換部342と、線形幾何パラメータ更新部343とを備える。線形幾何パラメータフィッティング340は、概略的には、変換行列Fを算出する過程を簡略化した点が、線形幾何パラメータフィッティング部303と異なる。
【0271】
初期化部341及び座標変換部342は、上述した初期化部312及び座標変換部319と同様の処理を行なう。
【0272】
線形幾何パラメータ更新部343は、並進成分更新用テーブルと、回転成分更新用テーブルと、射影成分更新用テーブルとを記憶する。
【0273】
並進成分更新用テーブルには、−5から+5までの値が0.5刻みで格納されている。回転成分更新用テーブル及び射影成分更新用テーブルは、図33に示すように、5×5のマトリックス形状となっている。回転成分更新用テーブル及び射影成分更新用テーブルの各ブロックには、カラーキャリブレーション済み画像VL−1、VR−1を変換するために必要なパラメータの組み合わせ(Ta、Tb)が格納されている。ここで、Taは0、S、またはJであり、Tbは0、s、またはjである。「s」及び「S」は、0近傍の値(刻み)を示し、「j」及び「J」は、0から離れた値(ジャンプ)を示す。即ち、「s」または「S」と「j」または「J」との差分は、0と「s」または「S」との差分よりも大きい。
【0274】
具体的には、回転成分更新用テーブルにおいては、Taはカラーキャリブレーション済み画像VL−1の回転角度を示し、Tbはカラーキャリブレーション済み画像VR−1の回転角度を示す。即ち、「S」は、例えばカラーキャリブレーション済み画像VL−1を右回転方向に0.01度回転することを示し、「J」は、例えばカラーキャリブレーション済み画像VL−1を右回転方向に0.1度回転することを示す。「−」は左回転を示す。
【0275】
同様に、「s」は、例えばカラーキャリブレーション済み画像VR−1を右回転方向に0.01度回転することを示し、「j」は、例えばカラーキャリブレーション済み画像VR−1画像を右回転方向に0.1度回転することを示す。「−」は左回転を示す。
【0276】
一方、射影成分更新用テーブルにおいては、Taはカラーキャリブレーション済み画像VL−1を射影変換する大きさを示し、Tbはカラーキャリブレーション済み画像VR−1を射影変換する大きさを示す。即ち、「S」は、上述した式(49)のPj1、Pj2の組み合わせまたはそれに相当する値を示し、「J」も、上述した式(49)のPj1、Pj2の組み合わせまたはそれに相当する値を示す。ただし、「J」が示すPj1、Pj2の値は、「S」が示すPj1、Pj2の値よりも大きくなっている。
【0277】
同様に、「s」は、上述した式(49)のPj3、Pj4の組み合わせまたはそれに相当する値を示し、「j」も、上述した式(49)のPj3、Pj4の組み合わせまたはそれに相当する値を示す。ただし、「j」が示すPj3、Pj4の値は、「s」が示すPj3、Pj4の値よりも大きくなっている。
【0278】
なお、ホモグラフィー行列HL、HRの各成分、即ち並進成分、回転成分、及び射影成分がとりうる値をすべてテーブルに格納しようとすると、テーブルの大きさが爆発してしまう。そこで、本実施の形態では、各テーブルの大きさを上記のように制限している。なお、上記の大きさはあくまで一例であり、各テーブルは他の大きさであってもよいことはもちろんである。
【0279】
線形幾何パラメータ更新部343は、並進成分更新用テーブルの値と、回転成分更新用テーブルの値と、射影成分更新用テーブルの値とのすべての組み合わせについて、以下の式(56)、(57)で表されるホモグラフィー更新用行列DL、DRを算出する。
【0280】
【数51】

【0281】
ここで、v、vは、それぞれ並進成分更新用テーブルに格納された値を示す。rは、回転成分更新用テーブルのTaを示し、vは回転成分更新用テーブルのTbを示す。pは、射影成分更新用テーブルのTaを示し、pは射影成分更新用テーブルのTbを示す。
【0282】
そして、線形幾何パラメータ更新部343は、以下の式(58)、(59)に基づいて、ホモグラフィー行列HL、HRを更新する。
【0283】
【数52】

【0284】
そして、線形幾何パラメータ更新部343は、算出されたすべてのホモグラフィー行列HL、HRについて、上述した式(32)を用いてエラー値を算出し、このエラー値が最も小さいホモグラフィー行列HL、HRを選択する。そして、線形幾何パラメータ更新部343は、選択されたホモグラフィー行列HL、HRに関する線形補正係数情報を生成し非線形幾何パラメータフィッティング部304及びパラメータ選択部305に出力する。
【0285】
図34に、ホモグラフィー行列HL、HRが収束する様子を示す。曲線L8は、式(33)のエラー値が時間の経過に応じて変動する様子を示し、曲線L9は、ホモグラフィー行列HL、HRの並進成分だけ更新したときのエラー値が時間の経過に応じて変動する様子を示し、曲線L10は、ホモグラフィー行列HL、HRの並進成分及び回転成分を更新したときのエラー値が時間の経過に応じて変動する様子を示す。図34に示されるように、ホモグラフィー行列HL、HRの並進成分及び回転成分を更新することで、ホモグラフィー行列HL、HRが非常に小さい値に収束する。
【0286】
図35は、ホモグラフィー行列HL、HRが収束したときの値を示す。棒グラフL11は、式(33)のエラー値が収束した値を示し、棒グラフL12は、ホモグラフィー行列HL、HRの並進成分だけ更新したときのエラー値が収束した値を示す。棒グラフL13は、ホモグラフィー行列HL、HRの並進成分及び回転成分を更新したときのエラー値が収束した値を示し、棒グラフL14は、ホモグラフィー行列HL、HRの並進成分、回転成分、及び射影成分を更新したときのエラー値が収束した値を示す。また、閾値Th1は、後述する視差検出が良好に行われるときのエラー値の上限を示す。即ち、後述する視差検出が良好に行われるためには、エラー値がこの閾値Th1以下となる必要がある。図35に示されるように、少なくともホモグラフィー行列HL、HRの並進成分及び回転成分を更新することで、視差検出が良好に行われる。
【0287】
第2の変形例に係る線形幾何パラメータフィッティング部340は、更新テーブルを用いて変換行列Fを算出する。このため、線形幾何パラメータフィッティング部340は、変換行列F算出の際の処理負担を軽くすることができる。また、処理負担が軽くなる結果、パラメータのあばれが抑えられるので、線形幾何パラメータフィッティング部340は、ロバストな変換行列Fを算出することができる。
【0288】
また、線形幾何パラメータフィッティング部340は、更新テーブルの大きさを制限しているので、更新テーブルの大きさが爆発することを防止することができる。
【0289】
[パラメータ選択部の変形例]
次に、パラメータ選択部305の変形例(変換行列調整部)を説明する。この変形例に係るパラメータ選択部305は、上述した処理によってホモグラフィー行列HL、HRを選択した後、さらに以下の画像擦り合わせ処理を行なう。
【0290】
即ち、図36に示されるように、パラメータ選択部305は、ホモグラフィー行列HL、HRに基づいて変換行列Fを算出し、左側代表点を変換行列Fで変換してエピポーラ線EPR−12とする。そして、パラメータ選択部305は、右側代表点PR−12からエピポーラ線EPR−12に垂線をおろし、交点PR−13を求める。そして、パラメータ選択部305は、右側代表点PR−12を中心とした第1周辺パッチ(例えば、10×10画素のパッチ)Pat1と、交点PR−13を中心とした第2周辺パッチ(例えば、10×10画素のパッチ)Pat2とを抽出する。そして、パラメータ選択部305は、これらのパッチの相関が最大となるように、ホモグラフィー行列HL、HRを調整する。具体的には、パラメータ選択部305は、以下の式(60)の値が最小となるように、ホモグラフィー行列HL、HRを調整する。
【0291】
【数53】

【0292】
ここで、a、aは第1パッチPat1内の各画素の輝度を示し、b、bは第2パッチPat2内の各画素の輝度を示す。
【0293】
そして、パラメータ選択部305は、調整後のホモグラフィー行列HL、HRと、他の代表的ペアと、を用いて上述した処理を繰り返す。そして、パラメータ選択部305は、すべての代表的ペアについて上述した処理を行った後、ホモグラフィー行列HL、HRに関するパラメータ情報を生成し、線形幾何パラメータフィッティング部303及び幾何キャリブレーション実行部306に出力する。
【0294】
したがって、パラメータ選択部305は、ホモグラフィー行列HL、HR、ひいては変換行列Fをより精度良く算出することができる。
【0295】
なお、上述した変形例を任意に組み合わせてもよい。例えば、すべての変形例を組み合わせてもよい。この場合、線形幾何パラメータフィッティング部303は、複数の手法によってホモグラフィー行列HL、HRをそれぞれ生成する。そして、パラメータ選択部305は、これらのホモグラフィー行列HL、HR及び非線形幾何パラメータフィッティング部304により生成されたホモグラフィー行列HL、HRのうち、最適なものを選択し、さらに、上述した第3変形例の処理によって、ホモグラフィー行列HL、HRの精度を向上する。このホモグラフィー行列HL、HRは、次のフレームでの演算における初期パラメータとされる。
【0296】
<2−3.視差検出部の構成>
次に、図5に示す視差検出部4の構成について説明する。視差検出部4は、図37に示すように、グローバルマッチング部401と、ローカルマッチング部402と、ディスパリティマップ統合部403とを備える。すなわち、視差検出部4は、グローバルマッチングと、ローカルマッチングとを並行して行う。ここで、ローカルマッチングは、精度の良否が上述したキャリブレーションの結果やモデル(例えば、入力画像Vの輝度と入力画像Vの輝度との対応関係を示すモデル式や、変換行列F)に依存しないという長所があるものの、オクルージョンに弱い、安定性が悪い(精度がばらつきやすい)といった短所もある。一方、グローバルマッチングは、オクルージョンに強い、安定しているという長所があるものの、精度の良否がキャリブレーションの結果やモデルに依存しやすいという短所もある。そこで、視差検出部4は、両者を並行して行い、結果として得られる視差マップを対比し、良好な視差マップを選択するようにしている。
【0297】
[グローバルマッチング部の構成]
グローバルマッチング部401(第1の水平視差検出部)は、図38に示すように、DSAD(Dynamic Sum Of Absolute Difference)算出部404と、最小値選択部405と、モーション記述部406と、アンカーベクトル構築部407と、コスト算出部408と、経路構築部409と、バックトラック部410とを備える。
【0298】
[DSAD算出部の構成]
DSAD算出部404は、キャリブレーション済み画像VL−2、VR−2と、カラーキャリブレーション部2から与えられた信頼度マップ情報と基づいて、左側座標点毎に以下の処理を行なう。即ち、DSAD算出部404は、左側座標点を基準座標点とし、左側座標点と同じ高さ(同じy座標)の右側座標点を参照座標点としてすべて抽出する。そして、DSAD算出部404は、各参照座標点のx座標から基準座標点のx座標を減算し、これにより得られた値をそれぞれ基準座標点の水平視差d1とする。そして、DSAD算出部404は、基準座標点のすべての水平視差d1(即ち、すべての参照座標点)について、以下の式(61)で示されるDSAD(j)(jは−2〜2の整数)を算出する。
【0299】
【数54】

【0300】
ここで、iは−2〜2の整数であり、L(i,j)は、基準座標点とy座標が(i+j)異なる左側座標点の輝度であり、R(i,j)は、参照座標点とy座標が(i+j)異なる右側座標点の輝度である。また、α1は、カラーキャリブレーション用信頼度マップが示す基準座標点の信頼度を、0〜1の値に正規化したものであり、信頼度が大きいほど1に近くなる。このように、DSADの算出にカラーキャリブレーション用信頼度マップの値を利用することで、色ズレに強い視差検出が可能となる。正規化は、信頼度を上述した式(16)に代入することで得られる。
【0301】
したがって、DSAD算出部404は、基準座標点及び参照座標点のy座標を振ることで、いくつかのDSADを算出することとなる。これにより、視差検出部3は、左側座標点と右側座標点との垂直ずれを考慮した視差マップを生成することができる。DSAD算出部404は、参照座標点のy座標を振る量を、基準座標点のy座標に対して上下2画素としたが、この範囲は、ロバスト性と精度とのバランスに応じて任意に変更される。
【0302】
DSAD算出部404は、算出されたDSAD(−2)〜DSAD(+2)に関するDSAD情報を生成し、最小値選択部405に出力する。
【0303】
[最小値選択部の構成]
最小値選択部405は、DSAD情報に基づいて、すべての左側座標点及び水平視差d1について、最小のDSADを選択する。そして、最小値選択部405は、選択されたDSADを図43に示す視差検出用DPマップの各ノードP(x、d)に格納する。したがって、最小のDSADがノードP(x、d)のスコアとなる。視差検出用DPマップは、横軸が左側座標点のx座標、縦軸が水平視差d1となっており、複数のノードP(x、d)を有している。視差検出用DPマップは、左側座標点の水平視差d1を算出する際に使用される。また、視差検出用DPマップは、左側座標点のy座標毎に生成される。したがって、いずれかの視差検出用DPマップ内のいずれかのノードP(x、d)は、いずれかの左側座標点に対応する。
【0304】
[モーション記述部の構成]
モーション記述部406は、図39に示すように、水平差分算出部411と、垂直差分算出部412と、時間差分算出部413と、フィルタ部414と、モーションスコア算出部415とを備える。
【0305】
水平差分算出部411は、キャリブレーション済み画像VL−2を取得し、キャリブレーション済み画像VL−2の画素、即ち左側座標点毎に、以下の処理を行なう。すなわち、水平差分算出部411は、左側座標点を基準座標点とし、基準座標点の輝度から、基準座標点よりx座標が1大きい参照座標点の輝度を減算する。水平差分算出部411は、これにより得られた値を水平差分dxとし、水平差分dxに関する水平差分情報を生成し、フィルタ部414に出力する。
【0306】
垂直差分算出部412は、キャリブレーション済み画像VL−2を取得し、キャリブレーション済み画像VL−2の画素、即ち左側座標点毎に、以下の処理を行なう。即ち、垂直差分算出部412は、左側座標点を基準座標点とし、基準座標点の輝度から、基準座標点よりy座標が1大きい参照座標点の輝度を減算する。垂直差分算出部412は、これにより得られた値を垂直差分dyとし、算出された垂直差分dyに関する垂直差分情報を生成し、フィルタ部414に出力する。
【0307】
時間差分算出部413は、キャリブレーション済み画像VL−2と、前フレームのキャリブレーション済み画像V’L−2とを取得し、キャリブレーション済み画像VL−2の画素、即ち左側座標点毎に、以下の処理を行なう。即ち、時間差分算出部413は、左側座標点を基準座標点とし、前フレームのキャリブレーション済み画像V’L−2の各画素のうち、基準座標点と同じ座標を有する画素を参照座標点とする。そして、時間差分算出部413は、基準座標点の輝度から参照座標点の輝度を減算する。時間差分算出部413は、これにより得られた値を時間差分dtとし、算出された時間差分dtに関する時間差分情報を生成し、フィルタ部414に出力する。
【0308】
フィルタ部414は、水平差分情報、垂直差分情報、及び時間差分情報にローパスフィルタを掛ける。その後、フィルタ部414は、これらの情報をモーションスコア算出部415に出力する。
【0309】
モーションスコア算出部415は、水平差分情報、垂直差分情報、及び時間差分情報に基づいて、左側座標点毎に静動判定を行い、この結果に応じたモーションスコアを決定する。
【0310】
具体的には、モーションスコア算出部415は、左側座標点毎に、輝度変化量の時間微分値(dx/dt+dy/dt)(単位時間あたりの輝度変化量)を算出し、算出された微分値をシグモイド関数に代入することで、0〜1の値に正規化する。モーションスコア算出部415は、正規化された値をモーションスコアとし、モーションスコアに関するモーションスコア情報をアンカーベクトル構築部407に出力する。モーションスコアは、左側座標点の輝度の変動が激しくなるほど(即ち、画像の動きが激しくなるほど)小さくなる。
【0311】
なお、モーションスコア算出部415は、以下のようにモーションスコアを算出するようにしてもよい。
【0312】
すなわち、モーションスコア算出部415は、キャリブレーション済み画像VL−2の解像度を落とすことでモザイク画像V’’L−2を生成する。モーションスコア算出部415は、キャリブレーション済み画像VL−2の左側座標点を基準座標点とし、モザイク画像V’’L−2のうち、基準座標点と同じ座標を有する座標点を参照座標点とする。モーションスコア算出部415は、基準座標点の輝度から参照座標点の輝度を減算する。モーションスコア算出部415は、算出された差分値をシグモイド関数に代入することで、0〜1の値に正規化する。モーションスコア算出部415は、正規化された値をモーションスコアとする。この場合、モーションスコアは、キャリブレーション済み画像VL−2のうち、プレーンな部分で大きくなる。この手法では、処理負担が軽くなり、かつ、ロバストなモーションスコアが得られる。
【0313】
[アンカーベクトル構築部の構成]
図38に示すアンカーベクトル構築部407は、図40に示すように、ローカルヒストグラム作成部416と、アンカーベクトル算出部417とを備える。
【0314】
ローカルヒストグラム作成部416は、前フレームで作成された視差マップDMn−1を取得する。ローカルヒストグラム作成部416は、視差マップの座標点(これらの座標点は、左側座標点に対応する)毎に以下の処理を行なう。具体的には、ローカルヒストグラム作成部416は、視差マップのいずれかの座標点を基準座標点とし、基準座標点の周辺領域(例えば、基準座標点を中心とした5×5画素の領域)から水平視差情報を抽出する。そして、ローカルヒストグラム作成部416は、これらの水平視差情報に基づいて、図41に示すローカルヒストグラムDHを生成する。ローカルヒストグラムDHは、水平視差d1の値と、視差の値を有する画素の数(頻度)との対応関係を示す。
【0315】
ローカルヒストグラム作成部416は、ローカルヒストグラムDHに関するローカルヒストグラム情報を生成し、アンカーベクトル算出部417に出力する。
【0316】
アンカーベクトル算出部417は、ローカルヒストグラム情報に基づいて、左側座標点毎に以下の処理を行なう。即ち、アンカーベクトル算出部417は、図41に示すように、頻度が所定の閾値Th2以上となる水平視差d1、即ち高頻度視差d1’を検索する。アンカーベクトル算出部417は、モーションスコアに所定値を乗じたボーナス値と、高頻度視差d1’とを示すアンカーベクトル情報を生成し、コスト算出部408に出力する。なお、アンカーベクトル情報は、例えば以下の式(67)で表される。
【0317】
【数55】

【0318】
ここで、α2はボーナス値を示し、行列Mは、高頻度視差d1’の位置を示す。即ち、行列Mの各列は、それぞれ異なる水平視差d1を示し、成分が1となっている列は、その列に対応する水平視差d1が高頻度視差d1’であることを示す。高頻度視差d1’が存在しない場合、行列Mのすべての成分が0になる。
【0319】
[コスト算出部の構成]
図38に示すコスト算出部408は、アンカーベクトル情報に基づいて、視差検出用DPマップの各ノードP(x、d)の値を更新する。即ち、コスト算出部408は、左側座標点毎に、高頻度視差d1’に対応するノード(x、d(=d1’))を特定し、このノードのスコアから、ボーナス値α2を減算する。これにより、前フレームでの頻度が大きい視差と同じ視差を有するノードは、最短経路を通りやすくなる。言い換えれば、前フレームでの頻度が大きい視差は、現フレームにおいても選択されやすくなる。
【0320】
[経路構築部の構成]
図38に示す経路構築部409は、図42に示すように、左目用画像水平差分算出部418と、右目用画像水平差分算出部419と、重み算出部420と、経路算出部421とを備える。
【0321】
左目用画像水平差分算出部418は、上述した水平差分算出部411と同様の処理を行なう。そして、左目用画像水平差分算出部418は、この処理により生成された水平差分情報を重み算出部420に出力する。
【0322】
右目用画像水平差分算出部419は、キャリブレーション済み画像VR−2を取得する。そして、右目用画像水平差分算出部419は、キャリブレーション済み画像VR−2に対して上述した水平差分算出部411と同様の処理を行なう。そして、右目用画像水平差分算出部419は、この処理により生成された水平差分情報を重み算出部420に出力する。
【0323】
重み算出部420は、水平差分情報に基づいて、左側座標点の重みwt、右側座標点のwtをすべての座標点について算出する。具体的には、重み算出部420は、左側座標点の水平差分dwをシグモイド関数に代入することで、水平差分dwを0〜1の値に正規化し、これを重みwtとする。同様に、重み算出部420は、右側座標点の水平差分dwをシグモイド関数に代入することで、水平差分dwを0〜1の値に正規化し、これを重みwtとする。そして、重み算出部420は、算出された重みwt、wtに関する重み情報を生成し、経路算出部421に出力する。重みwt、wtは画像のエッヂ(輪郭)の部分で小さくなり、平坦部分で大きくなる。
【0324】
経路算出部421は、重み算出部420から与えられた重み情報に基づいて、視差検出用DPマップの各ノードP(x、d)に至るまでの累積コストを計算する。具体的には、経路算出部421は、ノード(0、0)を始点、ノード(xmaz、0)を終点とし、始点からノードP(x、d)に至るまでの累積コストを以下のように定義する。ここで、xmaxは、左側座標点のx座標の最大値である。
【0325】
【数56】

【0326】
ここで、DFI(x、d)は、経路PA0を通ってノードP(x、d)に至るときの累積コストであり、DFI(x、d)は、経路PA1を通ってノードP(x、d)に至るときの累積コストであり、DFI(x、d)は、経路PA2を通ってノードP(x、d)に至るときの累積コストである。また、DFI(x、d−1)は始点からノードP(x、d−1)に至るまでの累積コストである。DFI(x−1、d)は始点からノードP(x−1、d)に至るまでの累積コストである。DFI(x−1、d+1)は始点からノードP(x−1、d+1)に至るまでの累積コストである。また、occCost、occCostは、それぞれコストの値を示す所定値であり、例えば4.0である。wtは、ノードP(x、d)に対応する左側座標点の重みであり、wtは、この左側座標点と同じ座標を有する右側座標点の重みである。
【0327】
そして、経路算出部421は、算出された累積コストDFI(x、d)〜DFI(x、d)のうち、最小のものを選択し、選択されたものをノードP(x、d)の累積コストDFI(x、d)とする。経路算出部421は、すべてのノードP(x、d)について累積コストDFI(x、d)を算出し、視差検出用DPマップに格納する。
【0328】
バックトラック部410は、累積コストが最小となる経路を終点から始点に向かって逆にたどることで、最短経路、即ち始点から終点までの累積コストが最小となる経路を算出する。この最短経路上のノードは、対応する左側座標点の水平視差d1となる。
【0329】
バックトラック部410は、算出された最短経路と、後述するローカルマッチング部から与えられた垂直視差情報とに基づいて、視差マップDMを生成する。視差マップDMは、左側座標点毎に水平視差d1及び垂直視差d2を示す。バックトラック部410は、生成された視差マップDMに関する視差マップ情報を生成し、図37に示すディスパリティマップ統合部403に出力する。ここで、視差マップDMには、左側座標点のy座標と、左側座標点と同じx座標を有する右側座標点のy座標との差分、即ち垂直視差d2のうち、ローカルマッチング部402により最適であると判断されたものが格納される。
【0330】
[ローカルマッチング部の構成]
ローカルマッチング部402(第2の水平視差検出部)は、いわゆるブロックマッチングを行なうことで、画素ブロックごとに視差マップDMを算出する。視差マップDMも、左側座標点毎に水平視差d1及び垂直視差d2を示す。
【0331】
具体的には、ローカルマッチング部402は、キャリブレーション済み画像VL−2、VR−2をそれぞれ複数の画素ブロックに分割する。例えば、ローカルマッチング部402は、上述した幾何キャリブレーション部3のように、キャリブレーション済み画像VL−2、VR−2をそれぞれ64個の画素ブロックに分割する。そして、ローカルマッチング部402は、キャリブレーション済み画像VL−2の画素ブロック(以下、「左側画素ブロック」とも称する)ごとに、上述したグローバルマッチング部401と同様の処理を行う。ここで、ローカルマッチング部402は、左側座標点毎に垂直視差d2も算出する。垂直視差d2の算出方法は、上述したグローバルマッチング部401の処理と同様である。例えば、ローカルマッチング部402は、上述したDSADを算出する処理において、基準座標点とx座標が同じ右側座標点を参照座標点とすることで、y軸方向にもDSADを算出する。その後、ローカルマッチング部402は、算出されたDSAD等に基づいて、垂直視差d2を算出するための視差検出用DPマップを生成し、この視差検出用DPマップの最短経路を算出し、この最短経路に基づいて、垂直視差d2を左側座標点毎に算出する。
【0332】
ローカルマッチング部402は、生成された視差マップDMに関する視差マップ情報をディスパリティマップ統合部403に出力する一方で、垂直視差d2に関する垂直視差情報を生成し、グローバルマッチング部401に出力する。
【0333】
[ディスパリティマップ統合部の構成]
ディスパリティマップ統合部403は、まず、視差マップ情報に基づいて、グローバルマッチング部401が生成した視差マップDM、及びローカルマッチング部402が生成した視差マップDMを評価する。
【0334】
具体的には、ディスパリティマップ統合部403は、現フレームの視差マップDMと、前フレームの視差マップDMとの差分を示す第1の差分マップを生成する。第1の差分マップは、現フレームの視差マップDMの水平視差d1から前フレームの視差マップDMの水平視差d1を減算した値を、左側座標点毎に示すものである。次いで、ディスパリティマップ統合部403は、第1の差分マップを2値化することで、第1の2値化差分マップを生成する。そして、ディスパリティマップ統合部402は、第1の2値化差分マップの各値に所定の重み(例えば8)を乗じることで、第1の差分スコアマップを生成する。
【0335】
さらに、ディスパリティマップ統合部403は、現フレームの視差マップDMと、現フレームのキャリブレーション済み画像VL−2とのエッジ画像を生成し、これらの相関を示す相関マップを生成する。現フレームの視差マップDMのエッジ画像は、現フレームの視差マップDMのエッジ部分(現フレームの視差マップDMに描かれた各画像の輪郭部分)を示す。同様に、キャリブレーション済み画像VL−2のエッジ画像は、キャリブレーション済み画像VL−2のエッジ部分(キャリブレーション済み画像VL−2に描かれた各画像の輪郭部分)を示す。エッジ画像同士の相関を算出する手法としては、例えば、NCC等のような相関関係を算出する手法が任意に用いられる。そして、ディスパリティマップ統合部403は、相関マップを2値化することで、2値化相関マップを生成する。そして、ディスパリティマップ統合部402は、2値化相関マップの各値に所定の重み(例えば26)を乗じることで、相関スコアマップを生成する。
【0336】
そして、ディスパリティマップ統合部403は、第1の差分スコアマップと相関スコアマップとを統合し、IIRフィルタを掛けることで、グローバルマッチング用信頼度マップEMを生成する。グローバルマッチング用信頼度マップEMの各左側座標点の値は、第1の差分スコアマップと相関スコアマップとの値のうち、大きい方の値を示す。
【0337】
一方、ディスパリティマップ統合部403は、現フレームの視差マップDMと、前フレームの視差マップDMとの差分を示す第2の差分マップを生成する。差分マップは、現フレームの視差マップDMの水平視差d1から前フレームの視差マップDMの水平視差d1を減算した値を、左側座標点毎に示すものである。次いで、ディスパリティマップ統合部403は、第2の差分マップを2値化することで、第2の2値化差分マップを生成する。そして、ディスパリティマップ統合部402は、第2の2値化差分マップの各値に所定の重み(例えば16)を乗じることで、第2の差分スコアマップを生成する。
【0338】
さらに、ディスパリティマップ統合部403は、現フレームのキャリブレーション済み画像VL−2のエッジ画像を生成する。このエッジ画像は、キャリブレーション済み画像VL−2のエッジ部分(キャリブレーション済み画像VL−2に描かれた各画像の輪郭部分)を示す。ディスパリティマップ統合部403は、このエッジ画像を2値化することで、2値化エッジマップを生成する。そして、ディスパリティマップ統合部402は、2値化エッジマップの各値に所定の重み(例えば8)を乗じることで、エッジスコアマップを生成する。
【0339】
そして、ディスパリティマップ統合部403は、第2の差分スコアマップとエッジスコアマップとを統合し、IIRフィルタを掛けることで、ローカルマッチング用信頼度マップEMを生成する。ローカルマッチング用信頼度マップEMの各左側座標点の値は、第2の差分スコアマップとエッジスコアマップとの値のうち、大きい方の値を示す。
【0340】
このように、ディスパリティマップ統合部403は、グローバルマッチング部401により生成された視差マップDMを異なる評価手法により評価し、それらの結果を統合することで、グローバルマッチング用信頼度マップEMを生成する。同様に、ディスパリティマップ統合部403は、ローカルマッチング部402により生成された視差マップDMを異なる評価手法により評価し、それらの結果を統合することで、ローカルマッチング用信頼度マップEMを生成する。ここで、視差マップDMの評価手法と視差マップDMの評価手法とは互いに異なっている。また、評価手法によりことなる重み付けが行われている。
【0341】
そして、ディスパリティマップ統合部403は、グローバルマッチング用信頼度マップEMと、ローカルマッチング用信頼度マップEMとを対比することで、左側座標点毎に、視差マップDMと視差マップDMとのどちらの信頼度が高いかを判定する。ディスパリティマップ統合部403は、判定の結果に基づいて、信頼度の高い視差マップを左側座標点毎に示す視差検出用信頼度マップEMを生成する。
【0342】
図44に、視差検出用信頼度マップEMの一例を示す。即ち、図44(a)は、幾何キャリブレーションが行われなかった場合に生成された視差検出用信頼度マップEM1を示し、図44(b)は、幾何キャリブレーションが行われた場合に生成された視差検出用信頼度マップEM2を示す。領域EM11は、視差マップDMの方が視差マップDMよりも信頼度が高い領域を示し、領域EM12は、視差マップDMの方が視差マップDMよりも信頼度が高い領域を示す。
【0343】
ローカルマッチングは、上述したように、キャリブレーションの結果に依存しないので、視差検出用信頼度マップEM1内の領域EM12の方が視差検出用信頼度マップEM2内の領域EM12よりも広い。
【0344】
これに対し、グローバルマッチングは、本実施形態のように精度の良い幾何キャリブレーションが行われた場合には、良好な視差検出を行なうことができるので、視差検出用信頼度マップEM2内の領域EM11の方が視差検出用信頼度マップEM1内の領域EM11よりも広い。
【0345】
ディスパリティマップ統合部403は、生成された視差検出用信頼度マップに基づいて、視差マップDMを生成する。ここで、視差マップDMの各左側座標点の水平視差d1は、視差マップDM及び視差マップDMのうち信頼度が高い方の値を示す。
【0346】
図45は、視差検出用3による効果を説明するための図である。図45(a)は、視差マップDMに基づいて生成された多視点画像V1を示し、図45(b)は、視差マップDMに基づいて生成された多視点画像V2を示し、図45(c)は、視差マップDMに基づいて生成された多視点画像V3を示す。多視点画像V1〜V3には、被写体画像V10〜V30が描かれている。被写体画像V10〜V30の先端部V11〜V31は、上述したモデルが当てはまらない領域となっている。
【0347】
グローバルマッチングは、精度の良否がモデルに依存するので、端部V11が破綻している。しかし、しかし、ローカルマッチングは精度の良否がモデルに依存しないので、端部V21は破綻していない。視差マップDMは視差マップDM及び視差マップDMのうち信頼度が高い方の値を示すので、端部V31の領域では、視差マップDMの値を示す。したがって、端部V31は、視差マップDMに基づいて生成されている。このため、端部V31も破綻していない。
【0348】
[視差検出部による効果]
次に、視差検出部4による効果を説明する。
【0349】
視差検出部4は、DSADの算出の際に、y軸方向の視差も考慮するので、幾何ズレ(垂直ズレ)に強い視差検出を行なうことができる。即ち、視差検出部4は、従来よりもロバスト性及び制度の高い水平視差の検出を行うことができる。また、視差検出部4は、y軸方向の視差を考慮する範囲を制限するので(ここでは、基準座標点に対して上下2画素)、最適化問題の爆発が起こることを防止することができる。
【0350】
また、視差検出部4は、DSADを算出する際に、カラーキャリブレーションにおいて算出された信頼度を考慮するので、ロバスト性と精度とのバランスを考慮した視差検出を行うことができる。
【0351】
また、視差検出部4は、DSADを視差検出用DPマップのスコアとするので、単にSADのみをスコアとする場合よりも、視差検出用DPマップのスコアを精度良く算出することができ、ひいては、視差検出を精度良く行なうことができる。
【0352】
また、視差検出部4は、静動判定の結果に基づいて、視差検出用DPマップの各スコアにボーナスを付与するので、視差検出用DPマップのスコアを精度良く算出することができる。また、視差検出部4は、キャリブレーション済み画像VL−2の解像度を落とすことでモザイク画像V’’L−2を生成し、モザイク画像V’’L−2に基づいてモーションスコアを算出してもよい。この場合、処理負担が軽くなり、かつ、ロバストなモーションスコアが得られる。
【0353】
また、視差検出部4は、各ノードP(x、d)の累積コストを算出する際に、水平差分に応じた重みwt、wtを考慮するので、累積コストを精度良く算出することができる。この重みwt、wtは、エッジ部では小さくなり、平坦部では大きくなるので、スムージングが画像に応じて適切に行われるようになる。
【0354】
また、視差検出部4は、グローバルマッチングにより算出された視差マップDMに、ローカルマッチングにより算出された垂直視差d2を含ませるので、視差マップDMの精度を向上させることができる。例えば、この視差マップDMは、入力画像V、Vのアライメントが取れていなくても、ロバストになる。
【0355】
また、視差検出部4は、視差マップDMとキャリブレーション済み画像VL−2とのエッジ画像の相関を示す相関マップを生成し、この相関マップに基づいて視差マップDMの信頼度を算出するので、視差マップDMのいわゆるストリーキング領域での信頼度を算出することができる。このため、視差検出部4は、ストリーキング領域において、視差検出を精度良く行うことができる。
【0356】
また、視差検出部4は、視差マップDMと視差マップDMとを評価する際に、それぞれ異なる評価手法にて視差マップDMと視差マップDMとを評価するので、これらの特性を考慮した評価を行うことができる。
【0357】
また、視差検出部4は、それぞれの評価手法により得られたマップにIIRフィルタを掛けることで、グローバルマッチング用信頼度マップEMと、ローカルマッチング用信頼度マップEMとを生成するので、時間的に安定した信頼度マップを生成することができる。
【0358】
また、視差検出部4は、視差マップDMと視差マップDMとのうち、信頼度の高い方を用いて視差マップDMを生成するので、グローバルマッチングでは正確な視差が検出されにくい領域、及びローカルマッチングでは正確な視差が検出されにくい領域において、正確な視差を検出することができる。
【0359】
また、視差検出部4は、生成された視差マップDMを次フレームで考慮するので、単に複数のマッチング手法を並行して行う場合よりも、視差検出を精度良く行なうことができる。
【0360】
<3.画像処理装置による処理>
次に、画像処理装置1による処理を説明する。
【0361】
[カラーキャリブレーション部による処理]
まず、図46に示すフローチャートに沿って、カラーキャリブレーション部2が行う処理について説明する。
【0362】
ステップS10において、ブロック分割部207は、図8(a)に示すように、入力画像Vを8つの画素ブロックBL−1に分割する。同様に、ブロック分割部207は、図8(b)に示すように、入力画像Vを8つの画素ブロックBR−1に分割する。
【0363】
次いで、ブロック分割部207は、各画素ブロックBL−1、BR−1内の階調を64階調に落とす。ブロック分割部207は、各画素ブロックBL−1、BR−1に関するブロック情報をヒストグラム生成部208に出力する。
【0364】
次いで、ヒストグラム生成部208は、ブロック情報に基づいて、画素ブロックBL−1毎に、図9(a)に示すようなカラーヒストグラムCHを生成する。同様に、ヒストグラム生成部208は、画素ブロックBR−1毎に、図9(b)に示すようなカラーヒストグラムCHを生成する。次いで、ヒストグラム生成部208は、カラーヒストグラムCHとカラーヒストグラムCHとを対応付ける。次いで、ヒストグラム生成部208は、カラーヒストグラムCH、CHに関するカラーヒストグラム情報を生成し、DPマッチング部209に出力する。
【0365】
次いで、DPマッチング部209は、カラーヒストグラム情報に基づいて、画素ブロックBL−1、BR−1の組毎に、以下の処理を行なう。すなわち、DPマッチング部209は、まず、図10に示すような色対応検出用DPマップを生成する。そして、DPマッチング部209は、ノードP(0、0)を始点、ノードP(63、63)を終点とし、始点からノードP(n、n)に至るまでの累積コストを上記の式(1)〜(3)のように定義する。
【0366】
次いで、DPマッチング部209は、始点から終点を含む各ノードまでの累積コストを計算し、最小の累積コストとなる経路を終点から始点に向かって逆にたどることで、最短経路、即ち始点から終点までの累積コストが最小となる経路を算出する。DPマッチング部209は、画素ブロックBL−1、BR−1の組毎に算出された最短経路に関する最短経路情報を生成し、カラーペア算出部210に出力する。
【0367】
次いで、カラーペア算出部210は、最短経路情報に基づいて、画素ブロックBL−1、BR−1の組毎にカラーペアを算出する。カラーペア算出部210は、1つの画素ブロックBL−1あたり250個程度のカラーペアを算出し、合計で2000個程度のカラーペアを算出する。カラーペア算出部210は、算出されたカラーペアに関するカラーペア情報を生成し、線形カラーパラメータフィッティング部202及び非線形カラーパラメータフィッティング部204に出力する。
【0368】
ステップS20において、線形カラーパラメータフィッティング部202は、カラーペア情報に基づいて、入力画像Vの輝度と入力画像Vの輝度との対応関係を示すモデル式を算出する。このモデル式は、上述した式(7)で表される。
【0369】
具体的には、まず、足し込み行列算出部211は、上述した式(8)で表される行列をすべてのカラーペアについて算出する。足し込み行列算出部211は、算出された行列をすべて足し込むことで、上述した式(9)で示される足し込み行列Mを算出する。
【0370】
次いで、足し込み行列算出部211は、算出された足し込み行列Mに関する足し込み行列情報を生成し、カラーペア情報と共に係数算出部212に出力する。
【0371】
次いで、係数算出部212は、カラーペア情報に基づいて、上述した式(10)で表される行列をすべてのカラーペアについて算出する。係数算出部212は、算出された行列をすべて足し込むことで、上述した式(11)で示される係数算出用行列Aを算出する。
【0372】
次いで、係数算出部212は、上述した式(12)に基づいて、カラー補正係数wi、waの第1初期値coef(w)を算出する。
【0373】
次いで、係数算出部212は、算出された第1初期値coef(w)に関する第1初期値情報を生成し、フィルタ部213に出力する。
【0374】
次いで、フィルタ部213は、係数算出部212から与えられた第1初期値情報と、係数保持部214から与えられた前フレームの線形補正係数情報と、上述した式(13)とに基づいて、カラー補正係数wi、waの第2初期値coef(w)を算出する。
【0375】
次いで、フィルタ部213は、第2初期値coef(w)にIIRフィルタを作用させることで、カラー補正係数wi、waを線形補正係数coef(linear)として算出する。フィルタ部213は、算出された線形補正係数coef(linear)に関する線形補正係数情報を係数保持部214、非線形カラーパラメータフィッティング部204、評価部205、カラーキャリブレーション実行部206に出力する。
【0376】
一方、特徴量マッチング部203は、現フレームの入力画像V、Vの輝度をマッチングさせることで、カラーペアを抽出する。ついで、特徴量マッチング部203は、抽出されたカラーペアに関するカラーペア情報を生成し、非線形カラーパラメータフィッティング部204及び評価部205に出力する。
【0377】
ステップS30において、非線形カラーパラメータフィッティング部204は、カラーペア情報と、線形補正係数情報または非線形補正係数情報とに基づいて、カラー補正係数wi、waを非線形補正係数coef(nonlinear)として算出する。
【0378】
具体的には、まず、ヤコビ行列算出部215は、線形補正係数情報または非線形補正係数情報と、ヒストグラムマッチング部201及び特徴量マッチング部203から与えられたカラーペア情報とに基づいて、上述した式(14)で表されるヤコビ行列Jを算出する。そして、ヤコビ行列算出部215は、算出されたヤコビ行列Jに関するヤコビ行列情報を生成し、ヘッセ行列算出部216に出力する。
【0379】
次いで、ヘッセ行列算出部216は、ヤコビ行列算出部216から与えられた情報に基づいて、上述した式(17)で示されるヘッセ行列Hを算出する。次いで、ヘッセ行列算出部216は、算出されたヘッセ行列Hに関するヘッセ行列情報を生成し、ヤコビ行列算出部215から与えられた情報と共に係数更新部217に出力する。
【0380】
次いで、係数更新部217は、ヘッセ行列算出部216から与えられた情報と、上述した式(18)とに基づいて、カラー補正係数w、wを非線形補正係数coef(nonlinear)として算出する。
【0381】
次いで、係数更新部217は、算出された非線形補正係数coef(nonlinear)に関する非線形補正係数情報を生成し、非線形補正係数coef(nonlinear)が一定の値に収束したかを判定する。係数更新部217は、非線形補正係数coef(nonlinear)が収束したと判定した場合には、非線形補正係数情報を評価部205及びカラーキャリブレーション実行部206に出力し、非線形補正係数coef(nonlinear)が収束していないと判定した場合には、非線形補正係数情報をヤコビ行列算出部215に出力する。その後、ステップS30の処理が再度行われる。
【0382】
ステップS40において、カラーコンバート部218は、現フレームの入力画像V、Vを取得する。カラーコンバート部218は、入力画像V、Vと、線形カラーパラメータフィッティング部202から与えられた線形補正係数情報と、に基づいて、入力画像Vの輝度を補正する。カラーコンバート部218は、補正後の値を新たな入力画像Vの輝度とする。カラーコンバート部218は、入力画像Vと補正後の入力画像Vとを線形カラーキャリブレーション済み画像VL−1a、VR−1aとしてヒストグラムベース信頼度算出部219に出力する。
【0383】
次いで、ヒストグラムベース信頼度算出部219は、線形カラーキャリブレーション済み画像VL−1a、VR−1aをそれぞれ8つの画素ブロックBL−1、BR−1に分割する。そして、ヒストグラムベース信頼度算出部219は、輝度と、その輝度を有する画素の数(頻度)との対応関係を示す補正後カラーヒストグラムを、画素ブロックBL−1、BR−1毎に生成する。
【0384】
次いで、ヒストグラムベース信頼度算出部219は、画素ブロックBL−1の補正後カラーヒストグラムと、画素ブロックBR−1の補正後カラーヒストグラムとの類似度を、正規化相互相関(NCC)を用いて算出する。
【0385】
ヒストグラムベース信頼度算出部219は、画素ブロックBL−1毎に類似度を算出し、これらの類似度を例えば上述した式(16)のerrorに代入することで、類似度を0〜1の範囲内の値に正規化する。そして、ヒストグラムベース信頼度算出部219は、正規化された値を線形補正係数coef(linear)の信頼度とする。そして、ヒストグラムベース信頼度算出部219は、算出された各画素ブロックBL−1の信頼度に関する線形補正係数信頼度情報を生成し、信頼度マップ生成部221に出力する。
【0386】
一方、特徴点ベース信頼度算出部220は、特徴量マッチング部203から与えられたカラーペア情報に基づいて、入力画像V内の特徴点を8つの画素ブロックBL−1にそれぞれ分類する。そして、特徴点ベース信頼度算出部220は、非線形カラーパラメータフィッティング部204から与えられた非線形補正係数情報に基づいて、画素ブロックBL−1毎に非線形補正係数coef(nonlinear)の信頼度を算出する。特徴点ベース信頼度算出部220は、算出された各画素ブロックBL−1の信頼度に関する非線形補正係数信頼度情報を生成し、信頼度マップ生成部221に出力する。
【0387】
次いで、信頼度マップ生成部221は、ヒストグラムベース信頼度算出部219及び特徴点ベース信頼度算出部220から与えられた情報に基づいて、カラーキャリブレーション用信頼度マップを生成する。そして、信頼度マップ生成部221は、生成されたカラーキャリブレーション用信頼度マップに関する信頼度マップ情報を生成し、カラーキャリブレーション実行部206及び視差検出部4に出力する。
【0388】
ステップS50において、カラーキャリブレーション実行部206は、現フレームの入力画像V、Vを取得する。さらに、カラーキャリブレーション実行部206は、信頼度マップ情報に基づいて、画素ブロックBL−1毎にどちらの補正係数を使用するかを決定する。そして、カラーキャリブレーション実行部206は、線形補正係数情報と、非線形補正係数情報とに基づいて、画素ブロックBL−1毎にカラーキャリブレーションを実行する。
【0389】
[幾何キャリブレーション部による処理]
次に、幾何キャリブレーション部3による処理の手順を、図47に示すフローチャートに沿って説明する。
【0390】
ステップS60において、特徴量マッチング部301は、カラーキャリブレーション済み画像VL−1、VR−1の輝度をマッチングさせることで、特徴量ベクトルVEを算出する。次いで、特徴量マッチング部301は、画素ブロックBL−2、BR−2及び特徴量ベクトルVEに関する特徴量ベクトル情報を生成し、対応点リファインメント部302及び非線形幾何パラメータフィッティング部304に出力する。
【0391】
ステップS70において、ヒストグラム生成部307は、特徴量ベクトル情報に基づいて、特徴量ベクトルVEの成分毎の頻度を示すベクトル成分ヒストグラムを画素ブロックBL−2毎に生成する。ヒストグラム生成部307は、ベクトル成分ヒストグラムに関するベクトル成分ヒストグラム情報を生成し、フィルタ部308に出力する。
【0392】
次いで、フィルタ部308は、ベクトル成分ヒストグラム情報にガウシアンフィルタを複数回作用させることで、ベクトル成分ヒストグラムを平滑化させる。フィルタ部308は、平滑化されたベクトル成分ヒストグラムに関する平滑化ヒストグラム情報を生成し、最大頻度検出部309及び対応点選択部311に出力する。
【0393】
次いで、最大頻度検出部309は、平滑化ヒストグラム情報に基づいて、各ベクトル成分ヒストグラムから、頻度が最大となるx成分、y成分を特定する。そして、このようなx成分、y成分を有する特徴量ベクトルVEを、当該特徴量ベクトルVEが属する画素ブロックBL−2の代表ベクトルVEとする。これにより、最大頻度検出部309は、画素ブロックBL−2毎に代表ベクトルVEを算出する。最大頻度検出部309は、代表ベクトルVEの成分に関する代表ベクトル成分情報を生成し、座標付与部310に出力する。
【0394】
次いで、座標付与部310は、代表ベクトル成分情報に基づいて、各代表ベクトルVEの座標(始点の座標)をミーンシフト処理により決定する。そして、座標付与部310は、代表ベクトルVEの成分及び座標に関する代表ベクトル情報を生成し、対応点選択部311に出力する。
【0395】
次いで、対応点選択部311は、代表ベクトル情報及び平滑化ヒストグラム情報に基づいて、複数の代表ベクトルVEのうち、最大頻度が所定値未満となるものを消去する(すなわち、足切りを行なう)。そして、対応点選択部311は、選択された代表ベクトルVEを構成する特徴点ペア、すなわち代表点ペアに関する対応点選択情報を生成し、線形幾何パラメータフィッティング部303に出力する。
【0396】
ステップS80において、エラー計算部315は、対応点選択情報と、パラメータ選択部305から与えられたパラメータ情報とに基づいて、上述した式(32)、(33)に示されるエラー値e1、e2を算出する。次いで、エラー計算部315は、算出されたエラー値e1、e2に関するエラー値情報を生成し、対応点選択情報と共に初期パラメータ選択部316に出力する。また、エラー計算部315は、エラー値のうち、値が小さいものを選択し、選択されたエラー値に関する最小エラー値情報を生成する。そして、エラー計算部315は、最小エラー値情報及び対応点選択情報を重み算出部313に出力する。
【0397】
次いで、初期パラメータ選択部316は、エラー値情報に基づいて、初期パラメータとして前フレームのホモグラフィー行列HLn−1、HRn−1及び単位行列Iのうちどちらを使用するのかを決定する。具体的には、初期パラメータ選択部316は、エラー値が小さい方の行列を初期パラメータのホモグラフィー行列とする。
【0398】
次いで、初期パラメータ選択部316は、選択された初期パラメータに関する初期パラメータ情報を生成し、線形幾何パラメータ算出部314に出力する。また、初期パラメータ選択部316は、対応点選択情報を座標ペア保持部317及び座標ペア統合部318に出力する。また、初期パラメータ選択部316は、初期パラメータとして単位行列を選択した場合には、リセット情報を座標ペア保持部317に出力する。
【0399】
次いで、座標ペア統合部318は、初期パラメータ選択部316及び座標ペア保持部317から与えられた対応点選択情報を統合する。座標ペア統合部318は、統合された対応点選択情報を重み算出部313及び線形幾何パラメータ算出部314に出力する。
【0400】
次いで、重み算出部313は、変換行列Fの算出の際に時間軸拘束をどの程度考慮するかを示す重み、即ち時間軸拘束の重みwを算出する。重み算出部313は、決定された時間軸拘束の重みwに関する時間軸拘束重み情報を生成し、線形幾何パラメータ算出部314に出力する。
【0401】
次いで、座標変換部319は、初期化部315から与えられた情報に基づいて、各代表点ペアを座標変換する。具体的には、座標変換部319は、左側代表点を前フレームのホモグラフィー行列HLn−1または単位行列Iで座標変換し、右側代表点を前フレームのホモグラフィー行列HRn−1または単位行列Iで座標変換する。次いで、座標変換部319は、座標変換後の代表点ペアの座標及び初期パラメータを正規化する。次いで、座標変換部319は、各代表点ペアの正規化座標及び正規化ホモグラフィー行列WL、WRに関する座標変換情報を生成し、マトリックス算出部320に出力する。
【0402】
次いで、マトリックス算出部320は、座標変換情報に基づいて、上述した式(34)で表される演算行列Mを算出する。マトリックス算出部320は、算出された演算行列Mに関する演算行列情報を生成し、F行列算出部321に出力する。
【0403】
次いで、F行列算出部321は、演算行列情報に基づいて、演算行列Mの最小固有ベクトルvminを算出する。さらに、F行列算出部321は、最小固有ベクトルvminの最小特異値が0に落ちるように、最小固有ベクトルvminを3×3の行列に特異値分解する。そして、F行列算出部321は、算出された行列SVD(vmin)と、上述した式(36)とに基づいて、変換行列Fを算出する。さらに、F行列算出部321は、重みwの値をいくつかの値、例えば2×w、2×w、2−1×w、2−2×wに振って、変換行列Fを算出する。そして、F行列算出部321は、算出された変換行列Fの各々について、上述した式(32)を用いてエラー値を算出する。そして、F行列算出部321は、エラー値の最も小さいものを選択し、選択された変換行列Fに関する変換行列情報を生成し、座標変換情報と共にF行列分解部322に出力する。
【0404】
次いで、F行列分解部322は、変換行列情報に基づいて、変換行列Fをホモグラフィー行列HL、HR、行列Fに分解する。実質的には、F行列分解部322は、エピポーラ線を平行にする行列をホモグラフィー行列HL、HRとして算出する。次いで、F行列分解部322は、算出されたホモグラフィー行列HL、HRに関する線形補正係数情報を生成し非線形幾何パラメータフィッティング部304及びパラメータ選択部305に出力する。
【0405】
ステップS90において、ヤコビ行列算出部323は、特徴量ベクトル情報と、線形補正係数情報または非線形補正係数情報とに基づいて、上述した式(43)で表されるヤコビ行列Jを算出する。そして、ヤコビ行列算出部323は、算出されたヤコビ行列Jに関するヤコビ行列情報を生成し、特徴量ベクトル情報及び線形補正係数情報と共にヘッセ行列算出部324に出力する。そして、ヤコビ行列算出部323は、算出されたヤコビ行列Jに関するヤコビ行列情報を生成し、ヘッセ行列算出部324に出力する。
【0406】
次いで、ヘッセ行列算出部324は、ヤコビ行列算出部323から与えられた情報に基づいて、上述した式(45)で示されるヘッセ行列Hを算出する。次いで、ヘッセ行列算出部324は、算出されたヘッセ行列Hに関するヘッセ行列情報を生成し、ヤコビ行列算出部323から与えられた情報と共に係数更新部325に出力する。
【0407】
次いで、係数更新部325は、ヘッセ行列算出部324から与えられた情報と、上述した式(46)とに基づいて、変換行列Fの各成分を非線形補正係数coef(nonlinear)として算出する。
【0408】
次いで、係数更新部325は、非線形補正係数coef(nonlinear)を上述したF行列分解部322の処理と同様の処理により分解することでホモグラフィー行列HL、HRを算出する。そして、係数更新部325は、算出されたホモグラフィー行列HL、HRに関する非線形補正係数情報を生成する。そして、係数更新部325は、ホモグラフィー行列HL、HRが一定の値に収束したかを判定し、ホモグラフィー行列HL、HRが一定の値に収束した場合には、非線形補正係数情報をパラメータ選択部306に出力し、ホモグラフィー行列HL、HRが収束していないと判定した場合には、非線形補正係数情報をヤコビ行列算出部323に出力する。その後、ステップS90の処理が再度行われる。
【0409】
ステップS100において、図16に示すパラメータ選択部305は、線形幾何パラメータフィッティング部303から与えられた線形補正係数情報と、非線形幾何パラメータフィッティング部304から与えられた非線形補正係数情報とのそれぞれについて、上述した式(32)を用いて、エラー値を算出する。そして、パラメータ選択部305は、エラー値が小さい方の情報をパラメータ情報として選択し、幾何キャリブレーション実行部306及び線形幾何パラメータフィッティング部303に出力する。
【0410】
ステップS110において、幾何キャリブレーション実行部306は、パラメータ情報に基づいて、カラーキャリブレーション済み画像VL−1、VR−1に対して幾何キャリブレーションを行なう。具体的には、幾何キャリブレーション実行部306は、カラーキャリブレーション済み画像VL−1の各座標点をホモグラフィー行列HLで座標変換し、カラーキャリブレーション済み画像VR−1の各座標点をホモグラフィー行列HRで座標変換する。幾何キャリブレーション実行部306は、幾何キャリブレーション後の各画像をそれぞれキャリブレーション済み画像VL−2、VR−2として、図5に示す視差検出部4に出力する。
【0411】
[視差検出部による処理]
次に、視差検出部4による処理の手順を、図48に示すフローチャートに沿って説明する。
【0412】
ステップS120において、DSAD算出部404は、キャリブレーション済み画像VL−2、VR−2と、カラーキャリブレーション部2から与えられた信頼度マップ情報と基づいて、左側座標点及び水平視差d1毎にDSAD(−2)〜DSAD(+2)を算出し、算出されたDSAD(−2)〜DSAD(+2)に関するDSAD情報を生成し、最小値選択部405に出力する。
【0413】
ステップS130において、最小値選択部405は、DSAD情報に基づいて、すべての左側座標点及び水平視差d1について、最小のDSADを選択する。そして、最小値選択部405は、選択されたDSADを図43に示す視差検出用DPマップの各ノードP(x、d)に格納する。
【0414】
一方、水平差分算出部411は、キャリブレーション済み画像VL−2を取得し、キャリブレーション済み画像VL−2の画素、即ち左側座標点毎に水平差分dxを算出し、算出された水平差分dxに関する水平差分情報を生成し、フィルタ部414に出力する。
【0415】
一方、垂直差分算出部412は、キャリブレーション済み画像VL−2を取得し、キャリブレーション済み画像VL−2の画素、即ち左側座標点毎に垂直差分dyを算出し、算出された垂直差分dyに関する垂直差分情報を生成し、フィルタ部414に出力する。
【0416】
一方、時間差分算出部413は、キャリブレーション済み画像VL−2と、前フレームのキャリブレーション済み画像V’L−2とを取得し、キャリブレーション済み画像VL−2の画素、即ち左側座標点毎に時間差分dtを算出し、算出された時間差分dtに関する時間差分情報を生成し、フィルタ部414に出力する。
【0417】
次いで、フィルタ部414は、水平差分情報、垂直差分情報、及び時間差分情報にローパスフィルタを掛ける。その後、フィルタ部414は、これらの情報をモーションスコア算出部415に出力する。
【0418】
次いで、モーションスコア算出部415は、水平差分情報、垂直差分情報、及び時間差分情報に基づいて、左側座標点毎に静動判定を行い、この結果に応じたモーションスコアを決定する。モーションスコア算出部415は、モーションスコアに関するモーションスコア情報をアンカーベクトル構築部407に出力する。モーションスコアは、左側座標点の輝度の変動が激しくなるほど(即ち、画像の動きが激しくなるほど)小さくなる。
【0419】
次いで、ローカルヒストグラム作成部416は、前フレームで作成された視差マップDMn−1を取得する。ローカルヒストグラム作成部416は、視差マップの座標点(これらの座標点は、左側座標点に対応する)毎に図41に示すローカルヒストグラムDHを生成する。ローカルヒストグラム作成部416は、ローカルヒストグラムDHに関するローカルヒストグラム情報を生成し、アンカーベクトル算出部417に出力する。
【0420】
次いで、アンカーベクトル算出部417は、ローカルヒストグラム情報に基づいて、左側座標点毎に以下の処理を行なう。即ち、アンカーベクトル算出部417は、図41に示すように、頻度が所定の閾値Th2以上となる水平視差d1、即ち高頻度視差d1’を検索する。アンカーベクトル算出部417は、モーションスコアに所定値を乗じたボーナス値と、高頻度視差d1’とを示すアンカーベクトル情報を生成し、コスト算出部408に出力する。
【0421】
ステップS140において、図48に示すコスト算出部408は、アンカーベクトル情報に基づいて、視差検出用DPマップの各ノードP(x、d)の値を更新する。即ち、コスト算出部408は、左側座標点毎に、高頻度視差d1’に対応するノード(x、d(=d’))を特定し、このノードのスコアから、ボーナス値α2を減算する。
【0422】
ステップS150において、左目用画像水平差分算出部418は、上述した水平差分算出部411と同様の処理を行なう。そして、左目用画像水平差分算出部418は、この処理により生成された水平差分情報を重み算出部420に出力する。
【0423】
一方、右目用画像水平差分算出部419は、キャリブレーション済み画像VR−2を取得する。そして、右目用画像水平差分算出部419は、キャリブレーション済み画像VR−2に対して上述した水平差分算出部411と同様の処理を行なう。そして、右目用画像水平差分算出部419は、この処理により生成された水平差分情報を重み算出部420に出力する。
【0424】
次いで、重み算出部420は、水平差分情報に基づいて、左側座標点の重みwt、右側座標点のwtをすべての座標点について算出する。重み算出部420は、算出された重みwt、wtに関する重み情報を生成し、経路算出部421に出力する。重みwt、wtは画像のエッヂ(輪郭)の部分で小さくなる。
【0425】
次いで、経路算出部421は、重み算出部420から与えられた重み情報に基づいて、視差検出用DPマップの各ノードP(x、d)に至るまでの累積コストを計算する。具体的には、経路算出部421は、ノード(0、0)を始点、ノード(xmaz、0)を終点とし、始点からノードP(x、d)に至るまでの累積コストを上述した式(68)〜(70)のように定義する。
【0426】
次いで、経路算出部421は、算出された累積コストDFI(x、d)〜DFI(x、d)のうち、最小のものを選択し、選択されたものをノードP(x、d)の累積コストDFI(x、d)とする。経路算出部421は、すべてのノードP(x、d)について累積コストDFI(x、d)を算出し、視差検出用DPマップに格納する。
【0427】
次いで、バックトラック部410は、累積コストが最小となる経路を終点から始点に向かって逆にたどることで、最短経路、即ち始点から終点までの累積コストが最小となる経路を算出する。
【0428】
一方、ローカルマッチング部402は、視差マップDMを生成し、生成された視差マップDMに関する視差マップ情報をディスパリティマップ統合部403に出力する。さらに、ローカルマッチング部402は、垂直視差d2に関する垂直視差情報を生成し、グローバルマッチング部401に出力する。
【0429】
ステップS160において、バックトラック部410は、算出された最短経路と、ローカルマッチング部402から与えられた垂直視差情報とに基づいて、視差マップDMを生成する。バックトラック部410は、生成された視差マップDMに関する視差マップ情報を生成し、図37に示すディスパリティマップ統合部403に出力する。
【0430】
ステップS170において、ディスパリティマップ統合部403は、まず、視差マップ情報に基づいて、グローバルマッチング部401が生成した視差マップDM、及びローカルマッチング部402が生成した視差マップDMを評価する。即ち、ディスパリティマップ統合部403は、グローバルマッチング部401により生成された視差マップDMを異なる評価手法により評価し、それらの結果を統合することで、グローバルマッチング用信頼度マップEMを生成する。同様に、ディスパリティマップ統合部403は、ローカルマッチング部402により生成された視差マップDMを異なる評価手法により評価し、それらの結果を統合することで、ローカルマッチング用信頼度マップEMを生成する。
【0431】
次いで、ディスパリティマップ統合部403は、グローバルマッチング用信頼度マップEMと、ローカルマッチング用信頼度マップEMとを対比することで、左側座標点毎に、視差マップDMと視差マップDMとのどちらの信頼度が高いかを判定する。ディスパリティマップ統合部403は、判定の結果に基づいて、信頼度の高い視差マップを左側画素ブロック毎に示す視差検出用信頼度マップEMを生成する。
【0432】
ディスパリティマップ統合部403は、生成された視差検出用信頼度マップに基づいて、視差マップDMを生成する。ここで、視差マップDMの各左側座標点の水平視差d1は、視差マップDM及び視差マップDMのうち信頼度が高い方の値を示す。
【0433】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0434】
1 裸眼立体視表示装置
2 カラーキャリブレーション部
3 幾何キャリブレーション部
4 視差検出部
201 ヒストグラムマッチング部
202 線形カラーパラメータフィッティング部
203 特徴量マッチング部
204 非線形カラーパラメータフィッティング部
205 評価部
206 カラーキャリブレーション実行部
301 特徴量マッチング部
302 対応点リファインメント部
303 線形幾何パラメータフィッティング部
304 非線形幾何パラメータフィッティング部
305 パラメータ選択部
306 幾何キャリブレーション実行部
401 グローバルマッチング部
402 ローカルマッチング部
403 ディスパリティマップ統合部
404 DSAD算出部
405 最小値選択部
406 モーション記述部
407 アンカーベクトル構築部
408 コスト算出部
409 経路構築部
410 バックトラック部



【特許請求の範囲】
【請求項1】
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像のうち、前記基準画像を構成する基準画素と、前記参照画像を構成する画素のうち、前記基準画素と同じ高さ位置に存在する第1の参照画素、及び前記第1の参照画素と前記高さ位置が異なる第2の参照画素と、を対比し、当該対比の結果に基づいて、前記基準画素の水平視差を検出する水平視差検出部を備える、画像処理装置。
【請求項2】
前記水平視差検出部は、前記基準画素を含む基準領域内の特徴量と、前記第1の参照画素を含む第1の参照領域内の特徴量との差分を評価する第1の評価値と、前記基準領域内の特徴量と、前記第2の参照画素を含む第2の参照領域内の特徴量との差分を評価する第2の評価値と、を算出し、前記第1の評価値及び前記第2の評価値に基づいて、前記基準画素の水平視差を検出する、請求項1記載の画像処理装置。
【請求項3】
前記水平視差が検出される前に、前記基準画像及び前記参照画像を補正する補正実行部と、
前記補正実行部による補正の信頼度を算出する補正信頼度算出部と、を備え、
前記水平視差検出部は、前記補正信頼度算出部が算出した信頼度に基づいて、前記第1の評価値及び前記第2の評価値を算出する、請求項2記載の画像処理装置。
【請求項4】
前記水平視差検出部は、前記基準画素の特徴量の単位時間あたりの変化量を算出し、算出された変化量に基づいて、前記第1の評価値及び前記第2の評価値を算出する、請求項2記載の画像処理装置。
【請求項5】
前記水平視差検出部は、前記基準画像の解像度を落とすことでモザイク画像を生成し、前記基準画像内の前記基準画素の特徴量と、前記モザイク画像内の前記基準画素の特徴量との差分を算出し、算出された差分に基づいて、前記第1の評価値及び前記第2の評価値を算出する、請求項2記載の画像処理装置。
【請求項6】
前記水平視差検出部は、前記基準画素の水平位置と、前記基準画素の水平視差とがノードの成分となり、前記第1の評価値及び前記第2の評価値のうち、前記第1の評価値及び前記第2の評価値によって評価される差分の絶対値が小さい方の評価値が前記ノードのスコアとなるDPマップを生成し、前記基準画素と前記基準画素の周辺領域の画素との特徴量の差分と、前記参照画像を構成する画素のうち、前記基準画素と同じ位置に存在する基準対応画素と、前記基準対応画素の周辺領域の画素との特徴量の差分と、前記ノードのスコアと、に基づいて、始点から前記ノードに至るまでの累積コストを算出し、前記始点から終点までの前記累積コストが最小となる最短経路を算出し、算出された前記最短経路に基づいて、前記基準画素の水平視差を検出する、請求項2記載の画像処理装置。
【請求項7】
前記第2の参照画素と前記第1の参照画素との高さ位置の差分は、所定の範囲内に制限される、請求項1記載の画像処理装置。
【請求項8】
前記水平視差検出部である第1の水平視差検出部と異なる検出方法によって、前記基準画素の水平視差を検出する第2の水平視差検出部と、
前記第1の水平視差検出部が検出した前記基準画素の水平視差と、前記第2の水平視差検出部が検出した前記基準画素の水平視差と、の信頼度をそれぞれ算出し、前記基準画素毎に前記信頼度の大きい水平視差を示すディスパリティマップを生成するディスパリティマップ統合部と、を備える、請求項1記載の画像処理装置。
【請求項9】
前記ディスパリティマップ統合部は、前記第1の水平視差検出部が検出した前記基準画素の水平視差と、前記第2の水平視差検出部が検出した前記基準画素の水平視差との信頼度をそれぞれ異なる評価手法により算出する、請求項8記載の画像処理装置。
【請求項10】
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像のうち、前記基準画像を構成する基準画素と、前記参照画像を構成する画素のうち、前記基準画素と同じ高さ位置に存在する第1の参照画素、及び前記第1の参照画素と前記高さ位置が異なる第2の参照画素と、を対比し、当該対比の結果に基づいて、前記基準画素の水平視差を検出するステップを含む、画像処理方法。
【請求項11】
コンピュータに、
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像のうち、前記基準画像を構成する基準画素と、前記参照画像を構成する画素のうち、前記基準画素と同じ高さ位置に存在する第1の参照画素、及び前記第1の参照画素と前記高さ位置が異なる第2の参照画素と、を対比し、当該対比の結果に基づいて、前記基準画素の水平視差を検出する水平視差検出機能を実現させる、プログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図36】
image rotate

【図37】
image rotate

【図38】
image rotate

【図39】
image rotate

【図40】
image rotate

【図41】
image rotate

【図42】
image rotate

【図43】
image rotate

【図45】
image rotate

【図46】
image rotate

【図47】
image rotate

【図48】
image rotate

【図23】
image rotate

【図44】
image rotate


【公開番号】特開2012−203853(P2012−203853A)
【公開日】平成24年10月22日(2012.10.22)
【国際特許分類】
【出願番号】特願2011−70636(P2011−70636)
【出願日】平成23年3月28日(2011.3.28)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】