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

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

Info

Publication number
JP2014078095A
JP2014078095A JP2012224871A JP2012224871A JP2014078095A JP 2014078095 A JP2014078095 A JP 2014078095A JP 2012224871 A JP2012224871 A JP 2012224871A JP 2012224871 A JP2012224871 A JP 2012224871A JP 2014078095 A JP2014078095 A JP 2014078095A
Authority
JP
Japan
Prior art keywords
pixel
parallax
vector
map
occlusion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2012224871A
Other languages
English (en)
Inventor
Yasuhiro Shudo
泰広 周藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2012224871A priority Critical patent/JP2014078095A/ja
Priority to US14/032,566 priority patent/US9509971B2/en
Priority to CN201310462908.XA priority patent/CN103731651A/zh
Publication of JP2014078095A publication Critical patent/JP2014078095A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/128Adjusting depth or disparity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/10Processing, recording or transmission of stereoscopic or multi-view image signals
    • H04N13/106Processing image signals
    • H04N13/111Transformation of image signals corresponding to virtual viewpoints, e.g. spatial image interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/30Image reproducers
    • H04N13/302Image reproducers for viewing without the aid of special glasses, i.e. using autostereoscopic displays
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0092Image segmentation from stereoscopic image signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Testing, Inspecting, Measuring Of Stereoscopic Televisions And Televisions (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

【課題】オクルージョン領域の視差ベクトルをより簡易に安定させることができる技術が求められていた。
【解決手段】本開示によれば、右目用視差マップ及び左目用視差マップのうち、一方の視差マップ中のオクルージョン画素に近似する近似画素を、他方の視差マップに基づいて探索し、近似画素の視差ベクトルに基づいて、オクルージョン画素の補正視差ベクトルを算出する補正部を備える、画像処理装置が提供される。
【選択図】図1

Description

本開示は、画像処理装置、画像処理方法、及びプログラムに関する。
特許文献1、2は、カラーセグメンテーションを用いて右目用画像及び左目用画像を複数のセグメントに分割し、セグメントごとに視差(深さ)を設定する技術を開示する。これらの技術によれば、セグメント内にオクルージョン領域が存在する場合であっても、セグメント内の他の画素の視差を用いて、オクルージョン領域の視差を補間することができる。
特開2009−123219号公報 特開2006−12166号公報
しかし、これらの技術の性能は、カラーセグメンテーションの性能に大きく依存しており、かつ、カラーセグメンテーションは非常に重い処理であった。このため、オクルージョン領域の視差(視差ベクトル)をより簡易に安定させることができる技術が求められていた。
本開示によれば、右目用視差マップ及び左目用視差マップのうち、一方の視差マップ中のオクルージョン画素に近似する近似画素を、他方の視差マップに基づいて探索し、近似画素の視差ベクトルに基づいて、オクルージョン画素の補正視差ベクトルを算出する補正部を備える、画像処理装置が提供される。
本開示によれば、右目用視差マップ及び左目用視差マップのうち、一方の視差マップ中のオクルージョン画素に近似する近似画素を、他方の視差マップに基づいて探索し、近似画素の視差ベクトルに基づいて、オクルージョン画素の補正視差ベクトルを算出することを含む、画像処理方法が提供される。
本開示によれば、コンピュータに、右目用視差マップ及び左目用視差マップのうち、一方の視差マップ中のオクルージョン画素に近似する近似画素を、他方の視差マップに基づいて探索し、近似画素の視差ベクトルに基づいて、オクルージョン画素の補正視差ベクトルを算出する補正機能を実現させる、プログラムが提供される。
本開示によれば、オクルージョン画素に近似する近似画素を、他方の視差マップに基づいて探索し、近似画素の視差ベクトルに基づいて、オクルージョン画素の補正視差ベクトルを算出する。
以上説明したように本開示によれば、オクルージョン領域の視差ベクトルをより簡易に安定させることができる。
裸眼立体視表示装置による処理の概要を示すフローチャートである。 入力画像同士の色ズレを示す説明図である。 入力画像同士の幾何ズレを示す説明図である。 視差マップ(ディスパリティマップ)及び多視点画像が生成される様子を示す説明図である。 本開示の実施形態に係る画像処理装置の構成を示すブロック図である。 第1の視差検出部の構成を示すブロック図である。 垂直視差候補格納テーブルの一例を示す説明図である。 経路構築部の構成を示す説明図である。 視差マッチングを行なう際に使用されるDPマップである。 評価部の構成を示すブロック図である。 ニューラルネット処理部の構成を示すブロック図である。 周辺化処理部による処理を説明するための説明図である。 比較信頼度マップの一例を示す説明図である。 クラス分けテーブルの一例を示す説明図である。 クラス0に分類される画像の一例を示す説明図である。 クラス4に分類される画像の一例を示す説明図である。 補正値対応テーブルの一例を示す説明図である。 視差検出の手順を示すフローチャートである。 各ディスパリティマップの精度が時間の経過に応じて向上する様子を示す説明図である。 補正部の構成を示すブロック図である。 補正部による処理の手順を示すフローチャートである。 オクルージョン領域及び引き込みベクトル等の具体例を示す説明図である。 オクルージョン領域の補正を行う前の信頼度マップの一例を示す説明図である。 オクルージョン領域の補正を行った後の信頼度マップの一例を示す説明図である。
以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は以下の順序で行うものとする。
1.裸眼立体視表示装置が行なう処理の概要
2.画像処理装置の構成
3.画像処理装置による処理
4.画像処理装置による効果
5.各種変形例
<1.裸眼立体視表示装置が行なう処理の概要>
本願の発明者は、立体視専用の眼鏡がなくても、画像の立体視表示が可能な裸眼立体視表示装置について鋭意研究を重ね、その過程において、本実施の形態に係る画像処理装置に想到するに至った。ここで、立体視表示とは、視認者に両眼視差を生じさせることで、画像を立体的に表示することを意味する。
そこで、まず、画像処理装置を含む裸眼立体視表示装置が行なう処理の概要について、図1に示すフローチャートに沿って説明する。
ステップS1において、裸眼立体視表示装置は、入力画像V、Vを取得する。図2、図3に入力画像V、Vの一例を示す。なお、本実施の形態では、入力画像V、Vの左上端の画素を原点とし、水平方向をx軸、垂直方向をy軸とする。右方向がx軸の正方向であり、下方向がy軸の正方向である。各画素は、座標情報(x、y)と、色情報(輝度(明度)、彩度、色相)とを有している。以下、入力画像V上の画素を「左側画素」とも称し、入力画像V上の画素を「右側画素」とも称する。また、以下の説明では、入力画像Vを基準画像とし、入力画像Vを参照画像とする例について主に説明するが、入力画像Vを参照画像とし、入力画像Vを基準画像としても良いのは勿論である。
図2、図3に示すように、入力画像V、Vには同じ被写体(例えば海、魚、ペンギン)が互いに異なる水平位置(x座標)に描かれている。
ただし、入力画像V、Vは、図2に示すように、互いに色ズレが起こっている場合がある。すなわち、同じ被写体が入力画像Vと入力画像Vとで異なる色で描かれている。例えば、被写体画像V1と被写体画像V1とはいずれも同じ海を示すが、色が互いに異なっている。
一方、入力画像V、Vは、図3に示すように、互いに幾何ズレが起こっている場合がある。すなわち、同じ被写体が異なる高さ位置(y座標)に描かれている。例えば、被写体画像V2と被写体画像V2とはいずれも同じペンギンを示すが、被写体画像V2のy座標と被写体画像V2のy座標とは互いに異なっている。図3には、幾何ズレの理解を容易にするために、直線L1が描かれている。そこで、裸眼立体視表示装置は、これらのズレに対応した視差検出を行なう。すなわち、裸眼立体視表示装置は、色ズレや幾何ズレに対するキャリブレーションを行わなくても、正確な視差検出を行なうことができる。
ステップS2において、裸眼立体視表示装置は、入力画像V、Vに基づいて、視差検出を行なう。視差検出の様子を図4に示す。
図4に示すように、裸眼立体視表示装置は、エピポーラ線EP1またはエピポーラ線EP1から垂直方向(y方向)にずれた位置に存在する各右側画素から、左側画素P1に対応する対応画素の候補となる候補画素を複数抽出する。なお、エピポーラ線EP1は、入力画像V上に描かれ、左側画素P1と同じy座標を有し、水平方向に伸びる直線である。また、裸眼立体視表示装置は、入力画像V、Vの色ズレに応じた補正値を設定し、この補正値に基づいて、候補画素を抽出する。対応画素は、左側画素P1と同じ被写体を示す画素である。
そして、裸眼立体視表示装置は、これらの候補画素から対応画素となる右側画素P1を抽出する。裸眼立体視表示装置は、右側画素P1のx座標から左側画素P1のx座標を減算した値を水平視差d1とし、右側画素P1のy座標から左側画素P1のy座標を減算した値を垂直視差d2とする。
このように、裸眼立体視表示装置は、入力画像Vを構成する各右側画素のうち、左側画素と同じy座標(垂直位置)を有する画素のみならず、左側画素と異なるy座標を有する画素も探索する。したがって、裸眼立体視表示装置は、色ズレ及び幾何ズレに対応した視差検出を行なうことができる。
裸眼立体視表示装置は、入力画像V上のすべての画素について水平視差d1及び垂直視差d2を検出することで、グローバル視差マップ(グローバルディスパリティマップ)を生成する。さらに、裸眼立体視表示装置は、後述するように、上記の方法(即ち、グローバルマッチング)とは別の方法(即ち、ローカルマッチング)により、入力画像V上を構成する各画素の水平視差d1及び垂直視差d2を算出する。そして、裸眼立体視表示装置は、ローカルマッチングにより算出された水平視差d1及び垂直視差d2に基づいて、ローカル視差マップを生成する。そして、裸眼立体視表示装置は、これらの視差マップを統合することで、統合視差マップを生成する。図4に、統合視差マップの一例である統合視差マップDMを示す。図4では、水平視差d1の程度がハッチングの濃淡で示されている。各視差マップは、複数の画素で構成され、各画素は、視差ベクトル(水平視差d2及び垂直視差d2を示すベクトル)を有する。
視差マップのうち、オクルージョン画素(オクルージョン領域を構成する画素)以外の画素は、両方の入力画像V、Vで表示されている(見えている)ので、視差ベクトルが整合する。一方、オクルージョン画素は、一方の入力画像では表示されているが、他方の入力画像では表示されていない画素となるので、視差ベクトルが整合しない。
ここで、視差ベクトルの整合性について、図22に基づいて説明する。入力画像V中の左側画素P10は、入力画像V中の右側画素P10に対応する。すなわち、いずれも被写体画像V2のくちばし部分を示す。言い換えれば、左側画素P10は入力画像Vでも表示されている。
このため、左側画素P10の視差ベクトルV10は、入力画像V中の右側画素P10を示す。すなわち、左側画素P10の座標値に視差ベクトルV10の各成分値を加算することで得られる座標値は、右側画素P10の座標値に一致する。同様に、右側画素P10の視差ベクトルV10は、入力画像V中の左側画素P10を示す。したがって、左側画素P10の視差ベクトルV10は、右側画素P10の視差ベクトルV10に整合する。このように、「視差ベクトルが整合する」とは、2つの画素の視差ベクトルが互いの画素を示すことを意味する。
一方、左側画素P20は、入力画像Vでは被写体画像V3に隠れて見えなくなっているので、オクルージョン画素となっている。すなわち、左側画素P20の対応画素は厳密には存在しない。しかし、裸眼立体視表示装置は、左側画素がオクルージョン画素であるか否かにかかわらず、左側画素に近似する右側画素を対応画素とし、視差ベクトルを設定する。
したがって、左側画素P20の視差ベクトルV20は、左側画素P20に近似する右側画素P30を示す。ただし、左側画素P20と右側画素P30とは別の被写体を示すので、右側画素P30の視差ベクトルV30は、左側画素P20とは異なる左側画素P30を示す。したがって、左側画素P20及び右側画素P30の視差ベクトルは整合していない。
このように、オクルージョン画素では視差ベクトルが整合しないので、オクルージョン画素の視差ベクトルは時間的、空間的に非常に不安定になる。この結果、ステップS3以降で生成される多視点画像Vは、オクルージョン領域で画像が乱れる等の現象が発生しうる。そこで、特許文献1、2に開示された技術では、カラーセグメンテーションを用いてオクルージョン画素の視差ベクトルを補間する。ただし、この方法では、補間の性能がカラーセグメンテーションの性能に依存し、かつ、カラーセグメンテーション自体が非常に重い処理となっていた。
そこで、裸眼立体視表示装置は、オクルージョン画素の視差ベクトルを以下のように補正(算出)する。すなわち、裸眼立体視表示装置は、左目用視差マップ及び右目用視差マップに基づいて、オクルージョン画素に近似する近似画素を探索する。具体的には、裸眼立体視表示装置は、オクルージョン画素の左側画素を起点として視差ベクトルを順次トレースする(追いかける)ことで、視差ベクトルが整合する左側画素を探索する。そして、裸眼立体視表示装置は、視差ベクトルが整合する左側画素を近似画素とし、近似画素の視差ベクトルに基づいて、オクルージョン画素の補正視差ベクトルを算出する。そして、裸眼立体視表示装置は、オクルージョン画素の視差ベクトルを補正視差ベクトルで置き換える。例えば、裸眼立体視表示装置は、近似画素の視差ベクトルを補正視差ベクトルとし、オクルージョン画素の視差ベクトルを近似画素の視差ベクトルで置き換える。(近似画素の視差ベクトルをオクルージョン画素に引きこむ)。近似画素の視差ベクトルは、「引き込みベクトル」とも称される。
図22に示す例では、左側画素P30の視差ベクトルV30は右側画素P30を示すので、左側画素P30及び右側画素P30の視差ベクトルは整合している。そこで、裸眼立体視表示装置は、視差ベクトルV30に基づいて、左側画素P20の補正視差ベクトルを算出する。そして、裸眼立体視表示装置は、左側画素P20の視差ベクトルを補正視差ベクトルで置き換える。
ステップS3において、裸眼立体視表示装置は、統合視差マップと、入力画像V、Vとに基づいて、多視点画像Vを複数生成する。例えば、図4に示す多視点画像Vは、入力画像Vと入力画像Vとの間を補間する画像である。したがって、左側画素P1に対応する画素P1は、左側画素P1と右側画素P1との間に存在する。
ここで、各多視点画像Vは、裸眼立体視表示装置によって立体視表示される画像であり、それぞれ異なる視点(視認者の目の位置)に対応する。すなわち、視認者の目が視認する多視点画像Vは、視認者の目の位置に応じて異なる。例えば、視認者の右目と左目とは異なる位置に存在するので、互いに異なる各多視点画像Vを視認する。これにより、視認者は、多視点画像Vを立体視することができる。また、視認者が移動することによって、視認者の視点が変わっても、その視点に対応する多視点画像Vがあれば、視認者は多視点画像Vを立体視することができる。このように、多視点画像Vの数が多いほど、視認者はより多くの位置で多視点画像Vを立体視することができる。また、多視点画像Vが多いほど、逆視、即ち視認者が本来右目で視認すべき多視点画像Vを左目で視認するという現象が生じにくくなる。また、多視点画像Vを複数生成することによって、運動視差の表現が可能となる。
ステップS4において、裸眼立体視表示装置は、フォールバック(リファインメント)を行なう。この処理は、概略的には、各多視点画像Vをその内容に応じて再度補正する処理である。ステップS5において、裸眼立体視表示装置は、各多視点画像Vを立体視表示する。
<2.画像処理装置の構成>
次に、本実施の形態に係る画像処理装置1の構成を図面に基づいて説明する。図5に示すように、画像処理装置1は、画像取得部10と、第1の視差検出部20と、第2の視差検出部30と、評価部40と、マップ生成部(補正値算出部)50と、補正部60とを備える。即ち、画像処理装置1は、CPU、ROM、RAM、及びハードディスク等のハードウェア構成を備え、これらのハードウェア構成によって、上記の各構成要素が実現される。即ち、画像処理装置1に、画像取得部10と、第1の視差検出部20と、第2の視差検出部30と、評価部40と、マップ生成部50と、補正部60とを実現させるためのプログラムがROMに記憶されている。画像処理装置1は、上述したステップS1〜ステップS2の処理を行うものである。
画像処理装置1では、概略以下の処理が行われる。即ち、画像取得部10は、入力画像V、Vを取得し、画像処理装置1の各構成要素に出力する。第1の視差検出部20は、入力画像V、Vに対してグローバルマッチングを行なうことで、入力画像Vを構成する左側画素毎に、水平視差d1及び垂直視差d2を検出する。一方、第2の視差検出部30は、入力画像V、Vに対してローカルマッチングを行なうことで、入力画像Vを構成する左側画素毎に、水平視差d1及び垂直視差d2を検出する。
すなわち、画像処理装置1は、グローバルマッチングと、ローカルマッチングとを並行して行う。ここで、ローカルマッチングは、精度の良否が入力画像VL、の品質(色ズレや幾何ズレの程度等)に依存しないという長所があるものの、オクルージョンに弱い、安定性が悪い(精度がばらつきやすい)といった短所もある。一方、グローバルマッチングは、オクルージョンに強い、安定しているという長所があるものの、精度の良否が入力画像VL、の品質に依存しやすいという短所もある。そこで、画像処理装置1は、両者を並行して行い、結果として得られる視差マップを画素ごとに対比し、これらを統合するようにしている。
(画像取得部の構成)
画像取得部10は、入力画像V、Vを取得し、画像処理装置1内の各構成要素に出力する。画像取得部10は、入力画像V、Vを裸眼立体視表示装置内のメモリから取得しても良いし、他の装置と通信を行なうことで取得してもよい。なお、本実施形態において、「現フレーム」は、画像処理装置1が現在処理中のフレームを意味する。「前フレーム」は、現フレームの1フレーム前のフレームを意味する。「次フレーム」は、現フレームの1フレーム後のフレームを意味する。画像処理装置1の処理に対するフレームが特に指示されない場合、画像処理装置1は現フレームに対する処理を行っているものとする。
(第1の視差検出部の構成)
第1の視差検出部20は、図6に示すように、垂直視差候補記憶部21と、DSAD(Dynamic Sum Of Absolute Difference)算出部22と、最小値選択部23と、アンカーベクトル構築部24と、コスト算出部25と、経路構築部26と、バックトラック部27とを備える。
(垂直視差候補記憶部の構成)
垂直視差候補記憶部21は、図7に示す垂直視差候補格納テーブルを記憶する。垂直視差候補格納テーブルには、水平視差候補△xと、垂直視差候補△yとが関連付けて記録される。水平視差候補△xは、候補画素のx座標から左側画素のx座標を減算した値を示す。一方、垂直視差候補△yは、候補画素のy座標から左側画素のy座標を減算した値を示す。詳細は後述する。垂直視差候補格納テーブルは、左側画素毎に用意される。
(DSAD算出部の構成)
DSAD算出部22は、マップ生成部50から、補正値α1に関する補正値情報を取得する。ここで、補正値α1は、概略的には、前フレームの入力画像Vと入力画像Vとの色ズレの度合いに応じて設定され、色ズレが大きいほど、補正値α1が小さくなる。なお、DSAD算出部22は、補正値情報を取得できない場合(例えば、最初のフレーム(第0フレーム)に対する処理を行う場合)には、補正値α1を0に設定する。
DSAD算出部22は、いずれかの左側画素を基準画素とし、バックトラック部27から前フレームのグローバル視差マップを取得する。そして、DSAD算出部22は、基準画素の前フレームの水平視差d1及び垂直視差d2を前フレームのグローバル視差マップから検索する。そして、DSAD算出部22は、基準画素に対して前フレームの垂直視差d2を有するいずれかの右側画素、即ち、基準画素のy座標に前フレームの垂直視差d2を加えたy座標を有するいずれかの右側画素を、第1の参照画素とする。このように、DSAD算出部22は、前フレームのグローバル視差マップに基づいて、第1の参照画素を決定する。即ち、DSAD算出部22は、リカーシブ処理を行なう。なお、DSAD算出部22は、前フレームのグローバル視差マップを取得できない場合、基準画素と同じy座標を有する右側画素を第1の参照画素とする。
そして、DSAD算出部22は、第1の参照画素に対してy方向の所定範囲内に存在する右側画素を第2の参照画素とする。所定範囲は、例えば、第1の参照画素のy座標を中心とした±1の範囲となるが、この範囲は、ロバスト性と精度とのバランスに応じて任意に変更される。第1の参照画素及び第2の参照画素からなる画素群は、参照画素群を構成する。
このように、第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の参照画素をより精度よく決定することができる。
DSAD算出部22は、基準画素と、第1の参照画素及び第2の参照画素を含む参照画素群と、補正値α1とに基づいて、以下の式(1)で示されるDSAD(△x、j)(第1の評価値、第2の評価値)を算出する。
ここで、△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の評価値を示す。
一方、R(i,1)、R(i,−1)は、第2の参照画素を中心とした第2の参照領域内の第1の参照画素特徴量を示す。したがって、DSAD(△x,1)、DSAD(△x,−1)は、基準画素特徴量と第2の参照画素特徴量との差分を評価する値、即ち第2の評価値を示す。αは上述した補正値である。
したがって、DSAD算出部22は、基準画素、第1の参照画素、及び第2の参照画素の輝度のみならず、これらの画素からy方向にずれた画素の輝度をも参照することで、DSADを算出する。即ち、DSAD算出部22は、基準画素、第1の参照画素、及び第2の参照画素のy座標を振ることで、これらの画素の周辺の輝度を参照している。したがって、画像処理装置1は、この点でも、幾何ズレに強い視差検出を行なうことができる。なお、上記の処理では、y座標を振る量を、各画素のy座標に対して上下2画素としたが、この範囲は、ロバスト性と精度とのバランスに応じて任意に変更される。さらに、DSAD算出部22は、DSADの算出に色ズレに応じた補正値を利用するので、色ズレに強い視差検出が可能となる。
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に出力する。
(最小値選択部の構成)
最小値選択部23は、DSAD情報に基づいて、以下の処理を行なう。即ち、最小値選択部23は、水平視差候補△x毎に、最小のDSAD(△x,j)を選択する。最小値選択部23は、選択されたDSAD(△x,j)を図9に示す視差検出用DPマップの各ノードP(x、△x)に格納する。したがって、最小のDSAD(△x,j)がノードP(x、△x)のスコアとなる。
視差検出用DPマップは、横軸が左側画素のx座標、縦軸が水平視差候補△xとなっており、複数のノードP(x、△x)を有している。視差検出用DPマップは、左側画素の水平視差d1を算出する際に使用される。また、視差検出用DPマップは、左側画素のy座標毎に生成される。したがって、いずれかの視差検出用DPマップ内のいずれかのノードP(x、△x)は、いずれかの左側画素に対応する。
さらに、最小値選択部23は、最小のDSAD(△x,j)に対応する参照画素を候補画素として特定する。そして、最小値選択部23は、候補画素のy座標から基準画素のy座標を減算した値を垂直視差候補△yとする。そして、最小値選択部23は、水平視差候補△xと垂直視差候補△yとを関連付けて、垂直視差候補格納テーブルに格納する。最小値選択部23は、全ての基準画素について、上記の処理を行う。
(アンカーベクトル構築部の構成)
図6に示すアンカーベクトル構築部24は、評価部40から前フレームの時間信頼度マップを取得し、マップ生成部50から前フレームの統合視差マップを取得する。現フレームの時間信頼度マップは、現フレームの統合視差マップが示す各左側画素の水平視差d1及び垂直視差d2を次フレームでも参照可能か否かを示すマップである。したがって、前フレームの時間信頼度マップは、前フレームで検出された水平視差d1及び垂直視差d2を現フレームでも参照可能か否かを左側画素毎に示すこととなる。アンカーベクトル構築部24は、前フレームの時間信頼度マップに基づいて、現フレームで水平視差d1及び垂直視差d2を参照可能な左側画素、即ち視差安定左側画素を特定する。そして、アンカーベクトル構築部24は、前フレームの統合視差マップに基づいて、視差安定左側画素の前フレームの水平視差d1、即ち安定水平視差d1’を特定する。そして、アンカーベクトル構築部24は、視差安定左側画素毎に、例えば以下の式(2)で示されるアンカーベクトルを生成する。
ここで、α2はボーナス値を示し、行列Mは、視差安定左側画素の前フレームの水平視差d1を示す。即ち、行列Mの各列は、それぞれ異なる水平視差候補△xを示し、成分が1となっている列は、その列に対応する垂直視差候補△xが安定水平視差d1’であることを示す。視差安定左側画素が存在しない場合、行列Mのすべての成分が0になる。なお、アンカーベクトル構築部24は、前フレームの時間信頼度マップ及び統合視差マップを取得することができない場合(例えば、第0フレームに対する処理を行う場合)、行列Mの成分を全て0とする。アンカーベクトル構築部24は、アンカーベクトルと視差安定左側画素とが関連付けられたアンカーベクトル情報を生成し、コスト算出部25に出力する。
(コスト算出部の構成)
図6に示すコスト算出部25は、アンカーベクトル情報に基づいて、視差検出用DPマップの各ノードP(x、d)の値を更新する。即ち、コスト算出部25は、視差安定左側画素毎に、安定水平視差d1’に対応するノード(x、△x(=d1’))を特定し、このノードのスコアから、ボーナス値α2を減算する。これにより、安定水平視差d1’と同じ視差を有するノードは、最短経路を通りやすくなる。言い換えれば、安定水平視差d1’は、現フレームにおいても選択されやすくなる。
(経路構築部の構成)
図6に示す経路構築部26は、図8に示すように、左目用画像水平差分算出部261と、右目用画像水平差分算出部262と、重み算出部263と、経路算出部264とを備える。
左目用画像水平差分算出部261は、画像取得部10から入力画像Vを取得し、入力画像Vを構成する左側画素毎に、以下の処理を行なう。すなわち、左目用画像水平差分算出部261は、いずれかの左側画素を基準画素とし、基準画素の輝度から、基準画素よりx座標が1大きい左側画素の輝度を減算する。左目用画像水平差分算出部261は、これにより得られた値を輝度水平差分dwとし、輝度水平差分dwに関する輝度水平差分情報を生成する。そして、左目用画像水平差分算出部261は、輝度水平差分情報を重み算出部263に出力する。
右目用画像水平差分算出部262は、画像取得部10から入力画像Vを取得する。そして、右目用画像水平差分算出部262は、入力画像Vに対して上述した左目用画像水平差分算出部261と同様の処理を行なう。そして、右目用画像水平差分算出部262は、この処理により生成された輝度水平差分情報を重み算出部263に出力する。
重み算出部263は、輝度水平差分情報に基づいて、左側画素の重みwt、右側画素のwtをすべての左側画素及び右側画素について算出する。具体的には、重み算出部263は、左側画素の輝度水平差分dwをシグモイド関数に代入することで、輝度水平差分dwを0〜1の値に正規化し、これを重みwtとする。同様に、重み算出部263は、右側画素の輝度水平差分dwをシグモイド関数に代入することで、輝度水平差分dwを0〜1の値に正規化し、これを重みwtとする。そして、重み算出部263は、算出された重みwt、wtに関する重み情報を生成し、経路算出部264に出力する。重みwt、wtは画像のエッヂ(輪郭)の部分で小さくなり、平坦部分で大きくなる。なお、シグモイド関数は、例えば、以下の式(2−1)で与えられる。
経路算出部264は、重み算出部263から与えられた重み情報に基づいて、視差検出用DPマップの始点から各ノードP(x、△x)に至るまでの累積コストを計算する。具体的には、経路算出部264は、ノード(0、0)を始点、ノード(xmax、0)を終点とし、始点からノードP(x、△x)に至るまでの累積コストを以下のように定義する。ここで、xmaxは、左側画素のx座標の最大値である。
ここで、DFI(x、△x)は、経路PA0を通ってノードP(x、△x)に至るときの累積コストであり、DFI(x、△x)は、経路PA1を通ってノードP(x、△x)に至るときの累積コストであり、DFI(x、△x)は、経路PA2を通ってノード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)に至るまでの累積コストである。また、occCost、occCostは、それぞれコストの値を示す所定値であり、例えば4.0である。wtは、ノードP(x、△x)に対応する左側画素の重みであり、wtは、この左側画素と同じ座標を有する右側画素の重みである。
そして、経路算出部264は、算出された累積コストDFI(x、△x)〜DFI(x、△x)のうち、最小のものを選択し、選択されたものをノードP(x、△x)の累積コストDFI(x、△x)とする。経路算出部264は、すべてのノードP(x、△x)について累積コストDFI(x、△x)を算出し、視差検出用DPマップに格納する。
バックトラック部27は、累積コストが最小となる経路を終点から始点に向かって逆にたどることで、最短経路、即ち始点から終点までの累積コストが最小となる経路を算出する。この最短経路上のノードは、当該ノードに対応する左側画素の水平視差d1となる。したがって、バックトラック部27は、最短経路を算出することで、各左側画素の水平視差d1を検出する。
バックトラック部27は、いずれかの左側画素に対応する垂直視差候補格納テーブルを垂直視差候補記憶部21から取得する。バックトラック部27は、取得した垂直視差候補格納テーブルに基づいて、左側画素の水平視差d1に対応する垂直視差候補△yを特定し、特定された垂直視差候補△yを左側画素の垂直視差d2とする。これにより、バックトラック部27は、垂直視差d2を検出する。そして、バックトラック部27は、全ての左側画素について垂直視差d2を検出し、検出された水平視差d1及び垂直視差d2に基づいて、グローバル視差マップを生成する。グローバル視差マップは、左側画素毎に水平視差d1及び垂直視差d2(すなわち、視差ベクトル)を示す。バックトラック部27は、生成されたグローバル視差マップをDSAD算出部22、図5に示す評価部40、及びマップ生成部50に出力する。DSAD算出部22に出力されたグローバル視差マップは、次フレームで使用される。
(第2の視差検出部の構成)
図5に示す第2の視差検出部30は、第1の視差検出部と異なる方法、即ちローカルマッチングにより、各左側画素の水平視差d1及び垂直視差d2を算出する。第2の視差検出部30は、具体的には、以下の処理を行なう。第2の視差検出部30は、画像取得部10から入力画像V、Vを取得する。さらに、第2の視差検出部30は、評価部40から前フレームの時間信頼度マップを取得し、マップ生成部50から前フレームの統合視差マップを取得する。
第2の視差検出部30は、前フレームの時間信頼度マップに基づいて、現フレームで水平視差d1及び垂直視差d2を参照可能な左側画素、即ち視差安定左側画素を特定する。そして、第2の視差検出部30は、前フレームの統合視差マップに基づいて、視差安定左側画素の前フレームの水平視差d1及び垂直視差d2、即ち安定水平視差d1’及び安定垂直視差d2’を特定する。そして、アンカーベクトル構築部24は、視差安定左側画素のxy座標にそれぞれ安定水平視差d1’及び安定垂直視差d2’を加算し、これにより得られたxy座標を有する右側画素を、視差安定右側画素とする。
さらに、第2の視差検出部30は、入力画像V、Vをそれぞれ複数の画素ブロックに分割する。例えば、第2の視差検出部30は、入力画像Vを64個の左側画素ブロックに分割し、入力画像Vを64個の右側画素ブロックに分割する。
そして、第2の視差検出部30は、左側画素ブロック内の各左側画素に対応する対応画素を、左側画素ブロックに対応する右側画素ブロックから検出する。例えば、第2の視差検出部30は、左側画素に輝度が最も近い右側画素を対応画素として検出する。ここで、第2の視差検出部30は、視差安定左側画素に対応する対応画素を検出する際には、視差安定右側画素を優先的に対応画素として検出する。例えば、第2の視差検出部30は、左側画素に輝度が最も近い右側画素が視差安定右側画素となる場合、視差安定右側画素を対応画素として検出する。一方、第2の視差検出部30は、左側画素に輝度が最も近い右側画素が視差安定右側画素以外の右側画素となる場合、その右側画素と視差安定左側画素との輝度差と所定の輝度範囲とを比較する。第2の視差検出部30は、輝度差が所定の輝度範囲内となる場合、当該右側画素を対応画素として検出する。第2の視差検出部30は、輝度差が所定の輝度範囲を外れる場合、視差安定右側画素を対応画素として検出する。
第2の視差検出部30は、対応画素のx座標から左側画素のx座標を減算した値を左側画素の水平視差d1とし、対応画素のy座標から左側画素のy座標を減算した値を右側画素の垂直視差d2とする。第2の視差検出部30は、検出結果に基づいて、ローカル視差マップを生成する。ローカル視差マップは、左側画素毎に水平視差d1及び垂直視差d2(すなわち、視差ベクトル)を示す。第2の視差検出部30は、生成されたローカル視差マップを評価部40及びマップ生成部50に出力する。
なお、第2の視差検出部30は、前フレームの時間信頼度マップ及び統合視差マップを取得することができない場合(例えば、第0フレームに対する処理を行う場合)、視差安定左側画素を検出せずに、上記の処理を行なう。また、第2の視差検出部30は、左側画素ブロック毎に上述した第1の視差検出部20と同様の処理を行うことで、左側画素の水平視差d1及び垂直視差d2を検出しても良い。
(評価部の構成)
評価部40は、図10に示すように、特徴量算出部41と、ニューラルネット処理部42と、周辺化処理部43とを備える。
(特徴量算出部の構成)
特徴量算出部41は、第1の視差検出部20及び第2の視差検出部30から与えられた視差マップ等に基づいて、各種の特徴量マップ(演算特徴量)を生成する。例えば、特徴量算出部41は、ローカル視差マップに基づいて、ローカルオクルージョンマップを生成する。ここで、ローカルオクルージョンマップは、左側画素毎にローカルオクルージョン情報を示す。ローカルオクルージョン情報は、任意の基準位置(例えば、被写体を撮影した撮影素子の位置)から、左側画素に描かれた被写体までの距離を示す。
同様に、特徴量算出部41は、グローバル視差マップに基づいて、グローバルオクルージョンマップを生成する。グローバルオクルージョンマップは、左側画素毎にグローバルオクルージョン情報を示す。グローバルオクルージョン情報は、任意の基準位置(例えば、被写体を撮影した撮影素子の位置)から、左側画素に描かれた被写体までの距離を示す。さらに、特徴量算出部41は、ローカルオクルージョンマップ及びグローバルオクルージョンマップに基づいて、絶対値オクルージョンマップを生成する。絶対値オクルージョンマップは、左側画素毎に絶対値オクルージョン情報を示す。絶対値オクルージョン情報は、ローカルオクルージョン情報とグローバルオクルージョン情報との差分値の絶対値を示す。
さらに、特徴量算出部41は、絶対値視差マップを生成する。絶対値視差マップは、左側画素毎に水平視差差分の絶対値を示す。ここで、水平視差差分は、グローバル視差マップの水平視差d1からローカル視差マップの水平視差d1を減算した値である。
さらに、特徴量算出部41は、画像取得部10から与えられた入力画像V、Vと、ローカル視差マップと、に基づいて、ローカルSAD(Sum Of Absolute Difference)マップを生成する。ローカルSADマップは、左側画素毎にローカルSADを示す。ローカルSADは、対応画素の輝度から左側画素の輝度を減算した値である。対応画素は、左側画素のx座標にローカル視差マップが示す水平視差d1を加算したx座標と、左側画素のy座標にローカル視差マップが示す垂直視差d2を加算したy座標とを有する右側画素である。
同様に、特徴量算出部41は、画像取得部10から与えられた入力画像V、Vと、グローバル視差マップと、に基づいて、グローバルSAD(Sum Of Absolute Difference)マップを生成する。グローバルSADマップは、左側画素毎にグローバルSADを示す。グローバルSADは、対応画素の輝度から左側画素の輝度を減算した値である。対応画素は、左側画素のx座標にグローバル視差マップが示す水平視差d1を加算したx座標と、左側画素のy座標にグローバル視差マップが示す垂直視差d2を加算したy座標とを有する右側画素である。
そして、特徴量算出部41は、ローカルSADマップとグローバルSADマップとに基づいて、絶対値SADマップを生成する。絶対値SADマップは、左側画素毎に絶対値SADを示す。絶対値SADは、ローカルSADからグローバルSADを減算した値の絶対値を示す。
また、特徴量算出部41は、グローバル視差マップが示す水平視差d1とローカル視差マップが示す水平視差d1との算術平均を左側画素毎に算出することで、平均視差マップを生成する。平均視差マップは、左側画素毎に上記の算術平均値を示す。
また、特徴量算出部41は、グローバル視差マップが示す水平視差d1の分散値(上記の算術平均値に対する分散値)を左側画素毎に算出することで、分散視差マップを生成する。特徴量算出部41は、特徴量マップをニューラルネット処理部42に出力する。なお、特徴量算出部41は、特徴量マップを少なくとも2つ以上生成すればよい。
(ニューラルネット処理部)
ニューラルネット処理部42は、特徴量マップをニューラルネットワークの入力値In0〜In(m−1)とすることで、出力値Out0〜Out2を取得するものである。ここで、mは2以上11以下の整数である。
具体的には、ニューラルネット処理部42は、各特徴量マップを構成する左側画素のうち、いずれかの左側画素を評価対象画素とし、当該評価対象画素に対応する値を各特徴量マップから取得する。そして、ニューラルネット処理部42は、これらの値を入力値とする。
出力値Out0は、統合視差マップが示す評価対象画素の水平視差d1及び垂直視差d2が次フレームでも参照可能か否かを示す。即ち、出力値Out0は、時間信頼度を示す。出力値Out0は、具体的には、「0」または「1」となる。「0」は、例えば、水平視差d1及び垂直視差d2が次フレームで参照不可であることを示し、「1」は、例えば、水平視差d1及び垂直視差d2が次フレームで参照可能であることを示す。
出力値Out1は、グローバル視差マップが示す評価対象画素の水平視差d1及び垂直視差d2と、ローカル視差マップ示す評価対象画素の水平視差d1及び垂直視差d2と、のうちどちらの信頼度が高いかを示す。即ち、出力値Out1は、比較信頼度を示す。出力値Out1は、具体的には、「0」または「1」となる。「0」は、例えば、ローカル視差マップの方がグローバル視差マップよりも信頼度が高いことを示し、「1」は、例えば、グローバル視差マップの方がローカル視差マップよりも信頼度が高いことを示す。
出力値Out2は、特に制限されず、例えば、各種アプリケーションに利用可能な情報となりうる。より詳細には、出力値Out2は、評価対象画素のオクルージョン情報となりうる。評価対象画素のオクルージョン情報は、任意の基準位置(例えば、被写体を撮影した撮影素子の位置)から、評価対象画素に描かれた被写体までの距離を示し、裸眼立体視表示装置による多視点画像生成に利用可能である。また、出力値Out2は、評価対象画素の動き情報となりうる。評価対象画素の動き情報は、評価対象画素に描かれた被写体の動きに関する情報(例えば、動きの大きさと方向とを示すベクトル情報)である。動き情報は、2D3D変換アプリケーションに利用可能である。また、出力値Out2は、評価対象画素の輝度切り替え情報となりうる。評価対象画素の輝度切り替え情報は、評価対象画素をどのような輝度で表示するかを示す情報であり、ハイダイナミックレンジアプリケーションで利用可能である。
また、出力値Out2は、多視点画像生成時に利用可能な各種の信頼度情報となりうる。例えば、出力値Out2は、多視点画像生成時に評価対象画素の水平視差d1及び垂直視差d2が参照可能であるか否かを示す信頼度情報となりうる。裸眼立体視表示装置は、評価対象画素の水平視差d1及び垂直視差d2が参照できない場合、評価対象画素の水平視差d1及び垂直視差d2を、評価対象画素の周辺画素の水平視差d1及び垂直視差d2で補間する。また、出力値Out2は、多視点画像のリファインメント時に評価対象画素の輝度を足しこみ可能か否かを示す信頼度情報となりうる。裸眼立体視表示装置は、各画素の輝度のうち、足しこみ可能な輝度のみを足し込むことで、リファインメントを行なう。
ニューラルネット処理部42は、評価対象画素を順次変更することで、新たな入力値In0〜In(m−1)を生成し、出力値Out0〜Out2を取得する。したがって、出力値Out0は、複数の左側画素の各々についての時間信頼度、即ち時間信頼度マップとして与えられる。出力値Out1は、複数の左側画素の各々についての比較信頼度、即ち比較信頼度マップとして与えられる。出力値Out2は、複数の左側画素の各々についての各種情報、即ち各種情報マップとして与えられる。ニューラルネット処理部42は、これらのマップを周辺化処理部43に出力する。図13に、比較信頼度マップの一例である比較信頼度マップEM1を示す。領域EM11は、グローバル視差マップの方がローカル視差マップよりも信頼度が高い領域を示し、領域EM12は、ローカル視差マップの方がグローバル視差マップよりも信頼度が高い領域を示す。
上述したように、ローカルマッチングは、精度の良否が入力画像VL、の品質(色ズレや幾何ズレの程度等)に依存しないという長所があるものの、オクルージョンに弱い、安定性が悪い(精度がばらつきやすい)といった短所もある。一方、グローバルマッチングは、オクルージョンに強い、安定しているという長所があるものの、精度の良否が入力画像VL、の品質に依存しやすいという短所もある。しかし、第1の視差検出部20は、グローバルマッチングを行なう際に、垂直方向への検索も行ない、かつ、色ズレに応じた補正も行う。即ち、第1の視差検出部20は、第1の参照画素を決定する際に、基準画素と同じy座標を有する右側画素のみならず、基準画素に対してy方向にずれた位置に存在する画素も検索する。さらに、第1の視差検出部20は、DSADを算出する際に、色ズレに応じた補正値α1を使用する。このように、第1の視差検出部20は、精度の良否が入力画像VL、の品質に依存しにくいグローバルマッチングを行なうことができる。したがって、本実施形態では、グローバルマッチングの方がローカルマッチングよりも信頼度が高い場合が多いので、領域EM11は、領域EM12よりも広くなっている。
ニューラルネット処理部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)で表される。
なお、ニューラルネット処理部42は、適切な出力値Out0〜Out2を取得するため、事前に学習を行っておく。この学習は、例えばバックプロパゲーションにより行われる。即ち、ニューラルネット処理部42は、以下の式(8)、(9)に基づいて、第(n−2)層と出力層との間の伝播係数を更新する。
そして、ニューラルネット処理部42は、以下の式(10)〜(13)に基づいて、第(n−2)層より前の伝播係数を、出力層に近い側から更新していく。
ここで、教師情報としては、テンプレートとして予め用意された教師用左目画像、教師用右目画像、左目基準視差マップ、及び右目基準視差マップを使用することができる。ここで、教師用左側画素は、入力画像Vに相当し、教師用右目画像は入力画像Vに想到する。左目基準視差マップは、教師用左目画像を構成する左側画素を基準画素として作成された視差マップであり、右目基準視差マップは、教師用右目画像を構成する右目画素を基準として作成された視差マップである。即ち、これらのテンプレートに基づいて、入力値In0〜In(m−1)及び出力値Out0〜Out2の教師情報を算出する。さらに、これらのテンプレートを改変したもの(例えば、各画像にノイズを乗せたもの、一方の画像に色ズレ及び幾何ズレのうち少なくとも一方を起こさせたもの)に基づいて、入力値In0〜In(m−1)及び出力値Out0〜Out2の教師情報を算出する。教師情報の算出は、裸眼立体視表示装置内部で行ってもよいが、外部の装置に行わせてもよい。そして、これらの教師情報をニューラルネット処理部42に順次与えることで、ニューラルネット処理部42に学習を行わせる。ニューラルネット処理部42にこのような学習を行わせることで、色ズレ及び幾何ズレに強い出力値Out0〜Out2が得られる。
なお、ユーザは、所望の出力値Out0〜Out2を得ることができるように、テンプレートを改変させることができる。即ち、教師情報と出力値Out0〜Out2との関係は2項分布に従うので、尤度関数Lは以下の式(14)で与えられる。
教師情報の分布は、尤度関数Lに依存する。したがって、ユーザは、所望の出力値Out0〜Out2が得られるときの尤度が最大となるように、テンプレートを改変(重み付け)すればよい。教師情報を重み付けした時の尤度関数L’は、以下の式(15)で与えられる。
なお、ニューラルネット処理部42の一部は、ハードウェアにて実現されても良い。例えば、入力層から第1層までの処理を固定化し、その部分をハードウェアにて実現してもよい。また、特徴量算出部41及びニューラルネット処理部42は、以下の方法により出力値Out1、即ち比較信頼度マップを生成してもよい。なお、この処理では、ニューラルネット処理部42は、ニューラルネットワークによる処理を行わない。即ち、特徴量算出部41は、現フレームのグローバル視差マップと、前フレームのグローバル視差マップとの差分を示す第1の差分マップを生成する。第1の差分マップは、現フレームのグローバル視差マップの水平視差d1から前フレームのグローバル視差マップの水平視差d1を減算した値を、左側画素毎に示すものである。次いで、ニューラルネット処理部42は、第1の差分マップを2値化することで、第1の2値化差分マップを生成する。そして、ニューラルネット処理部42は、第1の2値化差分マップの各値に所定の重み(例えば8)を乗じることで、第1の差分スコアマップを生成する。
さらに、特徴量算出部41は、現フレームのグローバル視差マップと、現フレームの入力画像Vとのエッジ画像を生成し、これらの相関を示す相関マップを生成する。グローバル視差マップのエッジ画像は、グローバル視差マップのエッジ部分(グローバル視差マップに描かれた各画像の輪郭部分)を示す。同様に、入力画像Vのエッジ画像は、入力画像Vのエッジ部分(入力画像Vに描かれた各画像の輪郭部分)を示す。エッジ画像同士の相関を算出する手法としては、例えば、NCC等のような相関関係を算出する手法が任意に用いられる。そして、ニューラルネット処理部42は、相関マップを2値化することで、2値化相関マップを生成する。そして、ニューラルネット処理部42は、2値化相関マップの各値に所定の重み(例えば26)を乗じることで、相関スコアマップを生成する。
そして、ニューラルネット処理部42は、第1の差分スコアマップと相関スコアマップとを統合し、IIRフィルタを掛けることで、グローバルマッチング用信頼度マップを生成する。グローバルマッチング用信頼度マップの各左側画素の値は、第1の差分スコアマップと相関スコアマップとの値のうち、大きい方の値を示す。
一方、特徴量算出部41は、現フレームのローカル視差マップと、前フレームのローカル視差マップとの差分を示す第2の差分マップを生成する。第2の差分マップは、現フレームのローカル視差マップの水平視差d1から前フレームのローカル視差マップの水平視差d1を減算した値を、左側画素毎に示すものである。次いで、ニューラルネット処理部42は、第2の差分マップを2値化することで、第2の2値化差分マップを生成する。そして、ニューラルネット処理部42は、第2の2値化差分マップの各値に所定の重み(例えば16)を乗じることで、第2の差分スコアマップを生成する。
さらに、特徴量算出部41は、現フレームの入力画像Vのエッジ画像を生成する。このエッジ画像は、入力画像Vのエッジ部分(入力画像Vに描かれた各画像の輪郭部分)を示す。ニューラルネット処理部42は、このエッジ画像を2値化することで、2値化エッジマップを生成する。そして、ニューラルネット処理部42は、2値化エッジマップの各値に所定の重み(例えば8)を乗じることで、エッジスコアマップを生成する。
そして、ニューラルネット処理部42は、第2の差分スコアマップとエッジスコアマップとを統合し、IIRフィルタを掛けることで、ローカルマッチング用信頼度マップを生成する。ローカルマッチング用信頼度マップの各左側画素の値は、第2の差分スコアマップとエッジスコアマップとの値のうち、大きい方の値を示す。
このように、ニューラルネット処理部42は、グローバル視差マップを異なる評価手法により評価し、それらの結果を統合することで、グローバルマッチング用信頼度マップを生成する。同様に、ニューラルネット処理部42は、ローカル視差マップを異なる評価手法により評価し、それらの結果を統合することで、ローカルマッチング用信頼度マップを生成する。ここで、グローバル視差マップの評価手法とローカル視差マップの評価手法とは互いに異なっている。また、評価手法により異なる重み付けが行われている。
そして、ニューラルネット処理部42は、グローバルマッチング用信頼度マップと、ローカルマッチング用信頼度マップとを対比することで、左側画素毎に、グローバル視差マップとローカル視差マップとのどちらの信頼度が高いかを判定する。ニューラルネット処理部42は、判定の結果に基づいて、信頼度の高い視差マップを左側画素毎に示す比較信頼度マップを生成する。
周辺化処理部43は、ニューラルネット処理部42から与えられた各マップに周辺化(平滑化)処理を施す。具体的には、周辺化処理部43は、マップを構成するいずれかの画素を積算基準画素とし、積算基準画素及びその周辺画素の値(例えば、比較信頼度、時間信頼度等)を積算する。周辺化処理部43は、積算値を0〜1の範囲に正規化し、積算基準画素に隣接する画素に伝播させる。ここで、周辺化処理の例を図12に基づいて説明する。例えば、周辺化処理部43は、画素PM1を積算基準画素とし、積算基準画素PM1及びその周辺の画素PM2〜PM4の値を積算する。そして、周辺化処理部43は、積算値を0〜1の範囲に正規化する。周辺化処理部43は、積算基準画素PM1の値が「0」または「1」となる場合、積算値を上述した式(7)に代入することで、正規化を行なう。一方、周辺化処理部43は、積算基準画素PM1の値が0〜1の範囲内の実数となる場合、積算値をシグモイド関数に代入することで、正規化を行なう。
そして、周辺化処理部43は、正規化された積算値を積算基準画素PM1の右側に隣接する画素PM5に伝播させる。具体的には、周辺化処理部43は、積算値と画素PM5の値との算術平均値を算出し、算術平均値を画素PM5の値とする。周辺化処理部43は、積算値をそのまま画素PM5の値としてもよい。なお、周辺化処理部43は、このような周辺化処理を行う場合、積算基準画素の初期値(スタート地点)を、マップの左端を構成する画素(x=0となる画素)とする。この例では、伝播方向を右方向としたが、他の方向(左方向、上方向、下方向)であってもよい。
周辺化処理部43は、マップの全範囲に対して周辺化処理を行ってもよいが、一部の範囲に対して周辺化処理を行ってもよい。なお、マップの周辺化処理はローパスフィルタによって行なうこともできるが、周辺化処理部43が上記のような処理を行うことで、以下の効果が得られる。即ち、ローパスフィルタは、周辺化処理の対象となるマップのうち、画素の値が所定値以上となる部分にしか周辺化処理を行なうことができない。これに対し、周辺化処理部43は、マップの全範囲または所望の範囲に対して周辺化処理を行なうことができる。また、ローパスフィルタによる周辺化処理は、単に各画素の中間値を出力するだけなので、周辺化処理によってかえってマップに不具合が生じる可能性がある。例えば、マップの特徴部分(例えば、マップのエッジ部分や被写体が描かれている部分)が不自然に周辺化される可能性がある。これに対し、周辺化処理部43は、複数の画素の値を積算し、これにより得られた積算値を用いて周辺化を行うので、マップの特徴部分を生かした周辺化を行なうことができる。
周辺化処理部43は、周辺化処理を施した比較信頼度マップを図5に示すマップ生成部50に出力する。さらに、周辺化処理部43は、周辺化処理を施した時間信頼度マップを第1の視差検出部20及び第2の視差検出部30に出力する。第1の視差検出部20及び第2の視差検出部30に出力された時間信頼度マップは、次フレームで使用される。また、周辺化処理部43は、周辺化処理を施した各種情報マップを、当該各種情報マップを必要とするアプリケーションに提供する。
(マップ生成部の構成)
マップ生成部50は、グローバル視差マップ、ローカル視差マップ、及び比較信頼度マップに基づいて、統合視差マップを生成する。統合視差マップの各左側画素の水平視差d1及び垂直視差d2は、グローバル視差マップ及びローカル視差マップが示す値のうち、信頼度が高い方の値を示す。ここで、上記の処理で生成される統合視差マップは、入力画像Vに対応する左目用統合視差マップである。画像処理装置1は、入力画像Vを基準として上記の処理を行うことで、入力画像Vに対応する右目用統合視差マップを生成する。マップ生成部50は、右目用統合視差マップ及び左目用統合視差マップを補正部60に出力する。補正部60は、これらの統合視差マップに基づいて、オクルージョン画素の視差ベクトルを補正し、補正後の右目用統合視差マップ及び左目用統合視差マップをマップ生成部50に出力する。マップ生成部50は、補正後の統合視差マップを裸眼立体視表示装置内の多視点画像生成アプリケーションに提供する。また、マップ生成部50は、補正後の統合視差マップを第1の視差検出部20に出力する。第1の視差検出部20に出力された統合視差マップは、次フレームで使用される。
さらに、マップ生成部50は、入力画像V、V及び補正後の統合視差マップに基づいて、補正値α1を算出する。即ち、マップ生成部50は、統合視差マップに基づいて、左側画素に対応する対応画素を入力画像Vから検索する。対応画素のx座標は、左側画素のx座標に水平視差d1を加えた値であり、対応画素のy座標は、左側画素のy座標に垂直視差d2を加えた値である。マップ生成部50は、全ての左側画素について、対応画素を検索する。
マップ生成部50は、左側画素と対応画素との輝度差△Lx(差分値)を算出し、輝度差△Lxの算術平均値E(x)と、輝度差△Lxのべき乗の算術平均値E(x)とを算出する。そして、マップ生成部50は、算出された算術平均値E(x)、E(x)と、例えば図14に示すクラス分けテーブルとに基づいて、入力画像V、Vのクラスを決定する。ここで、クラス分けテーブルは、算術平均値E(x)と、E(x)と、入力画像V、Vのクラスとを関連付けて示すものである。入力画像V、Vのクラスは、クラス0〜クラス4に区分され、各クラスは、入力画像V、Vの明瞭度を示す。クラスの値が小さいほど、入力画像V、Vは明瞭となる。例えば、図15に示す画像V1は、クラス0に分類される。画像V1は、スタジオで撮影されたものであり、被写体が比較的明瞭に描かれている。一方、図16に示す画像V2は、クラス4に分類される。画像V2は、屋外で撮影されたものであり、一部の被写体(特に背景部分)が比較的不明瞭に描かれている。
マップ生成部50は、図17に示す補正値対応テーブルと、入力画像V、Vのクラスとに基づいて、補正値α1を決定する。ここで、補正値対応テーブルは、入力画像V、Vのクラスと補正値α1との対応関係を示すテーブルである。マップ生成部50は、決定された補正値α1に関する補正値情報を第1の視差検出部20に出力する。補正値α1は、次フレームで使用される。
(補正部の構成)
補正部60は、右目用統合視差マップ及び左目用統合視差マップに基づいて、オクルージョン画素の視差ベクトルを補正する。具体的には、補正部60は、左側画素を起点として視差ベクトルを順次トレースする。
より具体的には、補正部60は、以下のベクトル追跡処理を行う。すなわち、補正部60は、左側画素を基準画素とし、右目用統合視差マップから、基準画素の視差ベクトルが示す対応画素を抽出する。そして、補正部60は、基準画素の視差ベクトルと対応画素の視差ベクトルとの整合性を判定する。以上がベクトル追跡処理の内容である。
そして、補正部60は、基準画素の視差ベクトルと対応画素の視差ベクトルとが整合する場合には、基準画素をオクルージョン画素に近似する近似画素とする。補正部60は、近似画素の視差ベクトルに基づいて、オクルージョン画素の補正視差ベクトルを算出する。具体的には、補正部60は、近似画素の視差ベクトルを補正視差ベクトルとし、オクルージョン画素の視差ベクトルを近似画素の視差ベクトルで置き換える。(近似画素の視差ベクトルをオクルージョン画素に引きこむ)。
一方、補正部60は、基準画素の視差ベクトルと対応画素の視差ベクトルとが整合しない場合には、対応画素の視差ベクトルが示す画素を左目用統合視差マップから抽出し、この画素を新たな基準画素とする。そして、補正部60は、視差ベクトルの整合性が成立するまで、ベクトル追跡処理を繰り返して行う。
図22に示す例では、補正部60は、左側画素P20を基準画素としてベクトル追跡処理を開始する。そして、補正部60は、ベクトル追跡処理を繰り返して(この例では2回)行うことで、視差ベクトルが整合する左側画素P30を発見する。そして、補正部60は、左側画素P30の視差ベクトルを補正視差ベクトルとし、左側画素P20の視差ベクトルを左側画素P30の視差ベクトルで置き換える。
補正部60は、上記の処理を左目用統合視差マップの全左側画素について行うことで、左目用統合視差マップを補正する。補正部60は、右目用統合視差マップも同様にして補正する。補正部60は、補正後の各統合視差マップをマップ生成部50に出力する。このように、補正部60は、各左側画素(または右側画素)がオクルージョン画素であるか否かの明示的な判定は行わず、全左側画素(または右側画素)について上述したベクトル追跡処理を行う。
<3.画像処理装置による処理>
次に、画像処理装置1による処理の手順を、図18に示すフローチャートに沿って説明する。
ステップS10において、画像取得部10は、入力画像V、Vを取得し、画像処理装置1内の各構成要素に出力する。ステップS20において、DSAD算出部22は、マップ生成部50から、補正値α1に関する補正値情報を取得する。なお、DSAD算出部22は、補正値情報を取得できない場合(例えば、最初のフレーム(第0フレーム)に対する処理を行う場合)には、補正値α1を0に設定する。
DSAD算出部22は、バックトラック部27から前フレームのグローバル視差マップを取得する。そして、DSAD算出部22は、いずれかの左側画素を基準画素とし、基準画素の前フレームの水平視差d1及び垂直視差d2を前フレームのグローバル視差マップから検索する。そして、DSAD算出部22は、基準画素に対して当該垂直視差d2を有するいずれかの右側画素を第1の参照画素とする。なお、DSAD算出部22は、前フレームのグローバル視差マップを取得できない場合(例えば、第0フレームに対する処理を行う場合)、基準画素と同じy座標を有する右側画素を第1の参照画素とする。
そして、DSAD算出部22は、第1の参照画素に対してy方向の所定範囲内に存在する右側画素を第2の参照画素とする。DSAD算出部22は、基準画素と、第1の参照画素及び第2の参照画素を含む参照画素群と、補正値α1とに基づいて、上述した式(1)で示されるDSAD(△x、j)を算出する。
DSAD算出部22は、全ての水平視差候補△xについてDSAD(△x,j)を算出する。そして、DSAD算出部22は、基準画素を変更し、上記の処理を繰り返す。これにより、DSAD算出部22は、全ての基準画素についてDSAD(△x,j)を算出する。そして、DSAD算出部22は、DSAD(△x、j)と基準画素とが関連付けられたDSAD情報を生成し、最小値選択部23に出力する。
ステップS30において、最小値選択部23は、DSAD情報に基づいて、以下の処理を行なう。即ち、最小値選択部23は、水平視差候補△x毎に、最小のDSAD(△x,j)を選択する。最小値選択部23は、選択されたDSAD(△x,j)を図9に示す視差検出用DPマップの各ノードP(x、△x)に格納する。
さらに、最小値選択部23は、最小のDSAD(△x,j)に対応する参照画素を候補画素として特定する。そして、最小値選択部23は、候補画素のy座標から基準画素のy座標を減算した値を垂直視差候補△yとする。そして、最小値選択部23は、水平視差候補△xと垂直視差候補△yとを関連付けて、垂直視差候補格納テーブルに格納する。最小値選択部23は、全ての基準画素について、上記の処理を行う。
ステップS40において、アンカーベクトル構築部24は、評価部40から前フレームの時間信頼度マップを取得し、マップ生成部50から前フレームの統合視差マップを取得する。アンカーベクトル構築部24は、前フレームの時間信頼度マップに基づいて、視差安定左側画素を特定する。そして、アンカーベクトル構築部24は、前フレームの統合視差マップに基づいて、視差安定左側画素の前フレームの水平視差d1、即ち安定水平視差d1’を特定する。そして、アンカーベクトル構築部24は、視差安定左側画素毎に、例えば上記の式(2)で示されるアンカーベクトルを生成する。なお、アンカーベクトル構築部24は、前フレームの時間信頼度マップ及び統合視差マップを取得することができない場合、行列Mの成分を全て0とする。アンカーベクトル構築部24は、アンカーベクトルと視差安定左側画素とが関連付けられたアンカーベクトル情報を生成し、コスト算出部25に出力する。次いで、コスト算出部25は、アンカーベクトル情報に基づいて、視差検出用DPマップの各ノードP(x、d)の値を更新する。
ステップS50において、左目用画像水平差分算出部261は、画像取得部10から入力画像Vを取得する。左目用画像水平差分算出部261は、入力画像Vを構成する左側画素毎に、輝度水平差分dwを算出し、輝度水平差分dwに関する輝度水平差分情報を生成する。そして、左目用画像水平差分算出部261は、輝度水平差分情報を重み算出部263に出力する。
一方、右目用画像水平差分算出部262は、画像取得部10から入力画像Vを取得し、入力画像Vに対して上述した左目用画像水平差分算出部261と同様の処理を行なう。そして、右目用画像水平差分算出部262は、この処理により生成された輝度水平差分情報を重み算出部263に出力する。
次いで、重み算出部263は、輝度水平差分情報に基づいて、左側画素の重みwt、右側画素のwtをすべての左側画素及び右側画素について算出する。
次いで、経路算出部264は、重み算出部263から与えられた重み情報に基づいて、視差検出用DPマップの始点から各ノードP(x、△x)に至るまでの累積コストを計算する。
そして、経路算出部264は、算出された累積コストDFI(x、△x)〜DFI(x、△x)のうち、最小のものを選択し、選択されたものをノードP(x、△x)の累積コストDFI(x、△x)とする。経路算出部264は、すべてのノードP(x、△x)について累積コストDFI(x、△x)を算出し、視差検出用DPマップに格納する。
次いで、バックトラック部27は、累積コストが最小となる経路を終点から始点に向かって逆にたどることで、最短経路、即ち始点から終点までの累積コストが最小となる経路を算出する。この最短経路上のノードは、当該ノードに対応する左側画素の水平視差d1となる。したがって、バックトラック部27は、最短経路を算出することで、各左側画素の水平視差d1を検出する。
ステップS60において、バックトラック部27は、いずれかの左側画素に対応する垂直視差候補格納テーブルを垂直視差候補記憶部21から取得する。バックトラック部27は、取得した垂直視差候補格納テーブルに基づいて、左側画素の水平視差d1に対応する垂直視差候補△yを特定し、特定された垂直視差候補△yを左側画素の垂直視差d2とする。これにより、バックトラック部27は、垂直視差d2を検出する。そして、バックトラック部27は、全ての左側画素について垂直視差d2を検出し、検出された水平視差d1及び垂直視差d2に基づいて、グローバル視差マップを生成する。バックトラック部27は、生成されたグローバル視差マップをDSAD算出部22、評価部40、及びマップ生成部50に出力する。
一方、第2の視差検出部30は、画像取得部10から入力画像V、Vを取得する。さらに、第2の視差検出部30は、評価部40から前フレームの時間信頼度マップを取得し、マップ生成部50から前フレームの統合視差マップを取得する。
次いで、第2の視差検出部30は、前フレームの時間信頼度マップに基づいて、視差安定左側画素を特定する。そして、第2の視差検出部30は、前フレームの統合視差マップに基づいて、視差安定左側画素の前フレームの水平視差d1及び垂直視差d2、即ち安定水平視差d1’及び安定垂直視差d2’を特定する。そして、アンカーベクトル構築部24は、視差安定左側画素のxy座標にそれぞれ安定水平視差d1’及び安定垂直視差d2’を加算し、これにより得られたxy座標を有する右側画素を、視差安定右側画素とする。
さらに、第2の視差検出部30は、入力画像V、Vをそれぞれ複数の画素ブロックに分割する。そして、第2の視差検出部30は、左側画素ブロック内の各左側画素に対応する対応画素を、左側画素ブロックに対応する右側画素ブロックから検出する。ここで、第2の視差検出部30は、視差安定左側画素に対応する対応画素を検出する際には、視差安定右側画素を優先的に対応画素として検出する。第2の視差検出部30は、対応画素のx座標から左側画素のx座標を減算した値を左側画素の水平視差d1とし、対応画素のy座標から左側画素のy座標を減算した値を右側画素の垂直視差d2とする。第2の視差検出部30は、検出結果に基づいて、ローカル視差マップを生成する。第2の視差検出部30は、生成されたローカル視差マップを評価部40に出力する。
なお、第2の視差検出部30は、前フレームの時間信頼度マップ及び統合視差マップを取得することができない場合、視差安定左側画素を検出せずに、上記の処理を行なう。
ステップS70において、特徴量算出部41は、第1の視差検出部20及び第2の視差検出部30から与えられた視差マップ等に基づいて、2以上の特徴量マップを生成し、ニューラルネット処理部42に出力する。
次いで、ニューラルネット処理部42は、各特徴量マップを構成する左側画素のうち、いずれかの左側画素を評価対象画素とし、当該評価対象画素に対応する値を各特徴量マップから取得する。そして、ニューラルネット処理部42は、これらの値を入力値In0〜In(m−1)とすることで、出力値Out0〜Out2を取得する。
ニューラルネット処理部42は、評価対象画素を順次変更することで、新たな入力値In0〜In(m−1)を生成し、出力値Out0〜Out2を取得する。これにより、ニューラルネット処理部42は、時間信頼度マップ、比較信頼度マップ、及び各種情報マップを生成する。ニューラルネット処理部42は、これらのマップを周辺化処理部43に出力する。
次いで、周辺化処理部43は、ニューラルネット処理部42から与えられた各マップに周辺化(平滑化)処理を施す。周辺化処理部43は、周辺化処理を施した比較信頼度マップをマップ生成部50に出力する。さらに、周辺化処理部43は、周辺化処理を施した時間信頼度マップを第1の視差検出部20及び第2の視差検出部30に出力する。また、周辺化処理部43は、周辺化処理を施した各種情報マップを、当該各種情報マップを必要とするアプリケーションに提供する。
ステップS80において、マップ生成部50は、グローバル視差マップ、ローカル視差マップ、及び比較信頼度マップに基づいて、統合視差マップを生成する。ここで、上記の処理で生成される統合視差マップは、入力画像Vに対応する左目用統合視差マップである。画像処理装置1は、入力画像Vを基準として上記の処理を行うことで、入力画像Vに対応する右目用統合視差マップを生成する。マップ生成部50は、右目用統合視差マップ及び左目用統合視差マップを補正部60に出力する。補正部60は、これらの統合視差マップに基づいて、オクルージョン画素の視差ベクトルを補正し、補正後の右目用統合視差マップ及び左目用統合視差マップをマップ生成部50に出力する。マップ生成部50は、補正後の統合視差マップを裸眼立体視表示装置内の多視点画像生成アプリケーションに提供する。また、マップ生成部50は、補正後の統合視差マップを第1の視差検出部20に出力する。多視点画像生成アプリケーションは、オクルージョン画素の視差ベクトルが安定した統合視差マップに基づいた処理を行うことができるので、多視点画像を安定して生成することができる。
さらに、マップ生成部50は、入力画像V、V及び補正後の統合視差マップに基づいて、補正値α1を算出する。即ち、マップ生成部50は、入力画像V、V及び統合視差マップに基づいて、輝度差△Lxの算術平均値E(x)と、輝度差△Lxのべき乗の算術平均値E(x)とを算出する。そして、マップ生成部50は、算出された算術平均値E(x)、E(x)と、図14に示すクラス分けテーブルとに基づいて、入力画像V、Vのクラスを決定する。
次いで、マップ生成部50は、図17に示す補正値対応テーブルと、入力画像V、Vのクラスとに基づいて、補正値α1を決定する。マップ生成部50は、決定された補正値α1に関する補正値情報を第1の視差検出部20に出力する。その後、画像処理装置1は、処理を終了する。
図19に、ローカル視差マップ、グローバル視差マップ、及び補正後の統合視差マップが時間の経過に応じて更新される様子を示す。図11(a)は、ローカル視差マップが更新される様子を示し、図11(b)は、グローバル視差マップが更新される様子を示し、図11(c)は、統合視差マップが更新される様子を示す。
第0フレーム(#0)のローカル視差マップDML0には、ドットノイズが見受けられる。ローカルマッチングは、オクルージョンに弱い、安定性が悪い(精度がばらつきやすい)という短所があり、かつ、第0フレームでは、時間信頼度マップを参照することができないからである。
同様に、第0フレームのグローバル視差マップDMG0には、若干のストリーキング(スジ状のノイズ)が見受けられる。ローカルマッチングは、精度の良否が入力画像VL、の品質に依存しやすく、かつ、y方向の探索範囲が後のフレームに比べて若干狭いからである。
第0フレーム(#0)の統合視差マップDM0には、上記のドットノイズ及びストリーキングはほぼ見受けられない。上記の通り、統合視差マップDM0は、ローカル視差マップDML0及びグローバル視差マップDMG0のうち、信頼度が高い部分を統合したものだからである。
第1フレーム(#1)のローカル視差マップDML1には、ドットノイズはほぼ見受けられない。上述したように、第2の視差検出部30は、第0フレームの時間信頼度マップ及び統合視差マップに基づいてローカル視差マップDML1を生成することができるからである。
同様に、第1フレームのグローバル視差マップDMG1には、ストリーキングはほぼ見受けられない。例えば、領域A1でのストリーキングが特に減少している。この理由は、第1に、第1の視差検出部20は、DSADを算出する際に、第0フレームのグローバル視差マップDMG0に基づいて、y方向の探索範囲を実質的に拡大するからである。第2に、第1の視差検出部20は、前フレームの安定水平視差d1’を現フレームにおいても優先的に選択するからである。
第1フレーム(#1)の統合視差マップDM1は、第0フレームの統合視差マップDM0よりもさらに精度が向上している。上記の通り、統合視差マップDM1は、ローカル視差マップDML1及びグローバル視差マップDMG1のうち、信頼度が高い部分を統合したものだからである。
第2フレームでの各マップDML2、DMG2、DM2は、第1フレームの結果を反映したものになっているので、精度がさらに向上している。例えば、グローバル視差マップDMG2のうち、領域A2及びA3では、ストリーキングが特に減少している。
(補正部による処理)
次に、補正部60による処理の手順を図21に示すフローチャートに沿って説明する。なお、補正部60が左目用統合視差マップを補正する場合、フローチャート中の(x,y,side)は、左目用統合視差マップの画素、すなわち左側画素を示し、(x,y,!side)は、右目用統合視差マップの画素、すなわち右側画素を示す。一方、補正部60が右目用統合視差マップを補正する場合、(x,y,side)は、右側画素を示し、(x,y,!side)は、左側画素を示す。また、補正部60は、以下の処理を原点(0,0,side)から行う。また、ここでは、左目用統合視差マップを補正する場合を一例として説明する。
ステップS100において、補正部60は、左側画素(x,y,side)を基準画素(cx,cy,cside)とし、カウント値(cnt)を1にセットする。ステップS110において、補正部60は、基準画素の視差ベクトル(rx,ry)を取得する。ステップS120において、補正部60は、右目用統合視差マップから基準画素の視差ベクトルが示す対応画素(cx+rx,cy+ry,!cside)を取得する。さらに、補正部60は、対応画素の視差ベクトル(px,py)を取得する。
ステップS130において、補正部60は、基準画素と対応画素との整合性、すなわち基準画素の視差ベクトル(ry,ry)と対応画素の視差ベクトル(px,py)との整合性を計算する。具体的には、補正部60は、以下の式(16)に示される差分dを算出する。
ステップS140において、補正部60は、基準画素の視差ベクトル(ry,ry)と対応画素の視差ベクトル(px,py)とが整合しているか否かを判定する。具体的には、補正部60は、差分dが予め設定された整合性しきい値th未満であるか否かを判定する。補正部60は、差分dが整合性しきい値th未満である、すなわち基準画素の視差ベクトルが整合していると判定した場合には、ステップS150に進む。
一方、補正部60は、差分dが整合性しきい値th以上である、すなわち基準画素の視差ベクトルが整合していないと判定した場合には、カウント値と予め設定されたカウント上限値(limit)とを比較する。補正部60は、カウント値がカウント上限値以上であると判定した場合には、ステップS150に進む。補正部60は、カウント値がカウント上限値未満であると判定した場合には、対応画素の視差ベクトルが示す画素を左目用統合視差マップから抽出し、この画素を新たな基準画素とする。新たな基準画素は、以下の式(17)で示される。さらに、補正部60は、カウント値を1インクリメントする。その後、補正部60は、ステップS110に戻る。カウント上限値の値は任意であるが、画像処理装置1がハードウェアで実現される場合、例えば1とされる。この場合であっても、オクルージョン画素の視差ベクトルはかなり改善される。
ステップS150において、補正部60は、基準画素を左側画素(x,y,side)に近似する近似画素とし、近似画素の視差ベクトル(rx,ry)を補正視差ベクトルとする。そして、補正部60は、左側画素(x,y,side)の視差ベクトルを補正視差ベクトル、すなわち近似画素の視差ベクトルで置き換える。
ステップS160において、補正部60は、左側画素のx座標が左目用統合視差マップの幅(width)未満であるか否かを判定する。補正部60は、左側画素のx座標が左目用統合視差マップの幅(width)未満であると判定した場合には、x座標を1インクリメントし、ステップS100に戻る。補正部60は、左側画素のx座標が左目用統合視差マップの幅(width)以上であると判定した場合には、ステップS170に進む。
ステップS170において、補正部60は、左側画素のy座標が左目用統合視差マップの高さ(height)未満であるか否かを判定する。補正部60は、左側画素のy座標が左目用統合視差マップの高さ(height)未満であると判定した場合には、x座標を0にリセットし、y座標を1インクリメントし、ステップS100に戻る。補正部60は、左側画素のy座標が左目用統合視差マップの高さ(height)以上であると判定した場合には、本処理を終了する。
したがって、ステップS100〜S140が上述したベクトル追跡処理に相当する。また、補正部60は、左側画素がオクルージョン画素であるか否かを考慮せず、全ての左側画素に関して視差ベクトルの整合性を判定する。
図23は、補正部60による処理を行わなかった場合に出力される左目用時間信頼度マップを示す。黒く描かれた箇所は、視差ベクトルが安定しない箇所、すなわちオクルージョン領域を示す。図24は、カウント上限値を1として補正部60による処理を行った場合に出力される左目用時間信頼度マップを示す。なお、ベースとなる入力画像Vはいずれも同じものである。枠Pで示される箇所は、図23では黒で描かれるが、図24では白く描かれている。また、図24では全体的に黒部分が減少している。したがって、補正部60による処理によって、オクルージョン領域の視差ベクトルが安定した事がわかる。また、カウント上限値が1であっても十分な効果が見込まれる。
<4.画像処理装置による効果>
次に、画像処理装置1による効果を説明する。画像処理装置1は、右目用統合視差マップ及び左目用統合視差マップのうち、一方の視差マップ中のオクルージョン画素に近似する近似画素を、他方の視差マップに基づいて探索する。そして、画像処理装置1は、近似画素の視差ベクトルに基づいて、オクルージョン画素の補正視差ベクトルを算出する。したがって、画像処理装置1は、近似画素の視差ベクトルを他方の視差マップに基づいて探索するので、近似画素の視差ベクトルを簡易に探索することができる。そして、画像処理装置1は、オクルージョン画素の視差ベクトルを、近似画素の視差ベクトルで置き換えるので、オクルージョン画素の視差ベクトルをより簡易に安定させることができる。
さらに、画像処理装置1は、オクルージョン画素の視差ベクトルと、他方の視差マップとに基づいて、近似画素を探索するので、近似画素を簡易に探索することができる。
さらに、画像処理装置1は、他方の視差マップから、基準画素の視差ベクトルが示す対応画素を抽出し、オクルージョン画素の視差ベクトルと、対応画素の視差ベクトルとに基づいて、近似画素を探索する。したがって、画像処理装置1は、近似画素を簡易に探索することができる。
さらに、画像処理装置1は、ベクトル追跡処理を行い、オクルージョン画素の視差ベクトルと、対応画素の視差ベクトルとが整合しないと判定した場合には、一方の視差マップから対応画素の視差ベクトルが示す画素を新たな基準画素として抽出する。そして、画像処理装置1は、基準画素の視差ベクトルが整合するまでベクトル追跡処理を繰り返して行い、基準画素の視差ベクトルが整合した場合には、基準画素を近似画素とする。したがって、画像処理装置1は、近似画素をより簡易に探索することができる。
さらに、画像処理装置1は、入力画像Vを構成する第1の参照画素、及び第1の参照画素と垂直位置が異なる第2の参照画素を含む参照画素群から、対応画素の候補となる候補画素を検出する。そして、画像処理装置1は、基準画素の垂直位置から候補画素の垂直位置までの距離を示す垂直視差候補△yを垂直視差候補格納テーブルに格納する。
このように、画像処理装置1は、対応画素の候補となる候補画素を垂直方向(y方向)に探索し、この結果である垂直視差候補△yを垂直視差候補格納テーブルに格納する。したがって、画像処理装置1は、基準画素と同じ垂直位置にある右側画素のみならず、基準画素と異なる垂直位置にある右側画素も探索することができるので、ロバスト性及び精度の高い水平視差の検出を行なうことができる。
さらに、画像処理装置1は、第1の参照画素から垂直方向の所定範囲内に存在する画素を第2の画素として参照画素群に含めるので、y方向の探索範囲が過剰に広くなることを防止することができる。即ち、画像処理装置1は、最適化問題の爆発が起こることを防止することができる。
さらに、画像処理装置1は、水平位置の異なる第1の参照画素毎に、参照画素群を生成し、垂直視差候補△yを、水平視差候補△xに関連付けて垂直視差候補格納テーブルに格納する。これにより、画像処理装置1は、より精度の高い垂直視差候補格納テーブルを生成することができる。
このように、画像処理装置1は、入力画像V、Vを対比する(即ち、マッチング処理を行なう)ことで、垂直視差候補格納テーブルに垂直視差候補△yを格納する。しかし、画像処理装置1は、垂直視差候補格納テーブルに垂直視差候補△yをひと通り格納した後は、最短経路の算出等を行なうことで、水平視差d1を検出する。即ち、画像処理装置1は、マッチング処理を1回だけ行なうことで、水平視差d1を検出するので、水平視差d1を迅速に検出することができる。
そして、画像処理装置1は、垂直視差候補格納テーブルに格納された垂直視差候補△yのうち、水平視差d1に対応する垂直視差候補△yを基準画素の垂直視差d2として検出する。これにより、画像処理装置1は、垂直視差d2を精度よく検出することができる。即ち、画像処理装置1は、幾何ズレに強い視差検出を行うことができる。
さらに、画像処理装置1は、現フレームの右側画素のうち、現フレームの基準画素に対して前フレームで検出された垂直視差d2を有する画素を、現フレームの第1の参照画素とする。これにより、画像処理装置1は、第1の参照画素を更新することができ、この第1の参照画素を基準として参照画素群を形成することができる。したがって、画像処理装置1は、候補画素を探索する範囲を実質的に拡大することができる。
さらに、画像処理装置1は、入力画像V、Vの輝度差△Lx、即ち色ズレに応じた補正値α1に基づいて、DSAD(△x、j)を算出し、DSAD(△x、j)に基づいて、候補画素を検出する。したがって、画像処理装置1は、色ズレに強い視差検出を行うことができる。
さらに、画像処理装置1は、基準画素、第1の参照画素、及び第2の参照画素のみならず、これらの画素の周辺の画素の輝度に基づいて、DSAD(△x、j)を算出するので、DSAD(△x、j)を精度よく算出することができる。特に、画像処理装置1は、基準画素、第1の参照画素、及び第2の参照画素に対してy方向にずれた位置に存在する画素の輝度に基づいて、DSAD(△x、j)を算出するので、この点でも、幾何ズレに強い視差検出を行うことができる。
さらに、画像処理装置1は、入力画像V、Vの輝度差△Lx及び輝度差△Lxのべき乗に基づいて、補正値α1を算出するので、補正値α1を精度よく算出することができる。特に、画像処理装置1は、輝度差△Lx及び輝度差△Lxのべき乗を左側画素毎に算出し、これらの算術平均値をE(x)、E(x)を算出する。そして、画像処理装置1は、算術平均値E(x)、E(x)に基づいて、補正値α1を算出するので、補正値α1を精度よく算出することができる。
特に、画像処理装置1は、クラス分けテーブルに基づいて、前フレームの入力画像V、Vのクラスを判定し、前フレームの入力画像V、Vのクラスに基づいて、補正値α1を算出する。このクラスは、入力画像V、Vの明瞭度を示す。したがって、画像処理装置1は、補正値α1をより精度よく算出することができる。
さらに、画像処理装置1は、各種の特徴量マップを算出し、特徴量マップの値をニューラルネット処理部42の入力値In0〜In(m−1)とする。そして、画像処理装置1は、グローバル視差マップ及びローカル視差マップのうち、信頼度が高い方を示す比較信頼度を出力値Out1として算出する。これにより、画像処理装置1は、より精度の高い視差検出を行うことができる。すなわち、画像処理装置1は、これらのマップのうち、信頼度の高い部分同士が組み合わされた統合視差マップを生成することができる。
さらに、画像処理装置1は、ニューラルネットワークにより出力値Out0〜Out2を算出するので、出力値Out0〜Out2の精度が向上する。さらに、ニューラルネット処理部42のメンテナンス性が向上する(即ち、メンテナンスが容易となる)。さらに、ノード421同士は複雑に連結しているので、ノード421同士の組み合わせは膨大となる。したがって、画像処理装置1は、比較信頼度の精度を向上させることができる。
さらに、画像処理装置1は、統合視差マップを次フレームで参照可能か否かを示す時間信頼度を出力値Out0として算出する。したがって、画像処理装置1は、次フレームの視差検出を、当該時間信頼度に基づいて行うことができる。これにより、画像処理装置1は、より精度の高い視差検出を行うことができる。具体的には、画像処理装置1は、時間信頼度を左側画素毎に示す時間信頼度マップを生成する。したがって、画像処理装置1は、統合視差マップが示す各左側画素の水平視差d1及び垂直視差d2のうち、時間信頼度の高い視差を次フレームでも優先的に選択することができる。
また、画像処理装置1は、DSADを視差検出用DPマップのスコアとするので、単にSADのみをスコアとする場合よりも、視差検出用DPマップのスコアを精度良く算出することができ、ひいては、視差検出を精度良く行なうことができる。
また、画像処理装置1は、各ノードP(x、d)の累積コストを算出する際に、水平差分に応じた重みwt、wtを考慮するので、累積コストを精度良く算出することができる。この重みwt、wtは、エッジ部では小さくなり、平坦部では大きくなるので、スムージングが画像に応じて適切に行われるようになる。
また、画像処理装置1は、グローバル視差マップと入力画像Vとのエッジ画像の相関を示す相関マップを生成し、この相関マップに基づいてグローバル視差マップの信頼度を算出する。したがって、画像処理装置1は、グローバル視差マップのいわゆるストリーキング領域での信頼度を算出することができる。このため、画像処理装置1は、ストリーキング領域において、視差検出を精度良く行うことができる。
また、画像処理装置1は、グローバル視差マップとローカル視差マップとを評価する際に、それぞれ異なる評価手法にてグローバル視差マップとローカル視差マップとを評価するので、これらの特性を考慮した評価を行うことができる。
また、画像処理装置1は、それぞれの評価手法により得られたマップにIIRフィルタを掛けることで、グローバルマッチング用信頼度マップと、ローカルマッチング用信頼度マップとを生成するので、時間的に安定した信頼度マップを生成することができる。
また、画像処理装置1は、グローバル視差マップとローカル視差マップとのうち、信頼度の高い方を用いて統合視差マップを生成する。したがって、画像処理装置1は、グローバルマッチングでは正確な視差が検出されにくい領域、及びローカルマッチングでは正確な視差が検出されにくい領域において、正確な視差を検出することができる。
また、画像処理装置1は、生成された統合視差マップを次フレームで考慮するので、単に複数のマッチング手法を並行して行う場合よりも、視差検出を精度良く行なうことができる。
<5.各種変形例>
次に、本実施形態の各種変形例を説明する。
(第1の変形例)
第1の変形例に係る補正部60は、オクルージョン画素の視差ベクトルがローカルマッチングにより算出されたものである場合に、補正視差ベクトルの算出、置き換えを行う。この理由は以下の通りである。すなわち、ローカルマッチングでは、ある制限された領域内でマッチングが行われているので、近似画素とオクルージョン画素とが近い位置にある場合が多い。言い換えれば、近似画素の信頼度が高い。
一方、グローバルマッチングでは、入力画像全体を対象としてマッチングが行われているので、オクルージョン画素の視差ベクトルがオクルージョン画素とは全く関係のない(非常に距離が離れている)画素を示している可能性がある。この場合、補正部60がオクルージョン画素の視差ベクトルを起点として視差ベクトルを追いかけると、オクルージョン画素とは全く関係のない画素を近似画素とする可能性がある。すなわち、近似画素の信頼度が低くなる可能性がある。
したがって、第1の変形例では、画像処理装置1は、オクルージョン画素の視差ベクトルの算出に使用されたマッチング方法の種類に基づいて、近似画素の探索を行うか否かを決定する。これにより、画像処理装置1は、より信頼度の高い近似画素を探索することができる。
具体的には、画像処理装置1は、オクルージョン画素の視差ベクトルがローカルマッチングにより算出された場合には、近似画素の探索を行う。したがって、画像処理装置1は、より信頼度の高い近似画素を探索することができる。
(第2の変形例)
第2の変形例では、補正部60は、ローカル視差マップ内のオクルージョン画素に対して補正視差ベクトルの算出、置き換えを行う。すなわち、第2の変形例では、マップ生成部50は、ローカル視差マップを補正部60に出力し、補正部60は、ローカル視差マップに対して図21に示す処理を行う。そして、補正部60は、補正後のローカル視差マップをマップ生成部50に出力する。マップ生成部50は、グローバル視差マップと、補正後のローカル視差マップとを時間信頼度マップに基づいて合成する。なお、マップ生成部50は、オクルージョン画素を合成する際には、時間信頼度マップの値にかかわらず、ローカル視差マップの視差ベクトルを優先してもよい。第2の変形例でも、第1の変形例と同様の効果が得られる。
(第3の変形例)
次に、第3の変形例を説明する。まず、図20に基づいて、補正部60の構成について説明する。補正部60は、時間最小ベクトル(時間Minベクトル)算出部61と、引き込みベクトル算出部62と、ベクトル統合部63とを備える。なお、以下の説明では、左目用視差マップ(左目用統合視差マップ等)を補正する処理を一例として説明するが、右目用視差マップも同様に補正されうる。
時間最小ベクトル算出部61は、現フレームの左目用統合視差マップと前フレームの左目用統合視差マップとを取得する。時間最小ベクトル算出部61は、予め全ての視差ベクトル(前フレームの視差ベクトル含む)の符号を逆転させる(正規化する)。なお、右目用統合視差マップが補正される場合には、このような正規化は不要である。そして、時間最小ベクトル算出部61は、現フレームの統合視差マップのうち、いずれかの画素を注目画素とする。
そして、時間最小ベクトル算出部61は、注目画素を含む所定領域(パッチ)を設定する。そして、時間最小ベクトル算出部61は、所定領域内における現フレームの視差ベクトル(Dx、Dy)及び前フレームの視差ベクトル(Rel)のうち、符号を含めた最小のベクトルを注目画素の時間最小ベクトル(MinDx、MinDy)とする。そして、時間最小ベクトル算出部61は、現フレームの左目用統合視差マップの全画素について、時間最小ベクトルを算出する。ここで、時間最小ベクトルは、所定領域内に存在する被写体のうち最も奥に存在する被写体の視差ベクトルとなっている可能性がある。この理由は以下の通りである。
すなわち、立体視された被写体は、ユーザからの距離が大きい(奥に存在する)ほど、他の被写体によって隠れやすい。そして、被写体の視差ベクトルは、ユーザからの距離が大きいほど、符号を含めて小さくなる。一方、あるフレームで隠れている被写体は、他のフレームで見えている(入力画像V、Vの両方で表示されている)可能性がある。したがって、時間最小ベクトルは、所定領域内に存在する被写体のうち最も奥に存在する被写体の視差ベクトルとなっている可能性がある。時間最小ベクトルは、オクルージョン領域では信頼度が高く、非オクルージョン領域では信頼度が低いという特性がある。時間最小ベクトル算出部61は、時間最小ベクトルをベクトル統合部63に出力する。なお、時間最小ベクトル算出部61は、前フレームだけでなく、より多くの過去フレームに基づいて、時間最小ベクトルを抽出してもよい。これにより、時間最小ベクトルの信頼度が向上する。
引き込みベクトル算出部62は、現フレームの左目用統合視差マップに基づいて、上述した引き込みベクトル(PullDx、PullDy)を算出し、ベクトル統合部63に出力する。なお、引き込みベクトルは、オクルージョン領域及び非オクルージョン領域の両方で信頼度が高いという特性がある。
ベクトル統合部63は、左目用統合視差マップを取得し、左目用統合視差マップの視差ベクトル、すなわちオリジナルベクトル(Dx、Dy)と、時間最小ベクトルと、引き込みベクトルとを統合することで、補正視差ベクトルを算出する。ここで、ベクトル統合部63は、全画素について補正視差ベクトルを算出する。すなわち、ベクトル統合部63は、左目用統合視差マップの各画素がオクルージョン画素であるか否かの明示的な判定は行わず、全画素について補正視差ベクトルを算出する。
具体的には、ベクトル統合部63は、3つのオリジナルベクトル(Dx、Dy)と、3つの時間最小ベクトルと、3つの引き込みベクトルとのメディアン(中間値)を算出し、この中間値を補正視差ベクトル(Dx’、Dy’)とする。ここで、オリジナルベクトルは、オクルージョン領域での信頼度が低いが、非オクルージョン領域での信頼度が高いという特性がある。また、ベクトル統合部63は、3つのベクトルを同じ数だけ加算すればよい。例えば、ベクトル統合部63は、3つのベクトルをそれぞれ4つずつ加算してもよい。このように、第3の変形例では、3つのベクトルを同じ数だけ加算する。このような処理を行う理由は以下の通りである。
すなわち、ベクトル統合部63は、各画素がオクルージョン画素であるか否かの明示的な判定は行わない。言い換えれば、ベクトル統合部63は、3つのベクトルの信頼度を判定しない。一方、3つのベクトルは、オクルージョン画素及び非オクルージョン画素のいずれかで信頼度が高くなる。このため、ベクトル統合部63にとっては、3つのベクトルの信頼度が高くなる確からしさは同じ程度となる。そこで、ベクトル統合部63は、3つのベクトルを同じ数だけ加算する。なお、後述する第4の変形例のように、一部のベクトルの信頼度が低いことが明らかであれば、ベクトル統合部63は、そのベクトルの加算数(中間値の算出に用いるベクトルの数)を小さくする。
このように、第3の変形例では、補正部60は、オクルージョン画素のオリジナルベクトル、時間最小ベクトル、及び引き込みベクトルに基づいて、オクルージョン画素の補正視差ベクトルを算出する。ここで、左目用統合視差マップのあらゆる領域で、3つのベクトル(オリジナルベクトル、時間最小ベクトル、及び引き込みベクトル)のうち、2つのベクトルの信頼度が高い。したがって、補正視差ベクトルの信頼度も高くなる。したがって、補正部60は、オクルージョン画素の視差ベクトルをより確実に安定させることができる。特に、補正視差ベクトルは時間最小ベクトルに基づいて算出されるため、より時間的に安定する。
本変形例は、引き込みベクトルの算出時のカウント上限値が低い場合、すなわち引き込みベクトルが整合していない(収束していない)可能性がある場合に特に好適である。この場合、引き込みベクトルの精度(安定性)は十分でない可能性があるが、不足分を他のベクトル、すなわち時間最小ベクトル及びオリジナルベクトルで補間することができるからである。
(第4の変形例)
第4の変形例では、3つのベクトルのうち、いずれか1つ(または2つ)のベクトルがグローバル視差マップに基づいて算出され、残りのベクトルがローカル視差マップに基づいて算出される。例えば、時間最小ベクトルのみがグローバル視差マップに基づいて算出され、他のベクトルがローカル視差マップに基づいて算出される。上述したように、グローバル視差マップの視差ベクトルは、ローカル視差マップの視差ベクトルよりも信頼度が低い。
この場合、ベクトル統合部63は、時間最小ベクトルの加算数を他のベクトルよりも低くする。例えば、ベクトル統合部63は、オリジナルベクトル及び引き込みベクトルの加算数をそれぞれ4とし、時間最小ベクトルの加算数を1とする。なお、加算数の総数は第3の変形例と同数であってもよく、異なっていてもよい。
したがって、ベクトル統合部63は、オクルージョン画素の時間最小ベクトル、引き込みベクトル、及びオリジナルベクトルの信頼度に応じた重みづけを行い、重み付けされたベクトルに基づいて、補正視差ベクトルを算出する。これにより、ベクトル統合部63は、オクルージョン画素の視差ベクトルをより確実に安定させることができる。
(第5の変形例)
第5の変形例では、いわゆる機械学習により3つのベクトルからいずれかのベクトルを選択するものである。具体的には、まず、ベクトル統合部63は、上述した特徴量算出部41(図10参照)と同様に特徴量マップ(演算特徴量)を生成する。そして、ベクトル統合部63は、以下の式(18)に示されるlabelを画素毎に算出する。
ここで、labelは、3つのベクトルのいずれかを示すクラス値であり、i、jは1〜3のいずれかの整数である。i、jは、3つのベクトルのいずれかを示す。例えば、i、j=1の場合、i、jはオリジナルベクトルを示し、i、j=2の場合、i、jは時間最小ベクトルを示し、i、j=3の場合、i、jは引き込みベクトルを示す。ωはjで示されるベクトルに対応する係数であり、ωはiで示されるベクトルに対応する係数である。xは演算特徴量である。従って、式(18)は、演算特徴量と3つのベクトルとの相関関係を示す式であるといえる。
ベクトル統合部63は、上述したニューラルネットと同様に、予め用意された教師関数により係数ω、ωを学習する。すなわち、ベクトル統合部63は、演算特徴量と3つのベクトルとの相関関係を学習する。なお、ニューラルネット処理部42は、上述した出力値Out2を本変形例のクラス値としてもよい。
そして、ベクトル統合部63は、labelに基づいて、3つのベクトルからいずれかのベクトルを選択し、選択したベクトルを補正視差ベクトルとする。このように、本変形例でも、ベクトル統合部63は、各画素がオクルージョン画素であるか否かの明示的な判定を行わず、全画素について補正視差ベクトルを算出する。本変形例によれば、ベクトル統合部63は、演算特徴量と3つのベクトルとの相関関係を学習し、学習結果に基づいて、補正視差ベクトルを算出するので、オクルージョン画素の視差ベクトルをより確実に安定させることができる。
(第6の変形例)
第6の変形例は、補正視差ベクトルの空間的な連続性を考慮して補正視差ベクトルを算出するものである。具体的には、ベクトル統合部63は、以下の式(19)で示されるerrorを画素毎に算出する。
ここで、errorは、3つのベクトルのいずれかを示すクラス値である。iは1〜3の整数であり、その意義は第5の変形例と同様である。xは出力値、yは入力値である。具体的には、xは、3つのベクトルのいずれかである。yは、xの算出に使用された視差ベクトル(例えば統合視差マップの視差ベクトル、ローカル視差マップの視差ベクトル、グローバル視差マップの視差ベクトル等)である。
式(19)の前段の式は、3つのベクトルを判別するためのスコアであり、後段の式は、隣接する画素同士のクラス値の差分、すなわち、隣接する画素同士のベクトル値の差分を意味する。すなわち、後段の式は、補正視差ベクトルの空間的な連続性を考慮した式となっている。
そして、ベクトル統合部63は、errorに基づいて、3つのベクトルからいずれかのベクトルを選択し、選択したベクトルを補正視差ベクトルとする。このように、本変形例でも、ベクトル統合部63は、各画素がオクルージョン画素であるか否かの明示的な判定を行わず、全画素について補正視差ベクトルを算出する。本変形例によれば、ベクトル統合部63は、3つのベクトルを判別するためのスコアを算出し、当該スコアと、隣接する画素同士のベクトル値の差分とに基づいて、オクルージョン画素の補正視差ベクトルを算出する。したがって、ベクトル統合部63は、オクルージョン画素の視差ベクトルをより確実に安定させることができる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本開示の技術的範囲はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
例えば、上記実施形態では、補正部60は、視差ベクトルを追いかけることで、視差ベクトルが整合する近似画素を探索したが、本技術はかかる例に限定されない。例えば、補正部60は、右目用統合視差マップの全画素を順次調べることで、近似画素を探索するようにしてもよい。また、上記の各変形例を組み合わせてもよい。例えば、第5の変形例と第6の変形例を組み合わせてもよい。この場合、算出されたLabelは、各画素のLabelの空間的な連続性を考慮して補正される。
また、上記実施形態では、右目用視差マップ及び左目用視差マップのオクルージョン領域の視差ベクトルを補正したが、オプティカルフローに本技術を適用してもよい。この場合、例えば、現フレームのオプティカルフローは左目用視差マップに相当し、前フレームのオプティカルフローは右目用視差マップに相当する。現フレームの各画素のモーションベクトルは、前フレームの対応画素を示し、前フレームの各画素のモーションベクトルは現フレームの対応画素を示す。したがって、モーションベクトルは視差ベクトルに相当する。本実施形態の技術をオプティカルフローに適用した場合、オプティカルフロー中のオクルージョン領域のモーションベクトルを、例えば引き込みベクトル、時間最小ベクトル、及びオリジナルベクトルに基づいて補正することができる。
なお、以下のような構成も本開示の技術的範囲に属する。
(1)
右目用視差マップ及び左目用視差マップのうち、一方の視差マップ中のオクルージョン画素に近似する近似画素を、他方の視差マップに基づいて探索し、前記近似画素の視差ベクトルに基づいて、前記オクルージョン画素の補正視差ベクトルを算出する補正部を備える、画像処理装置。
(2)
前記補正部は、前記オクルージョン画素の視差ベクトルと、前記他方の視差マップとに基づいて、前記近似画素を探索する、前記(1)記載の画像処理装置。
(3)
前記補正部は、前記他方の視差マップから、前記オクルージョン画素の視差ベクトルが示す対応画素を抽出し、前記オクルージョン画素の視差ベクトルと、前記対応画素の視差ベクトルとに基づいて、前記近似画素を探索する、前記(2)記載の画像処理装置。
(4)
前記補正部は、前記オクルージョン画素を基準画素とし、前記他方の視差マップから、前記基準画素の視差ベクトルが示す対応画素を抽出し、前記オクルージョン画素の視差ベクトルと、前記対応画素の視差ベクトルとの整合性を判定するベクトル追跡処理を行い、前記オクルージョン画素の視差ベクトルと、前記対応画素の視差ベクトルとが整合しないと判定した場合には、前記一方の視差マップから前記対応画素の視差ベクトルが示す画素を新たな前記基準画素として抽出し、前記ベクトル追跡処理を繰り返して行う、前記(3)記載の画像処理装置。
(5)
前記補正部は、前記オクルージョン画素の視差ベクトルの算出に使用されたマッチング方法の種類に基づいて、前記近似画素の探索を行うか否かを決定する、前記(1)〜(4)のいずれか1項に記載の画像処理装置。
(6)
前記補正部は、前記オクルージョン画素の視差ベクトルがローカルマッチングにより算出された場合には、前記近似画素の探索を行う、前記(5)記載の画像処理装置。
(7)
前記補正部は、前記オクルージョン画素を含む所定領域内の視差ベクトルのうち、所定時間内の値が最小となる時間最小ベクトルを検出し、前記時間最小ベクトルと、前記近似画素の視差ベクトルと、前記オクルージョン画素の視差ベクトルとに基づいて、前記オクルージョン画素の補正視差ベクトルを算出する、前記(1)〜(6)のいずれか1項に記載の画像処理装置。
(8)
前記補正部は、前記時間最小ベクトル、前記近似画素の視差ベクトル、及び前記オクルージョン画素の視差ベクトルの信頼度に応じた重みづけを行い、重み付けされたベクトルに基づいて、前記オクルージョン画素の補正視差ベクトルを算出する、前記(7)記載の画像処理装置。
(9)
前記補正部は、重み付けされたベクトルの中間値を前記オクルージョン画素の補正視差ベクトルとして算出する、前記(8)記載の画像処理装置。
(10)
前記補正部は、前記オクルージョン画素の演算特徴量を算出し、前記演算特徴量と、前記時間最小ベクトル、前記近似画素の視差ベクトル、及び前記オクルージョン画素の視差ベクトルとの相関関係を学習し、学習結果に基づいて、前記オクルージョン画素の補正視差ベクトルを算出する、前記(7)記載の画像処理装置。
(11)
前記補正部は、前記時間最小ベクトル、前記近似画素の視差ベクトル、及び前記オクルージョン画素の視差ベクトルを判別するためのスコアを算出し、当該スコアと、隣接する画素同士のベクトル値の差分とに基づいて、前記オクルージョン画素の補正視差ベクトルを算出する、前記(7)記載の画像処理装置。
(12)
右目用視差マップ及び左目用視差マップのうち、一方の視差マップ中のオクルージョン画素に近似する近似画素を、他方の視差マップに基づいて探索し、前記近似画素の視差ベクトルに基づいて、前記オクルージョン画素の補正視差ベクトルを算出することを含む、画像処理方法。
(13)
コンピュータに、
右目用視差マップ及び左目用視差マップのうち、一方の視差マップ中のオクルージョン画素に近似する近似画素を、他方の視差マップに基づいて探索し、前記近似画素の視差ベクトルに基づいて、前記オクルージョン画素の補正視差ベクトルを算出する補正機能を実現させる、プログラム。
1 画像処理装置
10 画像取得部
20 第1の視差検出部
30 第2の視差検出部
40 評価部
50 マップ生成部
60 補正部
61 時間最小ベクトル算出部
62 引き込みベクトル算出部

Claims (13)

  1. 右目用視差マップ及び左目用視差マップのうち、一方の視差マップ中のオクルージョン画素に近似する近似画素を、他方の視差マップに基づいて探索し、前記近似画素の視差ベクトルに基づいて、前記オクルージョン画素の補正視差ベクトルを算出する補正部を備える、画像処理装置。
  2. 前記補正部は、前記オクルージョン画素の視差ベクトルと、前記他方の視差マップとに基づいて、前記近似画素を探索する、請求項1記載の画像処理装置。
  3. 前記補正部は、前記他方の視差マップから、前記オクルージョン画素の視差ベクトルが示す対応画素を抽出し、前記オクルージョン画素の視差ベクトルと、前記対応画素の視差ベクトルとに基づいて、前記近似画素を探索する、請求項2記載の画像処理装置。
  4. 前記補正部は、前記オクルージョン画素を基準画素とし、前記他方の視差マップから、前記基準画素の視差ベクトルが示す対応画素を抽出し、前記オクルージョン画素の視差ベクトルと、前記対応画素の視差ベクトルとの整合性を判定するベクトル追跡処理を行い、前記オクルージョン画素の視差ベクトルと、前記対応画素の視差ベクトルとが整合しないと判定した場合には、前記一方の視差マップから前記対応画素の視差ベクトルが示す画素を新たな前記基準画素として抽出し、前記ベクトル追跡処理を繰り返して行う、請求項3記載の画像処理装置。
  5. 前記補正部は、前記オクルージョン画素の視差ベクトルの算出に使用されたマッチング方法の種類に基づいて、前記近似画素の探索を行うか否かを決定する、請求項1記載の画像処理装置。
  6. 前記補正部は、前記オクルージョン画素の視差ベクトルがローカルマッチングにより算出された場合には、前記近似画素の探索を行う、請求項5記載の画像処理装置。
  7. 前記補正部は、前記オクルージョン画素を含む所定領域内の視差ベクトルのうち、所定時間内の値が最小となる時間最小ベクトルを検出し、前記時間最小ベクトルと、前記近似画素の視差ベクトルと、前記オクルージョン画素の視差ベクトルとに基づいて、前記オクルージョン画素の補正視差ベクトルを算出する、請求項1記載の画像処理装置。
  8. 前記補正部は、前記時間最小ベクトル、前記近似画素の視差ベクトル、及び前記オクルージョン画素の視差ベクトルの信頼度に応じた重みづけを行い、重み付けされたベクトルに基づいて、前記オクルージョン画素の補正視差ベクトルを算出する、請求項7記載の画像処理装置。
  9. 前記補正部は、重み付けされたベクトルの中間値を前記オクルージョン画素の補正視差ベクトルとして算出する、請求項8記載の画像処理装置。
  10. 前記補正部は、前記オクルージョン画素の演算特徴量を算出し、前記演算特徴量と、前記時間最小ベクトル、前記近似画素の視差ベクトル、及び前記オクルージョン画素の視差ベクトルとの相関関係を学習し、学習結果に基づいて、前記オクルージョン画素の補正視差ベクトルを算出する、請求項7記載の画像処理装置。
  11. 前記補正部は、前記時間最小ベクトル、前記近似画素の視差ベクトル、及び前記オクルージョン画素の視差ベクトルを判別するためのスコアを算出し、当該スコアと、隣接する画素同士のベクトル値の差分とに基づいて、前記オクルージョン画素の補正視差ベクトルを算出する、請求項7記載の画像処理装置。
  12. 右目用視差マップ及び左目用視差マップのうち、一方の視差マップ中のオクルージョン画素に近似する近似画素を、他方の視差マップに基づいて探索し、前記近似画素の視差ベクトルに基づいて、前記オクルージョン画素の補正視差ベクトルを算出することを含む、画像処理方法。
  13. コンピュータに、
    右目用視差マップ及び左目用視差マップのうち、一方の視差マップ中のオクルージョン画素に近似する近似画素を、他方の視差マップに基づいて探索し、前記近似画素の視差ベクトルに基づいて、前記オクルージョン画素の補正視差ベクトルを算出する補正機能を実現させる、プログラム。
JP2012224871A 2012-10-10 2012-10-10 画像処理装置、画像処理方法、及びプログラム Pending JP2014078095A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012224871A JP2014078095A (ja) 2012-10-10 2012-10-10 画像処理装置、画像処理方法、及びプログラム
US14/032,566 US9509971B2 (en) 2012-10-10 2013-09-20 Image processing device, image processing method, and program
CN201310462908.XA CN103731651A (zh) 2012-10-10 2013-09-30 图像处理装置、图像处理方法和程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012224871A JP2014078095A (ja) 2012-10-10 2012-10-10 画像処理装置、画像処理方法、及びプログラム

Publications (1)

Publication Number Publication Date
JP2014078095A true JP2014078095A (ja) 2014-05-01

Family

ID=50432328

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012224871A Pending JP2014078095A (ja) 2012-10-10 2012-10-10 画像処理装置、画像処理方法、及びプログラム

Country Status (3)

Country Link
US (1) US9509971B2 (ja)
JP (1) JP2014078095A (ja)
CN (1) CN103731651A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016090449A (ja) * 2014-11-07 2016-05-23 国立研究開発法人産業技術総合研究所 ステレオマッチング装置とステレオマッチングプログラムとステレオマッチング方法
JP2016099318A (ja) * 2014-11-26 2016-05-30 国立研究開発法人産業技術総合研究所 ステレオマッチング装置とステレオマッチングプログラムとステレオマッチング方法
JP2017021759A (ja) * 2015-07-15 2017-01-26 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
WO2020075237A1 (ja) * 2018-10-10 2020-04-16 日本電気株式会社 画像処理装置および画像処理方法
WO2021014495A1 (ja) * 2019-07-19 2021-01-28 日本電信電話株式会社 ラベル推定装置、ラベル推定方法、及びラベル推定プログラム
JP2021527877A (ja) * 2019-01-31 2021-10-14 深▲せん▼市商▲湯▼科技有限公司Shenzhen Sensetime Technology Co., Ltd. 3次元人体姿勢情報の検出方法および装置、電子機器、記憶媒体

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105023263B (zh) * 2014-04-22 2017-11-14 南京理工大学 一种基于区域生长的遮挡检测和视差校正的方法
CN104463890B (zh) * 2014-12-19 2017-05-24 北京工业大学 一种立体图像显著性区域检测方法
WO2017043258A1 (ja) * 2015-09-09 2017-03-16 シャープ株式会社 計算装置および計算装置の制御方法
JP6991700B2 (ja) * 2016-04-28 2022-01-12 キヤノン株式会社 情報処理装置、情報処理方法、プログラム
JP6681467B2 (ja) * 2016-06-08 2020-04-15 株式会社ソニー・インタラクティブエンタテインメント 画像生成装置および画像生成方法
CN106600583B (zh) * 2016-12-07 2019-11-01 西安电子科技大学 基于端到端神经网络的视差图获取方法
WO2018179671A1 (ja) * 2017-03-27 2018-10-04 ソニー株式会社 画像処理装置と画像処理方法および撮像装置
US10671881B2 (en) 2017-04-11 2020-06-02 Microsoft Technology Licensing, Llc Image processing system with discriminative control
US10586308B2 (en) * 2017-05-09 2020-03-10 Adobe Inc. Digital media environment for removal of obstructions in a digital image scene
CN107807736B (zh) * 2017-11-10 2020-11-06 泰瑞数创科技(北京)有限公司 3d场景交互装置、系统和交互方法
CN108734693B (zh) * 2018-03-30 2019-10-25 百度在线网络技术(北京)有限公司 用于生成信息的方法和装置
CN109191512B (zh) 2018-07-27 2020-10-30 深圳市商汤科技有限公司 双目图像的深度估计方法及装置、设备、程序及介质
CN112967283B (zh) * 2021-04-22 2023-08-18 上海西井科技股份有限公司 基于双目摄像头的目标识别方法、系统、设备及存储介质
CN114845094B (zh) * 2022-07-06 2022-09-30 深圳思谋信息科技有限公司 色彩校正方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7324687B2 (en) 2004-06-28 2008-01-29 Microsoft Corporation Color segmentation-based stereo 3D reconstruction system and process
EP2160037A3 (en) * 2006-06-23 2010-11-17 Imax Corporation Methods and systems for converting 2D motion pictures for stereoscopic 3D exhibition
US8351685B2 (en) 2007-11-16 2013-01-08 Gwangju Institute Of Science And Technology Device and method for estimating depth map, and method for generating intermediate image and method for encoding multi-view video using the same
JP2011070415A (ja) * 2009-09-25 2011-04-07 Fujifilm Corp 画像処理装置及び画像処理方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016090449A (ja) * 2014-11-07 2016-05-23 国立研究開発法人産業技術総合研究所 ステレオマッチング装置とステレオマッチングプログラムとステレオマッチング方法
JP2016099318A (ja) * 2014-11-26 2016-05-30 国立研究開発法人産業技術総合研究所 ステレオマッチング装置とステレオマッチングプログラムとステレオマッチング方法
JP2017021759A (ja) * 2015-07-15 2017-01-26 キヤノン株式会社 画像処理装置、画像処理方法及びプログラム
WO2020075237A1 (ja) * 2018-10-10 2020-04-16 日本電気株式会社 画像処理装置および画像処理方法
JPWO2020075237A1 (ja) * 2018-10-10 2021-09-02 日本電気株式会社 画像処理装置および画像処理方法
US11475233B2 (en) 2018-10-10 2022-10-18 Nec Corporation Image processing device and image processing method
JP2021527877A (ja) * 2019-01-31 2021-10-14 深▲せん▼市商▲湯▼科技有限公司Shenzhen Sensetime Technology Co., Ltd. 3次元人体姿勢情報の検出方法および装置、電子機器、記憶媒体
WO2021014495A1 (ja) * 2019-07-19 2021-01-28 日本電信電話株式会社 ラベル推定装置、ラベル推定方法、及びラベル推定プログラム
JPWO2021014495A1 (ja) * 2019-07-19 2021-01-28

Also Published As

Publication number Publication date
CN103731651A (zh) 2014-04-16
US9509971B2 (en) 2016-11-29
US20140098089A1 (en) 2014-04-10

Similar Documents

Publication Publication Date Title
JP2014078095A (ja) 画像処理装置、画像処理方法、及びプログラム
US9123115B2 (en) Depth estimation based on global motion and optical flow
US9171372B2 (en) Depth estimation based on global motion
JP5952001B2 (ja) 深さ情報を用いたカメラモーションの推定方法および装置、拡張現実システム
US20140176672A1 (en) Systems and methods for image depth map generation
CN109961406A (zh) 一种图像处理的方法、装置及终端设备
JP2013073598A (ja) 画像処理装置、画像処理方法、及びプログラム
US20130147911A1 (en) Automatic 2d-to-stereoscopic video conversion
CN109615703A (zh) 增强现实的图像展示方法、装置及设备
Cheng et al. Spatio-temporally consistent novel view synthesis algorithm from video-plus-depth sequences for autostereoscopic displays
KR100560464B1 (ko) 관찰자의 시점에 적응적인 다시점 영상 디스플레이 시스템을 구성하는 방법
CN101971211A (zh) 用于修改数字图像的方法和设备
KR20060133764A (ko) 중간영상 생성방법 및 이 방법이 적용되는 입체영상디스플레이장치
KR20090008808A (ko) 2차원 영상 신호의 3차원 영상 신호로의 변환 절차 및 변환장치
US20160180514A1 (en) Image processing method and electronic device thereof
US20130100125A1 (en) Method, System and Computer Program Product for Enhancing a Depth Map
CN108986197A (zh) 3d骨架线构建方法及装置
Wang et al. Stereoscopic image retargeting based on 3D saliency detection
JP2019184308A (ja) 奥行推定装置およびそのプログラム、ならびに、仮想視点映像生成装置およびそのプログラム
KR20110112143A (ko) Ldi 기법 깊이맵을 참조한 2d 동영상의 3d 동영상 전환방법
Yang et al. Depth map generation using local depth hypothesis for 2D-to-3D conversion
JP2014072809A (ja) 画像生成装置、画像生成方法、画像生成装置用プログラム
JP2012203852A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2014093602A (ja) 画像処理装置、画像処理方法、画像処理プログラム、および立体画像表示装置
KR100489894B1 (ko) 양안식 스테레오 영상의 카메라 광축 간격 조절 장치 및그 방법