本発明は、立体映像(3次元映像(3D映像))の表示部に適切な立体感を有する立体映像を表示させるための技術に関する。
視差を有する第1視点画像(左目用画像と右目用画像とのうちの一方の画像)と第2視点画像(左目用画像と右目用画像とのうちの他方の画像)からなる立体映像を表示可能な表示装置が普及しつつある。
立体映像を構成する第1視点画像と第2視点画像の視差(以下、適宜「立体映像の視差」という)は、当該立体映像を表示する表示装置の表示部の画面サイズ(表示条件)等により変化する。例えば、表示部の画面サイズが大きくなると、視差も比例して大きくなる。視差が大きな立体映像は、人間が立体視する際、立体視が困難になる場合がある。
特許文献1、2は、撮像された立体映像に対して信号処理を施すことにより、表示部の画面サイズに応じて視差を補正した新たな映像を生成することを開示している。
特開2006−115198号公報
特開2010−206774号公報
特許文献1、2のように信号処理により新たな画像を生成することは、誤差やオクルージョンを発生させる。そのため、特許文献1、2のような方法で、新たに生成した立体映像は不自然なものとなり、立体映像を視聴するユーザに適切な立体感を与えられない場合がある。
本発明は、立体映像の表示条件等が変化した場合でも、立体映像を視聴するユーザに適切な立体感を与えることが可能な技術を提供することを目的とする。
本発明における立体映像出力装置は、同一シーンを異なる位置で撮影した複数の画像の画像データを記憶する記憶部と、記憶部に記憶された複数の画像データから2つの画像データを立体視用の画像データとして選択する選択部と、記憶部に記憶される画像データに関する立体映像を表示する際の表示条件と立体映像を視聴する際の視聴条件との少なくとも一方を取得する取得部と、を備える。選択部は、取得部が取得した条件のうち少なくとも一つの条件が現在設定されている条件と異なる場合、2つの画像データを複数の画像データの中から選択し直して、出力する。
本発明における立体映像出力方法は、同一シーンを異なる位置で撮影した複数の画像の画像データであって、記憶部に記憶された画像データから2つの画像データを選択する立体映像出力方法である。この立体映像出力方法は、記憶部に記憶される画像データに関する画像を表示する際の表示条件と立体映像を視聴する際の視聴条件との少なくとも一方を取得し、取得した条件のうち少なくとも一つの条件が、現在設定されている条件と異なる場合、2つの画像データを複数の画像データの中から選択し直して、出力する。
本発明の立体映像出力装置においては、立体映像の表示条件や視聴条件が変更された場合、2つの画像データが複数の画像データの中から選択され直す。つまり、同一シーンを撮影した複数の画像の中から変更後の表示条件や視聴条件に応じた適切な画像データを用いて新たな立体映像を構成する。そのため、立体映像の表示条件等が変更された場合でも、立体映像を視聴するユーザに対して適切な立体感を与えることが可能となる。
実施形態1の3D映像処理装置の構成を示すブロック図である。
SB情報を説明するための図である。
記憶部の具体的構成を説明するための図である。
選択部の具体的動作の一例を説明するためのフローチャートである。
表示倍率が変更される動作を説明するための図である。図5(a)は、表示倍率が変更される前の状態を示す図である。図5(b)は、表示倍率が変更された後の状態を示す図である。
視差角のヒストグラムを示す図である。図6(a)は、視差角が−1°から1°の範囲に入っている場合のヒストグラムを示す図である。図6(b)は、視差角が−1°から1°の範囲に入っていない場合のヒストグラムを示す図である。
2台のカメラの撮像素子上での視差の算出を説明するための図である。
ディスプレイ上での視差の算出を説明するための図である。
画像テーブルの構成及び視差角のヒストグラムを示す図である。図9(a)は視差角が−1°から1°の範囲に入っていない場合のヒストグラムを示す図である。図9(b)は視差角が−1°から1°の範囲に入っていない場合のヒストグラムの別の例を示す図である。図9(c)は視差角が−1°から1°の範囲に入っている場合のヒストグラムを示す図である。図9(d)は画像テーブルの構成を示す図である。
実環境(画像撮影時)または3D映像において被写体を立体視したときの輻輳角を求める方法を説明するための図である。図10(a)は、実環境において被写体を立体視したときの輻輳角を求める方法を説明するための図である。図10(b)は、3D映像において被写体を立体視したときの輻輳角を求める方法を説明するための図である。
実施形態2の3D映像処理装置の選択部の具体的な動作を説明するためのフローチャートである。
距離情報を説明するための図である。
3D映像を複数のブロックに分割し、分割したブロック毎に求めた輻輳角を説明するための図である。図13(a)は、実環境において求めた輻輳角βを説明する図である。図13(b)は、3D映像において求めた輻輳角β′を説明する図である。
実環境または3D映像において被写体を立体視したときの視野角を求める方法を説明するための図である。図14(a)は、実環境において被写体を立体視したときの視野角を求める方法を説明するための図である。図14(b)は、3D映像において被写体を立体視したときの視野角を求める方法を説明するための図である。
実施形態3の3D映像処理装置の選択部の具体的な動作を説明するためのフローチャートである。
変形例1の3D映像処理装置の構成を示すブロック図である。
変形例2の3D映像処理装置の構成を示すブロック図である。
変形例3の3D映像処理装置における作用等を説明するための図である。図18(a)は、状態1における視差角のヒストグラムを示す図である。図18(b)は、状態2における視差角のヒストグラムを示す図である。図18(c)は、ユーザが表示部を複数の視点から注視している状態を示す図である。
以下、本実施形態の3D映像処理装置について図面を参照しながら説明する。
(実施形態1)
1.構成
図1は、実施形態1の3D映像処理装置の構成を示すブロック図である。3D映像処理装置1は、インターフェース101、選択部102、メモリ103、記憶部104、調整部105、及び表示部106を有する。
インターフェース101は、ユーザからの入力を受け付ける。
インターフェース101は、ユーザから、表示部106に表示されている3D映像の表示条件に関する情報を受け取ることができる。表示条件に関する情報は、表示部106に3D映像を表示する際の当該3D映像の表示倍率に関する情報である。表示倍率に関する情報は、3D映像を表示デバイスに表示する際の当該3D映像の拡大縮小率に関する情報である。
また、インターフェース101は、表示部106に表示している3D映像の視聴条件を受け取ることもできる。視聴条件に関する情報は、表示部106の画面サイズ、表示部106からユーザまでの距離(視聴距離)、及びユーザの眼間距離に関する情報を含む。なお、表示部106がメガネ式の3D表示部である場合は、視聴条件に関する情報として、メガネのサイズを含んでもよい。
インターフェース101は、例えば押圧操作を受け付けることが可能なスイッチであっても構わないし、タッチ操作を受け付けることが可能なタッチパネルであっても構わない。つまり、ユーザからの操作を受けつけることが可能なデバイスであればどのようなものであっても構わない。
選択部102は、インターフェース101、表示部106及び記憶部104から得られる情報に基づいて、記憶部104に記録されている画像データ群の中から、表示部106に表示させる3D映像を構成する2つの画像データを選択する。選択部102は、選択した2つの画像データを指定する信号を記憶部104に出力する。選択部102における具体的な出力方法については後述する。選択部102は、マイコン等で構成できる。
メモリ103は、選択部102で使用するプログラムや、表示倍率等の情報を一時的に保存する。なお、メモリ103は、予め設定された表示倍率を保存し、選択部102からの要求に応じて出力してもよい。
記憶部104は、画像データや、撮影条件に関する情報を保存する。記憶部104は、ハードディスク、CD、DVD、SDカードなどの記憶媒体により構成できる。記憶部104は、選択部102から2つの画像データを指定する信号が入力されると、当該信号で指定された画像データを調整部105に出力する。
記憶部104は、具体的に画像データとして3次元画像データ110を記憶する。また、記憶部104は、撮影条件に関する情報として、ステレオベース情報(以下「SB情報」と称す)111、距離情報112及び画角情報113を記憶する。
3次元画像データ110は、同一のシーンを異なる条件で撮影した複数の画像データから構成される。例えば、3次元画像データ110は、図2に示すように、カメラCaをaの位置(基準位置)、bの位置、cの位置、dの位置、eの位置…というように、水平方向において異なる位置で撮影した複数の画像データから構成される。これらの画像データは、複数のカメラを上記各位置に配置して撮影してもよいし、1台のカメラを水平方向に移動させて上記各位置で撮影してもよい。ユーザは、3次元画像データ110を構成する複数の画像データの中から2つの画像データを選択し、この選択した2つの画像データを表示部106で再生することで3D映像を視聴することができる。なお、3次元画像データ110を構成する複数の画像データの中から選択する2つの画像データの組合せが異なれば、基線長(ステレオベース、以下適宜「SB」と称す)も異なる。SBとは、2つの画像を異なる位置で撮影した場合の一方の画像撮影時の焦点の位置と、他方の画像撮影時の焦点の位置との間の距離である。例えば、1つ目の画像を撮影した後でカメラを移動させて2つ目の画像を撮影した場合に、1つ目の画像を撮影したときの焦点の位置と2つ目の画像を撮影したときの焦点の位置との間の距離である。なお、SBは、2つの画像を撮影したときの焦点間の距離でなくてもよい。例えば、SBは、スライダで移動させた距離でもよいし、コンピュータビジョン技術によって画像から算出された距離でもよい。
3次元画像データ110は、同一の被写体が別々の視点から撮影されていれば、撮影時刻、画角、記録画素数などの撮影に関する設定が異なっていても構わない。これらの情報があれば、後で補正を行うことにより表示部106に表示させるための画像データを生成できるからである。3次元画像データ110には、SBの基準とする1つの基準画像(データ)を設定してもよい。設定しない場合、適当な画像データ、例えば最初に記録されている画像データを基準画像データとしてもよい。
SB情報111は、3次元画像データ110を構成する複数の画像データのSBに関連する情報である。本実施形態の場合、SB情報111は基準位置から画像を撮影した位置までの距離を示す情報である。基準位置は、基準画像を撮影した位置である。
図2は、SB情報111を説明するための図である。
基準位置を図2に示すaの位置とすると、aの位置で撮影した画像のSB情報111は、0cmとなる。bの位置で撮影した画像のSB情報111は1cmとなる。cの位置で撮影した画像のSB情報111は、3cmとなる。例えば、aの位置で撮影した画像と、bの位置で撮影した画像のSBは、1cm−0cm=1cmとなる。また、bの位置で撮影した画像と、cの位置で撮影した画像のSBは3cm−1cm=2cmとなる。
距離情報112は、カメラから、撮影された画像に含まれる被写体までの距離に関する情報である。被写体までの距離として、同一シーンを撮影した一群の画像のうちの基準画像を撮影したときのカメラ位置からの距離を、基準画像及びそれ以外の画像においても設定してもよい。なお、距離情報112における被写体までの距離は、基準画像を撮影したときのカメラ位置からの距離でなくてもよい。例えば、カメラの横に測距センサーを置き、その測距センサーで計測された被写体までの距離でもよいし、ステレオマッチングなどのマッチング技術によって得られた被写体までの距離でもよい。記憶部104は、被写体までの距離に関する情報として、最も近い位置に存在する被写体までの距離(最近距離)と最も遠い位置に存在する被写体までの距離(最遠距離)を、例えば「最近距離〜最遠距離」というように、範囲で記憶している(図3では、例えば、2m〜10m)。なお、距離情報112として、最近距離と最遠距離以外の距離を記憶させてもよい。また、距離情報112として、一つの被写体における最も近い位置に存在する部分までの距離(最近距離)と最も遠い位置に存在する部分までの距離(最遠距離)を記憶させてもよい。つまり、被写体の厚みを記憶させてもよい。例えば、被写体が人の場合、鼻までの距離と後頭部までの距離としてもよい。なお、被写体として意味のないもの、例えばブルーバック等については、距離情報を持たなくてもよい。
画角情報113は、3次元画像データ110の各画像データを撮影したカメラの画角に関する情報である。記憶させる画角は35mmカメラ換算を行った値であっても良いし、35mmカメラ換算を行っていない値でも良い。画角情報113にはセンササイズ情報も含まれる。
3次元画像データ110、SB情報111、距離情報112は、データベースに登録しておき、当該データベースから検索するようにしても良い。また、3次元画像データ110は、MPEGのような動画フォーマットで保存されていても良い。さらに、3次元画像データ110は、MPF(マルチピクチャフォーマット)のような画像フォーマットで保存されていても良い。MPFならば、撮影に関する様々な情報、例えば、基準画像に対する水平ずれ量を保存できる。そのため、これらの撮影に関する様々な情報を、調整部105での種々の調整に利用することができる。
図3は、記憶部104の具体的構成を説明するための図である。
3次元画像データ110は、複数の画像ファイル(画像データ)を含む画像ファイル群(画像データ群)である。本実施形態では、3次元画像データ110は、10個のJPEG形式の画像ファイルを含んでいる。各画像ファイルには、それぞれファイル名が与えられている。また、この画像ファイル群を構成する10個の画像ファイルは同一のシーンにおいて撮影されたものである。10個の画像ファイルは、SB情報111が異なる。選択部102は、2つの画像ファイルを選択する際、画像ファイルの組合せを変更することにより、SBが異なる3D映像を選択する。画像テーブル115は、3次元画像データ110に関する情報であるSB情報111、距離情報112、画角情報113、画像番号114を保存するデータベーステーブルである。なお、画像テーブル115には、3次元画像データ110との対応づけを行うための画像番号114が保存されている。
図1に戻り、調整部105は、記憶部104が出力する2つの画像データに対して、種々の画像処理を施す。調整部105は、例えば、2つの画像データに対して表示倍率に応じた拡大・縮小処理を施す。また、調整部105は、2つの画像データに対して、台形補正、パララックス調整などのアライメント調整、トリミングなどの画像処理を行う。調整部105は、画像処理を施した2つの画像データを表示部106に出力する。
調整部105は、表示条件に関する情報として回転に関する情報を取得した場合、当該回転に関する情報に応じて2つの画像データにトリミング処理を施して出力してもよい。
記憶部104に、撮影に用いたカメラのヨー角、ロー角、ピッチ角や水平ずれ量などの撮影情報を記憶させておき、調整部105は、それらの情報を利用して高精度な調整を行っても良い。
また、調整部105は、ユーザにより、インターフェース101を介して拡大・縮小するときの座標位置が指定された場合、その位置が当該画像の中心もしくは好適な位置になるように画像データに対して調整を施す。ユーザにより、座標位置が指定されていない場合やインターフェース101を介して座標位置を入力できない構成の場合、予め記憶部104に記憶させておき、調整部105は、メモリ103に予め保存されている値、もしくは撮影時に保存された値を用いて調整してもよい。
表示部106は、調整部105から出力された3次元画像データ110に基づいて、3D映像を表示する。表示部106は、3Dメガネを用いて視聴することにより3D映像を認識可能な3Dメガネ方式や、裸眼で3D映像を認識可能な裸眼式など、どのような表示方式のものでも構わない。例えば、表示部106は、3次元画像データ110の左目用画像データと右目用画像データを交互に表示するフレームシーケンシャル方式を採用し、3Dメガネを介して視聴されるものでもよい。この3Dメガネは、例えば、表示部106における表示に同期して左目用及び右目用のシャッターが開閉するアクティブシャッター方式のものでもよい。さらに、表示部106は、2視点のパララックスバリア方式の裸眼式のものでも構わない。
表示部106は、HDMIを介して、表示条件を含む表示に関する情報を選択部102に受け渡すことができる。表示に関する情報とは、例えば、表示部106の画面サイズW0や表示解像度に関する情報である。表示に関する情報を表示部106が選択部102に受け渡せない場合、インターフェース101を介して、ユーザが当該表示に関する情報を入力するようにしても良い。また、撮影時に設定され、記憶部104に保存されている情報を選択部102が取得するようにしても良い。あるいは、決められた固定値を用いるようにしても良い。例えば表示部106が3D表示機能を有する小型のモバイル機器の場合は、表示部106の表示に関する情報が変更されることはない。そのため、メモリ103に表示に関する情報を保存しておき、この値を用いるようにしてもよい。
2.動作
選択部102の動作に関して説明する。
2−1.選択部の動作
図4は、選択部102の具体的な動作の一例を説明するためのフローチャートである。
まず、選択部102は、表示部106に表示する3D映像の表示倍率がインターフェース101から入力(変更)されたか否かを判定する(S101)。表示倍率の入力がない場合、そのまま待機する。一方、表示倍率がインターフェース101から入力された場合、ステップS102に移行する。
ここで、インターフェース101から表示倍率を入力する例について図5を参照して説明する。図5(a)は、インターフェース101を用いて表示倍率が入力される前の状態を示す図である。図5(b)は、表示倍率が入力された後の状態を示す図である。例えば、図5(a)に示す状態で表示部106の画面がユーザによりタッチされると、図5(b)に示すようにタッチされた部分が拡大して表示される。図5(a)、(b)では、インターフェース101及び表示部106が一体で構成されている場合を示す。この場合、インターフェース101は、ユーザからのタッチ操作を受け付けるタッチパネルで構成される。また、表示に関する情報は、メモリ103に記憶されているものとする。
図5(a)に示すようにユーザが表示部106をタッチすると、インターフェース101は、当該タッチ動作に対応づけられた信号を選択部102に出力する。選択部102は、インターフェース101から信号が入力されると、当該信号に対応する表示倍率をメモリ103から得る。ここで、表示倍率を得る(変更する)ためのタッチ動作は例えば1点クリックとしてもよい。その場合、1点クリックが拡大と縮小のどちらを指示するものかを示す情報や、指示時における表示倍率に関する情報は、予め設定しておけばよい。なお、これらの情報は、インターフェース101等を介してユーザが指定できるようにしてもよい。図5では、インターフェース101がタッチパネルである場合を説明したが、インターフェース101は、マウス、ゲームコントローラ、リモコンなど、座標点と表示倍率を入力できるインターフェースであればどのようなものでもよい。
次に、選択部102は、表示条件及び視聴条件を取得する。具体的に選択部102は、表示条件に関する情報として、表示部106の画面サイズW0を取得し、視聴条件に関する情報として、視聴距離L、眼間距離Sを取得する(S102)。取得方法としては以下のように種々の方法がある。例えば、選択部102は、上記の情報をインターフェース101及び表示部106から取得してもよいし、メモリ103から取得してもよい。また、選択部102は、表示部106の画面の高さの3倍の値を視聴距離Lとしても良い。なお、メモリ103に視聴距離Lを記憶させておき、選択部102は、メモリ103に記憶されている視聴距離を取得しても良い。また、視聴距離Lは、インターフェース101を介してユーザによって入力されるように構成してもよい。また、選択部102は、人間の平均的な眼間距離である6.5cmを眼間距離Sとして用いてもよい。また、3Dメガネを、眼間距離に関連する情報を取得可能なように構成しておき、選択部102は、3Dメガネから眼間距離に関連する情報を得て眼間距離を推測してもよい。
さらに、選択部102は、表示部106に現在表示している2つの画像を撮影したときの撮影条件を取得する(S103)。具体的に選択部102は、撮影条件として、2つの画像を撮影したカメラの焦点距離f、ステレオベースSB、カメラから被写体までの距離R、及びカメラにおける撮像素子のセンササイズpwを取得する。なお、撮影条件を、記憶部104やメモリ103に記憶させておき、選択部102は、記憶部104やメモリ103から撮影条件に関する情報を取得してもよい。
そして、選択部102は、ステップS101、S102、S103で取得した各種の情報に基づいて、現在、表示部106に表示している3D映像についての最大視差角及び最小視差角を求める(S104)。視差角の具体的な算出方法については後述する。
次に、選択部102は、算出した視差角が所定の安全条件を満たすか否かを判断する(S105)。一般的に飛出し側において1°、引込み側において−1°以内の視差角であれば、立体として違和感なく認識することができることが知られている。そのため、本実施形態では、選択部102は、最大視差角と最小視差角が−1°から1°の範囲に入っているかどうかを判断する。
図6は、選択部102において安全条件を満たしているか否かを判断する際に用いる視差角のヒストグラムを示す図である。図6(a)はステップS104で求めた最大視差角及び最小視差角が−1°から1°の範囲に入っている場合を示す図である。図6(b)はステップS104で求めた最大視差角及び最小視差角が−1°から1°の範囲に入っていない場合を示す図である。
図6(a)に示す場合、最大視差角と最小視差角は−1°から1°の範囲に入っている。そのため、選択部102は、現在表示している2つの画像は安全条件を満たしていると判断し、そのまま動作を終了する。
一方、図6(b)に示す場合、最大視差角と最小視差角は−1°から1°の範囲に入っていない。そのため、選択部102は、現在表示している2つの画像は安全条件を満たしていないと判断する。なお、選択部102は最大視差角と最小視差角だけでなく、視差の分布を示すヒストグラムの形状に基づいて安全条件を満たすか否かを判断してもよい。その場合、視差角は、ブロック単位、画素単位、あるいはサブ画素単位で算出すればよい。また、シーン内の被写体を認識し、その認識結果に基づいて判断結果を変えてもよい。例えば、顔検出により人間を検出することで判断結果を変えてもよい。
なお、安全条件は、調整部105においてパララックス調整などのアライメント調整を行うことにより、飛出し側の視差角が1°、引込み側の視差角を−1°以内に納めることができることとなる視差角条件であっても構わない。
現在表示している2つの画像が安全条件を満たさないと判断した場合、選択部102は、記憶部104に記録された画像データから新たに2つの画像を選択し(S106)、選択後の画像に基づいてステップS103、S104及びS105を実行する。なお、選択部102における2つの画像の選択方法については後述する。
現在表示している2つの画像が安全条件を満たしていると判断した場合、選択部102は上記選択した2つの画像を、調整部105を介して表示部106に出力する(S107)
2−2.選択部102における視差角の算出
選択部102における視差角の算出動作(ステップS104で行われる動作)について図7を参照しながら説明する。本実施形態においては、一例として、光軸が平行である2台のカメラ(平行式2眼カメラ)における視差角の計算方法を示す。
図7は、2台のカメラの撮像素子上での視差Q′xの算出を説明するための図である。図7において、Rは被写体までの距離、fはカメラの焦点距離、SBはカメラ間距離、pwは撮像素子のセンササイズである。2台のカメラの光軸が平行な場合、撮像素子上での視差Q′xは、被写体までの距離R、カメラの焦点距離f、カメラ間距離SBに基づいて、次式(数1)により求めることができる。
(数1) Q′x=f*SB/R
図8は、ディスプレイ面上での視差Qxの算出を説明するための図である。図8において、Lは視聴距離、Sは眼間距離、pwは撮像素子のセンササイズ、W0は表示部106の画面サイズ、γは視差角、αはディスプレイ面上の被写体を注視したときの輻輳角(基準角)、βは3D映像において被写体を立体視したときの輻輳角である。図7で求めた視差は撮像素子上での視差Q′xである。そのため、Q′xを表示部106のディスプレイ面上における視差Qxに変換する必要がある。ここで、3D映像を表示するディスプレイ面上での視差は、撮像素子のセンササイズpwに対する表示部106の画面サイズW0の比に、ユーザの指定した画像の拡大率Eを乗算した視差になる。この関係より、ディスプレイ面上の視差Qxは、次式(数2)で表現される。
(数2) Qx=W0/pw*f*SB/R*E
視差角γは、ディスプレイ面上の視差Qxと視聴距離L、眼間距離Sによって求めることができる。
まず、ユーザがディスプレイ面上のある被写体を注視したときの輻輳角(基準角)αを次式(数3)により求める。
(数3) α=arctan(S/L)
次に、ユーザが3D映像において被写体を立体視したときの輻輳角βを次式(数4)により求める。
(数4) β=arctan((S+Qx)/L)
そして、視差角γを次式(数5)により求める。視差角γは、輻輳角(基準角)αに対する輻輳角βの差である。
(数5) γ=α―β
なお視差角γの符号に関しては、3D映像において飛出すときの視差角と引込むときの視差角との区別が付けば、どちらが+でも−でも構わない。図8では飛出し側の視差角を正、引込み側の視差角を負としたが、逆であっても構わない。
選択部102は、上記のように(数1)から(数5)を用いて2つの画像における視差角γを算出する。選択部102は、算出した視差角の中から最大視差角と最小視差角を求める。
2−3.選択部102における2つの画像の選択動作
選択部102における2つの画像の選択動作(ステップS106で行われる動作)について図面を参照しながら説明する。
図9は、SB情報111、距離情報112、画角情報113及び画像番号(画像名)114を記録したテーブル、及び複数の画像データの中から所定の画像データが選択されたときの視差角のヒストグラムを示す図である。図9(a)は視差角が−1°から1°の範囲に入っていない場合のヒストグラムを示す図である。図9(b)は視差角が−1°から1°の範囲に入っていない場合のヒストグラムの別の例を示す図である。図9(c)は視差角が−1°から1°の範囲に入っている場合のヒストグラムを示す図である。図9(d)は画像テーブルの構成を示す。ここで、画像番号114は画像を識別するための情報である。
現在、001.jpgと004.jpgが選択部102により選択され、ステップS104において001.jpgと004.jpgとの間の視差角が算出されたとする。図9(a)に、このとき算出された視差角のヒストグラムを示す。図9(a)のヒストグラムでは、最大視差角及び最小視差角が−1°から1°の範囲に入っていない。そのため、選択部102は、001.jpgと004.jpgの組み合わせでは、視差角が安全条件を満たさないと判断し、ステップS105において新たな2つの画像データを選択することを決定する。
2つの画像データを選択するため、選択部102は、まず、001.jpg及び004.jpgのSB情報111を画像テーブル115から取得する。001.jpgのSB情報111が示す値は0cmであり、004.jpgのSB情報111が示す値は3cmである。選択部102は、001.jpgのSB情報111が示す値と004.jpgのSB情報111が示す値の差分を計算する。本例においては、差分は3cmとなる。選択部102は、この差分の3cmを001.jpgと004.jpgにおけるSBとして取得する。
次に、選択部102は、新たな2つの画像データとして、上記のようにして取得した001.jpgと004.jpgにおけるSB(3cm)よりもSBが小さくなる画像データの組み合わせを選択する。例えば、任意の2つの画像データを仮に選択して、これらの画像におけるSBを上述のようにSB情報111に基づいて算出し、この算出したSBが3cm以下であれば、この仮に選択した画像データを、視差角のヒストグラムを算出する対象の画像データとして選択する。これに対し、SBが3cm以下でなければ、他の2つの画像データを仮に選択して、上述の動作を繰り返す。図9の例では、例えば、選択部102は、002.jpgと004.jpgを新たな2つとして選択する。この場合、002.jpgのSB情報111が示す値は1cmであり、004.jpgのSB情報111が示す値は3cmであるので、002.jpgと004.jpgのSBは2cmとなる。選択部102は、視差角を算出する。この場合、図9(b)に示すように、最大視差角及び最小視差角が−1°から1°の範囲に入っていない。そのため、再度、任意の2つの画像データを仮に選択して、上述の動作を繰り返す。例えば、選択部102は、001.jpgと002.jpgを新たな2つの画像データとして選択する。この場合、001.jpgのSB情報111が示す値は0cmであり、002.jpgのSB情報111が示す値は1cmであるので、002.jpgと004.jpgのSBは1cmとなる。そこで、選択部102は、視差角を算出する。この場合、図9(c)に示すように、最大視差角及び最小視差角が−1°から1°の範囲に入っている。そこで、選択部102は、この2つの画像データを、表示部106に表示する画像データとして選択する。なお、2つの画像データを仮に選択する順序は上述のような順序に限られない。
また、選択部102は、全ての画像についてSBを演算し、現在選択している2つの画像データにおけるSBよりも小さなSBとなる2つの組み合わせを全て求めた上で、視差角を算出してもよい。この場合、選択部102は、現在選択している2つの画像データにおけるSBよりも小さなSBとなる2つの画像データの組み合わせが複数存在する場合、そのうち最も大きなSBから順に視差角を算出して安全条件を満足しているか判定すればよい。この場合、立体感をできるだけ保持したまま安全条件を満たす2つの画像データを選択することができる。
3.まとめ
本実施形態における3D映像出力装置は、同一シーンを異なる位置で撮影した複数の画像の画像データを記憶する記憶部104と、記憶部104に記憶された複数の画像データから2つの画像データを立体視用の画像データとして選択する選択部102と、記憶部104に記憶される画像データに関する立体映像を表示する際の表示条件と映像を視聴する際の視聴条件との少なく一方を取得するインターフェース101と、を備える。選択部102は、インターフェース101が取得した条件のうち少なくとも一つの条件が現在設定されている条件と異なる場合、2つの画像データを複数の画像データの中から選択し直して、出力する。
本実施形態における3D映像出力方法は、同一シーンを異なる位置で撮影した複数の画像の画像データであって、記憶部104に記憶された画像データから2つの画像データを選択する立体映像出力方法である。この3D映像出力方法は、記憶部104に記憶される画像データに関する画像を表示する際の表示条件と立体映像を視聴する際の視聴条件との少なくとも一方を取得し、取得した条件のうち少なくとも一つの条件が、現在設定されている条件と異なる場合、2つの画像データを複数の画像データの中から選択し直して、出力する。
本実施形態によれば、3D映像の表示条件や視聴条件が変更された場合、2つの画像データが複数の画像データの中から選択され直す。つまり、同一シーンを撮影した複数の画像の中から変更後の表示条件や視聴条件に応じた適切な画像データを用いて新たな3D映像を構成する。そのため、3D映像の表示条件等が変更された場合でも、3D映像を視聴するユーザに対して適切な立体感を与えることが可能となる。
なお、特許文献1の技術では、新たな画像データを生成するので、画像処理に時間がかかる。また、高性能な装置が必要となる。しかし、本実施形態の3D映像出力装置によれば、新たな画像データを生成しないので、新たな画像データの生成処理が不要となるとともに、高性能な装置も必要ない。
図4のフローチャートでは、ステップS101において表示倍率が変更されたか否かを判定し、変更されたと判定したときに、ステップS102以降の処理が実行されるが、これに限らない。例えば、ステップS101において、表示倍率に代えて、視聴条件や表示条件が変更されたか否かを判定し、これらの条件のうちの少なくとも一つが変更された場合に、ステップS102以降の処理を実行するようにしてもよい。実施形態2、実施形態3においても同様である。
また、本実施形態における3D映像出力装置では、インターフェース101が取得する表示条件は、画像データに係る3D映像を表示する際の表示倍率に関する情報を少なくとも含む。選択部102は、インターフェース101が取得した表示条件に含まれる表示倍率に関する情報に基づいて、現在出力中の画像データにおける表示倍率とは異なる倍率を新たに取得したか否かを判断する。選択部102は、判断結果に基づいて、新たな2つの画像データを、記憶部104に記憶された複数の画像データから選択する。
また、選択部102は、インターフェース101が取得した表示条件に含まれる表示倍率が、現在出力中の画像データにおける表示倍率よりも大きな倍率であるときは、現在出力中の2つの画像データにおける視点間距離よりも小さい視点間距離となる2つの画像データを、記憶部104に記憶されている複数の画像データから選択する。
また、選択部102は、インターフェース101が取得した表示条件に含まれる表示倍率が、現在出力中の画像データにおける表示倍率よりも小さな倍率であるときは、現在出力中の2つの画像データにおける視点間距離よりも大きな視点間距離となる2つの画像データを、記憶部104に記憶されている複数の画像データから選択する。
また、インターフェース101は、表示条件及び視聴条件に加え、現在選択している2つの画像データが撮影されたときの撮影条件をさらに取得する。選択部102は、表示条件、撮影条件及び視聴条件に基づいて、現在選択している2つの画像データが立体視用の画像データとして視聴された場合に所定の安全条件が満たされるか否かを判定する。選択部102は、所定の安全条件が満たされない場合、現在選択している2つの画像データにおける視点間距離よりも小さい視点間距離となる2つの画像データを、記憶部104に記憶されている複数の画像データから再度選択する。
(実施形態2)
実施形態1では、2つの画像データの選択の判断を、選択された3D映像が、視差角に基づく安全条件を満たしているか否かにより行った。これに対し、本実施形態では、選択された3D映像が、空間再現条件を満たしているか否かにより、2つの画像データの選択の判断を行う。空間再現条件とは、実環境において被写体を立体視したときの形状と、3D映像において被写体を立体視したときの形状との相似性に関する条件である。
具体的に、本実施形態では、空間再現条件が満たされているか否かの判断を、実環境において被写体を立体視した際の輻輳角と、3D映像において被写体を立体視した際の輻輳角との比(以下適宜「空間再現率」という)が所定の条件を満たしているか否かに基づいて行う。輻輳角とは、ユーザの左目と被写体とを結んだ線と、ユーザの右目と被写体とを結んだ線とがなす角である。なお、実環境において被写体を立体視した際の輻輳角と、3D映像において被写体を立体視した際の輻輳角との比(空間再現率)は、実環境における被写体までの距離と、3D映像における被写体までの距離(飛出し・引込みを考慮した距離)の比に等しい。したがって、空間再現率は、「飛出し・引込み距離再現率」でもある。また、空間再現率は、実環境において被写体を立体視したときの立体的形状に対する、3D映像において被写体を立体視したときの立体的形状の歪の度合いを示す値と言うことができる。この場合、空間再現率が大きいほど歪が小さいことを示す。以下、本実施形態の3D映像処理装置について、詳しく説明する。
1.構成
3D映像処理装置の構成は、図1に示すものと同様である。そのため、相違点を中心に説明する。
図10は、実環境または3D映像において被写体を立体視したときの輻輳角を求める方法を説明するための図である。図10(a)は、実環境において被写体を立体視したときの輻輳角を求める方法を説明するための図である。図10(b)は、3D映像において被写体を立体視したときの輻輳角を求める方法を説明するための図である。図10(a)において、Rは被写体までの距離、Sは眼間距離、β′は実環境において被写体を立体視したときの輻輳角である。図10(b)において、Lは視聴距離、Sは眼間距離、βは3D映像において被写体を立体視したときの輻輳角である。図10(b)では、被写体が飛び出し側にある場合を示している。
3D映像においては、表示条件や視聴条件を調整することにより、撮影時の被写体の立体感(実環境における被写体の立体感)をそのままあらわすことが可能である。例えば、ディスプレイ面上での視差を調整することにより、実環境において被写体を立体視した(観察(撮影)した)際の輻輳角β′と、3D映像において被写体を視聴した際の輻輳角βとを一致させることができる。輻輳角β′と輻輳角βを一致させることは、実環境における被写体までの距離と、3D映像における被写体までの距離を一致させることでもある。つまり、実環境における距離感を3D映像において再現することができる。
選択部102は、次式(数6)により、実環境において被写体を立体視した(観察(撮影)した)際の輻輳角β′を求める。
(数6) β′=arctan(S/R)
また、3D映像において被写体を立体視したときの輻輳角βを前述の(数4)により求める。
そして、3D映像において被写体を立体視したときの輻輳角β、実環境において被写体を立体視した際の輻輳角β′との比である空間再現率β/β′を求める。そして、選択した2つの画像が次式(数7)の条件を満たすか判定する。つまり、空間再現率β/β′が1であるか判定する。(数7)の条件を満たさない場合、空間再現率β/β′が1に最も近い2つを選択する。空間再現率β/β′が1に近いということは、3D映像において被写体を視聴した際の輻輳角βと、実環境において被写体を立体視した際の輻輳角β′とがほぼ同じ値であることを意味する。換言すれば、実際の被写体の形状と、表示部106に表示された被写体の形状とが近似しており、形状の歪が少ないことを意味する。
(数7) β/β′=1
2.動作
選択部102の動作に関して説明する。
2−1.選択部の動作
図11は、本実施形態における選択部102の具体的な動作を説明するためのフローチャートである。具体的な動作は、図4に示したフローチャートによる動作と殆ど同じであるので、違う部分を説明する。
本実施形態において、選択部102は、図4のステップS104及びS105に代えて、ステップS104A及びS105Aを実行する。
具体的に、選択部102は、ステップS101、S102、S103で取得した情報に基づいて、3D映像において被写体を立体視する際の輻輳角β(図10(b)参照)を(数4)により算出するとともに、実環境において被写体を立体視する際の輻輳角β′(図10(a)参照)を算出する(S104A)。
次に、選択部102は、算出した輻輳角β、β′が(数7)の条件を満たすか否かを判断する(S105A)。(数7)の条件が満たされている場合、選択部102は、現在選択中の画像データを、記憶部104から調整部105に出力させるととともに、調整部105で所定の調整を行った後、表示部106に出力させる。一方、(数7)の条件が満たされていない場合、選択部102は、以前に選択した2つの画像データよりも(数7)の左辺の空間再現率β/β′が1に近づいているかを判断し、近づいていれば、現在選択している画像データが、最終的に選択される可能性があることを示す情報を、メモリ103に記憶させる。そして、選択部102は、上記ステップS105Aの条件が満足されるまで、ステップS104A以降を繰り返し実行する。全ての画像データの組が(数7)を満たさない場合、選択部102は、記憶部103に記憶させておいた、現在選択している画像データが、最終的に選択される可能性のある画像データであることを示す情報に基づいて、空間再現率β/β′が最も1に近い2つの画像データを選択する。
2−1−1選択部102における空間再現率の判断
選択部102において、空間再現率β/β′が(数7)の条件を満たすかを判断する際の動作(ステップS105Aの動作)について、図面を参照しながら説明する。
図12は、距離情報112を説明するための図である。距離情報112を求める際、画像は複数のブロックに分割され、距離情報112は、分割された各ブロック単位で求められる。図12の例では、ブロック内に有意な物体が存在しない場合、距離情報112は0と求められる。
選択部102は、ステップS101、S102、S103で取得した、距離情報112等の情報に基づいて、図13(a)、(b)に示すように、分割されたブロック毎に、輻輳角β及び輻輳角β′を算出する。図13(a)は、実環境において求めた輻輳角βを示し、図13(b)は、3D映像において求めた輻輳角β′を示す。そして、選択部102は、前記分割されたブロック毎に、対応する輻輳角βと輻輳角β′を用いて空間再現率β/β′を算出する。選択部102は、全てのブロックの空間再現率β/β′を加算してブロック数で除算することにより、空間再現率β/β′の平均値を算出する。選択部102は、この空間再現率β/β′の平均値に基づいて、ステップS105Aの判断を行なう。なお、有意な距離情報112が1つしかない場合は、平均ではなく、その値を用いればよい。
本実施形態では、輻輳角βと輻輳角β′の関係を比の形式の空間再現率β/β′であらわし、空間再現率β/β′が1に近い所定の値以下となる、2つの画像データを選択するように構成した。しかし、本実施形態の思想は、比の形式に限定されない。例えば、輻輳角βと輻輳角β′の差分を求め、この差分が0に近い所定の値以下となる2つの画像データを選択するように構成してもよい。輻輳角βと輻輳角β′を比較することは、本質的に、実環境における被写体までの距離と、3D映像における被写体までの距離とを比較することである。したがって、実環境における被写体までの距離と、3D映像における被写体までの距離とを比較することができれば、輻輳角βと輻輳角β′をどのような形式で比較してもよい。
以上のようにして、選択部102は、空間再現条件を満たす2つの画像データを選択する。
3.まとめ
本実施形態の3D映像処理装置では、インターフェース101は、表示条件、視聴条件とともに、現在選択している2つの画像データが撮影されたときの撮影条件を取得する。選択部102は、表示条件、撮影条件及び視聴条件に基づいて、現在選択している2つの画像データが立体視用の画像データとして視聴された場合に所定の空間再現条件が満たされるか否かを判定する。選択部102は、所定の空間再現条件が満たされない場合、現在選択している2つの画像データにおける視点間距離よりも小さい視点間距離となる2つの画像データを、記憶部104に記憶されている複数の画像データから再度選択する。
また、選択部102は、表示条件、撮影条件及び視聴条件に基づいて、実環境において被写体を立体視したときの輻輳角と、表示部106のディスプレイ面(表示面)上に表示された立体映像において被写体を立体視したときの輻輳角との比を求め、この求めた比に基づいて、所定の空間再現条件が満たされるか否かを判定する。
なお、本実施形態では、(数7)の空間再現条件を満たすことを条件としたが、この空間再現条件と実施形態1で説明した安全条件(γが−1°から1°の範囲にあること)の両方を満たすことを条件としてもよい。
(実施形態3)
実施形態3では、実施形態2同様、空間再現条件を満たしているか否かにより2つの画像データの選択の判断を行なう。ただし、空間再現条件の内容が異なる。つまり、実施形態2では、空間再現率β/β′が1であるか否かにより判断を行なったが、実施形態3では、空間再現率β/β′に加え、実環境において被写体を立体視したときの視野角ω′と3D映像において被写体を立体視したときの視野角ωとの比ω/ω′を考慮して、空間再現条件を満たしているか否かの判定を行う。なお、以下、本実施形態では、空間再現率β/β′を「第1空間再現率β/β′」といい、上記比ω/ω′を「第2空間再現率ω/ω′」という。
ここで、実施形態2において、(数7)の左辺の空間再現率β/β′が1でなく例えば0.5であった場合、ユーザは、3D映像を立体視した際に、3D映像において表示された被写体までの距離を、実環境において立体視した際の被写体までの距離の半分と感じる。しかし、この場合でも、視聴者にとって、3D表示された被写体の横幅が、実環境における被写体の横幅の半分に知覚されれば、実環境において認識された立体的形状と、3D映像において認識された立体的形状との間で、相似性が維持される。そのため、被写体の空間サイズが半分になったように感じたとしても、3D映像上における被写体と実環境における被写体との間で立体的形状の相似性が確保されれば、視聴時における違和感が低減できる。つまり、ユーザにとっては、3D映像において被写体が再現されていると考えることもできる。例えば、2m先に50cm幅の被写体が存在するのも、1m先に25cm幅の被写体が存在するのも、ユーザにとっては同一の視野角が得られるため、違和感は少ない。
1.構成
3D映像処理装置の構成は、図1に示すものと同様である。そのため、相違点を中心に説明する。
図14は、実環境または3D映像において被写体を立体視したときの視野角ωを求める方法を説明するための図である。図14(a)は、実環境において被写体を立体視したときの視野角ωを求める方法を説明するための図である。図14(b)は、3D映像において被写体を立体視したときの視野角ω′を求める方法を説明するための図である。図14(a)において、Rは被写体までの距離、SBはステレオベース、x′はディスプレイ面上での被写体の横幅を示している。図14(b)において、Lは視聴距離、Sは眼間距離、xは被写体のディスプレイ面上での被写体の横幅を示している。図14(b)では、被写体が飛び出し側にある場合を示している。
本実施形態では、選択部102は、(数8)が満たされるような2つの画像データを選択する。つまり、第1空間再現率β/β′と第2空間再現率ω/ω′とが等しくなる画像データを、選択部102は選択する。
(数8) β/β′=ω/ω′
2.動作
選択部102の動作に関して説明する。
2−1.選択部の動作
図15は、本実施形態における選択部102の具体的な動作を説明するためのフローチャートである。具体的な動作は、図4に示したフローチャートによる動作と殆ど同じであるので、違う部分を説明する。
本実施形態において、選択部102は、図4のステップS104及びS105に代えて、ステップS104B及びS105Bを実行する。
具体的に、選択部102は、ステップS101、S102、S103で取得した情報に基づいて、3D映像において被写体を立体視する際の輻輳角β(図10(b)参照)を(数4)により算出するとともに、実環境において被写体を立体視した際の輻輳角β′(図10(a)参照)を算出する(S104B)。また、選択部102は、ステップS101、S102、S103で取得した情報に基づいて、3D映像において被写体を立体視する際の視野角ω(図14(b)参照)を算出するとともに、実環境において被写体を立体視した際の輻輳角ω′(図14(a)参照)を算出する(S104B)
次に、選択部102は、(数8)の条件が満たされるか否かを判断する(S105B)。つまり、選択部102は、3D映像において被写体を立体視する際の輻輳角βと、実環境において被写体を立体視した際の輻輳角β′との比(第1空間再現率β/β′)が、3D映像において被写体を立体視する際の視野角ωと、実環境において被写体を立体視した際の輻輳角ω′との比(第2空間再現率ω/ω′)と、等しいか否かを判断する(S105B)。(数8)の条件が満たされている場合、選択部102は、現在選択中の画像データを、記憶部104から調整部105に出力させるととともに、調整部105で所定の調整を行った後、表示部106に出力させる。一方、(数8)の条件が満たされていない場合、選択部102は、現時点の(数8)の左辺の第1空間再現率β/β′の値と右辺の第2空間再現率ω/ω′の値が、以前に選択した2つの画像データよりも近いか否かを判断する。例えば、現時点の(数8)の左辺の第1空間再現率β/β′の値と右辺の第2空間再現率ω/ω′の値の差が、以前に選択した2つよりも小さいか否かを判断する。第1空間再現率β/β′の値と第2空間再現率ω/ω′の値の差がより小さくなっている場合、現在選択している画像データが、最終的に選択される可能性があることを示す情報をメモリ103に記憶させる。そして、選択部102は、上記ステップS105Bの条件が満足されるまで、ステップS104B以降を繰り返し実行する。全ての画像データの組が(数8)を満たさない場合、選択部102は、記憶部103に記憶させておいた、現在選択している画像データが、最終的に選択される可能性のある画像データであることを示す情報に基づいて、左辺の第1空間再現率β/β′の値と右辺の第2空間再現率ω/ω′の値が最も近い2つの画像データを選択する。
なお、選択部102は、実施形態2同様に、画像を分割し、分割したブロック全てについて、(数8)の左辺の第1空間再現率β/β′の平均及び右辺の第2空間再現率ω/ω′の平均をそれぞれ算出し、これに基づいて、左辺の第1空間再現率β/β′と右辺の第2空間再現率ω/ω′が等しいか判断してもよい。また、第1空間再現率β/β′と第2空間再現率ω/ω′の比較は、比の形で比較してもよいし、差分の形で比較してもよい。つまり、実環境においてユーザが認識する被写体の空間サイズと、3D映像においてユーザが認識する被写体の空間サイズとを比較することができれば、どのような形でも構わない。
なお、第1空間再現率β/β′の値と第2空間再現率ω/ω′の値が同じとなった場合あるいは近い場合でも、それらの値が極端に小さい場合には、ユーザが被写体のサイズに違和感を覚える可能性がある。そこで、第1空間再現率β/β′の値と第2空間再現率ω/ω′の値が同じとなった場合あるいは近い場合でも、第1空間再現率β/β′の値と第2空間再現率ω/ω′の値が例えば所定値以下であるときは、選択部102は、現在の選択されている2つの画像データにおけるSBよりも大きなSBを有する2つの画像データを新たに選択してもよい。
本実施形態では、(数8)の空間再現条件を満たすことを条件としたが、この空間再現条件と実施形態1で説明した安全条件(γが−1°から1°の範囲にあること)の両方を満たすことを条件としてもよい。
ここで、実際に3D映像を表示させる表示部106の画面サイズの制約等により実施形態2のように空間再現率β/β′=1を満たすのは難しいことがある。このような場合においても、本実施形態によれば、(数8)を満足する画像データを選択することにより、視聴時における違和感を低減できる。
3.まとめ
本実施形態の3D映像処理装置では、特に、選択部102は、表示条件、撮影条件及び視聴条件に基づいて、実環境において被写体を立体視したときの輻輳角と、表示部106のディスプレイ面上に表示された立体映像において被写体を立体視したときの輻輳角との比を求める。さらに、3D映像処理装置は、実環境において被写体を立体視したときの視野角と、表示部106のディスプレイ面上に表示された立体映像において被写体を立体視したときの視野角との比を求め、求めた2つの比に基づいて、所定の空間再現条件が満たされるか否かを判定する。
(変形例)
1.変形例1
上記各実施形態における視聴距離は、実際に計測して得られる情報であっても構わない。この例について変形例1として説明する。
図16は、変形例1における3D映像処理装置の構成を示すブロック図である。図1に示す3D映像処理装置と比較して、本変形例における3D映像処理装置は、新たに位置測距部201を備える。なお、図1と同様のものについてはその説明を省略し、同じ番号を付す。
位置測距部201は、3D映像を表示する表示部106からユーザまでの距離情報を取得することができる。位置測距部201は、例えば、表示部106の側面、上部、下部に取り付けられ、あるいは内蔵されている。表示部106が、3Dメガネにより視聴する方式のものである場合には、3Dメガネに位置測距部201を設けておき、位置測距部201は、3Dメガネと通信して、その3Dメガネと表示部106までの距離を取得する構成であってもよい。
位置測距部201は、例えば、表示部106にカメラが取り付けられている場合、そのカメラから得られる画像情報を基に視聴距離を算出してもよい。
3D映像処理装置が位置測距部201を備える場合、選択部102は3D映像処理装置の位置測距部201から得られる視聴距離を利用する。
2.変形例2
実施形態における3D映像処理装置は、ネットワークを介して通信可能なサーバとクライアントに分割して構成してもよい。この例について変形例2として説明する。
図17は、変形例2の3D映像処理装置の構成を示すブロック図である。
本変形例の3D映像処理装置においては、インターフェース101、選択部102、メモリ103、調整部105及び表示部106の機能は、クライアントに実装される。また、記憶部104の機能は、サーバに実装される。クライアントと、サーバはネットワークNWを介して接続されている。クライアントは、サーバの処理能力や通信速度、形態や設置されている場所に応じて、サーバとの間の通信の方法を変更してもよい。
なお、図示しないが、インターフェース101、選択部102、メモリ103及び表示部106の機能をクライアント側で実装し、記憶部104及び調整部105の機能をサーバ側で実装する構成にしても構わない。
なお、クライアントの処理の一部をサーバに行わせてもよい。例えば、クライアントがモバイル端末の場合、サーバで画像サイズを縮小した後、画像データを受信するようにしてもよい。
3.変形例3
表示部106は3視点以上の多視点から視聴可能な多視点表示型の裸眼3D表示装置で構成されても構わない。この例について変形例3として説明する。
本変形例では、表示部106は、5視点での表示が可能なパララックスバリア方式により構成されており、例えば、ディスプレイ面上に複数のレンチキュラーレンズを有している。
図18は、変形例3の3D映像処理装置における作用等を説明するための図である。図18(a)は、状態1における視差角のヒストグラムを示す図である。図18(b)は、状態2における視差角のヒストグラムを示す図である。図18(c)は、ユーザが表示部を複数の視点から注視している状態を示す図である。具体的には、図18(c)は、表示部106の5視点のレンチキュラーレンズ106aを介して3D映像がユーザに届く様子を説明している。ここで、5視点分の3D映像のうち1視点目の画像を第1視点画像、2視点目の画像を第2視点画像、・・・、5視点目の画像を第5視点画像と称す。また、図18における状態1の位置で表示部106を立体視した際、ユーザは第1視点画像と第3視点画像を視聴すると仮定する。このとき、選択部102は、図18(a)に示す視差角のヒストグラムを算出する。さらに、状態2の位置で表示部106を立体視した際、ユーザは第2視点画像と第4視点画像を視聴すると仮定する。このとき、選択部102は、図18(b)に示す視差角のヒストグラムを算出する。
選択部102は、全ての視点において安全条件を満たすように画像データを選択する。つまり、5視点分の画像データがある場合、いずれの視点においても、安全条件を満たすように、各視点毎に、5視点の画像データの中からいずれか2つの画像データを選択する。
上記のように構成することにより、ユーザは、表示部106に表示される画像をいずれの視点においても、安全条件が満たされた状態で視聴することが可能となる。
また、位置測距部などの測距方法で、ユーザが視聴している視点がわかっている場合は、その視点だけ安全条件を満たすように選択しても良い。ユーザが複数人いた場合、利用されている視点だけ安全条件を満たすように選択しても構わない。
(その他の実施形態)
上記実施形態で説明した3D映像処理装置において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらに、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェア及びハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る立体撮像装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明の便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で入れ替えることができる。
また、上記実施形態では、2つの撮像部により、3D映像(ステレオ画像(左眼用画像及び右眼用画像))を取得(撮像)する場合について説明した。しかし、これに限定されない。例えば、1つの撮像素子により、左眼用画像と右眼用画像とを時分割で交互に取得するようにしてもよいし、また、1つの撮像素子の撮像素子面を2分割して、左眼用画像と右眼用画像とを取得するようにしてもよい。また、1つの撮像素子により、連続して撮影した画像を用いてもよい。また、複数の撮像素子により、連続して撮影した画像を用いてもよい。
また、上記実施形態で説明した選択部102は、立体表示装置、テレビ、情報携帯端末、パーソナルコンピュータ、デジタルスチルカメラ、ムービー、情報記録再生装置、映像記録再生装置等に搭載可能である。この場合、複数の3D映像の画像データは、上記装置に対して、外部から入力させるものであってもよい。
また、本発明の立体映像出力装置を具体化した上記実施形態の3D映像処理装置は表示部106を有しているが、本発明の立体映像出力装置は、表示部を有する装置にも、表示部を有さない装置にも適用可能である。例えば、本発明の立体映像出力装置は、表示部を有する立体表示装置、テレビ、情報携帯端末、パーソナルコンピュータ、デジタルスチルカメラ、ムービー等に適用可能であり、表示部を有さない情報記録再生装置、映像記録再生装置等にも適用可能である。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更及び修正が可能である。
本発明に係る立体映像出力装置及び立体映像出力方法は、画像サイズ等に応じて適した2つの画像を選択することができるので、例えば、立体撮像を行うカメラ(撮像装置)、立体映像を表示する表示装置、立体映像を処理する画像処理装置など、立体映像を扱う幅広い機器に応用できる。
101 インターフェース
102 選択部
103 メモリ
104 記憶部
105 調整部
106 表示部
110 3次元画像データ
111 SB情報
112 距離情報
113 画角情報
114 画像番号
115 画像テーブル
201 位置測距部
本発明は、立体映像(3次元映像(3D映像))の表示部に適切な立体感を有する立体映像を表示させるための技術に関する。
視差を有する第1視点画像(左目用画像と右目用画像とのうちの一方の画像)と第2視点画像(左目用画像と右目用画像とのうちの他方の画像)からなる立体映像を表示可能な表示装置が普及しつつある。
立体映像を構成する第1視点画像と第2視点画像の視差(以下、適宜「立体映像の視差」という)は、当該立体映像を表示する表示装置の表示部の画面サイズ(表示条件)等により変化する。例えば、表示部の画面サイズが大きくなると、視差も比例して大きくなる。視差が大きな立体映像は、人間が立体視する際、立体視が困難になる場合がある。
特許文献1、2は、撮像された立体映像に対して信号処理を施すことにより、表示部の画面サイズに応じて視差を補正した新たな映像を生成することを開示している。
特開2006−115198号公報
特開2010−206774号公報
特許文献1、2のように信号処理により新たな画像を生成することは、誤差やオクルージョンを発生させる。そのため、特許文献1、2のような方法で、新たに生成した立体映像は不自然なものとなり、立体映像を視聴するユーザに適切な立体感を与えられない場合がある。
本発明は、立体映像の表示条件等が変化した場合でも、立体映像を視聴するユーザに適切な立体感を与えることが可能な技術を提供することを目的とする。
本発明における立体映像出力装置は、同一シーンを異なる位置で撮影した複数の画像の画像データを記憶する記憶部と、記憶部に記憶された複数の画像データから2つの画像データを立体視用の画像データとして選択する選択部と、記憶部に記憶される画像データに関する立体映像を表示する際の表示条件と立体映像を視聴する際の視聴条件との少なくとも一方を取得する取得部と、を備える。選択部は、取得部が取得した条件のうち少なくとも一つの条件が現在設定されている条件と異なる場合、2つの画像データを複数の画像データの中から選択し直して、出力する。
本発明における立体映像出力方法は、同一シーンを異なる位置で撮影した複数の画像の画像データであって、記憶部に記憶された画像データから2つの画像データを選択する立体映像出力方法である。この立体映像出力方法は、記憶部に記憶される画像データに関する画像を表示する際の表示条件と立体映像を視聴する際の視聴条件との少なくとも一方を取得し、取得した条件のうち少なくとも一つの条件が、現在設定されている条件と異なる場合、2つの画像データを複数の画像データの中から選択し直して、出力する。
本発明の立体映像出力装置においては、立体映像の表示条件や視聴条件が変更された場合、2つの画像データが複数の画像データの中から選択され直す。つまり、同一シーンを撮影した複数の画像の中から変更後の表示条件や視聴条件に応じた適切な画像データを用いて新たな立体映像を構成する。そのため、立体映像の表示条件等が変更された場合でも、立体映像を視聴するユーザに対して適切な立体感を与えることが可能となる。
実施形態1の3D映像処理装置の構成を示すブロック図である。
SB情報を説明するための図である。
記憶部の具体的構成を説明するための図である。
選択部の具体的動作の一例を説明するためのフローチャートである。
表示倍率が変更される動作を説明するための図である。図5(a)は、表示倍率が変更される前の状態を示す図である。図5(b)は、表示倍率が変更された後の状態を示す図である。
視差角のヒストグラムを示す図である。図6(a)は、視差角が−1°から1°の範囲に入っている場合のヒストグラムを示す図である。図6(b)は、視差角が−1°から1°の範囲に入っていない場合のヒストグラムを示す図である。
2台のカメラの撮像素子上での視差の算出を説明するための図である。
ディスプレイ上での視差の算出を説明するための図である。
画像テーブルの構成及び視差角のヒストグラムを示す図である。図9(a)は視差角が−1°から1°の範囲に入っていない場合のヒストグラムを示す図である。図9(b)は視差角が−1°から1°の範囲に入っていない場合のヒストグラムの別の例を示す図である。図9(c)は視差角が−1°から1°の範囲に入っている場合のヒストグラムを示す図である。図9(d)は画像テーブルの構成を示す図である。
実環境(画像撮影時)または3D映像において被写体を立体視したときの輻輳角を求める方法を説明するための図である。図10(a)は、実環境において被写体を立体視したときの輻輳角を求める方法を説明するための図である。図10(b)は、3D映像において被写体を立体視したときの輻輳角を求める方法を説明するための図である。
実施形態2の3D映像処理装置の選択部の具体的な動作を説明するためのフローチャートである。
距離情報を説明するための図である。
3D映像を複数のブロックに分割し、分割したブロック毎に求めた輻輳角を説明するための図である。図13(a)は、実環境において求めた輻輳角βを説明する図である。図13(b)は、3D映像において求めた輻輳角β′を説明する図である。
実環境または3D映像において被写体を立体視したときの視野角を求める方法を説明するための図である。図14(a)は、実環境において被写体を立体視したときの視野角を求める方法を説明するための図である。図14(b)は、3D映像において被写体を立体視したときの視野角を求める方法を説明するための図である。
実施形態3の3D映像処理装置の選択部の具体的な動作を説明するためのフローチャートである。
変形例1の3D映像処理装置の構成を示すブロック図である。
変形例2の3D映像処理装置の構成を示すブロック図である。
変形例3の3D映像処理装置における作用等を説明するための図である。図18(a)は、状態1における視差角のヒストグラムを示す図である。図18(b)は、状態2における視差角のヒストグラムを示す図である。図18(c)は、ユーザが表示部を複数の視点から注視している状態を示す図である。
以下、本実施形態の3D映像処理装置について図面を参照しながら説明する。
(実施形態1)
1.構成
図1は、実施形態1の3D映像処理装置の構成を示すブロック図である。3D映像処理装置1は、インターフェース101、選択部102、メモリ103、記憶部104、調整部105、及び表示部106を有する。
インターフェース101は、ユーザからの入力を受け付ける。
インターフェース101は、ユーザから、表示部106に表示されている3D映像の表示条件に関する情報を受け取ることができる。表示条件に関する情報は、表示部106に3D映像を表示する際の当該3D映像の表示倍率に関する情報である。表示倍率に関する情報は、3D映像を表示デバイスに表示する際の当該3D映像の拡大縮小率に関する情報である。
また、インターフェース101は、表示部106に表示している3D映像の視聴条件を受け取ることもできる。視聴条件に関する情報は、表示部106の画面サイズ、表示部106からユーザまでの距離(視聴距離)、及びユーザの眼間距離に関する情報を含む。なお、表示部106がメガネ式の3D表示部である場合は、視聴条件に関する情報として、メガネのサイズを含んでもよい。
インターフェース101は、例えば押圧操作を受け付けることが可能なスイッチであっても構わないし、タッチ操作を受け付けることが可能なタッチパネルであっても構わない。つまり、ユーザからの操作を受けつけることが可能なデバイスであればどのようなものであっても構わない。
選択部102は、インターフェース101、表示部106及び記憶部104から得られる情報に基づいて、記憶部104に記録されている画像データ群の中から、表示部106に表示させる3D映像を構成する2つの画像データを選択する。選択部102は、選択した2つの画像データを指定する信号を記憶部104に出力する。選択部102における具体的な出力方法については後述する。選択部102は、マイコン等で構成できる。
メモリ103は、選択部102で使用するプログラムや、表示倍率等の情報を一時的に保存する。なお、メモリ103は、予め設定された表示倍率を保存し、選択部102からの要求に応じて出力してもよい。
記憶部104は、画像データや、撮影条件に関する情報を保存する。記憶部104は、ハードディスク、CD、DVD、SDカードなどの記憶媒体により構成できる。記憶部104は、選択部102から2つの画像データを指定する信号が入力されると、当該信号で指定された画像データを調整部105に出力する。
記憶部104は、具体的に画像データとして3次元画像データ110を記憶する。また、記憶部104は、撮影条件に関する情報として、ステレオベース情報(以下「SB情報」と称す)111、距離情報112及び画角情報113を記憶する。
3次元画像データ110は、同一のシーンを異なる条件で撮影した複数の画像データから構成される。例えば、3次元画像データ110は、図2に示すように、カメラCaをaの位置(基準位置)、bの位置、cの位置、dの位置、eの位置…というように、水平方向において異なる位置で撮影した複数の画像データから構成される。これらの画像データは、複数のカメラを上記各位置に配置して撮影してもよいし、1台のカメラを水平方向に移動させて上記各位置で撮影してもよい。ユーザは、3次元画像データ110を構成する複数の画像データの中から2つの画像データを選択し、この選択した2つの画像データを表示部106で再生することで3D映像を視聴することができる。なお、3次元画像データ110を構成する複数の画像データの中から選択する2つの画像データの組合せが異なれば、基線長(ステレオベース、以下適宜「SB」と称す)も異なる。SBとは、2つの画像を異なる位置で撮影した場合の一方の画像撮影時の焦点の位置と、他方の画像撮影時の焦点の位置との間の距離である。例えば、1つ目の画像を撮影した後でカメラを移動させて2つ目の画像を撮影した場合に、1つ目の画像を撮影したときの焦点の位置と2つ目の画像を撮影したときの焦点の位置との間の距離である。なお、SBは、2つの画像を撮影したときの焦点間の距離でなくてもよい。例えば、SBは、スライダで移動させた距離でもよいし、コンピュータビジョン技術によって画像から算出された距離でもよい。
3次元画像データ110は、同一の被写体が別々の視点から撮影されていれば、撮影時刻、画角、記録画素数などの撮影に関する設定が異なっていても構わない。これらの情報があれば、後で補正を行うことにより表示部106に表示させるための画像データを生成できるからである。3次元画像データ110には、SBの基準とする1つの基準画像(データ)を設定してもよい。設定しない場合、適当な画像データ、例えば最初に記録されている画像データを基準画像データとしてもよい。
SB情報111は、3次元画像データ110を構成する複数の画像データのSBに関連する情報である。本実施形態の場合、SB情報111は基準位置から画像を撮影した位置までの距離を示す情報である。基準位置は、基準画像を撮影した位置である。
図2は、SB情報111を説明するための図である。
基準位置を図2に示すaの位置とすると、aの位置で撮影した画像のSB情報111は、0cmとなる。bの位置で撮影した画像のSB情報111は1cmとなる。cの位置で撮影した画像のSB情報111は、3cmとなる。例えば、aの位置で撮影した画像と、bの位置で撮影した画像のSBは、1cm−0cm=1cmとなる。また、bの位置で撮影した画像と、cの位置で撮影した画像のSBは3cm−1cm=2cmとなる。
距離情報112は、カメラから、撮影された画像に含まれる被写体までの距離に関する情報である。被写体までの距離として、同一シーンを撮影した一群の画像のうちの基準画像を撮影したときのカメラ位置からの距離を、基準画像及びそれ以外の画像においても設定してもよい。なお、距離情報112における被写体までの距離は、基準画像を撮影したときのカメラ位置からの距離でなくてもよい。例えば、カメラの横に測距センサーを置き、その測距センサーで計測された被写体までの距離でもよいし、ステレオマッチングなどのマッチング技術によって得られた被写体までの距離でもよい。記憶部104は、被写体までの距離に関する情報として、最も近い位置に存在する被写体までの距離(最近距離)と最も遠い位置に存在する被写体までの距離(最遠距離)を、例えば「最近距離〜最遠距離」というように、範囲で記憶している(図3では、例えば、2m〜10m)。なお、距離情報112として、最近距離と最遠距離以外の距離を記憶させてもよい。また、距離情報112として、一つの被写体における最も近い位置に存在する部分までの距離(最近距離)と最も遠い位置に存在する部分までの距離(最遠距離)を記憶させてもよい。つまり、被写体の厚みを記憶させてもよい。例えば、被写体が人の場合、鼻までの距離と後頭部までの距離としてもよい。なお、被写体として意味のないもの、例えばブルーバック等については、距離情報を持たなくてもよい。
画角情報113は、3次元画像データ110の各画像データを撮影したカメラの画角に関する情報である。記憶させる画角は35mmカメラ換算を行った値であっても良いし、35mmカメラ換算を行っていない値でも良い。画角情報113にはセンササイズ情報も含まれる。
3次元画像データ110、SB情報111、距離情報112は、データベースに登録しておき、当該データベースから検索するようにしても良い。また、3次元画像データ110は、MPEGのような動画フォーマットで保存されていても良い。さらに、3次元画像データ110は、MPF(マルチピクチャフォーマット)のような画像フォーマットで保存されていても良い。MPFならば、撮影に関する様々な情報、例えば、基準画像に対する水平ずれ量を保存できる。そのため、これらの撮影に関する様々な情報を、調整部105での種々の調整に利用することができる。
図3は、記憶部104の具体的構成を説明するための図である。
3次元画像データ110は、複数の画像ファイル(画像データ)を含む画像ファイル群(画像データ群)である。本実施形態では、3次元画像データ110は、10個のJPEG形式の画像ファイルを含んでいる。各画像ファイルには、それぞれファイル名が与えられている。また、この画像ファイル群を構成する10個の画像ファイルは同一のシーンにおいて撮影されたものである。10個の画像ファイルは、SB情報111が異なる。選択部102は、2つの画像ファイルを選択する際、画像ファイルの組合せを変更することにより、SBが異なる3D映像を選択する。画像テーブル115は、3次元画像データ110に関する情報であるSB情報111、距離情報112、画角情報113、画像番号114を保存するデータベーステーブルである。なお、画像テーブル115には、3次元画像データ110との対応づけを行うための画像番号114が保存されている。
図1に戻り、調整部105は、記憶部104が出力する2つの画像データに対して、種々の画像処理を施す。調整部105は、例えば、2つの画像データに対して表示倍率に応じた拡大・縮小処理を施す。また、調整部105は、2つの画像データに対して、台形補正、パララックス調整などのアライメント調整、トリミングなどの画像処理を行う。調整部105は、画像処理を施した2つの画像データを表示部106に出力する。
調整部105は、表示条件に関する情報として回転に関する情報を取得した場合、当該回転に関する情報に応じて2つの画像データにトリミング処理を施して出力してもよい。
記憶部104に、撮影に用いたカメラのヨー角、ロー角、ピッチ角や水平ずれ量などの撮影情報を記憶させておき、調整部105は、それらの情報を利用して高精度な調整を行っても良い。
また、調整部105は、ユーザにより、インターフェース101を介して拡大・縮小するときの座標位置が指定された場合、その位置が当該画像の中心もしくは好適な位置になるように画像データに対して調整を施す。ユーザにより、座標位置が指定されていない場合やインターフェース101を介して座標位置を入力できない構成の場合、予め記憶部104に記憶させておき、調整部105は、メモリ103に予め保存されている値、もしくは撮影時に保存された値を用いて調整してもよい。
表示部106は、調整部105から出力された3次元画像データ110に基づいて、3D映像を表示する。表示部106は、3Dメガネを用いて視聴することにより3D映像を認識可能な3Dメガネ方式や、裸眼で3D映像を認識可能な裸眼式など、どのような表示方式のものでも構わない。例えば、表示部106は、3次元画像データ110の左目用画像データと右目用画像データを交互に表示するフレームシーケンシャル方式を採用し、3Dメガネを介して視聴されるものでもよい。この3Dメガネは、例えば、表示部106における表示に同期して左目用及び右目用のシャッターが開閉するアクティブシャッター方式のものでもよい。さらに、表示部106は、2視点のパララックスバリア方式の裸眼式のものでも構わない。
表示部106は、HDMIを介して、表示条件を含む表示に関する情報を選択部102に受け渡すことができる。表示に関する情報とは、例えば、表示部106の画面サイズW0や表示解像度に関する情報である。表示に関する情報を表示部106が選択部102に受け渡せない場合、インターフェース101を介して、ユーザが当該表示に関する情報を入力するようにしても良い。また、撮影時に設定され、記憶部104に保存されている情報を選択部102が取得するようにしても良い。あるいは、決められた固定値を用いるようにしても良い。例えば表示部106が3D表示機能を有する小型のモバイル機器の場合は、表示部106の表示に関する情報が変更されることはない。そのため、メモリ103に表示に関する情報を保存しておき、この値を用いるようにしてもよい。
2.動作
選択部102の動作に関して説明する。
2−1.選択部の動作
図4は、選択部102の具体的な動作の一例を説明するためのフローチャートである。
まず、選択部102は、表示部106に表示する3D映像の表示倍率がインターフェース101から入力(変更)されたか否かを判定する(S101)。表示倍率の入力がない場合、そのまま待機する。一方、表示倍率がインターフェース101から入力された場合、ステップS102に移行する。
ここで、インターフェース101から表示倍率を入力する例について図5を参照して説明する。図5(a)は、インターフェース101を用いて表示倍率が入力される前の状態を示す図である。図5(b)は、表示倍率が入力された後の状態を示す図である。例えば、図5(a)に示す状態で表示部106の画面がユーザによりタッチされると、図5(b)に示すようにタッチされた部分が拡大して表示される。図5(a)、(b)では、インターフェース101及び表示部106が一体で構成されている場合を示す。この場合、インターフェース101は、ユーザからのタッチ操作を受け付けるタッチパネルで構成される。また、表示に関する情報は、メモリ103に記憶されているものとする。
図5(a)に示すようにユーザが表示部106をタッチすると、インターフェース101は、当該タッチ動作に対応づけられた信号を選択部102に出力する。選択部102は、インターフェース101から信号が入力されると、当該信号に対応する表示倍率をメモリ103から得る。ここで、表示倍率を得る(変更する)ためのタッチ動作は例えば1点クリックとしてもよい。その場合、1点クリックが拡大と縮小のどちらを指示するものかを示す情報や、指示時における表示倍率に関する情報は、予め設定しておけばよい。なお、これらの情報は、インターフェース101等を介してユーザが指定できるようにしてもよい。図5では、インターフェース101がタッチパネルである場合を説明したが、インターフェース101は、マウス、ゲームコントローラ、リモコンなど、座標点と表示倍率を入力できるインターフェースであればどのようなものでもよい。
次に、選択部102は、表示条件及び視聴条件を取得する。具体的に選択部102は、表示条件に関する情報として、表示部106の画面サイズW0を取得し、視聴条件に関する情報として、視聴距離L、眼間距離Sを取得する(S102)。取得方法としては以下のように種々の方法がある。例えば、選択部102は、上記の情報をインターフェース101及び表示部106から取得してもよいし、メモリ103から取得してもよい。また、選択部102は、表示部106の画面の高さの3倍の値を視聴距離Lとしても良い。なお、メモリ103に視聴距離Lを記憶させておき、選択部102は、メモリ103に記憶されている視聴距離を取得しても良い。また、視聴距離Lは、インターフェース101を介してユーザによって入力されるように構成してもよい。また、選択部102は、人間の平均的な眼間距離である6.5cmを眼間距離Sとして用いてもよい。また、3Dメガネを、眼間距離に関連する情報を取得可能なように構成しておき、選択部102は、3Dメガネから眼間距離に関連する情報を得て眼間距離を推測してもよい。
さらに、選択部102は、表示部106に現在表示している2つの画像を撮影したときの撮影条件を取得する(S103)。具体的に選択部102は、撮影条件として、2つの画像を撮影したカメラの焦点距離f、ステレオベースSB、カメラから被写体までの距離R、及びカメラにおける撮像素子のセンササイズpwを取得する。なお、撮影条件を、記憶部104やメモリ103に記憶させておき、選択部102は、記憶部104やメモリ103から撮影条件に関する情報を取得してもよい。
そして、選択部102は、ステップS101、S102、S103で取得した各種の情報に基づいて、現在、表示部106に表示している3D映像についての最大視差角及び最小視差角を求める(S104)。視差角の具体的な算出方法については後述する。
次に、選択部102は、算出した視差角が所定の安全条件を満たすか否かを判断する(S105)。一般的に飛出し側において1°、引込み側において−1°以内の視差角であれば、立体として違和感なく認識することができることが知られている。そのため、本実施形態では、選択部102は、最大視差角と最小視差角が−1°から1°の範囲に入っているかどうかを判断する。
図6は、選択部102において安全条件を満たしているか否かを判断する際に用いる視差角のヒストグラムを示す図である。図6(a)はステップS104で求めた最大視差角及び最小視差角が−1°から1°の範囲に入っている場合を示す図である。図6(b)はステップS104で求めた最大視差角及び最小視差角が−1°から1°の範囲に入っていない場合を示す図である。
図6(a)に示す場合、最大視差角と最小視差角は−1°から1°の範囲に入っている。そのため、選択部102は、現在表示している2つの画像は安全条件を満たしていると判断し、そのまま動作を終了する。
一方、図6(b)に示す場合、最大視差角と最小視差角は−1°から1°の範囲に入っていない。そのため、選択部102は、現在表示している2つの画像は安全条件を満たしていないと判断する。なお、選択部102は最大視差角と最小視差角だけでなく、視差の分布を示すヒストグラムの形状に基づいて安全条件を満たすか否かを判断してもよい。その場合、視差角は、ブロック単位、画素単位、あるいはサブ画素単位で算出すればよい。また、シーン内の被写体を認識し、その認識結果に基づいて判断結果を変えてもよい。例えば、顔検出により人間を検出することで判断結果を変えてもよい。
なお、安全条件は、調整部105においてパララックス調整などのアライメント調整を行うことにより、飛出し側の視差角が1°、引込み側の視差角を−1°以内に納めることができることとなる視差角条件であっても構わない。
現在表示している2つの画像が安全条件を満たさないと判断した場合、選択部102は、記憶部104に記録された画像データから新たに2つの画像を選択し(S106)、選択後の画像に基づいてステップS103、S104及びS105を実行する。なお、選択部102における2つの画像の選択方法については後述する。
現在表示している2つの画像が安全条件を満たしていると判断した場合、選択部102は上記選択した2つの画像を、調整部105を介して表示部106に出力する(S107)
2−2.選択部102における視差角の算出
選択部102における視差角の算出動作(ステップS104で行われる動作)について図7を参照しながら説明する。本実施形態においては、一例として、光軸が平行である2台のカメラ(平行式2眼カメラ)における視差角の計算方法を示す。
図7は、2台のカメラの撮像素子上での視差Q’xの算出を説明するための図である。図7において、Rは被写体までの距離、fはカメラの焦点距離、SBはカメラ間距離、pwは撮像素子のセンササイズである。2台のカメラの光軸が平行な場合、撮像素子上での視差Q′xは、被写体までの距離R、カメラの焦点距離f、カメラ間距離SBに基づいて、次式(数1)により求めることができる。
(数1) Q’x=f*SB/R
図8は、ディスプレイ面上での視差Qxの算出を説明するための図である。図8において、Lは視聴距離、Sは眼間距離、pwは撮像素子のセンササイズ、W0は表示部106の画面サイズ、γは視差角、αはディスプレイ面上の被写体を注視したときの輻輳角(基準角)、βは3D映像において被写体を立体視したときの輻輳角である。図7で求めた視差は撮像素子上での視差Q’xである。そのため、Q’xを表示部106のディスプレイ面上における視差Qxに変換する必要がある。ここで、3D映像を表示するディスプレイ面上での視差は、撮像素子のセンササイズpwに対する表示部106の画面サイズW0の比に、ユーザの指定した画像の拡大率Eを乗算した視差になる。この関係より、ディスプレイ面上の視差Qxは、次式(数2)で表現される。
(数2) Qx=W0/pw*f*SB/R*E
視差角γは、ディスプレイ面上の視差Qxと視聴距離L、眼間距離Sによって求めることができる。
まず、ユーザがディスプレイ面上のある被写体を注視したときの輻輳角(基準角)αを次式(数3)により求める。
(数3) α=arctan(S/L)
次に、ユーザが3D映像において被写体を立体視したときの輻輳角βを次式(数4)により求める。
(数4) β=arctan((S+Qx)/L)
そして、視差角γを次式(数5)により求める。視差角γは、輻輳角(基準角)αに対する輻輳角βの差である。
(数5) γ=α―β
なお視差角γの符号に関しては、3D映像において飛出すときの視差角と引込むときの視差角との区別が付けば、どちらが+でも−でも構わない。図8では飛出し側の視差角を正、引込み側の視差角を負としたが、逆であっても構わない。
選択部102は、上記のように(数1)から(数5)を用いて2つの画像における視差角γを算出する。選択部102は、算出した視差角の中から最大視差角と最小視差角を求める。
2−3.選択部102における2つの画像の選択動作
選択部102における2つの画像の選択動作(ステップS106で行われる動作)について図面を参照しながら説明する。
図9は、SB情報111、距離情報112、画角情報113及び画像番号(画像名)114を記録したテーブル、及び複数の画像データの中から所定の画像データが選択されたときの視差角のヒストグラムを示す図である。図9(a)は視差角が−1°から1°の範囲に入っていない場合のヒストグラムを示す図である。図9(b)は視差角が−1°から1°の範囲に入っていない場合のヒストグラムの別の例を示す図である。図9(c)は視差角が−1°から1°の範囲に入っている場合のヒストグラムを示す図である。図9(d)は画像テーブルの構成を示す。ここで、画像番号114は画像を識別するための情報である。
現在、001.jpgと004.jpgが選択部102により選択され、ステップS104において001.jpgと004.jpgとの間の視差角が算出されたとする。図9(a)に、このとき算出された視差角のヒストグラムを示す。図9(a)のヒストグラムでは、最大視差角及び最小視差角が−1°から1°の範囲に入っていない。そのため、選択部102は、001.jpgと004.jpgの組み合わせでは、視差角が安全条件を満たさないと判断し、ステップS105において新たな2つの画像データを選択することを決定する。
2つの画像データを選択するため、選択部102は、まず、001.jpg及び004.jpgのSB情報111を画像テーブル115から取得する。001.jpgのSB情報111が示す値は0cmであり、004.jpgのSB情報111が示す値は3cmである。選択部102は、001.jpgのSB情報111が示す値と004.jpgのSB情報111が示す値の差分を計算する。本例においては、差分は3cmとなる。選択部102は、この差分の3cmを001.jpgと004.jpgにおけるSBとして取得する。
次に、選択部102は、新たな2つの画像データとして、上記のようにして取得した001.jpgと004.jpgにおけるSB(3cm)よりもSBが小さくなる画像データの組み合わせを選択する。例えば、任意の2つの画像データを仮に選択して、これらの画像におけるSBを上述のようにSB情報111に基づいて算出し、この算出したSBが3cm以下であれば、この仮に選択した画像データを、視差角のヒストグラムを算出する対象の画像データとして選択する。これに対し、SBが3cm以下でなければ、他の2つの画像データを仮に選択して、上述の動作を繰り返す。図9の例では、例えば、選択部102は、002.jpgと004.jpgを新たな2つとして選択する。この場合、002.jpgのSB情報111が示す値は1cmであり、004.jpgのSB情報111が示す値は3cmであるので、002.jpgと004.jpgのSBは2cmとなる。選択部102は、視差角を算出する。この場合、図9(b)に示すように、最大視差角及び最小視差角が−1°から1°の範囲に入っていない。そのため、再度、任意の2つの画像データを仮に選択して、上述の動作を繰り返す。例えば、選択部102は、001.jpgと002.jpgを新たな2つの画像データとして選択する。この場合、001.jpgのSB情報111が示す値は0cmであり、002.jpgのSB情報111が示す値は1cmであるので、002.jpgと004.jpgのSBは1cmとなる。そこで、選択部102は、視差角を算出する。この場合、図9(c)に示すように、最大視差角及び最小視差角が−1°から1°の範囲に入っている。そこで、選択部102は、この2つの画像データを、表示部106に表示する画像データとして選択する。なお、2つの画像データを仮に選択する順序は上述のような順序に限られない。
また、選択部102は、全ての画像についてSBを演算し、現在選択している2つの画像データにおけるSBよりも小さなSBとなる2つの組み合わせを全て求めた上で、視差角を算出してもよい。この場合、選択部102は、現在選択している2つの画像データにおけるSBよりも小さなSBとなる2つの画像データの組み合わせが複数存在する場合、そのうち最も大きなSBから順に視差角を算出して安全条件を満足しているか判定すればよい。この場合、立体感をできるだけ保持したまま安全条件を満たす2つの画像データを選択することができる。
3.まとめ
本実施形態における3D映像出力装置は、同一シーンを異なる位置で撮影した複数の画像の画像データを記憶する記憶部104と、記憶部104に記憶された複数の画像データから2つの画像データを立体視用の画像データとして選択する選択部102と、記憶部104に記憶される画像データに関する立体映像を表示する際の表示条件と映像を視聴する際の視聴条件との少なく一方を取得するインターフェース101と、を備える。選択部102は、インターフェース101が取得した条件のうち少なくとも一つの条件が現在設定されている条件と異なる場合、2つの画像データを複数の画像データの中から選択し直して、出力する。
本実施形態における3D映像出力方法は、同一シーンを異なる位置で撮影した複数の画像の画像データであって、記憶部104に記憶された画像データから2つの画像データを選択する立体映像出力方法である。この3D映像出力方法は、記憶部104に記憶される画像データに関する画像を表示する際の表示条件と立体映像を視聴する際の視聴条件との少なくとも一方を取得し、取得した条件のうち少なくとも一つの条件が、現在設定されている条件と異なる場合、2つの画像データを複数の画像データの中から選択し直して、出力する。
本実施形態によれば、3D映像の表示条件や視聴条件が変更された場合、2つの画像データが複数の画像データの中から選択され直す。つまり、同一シーンを撮影した複数の画像の中から変更後の表示条件や視聴条件に応じた適切な画像データを用いて新たな3D映像を構成する。そのため、3D映像の表示条件等が変更された場合でも、3D映像を視聴するユーザに対して適切な立体感を与えることが可能となる。
なお、特許文献1の技術では、新たな画像データを生成するので、画像処理に時間がかかる。また、高性能な装置が必要となる。しかし、本実施形態の3D映像出力装置によれば、新たな画像データを生成しないので、新たな画像データの生成処理が不要となるとともに、高性能な装置も必要ない。
図4のフローチャートでは、ステップS101において表示倍率が変更されたか否かを判定し、変更されたと判定したときに、ステップS102以降の処理が実行されるが、これに限らない。例えば、ステップS101において、表示倍率に代えて、視聴条件や表示条件が変更されたか否かを判定し、これらの条件のうちの少なくとも一つが変更された場合に、ステップS102以降の処理を実行するようにしてもよい。実施形態2、実施形態3においても同様である。
また、本実施形態における3D映像出力装置では、インターフェース101が取得する表示条件は、画像データに係る3D映像を表示する際の表示倍率に関する情報を少なくとも含む。選択部102は、インターフェース101が取得した表示条件に含まれる表示倍率に関する情報に基づいて、現在出力中の画像データにおける表示倍率とは異なる倍率を新たに取得したか否かを判断する。選択部102は、判断結果に基づいて、新たな2つの画像データを、記憶部104に記憶された複数の画像データから選択する。
また、選択部102は、インターフェース101が取得した表示条件に含まれる表示倍率が、現在出力中の画像データにおける表示倍率よりも大きな倍率であるときは、現在出力中の2つの画像データにおける視点間距離よりも小さい視点間距離となる2つの画像データを、記憶部104に記憶されている複数の画像データから選択する。
また、選択部102は、インターフェース101が取得した表示条件に含まれる表示倍率が、現在出力中の画像データにおける表示倍率よりも小さな倍率であるときは、現在出力中の2つの画像データにおける視点間距離よりも大きな視点間距離となる2つの画像データを、記憶部104に記憶されている複数の画像データから選択する。
また、インターフェース101は、表示条件及び視聴条件に加え、現在選択している2つの画像データが撮影されたときの撮影条件をさらに取得する。選択部102は、表示条件、撮影条件及び視聴条件に基づいて、現在選択している2つの画像データが立体視用の画像データとして視聴された場合に所定の安全条件が満たされるか否かを判定する。選択部102は、所定の安全条件が満たされない場合、現在選択している2つの画像データにおける視点間距離よりも小さい視点間距離となる2つの画像データを、記憶部104に記憶されている複数の画像データから再度選択する。
(実施形態2)
実施形態1では、2つの画像データの選択の判断を、選択された3D映像が、視差角に基づく安全条件を満たしているか否かにより行った。これに対し、本実施形態では、選択された3D映像が、空間再現条件を満たしているか否かにより、2つの画像データの選択の判断を行う。空間再現条件とは、実環境において被写体を立体視したときの形状と、3D映像において被写体を立体視したときの形状との相似性に関する条件である。
具体的に、本実施形態では、空間再現条件が満たされているか否かの判断を、実環境において被写体を立体視した際の輻輳角と、3D映像において被写体を立体視した際の輻輳角との比(以下適宜「空間再現率」という)が所定の条件を満たしているか否かに基づいて行う。輻輳角とは、ユーザの左目と被写体とを結んだ線と、ユーザの右目と被写体とを結んだ線とがなす角である。なお、実環境において被写体を立体視した際の輻輳角と、3D映像において被写体を立体視した際の輻輳角との比(空間再現率)は、実環境における被写体までの距離と、3D映像における被写体までの距離(飛出し・引込みを考慮した距離)の比に等しい。したがって、空間再現率は、「飛出し・引込み距離再現率」でもある。また、空間再現率は、実環境において被写体を立体視したときの立体的形状に対する、3D映像において被写体を立体視したときの立体的形状の歪の度合いを示す値と言うことができる。この場合、空間再現率が大きいほど歪が小さいことを示す。以下、本実施形態の3D映像処理装置について、詳しく説明する。
1.構成
3D映像処理装置の構成は、図1に示すものと同様である。そのため、相違点を中心に説明する。
図10は、実環境または3D映像において被写体を立体視したときの輻輳角を求める方法を説明するための図である。図10(a)は、実環境において被写体を立体視したときの輻輳角を求める方法を説明するための図である。図10(b)は、3D映像において被写体を立体視したときの輻輳角を求める方法を説明するための図である。図10(a)において、Rは被写体までの距離、Sは眼間距離、β′は実環境において被写体を立体視したときの輻輳角である。図10(b)において、Lは視聴距離、Sは眼間距離、βは3D映像において被写体を立体視したときの輻輳角である。図10(b)では、被写体が飛び出し側にある場合を示している。
3D映像においては、表示条件や視聴条件を調整することにより、撮影時の被写体の立体感(実環境における被写体の立体感)をそのままあらわすことが可能である。例えば、ディスプレイ面上での視差を調整することにより、実環境において被写体を立体視した(観察(撮影)した)際の輻輳角β′と、3D映像において被写体を視聴した際の輻輳角βとを一致させることができる。輻輳角β′と輻輳角βを一致させることは、実環境における被写体までの距離と、3D映像における被写体までの距離を一致させることでもある。つまり、実環境における距離感を3D映像において再現することができる。
選択部102は、次式(数6)により、実環境において被写体を立体視した(観察(撮影)した)際の輻輳角β′を求める。
(数6) β′=arctan(S/R)
また、3D映像において被写体を立体視したときの輻輳角βを前述の(数4)により求める。
そして、3D映像において被写体を立体視したときの輻輳角β、実環境において被写体を立体視した際の輻輳角β′との比である空間再現率β/β′を求める。そして、選択した2つの画像が次式(数7)の条件を満たすか判定する。つまり、空間再現率β/β′が1であるか判定する。(数7)の条件を満たさない場合、空間再現率β/β′が1に最も近い2つを選択する。空間再現率β/β′が1に近いということは、3D映像において被写体を視聴した際の輻輳角βと、実環境において被写体を立体視した際の輻輳角β′とがほぼ同じ値であることを意味する。換言すれば、実際の被写体の形状と、表示部106に表示された被写体の形状とが近似しており、形状の歪が少ないことを意味する。
(数7) β/β′=1
2.動作
選択部102の動作に関して説明する。
2−1.選択部の動作
図11は、本実施形態における選択部102の具体的な動作を説明するためのフローチャートである。具体的な動作は、図4に示したフローチャートによる動作と殆ど同じであるので、違う部分を説明する。
本実施形態において、選択部102は、図4のステップS104及びS105に代えて、ステップS104A及びS105Aを実行する。
具体的に、選択部102は、ステップS101、S102、S103で取得した情報に基づいて、3D映像において被写体を立体視する際の輻輳角β(図10(b)参照)を(数4)により算出するとともに、実環境において被写体を立体視する際の輻輳角β′(図10(a)参照)を算出する(S104A)。
次に、選択部102は、算出した輻輳角β、β′が(数7)の条件を満たすか否かを判断する(S105A)。(数7)の条件が満たされている場合、選択部102は、現在選択中の画像データを、記憶部104から調整部105に出力させるととともに、調整部105で所定の調整を行った後、表示部106に出力させる。一方、(数7)の条件が満たされていない場合、選択部102は、以前に選択した2つの画像データよりも(数7)の左辺の空間再現率β/β′が1に近づいているかを判断し、近づいていれば、現在選択している画像データが、最終的に選択される可能性があることを示す情報を、メモリ103に記憶させる。そして、選択部102は、上記ステップS105Aの条件が満足されるまで、ステップS104A以降を繰り返し実行する。全ての画像データの組が(数7)を満たさない場合、選択部102は、記憶部103に記憶させておいた、現在選択している画像データが、最終的に選択される可能性のある画像データであることを示す情報に基づいて、空間再現率β/β′が最も1に近い2つの画像データを選択する。
2−1−1選択部102における空間再現率の判断
選択部102において、空間再現率β/β′が(数7)の条件を満たすかを判断する際の動作(ステップS105Aの動作)について、図面を参照しながら説明する。
図12は、距離情報112を説明するための図である。距離情報112を求める際、画像は複数のブロックに分割され、距離情報112は、分割された各ブロック単位で求められる。図12の例では、ブロック内に有意な物体が存在しない場合、距離情報112は0と求められる。
選択部102は、ステップS101、S102、S103で取得した、距離情報112等の情報に基づいて、図13(a)、(b)に示すように、分割されたブロック毎に、輻輳角β及び輻輳角β′を算出する。図13(a)は、実環境において求めた輻輳角βを示し、図13(b)は、3D映像において求めた輻輳角β′を示す。そして、選択部102は、前記分割されたブロック毎に、対応する輻輳角βと輻輳角β′を用いて空間再現率β/β′を算出する。選択部102は、全てのブロックの空間再現率β/β′を加算してブロック数で除算することにより、空間再現率β/β′の平均値を算出する。選択部102は、この空間再現率β/β′の平均値に基づいて、ステップS105Aの判断を行なう。なお、有意な距離情報112が1つしかない場合は、平均ではなく、その値を用いればよい。
本実施形態では、輻輳角βと輻輳角β′の関係を比の形式の空間再現率β/β′であらわし、空間再現率β/β′が1に近い所定の値以下となる、2つの画像データを選択するように構成した。しかし、本実施形態の思想は、比の形式に限定されない。例えば、輻輳角βと輻輳角β′の差分を求め、この差分が0に近い所定の値以下となる2つの画像データを選択するように構成してもよい。輻輳角βと輻輳角β′を比較することは、本質的に、実環境における被写体までの距離と、3D映像における被写体までの距離とを比較することである。したがって、実環境における被写体までの距離と、3D映像における被写体までの距離とを比較することができれば、輻輳角βと輻輳角β′をどのような形式で比較してもよい。
以上のようにして、選択部102は、空間再現条件を満たす2つの画像データを選択する。
3.まとめ
本実施形態の3D映像処理装置では、インターフェース101は、表示条件、視聴条件とともに、現在選択している2つの画像データが撮影されたときの撮影条件を取得する。選択部102は、表示条件、撮影条件及び視聴条件に基づいて、現在選択している2つの画像データが立体視用の画像データとして視聴された場合に所定の空間再現条件が満たされるか否かを判定する。選択部102は、所定の空間再現条件が満たされない場合、現在選択している2つの画像データにおける視点間距離よりも小さい視点間距離となる2つの画像データを、記憶部104に記憶されている複数の画像データから再度選択する。
また、選択部102は、表示条件、撮影条件及び視聴条件に基づいて、実環境において被写体を立体視したときの輻輳角と、表示部106のディスプレイ面(表示面)上に表示された立体映像において被写体を立体視したときの輻輳角との比を求め、この求めた比に基づいて、所定の空間再現条件が満たされるか否かを判定する。
なお、本実施形態では、(数7)の空間再現条件を満たすことを条件としたが、この空間再現条件と実施形態1で説明した安全条件(γが−1°から1°の範囲にあること)の両方を満たすことを条件としてもよい。
(実施形態3)
実施形態3では、実施形態2同様、空間再現条件を満たしているか否かにより2つの画像データの選択の判断を行なう。ただし、空間再現条件の内容が異なる。つまり、実施形態2では、空間再現率β/β′が1であるか否かにより判断を行なったが、実施形態3では、空間再現率β/β′に加え、実環境において被写体を立体視したときの視野角ω′と3D映像において被写体を立体視したときの視野角ωとの比ω/ω′を考慮して、空間再現条件を満たしているか否かの判定を行う。なお、以下、本実施形態では、空間再現率β/β′を「第1空間再現率β/β′」といい、上記比ω/ω′を「第2空間再現率ω/ω′」という。
ここで、実施形態2において、(数7)の左辺の空間再現率β/β′が1でなく例えば0.5であった場合、ユーザは、3D映像を立体視した際に、3D映像において表示された被写体までの距離を、実環境において立体視した際の被写体までの距離の半分と感じる。しかし、この場合でも、視聴者にとって、3D表示された被写体の横幅が、実環境における被写体の横幅の半分に知覚されれば、実環境において認識された立体的形状と、3D映像において認識された立体的形状との間で、相似性が維持される。そのため、被写体の空間サイズが半分になったように感じたとしても、3D映像上における被写体と実環境における被写体との間で立体的形状の相似性が確保されれば、視聴時における違和感が低減できる。つまり、ユーザにとっては、3D映像において被写体が再現されていると考えることもできる。例えば、2m先に50cm幅の被写体が存在するのも、1m先に25cm幅の被写体が存在するのも、ユーザにとっては同一の視野角が得られるため、違和感は少ない。
1.構成
3D映像処理装置の構成は、図1に示すものと同様である。そのため、相違点を中心に説明する。
図14は、実環境または3D映像において被写体を立体視したときの視野角ωを求める方法を説明するための図である。図14(a)は、実環境において被写体を立体視したときの視野角ωを求める方法を説明するための図である。図14(b)は、3D映像において被写体を立体視したときの視野角ω′を求める方法を説明するための図である。図14(a)において、Rは被写体までの距離、SBはステレオベース、x′はディスプレイ面上での被写体の横幅を示している。図14(b)において、Lは視聴距離、Sは眼間距離、xは被写体のディスプレイ面上での被写体の横幅を示している。図14(b)では、被写体が飛び出し側にある場合を示している。
本実施形態では、選択部102は、(数8)が満たされるような2つの画像データを選択する。つまり、第1空間再現率β/β′と第2空間再現率ω/ω′とが等しくなる画像データを、選択部102は選択する。
(数8) β/β′=ω/ω′
2.動作
選択部102の動作に関して説明する。
2−1.選択部の動作
図15は、本実施形態における選択部102の具体的な動作を説明するためのフローチャートである。具体的な動作は、図4に示したフローチャートによる動作と殆ど同じであるので、違う部分を説明する。
本実施形態において、選択部102は、図4のステップS104及びS105に代えて、ステップS104B及びS105Bを実行する。
具体的に、選択部102は、ステップS101、S102、S103で取得した情報に基づいて、3D映像において被写体を立体視する際の輻輳角β(図10(b)参照)を(数4)により算出するとともに、実環境において被写体を立体視した際の輻輳角β′(図10(a)参照)を算出する(S104B)。また、選択部102は、ステップS101、S102、S103で取得した情報に基づいて、3D映像において被写体を立体視する際の視野角ω(図14(b)参照)を算出するとともに、実環境において被写体を立体視した際の輻輳角ω′(図14(a)参照)を算出する(S104B)
次に、選択部102は、(数8)の条件が満たされるか否かを判断する(S105B)。つまり、選択部102は、3D映像において被写体を立体視する際の輻輳角βと、実環境において被写体を立体視した際の輻輳角β′との比(第1空間再現率β/β′)が、3D映像において被写体を立体視する際の視野角ωと、実環境において被写体を立体視した際の輻輳角ω′との比(第2空間再現率ω/ω′)と、等しいか否かを判断する(S105B)。(数8)の条件が満たされている場合、選択部102は、現在選択中の画像データを、記憶部104から調整部105に出力させるととともに、調整部105で所定の調整を行った後、表示部106に出力させる。一方、(数8)の条件が満たされていない場合、選択部102は、現時点の(数8)の左辺の第1空間再現率β/β′の値と右辺の第2空間再現率ω/ω′の値が、以前に選択した2つの画像データよりも近いか否かを判断する。例えば、現時点の(数8)の左辺の第1空間再現率β/β′の値と右辺の第2空間再現率ω/ω′の値の差が、以前に選択した2つよりも小さいか否かを判断する。第1空間再現率β/β′の値と第2空間再現率ω/ω′の値の差がより小さくなっている場合、現在選択している画像データが、最終的に選択される可能性があることを示す情報をメモリ103に記憶させる。そして、選択部102は、上記ステップS105Bの条件が満足されるまで、ステップS104B以降を繰り返し実行する。全ての画像データの組が(数8)を満たさない場合、選択部102は、記憶部103に記憶させておいた、現在選択している画像データが、最終的に選択される可能性のある画像データであることを示す情報に基づいて、左辺の第1空間再現率β/β′の値と右辺の第2空間再現率ω/ω′の値が最も近い2つの画像データを選択する。
なお、選択部102は、実施形態2同様に、画像を分割し、分割したブロック全てについて、(数8)の左辺の第1空間再現率β/β′の平均及び右辺の第2空間再現率ω/ω′の平均をそれぞれ算出し、これに基づいて、左辺の第1空間再現率β/β′と右辺の第2空間再現率ω/ω′が等しいか判断してもよい。また、第1空間再現率β/β′と第2空間再現率ω/ω′の比較は、比の形で比較してもよいし、差分の形で比較してもよい。つまり、実環境においてユーザが認識する被写体の空間サイズと、3D映像においてユーザが認識する被写体の空間サイズとを比較することができれば、どのような形でも構わない。
なお、第1空間再現率β/β′の値と第2空間再現率ω/ω′の値が同じとなった場合あるいは近い場合でも、それらの値が極端に小さい場合には、ユーザが被写体のサイズに違和感を覚える可能性がある。そこで、第1空間再現率β/β′の値と第2空間再現率ω/ω′の値が同じとなった場合あるいは近い場合でも、第1空間再現率β/β′の値と第2空間再現率ω/ω′の値が例えば所定値以下であるときは、選択部102は、現在の選択されている2つの画像データにおけるSBよりも大きなSBを有する2つの画像データを新たに選択してもよい。
本実施形態では、(数8)の空間再現条件を満たすことを条件としたが、この空間再現条件と実施形態1で説明した安全条件(γが−1°から1°の範囲にあること)の両方を満たすことを条件としてもよい。
ここで、実際に3D映像を表示させる表示部106の画面サイズの制約等により実施形態2のように空間再現率β/β′=1を満たすのは難しいことがある。このような場合においても、本実施形態によれば、(数8)を満足する画像データを選択することにより、視聴時における違和感を低減できる。
3.まとめ
本実施形態の3D映像処理装置では、特に、選択部102は、表示条件、撮影条件及び視聴条件に基づいて、実環境において被写体を立体視したときの輻輳角と、表示部106のディスプレイ面上に表示された立体映像において被写体を立体視したときの輻輳角との比を求める。さらに、3D映像処理装置は、実環境において被写体を立体視したときの視野角と、表示部106のディスプレイ面上に表示された立体映像において被写体を立体視したときの視野角との比を求め、求めた2つの比に基づいて、所定の空間再現条件が満たされるか否かを判定する。
(変形例)
1.変形例1
上記各実施形態における視聴距離は、実際に計測して得られる情報であっても構わない。この例について変形例1として説明する。
図16は、変形例1における3D映像処理装置の構成を示すブロック図である。図1に示す3D映像処理装置と比較して、本変形例における3D映像処理装置は、新たに位置測距部201を備える。なお、図1と同様のものについてはその説明を省略し、同じ番号を付す。
位置測距部201は、3D映像を表示する表示部106からユーザまでの距離情報を取得することができる。位置測距部201は、例えば、表示部106の側面、上部、下部に取り付けられ、あるいは内蔵されている。表示部106が、3Dメガネにより視聴する方式のものである場合には、3Dメガネに位置測距部201を設けておき、位置測距部201は、3Dメガネと通信して、その3Dメガネと表示部106までの距離を取得する構成であってもよい。
位置測距部201は、例えば、表示部106にカメラが取り付けられている場合、そのカメラから得られる画像情報を基に視聴距離を算出してもよい。
3D映像処理装置が位置測距部201を備える場合、選択部102は3D映像処理装置の位置測距部201から得られる視聴距離を利用する。
2.変形例2
実施形態における3D映像処理装置は、ネットワークを介して通信可能なサーバとクライアントに分割して構成してもよい。この例について変形例2として説明する。
図17は、変形例2の3D映像処理装置の構成を示すブロック図である。
本変形例の3D映像処理装置においては、インターフェース101、選択部102、メモリ103、調整部105及び表示部106の機能は、クライアントに実装される。また、記憶部104の機能は、サーバに実装される。クライアントと、サーバはネットワークNWを介して接続されている。クライアントは、サーバの処理能力や通信速度、形態や設置されている場所に応じて、サーバとの間の通信の方法を変更してもよい。
なお、図示しないが、インターフェース101、選択部102、メモリ103及び表示部106の機能をクライアント側で実装し、記憶部104及び調整部105の機能をサーバ側で実装する構成にしても構わない。
なお、クライアントの処理の一部をサーバに行わせてもよい。例えば、クライアントがモバイル端末の場合、サーバで画像サイズを縮小した後、画像データを受信するようにしてもよい。
3.変形例3
表示部106は3視点以上の多視点から視聴可能な多視点表示型の裸眼3D表示装置で構成されても構わない。この例について変形例3として説明する。
本変形例では、表示部106は、5視点での表示が可能なパララックスバリア方式により構成されており、例えば、ディスプレイ面上に複数のレンチキュラーレンズを有している。
図18は、変形例3の3D映像処理装置における作用等を説明するための図である。図18(a)は、状態1における視差角のヒストグラムを示す図である。図18(b)は、状態2における視差角のヒストグラムを示す図である。図18(c)は、ユーザが表示部を複数の視点から注視している状態を示す図である。具体的には、図18(c)は、表示部106の5視点のレンチキュラーレンズ106aを介して3D映像がユーザに届く様子を説明している。ここで、5視点分の3D映像のうち1視点目の画像を第1視点画像、2視点目の画像を第2視点画像、・・・、5視点目の画像を第5視点画像と称す。また、図18における状態1の位置で表示部106を立体視した際、ユーザは第1視点画像と第3視点画像を視聴すると仮定する。このとき、選択部102は、図18(a)に示す視差角のヒストグラムを算出する。さらに、状態2の位置で表示部106を立体視した際、ユーザは第2視点画像と第4視点画像を視聴すると仮定する。このとき、選択部102は、図18(b)に示す視差角のヒストグラムを算出する。
選択部102は、全ての視点において安全条件を満たすように画像データを選択する。つまり、5視点分の画像データがある場合、いずれの視点においても、安全条件を満たすように、各視点毎に、5視点の画像データの中からいずれか2つの画像データを選択する。
上記のように構成することにより、ユーザは、表示部106に表示される画像をいずれの視点においても、安全条件が満たされた状態で視聴することが可能となる。
また、位置測距部などの測距方法で、ユーザが視聴している視点がわかっている場合は、その視点だけ安全条件を満たすように選択しても良い。ユーザが複数人いた場合、利用されている視点だけ安全条件を満たすように選択しても構わない。
(その他の実施形態)
上記実施形態で説明した3D映像処理装置において、各ブロックは、LSIなどの半導体装置により個別に1チップ化されても良いし、一部又は全部を含むように1チップ化されても良い。
なお、ここでは、LSIとしたが、集積度の違いにより、IC、システムLSI、スーパーLSI、ウルトラLSIと呼称されることもある。
また、集積回路化の手法はLSIに限るものではなく、専用回路又は汎用プロセサで実現してもよい。LSI製造後に、プログラムすることが可能なFPGA(Field Programmable Gate Array)や、LSI内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサーを利用しても良い。
さらに、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、その技術を用いて機能ブロックの集積化を行ってもよい。バイオ技術の適用等が可能性としてあり得る。
また、上記実施形態の各処理をハードウェアにより実現してもよいし、ソフトウェア(OS(オペレーティングシステム)、ミドルウェア、あるいは、所定のライブラリとともに実現される場合を含む。)により実現してもよい。さらに、ソフトウェア及びハードウェアの混在処理により実現しても良い。なお、上記実施形態に係る立体撮像装置をハードウェアにより実現する場合、各処理を行うためのタイミング調整を行う必要があるのは言うまでもない。上記実施形態においては、説明の便宜のため、実際のハードウェア設計で生じる各種信号のタイミング調整の詳細については省略している。
また、上記実施形態における処理方法の実行順序は、必ずしも、上記実施形態の記載に制限されるものではなく、発明の要旨を逸脱しない範囲で入れ替えることができる。
また、上記実施形態では、2つの撮像部により、3D映像(ステレオ画像(左眼用画像及び右眼用画像))を取得(撮像)する場合について説明した。しかし、これに限定されない。例えば、1つの撮像素子により、左眼用画像と右眼用画像とを時分割で交互に取得するようにしてもよいし、また、1つの撮像素子の撮像素子面を2分割して、左眼用画像と右眼用画像とを取得するようにしてもよい。また、1つの撮像素子により、連続して撮影した画像を用いてもよい。また、複数の撮像素子により、連続して撮影した画像を用いてもよい。
また、上記実施形態で説明した選択部102は、立体表示装置、テレビ、情報携帯端末、パーソナルコンピュータ、デジタルスチルカメラ、ムービー、情報記録再生装置、映像記録再生装置等に搭載可能である。この場合、複数の3D映像の画像データは、上記装置に対して、外部から入力させるものであってもよい。
また、本発明の立体映像出力装置を具体化した上記実施形態の3D映像処理装置は表示部106を有しているが、本発明の立体映像出力装置は、表示部を有する装置にも、表示部を有さない装置にも適用可能である。例えば、本発明の立体映像出力装置は、表示部を有する立体表示装置、テレビ、情報携帯端末、パーソナルコンピュータ、デジタルスチルカメラ、ムービー等に適用可能であり、表示部を有さない情報記録再生装置、映像記録再生装置等にも適用可能である。
なお、本発明の具体的な構成は、前述の実施形態に限られるものではなく、発明の要旨を逸脱しない範囲で種々の変更及び修正が可能である。
本発明に係る立体映像出力装置及び立体映像出力方法は、画像サイズ等に応じて適した2つの画像を選択することができるので、例えば、立体撮像を行うカメラ(撮像装置)、立体映像を表示する表示装置、立体映像を処理する画像処理装置など、立体映像を扱う幅広い機器に応用できる。
101 インターフェース
102 選択部
103 メモリ
104 記憶部
105 調整部
106 表示部
110 3次元画像データ
111 SB情報
112 距離情報
113 画角情報
114 画像番号
115 画像テーブル
201 位置測距部