以下、本開示を実施するための形態(以下実施の形態とする)について説明する。なお、説明は以下の順序で行う。
1.従来技術の説明
2.第1の実施の形態(視差レンジ)
3.第2の実施の形態(信頼度)
4.第3の実施の形態(運動視差)
5.第4の実施の形態(運動視差+顔検出)
6.第5の実施の形態(ヘッドマウントディスプレイ)
7.第6の実施の形態(オフライン処理)
8.第7の実施の形態(コンピュータ)
<1.従来技術の説明>
[従来技術の説明]
まず、図1を参照して、従来技術について説明する。
従来、裸眼3Dディスプレイ11に表示される画像を生成する装置では、例えば、裸眼3Dディスプレイ11を見るユーザの左眼に入る視点画像Aまたは右目に入る視点画像Bを元に、出力画像が生成される。
いま、例えば、時刻t-1と時刻tにおいて、左眼に入る視点画像Aから右眼に入る視点画像Bへと補間方向が切り替えられる場合を考える。画像には、上下方向の太線が含まれている。
具体的には、時刻t-1において、左眼に入る視点画像Aから推定視差L-Rが求められて、時刻t-1の出力画像が生成され、時刻tにおいて、右眼に入る視点画像Bから推定視差R-Lが求められて、時刻tの出力画像が生成される。
図1の右上に示されるように、推定視差L-Rおよび推定視差R-Lが合っていれば、時刻t-1の出力画像の太線と、時刻tの出力画像の太線は、ほぼ一致する。
しかしながら、図1の右下に示されるように、推定視差L-Rおよび推定視差R-Lの少なくともどちらかが間違っていると、時刻t-1の出力画像の太線と、時刻tの出力画像の太線が離れてしまう。
これにより、時刻tから時刻t-1において、出力画像の太線が左右方向や奥行き方向に飛んだように見えてしまうという切り替わりのエラーが目立ってしまう。
そこで、本技術においては、補間方向が切り替わったときに、前後のフレームの不整合が目立たないようにする。以下、詳細について説明していく。
<2.第1の実施の形態(視差レンジ)>
[画像処理装置の構成例]
図2は、本技術を適用した画像処理装置の構成例を示すブロック図である。
図2の例において、画像処理装置100は、左視点画像(L画像)入力部101、右視点画像(R画像)入力部102、視差推定部103、仮想視点画像生成部105、表示制御部106を含むように構成される。画像処理装置100において生成した画像が表示部110に出力される。
なお、図1に示す構成では、表示部110を画像処理装置100の外部構成として示しているが、画像処理装置100内に表示部110を有する構成としてもよい。
なお、図1は、画像処理装置の主要構成を示すものである。よって、画像処理装置100には、図に示す構成の他、データ処理制御を実行するCPU等のプログラム実行機能を備えた制御部、制御部において実行するプログラムや、各種パラメータを格納した記憶部、パラメータや画像データなどを入力する入力部を有する。例えば、制御部は、以下に説明する処理を予め記憶部に格納したプログラムに従って実行する。
左視点画像(L画像)入力部101と、右視点画像(R画像)入力部102は、予め生成された3次元(3D)画像表示用の左視点画像(L画像)と、右視点画像(R画像)を入力する。左視点画像(L画像)は、左眼から観察される画像に相当し、右視点画像(R画像)は、右眼から観察される画像に相当する。
ただし、これらの2つの画像は、標準的な2つのLR画像である。すなわち、ディスプレイ面に例えばレンチキュラシートや、パララックスバリア(視差バリア)を備えた裸眼3D表示装置において、規定位置、例えばディスプレイを正面中心位置から観察した際に正しい3D画像として観察されるLR画像である。ユーザの観察位置が規定位置と異なる位置にある場合は、左眼に右眼用の画像(右視点画像)が、右眼に左眼用の画像(左視点画像)が入ってしまう逆視や、左視点画像と右視点画像が混ざるクロストークが発生する。
画像処理装置100は、これに対して、正規の1つの観察位置に対応する入力LR画像、すなわち標準の左視点画像と右視点画像に基づいて、様々な観察位置で観察した場合にクロストークの発生しない新たな視点(仮想視点)からの画像を生成する。
視差推定部103は、左視点画像(L画像)と、右視点画像(R画像)を入力し、これらの画像に基づいて視差情報を生成する。なお、以下、L画像とR画像とをまとめてLR画像とも称する。視差情報とは、入力LR画像に含まれる同一被写体の画像間のずれ(左右方向の画素ずれ)に相当し、被写体の距離に相当する情報となる。具体的には、例えば各画素単位や画素領域単位の視差情報(被写体距離情報)を持つデータを生成する。
仮想視点画像生成部105には、左視点画像(L画像)入力部101からのL画像、右視点画像(R画像)入力部102からのR画像、および視差推定部103からの視差情報が入力される。
仮想視点画像生成部105は、これらの各情報を入力して、仮想視点画像を生成する。例えば、仮想視点画像生成部105は、視差推定部103からの視差情報から求められる視差分布を基にして視差量を調整し、仮想視点位置の決定処理等を実行して、決定した仮想視点位置に対応する仮想視点画像を生成する。
仮想視点画像生成部105は、視差分布を参照した仮想視点画像の生成処理を実行する。すなわち入力LR画像の2視点の画像に加え、さらにその他の視点の画像を加えた計N視点の画像が生成されて出力される。例えば、仮想視点画像生成部105は、N視点分の出力位相を求め、視差分布に応じて補間方向を選択し、選択した補間方向の仮想視点画像を生成する。この処理の詳細については後述する。
仮想視点画像生成部105の生成した仮想視点画像は、表示制御部106を介して表示部110に出力表示される。
本開示の画像処理装置の生成する表示画像は、例えば、ユーザがメガネを装着しなくても立体画像を視聴することができる裸眼3D表示装置における表示画像である。
表示部110は、裸眼3D表示を行う表示部であり、ディスプレイ面に例えばレンチキュラシートや、パララックスバリア(視差バリア)を備え、視聴位置によって左眼と右眼に入る画像を制御可能とした表示部である。
表示制御部106は、仮想視点画像生成部105の生成したN視点の画像を表示部110に出力する。なお、表示制御部106は、表示部110の表示構成に応じた表示情報を生成する。
なお、画像処理装置100は、例えば撮像部を備えたカメラ等の撮像装置、PC、テレビなどの表示装置として構成することも可能であり、これらの装置として構成する場合は各装置に応じた機能を備えた構成とする。
例えばカメラの場合、異なる視点からの画像としてのLR画像を撮影する撮像部を有し、撮像部から入力するLR画像を利用して多視点画像を生成する構成とする。
[視差推定部の処理]
次に、視差推定部103の処理について説明する。視差推定部103は、左視点画像(L画像)と、右視点画像(R画像)を入力し、これらの画像に基づいて視差情報を生成する。視差情報とは、標準LR画像に含まれる同一被写体の画像間のずれ(左右方向の画素ずれ)に相当し、被写体の距離に相当する情報となる。具体的には、例えば各画素単位の視差情報(被写体距離情報)を持つデータを生成する。
この視差情報の取得は、例えば、以下のような既存の手法によって実行される。
(a)ブロックマッチングベースの視差情報取得処理
(b)DP(ダイナミックプログラミング)マッチングベースの視差情報取得処理
(c)セグメンテーションベースの視差情報取得処理
(d)学習ベースの視差情報取得処理
(e)上記各手法の組み合わせによる視差情報取得処理
例えば、上記(a)〜(e)のいずれかの手法で視差情報を取得する。
図3を参照してブロックマッチングベースの視差情報取得処理について簡単に説明する。視差推定部103は、入力したオリジナルの標準画像である、左視点画像(L画像)と右視点画像(R画像)を利用し、例えばL画像の画素領域(ブロック)121を選択し、その選択ブロックと類似する画素領域(ブロック)122をR画像中から検出する。
すなわち、視差推定部103は、同一被写体の撮影領域であると判断されるブロック(マッチングブロック)をLR画像から選択する。さらに、視差推定部103は、LR画像間におけるマッチングブロックの位置ずれ(水平方向の画素数等)を測定する。
図3において、例えばL画像の画素領域(ブロック)121の注目画素LP=(5,3)の、R画像における対応画素は、画素領域(ブロック)122の注目画素RP=(7,3)である。この場合、L画像の画素位置(x,y)=(5,3)のLR画像間の視差d(5,3)は以下の式(1)のように算出される。
視差d(5,3)=(7,3)−(5,3)=(2,0) ・・・(1)
すなわち、L画像の画素位置(x,y)=(5,3)の視差dは2画素[pixel]となる。
ブロックの位置ずれは、そのブロックに撮影されている被写体の距離に応じて変動する。すなわち、ブロックの位置ずれが被写体距離に対応し、この位置ずれ情報を視差情報として取得する。
なお、この視差情報の表現形式として例えばデプスマップ(距離画像あるいは視差マップ)がある。デプスマップ(視差マップ)は、例えばL画像、R画像の各画素単位の視差(被写体距離)を画素単位の輝度によって表現した画像であり、例えば高輝度領域は、近い(カメラに近い)被写体、低輝度領域は、遠い(カメラから遠い)被写体を示す。すなわち被写体距離が輝度によって示された画像である。
また、図4に示されるように、視差推定部103は、図3を参照して上述したL画像を基準としたR画像の視差の情報であるLR視差情報だけでなく、R画像を基準としたL画像の視差の情報であるRL視差情報も取得する。なお、図4の例においては、LR視差情報は、実線で示されており、RL視差情報は、点線または一点鎖線で示されている。
実線と点線で示されるように、LR視差情報とRL視差情報とは、符号は異なるが、基本的には一致する。ただし、オクルージョンなどの影響により、一点鎖線で示されるRL視差に示されるように、LR視差と一致しないこともある。
RL視差情報の取得方法としては、以下の2つの方法があげられる。
(f)基準画像を逆にしてのブロックマッチングベースの視差情報取得処理
(g)LR視差の符号の反転処理+隣接画素の視差からの補間処理
以上のようにして、視差推定部103においては、LR視差情報およびRL視差情報が取得、生成される。
[仮想視点画像生成部の動作概要]
次に、仮想視点画像生成部105の実行する入力LR画像に基づく基本的な仮想視点画像の生成処理について説明する。
仮想視点画像生成部105には、左視点画像(L画像)入力部101からL画像、右視点画像(R画像)入力部102からR画像、および視差推定部103から視差情報が入力される。仮想視点画像生成部105は、これらの各情報を入力して、仮想視点画像を生成する。
例えば、仮想視点画像生成部105は、予め設定した数(例えば10)の仮想視点を決定し、これらの各仮想視点に対応する仮想視点画像を生成する。仮想視点画像は、入力した標準LR画像を利用して生成する。すなわち、入力画像である左視点画像(L画像)と右視点画像(R画像)を利用して生成する。具体的な仮想視点画像の生成処理例について、図5以下を参照して説明する。
図5の例においては、画像処理装置に入力するオリジナルの左視点画像(L画像)131と右視点画像(R画像)132、および、これらのLR画像に基づいて生成する仮想視点画像133が示されている。
左視点画像(L画像)131は標準位置における左眼視点位置から観察した画像であり、右視点画像(R画像)132は標準位置における右眼視点位置から観察した画像である。
図5は、例えば、左視点画像(L画像)131の視点位置を0.0、右視点画像(R画像)132の視点位置を1.0とし、この視点位置0.0〜1.0の間の視点位置=0.3からの観察画像を仮想視点画像133として生成する場合の処理例を示している。
左視点画像(L画像)131と右視点画像(R画像)132にはそれぞれ異なる位置に同一被写体(リンゴ)が撮影されている。L画像と、R画像において、この同一被写体の位置は、視点位置が異なるために、異なる位置となっている。
視点位置=0.0と視点位置1.0の間の視点位置=0.3の仮想視点画像133を生成する場合、この被写体(リンゴ)の位置を線型補間によって設定する。図5に示す直線L1に沿って被写体位置を変更することによって、各仮想視点における仮想視点画像の被写体位置を決定して仮想視点画像を生成することができる。
このように入力LR画像に基づく線形補間処理によって各仮想視点位置の仮想視点画像を生成する。
なお、仮想視点画像を生成する場合、入力LR画像の双方を利用して2つの画像をブレンドする処理によって生成することができる。あるいは、L画像のみ、あるいはR画像のみを利用して仮想視点位置に応じて被写体位置をずらす処理によって、1つの画像のみを利用して生成することもできる。あるいは、L画像側に近い仮想視点位置ではL画像のみを利用して仮想視点画像を生成し、R画像に近い位置ではR画像のみを利用して仮想視点画像を生成するといった処理を行ってもよい。
入力LR画像のブレンド処理に基づく仮想視点画像131の画素値の決定処理例について図6を参照して説明する。
図6の例においては、視点位置=0である入力左視点画像(L画像)の画素P(x,y)141、および視点位置=1である入力右視点画像(R画像)におけるL画像の画素Pの対応画素142が示されている。また、視点位置=Φである仮想視点画像におけるL画像の画素Pの対応画素143も示されている。なお、Φ=0〜1である。
左視点画像(L画像)の画素P(x,y)141の視差がd(x,y)[pixel]である場合、仮想視点画像におけるL画像の画素P(x,y)の対応画素143の画素位置は、画素Q(x+Φ・d(x,y),y)とされる。すなわち、仮想視点画像における画素Q(x+Φ・d(x,y),y)の画素値が、左視点画像(L画像)の画素P(x,y)141の画素値に設定される。
仮想視点画像の各画素の画素値は、このように、左視点画像(L画像)の画素の視差情報に基づいて設定される。
なお、この処理によって、仮想視点画像の埋まらなかった画素は、右視点画像(R画像)を適用した処理や隣接画素の画素値による補間処理、左視点画像の同一座標の画素で補間する処理などによって画素値を決定する。
図7の例においては、左視点画像(L画像)の水平ライン151、右視点画像(R画像)の水平ライン152、および仮想視点画像の水平ライン153が示されている。図に示される矢印は、仮想視点画像の水平ライン153の画素値を決定するために適用可能な左視点画像(L画像)の画素位置と、右視点画像(R画像)の画素位置を結ぶラインである。
図7に示される仮想視点画像の水平ライン153において、1=左視点画像(L画像)の水平ライン151の構成画素値によって画素値の設定された領域である。2=右視点画像(R画像)の水平ライン153の構成画素値によって画素値の設定された領域である。3=その他の領域である。
このように、仮想視点画像の画素値の設定は、例えば、以下の3つの処理によって実行される。
1.左視点画像(L画像)の各画素に対して、出力視点位置で対応する画素位置を求め、その画素位置に左視点画像(L画像)の画素値を補間する。
2.右視点画像(R画像)の各画素に対して、出力視点位置で対応する画素位置を求め、その画素位置に右視点画像(R画像)の画素値を補間する。
3.上記1,2の処理でも補間されない出力視点画像の画素は、隣接画素に基づく補間処理を行う。
なお、図6および図7を参照して説明した処理は入力LR画像に基づいてこれらのLR画像と異なる仮想視点からの画像を生成する基本的な処理である。
本技術の画像処理装置の仮想視点画像生成部105は、この基本的な処理をベースとして、さらに、視差情報から求められるスケール値(視差レンジ)を適用する。すなわち、仮想視点画像生成部105は、そのスケール値に基づいて生成する仮想視点位置および補間方向等を決定して最終的な仮想視点画像を生成する。
[仮想視点画像生成部の詳細]
次に、仮想視点画像生成部105の詳細について説明する。
仮想視点画像生成部105には、左視点画像(L画像)入力部101からL画像、右視点画像(R画像)入力部102からR画像、視差推定部103から視差情報が入力される。
仮想視点画像生成部105は、入力された情報から求められる視差分布(視差レンジ)を基にして、視差量を調整、すなわち生成する仮想視点位置(位相)を決定し、スケール値に応じて補間方向を選択する。仮想視点画像生成部105は、決定した仮想視点位置(位相)に対応する仮想視点画像を、選択した補間方向の画像に基づいて生成する。仮想視点画像生成部105は、生成した仮想視点画像、すなわち、調整した視点位置の画像を合成して後段に出力する。
または、仮想視点画像生成部105は、決定した仮想視点位置(位相)に対応する仮想視点画像を、L画像およびR画像に基づいて生成し、生成した画像のうち、選択した補間方向の画像を後段に出力することもできる。
図8は、仮想視点画像生成部の構成例を示す図である。
図8の例において、仮想視点画像生成部105は、視点位置調整部161および画像合成部162を含むように構成されている。
視点位置調整部161には、視差推定部103から視差情報が供給される。視点位置調整部161は、視差推定部103から視差情報を基にして視差量を調正し、仮想視点位置(位相)と補間方向を決定する。視点位置調整部161は、決定した仮想視点位置の情報と補間方向の情報を画像合成部162供給する。
画像合成部162には、左視点画像(L画像)入力部101からL画像、右視点画像(R画像)入力部102からR画像、視差推定部103から視差情報、視点位置調整部161から仮想視点位置と補間方向の情報が入力される。
画像合成部162は、これらの情報に基づいて、LR画像に、調整した視点位置の画像を合成して、合成後のN視点画像を、後段の表示制御部106に出力する。
[視点位置調整部の動作]
次に、図9を参照して、視点位置調整部161の視点位置調整処理について説明する。
視点位置調整部161は、視差推定部103から視差情報を、1フレーム毎に、図9に示される視差のヒストグラムを生成し、以下の処理を行う。視差のヒストグラムは、視差を横軸とし、画素数(頻度)を縦軸とする。
視点位置調整部161は、まず、視差のヒストグラムに基づいて、視差の最大値dmax、視差の最小値dminを求める。次に、視点位置調整部161は、|dmax|と|dmin|の大きい方を視差レンジdrangeとし、スケール値scale=drange/dsafeを求める。
ここで、dsafeは、目標視差値(規定値)であり、次のような情報から予め設定されている。クロストークが許容範囲に収まる視差(表示デバイス依存)、または、快適視差範囲(3Dコンソーシアム安全ガイドラインなど)。
そして、視点位置調整部161は、各視点の出力位相を算出し、補間方向を求める。すなわち、視点位置調整部161は、視差情報に基づく変動(この場合、時間変動)の度合いを示すパラメータとして、スケール値を求め、スケール値が示す変動に応じて、視点位置調整処理を行う。
[出力位相の算出処理]
まず、図10を参照して、出力位相の算出処理について説明する。視点位置調整部161は、算出したスケール値に応じて、生成すべき仮想視点画像の視差、つまり、生成する仮想視点画像の位置(位相)を決定する。
具体的には、視点位置調整部161は、0乃至1の値を持つスケール値に応じて、図10に示すような仮想視点位置の決定処理を行う。スケール値(視差レンジ)は、値が小さいと時間変動、すなわち、不整合が少ない可能性が高く、値が大きいと時間変動、すなわち、不整合が多い可能性が高いといえる。
図10は、スケール値=0乃至1の場合における仮想視点画像位置の設定例を示した図である。視点位置=0は、入力L画像に対応する視点位置であり、視点位置=1は、入力R画像に対応する視点位置である。
すなわち、スケール値=1のライン上の画像bは、左視点画像(L画像)入力部101から入力する入力L画像に対応し、画像hは、右視点画像(R画像)入力部102から入力する入力R画像に対応する。
スケール値=1のライン上のその他の縦ラインは、スケール値が1(不整合が大きい可能性が高い)値である場合、仮想視点画像生成部105において生成する仮想視点画像の位置(位相)を示す。この例では、入力LR画像を含めて、a乃至iまで合計9個の異なる視点の画像を生成して出力するものとする。
スケール値=1の場合は、視点位置調整部161は、図10の上段にあるの画像a乃至iを仮想視点画像の設定位置として決定し、この仮想視点位置情報を画像合成部162に出力する。なお、仮想視点画像の生成処理は、図5乃至図7を参照して上述した処理に従って行われる。
また、スケール値=0.5、すなわち中程度の場合は、視点位置調整部161は、図10の中段にある画像a2乃至i2を仮想視点画像の設定位置として決定し、この仮想視点位置情報を画像合成部162に出力する。
この中低度のスケール値=0.5の場合、図10に示されるように、仮想視点画像a2乃至i2の視差範囲は、スケール値=1の場合の仮想視点画像a〜iの視差範囲より狭くなる。
また、スケール値=0の場合、すなわち殆ど不整合がない場合は、視点位置調整部161は、図10の下段にある画像a3乃至i3を仮想視点画像の設定位置として決定し、この仮想視点位置情報を画像合成部162に出力する。
なお、図10の下段にある画像a3乃至i3の画像位置は、入力R画像の画像位置に対応する。すなわち、この場合、新たな仮想視点画像を生成することなく、入力R画像をそのまま出力する。また、この場合、仮想視点画像生成部105は、入力L画像についてもそのまま出力し、表示部には入力LR画像のみが出力されることになる。
視点位置調整部161は、仮想視点画像の設定位置(位相)の算出処理を以下のアルゴリズムに従って実行する。
スケール値=1の場合に生成する仮想視点画像については予め決定しておく。例えば、図10に示すa〜iの位置である。求めたスケール値をS(0≦S)とする。元の視点位置をV0とし、スケール値0のとき、右に収束させる場合、 スケール値に応じて設定される仮想視点画像位置(位相)Vは、次の式(2)で表わされる。
V=(V0−1)・S+1 ・・・(2)
[補間方向の選択処理]
次に、図11を参照して、視点位置調整部161の補間方向の選択処理について説明する。図11の例においては、横軸に位相が示されており、縦軸にスケール値Sが示されている。スケール値は、0以上の値であり、0乃至1には限定されない。図11の例においては、thより大きい値としてNが示されているが、Nは1より大きい値をとり得る。なお、図11の例においては、スケール値S=0で収束する位置が、右(1)の場合について説明する。
視点位置調整部161は、スケール値に応じて、補間方向を選択する。その際、上述したように、スケール値(視差レンジ)が小の場合、左右画像の不整合が小さいことから、視点位置調整部161は、スケール値が所定の閾値thより大きい場合、仮補間方向として、右を設定する。すなわち、この場合、視点位置調整部161は、例えば、左への補間方向の切り替えを禁止する。
一方、視点位置調整部161は、スケール値が所定の閾値th以下の場合、近い方の画像から補間するように、仮補間方向として、すなわち、視点位相が0.5以下であるとき左を設定し、視点位相が0.5より大きいとき右を設定する。すなわち、この場合、視点位置調整部161は、補間方向の切り替えを行う(許可する)。
これにより、左右画像の不整合が大きい場合の補間方向の切り替えを防ぐことができる。
ただし、さらに、視点位置調整部161は、次のように、時間安定化処理を行う。すなわち、視点位置調整部161は、ある一定時間、仮補間方向が左であれば、補間方向を左に設定し、ある一定時間、仮補間方向が右であれば、補間方向を右に設定する。それ以外の場合、視点位置調整部161は、前のフレームと同じ方向を補間方向に設定する。
なお、開始フレームの場合、仮補間方向(近い画像)が補間方向に設定される。
これにより、矢印Aや矢印Bに示される補間方向の切り替えが頻繁に発生するのを抑制することができる。すなわち、補間方向の高頻度の時間変動と、左右両眼別々のタイミングでの変動を抑制することができる。
なお、上記説明においては、スケール値S=0で収束する位置が、右(1)の場合の例を示したが、左(0)であってもよい。S=0で収束する位置が左(0)の場合、スケール値が所定の閾値thより大きい場合、仮補間方向として、左が設定される。
[画像合成部の構成]
図12は、画像合成部162の構成例を示す図である。
図12の例において、画像合成部162は、入力LR画像を含め、生成される仮想視点画像分の一視点画像合成部171−1乃至一視点画像合成部171−Nを含むように構成されている。
一視点画像合成部171−1乃至一視点画像合成部171−Nには、左視点画像(L画像)入力部101からL画像、右視点画像(R画像)入力部102からR画像が入力され、視差推定部103から視差情報(左/右)が入力される。
一視点画像合成部171−1には、さらに、視点位置調整部161から視点1の補間方向1と出力位相位置1が入力される。一視点画像合成部171−1は、出力位相位置1に対応する仮想視点画像を、入力L画像および入力R画像を用い、視差情報に基づいて生成する。一視点画像合成部171−1は、補間方向1に対応する方向(右または左)の画像を用いて生成された仮想視点画像を選択して、合成画像1として、後段の表示制御部106に出力する。
一視点画像合成部171−2には、さらに、視点位置調整部161から視点2の補間方向2と出力位相位置2が入力される。一視点画像合成部171−2は、出力位相位置2に対応する仮想視点画像を、入力L画像および入力R画像を用い、視差情報に基づいて生成する。一視点画像合成部171−2は、補間方向2に対応する方向(右または左)の画像を用いて生成された仮想視点画像を選択して、合成画像2として、後段の表示制御部106に出力する。
一視点画像合成部171−Nには、さらに、視点位置調整部161から視点Nの補間方向Nと出力位相位置Nが入力される。一視点画像合成部171−Nは、出力位相位置Nに対応する仮想視点画像を、入力L画像および入力R画像を用い、視差情報に基づいて生成する。一視点画像合成部171−Nは、補間方向Nに対応する方向(右または左)の画像を用いて生成された仮想視点画像を選択して、合成画像Nとして、後段の表示制御部106に出力する。
なお、以下、一視点画像合成部171−1乃至171−Nを特に区別して説明する必要がない場合、まとめて一視点画像合成部171として説明する。
[一視点画像合成部の構成]
図13は、一視点画像合成部171の構成例を示す図である。
一視点画像合成部171は、左画像合成部181、右画像合成部182、および選択部183を含むように構成されている。
左画像合成部181には、左視点画像(L画像)入力部101からのL画像、視差推定部103から視差情報(左)、視点位置調整部161からの出力位相位置が入力される。左画像合成部181は、出力位相位置に対応する仮想視点画像を、入力L画像を用い、視差情報(左)に基づいて生成し、選択部183に出力する。
右画像合成部182には、右視点画像(R画像)入力部102からのR画像、視差推定部103から視差情報(右)、視点位置調整部161からの出力位相位置が入力される。右画像合成部182は、出力位相位置に対応する仮想視点画像を、入力R画像を用い、視差情報(右)に基づいて生成し、選択部183に出力する。
選択部183には、視点位置調整部161からの補間方向、左画像合成部181からのL画像が用いられて生成された仮想視点画像、右画像合成部182からのR画像が用いられて生成された仮想視点画像が入力される。
選択部183は、視点位置調整部161からの補間方向に対応する方向の画像が用いられて生成された仮想視点画像を選択し、合成画像として、後段の表示制御部106に出力する。
[画像処理装置の処理例]
次に、図14のフローチャートを参照して、図2の画像処理装置100の画像処理について説明する。
ステップS101において、左視点画像(L画像)入力部101および右視点画像(R画像)入力部102は、それぞれ、左視点画像(L画像)および右視点画像(R画像)を入力する。
入力された左視点画像(L画像)および右視点画像(R画像)は、視差推定部103および仮想視点画像生成部105に供給される。
ステップS102において、視差推定部103は、供給された左視点画像(L画像)および右視点画像(R画像)を用いて、図3および図4を参照して上述したように、視差を推定する。視差推定部103による推定結果の視差情報は、仮想視点画像生成部105に供給される。
ステップS103およびS104において、仮想視点画像生成部105は、仮想視点画像生成処理を行う。
すなわち、ステップS103において、視点位置調整部161は、視点位置を調整する。視点位置の調整処理については、図15を参照して後述するが、ステップS103により、N視点分の出力位相位置の情報と、N視点分の補間方向の情報が生成され、画像合成部162に供給される。
画像合成部162には、さらに、左視点画像(L画像)入力部101からL画像、右視点画像(R画像)入力部102からR画像、視差推定部103から視差情報が入力される。
ステップS104において、画像合成部162は、これらの情報に基づいて、LR画像に、調整した視点位置の画像を合成する。
すなわち、図12および図13を参照して上述したように、画像合成部162は、出力位相位置に対応する仮想視点画像を、入力L画像および入力R画像を用い、視差情報に基づいて生成する。一視点画像合成部171は、補間方向に対応する方向(右または左)の画像を用いて生成された仮想視点画像を選択して、合成画像として、後段の表示制御部106に出力する。
ステップS105において、表示制御部106は、表示部110にN視点画像を表示させる。
[視点位置調整処理の例]
次に、図15のフローチャートを参照して、図14のステップS103における視点位置調整処理の例について説明する。なお、図15の例においては、スケール値が0のときに右に収束させる例が示されている。
ステップS111において、視点位置調整部161は、視差のヒストグラムに基づいて、視差の最大値dmax、視差の最小値dminを求める。
視点位置調整部161は、ステップS112において、|dmax|と|dmin|の大きい方を視差レンジdrangeとし、ステップS113において、スケール値scale=drange/dsafeを求める。
視点位置調整部161は、ステップS114において、図10を参照して上述したように、スケール値に基づいて出力位相を算出する。ステップS114の処理により算出された出力位相位置は、画像合成部162に出力される。
ステップS115において、視点位置調整部161は、図11を参照して上述した補間方向の選択処理を行う。この補間方向の選択処理について、図16のフローチャートを参照して説明する。
ここで、nは、視点番号、Nは、総視点数、Stは、スケール値、S_thは、閾値(パラメータ)、tは、時間(フレーム)、t0は、ある時間(パラメータ)、Vn,tは、視点位相、Dn,tは、補間方向、D’n,tは、仮補間方向をそれぞれ表している。
ステップS121において、視点位置調整部161は、tに-1を代入する。ステップS122において、視点位置調整部161は、すべてのシーンが終了したか否かを判定し、すべてのシーンが終了したと判定した場合、補間方向選択処理を終了する。
ステップS122において、すべてのシーンが終了していないと判定された場合、処理は、ステップS123に進む。視点位置調整部161は、ステップS123において、tにt+1を代入し、ステップS124において、nに0を代入する。
視点位置調整部161は、ステップS125において、nがN以上であるか否かを判定し、nがN以上であると判定した場合、ステップS122に戻り、それ以降の処理が繰り返される。
ステップS125において、nがN以上ではないと判定された場合、処理は、ステップS126に進む。視点位置調整部161は、ステップS126において、nにn+1を代入し、ステップS127において、StがS_thより大きいか否かを判定する。ステップS127において、StがS_th以下であると判定された場合、処理は、ステップS128に進む。
ステップS128において、視点位置調整部161は、Vn,tが0.5以下であるか否かを判定し、Vn,tが0.5以下であると判定した場合、ステップS129に進み、D’n,tに”left”(左)を代入する。すなわち、ステップS129において、左が仮補間方向に設定される。
ステップS127において、StがS_thより大きいと判定された場合、処理は、ステップS130に進む。また、ステップS128において、Vn,tが0.5より大きいと判定した場合、処理は、ステップS130に進む。
ステップS130において、視点位置調整部161は、D’n,tに”right”(右)を代入する。すなわち、ステップS130において、右が仮補間方向に設定される。
ステップS131において、視点位置調整部161は、tが0であるか否かを判定し、tが0ではないと判定した場合、処理は、ステップS132に進む。ステップS132において、視点位置調整部161は、T0とtの小さい方をt0に代入する。
ステップS133において、視点位置調整部161は、s=t-t0乃至tにおいて、すべてD’n,s=”left”であるか否かを判定する。ステップS133において、s=t-t0乃至tにおいて、すべてD’n,s=”left”ではないと判定された場合、ステップS134に進む。
ステップS134において、視点位置調整部161は、s=t-t0乃至tにおいて、すべてD’n,s=” right”であるか否かを判定する。ステップS134において、s=t-t0乃至tにおいて、すべてD’n,s=” right”であると判定された場合、ステップS135に進む。ステップS135において、視点位置調整部161は、Dn,tに”right”(右)を代入する。すなわち、ステップS135において、右が補間方向に設定される。
ステップS133において、すべてD’n,s=”left”であると判定された場合、処理は、ステップS136に進む。ステップS136において、視点位置調整部161は、Dn,tに”left”(左)を代入する。すなわち、ステップS136において、左が補間方向に設定される。
また、ステップS134において、s=t-t0乃至tにおいて、すべてD’n,s=” right”ではないと判定された場合、ステップS137に進む。ステップS137において、視点位置調整部161は、Dn,tに” Dn,t-1を代入する。すなわち、ステップS137において、前フレームの補間方向が、補間方向に設定される。
一方、ステップS131において、tが0であると判定された場合、処理は、ステップS138に進む。ステップS138において、視点位置調整部161は、Dn,tに” D’n,tを代入する。すなわち、ステップS138において、仮補間方向が、補間方向に設定される。
なお、図16の例において、ステップS131以降が時間安定化処理である。
以上のように、スケール値(視差レンジ)に応じて補間方向を設定するようにしたので、左右画像の不整合が大きい場合の補間方向の切り替えを防ぐことができる。
さらに、時間安定化処理を行うようにしたので、補間方向の切り替えが頻繁に発生するのを抑制することができる。すなわち、補間方向の高頻度の時間変動と、左右両眼別々のタイミングでの変動を抑制することができる。
<3.第2の実施の形態(信頼度)>
[画像処理装置の構成例]
図17は、本技術を適用した画像処理装置の他の構成例を示すブロック図である。図17の例においては、視差情報に基づく変動(この場合、時間変動)の度合いを示すパラメータとして、図9を参照して上述したスケール値の代わりに、信頼度が求められ、信頼度が示す変動に応じて、視点位置調整処理が行われる。
図17の例において、画像処理装置200は、左視点画像(L画像)入力部101、右視点画像(R画像)入力部102、視差推定部103、信頼度算出部201、仮想視点画像生成部202、表示制御部106を含むように構成される。画像処理装置100において生成した画像が表示部110に出力される。
図17の画像処理装置200は、左視点画像(L画像)入力部101、右視点画像(R画像)入力部102、視差推定部103、および表示制御部106を備える点が、図2の画像処理装置100と共通している。図17の画像処理装置200は、信頼度算出部201が追加された点と、仮想視点画像生成部105が仮想視点画像生成部202に入れ替わった点とが、図2の画像処理装置100と異なっている。
すなわち、左視点画像(L画像)入力部101からのL画像と、右視点画像(R画像)入力部102からのR画像、視差推定部103からの視差情報は、信頼度算出部201にも供給される。
信頼度算出部201は、視差推定部103が入力LR画像に基づいて推定した各画素単位あるいは画素領域単位の視差情報の信頼度を算出する。信頼度算出部201は、算出した信頼度の情報を、仮想視点画像生成部202に供給する。
仮想視点画像生成部202は、例えば信頼度算出部201から入力する信頼度情報に従って、仮想視点位置の決定処理等を実行して、決定した仮想視点位置に対応する仮想視点画像を生成する。
仮想視点画像生成部105は、信頼度情報を参照した仮想視点画像の生成処理を実行する。すなわち入力LR画像の2視点の画像に加え、さらにその他の視点の画像を加えた計N視点の画像が生成して出力される。例えば、仮想視点画像生成部105は、N視点分の出力位相を求め、信頼度情報に応じて補間方向を選択し、選択した補間方向の仮想視点画像を生成する。この処理の詳細については後述する。
[信頼度算出部の処理]
図18を参照して、信頼度算出部201の処理について説明する。
信頼度算出部201は、まず、左視点画像(L画像)入力部101から入力するL画像211に対して、視差推定部103から入力する画素単位の推定視差情報212を適用して視差補償画像213を生成する。
推定視差情報212は、例えば視差マップとも呼ばれ、視差推定部103の生成した視差情報を輝度で表現した画像データである。視差マップは、視差(被写体距離)を画素単位の輝度によって表現した画像であり、例えば高輝度領域は、近い(カメラに近い)被写体、低輝度領域は、遠い(カメラから遠い)被写体を示す。すなわち被写体距離が輝度によって示された画像である。
視差補償画像213は、L画像211に対して、視差推定部103から入力する画素単位の推定視差情報212を適用して生成される、仮想視点位相における仮想視点画像である。
信頼度算出部201は、次に、右視点画像(R画像)入力部102から入力するR画像216に対して、視差推定部103から入力する画素単位の推定視差情報215を適用して視差補償画像214を生成する。
推定視差情報215は、例えば視差マップとも呼ばれ、視差推定部103の生成した視差情報を輝度で表現した画像データである。視差マップは、視差(被写体距離)を画素単位の輝度によって表現した画像であり、例えば高輝度領域は、近い(カメラに近い)被写体、低輝度領域は、遠い(カメラから遠い)被写体を示す。すなわち被写体距離が輝度によって示された画像である。
視差補償画像214は、R画像216に対して、視差推定部103から入力する画素単位の推定視差情報215を適用して生成される、仮想視点位相における仮想視点画像である。
推定視差情報212を適用して生成した視差補償画像213と、推定視差情報215を適用して生成した視差補償画像214とは、視差推定部103の生成した画素単位の推定視差情報212および推定視差情報215とが正しければ、一致することになる。
しかし、実際には、視差推定部103の生成した推定視差情報212および推定視差情報215には、推定エラー等が含まれ、L画像211に基づいて生成された視差補償画像213と、R画像216に基づいて生成された視差補償画像214とには差分が発生する。
この視差補償画像213と視差補償画像214との対応画素単位の画素値差分を画像単位で算出したマップ、すなわち、図18に示される残差マップ217を生成する。残差マップ217は、視差補償画像213と視差補償画像214との対応画素単位の画素値差分を濃淡情報で表現したマップである。例えば黒い部分がより差分が大きいことを示す。
信頼度算出部201は、図18の例において、この残差マップ217から、画素単位の差分である残差と予め設定した閾値(Th)を比較し、閾値(Th)より大きい残差を持つ画素数をカウントする信頼度変換部218を備えている。信頼度変換部218は、このカウント値をNとして、Nの値に応じて、視差推定部103の生成した推定視差情報の信頼度Rを決定する。
すなわち、信頼度変換部218は、閾値(Th)より大きい残差を持つ画素数Nが多い場合は、視差推定部103の生成した推定視差情報の信頼度Rは低いと判定する。一方、信頼度変換部218は、閾値(Th)より大きい残差を持つ画素数Nが少ない場合は、視差推定部103の生成した推定視差情報の信頼度Rは高いと判定する。
この閾値(Th)は、画像の領域に応じて変更することができる。例えば、平坦な領域だと閾値が小さくされ、テクスチャやエッジがあるような領域だと閾値が大きくされる。
閾値(Th)より大きい残差を持つ画素数Nと、視差推定部103の生成した推定視差情報の信頼度Rとの対応関係は、具体的には、例えば図19に示すような対応関係として規定される。
すなわち、信頼度変換部218は、視差推定部103の生成した推定視差情報の信頼度Rの値を、閾値(Th)より大きい残差を持つ画素数Nの値に応じて、次の式(3)のように算出する。
0≦N≦Nmin:信頼度R=Rmax
Nmin≦N≦Nmax:信頼度R=Rmax〜Rmin
Nmax≦N:信頼度R=Rmin
・・・(3)
ここで、Nmin、Nmax、Rmin、Rmax、これらの値は予め既定した値を用いる。また、Nmin≦N≦Nmaxの範囲では、信頼度Rは、Rmax〜Rmin間を直線的に変化させる。
なお、上記説明では、視差情報から視差補償画像を生成する例を説明したが、仮想視点画像生成部202から視点補償画像をとってきてもよい。また、上述した処理は、複数の仮想視点全てに対して行うようにしてもよいし、1つの仮想視点位相の結果(例えば、右視点位置での結果)を他の視点にも使用するようにしてもよい。これらは、選択可能とする。
なお、図18および図19を参照して説明した処理は、視差推定部103から入力する画素単位の推定視差情報を適用した残差成分に基づく推定視差の信頼度算出処理を行うものである。これに対して、例えば推定視差の誤り、すなわち残差成分の残る仮想視点画像を生成した場合でも、残差成分は、画像の各領域の特徴(素性)によって目立つ場合と影響の少ない場合がある。したがって、残差成分に基づく信頼度判定に際しては、画像の各領域の特徴によって異なる処理を行う設定としてもよい。
具体的には、例えば、残差成分の残る仮想視点画像を生成した場合、テクスチャ領域では、残差成分、すなわち推定視差のずれによる画像に対する影響が大きくなり、画像を観察した場合にエラーが目立つことになる。一方、平坦領域では、残差成分、すなわち推定視差のずれによる画像に対する影響が小さくなり、画像を観察した場合でもエラーが目立つことは少ない。
このような事情を考慮して、画像の領域の特徴(素性)を検出し、検出した画像領域単位の特徴に応じて、残差成分の導出方法を適応的に変更する設定としてもよい。例えば画像領域の特徴量として、空間アクティビティやダイナミックレンジのような特徴量を検出することができる。
また、上記の画像領域単位の特徴量に応じて、残差成分に応じて算出する信頼度を適応的に変化させる。具体的には、例えば、先に図19を参照して説明した信頼度算出処理に用いる各種のパラメータを画像領域単位の特徴量に応じて変更するといた処理を行う。このパラメータとしては、例えば、図19のグラフに示す以下のパラメータである、Nmin、Nmax、Rmin、Rmax、または、図18を参照して上述した閾値(Th)などがある。
具体例について、図20を参照して説明する。図20は、画像、例えば入力L画像に対して画素単位の特徴量として空間アクティビティを検出し、空間アクティビティの値に応じて図18で上述した閾値(Th)を変更して、残差成分の指標としてのカウント値(N)を変更する設定とした例を示す図である。
なお、空間アクティビティは、例えば図20(空間アクテイビティ算出処理例)に示すように、注目画素を中心とする画素領域(例えば3×3画素)における隣接画素間の画素値差分の絶対値の総和として算出することで求められる。画素値差分の絶対値総和の値が大きい領域はテクスチャ領域(エッジ領域)であり、小さい領域は平坦領域であると判定することができる。
図20に示すグラフは、横軸が空間アクティビティ、縦軸が残差成分であり、各点は、各画素の空間アクティビティと残差成分の値に対応する。ここで、図18を参照して説明した閾値(Th)、すなわち残差ありと判定するカウント数Nのカウント値として参入するか否かを規定する閾値(Th)を図に示すように、画像領域の空間アクティビティに応じて変化させる。このような設定とすることで、画像の各領域の特徴に応じた信頼度算出が行われることになる。
図20を参照して説明した処理例は、画像領域の特徴量として空間アクティビティを適用した処理例である。画像領域の特徴量としては、この他、ダイナミックレンジを適用してもよい。
画像領域の特徴量としてダイナミックレンジを取得し、ダイナミックレンジの値に基づいて処理態様を変更する例について図21を参照して説明する。
図21には、左視点画像(L画像)入力部101と、右視点画像(R画像)入力部102から入力した2つの画像領域が示されている。すなわち、入力L画像の注目画素を中心とした3×3画素の画像領域221と、入力R画像の注目画素を中心とした3×3画素の画像領域とが示されている。
これらの画像領域は、視差推定部103における視差推定処理によって対応する画素ブロックとして抽出された対応ブロックである。すなわち、視差推定が正しければ、この2つの画素ブロックには同一被写体の画像が撮影されている。
まず、入力L画像の注目画素を中心とした3×3画素の画像領域221に含まれる9画素から、最大の画素値(輝度値)を持つ画素の画素値(maxL)、最小の画素値(輝度値)を持つ画素の画素値(minL)が取得される。
同様に、入力R画像の注目画素を中心とした3×3画素の画像領域222に含まれる9画素から、最大の画素値(輝度値)を持つ画素の画素値(maxR)、最小の画素値(輝度値)を持つ画素の画素値(minR)が取得される。
さらに、L画像の画素ブロックの画素値の中間値とダイナミックレンジを用いた算出値(Lx)と、R画像の画素ブロックの画素値の中間値とダイナミックレンジを用いた算出値(Rx)とが、次の式(4)および式(5)のように、算出される。
Lx=(maxL+minL)/2+α(maxL−minL)
〜(maxL+minL)/2−α(maxL−minL)
・・・(4)
Rx=(maxR+minR)/2+α(maxR−minR)
〜(maxR+minR)/2−α(maxR−minR)
・・・(5)
なお、(maxL+minL)/2は、L画像の画素ブロックの画素値の中間値に対応し、(maxL−minL)は、L画像の画素ブロックの画素値のダイナミックレンジに対応する。また、(maxR+minR)/2は、R画像の画素ブロックの画素値の中間値に対応し、(maxR−minR)は、R画像の画素ブロックの画素値のダイナミックレンジに対応する。αは係数である。
さらに、LxとRxの差分の最小値を算出して、この差分が注目画素の残差成分とされる。このとき、LxとRxの差分の最小値は、各画素ブロックのダイナミックレンジに応じて変化することになる。結果として、画素ブロック単位のダイナミックレンジに応じて算出される残差成分が適応的に調整される。
このようなダイナミックレンジを画像領域の特徴量として用いて、画像の各領域のダイ
ナミックレンジの値に応じた信頼度算出が可能となる。
[仮想視点画像生成部の構成]
図22は、仮想視点画像生成部202の構成例を示す図である。
図22の例において、仮想視点画像生成部202は、視点位置調整部231および画像合成部162を含むように構成されている。図22の仮想視点画像生成部202は、視点位置調整部161が視点位置調整部231と入れ替わった点のみが図8の仮想視点画像生成部105と異なっている。
すなわち、視点位置調整部231には、信頼度算出部201から信頼度情報が供給される。視点位置調整部231は、信頼度算出部201から信頼度情報を基にして視差量を調正し、仮想視点位置(位相)と補間方向を決定する。視点位置調整部161は、決定した仮想視点位置の情報と補間方向の情報を画像合成部162供給する。
画像合成部162には、左視点画像(L画像)入力部101からL画像、右視点画像(R画像)入力部102からR画像、視差推定部103から視差情報、視点位置調整部161から仮想視点位置と補間方向の情報が入力される。
画像合成部162は、これらの情報に基づいて、LR画像に、調整した視点位置の画像を合成して、合成されたN視点画像を、後段の表示制御部106に出力する。
[出力位相の算出処理]
まず、図23を参照して、視点位置調整部161の出力位相の算出処理について説明する。視点位置調整部231は、信頼度算出部201から信頼度に応じて、生成すべき仮想視点画像の視差、つまり、生成する仮想視点画像の位置(位相)を決定する。
具体的には、視点位置調整部231は、0乃至1の値を持つ信頼度に応じて、図23に示すような仮想視点位置の決定処理を行う。信頼度は、値が大きいと信頼度が高いといえ、値が小さいと信頼度が低いといえる。
図23は、信頼度=0乃至1の場合における仮想視点画像位置の設定例を示した図である。視点位置=0は、入力L画像に対応する視点位置であり、視点位置=1は、入力R画像に対応する視点位置である。
すなわち、信頼度=1のライン上の画像241(画像b)は、左視点画像(L画像)入力部101から入力する入力L画像に対応し、画像242(画像h)は、右視点画像(R画像)入力部102から入力する入力R画像に対応する。
信頼度=1のライン上のその他の縦ラインは、信頼度が1である場合、仮想視点画像生成部202において生成する仮想視点画像の位置(位相)を示す。この例では、入力LR画像を含めて、a乃至iまで合計9個の異なる視点の画像を生成して出力するものとする。
信頼度=1の場合は、視点位置調整部231は、図23の上段にある画像a乃至iを仮想視点画像の設定位置として決定し、この仮想視点位置情報を画像合成部162に出力する。
なお、仮想視点画像の生成処理は、先に、図5乃至図7を参照して説明した処理に従って行われる。
また、信頼度=0.5、すなわち中程度の場合は、視点位置調整部231は、図23の中段にある画像243(画像a2乃至i2)を仮想視点画像の設定位置として決定し、この仮想視点位置情報を画像合成部162に出力する。
この中低度の信頼度=0.5の場合、図23に示されるように、仮想視点画像a2乃至i2の視差範囲は、信頼度=1の場合の仮想視点画像a〜iの視差範囲より狭くなる。
また、信頼度=0の場合は、視点位置調整部231は、図23の下段にある画像244(画像a3乃至i3)を仮想視点画像の設定位置として決定し、この仮想視点位置情報を画像合成部162に出力する。
なお、図23の下段にある画像a3乃至i3の画像位置は、入力R画像の画像位置に対応する。すなわち、この場合、新たな仮想視点画像を生成することなく、入力R画像をそのまま出力する。また、この場合、仮想視点画像生成部202は、入力L画像についてもそのまま出力し、表示部には入力LR画像のみが出力されることになる。
視点位置調整部231は、仮想視点画像の設定位置(位相)の算出処理を以下のアルゴリズムに従って実行する。
信頼度R=1の場合に生成する仮想視点画像については予め決定しておく。例えば、図23に示すa〜iの位置である。求めた信頼度をR(0≦R≦1)とする。元の視点位置をV0とし、信頼度R=0のとき、右に収束させる場合、 信頼度Rに応じて設定される仮想視点画像位置(位相)Vは、次の式(6)で表わされる。
V=(V0−1)・R+1 ・・・(6)
[補間方向の選択処理]
次に、図24を参照して、視点位置調整部231の補間方向の選択処理について説明する。図24の例においては、横軸に位相が示されており、縦軸に信頼度Rが示されている。なお、図24の例においては、信頼度R=0で収束する位置が、右(1)の場合について説明する。
視点位置調整部231は、信頼度に応じて、補間方向を選択する。その際、上述したように、信頼度が大の場合、左右画像の不整合が小さいことから、視点位置調整部231は、信頼度が所定の閾値より小さい場合、仮補間方向として、右を設定する。すなわち、この場合、視点位置調整部231は、例えば、左への補間方向の切り替えを禁止する。
一方、視点位置調整部231は、信頼度が所定の閾値以上の場合、近い方の画像から補間するように、仮補間方向として、すなわち、視点位相が0.5以下であるとき左を設定し、視点位相が0.5より大きいとき右を設定する。すなわち、この場合、視点位置調整部161は、補間方向の切り替えを行う(許可する)。
これにより、左右画像の不整合が大きい場合の補間方向の切り替えを防ぐことができる。
ただし、さらに、視点位置調整部231は、図11を参照して上述した視点位置調整部161と同様に、時間安定化処理を行う。すなわち、視点位置調整部231は、ある一定時間、仮補間方向が左であれば、補間方向を左に設定し、ある一定時間、仮補間方向が右であれば、補間方向を右に設定する。それ以外の場合、視点位置調整部231は、前のフレームと同じ方向を補間方向に設定する。
なお、開始フレームの場合、仮補間方向(近い画像)が補間方向に設定される。
これにより、矢印Cや矢印Dに示される補間方向の切り替えが頻繁に発生するのを抑制することができる。すなわち、補間方向の高頻度の時間変動と、左右両眼別々のタイミングでの変動を抑制することができる。
なお、上記説明においては、信頼度R=0で収束する位置が、右(1)の場合の例を示したが、左(0)であってもよい。R=0で収束する位置が左(0)の場合、信頼度が所定の閾値thより小さい場合、仮補間方向として、左が設定される。
[画像処理装置の処理例]
次に、図25のフローチャートを参照して、図17の画像処理装置200の画像処理について説明する。なお、図25のステップS201、S202、S205、およびS206の処理は、図14のステップS101、S102、S104、およびS105の処理と基本的に同様の処理を行う。
ステップS201において、左視点画像(L画像)入力部101および右視点画像(R画像)入力部102は、それぞれ、左視点画像(L画像)および右視点画像(R画像)を入力する。入力された左視点画像(L画像)および右視点画像(R画像)は、視差推定部103、信頼度算出部201、および仮想視点画像生成部202に供給される。
ステップS202において、視差推定部103は、供給された左視点画像(L画像)および右視点画像(R画像)を用いて、図3および図4を参照して上述したように、視差を推定する。視差推定部103による推定結果の視差情報は、信頼度算出部201および仮想視点画像生成部202に供給される。
ステップS203において、信頼度算出部201は、図18乃至図21を参照して上述したように、視差推定部103が入力LR画像に基づいて推定した各画素単位あるいは画素領域単位の視差情報の信頼度を算出する。信頼度算出部201は、算出した信頼度の情報を、仮想視点画像生成部202に供給する。
ステップS204およびS205において、仮想視点画像生成部202は、仮想視点画像生成処理を行う。
すなわち、ステップS204において、視点位置調整部231は、視点位置を調整する。視点位置の調整処理については、図26を参照して後述するが、ステップS204により、N視点分の出力位相位置の情報と、N視点分の補間方向の情報が生成され、画像合成部162に供給される。
画像合成部162には、さらに、左視点画像(L画像)入力部101からL画像、右視点画像(R画像)入力部102からR画像、視差推定部103から視差情報が入力される。
ステップS205において、画像合成部162は、これらの情報に基づいて、LR画像に、調整した視点位置の画像を合成する。
すなわち、図12および図13を参照して上述したように、画像合成部162の一視点画像合成部171は、出力位相位置に対応する仮想視点画像を、入力L画像および入力R画像を用い、視差情報に基づいて生成する。一視点画像合成部171は、補間方向に対応する方向(右または左)の画像を用いて生成された仮想視点画像を選択して、合成画像として、後段の表示制御部106に出力する。
ステップS206において、表示制御部106は、表示部110にN視点画像を表示させる。
[視点位置調整処理の例]
次に、図26のフローチャートを参照して、図25のステップS204における視点位置調整処理の例について説明する。なお、図26の例においては、信頼度が0のときに右に収束させる例が示されている。
視点位置調整部231は、ステップS211において、図23を参照して上述したように、信頼度に基づいて出力位相を算出する。ステップS211の処理により算出された出力位相位置は、画像合成部162に出力される。
ステップS212において、視点位置調整部231は、図24を参照して上述した補間方向の選択処理を行う。この補間方向の選択処理について、図27のフローチャートを参照して説明する。
ここで、nは、視点番号、Nは、総視点数、Rtは、信頼度、R_thは、閾値(パラメータ)、t(0≦t<T0)は、時間(フレーム)、T0は、ある時間(パラメータ)、t0=min(T0,t)をそれぞれ表している。さらに、Vn,tは、視点位相、Dn,tは、補間方向、D’n,tは、仮補間方向をそれぞれ表している。
ステップS221において、視点位置調整部231は、tに-1を代入する。ステップS222において、視点位置調整部231は、すべてのシーンが終了したか否かを判定し、すべてのシーンが終了したと判定した場合、補間方向選択処理を終了する。
ステップS222において、すべてのシーンが終了していないと判定された場合、処理は、ステップS223に進む。視点位置調整部231は、ステップS223において、tにt+1を代入し、ステップS224において、nに0を代入する。
視点位置調整部231は、ステップS225において、nがN以上であるか否かを判定し、nがN以上であると判定した場合、ステップS222に戻り、それ以降の処理が繰り返される。
ステップS225において、nがN以上ではないと判定された場合、処理は、ステップS226に進む。視点位置調整部231は、ステップS226において、nにn+1を代入し、ステップS227において、RtがR_thより小さいか否かを判定する。ステップS227において、RtがR_th以上であると判定された場合、処理は、ステップS228に進む。
ステップS228において、視点位置調整部231は、Vn,tが0.5以下であるか否かを判定し、Vn,tが0.5以下であると判定した場合、ステップS229に進み、D’n,tに”left”(左)を代入する。すなわち、ステップS229において、左が仮補間方向に設定される。
ステップS227において、RtがR_thより小さいと判定された場合、処理は、ステップS230に進む。また、ステップS228において、Vn,tが0.5より大きいと判定した場合、処理は、ステップS230に進む。
ステップS230において、視点位置調整部231は、D’n,tに”right”(右)を代入する。すなわち、ステップS230において、右が仮補間方向に設定される。
ステップS231において、視点位置調整部231は、tが0であるか否かを判定し、tが0ではないと判定した場合、処理は、ステップS232に進む。ステップS232において、視点位置調整部231は、T0とtの小さい方をt0に代入する。
ステップS233において、視点位置調整部231は、s=t-t0乃至tにおいて、すべてD’n,s=”left”であるか否かを判定する。ステップS233において、s=t-t0乃至tにおいて、すべてD’n,s=”left”ではないと判定された場合、ステップS234に進む。
ステップS234において、視点位置調整部231は、s=t-t0乃至tにおいて、すべてD’n,s=” right”であるか否かを判定する。ステップS234において、s=t-t0乃至tにおいて、すべてD’n,s=” right”であると判定された場合、ステップS235に進む。ステップS235において、視点位置調整部231は、Dn,tに”right”(右)を代入する。すなわち、ステップS235において、右が補間方向に設定される。
ステップS233において、すべてD’n,s=”left”であると判定された場合、処理は、ステップS236に進む。ステップS236において、視点位置調整部231は、Dn,tに”left”(左)を代入する。すなわち、ステップS236において、左が補間方向に設定される。
また、ステップS234において、s=t-t0乃至tにおいて、すべてD’n,s=” right”ではないと判定された場合、ステップS237に進む。ステップS237において、視点位置調整部231は、Dn,tに” Dn,t-1を代入する。すなわち、ステップS237において、前フレームの補間方向が、補間方向に設定される。
一方、ステップS231において、tが0であると判定された場合、処理は、ステップS238に進む。ステップS238において、視点位置調整部231は、Dn,tに” D’n,tを代入する。すなわち、ステップS238において、仮補間方向が、補間方向に設定される。
なお、図27の例において、ステップS231以降が時間安定化処理である。
以上のように、信頼度に応じて補間方向を設定するようにしたので、左右画像の不整合が大きい場合の補間方向の切り替えを防ぐことができる。
さらに、時間安定化処理を行うようにしたので、補間方向の切り替えが頻繁に発生するのを抑制することができる。すなわち、補間方向の高頻度の時間変動と、左右両眼別々のタイミングでの変動を抑制することができる。
<4.第3の実施の形態(運動視差)>
[画像処理装置の表示部の例]
図28は、本技術を適用した画像処理装置の構成例を説明する図である。
図28の例において、画像処理装置300が表示を制御する表示部301は、例えば、多視点裸眼3Dディスプレイで構成されている。
この場合、表示部301に対して、ユーザが見る位置を、例えば図中左から右へ移動すると、見る視点が切り替わって、それが運動視差として体験できるようにするためには、位置に応じて異なる視点画像を提示する必要がある。
例えば、表示部301に対して左から中央位置までを左(L画像)から補間し、表示部301に対して中央位置から右までを右(R画像)から補間することにすると、視点の補間方向が切り替わる場所(例えば、中央位置)が存在する。したがって、図28の例の場合も、補間方向の切り替わりでエラーが目立つようになる。
これに対して、画像処理装置300は、図2の画像処理装置100と同様に、L画像とR画像との視差情報から得られる視差分布を基に視差量を調整し、仮想視点位置の決定処理や補間方向の選択処理等を実行する。
[画像処理装置の構成例]
図29は、図28の画像処理装置の構成例を示すブロック図である。
図29の例において、画像処理装置300は、左視点画像(L画像)入力部101、右視点画像(R画像)入力部102、視差推定部103、仮想視点画像生成部311、表示制御部106を含むように構成される。画像処理装置300において生成した画像が表示部301に出力される。
図29の画像処理装置300は、左視点画像(L画像)入力部101、右視点画像(R画像)入力部102、視差推定部103、および表示制御部106を備える点が、図2の画像処理装置100と共通している。図29の画像処理装置300は、仮想視点画像生成部105が仮想視点画像生成部311に入れ替わった点と、表示部110が表示部301に入れ替わった点が、図2の画像処理装置100と異なっている。
仮想視点画像生成部311には、左視点画像(L画像)入力部101からのL画像、右視点画像(R画像)入力部102からのR画像、および視差推定部103からの視差情報が入力される。
仮想視点画像生成部311は、これらの各情報を入力して、仮想視点画像を生成する。なお、図2の仮想視点画像生成部105においては、スケール値の時間変化(時間変動)によって、補間方向も時間変化することに対して、図11および図16を参照して説明した補間方向の選択処理がなされた。これに対して、図29の仮想視点画像生成部311の場合、補間方向の時間変化は特になく、視点位置自体が移動することにより、補間方向が切り替わってしまうことに対して、図11および図16を参照して説明した補間方向の選択処理がなされる。視点位置自体が移動することは、すなわち、時間変動に対して、空間変動(位置変動)である。
すなわち、仮想視点画像生成部311は、空間変動(位置変動)により補間方向が切り替わってしまうことに対し、視差推定部103からの視差情報から得られる視差分布を基に視差量を調整し、仮想視点位置の決定処理や補間方向の選択処理等を実行する。
[仮想視点画像生成部の構成例]
図30は、仮想視点画像生成部の構成例を示す図である。
図30の例において、仮想視点画像生成部311は、視点位置調整部321および画像合成部162を含むように構成されている。図30の仮想視点画像生成部311は、視点位置調整部161が視点位置調整部321と入れ替わった点のみが図8の仮想視点画像生成部105と異なっている。
すなわち、視点位置調整部321には、視差推定部103から視差情報が供給される。視点位置調整部321は、視差推定部103から視差情報を基にして視差量を調整し、仮想視点位置(位相)と補間方向を決定する。その際、視点位置調整部321においては、図31に示されるように、スケール値が0のときの収束点が右(左)でなくてもよい自由度があることのみが視点位置調整部161の場合と異なっている。
すなわち、視点位置調整部321は、仮想視点画像の設定位置(位相)の算出処理を以下のアルゴリズムに従って実行する。
スケール値=1の場合に生成する仮想視点画像については予め決定しておく。例えば、図31に示すa〜iの位置である。求めたスケール値をS(0≦S)とする。元の視点位置をV0とし、スケール値0のとき、中央に収束させる場合、 スケール値に応じて設定される仮想視点画像位置(位相)Vは、次の式(7)で表わされる。
V=(V0−0.5)・S+1 ・・・(7)
スケール値が0のときに、例えば、中央(0.5)に収束させたとしても、表示部301を見るユーザの顔の位置が移動すれば、補間方向の切り替えが起こり得る。したがって、これに対して、視点位置調整部321は、図11を参照して上述した視点位置調整部161と同様に、スケール値に応じて補間方向を選択する。
その際、スケール値(視差レンジ)が小の場合、左右画像の不整合が小さいことから、視点位置調整部321は、スケール値が所定の閾値より大きい場合、仮補間方向として、右を設定する。すなわち、この場合、視点位置調整部321は、例えば、左への補間方向の切り替えを禁止する。
一方、視点位置調整部321は、スケール値が所定の閾値以下の場合、近い方の画像から補間するように、仮補間方向として、すなわち、視点位相が0.5以下であるとき左を設定し、視点位相が0.5より大きいとき右を設定する。すなわち、この場合、視点位置調整部321は、補間方向の切り替えを行う(許可する)。
そして、視点位置調整部321は、視点位置調整部161と同様に、時間安定化処理を行う。例えば、ある一定時間、仮補間方向が左であれば、補間方向が左に設定され、ある一定時間、仮補間方向が右であれば、補間方向が右に設定される。それ以外の場合、視点位置調整部161は、前のフレームと同じ方向を補間方向に設定する。
なお、図29の画像処理装置300の処理については、基本的に、図14乃至図16を参照して上述した、図2の画像処理装置100と同様の処理を行うので、画像処理装置300の処理例は、省略される。
以上のように、運動視差の場合も、左右画像の不整合が大きいときの補間方向の切り替えを防ぐことができる。
<5.第4の実施の形態(運動視差+顔検出)>
[画像処理装置の表示部の例]
図32は、本技術を適用した画像処理装置の構成例を説明する図である。
図32の例において、画像処理装置400が表示を制御する表示部401は、例えば、図28の表示部301と同様に、多視点裸眼3Dディスプレイで構成されている。
そして、表示部401の筐体(画面側)には、さらに、ユーザの顔の位置を推定する顔検出カメラ402が設けられている。顔検出カメラ402の設置位置は、画面上部など考えられるが、限定されない。
この場合、表示部401に対して、ユーザが見る位置を、例えば図中左から右へ移動すると、見る視点が切り替わって、それが運動視差として体験できるようにするためには、一に応じて異なる視点画像を提示する必要がある。
例えば、表示部401に対して左から中央位置までを左(L画像)から補間し、表示部401に対して中央位置から右までを右(R画像)から補間することにすると、視点の補間方向が切り替わる場所(中央位置)が存在する。したがって、図32の例の場合も、補間方向の切り替わりでエラーが目立つようになる。
これに対して、画像処理装置400は、L画像とR画像との視差情報から得られる視差分布を基に視差量を調整し、仮想視点位置の決定処理や補間方向の選択処理等を実行する。その際に、画像処理装置400は、顔検出カメラ402から検出される顔の位置に応じて補間方向の選択処理を行う。
なお、図32の例においては、顔検出カメラ402が設けられる例を説明したが、顔検出カメラに限定されず、ユーザの顔を検出可能であれば、センサなど他の装置であってもよい。
[画像処理装置の構成例]
図33は、図32の画像処理装置の構成例を示すブロック図である。
図33の例において、画像処理装置400は、左視点画像(L画像)入力部101、右視点画像(R画像)入力部102、視差推定部103、視点位置測定部411、仮想視点画像生成部412、表示制御部106を含むように構成される。画像処理装置100において生成した画像が表示部401に出力される。
図33の画像処理装置400は、左視点画像(L画像)入力部101、右視点画像(R画像)入力部102、視差推定部103、および表示制御部106を備える点が、図2の画像処理装置100と共通している。図33の画像処理装置400は、視点位置測定部411が追加された点と、仮想視点画像生成部105が仮想視点画像生成部412に入れ替わった点とが、図2の画像処理装置100と異なっている。さらに、図33の画像処理装置400は、表示部110が表示部401に入れ替わった点も、図2の画像処理装置100と異なっている。
すなわち、視点位置測定部411は、顔検出カメラ402から入力される画像を用いて、ユーザの顔の位置を検出し、検出した顔の位置に基づいて、右眼に入る視点および左眼に入る視点を推定する。視点位置測定部411は、推定した左右の視点位置情報を、仮想視点画像生成部412に供給する。
仮想視点画像生成部412には、左視点画像(L画像)入力部101からのL画像、右視点画像(R画像)入力部102からのR画像、視差推定部103からの視差情報、および視点位置測定部411からの視点位置情報が入力される。
仮想視点画像生成部412は、これらの各情報を入力して、仮想視点画像を生成する。なお、図2の仮想視点画像生成部105においては、スケール値の時間変化(時間変動)によって、補間方向も時間変化することに対して、図11および図16を参照して説明した補間方向の選択処理がなされた。これに対して、図33の仮想視点画像生成部412の場合、図29の仮想視点画像生成部311と同様な補間方向の選択処理がなされる。すなわち、図33の仮想視点画像生成部412においては、補間方向の時間変化は特になく、視点位置自体が移動することにより、補間方向が切り替わってしまうことに対して、図11および図16などを参照して上述した補間方向の選択処理がなされる。視点位置自体が移動することは、すなわち、時間変動に対して、空間変動(位置変動)である。
したがって、仮想視点画像生成部412は、図29の仮想視点画像生成部311と同様に、空間変動(位置変動)により補間方向が切り替わってしまうことに対し、視差推定部103からの視差情報から得られる視差分布を基に視差量を調整し、仮想視点位置の決定処理や補間方向の選択処理等を実行する。
その際に、仮想視点画像生成部412は、図29の仮想視点画像生成部311と異なり、視点位置測定部411からの左右の視点位置情報を用いて、仮想視点位置の決定処理や補間方向の選択処理等を実行する。そして、仮想視点画像生成部412は、視点位置測定部411から得られた左右の視点位置情報に基づく2視点画像を表示制御部106に供給する。
表示制御部106は、仮想視点画像生成部412の生成した2視点の画像を表示部401に出力する。
[視点位置測定部の動作]
次に、図34を参照して、視点位置測定部411の動作について説明する。視点位置測定部411は、顔検出カメラ402から入力される画像から、高速な顔検出アルゴリズムを用いて、顔の位置を検出する。
例えば、視点位置測定部411は、顔の位置として、顔検出カメラ402の中心位置から、ユーザの左眼の位置までの距離XIと、顔検出カメラ402の中心位置から、ユーザの右眼の位置までの距離XRとを検出する。
例えば、P.Viola,M.Jones,”Rapid Object Detection Using a Boosted Cascade of Simple Features”,IEEE Conf. on CVPR 2001や、C.Huang et al.,”High-Performance Rotation Invariant Multiview Face Detection”,IEEE PAMI 2007などに記載の顔検出アルゴリズムが用いられる。なお、これらの顔検出アルゴリズムに限定されない。
次に、視点位置測定部411は、検出した顔の大きさから距離Yを推定し、顔の位置XI, XRと、距離Yから、右眼および左眼に入る視点を推定する。視点位置測定部411は、推定した左右の視点位置情報を、仮想視点画像生成部412に供給する。
[仮想視点画像生成部の構成]
図35は、仮想視点画像生成部412の構成例を示す図である。
図35の例において、仮想視点画像生成部412は、視点位置調整部421および画像合成部162を含むように構成されている。図35の仮想視点画像生成部412は、視点位置調整部161が視点位置調整部421と入れ替わった点のみが図8の仮想視点画像生成部105と異なっている。
視点位置調整部421には、視点位置測定部411からの左右の視点位置情報が供給される。視点位置調整部421は、視点位置測定部411からの左右の視点位置情報に基づいて、仮想視点位置(位相)と補間方向を決定する。
すなわち、視点位置調整部421は、視点位置測定部411から得られた2視点をそのまま出力視点位置として決定する。また、視点位置調整部421は、視点位相に応じて、仮補間方向を設定し、顔の位置の移動に応じて時間安定化処理を行って補間方向を決定する。
具体的には、顔の位置の移動が所定の閾値よりも小さい場合、前のフレームと同じ補間方向が選択される。すなわち、この場合、補間方向の切り替えが禁止される。顔の位置の移動が所定の閾値よりも大きい場合、補間方向の切り替えが許可される。ただし、この場合、時間安定化処理が実行され、仮補間方向が左のとき、一定時間左が続いているのであれば、左が補間方向に設定される。また、仮補間方向が右のとき、一定時間右が続いているのであれば、左が補間方向に設定される。そのどちらでもない場合、前のフレームと同じ補間方向が設定される。
視点位置調整部421は、決定した2視点の仮想視点位置の情報と補間方向の情報を画像合成部162供給する。
画像合成部162には、左視点画像(L画像)入力部101からL画像、右視点画像(R画像)入力部102からR画像、視差推定部103から視差情報、視点位置調整部421から2視点の仮想視点位置と補間方向の情報が入力される。
画像合成部162は、これらの情報に基づいて、LR画像に、調整した2視点位置の画像を合成して、後段の表示制御部106に出力する。
[画像処理装置の処理例]
次に、図36のフローチャートを参照して、図33の画像処理装置400の画像処理について説明する。なお、図36のステップS401およびS402の処理は、図14のステップS101およびS102の処理と基本的に同様の処理を行う。
ステップS401において、左視点画像(L画像)入力部101および右視点画像(R画像)入力部102は、それぞれ、左視点画像(L画像)および右視点画像(R画像)を入力する。入力された左視点画像(L画像)および右視点画像(R画像)は、視差推定部103、および仮想視点画像生成部412に供給される。
ステップS402において、視差推定部103は、供給された左視点画像(L画像)および右視点画像(R画像)を用いて、図3および図4を参照して上述したように、視差を推定する。視差推定部103による推定結果の視差情報は、仮想視点画像生成部412に供給される。
ステップS403において、視点位置測定部411は、顔検出カメラ402から入力される画像を用いて、視点位置を測定する。すなわち、視点位置測定部411は、顔検出カメラ402から入力される画像を用いて、図34を参照して上述したように、ユーザの顔の位置を検出し、検出した顔の位置に基づいて、右眼に入る視点および左眼に入る視点を推定する。視点位置測定部411は、推定した左右の視点位置情報を、仮想視点画像生成部412に供給する。
ステップS404およびS405において、仮想視点画像生成部412は、仮想視点画像生成処理を行う。
すなわち、ステップS404において、視点位置調整部421は、視点位置を調整する。視点位置の調整処理については、図37を参照して後述するが、ステップS404により、2視点分の出力位相位置の情報と、2視点分の補間方向の情報が生成され、画像合成部162に供給される。
画像合成部162には、さらに、左視点画像(L画像)入力部101からL画像、右視点画像(R画像)入力部102からR画像、視差推定部103から視差情報が入力される。
ステップS405において、画像合成部162は、これらの情報に基づいて、LR画像に、調整した2視点位置の画像を合成する。
すなわち、図12および図13を参照して上述したように、画像合成部162の一視点画像合成部171−1および171−2は、出力位相位置に対応する仮想視点画像を、入力L画像および入力R画像を用い、視差情報に基づいて生成する。一視点画像合成部171−1および171−2は、補間方向に対応する方向(右または左)の画像を用いて生成された仮想視点画像を選択して、2視点の合成画像として、後段の表示制御部106に出力する。
ステップS406において、表示制御部106は、表示部401に2視点画像を表示させる。
[視点位置調整処理の例]
次に、図37のフローチャートを参照して、図36のステップS404における視点位置調整処理の例について説明する。
視点位置調整部421は、ステップS411において、視点位置測定部411からの視点位置情報に基づき、視点位置測定部411により測定された2視点を出力位相として設定する。ステップS411の処理により設定された2視点の出力位相位置は、画像合成部162に出力される。
ステップS412において、視点位置調整部421は、視点位置測定部411からの視点位置情報に基づいて、補間方向の選択処理を行う。この補間方向の選択処理について、図38のフローチャートを参照して説明する。
ここで、nは、視点番号、Pn,tは、眼の位置、P_thは、閾値(パラメータ)、t(0≦t<T0)は、時間(フレーム)、T0は、ある時間(パラメータ)、t0=min(T0,t)をそれぞれ表している。さらに、Vn,tは、視点位相、Dn,tは、補間方向、D’n,tは、仮補間方向をそれぞれ表している。
ステップS421において、視点位置調整部421は、tに-1を代入する。ステップS422において、視点位置調整部421は、すべてのシーンが終了したか否かを判定し、すべてのシーンが終了したと判定した場合、補間方向選択処理を終了する。
ステップS422において、すべてのシーンが終了していないと判定された場合、処理は、ステップS423に進む。視点位置調整部421は、ステップS423において、tにt+1を代入し、ステップS424において、nに0を代入する。
視点位置調整部421は、ステップS425において、nが2以上であるか否かを判定し、nが2以上であると判定した場合、ステップS422に戻り、それ以降の処理が繰り返される。この2は、視点の数である。
ステップS425において、nがN以上ではないと判定された場合、処理は、ステップS426に進む。視点位置調整部421は、ステップS426において、nにn+1を代入する。
ステップS427において、視点位置調整部421は、Vn,tが0.5以下であるか否かを判定し、Vn,tが0.5以下であると判定した場合、ステップS428に進み、D’n,tに”left”(左)を代入する。すなわち、ステップS428において、左が仮補間方向に設定される。
ステップS427において、Vn,tが0.5より大きいと判定した場合、処理は、ステップS429に進む。ステップS429において、視点位置調整部421は、D’n,tに”right”(右)を代入する。すなわち、ステップS429において、右が仮補間方向に設定される。
ステップS430において、視点位置調整部421は、tが0であるか否かを判定し、tが0ではないと判定した場合、処理は、ステップS431に進む。ステップS431において、視点位置調整部421は、視点位置測定部411からの視点位置情報に基づいて、眼の位置が大きく移動したか否かを判定する。
ステップS431において、眼の位置が大きく移動していないと判定された場合、処理は、ステップS432に進む。ステップS432において、視点位置調整部421は、T0とtの小さい方をt0に代入する。
ステップS433において、視点位置調整部421は、s=t-t0乃至tにおいて、すべてD’n,s=”left”であるか否かを判定する。ステップS433において、s=t-t0乃至tにおいて、すべてD’n,s=”left”ではないと判定された場合、ステップS434に進む。
ステップS434において、視点位置調整部421は、s=t-t0乃至tにおいて、すべてD’n,s=” right”であるか否かを判定する。ステップS434において、s=t-t0乃至tにおいて、すべてD’n,s=” right”であると判定された場合、ステップS435に進む。ステップS435において、視点位置調整部421は、Dn,tに”right”(右)を代入する。すなわち、ステップS435において、右が補間方向に設定される。
ステップS433において、すべてD’n,s=”left”であると判定された場合、処理は、ステップS436に進む。ステップS436において、視点位置調整部421は、Dn,tに”left”(左)を代入する。すなわち、ステップS436において、左が補間方向に設定される。
ステップS434において、s=t-t0乃至tにおいて、すべてD’n,s=” right”ではないと判定された場合、ステップS437に進む。また、ステップS431において、眼の位置が大きく移動したと判定された場合、処理は、ステップS437に進む。ステップS437において、視点位置調整部421は、Dn,tに” Dn,t-1を代入する。すなわち、ステップS437において、前フレームの補間方向が、補間方向に設定される。
一方、ステップS430において、tが0であると判定された場合、処理は、ステップS438に進む。ステップS438において、視点位置調整部421は、Dn,tに” D’n,tを代入する。すなわち、ステップS438において、仮補間方向が、補間方向に設定される。
なお、図38の例において、ステップS430以降が時間安定化処理である。
以上のように、検出された顔の位置に応じて補間方向を設定するようにしたので、左右画像の不整合が大きい場合の補間方向の切り替えを防ぐことができる。
さらに、時間安定化処理を行うようにしたので、補間方向の切り替えが頻繁に発生するのを抑制することができる。すなわち、補間方向の高頻度の時間変動と、左右両眼別々のタイミングでの変動を抑制することができる。
なお、上記説明においては、表示部401を見ているユーザが1人の場合の例を説明した。この場合、上述したように、左右の眼に入る2視点分の画像のみ合成すればよい。一方、表示部401を見ているユーザが複数人の場合、人数分に、上述した2視点分の場合と同様の処理が行われる。視点位置が重なる場合には、例えば、先に見ていた人を優先する、前に見ていた人を優先する、あるいは、画面中央に近い人を優先するなど、優先度を付けるようにしてもよい。
<6.第5の実施の形態(ヘッドマウントディスプレイ)>
[画像処理装置の表示部の例]
図39は、本技術を適用した画像処理装置を説明する図である。
図39のAにおいては、従来の画像処理装置が表示を制御する表示部12が示されている。図39のBにおいては、本技術を適用した画像処理装置500が表示を制御する表示部501が示されている。
表示部12および表示部501は、例えば、ヘッドマウントディスプレイで構成されており、ユーザの頭部に装着されている。
図39のAに示されるように、ユーザが表示部12を付けて平行移動や回転を行っても、従来の画像処理装置で処理される出力視点に変化はなく、従来の表示部12に表示される左視点画像a1および右視点画像b1は同じであった。
これに対して、図39のBに示されるように、ユーザが表示部501を付けて平行移動や回転を行うと、図32の例の場合と同様に、見る視点を切り替えて、それが運動視差として体験できるようにすることができる。そのためには、画像処理装置500において、位置に応じて異なる視点画像を提示する必要がある。
例えば、ユーザが左側を向く場合、左(L画像)から補間することで、表示部501には、左視点画像a1および右視点画像b1が表示される。また、ユーザが右側を向く場合、右(L画像)から補間することで、表示部501には、左視点画像a2および右視点画像b2が表示される。
このような場合、図32の例の場合と同様に、視点の補間方向が切り替わる場所(中央位置)が存在し、補間方向の切り替わりでエラーが目立つようになる。
これに対して、画像処理装置500も、L画像とR画像との視差情報から得られる視差分布を基に視差量を調整し、仮想視点位置の決定処理や補間方向の選択処理等を実行する。その際に、画像処理装置500は、図33で後述する視点位置測定部511から検出される視点位置(ユーザの顔の位置および向き)に応じて補間方向の選択処理を行う。
[画像処理装置の構成例]
図40は、図39の画像処理装置500の構成例を示すブロック図である。
図40の例において、画像処理装置500は、左視点画像(L画像)入力部101、右視点画像(R画像)入力部102、視差推定部103、視点位置測定部511、仮想視点画像生成部412、表示制御部106を含むように構成される。画像処理装置100において生成した画像が表示部501に出力される。
図40の画像処理装置500は、左視点画像(L画像)入力部101、右視点画像(R画像)入力部102、視差推定部103、表示制御部106、および仮想視点画像生成部412を備える点が、図33の画像処理装置400と共通している。図40の画像処理装置500は、視点位置測定部411が視点位置測定部511に入れ替わった点が、図33の画像処理装置400と異なっている。さらに、図40の画像処理装置500は、表示部401が表示部501に入れ替わった点も、図33の画像処理装置400と異なっている。
すなわち、視点位置測定部511は、例えば、位置(加速度)センサなどで構成されており、ユーザの動き(ユーザの顔の位置および向き)を検出し、検出した動きに基づいて、右眼に入る視点および左眼に入る視点を推定する。視点位置測定部511は、推定した左右の視点位置情報を、仮想視点画像生成部412に供給する。
仮想視点画像生成部412には、左視点画像(L画像)入力部101からのL画像、右視点画像(R画像)入力部102からのR画像、視差推定部103からの視差情報、および視点位置測定部511からの視点位置情報が入力される。
仮想視点画像生成部412は、これらの各情報を入力して、仮想視点画像を生成する。なお、図33で上述したように、仮想視点画像生成部412は、視点位置自体が移動することにより補間方向が切り替わってしまうことに対し、視差推定部103からの視差情報から得られる視差分布を基に視差量を調整し、仮想視点位置の決定処理や補間方向の選択処理等を実行する。
その際に、仮想視点画像生成部412は、視点位置測定部511からの左右の視点位置情報を用いて、仮想視点位置の決定処理や補間方向の選択処理等を実行する。そして、仮想視点画像生成部412は、視点位置測定部411から得られた左右の視点位置情報に基づく2視点画像を表示制御部106に供給する。
表示制御部106は、仮想視点画像生成部412の生成した2視点の画像を表示部501に出力する。
なお、図40の画像処理装置500の処理については、基本的に、図36乃至図38を参照して上述した、図33の画像処理装置400と同様の処理を行うので、画像処理装置500の処理例は、省略される。
以上のように、ヘッドマウントディスプレイにおける運動視差の場合も、左右画像の不整合が大きいときの補間方向の切り替えを防ぐことができる。
なお、上記説明においてはリアルタイム処理の例を説明してきたが、本技術は、次に説明するようにオフライン処理にも適用することが可能である。
<7.第6の実施の形態(オフライン処理)>
[画像処理装置の構成例]
図41は、本技術を適用した画像処理装置の他の構成例を示すブロック図である。
図41の例において、画像処理装置600は、左視点画像(L画像)入力部101、右視点画像(R画像)入力部102、視差推定部103、シーンチェンジ検出部601、仮想視点画像生成部602、表示制御部106を含むように構成される。画像処理装置600において生成した画像が表示部110に出力される。
図41の画像処理装置600は、左視点画像(L画像)入力部101、右視点画像(R画像)入力部102、視差推定部103、および表示制御部106を備える点が、図2の画像処理装置100と共通している。図41の画像処理装置600は、シーンチェンジ検出部601が追加された点と、仮想視点画像生成部105が仮想視点画像生成部602に入れ替わった点とが、図2の画像処理装置100と異なっている。
すなわち、左視点画像(L画像)入力部101からのL画像は、シーンチェンジ検出部601にも供給される。
シーンチェンジ検出部601は、左視点画像(L画像)入力部101からのL画像を用いて、シーンチェンジの有無を検出し、検出したシーンチェンジの情報を、仮想視点画像生成部602に供給する。
左視点画像(L画像)入力部101からのL画像と、右視点画像(R画像)入力部102からのR画像、視差推定部103からの視差情報、シーンチェンジ検出部601からのシーンチェンジの情報が、仮想視点画像生成部602に供給される。
さらに、左視点画像(L画像)入力部101からタイムコードも、仮想視点画像生成部602に供給される。
仮想視点画像生成部602は、シーンの解析処理を行う。仮想視点画像生成部602は、シーンチェンジ検出部601からのシーンチェンジ情報と視差推定部103からの視差情報とを用いて、シーン毎に視差レンジを測定し記録する。
また、仮想視点画像生成部602は、入力された情報から求められる視差分布(視差レンジ)を基にして、視差量を調整、すなわち生成する仮想視点位置(位相)を決定する。そして、仮想視点画像生成部602は、記録されているシーン毎の視差レンジの情報を用いて、シーンチェンジのとき、シーン毎のスケール値に応じた補間方向の選択処理を行う。
仮想視点画像生成部602は、決定した仮想視点位置(位相)に対応する仮想視点画像を、選択した補間方向の画像に基づいて生成する。仮想視点画像生成部105は、生成した仮想視点画像、すなわち、調整した視点位置の画像を合成して後段の表示制御部106に出力する。
[シーンチェンジ検出部の処理]
図42を参照して、シーンチェンジ検出部601の処理について説明する。
シーンチェンジ検出部601は、画面を複数の領域(図42の例の場合、9つの領域)に分割する。
シーンチェンジ検出部601は、各領域に対して、画素毎に輝度の時間変化量(≧0)を求め、その合計値をDm[m=1,…,9]とする。図42の例の場合、時刻t-1におけるA1領域と、時刻tにおけるA1領域において、画素毎に輝度の時間変化量の合計値D1が求められる。時刻t-1におけるA2領域と、時刻tにおけるA2領域において、画素毎に輝度の時間変化量の合計値D2が求められる。時刻t-1におけるA3領域と、時刻tにおけるA3領域において、画素毎に輝度の時間変化量の合計値D3が求められる。
時刻t-1におけるA4領域と、時刻tにおけるA4領域において、画素毎に輝度の時間変化量の合計値D4が求められる。時刻t-1におけるA5領域と、時刻tにおけるA5領域において、画素毎に輝度の時間変化量の合計値D5が求められる。時刻t-1におけるA6領域と、時刻tにおけるA6領域において、画素毎に輝度の時間変化量の合計値D6が求められる。
時刻t-1におけるA7領域と、時刻tにおけるA7領域において、画素毎に輝度の時間変化量の合計値D7が求められる。時刻t-1におけるA8領域と、時刻tにおけるA8領域において、画素毎に輝度の時間変化量の合計値D8が求められる。時刻t-1におけるA9領域と、時刻tにおけるA9領域において、画素毎に輝度の時間変化量の合計値D9が求められる。
シーンチェンジ検出部601は、Dm<D_th(閾値)となる領域の数Mを求め、M>M_th(閾値)ならば、シーンチェンジありと判定し、それ以外であれば、シーンチェンジなしと判定する。
シーンチェンジ検出部601は、シーンチェンジがあった場合、シーンの番号とシーンのタイムコードを、シーンチェンジ情報として仮想視点画像生成部602に供給する。
[仮想視点画像生成部の構成]
図43は、シーンの解析処理を行う仮想視点画像生成部602の構成例を示す図である。
図43の例において、シーンの解析処理を行う仮想視点画像生成部602は、視点位置調整部611およびメモリ612を含むように構成されている。
視点位置調整部611には、シーンチェンジ検出部601からのシーンチェンジ情報、左視点画像(L画像)入力部101からのタイムコード、および視差推定部103から視差情報が供給される。
視点位置調整部611は、供給される情報を用いて、シーン毎にスケール値の最大値を求め、シーン毎のスケール値の最大値、シーンのタイムコード、およびシーン番号の最大値をメモリ612に記録する。
メモリ612は、シーン毎のスケール値の最大値、シーンのタイムコード、およびシーン番号の最大値を蓄積する。
図44は、補間方向の選択処理と画像合成処理を行う仮想視点画像生成部602の構成例を示す図である。
図44の例において、補間方向の選択処理と画像合成処理を行う仮想視点画像生成部602は、視点位置調整部611、メモリ612、および画像合成部621を含むように構成されている。
視点位置調整部611には、左視点画像(L画像)入力部101からのタイムコード、および視差推定部103から視差情報が供給される。
視点位置調整部611は、視差推定部103から視差情報を基にして視差量を調正し、仮想視点位置(位相)を決定する。また、視点位置調整部611は、メモリ612に記録されているシーン毎のスケール値の最大値、シーンのタイムコード、およびシーン番号の最大値に応じて補間方向を選択する。
視点位置調整部611は、決定した仮想視点位置の情報と補間方向の情報を画像合成部621に供給する。
画像合成部621は、図8の画像合成部162と基本的に同じ構成をしている。画像合成部621には、左視点画像(L画像)入力部101からL画像、右視点画像(R画像)入力部102からR画像、視差推定部103から視差情報、視点位置調整部161から仮想視点位置の情報および補間方向の情報が入力される。
画像合成部621は、これらの情報に基づいて、LR画像に、調整した視点位置の画像を合成して、後段の表示制御部106に出力する。
[画像処理装置の処理例]
次に、図45のフローチャートを参照して、図41の画像処理装置600の画像処理について説明する。なお、図45のステップS601、S602、S606、およびS607の処理は、図14のステップS101、S102、S104、およびS105の処理と基本的に同様の処理を行う。
ステップS601において、左視点画像(L画像)入力部101および右視点画像(R画像)入力部102は、それぞれ、左視点画像(L画像)および右視点画像(R画像)を入力する。
入力された左視点画像(L画像)および右視点画像(R画像)は、視差推定部103および仮想視点画像生成部602に供給される。
ステップS602において、視差推定部103は、供給された左視点画像(L画像)および右視点画像(R画像)を用いて、図3および図4を参照して上述したように、視差を推定する。視差推定部103による推定結果の視差情報は、仮想視点画像生成部602に供給される。
ステップS603において、シーンチェンジ検出部601は、図42を参照して上述したように、シーンチェンジを検出する。シーンチェンジ検出部601は、シーンチェンジがあった場合、シーンの番号とシーンのタイムコードを、シーンチェンジ情報として仮想視点画像生成部602に供給する。
ステップS604、S605、およびS606において、仮想視点画像生成部602は、仮想視点画像生成処理を行う。
すなわち、ステップS604において、視点位置調整部611は、シーン解析処理を行う。シーン解析処理については、図46を参照して後述するが、ステップS604により、シーンが解析され、シーン毎のスケール値の最大値、シーンのタイムコード、およびシーン番号の最大値がメモリ612に保存される。
ステップS605において、視点位置調整部611は、視点位置を調整する。この視点位置の調整処理により、N視点分の出力位相位置の情報と、N視点分の補間方向の情報が生成され、画像合成部621に供給される。
なお、視点位置調整処理は、図15を参照して上述した処理のうち、ステップS115における補間方向選択処理以外の処理は基本的に同様であり、その説明は繰り返しになるので省略する。異なる補間方向選択処理については、図47を参照して後述する。
画像合成部621には、さらに、左視点画像(L画像)入力部101からL画像、右視点画像(R画像)入力部102からR画像、視差推定部103から視差情報が入力される。
ステップS606において、画像合成部621は、これらの情報に基づいて、LR画像に、調整した視点位置の画像を合成し、合成したN視点の画像を表示制御部106に供給する。
ステップS607において、表示制御部106は、表示部110にN視点画像を表示させる。
[シーン解析処理の例]
次に、図46のフローチャートを参照して、図45のステップS604におけるシーン解析処理の例について説明する。
ここで、sceneChangeは、シーンチェンジ情報、sceneNoは、シーン番号(初期値0)、S_max[s]は、シーンsのスケール値の最大値、Stは、スケール値を、それぞれ表している。また、time_codeは、タイムコード、time[s]は、シーンsのタイムコード、scene_maxは、シーン番号の最大値を、それぞれ表している。
視点位置調整部611は、ステップS621において、sceneNoに0を代入し、ステップS622において、tに−1を代入する。
視点位置調整部611は、ステップS623において、sceneNoがscene_maxになったか、すなわち、全シーンが終了したかを判定し、終了したと判定した場合、シーン解析処理を終了する。
ステップS623において、全シーンが終了していないと判定された場合、処理は、ステップS624に進む。視点位置調整部611は、ステップS624において、tにt+1を代入し、ステップS625において、シーンチェンジ検出部601からのシーンチェンジ情報sceneChangeを参照して、シーンチェンジが発生したか否かを判定する。
ステップS625において、シーンチェンジが発生したと判定された場合、処理は、ステップS626に進む。視点位置調整部611は、ステップS626において、sceneNoに、sceneNo+1を代入し、ステップS627において、time[sceneNo]にtを代入し、処理は、ステップS629に進む。
一方、ステップS625において、シーンチェンジが発生していないと判定された場合、処理は、ステップS628に進む。視点位置調整部611は、ステップS628において、S_max[sceneNo]がStより小さいかを判定し、Stより小さいと判定した場合、処理は、ステップS629に進む。
視点位置調整部611は、ステップS629において、S_max[sceneNo]にStを代入し、ステップS623の処理に戻り、それ以降の処理を繰り返す。
ステップS628において、Stより小さくないと判定した場合、ステップS629の処理はスキップされ、処理は、ステップS623に戻り、それ以降の処理が繰り返される。
以上の処理で、視点位置調整部611により、シーンsのスケール値の最大値であるS_max[s]、シーンsのタイムコードであるtime[s]、およびシーン番号の最大値であるscene_maxがメモリ612に保存される。
[補間方向選択処理の例]
次に、図47のフローチャートを参照して、補間方向の選択処理について説明する。なお、この処理は、図45のステップS605の視点位置調整処理のうちの、(すなわち、図15のステップS115における)補間方向選択処理である。
ここで、nは、視点番号、Nは、総視点数、sceneChangeは、シーンチェンジ情報、sceneNoは、シーン番号(初期値0)、S_max[s]は、シーンsのスケール値の最大値、S_thは、閾値(パラメータ)を、それぞれ表している。また、Vn,tは、視点位相、Dn,tは、補間方向、time_codeは、タイムコード、time[s]は、シーンsのタイムコード、scene_maxは、シーン番号の最大値を、それぞれ表している。
この補間方向の選択処理において、シーン解析処理によりメモリ612に保存されたシーンsのスケール値の最大値であるS_max[s]、シーンsのタイムコードであるtime[s]、およびシーン番号の最大値であるscene_maxが用いられる。すなわち、シーンsのタイムコードが保存されているので、図47の処理の際にシーンチェンジ検出が不要となる。
ステップS641において、視点位置調整部611は、tに-1を代入する。ステップS642において、視点位置調整部611は、sceneNoがscene_maxになったか、すなわち、すべてのシーンが終了したか否かを判定し、すべてのシーンが終了したと判定した場合、補間方向選択処理を終了する。
ステップS642において、すべてのシーンが終了していないと判定された場合、処理は、ステップS643に進む。視点位置調整部611は、ステップS643において、tにt+1を代入し、ステップS644において、nに0を代入する。
視点位置調整部611は、ステップS645において、nがN以上であるか否かを判定し、nがN以上であると判定した場合、ステップS642に戻り、それ以降の処理が繰り返される。
ステップS645において、nがN以上ではないと判定された場合、処理は、ステップS646に進む。視点位置調整部611は、ステップS646において、nにn+1を代入し、ステップS647において、sceneNoに、時刻tにおけるシーン番号を代入する。ステップS648において、視点位置調整部611は、S_max[sceneNo]がS_thより大きいか否かを判定する。
ステップS648において、S_max[sceneNo]がS_th以下であると判定された場合、処理は、ステップS649に進む。
ステップS649において、視点位置調整部611は、Vn,tが0.5以下であるか否かを判定し、Vn,tが0.5以下であると判定した場合、ステップS650に進み、Dn,tに”left”(左)を代入する。すなわち、ステップS650において、左が補間方向に設定され、その後、処理は、ステップS645に戻り、それ以降の処理が繰り返される。
ステップS648において、StがS_thより大きいと判定された場合、処理は、ステップS651に進む。また、ステップS649において、Vn,tが0.5より大きいと判定した場合、処理は、ステップS651に進む。
ステップS651において、視点位置調整部611は、Dn,tに”right”(右)を代入する。すなわち、ステップS651において、右が補間方向に設定され、その後、処理は、ステップS645に戻り、それ以降の処理が繰り返される。
以上のように、シーンチェンジが検出されたときのみ、スケール値の最大値が閾値を超えるかどうかが判定される。また、スケール値の最大値が閾値を超える場合に、補間方向の切り替えが禁止され、スケール値の最大値が閾値以下の場合に、補間方向の切り替えが許可される。
すなわち、スケール値の最大値が閾値を超えるとは、一瞬でも左右の不整合が目立つ期間が存在するといえる。したがって、以上のように、スケール値の最大値が閾値を超える場合に、補間方向の切り替えを禁止し、シーン全体で右から補間に統一するようにすることで、シーンにおける左右の不整合を抑制することができる。
なお、図41の例においては、図2の画像処理装置100に、シーンチェンジ検出部601を組み合わせた例として画像処理装置600を説明したが、組み合わせの例は、これに限らない。すなわち、上述した図17の画像処理装置200、図29の画像処理装置300、図33の画像処理装置400、図40の画像処理装置500にも、シーンチェンジ検出部601を組み合わせてもよい。例えば、図17の画像処理装置200に、図41のシーンチェンジ検出部601を組み合わせた場合の構成について以下説明する。
[画像処理装置の構成例]
図48は、本技術を適用した画像処理装置の他の構成例を示すブロック図である。
図48の例において、画像処理装置700は、左視点画像(L画像)入力部101、右視点画像(R画像)入力部102、視差推定部103、信頼度算出部201、シーンチェンジ検出部601、仮想視点画像生成部602、表示制御部106を含むように構成される。画像処理装置700において生成した画像が表示部110に出力される。
図48の画像処理装置700は、左視点画像(L画像)入力部101、右視点画像(R画像)入力部102、視差推定部103、シーンチェンジ検出部601、仮想視点画像生成部602、表示制御部106を備える点が、図41の画像処理装置600と共通している。図48の画像処理装置700は、図17の信頼度算出部201が追加された点が、図41の画像処理装置600と異なっている。
すなわち、左視点画像(L画像)入力部101からのL画像と、右視点画像(R画像)入力部102からのR画像、視差推定部103からの視差情報、信頼度算出部201からの信頼度情報が、仮想視点画像生成部602に供給される。また、シーンチェンジ検出部601からのシーンチェンジの情報、左視点画像(L画像)入力部101からタイムコードも、仮想視点画像生成部602に供給される。
仮想視点画像生成部602は、シーンの解析処理を行う。仮想視点画像生成部602は、シーンチェンジ検出部601からのシーンチェンジ情報と信頼度算出部201からの信頼度情報とを用いて、シーン毎に視差レンジを測定し記録する。
また、仮想視点画像生成部602は、信頼度算出部201からの信頼度情報を基にして、視差量を調整、すなわち生成する仮想視点位置(位相)を決定し、記録されているシーン毎の視差レンジの情報を用いて、シーン毎の信頼度に応じた補間方向の選択処理を行う。
仮想視点画像生成部602は、決定した仮想視点位置(位相)に対応する仮想視点画像を、選択した補間方向の画像に基づいて生成する。仮想視点画像生成部602は、生成した仮想視点画像、すなわち、調整した視点位置の画像を合成して後段の表示制御部106に出力する。
[画像処理装置の処理例]
次に、図49のフローチャートを参照して、図48の画像処理装置700の画像処理について説明する。なお、図49のステップS701、S702、S704、S707、およびS708の処理は、図45のステップS601、S602、S603、S606、およびS607の処理と基本的に同様の処理を行う。また、図49のステップS703の処理は、図25のステップS203の処理と基本的に同様の処理を行う。
ステップS701において、左視点画像(L画像)入力部101および右視点画像(R画像)入力部102は、それぞれ、左視点画像(L画像)および右視点画像(R画像)を入力する。
入力された左視点画像(L画像)および右視点画像(R画像)は、視差推定部103および仮想視点画像生成部105に供給される。
ステップS702において、視差推定部103は、供給された左視点画像(L画像)および右視点画像(R画像)を用いて、図3および図4を参照して上述したように、視差を推定する。視差推定部103による推定結果の視差情報は、仮想視点画像生成部602に供給される。
ステップS703において、信頼度算出部201は、図18乃至図21を参照して上述したように、視差推定部103が入力LR画像に基づいて推定した各画素単位あるいは画素領域単位の視差情報の信頼度を算出する。信頼度算出部201は、算出した信頼度の情報を、仮想視点画像生成部602に供給する。
ステップS704において、シーンチェンジ検出部601は、図42を参照して上述したように、シーンチェンジを検出する。シーンチェンジ検出部601は、シーンチェンジがあった場合、シーンの番号とシーンのタイムコードを、シーンチェンジ情報として仮想視点画像生成部602に供給する。
ステップS705、S706、およびS707において、仮想視点画像生成部602は、仮想視点画像生成処理を行う。
すなわち、ステップS705において、視点位置調整部611は、シーン解析処理を行う。シーン解析処理については、図50を参照して後述するが、ステップS705により、シーンが解析され、シーン毎の信頼度の最小値、シーンのタイムコード、およびシーン番号の最大値がメモリ612に保存される。
ステップS706において、視点位置調整部611は、視点位置を調整する。この視点位置の調整処理により、N視点分の出力位相位置の情報と、N視点分の補間方向の情報が生成され、画像合成部621に供給される。
なお、視点位置調整処理は、図25を参照して上述した処理のうち、ステップS212における補間方向選択処理以外の処理は基本的に同様であり、その説明は繰り返しになるので省略する。異なる補間方向選択処理については、図51を参照して後述する。
画像合成部621には、さらに、左視点画像(L画像)入力部101からL画像、右視点画像(R画像)入力部102からR画像、視差推定部103から視差情報が入力される。
ステップS707において、画像合成部621は、これらの情報に基づいて、LR画像に、調整した視点位置の画像を合成し、合成したN視点の画像を表示制御部106に供給する。
ステップS708において、表示制御部106は、表示部110にN視点画像を表示させる。
[シーン解析処理の例]
次に、図50のフローチャートを参照して、図49のステップS705におけるシーン解析処理の例について説明する。
ここで、sceneChangeは、シーンチェンジ情報、sceneNoは、シーン番号(初期値0)、R_min[s]は、シーンsの信頼度の最小値、Rtは、信頼度を、それぞれ表している。また、time_codeは、タイムコード、time[s]は、シーンsのタイムコード、scene_maxは、シーン番号の最大値を、それぞれ表している。
視点位置調整部611は、ステップS721において、sceneNoに0を代入し、ステップS722において、tに−1を代入する。
視点位置調整部611は、ステップS723において、sceneNoがscene_maxになったか、すなわち、全シーンが終了したかを判定し、終了したと判定した場合、シーン解析処理を終了する。
ステップS723において、全シーンが終了していないと判定された場合、処理は、ステップS724に進む。視点位置調整部611は、ステップS724において、tにt+1を代入し、ステップS725において、シーンチェンジ検出部601からのシーンチェンジ情報sceneChangeを参照して、シーンチェンジが発生したか否かを判定する。
ステップS725において、シーンチェンジが発生したと判定された場合、処理は、ステップS726に進む。視点位置調整部611は、ステップS726において、sceneNoに、sceneNo+1を代入し、ステップS727において、time[sceneNo]にtを代入し、処理は、ステップS729に進む。
一方、ステップS725において、シーンチェンジが発生していないと判定された場合、処理は、ステップS728に進む。視点位置調整部611は、ステップS728において、R_min[sceneNo]がRtより大きいかを判定し、Rtより大きいと判定した場合、処理は、ステップS729に進む。
視点位置調整部611は、ステップS729において、R_min [sceneNo]にRtを代入し、ステップS723の処理に戻り、それ以降の処理を繰り返す。
ステップS728において、R_min[sceneNo]がRtより大きくないと判定した場合、ステップS729の処理はスキップされ、処理は、ステップS723に戻り、それ以降の処理が繰り返される。
以上の処理で、視点位置調整部611により、シーンsの信頼度の最小値であるR_min[s]、シーンsのタイムコードであるtime[s]、およびシーン番号の最大値であるscene_maxがメモリ612に保存される。
[補間方向選択処理の例]
次に、図51のフローチャートを参照して、補間方向の選択処理について説明する。なお、この処理は、図49のステップS706の視点位置調整処理のうちの、(すなわち、図26のステップS212における)補間方向選択処理である。
ここで、nは、視点番号、Nは、総視点数、sceneChangeは、シーンチェンジ信号、sceneNoは、シーン番号(初期値0)、R_min[s]は、シーンsの信頼度の最小値、R_thは、閾値(パラメータ)を、それぞれ表している。また、Vn,tは、視点位相、Dn,tは、補間方向、time_codeは、タイムコード、time[s]は、シーンsのタイムコード、scene_maxは、シーン番号の最大値を、それぞれ表している。
この補間方向の選択処理において、シーン解析処理によりメモリ612に保存されたシーンsの信頼度の最小値であるR_min [s]、シーンsのタイムコードであるtime[s]、およびシーン番号の最大値であるscene_maxが用いられる。すなわち、シーンsのタイムコードが保存されているので、図51の処理の際にシーンチェンジ検出が不要となる。
ステップS741において、視点位置調整部611は、tに-1を代入する。ステップS742において、視点位置調整部611は、sceneNoがscene_maxになったか、すなわち、すべてのシーンが終了したか否かを判定し、すべてのシーンが終了したと判定した場合、補間方向選択処理を終了する。
ステップS742において、すべてのシーンが終了していないと判定された場合、処理は、ステップS743に進む。視点位置調整部611は、ステップS743において、tにt+1を代入し、ステップS744において、nに0を代入する。
視点位置調整部611は、ステップS745において、nがN以上であるか否かを判定し、nがN以上であると判定した場合、ステップS742に戻り、それ以降の処理が繰り返される。
ステップS745において、nがN以上ではないと判定された場合、処理は、ステップS746に進む。視点位置調整部611は、ステップS746において、nにn+1を代入し、ステップS747において、sceneNoに、時刻tにおけるシーン番号を代入する。ステップS748において、視点位置調整部611は、R_min [sceneNo]がR_thより小さいか否かを判定する。
ステップS748において、R_min [sceneNo]がR_th以上であると判定された場合、処理は、ステップS749に進む。
ステップS749において、視点位置調整部611は、Vn,tが0.5以下であるか否かを判定し、Vn,tが0.5以下であると判定した場合、ステップS750に進み、Dn,tに”left”(左)を代入する。すなわち、ステップS750において、左が補間方向に設定され、その後、処理は、ステップS745に戻り、それ以降の処理が繰り返される。
ステップS748において、R_min [sceneNo]がR_thより小さいと判定された場合、処理は、ステップS751に進む。また、ステップS749において、Vn,tが0.5より大きいと判定した場合、処理は、ステップS751に進む。
ステップS751において、視点位置調整部611は、Dn,tに”right”(右)を代入する。すなわち、ステップS751において、右が補間方向に設定され、その後、処理は、ステップS745に戻り、それ以降の処理が繰り返される。
以上のように、シーンチェンジが検出されたときのみ、信頼度の最小値が閾値未満であるかどうかが判定される。また、信頼度の最小値が閾値未満の場合に、補間方向の切り替えが禁止され、信頼度の最小値が閾値以上の場合に、補間方向の切り替えが許可される。
すなわち、信頼度の最小値が閾値未満になるとは、一瞬でも左右の不整合が目立ち期間が存在するといえる。したがって、以上のように、信頼度の最小値が閾値未満の場合に、補間方向の切り替えを禁止し、シーン全体で右から補間に統一するようにすることで、シーンにおける左右の不整合を抑制することができる。
なお、上記説明においては、右からの補間に統一する例を説明したが、左からの補間に統一するようにすることもできる。収束する位置が左(0)の場合、スケール値が所定の閾値th_sより大きい場合、または、信頼度が所定の閾値th_rより小さい場合、仮補間方向として、左が設定される。
以上のように、補間方式(補間方向)が切り替わった場合に、時間的に高頻度に切り替わると、それが目立ってしまうので、切り替えが目立つ場合には、高頻度に切り替わることを抑制するようにした。一方、切り替えが目立たない場合は、切り替わることを許すようにした。
すなわち、切り替えの目立ち度合いによって、切り替わりの抑制度合いを変更するようにすることで、左右の不整合を目立たなくすることができる。
なお、上記説明においては、視差推定が間違っていた場合の視差ずれに対応する例を説明してきたが、本技術は、左右で輝度がずれていた場合に目立ってしまうことによる色ずれなどにも適用することができる。
色ずれは、視差推定が正しくても起こることがあり、色ずれが起きている場合、上述した信頼度を求めるときに残差が大きくなることがある。したがって、視差推定が正しい場合の色ずれに関しては、信頼度を用いることで、対応することができる。
また、上記説明においては、3次元画像表示の画像処理について説明したが、本技術は、3次元に限定されず、多次元画像表示の画像処理にも適用することができる。
上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
<8.第7の実施の形態(コンピュータ)>
[コンピュータの構成例]
図52は、上述した一連の処理をプログラムにより実行するコンピュータのハードウエアの構成例を示している。
コンピュータにおいて、CPU(Central Processing Unit)901,ROM(Read Only Memory)902,RAM(Random Access Memory)903は、バス904により相互に接続されている。
バス904には、さらに、入出力インタフェース905が接続されている。入出力インタフェース905には、入力部906、出力部907、記憶部908、通信部909、及びドライブ910が接続されている。
入力部906は、キーボード、マウス、マイクロホンなどよりなる。出力部907は、ディスプレイ、スピーカなどよりなる。記憶部908は、ハードディスクや不揮発性のメモリなどよりなる。通信部909は、ネットワークインタフェースなどよりなる。ドライブ910は、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリなどのリムーバブルメディア911を駆動する。
以上のように構成されるコンピュータでは、CPU901が、例えば、記憶部908に記憶されているプログラムを、入出力インタフェース905及びバス904を介して、RAM903にロードして実行することにより、上述した一連の処理が行われる。
コンピュータ(CPU901)が実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディア911に記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。
コンピュータでは、プログラムは、リムーバブルメディア911をドライブ910に装着することにより、入出力インタフェース905を介して、記憶部908にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部909で受信し、記憶部908にインストールすることができる。その他、プログラムは、ROM902や記憶部908に、あらかじめインストールしておくことができる。
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
なお、本明細書において、上述した一連の処理を記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本開示における実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
また、以上において、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。つまり、本技術は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、開示はかかる例に限定されない。本開示の属する技術の分野における通常の知識を有するであれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例また修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
なお、本技術は以下のような構成も取ることができる。
(1) 多次元画像表示に適用する左眼用の画像信号である左視点画像と、多次元画像表示に適用する右眼用の画像信号である右視点画像とから視差情報を生成する視差推定部と、
前記視差推定部により生成された視差情報に基づく変動の度合いを示すパラメータに応じて、前記左視点画像および前記右視点画像以外の視点画像を含む仮想視点画像の補間方向の切り替えを制御する補間方向制御部と、
前記補間方向制御部により切り替えが制御された補間方向で、前記仮想視点画像を生成する仮想視点画像生成部と
を備える画像処理装置。
(2) 前記補間方向制御部は、前記パラメータが示す変動が大きい場合、前記仮想視点画像の補間方向の切り替えを禁止する
前記(1)に記載の画像処理装置。
(3) 前記補間方向制御部は、前記パラメータが示す変動が小さい場合、前記仮想視点画像の補間方向の切り替えを行う
前記(1)または(2)に記載の画像処理装置。
(4) 前記視差推定部により生成された視差情報に基づく変動は、時間変動である
前記(1)乃至(3)のいずれかに記載の画像処理装置。
(5) 前記視差推定部により生成された視差情報の信頼度を算出する信頼度算出部を
さらに備え、
前記視差推定部により生成された視差情報に基づく変動の度合いを示すパラメータは、前記信頼度算出部により算出された視差情報の信頼度であり、
前記補間方向制御部は、前記信頼度算出部により算出された視差情報の信頼度に応じて、前記仮想視点画像の補間方向の切り替えを制御する
前記(1)乃至(4)のいずれかに記載の画像処理装置。
(6) 前記視差推定部により生成された視差情報に基づく変動の度合いを示すパラメータは、前記視差推定部により生成された視差情報から算出されるスケール値であり、
前記補間方向制御部は、前記視差推定部により推定された視差情報から算出されるスケール値に応じて、前記仮想視点画像の補間方向の切り替えを制御する
前記(1)乃至(4)のいずれかに記載の画像処理装置。
(7) 前記補間方向制御部は、前記視差推定部により生成された視差情報に基づく変動の度合いを示すパラメータに応じて、一方の方向を前記仮想視点画像の補間方向として選択し、選択された前記一方の方向が一定時間継続して、前記仮想視点画像の補間方向として選択されている場合、前記仮想視点画像の補間方向を前記一方の方向に切り替え、
選択された前記一方の方向が一定時間継続して、前記仮想視点画像の補間方向として選択されていない場合、前記仮想視点画像の補間方向の切り替えを禁止する
前記(1)乃至(6)のいずれかに記載の画像処理装置。
(8) 前記仮想視点画像生成部は、前記視差推定部により生成された視差情報を用いて、視点位置の収束位置を左視点または右視点に設定して仮想視点画像を生成する仮想視点位置を算出し、算出した仮想視点位置に、前記補間方向制御部により切り替えが制御された補間方向で、前記仮想視点画像を生成する
前記(1)乃至(7)のいずれかに記載の画像処理装置。
(9) 前記仮想視点画像生成部は、前記視差推定部により生成された視差情報を用いて、視点位置の収束位置を左視点乃至右視点のうちのいずれかの位置に設定して仮想視点画像を生成する仮想視点位置を算出し、算出した仮想視点位置に、前記補間方向制御部により切り替えが制御された補間方向で、前記仮想視点画像を生成する
前記(1)乃至(7)のいずれかに記載の画像処理装置。
(10) 前記仮想視点画像生成部により生成され、表示部に表示される仮想視点画像を見るユーザの顔の位置を検出する顔検出部を
さらに備え、
前記補間方向制御部は、前記顔検出部により検出されたユーザの顔の位置に応じて、前記仮想視点画像の補間方向の切り替えを制御する
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(11) 前記仮想視点画像生成部により生成された仮想視点画像が表示される表示部は、ユーザの頭部に装着可能であり、
前記表示部に表示される仮想視点画像を見るユーザの顔の位置および向きを検出する顔検出部を
さらに備え、
前記補間方向制御部は、前記顔検出部により検出されたユーザの顔の位置および向きに応じて、前記仮想視点画像の補間方向の切り替えを制御する
前記(1)乃至(9)のいずれかに記載の画像処理装置。
(12) 前記仮想視点画像生成部により生成された仮想視点画像が表示される表示部は、ユーザの頭部に装着可能であり、
前記表示部に表示される仮想視点画像を見るユーザの顔の位置および向きを検出する顔検出部を
さらに備え、
前記補間方向制御部は、前記顔検出部により検出されたユーザの顔の位置および向きに応じて、前記仮想視点画像の補間方向の切り替えを制御する
前記(1)乃至(11)のいずれかに記載の画像処理装置。
(13) 画像処理装置が、
多次元画像表示に適用する左眼用の画像信号である左視点画像と、多次元画像表示に適用する右眼用の画像信号である右視点画像とから視差情報を生成し、
生成された視差情報に基づく変動の度合いを示すパラメータに応じて、前記左視点画像および前記右視点画像以外の視点画像を含む仮想視点画像の補間方向の切り替えを制御し、
切り替えが制御された補間方向で、前記仮想視点画像を生成する
画像処理方法。
(14) 多次元画像表示に適用する左眼用の画像信号である左視点画像と、多次元画像表示に適用する右眼用の画像信号である右視点画像とから視差情報を生成する視差推定部と、
前記視差推定部により生成された視差情報に基づく変動の度合いを示すパラメータに応じて、前記左視点画像および前記右視点画像以外の視点画像を含む仮想視点画像の補間方向の切り替えを制御する補間方向制御部と、
前記補間方向制御部により切り替えが制御された補間方向で、前記仮想視点画像を生成する仮想視点画像生成部と
して、コンピュータを機能させるプログラム。