視差画像生成装置、視差画像生成方法、プログラム及び記憶媒体
【課題】隠れ面が違和感なく補正された視差画像を生成することができる視差画像生成装置等を提供する。
【解決手段】制御部11は、サンプリング点Xsと処理対象のカメラ位置(CXi、CZi)とを通る視線直線31aを算出し、奥行き値同士の区間の中で視線直線31aが通る区間のいずれか1つを採用区間とし、採用区間の両端を示す左奥行き値34a及び右奥行き値35aのうち、より奥側の値を示す方の画素位置を参照位置とする。次に、制御部11は、ラベル画像3に基づいて参照位置が隠れ面か否かを判定し、隠れ面でない場合には2次元画像2における参照位置の画素値をサンプリング点Xsの画素値とする。隠れ面の場合には、隠れ面境界位置を特定し、隠れ面境界位置に基づいて折り返しコピーを行うことにより補償画素値を割り当てる。
【解決手段】制御部11は、サンプリング点Xsと処理対象のカメラ位置(CXi、CZi)とを通る視線直線31aを算出し、奥行き値同士の区間の中で視線直線31aが通る区間のいずれか1つを採用区間とし、採用区間の両端を示す左奥行き値34a及び右奥行き値35aのうち、より奥側の値を示す方の画素位置を参照位置とする。次に、制御部11は、ラベル画像3に基づいて参照位置が隠れ面か否かを判定し、隠れ面でない場合には2次元画像2における参照位置の画素値をサンプリング点Xsの画素値とする。隠れ面の場合には、隠れ面境界位置を特定し、隠れ面境界位置に基づいて折り返しコピーを行うことにより補償画素値を割り当てる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、立体視を実現するための視差画像を生成する視差画像生成装置等に関し、更に詳しくは、2次元/3次元変換において生じる隠れ面を補正する視差画像生成装置等に関する。
【背景技術】
【0002】
従来、3次元映像表示システムでは、大別して、2視差方式のものと、3以上の視差を持つ多視差方式のものがある。いずれの方式も、必要な視点数からシーンを見た映像を準備する必要がある。
【0003】
最も直接的な映像の制作方法としては、必要な視差数分のカメラを用意し、同一シーンを所定の間隔に配置された複数のカメラで撮影する方法が考えられる。最近では2視差を直接撮影できるカメラが市販されているが、多視差を直接撮影できるカメラは一般的でない。
【0004】
また、3次元CG(Computer Graphics)画像を作成し、複数のカメラ位置を設定してレンダリングする方法も考えられる。3次元CG画像には奥行き情報が含まれており、3次元画像から多視差方式に対応した視差画像を作成することは可能である。しかし、カメラ位置の数が多い場合、レンダリング回数が多くなり、時間とコストがかかるという問題がある。
さらに、ほとんどの映像はCG画像ではなく実写であり、実写から3次元映像を作成することが求められている。
【0005】
実写映像による多視差映像を制作する為に、平面映像を基にして多視差映像に変換する手法(いわゆる2次元/3次元変換の手法)は、いくつか存在する(特許文献1、特許文献2)。
特許文献1は、平面映像を近景と遠景に分離し、近景領域だけを所定の距離だけシフトするとともに拡大して視差映像を生成する2次元/3次元変換手法について開示している。
一方、本出願人は、特許文献2において、2次元画像、及び奥行き情報を持つ画像(以下、「デプス画像」という。)を入力とし、デプス画像と仮想カメラ位置との関係から視差を求め視差映像を生成する手法を提案している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2010−233391号公報
【特許文献2】特願2010−176864号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の手法は、画面全体を近景および遠景の2段階の奥行きに分離するものであり、2段階の奥行きだけでは、生成された映像から受ける奥行きの印象が乏しいという問題がある。また、近景の内部は視差を持たないため、更に奥行きの印象が乏しいという問題がある。
また、特許文献1に記載の手法は、近景と遠景に分離してシフトすると映像の空白部が生じる為、近景をシフトするとともに拡大することにより空白部の出現を回避している。しかしながら、元々手前にある被写体は大きく撮影されている為、更に拡大することにより、画面のシーンに矛盾が生じ、違和感が大きいという問題がある。
【0008】
一方、特許文献2に記載の手法は、デプス画像とカメラ位置の相対関係から、画像内の被写体ごとではなく画素ごとに視差によるシフト量を決めるので、全体の奥行きの印象が豊かになるという利点がある。
しかし、隣接する2画素間の奥行き量の情報だけでは、2画素が同一の被写体間に属するのか、別の被写体に属するのかが特定できないので、2画素が別の被写体に属する場合の隠れ面に対処できないという問題がある。
【0009】
ここで、図15を参照しながら、「隠れ面」について説明する。「隠れ面」とは、元の平面画像ではその位置の画素情報が欠落している領域であり、視差によって生じるものである。
図15(a)は、元の平面画像を示している。元の平面画像に記録されたシーンは、背景100、円形の物体である手前物体101、長方形の物体である奥物体102によって構成されている。
図15(b)は、図15(a)におけるA方向から覗き込んだ様子を示している。図15(b)では、手前物体101と背景100との間に隠れ面103a(黒色の領域)が生じている。
また、図15(c)は、図15(a)におけるB方向から覗き込んだ様子を示している。図15(c)では、手前物体101と奥物体102との間に隠れ面103b(黒色の領域)が生じている。
このような隠れ面に対しては、何も対処をしないと、本来なら後ろの被写体が適切に補われて表示されるべき領域に、手前の被写体または後ろの被写体の境界部の画素が表示されてしまい、不自然な映像になってしまう場合がある。
【0010】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは、隠れ面が違和感なく補正された視差画像を生成することができる視差画像生成装置等を提供することである。
【課題を解決するための手段】
【0011】
前述した目的を達成するために第1の発明は、立体視を実現するための視差画像を生成する視差画像生成装置であって、所望の2次元画像、前記2次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記2次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力手段と、カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値に係る所定のパラメータを入力するパラメータ入力手段と、スクリーン面のサンプリング点と、前記所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか1つを採用区間とし、前記採用区間における第1方向側の奥行き値である第1奥行き値、及び、前記第1方向とは異なる第2方向側の奥行き値である第2奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定手段と、前記第1奥行き値及び前記第2奥行き値の位置にそれぞれ対応する前記ラベル画像の第1ラベル値及び第2ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定手段と、を具備することを特徴とする視差画像生成装置である。
第1の発明によって、隠れ面を適切に検出することができる。
【0012】
第1の発明は、前記隠れ面判定手段によって前記参照位置が隠れ面ではないと判定された場合には、前記2次元画像における前記参照位置の画素値を前記サンプリング点の画素値とし、前記隠れ面判定手段によって前記参照位置が隠れ面であると判定された場合には、前記サンプリング点の画素値を補償する画素値である補償画素値を特定する補償処理を実行する画素値割り当て手段、を更に具備することが望ましい。
これによって、隠れ面が補正された視差画像を生成することができる。
【0013】
第1の発明において、前記隠れ面判定手段は、前記参照位置が隠れ面である場合、更に、前記第1奥行き値が前記第2奥行き値よりも奥側の値を示す場合には、前記視線直線が前記第1方向から手前の被写体と奥の被写体との間を通ることによって前記第1方向から覗き込んだ第1方向隠れ面が生じていると判定し、又は、前記第2奥行き値が前記第1奥行き値よりも奥側の値を示す場合には、前記視線直線が前記第2方向から手前の被写体と奥の被写体との間を通ることによって前記第2方向から覗き込んだ第2方向隠れ面が生じていると判定し、前記画素値割り当て手段における前記補償処理では、前記第1方向隠れ面の場合には、前記隠れ面判定手段による判定結果を前記第1方向に参照していくことによって隠れ面境界位置を特定し、又は、前記第2方向隠れ面の場合には、前記隠れ面判定手段による判定結果を前記第2方向に参照していくことによって隠れ面境界位置を特定し、更に、前記隠れ面境界位置を基準として前記補償画素値を特定することが望ましい。
これによって、隠れ面が違和感なく補正された視差画像を生成することができる。
【0014】
第1の発明における前記画素値割り当て手段における前記補償処理では、例えば、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記補償画素値を割り当てる。
これによって、多くの場合に合理的と考えられる補償画素値を割り当てることができる。
【0015】
また、第1の発明における前記画素値割り当て手段における前記補償処理では、例えば、折り返しコピーされる画素位置のラベル値が、前記参照位置に現れるべき被写体のラベル値と一致するか否かを判定し、一致する場合には、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記補償画素値を割り当てて、一致しない場合には、前記参照位置に現れるべき被写体のラベル値と同一の一繋がりのサンプリング点群のなかで最も遠い点に係る参照位置の画素値を、前記補償画素値として割り当てる。
これによって、他の被写体の画素値を補償画素値として補償することがなくなり、どのような場合であっても、合理的と考えられる補償画素値を割り当てることが可能になる。
【0016】
第2の発明は、立体視を実現するための視差画像を生成する視差画像生成方法であって、所望の2次元画像、前記2次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記2次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力ステップと、カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値に係る所定のパラメータを入力するパラメータ入力ステップと、スクリーン面のサンプリング点と、前記所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか1つを採用区間とし、前記採用区間における第1方向側の奥行き値である第1奥行き値、及び、前記第1方向とは異なる第2方向側の奥行き値である第2奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定ステップと、前記第1奥行き値及び前記第2奥行き値の位置にそれぞれ対応する前記ラベル画像の第1ラベル値及び第2ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定ステップと、を含むことを特徴とする視差画像生成方法である。
第2の発明によって、隠れ面を適切に検出することができる。
【0017】
第3の発明は、コンピュータを、所望の2次元画像、前記2次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記2次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力手段と、カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値に係る所定のパラメータを入力するパラメータ入力手段と、スクリーン面のサンプリング点と、前記所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか1つを採用区間とし、前記採用区間における第1方向側の奥行き値である第1奥行き値、及び、前記第1方向とは異なる第2方向側の奥行き値である第2奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定手段と、前記第1奥行き値及び前記第2奥行き値の位置にそれぞれ対応する前記ラベル画像の第1ラベル値及び第2ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定手段と、して機能させるためのプログラムである。
第3の発明に係るプログラムをコンピュータにインストールすることで、第1の発明に係る視差画像生成装置を得ることができる。
【0018】
第4の発明は、第3の発明に係るプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【発明の効果】
【0019】
本発明により、隠れ面が違和感なく補正された視差画像を生成することができる視差画像生成装置等を提供することができる。
【図面の簡単な説明】
【0020】
【図1】視差画像生成装置のハードウエア構成図
【図2】視差画像生成装置の入出力データを示す図
【図3】パラメータを説明する図
【図4】視差画像生成処理の詳細を示すフローチャート
【図5】参照位置特定処理を説明する図
【図6】参照位置特定処理を説明する図
【図7】第1の処理例を示す図
【図8】第2の処理例を示す図
【図9】変形例1を説明する図
【図10】2次元画像の一例を示す図
【図11】デプス画像の一例を示す図
【図12】ラベル画像の一例を示す図
【図13】視線が左方向からの視差画像の一例を示す図
【図14】視線が右方向からの視差画像の一例を示す図
【図15】隠れ面を説明する図
【発明を実施するための形態】
【0021】
以下図面に基づいて、本発明の実施形態を詳細に説明する。
図1は、視差画像生成装置1のハードウエア構成図である。尚、図1のハードウエア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
視差画像生成装置1は、制御部11、記憶部12、メディア入出力部13、通信制御部14、入力部15、表示部16、周辺機器I/F部17等が、バス18を介して接続される。
【0022】
制御部11は、CPU(Central Processing Unit)、ROM(Read OnlY MemorY)、RAM(Random Access MemorY)等で構成される。
CPUは、記憶部12、ROM、記録媒体等に格納されるプログラムをRAM上のワークメモリ領域に呼び出して実行し、バス18を介して接続された各装置を駆動制御し、視差画像生成装置1が行う後述する処理を実現する。
ROMは、不揮発性メモリであり、視差画像生成装置1のブートプログラムやBIOS等のプログラム、データ等を恒久的に保持している。
RAMは、揮発性メモリであり、記憶部12、ROM、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部11が各種処理を行う為に使用するワークエリアを備える。
【0023】
記憶部12は、HDD(ハードディスクドライブ)等であり、制御部11が実行するプログラム、プログラム実行に必要なデータ、OS(オペレーティングシステム)等が格納される。プログラムに関しては、OS(オペレーティングシステム)に相当する制御プログラムや、後述する処理を視差画像生成装置1に実行させるためのアプリケーションプログラムが格納されている。
これらの各プログラムコードは、制御部11により必要に応じて読み出されてRAMに移され、CPUに読み出されて各種の手段として実行される。
【0024】
メディア入出力部13(ドライブ装置)は、データの入出力を行い、例えば、CDドライブ(−ROM、−R、−RW等)、DVDドライブ(−ROM、−R、−RW等)等のメディア入出力装置を有する。
通信制御部14は、通信制御装置、通信ポート等を有し、視差画像生成装置1とネットワーク間の通信を媒介する通信インタフェースであり、ネットワークを介して、他の装置間との通信制御を行う。ネットワークは、有線、無線を問わない。
【0025】
入力部15は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
入力部15を介して、視差画像生成装置1に対して、操作指示、動作指示、データ入力等を行うことができる。
表示部16は、CRTモニタ、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携して視差画像生成装置1のビデオ機能を実現するための論理回路等(ビデオアダプタ等)を有する。
【0026】
周辺機器I/F(インタフェース)部17は、視差画像生成装置1に周辺機器を接続させるためのポートであり、周辺機器I/F部17を介して視差画像生成装置1は周辺機器とのデータの送受信を行う。周辺機器I/F部17は、USBやIEEE1394やRS−235C等で構成されており、通常複数の周辺機器I/Fを有する。周辺機器との接続形態は有線、無線を問わない。
バス18は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【0027】
図2は、視差画像生成装置1の入出力データを示す図である。図2に示すように、視差画像生成装置1は、2次元画像2、ラベル画像3、デプス画像4、並びにパラメータ5を入力データとする。また、視差画像生成装置1は、視差画像6を出力データとする。
2次元画像2、ラベル画像3、及びデプス画像4は、視差画像生成装置1の制御部11が生成しても良いし、メディア入出力部13、通信制御部14等を介して外部から取得しても良い。また、パラメータ5は、視差画像生成装置1の入力部15を介して入力しても良いし、予めパラメータ5が定義されたパラメータファイルを外部から取得しても良い。
視差画像6は、視差画像生成装置1の記憶部12に記憶されても良いし、表示部16に表示されても良いし、メディア入出力部13、通信制御部14等を介して外部に出力しても良い。
【0028】
2次元画像2は、動画像(平面映像)の1枚分のフレーム画像または静止画像である。動画像(平面映像)には、例えば、単位時間当たり所定のフレーム数(通常、1秒間に30フレーム)のカラー静止画像が含まれており、各画素がRGB各256段階の階調を持つ。
後述する視差画像生成処理のすべての処理は、フレームごとに独立して実行するので、以下の説明においては、1枚分のフレーム画像(静止画像)の処理について記述する。
【0029】
ラベル画像3は、それぞれの2次元画像2に対応付けて、2次元画像2に記録されたシーンを構成する被写体を識別する固有の数値(ラベル値)によって領域分けし、このラベル値を画素値に置き換えた画像である。例えば、背景、建物、及び人物から構成されるシーンにおいて、背景、建物、及び人物に相当するラベル値として、それぞれL0、L1、L2を割り当て、対応する2次元画像2の各画素がどの被写体に属しているかを、L0、L1、L2の画素値に置き換えることによって表現する。
ラベル画像3は、2次元画像2に基づいてフォトレタッチソフトなどを用いて手作業で生成してもよいし、別途ソフトウエアを用いて自動的に生成してもよい。
【0030】
デプス画像4は、2次元画像2に係るカメラから被写体までの奥行き値を画素値に置き換えた画像である。ここで、カメラとは、視差画像生成装置1の内部処理において定義される仮想的なカメラを意味する。
デプス画像4は、例えば、画素値の範囲が0〜255(8ビット)のグレースケールであり、0(黒)が最も奥、255(白)が最も手前を意味する場合が多いが、逆であっても良い。以下では、説明を分かり易くするために、デプス画像4は、画素値の範囲が0〜255であり、0(黒)が最も奥、255(白)が最も手前を意味するものとする。
デプス画像4は、2次元画像2に基づいてフォトレタッチソフトなどを用いて手作業で生成してもよいし、別途ソフトウエアを用いて自動的に生成してもよい。
【0031】
パラメータ5は、後述する視差画像生成処理に用いる値である。パラメータ5には、カメラ数n、カメラ間隔、スクリーン面からカメラまでの奥行き値などが含まれる。
更に、パラメータ5には、2次元画像2の横幅、縦幅、画素ピッチなどが含まれる。2次元画像2は、パラメータ5の横幅、縦幅、画素ピッチによって、横方向(X軸方向)のピクセル数、及び、縦方向(Y軸方向)のピクセル数が決まる。
【0032】
図3は、パラメータ5について説明する図である。
視差画像生成処理では、図3に示すように、仮想的な3次元空間(XYZ空間)に、スクリーン面S、カメラC1〜C8を配置する。
スクリーン面Sは、2次元画像2を投影する領域であり、視差画像6の各画素が含まれる。図3に示す例では、スクリーン面SはXY平面と一致する。
【0033】
カメラC1〜C8は、パラメータ5のカメラ数n、カメラ間隔、スクリーン面Sからカメラまでの奥行き値に基づいて配置する。図3に示す例では、カメラ数nが「8」、カメラ間隔が「等間隔のCcamera_X」、奥行き値が「Ccamera_Z」である。Ccamera_Xは、両目視差(約60mm〜70mm程度)とする。
また、図3に示す例では、カメラ設置線30は、スクリーン面Sと平行、かつ、スクリーン面Sとの距離が「Ccamera_Z」の直線である。CiをカメラID(Ci=1、・・・、8)とすると、カメラC1〜C8のカメラ位置(CXi、CZi)(i=1、・・・、8)は、以下の式に基づいて算出する。尚、wは、2次元画像2の横幅である。
【0034】
【数1】
【0035】
図3に示す例では、カメラ間隔を等間隔としたが、これはディスプレイにおける画像の見せ方に依存する。カメラ間隔を等間隔とした場合、観察者がどの位置から見ても隣り合う視差画像6が見えるようになる。但し、他の見せ方を所望する場合には、カメラ間隔は等間隔でなくても良い。
また、図3に示す例では、カメラ設置線30を直線としたが、これもディスプレイにおける画像の見せ方に依存する。例えば、ディスプレイが曲面の場合、カメラ設置線30を曲線とすることが考えられる。
図3に示す最遠面Pは、視差画像6に表現される被写体の中でカメラCから最も遠い位置であり、かつ、スクリーン面Sと平行な面である。
【0036】
図2の説明に戻る。
視差画像6は、立体視を実現するための画像である。本発明の実施の形態では、視差画像6は、特に、両目視差(約60mm〜70mm程度)を利用し、裸眼観察によって立体視を実現するための画像である。
尚、本発明の実施の形態では詳細に述べないが、複数の視差画像6をディスプレイの仕様に合わせて合成し、ディスプレイに表示することによって、裸眼観察による立体視を実現することが可能となる。複数の視差画像6の合成処理については、公知の技術を利用すれば良い。
【0037】
参照位置特定処理21では、デプス画像4とパラメータ5などを入力データとする。参照位置特定処理21では、スクリーン面のサンプリング点と、所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、デプス画像4における奥行き値同士の区間の中で視線直線が通る区間である通過区間のいずれか1つを採用区間とし、採用区間における第1方向(例えば、「左」)側の奥行き値である第1奥行き値、及び、第1方向とは異なる第2方向(例えば、「右」)側の奥行き値である第2奥行き値のうち、より奥を示す方の位置を参照位置とする。特定された参照位置は、「参照位置バッファ」としてRAMや記憶部12などに格納される。
【0038】
参照位置バッファの大きさは、2次元画像2の横方向のピクセル数×縦方向のピクセル数分としても良いし、又は、2次元画像2の横方向のピクセル数分としても良い。後述する他のバッファの大きさについても同様である。尚、2次元画像2、ラベル画像3、デプス画図4、及び視差画像6の横方向のピクセル数及び縦方向のピクセル数は、全て同じである。
以下では、第1方向を左、第2方向を右として説明する。同様に、第1奥行き値は左奥行き値、第2奥行き値は右奥行き値として説明する。
【0039】
参照位置については、2画素間の奥行き量によって特定することができる。一方、2画素間の奥行き量だけでは、その2画素が同一の被写体に属するのか、別の被写体に属するのかは特定できない。また、2画素が別々の被写体に属する場合には、その2画素の間には視差により隠れ面が生じ、何も対処しないと、本来なら後ろの被写体が適切に補われて表示されるべき領域に、手前の被写体または後ろの被写体の境界部の画素がコピーされる結果になり好ましくない。そこで、本発明の実施の形態では、ラベル画像3も入力データとし、隠れ面判定処理22、ラベル値割り当て処理23、及び画素値割り当て処理24により、隠れ面に対して適切な画素値を補う。
【0040】
隠れ面判定処理22では、ラベル画像3と参照位置バッファなどを入力データとする。隠れ面判定処理22では、左奥行き値及び右奥行き値の位置にそれぞれ対応するラベル画像3の左ラベル値及び右ラベル値が異なる場合、参照位置が隠れ面であると判定する。また、隠れ面判定処理22では、左ラベル値及び右ラベル値が同一である場合、参照位置が隠れ面ではないと判定する。隠れ面の判定結果は、「隠れ面バッファ」としてRAMや記憶部12などに格納される。
【0041】
また、隠れ面判定処理22では、参照位置が隠れ面である場合、更に、左奥行き値が右奥行き値よりも奥側の値を示す場合には、視線直線が左方向から手前の被写体と奥の被写体との間を通ることによって、左から覗き込んだ左隠れ面が生じていると判定する。また、隠れ面判定処理22では、右奥行き値が左奥行き値よりも奥側の値を示す場合には、視線直線が右から手前の被写体と奥の被写体との間を通ることによって、右から覗き込んだ右隠れ面が生じていると判定する。この判定結果も、「隠れ面バッファ」としてRAMや記憶部12などに格納される。
【0042】
ラベル値割り当て処理23では、ラベル画像3と隠れ面バッファなどを入力データとする。ラベル値割り当て処理23では、隠れ面判定処理22において参照位置が隠れ面ではないと判定された場合、ラベル画像3の左ラベル値又は右ラベル値を、処理対象のサンプリング点に割り当てる(この場合、左ラベル値と右ラベル値は同一であるから、どちらでも良い。)。また、ラベル値割り当て処理23では、隠れ面判定処理22において参照位置が隠れ面であると判定された場合、当該隠れ面によってどの被写体が出てくるのか、及び、どの被写体が当該隠れ面を隠していたのかを特定する。言い換えると、ラベル値割り当て処理23では、隠れ面に係る奥側の被写体及び手前側の被写体を特定する。そして、ラベル値割り当て処理23では、特定された両者の被写体のラベル値を、処理対象のサンプリング点に割り当てる。割り当てられたラベル値は、「ラベルバッファ」としてRAMや記憶部12などに格納される。
【0043】
画素値割り当て処理24では、2次元画像2、ラベルバッファ、及び参照位置バッファなどを入力データとする。画素値割り当て処理24では、隠れ面判定処理22において参照位置が隠れ面ではないと判定された場合には、2次元画像2における参照位置の画素値をサンプリング点の画素値とし、隠れ面判定処理22において参照位置が隠れ面であると判定された場合には、サンプリング点の画素値を補償する画素値(補償画素値)を特定する処理である補償処理を実行する。
補償処理では、例えば、制御部11は、左隠れ面の場合には、隠れ面判定処理22による判定結果を左に参照していくことによって隠れ面境界位置を特定する。また、制御部11は、右隠れ面の場合には、隠れ面判定処理22による判定結果を右に参照していくことによって隠れ面境界位置を特定する。そして、制御部11は、隠れ面境界位置を基準として補償画素値を特定する。
画素値割り当て処理24によって割り当てられたサンプリング点の画素値の集合が、視差画像6である。
【0044】
以下では、図4〜図8を参照しながら、視差画像生成装置1の処理の詳細について説明する。
図4は、視差画像生成処理の詳細を示すフローチャートである。
【0045】
視差画像生成装置1の制御部11は、処理対象とするXZ平面を特定するために、スクリーン面SにおけるY座標を決定する(S201)。以下、S201にて決定されたY座標をYsとする。視差画像生成装置1は、YsごとにS202〜S208の処理を繰り返す。すべてのY座標についてS202〜S208の処理を実行することにより、1つのカメラCについて、1つの2次元画像2の視差画像6が求まることになる。
【0046】
制御部11は、スクリーン面Sにおける処理対象の画素、すなわちサンプリング点を決定する(S202)。但し、サンプリング点のY座標は、S201において決定されたYsである。
次に、制御部11は、S202において決定されたサンプリング点に対して、S203〜S206の処理によって視差画像6の画素値を算出する処理を実行する。
【0047】
制御部11は、参照位置特定処理21を行う(S203)。ここで、参照位置は、生成される視差画像6における各画素に対して、2次元画像2のどの位置が対応するかを示すものである。制御部11は、視差画像6における各画素について、対応する点の奥行き値、カメラ位置などの幾何的情報から、その画素に対応する2次元画像2における参照位置を計算する。
【0048】
図5、図6は、参照位置特定処理を説明する図である。図5、図6では、スクリーン面Sにおける各奥行き値(デプス画像4の画素値)の画素位置をX座標、奥行き値自体をZ座標とし、奥行き分布情報を複数の黒丸をつなぐ奥行き分布曲線32によって図示している。スクリーン面Sでは、所定の間隔によってサンプリング点が決定される。また、2次元画像2は、最遠面Pの位置にあるものとする。
【0049】
最初に、図5を参照しながら説明する。
制御部11は、サンプリング点のX座標Xsと、処理対象のカメラ位置(CXi、CZi)(i=1、・・・、n)と、を通る視線直線31aを算出する。カメラ位置(CXi、CZi)は、前述した通り、パラメータ5のカメラ数n、カメラ間隔Ccamera_X及びカメラCiからスクリーン面Sまでの奥行き値Ccamera_Zに基づいて設定されている。図5に示す例では、カメラC3を処理対象としている。
【0050】
次に、制御部11は、奥行き分布曲線32における奥行き値(黒丸)同士の区間の中で視線直線31aが通る区間である通過区間33aを特定する。そして、制御部11は、通過区間33aを採用区間とし、採用区間における左側の奥行き値である左奥行き値34a、及び、右側の奥行き値である右奥行き値35aのうち、より奥を示す方(Z座標の値が小さい方)のX座標位置を参照位置とする。図5に示す例では、左奥行き値34aのX座標位置が参照位置となる。左奥行き値34aのX座標をXkとすると、XsとXkとの差がシフト量36である。シフト量36は、生成される視差画像6の画素位置と、対応する2次元画像2の画素位置との差である。
そして、制御部11は、左奥行き値34aのX座標の値Xkを、サンプリング点Xsに対する参照位置として、参照位置バッファに格納する。
制御部11は、以上の処理を全てのカメラC1〜C8に対して実行し、各視差画像6における各画素(Xs,Ys)のシフト量を算出する。
【0051】
図6では、複数の通過区間33b、33c、33dが存在する例を示している。この場合、制御部11は、最もカメラC1〜C8に近いものを採用区間とする。図6に示す例では、通過区間33bを採用区間とする。
そして、制御部11は、採用区間における左奥行き値34b及び右奥行き値35bのうち、より奥を示す方のX座標位置を参照位置とする。図6に示す例では、右奥行き値35bのX座標位置が参照位置となる。
【0052】
複数の通過区間33が存在する場合、最もカメラC1〜C8に近いものが、最も手前の被写体である。従って、最もカメラC1〜C8に近いものを採用区間とすることで、複数の被写体の配置関係が忠実に再現された視差画像6を生成することができる。
【0053】
図7は、第1の処理例を示す図である。図7では、各サンプリング点Xsに対して、参照位置特定処理21(S203)の処理結果である参照位置バッファ41、隠れ面判定処理22(S204)の処理結果である隠れ面バッファ42、ラベル値割り当て処理23(S205)の処理結果であるラベルバッファ43、及び画素値割り当て処理24(S206)の処理結果である生成結果バッファ44が示されている。図7の例では、2次元画像2のシーンを構成する被写体が、背景を含めて7つ存在する。背景にはラベル値「L0」、その他の物体には、ラベル値「L1」〜「L6」が対応付けられている。
【0054】
図7の参照位置バッファ41には、サンプリング点Xsが「1、2、3、4、5、6、7、8、・・・」の各々について、参照位置バッファ41には、「3、4、5、7、8、9、11、12、・・・」が格納されている。
【0055】
図4の説明に戻る。
制御部11は、隠れ面判定処理22を行う(S204)。制御部11は、ラベル画像3を参照し、S203において特定された採用区間(図5の例では33a)の両端(左奥行き値34aと右奥行き値35a)が同一の被写体に属するのか、あるいは、異なる被写体に属するのかを判定する。
具体的には、制御部11は、左奥行き値34aの位置(デプス画像4の画素位置)に対応するラベル画像3の画素位置の画素値を左ラベル値とし、右奥行き値35aの位置(デプス画像4の画素位置)に対応するラベル画像3の画素位置の画素値を右ラベル値とする。そして、制御部11は、左ラベル値と右ラベル値を比較する。両者が同一の場合、視線直線(図5の例では31a)がそのラベル値で表わされる単一の被写体と交差することを意味するので、制御部11は、参照位置が隠れ面ではないと判定する。一方、両者が異なる場合、視線直線(図5の例では31a)が異なる複数の被写体の挟間を通過することを意味するので、制御部11は、参照位置が隠れ面であると判定する。
【0056】
制御部11は、隠れ面の判定結果を隠れ面バッファ42に格納する。より詳細には、制御部11は、(1)参照位置が隠れ面か否か、及び、(2)参照位置が隠れ面である場合には、参照位置が、手前の被写体を左から覗き込んだことにより生じる隠れ面(=左隠れ面)なのか、右から覗き込んだことにより生じる隠れ面(=右隠れ面)なのかを、隠れ面バッファ42に格納する。
【0057】
例えば、図5の例であれば、左奥行き値34a(参照位置の奥行き情報)が右奥行き値35aよりも奥にあることから、左奥行き値34aの位置(参照位置)が隠れ面である場合、制御部11は、この隠れ面を左隠れ面であると判定する。
また、例えば、図6の例であれば、右奥行き値35b(参照位置の奥行き情報)が左奥行き値34bよりも奥にあることから、右奥行き値35bの位置(参照位置)が隠れ面である場合、制御部11は、この隠れ面を右隠れ面であると判定する。
【0058】
図7の隠れ面バッファ42には、参照位置バッファ42が「3、4、5」に対しては、右隠れ面であること(=「右」)が格納されている。また、参照位置バッファ42が「7、8、9、11、12」に対しては、隠れ面でないこと(=「非」)が格納されている。
【0059】
図4の説明に戻る。
次に、制御部11は、ラベル値割り当て処理23を行う(S205)。制御部11は、各参照位置に対してラベル値を割り当てて、ラベルバッファ43に格納する。このとき、参照位置が隠れ面である場合、制御部11は、参照位置を隠していた被写体(=手前側の被写体)のラベル値と、参照位置に現れるべき被写体(=奥側の被写体)のラベル値を格納する。
【0060】
例えば、図5の例であれば、隠れ面の判定結果において、左奥行き値34aの位置(参照位置)が隠れ面である場合、この隠れ面は、左隠れ面であると判定される。従って、制御部11は、左奥行き値34aの位置に対応する左ラベル値の被写体が、奥側の被写体であると判定し、参照位置に現れるべき被写体(=奥側の被写体)のラベル値として、左ラベル値を格納する。また、制御部11は、右奥行き値35aの位置に対応する右ラベル値の被写体が、手前側の被写体であると判定し、参照位置を隠していた被写体(=手前側の被写体)のラベル値として、右ラベル値を格納する。
また、例えば、図6の例であれば、隠れ面の判定結果において、右奥行き値35bの位置(参照位置)が隠れ面である場合、この隠れ面は、右隠れ面であると判定される。従って、制御部11は、右奥行き値35bの位置に対応する右ラベル値の被写体が、奥側の被写体であると判定し、参照位置に現れるべき被写体(=奥側の被写体)のラベル値として、右ラベル値を格納する。また、制御部11は、左奥行き値34bの位置に対応する左ラベル値の被写体が、手前側の被写体であると判定し、参照位置を隠していた被写体(=手前側の被写体)のラベル値として、左ラベル値を格納する。
【0061】
図7のラベルバッファ43には、各参照位置のラベル値が格納されている。参照位置バッファ42が「3、4、5」に対しては、参照位置を隠していた被写体のラベル値=L6/参照位置に現れるべき被写体のラベル値=L0が格納されている。また、参照位置Xk=7、8、9、11、12は隠れ面ではないので、ラベル値=L0のみが格納されている。
【0062】
次に、制御部11は、画素値割り当て処理24を行う(S206)。制御部11は、各サンプリング点Xsについて隠れ面バッファ42を確認し、隠れ面判定の結果が隠れ面ではない場合(「非」の場合)、参照位置バッファ41を確認し、サンプリング点Xsに対して、2次元画像2における参照位置Xkの画素値を割り当てる。
【0063】
図7に示す例では、サンプリング点Xsが「4、5、6、7、8」の隠れ面バッファ42の値は「非」なので、制御部11は、それぞれ、参照位置バッファ41に格納されている参照位置Xk=7、8、9、11、12を生成結果バッファ44に格納する。つまり、制御部11は、参照位置バッファ41に格納されている参照位置Xkの画素値を、そのままサンプリング点Xsに対して割り当てる。
【0064】
一方、制御部11は、各サンプリング点Xsについて隠れ面バッファ42を確認し、隠れ面判定の結果が左隠れ面の場合(「左」の場合)、隠れ面バッファ42を左に参照していくことによって隠れ面境界位置を特定し、又は、隠れ面判定の結果が右隠れ面の場合(「右」の場合)、隠れ面バッファ42を右に参照していくことによって隠れ面境界位置を特定する。
そして、制御部11は、隠れ面境界位置を基準として、サンプリング点の画素値を補償する画素値(補償画素値)を特定する。
【0065】
例えば、制御部11は、サンプリング点Xsから隠れ面境界位置までの距離dを算出し、サンプリング点Xsから2d−1の距離にあるサンプリング点Xs’に対する参照位置バッファ41の値を生成結果バッファ44に格納する。つまり、制御部11は、サンプリング点Xsから2d−1の距離にあるサンプリング点Xs’に対する参照位置の画素値を、補償画素値として割り当てる。
この手法では、隠れ面境界位置を折り返し点として、画素値を折り返しコピーすることによって、サンプリング点Xsの画素値を補償している。
【0066】
図7に示す例では、サンプリング点Xsが「1」の隠れ面バッファ42の値は「右」なので、制御部11は、サンプリング点Xsから右に隠れ面バッファ42を参照していくことによって、隠れ面の境界位置が「4」であることを特定する。そして、制御部11は、サンプリング点Xs「1」から隠れ面の境界位置「4」までの距離L=4−1=3を算出し、サンプリング点Xs「1」から2d−1=2×3−1=5の距離にあるサンプリング点Xs’「6」に対する参照位置バッファ41の値「9」を生成結果バッファ44に格納する。
また、サンプリング点Xsが「2」の隠れ面バッファ42の値も「右」なので、制御部11は、サンプリング点Xsから右に隠れ面バッファ42を参照していくことによって、隠れ面の境界位置が「4」であることを特定する。そして、制御部11は、サンプリング点Xs「2」から隠れ面の境界位置「4」までの距離L=4−2=2を算出し、サンプリング点Xs「2」から2d−1=2×2−1=3の距離にあるサンプリング点Xs’「5」に対する参照位置バッファ41の値「8」を生成結果バッファ44に格納する。
また、サンプリング点Xsが「3」の隠れ面バッファ42の値も「右」なので、制御部11は、サンプリング点Xsから右に隠れ面バッファ42を参照していくことによって、隠れ面の境界位置が「4」であることを特定する。そして、制御部11は、サンプリング点Xs「3」から隠れ面の境界位置「4」までの距離L=4−3=1を算出し、サンプリング点Xs「3」から2d−1=2×1−1=1の距離にあるサンプリング点Xs’「4」に対する参照位置バッファ41の値「7」を生成結果バッファ44に格納する。
以上の処理により、隠れ面と判定された場合については、隠れ面境界位置を折り返し点とした画素値の折り返しコピーにより、多くの場合に合理的と考えられる画素値を割り当てることが可能になる。
【0067】
図7に示した例は、サンプリング点Xsから2d−1の距離にあるサンプリング点Xs’のラベル値「L0」が、サンプリング点Xsのラベル値「L0」と同一であったが、常に同一であるとは限らない。
そこで、図8を参照しながら、サンプリング点Xsから2d−1の距離にあるサンプリング点Xs’のラベル値と、サンプリング点Xsのラベル値とが異なる場合の例外処理について説明する。
【0068】
図8に示す例では、サンプリング点Xs「1」から2d−1=5の距離にあるサンプリング画素位置Xs’「6」のラベル値が「L3」となっており、サンプリング点Xsのラベル値「L0」と異なっている。このような場合、前述の手法では、他の被写体についての画素値を隠れ面補償として補うことになってしまい、不合理である。
そこで、制御部11は、折り返しコピーされる画素位置のラベル値が、サンプリング点の参照位置に現れるべき被写体のラベル値と一致するか否かを判定する。より詳しくは、制御部11は、サンプリング点Xsから2d−1の距離にある画素のラベル値(ラベルバッファ43の値)が、サンプリング点Xsの参照位置に現れるべき被写体のラベル値(ラベルバッファ43の2番目のラベル値)と一致するか否かを判定する。そして、制御部11は、一致する場合には、前述の折り返しコピーによる隠れ面補償処理を実行し、一致しない場合には、以下に説明する例外処理を実行する。
【0069】
例外処理では、制御部11は、サンプリング点Xsの参照位置に現れるべき被写体のラベル値(ラベルバッファ43の2番目のラベル値)と同一の一繋がりのサンプリング点群のなかで最も遠いサンプリング点Xs’’の参照位置バッファ41に格納されている参照位置の画素値を、サンプリング点Xsの画素値として割り当てる。
図8に示す例では、サンプリング点Xsが「1」の参照位置に現れるべき被写体のラベル値「L0」と同一の一繋がりのサンプリング点群は、「2」〜「5」となっている。そこで、制御部11は、サンプリング点群「2」〜「5」の中で最も遠いサンプリング点Xs’’「5」の参照位置バッファ41に格納されている参照位置「8」を、サンプリング点Xs「1」の生成結果バッファ44に格納する。
以上の例外処理により、他の被写体の画素値を隠れ面の画素値として補償することがなくなり、どのような場合であっても、合理的と考えられる画素値を割り当てることが可能になる。
【0070】
そして、生成結果バッファ44に格納された最終的な参照位置に対応する2次元画像2の画素値を各サンプリング点Xsの画素値として割り当てることにより、隠れ面が適切な画素値によって補償された視差画像6を得ることが可能になる。
【0071】
図4の説明に戻る。
制御部11は、全サンプリング点(但し、Y座標はYsのみ)について処理が終了したかどうか確認する(S207)。処理が終了していない場合(S207のNo)、S202から処理を繰り返す。処理が終了している場合(S207のYes)、S208に進む。
【0072】
次に、制御部11は、全てのY座標について処理が終了したかどうか確認する(S208)。処理が終了していない場合(S208のNo)、S201から処理を繰り返す。処理が終了している場合(S208のYes)、S209に進む。
【0073】
次に、制御部11は、S206において算出された画素値をカメラCごとに纏めて、視差画像6として記憶部12に保存する(S209)。カメラ数nが「8」の場合、制御部11は、S206において算出された画素値をカメラC1〜C8ごとに纏めて、8枚の視差画像6として記憶部12に記憶する。
【0074】
以上、本発明の実施の形態に係る視差画像生成装置1は、隠れ面が違和感なく補正された視差画像6を生成することができる。
【0075】
<変形例1>
画素値割り当て処理24(S206)の変形例1について説明する。
前述の手法では、隠れ面境界位置を折り返し点として、画素値を折り返しコピーすることによって、サンプリング点Xsの画素値を補償している。この手法では、横方向の画素値のみを考慮していることから、参照位置に現れるべき被写体(=奥側の被写体)の階調変化が激しく、かつ、参照位置を隠していた被写体(=手前側の被写体)の輪郭が曲線のような場合には、隠れ面の領域において手前側の被写体の輪郭に沿った筋状の線が出現してしまうことがある。変形例1では、この現象を回避することができる。
【0076】
図9は、変形例1を説明する図である。図9に示す例では、2次元画像2のシーンを構成する被写体は、物体51及び背景52である。この例では、カメラ位置が正面よりも右である。そして、物体51と背景52との間に、隠れ面が生じている。
制御部11は、まず、連続する複数のY座標Ys、Ys’、Ys’
’、・・・について、参照位置特定処理21(S203)、隠れ面判定処理22(S204)、及びラベル値割り当て処理(S205)を実行する。
次に、制御部11は、隠れ面と判定された複数の参照位置が、連結している領域を隠れ面領域53(図9では「黒色」)として抽出する。
次に、制御部11は、隠れ面領域43のY方向に伸びる外接直線を折り返し線54として抽出する。この例では、隠れ面が右隠れ面であることから、隠れ面領域53の右側の外接直線を抽出する。一方、隠れ面が左隠れ面であれば、隠れ面領域53の左側の外接直線を抽出すれば良い。
そして、制御部11は、折り返し線54を基準として、画素値を折り返しコピーすることによって、サンプリング点Xsの画素値を補償する。
【0077】
変形例1によって、参照位置に現れるべき被写体(=奥側の被写体)の階調変化が激しく、かつ、参照位置を隠していた被写体(=手前側の被写体)の輪郭が曲線のような場合であっても、隠れ面の領域において横方向に筋状の線が出現してしまうことがない。
【0078】
<変形例2>
画素値割り当て処理24(S206)の変形例2について説明する。変形例2では、折り返しコピーではない各種の手法について説明する。
【0079】
制御部11は、サンプリング点Xsの画素値を補償する為に、以下に示すいずれかの値を算出又は取得する。
(1)参照位置に現れるべき被写体(=奥側の被写体)の全体の平均値
(2)参照位置に現れるべき被写体(=奥側の被写体)の中で、参照位置を隠していた被写体(=手前側の被写体)と隣接する画素群の平均値
(3)参照位置に現れるべき被写体(=奥側の被写体)の代表値(代表値については、予め、補償画素値として適切と考えられる値を記憶部12等に記憶しておく。)
そして、制御部11は、算出又は取得される(1)〜(3)の値を、補償画素値として割り当てる。
【0080】
<変形例3>
変形例3では、図4に示すフローチャートを実行する前に、隠れ面が生じないように、2次元画像2を加工しておく手法について説明する。変形例3の手法は、背景を除いて被写体同士の重なり合いがほとんどないようなシーンの2次元画像2について有効である。
制御部11は、2次元画像2から背景領域を抽出し、テクスチャ生成技術によって、2次元画像2全体の画素位置に画素値を有する加工背景領域を生成する。そして、制御部11は、2次元画像2における背景を除いた被写体の領域に含まれる各画素について、対応する加工背景領域の画素値を対応付けて記憶部12等に記憶しておく。
そして、制御部11は、隠れ面判定処理22(S204)において、参照位置が隠れ面と判定された場合には、対応する加工背景領域の画素値を、サンプリング点Xsの画素値として割り当てる。
【実施例】
【0081】
図10は、2次元画像2の一例を示す図である。図10に示す例では、2次元画像2は、グレースケール画像であり、円形の物体(=淡いグレー)、長方形の物体(=濃いグレー)、及び格子状の背景(=白と黒)によって構成されている。
【0082】
図11は、図10の2次元画像2についてのデプス画像4の一例を示す図である。図11に示す例では、デプス画像4は、0〜255の階調を有するグレースケール画像である。
図11に示すデプス画像4では、図10の円形の物体の奥行き値が階調「0」、格子状の背景の奥行き値が階調「255」、長方形の物体の奥行き値が階調「128」である。つまり、円形の物体が最も手前にあり、格子状の背景が最も奥にあることを示している。
説明を分かり易くする為、図11に示すデプス画像4では、被写体ごとに単一の奥行き値とした。一般の被写体であれば、各部ごとに奥行き値が異なることが多い。
【0083】
図12は、図10の2次元画像2についてのラベル画像3の一例を示す図である。図12に示す例では、ラベル画像3は、0〜255の階調を有するグレースケール画像である。
図12に示すラベル画像3は、例えば、図10の円形の物体のラベル値が階調「0」、格子状の背景のラベル値が階調「255」、長方形の物体のラベル値が階調「128」である。
説明を分かり易くする為、図11と図12は、全く同一の画像とした。前述したように、一般の被写体であれば、各部ごとに奥行き値が異なることが多く、デプス画像4とラベル画像3は、異なる画像となる。
【0084】
本実施例では、図10に示す2次元画像2、図11に示すデプス画像4、図12に示すラベル画像3を入力画像として、視差画像6を生成した。
【0085】
図13は、視線が左方向からの視差画像6の一例を示す図である。図13に示す例では、カメラ位置が図3におけるカメラC3やC4の位置である。
視線が左方向からの視差画像6を生成する際は、円形の物体の左側の輪郭と背景との間や、長方形の物体の左側の輪郭と背景との間に、隠れ面が生じる。
図13に示す例では、隠れ面が適切な画素値によって補償され、違和感なく補正されている。
【0086】
図14は、視線が右方向からの視差画像6の一例を示す図である。図14に示す例では、カメラ位置が図3におけるカメラC7やC8の位置である。図13に示す例では、カメラ位置が図3におけるカメラC3やC4の位置であったことから、図13に示す隠れ面の領域よりも、図14に示す隠れ面の領域の方が大きくなっている。
視線が右方向からの視差画像6を生成する際は、円形の物体の右側の輪郭と背景との間や、長方形の物体の右側の輪郭と背景との間に、隠れ面が生じる。
図14に示す例では、長方形の物体の右側の輪郭と背景との間の隠れ面については、適切な画素値によって補償され、違和感なく補正されている。
一方、円形の物体の右側の輪郭と背景との間の隠れ面については、正しく補償されていない。これは、参照位置に現れるべき被写体(=背景)の階調変化が激しく、かつ、参照位置を隠していた被写体(=円形の物体)の輪郭が曲線なので、隠れ面の領域において円形の物体の輪郭に沿った筋状の線が出現してしまっている。この現象については、前述したように、変形例1によって回避することができる。
【0087】
以上、添付図面を参照しながら、本発明に係る視差画像生成装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0088】
1………視差画像生成装置
2………2次元画像
3………ラベル画像
4………デプス画像
5………パラメータ
6………視差画像
【技術分野】
【0001】
本発明は、立体視を実現するための視差画像を生成する視差画像生成装置等に関し、更に詳しくは、2次元/3次元変換において生じる隠れ面を補正する視差画像生成装置等に関する。
【背景技術】
【0002】
従来、3次元映像表示システムでは、大別して、2視差方式のものと、3以上の視差を持つ多視差方式のものがある。いずれの方式も、必要な視点数からシーンを見た映像を準備する必要がある。
【0003】
最も直接的な映像の制作方法としては、必要な視差数分のカメラを用意し、同一シーンを所定の間隔に配置された複数のカメラで撮影する方法が考えられる。最近では2視差を直接撮影できるカメラが市販されているが、多視差を直接撮影できるカメラは一般的でない。
【0004】
また、3次元CG(Computer Graphics)画像を作成し、複数のカメラ位置を設定してレンダリングする方法も考えられる。3次元CG画像には奥行き情報が含まれており、3次元画像から多視差方式に対応した視差画像を作成することは可能である。しかし、カメラ位置の数が多い場合、レンダリング回数が多くなり、時間とコストがかかるという問題がある。
さらに、ほとんどの映像はCG画像ではなく実写であり、実写から3次元映像を作成することが求められている。
【0005】
実写映像による多視差映像を制作する為に、平面映像を基にして多視差映像に変換する手法(いわゆる2次元/3次元変換の手法)は、いくつか存在する(特許文献1、特許文献2)。
特許文献1は、平面映像を近景と遠景に分離し、近景領域だけを所定の距離だけシフトするとともに拡大して視差映像を生成する2次元/3次元変換手法について開示している。
一方、本出願人は、特許文献2において、2次元画像、及び奥行き情報を持つ画像(以下、「デプス画像」という。)を入力とし、デプス画像と仮想カメラ位置との関係から視差を求め視差映像を生成する手法を提案している。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2010−233391号公報
【特許文献2】特願2010−176864号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献1に記載の手法は、画面全体を近景および遠景の2段階の奥行きに分離するものであり、2段階の奥行きだけでは、生成された映像から受ける奥行きの印象が乏しいという問題がある。また、近景の内部は視差を持たないため、更に奥行きの印象が乏しいという問題がある。
また、特許文献1に記載の手法は、近景と遠景に分離してシフトすると映像の空白部が生じる為、近景をシフトするとともに拡大することにより空白部の出現を回避している。しかしながら、元々手前にある被写体は大きく撮影されている為、更に拡大することにより、画面のシーンに矛盾が生じ、違和感が大きいという問題がある。
【0008】
一方、特許文献2に記載の手法は、デプス画像とカメラ位置の相対関係から、画像内の被写体ごとではなく画素ごとに視差によるシフト量を決めるので、全体の奥行きの印象が豊かになるという利点がある。
しかし、隣接する2画素間の奥行き量の情報だけでは、2画素が同一の被写体間に属するのか、別の被写体に属するのかが特定できないので、2画素が別の被写体に属する場合の隠れ面に対処できないという問題がある。
【0009】
ここで、図15を参照しながら、「隠れ面」について説明する。「隠れ面」とは、元の平面画像ではその位置の画素情報が欠落している領域であり、視差によって生じるものである。
図15(a)は、元の平面画像を示している。元の平面画像に記録されたシーンは、背景100、円形の物体である手前物体101、長方形の物体である奥物体102によって構成されている。
図15(b)は、図15(a)におけるA方向から覗き込んだ様子を示している。図15(b)では、手前物体101と背景100との間に隠れ面103a(黒色の領域)が生じている。
また、図15(c)は、図15(a)におけるB方向から覗き込んだ様子を示している。図15(c)では、手前物体101と奥物体102との間に隠れ面103b(黒色の領域)が生じている。
このような隠れ面に対しては、何も対処をしないと、本来なら後ろの被写体が適切に補われて表示されるべき領域に、手前の被写体または後ろの被写体の境界部の画素が表示されてしまい、不自然な映像になってしまう場合がある。
【0010】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは、隠れ面が違和感なく補正された視差画像を生成することができる視差画像生成装置等を提供することである。
【課題を解決するための手段】
【0011】
前述した目的を達成するために第1の発明は、立体視を実現するための視差画像を生成する視差画像生成装置であって、所望の2次元画像、前記2次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記2次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力手段と、カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値に係る所定のパラメータを入力するパラメータ入力手段と、スクリーン面のサンプリング点と、前記所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか1つを採用区間とし、前記採用区間における第1方向側の奥行き値である第1奥行き値、及び、前記第1方向とは異なる第2方向側の奥行き値である第2奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定手段と、前記第1奥行き値及び前記第2奥行き値の位置にそれぞれ対応する前記ラベル画像の第1ラベル値及び第2ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定手段と、を具備することを特徴とする視差画像生成装置である。
第1の発明によって、隠れ面を適切に検出することができる。
【0012】
第1の発明は、前記隠れ面判定手段によって前記参照位置が隠れ面ではないと判定された場合には、前記2次元画像における前記参照位置の画素値を前記サンプリング点の画素値とし、前記隠れ面判定手段によって前記参照位置が隠れ面であると判定された場合には、前記サンプリング点の画素値を補償する画素値である補償画素値を特定する補償処理を実行する画素値割り当て手段、を更に具備することが望ましい。
これによって、隠れ面が補正された視差画像を生成することができる。
【0013】
第1の発明において、前記隠れ面判定手段は、前記参照位置が隠れ面である場合、更に、前記第1奥行き値が前記第2奥行き値よりも奥側の値を示す場合には、前記視線直線が前記第1方向から手前の被写体と奥の被写体との間を通ることによって前記第1方向から覗き込んだ第1方向隠れ面が生じていると判定し、又は、前記第2奥行き値が前記第1奥行き値よりも奥側の値を示す場合には、前記視線直線が前記第2方向から手前の被写体と奥の被写体との間を通ることによって前記第2方向から覗き込んだ第2方向隠れ面が生じていると判定し、前記画素値割り当て手段における前記補償処理では、前記第1方向隠れ面の場合には、前記隠れ面判定手段による判定結果を前記第1方向に参照していくことによって隠れ面境界位置を特定し、又は、前記第2方向隠れ面の場合には、前記隠れ面判定手段による判定結果を前記第2方向に参照していくことによって隠れ面境界位置を特定し、更に、前記隠れ面境界位置を基準として前記補償画素値を特定することが望ましい。
これによって、隠れ面が違和感なく補正された視差画像を生成することができる。
【0014】
第1の発明における前記画素値割り当て手段における前記補償処理では、例えば、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記補償画素値を割り当てる。
これによって、多くの場合に合理的と考えられる補償画素値を割り当てることができる。
【0015】
また、第1の発明における前記画素値割り当て手段における前記補償処理では、例えば、折り返しコピーされる画素位置のラベル値が、前記参照位置に現れるべき被写体のラベル値と一致するか否かを判定し、一致する場合には、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記補償画素値を割り当てて、一致しない場合には、前記参照位置に現れるべき被写体のラベル値と同一の一繋がりのサンプリング点群のなかで最も遠い点に係る参照位置の画素値を、前記補償画素値として割り当てる。
これによって、他の被写体の画素値を補償画素値として補償することがなくなり、どのような場合であっても、合理的と考えられる補償画素値を割り当てることが可能になる。
【0016】
第2の発明は、立体視を実現するための視差画像を生成する視差画像生成方法であって、所望の2次元画像、前記2次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記2次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力ステップと、カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値に係る所定のパラメータを入力するパラメータ入力ステップと、スクリーン面のサンプリング点と、前記所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか1つを採用区間とし、前記採用区間における第1方向側の奥行き値である第1奥行き値、及び、前記第1方向とは異なる第2方向側の奥行き値である第2奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定ステップと、前記第1奥行き値及び前記第2奥行き値の位置にそれぞれ対応する前記ラベル画像の第1ラベル値及び第2ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定ステップと、を含むことを特徴とする視差画像生成方法である。
第2の発明によって、隠れ面を適切に検出することができる。
【0017】
第3の発明は、コンピュータを、所望の2次元画像、前記2次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記2次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力手段と、カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値に係る所定のパラメータを入力するパラメータ入力手段と、スクリーン面のサンプリング点と、前記所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか1つを採用区間とし、前記採用区間における第1方向側の奥行き値である第1奥行き値、及び、前記第1方向とは異なる第2方向側の奥行き値である第2奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定手段と、前記第1奥行き値及び前記第2奥行き値の位置にそれぞれ対応する前記ラベル画像の第1ラベル値及び第2ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定手段と、して機能させるためのプログラムである。
第3の発明に係るプログラムをコンピュータにインストールすることで、第1の発明に係る視差画像生成装置を得ることができる。
【0018】
第4の発明は、第3の発明に係るプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【発明の効果】
【0019】
本発明により、隠れ面が違和感なく補正された視差画像を生成することができる視差画像生成装置等を提供することができる。
【図面の簡単な説明】
【0020】
【図1】視差画像生成装置のハードウエア構成図
【図2】視差画像生成装置の入出力データを示す図
【図3】パラメータを説明する図
【図4】視差画像生成処理の詳細を示すフローチャート
【図5】参照位置特定処理を説明する図
【図6】参照位置特定処理を説明する図
【図7】第1の処理例を示す図
【図8】第2の処理例を示す図
【図9】変形例1を説明する図
【図10】2次元画像の一例を示す図
【図11】デプス画像の一例を示す図
【図12】ラベル画像の一例を示す図
【図13】視線が左方向からの視差画像の一例を示す図
【図14】視線が右方向からの視差画像の一例を示す図
【図15】隠れ面を説明する図
【発明を実施するための形態】
【0021】
以下図面に基づいて、本発明の実施形態を詳細に説明する。
図1は、視差画像生成装置1のハードウエア構成図である。尚、図1のハードウエア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
視差画像生成装置1は、制御部11、記憶部12、メディア入出力部13、通信制御部14、入力部15、表示部16、周辺機器I/F部17等が、バス18を介して接続される。
【0022】
制御部11は、CPU(Central Processing Unit)、ROM(Read OnlY MemorY)、RAM(Random Access MemorY)等で構成される。
CPUは、記憶部12、ROM、記録媒体等に格納されるプログラムをRAM上のワークメモリ領域に呼び出して実行し、バス18を介して接続された各装置を駆動制御し、視差画像生成装置1が行う後述する処理を実現する。
ROMは、不揮発性メモリであり、視差画像生成装置1のブートプログラムやBIOS等のプログラム、データ等を恒久的に保持している。
RAMは、揮発性メモリであり、記憶部12、ROM、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部11が各種処理を行う為に使用するワークエリアを備える。
【0023】
記憶部12は、HDD(ハードディスクドライブ)等であり、制御部11が実行するプログラム、プログラム実行に必要なデータ、OS(オペレーティングシステム)等が格納される。プログラムに関しては、OS(オペレーティングシステム)に相当する制御プログラムや、後述する処理を視差画像生成装置1に実行させるためのアプリケーションプログラムが格納されている。
これらの各プログラムコードは、制御部11により必要に応じて読み出されてRAMに移され、CPUに読み出されて各種の手段として実行される。
【0024】
メディア入出力部13(ドライブ装置)は、データの入出力を行い、例えば、CDドライブ(−ROM、−R、−RW等)、DVDドライブ(−ROM、−R、−RW等)等のメディア入出力装置を有する。
通信制御部14は、通信制御装置、通信ポート等を有し、視差画像生成装置1とネットワーク間の通信を媒介する通信インタフェースであり、ネットワークを介して、他の装置間との通信制御を行う。ネットワークは、有線、無線を問わない。
【0025】
入力部15は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
入力部15を介して、視差画像生成装置1に対して、操作指示、動作指示、データ入力等を行うことができる。
表示部16は、CRTモニタ、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携して視差画像生成装置1のビデオ機能を実現するための論理回路等(ビデオアダプタ等)を有する。
【0026】
周辺機器I/F(インタフェース)部17は、視差画像生成装置1に周辺機器を接続させるためのポートであり、周辺機器I/F部17を介して視差画像生成装置1は周辺機器とのデータの送受信を行う。周辺機器I/F部17は、USBやIEEE1394やRS−235C等で構成されており、通常複数の周辺機器I/Fを有する。周辺機器との接続形態は有線、無線を問わない。
バス18は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【0027】
図2は、視差画像生成装置1の入出力データを示す図である。図2に示すように、視差画像生成装置1は、2次元画像2、ラベル画像3、デプス画像4、並びにパラメータ5を入力データとする。また、視差画像生成装置1は、視差画像6を出力データとする。
2次元画像2、ラベル画像3、及びデプス画像4は、視差画像生成装置1の制御部11が生成しても良いし、メディア入出力部13、通信制御部14等を介して外部から取得しても良い。また、パラメータ5は、視差画像生成装置1の入力部15を介して入力しても良いし、予めパラメータ5が定義されたパラメータファイルを外部から取得しても良い。
視差画像6は、視差画像生成装置1の記憶部12に記憶されても良いし、表示部16に表示されても良いし、メディア入出力部13、通信制御部14等を介して外部に出力しても良い。
【0028】
2次元画像2は、動画像(平面映像)の1枚分のフレーム画像または静止画像である。動画像(平面映像)には、例えば、単位時間当たり所定のフレーム数(通常、1秒間に30フレーム)のカラー静止画像が含まれており、各画素がRGB各256段階の階調を持つ。
後述する視差画像生成処理のすべての処理は、フレームごとに独立して実行するので、以下の説明においては、1枚分のフレーム画像(静止画像)の処理について記述する。
【0029】
ラベル画像3は、それぞれの2次元画像2に対応付けて、2次元画像2に記録されたシーンを構成する被写体を識別する固有の数値(ラベル値)によって領域分けし、このラベル値を画素値に置き換えた画像である。例えば、背景、建物、及び人物から構成されるシーンにおいて、背景、建物、及び人物に相当するラベル値として、それぞれL0、L1、L2を割り当て、対応する2次元画像2の各画素がどの被写体に属しているかを、L0、L1、L2の画素値に置き換えることによって表現する。
ラベル画像3は、2次元画像2に基づいてフォトレタッチソフトなどを用いて手作業で生成してもよいし、別途ソフトウエアを用いて自動的に生成してもよい。
【0030】
デプス画像4は、2次元画像2に係るカメラから被写体までの奥行き値を画素値に置き換えた画像である。ここで、カメラとは、視差画像生成装置1の内部処理において定義される仮想的なカメラを意味する。
デプス画像4は、例えば、画素値の範囲が0〜255(8ビット)のグレースケールであり、0(黒)が最も奥、255(白)が最も手前を意味する場合が多いが、逆であっても良い。以下では、説明を分かり易くするために、デプス画像4は、画素値の範囲が0〜255であり、0(黒)が最も奥、255(白)が最も手前を意味するものとする。
デプス画像4は、2次元画像2に基づいてフォトレタッチソフトなどを用いて手作業で生成してもよいし、別途ソフトウエアを用いて自動的に生成してもよい。
【0031】
パラメータ5は、後述する視差画像生成処理に用いる値である。パラメータ5には、カメラ数n、カメラ間隔、スクリーン面からカメラまでの奥行き値などが含まれる。
更に、パラメータ5には、2次元画像2の横幅、縦幅、画素ピッチなどが含まれる。2次元画像2は、パラメータ5の横幅、縦幅、画素ピッチによって、横方向(X軸方向)のピクセル数、及び、縦方向(Y軸方向)のピクセル数が決まる。
【0032】
図3は、パラメータ5について説明する図である。
視差画像生成処理では、図3に示すように、仮想的な3次元空間(XYZ空間)に、スクリーン面S、カメラC1〜C8を配置する。
スクリーン面Sは、2次元画像2を投影する領域であり、視差画像6の各画素が含まれる。図3に示す例では、スクリーン面SはXY平面と一致する。
【0033】
カメラC1〜C8は、パラメータ5のカメラ数n、カメラ間隔、スクリーン面Sからカメラまでの奥行き値に基づいて配置する。図3に示す例では、カメラ数nが「8」、カメラ間隔が「等間隔のCcamera_X」、奥行き値が「Ccamera_Z」である。Ccamera_Xは、両目視差(約60mm〜70mm程度)とする。
また、図3に示す例では、カメラ設置線30は、スクリーン面Sと平行、かつ、スクリーン面Sとの距離が「Ccamera_Z」の直線である。CiをカメラID(Ci=1、・・・、8)とすると、カメラC1〜C8のカメラ位置(CXi、CZi)(i=1、・・・、8)は、以下の式に基づいて算出する。尚、wは、2次元画像2の横幅である。
【0034】
【数1】
【0035】
図3に示す例では、カメラ間隔を等間隔としたが、これはディスプレイにおける画像の見せ方に依存する。カメラ間隔を等間隔とした場合、観察者がどの位置から見ても隣り合う視差画像6が見えるようになる。但し、他の見せ方を所望する場合には、カメラ間隔は等間隔でなくても良い。
また、図3に示す例では、カメラ設置線30を直線としたが、これもディスプレイにおける画像の見せ方に依存する。例えば、ディスプレイが曲面の場合、カメラ設置線30を曲線とすることが考えられる。
図3に示す最遠面Pは、視差画像6に表現される被写体の中でカメラCから最も遠い位置であり、かつ、スクリーン面Sと平行な面である。
【0036】
図2の説明に戻る。
視差画像6は、立体視を実現するための画像である。本発明の実施の形態では、視差画像6は、特に、両目視差(約60mm〜70mm程度)を利用し、裸眼観察によって立体視を実現するための画像である。
尚、本発明の実施の形態では詳細に述べないが、複数の視差画像6をディスプレイの仕様に合わせて合成し、ディスプレイに表示することによって、裸眼観察による立体視を実現することが可能となる。複数の視差画像6の合成処理については、公知の技術を利用すれば良い。
【0037】
参照位置特定処理21では、デプス画像4とパラメータ5などを入力データとする。参照位置特定処理21では、スクリーン面のサンプリング点と、所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、デプス画像4における奥行き値同士の区間の中で視線直線が通る区間である通過区間のいずれか1つを採用区間とし、採用区間における第1方向(例えば、「左」)側の奥行き値である第1奥行き値、及び、第1方向とは異なる第2方向(例えば、「右」)側の奥行き値である第2奥行き値のうち、より奥を示す方の位置を参照位置とする。特定された参照位置は、「参照位置バッファ」としてRAMや記憶部12などに格納される。
【0038】
参照位置バッファの大きさは、2次元画像2の横方向のピクセル数×縦方向のピクセル数分としても良いし、又は、2次元画像2の横方向のピクセル数分としても良い。後述する他のバッファの大きさについても同様である。尚、2次元画像2、ラベル画像3、デプス画図4、及び視差画像6の横方向のピクセル数及び縦方向のピクセル数は、全て同じである。
以下では、第1方向を左、第2方向を右として説明する。同様に、第1奥行き値は左奥行き値、第2奥行き値は右奥行き値として説明する。
【0039】
参照位置については、2画素間の奥行き量によって特定することができる。一方、2画素間の奥行き量だけでは、その2画素が同一の被写体に属するのか、別の被写体に属するのかは特定できない。また、2画素が別々の被写体に属する場合には、その2画素の間には視差により隠れ面が生じ、何も対処しないと、本来なら後ろの被写体が適切に補われて表示されるべき領域に、手前の被写体または後ろの被写体の境界部の画素がコピーされる結果になり好ましくない。そこで、本発明の実施の形態では、ラベル画像3も入力データとし、隠れ面判定処理22、ラベル値割り当て処理23、及び画素値割り当て処理24により、隠れ面に対して適切な画素値を補う。
【0040】
隠れ面判定処理22では、ラベル画像3と参照位置バッファなどを入力データとする。隠れ面判定処理22では、左奥行き値及び右奥行き値の位置にそれぞれ対応するラベル画像3の左ラベル値及び右ラベル値が異なる場合、参照位置が隠れ面であると判定する。また、隠れ面判定処理22では、左ラベル値及び右ラベル値が同一である場合、参照位置が隠れ面ではないと判定する。隠れ面の判定結果は、「隠れ面バッファ」としてRAMや記憶部12などに格納される。
【0041】
また、隠れ面判定処理22では、参照位置が隠れ面である場合、更に、左奥行き値が右奥行き値よりも奥側の値を示す場合には、視線直線が左方向から手前の被写体と奥の被写体との間を通ることによって、左から覗き込んだ左隠れ面が生じていると判定する。また、隠れ面判定処理22では、右奥行き値が左奥行き値よりも奥側の値を示す場合には、視線直線が右から手前の被写体と奥の被写体との間を通ることによって、右から覗き込んだ右隠れ面が生じていると判定する。この判定結果も、「隠れ面バッファ」としてRAMや記憶部12などに格納される。
【0042】
ラベル値割り当て処理23では、ラベル画像3と隠れ面バッファなどを入力データとする。ラベル値割り当て処理23では、隠れ面判定処理22において参照位置が隠れ面ではないと判定された場合、ラベル画像3の左ラベル値又は右ラベル値を、処理対象のサンプリング点に割り当てる(この場合、左ラベル値と右ラベル値は同一であるから、どちらでも良い。)。また、ラベル値割り当て処理23では、隠れ面判定処理22において参照位置が隠れ面であると判定された場合、当該隠れ面によってどの被写体が出てくるのか、及び、どの被写体が当該隠れ面を隠していたのかを特定する。言い換えると、ラベル値割り当て処理23では、隠れ面に係る奥側の被写体及び手前側の被写体を特定する。そして、ラベル値割り当て処理23では、特定された両者の被写体のラベル値を、処理対象のサンプリング点に割り当てる。割り当てられたラベル値は、「ラベルバッファ」としてRAMや記憶部12などに格納される。
【0043】
画素値割り当て処理24では、2次元画像2、ラベルバッファ、及び参照位置バッファなどを入力データとする。画素値割り当て処理24では、隠れ面判定処理22において参照位置が隠れ面ではないと判定された場合には、2次元画像2における参照位置の画素値をサンプリング点の画素値とし、隠れ面判定処理22において参照位置が隠れ面であると判定された場合には、サンプリング点の画素値を補償する画素値(補償画素値)を特定する処理である補償処理を実行する。
補償処理では、例えば、制御部11は、左隠れ面の場合には、隠れ面判定処理22による判定結果を左に参照していくことによって隠れ面境界位置を特定する。また、制御部11は、右隠れ面の場合には、隠れ面判定処理22による判定結果を右に参照していくことによって隠れ面境界位置を特定する。そして、制御部11は、隠れ面境界位置を基準として補償画素値を特定する。
画素値割り当て処理24によって割り当てられたサンプリング点の画素値の集合が、視差画像6である。
【0044】
以下では、図4〜図8を参照しながら、視差画像生成装置1の処理の詳細について説明する。
図4は、視差画像生成処理の詳細を示すフローチャートである。
【0045】
視差画像生成装置1の制御部11は、処理対象とするXZ平面を特定するために、スクリーン面SにおけるY座標を決定する(S201)。以下、S201にて決定されたY座標をYsとする。視差画像生成装置1は、YsごとにS202〜S208の処理を繰り返す。すべてのY座標についてS202〜S208の処理を実行することにより、1つのカメラCについて、1つの2次元画像2の視差画像6が求まることになる。
【0046】
制御部11は、スクリーン面Sにおける処理対象の画素、すなわちサンプリング点を決定する(S202)。但し、サンプリング点のY座標は、S201において決定されたYsである。
次に、制御部11は、S202において決定されたサンプリング点に対して、S203〜S206の処理によって視差画像6の画素値を算出する処理を実行する。
【0047】
制御部11は、参照位置特定処理21を行う(S203)。ここで、参照位置は、生成される視差画像6における各画素に対して、2次元画像2のどの位置が対応するかを示すものである。制御部11は、視差画像6における各画素について、対応する点の奥行き値、カメラ位置などの幾何的情報から、その画素に対応する2次元画像2における参照位置を計算する。
【0048】
図5、図6は、参照位置特定処理を説明する図である。図5、図6では、スクリーン面Sにおける各奥行き値(デプス画像4の画素値)の画素位置をX座標、奥行き値自体をZ座標とし、奥行き分布情報を複数の黒丸をつなぐ奥行き分布曲線32によって図示している。スクリーン面Sでは、所定の間隔によってサンプリング点が決定される。また、2次元画像2は、最遠面Pの位置にあるものとする。
【0049】
最初に、図5を参照しながら説明する。
制御部11は、サンプリング点のX座標Xsと、処理対象のカメラ位置(CXi、CZi)(i=1、・・・、n)と、を通る視線直線31aを算出する。カメラ位置(CXi、CZi)は、前述した通り、パラメータ5のカメラ数n、カメラ間隔Ccamera_X及びカメラCiからスクリーン面Sまでの奥行き値Ccamera_Zに基づいて設定されている。図5に示す例では、カメラC3を処理対象としている。
【0050】
次に、制御部11は、奥行き分布曲線32における奥行き値(黒丸)同士の区間の中で視線直線31aが通る区間である通過区間33aを特定する。そして、制御部11は、通過区間33aを採用区間とし、採用区間における左側の奥行き値である左奥行き値34a、及び、右側の奥行き値である右奥行き値35aのうち、より奥を示す方(Z座標の値が小さい方)のX座標位置を参照位置とする。図5に示す例では、左奥行き値34aのX座標位置が参照位置となる。左奥行き値34aのX座標をXkとすると、XsとXkとの差がシフト量36である。シフト量36は、生成される視差画像6の画素位置と、対応する2次元画像2の画素位置との差である。
そして、制御部11は、左奥行き値34aのX座標の値Xkを、サンプリング点Xsに対する参照位置として、参照位置バッファに格納する。
制御部11は、以上の処理を全てのカメラC1〜C8に対して実行し、各視差画像6における各画素(Xs,Ys)のシフト量を算出する。
【0051】
図6では、複数の通過区間33b、33c、33dが存在する例を示している。この場合、制御部11は、最もカメラC1〜C8に近いものを採用区間とする。図6に示す例では、通過区間33bを採用区間とする。
そして、制御部11は、採用区間における左奥行き値34b及び右奥行き値35bのうち、より奥を示す方のX座標位置を参照位置とする。図6に示す例では、右奥行き値35bのX座標位置が参照位置となる。
【0052】
複数の通過区間33が存在する場合、最もカメラC1〜C8に近いものが、最も手前の被写体である。従って、最もカメラC1〜C8に近いものを採用区間とすることで、複数の被写体の配置関係が忠実に再現された視差画像6を生成することができる。
【0053】
図7は、第1の処理例を示す図である。図7では、各サンプリング点Xsに対して、参照位置特定処理21(S203)の処理結果である参照位置バッファ41、隠れ面判定処理22(S204)の処理結果である隠れ面バッファ42、ラベル値割り当て処理23(S205)の処理結果であるラベルバッファ43、及び画素値割り当て処理24(S206)の処理結果である生成結果バッファ44が示されている。図7の例では、2次元画像2のシーンを構成する被写体が、背景を含めて7つ存在する。背景にはラベル値「L0」、その他の物体には、ラベル値「L1」〜「L6」が対応付けられている。
【0054】
図7の参照位置バッファ41には、サンプリング点Xsが「1、2、3、4、5、6、7、8、・・・」の各々について、参照位置バッファ41には、「3、4、5、7、8、9、11、12、・・・」が格納されている。
【0055】
図4の説明に戻る。
制御部11は、隠れ面判定処理22を行う(S204)。制御部11は、ラベル画像3を参照し、S203において特定された採用区間(図5の例では33a)の両端(左奥行き値34aと右奥行き値35a)が同一の被写体に属するのか、あるいは、異なる被写体に属するのかを判定する。
具体的には、制御部11は、左奥行き値34aの位置(デプス画像4の画素位置)に対応するラベル画像3の画素位置の画素値を左ラベル値とし、右奥行き値35aの位置(デプス画像4の画素位置)に対応するラベル画像3の画素位置の画素値を右ラベル値とする。そして、制御部11は、左ラベル値と右ラベル値を比較する。両者が同一の場合、視線直線(図5の例では31a)がそのラベル値で表わされる単一の被写体と交差することを意味するので、制御部11は、参照位置が隠れ面ではないと判定する。一方、両者が異なる場合、視線直線(図5の例では31a)が異なる複数の被写体の挟間を通過することを意味するので、制御部11は、参照位置が隠れ面であると判定する。
【0056】
制御部11は、隠れ面の判定結果を隠れ面バッファ42に格納する。より詳細には、制御部11は、(1)参照位置が隠れ面か否か、及び、(2)参照位置が隠れ面である場合には、参照位置が、手前の被写体を左から覗き込んだことにより生じる隠れ面(=左隠れ面)なのか、右から覗き込んだことにより生じる隠れ面(=右隠れ面)なのかを、隠れ面バッファ42に格納する。
【0057】
例えば、図5の例であれば、左奥行き値34a(参照位置の奥行き情報)が右奥行き値35aよりも奥にあることから、左奥行き値34aの位置(参照位置)が隠れ面である場合、制御部11は、この隠れ面を左隠れ面であると判定する。
また、例えば、図6の例であれば、右奥行き値35b(参照位置の奥行き情報)が左奥行き値34bよりも奥にあることから、右奥行き値35bの位置(参照位置)が隠れ面である場合、制御部11は、この隠れ面を右隠れ面であると判定する。
【0058】
図7の隠れ面バッファ42には、参照位置バッファ42が「3、4、5」に対しては、右隠れ面であること(=「右」)が格納されている。また、参照位置バッファ42が「7、8、9、11、12」に対しては、隠れ面でないこと(=「非」)が格納されている。
【0059】
図4の説明に戻る。
次に、制御部11は、ラベル値割り当て処理23を行う(S205)。制御部11は、各参照位置に対してラベル値を割り当てて、ラベルバッファ43に格納する。このとき、参照位置が隠れ面である場合、制御部11は、参照位置を隠していた被写体(=手前側の被写体)のラベル値と、参照位置に現れるべき被写体(=奥側の被写体)のラベル値を格納する。
【0060】
例えば、図5の例であれば、隠れ面の判定結果において、左奥行き値34aの位置(参照位置)が隠れ面である場合、この隠れ面は、左隠れ面であると判定される。従って、制御部11は、左奥行き値34aの位置に対応する左ラベル値の被写体が、奥側の被写体であると判定し、参照位置に現れるべき被写体(=奥側の被写体)のラベル値として、左ラベル値を格納する。また、制御部11は、右奥行き値35aの位置に対応する右ラベル値の被写体が、手前側の被写体であると判定し、参照位置を隠していた被写体(=手前側の被写体)のラベル値として、右ラベル値を格納する。
また、例えば、図6の例であれば、隠れ面の判定結果において、右奥行き値35bの位置(参照位置)が隠れ面である場合、この隠れ面は、右隠れ面であると判定される。従って、制御部11は、右奥行き値35bの位置に対応する右ラベル値の被写体が、奥側の被写体であると判定し、参照位置に現れるべき被写体(=奥側の被写体)のラベル値として、右ラベル値を格納する。また、制御部11は、左奥行き値34bの位置に対応する左ラベル値の被写体が、手前側の被写体であると判定し、参照位置を隠していた被写体(=手前側の被写体)のラベル値として、左ラベル値を格納する。
【0061】
図7のラベルバッファ43には、各参照位置のラベル値が格納されている。参照位置バッファ42が「3、4、5」に対しては、参照位置を隠していた被写体のラベル値=L6/参照位置に現れるべき被写体のラベル値=L0が格納されている。また、参照位置Xk=7、8、9、11、12は隠れ面ではないので、ラベル値=L0のみが格納されている。
【0062】
次に、制御部11は、画素値割り当て処理24を行う(S206)。制御部11は、各サンプリング点Xsについて隠れ面バッファ42を確認し、隠れ面判定の結果が隠れ面ではない場合(「非」の場合)、参照位置バッファ41を確認し、サンプリング点Xsに対して、2次元画像2における参照位置Xkの画素値を割り当てる。
【0063】
図7に示す例では、サンプリング点Xsが「4、5、6、7、8」の隠れ面バッファ42の値は「非」なので、制御部11は、それぞれ、参照位置バッファ41に格納されている参照位置Xk=7、8、9、11、12を生成結果バッファ44に格納する。つまり、制御部11は、参照位置バッファ41に格納されている参照位置Xkの画素値を、そのままサンプリング点Xsに対して割り当てる。
【0064】
一方、制御部11は、各サンプリング点Xsについて隠れ面バッファ42を確認し、隠れ面判定の結果が左隠れ面の場合(「左」の場合)、隠れ面バッファ42を左に参照していくことによって隠れ面境界位置を特定し、又は、隠れ面判定の結果が右隠れ面の場合(「右」の場合)、隠れ面バッファ42を右に参照していくことによって隠れ面境界位置を特定する。
そして、制御部11は、隠れ面境界位置を基準として、サンプリング点の画素値を補償する画素値(補償画素値)を特定する。
【0065】
例えば、制御部11は、サンプリング点Xsから隠れ面境界位置までの距離dを算出し、サンプリング点Xsから2d−1の距離にあるサンプリング点Xs’に対する参照位置バッファ41の値を生成結果バッファ44に格納する。つまり、制御部11は、サンプリング点Xsから2d−1の距離にあるサンプリング点Xs’に対する参照位置の画素値を、補償画素値として割り当てる。
この手法では、隠れ面境界位置を折り返し点として、画素値を折り返しコピーすることによって、サンプリング点Xsの画素値を補償している。
【0066】
図7に示す例では、サンプリング点Xsが「1」の隠れ面バッファ42の値は「右」なので、制御部11は、サンプリング点Xsから右に隠れ面バッファ42を参照していくことによって、隠れ面の境界位置が「4」であることを特定する。そして、制御部11は、サンプリング点Xs「1」から隠れ面の境界位置「4」までの距離L=4−1=3を算出し、サンプリング点Xs「1」から2d−1=2×3−1=5の距離にあるサンプリング点Xs’「6」に対する参照位置バッファ41の値「9」を生成結果バッファ44に格納する。
また、サンプリング点Xsが「2」の隠れ面バッファ42の値も「右」なので、制御部11は、サンプリング点Xsから右に隠れ面バッファ42を参照していくことによって、隠れ面の境界位置が「4」であることを特定する。そして、制御部11は、サンプリング点Xs「2」から隠れ面の境界位置「4」までの距離L=4−2=2を算出し、サンプリング点Xs「2」から2d−1=2×2−1=3の距離にあるサンプリング点Xs’「5」に対する参照位置バッファ41の値「8」を生成結果バッファ44に格納する。
また、サンプリング点Xsが「3」の隠れ面バッファ42の値も「右」なので、制御部11は、サンプリング点Xsから右に隠れ面バッファ42を参照していくことによって、隠れ面の境界位置が「4」であることを特定する。そして、制御部11は、サンプリング点Xs「3」から隠れ面の境界位置「4」までの距離L=4−3=1を算出し、サンプリング点Xs「3」から2d−1=2×1−1=1の距離にあるサンプリング点Xs’「4」に対する参照位置バッファ41の値「7」を生成結果バッファ44に格納する。
以上の処理により、隠れ面と判定された場合については、隠れ面境界位置を折り返し点とした画素値の折り返しコピーにより、多くの場合に合理的と考えられる画素値を割り当てることが可能になる。
【0067】
図7に示した例は、サンプリング点Xsから2d−1の距離にあるサンプリング点Xs’のラベル値「L0」が、サンプリング点Xsのラベル値「L0」と同一であったが、常に同一であるとは限らない。
そこで、図8を参照しながら、サンプリング点Xsから2d−1の距離にあるサンプリング点Xs’のラベル値と、サンプリング点Xsのラベル値とが異なる場合の例外処理について説明する。
【0068】
図8に示す例では、サンプリング点Xs「1」から2d−1=5の距離にあるサンプリング画素位置Xs’「6」のラベル値が「L3」となっており、サンプリング点Xsのラベル値「L0」と異なっている。このような場合、前述の手法では、他の被写体についての画素値を隠れ面補償として補うことになってしまい、不合理である。
そこで、制御部11は、折り返しコピーされる画素位置のラベル値が、サンプリング点の参照位置に現れるべき被写体のラベル値と一致するか否かを判定する。より詳しくは、制御部11は、サンプリング点Xsから2d−1の距離にある画素のラベル値(ラベルバッファ43の値)が、サンプリング点Xsの参照位置に現れるべき被写体のラベル値(ラベルバッファ43の2番目のラベル値)と一致するか否かを判定する。そして、制御部11は、一致する場合には、前述の折り返しコピーによる隠れ面補償処理を実行し、一致しない場合には、以下に説明する例外処理を実行する。
【0069】
例外処理では、制御部11は、サンプリング点Xsの参照位置に現れるべき被写体のラベル値(ラベルバッファ43の2番目のラベル値)と同一の一繋がりのサンプリング点群のなかで最も遠いサンプリング点Xs’’の参照位置バッファ41に格納されている参照位置の画素値を、サンプリング点Xsの画素値として割り当てる。
図8に示す例では、サンプリング点Xsが「1」の参照位置に現れるべき被写体のラベル値「L0」と同一の一繋がりのサンプリング点群は、「2」〜「5」となっている。そこで、制御部11は、サンプリング点群「2」〜「5」の中で最も遠いサンプリング点Xs’’「5」の参照位置バッファ41に格納されている参照位置「8」を、サンプリング点Xs「1」の生成結果バッファ44に格納する。
以上の例外処理により、他の被写体の画素値を隠れ面の画素値として補償することがなくなり、どのような場合であっても、合理的と考えられる画素値を割り当てることが可能になる。
【0070】
そして、生成結果バッファ44に格納された最終的な参照位置に対応する2次元画像2の画素値を各サンプリング点Xsの画素値として割り当てることにより、隠れ面が適切な画素値によって補償された視差画像6を得ることが可能になる。
【0071】
図4の説明に戻る。
制御部11は、全サンプリング点(但し、Y座標はYsのみ)について処理が終了したかどうか確認する(S207)。処理が終了していない場合(S207のNo)、S202から処理を繰り返す。処理が終了している場合(S207のYes)、S208に進む。
【0072】
次に、制御部11は、全てのY座標について処理が終了したかどうか確認する(S208)。処理が終了していない場合(S208のNo)、S201から処理を繰り返す。処理が終了している場合(S208のYes)、S209に進む。
【0073】
次に、制御部11は、S206において算出された画素値をカメラCごとに纏めて、視差画像6として記憶部12に保存する(S209)。カメラ数nが「8」の場合、制御部11は、S206において算出された画素値をカメラC1〜C8ごとに纏めて、8枚の視差画像6として記憶部12に記憶する。
【0074】
以上、本発明の実施の形態に係る視差画像生成装置1は、隠れ面が違和感なく補正された視差画像6を生成することができる。
【0075】
<変形例1>
画素値割り当て処理24(S206)の変形例1について説明する。
前述の手法では、隠れ面境界位置を折り返し点として、画素値を折り返しコピーすることによって、サンプリング点Xsの画素値を補償している。この手法では、横方向の画素値のみを考慮していることから、参照位置に現れるべき被写体(=奥側の被写体)の階調変化が激しく、かつ、参照位置を隠していた被写体(=手前側の被写体)の輪郭が曲線のような場合には、隠れ面の領域において手前側の被写体の輪郭に沿った筋状の線が出現してしまうことがある。変形例1では、この現象を回避することができる。
【0076】
図9は、変形例1を説明する図である。図9に示す例では、2次元画像2のシーンを構成する被写体は、物体51及び背景52である。この例では、カメラ位置が正面よりも右である。そして、物体51と背景52との間に、隠れ面が生じている。
制御部11は、まず、連続する複数のY座標Ys、Ys’、Ys’
’、・・・について、参照位置特定処理21(S203)、隠れ面判定処理22(S204)、及びラベル値割り当て処理(S205)を実行する。
次に、制御部11は、隠れ面と判定された複数の参照位置が、連結している領域を隠れ面領域53(図9では「黒色」)として抽出する。
次に、制御部11は、隠れ面領域43のY方向に伸びる外接直線を折り返し線54として抽出する。この例では、隠れ面が右隠れ面であることから、隠れ面領域53の右側の外接直線を抽出する。一方、隠れ面が左隠れ面であれば、隠れ面領域53の左側の外接直線を抽出すれば良い。
そして、制御部11は、折り返し線54を基準として、画素値を折り返しコピーすることによって、サンプリング点Xsの画素値を補償する。
【0077】
変形例1によって、参照位置に現れるべき被写体(=奥側の被写体)の階調変化が激しく、かつ、参照位置を隠していた被写体(=手前側の被写体)の輪郭が曲線のような場合であっても、隠れ面の領域において横方向に筋状の線が出現してしまうことがない。
【0078】
<変形例2>
画素値割り当て処理24(S206)の変形例2について説明する。変形例2では、折り返しコピーではない各種の手法について説明する。
【0079】
制御部11は、サンプリング点Xsの画素値を補償する為に、以下に示すいずれかの値を算出又は取得する。
(1)参照位置に現れるべき被写体(=奥側の被写体)の全体の平均値
(2)参照位置に現れるべき被写体(=奥側の被写体)の中で、参照位置を隠していた被写体(=手前側の被写体)と隣接する画素群の平均値
(3)参照位置に現れるべき被写体(=奥側の被写体)の代表値(代表値については、予め、補償画素値として適切と考えられる値を記憶部12等に記憶しておく。)
そして、制御部11は、算出又は取得される(1)〜(3)の値を、補償画素値として割り当てる。
【0080】
<変形例3>
変形例3では、図4に示すフローチャートを実行する前に、隠れ面が生じないように、2次元画像2を加工しておく手法について説明する。変形例3の手法は、背景を除いて被写体同士の重なり合いがほとんどないようなシーンの2次元画像2について有効である。
制御部11は、2次元画像2から背景領域を抽出し、テクスチャ生成技術によって、2次元画像2全体の画素位置に画素値を有する加工背景領域を生成する。そして、制御部11は、2次元画像2における背景を除いた被写体の領域に含まれる各画素について、対応する加工背景領域の画素値を対応付けて記憶部12等に記憶しておく。
そして、制御部11は、隠れ面判定処理22(S204)において、参照位置が隠れ面と判定された場合には、対応する加工背景領域の画素値を、サンプリング点Xsの画素値として割り当てる。
【実施例】
【0081】
図10は、2次元画像2の一例を示す図である。図10に示す例では、2次元画像2は、グレースケール画像であり、円形の物体(=淡いグレー)、長方形の物体(=濃いグレー)、及び格子状の背景(=白と黒)によって構成されている。
【0082】
図11は、図10の2次元画像2についてのデプス画像4の一例を示す図である。図11に示す例では、デプス画像4は、0〜255の階調を有するグレースケール画像である。
図11に示すデプス画像4では、図10の円形の物体の奥行き値が階調「0」、格子状の背景の奥行き値が階調「255」、長方形の物体の奥行き値が階調「128」である。つまり、円形の物体が最も手前にあり、格子状の背景が最も奥にあることを示している。
説明を分かり易くする為、図11に示すデプス画像4では、被写体ごとに単一の奥行き値とした。一般の被写体であれば、各部ごとに奥行き値が異なることが多い。
【0083】
図12は、図10の2次元画像2についてのラベル画像3の一例を示す図である。図12に示す例では、ラベル画像3は、0〜255の階調を有するグレースケール画像である。
図12に示すラベル画像3は、例えば、図10の円形の物体のラベル値が階調「0」、格子状の背景のラベル値が階調「255」、長方形の物体のラベル値が階調「128」である。
説明を分かり易くする為、図11と図12は、全く同一の画像とした。前述したように、一般の被写体であれば、各部ごとに奥行き値が異なることが多く、デプス画像4とラベル画像3は、異なる画像となる。
【0084】
本実施例では、図10に示す2次元画像2、図11に示すデプス画像4、図12に示すラベル画像3を入力画像として、視差画像6を生成した。
【0085】
図13は、視線が左方向からの視差画像6の一例を示す図である。図13に示す例では、カメラ位置が図3におけるカメラC3やC4の位置である。
視線が左方向からの視差画像6を生成する際は、円形の物体の左側の輪郭と背景との間や、長方形の物体の左側の輪郭と背景との間に、隠れ面が生じる。
図13に示す例では、隠れ面が適切な画素値によって補償され、違和感なく補正されている。
【0086】
図14は、視線が右方向からの視差画像6の一例を示す図である。図14に示す例では、カメラ位置が図3におけるカメラC7やC8の位置である。図13に示す例では、カメラ位置が図3におけるカメラC3やC4の位置であったことから、図13に示す隠れ面の領域よりも、図14に示す隠れ面の領域の方が大きくなっている。
視線が右方向からの視差画像6を生成する際は、円形の物体の右側の輪郭と背景との間や、長方形の物体の右側の輪郭と背景との間に、隠れ面が生じる。
図14に示す例では、長方形の物体の右側の輪郭と背景との間の隠れ面については、適切な画素値によって補償され、違和感なく補正されている。
一方、円形の物体の右側の輪郭と背景との間の隠れ面については、正しく補償されていない。これは、参照位置に現れるべき被写体(=背景)の階調変化が激しく、かつ、参照位置を隠していた被写体(=円形の物体)の輪郭が曲線なので、隠れ面の領域において円形の物体の輪郭に沿った筋状の線が出現してしまっている。この現象については、前述したように、変形例1によって回避することができる。
【0087】
以上、添付図面を参照しながら、本発明に係る視差画像生成装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【0088】
1………視差画像生成装置
2………2次元画像
3………ラベル画像
4………デプス画像
5………パラメータ
6………視差画像
【特許請求の範囲】
【請求項1】
立体視を実現するための視差画像を生成する視差画像生成装置であって、
所望の2次元画像、前記2次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記2次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力手段と、
カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値に係る所定のパラメータを入力するパラメータ入力手段と、
スクリーン面のサンプリング点と、前記所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか1つを採用区間とし、前記採用区間における第1方向側の奥行き値である第1奥行き値、及び、前記第1方向とは異なる第2方向側の奥行き値である第2奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定手段と、
前記第1奥行き値及び前記第2奥行き値の位置にそれぞれ対応する前記ラベル画像の第1ラベル値及び第2ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定手段と、
を具備することを特徴とする視差画像生成装置。
【請求項2】
前記隠れ面判定手段によって前記参照位置が隠れ面ではないと判定された場合には、前記2次元画像における前記参照位置の画素値を前記サンプリング点の画素値とし、前記隠れ面判定手段によって前記参照位置が隠れ面であると判定された場合には、前記サンプリング点の画素値を補償する画素値である補償画素値を特定する補償処理を実行する画素値割り当て手段、
を更に具備することを特徴とする請求項1に記載の視差画像生成装置。
【請求項3】
前記隠れ面判定手段は、前記参照位置が隠れ面である場合、更に、前記第1奥行き値が前記第2奥行き値よりも奥側の値を示す場合には、前記視線直線が前記第1方向から手前の被写体と奥の被写体との間を通ることによって前記第1方向から覗き込んだ第1方向隠れ面が生じていると判定し、又は、前記第2奥行き値が前記第1奥行き値よりも奥側の値を示す場合には、前記視線直線が前記第2方向から手前の被写体と奥の被写体との間を通ることによって前記第2方向から覗き込んだ第2方向隠れ面が生じていると判定し、
前記画素値割り当て手段における前記補償処理では、前記第1方向隠れ面の場合には、前記隠れ面判定手段による判定結果を前記第1方向に参照していくことによって隠れ面境界位置を特定し、又は、前記第2方向隠れ面の場合には、前記隠れ面判定手段による判定結果を前記第2方向に参照していくことによって隠れ面境界位置を特定し、更に、前記隠れ面境界位置を基準として前記補償画素値を特定する
ことを特徴とする請求項2に記載の視差画像生成装置。
【請求項4】
前記画素値割り当て手段における前記補償処理では、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記補償画素値を割り当てる
ことを特徴とする請求項3に記載の視差画像生成装置。
【請求項5】
前記画素値割り当て手段における前記補償処理では、折り返しコピーされる画素位置のラベル値が、前記参照位置に現れるべき被写体のラベル値と一致するか否かを判定し、
一致する場合には、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記補償画素値を割り当てて、
一致しない場合には、前記参照位置に現れるべき被写体のラベル値と同一の一繋がりのサンプリング点群のなかで最も遠い点に係る参照位置の画素値を、前記補償画素値として割り当てる
ことを特徴とする請求項3に記載の視差画像生成装置。
【請求項6】
立体視を実現するための視差画像を生成する視差画像生成方法であって、
所望の2次元画像、前記2次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記2次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力ステップと、
カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値に係る所定のパラメータを入力するパラメータ入力ステップと、
スクリーン面のサンプリング点と、前記所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか1つを採用区間とし、前記採用区間における第1方向側の奥行き値である第1奥行き値、及び、前記第1方向とは異なる第2方向側の奥行き値である第2奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定ステップと、
前記第1奥行き値及び前記第2奥行き値の位置にそれぞれ対応する前記ラベル画像の第1ラベル値及び第2ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定ステップと、
を含むことを特徴とする視差画像生成方法。
【請求項7】
コンピュータを、
所望の2次元画像、前記2次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記2次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力手段と、
カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値に係る所定のパラメータを入力するパラメータ入力手段と、
スクリーン面のサンプリング点と、前記所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか1つを採用区間とし、前記採用区間における第1方向側の奥行き値である第1奥行き値、及び、前記第1方向とは異なる第2方向側の奥行き値である第2奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定手段と、
前記第1奥行き値及び前記第2奥行き値の位置にそれぞれ対応する前記ラベル画像の第1ラベル値及び第2ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定手段と、
して機能させるためのプログラム。
【請求項8】
請求項7に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【請求項1】
立体視を実現するための視差画像を生成する視差画像生成装置であって、
所望の2次元画像、前記2次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記2次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力手段と、
カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値に係る所定のパラメータを入力するパラメータ入力手段と、
スクリーン面のサンプリング点と、前記所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか1つを採用区間とし、前記採用区間における第1方向側の奥行き値である第1奥行き値、及び、前記第1方向とは異なる第2方向側の奥行き値である第2奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定手段と、
前記第1奥行き値及び前記第2奥行き値の位置にそれぞれ対応する前記ラベル画像の第1ラベル値及び第2ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定手段と、
を具備することを特徴とする視差画像生成装置。
【請求項2】
前記隠れ面判定手段によって前記参照位置が隠れ面ではないと判定された場合には、前記2次元画像における前記参照位置の画素値を前記サンプリング点の画素値とし、前記隠れ面判定手段によって前記参照位置が隠れ面であると判定された場合には、前記サンプリング点の画素値を補償する画素値である補償画素値を特定する補償処理を実行する画素値割り当て手段、
を更に具備することを特徴とする請求項1に記載の視差画像生成装置。
【請求項3】
前記隠れ面判定手段は、前記参照位置が隠れ面である場合、更に、前記第1奥行き値が前記第2奥行き値よりも奥側の値を示す場合には、前記視線直線が前記第1方向から手前の被写体と奥の被写体との間を通ることによって前記第1方向から覗き込んだ第1方向隠れ面が生じていると判定し、又は、前記第2奥行き値が前記第1奥行き値よりも奥側の値を示す場合には、前記視線直線が前記第2方向から手前の被写体と奥の被写体との間を通ることによって前記第2方向から覗き込んだ第2方向隠れ面が生じていると判定し、
前記画素値割り当て手段における前記補償処理では、前記第1方向隠れ面の場合には、前記隠れ面判定手段による判定結果を前記第1方向に参照していくことによって隠れ面境界位置を特定し、又は、前記第2方向隠れ面の場合には、前記隠れ面判定手段による判定結果を前記第2方向に参照していくことによって隠れ面境界位置を特定し、更に、前記隠れ面境界位置を基準として前記補償画素値を特定する
ことを特徴とする請求項2に記載の視差画像生成装置。
【請求項4】
前記画素値割り当て手段における前記補償処理では、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記補償画素値を割り当てる
ことを特徴とする請求項3に記載の視差画像生成装置。
【請求項5】
前記画素値割り当て手段における前記補償処理では、折り返しコピーされる画素位置のラベル値が、前記参照位置に現れるべき被写体のラベル値と一致するか否かを判定し、
一致する場合には、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記補償画素値を割り当てて、
一致しない場合には、前記参照位置に現れるべき被写体のラベル値と同一の一繋がりのサンプリング点群のなかで最も遠い点に係る参照位置の画素値を、前記補償画素値として割り当てる
ことを特徴とする請求項3に記載の視差画像生成装置。
【請求項6】
立体視を実現するための視差画像を生成する視差画像生成方法であって、
所望の2次元画像、前記2次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記2次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力ステップと、
カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値に係る所定のパラメータを入力するパラメータ入力ステップと、
スクリーン面のサンプリング点と、前記所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか1つを採用区間とし、前記採用区間における第1方向側の奥行き値である第1奥行き値、及び、前記第1方向とは異なる第2方向側の奥行き値である第2奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定ステップと、
前記第1奥行き値及び前記第2奥行き値の位置にそれぞれ対応する前記ラベル画像の第1ラベル値及び第2ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定ステップと、
を含むことを特徴とする視差画像生成方法。
【請求項7】
コンピュータを、
所望の2次元画像、前記2次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記2次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力手段と、
カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値に係る所定のパラメータを入力するパラメータ入力手段と、
スクリーン面のサンプリング点と、前記所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか1つを採用区間とし、前記採用区間における第1方向側の奥行き値である第1奥行き値、及び、前記第1方向とは異なる第2方向側の奥行き値である第2奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定手段と、
前記第1奥行き値及び前記第2奥行き値の位置にそれぞれ対応する前記ラベル画像の第1ラベル値及び第2ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定手段と、
して機能させるためのプログラム。
【請求項8】
請求項7に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図15】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図15】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2012−195626(P2012−195626A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−55878(P2011−55878)
【出願日】平成23年3月14日(2011.3.14)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願日】平成23年3月14日(2011.3.14)
【出願人】(000002897)大日本印刷株式会社 (14,506)
【Fターム(参考)】
[ Back to top ]