(57)【特許請求の範囲】
【請求項１】
立体視を実現するための視差画像を生成する視差画像生成装置であって、
所望の２次元画像、前記２次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記２次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力手段と、
カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値から成るパラメータを入力するパラメータ入力手段と、
スクリーン面のサンプリング点と、前記パラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか１つを採用区間とし、前記採用区間における第１方向側の奥行き値である第１奥行き値、及び、前記第１方向とは異なる第２方向側の奥行き値である第２奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定手段と、
前記第１奥行き値及び前記第２奥行き値の位置にそれぞれ対応する前記ラベル画像の第１ラベル値及び第２ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定手段と、
前記隠れ面判定手段によって前記参照位置が隠れ面でないと判定された場合には、前記２次元画像における前記参照位置の画素値を前記サンプリング点の画素値とし、前記隠れ面判定手段によって前記参照位置が隠れ面であると判定された場合には、前記隠れ面判定手段による判定結果を、前記第１奥行き値及び前記第２奥行き値のうち、より奥側を示す方向である第１方向側又は第２方向側に参照して、隠れ面境界位置を特定し、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記サンプリング点の画素値を補償する画素値である補償画素値を割り当てる画素値割り当て手段と、
を具備することを特徴とする視差画像生成装置。
【請求項２】
前記画素値割り当て手段は、折り返しコピーされる画素位置のラベル値が、前記参照位置に現れるべき被写体のラベル値と一致するか否かを判定し、
一致する場合には、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより前記補償画素値を割り当てて、
一致しない場合には、前記参照位置に現れるべき被写体のラベル値と同一の一繋がりのサンプリング点群のなかで最も遠い点に係る参照位置の画素値を、前記補償画素値として割り当てることを特徴とする請求項１に記載の視差画像生成装置。
【請求項３】
前記隠れ面判定手段は、前記参照位置が隠れ面である場合に、更に、前記第１奥行き値が前記第２奥行き値よりも奥側の値を示す場合には、前記視線直線が前記第１方向から手前の被写体と奥の被写体との間を通ることによって前記第１方向から覗き込んだ第１方向隠れ面が生じていると判定し、又は、前記第２奥行き値が前記第１奥行き値よりも奥側の値を示す場合には、前記視線直線が前記第２方向から手前の被写体と奥の被写体との間を通ることによって前記第２方向から覗き込んだ第２方向隠れ面が生じていると判定することを特徴とする請求項１に記載の視差画像生成装置。
【請求項４】
前記画素値割り当て手段は、前記第１方向隠れ面の場合には、前記隠れ面判定手段による判定結果を前記第１方向に参照していくことによって隠れ面境界位置を特定し、又は、前記第２方向隠れ面の場合には、前記隠れ面判定手段による判定結果を前記第２方向に参照していくことによって隠れ面境界位置を特定し、前記隠れ面境界位置を基準として前記補償画素値を特定することを特徴とする請求項３に記載の視差画像生成装置。
【請求項５】
立体視を実現するための視差画像を生成する視差画像生成方法であって、
所望の２次元画像、前記２次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記２次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力ステップと、
カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値から成るパラメータを入力するパラメータ入力ステップと、
スクリーン面のサンプリング点と、前記パラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか１つを採用区間とし、前記採用区間における第１方向側の奥行き値である第１奥行き値、及び、前記第１方向とは異なる第２方向側の奥行き値である第２奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定ステップと、
前記第１奥行き値及び前記第２奥行き値の位置にそれぞれ対応する前記ラベル画像の第１ラベル値及び第２ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定ステップと、
前記隠れ面判定ステップによって前記参照位置が隠れ面でないと判定された場合には、前記２次元画像における前記参照位置の画素値を前記サンプリング点の画素値とし、前記隠れ面判定ステップによって前記参照位置が隠れ面であると判定された場合には、前記隠れ面判定ステップによる判定結果を、前記第１奥行き値及び前記第２奥行き値のうち、より奥側を示す方向である第１方向側又は第２方向側に参照して、隠れ面境界位置を特定し、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記サンプリング点の画素値を補償する画素値である補償画素値を割り当てる画素値割り当てステップと、
を含むことを特徴とする視差画像生成方法。
【請求項６】
コンピュータを、
所望の２次元画像、前記２次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記２次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力手段と、
カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値から成るパラメータを入力するパラメータ入力手段と、
スクリーン面のサンプリング点と、前記パラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか１つを採用区間とし、前記採用区間における第１方向側の奥行き値である第１奥行き値、及び、前記第１方向とは異なる第２方向側の奥行き値である第２奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定手段と、
前記第１奥行き値及び前記第２奥行き値の位置にそれぞれ対応する前記ラベル画像の第１ラベル値及び第２ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定手段と、
前記隠れ面判定手段によって前記参照位置が隠れ面でないと判定された場合には、前記２次元画像における前記参照位置の画素値を前記サンプリング点の画素値とし、前記隠れ面判定手段によって前記参照位置が隠れ面であると判定された場合には、前記隠れ面判定手段による判定結果を、前記第１奥行き値及び前記第２奥行き値のうち、より奥側を示す方向である第１方向側又は第２方向側に参照して、隠れ面境界位置を特定し、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記サンプリング点の画素値を補償する画素値である補償画素値を割り当てる画素値割り当て手段と、
して機能させるためのプログラム。
【請求項７】
請求項６に記載のプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、立体視を実現するための視差画像を生成する視差画像生成装置等に関し、更に詳しくは、２次元／３次元変換において生じる隠れ面を補正する視差画像生成装置等に関する。
【背景技術】
【０００２】
従来、３次元映像表示システムでは、大別して、２視差方式のものと、３以上の視差を持つ多視差方式のものがある。いずれの方式も、必要な視点数からシーンを見た映像を準備する必要がある。
【０００３】
最も直接的な映像の制作方法としては、必要な視差数分のカメラを用意し、同一シーンを所定の間隔に配置された複数のカメラで撮影する方法が考えられる。最近では２視差を直接撮影できるカメラが市販されているが、多視差を直接撮影できるカメラは一般的でない。
【０００４】
また、３次元ＣＧ（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ）画像を作成し、複数のカメラ位置を設定してレンダリングする方法も考えられる。３次元ＣＧ画像には奥行き情報が含まれており、３次元画像から多視差方式に対応した視差画像を作成することは可能である。しかし、カメラ位置の数が多い場合、レンダリング回数が多くなり、時間とコストがかかるという問題がある。
さらに、ほとんどの映像はＣＧ画像ではなく実写であり、実写から３次元映像を作成することが求められている。
【０００５】
実写映像による多視差映像を制作する為に、平面映像を基にして多視差映像に変換する手法（いわゆる２次元／３次元変換の手法）は、いくつか存在する（特許文献１、特許文献２）。
特許文献１は、平面映像を近景と遠景に分離し、近景領域だけを所定の距離だけシフトするとともに拡大して視差映像を生成する２次元／３次元変換手法について開示している。
一方、本出願人は、特許文献２において、２次元画像、及び奥行き情報を持つ画像（以下、「デプス画像」という。）を入力とし、デプス画像と仮想カメラ位置との関係から視差を求め視差映像を生成する手法を提案している。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２３３３９１号公報
【特許文献２】特願２０１０−１７６８６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、特許文献１に記載の手法は、画面全体を近景および遠景の２段階の奥行きに分離するものであり、２段階の奥行きだけでは、生成された映像から受ける奥行きの印象が乏しいという問題がある。また、近景の内部は視差を持たないため、更に奥行きの印象が乏しいという問題がある。
また、特許文献１に記載の手法は、近景と遠景に分離してシフトすると映像の空白部が生じる為、近景をシフトするとともに拡大することにより空白部の出現を回避している。しかしながら、元々手前にある被写体は大きく撮影されている為、更に拡大することにより、画面のシーンに矛盾が生じ、違和感が大きいという問題がある。
【０００８】
一方、特許文献２に記載の手法は、デプス画像とカメラ位置の相対関係から、画像内の被写体ごとではなく画素ごとに視差によるシフト量を決めるので、全体の奥行きの印象が豊かになるという利点がある。
しかし、隣接する２画素間の奥行き量の情報だけでは、２画素が同一の被写体間に属するのか、別の被写体に属するのかが特定できないので、２画素が別の被写体に属する場合の隠れ面に対処できないという問題がある。
【０００９】
ここで、図１５を参照しながら、「隠れ面」について説明する。「隠れ面」とは、元の平面画像ではその位置の画素情報が欠落している領域であり、視差によって生じるものである。
図１５（ａ）は、元の平面画像を示している。元の平面画像に記録されたシーンは、背景１００、円形の物体である手前物体１０１、長方形の物体である奥物体１０２によって構成されている。
図１５（ｂ）は、図１５（ａ）におけるＡ方向から覗き込んだ様子を示している。図１５（ｂ）では、手前物体１０１と背景１００との間に隠れ面１０３ａ（黒色の領域）が生じている。
また、図１５（ｃ）は、図１５（ａ）におけるＢ方向から覗き込んだ様子を示している。図１５（ｃ）では、手前物体１０１と奥物体１０２との間に隠れ面１０３ｂ（黒色の領域）が生じている。
このような隠れ面に対しては、何も対処をしないと、本来なら後ろの被写体が適切に補われて表示されるべき領域に、手前の被写体または後ろの被写体の境界部の画素が表示されてしまい、不自然な映像になってしまう場合がある。
【００１０】
本発明は、前述した問題点に鑑みてなされたもので、その目的とすることは、隠れ面が違和感なく補正された視差画像を生成することができる視差画像生成装置等を提供することである。
【課題を解決するための手段】
【００１１】
前述した目的を達成するために第１の発明は、立体視を実現するための視差画像を生成する視差画像生成装置であって、所望の２次元画像、前記２次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記２次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力手段と、カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値から成るパラメータを入力するパラメータ入力手段と、スクリーン面のサンプリング点と、前記パラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか１つを採用区間とし、前記採用区間における第１方向側の奥行き値である第１奥行き値、及び、前記第１方向とは異なる第２方向側の奥行き値である第２奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定手段と、前記第１奥行き値及び前記第２奥行き値の位置にそれぞれ対応する前記ラベル画像の第１ラベル値及び第２ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定手段と、前記隠れ面判定手段によって前記参照位置が隠れ面でないと判定された場合には、前記２次元画像における前記参照位置の画素値を前記サンプリング点の画素値とし、前記隠れ面判定手段によって前記参照位置が隠れ面であると判定された場合には、前記隠れ面判定手段による判定結果を、前記第１奥行き値及び前記第２奥行き値のうち、より奥側を示す方向である第１方向側又は第２方向側に参照して、隠れ面境界位置を特定し、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記サンプリング点の画素値を補償する画素値である補償画素値を割り当てる画素値割り当て手段と、を具備することを特徴とする視差画像生成装置である。
第１の発明によって、隠れ面が違和感なく補正された視差画像を生成することができる。また、これによって、多くの場合に合理的と考えられる補償画素値を割り当てることができる。
【００１２】
また、第１の発明における前記画素値割り当て手段における前記補償処理では、例えば、折り返しコピーされる画素位置のラベル値が、前記参照位置に現れるべき被写体のラベル値と一致するか否かを判定し、一致する場合には、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記補償画素値を割り当てて、一致しない場合には、前記参照位置に現れるべき被写体のラベル値と同一の一繋がりのサンプリング点群のなかで最も遠い点に係る参照位置の画素値を、前記補償画素値として割り当てる。
これによって、他の被写体の画素値を補償画素値として補償することがなくなり、どのような場合であっても、合理的と考えられる補償画素値を割り当てることが可能になる。
【００１３】
第１の発明において、前記隠れ面判定手段は、前記参照位置が隠れ面である場合、更に、前記第１奥行き値が前記第２奥行き値よりも奥側の値を示す場合には、前記視線直線が前記第１方向から手前の被写体と奥の被写体との間を通ることによって前記第１方向から覗き込んだ第１方向隠れ面が生じていると判定し、又は、前記第２奥行き値が前記第１奥行き値よりも奥側の値を示す場合には、前記視線直線が前記第２方向から手前の被写体と奥の被写体との間を通ることによって前記第２方向から覗き込んだ第２方向隠れ面が生じていると判定し、前記画素値割り当て手段における前記補償処理では、前記第１方向隠れ面の場合には、前記隠れ面判定手段による判定結果を前記第１方向に参照していくことによって隠れ面境界位置を特定し、又は、前記第２方向隠れ面の場合には、前記隠れ面判定手段による判定結果を前記第２方向に参照していくことによって隠れ面境界位置を特定し、更に、前記隠れ面境界位置を基準として前記補償画素値を特定することが望ましい。
これによって、隠れ面が違和感なく補正された視差画像を生成することができる。
【００１６】
第２の発明は、立体視を実現するための視差画像を生成する視差画像生成方法であって、所望の２次元画像、前記２次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記２次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力ステップと、カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値から成るパラメータを入力するパラメータ入力ステップと、スクリーン面のサンプリング点と、前記パラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか１つを採用区間とし、前記採用区間における第１方向側の奥行き値である第１奥行き値、及び、前記第１方向とは異なる第２方向側の奥行き値である第２奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定ステップと、前記第１奥行き値及び前記第２奥行き値の位置にそれぞれ対応する前記ラベル画像の第１ラベル値及び第２ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定ステップと、前記隠れ面判定ステップによって前記参照位置が隠れ面でないと判定された場合には、前記２次元画像における前記参照位置の画素値を前記サンプリング点の画素値とし、前記隠れ面判定ステップによって前記参照位置が隠れ面であると判定された場合には、前記隠れ面判定ステップによる判定結果を、前記第１奥行き値及び前記第２奥行き値のうち、より奥側を示す方向である第１方向側又は第２方向側に参照して、隠れ面境界位置を特定し、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記サンプリング点の画素値を補償する画素値である補償画素値を割り当てる画素値割り当てステップと、を含むことを特徴とする視差画像生成方法である。
第２の発明によって、隠れ面が違和感なく補正された視差画像を生成することができる。
【００１７】
第３の発明は、コンピュータを、所望の２次元画像、前記２次元画像に係るカメラから被写体までの奥行き値を画素値に置き換えた画像であるデプス画像、及び、前記２次元画像のシーンを構成する被写体を識別するラベル値を画素値に置き換えた画像であるラベル画像を入力する画像入力手段と、カメラ数、カメラ間隔、及び、カメラからスクリーン面までの奥行き値から成るパラメータを入力するパラメータ入力手段と、スクリーン面のサンプリング点と、前記パラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、前記奥行き値同士の区間の中で前記視線直線が通る区間である通過区間のいずれか１つを採用区間とし、前記採用区間における第１方向側の奥行き値である第１奥行き値、及び、前記第１方向とは異なる第２方向側の奥行き値である第２奥行き値のうち、より奥を示す方の位置を参照位置とする参照位置特定手段と、前記第１奥行き値及び前記第２奥行き値の位置にそれぞれ対応する前記ラベル画像の第１ラベル値及び第２ラベル値が異なる場合に、前記参照位置が隠れ面であると判定する隠れ面判定手段と、前記隠れ面判定手段によって前記参照位置が隠れ面でないと判定された場合には、前記２次元画像における前記参照位置の画素値を前記サンプリング点の画素値とし、前記隠れ面判定手段によって前記参照位置が隠れ面であると判定された場合には、前記隠れ面判定手段による判定結果を、前記第１奥行き値及び前記第２奥行き値のうち、より奥側を示す方向である第１方向側又は第２方向側に参照して、隠れ面境界位置を特定し、前記隠れ面境界位置を折り返し位置とした画素値の折り返しコピーにより、前記サンプリング点の画素値を補償する画素値である補償画素値を割り当てる画素値割り当て手段と、して機能させるためのプログラムである。
第３の発明に係るプログラムをコンピュータにインストールすることで、第１の発明に係る視差画像生成装置を得ることができる。
【００１８】
第４の発明は、第３の発明に係るプログラムを記憶したコンピュータ読み取り可能な記憶媒体である。
【発明の効果】
【００１９】
本発明により、隠れ面が違和感なく補正された視差画像を生成することができる視差画像生成装置等を提供することができる。
【図面の簡単な説明】
【００２０】
【図１】視差画像生成装置のハードウエア構成図
【図２】視差画像生成装置の入出力データを示す図
【図３】パラメータを説明する図
【図４】視差画像生成処理の詳細を示すフローチャート
【図５】参照位置特定処理を説明する図
【図６】参照位置特定処理を説明する図
【図７】第１の処理例を示す図
【図８】第２の処理例を示す図
【図９】変形例１を説明する図
【図１０】２次元画像の一例を示す図
【図１１】デプス画像の一例を示す図
【図１２】ラベル画像の一例を示す図
【図１３】視線が左方向からの視差画像の一例を示す図
【図１４】視線が右方向からの視差画像の一例を示す図
【図１５】隠れ面を説明する図
【発明を実施するための形態】
【００２１】
以下図面に基づいて、本発明の実施形態を詳細に説明する。
図１は、視差画像生成装置１のハードウエア構成図である。尚、図１のハードウエア構成は一例であり、用途、目的に応じて様々な構成を採ることが可能である。
視差画像生成装置１は、制御部１１、記憶部１２、メディア入出力部１３、通信制御部１４、入力部１５、表示部１６、周辺機器Ｉ／Ｆ部１７等が、バス１８を介して接続される。
【００２２】
制御部１１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＲＯＭ（Ｒｅａｄ  ＯｎｌＹ  ＭｅｍｏｒＹ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  ＭｅｍｏｒＹ）等で構成される。
ＣＰＵは、記憶部１２、ＲＯＭ、記録媒体等に格納されるプログラムをＲＡＭ上のワークメモリ領域に呼び出して実行し、バス１８を介して接続された各装置を駆動制御し、視差画像生成装置１が行う後述する処理を実現する。
ＲＯＭは、不揮発性メモリであり、視差画像生成装置１のブートプログラムやＢＩＯＳ等のプログラム、データ等を恒久的に保持している。
ＲＡＭは、揮発性メモリであり、記憶部１２、ＲＯＭ、記録媒体等からロードしたプログラム、データ等を一時的に保持するとともに、制御部１１が各種処理を行う為に使用するワークエリアを備える。
【００２３】
記憶部１２は、ＨＤＤ（ハードディスクドライブ）等であり、制御部１１が実行するプログラム、プログラム実行に必要なデータ、ＯＳ（オペレーティングシステム）等が格納される。プログラムに関しては、ＯＳ（オペレーティングシステム）に相当する制御プログラムや、後述する処理を視差画像生成装置１に実行させるためのアプリケーションプログラムが格納されている。
これらの各プログラムコードは、制御部１１により必要に応じて読み出されてＲＡＭに移され、ＣＰＵに読み出されて各種の手段として実行される。
【００２４】
メディア入出力部１３（ドライブ装置）は、データの入出力を行い、例えば、ＣＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）、ＤＶＤドライブ（−ＲＯＭ、−Ｒ、−ＲＷ等）等のメディア入出力装置を有する。
通信制御部１４は、通信制御装置、通信ポート等を有し、視差画像生成装置１とネットワーク間の通信を媒介する通信インタフェースであり、ネットワークを介して、他の装置間との通信制御を行う。ネットワークは、有線、無線を問わない。
【００２５】
入力部１５は、データの入力を行い、例えば、キーボード、マウス等のポインティングデバイス、テンキー等の入力装置を有する。
入力部１５を介して、視差画像生成装置１に対して、操作指示、動作指示、データ入力等を行うことができる。
表示部１６は、ＣＲＴモニタ、液晶パネル等のディスプレイ装置、ディスプレイ装置と連携して視差画像生成装置１のビデオ機能を実現するための論理回路等（ビデオアダプタ等）を有する。
【００２６】
周辺機器Ｉ／Ｆ（インタフェース）部１７は、視差画像生成装置１に周辺機器を接続させるためのポートであり、周辺機器Ｉ／Ｆ部１７を介して視差画像生成装置１は周辺機器とのデータの送受信を行う。周辺機器Ｉ／Ｆ部１７は、ＵＳＢやＩＥＥＥ１３９４やＲＳ−２３５Ｃ等で構成されており、通常複数の周辺機器Ｉ／Ｆを有する。周辺機器との接続形態は有線、無線を問わない。
バス１８は、各装置間の制御信号、データ信号等の授受を媒介する経路である。
【００２７】
図２は、視差画像生成装置１の入出力データを示す図である。図２に示すように、視差画像生成装置１は、２次元画像２、ラベル画像３、デプス画像４、並びにパラメータ５を入力データとする。また、視差画像生成装置１は、視差画像６を出力データとする。
２次元画像２、ラベル画像３、及びデプス画像４は、視差画像生成装置１の制御部１１が生成しても良いし、メディア入出力部１３、通信制御部１４等を介して外部から取得しても良い。また、パラメータ５は、視差画像生成装置１の入力部１５を介して入力しても良いし、予めパラメータ５が定義されたパラメータファイルを外部から取得しても良い。
視差画像６は、視差画像生成装置１の記憶部１２に記憶されても良いし、表示部１６に表示されても良いし、メディア入出力部１３、通信制御部１４等を介して外部に出力しても良い。
【００２８】
２次元画像２は、動画像（平面映像）の１枚分のフレーム画像または静止画像である。動画像（平面映像）には、例えば、単位時間当たり所定のフレーム数（通常、１秒間に３０フレーム）のカラー静止画像が含まれており、各画素がＲＧＢ各２５６段階の階調を持つ。
後述する視差画像生成処理のすべての処理は、フレームごとに独立して実行するので、以下の説明においては、１枚分のフレーム画像（静止画像）の処理について記述する。
【００２９】
ラベル画像３は、それぞれの２次元画像２に対応付けて、２次元画像２に記録されたシーンを構成する被写体を識別する固有の数値（ラベル値）によって領域分けし、このラベル値を画素値に置き換えた画像である。例えば、背景、建物、及び人物から構成されるシーンにおいて、背景、建物、及び人物に相当するラベル値として、それぞれＬ０、Ｌ１、Ｌ２を割り当て、対応する２次元画像２の各画素がどの被写体に属しているかを、Ｌ０、Ｌ１、Ｌ２の画素値に置き換えることによって表現する。
ラベル画像３は、２次元画像２に基づいてフォトレタッチソフトなどを用いて手作業で生成してもよいし、別途ソフトウエアを用いて自動的に生成してもよい。
【００３０】
デプス画像４は、２次元画像２に係るカメラから被写体までの奥行き値を画素値に置き換えた画像である。ここで、カメラとは、視差画像生成装置１の内部処理において定義される仮想的なカメラを意味する。
デプス画像４は、例えば、画素値の範囲が０〜２５５（８ビット）のグレースケールであり、０（黒）が最も奥、２５５（白）が最も手前を意味する場合が多いが、逆であっても良い。以下では、説明を分かり易くするために、デプス画像４は、画素値の範囲が０〜２５５であり、０（黒）が最も奥、２５５（白）が最も手前を意味するものとする。
デプス画像４は、２次元画像２に基づいてフォトレタッチソフトなどを用いて手作業で生成してもよいし、別途ソフトウエアを用いて自動的に生成してもよい。
【００３１】
パラメータ５は、後述する視差画像生成処理に用いる値である。パラメータ５には、カメラ数ｎ、カメラ間隔、スクリーン面からカメラまでの奥行き値などが含まれる。
更に、パラメータ５には、２次元画像２の横幅、縦幅、画素ピッチなどが含まれる。２次元画像２は、パラメータ５の横幅、縦幅、画素ピッチによって、横方向（Ｘ軸方向）のピクセル数、及び、縦方向（Ｙ軸方向）のピクセル数が決まる。
【００３２】
図３は、パラメータ５について説明する図である。
視差画像生成処理では、図３に示すように、仮想的な３次元空間（ＸＹＺ空間）に、スクリーン面Ｓ、カメラＣ１〜Ｃ８を配置する。
スクリーン面Ｓは、２次元画像２を投影する領域であり、視差画像６の各画素が含まれる。図３に示す例では、スクリーン面ＳはＸＹ平面と一致する。
【００３３】
カメラＣ１〜Ｃ８は、パラメータ５のカメラ数ｎ、カメラ間隔、スクリーン面Ｓからカメラまでの奥行き値に基づいて配置する。図３に示す例では、カメラ数ｎが「８」、カメラ間隔が「等間隔のＣｃａｍｅｒａ＿Ｘ」、奥行き値が「Ｃｃａｍｅｒａ＿Ｚ」である。Ｃｃａｍｅｒａ＿Ｘは、両目視差（約６０ｍｍ〜７０ｍｍ程度）とする。
また、図３に示す例では、カメラ設置線３０は、スクリーン面Ｓと平行、かつ、スクリーン面Ｓとの距離が「Ｃｃａｍｅｒａ＿Ｚ」の直線である。ＣｉをカメラＩＤ（Ｃｉ＝１、・・・、８）とすると、カメラＣ１〜Ｃ８のカメラ位置（ＣＸｉ、ＣＺｉ）（ｉ＝１、・・・、８）は、以下の式に基づいて算出する。尚、ｗは、２次元画像２の横幅である。
【００３４】
【数１】
0005782761.tif 000002
【００３５】
図３に示す例では、カメラ間隔を等間隔としたが、これはディスプレイにおける画像の見せ方に依存する。カメラ間隔を等間隔とした場合、観察者がどの位置から見ても隣り合う視差画像６が見えるようになる。但し、他の見せ方を所望する場合には、カメラ間隔は等間隔でなくても良い。
また、図３に示す例では、カメラ設置線３０を直線としたが、これもディスプレイにおける画像の見せ方に依存する。例えば、ディスプレイが曲面の場合、カメラ設置線３０を曲線とすることが考えられる。
図３に示す最遠面Ｐは、視差画像６に表現される被写体の中でカメラＣから最も遠い位置であり、かつ、スクリーン面Ｓと平行な面である。
【００３６】
図２の説明に戻る。
視差画像６は、立体視を実現するための画像である。本発明の実施の形態では、視差画像６は、特に、両目視差（約６０ｍｍ〜７０ｍｍ程度）を利用し、裸眼観察によって立体視を実現するための画像である。
尚、本発明の実施の形態では詳細に述べないが、複数の視差画像６をディスプレイの仕様に合わせて合成し、ディスプレイに表示することによって、裸眼観察による立体視を実現することが可能となる。複数の視差画像６の合成処理については、公知の技術を利用すれば良い。
【００３７】
参照位置特定処理２１では、デプス画像４とパラメータ５などを入力データとする。参照位置特定処理２１では、スクリーン面のサンプリング点と、所定のパラメータに基づいて設定されるカメラ位置と、を通る視線直線を算出し、デプス画像４における奥行き値同士の区間の中で視線直線が通る区間である通過区間のいずれか１つを採用区間とし、採用区間における第１方向（例えば、「左」）側の奥行き値である第１奥行き値、及び、第１方向とは異なる第２方向（例えば、「右」）側の奥行き値である第２奥行き値のうち、より奥を示す方の位置を参照位置とする。特定された参照位置は、「参照位置バッファ」としてＲＡＭや記憶部１２などに格納される。
【００３８】
参照位置バッファの大きさは、２次元画像２の横方向のピクセル数×縦方向のピクセル数分としても良いし、又は、２次元画像２の横方向のピクセル数分としても良い。後述する他のバッファの大きさについても同様である。尚、２次元画像２、ラベル画像３、デプス画図４、及び視差画像６の横方向のピクセル数及び縦方向のピクセル数は、全て同じである。
以下では、第１方向を左、第２方向を右として説明する。同様に、第１奥行き値は左奥行き値、第２奥行き値は右奥行き値として説明する。
【００３９】
参照位置については、２画素間の奥行き量によって特定することができる。一方、２画素間の奥行き量だけでは、その２画素が同一の被写体に属するのか、別の被写体に属するのかは特定できない。また、２画素が別々の被写体に属する場合には、その２画素の間には視差により隠れ面が生じ、何も対処しないと、本来なら後ろの被写体が適切に補われて表示されるべき領域に、手前の被写体または後ろの被写体の境界部の画素がコピーされる結果になり好ましくない。そこで、本発明の実施の形態では、ラベル画像３も入力データとし、隠れ面判定処理２２、ラベル値割り当て処理２３、及び画素値割り当て処理２４により、隠れ面に対して適切な画素値を補う。
【００４０】
隠れ面判定処理２２では、ラベル画像３と参照位置バッファなどを入力データとする。隠れ面判定処理２２では、左奥行き値及び右奥行き値の位置にそれぞれ対応するラベル画像３の左ラベル値及び右ラベル値が異なる場合、参照位置が隠れ面であると判定する。また、隠れ面判定処理２２では、左ラベル値及び右ラベル値が同一である場合、参照位置が隠れ面ではないと判定する。隠れ面の判定結果は、「隠れ面バッファ」としてＲＡＭや記憶部１２などに格納される。
【００４１】
また、隠れ面判定処理２２では、参照位置が隠れ面である場合、更に、左奥行き値が右奥行き値よりも奥側の値を示す場合には、視線直線が左方向から手前の被写体と奥の被写体との間を通ることによって、左から覗き込んだ左隠れ面が生じていると判定する。また、隠れ面判定処理２２では、右奥行き値が左奥行き値よりも奥側の値を示す場合には、視線直線が右から手前の被写体と奥の被写体との間を通ることによって、右から覗き込んだ右隠れ面が生じていると判定する。この判定結果も、「隠れ面バッファ」としてＲＡＭや記憶部１２などに格納される。
【００４２】
ラベル値割り当て処理２３では、ラベル画像３と隠れ面バッファなどを入力データとする。ラベル値割り当て処理２３では、隠れ面判定処理２２において参照位置が隠れ面ではないと判定された場合、ラベル画像３の左ラベル値又は右ラベル値を、処理対象のサンプリング点に割り当てる（この場合、左ラベル値と右ラベル値は同一であるから、どちらでも良い。）。また、ラベル値割り当て処理２３では、隠れ面判定処理２２において参照位置が隠れ面であると判定された場合、当該隠れ面によってどの被写体が出てくるのか、及び、どの被写体が当該隠れ面を隠していたのかを特定する。言い換えると、ラベル値割り当て処理２３では、隠れ面に係る奥側の被写体及び手前側の被写体を特定する。そして、ラベル値割り当て処理２３では、特定された両者の被写体のラベル値を、処理対象のサンプリング点に割り当てる。割り当てられたラベル値は、「ラベルバッファ」としてＲＡＭや記憶部１２などに格納される。
【００４３】
画素値割り当て処理２４では、２次元画像２、ラベルバッファ、及び参照位置バッファなどを入力データとする。画素値割り当て処理２４では、隠れ面判定処理２２において参照位置が隠れ面ではないと判定された場合には、２次元画像２における参照位置の画素値をサンプリング点の画素値とし、隠れ面判定処理２２において参照位置が隠れ面であると判定された場合には、サンプリング点の画素値を補償する画素値（補償画素値）を特定する処理である補償処理を実行する。
補償処理では、例えば、制御部１１は、左隠れ面の場合には、隠れ面判定処理２２による判定結果を左に参照していくことによって隠れ面境界位置を特定する。また、制御部１１は、右隠れ面の場合には、隠れ面判定処理２２による判定結果を右に参照していくことによって隠れ面境界位置を特定する。そして、制御部１１は、隠れ面境界位置を基準として補償画素値を特定する。
画素値割り当て処理２４によって割り当てられたサンプリング点の画素値の集合が、視差画像６である。
【００４４】
以下では、図４〜図８を参照しながら、視差画像生成装置１の処理の詳細について説明する。
図４は、視差画像生成処理の詳細を示すフローチャートである。
【００４５】
視差画像生成装置１の制御部１１は、処理対象とするＸＺ平面を特定するために、スクリーン面ＳにおけるＹ座標を決定する（Ｓ２０１）。以下、Ｓ２０１にて決定されたＹ座標をＹｓとする。視差画像生成装置１は、ＹｓごとにＳ２０２〜Ｓ２０８の処理を繰り返す。すべてのＹ座標についてＳ２０２〜Ｓ２０８の処理を実行することにより、１つのカメラＣについて、１つの２次元画像２の視差画像６が求まることになる。
【００４６】
制御部１１は、スクリーン面Ｓにおける処理対象の画素、すなわちサンプリング点を決定する（Ｓ２０２）。但し、サンプリング点のＹ座標は、Ｓ２０１において決定されたＹｓである。
次に、制御部１１は、Ｓ２０２において決定されたサンプリング点に対して、Ｓ２０３〜Ｓ２０６の処理によって視差画像６の画素値を算出する処理を実行する。
【００４７】
制御部１１は、参照位置特定処理２１を行う（Ｓ２０３）。ここで、参照位置は、生成される視差画像６における各画素に対して、２次元画像２のどの位置が対応するかを示すものである。制御部１１は、視差画像６における各画素について、対応する点の奥行き値、カメラ位置などの幾何的情報から、その画素に対応する２次元画像２における参照位置を計算する。
【００４８】
図５、図６は、参照位置特定処理を説明する図である。図５、図６では、スクリーン面Ｓにおける各奥行き値（デプス画像４の画素値）の画素位置をＸ座標、奥行き値自体をＺ座標とし、奥行き分布情報を複数の黒丸をつなぐ奥行き分布曲線３２によって図示している。スクリーン面Ｓでは、所定の間隔によってサンプリング点が決定される。また、２次元画像２は、最遠面Ｐの位置にあるものとする。
【００４９】
最初に、図５を参照しながら説明する。
制御部１１は、サンプリング点のＸ座標Ｘｓと、処理対象のカメラ位置（ＣＸｉ、ＣＺｉ）（ｉ＝１、・・・、ｎ）と、を通る視線直線３１ａを算出する。カメラ位置（ＣＸｉ、ＣＺｉ）は、前述した通り、パラメータ５のカメラ数ｎ、カメラ間隔Ｃｃａｍｅｒａ＿Ｘ及びカメラＣｉからスクリーン面Ｓまでの奥行き値Ｃｃａｍｅｒａ＿Ｚに基づいて設定されている。図５に示す例では、カメラＣ３を処理対象としている。
【００５０】
次に、制御部１１は、奥行き分布曲線３２における奥行き値（黒丸）同士の区間の中で視線直線３１ａが通る区間である通過区間３３ａを特定する。そして、制御部１１は、通過区間３３ａを採用区間とし、採用区間における左側の奥行き値である左奥行き値３４ａ、及び、右側の奥行き値である右奥行き値３５ａのうち、より奥を示す方（Ｚ座標の値が小さい方）のＸ座標位置を参照位置とする。図５に示す例では、左奥行き値３４ａのＸ座標位置が参照位置となる。左奥行き値３４ａのＸ座標をＸｋとすると、ＸｓとＸｋとの差がシフト量３６である。シフト量３６は、生成される視差画像６の画素位置と、対応する２次元画像２の画素位置との差である。
そして、制御部１１は、左奥行き値３４ａのＸ座標の値Ｘｋを、サンプリング点Ｘｓに対する参照位置として、参照位置バッファに格納する。
制御部１１は、以上の処理を全てのカメラＣ１〜Ｃ８に対して実行し、各視差画像６における各画素（Ｘｓ，Ｙｓ）のシフト量を算出する。
【００５１】
図６では、複数の通過区間３３ｂ、３３ｃ、３３ｄが存在する例を示している。この場合、制御部１１は、最もカメラＣ１〜Ｃ８に近いものを採用区間とする。図６に示す例では、通過区間３３ｂを採用区間とする。
そして、制御部１１は、採用区間における左奥行き値３４ｂ及び右奥行き値３５ｂのうち、より奥を示す方のＸ座標位置を参照位置とする。図６に示す例では、右奥行き値３５ｂのＸ座標位置が参照位置となる。
【００５２】
複数の通過区間３３が存在する場合、最もカメラＣ１〜Ｃ８に近いものが、最も手前の被写体である。従って、最もカメラＣ１〜Ｃ８に近いものを採用区間とすることで、複数の被写体の配置関係が忠実に再現された視差画像６を生成することができる。
【００５３】
図７は、第１の処理例を示す図である。図７では、各サンプリング点Ｘｓに対して、参照位置特定処理２１（Ｓ２０３）の処理結果である参照位置バッファ４１、隠れ面判定処理２２（Ｓ２０４）の処理結果である隠れ面バッファ４２、ラベル値割り当て処理２３（Ｓ２０５）の処理結果であるラベルバッファ４３、及び画素値割り当て処理２４（Ｓ２０６）の処理結果である生成結果バッファ４４が示されている。図７の例では、２次元画像２のシーンを構成する被写体が、背景を含めて７つ存在する。背景にはラベル値「Ｌ０」、その他の物体には、ラベル値「Ｌ１」〜「Ｌ６」が対応付けられている。
【００５４】
図７の参照位置バッファ４１には、サンプリング点Ｘｓが「１、２、３、４、５、６、７、８、・・・」の各々について、参照位置バッファ４１には、「３、４、５、７、８、９、１１、１２、・・・」が格納されている。
【００５５】
図４の説明に戻る。
制御部１１は、隠れ面判定処理２２を行う（Ｓ２０４）。制御部１１は、ラベル画像３を参照し、Ｓ２０３において特定された採用区間（図５の例では３３ａ）の両端（左奥行き値３４ａと右奥行き値３５ａ）が同一の被写体に属するのか、あるいは、異なる被写体に属するのかを判定する。
具体的には、制御部１１は、左奥行き値３４ａの位置（デプス画像４の画素位置）に対応するラベル画像３の画素位置の画素値を左ラベル値とし、右奥行き値３５ａの位置（デプス画像４の画素位置）に対応するラベル画像３の画素位置の画素値を右ラベル値とする。そして、制御部１１は、左ラベル値と右ラベル値を比較する。両者が同一の場合、視線直線（図５の例では３１ａ）がそのラベル値で表わされる単一の被写体と交差することを意味するので、制御部１１は、参照位置が隠れ面ではないと判定する。一方、両者が異なる場合、視線直線（図５の例では３１ａ）が異なる複数の被写体の挟間を通過することを意味するので、制御部１１は、参照位置が隠れ面であると判定する。
【００５６】
制御部１１は、隠れ面の判定結果を隠れ面バッファ４２に格納する。より詳細には、制御部１１は、（１）参照位置が隠れ面か否か、及び、（２）参照位置が隠れ面である場合には、参照位置が、手前の被写体を左から覗き込んだことにより生じる隠れ面（＝左隠れ面）なのか、右から覗き込んだことにより生じる隠れ面（＝右隠れ面）なのかを、隠れ面バッファ４２に格納する。
【００５７】
例えば、図５の例であれば、左奥行き値３４ａ（参照位置の奥行き情報）が右奥行き値３５ａよりも奥にあることから、左奥行き値３４ａの位置（参照位置）が隠れ面である場合、制御部１１は、この隠れ面を左隠れ面であると判定する。
また、例えば、図６の例であれば、右奥行き値３５ｂ（参照位置の奥行き情報）が左奥行き値３４ｂよりも奥にあることから、右奥行き値３５ｂの位置（参照位置）が隠れ面である場合、制御部１１は、この隠れ面を右隠れ面であると判定する。
【００５８】
図７の隠れ面バッファ４２には、参照位置バッファ４２が「３、４、５」に対しては、右隠れ面であること（＝「右」）が格納されている。また、参照位置バッファ４２が「７、８、９、１１、１２」に対しては、隠れ面でないこと（＝「非」）が格納されている。
【００５９】
図４の説明に戻る。
次に、制御部１１は、ラベル値割り当て処理２３を行う（Ｓ２０５）。制御部１１は、各参照位置に対してラベル値を割り当てて、ラベルバッファ４３に格納する。このとき、参照位置が隠れ面である場合、制御部１１は、参照位置を隠していた被写体（＝手前側の被写体）のラベル値と、参照位置に現れるべき被写体（＝奥側の被写体）のラベル値を格納する。
【００６０】
例えば、図５の例であれば、隠れ面の判定結果において、左奥行き値３４ａの位置（参照位置）が隠れ面である場合、この隠れ面は、左隠れ面であると判定される。従って、制御部１１は、左奥行き値３４ａの位置に対応する左ラベル値の被写体が、奥側の被写体であると判定し、参照位置に現れるべき被写体（＝奥側の被写体）のラベル値として、左ラベル値を格納する。また、制御部１１は、右奥行き値３５ａの位置に対応する右ラベル値の被写体が、手前側の被写体であると判定し、参照位置を隠していた被写体（＝手前側の被写体）のラベル値として、右ラベル値を格納する。
また、例えば、図６の例であれば、隠れ面の判定結果において、右奥行き値３５ｂの位置（参照位置）が隠れ面である場合、この隠れ面は、右隠れ面であると判定される。従って、制御部１１は、右奥行き値３５ｂの位置に対応する右ラベル値の被写体が、奥側の被写体であると判定し、参照位置に現れるべき被写体（＝奥側の被写体）のラベル値として、右ラベル値を格納する。また、制御部１１は、左奥行き値３４ｂの位置に対応する左ラベル値の被写体が、手前側の被写体であると判定し、参照位置を隠していた被写体（＝手前側の被写体）のラベル値として、左ラベル値を格納する。
【００６１】
図７のラベルバッファ４３には、各参照位置のラベル値が格納されている。参照位置バッファ４２が「３、４、５」に対しては、参照位置を隠していた被写体のラベル値＝Ｌ６／参照位置に現れるべき被写体のラベル値＝Ｌ０が格納されている。また、参照位置Ｘｋ＝７、８、９、１１、１２は隠れ面ではないので、ラベル値＝Ｌ０のみが格納されている。
【００６２】
次に、制御部１１は、画素値割り当て処理２４を行う（Ｓ２０６）。制御部１１は、各サンプリング点Ｘｓについて隠れ面バッファ４２を確認し、隠れ面判定の結果が隠れ面ではない場合（「非」の場合）、参照位置バッファ４１を確認し、サンプリング点Ｘｓに対して、２次元画像２における参照位置Ｘｋの画素値を割り当てる。
【００６３】
図７に示す例では、サンプリング点Ｘｓが「４、５、６、７、８」の隠れ面バッファ４２の値は「非」なので、制御部１１は、それぞれ、参照位置バッファ４１に格納されている参照位置Ｘｋ＝７、８、９、１１、１２を生成結果バッファ４４に格納する。つまり、制御部１１は、参照位置バッファ４１に格納されている参照位置Ｘｋの画素値を、そのままサンプリング点Ｘｓに対して割り当てる。
【００６４】
一方、制御部１１は、各サンプリング点Ｘｓについて隠れ面バッファ４２を確認し、隠れ面判定の結果が左隠れ面の場合（「左」の場合）、隠れ面バッファ４２を左に参照していくことによって隠れ面境界位置を特定し、又は、隠れ面判定の結果が右隠れ面の場合（「右」の場合）、隠れ面バッファ４２を右に参照していくことによって隠れ面境界位置を特定する。
そして、制御部１１は、隠れ面境界位置を基準として、サンプリング点の画素値を補償する画素値（補償画素値）を特定する。
【００６５】
例えば、制御部１１は、サンプリング点Ｘｓから隠れ面境界位置までの距離ｄを算出し、サンプリング点Ｘｓから２ｄ−１の距離にあるサンプリング点Ｘｓ’に対する参照位置バッファ４１の値を生成結果バッファ４４に格納する。つまり、制御部１１は、サンプリング点Ｘｓから２ｄ−１の距離にあるサンプリング点Ｘｓ’に対する参照位置の画素値を、補償画素値として割り当てる。
この手法では、隠れ面境界位置を折り返し点として、画素値を折り返しコピーすることによって、サンプリング点Ｘｓの画素値を補償している。
【００６６】
図７に示す例では、サンプリング点Ｘｓが「１」の隠れ面バッファ４２の値は「右」なので、制御部１１は、サンプリング点Ｘｓから右に隠れ面バッファ４２を参照していくことによって、隠れ面の境界位置が「４」であることを特定する。そして、制御部１１は、サンプリング点Ｘｓ「１」から隠れ面の境界位置「４」までの距離Ｌ＝４−１＝３を算出し、サンプリング点Ｘｓ「１」から２ｄ−１＝２×３−１＝５の距離にあるサンプリング点Ｘｓ’「６」に対する参照位置バッファ４１の値「９」を生成結果バッファ４４に格納する。
また、サンプリング点Ｘｓが「２」の隠れ面バッファ４２の値も「右」なので、制御部１１は、サンプリング点Ｘｓから右に隠れ面バッファ４２を参照していくことによって、隠れ面の境界位置が「４」であることを特定する。そして、制御部１１は、サンプリング点Ｘｓ「２」から隠れ面の境界位置「４」までの距離Ｌ＝４−２＝２を算出し、サンプリング点Ｘｓ「２」から２ｄ−１＝２×２−１＝３の距離にあるサンプリング点Ｘｓ’「５」に対する参照位置バッファ４１の値「８」を生成結果バッファ４４に格納する。
また、サンプリング点Ｘｓが「３」の隠れ面バッファ４２の値も「右」なので、制御部１１は、サンプリング点Ｘｓから右に隠れ面バッファ４２を参照していくことによって、隠れ面の境界位置が「４」であることを特定する。そして、制御部１１は、サンプリング点Ｘｓ「３」から隠れ面の境界位置「４」までの距離Ｌ＝４−３＝１を算出し、サンプリング点Ｘｓ「３」から２ｄ−１＝２×１−１＝１の距離にあるサンプリング点Ｘｓ’「４」に対する参照位置バッファ４１の値「７」を生成結果バッファ４４に格納する。
以上の処理により、隠れ面と判定された場合については、隠れ面境界位置を折り返し点とした画素値の折り返しコピーにより、多くの場合に合理的と考えられる画素値を割り当てることが可能になる。
【００６７】
図７に示した例は、サンプリング点Ｘｓから２ｄ−１の距離にあるサンプリング点Ｘｓ’のラベル値「Ｌ０」が、サンプリング点Ｘｓのラベル値「Ｌ０」と同一であったが、常に同一であるとは限らない。
そこで、図８を参照しながら、サンプリング点Ｘｓから２ｄ−１の距離にあるサンプリング点Ｘｓ’のラベル値と、サンプリング点Ｘｓのラベル値とが異なる場合の例外処理について説明する。
【００６８】
図８に示す例では、サンプリング点Ｘｓ「１」から２ｄ−１＝５の距離にあるサンプリング画素位置Ｘｓ’「６」のラベル値が「Ｌ３」となっており、サンプリング点Ｘｓのラベル値「Ｌ０」と異なっている。このような場合、前述の手法では、他の被写体についての画素値を隠れ面補償として補うことになってしまい、不合理である。
そこで、制御部１１は、折り返しコピーされる画素位置のラベル値が、サンプリング点の参照位置に現れるべき被写体のラベル値と一致するか否かを判定する。より詳しくは、制御部１１は、サンプリング点Ｘｓから２ｄ−１の距離にある画素のラベル値（ラベルバッファ４３の値）が、サンプリング点Ｘｓの参照位置に現れるべき被写体のラベル値（ラベルバッファ４３の２番目のラベル値）と一致するか否かを判定する。そして、制御部１１は、一致する場合には、前述の折り返しコピーによる隠れ面補償処理を実行し、一致しない場合には、以下に説明する例外処理を実行する。
【００６９】
例外処理では、制御部１１は、サンプリング点Ｘｓの参照位置に現れるべき被写体のラベル値（ラベルバッファ４３の２番目のラベル値）と同一の一繋がりのサンプリング点群のなかで最も遠いサンプリング点Ｘｓ’’の参照位置バッファ４１に格納されている参照位置の画素値を、サンプリング点Ｘｓの画素値として割り当てる。
図８に示す例では、サンプリング点Ｘｓが「１」の参照位置に現れるべき被写体のラベル値「Ｌ０」と同一の一繋がりのサンプリング点群は、「２」〜「５」となっている。そこで、制御部１１は、サンプリング点群「２」〜「５」の中で最も遠いサンプリング点Ｘｓ’’「５」の参照位置バッファ４１に格納されている参照位置「８」を、サンプリング点Ｘｓ「１」の生成結果バッファ４４に格納する。
以上の例外処理により、他の被写体の画素値を隠れ面の画素値として補償することがなくなり、どのような場合であっても、合理的と考えられる画素値を割り当てることが可能になる。
【００７０】
そして、生成結果バッファ４４に格納された最終的な参照位置に対応する２次元画像２の画素値を各サンプリング点Ｘｓの画素値として割り当てることにより、隠れ面が適切な画素値によって補償された視差画像６を得ることが可能になる。
【００７１】
図４の説明に戻る。
制御部１１は、全サンプリング点（但し、Ｙ座標はＹｓのみ）について処理が終了したかどうか確認する（Ｓ２０７）。処理が終了していない場合（Ｓ２０７のＮｏ）、Ｓ２０２から処理を繰り返す。処理が終了している場合（Ｓ２０７のＹｅｓ）、Ｓ２０８に進む。
【００７２】
次に、制御部１１は、全てのＹ座標について処理が終了したかどうか確認する（Ｓ２０８）。処理が終了していない場合（Ｓ２０８のＮｏ）、Ｓ２０１から処理を繰り返す。処理が終了している場合（Ｓ２０８のＹｅｓ）、Ｓ２０９に進む。
【００７３】
次に、制御部１１は、Ｓ２０６において算出された画素値をカメラＣごとに纏めて、視差画像６として記憶部１２に保存する（Ｓ２０９）。カメラ数ｎが「８」の場合、制御部１１は、Ｓ２０６において算出された画素値をカメラＣ１〜Ｃ８ごとに纏めて、８枚の視差画像６として記憶部１２に記憶する。
【００７４】
以上、本発明の実施の形態に係る視差画像生成装置１は、隠れ面が違和感なく補正された視差画像６を生成することができる。
【００７５】
＜変形例１＞
画素値割り当て処理２４（Ｓ２０６）の変形例１について説明する。
前述の手法では、隠れ面境界位置を折り返し点として、画素値を折り返しコピーすることによって、サンプリング点Ｘｓの画素値を補償している。この手法では、横方向の画素値のみを考慮していることから、参照位置に現れるべき被写体（＝奥側の被写体）の階調変化が激しく、かつ、参照位置を隠していた被写体（＝手前側の被写体）の輪郭が曲線のような場合には、隠れ面の領域において手前側の被写体の輪郭に沿った筋状の線が出現してしまうことがある。変形例１では、この現象を回避することができる。
【００７６】
図９は、変形例１を説明する図である。図９に示す例では、２次元画像２のシーンを構成する被写体は、物体５１及び背景５２である。この例では、カメラ位置が正面よりも右である。そして、物体５１と背景５２との間に、隠れ面が生じている。
制御部１１は、まず、連続する複数のＹ座標Ｙｓ、Ｙｓ’、Ｙｓ’
’、・・・について、参照位置特定処理２１（Ｓ２０３）、隠れ面判定処理２２（Ｓ２０４）、及びラベル値割り当て処理（Ｓ２０５）を実行する。
次に、制御部１１は、隠れ面と判定された複数の参照位置が、連結している領域を隠れ面領域５３（図９では「黒色」）として抽出する。
次に、制御部１１は、隠れ面領域４３のＹ方向に伸びる外接直線を折り返し線５４として抽出する。この例では、隠れ面が右隠れ面であることから、隠れ面領域５３の右側の外接直線を抽出する。一方、隠れ面が左隠れ面であれば、隠れ面領域５３の左側の外接直線を抽出すれば良い。
そして、制御部１１は、折り返し線５４を基準として、画素値を折り返しコピーすることによって、サンプリング点Ｘｓの画素値を補償する。
【００７７】
変形例１によって、参照位置に現れるべき被写体（＝奥側の被写体）の階調変化が激しく、かつ、参照位置を隠していた被写体（＝手前側の被写体）の輪郭が曲線のような場合であっても、隠れ面の領域において横方向に筋状の線が出現してしまうことがない。
【００７８】
＜変形例２＞
画素値割り当て処理２４（Ｓ２０６）の変形例２について説明する。変形例２では、折り返しコピーではない各種の手法について説明する。
【００７９】
制御部１１は、サンプリング点Ｘｓの画素値を補償する為に、以下に示すいずれかの値を算出又は取得する。
（１）参照位置に現れるべき被写体（＝奥側の被写体）の全体の平均値
（２）参照位置に現れるべき被写体（＝奥側の被写体）の中で、参照位置を隠していた被写体（＝手前側の被写体）と隣接する画素群の平均値
（３）参照位置に現れるべき被写体（＝奥側の被写体）の代表値（代表値については、予め、補償画素値として適切と考えられる値を記憶部１２等に記憶しておく。）
そして、制御部１１は、算出又は取得される（１）〜（３）の値を、補償画素値として割り当てる。
【００８０】
＜変形例３＞
変形例３では、図４に示すフローチャートを実行する前に、隠れ面が生じないように、２次元画像２を加工しておく手法について説明する。変形例３の手法は、背景を除いて被写体同士の重なり合いがほとんどないようなシーンの２次元画像２について有効である。
制御部１１は、２次元画像２から背景領域を抽出し、テクスチャ生成技術によって、２次元画像２全体の画素位置に画素値を有する加工背景領域を生成する。そして、制御部１１は、２次元画像２における背景を除いた被写体の領域に含まれる各画素について、対応する加工背景領域の画素値を対応付けて記憶部１２等に記憶しておく。
そして、制御部１１は、隠れ面判定処理２２（Ｓ２０４）において、参照位置が隠れ面と判定された場合には、対応する加工背景領域の画素値を、サンプリング点Ｘｓの画素値として割り当てる。
【実施例】
【００８１】
図１０は、２次元画像２の一例を示す図である。図１０に示す例では、２次元画像２は、グレースケール画像であり、円形の物体（＝淡いグレー）、長方形の物体（＝濃いグレー）、及び格子状の背景（＝白と黒）によって構成されている。
【００８２】
図１１は、図１０の２次元画像２についてのデプス画像４の一例を示す図である。図１１に示す例では、デプス画像４は、０〜２５５の階調を有するグレースケール画像である。
図１１に示すデプス画像４では、図１０の円形の物体の奥行き値が階調「０」、格子状の背景の奥行き値が階調「２５５」、長方形の物体の奥行き値が階調「１２８」である。つまり、円形の物体が最も手前にあり、格子状の背景が最も奥にあることを示している。
説明を分かり易くする為、図１１に示すデプス画像４では、被写体ごとに単一の奥行き値とした。一般の被写体であれば、各部ごとに奥行き値が異なることが多い。
【００８３】
図１２は、図１０の２次元画像２についてのラベル画像３の一例を示す図である。図１２に示す例では、ラベル画像３は、０〜２５５の階調を有するグレースケール画像である。
図１２に示すラベル画像３は、例えば、図１０の円形の物体のラベル値が階調「０」、格子状の背景のラベル値が階調「２５５」、長方形の物体のラベル値が階調「１２８」である。
説明を分かり易くする為、図１１と図１２は、全く同一の画像とした。前述したように、一般の被写体であれば、各部ごとに奥行き値が異なることが多く、デプス画像４とラベル画像３は、異なる画像となる。
【００８４】
本実施例では、図１０に示す２次元画像２、図１１に示すデプス画像４、図１２に示すラベル画像３を入力画像として、視差画像６を生成した。
【００８５】
図１３は、視線が左方向からの視差画像６の一例を示す図である。図１３に示す例では、カメラ位置が図３におけるカメラＣ３やＣ４の位置である。
視線が左方向からの視差画像６を生成する際は、円形の物体の左側の輪郭と背景との間や、長方形の物体の左側の輪郭と背景との間に、隠れ面が生じる。
図１３に示す例では、隠れ面が適切な画素値によって補償され、違和感なく補正されている。
【００８６】
図１４は、視線が右方向からの視差画像６の一例を示す図である。図１４に示す例では、カメラ位置が図３におけるカメラＣ７やＣ８の位置である。図１３に示す例では、カメラ位置が図３におけるカメラＣ３やＣ４の位置であったことから、図１３に示す隠れ面の領域よりも、図１４に示す隠れ面の領域の方が大きくなっている。
視線が右方向からの視差画像６を生成する際は、円形の物体の右側の輪郭と背景との間や、長方形の物体の右側の輪郭と背景との間に、隠れ面が生じる。
図１４に示す例では、長方形の物体の右側の輪郭と背景との間の隠れ面については、適切な画素値によって補償され、違和感なく補正されている。
一方、円形の物体の右側の輪郭と背景との間の隠れ面については、正しく補償されていない。これは、参照位置に現れるべき被写体（＝背景）の階調変化が激しく、かつ、参照位置を隠していた被写体（＝円形の物体）の輪郭が曲線なので、隠れ面の領域において円形の物体の輪郭に沿った筋状の線が出現してしまっている。この現象については、前述したように、変形例１によって回避することができる。
【００８７】
以上、添付図面を参照しながら、本発明に係る視差画像生成装置等の好適な実施形態について説明したが、本発明はかかる例に限定されない。当業者であれば、本願で開示した技術的思想の範疇内において、各種の変更例又は修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【符号の説明】
【００８８】
１………視差画像生成装置
２………２次元画像
３………ラベル画像
４………デプス画像
５………パラメータ
６………視差画像
【図１】
0005782761.tif 000003
【図２】
0005782761.tif 000004
【図３】
0005782761.tif 000005
【図４】
0005782761.tif 000006
【図５】
0005782761.tif 000007
【図６】
0005782761.tif 000008
【図７】
0005782761.tif 000009
【図８】
0005782761.tif 000010
【図９】
0005782761.tif 000011
【図１５】
0005782761.tif 000012
【図１０】
0005782761.tif 000013
【図１１】
0005782761.tif 000014
【図１２】
0005782761.tif 000015
【図１３】
0005782761.tif 000016
【図１４】
0005782761.tif 000017