以下、本発明の実施の形態を図面に従って説明する。
実施の形態1.
本実施の形態で示す立体画像を表示する方法は、表示対象物をある1つの視点から撮像した1組の2次元画像と奥行き情報(デプスマップ)とを入力とする。そして、観察者の位置を検出した結果を利用して、積層した複数の表示面に表示する画像を生成する。それら画像を各表示面で表示することで運動視差まで再現した立体画像を表示する。
図1は、本発明の実施の形態1の3次元画像表示装置100およびその周辺の構成を概略的に示したものである。図1において、3次元画像表示装置100は、制御部105、表示面101、表示面102、バックライト103及び観察者位置検出センサ104を有する。
信号の流れに沿って、図1に示した各要素について説明する。
画像取得装置110は、ある視点から被写体111を見た時の2次元画像及びこの2次元画像に対応する奥行き情報としてデプスマップを取得し、これらを制御部105に出力する。「デプスマップ」とは、各画素に対応する深度情報を示すものである。「深度」とは、深さの程度、又は、度合いのことであり、基準位置と対象物との距離をいう。なお、「基準位置」は、例えば深度情報の取得時においては測定装置の位置である。画像取得装置110は、例えばRGB−Dカメラと呼ばれる3次元画像センサである。画像取得装置110が出力する2次元画像は、水平方向及び垂直方向に並んだ画素毎にR(赤色)の輝度の強さ、G(緑色)の輝度の強さ及びB(青色)の輝度の強さを示したデータ群である。また、画像取得装置110が出力する2次元画像は、例えば0から255までの8ビットの値(階調値)で示したデータ群である。画像取得装置110が出力する2次元画像は、一般的なデジタルカメラで撮影した2次元画像と同じ信号フォーマットである。なお、2次元画像は、必ずしもRGBの階調値を含むカラー画像である必要はない。2次元画像は、モノクロ画像であっても良い。「RGBの階調値」とは、画素毎のR(赤色)の輝度の強さ、G(緑色)の輝度の強さ及びB(青色)の輝度の強さのことである。
また、画像取得装置110が出力するデプスマップは、2次元画像の各画素で表現される被写体の部分の画像取得装置110からの奥行き位置(距離)を示したデータ群である。デプスマップは、2次元画像と同じく水平方向及び垂直方向に並んだデータ群である。画像取得装置110が出力するデプスマップは、例えば手前に来るほうが大きい値をとるように0から4095までの12ビットの値(奥行き値)で示したデータ群である。デプスマップは、一般にモノクロ画像として表現される。デプスマップの取得方法は、TimeOfFlight方式又はLightCoding方式がある。本発明は、これらの方式に特に限るものではない。
観察者位置検出センサ104は、3次元画像表示装置100に対して観察者106がどの位置にいるのかを示す情報を取得するセンサである。観察者は、3次元画像表示装置に対して、水平方向軸107、垂直方向軸108及び奥行き方向軸109の3軸で表現される空間内を移動する。水平方向軸107は、3次元画像表示装置100の左右方向の軸である。表示面101に向かって右側がプラス方向である。垂直方向軸108は、3次元画像表示装置100の上下方向の軸である。3次元画像表示装置100の上側がプラス方向である。奥行き方向軸109は、3次元画像表示装置100の前後方向の軸である。表示面101に向かって手前側がプラス方向である。なお、本明細書内において、「水平方向」とは、水平方向軸107の方向であり、「垂直方向」とは、垂直方向軸108の方向である。
観察者位置検出センサ104は、この3軸で表現される空間内における観察者の位置を示す情報を取得する。ただし、観察者位置検出センサ104は、他の形式で空間を表した軸を用いても構わない。観察者位置検出センサ104は、例えばRGB−Dカメラである。観察者位置検出センサ104は、3次元画像表示装置100に対して、決められた位置に置かれる。そして、観察者位置検出センサ104は、観察者106を画像内に含む2次元画像及びデプスマップを取得する。「観察者位置検出センサ104における位置検出」とは、例えば、2次元画像に対して顔検出を行うなどの解析をすることである。つまり、2次元画像の中から観察者106の顔を検出することで、観察者106の位置を特定する。顔検出を行うなどの解析は、2次元画像から水平方向軸107及び垂直方向軸108に対する観察者106の位置を検出することを可能にする。また、2次元画像で顔検出を行うなどの解析は、デプスマップから奥行き方向軸109に対する観察者の位置を検出することを可能にする。
観察者位置検出センサ104は、観察者106の位置を検出できる情報を取得するものであれば、RGB−Dカメラに限られるものではない。観察者106の位置を検出できる情報を取得するものとは、例えば、水平方向にずれた位置に置かれた2つのカメラで構成されるステレオカメラ、赤外線センサ、超音波距離センサ及び光センサなどである。観察者位置検出センサ104が観察者106の位置を検出しやすくするために、観察者106は自らの位置を示すLED又は画像パターンを身につけていても良い。観察者位置検出センサ104で取得した観察者106の位置を示す情報は、制御部105に出力される。
制御部105は、観察者位置検出センサ104から出力された観察者106の位置を示す情報を受け取る。「観察者の位置を示す情報」とは、画像取得装置110から出力される2次元画像、デプスマップ及び視点位置を知るための情報である。これらの情報は、3次元画像表示装置100が3次元で画像を表示するための画像情報である。制御部105は、これら入力情報に対して処理を行う。制御部105は、積層された複数の表示面101,102に表示する2次元画像を生成する。制御部105は、生成した2次元画像を表示面101及び表示面102に対してそれぞれ出力する。
表示面101と表示面102とは、制御部105からそれぞれ2次元画像を受け取り、これらを観察者106に対して表示する。表示面101と表示面102とは、それぞれ2次元画像を表示する表示面を備えている。表示面101,102は、水平方向軸107及び垂直方向軸108を含む平面に平行な表示面を有する。表示面101と表示面102とは、奥行き方向軸109方向に間隔を持って、各表示面が平行になるよう積層されている。表示面101と表示面102との位置関係については、表示面101の表示面が観察者106の近くに配置され、表示面102の表示面が観察者106から遠くに配置されている。本実施の形態1において、表示面101及び表示面102は、透過型の液晶セルである。表示面101及び表示面102は、共通のバックライト112を有している。バックライト112は、表示面101及び表示面102を照明する光源である。バックライト112は、積層した表示面101,102の最後面の背部に置かれている。すなわち、バックライト112は、表示面102の背部に置かれている。なお、ここでは2つの表示面を記載しているが、本発明の3次元画像表示装置については表示面の数は3枚又は4枚など複数枚であっても良い。
なお、一般的な液晶セルの前面と後面とには偏光フィルムが貼られており、これらは互いに直交する方向の偏光を透過する。バックライトからの光は、後面側の偏光フィルムを透過した後、液晶セル内の液晶により偏光角が変えられる。偏光角は、液晶の各画素に与える電圧により調整できる。例えば、液晶で偏光を90度回転させた場合には、光は前面側の偏光フィルムを全て透過するため液晶セルの表示面は白となる。液晶で偏光を回転させない場合には、光は前面側の偏光フィルムを透過できず液晶セルの表示面は黒となる。液晶セルの表示面において白と黒との間の中間階調を表示したい場合には、液晶による偏光角を0度から90度までの間の値にすればよい。
上記の説明のように、液晶セルを透過した光は偏光となっている。このため、3次元画像表示装置100のように液晶セルを積層する場合には、バックライト103に近い下層の液晶セルを透過した偏光が観察者に近い上層の液晶セルでも透過するようにしておく必要がある。なお、バックライトに近い層を下層と呼び、観察者に近い層を上層と呼ぶ。これには、いくつかの方法がある。例えば3次元画像表示装置100のように2枚の液晶セルを積層する場合には、バックライトに近い下層の液晶セルの前面側の偏光フィルムが透過する偏光角と、観察者106に近い上層の液晶セルの後面側の偏光フィルムが透過する偏光角とが等しくなるように、それぞれの液晶セルの偏光フィルムを構成する。このような構成の場合には、2枚の液晶セルの中間位置に画像を知覚させるため、表示したい画像の奥行き情報に合わせて2枚の液晶セルの透過率の割合を制御する。透過率の割合を制御するということは、各表示面に表示する画像の輝度を制御することと等しい。
もしくは、バックライトに近い下層の液晶セルの前面側の偏光フィルムと観察者に近い上層の液晶セルの後面側の偏光フィルムとを無くす。そして、バックライトに近い下層の液晶セルの後面側の偏光フィルムと観察者に近い上層の液晶セルの前面側の偏光フィルムとが互いに直交するように構成する。このような構成の場合には、2枚の液晶セルの中間位置に画像を知覚させるため、表示したい画像の奥行き情報に合わせて2枚の液晶セルの偏光角調整量の割合を制御する。
次に、制御部105における処理について詳しく説明する。図2は、制御部105における処理の概略を示したブロック図である。制御部105は、奥行き情報正規化部22、視点位置検出部23、マッピング部24及び層画像生成部25を備える。以下、各部の動作について説明する。
奥行き情報正規化部22は、2次元画像とこれに対応するデプスマップとを入力する。2次元画像及びデプスマップは、3次元で表示するための画像情報である。図1において、2次元画像とデプスマップとは、画像取得装置110で取得したものを制御部105に入力している。しかし、他の手段で取得したものを入力しても良い。例えば、ハードディスク又はUSBメモリといった記憶装置にあらかじめ蓄積されている2次元画像とこれに対応するデプスマップとを入力しても良い。他にも、2Dグラフィックエンジンで描画した2次元画像とこれに対応するデプスマップとを入力しても良い。また、ステレオカメラで撮影した2視点の視差画像のうち1枚と、視差画像を解析して得られるデプスマップとを入力しても良い。以降の説明では、2次元画像はRGBの3色の階調値を持つカラー画像として扱うが、画像の濃淡を示す階調値だけを持つモノクロ画像であっても良い。
奥行き情報正規化部22は、最初に入力された2次元画像の各画素について、デプスマップで示される奥行き値を割り当てる。2次元画像及びデプスマップの示す空間(撮影画角)が解像度(水平方向の画素数と垂直方向の画素数)と等しい場合には、そのまま2次元画像の画素とデプスマップの画素との関係は一対一で対応するので問題ない。「画角」とは、撮影された光景の範囲を角度で表したものである。「画角」は、視野角ともいう。
2次元画像及びデプスマップの取得方法によっては、両者が示す空間(画角)が一緒であっても、水平方向の画素数と垂直方向の画素数とが異なる場合がある。例えば、2次元画像に対しデプスマップの解像度が低い場合には、デプスマップの拡大処理を行うか、又は2次元画像の縮小処理を行うことで、両者の解像度を揃える処理が必要となる。
また、2次元画像及びデプスマップの示す空間(画角)が異なる場合もある。例えば、2次元画像は、左右方向に120度の空間を撮影し、上下方向に90度の空間を撮影したものである。一方、デプスマップはこれよりもせまい左右方向に110度の空間を撮影し、上下方向に80度の空間を撮影したものである。このような場合には、2次元画像の位置とデプスマップの位置とをあわせる必要があり、解像度の調整を行う必要がある。また、2次元画像の端部領域では、対応するデプスマップが無い場合がある。このような場合には、この2次元画像の端部領域を表示対象領域から除外するか、該当するデプスマップの奥行き値を、仮の値(例えば最も奥を意味するゼロ)とする必要がある。
次に、奥行き情報正規化部22は、デプスマップが示す2次元画像の各画素の奥行き位置を、表示面101および表示面102で挟まれる空間内のどの位置に表示するかを決定する。
図3は、奥行き値をプロットしたグラフの一例である。奥行き情報正規化部22は、2次元画像の垂直方向軸108のある位置における画素を、水平方向軸107に平行なラインで切り出す。つまり、画像の一部をライン状に抜き出すのである。奥行き情報正規化部22は、このライン上に並ぶ各画素に対応する奥行き値をデプスマップに記録する。図3の横軸は画素の水平位置(何画素目か)を示し、縦軸は奥行き値を示す。これらは実際には離散データとして入力されるが、図3ではこれらの離散データを曲線で結んだグラフ30で表している。
先にも説明したように、デプスマップには、例えば手前側が大きい値をとるように0から4095までの奥行き値が記録されている。「手前」とは、奥行き方向軸109のプラス方向である。例えば、この奥行き値をそのまま用いて、積層した表示面の間で3次元画像を表示することが可能である。また、奥行き情報正規化部22は、奥行き値のある範囲の画素を切り出して、積層した表示面間に割り振る。これにより、表示したい物体の凹凸形状をより意図通りに表示することも可能である。デプスマップの奥行き値の範囲を、3次元画像表示装置100で表現する奥行き値の範囲に変換する正規化処理は、以下に示す方法で行われる。図3における破線31および破線32で囲まれた範囲の奥行き値を切り出す。破線31を超える奥行き値は全て破線31が示す奥行き値にクリップする。破線32を下回る奥行き値は全て破線32が示す奥行き値にクリップする。クリップされた値(切り出された値)は、0から1024までの範囲に正規化されて出力される。すなわち、図3における破線31は、表示面101の奥行き位置に相当する。図3における破線32は、表示面102の奥行き位置に相当する。3次元画像表示装置100は、破線31と破線32とで囲まれる奥行き値の範囲の画素を、表示面101と表示面102とで挟まれる空間内で、立体的に表示をする。
図4は、図3に示した2次元画像のあるライン上の画素が、表示面101および表示面102で挟まれる空間内のどの位置に表示されるかを示した図である。画素が表示される位置を実線40で示している。図4の横軸は画素の水平位置(何画素目か)を示し、縦軸は奥行き値を示す。
上述の正規化処理により、デプスマップの奥行き値のダイナミックレンジと3次元画像表示装置100で表現する奥行き(立体感)のダイナミックレンジとを揃えることができる。
3次元画像表示装置100で表現する奥行きのダイナミックレンジは、物理的な制約に依存する。すなわち、表示面101と表示面102とをどの程度の間隔で積層するかに依存する。一方で、デプスマップの奥行き値のダイナミックレンジは、被写体がどの奥行き位置に存在するかによって変化する。このため、デプスマップの奥行き値の分布状況に応じて、デプスマップのどの奥行き値の範囲の画像を、3次元画像表示装置100で表示するかについては、適宜判断する必要がある。
奥行き情報正規化部22は、以上の処理を行って得られた2次元画像及び正規化後のデプスマップ(奥行き値)をマッピング部24に出力する。
視点位置検出部23には、観察者位置検出センサ104が出力した観察者位置を示す情報が入力される。ここでは、RGB−Dカメラが撮影した観察者の2次元画像とこの画像に対応するデプスマップとが視点位置検出部23に入力される場合を例として説明を行う。
視点位置検出部23では、入力された2次元画像から、3次元画像表示装置100に対する観察者106の視点位置を求める。例えば、2次元画像を解析し、顔認識処理を行って観察者106の顔を検出する。そして、観察者の左右の眼を結ぶ線分を二等分する位置から、水平方向軸107および垂直方向軸108における視点位置を求めることができる。さらに、2次元画像の観察者106の左右の眼を結ぶ線分を二等分する位置におけるデプスマップの奥行き値を参照することで、奥行き方向軸109における視点位置を求めることができる。
視点位置検出部23は、検出した観察者106の視点位置をマッピング部24に出力する。なお、2次元画像内から顔検出ができない時には視点位置を求めることができない。2次元画像内から顔検出ができない時とは、例えば、観察者が席を離れるなどして存在しない場合又は観察者が画面に対して横を向くなどしている場合である。このような場合には、観察者106が存在しないという情報をマッピング部24に対して出力する。
マッピング部24は、2次元画像、正規化後の奥行き値及び観察者の視点位置を入力する。また、マッピング部24は、視点位置に応じて2次元画像の各画素を、積層した表示面上にマッピングする。さらに、マッピング部24は、マッピング処理された各画素に対して、輝度、透過率又は偏光角変化量の分配処理を行う。
具体的には、マッピング部24は、2次元画像の各画素が複数の表示面101,102で挟まれる空間上に表示される位置と視点位置とを結ぶ直線を視線と定義する。表示面101,102で挟まれる空間上に表示される位置は、正規化後の奥行き値にしたがって決定される。そして、マッピング部24は、この視線と各表示面との交点を求める。この交点は、2次元画像の各画素を投影する表示面上の水平位置及び垂直位置である。「マッピング処理」とは、この交点を求めることである。
そして、分配処理は、2次元画像の各画素の階調値が示す輝度、透過率又は偏光角変化量を分配する。分配処理は、2次元画像の画素を挟むように存在する表示面それぞれに求められる2つの交点に対しておこなう。分配処理は、表示面間における2次元画像の画素の奥行き位置に応じておこなう。分配処理により、各表示面に表示する画像を求める元となるRGBの階調値が、表示面毎に得られることになる。
以降では、マッピング部24で行うマッピング処理の詳細について説明する。マッピング処理は、2次元画像の各画素に対して水平方向(水平方向軸107の方向)と垂直方向(垂直方向軸108の方向)それぞれに対して独立に行う。ここでは、まず、水平方向に対する処理について説明する。
図5は、マッピング部24におけるマッピング処理についての説明図である。図5に、正規化後の奥行き値と視点位置501との関係を表す一例を示す。図5に示す画素507は、2次元画像のある垂直位置(垂直方向軸108の方向の位置)の画素を、水平方向(水平方向軸107の方向)に伸びるラインとして切り出したものである。図5は、水平方向に伸びるライン上にある各画素の奥行き値及び視点位置501を示している。図5において、2次元画像の各画素507は実線506上にある丸印で示されている。図5において、実線506は2次元画像の隣り合う画素507をなめらかな曲線で結んだものである。実線506は、表示面101および表示面102で表現したい3次元形状(凹凸形状)を示すものである。
2次元画像の画素507に対するマッピング処理について説明する。観察者が画素507を見た時の視線508は、視点位置501と画素507を結ぶ線で表される。図5において、視線508は破線で表されている。この視線508は、横軸を水平位置(水平方向軸107の方向の位置)とし、縦軸を正規化後の奥行き値とする2次元平面において、1次関数として表される。この視線508に対し、表示面101との交点509、および表示面102との交点510を求める。図5において、表示面101と表示面102とは、それぞれ正規化後の奥行き値が一定の直線と捉えている。視線508を示す1次関数(直線の式)に表示面101および表示面102に対応する正規化後の奥行き値を代入する。図5において、表示面101の奥行き値は1024であり、表示面102の奥行き値は0(ゼロ)である。これにより、表示面101および表示面102における交点の水平位置(水平方向軸107の方向の位置)を求めることができる。
図5において、視線508と表示面101との交点509は、三角印で示されている。また、視線508と表示面102との交点510も、三角印で示されている。交点509,510の水平位置は、表示面101上の画素503,504の水平位置と一致しない場合がある。図5では、交点509の水平位置は画素503の水平位置と一致していない。また、交点510の水平位置は画素504の水平位置と一致している。表示面上の画素の水平位置が整数で与えられるとすれば、交点509の水平位置は小数の精度で求める必要がある。これは、交点510においても同様であり、表示面102上の画素504の水平位置が整数で与えられるとすれば、交点510の水平位置は小数の精度で求める必要がある。
このように、視点位置501と2次元画像の各画素の奥行き値とに従い、2次元画像の各画素を表示面101および表示面102に表示する水平位置を決定するのがマッピングである。
ここで重要なのが、マッピング処理ではオクルージョン問題を考慮する必要があることである。「オクルージョン」とは、表示したい3次元形状によっては、視点位置501から見えなくなる2次元画像の画素が生じることである。オクルージョンの様子を図6に示す。図6は、マッピング部24におけるオクルージョンの発生についての説明図である。図6は、図5と同様に、正規化後の奥行き値と視点位置601との関係を表す一例を示した図である。図6に示す画素607は、2次元画像のある垂直位置(垂直方向軸108の方向の位置)の画素を、水平方向(水平方向軸107の方向)に伸びるラインとして切り出したものである。図6は、水平方向に伸びるラインの上にある各画素の奥行き値及び視点位置601を示した図である。図6において、2次元画像の各画素607は実線602上にある丸印で示されている。図6において、実線602は2次元画像の隣り合う画素607をなめらかな曲線で結んだものである。実線602は、表示面101および表示面102で表現したい3次元形状(凹凸形状)を示すものである。
図6において、視点601から2次元画像の画素603を見た場合について説明する。この時、視線604は、視点601と画素603とを結ぶ線で示される。図6において、視線601は、破線で表されている。視線604は、位置611(黒塗りの三角印で示す)で実線602と交わっている。位置611は、画素603よりも視点位置601に近い。よって、視点位置601から見て、表現したい3次元形状の画素603は位置611の後ろ側(奥行き方向軸109のマイナス方向)に位置する。このため、視点位置601から画素603を見ることはできない。このように物体などの後ろ側に位置することで見えないことを、オクルージョンと呼ぶ。
オクルージョンが発生した画素は、観察者106からは見えないため、マッピングの対象から外す必要がある。オクルージョンが発生しているか否かを判断する処理について説明する。
画素603に対してマッピング処理を行う前に、画素607に対してマッピング処理を行う。画素607は、画素603と隣接し、その水平位置がより視点位置601に近い画素である。視線608は、画素607に対する視線である。図6において、視線608は、破線で表されている。これにより、画素607に対する視線が破線608となり、視線608と表示面101との交点609の水平位置が求められる。また、表示面102との交点610の水平位置が求められる。
続いて、画素603に対してマッピング処理を行い、同様に交点605および交点606の水平位置を求める。交点605は、視線604と表示面101との交点である。交点606は、視線604と表示面102との交点である。ここで、交点605の水平位置と交点609の水平位置とを比較する。交点605の水平位置が交点609の水平位置よりも視点位置601の水平位置に近い場合には、オクルージョンが発生していると判断する。
このようにオクルージョンの発生を、画素毎に判断しながらマッピング処理を行う。視点位置601から表示面101,102に対して垂直な視線方向にある2次元画像の画素については、オクルージョンが発生しないことは明らかである。よって、マッピング処理は視点位置601と同じ水平位置にある2次元画像の画素から行う。そして、視点位置601の水平位置と同じ水平位置にある2次元画像の画素を起点に、オクルージョンの発生を判断しながらマッピング処理を行う。つまり、起点とした画素から離れる方向に順番に、2次元方向の各画素に対してオクルージョンの発生を判断しながらマッピング処理を行う。視点位置601の水平位置が2次元画像の水平位置の範囲外である場合には、視点位置601の水平位置に対して最も近い2次元画像の水平位置にある画素からマッピング処理を行えば良い。
ここまでに、水平方向に対するマッピング処理について説明したが、垂直方向についても全く同様の処理を行うことができる。オクルージョンの判断についても同様で、視点位置と同じ垂直位置(垂直方向軸108の方向の位置)にある2次元画像の画素からマッピング処理を開始する。そして視点位置と同じ垂直位置にある2次元画像の画素を起点に視点位置の垂直位置から上側または下側へ離れる方向に順番に2次元方向の各画素に対してオクルージョンの発生を判断しながらマッピング処理を行う。つまり、最初のマッピング処理は、視点位置の水平位置及び垂直位置と等しい、もしくは視点位置の水平位置及び垂直位置に最も近い2次元画像の画素に対して行うことになる。
オクルージョンについては、水平方向では発生せず、垂直方向のみで発生する場合がある。逆に水平方向で発生し、垂直方向では発生しない場合もある。どちらか一方の方向でオクルージョンが発生した場合には、この画素は観察者106からは見えない画素と判断されるため、マッピング処理を行わずに無効画素として判断する。「無効画素」とは、表示しない画素のことである。
オクルージョンが発生しなかった2次元画像の画素については、その画素のRGBの階調値の分配処理を行う。つまり、赤色(R)、緑色(G)及び青色(B)の各色に対して、別々に分配処理を行う。分配処理は、表示面101上および表示面102上にマッピングした交点に対して行う。また、分配処理は、その画素の正規化後の奥行き値に従い行う。分配処理は、観察者106からその画素が表示面101と表示面102との間の奥行き位置に見えるように行うものである。分配処理は、その画素の奥行き値に従い、その画素のRGBの階調値が示す輝度、透過率または偏光角変化量を分配するものである。輝度、透過率又は偏光角変化量を分配した結果、表示面101上にマッピングした交点に対するRGBの階調値と、表示面102上にマッピングした交点に対するRGBの階調値が得られる。
なお、ここまでに示したマッピング処理及び分配処理は、視点位置検出部23が視点位置を正常に検出できた場合に行うものである。視点位置検出部23で視点位置が検出できず、観察者106がいないという情報がマッピング部24に入力された場合には、以下の処理を行う。
マッピング部24は、マッピング処理として入力された2次元画像の各画素の水平位置及び垂直位置を最前面にある表示面の各画素にそのまま対応させる。実施の形態1では、最前面にある表示面は、表示面101である。マッピング部24は、同様に分配処理として2次元画像の各画素のRGBの階調値をそのまま最前面の表示面の各画素に割り当てる。最前面にある表示面以外の表示面に対してはマッピング処理と分配処理を行わずに出力する。
マッピング部24は、このようなマッピング処理及び分配処理を行って求められた値を層画像生成部25に対して出力する。マッピング部24が求めた値は、次の4つである。第1に、表示面101上にマッピングした各交点の水平位置及び垂直位置(表示面101の表示面上の座標)、第2に、表示面101上にマッピングした各交点の分配処理後のRGBの階調値、第3に、表示面102上にマッピングした各交点の水平位置及び垂直位置(表示面102の表示面上の座標)、第4に、表示面102上にマッピングした各交点の分配処理後のRGBの階調値である。
層画像生成部25は、マッピング部24から次の4つの値を入力する。第1に、表示面101上にマッピングした各交点の水平位置及び垂直位置(表示面101の表示面上の座標)、第2に、表示面101上にマッピングした各交点の分配処理後のRGBの階調値、第3に、表示面102上にマッピングした各交点の水平位置及び垂直位置(表示面102の表示面上の座標)、第4に、表示面102上にマッピングした各交点の分配処理後のRGBの階調値である。
また、層画像生成部25は、表示面101に表示する画像と表示面102に表示する画像とをそれぞれ生成して出力する。ここで、表示面101に表示される画像は、表示面101上にマッピングした各交点の水平位置及び垂直位置と、分配処理後のRGBの階調値とに基づいて層画像生成部25が生成する。表示面102に表示される画像は、表示面102上にマッピングした各交点の水平位置及び垂直位置と、分配処理後のRGBの階調値とに基づいて層画像生成部25が生成する。
表示面101上に表示される画像の生成方法と、表示面102上に表示される画像の生成方法とは、基本的に同様である。以降は表示面101上に表示する画像を生成する方法について説明する。
上述のように、表示面101上にマッピングした各交点の水平位置及び垂直位置は、表示面101上の画素に対して、ずれた位置となる場合がある。例えば、図5に示す交点509である。図7は、マッピング部24が出力する画素群情報の一例を示す説明図である。図7では、水平方向及び垂直方向に存在する表示面101上の画素を白丸印で示している。また、表示面101上にマッピングした交点の位置を黒丸印で示している。このように、表示面101上の画素は、水平方向及び垂直方向の両方向に対して等間隔のサンプリング点である。一方、マッピングした各交点は、水平方向及び垂直の両方向に対して不等間隔のサンプリング点となる。「不等間隔」とは、等間隔では無いことを示す。層画像生成部25は、この不等間隔のサンプリング点であるマッピングした交点群に対して補間処理を行う。これにより、層画像生成部25は、等間隔サンプリング点である表示面101の画素に対応するRGBの階調値を求める。また、層画像生成部25は、表示面101に表示すべき画像を生成する。
この手法は様々であり、例えば、表示面101の各画素に対し、最も近傍にあるマッピングした交点のRGBの階調値を補間する方法がある。
このほかに、ドロネー図を用いた方法がある。図8は、画素群情報に対するドロネー図の一例を示す説明図である。ドロネー図を用いた方法は、以下の手順によるものである。まず、マッピングした交点のペアに対して垂直二等分線を引き、マッピングした各交点以外の点が最も近いマッピングした交点毎に領域分割を行う。領域分割した図は、ボロノイ図と呼ばれる。分割後の領域が隣接するマッピングした交点を線分で結び、図8のようなドロネー図を作成する。ドロネー図で作成された三角形の内に存在する表示面101上の画素のRGBの階調値は、三角形の頂点に存在するマッピングした交点のRGBの階調値から線形補間して求められる。
この時、三角形で囲まれない外周部の画素には、黒もしくは白に相当する階調を補間するのが良い。このような階調を補間することで、表示面を透過状態あるいは遮蔽状態とすることができる。
これと同様の処理を行い、層画像生成部25は、表示面102上にマッピングした各交点の水平位置及び垂直位置と、分配後のRGBの階調値とから、表示面102上に表示する画像を生成する。
視点位置検出部23で視点位置が検出できなかった場合には、マッピング部24は、最前面の表示面である表示面101の画素に対して、2次元画像の各画素を対応づけた結果を層画像生成部25に出力する。つまり、マッピング部24は、2次元画像の全ての画素の奥行き値を1024とする。層画像生成部25では、この入力信号に対し、表示面101に表示する画像として2次元画像をそのまま出力する。そして、層画像生成部25は、バックライトの光が最前面の表示面までそのまま透過するように、最前面の表示面以外の表示面に全面で均一な階調を持つ画像を表示する。また、層画像生成部25は、入力された2次元画像を最前面の表示面に表示することで、3次元画像表示装置100を一般的な2次元画像表示装置として使用する。
観察者位置検出センサ104は、3次元画像表示装置100に対する観察者106の位置を検出するためのものである。しかし、その検出範囲には制限がある場合が多い。このため、観察者位置検出センサ104の検出範囲外に観察者106がいる場合には、観察者106の位置情報を利用した表示制御を行うことができない。また、視点位置検出部23において、観察者106が横を向くなどして顔検出ができない場合にも、同様に観察者106の位置情報を利用した表示制御を行うことができない。
このように、観察者106の位置が把握できない場合には、3次元画像表示装置100の複数の表示面101,102用いて3次元画像を表示すると、観察者106が見る複数の表示面101,102に表示された各画像の重なりが破綻する。よって、観察者106の位置が把握できない場合には、観察者106は立体感が得られない。そして、観察者106の位置が把握できない場合には、観察者106は不自然な画像を見る結果となる。
そこで本実施の形態1においては、観察者106の位置が検出できない場合には、最前面の表示面のみを用いて、入力された2次元画像をそのまま2次元の平面画像として表示する。このような表示を行うことで、観察者106は立体感を得ることはできないものの、いかなる方向から見ても破綻の無い表示を行うことが可能になる。
層画像生成部25は、各表示面101,102に表示する層画像を生成して出力する。この出力は、制御部105から表示面101および表示面102に出力され、それぞれ観察者106に対して表示される。画像のチラツキの発生を抑えるため、表示面101および表示面102の画像は、同期を取って表示されることが望ましい。もしくは、表示面101および表示面102は、60Hz以上の高いフレーム周波数で駆動することが望ましい。
このように、本実施の形態1における3次元画像表示装置100は、表示対象物(被写体111)をある1つの視点から撮像した1組の2次元画像及び奥行き情報(デプスマップ)を入力とする。また、本実施の形態1における3次元画像表示装置100は、観察者106の位置を検出した結果を利用して、積層した複数の表示面101,102に表示する画像を生成する。さらに、本実施の形態1における3次元画像表示装置100は、それら画像を各表示面101,102で表示する。
このような表示を行うことから、本実施の形態1における3次元画像表示装置100は、3次元画像表示装置100に対して観察者106が移動しても、観察者106は常に破綻の無い立体画像を観察することができる。
また、本実施の形態1における3次元画像表示装置100は、入力された2次元画像の各画素に対し、観察者106の位置情報及び各画素の奥行き情報を利用したマッピング処理を行う。また、3次元画像表示装置100は、観察者106の位置情報及び各画素の奥行き情報を利用した分配処理を行う。このため、本実施の形態1における3次元画像表示装置100は、観察者106が移動することで積層した複数の表示面101,102に表示する画像を変化させる。これにより、3次元画像表示装置100は、1視点から撮像した2次元画像とデプスマップ入力とから運動視差を再現した表示を行うことが可能になる。
さらに、本実施の形態1における3次元画像表示装置100は、運動視差を表現する際に問題となるオクルージョンの発生を、2次元画像の各画素に対して判定しながらマッピング処理と分配処理とを行う。これにより、3次元画像表示装置100は、オクルージョンが発生した画素が持つRGBの階調値を、複数の表示面101,102に表示する画像を生成する際に用いない。このため、本実施の形態1における3次元画像表示装置100は、斜め方向から見ると、ある面が見えなくなるといった表現でき、より自然な運動視差を実現できる。
また、本実施の形態1における3次元画像表示装置100は、観察者106の位置が特定できない場合には、入力された2次元画像を最も観察者106に近い最前面の表示面に表示し、2次元画像表示装置として使用する。このため、いかなる方向から観察しても破綻の無い画像を表示することができる。
なお、本実施の形態1においては、2つの表示面101,102を用いて立体画像を表示する手法について説明した。しかし、表示面の数に制約はなく、3つ以上の表示面を持つ場合にも適用可能なものである。
実施の形態2.
本実施の形態2では、実施の形態1のマッピング部24におけるマッピング処理を簡易化するものである。実施の形態1のマッピング部24は、水平方向及び垂直方向に対して別々の処理を行い、2つの処理結果を合わせて層画像生成部25で処理していた。また、実施の形態1のマッピング部24は、水平方向及び垂直方向に対して正規化後の奥行き値と視点位置とを用いて、表示面101および表示面102に対するマッピング先を求めていた。これに対して、実施の形態2のマッピング部24は、垂直方向には正規化後の奥行き値を用いないマッピング処理を行う点で実施の形態1のマッピング部24と異なる。以下の説明では、実施の形態1と同様の部分については、同一の符号を用い、説明を省略または簡略化することとする。実施の形態1と同様の部分は、表示面101、表示面102、バックライト103、観察者位置検出センサ104及び画像取得装置110である。
図9は、制御部105における処理の概略を示したブロック図である。制御部105は、奥行き情報正規化部22、視点位置検出部23、マッピング部27及び層画像生成部28を備える。以降では、実施の形態2におけるマッピング部27と層画像生成部28の処理について、説明する。
実施の形態1におけるマッピング部24のマッピング処理は、2次元画像の各画素が持つ正規化後の奥行き値と視点位置とを用いて、表示面101および表示面102に対するマッピング先を求めるものである。一方で、2次元画像の各画素が持つ正規化後の奥行き値を利用しないマッピング処理も存在する。本実施の形態2のマッピング部27は、2次元画像の各画素に対し、水平方向には正規化後の奥行き値を用いたマッピング処理を行い、垂直方向には正規化後の奥行き値を用いないマッピング処理を行う。
正規化後の奥行き値を用いないマッピング処理について、図10を用いて説明する。図10は、マッピング部27におけるマッピング処理についての説明図である。図10は、正規化後の奥行き値と視点位置検出部23が出力した視点位置との関係の一例を示す図である。図10に示す画素903は、2次元画像のある水平位置(水平方向軸107の方向の位置)の画素を垂直方向(垂直方向軸108の方向)に伸びるラインとして切り出したものである。また、図10の奥行き値と視点位置901は、切り出したライン上にある垂直方向に並ぶ各画素に対応するものである。
図10において、2次元画像の各画素は、実線902上にある白丸印で示されている。実線902は、2次元画像の垂直方向に隣り合う画素903をなめらかな曲線で結んだものである。実線902は、いわば表現したい3次元形状(凹凸形状)を示すものである。奥行き情報正規化部22は、2次元画像の各画素が、表示面101と表示面102とで挟まれる空間内で表現されるように、それぞれの画素の奥行き値を正規化する。
2次元画像の画素903に注目して、正規化後の奥行き値を用いないマッピング処理について具体的に説明する。まず、画素903を挟むように存在する2つの表示面101,102のうち、表示面101に対するマッピング処理を行う。表示面101は、観察者106に近い前面側にある表示面である。この処理では、正規化後の奥行き値に関係なく、表示面101において画素903と同じ水平位置及び垂直位置にある画素904をマッピング先として選択する。
次に、画素903を挟むように存在する2つの表示面101,102のうち、観察者106に遠い後面側にある表示面102に対するマッピング処理を行う。表示面102は、観察者106から遠い位置である後面側にある表示面である。この処理では、画素903の表示面101に対するマッピング先である画素904と、視点位置901とを結ぶ直線を視線905と定義する。そしてこの処理では、直線905と表示面102との交点906をマッピング先として求める。
このような処理により、2次元画像の各画素を、これらの画素を挟むように配置された2つの表示面101,102に対しマッピングすることが可能となる。この正規化後の奥行き値を用いないマッピング処理は、2次元画像をまず前面側の表示面101に投影する。そして、表示面101に投影された画素と視点位置901とを直線で結び、その直線と後面側の表示面102との交点906を求める。つまり、前面側の表示面101に投影された2次元画像画素を、視点位置901を基準として後面側の表示面102に投影するものである。この処理は、後面側の表示面102に投影する際に、視点位置901を基準に投影している。つまり、この処理は、視点位置901を基準にマッピングを行っている。よって、この処理は、視点の垂直位置から離れて行くに従い、拡大率が上がっていく拡大処理を行っていることと等しい。
なお、前面側の表示面101に対する処理と、後面側の表示面102に対する処理とは、入れ替えても良い。すなわち、2次元画像の各画素を、水平位置及び垂直位置が同じ後面側の表示面102の画素にマッピングする。そして、マッピング先の画素と視点位置901とを直線で結ぶ。そして、この直線と前面側の表示面101との交点を求める。この場合には、前面側の表示面101に対するマッピング処理は、視点位置901の垂直位置から離れて行くに従い、縮小率が上がっていく縮小処理を行っていることと等しい。
なお、正規化後の奥行き値を用いないマッピング処理では、オクルージョン問題は発生しないため、オクルージョンの発生を判定する必要は無い。
このようなマッピング処理では、2次元画像の各画素が持つ正規化後の奥行き値をマッピングに用いない。このため、実施の形態1で説明した正規化後の奥行き値を用いるマッピング処理に比べて、運動視差を表現しづらくなる。
本実施の形態1においては、2次元画像の各画素について、水平方向では正規化後の奥行き値を用いたマッピング処理を行っている。また、垂直方向では正規化後の奥行き値を用いないマッピング処理を行っている。これにより、水平方向には運動視差を表現できるが、垂直方向には運動視差を表現しづらくなる。
一般的に、表示装置の表示面は、床に対して垂直に配置されている。このような場合には、観察者106は、表示面に対して左右方向に動くことで、3次元画像を左側又は右側から見ることができる。しかし、観察者106は、表示面に対して上下方向に動くことは難しいため、3次元画像を上側又は下側から見ることは稀である。このことより、表現すべき運動視差の方向にあえて優先順位を付けることができる。つまり、垂直方向よりも水平方向の運動視差を優先して表現すべきと言える。実施の形態2におけるマッピング処理は、これに対応したものである。
なお、水平方向に対しては、正規化後の奥行き値を利用したマッピング処理を行うため、各画素についてオクルージョンの発生を判定する。オクルージョンが発生した画素は、無効画素として扱う点は、実施の形態1と同じである。
また、分配処理については、実施の形態1と同じく、表示面101上のマッピング先及び表示面102上のマッピング先に対して、各画素の正規化後の奥行き値に従い、そのRGBの階調値を分配する。
本実施の形態2におけるマッピング部27は、実施の形態1のマッピング部24と同様に、マッピング処理と分配処理とを行っている。これらの処理で求められた次の4つの値を、マッピング部27は、層画像生成部に対して出力する。4つの値は、第1に、表示面101上にマッピングした各交点の水平位置及び垂直位置(表示面上の座標)、第2に、表示面101上にマッピングした各交点の分配処理後のRGBの階調値、第3に、表示面102上にマッピングした各交点の水平位置及び垂直位置(表示面上の座標)、第4に、表示面102上にマッピングした各交点の分配処理後のRGBの階調値である。
本実施の形態2における層画像生成部28は、やはり実施の形態1の層画像生成部258と同様に、マッピング部27から入力された情報を基にして、表示面101および表示面102に表示する画像を生成する。
ここで、本実施の形態2におけるマッピング後の交点の位置について説明する。マッピング後の交点の位置は、マッピング部27が出力し、層画像生成部28に入力される。
図11は、表示面101上へのマッピング処理についての説明図である。図12は、表示面102上へのマッピング処理についての説明図である。図11は、水平方向及び垂直方向に存在する表示面101上の画素を白丸印で示し、表示面101上にマッピングした交点の位置を黒丸印で示している。同様に、図12は、水平方向及び垂直方向に存在する表示面102上の画素を白丸印で示し、表示面102上にマッピングした交点の位置を黒丸印で示している。
図11及び図12に示すように、本実施の形態2においては、マッピング部27は、垂直方向には正規化後の奥行き値を用いないマッピング処理を行う。このため、2次元画像のある垂直位置で、水平方向に並んだライン上に存在する画素は、マッピング後の交点の垂直位置が等しくなる。一方、マッピング部27は、水平方向には正規化後の奥行き値を用いたマッピング処理を行う。このため、各交点の水平位置は基となる2次元画像の画素の正規化後の奥行き値に依存して変化する。つまり、2次元画像のある水平位置で、垂直方向に並んだライン上に存在する画素は、マッピング後の交点の水平位置が等しくなるとは限らない。図11及び図12では、マッピングした交点の位置を示す黒丸印は、水平方向軸107方向には一列に並んでいる。しかし、垂直方向軸108方向には一列に並んでいない。
層画像生成部28が、マッピング後の交点におけるRGBの階調値を基にして、表示面101,102の各画素に表示するRGBの階調値を補間して求める際には、層画像生成部28は、このようなマッピング後の交点の垂直方向の位置特性を利用することが可能である。
例えば、水平方向に並んだ垂直位置が同じ交点群を、ライン上の不等間隔サンプリング点と捉える。そして、このライン上の不等間隔サンプリング点のRGBの階調値を基にして、対応する水平位置に並んだ等間隔に存在する表示面101上の画素のRGBの階調値を補間して求めることができる。これにより、図11に示した表示面101上の各画素に表示する画像が求められる。
また、等間隔に存在する表示面101上の画素に対応する水平位置のRGBの階調値を補間して求めた後に、表示面102上の各画素に表示する画像を求める。垂直方向に並んだ補間後の水平位置が等しい補間点群を、ライン上の不等間隔サンプリング点と捉える。このライン上の不等間隔サンプリング点のRGBの階調値を基にして、対応する垂直位置に並んだ等間隔に存在する表示面102上の画素のRGBの階調値を補間して求めることができる。これにより、図12に示した表示面102上の各画素に表示する画像が求められる。
実施の形態1の層画像生成部25では、2次元の面内における不等間隔サンプリング点を基にして等間隔サンプリング点のRGBの階調値を求める補間処理を行う必要があった。なお、この補間処理は、表示面上の各画素に対し、例えばドロネー図による三角形を作成し、表示面上の各画素の水平方向又は垂直方向に近傍となる交点を探索するなどの処理である。この交点が画素のマッピング先となる。
これに対し、本実施の形態2の層画像生成部28は、水平方向又は垂直方向に処理を分離することが可能である。よって、本実施の形態2の層画像生成部28は、ライン上に存在する不等間隔サンプリング点を基にして等間隔サンプリング点のRGBの階調値を求める補間処理を行えば良い。両者の処理量を比較した場合、圧倒的に本実施の形態2の層画像生成部28の処理のほうが処理量を抑えることが可能である。また、本実施の形態2の層画像生成部28は、実施の形態1の層画像生成部25に対してより低コスト化を図ることが可能である。
このように、本実施の形態2における3次元画像表示装置120は、表示対象物(被写体111)をある1つの視点から撮像した1組の2次元画像と奥行き情報(デプスマップ)とを入力とする。また、本実施の形態2における3次元画像表示装置120は、観察者106の位置を検出した結果を利用して、積層した複数の表示面101,102に表示する画像を生成する。さらに、本実施の形態2における3次元画像表示装置120は、それら画像を各表示面101,102で表示する。
このような表示を行うので、3次元画像表示装置120に対して観察者106が移動しても、観察者106は常に破綻の無い立体画像を観察することができる。
また、本実施の形態2における3次元画像表示装置120は、入力された2次元画像の各画素に対し、水平方向には観察者106の位置情報及び各画素の奥行き情報を利用したマッピング処理を行う。一方、3次元画像表示装置120は、垂直方向には観察者106の位置情報のみを利用したマッピング処理を行う。そして、本実施の形態2における3次元画像表示装置120は、各画素の奥行き情報を利用した分配処理を行う。この分配処理により、本実施の形態2における3次元画像表示装置120は、観察者106が水平方向に移動することで、積層した複数の表示面101,102に表示する画像が変化する。つまり、1視点から撮像した2次元画像及びデプスマップ入力を基にして特に水平方向の運動視差を再現した表示を行うことが可能になる。
さらに、本実施の形態2における3次元画像表示装置120は、層画像生成部28の処理を水平方向又は垂直方向に分離して行うことができる。このため、処理量が少ない補間処理で、積層した各表示面101,102に表示する画像を生成することができる。ライン上に存在する不等間隔サンプリング点を基に等間隔サンプリング点のRGBの階調値を求める。この処理量の少ない補間処理で、積層した各表示面101,102に表示する画像を生成することができる。