<本技術を適用した画像処理システムの一実施の形態>
図1は、本技術を適用した画像処理システムの一実施の形態の構成例を示すブロック図である。
図1において、画像処理システムは、撮影装置11、画像処理装置12、及び、表示装置13を有する。
撮影装置11は、被写体を複数の視点から撮影し、その結果得られる複数の視点の、例えば(ほぼ)パンフォーカスの撮影画像を画像処理装置12に供給する。
画像処理装置12は、撮影装置11からの複数の視点の撮影画像を用いて任意の被写体にフォーカスを合わせた画像を生成(再構成)するリフォーカス等の画像処理を行い、その画像処理の結果得られる処理結果画像を表示装置13に供給する。
表示装置13は、画像処理装置12からの処理結果画像を表示する。
なお、図1において、画像処理システムを構成する撮影装置11、画像処理装置12、及び、表示装置13は、それらのすべてを例えばディジタル(スチル/ビデオ)カメラや、スマートフォン等の携帯端末等のような、独立した装置に内蔵させることができる。
また、撮影装置11、画像処理装置12、及び、表示装置13は、それぞれを別個に独立した装置に内蔵させることができる。
さらに、撮影装置11、画像処理装置12、及び、表示装置13は、それらのうちの任意の2つと残りの1つとをそれぞれ別個に独立した装置に内蔵させることができる。
例えば撮影装置11及び表示装置13をユーザが所持する携帯端末に内蔵させ、画像処理装置12をクラウド上のサーバに内蔵させることができる。
また、画像処理装置12の一部のブロックをクラウド上のサーバに内蔵させ、画像処理装置12の残りのブロックと撮影装置11及び表示装置13とを携帯端末に内蔵させることができる。
<撮影装置11の構成例>
図2は、図1の撮影装置11の構成例を示す背面図である。
撮影装置11は、例えばRGBの値を画素値として有する画像を撮影する複数のカメラユニット(以下、にカメラともいう)21iを有し、その複数のカメラ21iによって、複数の視点の撮影画像を撮影する。
図2では、撮影装置11は、複数としての、例えば7個のカメラ211,212,213,214,215,216、及び、217を有し、それらの7個のカメラ211ないし217は、2次元平面上に配置されている。
さらに、図2では、7個のカメラ211ないし217は、それらのうちの1つである、例えばカメラ211を中心として、他の6個のカメラ212ないし217が、カメラ211の周辺に正6角形を構成するように配置されている。
したがって、図2では、7個のカメラ211ないし217のうちの、任意の1つのカメラ21i(i=1,2,...,7)とそのカメラ21iに最も近い他の1つのカメラ21j(j=1,2,...,7)との(光軸どうしの)距離は、同一の距離Bになっている。
カメラ21iと21jとの距離Bとしては、例えば20mm程度を採用することができる。この場合、撮影装置11は、ICカード等のカードサイズ程度の大きさに構成することができる。
なお、撮影装置11を構成するカメラ21iの数は、7個に限定されるものではなく、2個以上6個以下の数や、8個以上の数を採用することができる。
また、撮影装置11において、複数のカメラ21iは、上述のような正6角形等の正多角形を構成するように配置する他、任意の位置に配置することができる。
ここで、以下、カメラ211ないし217のうちの、中心に配置されたカメラ211を基準カメラ211ともいい、その基準カメラ211の周辺に配置されたカメラ212ないし217を周辺カメラ212ないし217ともいう。
図3は、図1の撮影装置11の他の構成例を示す背面図である。
図3では、撮影装置11は、9個のカメラ2111ないし2119で構成され、その9個のカメラ2111ないし2119は、横×縦が3×3に配置されている。3×3のカメラ21i(i=11,12,...,19)は、上、下、左、又は、右に隣接するカメラ21j(j=11,12,...,19)と距離Bだけ離れて配置されている。
ここで、以下では、特に断らない限り、撮影装置11は、例えば図2に示したように、7個のカメラ211ないし217で構成されることとする。
また、基準カメラ211の視点を基準視点ともいい、基準カメラ211で撮影された撮影画像PL1を基準画像PL1ともいう。さらに、周辺カメラ21iで撮影された撮影画像PL#iを周辺画像PL#iともいう。
なお、撮影装置11は、図2や図3に示したように、複数のカメラ21iで構成する他、例えばRen.Ng、他7名,"Light Field Photography with a Hand-Held Plenoptic Camera", Stanford Tech Report CTSR 2005-02に記載されているように、MLA(Micro Lens Array)を用いて構成することができる。MLAを用いて撮影装置11を構成した場合であっても、実質的に、複数の視点から撮影した撮影画像を得ることができる。
また、複数の視点の撮影画像を撮影する方法は、撮影装置11を複数のカメラ21iで構成する方法や、MLAを用いて構成する方法に限定されるものではない。
<画像処理装置12の構成例>
図4は、図1の画像処理装置12の構成例を示すブロック図である。
図4において、画像処理装置12は、視差情報生成部31、補間部32、集光処理部33、及び、パラメータ設定部34を有する。
画像処理装置12には、撮影装置11から、カメラ211ないし217で撮影された7視点の撮影画像PL1ないしPL7が供給される。
画像処理装置12において、撮影画像PL#iは、視差情報生成部31、及び、補間部32に供給される。
視差情報生成部31は、撮影装置11から供給される撮影画像PL#iを用いて視差情報を求め、補間部32、及び、集光処理部33に供給する。
すなわち、視差情報生成部31は、例えば撮影装置11から供給される撮影画像PL#iそれぞれの、他の撮影画像PL#jとの視差情報を求める処理を複数の視点の撮影画像PL#iの画像処理として行う。そして、視差情報生成部31は、例えば撮影画像の画素(の位置)ごとに視差情報が登録されたマップを生成し、補間部32、及び、集光処理部33に供給する。
ここで、視差情報としては、視差を画素数で表したディスパリティ(disparity)や、視差に対応する奥行き方向の距離等の視差に換算することができる任意の情報を採用することができる。本実施の形態では、視差情報として、例えばディスパリティを採用することとし、視差情報生成部31では、そのディスパリティが登録されたディスパリティマップが、視差情報が登録されたマップとして生成されることとする。
補間部32は、撮影装置11からの、カメラ211ないし217の7視点の撮影画像PL1ないしPL7と視差情報生成部31からのディスパリティマップとを用いてカメラ211ないし217の7視点以外の視点から撮影を行ったならば得られる画像を補間により生成する。
ここで、後述する集光処理部33が行う集光処理によって、複数のカメラ211ないし217で構成される撮影装置11は、カメラ211ないし217を合成開口とする仮想レンズとして機能させることができる。図2の撮影装置11については、仮想レンズの合成開口は、周辺カメラ212ないし217の光軸を結ぶ、直径が略2Bの略円形状になる。
補間部32は、例えば仮想レンズの直径2Bを一辺とする正方形(又は、仮想レンズの合成開口に内接する正方形)内のほぼ等間隔の複数の点、すなわち、例えば横×縦が21×21個の点を視点として、その21×21視点のうちの、カメラ211ないし217の7視点以外の、21×21-7視点の画像を補間により生成する。
そして、補間部32は、カメラ211ないし217の7視点の撮影画像PL1ないしPL7と撮影画像を用いた補間により生成された21×21-7視点の画像とを集光処理部33に供給する。
ここで、補間部32において、撮影画像を用いた補間により生成された画像を補間画像ともいう。
また、補間部32から集光処理部33に供給される、カメラ211ないし217の7視点の撮影画像PL1ないしPL7と21×21-7視点の補間画像との、合計で、21×21視点の画像を視点画像ともいう。
補間部32での補間は、カメラ211ないし217の7視点の撮影画像PL1ないしPL7から、より多く数の視点(ここでは、21×21視点)の視点画像を生成する処理であると考えることができる。この多数の視点の視点画像を生成する処理は、実空間内の実空間点から、カメラ211ないし217を合成開口とする仮想レンズに入射する光線を再現する処理であると捉えることができる。
集光処理部33は、補間部32からの複数の視点の視点画像を用いて、現実のカメラにおいて、レンズ等の光学系を通過した、被写体からの光線をイメージセンサやフィルム上に集光させ、被写体の像を形成することに相当する画像処理である集光処理を行う。
集光処理部33の集光処理では、任意の被写体にフォーカスを合わせた画像を生成(再構成)するリフォーカスが行われる。リフォーカスは、視差情報生成部31からのディスパリティマップや、パラメータ設定部34からの集光パラメータを用いて行われる。
集光処理部33の集光処理によって得られる画像は、処理結果画像として(表示装置13)に出力される。
パラメータ設定部34は、ユーザによる図示せぬ操作部の操作や、所定のアプリケーション等によって指定された位置にある、撮影画像PL#i(例えば基準画像PL1)の画素を、合焦させる(被写体が映る)合焦対象画素に設定し、集光パラメータ(の一部)として、集光処理部33に供給する。
その他、パラメータ設定部34は、ユーザの操作等に応じて、後述する補正係数を設定し、集光パラメータ(の他の一部)として、集光処理部33に供給する。
なお、画像処理装置12は、サーバとして構成することもできるし、クライアントとして構成することもできる。さらに、画像処理装置12は、サーバクライアントシステムとして構成することもできる。画像処理装置12をサーバクライアントシステムとして構成する場合には、画像処理装置12の任意の一部のブロックをサーバで構成し、残りのブロックをクライアントで構成することができる。
<画像処理システムの処理>
図5は、図1の画像処理システムの処理の例を説明するフローチャートである。
ステップS11において、撮影装置11は、複数の視点としての7視点の撮影画像PL1ないしPL7を撮影する。撮影画像PL#iは、画像処理装置12(図4)の視差情報生成部31、及び、補間部32に供給される。
そして、処理はステップS11からステップS12に進み、画像処理装置12は、撮影装置11からの撮影画像PL#iを取得する。さらに、画像処理装置12では、視差情報生成部31は、撮影装置11からの撮影画像PL#iを用いて視差情報を求め、その視差情報が登録されたディスパリティマップを生成する視差情報生成処理を行う。
視差情報生成部31は、視差情報生成処理により得られるディスパリティマップを補間部32、及び、集光処理部33に供給し、処理はステップS12からステップS13に進む。なお、ここでは、画像処理装置12は、撮影装置11から撮影画像PL#iを取得することとしたが、画像処理装置12では、撮影装置11から撮影画像PL#iを直接取得する他、例えば撮影装置11やその他の図示せぬ撮影装置で撮影され、クラウドに予め保存された撮影画像PL#iを、クラウドから取得すること等ができる。
ステップS13では、補間部32は、撮影装置11からのカメラ211ないし217の7視点の撮影画像PL1ないしPL7と視差情報生成部31からのディスパリティマップとを用いてカメラ211ないし217の7視点以外の複数の視点の補間画像を生成する補間処理を行う。
さらに、補間部32は、撮影装置11からのカメラ211ないし217の7視点の撮影画像PL1ないしPL7と補間処理により得られた複数の視点の補間画像とを複数の視点の視点画像として、集光処理部33に供給し、処理はステップS13からステップS14に進む。
ステップS14では、パラメータ設定部34は、集光パラメータを設定する設定処理を行う。
設定処理では、例えばユーザの操作等によって指定された位置にある、基準画像PL1の画素が、合焦させる合焦対象画素に設定される。
また、設定処理では、例えばユーザの操作等に応じて、集光処理において、画素をシフトする画素シフト量(後述する基準シフト量BV又は合焦シフト量DP#i)を補正する補正係数が、補間部32で得られる視点画像の視点ごとに設定される。
パラメータ設定部34は、設定処理により得られた合焦対象画素(の情報)、及び、視点ごとの補正係数を集光パラメータとして、集光処理部33に供給し、処理はステップS14からステップS15に進む。
ここで、設定処理では、パラメータ設定部34は、例えば撮影装置11からの7視点の撮影画像PL1ないしPL7のうちの、例えば基準画像PL1を、合焦させる被写体の指定を促すメッセージとともに、表示装置13に表示させることができる。そして、パラメータ設定部34は、ユーザが、表示装置13に表示された基準画像PL1(に映る被写体)上の位置を指定するのを待って、ユーザが指定した位置にある基準画像PL1の画素を合焦対象画素に設定することができる。
合焦対象画素は、以上のように、ユーザの指定に従って設定する他、例えばアプリケーションからの指定や、予め決められたルールによる指定等に従って設定することができる。
例えば所定の速さ以上の動きがある被写体や、所定の時間以上連続して動いている被写体が映る画素を合焦対象画素に設定することができる。
ステップS15では、集光処理部33は、補間部32からの複数の視点の視点画像、視差情報生成部31からのディスパリティマップ、並びに、パラメータ設定部34からの集光パラメータとしての合焦対象画素及び視点ごとの補正係数を用いてカメラ211ないし217を合成開口とする仮想レンズを通過した被写体からの光線を図示せぬ仮想センサ上に集光させることに相当する集光処理を行う。
仮想レンズを通過した光線が集光される仮想センサの実体は、例えば図示せぬメモリである。集光処理では、複数の視点の視点画像の画素値が、仮想センサに集光される光線の輝度として、仮想センサとしてのメモリ(の記憶値)に積算されることで、仮想レンズを通過した光線の集光により得られる画像の画素値が求められる。
集光処理部33の集光処理では、複数の視点の視点画像の画素を画素シフトする画素シフト量である後述する基準シフト量BVを設定し、その基準シフト量BVに応じて、複数の視点の視点画像の画素を画素シフトして(画素値を)積算することにより、所定の距離の合焦点に合焦した処理結果画像の各画素値が求められ、処理結果画像の生成、すなわち、リフォーカスが行われる。
ここで、合焦点とは、フォーカスが合う、実空間内の実空間点であり、集光処理部33の集光処理では、合焦点の集合としての面である合焦面が、パラメータ設定部34からの集光パラメータとしての合焦対象画素を用いて設定される。
また、集光処理部33の集光処理では、基準シフト量BV、ひいては、後述するように、基準シフト量BVから一意に求められる合焦シフト量DP#iに応じて、複数の視点の視点画像の画素の画素シフトが行われる。集光処理では、パラメータ設定部34からの集光パラメータとしての視点ごとの補正係数によって、合焦シフト量DP#i(又は基準シフト量BV)が補正され、補正後の合焦シフト量DP#iに応じて、複数の視点の視点画像の画素の画素シフトが行われる。
以上のように、視点ごとの補正係数によって補正された補正後の合焦シフト量DP#iに応じて、複数の視点の視点画像の画素の画素シフトが行われるので、補正係数に応じて、所望のぼけが付与されたリフォーカスを実現することができる。
集光処理部33は、集光処理の結果得られる処理結果画像を表示装置13に供給し、処理はステップS15からステップS16に進む。
ステップS16では、表示装置13が、集光処理部33からの処理結果画像を表示する。
なお、図5では、ステップS14の設定処理を、ステップS13の補間処理とステップS15の集光処理との間で行うこととしたが、設定処理のうちの、集光パラメータとしての合焦対象画素の設定は、ステップS11の7視点の撮影画像PL1ないしPL7の撮影の直後から、ステップS15の集光処理の直前までの間の任意のタイミングで行うことができる。
さらに、設定処理のうちの、集光パラメータとしての視点ごとの補正係数の設定は、ステップS15の集光処理の直前までの任意のタイミングで行うことができる。
また、画像処理装置12(図4)は、集光処理部33だけで構成することができる。
例えば集光処理部33の集光処理を、補間画像を用いずに、撮影装置11で撮影された撮影画像を用いて行う場合には、補間部32を設けずに、画像処理装置12を構成することができる。但し、集光処理を、撮影画像の他、補間画像をも用いて行う場合には、処理結果画像において、合焦していない被写体にリンギングが発生することを抑制することができる。
また、例えば撮影装置11で撮影された複数の視点の撮影画像の視差情報を距離センサ等を用いて外部の装置で生成し、その外部の装置から視差情報を取得することができる場合には、視差情報生成部31を設けずに、画像処理装置12を構成することができる。
さらに、例えば集光処理部33において、予め決められたルールに従って、合焦面及び視点ごとの補正係数を設定する場合には、パラメータ設定部34を設けずに、画像処理装置12を構成することができる。
<補間画像の生成>
図6は、図4の補間部32での補間画像の生成の例を説明する図である。
ある視点の補間画像を生成する場合、補間部32は、補間画像の画素を順次、補間の対象の補間対象画素に選択する。さらに、補間部32は、7視点の撮影画像PL1ないしPL7のうちの全部、又は、補間画像の視点に近い一部の視点の撮影画像PL#iを補間対象画素の画素値の算出に用いる画素値算出画像に選択する。補間部32は、視差情報生成部31からのディスパリティマップと補間画像の視点とを用いて、画素値算出画像に選択された複数の視点の撮影画像PL#iそれぞれから、補間対象画素に対応する対応画素(補間画像の視点から撮影を行ったならば、補間対象画素に映る空間点と同一の空間点が映っている画素)を求める。
そして、補間部32は、対応画素の画素値の重み付け加算を行い、その結果得られる重み付け加算値を補間対象画素の画素値として求める。
対応画素の画素値の重み付け加算に用いる重みとしては、対応画素を有する画素値算出画像としての撮影画像PL#iの視点と補間対象画素を有する補間画像の視点との間の距離に反比例するような値を採用することができる。
なお、撮影画像PL#iに指向性がある強い光が映っている場合には、7視点の撮影画像PL1ないしPL7のうちの全部を画素値算出画像に選択するよりも、補間画像の視点に近い3視点や4視点等の一部の視点の撮影画像PL#iを画素値算出画像に選択する方が、実際に、補間画像の視点から撮影したならば得られる画像に近い補間画像を得ることができる。
<ディスパリティマップの生成>
図7は、図4の視差情報生成部31でのディスパリティマップの生成の例を説明する図である。
すなわち、図7は、撮影装置11のカメラ211ないし217で撮影された撮影画像PL1ないしPL7の例を示している。
図7では、撮影画像PL1ないしPL7には、所定の背景の手前側に、前景としての所定の物体objが映っている。撮影画像PL1ないしPL7それぞれについては、視点が異なるため、例えば撮影画像PL2ないしPL7それぞれに映る物体objの位置(撮影画像上の位置)は、撮影画像PL1に映る物体objの位置から、視点が異なる分だけずれている。
いま、カメラ21iの視点(位置)、すなわち、カメラ21iで撮影された撮影画像PL#iの視点をvp#iと表すこととする。
例えば撮影画像PL1の視点vp1のディスパリティマップを生成する場合には、視差情報生成部31は、撮影画像PL1を注目する注目画像PL1とする。さらに、視差情報生成部31は、注目画像PL1の各画素を順次、注目する注目画素に選択し、その注目画素に対応する対応画素(対応点)を他の撮影画像PL2ないしPL7のそれぞれから検出する。
撮影画像PL2ないしPL7それぞれから、注目画像PL1の注目画素に対応する対応画素を検出する方法としては、例えばステレオマッチングやマルチベースラインステレオ等の三角測量の原理を利用した方法がある。
ここで、注目画像PL1の注目画素に対する、撮影画像PL#iの対応画素の位置ずれを表すベクトルをディスパリティベクトルv#i,1ということとする。
視差情報生成部31は、撮影画像PL2ないしPL7のそれぞれについてディスパリティベクトルv2,1ないしv7,1を求める。そして、視差情報生成部31は、例えばディスパリティベクトルv2,1ないしv7,1の大きさを対象とした多数決を行い、その多数決に勝利したディスパリティベクトルv#i,1の大きさを注目画素(の位置)のディスパリティの大きさとして求める。
ここで、撮影装置11において、図2で説明したように、注目画像PL1を撮影する基準カメラ211と撮影画像PL2ないしPL7を撮影する周辺カメラ212ないし217それぞれとの距離が、同一の距離Bになっている場合に、注目画像PL1の注目画素に映る実空間点が、撮影画像PL2ないしPL7にも映っているときには、ディスパリティベクトルv2,1ないしv7,1として、向きが異なるが、大きさが等しいベクトルが求められる。
すなわち、この場合、ディスパリティベクトルv2,1ないしv7,1は、注目画像PL1の視点vp1に対する他の撮影画像PL2ないしPL7の視点vp2ないしvp7の方向と逆方向の、大きさが等しいベクトルになる。
但し、撮影画像PL2ないしPL7の中には、オクルージョンが生じている画像、すなわち、注目画像PL1の注目画素に映る実空間点が、前景に隠れて映っていない画像があり得る。
注目画像PL1の注目画素に映る実空間点が映っていない撮影画像(以下、オクルージョン画像ともいう)PL#iについては、注目画素に対応する対応画素として、正しい画素を検出することが困難である。
そのため、オクルージョン画像PL#iについては、注目画像PL1の注目画素に映る実空間点が映っている撮影画像PL#jのディスパリティベクトルv#j,1とは、大きさが異なるディスパリティベクトルv#i,1が求められる。
撮影画像PL2ないしPL7の中で、注目画素について、オクルージョンが生じている画像は、オクルージョンが生じていない画像よりも少ないと推定される。そこで、視差情報生成部31は、上述のように、ディスパリティベクトルv2,1ないしv7,1の大きさを対象とした多数決を行い、その多数決に勝利したディスパリティベクトルv#i,1の大きさを注目画素のディスパリティの大きさとして求める。
図7では、ディスパリティベクトルv2,1ないしv7,1の中で、3つのディスパリティベクトルv2,1,v3,1,v7,1が大きさが等しいベクトルになっている。また、ディスパリティベクトルv4,1,v5,1,v6,1それぞれについては、大きさが等しいディスパリティベクトルが存在しない。
そのため、3つのディスパリティベクトルv2,1,v3,1,v7,1の大きさが、注目画素のディスパリティの大きさとして求められる。
なお、注目画像PL1の注目画素の、任意の撮影画像PL#iとの間のディスパリティの方向は、注目画像PL1の視点vp1(カメラ211の位置)と撮影画像PL#iの視点vp#i(カメラ21iの位置)との位置関係(視点vp1から視点vp#iへの方向等)から認識することができる。
視差情報生成部31は、注目画像PL1の各画素を順次、注目画素に選択し、ディスパリティの大きさを求める。そして、視差情報生成部31は、注目画像PL1の各画素の位置(xy座標)に対して、その画素のディスパリティの大きさを登録したマップをディスパリティマップとして生成する。したがって、ディスパリティマップは、画素の位置とその画素のディスパリティの大きさとを対応付けたマップ(テーブル)である。
他の撮影画像PL#iの視点vp#iのディスパリティマップも、視点vp1のディスパリティマップと同様に生成することができる。
但し、視点vp1以外の視点vp#iのディスパリティマップの生成にあたって、ディスパリティベクトルの多数決は、撮影画像PL#iの視点vp#iとその撮影画像PL#i以外の撮影画像PL#jの視点vp#jとの位置関係(カメラ21iと21jとの位置関係)(視点vp#iと視点vp#jとの距離)に基づき、ディスパリティベクトルの大きさを調整して行われる。
すなわち、例えば図2の撮影装置11について、撮影画像PL5を注目画像PL5として、ディスパリティマップを生成する場合、注目画像PL5と撮影画像PL2との間で得られるディスパリティベクトルは、注目画像PL5と撮影画像PL1との間で得られるディスパリティベクトルの2倍の大きさになる。
これは、注目画像PL5を撮影するカメラ215と撮影画像PL1を撮影するカメラ211との光軸どうしの距離である基線長が、距離Bであるのに対して、注目画像PL5を撮影するカメラ215と撮影画像PL2を撮影するカメラ212との基線長が、距離2Bになっているためである。
そこで、いま、例えば基準カメラ211と他のカメラ21iとの基線長である距離Bをディスパリティを求める基準となる基準基線長ということとする。ディスパリティベクトルの多数決は、基線長が基準基線長Bに換算されるように、ディスパリティベクトルの大きさを調整して行われる。
すなわち、例えば注目画像PL5を撮影するカメラ215と撮影画像PL1を撮影する基準カメラ211との基線長Bは、基準基線長Bに等しいので、注目画像PL5と撮影画像PL1との間で得られるディスパリティベクトルは、その大きさが1倍に調整される。
また、例えば注目画像PL5を撮影するカメラ215と撮影画像PL2を撮影するカメラ212との基線長2Bは、基準基線長Bの2倍に等しいので、注目画像PL5と撮影画像PL2との間で得られるディスパリティベクトルは、その大きさが1/2倍(基準基線長Bと、カメラ215とカメラ212との基線長2Bとの比の値倍)に調整される。
注目画像PL5と他の撮影画像PL#iとの間で得られるディスパリティベクトルについても、同様に、その大きさが、基準基線長Bとの比の値倍に調整される。
そして、大きさの調整後のディスパリティベクトルを用いてディスパリティベクトルの多数決が行われる。
なお、視差情報生成部31において、撮影画像PL#i(の各画素)のディスパリティは、例えば撮影装置11で撮影される撮影画像の画素の精度で求めることができる。また、撮影画像PL#iのディスパリティは、例えばその撮影画像PL#iの画素より細かい精度である画素以下精度(例えば1/4画素等のサブピクセルの精度)で求めることができる。
ディスパリティを画素以下精度で求める場合、ディスパリティを用いる処理では、その画素以下精度のディスパリティをそのまま用いることもできるし、画素以下精度のディスパリティの小数点以下を切り捨て、切り上げ、又は、四捨五入等して整数化して用いることもできる。
ここで、ディスパリティマップに登録されるディスパリティの大きさを、以下、登録ディスパリティともいう。例えば左から右方向の軸をx軸とするとともに、下から上方向の軸をy軸とする2次元座標系において、ディスパリティとしてのベクトルを表す場合、登録ディスパリティは、基準画像PL1の各画素の、基準画像PL1の左隣の視点の撮影画像PL5との間のディスパリティ(基準画像PL1の画素から、その画素に対応する撮影画像PL5の対応画素までの画素ずれを表すベクトル)のx成分に等しい。
<集光処理によるリフォーカス>
図8は、図4の集光処理部33で行われる集光処理によるリフォーカスの概要を説明する図である。
なお、図8では、説明を簡単にするため、集光処理に用いる複数の視点の視点画像として、基準画像PL1、基準画像PL1の右隣の視点の撮影画像PL2、及び、基準画像PL1の左隣の視点の撮影画像PL5の3枚の画像を用いることとする。
図8において、撮影画像PL1,PL2、及び、PL5には、2つの物体obj1及びobj2が映っている。例えば物体obj1は、手前側に位置しており、物体obj2は、奥側に位置している。
いま、例えば物体obj1に合焦させる(焦点を合わせる)リフォーカスを行って、そのリフォーカス後の処理結果画像として、基準画像PL1の基準視点から見た画像を得ることとする。
ここで、撮影画像PL1の物体obj1が映る画素との間の、処理結果画像の視点、すなわち、ここでは、基準視点(の基準画像PL1の対応画素)のディスパリティをDP1と表す。また、撮影画像PL2の物体obj1が映る画素との間の、処理結果画像の視点のディスパリティをDP2と表すとともに、撮影画像PL5の物体obj1が映る画素との間の、処理結果画像の視点のディスパリティをDP5と表すこととする。
なお、図8では、処理結果画像の視点は、撮影画像PL1の基準視点に等しいので、撮影画像PL1の物体obj1が映る画素との間の、処理結果画像の視点のディスパリティDP1は、(0,0)になる。
撮影画像PL1,PL2、及び、PL5については、撮影画像PL1,PL2、及び、PL5をディスパリティDP1,DP2、及び、DP5に応じて、それぞれ画素シフトし、その画素シフト後の撮影画像PL1,PL2、及び、PL5を積算することにより、物体obj1に合焦した処理結果画像を得ることができる。
すなわち、撮影画像PL1,PL2、及び、PL5を、ディスパリティDP1,DP2、及び、DP5をキャンセルするように(ディスパリティDP1,DP2、及び、DP5の逆方向に)、それぞれ画素シフトすることで、画素シフト後の撮影画像PL1,PL2、及び、PL5では、物体obj1が映る画素の位置が一致する。
したがって、画素シフト後の撮影画像PL1,PL2、及び、PL5を積算することにより、物体obj1に合焦した処理結果画像を得ることができる。
なお、画素シフト後の撮影画像PL1,PL2、及び、PL5においては、物体obj1と異なる奥行き方向の位置にある物体obj2が映る画素の位置は、一致しない。そのため、処理結果画像に映る物体obj2は、ぼやける。
また、ここでは、上述したように、処理結果画像の視点は、基準視点であり、ディスパリティDP1は(0,0)であるため、撮影画像PL1については、実質的に、画素シフトを行う必要はない。
集光処理部33の集光処理では、例えば以上のように、複数の視点の視点画像の画素を、合焦対象が映る合焦対象画素との間の、処理対象画像の視点(ここでは、基準視点)のディスパリティをキャンセルするように画素シフトして積算することで、合焦対象にリフォーカスが行われた画像を処理結果画像として求める。
<ディスパリティ変換>
図9は、ディスパリティ変換の例を説明する図である。
図7で説明したように、ディスパリティマップに登録される登録ディスパリティは、基準画像PL1の左隣の視点の撮影画像PL5の各画素との間の、基準画像PL1の画素のディスパリティのx成分に等しい。
リフォーカスでは、視点画像を、合焦対象画素のディスパリティをキャンセルするように画素シフトする必要がある。
いま、ある視点を注目視点として注目すると、リフォーカスにおいて、注目視点の視点画像の画素シフトにあたっては、その注目視点の視点画像との間の、処理結果画像の合焦対象画素のディスパリティ、すなわち、ここでは、例えば基準視点の基準画像PL1の合焦対象画素のディスパリティが必要となる。
注目視点の視点画像との間の、基準画像PL1の合焦対象画素のディスパリティは、基準画像PL1の合焦対象画素(処理結果画像の合焦対象画素に対応する基準画像PLの対応画素)の登録ディスパリティから、基準視点(処理対象画素の視点)から注目視点の方向を加味して求めることができる。
いま、基準視点から注目視点の方向をx軸を0[radian]とする反時計回りの角度で表すこととする。
例えばカメラ212は、基準基線長Bだけ+x方向に離れた位置にあり、基準視点からカメラ212の視点の方向は、0[radian]である。この場合、カメラ212の視点の視点画像(撮影画像PL2)との間の、基準画像PL1の合焦対象画素のディスパリティDP2(としてのベクトル)は、その合焦対象画素の登録ディスパリティRDから、カメラ212の視点の方向である0[radian]を加味して、(-RD,0)=(-(B/B)×RD×cos0,-(B/B)×RD×sin0)と求めることができる。
また、例えばカメラ213は、基準基線長Bだけπ/3の方向に離れた位置にあり、基準視点からカメラ212の視点の方向は、π/3[radian]である。この場合、カメラ213の視点の視点画像(撮影画像PL3)との間の、基準画像PL1の合焦対象画素のディスパリティDP3は、その合焦対象画素の登録ディスパリティRDから、カメラ213の視点の方向であるπ/3[radian]を加味して、(-RD×cos(π/3),-RD×sin(π/3))=(-(B/B)×RD×cos(π/3),-(B/B)×RD×sin(π/3))と求めることができる。
ここで、補間部32で得られる補間画像は、その補間画像の視点vpに位置する仮想的なカメラで撮影された画像であるとみなすことができる。この仮想的なカメラの視点vpが、基準視点から、距離Lだけ、角度θ[radian]の方向に離れた位置であるとする。この場合、視点vpの視点画像(仮想的なカメラで撮影された画像)との間の、基準画像PL1の合焦対象画素のディスパリティDPは、その合焦対象画素の登録ディスパリティRDから、視点vpの方向である角度θを加味して、(-(L/B)×RD×cosθ,-(L/B)×RD×sinθ)と求めることができる。
以上のように、登録ディスパリティRDから、注目視点の方向を加味して、注目視点の視点画像との間の、基準画像PL1の画素のディスパリティを求めること、すなわち、登録ディスパリティRDを、注目視点の視点画像との間の、基準画像PL1(処理結果画像)の画素のディスパリティに変換することをディスパリティ変換ともいう。
リフォーカスでは、合焦対象画素の登録ディスパリティRDから、ディスパリティ変換によって、各視点の視点画像との間の、基準画像PL1の合焦対象画素のディスパリティが求められ、その合焦対象画素のディスパリティをキャンセルするように、各視点の視点画像が画素シフトされる。
リフォーカスにおいて、視点画像は、その視点画像との間の、合焦対象画素のディスパリティをキャンセルするように画素シフトされるが、この画素シフトのシフト量を合焦シフト量ともいう。
ここで、以下、補間部32で得られる複数の視点の視点画像のうちの、i番目の視点画像の視点を視点vp#iとも記載する。視点vp#iの視点画像の合焦シフト量を合焦シフト量DP#iとも記載する。
視点vp#iの視点画像の合焦シフト量DP#iは、合焦対象画素の登録ディスパリティRDから、基準視点から視点vp#iの方向を加味したディスパリティ変換によって、一意に求めることができる。
ここで、ディスパリティ変換では、上述したように、登録ディスパリティRDから、ディスパリティ(としてのベクトル)(-(L/B)×RD×cosθ,-(L/B)×RD×sinθ)が求められる。
したがって、ディスパリティ変換は、例えば登録ディスパリティRDに対して、-(L/B)×cosθ及び-(L/B)×sinθのそれぞれを乗算する演算、あるいは、登録ディスパリティRDの-1倍に対して、(L/B)×cosθ及び(L/B)×sinθのそれぞれを乗算する演算等として捉えることができる。
ここでは、例えばディスパリティ変換を登録ディスパリティRDの-1倍に対して、(L/B)×cosθ及び(L/B)×sinθのそれぞれを乗算する演算として捉えることとする。
この場合、ディスパリティ変換の対象となる値、すなわち、ここでは、登録ディスパリティRDの-1倍は、各視点の視点画像の合焦シフト量を求める基準となる値であり、以下、基準シフト量BVともいう。
合焦シフト量は、基準シフト量BVのディスパリティ変換によって一意に決まるので、基準シフト量BVの設定によれば、その設定により、実質的に、リフォーカスにおいて、各視点の視点画像の画素を画素シフトする画素シフト量が設定されることになる。
なお、上述のように、基準シフト量BVとして、登録ディスパリティRDの-1倍を採用する場合には、合焦対象画素を合焦させるときの基準シフト量BV、すなわち、合焦対象画素の登録ディスパリティRDの-1倍は、撮影画像PL2との間の、合焦対象画素のディスパリティのx成分に等しい。
<集光処理>
図10は、集光処理によるリフォーカスの概要を説明する図である。
いま、合焦点(フォーカスが合う、実空間内の実空間点)の集まりで構成される面を合焦面ということとする。
集光処理では、例えば実空間内の奥行き方向の距離が一定の(変化しない)平面を合焦面として、その合焦面上(合焦面の近傍)に位置する被写体に合焦した処理結果画像が、複数の視点の視点画像を用いて生成されることで、リフォーカスが行われる。
図10では、複数の視点の視点画像の手前と中程のそれぞれに、1人の人が映っている。そして、中程の人の位置を通る、奥行き方向の距離が一定の平面を合焦面として、複数の視点の視点画像から、合焦面上の被写体、すなわち、例えば中程の人に合焦した処理結果画像が得られている。
なお、合焦面としては、例えば実空間内の奥行き方向の距離が変化する平面や曲面を採用することができる。また、合焦面としては、奥行き方向の距離が異なる複数の平面等を採用することができる。
図11は、集光処理部33が行う集光処理の例を説明するフローチャートである。
すなわち、図11は、画像全体にぼけを付与しない場合の集光処理の例を示すフローチャートである。
ステップS31において、集光処理部33は、パラメータ設定部34から、集光パラメータとしての合焦対象画素(の情報)を取得し、処理はステップS32に進む。
すなわち、例えばカメラ211ないし217で撮影された撮影画像PL1ないしPL7のうちの、基準画像PL1等が、表示装置13に表示され、ユーザが、その基準画像PL1上の1つの位置を指定すると、パラメータ設定部34は、ユーザが指定した位置の画素を合焦対象画素に設定し、その合焦対象画素(を表す情報)を集光パラメータとして、集光処理部33に供給する。
ステップS31では、集光処理部33は、以上のようにして、パラメータ設定部34から供給される合焦対象画素を取得する。
ステップS32では、集光処理部33は、視差情報生成部31からのディスパリティマップに登録されている合焦対象画素の登録ディスパリティRDを取得する。そして、集光処理部33は、合焦対象画素の登録ディスパリティRDに応じて、基準シフト量BVを設定し、すなわち、例えば合焦対象画素の登録ディスパリティRDの-1倍を基準シフト量BVに設定し、処理はステップS32からステップS33に進む。
ステップS33では、集光処理部33は、補間部32からの複数の視点の視点画像のうちの1つの画像である、例えば基準画像に対応する画像、すなわち、基準画像の視点から見た、基準画像と同一サイズの画像であって、画素値が初期値としての0の画像を処理結果画像に設定する。さらに、集光処理部33は、その処理結果画像の画素の中から、まだ、注目画素に決定していない画素のうちの1画素を注目画素に決定し、処理はステップS33からステップS34に進む。
ステップS34では、集光処理部33は、補間部32からの視点画像の視点のうちの、(注目画素について、)まだ、注目視点に決定していない1つの視点vp#iを注目視点vp#iに決定し、処理はステップS35に進む。
ステップS35では、集光処理部33は、基準シフト量BVから、合焦対象画素を合焦させる(合焦対象画素に映る被写体にフォーカスを合わせる)ために必要な、注目視点vp#iの視点画像の各画素の合焦シフト量DP#iを求める。
すなわち、集光処理部33は、基準シフト量BVを、基準視点から注目視点vp#iの方向を加味して、ディスパリティ変換し、そのディスパリティ変換の結果得られる値(ベクトル)を注目視点vp#iの視点画像の各画素の合焦シフト量DP#iとして取得する。
その後、処理はステップS35からステップS36に進み、集光処理部33は、注目視点vp#iの視点画像の各画素を合焦シフト量DP#iに応じて画素シフトし、画素シフト後の視点画像の、注目画素の位置の画素の画素値を注目画素の画素値に積算する。
すなわち、集光処理部33は、注目視点vp#iの視点画像の画素のうちの、注目画素の位置から合焦シフト量DP#iに対応するベクトル(ここでは、例えば合焦シフト量DP#iの-1倍)だけ離れた画素の画素値を注目画素の画素値に積算する。
そして、処理はステップS36からステップS37に進み、集光処理部33は、補間部32からの視点画像のすべての視点を注目視点としたかどうかを判定する。
ステップS37において、まだ、補間部32からの視点画像のすべての視点を注目視点としていないと判定された場合、処理はステップS34に戻り、以下、同様の処理が繰り返される。
また、ステップS37において、補間部32からの視点画像のすべての視点を注目視点としたと判定された場合、処理はステップS38に進む。
ステップS38では、集光処理部33は、処理結果画像の画素のすべてを注目画素としたかどうかを判定する。
ステップS38において、まだ、処理結果画像の画素のすべてを注目画素としていないと判定された場合、処理はステップS33に戻り、集光処理部33は、上述したように、処理結果画像の画素の中から、まだ、注目画素に決定していない画素のうちの1画素を注目画素に新たに決定し、以下、同様の処理を繰り返す。
また、ステップS38において、処理結果画像の画素のすべてを注目画素としたと判定された場合、集光処理部33は、処理結果画像を出力して、集光処理を終了する。
なお、図11の集光処理では、基準シフト量BVは、合焦対象画素の登録ディスパリティRDに応じて設定され、注目画素や注目視点vp#iによっては変化しない。そのため、基準シフト量BVは、注目画素や注目視点vp#iに関係なく設定される。
また、合焦シフト量DP#iは、注目視点vp#i及び基準シフト量BVによって変化するが、単純リフォーカスモードでは、上述のように、基準シフト量BVは、注目画素や注目視点vp#iによっては変化しない。したがって、合焦シフト量DP#iは、注目視点vp#iによって変化するが、注目画素によっては変化しない。すなわち、合焦シフト量DP#iは、1つの視点の視点画像の各画素に対しては、注目画素に関係なく、同一の値になる。
図11において、合焦シフト量DP#iを求めるステップS35の処理は、異なる注目画素について、同一の視点vp#iに対する合焦シフト量DP#iを繰り返し算出するループ(ステップS33ないしステップS38のループ)を構成しているが、上述のように、合焦シフト量DP#iは、1つの視点の視点画像の各画素に対しては、注目画素に関係なく、同一の値になる。
したがって、図11において、合焦シフト量DP#iを求めるステップS35の処理は、1視点に対して1回だけ行えば良い。
図11の集光処理では、図10で説明したように、奥行き方向の距離が一定の平面を合焦面とするため、合焦対象画素を合焦させるのに必要な視点画像の基準シフト量BVは、奥行き方向の距離が一定の合焦面上の空間点が映る合焦対象画素、すなわち、ディスパリティが合焦面までの距離に対応する値の合焦対象画素のディスパリティをキャンセルするような1つの値になる。
したがって、図11の集光処理では、基準シフト量BVは、処理結果画像の画素(注目画素)や、画素値を積算する視点画像の視点(注目視点)に依存しないので、処理結果画像の画素ごとや、視点画像の視点ごとに設定する必要はない(基準シフト量BVを処理結果画像の画素ごとや、視点画像の視点ごとに設定しても、基準シフト量BVは、同一の値に設定されるので、実質的に、処理結果画像の画素ごとや、視点画像の視点ごとに設定することにはならない)。
なお、図11では、処理結果画像の画素ごとに視点画像の画素の画素シフト及び積算を行うこととしたが、集光処理において、視点画像の画素の画素シフト及び積算は、処理結果画像の画素ごとの他、処理結果画像の画素を細かく分割したサブピクセルごとに行うことができる。
また、図11の集光処理では、注目画素のループ(ステップS33ないしステップS38のループ)が、外側にあり、注目視点のループ(ステップS34ないしステップS37のループ)が、内側にあるが、注目視点のループを外側のループにするとともに、注目画素のループを内側のループにすることができる。
<補正係数>
図12は、視点ごとの補正係数の例を示す図である。
ここで、実際の一眼カメラ等で撮影する場合に、レンズの前に装着して使用されるソフト(フォーカス)フィルタによれば、ピントを残したまま、画像の全体に、軽いぼけ(光が滲んでいるようなソフトなぼけ)を付与することができる。
視点ごとの補正係数によれば、ソフトフィルタで実現されるぼけと同様のぼけが付与されたリフォーカスを実現することができる。
図12は、ソフトフィルタのフィルタ効果を生じさせる視点ごとの補正係数の例を示している。
いま、補間部32で得られる視点画像の視点の総数が、横×縦がM×M=5×5視点のM2=25個であることとする。
M×M視点の視点ごとの補正係数は、例えばM×Mに配列された係数として構成することができる。
この場合、M×Mに配列された係数のうちの、左からx番目で下からy番目(以下、(x,y)番目ともいう)の係数は、補間部32で得られる視点画像の視点のうちの、(x,y)番目の視点の補正係数とすることができる。
ソフトフィルタには、例えば溝(凹凸)が形成されており、補正係数は、所望のフィルタ効果を期待するソフトフィルタの溝に応じて、視点ごとに設定することができる。
図12では、同心円状に溝が形成されているソフトフィルタのフィルタ効果を生じさせるために、M×M視点のうちの、ソフトフィルタの溝の位置に対応する位置の、略(同心)円状の視点の補正係数(斜線を付してある部分)に、所望のぼけ量に相当する値((0,0)以外の値)が設定されている。また、他の視点の補正係数には、ぼけがないこと(ぼけ量が0であること)に相当する(0,0)が設定されている。
図12において、ある視点vp#iの補正係数(p,q)は、合焦シフト量DP#iとしてのベクトルを補正する補正量になっている。合焦シフト量DP#iとしてのベクトルを(sx,sy)と表すこととすると、補正係数(p,q)によって合焦シフト量DP#iを補正した、補正後の合焦シフト量DP#iとしてのベクトルは、例えば(sx+p,sy+q)で表される。
図12の視点ごとの補正係数によって補正された補正後の合焦シフト量DP#iによれば、同心円状の視点の視点画像の画素については、集光処理において、元の合焦シフト量DP#iに応じた画素シフトよりも、a画素分だけ(距離が)短い画素シフトが行われる。
いま、補正係数が(0,0)の視点をゼロ視点というとともに、補正係数が(0,0)以外の値の視点を非ゼロ視点ということとする。
図12では、視点の総数が、M×M=5×5視点と少ないため、非ゼロ視点が、1つの円状に配列されているだけであるが、視点の総数が、例えば図4で説明したように、21×21視点である場合には、非ゼロ視点が、複数の円(同心円)状になるように、補正係数を設定することができる。
ここで、水平方向及び垂直方向に隣接する視点どうしの距離を1/2とするとともに、基準視点(図12では、(3,3)番目の視点)からの距離をrで表すこととする。図12では、基準視点から距離rの非ゼロ視点の補正係数は、その非ゼロ視点から、基準視点(図12では、(3,3)番目の視点)に向かう方向の、大きさがarのベクトルになっている。
非ゼロ視点の補正係数としてのベクトルの大きさarのうちのaは、いわば、補正係数の基準ということができる。そこで、非ゼロ視点の補正係数としてのベクトルの大きさarのうちのaを基準係数ということとすると、補正係数によって合焦シフト量DP#iを補正することにより、処理結果画像に付与されるぼけ量(ぼけの拡がり)は、基準係数に比例するような値となる。
したがって、基準係数aの調整によって、ユーザが所望するぼけ量のぼけを付与することができる。
なお、ここでは、図12の視点vp#iに応じて設定された補正係数を視点vp#iの合焦シフト量DP#iに加算することで、視点vp#iの合焦シフト量DP#iを補正することとしたが、同様の補正は、基準係数aによる基準シフト量BVの補正によっても行うことができる。
すなわち、視点が、ゼロ視点であるか、非ゼロ視点であるかによって、ゼロ視点には、基準係数として、0を設定するとともに、非ゼロ視点には、基準係数として、0でない値aを設定し、そのように、視点に応じて設定された基準係数(0又はa)を基準シフト量BVに加算又は減算(本実施の形態では、減算)することで、基準シフト量BVを補正することにより、実質的に、図12の視点vp#iに応じて設定された補正係数による、視点vp#iの合焦シフト量DP#iの補正を行うことができる。
これは、視点に応じて設定された基準係数(0又はa)によって基準シフト量BVを補正した補正後の基準シフト量BVをディスパリティ変換した場合、そのディスパリティ変換の結果は、図12の視点vp#iに応じて設定された補正係数によって視点vp#iの合焦シフト量DP#iを補正した補正後の合焦シフト量DP#iに一致するからである。
以上から、図12の視点vp#iに応じて設定された補正係数は、合焦シフト量DP#i用の補正係数であるということができ、視点に応じて設定された基準係数(0又はa)は、基準シフト量BV用の補正係数であるということができる。
なお、補正係数としては、例えば任意の円の円周上の非ゼロ視点について、合焦シフト量DP#iとしてのベクトルを同一のベクトル(大きさがaのベクトル)だけ補正するような係数を採用することができる。また、補正係数としては、異なる非ゼロ視点について、合焦シフト量DP#iとしてのベクトルを異なるベクトルだけ補正する係数を採用することができる。
例えばある円の円周上の非ゼロ視点と他の円の円周上の非ゼロ視点とで、合焦シフト量DP#iとしてのベクトルを異なる大きさだけ補正するような係数を補正係数として採用することができる。
以下、説明を簡単にするため、合焦シフト量DP#i用の補正係数、及び、基準シフト量BV用の補正係数のうちの、合焦シフト量DP#i用の補正係数を例に説明を行う。
図13は、合焦シフト量DP#iを補正しない場合の、合焦対象画素に集光する光線の強度の分布の例を模式的に示す図である。
図13において(後述する図14及び図15でも同様)、横軸は、画素の位置を表し、縦軸は、集光処理において、仮想レンズを通過し、仮想センサで受光される光線の強度(に相当する値)を表す。
ここで、合焦シフト量DP#iを補正しない場合に、合焦対象画素に集光する光線を合焦対象画素に集光するはずの光線ともいう。
いま、合焦対象画素に集光するはずの光線の強度を1.0とする。
合焦シフト量DP#iを補正しない場合、合焦対象画素に集光するはずの光線は、すべて、合焦対象画素としての1画素(の領域)内に集光し、合焦対象画素に集光する光線の強度は、1.0になる。
いま、視点の総数が、M×M視点であるとすると、合焦対象画素に集光するはずの光線は、M×M視点の光線、すなわち、M×M視点の視点画像の、合焦対象画素に対応する対応画素の画素値に対応する光線である。
図14は、合焦シフト量DP#iを補正する場合の、合焦対象画素に集光するはずの光線の強度の分布の例を模式的に示す図である。
いま、視点の総数が、M×M視点であり、そのうちのN視点が、非ゼロ視点であるとする。
N視点の非ゼロ視点の合焦シフト量DP#iが補正される場合、合焦対象画素に集光するはずのM×M視点の光線のうちの、M×M-N視点のゼロ視点の光線は、合焦対象画素内に集光し、N視点の非ゼロ視点の光線は、合焦シフト量DP#iの補正により、合焦対象画素の範囲外に集光する。
ここで、合焦対象画素内に集光するM×M-N視点のゼロ視点の光線は、ピント(フォーカス)が合っている状態に寄与するので、ピント成分ともいう。また、合焦対象画素の範囲外に集光するN視点の非ゼロ視点の光線は、ぼけに寄与するので、ぼけ成分ともいう。
図14のAは、ピント成分の強度の分布を示しており、図14のBは、ぼけ成分の強度の分布を示している。
ピント成分は、図14のAに示すように、合焦対象画素内に集光し、その強度は、ピント成分としての光線の数M×M-Nと合焦対象画素に集光するはずの光線の数M×Mとの比の値((M×M-N)/(M×M))になる。
ぼけ成分は、図14のBに示すように、合焦対象画素の周囲に集光し、ぼけ成分の強度体積(ぼけ成分の強度をそのぼけ成分の分布範囲で積分した体積)は、ぼけ成分の光線の数Nと合焦対象画素に集光するはずの光線の数M×Mとの比の値(N/M×M)になる。
ぼけ成分は、合焦対象画素の位置を中心とする、図12で説明した基準係数aに応じた広さの範囲に分布する。すなわち、ぼけ成分は、基準係数aに応じて広がる。
したがって、ぼけ量(ぼけの拡がり)は、基準係数aによって調整することができる。
また、ピント成分の強度、及び、ぼけ成分の強度(体積)は、非ゼロ視点の数Nによって調整することができる。ピント成分の強度、及び、ぼけ成分の強度の調整は、ソフトフィルタの強弱の調整に相当する。
図15は、合焦シフト量DP#iを補正する場合の、合焦対象画素に集光するはずの光線の強度の分布の例を模式的に示す図である。
図15の分布は、図14のAのピント成分の強度の分布と図14のBのぼけ成分の強度の分布とを合成した分布になっている。
なお、例えば図12に示したような、視点ごとの補正係数を表す2次元平面を規定する2次元座標系として、水平方向及び垂直方向をそれぞれ、x軸及びy軸とするとともに、基準視点を原点とする2次元座標系を採用することとすると、その2次元座標系の第1象限ないし第4象限のうちの1つの象限である、例えば第1象限を除く第2象限ないし第4象限の3つの象限の視点ごとの補正係数は、第1象限の視点ごとの補正係数を設定した後に、その補正係数と対称となるように設定することができる。
すなわち、第2象限の視点ごとの補正係数は、第1象限の視点ごとの補正係数とy軸に対して、線対称になるように設定することができる。第3象限の視点ごとの補正係数は、第1象限の視点ごとの補正係数と原点に対して、点対称になるように設定することができ、第4象限の視点ごとの補正係数は、第1象限の視点ごとの補正係数とx軸に対して、線対称になるように設定することができる。
以上のように、1の象限を除く3つの象限の視点ごとの補正係数を1の象限の視点ごとの補正係数と対称となるように設定することにより、補正係数による合焦シフト量DP#iの補正で生じるぼけの形状を均一化することができる。この場合、図14のBに示したぼけ成分の強度が、合焦対象画素の位置を中心に対称に分布し、ぼけ成分の強度の分布が偏ることを防止することができる。
図16は、集光処理部33が行う集光処理の他の例を説明するフローチャートである。
すなわち、図16は、ソフトフィルタを用いて撮影したかのようなぼけを付与する場合の集光処理の例を示すフローチャートである。
ステップS51において、集光処理部33は、図11のステップS31と同様に、パラメータ設定部34から、集光パラメータとしての合焦対象画素(の情報)を取得する。さらに、集光処理部33は、パラメータ設定部34から集光パラメータとしての視点ごとの補正係数を取得し、処理はステップS51からステップS52に進む。
ステップS52ないしS55では、図11のステップS32ないしS35とそれぞれ同様の処理が行われる。
そして、ステップS55において、基準シフト量BVから、注目視点vp#iの視点画像の各画素の合焦シフト量DP#iが求められた後、処理はステップS56に進み、集光処理部33は、注目視点vp#i(の視点画像の各画素)の合焦シフト量DP#iを補正する。
すなわち、集光処理部33は、注目視点vp#iの合焦シフト量DP#iを集光パラメータとしての視点ごとの補正係数のうちの、注目視点vp#iの補正係数に従って補正することにより、補正後の合焦シフト量DP#iである補正シフト量MDP#iを求める。
その後、処理はステップS56からステップS57に進み、集光処理部33は、注目視点vp#iの視点画像の各画素を補正シフト量MDP#iに応じて画素シフトし、画素シフト後の視点画像の、注目画素の位置の画素の画素値を注目画素の画素値に積算する。
すなわち、集光処理部33は、注目視点vp#iの視点画像の画素のうちの、注目画素の位置から補正シフト量MDP#iに対応するベクトル(ここでは、例えば補正シフト量MDP#iの-1倍)だけ離れた画素の画素値を注目画素の画素値に積算する。
そして、処理はステップS57からステップS58に進み、以下、ステップS58及びS59において、図11のステップS37及びS38とそれぞれ同様の処理が行われる。
なお、図16では、視点に応じて設定された補正係数によって、合焦シフト量DP#iを直接補正することとしたが、図12で説明したように、視点に応じて設定された補正係数によって、基準シフト量BVを補正することによっても、ソフトフィルタのフィルタ効果としてのぼけが付与されたリフォーカスを行うことができる。
また、図11のぼけを付与しない集光処理を行うか、図16のぼけを付与する集光処理を行うかは、例えば図11のぼけを付与しない集光処理を行うモードと図16のぼけを付与する集光処理を行うモードとのモード切替をユーザの操作等に応じて行うことで選択することができる。但し、図16のぼけを付与する集光処理を行うモードであっても、視点ごとの補正係数をすべて(0,0)に設定することにより、実質的に、合焦シフト量DP#iの補正が行われなくなり、図11のぼけを付与しない集光処理を行うことができる。
さらに、本実施の形態では、処理結果画像の視点として、基準視点を採用することとしたが、処理結果画像の視点としては、基準視点以外の点、すなわち、例えば仮想レンズの合成開口内の任意の点等を採用することができる。
<本技術を適用したコンピュータの説明>
次に、上述した画像処理装置12の一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
図17は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示すブロック図である。
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
あるいはまた、プログラムは、リムーバブル記録媒体111に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウエアとして提供することができる。ここで、リムーバブル記録媒体111としては、例えばフレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク105にインストールすることができる。すなわち、プログラムは、例えばダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
コンピュータは、CPU(Central Processing Unit)102を内蔵しており、CPU102には、バス101を介して、入出力インタフェース110が接続されている。
CPU102は、入出力インタフェース110を介して、ユーザによって、入力部107が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、CPU102は、ハードディスク105に格納されたプログラムをRAM(Random Access Memory)104にロードして実行する。
これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を必要に応じて、例えば入出力インタフェース110を介して、出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
なお、入力部107は、キーボードや、マウス、マイク等で構成される。また、出力部106は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば並列処理あるいはオブジェクトによる処理)も含む。
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
なお、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
例えば本技術は、1つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
また、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。
さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。
また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
なお、本技術は、以下の構成をとることができる。
<1>
複数の視点の画像を取得する取得部と、
前記複数の視点の画像の画素をシフトするシフト量を設定し、前記シフト量に応じて前記複数の視点の画像の画素をシフトして画素値を積算することにより、所定の距離に合焦した処理結果画像を生成する集光処理を行う集光処理部と
を備え、
前記集光処理部は、前記視点ごとの補正係数により前記シフト量を補正した補正後のシフト量に応じて前記画素をシフトする
画像処理装置。
<2>
前記集光処理部は、
前記視点に応じた前記補正係数により前記シフト量を補正し、
補正後の前記シフト量に応じて前記視点の画像の画素をシフトする
<1>に記載の画像処理装置。
<3>
前記補正係数は、ぼけを付与するソフトフィルタの溝に応じて前記視点ごとに設定される
<1>又は<2>に記載の画像処理装置。
<4>
前記視点ごとの前記補正係数を表す2次元平面において、1つの象限を除く3つの象限の前記視点ごとの補正係数は、前記1つの象限の前記視点ごとの補正係数と対称になるように設定される
<1>ないし<3>のいずれかに記載の画像処理装置。
<5>
前記複数の視点の画像は、複数のカメラで撮影された複数の撮影画像を含む
<1>ないし<4>のいずれかに記載の画像処理装置。
<6>
前記複数の視点の画像は、前記複数の撮影画像と前記撮影画像を用いた補間により生成される複数の補間画像とを含む
<5>に記載の画像処理装置。
<7>
前記複数の撮影画像の視差情報を生成する視差情報生成部と、
前記撮影画像、及び、前記視差情報を用いて、異なる視点の前記複数の補間画像を生成する補間部と
をさらに備える
<6>に記載の画像処理装置。
<8>
複数の視点の画像を取得することと、
前記複数の視点の画像の画素をシフトするシフト量を設定し、前記シフト量に応じて前記複数の視点の画像の画素をシフトして画素値を積算することにより、所定の距離に合焦した処理結果画像を生成する集光処理を行うことと
を含み、
前記集光処理では、前記視点ごとの補正係数により前記シフト量を補正した補正後のシフト量に応じて前記画素をシフトする
画像処理方法。
<9>
複数の視点の画像を取得する取得部と、
前記複数の視点の画像の画素をシフトするシフト量を設定し、前記シフト量に応じて前記複数の視点の画像の画素をシフトして画素値を積算することにより、所定の距離に合焦した処理結果画像を生成する集光処理を行う集光処理部と
して、コンピュータを機能させるためのプログラムであり、
前記集光処理部は、前記視点ごとの補正係数により前記シフト量を補正した補正後のシフト量に応じて前記画素をシフトする
プログラム。
<A1>
複数の視点の画像の画素をシフトするシフト量を設定し、
前記シフト量に応じて、前記複数の視点の画像の画素をシフトして画素値を積算する ことにより、所定の距離に合焦した処理結果画像を生成する集光処理での、前記複数の視点の画像の画素のシフトを、前記視点に応じて設定された、前記シフト量を補正する補正係数によって補正された補正後の前記シフト量に応じて行う集光処理部を備える
画像処理装置。