画像処理装置、画像処理方法、及びプログラム
【課題】、ロバスト性及び精度の高い水平視差の検出を行なうことが可能な技術が求められていた。
【解決手段】本開示によれば、同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得する画像取得部と、基準画像を構成する基準画素と、参照画像を構成する第1の参照画素、及び第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、参照画素群から、基準画素に対応する対応画素の候補である候補画素を検出し、基準画素の水平位置から候補画素の水平位置までの距離を示す水平視差候補と、基準画素の垂直位置から候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させる視差検出部と、を備える、画像処理装置が提供される。
【解決手段】本開示によれば、同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得する画像取得部と、基準画像を構成する基準画素と、参照画像を構成する第1の参照画素、及び第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、参照画素群から、基準画素に対応する対応画素の候補である候補画素を検出し、基準画素の水平位置から候補画素の水平位置までの距離を示す水平視差候補と、基準画素の垂直位置から候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させる視差検出部と、を備える、画像処理装置が提供される。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【0002】
立体視専用の眼鏡がなくても、画像の立体視表示が可能な裸眼立体視表示装置が知られている。裸眼立体視表示装置は、同じ被写体が異なる水平位置に描かれた複数の画像を取得する。そして、裸眼立体視表示装置は、これらの画像のうち、被写体が描かれた部分である被写体画像同士を対比し、被写体画像同士の水平位置のずれ、即ち水平視差を検出する。そして、裸眼立体視表示装置は、検出された水平視差と、取得した画像とに基づいて、多視点画像を複数生成し、これらの多視点画像を立体視表示する。裸眼立体視表示装置が水平視差を検出する手法として、特許文献1に記載されたグローバルマッチングが知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第4410007号
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、グローバルマッチングには、被写体画像同士の垂直位置にズレがある(幾何ズレがある)場合には、視差検出のロバスト性及び精度が大きく低下するという問題があった。そこで、ロバスト性及び精度の高い水平視差の検出を行なうことが可能な技術が求められていた。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本開示によれば、同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得する画像取得部と、基準画像を構成する基準画素と、参照画像を構成する第1の参照画素、及び第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、参照画素群から、基準画素に対応する対応画素の候補である候補画素を検出し、基準画素の水平位置から候補画素の水平位置までの距離を示す水平視差候補と、基準画素の垂直位置から候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させる視差検出部と、を備える、画像処理装置が提供される。
【0006】
本開示によれば、同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得することと、前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させることと、を含む、画像処理方法が提供される。
【0007】
本開示によれば、コンピュータに、同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得する画像取得機能と、前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させる視差検出機能と、を実現させる、プログラムが提供される。
【0008】
本開示は、参照画像を構成する第1の参照画素、及び第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群から、対応画素の候補となる候補画素を検出する。そして、本開示は、基準画素の垂直位置から候補画素の垂直位置までの距離を示す垂直視差候補を記憶部に記憶させる。このように、本開示は、対応画素の候補となる候補画素を垂直方向に探索し、この結果である垂直視差候補を記憶部に記憶させる。
【発明の効果】
【0009】
以上説明したように本開示は、候補画素を参照画像の垂直方向に検索することができるので、ロバスト性及び精度の高い水平視差の検出を行なうことができる。
【図面の簡単な説明】
【0010】
【図1】裸眼立体視表示装置による処理の概要を示すフローチャートである。
【図2】入力画像同士の色ズレを示す説明図である。
【図3】入力画像同士の幾何ズレを示す説明図である。
【図4】視差マップ(ディスパリティマップ)及び多視点画像が生成される様子を示す説明図である。
【図5】本開示の実施形態に係る画像処理装置の構成を示すブロック図である。
【図6】第1の視差検出部の構成を示すブロック図である。
【図7】垂直視差候補格納テーブルの一例を示す説明図である。
【図8】経路構築部の構成を示す説明図である。
【図9】視差マッチングを行なう際に使用されるDPマップである。
【図10】評価部の構成を示すブロック図である。
【図11】ニューラルネット処理部の構成を示すブロック図である。
【図12】周辺化処理部による処理を説明するための説明図である。
【図13】比較信頼度マップの一例を示す説明図である。
【図14】クラス分けテーブルの一例を示す説明図である。
【図15】クラス0に分類される画像の一例を示す説明図である。
【図16】クラス4に分類される画像の一例を示す説明図である。
【図17】補正値対応テーブルの一例を示す説明図である。
【図18】視差検出の手順を示すフローチャートである。
【図19】各ディスパリティマップの精度が時間の経過に応じて向上する様子を示す説明図である。
【発明を実施するための形態】
【0011】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0012】
なお、説明は以下の順序で行うものとする。
1.裸眼立体視表示装置が行なう処理の概要
2.画像処理装置の構成
3.画像処理装置による処理
4.画像処理装置による効果
【0013】
<1.裸眼立体視表示装置が行なう処理の概要>
本願の発明者は、立体視専用の眼鏡がなくても、画像の立体視表示が可能な裸眼立体視表示装置について鋭意研究を重ね、その過程において、本実施の形態に係る画像処理装置に想到するに至った。ここで、立体視表示とは、視認者に両眼視差を生じさせることで、画像を立体的に表示することを意味する。
【0014】
そこで、まず、画像処理装置を含む裸眼立体視表示装置が行なう処理の概要について、図1に示すフローチャートに沿って説明する。
【0015】
ステップS1において、裸眼立体視表示装置は、入力画像VL、VRを取得する。図2、図3に入力画像VL、VRの一例を示す。なお、本実施の形態では、入力画像VL、VRの左上端の画素を原点とし、水平方向をx軸、垂直方向をy軸とする。右方向がx軸の正方向であり、下方向がy軸の正方向である。各画素は、座標情報(x、y)と、色情報(輝度(明度)、彩度、色相)とを有している。以下、入力画像VL上の画素を「左側画素」とも称し、入力画像VR上の画素を「右側画素」とも称する。また、以下の説明では、入力画像VLを基準画像とし、入力画像VRを参照画像とする例について主に説明するが、入力画像VLを参照画像とし、入力画像VRを基準画像としても良いのは勿論である。
【0016】
図2、図3に示すように、入力画像VL、VRには同じ被写体(例えば海、魚、ペンギン)が互いに異なる水平位置(x座標)に描かれている。
【0017】
ただし、入力画像VL、VRは、図2に示すように、互いに色ズレが起こっている場合がある。すなわち、同じ被写体が入力画像VLと入力画像VRとで異なる色で描かれている。例えば、被写体画像VL1と被写体画像VR1とはいずれも同じ海を示すが、色が互いに異なっている。
【0018】
一方、入力画像VL、VRは、図3に示すように、互いに幾何ズレが起こっている場合がある。すなわち、同じ被写体が異なる高さ位置(y座標)に描かれている。例えば、被写体画像VL2と被写体画像VR2とはいずれも同じペンギンを示すが、被写体画像VL2のy座標と被写体画像VR2のy座標とは互いに異なっている。図3には、幾何ズレの理解を容易にするために、直線L1が描かれている。そこで、裸眼立体視表示装置は、これらのズレに対応した視差検出を行なう。すなわち、裸眼立体視表示装置は、色ズレや幾何ズレに対するキャリブレーションを行わなくても、正確な視差検出を行なうことができる。
【0019】
ステップS2において、裸眼立体視表示装置は、入力画像VL、VRに基づいて、視差検出を行なう。視差検出の様子を図4に示す。
【0020】
図4に示すように、裸眼立体視表示装置は、エピポーラ線EPR1またはエピポーラ線EPR1から垂直方向(y方向)にずれた位置に存在する各右側画素から、左側画素PL1に対応する対応画素の候補となる候補画素を複数抽出する。なお、エピポーラ線EPR1は、入力画像VR上に描かれ、左側画素PL1と同じy座標を有し、水平方向に伸びる直線である。また、裸眼立体視表示装置は、入力画像VL、VRの色ズレに応じた補正値を設定し、この補正値に基づいて、候補画素を抽出する。
【0021】
そして、裸眼立体視表示装置は、これらの候補画素から対応画素となる右側画素PR1を抽出する。裸眼立体視表示装置は、右側画素PR1のx座標から左側画素PL1のx座標を減算した値を水平視差d1とし、右側画素PR1のy座標から左側画素PL1のy座標を減算した値を垂直視差d2とする。
【0022】
このように、裸眼立体視表示装置は、入力画像VRを構成する各右側画素のうち、左側画素と同じy座標(垂直位置)を有する画素のみならず、左側画素と異なるy座標を有する画素も探索する。したがって、裸眼立体視表示装置は、色ズレ及び幾何ズレに対応した視差検出を行なうことができる。
【0023】
裸眼立体視表示装置は、入力画像VL上のすべての画素について水平視差d1及び垂直視差d2を検出することで、グローバル視差マップ(グローバルディスパリティマップ)を生成する。さらに、裸眼立体視表示装置は、後述するように、上記の方法(即ち、グローバルマッチング)とは別の方法(即ち、ローカルマッチング)により、入力画像VL上を構成する各画素の水平視差d1及び垂直視差d2を算出する。そして、裸眼立体視表示装置は、ローカルマッチングにより算出された水平視差d1及び垂直視差d2に基づいて、ローカル視差マップを生成する。そして、裸眼立体視表示装置は、これらの視差マップを統合することで、統合視差マップを生成する。図4に、統合視差マップの一例である統合視差マップDMを示す。図4では、水平視差d1の程度がハッチングの濃淡で示されている。
【0024】
ステップS3において、裸眼立体視表示装置は、統合視差マップと、入力画像VL、VRとに基づいて、多視点画像VVを複数生成する。例えば、図4に示す多視点画像VVは、入力画像VLと入力画像VRとの間を補間する画像である。したがって、左側画素PL1に対応する画素PV1は、左側画素PL1と右側画素PR1との間に存在する。
【0025】
ここで、各多視点画像VVは、裸眼立体視表示装置によって立体視表示される画像であり、それぞれ異なる視点(視認者の目の位置)に対応する。すなわち、視認者の目が視認する多視点画像VVは、視認者の目の位置に応じて異なる。例えば、視認者の右目と左目とは異なる位置に存在するので、互いに異なる各多視点画像VVを視認する。これにより、視認者は、多視点画像VVを立体視することができる。また、視認者が移動することによって、視認者の視点が変わっても、その視点に対応する多視点画像VVがあれば、視認者は多視点画像VVを立体視することができる。このように、多視点画像VVの数が多いほど、視認者はより多くの位置で多視点画像VVを立体視することができる。また、多視点画像VVが多いほど、逆視、即ち視認者が本来右目で視認すべき多視点画像VVを左目で視認するという現象が生じにくくなる。また、多視点画像VVを複数生成することによって、運動視差の表現が可能となる。
【0026】
ステップS4において、裸眼立体視表示装置は、フォールバック(リファインメント)を行なう。この処理は、概略的には、各多視点画像VVをその内容に応じて再度補正する処理である。ステップS5において、裸眼立体視表示装置は、各多視点画像VVを立体視表示する。
【0027】
<2.画像処理装置の構成>
次に、本実施の形態に係る画像処理装置1の構成を図面に基づいて説明する。図5に示すように、画像処理装置1は、画像取得部10と、第1の視差検出部20と、第2の視差検出部30と、評価部40と、マップ生成部(補正値算出部)50とを備える。即ち、画像処理装置1は、CPU、ROM、RAM、及びハードディスク等のハードウェア構成を備え、これらのハードウェア構成によって、上記の各構成要素が実現される。即ち、画像処理装置1に、画像取得部10と、第1の視差検出部20と、第2の視差検出部30と、評価部40と、マップ生成部50とを実現させるためのプログラムがROMに記憶されている。画像処理装置1は、上述したステップS1〜ステップS2の処理を行うものである。
【0028】
画像処理装置1では、概略以下の処理が行われる。即ち、画像取得部10は、入力画像VL、VRを取得し、画像処理装置1の各構成要素に出力する。第1の視差検出部20は、入力画像VL、VRに対してグローバルマッチングを行なうことで、入力画像VLを構成する左側画素毎に、水平視差d1及び垂直視差d2を検出する。一方、第2の視差検出部30は、入力画像VL、VRに対してローカルマッチングを行なうことで、入力画像VLを構成する左側画素毎に、水平視差d1及び垂直視差d2を検出する。
【0029】
すなわち、画像処理装置1は、グローバルマッチングと、ローカルマッチングとを並行して行う。ここで、ローカルマッチングは、精度の良否が入力画像VL、VRの品質(色ズレや幾何ズレの程度等)に依存しないという長所があるものの、オクルージョンに弱い、安定性が悪い(精度がばらつきやすい)といった短所もある。一方、グローバルマッチングは、オクルージョンに強い、安定しているという長所があるものの、精度の良否が入力画像VL、VRの品質に依存しやすいという短所もある。そこで、画像処理装置1は、両者を並行して行い、結果として得られる視差マップを画素ごとに対比し、これらを統合するようにしている。
【0030】
[画像取得部の構成]
画像取得部10は、入力画像VL、VRを取得し、画像処理装置1内の各構成要素に出力する。画像取得部10は、入力画像VL、VRを裸眼立体視表示装置内のメモリから取得しても良いし、他の装置と通信を行なうことで取得してもよい。なお、本実施形態において、「現フレーム」は、画像処理装置1が現在処理中のフレームを意味する。「前フレーム」は、現フレームの1フレーム前のフレームを意味する。「次フレーム」は、現フレームの1フレーム後のフレームを意味する。画像処理装置1の処理に対するフレームが特に指示されない場合、画像処理装置1は現フレームに対する処理を行っているものとする。
【0031】
[第1の視差検出部の構成]
第1の視差検出部20は、図6に示すように、垂直視差候補記憶部21と、DSAD(Dynamic Sum Of Absolute Difference)算出部22と、最小値選択部23と、アンカーベクトル構築部24と、コスト算出部25と、経路構築部26と、バックトラック部27とを備える。
【0032】
[垂直視差候補記憶部の構成]
垂直視差候補記憶部21は、図7に示す垂直視差候補格納テーブルを記憶する。垂直視差候補格納テーブルには、水平視差候補△xと、垂直視差候補△yとが関連付けて記録される。水平視差候補△xは、候補画素のx座標から左側画素のx座標を減算した値を示す。一方、垂直視差候補△yは、候補画素のy座標から左側画素のy座標を減算した値を示す。詳細は後述する。垂直視差候補格納テーブルは、左側画素毎に用意される。
【0033】
[DSAD算出部の構成]
DSAD算出部22は、マップ生成部50から、補正値α1に関する補正値情報を取得する。ここで、補正値α1は、概略的には、前フレームの入力画像VLと入力画像VRとの色ズレの度合いに応じて設定され、色ズレが大きいほど、補正値α1が小さくなる。なお、DSAD算出部22は、補正値情報を取得できない場合(例えば、最初のフレーム(第0フレーム)に対する処理を行う場合)には、補正値α1を0に設定する。
【0034】
DSAD算出部22は、いずれかの左側画素を基準画素とし、バックトラック部27から前フレームのグローバル視差マップを取得する。そして、DSAD算出部22は、基準画素の前フレームの水平視差d1及び垂直視差d2を前フレームのグローバル視差マップから検索する。そして、DSAD算出部22は、基準画素に対して前フレームの垂直視差d2を有するいずれかの右側画素、即ち、基準画素のy座標に前フレームの垂直視差d2を加えたy座標を有するいずれかの右側画素を、第1の参照画素とする。このように、DSAD算出部22は、前フレームのグローバル視差マップに基づいて、第1の参照画素を決定する。即ち、DSAD算出部22は、リカーシブ処理を行なう。なお、DSAD算出部22は、前フレームのグローバル視差マップを取得できない場合、基準画素と同じy座標を有する右側画素を第1の参照画素とする。
【0035】
そして、DSAD算出部22は、第1の参照画素に対してy方向の所定範囲内に存在する右側画素を第2の参照画素とする。所定範囲は、例えば、第1の参照画素のy座標を中心とした±1の範囲となるが、この範囲は、ロバスト性と精度とのバランスに応じて任意に変更される。第1の参照画素及び第2の参照画素からなる画素群は、参照画素群を構成する。
【0036】
このように、第1の参照画素のy座標は、フレームが進むに従って順次更新されるので、より正解に近い(基準画素に近い)画素が第1の参照画素として選択されるようになる。さらに、更新された第1の参照画素を基準として、参照画素群が設定されるので、y方向の探索範囲が実質的に拡大される。例えば、第0フレームで第1の参照画素のy座標が5となる場合、第2の参照画素のy座標はそれぞれ4、6となる。その後、第1フレームで第1の参照画素のy座標が6に更新された場合、第2の参照画素のy座標はそれぞれ5、7となる。この場合、第0フレームで第1の参照画素のy座標は5となるのに対し、第2の参照画素のy座標は、フレームが第0フレームから第1フレームに進むことで7まで増加する。即ち、y方向の探索範囲が正方向に実質的に1拡大される。これにより、画像処理装置1は、幾何ズレに強い視差検出を行なうことができる。なお、DSAD算出部22は、第1の参照画素を決定する際に、前フレームのグローバル視差マップを使用したが、前フレームの統合視差マップを使用してもよい。この場合、DSAD算出部22は、第1の参照画素をより精度よく決定することができる。
【0037】
DSAD算出部22は、基準画素と、第1の参照画素及び第2の参照画素を含む参照画素群と、補正値α1とに基づいて、以下の式(1)で示されるDSAD(△x、j)(第1の評価値、第2の評価値)を算出する。
【0038】
【数1】
【0039】
ここで、△xは、第1の参照画素のx座標から基準画素のx座標を減算した値である。なお、後述するように、△x毎に最小のDSAD(△x,j)が選択され、最小のDSAD(△x,j)に対応する右側画素が候補画素とされる。したがって、△xは、候補画素のx座標から基準画素のx座標を減算した値、即ち水平視差候補でもある。jは−1〜+1の整数であり、iは−2〜2の整数である。L(i)は、基準画素とy座標がi異なる左側画素の輝度である。すなわち、L(i)は、基準画素を中心とした基準領域内の基準画素特徴量を示す。R(i,0)は、第1の参照画素を中心とした第1の参照領域内の第1の参照画素特徴量を示す。したがって、DSAD(△x,0)は、基準画素特徴量と第1の参照画素特徴量との差分を評価する値、即ち第1の評価値を示す。
【0040】
一方、R(i,1)、R(i,−1)は、第2の参照画素を中心とした第2の参照領域内の第1の参照画素特徴量を示す。したがって、DSAD(△x,1)、DSAD(△x,−1)は、基準画素特徴量と第2の参照画素特徴量との差分を評価する値、即ち第2の評価値を示す。αは上述した補正値である。
【0041】
したがって、DSAD算出部22は、基準画素、第1の参照画素、及び第2の参照画素の輝度のみならず、これらの画素からy方向にずれた画素の輝度をも参照することで、DSADを算出する。即ち、DSAD算出部22は、基準画素、第1の参照画素、及び第2の参照画素のy座標を振ることで、これらの画素の周辺の輝度を参照している。したがって、画像処理装置1は、この点でも、幾何ズレに強い視差検出を行なうことができる。なお、上記の処理では、y座標を振る量を、各画素のy座標に対して上下2画素としたが、この範囲は、ロバスト性と精度とのバランスに応じて任意に変更される。さらに、DSAD算出部22は、DSADの算出に色ズレに応じた補正値を利用するので、色ズレに強い視差検出が可能となる。
【0042】
DSAD算出部22は、全ての水平視差候補△xについてDSAD(△x,j)を算出する。即ち、DSAD算出部22は、水平位置の異なる第1の参照画素毎に、参照画素群を生成し、各参照画素群についてDSAD(△x,j)を算出する。そして、DSAD算出部22は、基準画素を変更し、上記の処理を繰り返す。これにより、DSAD算出部22は、全ての基準画素についてDSAD(△x,j)を算出する。そして、DSAD算出部22は、DSAD(△x、j)と基準画素とが関連付けられたDSAD情報を生成し、最小値選択部23に出力する。
【0043】
[最小値選択部の構成]
最小値選択部23は、DSAD情報に基づいて、以下の処理を行なう。即ち、最小値選択部23は、水平視差候補△x毎に、最小のDSAD(△x,j)を選択する。最小値選択部23は、選択されたDSAD(△x,j)を図9に示す視差検出用DPマップの各ノードP(x、△x)に格納する。したがって、最小のDSAD(△x,j)がノードP(x、△x)のスコアとなる。
【0044】
視差検出用DPマップは、横軸が左側画素のx座標、縦軸が水平視差候補△xとなっており、複数のノードP(x、△x)を有している。視差検出用DPマップは、左側画素の水平視差d1を算出する際に使用される。また、視差検出用DPマップは、左側画素のy座標毎に生成される。したがって、いずれかの視差検出用DPマップ内のいずれかのノードP(x、△x)は、いずれかの左側画素に対応する。
【0045】
さらに、最小値選択部23は、最小のDSAD(△x,j)に対応する参照画素を候補画素として特定する。そして、最小値選択部23は、候補画素のy座標から基準画素のy座標を減算した値を垂直視差候補△yとする。そして、最小値選択部23は、水平視差候補△xと垂直視差候補△yとを関連付けて、垂直視差候補格納テーブルに格納する。最小値選択部23は、全ての基準画素について、上記の処理を行う。
【0046】
[アンカーベクトル構築部の構成]
図6に示すアンカーベクトル構築部24は、評価部40から前フレームの時間信頼度マップを取得し、マップ生成部50から前フレームの統合視差マップを取得する。現フレームの時間信頼度マップは、現フレームの統合視差マップが示す各左側画素の水平視差d1及び垂直視差d2を次フレームでも参照可能か否かを示すマップである。したがって、前フレームの時間信頼度マップは、前フレームで検出された水平視差d1及び垂直視差d2を現フレームでも参照可能か否かを左側画素毎に示すこととなる。アンカーベクトル構築部24は、前フレームの時間信頼度マップに基づいて、現フレームで水平視差d1及び垂直視差d2を参照可能な左側画素、即ち視差安定左側画素を特定する。そして、アンカーベクトル構築部24は、前フレームの統合視差マップに基づいて、視差安定左側画素の前フレームの水平視差d1、即ち安定水平視差d1’を特定する。そして、アンカーベクトル構築部24は、視差安定左側画素毎に、例えば以下の式(2)で示されるアンカーベクトルを生成する。
【0047】
【数2】
【0048】
ここで、α2はボーナス値を示し、行列Mdは、視差安定左側画素の前フレームの水平視差d1を示す。即ち、行列Mdの各列は、それぞれ異なる水平視差候補△xを示し、成分が1となっている列は、その列に対応する垂直視差候補△xが安定水平視差d1’であることを示す。視差安定左側画素が存在しない場合、行列Mdのすべての成分が0になる。なお、アンカーベクトル構築部24は、前フレームの時間信頼度マップ及び統合視差マップを取得することができない場合(例えば、第0フレームに対する処理を行う場合)、行列Mdの成分を全て0とする。アンカーベクトル構築部24は、アンカーベクトルと視差安定左側画素とが関連付けられたアンカーベクトル情報を生成し、コスト算出部25に出力する。
【0049】
[コスト算出部の構成]
図6に示すコスト算出部25は、アンカーベクトル情報に基づいて、視差検出用DPマップの各ノードP(x、d)の値を更新する。即ち、コスト算出部25は、視差安定左側画素毎に、安定水平視差d1’に対応するノード(x、△x(=d1’))を特定し、このノードのスコアから、ボーナス値α2を減算する。これにより、安定水平視差d1’と同じ視差を有するノードは、最短経路を通りやすくなる。言い換えれば、安定水平視差d1’は、現フレームにおいても選択されやすくなる。
【0050】
[経路構築部の構成]
図6に示す経路構築部26は、図8に示すように、左目用画像水平差分算出部261と、右目用画像水平差分算出部262と、重み算出部263と、経路算出部264とを備える。
【0051】
左目用画像水平差分算出部261は、画像取得部10から入力画像VLを取得し、入力画像VLを構成する左側画素毎に、以下の処理を行なう。すなわち、左目用画像水平差分算出部261は、いずれかの左側画素を基準画素とし、基準画素の輝度から、基準画素よりx座標が1大きい左側画素の輝度を減算する。左目用画像水平差分算出部261は、これにより得られた値を輝度水平差分dwLとし、輝度水平差分dwLに関する輝度水平差分情報を生成する。そして、左目用画像水平差分算出部261は、輝度水平差分情報を重み算出部263に出力する。
【0052】
右目用画像水平差分算出部262は、画像取得部10から入力画像VRを取得する。そして、右目用画像水平差分算出部262は、入力画像VRに対して上述した左目用画像水平差分算出部261と同様の処理を行なう。そして、右目用画像水平差分算出部262は、この処理により生成された輝度水平差分情報を重み算出部263に出力する。
【0053】
重み算出部263は、輝度水平差分情報に基づいて、左側画素の重みwtL、右側画素のwtRをすべての左側画素及び右側画素について算出する。具体的には、重み算出部263は、左側画素の輝度水平差分dwLをシグモイド関数に代入することで、輝度水平差分dwLを0〜1の値に正規化し、これを重みwtLとする。同様に、重み算出部263は、右側画素の輝度水平差分dwRをシグモイド関数に代入することで、輝度水平差分dwRを0〜1の値に正規化し、これを重みwtRとする。そして、重み算出部263は、算出された重みwtL、wtRに関する重み情報を生成し、経路算出部264に出力する。重みwtL、wtRは画像のエッヂ(輪郭)の部分で小さくなり、平坦部分で大きくなる。なお、シグモイド関数は、例えば、以下の式(2−1)で与えられる。
【0054】
【数3】
【0055】
経路算出部264は、重み算出部263から与えられた重み情報に基づいて、視差検出用DPマップの始点から各ノードP(x、△x)に至るまでの累積コストを計算する。具体的には、経路算出部264は、ノード(0、0)を始点、ノード(xmax、0)を終点とし、始点からノードP(x、△x)に至るまでの累積コストを以下のように定義する。ここで、xmaxは、左側画素のx座標の最大値である。
【0056】
【数4】
【0057】
ここで、DFI(x、△x)0は、経路PAd0を通ってノードP(x、△x)に至るときの累積コストであり、DFI(x、△x)1は、経路PAd1を通ってノードP(x、△x)に至るときの累積コストであり、DFI(x、△x)2は、経路PAd2を通ってノードP(x、△x)に至るときの累積コストである。また、DFI(x、△x−1)は始点からノードP(x、△x−1)に至るまでの累積コストである。DFI(x−1、△x)は始点からノードP(x−1、△x)に至るまでの累積コストである。DFI(x−1、△x+1)は始点からノードP(x−1、△x+1)に至るまでの累積コストである。また、occCost0、occCost1は、それぞれコストの値を示す所定値であり、例えば4.0である。wtLは、ノードP(x、△x)に対応する左側画素の重みであり、wtRは、この左側画素と同じ座標を有する右側画素の重みである。
【0058】
そして、経路算出部264は、算出された累積コストDFI(x、△x)0〜DFI(x、△x)2のうち、最小のものを選択し、選択されたものをノードP(x、△x)の累積コストDFI(x、△x)とする。経路算出部264は、すべてのノードP(x、△x)について累積コストDFI(x、△x)を算出し、視差検出用DPマップに格納する。
【0059】
バックトラック部27は、累積コストが最小となる経路を終点から始点に向かって逆にたどることで、最短経路、即ち始点から終点までの累積コストが最小となる経路を算出する。この最短経路上のノードは、当該ノードに対応する左側画素の水平視差d1となる。したがって、バックトラック部27は、最短経路を算出することで、各左側画素の水平視差d1を検出する。
【0060】
バックトラック部27は、いずれかの左側画素に対応する垂直視差候補格納テーブルを垂直視差候補記憶部21から取得する。バックトラック部27は、取得した垂直視差候補格納テーブルに基づいて、左側画素の水平視差d1に対応する垂直視差候補△yを特定し、特定された垂直視差候補△yを左側画素の垂直視差d2とする。これにより、バックトラック部27は、垂直視差d2を検出する。そして、バックトラック部27は、全ての左側画素について垂直視差d2を検出し、検出された水平視差d1及び垂直視差d2に基づいて、グローバル視差マップを生成する。グローバル視差マップは、左側画素毎に水平視差d1及び垂直視差d2を示す。バックトラック部27は、生成されたグローバル視差マップをDSAD算出部22、図5に示す評価部40、及びマップ生成部50に出力する。DSAD算出部22に出力されたグローバル視差マップは、次フレームで使用される。
【0061】
[第2の視差検出部の構成]
図5に示す第2の視差検出部30は、第1の視差検出部と異なる方法、即ちローカルマッチングにより、各左側画素の水平視差d1及び垂直視差d2を算出する。第2の視差検出部30は、具体的には、以下の処理を行なう。第2の視差検出部30は、画像取得部10から入力画像VL、VRを取得する。さらに、第2の視差検出部30は、評価部40から前フレームの時間信頼度マップを取得し、マップ生成部50から前フレームの統合視差マップを取得する。
【0062】
第2の視差検出部30は、前フレームの時間信頼度マップに基づいて、現フレームで水平視差d1及び垂直視差d2を参照可能な左側画素、即ち視差安定左側画素を特定する。そして、第2の視差検出部30は、前フレームの統合視差マップに基づいて、視差安定左側画素の前フレームの水平視差d1及び垂直視差d2、即ち安定水平視差d1’及び安定垂直視差d2’を特定する。そして、アンカーベクトル構築部24は、視差安定左側画素のxy座標にそれぞれ安定水平視差d1’及び安定垂直視差d2’を加算し、これにより得られたxy座標を有する右側画素を、視差安定右側画素とする。
【0063】
さらに、第2の視差検出部30は、入力画像VL、VRをそれぞれ複数の画素ブロックに分割する。例えば、第2の視差検出部30は、入力画像VLを64個の左側画素ブロックに分割し、入力画像VRを64個の右側画素ブロックに分割する。
【0064】
そして、第2の視差検出部30は、左側画素ブロック内の各左側画素に対応する対応画素を、左側画素ブロックに対応する右側画素ブロックから検出する。例えば、第2の視差検出部30は、左側画素に輝度が最も近い右側画素を対応画素として検出する。ここで、第2の視差検出部30は、視差安定左側画素に対応する対応画素を検出する際には、視差安定右側画素を優先的に対応画素として検出する。例えば、第2の視差検出部30は、左側画素に輝度が最も近い右側画素が視差安定右側画素となる場合、視差安定右側画素を対応画素として検出する。一方、第2の視差検出部30は、左側画素に輝度が最も近い右側画素が視差安定右側画素以外の右側画素となる場合、その右側画素と視差安定左側画素との輝度差と所定の輝度範囲とを比較する。第2の視差検出部30は、輝度差が所定の輝度範囲内となる場合、当該右側画素を対応画素として検出する。第2の視差検出部30は、輝度差が所定の輝度範囲を外れる場合、視差安定右側画素を対応画素として検出する。
【0065】
第2の視差検出部30は、対応画素のx座標から左側画素のx座標を減算した値を左側画素の水平視差d1とし、対応画素のy座標から左側画素のy座標を減算した値を右側画素の垂直視差d2とする。第2の視差検出部30は、検出結果に基づいて、ローカル視差マップを生成する。ローカル視差マップは、左側画素毎に水平視差d1及び垂直視差d2を示す。第2の視差検出部30は、生成されたローカル視差マップを評価部40及びマップ生成部50に出力する。
【0066】
なお、第2の視差検出部30は、前フレームの時間信頼度マップ及び統合視差マップを取得することができない場合(例えば、第0フレームに対する処理を行う場合)、視差安定左側画素を検出せずに、上記の処理を行なう。また、第2の視差検出部30は、左側画素ブロック毎に上述した第1の視差検出部20と同様の処理を行うことで、左側画素の水平視差d1及び垂直視差d2を検出しても良い。
【0067】
[評価部の構成]
評価部40は、図10に示すように、特徴量算出部41と、ニューラルネット処理部42と、周辺化処理部43とを備える。
【0068】
[特徴量算出部の構成]
特徴量算出部41は、第1の視差検出部20及び第2の視差検出部30から与えられた視差マップ等に基づいて、各種の特徴量マップ(演算特徴量)を生成する。例えば、特徴量算出部41は、ローカル視差マップに基づいて、ローカルオクルージョンマップを生成する。ここで、ローカルオクルージョンマップは、左側画素毎にローカルオクルージョン情報を示す。ローカルオクルージョン情報は、任意の基準位置(例えば、被写体を撮影した撮影素子の位置)から、左側画素に描かれた被写体までの距離を示す。
【0069】
同様に、特徴量算出部41は、グローバル視差マップに基づいて、グローバルオクルージョンマップを生成する。グローバルオクルージョンマップは、左側画素毎にグローバルオクルージョン情報を示す。グローバルオクルージョン情報は、任意の基準位置(例えば、被写体を撮影した撮影素子の位置)から、左側画素に描かれた被写体までの距離を示す。さらに、特徴量算出部41は、ローカルオクルージョンマップ及びグローバルオクルージョンマップに基づいて、絶対値オクルージョンマップを生成する。絶対値オクルージョンマップは、左側画素毎に絶対値オクルージョン情報を示す。絶対値オクルージョン情報は、ローカルオクルージョン情報とグローバルオクルージョン情報との差分値の絶対値を示す。
【0070】
さらに、特徴量算出部41は、絶対値視差マップを生成する。絶対値視差マップは、左側画素毎に水平視差差分の絶対値を示す。ここで、水平視差差分は、グローバル視差マップの水平視差d1からローカル視差マップの水平視差d1を減算した値である。
【0071】
さらに、特徴量算出部41は、画像取得部10から与えられた入力画像VL、VRと、ローカル視差マップと、に基づいて、ローカルSAD(Sum Of Absolute Difference)マップを生成する。ローカルSADマップは、左側画素毎にローカルSADを示す。ローカルSADは、対応画素の輝度から左側画素の輝度を減算した値である。対応画素は、左側画素のx座標にローカル視差マップが示す水平視差d1を加算したx座標と、左側画素のy座標にローカル視差マップが示す垂直視差d2を加算したy座標とを有する右側画素である。
【0072】
同様に、特徴量算出部41は、画像取得部10から与えられた入力画像VL、VRと、グローバル視差マップと、に基づいて、グローバルSAD(Sum Of Absolute Difference)マップを生成する。グローバルSADマップは、左側画素毎にグローバルSADを示す。グローバルSADは、対応画素の輝度から左側画素の輝度を減算した値である。対応画素は、左側画素のx座標にグローバル視差マップが示す水平視差d1を加算したx座標と、左側画素のy座標にグローバル視差マップが示す垂直視差d2を加算したy座標とを有する右側画素である。
【0073】
そして、特徴量算出部41は、ローカルSADマップとグローバルSADマップとに基づいて、絶対値SADマップを生成する。絶対値SADマップは、左側画素毎に絶対値SADを示す。絶対値SADは、ローカルSADからグローバルSADを減算した値の絶対値を示す。
【0074】
また、特徴量算出部41は、グローバル視差マップが示す水平視差d1とローカル視差マップが示す水平視差d1との算術平均を左側画素毎に算出することで、平均視差マップを生成する。平均視差マップは、左側画素毎に上記の算術平均値を示す。
【0075】
また、特徴量算出部41は、グローバル視差マップが示す水平視差d1の分散値(上記の算術平均値に対する分散値)を左側画素毎に算出することで、分散視差マップを生成する。特徴量算出部41は、特徴量マップをニューラルネット処理部42に出力する。なお、特徴量算出部41は、特徴量マップを少なくとも2つ以上生成すればよい。
【0076】
[ニューラルネット処理部]
ニューラルネット処理部42は、特徴量マップをニューラルネットワークの入力値In0〜In(m−1)とすることで、出力値Out0〜Out2を取得するものである。ここで、mは2以上11以下の整数である。
【0077】
具体的には、ニューラルネット処理部42は、各特徴量マップを構成する左側画素のうち、いずれかの左側画素を評価対象画素とし、当該評価対象画素に対応する値を各特徴量マップから取得する。そして、ニューラルネット処理部42は、これらの値を入力値とする。
【0078】
出力値Out0は、統合視差マップが示す評価対象画素の水平視差d1及び垂直視差d2が次フレームでも参照可能か否かを示す。即ち、出力値Out0は、時間信頼度を示す。出力値Out0は、具体的には、「0」または「1」となる。「0」は、例えば、水平視差d1及び垂直視差d2が次フレームで参照不可であることを示し、「1」は、例えば、水平視差d1及び垂直視差d2が次フレームで参照可能であることを示す。
【0079】
出力値Out1は、グローバル視差マップが示す評価対象画素の水平視差d1及び垂直視差d2と、ローカル視差マップが示す評価対象画素の水平視差d1及び垂直視差d2と、のうちどちらの信頼度が高いかを示す。即ち、出力値Out1は、比較信頼度を示す。出力値Out1は、具体的には、「0」または「1」となる。「0」は、例えば、ローカル視差マップの方がグローバル視差マップよりも信頼度が高いことを示し、「1」は、例えば、グローバル視差マップの方がローカル視差マップよりも信頼度が高いことを示す。
【0080】
出力値Out2は、特に制限されず、例えば、各種アプリケーションに利用可能な情報となりうる。より詳細には、出力値Out2は、評価対象画素のオクルージョン情報となりうる。評価対象画素のオクルージョン情報は、任意の基準位置(例えば、被写体を撮影した撮影素子の位置)から、評価対象画素に描かれた被写体までの距離を示し、裸眼立体視表示装置による多視点画像生成に利用可能である。また、出力値Out2は、評価対象画素の動き情報となりうる。評価対象画素の動き情報は、評価対象画素に描かれた被写体の動きに関する情報(例えば、動きの大きさと方向とを示すベクトル情報)である。動き情報は、2D3D変換アプリケーションに利用可能である。また、出力値Out2は、評価対象画素の輝度切り替え情報となりうる。評価対象画素の輝度切り替え情報は、評価対象画素をどのような輝度で表示するかを示す情報であり、ハイダイナミックレンジアプリケーションで利用可能である。
【0081】
また、出力値Out2は、多視点画像生成時に利用可能な各種の信頼度情報となりうる。例えば、出力値Out2は、多視点画像生成時に評価対象画素の水平視差d1及び垂直視差d2が参照可能であるか否かを示す信頼度情報となりうる。裸眼立体視表示装置は、評価対象画素の水平視差d1及び垂直視差d2が参照できない場合、評価対象画素の水平視差d1及び垂直視差d2を、評価対象画素の周辺画素の水平視差d1及び垂直視差d2で補間する。また、出力値Out2は、多視点画像のリファインメント時に評価対象画素の輝度を足しこみ可能か否かを示す信頼度情報となりうる。裸眼立体視表示装置は、各画素の輝度のうち、足しこみ可能な輝度のみを足し込むことで、リファインメントを行なう。
【0082】
ニューラルネット処理部42は、評価対象画素を順次変更することで、新たな入力値In0〜In(m−1)を生成し、出力値Out0〜Out2を取得する。したがって、出力値Out0は、複数の左側画素の各々についての時間信頼度、即ち時間信頼度マップとして与えられる。出力値Out1は、複数の左側画素の各々についての比較信頼度、即ち比較信頼度マップとして与えられる。出力値Out2は、複数の左側画素の各々についての各種情報、即ち各種情報マップとして与えられる。ニューラルネット処理部42は、これらのマップを周辺化処理部43に出力する。図13に、比較信頼度マップの一例である比較信頼度マップEM1を示す。領域EM11は、グローバル視差マップの方がローカル視差マップよりも信頼度が高い領域を示し、領域EM12は、ローカル視差マップの方がグローバル視差マップよりも信頼度が高い領域を示す。
【0083】
上述したように、ローカルマッチングは、精度の良否が入力画像VL、VRの品質(色ズレや幾何ズレの程度等)に依存しないという長所があるものの、オクルージョンに弱い、安定性が悪い(精度がばらつきやすい)といった短所もある。一方、グローバルマッチングは、オクルージョンに強い、安定しているという長所があるものの、精度の良否が入力画像VL、VRの品質に依存しやすいという短所もある。しかし、第1の視差検出部20は、グローバルマッチングを行なう際に、垂直方向への検索も行ない、かつ、色ズレに応じた補正も行う。即ち、第1の視差検出部20は、第1の参照画素を決定する際に、基準画素と同じy座標を有する右側画素のみならず、基準画素に対してy方向にずれた位置に存在する画素も検索する。さらに、第1の視差検出部20は、DSADを算出する際に、色ズレに応じた補正値α1を使用する。このように、第1の視差検出部20は、精度の良否が入力画像VL、VRの品質に依存しにくいグローバルマッチングを行なうことができる。したがって、本実施形態では、グローバルマッチングの方がローカルマッチングよりも信頼度が高い場合が多いので、領域EM11は、領域EM12よりも広くなっている。
【0084】
ニューラルネット処理部42は、例えば図11に示すように、n個の層を有する。ここで、nは3以上の整数である。第0層が入力層であり、第1〜第(n−2)層が中間層であり、第(n−1)層が出力層である。各層は、複数のノード421を有する。即ち、入力層及び中間層は、入力値In0〜In(m−1)分のノード(第0〜第(m−1)ノード)を有する。出力層は3つのノード(第0〜第2ノード)を有する。出力層は、出力値Out0〜Out2を出力する。各ノード421は、当該ノード421に隣接する層の全てのノード421に連結されている。第k層(1≦k≦n−1)の第jノードからの出力値は、例えば以下の式(6)で表される。
【0085】
【数5】
【0086】
なお、ニューラルネット処理部42は、適切な出力値Out0〜Out2を取得するため、事前に学習を行っておく。この学習は、例えばバックプロパゲーションにより行われる。即ち、ニューラルネット処理部42は、以下の式(8)、(9)に基づいて、第(n−2)層と出力層との間の伝播係数を更新する。
【0087】
【数6】
【0088】
そして、ニューラルネット処理部42は、以下の式(10)〜(13)に基づいて、第(n−2)層より前の伝播係数を、出力層に近い側から更新していく。
【0089】
【数7】
【0090】
ここで、教師情報としては、テンプレートとして予め用意された教師用左目画像、教師用右目画像、左目基準視差マップ、及び右目基準視差マップを使用することができる。ここで、教師用左側画素は、入力画像VLに相当し、教師用右目画像は入力画像VRに想到する。左目基準視差マップは、教師用左目画像を構成する左側画素を基準画素として作成された視差マップであり、右目基準視差マップは、教師用右目画像を構成する右目画素を基準として作成された視差マップである。即ち、これらのテンプレートに基づいて、入力値In0〜In(m−1)及び出力値Out0〜Out2の教師情報を算出する。さらに、これらのテンプレートを改変したもの(例えば、各画像にノイズを乗せたもの、一方の画像に色ズレ及び幾何ズレのうち少なくとも一方を起こさせたもの)に基づいて、入力値In0〜In(m−1)及び出力値Out0〜Out2の教師情報を算出する。教師情報の算出は、裸眼立体視表示装置内部で行ってもよいが、外部の装置に行わせてもよい。そして、これらの教師情報をニューラルネット処理部42に順次与えることで、ニューラルネット処理部42に学習を行わせる。ニューラルネット処理部42にこのような学習を行わせることで、色ズレ及び幾何ズレに強い出力値Out0〜Out2が得られる。
【0091】
なお、ユーザは、所望の出力値Out0〜Out2を得ることができるように、テンプレートを改変させることができる。即ち、教師情報と出力値Out0〜Out2との関係は2項分布に従うので、尤度関数Lは以下の式(14)で与えられる。
【0092】
【数8】
【0093】
教師情報の分布は、尤度関数Lに依存する。したがって、ユーザは、所望の出力値Out0〜Out2が得られるときの尤度が最大となるように、テンプレートを改変(重み付け)すればよい。教師情報を重み付けした時の尤度関数L’は、以下の式(15)で与えられる。
【0094】
【数9】
【0095】
なお、ニューラルネット処理部42の一部は、ハードウェアにて実現されても良い。例えば、入力層から第1層までの処理を固定化し、その部分をハードウェアにて実現してもよい。また、特徴量算出部41及びニューラルネット処理部42は、以下の方法により出力値Out1、即ち比較信頼度マップを生成してもよい。なお、この処理では、ニューラルネット処理部42は、ニューラルネットワークによる処理を行わない。即ち、特徴量算出部41は、現フレームのグローバル視差マップと、前フレームのグローバル視差マップとの差分を示す第1の差分マップを生成する。第1の差分マップは、現フレームのグローバル視差マップの水平視差d1から前フレームのグローバル視差マップの水平視差d1を減算した値を、左側画素毎に示すものである。次いで、ニューラルネット処理部42は、第1の差分マップを2値化することで、第1の2値化差分マップを生成する。そして、ニューラルネット処理部42は、第1の2値化差分マップの各値に所定の重み(例えば8)を乗じることで、第1の差分スコアマップを生成する。
【0096】
さらに、特徴量算出部41は、現フレームのグローバル視差マップと、現フレームの入力画像VLとのエッジ画像を生成し、これらの相関を示す相関マップを生成する。グローバル視差マップのエッジ画像は、グローバル視差マップのエッジ部分(グローバル視差マップに描かれた各画像の輪郭部分)を示す。同様に、入力画像VLのエッジ画像は、入力画像VLのエッジ部分(入力画像VLに描かれた各画像の輪郭部分)を示す。エッジ画像同士の相関を算出する手法としては、例えば、NCC等のような相関関係を算出する手法が任意に用いられる。そして、ニューラルネット処理部42は、相関マップを2値化することで、2値化相関マップを生成する。そして、ニューラルネット処理部42は、2値化相関マップの各値に所定の重み(例えば26)を乗じることで、相関スコアマップを生成する。
【0097】
そして、ニューラルネット処理部42は、第1の差分スコアマップと相関スコアマップとを統合し、IIRフィルタを掛けることで、グローバルマッチング用信頼度マップを生成する。グローバルマッチング用信頼度マップの各左側画素の値は、第1の差分スコアマップと相関スコアマップとの値のうち、大きい方の値を示す。
【0098】
一方、特徴量算出部41は、現フレームのローカル視差マップと、前フレームのローカル視差マップとの差分を示す第2の差分マップを生成する。第2の差分マップは、現フレームのローカル視差マップの水平視差d1から前フレームのローカル視差マップの水平視差d1を減算した値を、左側画素毎に示すものである。次いで、ニューラルネット処理部42は、第2の差分マップを2値化することで、第2の2値化差分マップを生成する。そして、ニューラルネット処理部42は、第2の2値化差分マップの各値に所定の重み(例えば16)を乗じることで、第2の差分スコアマップを生成する。
【0099】
さらに、特徴量算出部41は、現フレームの入力画像VLのエッジ画像を生成する。このエッジ画像は、入力画像VLのエッジ部分(入力画像VLに描かれた各画像の輪郭部分)を示す。ニューラルネット処理部42は、このエッジ画像を2値化することで、2値化エッジマップを生成する。そして、ニューラルネット処理部42は、2値化エッジマップの各値に所定の重み(例えば8)を乗じることで、エッジスコアマップを生成する。
【0100】
そして、ニューラルネット処理部42は、第2の差分スコアマップとエッジスコアマップとを統合し、IIRフィルタを掛けることで、ローカルマッチング用信頼度マップを生成する。ローカルマッチング用信頼度マップの各左側画素の値は、第2の差分スコアマップとエッジスコアマップとの値のうち、大きい方の値を示す。
【0101】
このように、ニューラルネット処理部42は、グローバル視差マップを異なる評価手法により評価し、それらの結果を統合することで、グローバルマッチング用信頼度マップを生成する。同様に、ニューラルネット処理部42は、ローカル視差マップを異なる評価手法により評価し、それらの結果を統合することで、ローカルマッチング用信頼度マップを生成する。ここで、グローバル視差マップの評価手法とローカル視差マップの評価手法とは互いに異なっている。また、評価手法により異なる重み付けが行われている。
【0102】
そして、ニューラルネット処理部42は、グローバルマッチング用信頼度マップと、ローカルマッチング用信頼度マップとを対比することで、左側画素毎に、グローバル視差マップとローカル視差マップとのどちらの信頼度が高いかを判定する。ニューラルネット処理部42は、判定の結果に基づいて、信頼度の高い視差マップを左側画素毎に示す比較信頼度マップを生成する。
【0103】
周辺化処理部43は、ニューラルネット処理部42から与えられた各マップに周辺化(平滑化)処理を施す。具体的には、周辺化処理部43は、マップを構成するいずれかの画素を積算基準画素とし、積算基準画素及びその周辺画素の値(例えば、比較信頼度、時間信頼度等)を積算する。周辺化処理部43は、積算値を0〜1の範囲に正規化し、積算基準画素に隣接する画素に伝播させる。ここで、周辺化処理の例を図12に基づいて説明する。例えば、周辺化処理部43は、画素PM1を積算基準画素とし、積算基準画素PM1及びその周辺の画素PM2〜PM4の値を積算する。そして、周辺化処理部43は、積算値を0〜1の範囲に正規化する。周辺化処理部43は、積算基準画素PM1の値が「0」または「1」となる場合、積算値を上述した式(7)に代入することで、正規化を行なう。一方、周辺化処理部43は、積算基準画素PM1の値が0〜1の範囲内の実数となる場合、積算値をシグモイド関数に代入することで、正規化を行なう。
【0104】
そして、周辺化処理部43は、正規化された積算値を積算基準画素PM1の右側に隣接する画素PM5に伝播させる。具体的には、周辺化処理部43は、積算値と画素PM5の値との算術平均値を算出し、算術平均値を画素PM5の値とする。周辺化処理部43は、積算値をそのまま画素PM5の値としてもよい。なお、周辺化処理部43は、このような周辺化処理を行う場合、積算基準画素の初期値(スタート地点)を、マップの左端を構成する画素(x=0となる画素)とする。この例では、伝播方向を右方向としたが、他の方向(左方向、上方向、下方向)であってもよい。
【0105】
周辺化処理部43は、マップの全範囲に対して周辺化処理を行ってもよいが、一部の範囲に対して周辺化処理を行ってもよい。なお、マップの周辺化処理はローパスフィルタによって行なうこともできるが、周辺化処理部43が上記のような処理を行うことで、以下の効果が得られる。即ち、ローパスフィルタは、周辺化処理の対象となるマップのうち、画素の値が所定値以上となる部分にしか周辺化処理を行なうことができない。これに対し、周辺化処理部43は、マップの全範囲または所望の範囲に対して周辺化処理を行なうことができる。また、ローパスフィルタによる周辺化処理は、単に各画素の中間値を出力するだけなので、周辺化処理によってかえってマップに不具合が生じる可能性がある。例えば、マップの特徴部分(例えば、マップのエッジ部分や被写体が描かれている部分)が不自然に周辺化される可能性がある。これに対し、周辺化処理部43は、複数の画素の値を積算し、これにより得られた積算値を用いて周辺化を行うので、マップの特徴部分を生かした周辺化を行なうことができる。
【0106】
周辺化処理部43は、周辺化処理を施した比較信頼度マップを図5に示すマップ生成部50に出力する。さらに、周辺化処理部43は、周辺化処理を施した時間信頼度マップを第1の視差検出部20及び第2の視差検出部30に出力する。第1の視差検出部20及び第2の視差検出部30に出力された時間信頼度マップは、次フレームで使用される。また、周辺化処理部43は、周辺化処理を施した各種情報マップを、当該各種情報マップを必要とするアプリケーションに提供する。
【0107】
[マップ生成部の構成]
マップ生成部50は、グローバル視差マップ、ローカル視差マップ、及び比較信頼度マップに基づいて、統合視差マップを生成する。統合視差マップの各左側画素の水平視差d1及び垂直視差d2は、グローバル視差マップ及びローカル視差マップが示す値のうち、信頼度が高い方の値を示す。マップ生成部50は、統合視差マップを裸眼立体視表示装置内の多視点画像生成アプリケーションに提供する。また、マップ生成部50は、統合視差マップを第1の視差検出部20に出力する。第1の視差検出部20に出力された統合視差マップは、次フレームで使用される。
【0108】
さらに、マップ生成部50は、入力画像VL、VR及び統合視差マップに基づいて、補正値α1を算出する。即ち、マップ生成部50は、統合視差マップに基づいて、左側画素に対応する対応画素を入力画像VRから検索する。対応画素のx座標は、左側画素のx座標に水平視差d1を加えた値であり、対応画素のy座標は、左側画素のy座標に垂直視差d2を加えた値である。マップ生成部50は、全ての左側画素について、対応画素を検索する。
【0109】
マップ生成部50は、左側画素と対応画素との輝度差△Lx(差分値)を算出し、輝度差△Lxの算術平均値E(x)と、輝度差△Lxのべき乗の算術平均値E(x2)とを算出する。そして、マップ生成部50は、算出された算術平均値E(x)、E(x2)と、例えば図14に示すクラス分けテーブルとに基づいて、入力画像VL、VRのクラスを決定する。ここで、クラス分けテーブルは、算術平均値E(x)と、E(x2)と、入力画像VL、VRのクラスとを関連付けて示すものである。入力画像VL、VRのクラスは、クラス0〜クラス4に区分され、各クラスは、入力画像VL、VRの明瞭度を示す。クラスの値が小さいほど、入力画像VL、VRは明瞭となる。例えば、図15に示す画像V1は、クラス0に分類される。画像V1は、スタジオで撮影されたものであり、被写体が比較的明瞭に描かれている。一方、図16に示す画像V2は、クラス4に分類される。画像V2は、屋外で撮影されたものであり、一部の被写体(特に背景部分)が比較的不明瞭に描かれている。
【0110】
マップ生成部50は、図17に示す補正値対応テーブルと、入力画像VL、VRのクラスとに基づいて、補正値α1を決定する。ここで、補正値対応テーブルは、入力画像VL、VRのクラスと補正値α1との対応関係を示すテーブルである。マップ生成部50は、決定された補正値α1に関する補正値情報を第1の視差検出部20に出力する。補正値α1は、次フレームで使用される。
【0111】
<3.画像処理装置による処理>
次に、画像処理装置1による処理の手順を、図18に示すフローチャートに沿って説明する。
【0112】
ステップS10において、画像取得部10は、入力画像VL、VRを取得し、画像処理装置1内の各構成要素に出力する。ステップS20において、DSAD算出部22は、マップ生成部50から、補正値α1に関する補正値情報を取得する。なお、DSAD算出部22は、補正値情報を取得できない場合(例えば、最初のフレーム(第0フレーム)に対する処理を行う場合)には、補正値α1を0に設定する。
【0113】
DSAD算出部22は、バックトラック部27から前フレームのグローバル視差マップを取得する。そして、DSAD算出部22は、いずれかの左側画素を基準画素とし、基準画素の前フレームの水平視差d1及び垂直視差d2を前フレームのグローバル視差マップから検索する。そして、DSAD算出部22は、基準画素に対して当該垂直視差d2を有するいずれかの右側画素を第1の参照画素とする。なお、DSAD算出部22は、前フレームのグローバル視差マップを取得できない場合(例えば、第0フレームに対する処理を行う場合)、基準画素と同じy座標を有する右側画素を第1の参照画素とする。
【0114】
そして、DSAD算出部22は、第1の参照画素に対してy方向の所定範囲内に存在する右側画素を第2の参照画素とする。DSAD算出部22は、基準画素と、第1の参照画素及び第2の参照画素を含む参照画素群と、補正値α1とに基づいて、上述した式(1)で示されるDSAD(△x、j)を算出する。
【0115】
DSAD算出部22は、全ての水平視差候補△xについてDSAD(△x,j)を算出する。そして、DSAD算出部22は、基準画素を変更し、上記の処理を繰り返す。これにより、DSAD算出部22は、全ての基準画素についてDSAD(△x,j)を算出する。そして、DSAD算出部22は、DSAD(△x、j)と基準画素とが関連付けられたDSAD情報を生成し、最小値選択部23に出力する。
【0116】
ステップS30において、最小値選択部23は、DSAD情報に基づいて、以下の処理を行なう。即ち、最小値選択部23は、水平視差候補△x毎に、最小のDSAD(△x,j)を選択する。最小値選択部23は、選択されたDSAD(△x,j)を図9に示す視差検出用DPマップの各ノードP(x、△x)に格納する。
【0117】
さらに、最小値選択部23は、最小のDSAD(△x,j)に対応する参照画素を候補画素として特定する。そして、最小値選択部23は、候補画素のy座標から基準画素のy座標を減算した値を垂直視差候補△yとする。そして、最小値選択部23は、水平視差候補△xと垂直視差候補△yとを関連付けて、垂直視差候補格納テーブルに格納する。最小値選択部23は、全ての基準画素について、上記の処理を行う。
【0118】
ステップS40において、アンカーベクトル構築部24は、評価部40から前フレームの時間信頼度マップを取得し、マップ生成部50から前フレームの統合視差マップを取得する。アンカーベクトル構築部24は、前フレームの時間信頼度マップに基づいて、視差安定左側画素を特定する。そして、アンカーベクトル構築部24は、前フレームの統合視差マップに基づいて、視差安定左側画素の前フレームの水平視差d1、即ち安定水平視差d1’を特定する。そして、アンカーベクトル構築部24は、視差安定左側画素毎に、例えば上記の式(2)で示されるアンカーベクトルを生成する。なお、アンカーベクトル構築部24は、前フレームの時間信頼度マップ及び統合視差マップを取得することができない場合、行列Mdの成分を全て0とする。アンカーベクトル構築部24は、アンカーベクトルと視差安定左側画素とが関連付けられたアンカーベクトル情報を生成し、コスト算出部25に出力する。次いで、コスト算出部25は、アンカーベクトル情報に基づいて、視差検出用DPマップの各ノードP(x、d)の値を更新する。
【0119】
ステップS50において、左目用画像水平差分算出部261は、画像取得部10から入力画像VLを取得する。左目画像水平差分算出部261は、入力画像VLを構成する左側画素毎に、輝度水平差分dwLを算出し、輝度水平差分dwLに関する輝度水平差分情報を生成する。そして、左目用画像水平差分算出部261は、輝度水平差分情報を重み算出部263に出力する。
【0120】
一方、右目用画像水平差分算出部262は、画像取得部10から入力画像VRを取得し、入力画像VRに対して上述した左目用画像水平差分算出部261と同様の処理を行なう。そして、右目用画像水平差分算出部262は、この処理により生成された輝度水平差分情報を重み算出部263に出力する。
【0121】
次いで、重み算出部263は、輝度水平差分情報に基づいて、左側画素の重みwtL、右側画素のwtRをすべての左側画素及び右側画素について算出する。
【0122】
次いで、経路算出部264は、重み算出部263から与えられた重み情報に基づいて、視差検出用DPマップの始点から各ノードP(x、△x)に至るまでの累積コストを計算する。
【0123】
そして、経路算出部264は、算出された累積コストDFI(x、△x)0〜DFI(x、△x)2のうち、最小のものを選択し、選択されたものをノードP(x、△x)の累積コストDFI(x、△x)とする。経路算出部264は、すべてのノードP(x、△x)について累積コストDFI(x、△x)を算出し、視差検出用DPマップに格納する。
【0124】
次いで、バックトラック部27は、累積コストが最小となる経路を終点から始点に向かって逆にたどることで、最短経路、即ち始点から終点までの累積コストが最小となる経路を算出する。この最短経路上のノードは、当該ノードに対応する左側画素の水平視差d1となる。したがって、バックトラック部27は、最短経路を算出することで、各左側画素の水平視差d1を検出する。
【0125】
ステップS60において、バックトラック部27は、いずれかの左側画素に対応する垂直視差候補格納テーブルを垂直視差候補記憶部21から取得する。バックトラック部27は、取得した垂直視差候補格納テーブルに基づいて、左側画素の水平視差d1に対応する垂直視差候補△yを特定し、特定された垂直視差候補△yを左側画素の垂直視差d2とする。これにより、バックトラック部27は、垂直視差d2を検出する。そして、バックトラック部27は、全ての左側画素について垂直視差d2を検出し、検出された水平視差d1及び垂直視差d2に基づいて、グローバル視差マップを生成する。バックトラック部27は、生成されたグローバル視差マップをDSAD算出部22、評価部40、及びマップ生成部50に出力する。
【0126】
一方、第2の視差検出部30は、画像取得部10から入力画像VL、VRを取得する。さらに、第2の視差検出部30は、評価部40から前フレームの時間信頼度マップを取得し、マップ生成部50から前フレームの統合視差マップを取得する。
【0127】
次いで、第2の視差検出部30は、前フレームの時間信頼度マップに基づいて、視差安定左側画素を特定する。そして、第2の視差検出部30は、前フレームの統合視差マップに基づいて、視差安定左側画素の前フレームの水平視差d1及び垂直視差d2、即ち安定水平視差d1’及び安定垂直視差d2’を特定する。そして、アンカーベクトル構築部24は、視差安定左側画素のxy座標にそれぞれ安定水平視差d1’及び安定垂直視差d2’を加算し、これにより得られたxy座標を有する右側画素を、視差安定右側画素とする。
【0128】
さらに、第2の視差検出部30は、入力画像VL、VRをそれぞれ複数の画素ブロックに分割する。そして、第2の視差検出部30は、左側画素ブロック内の各左側画素に対応する対応画素を、左側画素ブロックに対応する右側画素ブロックから検出する。ここで、第2の視差検出部30は、視差安定左側画素に対応する対応画素を検出する際には、視差安定右側画素を優先的に対応画素として検出する。第2の視差検出部30は、対応画素のx座標から左側画素のx座標を減算した値を左側画素の水平視差d1とし、対応画素のy座標から左側画素のy座標を減算した値を右側画素の垂直視差d2とする。第2の視差検出部30は、検出結果に基づいて、ローカル視差マップを生成する。第2の視差検出部30は、生成されたローカル視差マップを評価部40に出力する。
【0129】
なお、第2の視差検出部30は、前フレームの時間信頼度マップ及び統合視差マップを取得することができない場合、視差安定左側画素を検出せずに、上記の処理を行なう。
【0130】
ステップS70において、特徴量算出部41は、第1の視差検出部20及び第2の視差検出部30から与えられた視差マップ等に基づいて、2以上の特徴量マップを生成し、ニューラルネット処理部42に出力する。
【0131】
次いで、ニューラルネット処理部42は、各特徴量マップを構成する左側画素のうち、いずれかの左側画素を評価対象画素とし、当該評価対象画素に対応する値を各特徴量マップから取得する。そして、ニューラルネット処理部42は、これらの値を入力値In0〜In(m−1)とすることで、出力値Out0〜Out2を取得する。
【0132】
ニューラルネット処理部42は、評価対象画素を順次変更することで、新たな入力値In0〜In(m−1)を生成し、出力値Out0〜Out2を取得する。これにより、ニューラルネット処理部42は、時間信頼度マップ、比較信頼度マップ、及び各種情報マップを生成する。ニューラルネット処理部42は、これらのマップを周辺化処理部43に出力する。
【0133】
次いで、周辺化処理部43は、ニューラルネット処理部42から与えられた各マップに周辺化(平滑化)処理を施す。周辺化処理部43は、周辺化処理を施した比較信頼度マップをマップ生成部50に出力する。さらに、周辺化処理部43は、周辺化処理を施した時間信頼度マップを第1の視差検出部20及び第2の視差検出部30に出力する。また、周辺化処理部43は、周辺化処理を施した各種情報マップを、当該各種情報マップを必要とするアプリケーションに提供する。
【0134】
ステップS80において、マップ生成部50は、グローバル視差マップ、ローカル視差マップ、及び比較信頼度マップに基づいて、統合視差マップを生成する。マップ生成部50は、統合視差マップを裸眼立体視表示装置内の多視点画像生成アプリケーションに提供する。また、マップ生成部50は、統合視差マップを第1の視差検出部20に出力する。
【0135】
さらに、マップ生成部50は、入力画像VL、VR及び統合視差マップに基づいて、補正値α1を算出する。即ち、マップ生成部50は、入力画像VL、VR及び統合視差マップに基づいて、輝度差△Lxの算術平均値E(x)と、輝度差△Lxのべき乗の算術平均値E(x2)とを算出する。そして、マップ生成部50は、算出された算術平均値E(x)、E(x2)と、図14に示すクラス分けテーブルとに基づいて、入力画像VL、VRのクラスを決定する。
【0136】
次いで、マップ生成部50は、図17に示す補正値対応テーブルと、入力画像VL、VRのクラスとに基づいて、補正値α1を決定する。マップ生成部50は、決定された補正値α1に関する補正値情報を第1の視差検出部20に出力する。その後、画像処理装置1は、処理を終了する。
【0137】
図19に、ローカル視差マップ、グローバル視差マップ、及び統合視差マップが時間の経過に応じて更新される様子を示す。図11(a)は、ローカル視差マップが更新される様子を示し、図11(b)は、グローバル視差マップが更新される様子を示し、図11(c)は、統合視差マップが更新される様子を示す。
【0138】
第0フレーム(#0)のローカル視差マップDML0には、ドットノイズが見受けられる。ローカルマッチングは、オクルージョンに弱い、安定性が悪い(精度がばらつきやすい)という短所があり、かつ、第0フレームでは、時間信頼度マップを参照することができないからである。
【0139】
同様に、第0フレームのグローバル視差マップDMG0には、若干のストリーキング(スジ状のノイズ)が見受けられる。ローカルマッチングは、精度の良否が入力画像VL、VRの品質に依存しやすく、かつ、y方向の探索範囲が後のフレームに比べて若干狭いからである。
【0140】
第0フレーム(#0)の統合視差マップDM0には、上記のドットノイズ及びストリーキングはほぼ見受けられない。上記の通り、統合視差マップDM0は、ローカル視差マップDML0及びグローバル視差マップDMG0のうち、信頼度が高い部分を統合したものだからである。
【0141】
第1フレーム(#1)のローカル視差マップDML1には、ドットノイズはほぼ見受けられない。上述したように、第2の視差検出部30は、第0フレームの時間信頼度マップ及び統合視差マップに基づいてローカル視差マップDML1を生成することができるからである。
【0142】
同様に、第1フレームのグローバル視差マップDMG1には、ストリーキングはほぼ見受けられない。例えば、領域A1でのストリーキングが特に減少している。この理由は、第1に、第1の視差検出部20は、DSADを算出する際に、第0フレームのグローバル視差マップDMG0に基づいて、y方向の探索範囲を実質的に拡大するからである。第2に、第1の視差検出部20は、前フレームの安定水平視差d1’を現フレームにおいても優先的に選択するからである。
【0143】
第1フレーム(#1)の統合視差マップDM1は、第0フレームの統合視差マップDM0よりもさらに精度が向上している。上記の通り、統合視差マップDM1は、ローカル視差マップDML1及びグローバル視差マップDMG1のうち、信頼度が高い部分を統合したものだからである。
【0144】
第2フレームでの各マップDML2、DMG2、DM2は、第1フレームの結果を反映したものになっているので、精度がさらに向上している。例えば、グローバル視差マップDMG2のうち、領域A2及びA3では、ストリーキングが特に減少している。
【0145】
<4.画像処理装置による効果>
次に、画像処理装置1による効果を説明する。さらに、画像処理装置1は、入力画像VRを構成する第1の参照画素、及び第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群から、対応画素の候補となる候補画素を検出する。そして、画像処理装置1は、基準画素の垂直位置から候補画素の垂直位置までの距離を示す垂直視差候補△yを垂直視差候補格納テーブルに格納する。
【0146】
このように、画像処理装置1は、対応画素の候補となる候補画素を垂直方向(y方向)に探索し、この結果である垂直視差候補△yを垂直視差候補格納テーブルに格納する。したがって、画像処理装置1は、基準画素と同じ垂直位置にある右側画素のみならず、基準画素と異なる垂直位置にある右側画素も探索することができるので、ロバスト性及び精度の高い水平視差の検出を行なうことができる。
【0147】
さらに、画像処理装置1は、第1の参照画素から垂直方向の所定範囲内に存在する画素を第2の画素として参照画素群に含めるので、y方向の探索範囲が過剰に広くなることを防止することができる。即ち、画像処理装置1は、最適化問題の爆発が起こることを防止することができる。
【0148】
さらに、画像処理装置1は、水平位置の異なる第1の参照画素毎に、参照画素群を生成し、垂直視差候補△yを、水平視差候補△xに関連付けて垂直視差候補格納テーブルに格納する。これにより、画像処理装置1は、より精度の高い垂直視差候補格納テーブルを生成することができる。
【0149】
このように、画像処理装置1は、入力画像VL、VRを対比する(即ち、マッチング処理を行なう)ことで、垂直視差候補格納テーブルに垂直視差候補△yを格納する。しかし、画像処理装置1は、垂直視差候補格納テーブルに垂直視差候補△yをひと通り格納した後は、最短経路の算出等を行なうことで、水平視差d1を検出する。即ち、画像処理装置1は、マッチング処理を1回だけ行なうことで、水平視差d1を検出するので、水平視差d1を迅速に検出することができる。
【0150】
そして、画像処理装置1は、垂直視差候補格納テーブルに格納された垂直視差候補△yのうち、水平視差d1に対応する垂直視差候補△yを基準画素の垂直視差d2として検出する。これにより、画像処理装置1は、垂直視差d2を精度よく検出することができる。即ち、画像処理装置1は、幾何ズレに強い視差検出を行うことができる。
【0151】
さらに、画像処理装置1は、現フレームの右側画素のうち、現フレームの基準画素に対して前フレームで検出された垂直視差d2を有する画素を、現フレームの第1の参照画素とする。これにより、画像処理装置1は、第1の参照画素を更新することができ、この第1の参照画素を基準として参照画素群を形成することができる。したがって、画像処理装置1は、候補画素を探索する範囲を実質的に拡大することができる。
【0152】
さらに、画像処理装置1は、入力画像VL、VRの輝度差△Lx、即ち色ズレに応じた補正値α1に基づいて、DSAD(△x、j)を算出し、DSAD(△x、j)に基づいて、候補画素を検出する。したがって、画像処理装置1は、色ズレに強い視差検出を行うことができる。
【0153】
さらに、画像処理装置1は、基準画素、第1の参照画素、及び第2の参照画素のみならず、これらの画素の周辺の画素の輝度に基づいて、DSAD(△x、j)を算出するので、DSAD(△x、j)を精度よく算出することができる。特に、画像処理装置1は、基準画素、第1の参照画素、及び第2の参照画素に対してy方向にずれた位置に存在する画素の輝度に基づいて、DSAD(△x、j)を算出するので、この点でも、幾何ズレに強い視差検出を行うことができる。
【0154】
さらに、画像処理装置1は、入力画像VL、VRの輝度差△Lx及び輝度差△Lxのべき乗に基づいて、補正値α1を算出するので、補正値α1を精度よく算出することができる。特に、画像処理装置1は、輝度差△Lx及び輝度差△Lxのべき乗を左側画素毎に算出し、これらの算術平均値をE(x)、E(x2)を算出する。そして、画像処理装置1は、算術平均値E(x)、E(x2)に基づいて、補正値α1を算出するので、補正値α1を精度よく算出することができる。
【0155】
特に、画像処理装置1は、クラス分けテーブルに基づいて、前フレームの入力画像VL、VRのクラスを判定し、前フレームの入力画像VL、VRのクラスに基づいて、補正値α1を算出する。このクラスは、入力画像VL、VRの明瞭度を示す。したがって、画像処理装置1は、補正値α1をより精度よく算出することができる。
【0156】
さらに、画像処理装置1は、各種の特徴量マップを算出し、特徴量マップの値をニューラルネット処理部42の入力値In0〜In(m−1)とする。そして、画像処理装置1は、グローバル視差マップ及びローカル視差マップのうち、信頼度が高い方を示す比較信頼度を出力値Out1として算出する。これにより、画像処理装置1は、より精度の高い視差検出を行うことができる。すなわち、画像処理装置1は、これらのマップのうち、信頼度の高い部分同士が組み合わされた統合視差マップを生成することができる。
【0157】
さらに、画像処理装置1は、ニューラルネットワークにより出力値Out0〜Out2を算出するので、出力値Out0〜Out2の精度が向上する。さらに、ニューラルネット処理部42のメンテナンス性が向上する(即ち、メンテナンスが容易となる)。さらに、ノード421同士は複雑に連結しているので、ノード421同士の組み合わせは膨大となる。したがって、画像処理装置1は、比較信頼度の精度を向上させることができる。
【0158】
さらに、画像処理装置1は、統合視差マップを次フレームで参照可能か否かを示す時間信頼度を出力値Out0として算出する。したがって、画像処理装置1は、次フレームの視差検出を、当該時間信頼度に基づいて行うことができる。これにより、画像処理装置1は、より精度の高い視差検出を行うことができる。具体的には、画像処理装置1は、時間信頼度を左側画素毎に示す時間信頼度マップを生成する。したがって、画像処理装置1は、統合視差マップが示す各左側画素の水平視差d1及び垂直視差d2のうち、時間信頼度の高い視差を次フレームでも優先的に選択することができる。
【0159】
また、画像処理装置1は、DSADを視差検出用DPマップのスコアとするので、単にSADのみをスコアとする場合よりも、視差検出用DPマップのスコアを精度良く算出することができ、ひいては、視差検出を精度良く行なうことができる。
【0160】
また、画像処理装置1は、各ノードP(x、d)の累積コストを算出する際に、水平差分に応じた重みwtL、wtRを考慮するので、累積コストを精度良く算出することができる。この重みwtL、wtRは、エッジ部では小さくなり、平坦部では大きくなるので、スムージングが画像に応じて適切に行われるようになる。
【0161】
また、画像処理装置1は、グローバル視差マップと入力画像VLとのエッジ画像の相関を示す相関マップを生成し、この相関マップに基づいてグローバル視差マップの信頼度を算出する。したがって、画像処理装置1は、グローバル視差マップのいわゆるストリーキング領域での信頼度を算出することができる。このため、画像処理装置1は、ストリーキング領域において、視差検出を精度良く行うことができる。
【0162】
また、画像処理装置1は、グローバル視差マップとローカル視差マップとを評価する際に、それぞれ異なる評価手法にてグローバル視差マップとローカル視差マップとを評価するので、これらの特性を考慮した評価を行うことができる。
【0163】
また、画像処理装置1は、それぞれの評価手法により得られたマップにIIRフィルタを掛けることで、グローバルマッチング用信頼度マップと、ローカルマッチング用信頼度マップとを生成するので、時間的に安定した信頼度マップを生成することができる。
【0164】
また、画像処理装置1は、グローバル視差マップとローカル視差マップとのうち、信頼度の高い方を用いて統合視差マップを生成する。したがって、画像処理装置1は、グローバルマッチングでは正確な視差が検出されにくい領域、及びローカルマッチングでは正確な視差が検出されにくい領域において、正確な視差を検出することができる。
【0165】
また、画像処理装置1は、生成された統合視差マップを次フレームで考慮するので、単に複数のマッチング手法を並行して行う場合よりも、視差検出を精度良く行なうことができる。
【0166】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【0167】
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得する画像取得部と、
前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させる視差検出部と、を備える、画像処理装置。
(2)
前記視差検出部は、前記第1の参照画素から垂直方向の所定範囲内に存在する画素を前記第2の画素として前記参照画素群に含める、前記(1)記載の画像処理装置。
(3)
前記視差検出部は、複数の前記水平視差候補から、前記基準画素の水平視差を検出し、前記垂直視差候補格納テーブルに格納された前記垂直視差候補のうち、前記水平視差に対応する垂直視差候補を前記基準画素の垂直視差として検出する、前記(1)または(2)記載の画像処理装置。
(4)
前記視差検出部は、現フレームの前記参照画像を構成する画素のうち、現フレームの前記基準画素に対して前フレームで検出された前記垂直視差を有する画素を、現フレームの前記第1の参照画素とする、前記(3)記載の画像処理装置。
(5)
前フレームの前記基準画素と前記対応画素との特徴量の差分値に応じた補正値を算出する補正値算出部を備え、
前記視差検出部は、前記基準画素を含む基準領域内の基準画素特徴量と、前記第1の参照画素を含む第1の参照領域内の第1の参照画素特徴量と、前記補正値とに基づいて、第1の評価値を算出し、前記基準画素特徴量と、前記第2の参照画素を含む第2の参照領域内の第2の参照画素特徴量と、前記補正値とに基づいて、第2の評価値を算出し、前記第1の評価値及び前記第2の評価値に基づいて、前記候補画素を検出する、前記(1)〜(4)のいずれか1項に記載の画像処理装置。
(6)
前記補正値算出部は、前記差分値と、前記差分値のべき乗とに基づいて、前記補正値を算出する、前記(5)記載の画像処理装置。
(7)
前記補正値算出部は、前記差分値の平均値と、前記差分値のべき乗の平均値と、前記基準画像及び前記参照画像のクラスとを関連付けて示すクラス分けテーブルに基づいて、前フレームの前記基準画像及び前記参照画像のクラスを判定し、前フレームの前記基準画像及び前記参照画像のクラスに基づいて、前記補正値を算出する、前記(6)記載の画像処理装置。
(8)
前記視差検出部である第1の視差検出部と異なる方法により、少なくとも前記基準画素の水平視差を検出する第2の視差検出部と、
前記基準画像及び前記参照画像に基づいて算出される演算特徴量をニューラルネットワークに入力することで、前記ニューラルネットワークの出力値として、前記第1の視差検出部による検出結果及び前記第2の視差検出部による検出結果のうち、信頼度の高い検出結果を示す比較信頼度を取得する評価部と、を備える、前記(1)〜(7)のいずれか1項に記載の画像処理装置。
(9)
前記評価部は、前記ニューラルネットワークの出力値として、前記信頼度の高い検出結果を次フレームで参照可能か否かを示す時間信頼度を取得する、前記(8)記載の画像処理装置。
(10)
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得することと、
前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させることと、を含む、画像処理方法。
(11)
コンピュータに、
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得する画像取得機能と、
前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させる視差検出機能と、を実現させる、プログラム。
【符号の説明】
【0168】
1 画像処理装置
10 画像取得部
20 第1の視差検出部
30 第2の視差検出部
40 評価部
50 マップ生成部
【技術分野】
【0001】
本開示は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【0002】
立体視専用の眼鏡がなくても、画像の立体視表示が可能な裸眼立体視表示装置が知られている。裸眼立体視表示装置は、同じ被写体が異なる水平位置に描かれた複数の画像を取得する。そして、裸眼立体視表示装置は、これらの画像のうち、被写体が描かれた部分である被写体画像同士を対比し、被写体画像同士の水平位置のずれ、即ち水平視差を検出する。そして、裸眼立体視表示装置は、検出された水平視差と、取得した画像とに基づいて、多視点画像を複数生成し、これらの多視点画像を立体視表示する。裸眼立体視表示装置が水平視差を検出する手法として、特許文献1に記載されたグローバルマッチングが知られている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第4410007号
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、グローバルマッチングには、被写体画像同士の垂直位置にズレがある(幾何ズレがある)場合には、視差検出のロバスト性及び精度が大きく低下するという問題があった。そこで、ロバスト性及び精度の高い水平視差の検出を行なうことが可能な技術が求められていた。
【課題を解決するための手段】
【0005】
上記課題を解決するために、本開示によれば、同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得する画像取得部と、基準画像を構成する基準画素と、参照画像を構成する第1の参照画素、及び第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、参照画素群から、基準画素に対応する対応画素の候補である候補画素を検出し、基準画素の水平位置から候補画素の水平位置までの距離を示す水平視差候補と、基準画素の垂直位置から候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させる視差検出部と、を備える、画像処理装置が提供される。
【0006】
本開示によれば、同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得することと、前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させることと、を含む、画像処理方法が提供される。
【0007】
本開示によれば、コンピュータに、同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得する画像取得機能と、前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させる視差検出機能と、を実現させる、プログラムが提供される。
【0008】
本開示は、参照画像を構成する第1の参照画素、及び第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群から、対応画素の候補となる候補画素を検出する。そして、本開示は、基準画素の垂直位置から候補画素の垂直位置までの距離を示す垂直視差候補を記憶部に記憶させる。このように、本開示は、対応画素の候補となる候補画素を垂直方向に探索し、この結果である垂直視差候補を記憶部に記憶させる。
【発明の効果】
【0009】
以上説明したように本開示は、候補画素を参照画像の垂直方向に検索することができるので、ロバスト性及び精度の高い水平視差の検出を行なうことができる。
【図面の簡単な説明】
【0010】
【図1】裸眼立体視表示装置による処理の概要を示すフローチャートである。
【図2】入力画像同士の色ズレを示す説明図である。
【図3】入力画像同士の幾何ズレを示す説明図である。
【図4】視差マップ(ディスパリティマップ)及び多視点画像が生成される様子を示す説明図である。
【図5】本開示の実施形態に係る画像処理装置の構成を示すブロック図である。
【図6】第1の視差検出部の構成を示すブロック図である。
【図7】垂直視差候補格納テーブルの一例を示す説明図である。
【図8】経路構築部の構成を示す説明図である。
【図9】視差マッチングを行なう際に使用されるDPマップである。
【図10】評価部の構成を示すブロック図である。
【図11】ニューラルネット処理部の構成を示すブロック図である。
【図12】周辺化処理部による処理を説明するための説明図である。
【図13】比較信頼度マップの一例を示す説明図である。
【図14】クラス分けテーブルの一例を示す説明図である。
【図15】クラス0に分類される画像の一例を示す説明図である。
【図16】クラス4に分類される画像の一例を示す説明図である。
【図17】補正値対応テーブルの一例を示す説明図である。
【図18】視差検出の手順を示すフローチャートである。
【図19】各ディスパリティマップの精度が時間の経過に応じて向上する様子を示す説明図である。
【発明を実施するための形態】
【0011】
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【0012】
なお、説明は以下の順序で行うものとする。
1.裸眼立体視表示装置が行なう処理の概要
2.画像処理装置の構成
3.画像処理装置による処理
4.画像処理装置による効果
【0013】
<1.裸眼立体視表示装置が行なう処理の概要>
本願の発明者は、立体視専用の眼鏡がなくても、画像の立体視表示が可能な裸眼立体視表示装置について鋭意研究を重ね、その過程において、本実施の形態に係る画像処理装置に想到するに至った。ここで、立体視表示とは、視認者に両眼視差を生じさせることで、画像を立体的に表示することを意味する。
【0014】
そこで、まず、画像処理装置を含む裸眼立体視表示装置が行なう処理の概要について、図1に示すフローチャートに沿って説明する。
【0015】
ステップS1において、裸眼立体視表示装置は、入力画像VL、VRを取得する。図2、図3に入力画像VL、VRの一例を示す。なお、本実施の形態では、入力画像VL、VRの左上端の画素を原点とし、水平方向をx軸、垂直方向をy軸とする。右方向がx軸の正方向であり、下方向がy軸の正方向である。各画素は、座標情報(x、y)と、色情報(輝度(明度)、彩度、色相)とを有している。以下、入力画像VL上の画素を「左側画素」とも称し、入力画像VR上の画素を「右側画素」とも称する。また、以下の説明では、入力画像VLを基準画像とし、入力画像VRを参照画像とする例について主に説明するが、入力画像VLを参照画像とし、入力画像VRを基準画像としても良いのは勿論である。
【0016】
図2、図3に示すように、入力画像VL、VRには同じ被写体(例えば海、魚、ペンギン)が互いに異なる水平位置(x座標)に描かれている。
【0017】
ただし、入力画像VL、VRは、図2に示すように、互いに色ズレが起こっている場合がある。すなわち、同じ被写体が入力画像VLと入力画像VRとで異なる色で描かれている。例えば、被写体画像VL1と被写体画像VR1とはいずれも同じ海を示すが、色が互いに異なっている。
【0018】
一方、入力画像VL、VRは、図3に示すように、互いに幾何ズレが起こっている場合がある。すなわち、同じ被写体が異なる高さ位置(y座標)に描かれている。例えば、被写体画像VL2と被写体画像VR2とはいずれも同じペンギンを示すが、被写体画像VL2のy座標と被写体画像VR2のy座標とは互いに異なっている。図3には、幾何ズレの理解を容易にするために、直線L1が描かれている。そこで、裸眼立体視表示装置は、これらのズレに対応した視差検出を行なう。すなわち、裸眼立体視表示装置は、色ズレや幾何ズレに対するキャリブレーションを行わなくても、正確な視差検出を行なうことができる。
【0019】
ステップS2において、裸眼立体視表示装置は、入力画像VL、VRに基づいて、視差検出を行なう。視差検出の様子を図4に示す。
【0020】
図4に示すように、裸眼立体視表示装置は、エピポーラ線EPR1またはエピポーラ線EPR1から垂直方向(y方向)にずれた位置に存在する各右側画素から、左側画素PL1に対応する対応画素の候補となる候補画素を複数抽出する。なお、エピポーラ線EPR1は、入力画像VR上に描かれ、左側画素PL1と同じy座標を有し、水平方向に伸びる直線である。また、裸眼立体視表示装置は、入力画像VL、VRの色ズレに応じた補正値を設定し、この補正値に基づいて、候補画素を抽出する。
【0021】
そして、裸眼立体視表示装置は、これらの候補画素から対応画素となる右側画素PR1を抽出する。裸眼立体視表示装置は、右側画素PR1のx座標から左側画素PL1のx座標を減算した値を水平視差d1とし、右側画素PR1のy座標から左側画素PL1のy座標を減算した値を垂直視差d2とする。
【0022】
このように、裸眼立体視表示装置は、入力画像VRを構成する各右側画素のうち、左側画素と同じy座標(垂直位置)を有する画素のみならず、左側画素と異なるy座標を有する画素も探索する。したがって、裸眼立体視表示装置は、色ズレ及び幾何ズレに対応した視差検出を行なうことができる。
【0023】
裸眼立体視表示装置は、入力画像VL上のすべての画素について水平視差d1及び垂直視差d2を検出することで、グローバル視差マップ(グローバルディスパリティマップ)を生成する。さらに、裸眼立体視表示装置は、後述するように、上記の方法(即ち、グローバルマッチング)とは別の方法(即ち、ローカルマッチング)により、入力画像VL上を構成する各画素の水平視差d1及び垂直視差d2を算出する。そして、裸眼立体視表示装置は、ローカルマッチングにより算出された水平視差d1及び垂直視差d2に基づいて、ローカル視差マップを生成する。そして、裸眼立体視表示装置は、これらの視差マップを統合することで、統合視差マップを生成する。図4に、統合視差マップの一例である統合視差マップDMを示す。図4では、水平視差d1の程度がハッチングの濃淡で示されている。
【0024】
ステップS3において、裸眼立体視表示装置は、統合視差マップと、入力画像VL、VRとに基づいて、多視点画像VVを複数生成する。例えば、図4に示す多視点画像VVは、入力画像VLと入力画像VRとの間を補間する画像である。したがって、左側画素PL1に対応する画素PV1は、左側画素PL1と右側画素PR1との間に存在する。
【0025】
ここで、各多視点画像VVは、裸眼立体視表示装置によって立体視表示される画像であり、それぞれ異なる視点(視認者の目の位置)に対応する。すなわち、視認者の目が視認する多視点画像VVは、視認者の目の位置に応じて異なる。例えば、視認者の右目と左目とは異なる位置に存在するので、互いに異なる各多視点画像VVを視認する。これにより、視認者は、多視点画像VVを立体視することができる。また、視認者が移動することによって、視認者の視点が変わっても、その視点に対応する多視点画像VVがあれば、視認者は多視点画像VVを立体視することができる。このように、多視点画像VVの数が多いほど、視認者はより多くの位置で多視点画像VVを立体視することができる。また、多視点画像VVが多いほど、逆視、即ち視認者が本来右目で視認すべき多視点画像VVを左目で視認するという現象が生じにくくなる。また、多視点画像VVを複数生成することによって、運動視差の表現が可能となる。
【0026】
ステップS4において、裸眼立体視表示装置は、フォールバック(リファインメント)を行なう。この処理は、概略的には、各多視点画像VVをその内容に応じて再度補正する処理である。ステップS5において、裸眼立体視表示装置は、各多視点画像VVを立体視表示する。
【0027】
<2.画像処理装置の構成>
次に、本実施の形態に係る画像処理装置1の構成を図面に基づいて説明する。図5に示すように、画像処理装置1は、画像取得部10と、第1の視差検出部20と、第2の視差検出部30と、評価部40と、マップ生成部(補正値算出部)50とを備える。即ち、画像処理装置1は、CPU、ROM、RAM、及びハードディスク等のハードウェア構成を備え、これらのハードウェア構成によって、上記の各構成要素が実現される。即ち、画像処理装置1に、画像取得部10と、第1の視差検出部20と、第2の視差検出部30と、評価部40と、マップ生成部50とを実現させるためのプログラムがROMに記憶されている。画像処理装置1は、上述したステップS1〜ステップS2の処理を行うものである。
【0028】
画像処理装置1では、概略以下の処理が行われる。即ち、画像取得部10は、入力画像VL、VRを取得し、画像処理装置1の各構成要素に出力する。第1の視差検出部20は、入力画像VL、VRに対してグローバルマッチングを行なうことで、入力画像VLを構成する左側画素毎に、水平視差d1及び垂直視差d2を検出する。一方、第2の視差検出部30は、入力画像VL、VRに対してローカルマッチングを行なうことで、入力画像VLを構成する左側画素毎に、水平視差d1及び垂直視差d2を検出する。
【0029】
すなわち、画像処理装置1は、グローバルマッチングと、ローカルマッチングとを並行して行う。ここで、ローカルマッチングは、精度の良否が入力画像VL、VRの品質(色ズレや幾何ズレの程度等)に依存しないという長所があるものの、オクルージョンに弱い、安定性が悪い(精度がばらつきやすい)といった短所もある。一方、グローバルマッチングは、オクルージョンに強い、安定しているという長所があるものの、精度の良否が入力画像VL、VRの品質に依存しやすいという短所もある。そこで、画像処理装置1は、両者を並行して行い、結果として得られる視差マップを画素ごとに対比し、これらを統合するようにしている。
【0030】
[画像取得部の構成]
画像取得部10は、入力画像VL、VRを取得し、画像処理装置1内の各構成要素に出力する。画像取得部10は、入力画像VL、VRを裸眼立体視表示装置内のメモリから取得しても良いし、他の装置と通信を行なうことで取得してもよい。なお、本実施形態において、「現フレーム」は、画像処理装置1が現在処理中のフレームを意味する。「前フレーム」は、現フレームの1フレーム前のフレームを意味する。「次フレーム」は、現フレームの1フレーム後のフレームを意味する。画像処理装置1の処理に対するフレームが特に指示されない場合、画像処理装置1は現フレームに対する処理を行っているものとする。
【0031】
[第1の視差検出部の構成]
第1の視差検出部20は、図6に示すように、垂直視差候補記憶部21と、DSAD(Dynamic Sum Of Absolute Difference)算出部22と、最小値選択部23と、アンカーベクトル構築部24と、コスト算出部25と、経路構築部26と、バックトラック部27とを備える。
【0032】
[垂直視差候補記憶部の構成]
垂直視差候補記憶部21は、図7に示す垂直視差候補格納テーブルを記憶する。垂直視差候補格納テーブルには、水平視差候補△xと、垂直視差候補△yとが関連付けて記録される。水平視差候補△xは、候補画素のx座標から左側画素のx座標を減算した値を示す。一方、垂直視差候補△yは、候補画素のy座標から左側画素のy座標を減算した値を示す。詳細は後述する。垂直視差候補格納テーブルは、左側画素毎に用意される。
【0033】
[DSAD算出部の構成]
DSAD算出部22は、マップ生成部50から、補正値α1に関する補正値情報を取得する。ここで、補正値α1は、概略的には、前フレームの入力画像VLと入力画像VRとの色ズレの度合いに応じて設定され、色ズレが大きいほど、補正値α1が小さくなる。なお、DSAD算出部22は、補正値情報を取得できない場合(例えば、最初のフレーム(第0フレーム)に対する処理を行う場合)には、補正値α1を0に設定する。
【0034】
DSAD算出部22は、いずれかの左側画素を基準画素とし、バックトラック部27から前フレームのグローバル視差マップを取得する。そして、DSAD算出部22は、基準画素の前フレームの水平視差d1及び垂直視差d2を前フレームのグローバル視差マップから検索する。そして、DSAD算出部22は、基準画素に対して前フレームの垂直視差d2を有するいずれかの右側画素、即ち、基準画素のy座標に前フレームの垂直視差d2を加えたy座標を有するいずれかの右側画素を、第1の参照画素とする。このように、DSAD算出部22は、前フレームのグローバル視差マップに基づいて、第1の参照画素を決定する。即ち、DSAD算出部22は、リカーシブ処理を行なう。なお、DSAD算出部22は、前フレームのグローバル視差マップを取得できない場合、基準画素と同じy座標を有する右側画素を第1の参照画素とする。
【0035】
そして、DSAD算出部22は、第1の参照画素に対してy方向の所定範囲内に存在する右側画素を第2の参照画素とする。所定範囲は、例えば、第1の参照画素のy座標を中心とした±1の範囲となるが、この範囲は、ロバスト性と精度とのバランスに応じて任意に変更される。第1の参照画素及び第2の参照画素からなる画素群は、参照画素群を構成する。
【0036】
このように、第1の参照画素のy座標は、フレームが進むに従って順次更新されるので、より正解に近い(基準画素に近い)画素が第1の参照画素として選択されるようになる。さらに、更新された第1の参照画素を基準として、参照画素群が設定されるので、y方向の探索範囲が実質的に拡大される。例えば、第0フレームで第1の参照画素のy座標が5となる場合、第2の参照画素のy座標はそれぞれ4、6となる。その後、第1フレームで第1の参照画素のy座標が6に更新された場合、第2の参照画素のy座標はそれぞれ5、7となる。この場合、第0フレームで第1の参照画素のy座標は5となるのに対し、第2の参照画素のy座標は、フレームが第0フレームから第1フレームに進むことで7まで増加する。即ち、y方向の探索範囲が正方向に実質的に1拡大される。これにより、画像処理装置1は、幾何ズレに強い視差検出を行なうことができる。なお、DSAD算出部22は、第1の参照画素を決定する際に、前フレームのグローバル視差マップを使用したが、前フレームの統合視差マップを使用してもよい。この場合、DSAD算出部22は、第1の参照画素をより精度よく決定することができる。
【0037】
DSAD算出部22は、基準画素と、第1の参照画素及び第2の参照画素を含む参照画素群と、補正値α1とに基づいて、以下の式(1)で示されるDSAD(△x、j)(第1の評価値、第2の評価値)を算出する。
【0038】
【数1】
【0039】
ここで、△xは、第1の参照画素のx座標から基準画素のx座標を減算した値である。なお、後述するように、△x毎に最小のDSAD(△x,j)が選択され、最小のDSAD(△x,j)に対応する右側画素が候補画素とされる。したがって、△xは、候補画素のx座標から基準画素のx座標を減算した値、即ち水平視差候補でもある。jは−1〜+1の整数であり、iは−2〜2の整数である。L(i)は、基準画素とy座標がi異なる左側画素の輝度である。すなわち、L(i)は、基準画素を中心とした基準領域内の基準画素特徴量を示す。R(i,0)は、第1の参照画素を中心とした第1の参照領域内の第1の参照画素特徴量を示す。したがって、DSAD(△x,0)は、基準画素特徴量と第1の参照画素特徴量との差分を評価する値、即ち第1の評価値を示す。
【0040】
一方、R(i,1)、R(i,−1)は、第2の参照画素を中心とした第2の参照領域内の第1の参照画素特徴量を示す。したがって、DSAD(△x,1)、DSAD(△x,−1)は、基準画素特徴量と第2の参照画素特徴量との差分を評価する値、即ち第2の評価値を示す。αは上述した補正値である。
【0041】
したがって、DSAD算出部22は、基準画素、第1の参照画素、及び第2の参照画素の輝度のみならず、これらの画素からy方向にずれた画素の輝度をも参照することで、DSADを算出する。即ち、DSAD算出部22は、基準画素、第1の参照画素、及び第2の参照画素のy座標を振ることで、これらの画素の周辺の輝度を参照している。したがって、画像処理装置1は、この点でも、幾何ズレに強い視差検出を行なうことができる。なお、上記の処理では、y座標を振る量を、各画素のy座標に対して上下2画素としたが、この範囲は、ロバスト性と精度とのバランスに応じて任意に変更される。さらに、DSAD算出部22は、DSADの算出に色ズレに応じた補正値を利用するので、色ズレに強い視差検出が可能となる。
【0042】
DSAD算出部22は、全ての水平視差候補△xについてDSAD(△x,j)を算出する。即ち、DSAD算出部22は、水平位置の異なる第1の参照画素毎に、参照画素群を生成し、各参照画素群についてDSAD(△x,j)を算出する。そして、DSAD算出部22は、基準画素を変更し、上記の処理を繰り返す。これにより、DSAD算出部22は、全ての基準画素についてDSAD(△x,j)を算出する。そして、DSAD算出部22は、DSAD(△x、j)と基準画素とが関連付けられたDSAD情報を生成し、最小値選択部23に出力する。
【0043】
[最小値選択部の構成]
最小値選択部23は、DSAD情報に基づいて、以下の処理を行なう。即ち、最小値選択部23は、水平視差候補△x毎に、最小のDSAD(△x,j)を選択する。最小値選択部23は、選択されたDSAD(△x,j)を図9に示す視差検出用DPマップの各ノードP(x、△x)に格納する。したがって、最小のDSAD(△x,j)がノードP(x、△x)のスコアとなる。
【0044】
視差検出用DPマップは、横軸が左側画素のx座標、縦軸が水平視差候補△xとなっており、複数のノードP(x、△x)を有している。視差検出用DPマップは、左側画素の水平視差d1を算出する際に使用される。また、視差検出用DPマップは、左側画素のy座標毎に生成される。したがって、いずれかの視差検出用DPマップ内のいずれかのノードP(x、△x)は、いずれかの左側画素に対応する。
【0045】
さらに、最小値選択部23は、最小のDSAD(△x,j)に対応する参照画素を候補画素として特定する。そして、最小値選択部23は、候補画素のy座標から基準画素のy座標を減算した値を垂直視差候補△yとする。そして、最小値選択部23は、水平視差候補△xと垂直視差候補△yとを関連付けて、垂直視差候補格納テーブルに格納する。最小値選択部23は、全ての基準画素について、上記の処理を行う。
【0046】
[アンカーベクトル構築部の構成]
図6に示すアンカーベクトル構築部24は、評価部40から前フレームの時間信頼度マップを取得し、マップ生成部50から前フレームの統合視差マップを取得する。現フレームの時間信頼度マップは、現フレームの統合視差マップが示す各左側画素の水平視差d1及び垂直視差d2を次フレームでも参照可能か否かを示すマップである。したがって、前フレームの時間信頼度マップは、前フレームで検出された水平視差d1及び垂直視差d2を現フレームでも参照可能か否かを左側画素毎に示すこととなる。アンカーベクトル構築部24は、前フレームの時間信頼度マップに基づいて、現フレームで水平視差d1及び垂直視差d2を参照可能な左側画素、即ち視差安定左側画素を特定する。そして、アンカーベクトル構築部24は、前フレームの統合視差マップに基づいて、視差安定左側画素の前フレームの水平視差d1、即ち安定水平視差d1’を特定する。そして、アンカーベクトル構築部24は、視差安定左側画素毎に、例えば以下の式(2)で示されるアンカーベクトルを生成する。
【0047】
【数2】
【0048】
ここで、α2はボーナス値を示し、行列Mdは、視差安定左側画素の前フレームの水平視差d1を示す。即ち、行列Mdの各列は、それぞれ異なる水平視差候補△xを示し、成分が1となっている列は、その列に対応する垂直視差候補△xが安定水平視差d1’であることを示す。視差安定左側画素が存在しない場合、行列Mdのすべての成分が0になる。なお、アンカーベクトル構築部24は、前フレームの時間信頼度マップ及び統合視差マップを取得することができない場合(例えば、第0フレームに対する処理を行う場合)、行列Mdの成分を全て0とする。アンカーベクトル構築部24は、アンカーベクトルと視差安定左側画素とが関連付けられたアンカーベクトル情報を生成し、コスト算出部25に出力する。
【0049】
[コスト算出部の構成]
図6に示すコスト算出部25は、アンカーベクトル情報に基づいて、視差検出用DPマップの各ノードP(x、d)の値を更新する。即ち、コスト算出部25は、視差安定左側画素毎に、安定水平視差d1’に対応するノード(x、△x(=d1’))を特定し、このノードのスコアから、ボーナス値α2を減算する。これにより、安定水平視差d1’と同じ視差を有するノードは、最短経路を通りやすくなる。言い換えれば、安定水平視差d1’は、現フレームにおいても選択されやすくなる。
【0050】
[経路構築部の構成]
図6に示す経路構築部26は、図8に示すように、左目用画像水平差分算出部261と、右目用画像水平差分算出部262と、重み算出部263と、経路算出部264とを備える。
【0051】
左目用画像水平差分算出部261は、画像取得部10から入力画像VLを取得し、入力画像VLを構成する左側画素毎に、以下の処理を行なう。すなわち、左目用画像水平差分算出部261は、いずれかの左側画素を基準画素とし、基準画素の輝度から、基準画素よりx座標が1大きい左側画素の輝度を減算する。左目用画像水平差分算出部261は、これにより得られた値を輝度水平差分dwLとし、輝度水平差分dwLに関する輝度水平差分情報を生成する。そして、左目用画像水平差分算出部261は、輝度水平差分情報を重み算出部263に出力する。
【0052】
右目用画像水平差分算出部262は、画像取得部10から入力画像VRを取得する。そして、右目用画像水平差分算出部262は、入力画像VRに対して上述した左目用画像水平差分算出部261と同様の処理を行なう。そして、右目用画像水平差分算出部262は、この処理により生成された輝度水平差分情報を重み算出部263に出力する。
【0053】
重み算出部263は、輝度水平差分情報に基づいて、左側画素の重みwtL、右側画素のwtRをすべての左側画素及び右側画素について算出する。具体的には、重み算出部263は、左側画素の輝度水平差分dwLをシグモイド関数に代入することで、輝度水平差分dwLを0〜1の値に正規化し、これを重みwtLとする。同様に、重み算出部263は、右側画素の輝度水平差分dwRをシグモイド関数に代入することで、輝度水平差分dwRを0〜1の値に正規化し、これを重みwtRとする。そして、重み算出部263は、算出された重みwtL、wtRに関する重み情報を生成し、経路算出部264に出力する。重みwtL、wtRは画像のエッヂ(輪郭)の部分で小さくなり、平坦部分で大きくなる。なお、シグモイド関数は、例えば、以下の式(2−1)で与えられる。
【0054】
【数3】
【0055】
経路算出部264は、重み算出部263から与えられた重み情報に基づいて、視差検出用DPマップの始点から各ノードP(x、△x)に至るまでの累積コストを計算する。具体的には、経路算出部264は、ノード(0、0)を始点、ノード(xmax、0)を終点とし、始点からノードP(x、△x)に至るまでの累積コストを以下のように定義する。ここで、xmaxは、左側画素のx座標の最大値である。
【0056】
【数4】
【0057】
ここで、DFI(x、△x)0は、経路PAd0を通ってノードP(x、△x)に至るときの累積コストであり、DFI(x、△x)1は、経路PAd1を通ってノードP(x、△x)に至るときの累積コストであり、DFI(x、△x)2は、経路PAd2を通ってノードP(x、△x)に至るときの累積コストである。また、DFI(x、△x−1)は始点からノードP(x、△x−1)に至るまでの累積コストである。DFI(x−1、△x)は始点からノードP(x−1、△x)に至るまでの累積コストである。DFI(x−1、△x+1)は始点からノードP(x−1、△x+1)に至るまでの累積コストである。また、occCost0、occCost1は、それぞれコストの値を示す所定値であり、例えば4.0である。wtLは、ノードP(x、△x)に対応する左側画素の重みであり、wtRは、この左側画素と同じ座標を有する右側画素の重みである。
【0058】
そして、経路算出部264は、算出された累積コストDFI(x、△x)0〜DFI(x、△x)2のうち、最小のものを選択し、選択されたものをノードP(x、△x)の累積コストDFI(x、△x)とする。経路算出部264は、すべてのノードP(x、△x)について累積コストDFI(x、△x)を算出し、視差検出用DPマップに格納する。
【0059】
バックトラック部27は、累積コストが最小となる経路を終点から始点に向かって逆にたどることで、最短経路、即ち始点から終点までの累積コストが最小となる経路を算出する。この最短経路上のノードは、当該ノードに対応する左側画素の水平視差d1となる。したがって、バックトラック部27は、最短経路を算出することで、各左側画素の水平視差d1を検出する。
【0060】
バックトラック部27は、いずれかの左側画素に対応する垂直視差候補格納テーブルを垂直視差候補記憶部21から取得する。バックトラック部27は、取得した垂直視差候補格納テーブルに基づいて、左側画素の水平視差d1に対応する垂直視差候補△yを特定し、特定された垂直視差候補△yを左側画素の垂直視差d2とする。これにより、バックトラック部27は、垂直視差d2を検出する。そして、バックトラック部27は、全ての左側画素について垂直視差d2を検出し、検出された水平視差d1及び垂直視差d2に基づいて、グローバル視差マップを生成する。グローバル視差マップは、左側画素毎に水平視差d1及び垂直視差d2を示す。バックトラック部27は、生成されたグローバル視差マップをDSAD算出部22、図5に示す評価部40、及びマップ生成部50に出力する。DSAD算出部22に出力されたグローバル視差マップは、次フレームで使用される。
【0061】
[第2の視差検出部の構成]
図5に示す第2の視差検出部30は、第1の視差検出部と異なる方法、即ちローカルマッチングにより、各左側画素の水平視差d1及び垂直視差d2を算出する。第2の視差検出部30は、具体的には、以下の処理を行なう。第2の視差検出部30は、画像取得部10から入力画像VL、VRを取得する。さらに、第2の視差検出部30は、評価部40から前フレームの時間信頼度マップを取得し、マップ生成部50から前フレームの統合視差マップを取得する。
【0062】
第2の視差検出部30は、前フレームの時間信頼度マップに基づいて、現フレームで水平視差d1及び垂直視差d2を参照可能な左側画素、即ち視差安定左側画素を特定する。そして、第2の視差検出部30は、前フレームの統合視差マップに基づいて、視差安定左側画素の前フレームの水平視差d1及び垂直視差d2、即ち安定水平視差d1’及び安定垂直視差d2’を特定する。そして、アンカーベクトル構築部24は、視差安定左側画素のxy座標にそれぞれ安定水平視差d1’及び安定垂直視差d2’を加算し、これにより得られたxy座標を有する右側画素を、視差安定右側画素とする。
【0063】
さらに、第2の視差検出部30は、入力画像VL、VRをそれぞれ複数の画素ブロックに分割する。例えば、第2の視差検出部30は、入力画像VLを64個の左側画素ブロックに分割し、入力画像VRを64個の右側画素ブロックに分割する。
【0064】
そして、第2の視差検出部30は、左側画素ブロック内の各左側画素に対応する対応画素を、左側画素ブロックに対応する右側画素ブロックから検出する。例えば、第2の視差検出部30は、左側画素に輝度が最も近い右側画素を対応画素として検出する。ここで、第2の視差検出部30は、視差安定左側画素に対応する対応画素を検出する際には、視差安定右側画素を優先的に対応画素として検出する。例えば、第2の視差検出部30は、左側画素に輝度が最も近い右側画素が視差安定右側画素となる場合、視差安定右側画素を対応画素として検出する。一方、第2の視差検出部30は、左側画素に輝度が最も近い右側画素が視差安定右側画素以外の右側画素となる場合、その右側画素と視差安定左側画素との輝度差と所定の輝度範囲とを比較する。第2の視差検出部30は、輝度差が所定の輝度範囲内となる場合、当該右側画素を対応画素として検出する。第2の視差検出部30は、輝度差が所定の輝度範囲を外れる場合、視差安定右側画素を対応画素として検出する。
【0065】
第2の視差検出部30は、対応画素のx座標から左側画素のx座標を減算した値を左側画素の水平視差d1とし、対応画素のy座標から左側画素のy座標を減算した値を右側画素の垂直視差d2とする。第2の視差検出部30は、検出結果に基づいて、ローカル視差マップを生成する。ローカル視差マップは、左側画素毎に水平視差d1及び垂直視差d2を示す。第2の視差検出部30は、生成されたローカル視差マップを評価部40及びマップ生成部50に出力する。
【0066】
なお、第2の視差検出部30は、前フレームの時間信頼度マップ及び統合視差マップを取得することができない場合(例えば、第0フレームに対する処理を行う場合)、視差安定左側画素を検出せずに、上記の処理を行なう。また、第2の視差検出部30は、左側画素ブロック毎に上述した第1の視差検出部20と同様の処理を行うことで、左側画素の水平視差d1及び垂直視差d2を検出しても良い。
【0067】
[評価部の構成]
評価部40は、図10に示すように、特徴量算出部41と、ニューラルネット処理部42と、周辺化処理部43とを備える。
【0068】
[特徴量算出部の構成]
特徴量算出部41は、第1の視差検出部20及び第2の視差検出部30から与えられた視差マップ等に基づいて、各種の特徴量マップ(演算特徴量)を生成する。例えば、特徴量算出部41は、ローカル視差マップに基づいて、ローカルオクルージョンマップを生成する。ここで、ローカルオクルージョンマップは、左側画素毎にローカルオクルージョン情報を示す。ローカルオクルージョン情報は、任意の基準位置(例えば、被写体を撮影した撮影素子の位置)から、左側画素に描かれた被写体までの距離を示す。
【0069】
同様に、特徴量算出部41は、グローバル視差マップに基づいて、グローバルオクルージョンマップを生成する。グローバルオクルージョンマップは、左側画素毎にグローバルオクルージョン情報を示す。グローバルオクルージョン情報は、任意の基準位置(例えば、被写体を撮影した撮影素子の位置)から、左側画素に描かれた被写体までの距離を示す。さらに、特徴量算出部41は、ローカルオクルージョンマップ及びグローバルオクルージョンマップに基づいて、絶対値オクルージョンマップを生成する。絶対値オクルージョンマップは、左側画素毎に絶対値オクルージョン情報を示す。絶対値オクルージョン情報は、ローカルオクルージョン情報とグローバルオクルージョン情報との差分値の絶対値を示す。
【0070】
さらに、特徴量算出部41は、絶対値視差マップを生成する。絶対値視差マップは、左側画素毎に水平視差差分の絶対値を示す。ここで、水平視差差分は、グローバル視差マップの水平視差d1からローカル視差マップの水平視差d1を減算した値である。
【0071】
さらに、特徴量算出部41は、画像取得部10から与えられた入力画像VL、VRと、ローカル視差マップと、に基づいて、ローカルSAD(Sum Of Absolute Difference)マップを生成する。ローカルSADマップは、左側画素毎にローカルSADを示す。ローカルSADは、対応画素の輝度から左側画素の輝度を減算した値である。対応画素は、左側画素のx座標にローカル視差マップが示す水平視差d1を加算したx座標と、左側画素のy座標にローカル視差マップが示す垂直視差d2を加算したy座標とを有する右側画素である。
【0072】
同様に、特徴量算出部41は、画像取得部10から与えられた入力画像VL、VRと、グローバル視差マップと、に基づいて、グローバルSAD(Sum Of Absolute Difference)マップを生成する。グローバルSADマップは、左側画素毎にグローバルSADを示す。グローバルSADは、対応画素の輝度から左側画素の輝度を減算した値である。対応画素は、左側画素のx座標にグローバル視差マップが示す水平視差d1を加算したx座標と、左側画素のy座標にグローバル視差マップが示す垂直視差d2を加算したy座標とを有する右側画素である。
【0073】
そして、特徴量算出部41は、ローカルSADマップとグローバルSADマップとに基づいて、絶対値SADマップを生成する。絶対値SADマップは、左側画素毎に絶対値SADを示す。絶対値SADは、ローカルSADからグローバルSADを減算した値の絶対値を示す。
【0074】
また、特徴量算出部41は、グローバル視差マップが示す水平視差d1とローカル視差マップが示す水平視差d1との算術平均を左側画素毎に算出することで、平均視差マップを生成する。平均視差マップは、左側画素毎に上記の算術平均値を示す。
【0075】
また、特徴量算出部41は、グローバル視差マップが示す水平視差d1の分散値(上記の算術平均値に対する分散値)を左側画素毎に算出することで、分散視差マップを生成する。特徴量算出部41は、特徴量マップをニューラルネット処理部42に出力する。なお、特徴量算出部41は、特徴量マップを少なくとも2つ以上生成すればよい。
【0076】
[ニューラルネット処理部]
ニューラルネット処理部42は、特徴量マップをニューラルネットワークの入力値In0〜In(m−1)とすることで、出力値Out0〜Out2を取得するものである。ここで、mは2以上11以下の整数である。
【0077】
具体的には、ニューラルネット処理部42は、各特徴量マップを構成する左側画素のうち、いずれかの左側画素を評価対象画素とし、当該評価対象画素に対応する値を各特徴量マップから取得する。そして、ニューラルネット処理部42は、これらの値を入力値とする。
【0078】
出力値Out0は、統合視差マップが示す評価対象画素の水平視差d1及び垂直視差d2が次フレームでも参照可能か否かを示す。即ち、出力値Out0は、時間信頼度を示す。出力値Out0は、具体的には、「0」または「1」となる。「0」は、例えば、水平視差d1及び垂直視差d2が次フレームで参照不可であることを示し、「1」は、例えば、水平視差d1及び垂直視差d2が次フレームで参照可能であることを示す。
【0079】
出力値Out1は、グローバル視差マップが示す評価対象画素の水平視差d1及び垂直視差d2と、ローカル視差マップが示す評価対象画素の水平視差d1及び垂直視差d2と、のうちどちらの信頼度が高いかを示す。即ち、出力値Out1は、比較信頼度を示す。出力値Out1は、具体的には、「0」または「1」となる。「0」は、例えば、ローカル視差マップの方がグローバル視差マップよりも信頼度が高いことを示し、「1」は、例えば、グローバル視差マップの方がローカル視差マップよりも信頼度が高いことを示す。
【0080】
出力値Out2は、特に制限されず、例えば、各種アプリケーションに利用可能な情報となりうる。より詳細には、出力値Out2は、評価対象画素のオクルージョン情報となりうる。評価対象画素のオクルージョン情報は、任意の基準位置(例えば、被写体を撮影した撮影素子の位置)から、評価対象画素に描かれた被写体までの距離を示し、裸眼立体視表示装置による多視点画像生成に利用可能である。また、出力値Out2は、評価対象画素の動き情報となりうる。評価対象画素の動き情報は、評価対象画素に描かれた被写体の動きに関する情報(例えば、動きの大きさと方向とを示すベクトル情報)である。動き情報は、2D3D変換アプリケーションに利用可能である。また、出力値Out2は、評価対象画素の輝度切り替え情報となりうる。評価対象画素の輝度切り替え情報は、評価対象画素をどのような輝度で表示するかを示す情報であり、ハイダイナミックレンジアプリケーションで利用可能である。
【0081】
また、出力値Out2は、多視点画像生成時に利用可能な各種の信頼度情報となりうる。例えば、出力値Out2は、多視点画像生成時に評価対象画素の水平視差d1及び垂直視差d2が参照可能であるか否かを示す信頼度情報となりうる。裸眼立体視表示装置は、評価対象画素の水平視差d1及び垂直視差d2が参照できない場合、評価対象画素の水平視差d1及び垂直視差d2を、評価対象画素の周辺画素の水平視差d1及び垂直視差d2で補間する。また、出力値Out2は、多視点画像のリファインメント時に評価対象画素の輝度を足しこみ可能か否かを示す信頼度情報となりうる。裸眼立体視表示装置は、各画素の輝度のうち、足しこみ可能な輝度のみを足し込むことで、リファインメントを行なう。
【0082】
ニューラルネット処理部42は、評価対象画素を順次変更することで、新たな入力値In0〜In(m−1)を生成し、出力値Out0〜Out2を取得する。したがって、出力値Out0は、複数の左側画素の各々についての時間信頼度、即ち時間信頼度マップとして与えられる。出力値Out1は、複数の左側画素の各々についての比較信頼度、即ち比較信頼度マップとして与えられる。出力値Out2は、複数の左側画素の各々についての各種情報、即ち各種情報マップとして与えられる。ニューラルネット処理部42は、これらのマップを周辺化処理部43に出力する。図13に、比較信頼度マップの一例である比較信頼度マップEM1を示す。領域EM11は、グローバル視差マップの方がローカル視差マップよりも信頼度が高い領域を示し、領域EM12は、ローカル視差マップの方がグローバル視差マップよりも信頼度が高い領域を示す。
【0083】
上述したように、ローカルマッチングは、精度の良否が入力画像VL、VRの品質(色ズレや幾何ズレの程度等)に依存しないという長所があるものの、オクルージョンに弱い、安定性が悪い(精度がばらつきやすい)といった短所もある。一方、グローバルマッチングは、オクルージョンに強い、安定しているという長所があるものの、精度の良否が入力画像VL、VRの品質に依存しやすいという短所もある。しかし、第1の視差検出部20は、グローバルマッチングを行なう際に、垂直方向への検索も行ない、かつ、色ズレに応じた補正も行う。即ち、第1の視差検出部20は、第1の参照画素を決定する際に、基準画素と同じy座標を有する右側画素のみならず、基準画素に対してy方向にずれた位置に存在する画素も検索する。さらに、第1の視差検出部20は、DSADを算出する際に、色ズレに応じた補正値α1を使用する。このように、第1の視差検出部20は、精度の良否が入力画像VL、VRの品質に依存しにくいグローバルマッチングを行なうことができる。したがって、本実施形態では、グローバルマッチングの方がローカルマッチングよりも信頼度が高い場合が多いので、領域EM11は、領域EM12よりも広くなっている。
【0084】
ニューラルネット処理部42は、例えば図11に示すように、n個の層を有する。ここで、nは3以上の整数である。第0層が入力層であり、第1〜第(n−2)層が中間層であり、第(n−1)層が出力層である。各層は、複数のノード421を有する。即ち、入力層及び中間層は、入力値In0〜In(m−1)分のノード(第0〜第(m−1)ノード)を有する。出力層は3つのノード(第0〜第2ノード)を有する。出力層は、出力値Out0〜Out2を出力する。各ノード421は、当該ノード421に隣接する層の全てのノード421に連結されている。第k層(1≦k≦n−1)の第jノードからの出力値は、例えば以下の式(6)で表される。
【0085】
【数5】
【0086】
なお、ニューラルネット処理部42は、適切な出力値Out0〜Out2を取得するため、事前に学習を行っておく。この学習は、例えばバックプロパゲーションにより行われる。即ち、ニューラルネット処理部42は、以下の式(8)、(9)に基づいて、第(n−2)層と出力層との間の伝播係数を更新する。
【0087】
【数6】
【0088】
そして、ニューラルネット処理部42は、以下の式(10)〜(13)に基づいて、第(n−2)層より前の伝播係数を、出力層に近い側から更新していく。
【0089】
【数7】
【0090】
ここで、教師情報としては、テンプレートとして予め用意された教師用左目画像、教師用右目画像、左目基準視差マップ、及び右目基準視差マップを使用することができる。ここで、教師用左側画素は、入力画像VLに相当し、教師用右目画像は入力画像VRに想到する。左目基準視差マップは、教師用左目画像を構成する左側画素を基準画素として作成された視差マップであり、右目基準視差マップは、教師用右目画像を構成する右目画素を基準として作成された視差マップである。即ち、これらのテンプレートに基づいて、入力値In0〜In(m−1)及び出力値Out0〜Out2の教師情報を算出する。さらに、これらのテンプレートを改変したもの(例えば、各画像にノイズを乗せたもの、一方の画像に色ズレ及び幾何ズレのうち少なくとも一方を起こさせたもの)に基づいて、入力値In0〜In(m−1)及び出力値Out0〜Out2の教師情報を算出する。教師情報の算出は、裸眼立体視表示装置内部で行ってもよいが、外部の装置に行わせてもよい。そして、これらの教師情報をニューラルネット処理部42に順次与えることで、ニューラルネット処理部42に学習を行わせる。ニューラルネット処理部42にこのような学習を行わせることで、色ズレ及び幾何ズレに強い出力値Out0〜Out2が得られる。
【0091】
なお、ユーザは、所望の出力値Out0〜Out2を得ることができるように、テンプレートを改変させることができる。即ち、教師情報と出力値Out0〜Out2との関係は2項分布に従うので、尤度関数Lは以下の式(14)で与えられる。
【0092】
【数8】
【0093】
教師情報の分布は、尤度関数Lに依存する。したがって、ユーザは、所望の出力値Out0〜Out2が得られるときの尤度が最大となるように、テンプレートを改変(重み付け)すればよい。教師情報を重み付けした時の尤度関数L’は、以下の式(15)で与えられる。
【0094】
【数9】
【0095】
なお、ニューラルネット処理部42の一部は、ハードウェアにて実現されても良い。例えば、入力層から第1層までの処理を固定化し、その部分をハードウェアにて実現してもよい。また、特徴量算出部41及びニューラルネット処理部42は、以下の方法により出力値Out1、即ち比較信頼度マップを生成してもよい。なお、この処理では、ニューラルネット処理部42は、ニューラルネットワークによる処理を行わない。即ち、特徴量算出部41は、現フレームのグローバル視差マップと、前フレームのグローバル視差マップとの差分を示す第1の差分マップを生成する。第1の差分マップは、現フレームのグローバル視差マップの水平視差d1から前フレームのグローバル視差マップの水平視差d1を減算した値を、左側画素毎に示すものである。次いで、ニューラルネット処理部42は、第1の差分マップを2値化することで、第1の2値化差分マップを生成する。そして、ニューラルネット処理部42は、第1の2値化差分マップの各値に所定の重み(例えば8)を乗じることで、第1の差分スコアマップを生成する。
【0096】
さらに、特徴量算出部41は、現フレームのグローバル視差マップと、現フレームの入力画像VLとのエッジ画像を生成し、これらの相関を示す相関マップを生成する。グローバル視差マップのエッジ画像は、グローバル視差マップのエッジ部分(グローバル視差マップに描かれた各画像の輪郭部分)を示す。同様に、入力画像VLのエッジ画像は、入力画像VLのエッジ部分(入力画像VLに描かれた各画像の輪郭部分)を示す。エッジ画像同士の相関を算出する手法としては、例えば、NCC等のような相関関係を算出する手法が任意に用いられる。そして、ニューラルネット処理部42は、相関マップを2値化することで、2値化相関マップを生成する。そして、ニューラルネット処理部42は、2値化相関マップの各値に所定の重み(例えば26)を乗じることで、相関スコアマップを生成する。
【0097】
そして、ニューラルネット処理部42は、第1の差分スコアマップと相関スコアマップとを統合し、IIRフィルタを掛けることで、グローバルマッチング用信頼度マップを生成する。グローバルマッチング用信頼度マップの各左側画素の値は、第1の差分スコアマップと相関スコアマップとの値のうち、大きい方の値を示す。
【0098】
一方、特徴量算出部41は、現フレームのローカル視差マップと、前フレームのローカル視差マップとの差分を示す第2の差分マップを生成する。第2の差分マップは、現フレームのローカル視差マップの水平視差d1から前フレームのローカル視差マップの水平視差d1を減算した値を、左側画素毎に示すものである。次いで、ニューラルネット処理部42は、第2の差分マップを2値化することで、第2の2値化差分マップを生成する。そして、ニューラルネット処理部42は、第2の2値化差分マップの各値に所定の重み(例えば16)を乗じることで、第2の差分スコアマップを生成する。
【0099】
さらに、特徴量算出部41は、現フレームの入力画像VLのエッジ画像を生成する。このエッジ画像は、入力画像VLのエッジ部分(入力画像VLに描かれた各画像の輪郭部分)を示す。ニューラルネット処理部42は、このエッジ画像を2値化することで、2値化エッジマップを生成する。そして、ニューラルネット処理部42は、2値化エッジマップの各値に所定の重み(例えば8)を乗じることで、エッジスコアマップを生成する。
【0100】
そして、ニューラルネット処理部42は、第2の差分スコアマップとエッジスコアマップとを統合し、IIRフィルタを掛けることで、ローカルマッチング用信頼度マップを生成する。ローカルマッチング用信頼度マップの各左側画素の値は、第2の差分スコアマップとエッジスコアマップとの値のうち、大きい方の値を示す。
【0101】
このように、ニューラルネット処理部42は、グローバル視差マップを異なる評価手法により評価し、それらの結果を統合することで、グローバルマッチング用信頼度マップを生成する。同様に、ニューラルネット処理部42は、ローカル視差マップを異なる評価手法により評価し、それらの結果を統合することで、ローカルマッチング用信頼度マップを生成する。ここで、グローバル視差マップの評価手法とローカル視差マップの評価手法とは互いに異なっている。また、評価手法により異なる重み付けが行われている。
【0102】
そして、ニューラルネット処理部42は、グローバルマッチング用信頼度マップと、ローカルマッチング用信頼度マップとを対比することで、左側画素毎に、グローバル視差マップとローカル視差マップとのどちらの信頼度が高いかを判定する。ニューラルネット処理部42は、判定の結果に基づいて、信頼度の高い視差マップを左側画素毎に示す比較信頼度マップを生成する。
【0103】
周辺化処理部43は、ニューラルネット処理部42から与えられた各マップに周辺化(平滑化)処理を施す。具体的には、周辺化処理部43は、マップを構成するいずれかの画素を積算基準画素とし、積算基準画素及びその周辺画素の値(例えば、比較信頼度、時間信頼度等)を積算する。周辺化処理部43は、積算値を0〜1の範囲に正規化し、積算基準画素に隣接する画素に伝播させる。ここで、周辺化処理の例を図12に基づいて説明する。例えば、周辺化処理部43は、画素PM1を積算基準画素とし、積算基準画素PM1及びその周辺の画素PM2〜PM4の値を積算する。そして、周辺化処理部43は、積算値を0〜1の範囲に正規化する。周辺化処理部43は、積算基準画素PM1の値が「0」または「1」となる場合、積算値を上述した式(7)に代入することで、正規化を行なう。一方、周辺化処理部43は、積算基準画素PM1の値が0〜1の範囲内の実数となる場合、積算値をシグモイド関数に代入することで、正規化を行なう。
【0104】
そして、周辺化処理部43は、正規化された積算値を積算基準画素PM1の右側に隣接する画素PM5に伝播させる。具体的には、周辺化処理部43は、積算値と画素PM5の値との算術平均値を算出し、算術平均値を画素PM5の値とする。周辺化処理部43は、積算値をそのまま画素PM5の値としてもよい。なお、周辺化処理部43は、このような周辺化処理を行う場合、積算基準画素の初期値(スタート地点)を、マップの左端を構成する画素(x=0となる画素)とする。この例では、伝播方向を右方向としたが、他の方向(左方向、上方向、下方向)であってもよい。
【0105】
周辺化処理部43は、マップの全範囲に対して周辺化処理を行ってもよいが、一部の範囲に対して周辺化処理を行ってもよい。なお、マップの周辺化処理はローパスフィルタによって行なうこともできるが、周辺化処理部43が上記のような処理を行うことで、以下の効果が得られる。即ち、ローパスフィルタは、周辺化処理の対象となるマップのうち、画素の値が所定値以上となる部分にしか周辺化処理を行なうことができない。これに対し、周辺化処理部43は、マップの全範囲または所望の範囲に対して周辺化処理を行なうことができる。また、ローパスフィルタによる周辺化処理は、単に各画素の中間値を出力するだけなので、周辺化処理によってかえってマップに不具合が生じる可能性がある。例えば、マップの特徴部分(例えば、マップのエッジ部分や被写体が描かれている部分)が不自然に周辺化される可能性がある。これに対し、周辺化処理部43は、複数の画素の値を積算し、これにより得られた積算値を用いて周辺化を行うので、マップの特徴部分を生かした周辺化を行なうことができる。
【0106】
周辺化処理部43は、周辺化処理を施した比較信頼度マップを図5に示すマップ生成部50に出力する。さらに、周辺化処理部43は、周辺化処理を施した時間信頼度マップを第1の視差検出部20及び第2の視差検出部30に出力する。第1の視差検出部20及び第2の視差検出部30に出力された時間信頼度マップは、次フレームで使用される。また、周辺化処理部43は、周辺化処理を施した各種情報マップを、当該各種情報マップを必要とするアプリケーションに提供する。
【0107】
[マップ生成部の構成]
マップ生成部50は、グローバル視差マップ、ローカル視差マップ、及び比較信頼度マップに基づいて、統合視差マップを生成する。統合視差マップの各左側画素の水平視差d1及び垂直視差d2は、グローバル視差マップ及びローカル視差マップが示す値のうち、信頼度が高い方の値を示す。マップ生成部50は、統合視差マップを裸眼立体視表示装置内の多視点画像生成アプリケーションに提供する。また、マップ生成部50は、統合視差マップを第1の視差検出部20に出力する。第1の視差検出部20に出力された統合視差マップは、次フレームで使用される。
【0108】
さらに、マップ生成部50は、入力画像VL、VR及び統合視差マップに基づいて、補正値α1を算出する。即ち、マップ生成部50は、統合視差マップに基づいて、左側画素に対応する対応画素を入力画像VRから検索する。対応画素のx座標は、左側画素のx座標に水平視差d1を加えた値であり、対応画素のy座標は、左側画素のy座標に垂直視差d2を加えた値である。マップ生成部50は、全ての左側画素について、対応画素を検索する。
【0109】
マップ生成部50は、左側画素と対応画素との輝度差△Lx(差分値)を算出し、輝度差△Lxの算術平均値E(x)と、輝度差△Lxのべき乗の算術平均値E(x2)とを算出する。そして、マップ生成部50は、算出された算術平均値E(x)、E(x2)と、例えば図14に示すクラス分けテーブルとに基づいて、入力画像VL、VRのクラスを決定する。ここで、クラス分けテーブルは、算術平均値E(x)と、E(x2)と、入力画像VL、VRのクラスとを関連付けて示すものである。入力画像VL、VRのクラスは、クラス0〜クラス4に区分され、各クラスは、入力画像VL、VRの明瞭度を示す。クラスの値が小さいほど、入力画像VL、VRは明瞭となる。例えば、図15に示す画像V1は、クラス0に分類される。画像V1は、スタジオで撮影されたものであり、被写体が比較的明瞭に描かれている。一方、図16に示す画像V2は、クラス4に分類される。画像V2は、屋外で撮影されたものであり、一部の被写体(特に背景部分)が比較的不明瞭に描かれている。
【0110】
マップ生成部50は、図17に示す補正値対応テーブルと、入力画像VL、VRのクラスとに基づいて、補正値α1を決定する。ここで、補正値対応テーブルは、入力画像VL、VRのクラスと補正値α1との対応関係を示すテーブルである。マップ生成部50は、決定された補正値α1に関する補正値情報を第1の視差検出部20に出力する。補正値α1は、次フレームで使用される。
【0111】
<3.画像処理装置による処理>
次に、画像処理装置1による処理の手順を、図18に示すフローチャートに沿って説明する。
【0112】
ステップS10において、画像取得部10は、入力画像VL、VRを取得し、画像処理装置1内の各構成要素に出力する。ステップS20において、DSAD算出部22は、マップ生成部50から、補正値α1に関する補正値情報を取得する。なお、DSAD算出部22は、補正値情報を取得できない場合(例えば、最初のフレーム(第0フレーム)に対する処理を行う場合)には、補正値α1を0に設定する。
【0113】
DSAD算出部22は、バックトラック部27から前フレームのグローバル視差マップを取得する。そして、DSAD算出部22は、いずれかの左側画素を基準画素とし、基準画素の前フレームの水平視差d1及び垂直視差d2を前フレームのグローバル視差マップから検索する。そして、DSAD算出部22は、基準画素に対して当該垂直視差d2を有するいずれかの右側画素を第1の参照画素とする。なお、DSAD算出部22は、前フレームのグローバル視差マップを取得できない場合(例えば、第0フレームに対する処理を行う場合)、基準画素と同じy座標を有する右側画素を第1の参照画素とする。
【0114】
そして、DSAD算出部22は、第1の参照画素に対してy方向の所定範囲内に存在する右側画素を第2の参照画素とする。DSAD算出部22は、基準画素と、第1の参照画素及び第2の参照画素を含む参照画素群と、補正値α1とに基づいて、上述した式(1)で示されるDSAD(△x、j)を算出する。
【0115】
DSAD算出部22は、全ての水平視差候補△xについてDSAD(△x,j)を算出する。そして、DSAD算出部22は、基準画素を変更し、上記の処理を繰り返す。これにより、DSAD算出部22は、全ての基準画素についてDSAD(△x,j)を算出する。そして、DSAD算出部22は、DSAD(△x、j)と基準画素とが関連付けられたDSAD情報を生成し、最小値選択部23に出力する。
【0116】
ステップS30において、最小値選択部23は、DSAD情報に基づいて、以下の処理を行なう。即ち、最小値選択部23は、水平視差候補△x毎に、最小のDSAD(△x,j)を選択する。最小値選択部23は、選択されたDSAD(△x,j)を図9に示す視差検出用DPマップの各ノードP(x、△x)に格納する。
【0117】
さらに、最小値選択部23は、最小のDSAD(△x,j)に対応する参照画素を候補画素として特定する。そして、最小値選択部23は、候補画素のy座標から基準画素のy座標を減算した値を垂直視差候補△yとする。そして、最小値選択部23は、水平視差候補△xと垂直視差候補△yとを関連付けて、垂直視差候補格納テーブルに格納する。最小値選択部23は、全ての基準画素について、上記の処理を行う。
【0118】
ステップS40において、アンカーベクトル構築部24は、評価部40から前フレームの時間信頼度マップを取得し、マップ生成部50から前フレームの統合視差マップを取得する。アンカーベクトル構築部24は、前フレームの時間信頼度マップに基づいて、視差安定左側画素を特定する。そして、アンカーベクトル構築部24は、前フレームの統合視差マップに基づいて、視差安定左側画素の前フレームの水平視差d1、即ち安定水平視差d1’を特定する。そして、アンカーベクトル構築部24は、視差安定左側画素毎に、例えば上記の式(2)で示されるアンカーベクトルを生成する。なお、アンカーベクトル構築部24は、前フレームの時間信頼度マップ及び統合視差マップを取得することができない場合、行列Mdの成分を全て0とする。アンカーベクトル構築部24は、アンカーベクトルと視差安定左側画素とが関連付けられたアンカーベクトル情報を生成し、コスト算出部25に出力する。次いで、コスト算出部25は、アンカーベクトル情報に基づいて、視差検出用DPマップの各ノードP(x、d)の値を更新する。
【0119】
ステップS50において、左目用画像水平差分算出部261は、画像取得部10から入力画像VLを取得する。左目画像水平差分算出部261は、入力画像VLを構成する左側画素毎に、輝度水平差分dwLを算出し、輝度水平差分dwLに関する輝度水平差分情報を生成する。そして、左目用画像水平差分算出部261は、輝度水平差分情報を重み算出部263に出力する。
【0120】
一方、右目用画像水平差分算出部262は、画像取得部10から入力画像VRを取得し、入力画像VRに対して上述した左目用画像水平差分算出部261と同様の処理を行なう。そして、右目用画像水平差分算出部262は、この処理により生成された輝度水平差分情報を重み算出部263に出力する。
【0121】
次いで、重み算出部263は、輝度水平差分情報に基づいて、左側画素の重みwtL、右側画素のwtRをすべての左側画素及び右側画素について算出する。
【0122】
次いで、経路算出部264は、重み算出部263から与えられた重み情報に基づいて、視差検出用DPマップの始点から各ノードP(x、△x)に至るまでの累積コストを計算する。
【0123】
そして、経路算出部264は、算出された累積コストDFI(x、△x)0〜DFI(x、△x)2のうち、最小のものを選択し、選択されたものをノードP(x、△x)の累積コストDFI(x、△x)とする。経路算出部264は、すべてのノードP(x、△x)について累積コストDFI(x、△x)を算出し、視差検出用DPマップに格納する。
【0124】
次いで、バックトラック部27は、累積コストが最小となる経路を終点から始点に向かって逆にたどることで、最短経路、即ち始点から終点までの累積コストが最小となる経路を算出する。この最短経路上のノードは、当該ノードに対応する左側画素の水平視差d1となる。したがって、バックトラック部27は、最短経路を算出することで、各左側画素の水平視差d1を検出する。
【0125】
ステップS60において、バックトラック部27は、いずれかの左側画素に対応する垂直視差候補格納テーブルを垂直視差候補記憶部21から取得する。バックトラック部27は、取得した垂直視差候補格納テーブルに基づいて、左側画素の水平視差d1に対応する垂直視差候補△yを特定し、特定された垂直視差候補△yを左側画素の垂直視差d2とする。これにより、バックトラック部27は、垂直視差d2を検出する。そして、バックトラック部27は、全ての左側画素について垂直視差d2を検出し、検出された水平視差d1及び垂直視差d2に基づいて、グローバル視差マップを生成する。バックトラック部27は、生成されたグローバル視差マップをDSAD算出部22、評価部40、及びマップ生成部50に出力する。
【0126】
一方、第2の視差検出部30は、画像取得部10から入力画像VL、VRを取得する。さらに、第2の視差検出部30は、評価部40から前フレームの時間信頼度マップを取得し、マップ生成部50から前フレームの統合視差マップを取得する。
【0127】
次いで、第2の視差検出部30は、前フレームの時間信頼度マップに基づいて、視差安定左側画素を特定する。そして、第2の視差検出部30は、前フレームの統合視差マップに基づいて、視差安定左側画素の前フレームの水平視差d1及び垂直視差d2、即ち安定水平視差d1’及び安定垂直視差d2’を特定する。そして、アンカーベクトル構築部24は、視差安定左側画素のxy座標にそれぞれ安定水平視差d1’及び安定垂直視差d2’を加算し、これにより得られたxy座標を有する右側画素を、視差安定右側画素とする。
【0128】
さらに、第2の視差検出部30は、入力画像VL、VRをそれぞれ複数の画素ブロックに分割する。そして、第2の視差検出部30は、左側画素ブロック内の各左側画素に対応する対応画素を、左側画素ブロックに対応する右側画素ブロックから検出する。ここで、第2の視差検出部30は、視差安定左側画素に対応する対応画素を検出する際には、視差安定右側画素を優先的に対応画素として検出する。第2の視差検出部30は、対応画素のx座標から左側画素のx座標を減算した値を左側画素の水平視差d1とし、対応画素のy座標から左側画素のy座標を減算した値を右側画素の垂直視差d2とする。第2の視差検出部30は、検出結果に基づいて、ローカル視差マップを生成する。第2の視差検出部30は、生成されたローカル視差マップを評価部40に出力する。
【0129】
なお、第2の視差検出部30は、前フレームの時間信頼度マップ及び統合視差マップを取得することができない場合、視差安定左側画素を検出せずに、上記の処理を行なう。
【0130】
ステップS70において、特徴量算出部41は、第1の視差検出部20及び第2の視差検出部30から与えられた視差マップ等に基づいて、2以上の特徴量マップを生成し、ニューラルネット処理部42に出力する。
【0131】
次いで、ニューラルネット処理部42は、各特徴量マップを構成する左側画素のうち、いずれかの左側画素を評価対象画素とし、当該評価対象画素に対応する値を各特徴量マップから取得する。そして、ニューラルネット処理部42は、これらの値を入力値In0〜In(m−1)とすることで、出力値Out0〜Out2を取得する。
【0132】
ニューラルネット処理部42は、評価対象画素を順次変更することで、新たな入力値In0〜In(m−1)を生成し、出力値Out0〜Out2を取得する。これにより、ニューラルネット処理部42は、時間信頼度マップ、比較信頼度マップ、及び各種情報マップを生成する。ニューラルネット処理部42は、これらのマップを周辺化処理部43に出力する。
【0133】
次いで、周辺化処理部43は、ニューラルネット処理部42から与えられた各マップに周辺化(平滑化)処理を施す。周辺化処理部43は、周辺化処理を施した比較信頼度マップをマップ生成部50に出力する。さらに、周辺化処理部43は、周辺化処理を施した時間信頼度マップを第1の視差検出部20及び第2の視差検出部30に出力する。また、周辺化処理部43は、周辺化処理を施した各種情報マップを、当該各種情報マップを必要とするアプリケーションに提供する。
【0134】
ステップS80において、マップ生成部50は、グローバル視差マップ、ローカル視差マップ、及び比較信頼度マップに基づいて、統合視差マップを生成する。マップ生成部50は、統合視差マップを裸眼立体視表示装置内の多視点画像生成アプリケーションに提供する。また、マップ生成部50は、統合視差マップを第1の視差検出部20に出力する。
【0135】
さらに、マップ生成部50は、入力画像VL、VR及び統合視差マップに基づいて、補正値α1を算出する。即ち、マップ生成部50は、入力画像VL、VR及び統合視差マップに基づいて、輝度差△Lxの算術平均値E(x)と、輝度差△Lxのべき乗の算術平均値E(x2)とを算出する。そして、マップ生成部50は、算出された算術平均値E(x)、E(x2)と、図14に示すクラス分けテーブルとに基づいて、入力画像VL、VRのクラスを決定する。
【0136】
次いで、マップ生成部50は、図17に示す補正値対応テーブルと、入力画像VL、VRのクラスとに基づいて、補正値α1を決定する。マップ生成部50は、決定された補正値α1に関する補正値情報を第1の視差検出部20に出力する。その後、画像処理装置1は、処理を終了する。
【0137】
図19に、ローカル視差マップ、グローバル視差マップ、及び統合視差マップが時間の経過に応じて更新される様子を示す。図11(a)は、ローカル視差マップが更新される様子を示し、図11(b)は、グローバル視差マップが更新される様子を示し、図11(c)は、統合視差マップが更新される様子を示す。
【0138】
第0フレーム(#0)のローカル視差マップDML0には、ドットノイズが見受けられる。ローカルマッチングは、オクルージョンに弱い、安定性が悪い(精度がばらつきやすい)という短所があり、かつ、第0フレームでは、時間信頼度マップを参照することができないからである。
【0139】
同様に、第0フレームのグローバル視差マップDMG0には、若干のストリーキング(スジ状のノイズ)が見受けられる。ローカルマッチングは、精度の良否が入力画像VL、VRの品質に依存しやすく、かつ、y方向の探索範囲が後のフレームに比べて若干狭いからである。
【0140】
第0フレーム(#0)の統合視差マップDM0には、上記のドットノイズ及びストリーキングはほぼ見受けられない。上記の通り、統合視差マップDM0は、ローカル視差マップDML0及びグローバル視差マップDMG0のうち、信頼度が高い部分を統合したものだからである。
【0141】
第1フレーム(#1)のローカル視差マップDML1には、ドットノイズはほぼ見受けられない。上述したように、第2の視差検出部30は、第0フレームの時間信頼度マップ及び統合視差マップに基づいてローカル視差マップDML1を生成することができるからである。
【0142】
同様に、第1フレームのグローバル視差マップDMG1には、ストリーキングはほぼ見受けられない。例えば、領域A1でのストリーキングが特に減少している。この理由は、第1に、第1の視差検出部20は、DSADを算出する際に、第0フレームのグローバル視差マップDMG0に基づいて、y方向の探索範囲を実質的に拡大するからである。第2に、第1の視差検出部20は、前フレームの安定水平視差d1’を現フレームにおいても優先的に選択するからである。
【0143】
第1フレーム(#1)の統合視差マップDM1は、第0フレームの統合視差マップDM0よりもさらに精度が向上している。上記の通り、統合視差マップDM1は、ローカル視差マップDML1及びグローバル視差マップDMG1のうち、信頼度が高い部分を統合したものだからである。
【0144】
第2フレームでの各マップDML2、DMG2、DM2は、第1フレームの結果を反映したものになっているので、精度がさらに向上している。例えば、グローバル視差マップDMG2のうち、領域A2及びA3では、ストリーキングが特に減少している。
【0145】
<4.画像処理装置による効果>
次に、画像処理装置1による効果を説明する。さらに、画像処理装置1は、入力画像VRを構成する第1の参照画素、及び第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群から、対応画素の候補となる候補画素を検出する。そして、画像処理装置1は、基準画素の垂直位置から候補画素の垂直位置までの距離を示す垂直視差候補△yを垂直視差候補格納テーブルに格納する。
【0146】
このように、画像処理装置1は、対応画素の候補となる候補画素を垂直方向(y方向)に探索し、この結果である垂直視差候補△yを垂直視差候補格納テーブルに格納する。したがって、画像処理装置1は、基準画素と同じ垂直位置にある右側画素のみならず、基準画素と異なる垂直位置にある右側画素も探索することができるので、ロバスト性及び精度の高い水平視差の検出を行なうことができる。
【0147】
さらに、画像処理装置1は、第1の参照画素から垂直方向の所定範囲内に存在する画素を第2の画素として参照画素群に含めるので、y方向の探索範囲が過剰に広くなることを防止することができる。即ち、画像処理装置1は、最適化問題の爆発が起こることを防止することができる。
【0148】
さらに、画像処理装置1は、水平位置の異なる第1の参照画素毎に、参照画素群を生成し、垂直視差候補△yを、水平視差候補△xに関連付けて垂直視差候補格納テーブルに格納する。これにより、画像処理装置1は、より精度の高い垂直視差候補格納テーブルを生成することができる。
【0149】
このように、画像処理装置1は、入力画像VL、VRを対比する(即ち、マッチング処理を行なう)ことで、垂直視差候補格納テーブルに垂直視差候補△yを格納する。しかし、画像処理装置1は、垂直視差候補格納テーブルに垂直視差候補△yをひと通り格納した後は、最短経路の算出等を行なうことで、水平視差d1を検出する。即ち、画像処理装置1は、マッチング処理を1回だけ行なうことで、水平視差d1を検出するので、水平視差d1を迅速に検出することができる。
【0150】
そして、画像処理装置1は、垂直視差候補格納テーブルに格納された垂直視差候補△yのうち、水平視差d1に対応する垂直視差候補△yを基準画素の垂直視差d2として検出する。これにより、画像処理装置1は、垂直視差d2を精度よく検出することができる。即ち、画像処理装置1は、幾何ズレに強い視差検出を行うことができる。
【0151】
さらに、画像処理装置1は、現フレームの右側画素のうち、現フレームの基準画素に対して前フレームで検出された垂直視差d2を有する画素を、現フレームの第1の参照画素とする。これにより、画像処理装置1は、第1の参照画素を更新することができ、この第1の参照画素を基準として参照画素群を形成することができる。したがって、画像処理装置1は、候補画素を探索する範囲を実質的に拡大することができる。
【0152】
さらに、画像処理装置1は、入力画像VL、VRの輝度差△Lx、即ち色ズレに応じた補正値α1に基づいて、DSAD(△x、j)を算出し、DSAD(△x、j)に基づいて、候補画素を検出する。したがって、画像処理装置1は、色ズレに強い視差検出を行うことができる。
【0153】
さらに、画像処理装置1は、基準画素、第1の参照画素、及び第2の参照画素のみならず、これらの画素の周辺の画素の輝度に基づいて、DSAD(△x、j)を算出するので、DSAD(△x、j)を精度よく算出することができる。特に、画像処理装置1は、基準画素、第1の参照画素、及び第2の参照画素に対してy方向にずれた位置に存在する画素の輝度に基づいて、DSAD(△x、j)を算出するので、この点でも、幾何ズレに強い視差検出を行うことができる。
【0154】
さらに、画像処理装置1は、入力画像VL、VRの輝度差△Lx及び輝度差△Lxのべき乗に基づいて、補正値α1を算出するので、補正値α1を精度よく算出することができる。特に、画像処理装置1は、輝度差△Lx及び輝度差△Lxのべき乗を左側画素毎に算出し、これらの算術平均値をE(x)、E(x2)を算出する。そして、画像処理装置1は、算術平均値E(x)、E(x2)に基づいて、補正値α1を算出するので、補正値α1を精度よく算出することができる。
【0155】
特に、画像処理装置1は、クラス分けテーブルに基づいて、前フレームの入力画像VL、VRのクラスを判定し、前フレームの入力画像VL、VRのクラスに基づいて、補正値α1を算出する。このクラスは、入力画像VL、VRの明瞭度を示す。したがって、画像処理装置1は、補正値α1をより精度よく算出することができる。
【0156】
さらに、画像処理装置1は、各種の特徴量マップを算出し、特徴量マップの値をニューラルネット処理部42の入力値In0〜In(m−1)とする。そして、画像処理装置1は、グローバル視差マップ及びローカル視差マップのうち、信頼度が高い方を示す比較信頼度を出力値Out1として算出する。これにより、画像処理装置1は、より精度の高い視差検出を行うことができる。すなわち、画像処理装置1は、これらのマップのうち、信頼度の高い部分同士が組み合わされた統合視差マップを生成することができる。
【0157】
さらに、画像処理装置1は、ニューラルネットワークにより出力値Out0〜Out2を算出するので、出力値Out0〜Out2の精度が向上する。さらに、ニューラルネット処理部42のメンテナンス性が向上する(即ち、メンテナンスが容易となる)。さらに、ノード421同士は複雑に連結しているので、ノード421同士の組み合わせは膨大となる。したがって、画像処理装置1は、比較信頼度の精度を向上させることができる。
【0158】
さらに、画像処理装置1は、統合視差マップを次フレームで参照可能か否かを示す時間信頼度を出力値Out0として算出する。したがって、画像処理装置1は、次フレームの視差検出を、当該時間信頼度に基づいて行うことができる。これにより、画像処理装置1は、より精度の高い視差検出を行うことができる。具体的には、画像処理装置1は、時間信頼度を左側画素毎に示す時間信頼度マップを生成する。したがって、画像処理装置1は、統合視差マップが示す各左側画素の水平視差d1及び垂直視差d2のうち、時間信頼度の高い視差を次フレームでも優先的に選択することができる。
【0159】
また、画像処理装置1は、DSADを視差検出用DPマップのスコアとするので、単にSADのみをスコアとする場合よりも、視差検出用DPマップのスコアを精度良く算出することができ、ひいては、視差検出を精度良く行なうことができる。
【0160】
また、画像処理装置1は、各ノードP(x、d)の累積コストを算出する際に、水平差分に応じた重みwtL、wtRを考慮するので、累積コストを精度良く算出することができる。この重みwtL、wtRは、エッジ部では小さくなり、平坦部では大きくなるので、スムージングが画像に応じて適切に行われるようになる。
【0161】
また、画像処理装置1は、グローバル視差マップと入力画像VLとのエッジ画像の相関を示す相関マップを生成し、この相関マップに基づいてグローバル視差マップの信頼度を算出する。したがって、画像処理装置1は、グローバル視差マップのいわゆるストリーキング領域での信頼度を算出することができる。このため、画像処理装置1は、ストリーキング領域において、視差検出を精度良く行うことができる。
【0162】
また、画像処理装置1は、グローバル視差マップとローカル視差マップとを評価する際に、それぞれ異なる評価手法にてグローバル視差マップとローカル視差マップとを評価するので、これらの特性を考慮した評価を行うことができる。
【0163】
また、画像処理装置1は、それぞれの評価手法により得られたマップにIIRフィルタを掛けることで、グローバルマッチング用信頼度マップと、ローカルマッチング用信頼度マップとを生成するので、時間的に安定した信頼度マップを生成することができる。
【0164】
また、画像処理装置1は、グローバル視差マップとローカル視差マップとのうち、信頼度の高い方を用いて統合視差マップを生成する。したがって、画像処理装置1は、グローバルマッチングでは正確な視差が検出されにくい領域、及びローカルマッチングでは正確な視差が検出されにくい領域において、正確な視差を検出することができる。
【0165】
また、画像処理装置1は、生成された統合視差マップを次フレームで考慮するので、単に複数のマッチング手法を並行して行う場合よりも、視差検出を精度良く行なうことができる。
【0166】
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
【0167】
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得する画像取得部と、
前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させる視差検出部と、を備える、画像処理装置。
(2)
前記視差検出部は、前記第1の参照画素から垂直方向の所定範囲内に存在する画素を前記第2の画素として前記参照画素群に含める、前記(1)記載の画像処理装置。
(3)
前記視差検出部は、複数の前記水平視差候補から、前記基準画素の水平視差を検出し、前記垂直視差候補格納テーブルに格納された前記垂直視差候補のうち、前記水平視差に対応する垂直視差候補を前記基準画素の垂直視差として検出する、前記(1)または(2)記載の画像処理装置。
(4)
前記視差検出部は、現フレームの前記参照画像を構成する画素のうち、現フレームの前記基準画素に対して前フレームで検出された前記垂直視差を有する画素を、現フレームの前記第1の参照画素とする、前記(3)記載の画像処理装置。
(5)
前フレームの前記基準画素と前記対応画素との特徴量の差分値に応じた補正値を算出する補正値算出部を備え、
前記視差検出部は、前記基準画素を含む基準領域内の基準画素特徴量と、前記第1の参照画素を含む第1の参照領域内の第1の参照画素特徴量と、前記補正値とに基づいて、第1の評価値を算出し、前記基準画素特徴量と、前記第2の参照画素を含む第2の参照領域内の第2の参照画素特徴量と、前記補正値とに基づいて、第2の評価値を算出し、前記第1の評価値及び前記第2の評価値に基づいて、前記候補画素を検出する、前記(1)〜(4)のいずれか1項に記載の画像処理装置。
(6)
前記補正値算出部は、前記差分値と、前記差分値のべき乗とに基づいて、前記補正値を算出する、前記(5)記載の画像処理装置。
(7)
前記補正値算出部は、前記差分値の平均値と、前記差分値のべき乗の平均値と、前記基準画像及び前記参照画像のクラスとを関連付けて示すクラス分けテーブルに基づいて、前フレームの前記基準画像及び前記参照画像のクラスを判定し、前フレームの前記基準画像及び前記参照画像のクラスに基づいて、前記補正値を算出する、前記(6)記載の画像処理装置。
(8)
前記視差検出部である第1の視差検出部と異なる方法により、少なくとも前記基準画素の水平視差を検出する第2の視差検出部と、
前記基準画像及び前記参照画像に基づいて算出される演算特徴量をニューラルネットワークに入力することで、前記ニューラルネットワークの出力値として、前記第1の視差検出部による検出結果及び前記第2の視差検出部による検出結果のうち、信頼度の高い検出結果を示す比較信頼度を取得する評価部と、を備える、前記(1)〜(7)のいずれか1項に記載の画像処理装置。
(9)
前記評価部は、前記ニューラルネットワークの出力値として、前記信頼度の高い検出結果を次フレームで参照可能か否かを示す時間信頼度を取得する、前記(8)記載の画像処理装置。
(10)
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得することと、
前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させることと、を含む、画像処理方法。
(11)
コンピュータに、
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得する画像取得機能と、
前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させる視差検出機能と、を実現させる、プログラム。
【符号の説明】
【0168】
1 画像処理装置
10 画像取得部
20 第1の視差検出部
30 第2の視差検出部
40 評価部
50 マップ生成部
【特許請求の範囲】
【請求項1】
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得する画像取得部と、
前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させる視差検出部と、を備える、画像処理装置。
【請求項2】
前記視差検出部は、前記第1の参照画素から垂直方向の所定範囲内に存在する画素を前記第2の画素として前記参照画素群に含める、請求項1記載の画像処理装置。
【請求項3】
前記視差検出部は、複数の前記水平視差候補から、前記基準画素の水平視差を検出し、前記記憶部に記憶された前記垂直視差候補のうち、前記水平視差に対応する垂直視差候補を前記基準画素の垂直視差として検出する、請求項1記載の画像処理装置。
【請求項4】
前記視差検出部は、現フレームの前記参照画像を構成する画素のうち、現フレームの前記基準画素に対して前フレームで検出された前記垂直視差を有する画素を、現フレームの前記第1の参照画素とする、請求項3記載の画像処理装置。
【請求項5】
前フレームの前記基準画素と前記対応画素との特徴量の差分値に応じた補正値を算出する補正値算出部を備え、
前記視差検出部は、前記基準画素を含む基準領域内の基準画素特徴量と、前記第1の参照画素を含む第1の参照領域内の第1の参照画素特徴量と、前記補正値とに基づいて、第1の評価値を算出し、前記基準画素特徴量と、前記第2の参照画素を含む第2の参照領域内の第2の参照画素特徴量と、前記補正値とに基づいて、第2の評価値を算出し、前記第1の評価値及び前記第2の評価値に基づいて、前記候補画素を検出する、請求項1記載の画像処理装置。
【請求項6】
前記補正値算出部は、前記差分値と、前記差分値のべき乗とに基づいて、前記補正値を算出する、請求項5記載の画像処理装置。
【請求項7】
前記補正値算出部は、前記差分値の平均値と、前記差分値のべき乗の平均値と、前記基準画像及び前記参照画像のクラスとを関連付けて示すクラス分けテーブルに基づいて、前フレームの前記基準画像及び前記参照画像のクラスを判定し、前フレームの前記基準画像及び前記参照画像のクラスに基づいて、前記補正値を算出する、請求項6記載の画像処理装置。
【請求項8】
前記視差検出部である第1の視差検出部と異なる方法により、少なくとも前記基準画素の水平視差を検出する第2の視差検出部と、
前記基準画像及び前記参照画像に基づいて算出される演算特徴量をニューラルネットワークに入力することで、前記ニューラルネットワークの出力値として、前記第1の視差検出部による検出結果及び前記第2の視差検出部による検出結果のうち、信頼度の高い検出結果を示す比較信頼度を取得する評価部と、を備える、請求項1記載の画像処理装置。
【請求項9】
前記評価部は、前記ニューラルネットワークの出力値として、前記信頼度の高い検出結果を次フレームで参照可能か否かを示す時間信頼度を取得する、請求項8記載の画像処理装置。
【請求項10】
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得することと、
前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させることと、を含む、画像処理方法。
【請求項11】
コンピュータに、
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得する画像取得機能と、
前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させる視差検出機能と、を実現させる、プログラム。
【請求項1】
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得する画像取得部と、
前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させる視差検出部と、を備える、画像処理装置。
【請求項2】
前記視差検出部は、前記第1の参照画素から垂直方向の所定範囲内に存在する画素を前記第2の画素として前記参照画素群に含める、請求項1記載の画像処理装置。
【請求項3】
前記視差検出部は、複数の前記水平視差候補から、前記基準画素の水平視差を検出し、前記記憶部に記憶された前記垂直視差候補のうち、前記水平視差に対応する垂直視差候補を前記基準画素の垂直視差として検出する、請求項1記載の画像処理装置。
【請求項4】
前記視差検出部は、現フレームの前記参照画像を構成する画素のうち、現フレームの前記基準画素に対して前フレームで検出された前記垂直視差を有する画素を、現フレームの前記第1の参照画素とする、請求項3記載の画像処理装置。
【請求項5】
前フレームの前記基準画素と前記対応画素との特徴量の差分値に応じた補正値を算出する補正値算出部を備え、
前記視差検出部は、前記基準画素を含む基準領域内の基準画素特徴量と、前記第1の参照画素を含む第1の参照領域内の第1の参照画素特徴量と、前記補正値とに基づいて、第1の評価値を算出し、前記基準画素特徴量と、前記第2の参照画素を含む第2の参照領域内の第2の参照画素特徴量と、前記補正値とに基づいて、第2の評価値を算出し、前記第1の評価値及び前記第2の評価値に基づいて、前記候補画素を検出する、請求項1記載の画像処理装置。
【請求項6】
前記補正値算出部は、前記差分値と、前記差分値のべき乗とに基づいて、前記補正値を算出する、請求項5記載の画像処理装置。
【請求項7】
前記補正値算出部は、前記差分値の平均値と、前記差分値のべき乗の平均値と、前記基準画像及び前記参照画像のクラスとを関連付けて示すクラス分けテーブルに基づいて、前フレームの前記基準画像及び前記参照画像のクラスを判定し、前フレームの前記基準画像及び前記参照画像のクラスに基づいて、前記補正値を算出する、請求項6記載の画像処理装置。
【請求項8】
前記視差検出部である第1の視差検出部と異なる方法により、少なくとも前記基準画素の水平視差を検出する第2の視差検出部と、
前記基準画像及び前記参照画像に基づいて算出される演算特徴量をニューラルネットワークに入力することで、前記ニューラルネットワークの出力値として、前記第1の視差検出部による検出結果及び前記第2の視差検出部による検出結果のうち、信頼度の高い検出結果を示す比較信頼度を取得する評価部と、を備える、請求項1記載の画像処理装置。
【請求項9】
前記評価部は、前記ニューラルネットワークの出力値として、前記信頼度の高い検出結果を次フレームで参照可能か否かを示す時間信頼度を取得する、請求項8記載の画像処理装置。
【請求項10】
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得することと、
前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させることと、を含む、画像処理方法。
【請求項11】
コンピュータに、
同じ被写体が互いに異なる水平位置に描かれた基準画像及び参照画像を取得する画像取得機能と、
前記基準画像を構成する基準画素と、前記参照画像を構成する第1の参照画素、及び前記第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群とに基づいて、前記参照画素群から、前記基準画素に対応する対応画素の候補である候補画素を検出し、前記基準画素の水平位置から前記候補画素の水平位置までの距離を示す水平視差候補と、前記基準画素の垂直位置から前記候補画素の垂直位置までの距離を示す垂直視差候補とを関連付けて記憶部に記憶させる視差検出機能と、を実現させる、プログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【公開番号】特開2013−73598(P2013−73598A)
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願番号】特願2011−214673(P2011−214673)
【出願日】平成23年9月29日(2011.9.29)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
【公開日】平成25年4月22日(2013.4.22)
【国際特許分類】
【出願日】平成23年9月29日(2011.9.29)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】
[ Back to top ]