画像処理装置、画像処理方法及びプログラム
【課題】注目領域を設定して、注目領域のみのリフォーカス処理を行うことで処理を高速化できるようにする。
【解決手段】リフォーカス処理を行う画像処理装置であって、仮想ピントパラメータを入力する入力手段と、前記仮想ピントパラメータに基づき注目領域を決定して注目領域情報を算出する決定手段と、仮想視点位置からの撮像画像を示す補間画像を生成する補間手段と、前記撮像画像、前記補間画像及び前記注目領域情報からリフォーカス画像を生成する合成手段とを備え、前記合成手段は、前記注目領域のリフォーカス画像を生成する。
【解決手段】リフォーカス処理を行う画像処理装置であって、仮想ピントパラメータを入力する入力手段と、前記仮想ピントパラメータに基づき注目領域を決定して注目領域情報を算出する決定手段と、仮想視点位置からの撮像画像を示す補間画像を生成する補間手段と、前記撮像画像、前記補間画像及び前記注目領域情報からリフォーカス画像を生成する合成手段とを備え、前記合成手段は、前記注目領域のリフォーカス画像を生成する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は画像処理装置、画像処理方法及びプログラムに関し、特に、多視点撮影した複数枚の画像を合成しリフォーカス画像を生成するために用いて好適な技術に関する。
【背景技術】
【0002】
従来、複数の視点から撮影された画像から、画像位置合わせ及び画像合成処理により、仮想フォーカス距離にリフォーカス処理を行う方法が知られている(例えば、特許文献1及び非特許文献1参照)。特許文献1及び非特許文献1では、撮影位置の異なる複数枚の画像を合成し、各画像の撮影位置とピントを合わせたい被写体距離に応じて、各画像をシフトあるいは変形して合成することによりリフォーカス画像を生成している。また、リフォーカス処理の高速化技術としては、データ転送回数を減らすことによってPlenoptic Cameraにおけるリフォーカス処理の高速化を図る技術が知られている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2011−22796号公報
【特許文献2】特開2010−183316号公報
【非特許文献】
【0004】
【非特許文献1】楠本夏未他、"未較正合成開口撮影法によるデフォーカスコントロール"、MIRU2008画像の認識・理解シンポジウム論文集、日本、2008年、1057-1062頁
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1や非特許文献1の方法では、リフォーカス画像を生成するために中間視点画像を推定処理によって生成する必要があり、この生成に膨大な計算コストがかかるという課題がある。さらに、ぼけの大きさを大きくすればするほど、きれいなぼけを再現するためにはより多くの中間視点画像が必要となってしまう。一方、特許文献2は、Plenoptic Cameraに限定された高速化技術であり、これ以外の構成のカメラにおけるリフォーカス処理には向かない。
【0006】
本発明は前述の問題点に鑑み、注目領域を設定して、注目領域のみのリフォーカス処理を行うことで処理を高速化できるようにすることを目的としている。
【課題を解決するための手段】
【0007】
本発明の画像処理装置は、リフォーカス処理を行う画像処理装置であって、仮想ピントパラメータを入力する入力手段と、前記仮想ピントパラメータに基づき注目領域を決定して注目領域情報を算出する決定手段と、仮想視点位置からの撮像画像を示す補間画像を生成する補間手段と、前記撮像画像、前記補間画像及び前記注目領域情報からリフォーカス画像を生成する合成手段とを備え、前記合成手段は、前記注目領域のリフォーカス画像を生成することを特徴とする。
【発明の効果】
【0008】
本発明によれば、処理の高速化によりリフォーカス処理におけるユーザビリティを向上させることができる。
【図面の簡単な説明】
【0009】
【図1】実施形態における画像処理装置のシステム構成を示すブロック図である。
【図2】実施形態における撮像装置を示す図である。
【図3】実施形態における撮像画像を示す図である。
【図4】実施形態における概要機能構成を示す図である。
【図5】注目領域決定処理部の処理概要を示す図である。
【図6】実施形態における撮像位置と仮想視点位置との関係を示す図である。
【図7】実施形態における重み係数の例を示す図である。
【図8】実施形態における撮影位置の間隔と被写体までの距離との関係を示す図である。
【図9】実施形態における処理の流れを示すフローチャートである。
【図10】実施形態における距離推定処理の流れを示すフローチャートである。
【図11】実施形態における注目領域決定処理の流れを示すフローチャートである。
【図12】実施形態における画像補間処理の流れを示すフローチャートである。
【図13】実施形態における画像合成処理の流れを示すフローチャートである。
【図14】実施形態における注目領域の例を示す図である。
【図15】実施形態における注目領域決定処理の流れを示すフローチャートである。
【図16】実施形態における画像処理装置のGUIを示す図である。
【図17】実施形態における注目領域のリフォーカス結果表示例を示す図である。
【発明を実施するための形態】
【0010】
(第1の実施形態)
本実施形態では、複数のカメラユニットを備えた多眼方式の撮像装置から得られた複数枚の撮像画像から、画像処理によって任意の仮想フォーカス距離にピントを合わせた画像を生成するリフォーカス処理を行う。この際に、ピントを合わせたい領域に対して、リフォーカス処理を優先的に行う。
【0011】
まず、本実施形態における画像処理装置のシステム構成例について、図1を用いて説明する。
図1において、CPU101は、RAM102をワークメモリとして、ROM103及びハードディスクドライブ(HDD)105に格納されたプログラムを実行し、システムバス112を介して後述する各構成を制御する。これにより、後述する様々な処理が実行される。HDDインターフェース(I/F)104は、HDD105や光ディスクドライブなどの二次記憶装置を接続する、例えばシリアルATA(SATA)等のインターフェースである。
【0012】
CPU101は、HDDI/F104を介して、HDD105からのデータ読み出し、およびHDD105へのデータ書き込みが可能である。さらにCPU101は、HDD105に格納されたデータをRAM102に展開し、同様に、RAM102に展開されたデータをHDD105に保存することが可能である。そしてCPU101は、RAM102に展開したデータをプログラムとみなし、実行することができる。
【0013】
入力インターフェース(I/F)106は、キーボードやマウスなどの入力デバイス107を接続する、例えばUSBやIEEE1394等のシリアルバスインターフェースである。CPU101は、入力I/F106を介して入力デバイス107からデータを読み込むことが可能である。出力インターフェース(I/F)108は、モニタやプロジェクタなどの出力デバイス109を接続する、例えばDVIやHDMI等である。CPU101は、出力I/F108を介して出力デバイス109にデータを送り、表示を実行させることができる。
【0014】
撮像インターフェース(I/F)110は、デジタルカメラなどの撮像装置111を接続する、例えばUSBやIEEE1394などのシリアルバスインターフェースである。CPU101は、撮像I/F110を介して撮像装置111を制御し、撮像を行うことが可能である。さらにCPU101は、撮像I/F110を介して撮像装置111から撮像したデータを読み込むことが可能である。
【0015】
図2は、本実施形態における撮像装置111の外観構成を示した図である。この撮像装置111は、撮像画像を取得する9個のカメラユニット201〜209を備えた多眼方式の装置である。9個のカメラユニット201〜209は、正方格子上に均等に配置されている。また、各カメラユニットの上下軸、左右軸、光軸は全て同じ方向であるとする。このカメラユニット201〜209が、被写体の光情報をセンサ(撮像素子)で受光し、受光した信号がA/D変換されて、複数の撮像画像(デジタルデータ)が同時に取得される。このような多眼方式の撮像装置により、同一の被写体を複数の視点位置から撮像した撮像画像群を得ることができる。
【0016】
なお、本実施形態ではカメラユニットの数を9個としたが、これに限定されるものではない。撮像装置が複数のカメラユニットを有する限りにおいて本発明は適用可能である。また、ここでは9個のカメラユニットが正方格子上に均等に配置される例について説明したが、カメラユニットの配置はこれに限るものではない。
【0017】
図3は、本実施形態における撮像画像を示した図である。ここでは、2つの被写体を撮像した例を示している。301〜309は、それぞれカメラユニット201〜209で撮像された撮像画像である。カメラユニット間には視差があるため、撮像画像中の被写体の位置がカメラユニットごとに異なる。そのため、この例では、撮像画像304、305、307、308には、被写体が2つ写っているが、それ以外の撮像画像には被写体は1つしか写っていない。本実施形態では、中央のカメラユニット205で撮像された撮像画像305を、以後、基準画像と呼ぶことにする。
【0018】
次に、本実施形態に係る一連の処理を行う際の概要機能構成について、図4を用いて説明する。CPU101の機能部としての撮像データ入力部401は、撮像装置111によって異なる位置から撮影された複数の撮像画像301〜309を撮像装置111あるいはROM103、HDD105等の記憶装置から取得する。さらに、撮像装置111の画角や撮像位置を含む撮像装置情報403を撮像装置111あるいはROM103、HDD105等の記憶装置から取得する。
【0019】
CPU101の機能部としてのパラメータ入力部404は、仮想ピントパラメータ405および仮想絞りパラメータ406を入力デバイス107あるいはROM103、HDD105等の記憶装置から取得する。CPU101の機能部としての距離推定処理部407は、撮像画像301〜309および撮像装置情報403に基づき、ステレオマッチングにより撮像シーンのデプス値を推定し、デプスマップ408を生成する。
【0020】
CPU101の機能部としての注目領域決定処理部409は、撮像画像301〜309、撮像装置情報403、デプスマップ408、仮想ピントパラメータ405に基づき、各カメラユニットにおける注目領域情報410を生成する。CPU101の機能部としての画像補間処理部411は、まず、撮像装置情報403に基づき、撮像画像301〜309の撮像位置を内挿するように仮想視点位置413を設定する。そして、撮像画像301〜309を基に、各仮想視点位置413から撮像される画像を補間処理により求めることで補間画像412を生成する。
【0021】
CPU101の機能部としての画像合成処理部414は、撮像装置情報403、仮想視点位置413、仮想ピントパラメータ405、仮想絞りパラメータ406に基づいて画像合成処理を行い、リフォーカス画像415を生成する。CPU101の機能部としての画像出力部416は、リフォーカス画像415を出力デバイス109やHDD105等の二次記憶装置へ出力する。
【0022】
図16は、本実施形態における画像処理装置のGUIを示す図である。本GUIは、画像表示領域1602と、ツールパレット1601から構成される。画像表示領域1602は、撮像画像やリフォーカス画像等を表示するための領域である。一方、ツールパレット1601は、ぼかし量調整スライダー1603、注目領域のサイズを入力するための注目領域サイズエディットボックス1606、及び画像全体のリフォーカス処理を実行するためのリフォーカス実行ボタン1605を備える。仮想ピントパラメータ405の入力を行う際に、ユーザは、マウスカーソル1604を動かし、画像表示領域1602上のピントを合わせたい位置にてマウスクリック動作を行う。マウスクリック動作が行われると、パラメータ入力部404は、画像表示領域1602に表示されている画像の左上を原点とするクリック座標値を仮想ピントパラメータ405として取得する。
【0023】
図9は、本実施形態の画像処理装置における一連の処理の動作手順の一例を示すフローチャートである。詳細には、図9のフローチャートに示す手順を記述したコンピュータ実行可能なプログラムを、ROM103あるいはHDD105からRAM102上に読み込んだ後に、CPU101によって該プログラムを実行することによって当該処理が実施される。以下、図9に示す各処理について説明する。
【0024】
ステップS901では、撮像データ入力部401は、撮像装置111を用いて撮像画像301〜309を撮像し、撮像画像301〜309および撮像装置111の各カメラユニットの画角や撮像位置を含む撮像装置情報403を取得する。あるいは、予めROM103やHDD105などの記録装置に撮像画像301〜309及び撮像装置111の各カメラユニットの画角や撮像位置などの撮像装置情報403を保持しておき、これを撮像データ入力部401が取得するようにしてもよい。この際、図16に示したGUI上では、画像表示領域1602に中央のカメラユニット205で撮像された画像が表示される。
【0025】
ステップS902では、距離推定処理部407は、ステップS901で取得した撮像画像301〜309及び撮像装置情報403を基に、距離推定処理を用いて撮像したシーンの奥行きを推定しシーンのデプスマップ408を生成する。距離推定処理の詳細は後述する。
【0026】
ステップS903では、パラメータ入力部404は、入力デバイス107から基準画像における仮想ピント位置を示す座標を含む仮想ピントパラメータ405、画像合成時に使用する各画像の重み係数を含む仮想絞りパラメータ406を取得する。仮想ピント位置を示す座標は、図16に示したGUI上で、ユーザが画像表示領域1602上のピントを合わせたい位置にてマウスクリック動作を行うことによって取得される。また、仮想絞りパラメータ406は、図16に示したGUI上で、ユーザがぼかし量調整スライダー1603を調整した結果として取得される。この仮想絞りパラメータ406は、撮影位置および仮想視点位置413において得られる画像に対する係数のセットである。つまり、ぼかし量調整スライダーを調整するとは、この係数セットを変更することに相当する。係数セットの詳細は画像合成処理の説明の中で記述する。
【0027】
ステップS904では、注目領域決定処理部409は、撮像画像301〜309、撮像装置情報403、デプスマップ408、仮想ピントパラメータ405に基づき、注目領域決定処理により注目領域情報410とカメラリスト417を生成する。注目領域決定処理の詳細は後述する。
【0028】
ステップS905では、画像補間処理部411は、撮像画像301〜309、撮像装置情報403、注目領域情報410、及びカメラリスト417に基づき画像補間処理を行い、補間画像412を生成する。ここで、補間処理は、注目領域内のみを処理対象とし、補間画像412は、撮像画像中の注目領域のみを補間した画像となる。注目領域外は、以後の処理に使用しないためどのような画像となっていても構わない。例えば、白や黒で塗りつぶされていてもよい。画像補間処理の詳細については後述する。
【0029】
ステップS906では、画像合成処理部414は、注目領域情報410、ステップS905で生成した補間画像412、仮想ピントパラメータ405、及び仮想絞りパラメータ406に基づき画像合成処理を行い、リフォーカス画像415を生成する。この処理では、注目領域のみを処理対象とし、生成されるリフォーカス画像415は、注目領域のみがリフォーカス処理された画像となる。注目領域外については、例えば中央のカメラユニット205で撮像された画像とする。画像合成処理の詳細については後述する。
【0030】
ステップS907では、画像出力部317は、ステップS906で生成された注目領域のみがリフォーカス処理されたリフォーカス画像415を出力デバイス109やHDD105を含む二次記録装置に出力する。この際、図16に示したGUI上では、画像表示領域1602にリフォーカス画像415が表示されることになる。
【0031】
注目領域のリフォーカス画像415の表示例を図17に2つ示す。図17(a)では、ステップS906で生成されたリフォーカス画像が画像表示領域1602に内接するように表示されている。さらに、設定された注目領域を示す注目領域枠1701が画像表示領域1602上に表示されている。一方、図17(b)では、ステップS906で生成されたリフォーカス画像のうち、注目領域内のみを画像表示領域1602に内接するように拡大表示している。ここでは、リフォーカス画像の表示例を2つ説明したが、これ以外の表示方法をとっても構わないことは言うまでもない。
【0032】
ステップS908では、ピント位置が確定されたかどうかを判定する。具体的には、図16に示すGUI上で、ユーザによりリフォーカス実行ボタン1605が押されたかどうかで判定を行う。リフォーカス実行ボタン1605が押された場合は、ピント位置が確定されたものとしてステップS909へ進み、押されていない場合は、ピント位置が確定されていないものとして、ステップS903へと戻り、別の仮想ピントパラメータ405の取得を行う。
ステップS909では、画像補間処理部411は、前のステップで取得した撮像画像301〜309及び撮像装置情報403に基づき画像補間処理を行い、補間画像412を生成する。ステップS905における画像補間処理との差分は、処理対象領域が画像全体となり、結果として得られる補間画像も画像全体を補間した画像となっていることである。その他の処理内容はステップS905と同様である。
【0033】
ステップS910では、画像合成処理部414は、撮像画像301〜309、ステップS908で生成した補間画像412、仮想ピントパラメータ405、及び仮想絞りパラメータ406に基づき画像合成処理を行い、リフォーカス画像415を生成する。ここで生成されるリフォーカス画像415は、画像全体のリフォーカス画像となる。ステップS906における画像合成処理との差分は、処理対象領域が画像全体となり、生成されるリフォーカス画像が画像全体に対して画像合成処理を行った画像となることである。その他の処理内容はステップS906と同様である。
【0034】
ステップS911では、画像出力部317は、ステップS910で生成されたリフォーカス画像316を出力デバイス109やHDD105を含む二次記録装置に出力する。この際、図16に示したGUI上では、画像表示領域1602に画像全体に対してリフォーカス処理を行った結果としてのリフォーカス画像415が表示されることになる。
【0035】
<距離推定処理>
ここでは、図9に示すフローチャートのステップS902で行う距離推定処理の詳細について説明する。距離推定処理では、位置の異なる複数の撮像画像301〜309を基に、撮像したシーンの距離を推定することでデプスマップ408を生成する。この距離推定方法には公知の方法を用いればよい。例えば、ステレオ法、マルチベースラインステレオ法などが適用可能である。本実施形態では、ステレオ法によって距離推定を行う。以下、図10に示すフローチャートを用い、距離推定処理の詳細を説明する。
【0036】
ステップS1001では、撮像画像301〜309から処理に使用する2つの画像を選択する。本実施形態では、撮像装置111の中央のカメラユニット205で撮像された画像と、それと横方向に隣接するカメラユニット206で撮像された画像を選択するものとする。以下、前者を基準画像、後者を対象画像とする。
【0037】
ステップS1002では、以降の処理を行う注目画素を初期化する。そして、ステップS1003では、全画素で距離値が求められているかを判定する。全画素で距離値が求められている場合はステップS1007へ進み、距離値の求められていない画素がある場合はステップS1004へ進む。
【0038】
ステップS1004では、まず基準画像の注目画素とその周囲の画素からなる領域を選択する。そして選択したブロックを用いて対象画像とパターンマッチングを行い、対象画像中から注目画素に対応する画素(対応画素)を求める。そして、ステップS1005では、撮像装置情報403、注目画素およびS1005で求めた対応画素を基に注目画素に対応する距離値pを求める。距離値pは、図8に示すα、β、sを基に以下の式(1)で表される。
【0039】
【数1】
【0040】
ここで、αはカメラユニット205の水平画角、基準画像の撮像位置、注目画素の座標から算出される。βはカメラユニット206の水平画角、対象画像の撮像位置、対象画素の座標から算出される。sはカメラユニット間の距離であり、基準画像および対象画像の撮像位置より算出される。
【0041】
ステップS1006では、注目画素を更新しS1003へ戻る。ステップS1007では、各画素値を基準画像の距離値とするデプスマップ408を出力する。なお、本実施形態ではステップS1001において、カメラユニット205、206を選択して距離推定を行ったが、距離推定可能なカメラユニットの組み合わせはこれに限るものではない。
【0042】
<注目領域決定処理>
ここでは、図9に示すフローチャートのステップS904で行う注目領域決定処理の詳細について説明する。注目領域決定処理では、仮想ピントパラメータ405と撮像装置情報403とに基づき、各カメラユニットで撮像された撮像画像301〜309のそれぞれに対して注目領域の設定処理を行う。そして、注目領域情報410と、注目領域情報410の生成に使用したカメラIDを記述したカメラリスト417とを生成する。以下、図11に示すフローチャートと図5に示す注目領域決定処理部の処理概要を用い、注目領域決定処理の詳細を説明する。
【0043】
ステップS1101では、処理対象カメラユニットを中央のカメラユニット205に設定する。ステップS1102では、ステップS903で入力された仮想ピントパラメータ405と、ステップS902で生成されたデプスマップ408からピントを合わせたい被写体の距離情報を取得する。ここで、仮想ピントパラメータとは、図5に示すように基準画像上での仮想ピント位置のXY座標である。ここでは、画像の左上を原点として、基準画像上での仮想ピント位置の座標を(Xf,Yf)とする。距離情報は、デプスマップ上でこの仮想ピント位置の座標を参照することによって取得することができる。
【0044】
ステップS1103では、図16に示したGUI上で、注目領域サイズエディットボックス1606に入力された値を、パラメータ入力部404が取得する。図5では、注目領域のサイズとしてr画素が指定された場合を示している。この場合、注目領域の幅及び高さがそれぞれr画素となる。なお、幅及び高さを別々に設定できるようにしてもよい。ここで設定された注目領域は、仮想ピントパラメータ405である仮想ピント位置の座標(Xf,Yf)を中心として、幅と高さがそれぞれr画素の正方領域となっている。次に、この注目領域の左上の座標(X1,Y1)と右下の座標(X2,Y2)とをそれぞれ求める。この2つの座標情報を中央カメラユニットの注目領域情報とする。なお、このステップでは、注目領域のサイズをGUI上で指定された値から取得すると説明したが、これに限らず、例えばあらかじめ定められたサイズを使用してもよい。
【0045】
ステップS1104では、処理対象カメラユニットを、まだ注目領域決定処理の行われていないカメラユニットへと更新する。ステップS1105では、ステップS901で入力された撮像画像301〜309及び撮像装置情報403から、処理対象カメラユニットによって撮像された撮像画像と処理対象カメラユニットの撮像装置情報を取得する。
【0046】
ステップS1106では、前のステップで取得した処理対象カメラユニットの撮像画像における仮想ピント位置の座標値を算出する。これには、距離推定処理で説明した距離値pを算出する式(1)を利用すればよい。このとき、距離値pはステップS1102で取得したピントを合わせたい被写体までの距離とする。sはカメラユニット間の距離であり、中央のカメラユニット205および処理対象カメラユニットの撮像位置より算出できる。また、αはカメラユニット205の水平画角、撮像位置、仮想ピント位置の座標(Xf,Yf)から算出できる。
【0047】
これらの値を式(1)に代入することで、処理対象カメラユニットとピントを合わせたい被写体との角度βを求めることができる。ここで求まったβと、処理対象カメラユニットの水平画角を含む撮像装置情報とから、処理対象カメラユニットの撮像画像における仮想ピント位置のX方向の座標値を算出することができる。また、水平画角を垂直画角と置き換えることによって同様の方法でY方向の座標値を算出することができる。
【0048】
ステップS1107では、前のステップで算出した処理対象カメラユニットの撮像画像における仮想ピント位置の座標が、撮像画像内にあるかどうかを判定する。撮像画像内にある場合は、ステップS1108へと進み、そうでない場合は、ステップS1110へと進む。
【0049】
ステップS1108では、現在処理対象となっているカメラユニットを識別可能なIDをカメラリストに追加する。そして、ステップS1109では、まず、処理対象カメラユニットの撮像画像における注目領域情報410を算出する。これは、ステップS1103で算出した中央カメラユニットの注目領域情報である注目領域の左上座標(X1,Y1)と右下座標(X2,Y2)を、それぞれステップS1106で説明した処理方法と同様の方法にて変換することによって求めることができる。
【0050】
具体的には、距離値pは注目領域の左上座標や右上座標に位置する被写体までの距離とする。sはカメラユニット間の距離であり、中央のカメラユニット205及び処理対象カメラユニットの撮像位置より算出できる。また、αはカメラユニット205の水平画角、撮像位置、注目領域の左上座標や右上座標から算出できる。これらの値を式(1)に代入することで、処理対象カメラユニットと注目領域の左上座標や右上座標に位置する被写体との角度βを求めることができる。ここで求まったβと、処理対象カメラユニットの水平画角を含む撮像装置情報から、処理対象カメラユニットの撮像画像における注目領域の左上座標や右上座標のX方向の座標値を算出することができる。また、水平画角を垂直画角と置き換えることによって同様の方法でY方向の座標値も同様に算出することができる。次に、この算出した注目領域情報410を、HDD105を含む二次記録装置に出力する。
【0051】
ステップS1110では、全てのカメラユニットに対して注目領域決定処理を行ったかどうかを判定する。もし、全てのカメラユニットに対する処理が行われていれば処理を終了し、そうでなければステップS1104へ戻り処理を継続する。
【0052】
<画像補間処理>
次に、ステップS905及びステップS909で行う画像補間処理の詳細について説明する。ステップS909で行う画像補間処理では、まず、撮像装置情報403に基づいて撮像画像301〜309の撮像位置を内挿するように仮想視点位置413を設定する。次に、視差補間処理を用いて撮像画像301〜309を基に各仮想視点位置413に対応する補間画像412を生成する。
【0053】
一方、ステップS905で行う画像補間処理では、まず、カメラリスト417にリストアップされているカメラユニットのみの撮像画像の撮像位置を内挿するように、撮像装置情報403に基づき仮想視点位置413を設定する。次に、視差補間処理を用いて注目領域情報410に基づき、各仮想視点位置413に対応する補間画像412を生成する。ここでの補間画像412は、注目領域内のみが補間された画像となる。注目領域外はどのような画像であっても構わない。以下、図12に示すフローチャートを用いてステップS909における画像補間処理の詳細を説明する。
【0054】
ステップS1201では、補間画像を生成する仮想視点位置413の設定を行う。撮像位置と仮想視点位置との関係を図6(a)に示す。x軸601、y軸602、z軸603はそれぞれ各カメラユニットの水平方向、垂直方向、光軸方向に対応し、カメラユニット205の撮像位置を原点として直交しているものとする。仮想視点位置413は各撮像位置を内挿するように設定する。本実施形態では、図6に示すように撮像位置を等間隔に内挿するよう格子状に仮想視点位置413を設定する。
【0055】
ステップS1202では、撮像画像301〜309の中から撮像位置が横方向に隣接する2つの画像を順に選択し、視差補間処理を用いて2画像間の仮想視点位置413に対応する補間画像412を生成する。図6(b)に、ステップS1402で補間画像を生成する仮想視点位置を示す。視差補間処理には公知の方法を利用する。例えば、2画像を用いて、ブロックマッチングにより算出した各画素の視差量を基に中間視点の画像を補間により生成すればよい。あるいは、2画像から抽出した特徴点を対応付け、各特徴点の対応関係を基にモーフィング処理を行うことで中間視点の画像を生成してもよい。
【0056】
ステップS1403では、撮像画像301〜309及びステップS1402で生成した補間画像412の中から撮像位置が縦方向に隣接する画像のペアを順に選択し、視差補間処理を用いて2画像間の仮想視点位置413に対応する補間画像を生成する。図6(c)に、ステップS1403で補間画像を生成する仮想視点位置を示す。視差補間処理には、ステップS1402と同様の手法が適用可能である。そして、ステップS1404では、ステップS1402及びステップS1403で生成した補間画像412を出力する。
【0057】
ここでは、ステップS909における画像補間処理について詳細に説明したが、ステップS905における画像補間処理も同様の手順で実行可能である。具体的には、撮像画像301〜309をすべて使う代わりにカメラリスト417に記述されているカメラユニットの撮像画像のみを使用し、仮想視点位置413は、カメラリストに記述されているカメラユニットの撮像位置のみを使用して設定する。また、視差補間処理では、注目領域内のみを処理することで実行可能である。
【0058】
<画像合成処理>
次に、ステップS906及びステップS910で行う画像合成処理について説明する。画像合成処理では、まず、仮想絞りパラメータ406を基に、各画像に対する重み係数を設定する。そして、撮像装置情報403および仮想視点位置413を基に、各画像をシフトし領域毎に異なる重み係数を用いて重み付け加算を行い、リフォーカス画像415を生成する。以下、図13に示すフローチャートを用い、ステップS910における画像合成処理の詳細を説明する。
【0059】
ステップS1301において、ステップS903で取得した仮想絞りパラメータ406を基に、画像を合成する際に用いる重み係数を設定する。まず、図7を用いて画像合成時の重み係数について説明する。仮想絞りパラメータ406は、撮影位置及び仮想視点位置413において得られる画像に対する係数のセットである。以下、図7(a)に示すように各撮影位置及び仮想視点位置413をそれぞれP0〜P24と表し、位置Pm(m=0〜24)において得られる画像をImとする。このとき、Imに対応する重み係数の値A(m)は、仮想絞りパラメータ406から、例えば、図7(b)に示すように設定することができる。ここでは、P12を中心としてガウス関数に従うよう重み係数を設定し、重み係数の和が1になるよう正規化している。こうすることにより、ピント外領域を滑らかにぼかすことができる。
【0060】
次に、ステップS1302において、撮像装置情報403およびステップS909で設定した仮想視点位置413を基に、各画像のシフト量を算出する。ピント距離をdとした際の画像Imの水平方向のシフト量△i(m、d)および垂直方向のシフト量△j(m、d)は以下の式(2)で表される。
【0061】
【数2】
【0062】
ここで、W、Hはそれぞれ画像の水平方向、垂直方向の画像サイズを示す。θwはカメラユニットの水平画角であり、θhはカメラユニットの垂直画角である。(sm,tm)はxy平面上におけるPmの座標であり、(s',t')はxy平面上におけるカメラユニット205の撮像位置P12の座標である。
【0063】
次に、ステップS1303において、ステップS1302で求めたシフト量、ステップS1301で求めた重み係数を用いて、撮像画像301〜309及びステップS909で生成した補間画像412に対して重み付け加算処理を行う。この処理により、リフォーカス画像415が生成される。リフォーカス画像415をHとしたとき、合成処理は以下の式(3)で表される。
【0064】
【数3】
【0065】
そして、ステップS1304において、前のステップで生成したリフォーカス画像415を出力する。ここでは、ステップS910における画像合成処理について詳細に説明したが、ステップS906における画像合成処理も同様の手順で実行可能である。具体的には、撮像画像301〜309を全て使用する代わりにカメラリストに記述されているカメラユニットの撮像画像のみを使用する。さらに、仮想視点位置413及び補間画像412はステップS905で生成したものを使用する。また、重み係数を使用する画像数に応じて再正規化し、処理範囲を注目領域内に限定することによって実行可能である。
【0066】
以上説明した処理によって、リフォーカス処理を行う際に、ピントを合わせたい領域のみを処理対象とすることによって、ユーザに対してリフォーカス結果を高速に提示することができる。これにより、リフォーカス処理におけるユーザビリティの向上を果たすことができる。
【0067】
なお、本実施形態では、仮想ピント位置を示す座標と注目領域のサイズの2つのパラメータを、GUIを通して取得し、これらから注目領域を設定すると説明したが、例えば次のような方法を用いてもよい。まず、注目領域の左上座標と右下座標の2つの座標を、GUIの画像表示領域上に表示された画像をクリックすることで取得する。次に、注目領域の中央座標を仮想ピント位置として設定し、先に取得した注目領域を示す2つの座標とこの仮想ピント位置を使ってリフォーカス処理を実行してもよい。
【0068】
(第2の実施形態)
第1の実施形態では、仮想ピント位置の座標(Xf,Yf)を中心として、任意のサイズの領域を注目領域として設定する方法について説明した。これに対し、本実施形態では、仮想ピント位置の座標(Xf,Yf)を含み、さらに仮想ピント位置の座標の被写体と等距離にある被写体を包含する領域を注目領域として設定する。
【0069】
以下、図15に示すフローチャートと図14に示す注目領域の例を用い、本実施形態における注目領域決定処理の詳細を説明する。なお、図11に示した第1の実施形態における注目領域決定処理のフローチャートと処理内容が同じステップに関しては、同じ記号を付与して説明を省略する。
【0070】
ステップS1501では、仮想ピントパラメータ405及びデプスマップ408から注目領域情報を取得する。仮想ピントパラメータ405とは、第1の実施形態でも説明したように、基準画像上での仮想ピント位置のXY座標である。ここでは、第1の実施形態と同様に画像の左上を原点として、基準画像上での仮想ピント位置の座標を(Xf,Yf)とする。ステップS1102で取得したピントを合わせたい被写体の距離情報を使って、仮想ピント位置の座標を含み、さらに仮想ピント位置の座標の被写体と等距離にある被写体を包含する矩形領域を注目領域として設定する。そして、この矩形領域の左上と右下の座標値を注目領域情報として取得する。
【0071】
図14に、このステップで設定される注目領域情報410の例を示す。ここでは、仮想ピント位置が異なる2つのケースに対して注目領域及び注目領域情報410を示している。どちらも仮想ピント位置の距離情報に基づき注目領域が設定されている。この方法では、第1の実施形態とは異なり、注目領域の大きさや形状は、被写体のサイズや形状に依存する。
【0072】
以上説明した処理によって、優先的に処理を行う注目領域を仮想ピントパラメータに基づいて自動的に決定することが可能となる。
【0073】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0074】
401 撮像データ入力部
404 パラメータ入力部
407 距離推定処理部
409 注目領域決定部
411 画像補間処理部
414 画像合成処理部
416 画像出力部
【技術分野】
【0001】
本発明は画像処理装置、画像処理方法及びプログラムに関し、特に、多視点撮影した複数枚の画像を合成しリフォーカス画像を生成するために用いて好適な技術に関する。
【背景技術】
【0002】
従来、複数の視点から撮影された画像から、画像位置合わせ及び画像合成処理により、仮想フォーカス距離にリフォーカス処理を行う方法が知られている(例えば、特許文献1及び非特許文献1参照)。特許文献1及び非特許文献1では、撮影位置の異なる複数枚の画像を合成し、各画像の撮影位置とピントを合わせたい被写体距離に応じて、各画像をシフトあるいは変形して合成することによりリフォーカス画像を生成している。また、リフォーカス処理の高速化技術としては、データ転送回数を減らすことによってPlenoptic Cameraにおけるリフォーカス処理の高速化を図る技術が知られている(例えば、特許文献2参照)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2011−22796号公報
【特許文献2】特開2010−183316号公報
【非特許文献】
【0004】
【非特許文献1】楠本夏未他、"未較正合成開口撮影法によるデフォーカスコントロール"、MIRU2008画像の認識・理解シンポジウム論文集、日本、2008年、1057-1062頁
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、特許文献1や非特許文献1の方法では、リフォーカス画像を生成するために中間視点画像を推定処理によって生成する必要があり、この生成に膨大な計算コストがかかるという課題がある。さらに、ぼけの大きさを大きくすればするほど、きれいなぼけを再現するためにはより多くの中間視点画像が必要となってしまう。一方、特許文献2は、Plenoptic Cameraに限定された高速化技術であり、これ以外の構成のカメラにおけるリフォーカス処理には向かない。
【0006】
本発明は前述の問題点に鑑み、注目領域を設定して、注目領域のみのリフォーカス処理を行うことで処理を高速化できるようにすることを目的としている。
【課題を解決するための手段】
【0007】
本発明の画像処理装置は、リフォーカス処理を行う画像処理装置であって、仮想ピントパラメータを入力する入力手段と、前記仮想ピントパラメータに基づき注目領域を決定して注目領域情報を算出する決定手段と、仮想視点位置からの撮像画像を示す補間画像を生成する補間手段と、前記撮像画像、前記補間画像及び前記注目領域情報からリフォーカス画像を生成する合成手段とを備え、前記合成手段は、前記注目領域のリフォーカス画像を生成することを特徴とする。
【発明の効果】
【0008】
本発明によれば、処理の高速化によりリフォーカス処理におけるユーザビリティを向上させることができる。
【図面の簡単な説明】
【0009】
【図1】実施形態における画像処理装置のシステム構成を示すブロック図である。
【図2】実施形態における撮像装置を示す図である。
【図3】実施形態における撮像画像を示す図である。
【図4】実施形態における概要機能構成を示す図である。
【図5】注目領域決定処理部の処理概要を示す図である。
【図6】実施形態における撮像位置と仮想視点位置との関係を示す図である。
【図7】実施形態における重み係数の例を示す図である。
【図8】実施形態における撮影位置の間隔と被写体までの距離との関係を示す図である。
【図9】実施形態における処理の流れを示すフローチャートである。
【図10】実施形態における距離推定処理の流れを示すフローチャートである。
【図11】実施形態における注目領域決定処理の流れを示すフローチャートである。
【図12】実施形態における画像補間処理の流れを示すフローチャートである。
【図13】実施形態における画像合成処理の流れを示すフローチャートである。
【図14】実施形態における注目領域の例を示す図である。
【図15】実施形態における注目領域決定処理の流れを示すフローチャートである。
【図16】実施形態における画像処理装置のGUIを示す図である。
【図17】実施形態における注目領域のリフォーカス結果表示例を示す図である。
【発明を実施するための形態】
【0010】
(第1の実施形態)
本実施形態では、複数のカメラユニットを備えた多眼方式の撮像装置から得られた複数枚の撮像画像から、画像処理によって任意の仮想フォーカス距離にピントを合わせた画像を生成するリフォーカス処理を行う。この際に、ピントを合わせたい領域に対して、リフォーカス処理を優先的に行う。
【0011】
まず、本実施形態における画像処理装置のシステム構成例について、図1を用いて説明する。
図1において、CPU101は、RAM102をワークメモリとして、ROM103及びハードディスクドライブ(HDD)105に格納されたプログラムを実行し、システムバス112を介して後述する各構成を制御する。これにより、後述する様々な処理が実行される。HDDインターフェース(I/F)104は、HDD105や光ディスクドライブなどの二次記憶装置を接続する、例えばシリアルATA(SATA)等のインターフェースである。
【0012】
CPU101は、HDDI/F104を介して、HDD105からのデータ読み出し、およびHDD105へのデータ書き込みが可能である。さらにCPU101は、HDD105に格納されたデータをRAM102に展開し、同様に、RAM102に展開されたデータをHDD105に保存することが可能である。そしてCPU101は、RAM102に展開したデータをプログラムとみなし、実行することができる。
【0013】
入力インターフェース(I/F)106は、キーボードやマウスなどの入力デバイス107を接続する、例えばUSBやIEEE1394等のシリアルバスインターフェースである。CPU101は、入力I/F106を介して入力デバイス107からデータを読み込むことが可能である。出力インターフェース(I/F)108は、モニタやプロジェクタなどの出力デバイス109を接続する、例えばDVIやHDMI等である。CPU101は、出力I/F108を介して出力デバイス109にデータを送り、表示を実行させることができる。
【0014】
撮像インターフェース(I/F)110は、デジタルカメラなどの撮像装置111を接続する、例えばUSBやIEEE1394などのシリアルバスインターフェースである。CPU101は、撮像I/F110を介して撮像装置111を制御し、撮像を行うことが可能である。さらにCPU101は、撮像I/F110を介して撮像装置111から撮像したデータを読み込むことが可能である。
【0015】
図2は、本実施形態における撮像装置111の外観構成を示した図である。この撮像装置111は、撮像画像を取得する9個のカメラユニット201〜209を備えた多眼方式の装置である。9個のカメラユニット201〜209は、正方格子上に均等に配置されている。また、各カメラユニットの上下軸、左右軸、光軸は全て同じ方向であるとする。このカメラユニット201〜209が、被写体の光情報をセンサ(撮像素子)で受光し、受光した信号がA/D変換されて、複数の撮像画像(デジタルデータ)が同時に取得される。このような多眼方式の撮像装置により、同一の被写体を複数の視点位置から撮像した撮像画像群を得ることができる。
【0016】
なお、本実施形態ではカメラユニットの数を9個としたが、これに限定されるものではない。撮像装置が複数のカメラユニットを有する限りにおいて本発明は適用可能である。また、ここでは9個のカメラユニットが正方格子上に均等に配置される例について説明したが、カメラユニットの配置はこれに限るものではない。
【0017】
図3は、本実施形態における撮像画像を示した図である。ここでは、2つの被写体を撮像した例を示している。301〜309は、それぞれカメラユニット201〜209で撮像された撮像画像である。カメラユニット間には視差があるため、撮像画像中の被写体の位置がカメラユニットごとに異なる。そのため、この例では、撮像画像304、305、307、308には、被写体が2つ写っているが、それ以外の撮像画像には被写体は1つしか写っていない。本実施形態では、中央のカメラユニット205で撮像された撮像画像305を、以後、基準画像と呼ぶことにする。
【0018】
次に、本実施形態に係る一連の処理を行う際の概要機能構成について、図4を用いて説明する。CPU101の機能部としての撮像データ入力部401は、撮像装置111によって異なる位置から撮影された複数の撮像画像301〜309を撮像装置111あるいはROM103、HDD105等の記憶装置から取得する。さらに、撮像装置111の画角や撮像位置を含む撮像装置情報403を撮像装置111あるいはROM103、HDD105等の記憶装置から取得する。
【0019】
CPU101の機能部としてのパラメータ入力部404は、仮想ピントパラメータ405および仮想絞りパラメータ406を入力デバイス107あるいはROM103、HDD105等の記憶装置から取得する。CPU101の機能部としての距離推定処理部407は、撮像画像301〜309および撮像装置情報403に基づき、ステレオマッチングにより撮像シーンのデプス値を推定し、デプスマップ408を生成する。
【0020】
CPU101の機能部としての注目領域決定処理部409は、撮像画像301〜309、撮像装置情報403、デプスマップ408、仮想ピントパラメータ405に基づき、各カメラユニットにおける注目領域情報410を生成する。CPU101の機能部としての画像補間処理部411は、まず、撮像装置情報403に基づき、撮像画像301〜309の撮像位置を内挿するように仮想視点位置413を設定する。そして、撮像画像301〜309を基に、各仮想視点位置413から撮像される画像を補間処理により求めることで補間画像412を生成する。
【0021】
CPU101の機能部としての画像合成処理部414は、撮像装置情報403、仮想視点位置413、仮想ピントパラメータ405、仮想絞りパラメータ406に基づいて画像合成処理を行い、リフォーカス画像415を生成する。CPU101の機能部としての画像出力部416は、リフォーカス画像415を出力デバイス109やHDD105等の二次記憶装置へ出力する。
【0022】
図16は、本実施形態における画像処理装置のGUIを示す図である。本GUIは、画像表示領域1602と、ツールパレット1601から構成される。画像表示領域1602は、撮像画像やリフォーカス画像等を表示するための領域である。一方、ツールパレット1601は、ぼかし量調整スライダー1603、注目領域のサイズを入力するための注目領域サイズエディットボックス1606、及び画像全体のリフォーカス処理を実行するためのリフォーカス実行ボタン1605を備える。仮想ピントパラメータ405の入力を行う際に、ユーザは、マウスカーソル1604を動かし、画像表示領域1602上のピントを合わせたい位置にてマウスクリック動作を行う。マウスクリック動作が行われると、パラメータ入力部404は、画像表示領域1602に表示されている画像の左上を原点とするクリック座標値を仮想ピントパラメータ405として取得する。
【0023】
図9は、本実施形態の画像処理装置における一連の処理の動作手順の一例を示すフローチャートである。詳細には、図9のフローチャートに示す手順を記述したコンピュータ実行可能なプログラムを、ROM103あるいはHDD105からRAM102上に読み込んだ後に、CPU101によって該プログラムを実行することによって当該処理が実施される。以下、図9に示す各処理について説明する。
【0024】
ステップS901では、撮像データ入力部401は、撮像装置111を用いて撮像画像301〜309を撮像し、撮像画像301〜309および撮像装置111の各カメラユニットの画角や撮像位置を含む撮像装置情報403を取得する。あるいは、予めROM103やHDD105などの記録装置に撮像画像301〜309及び撮像装置111の各カメラユニットの画角や撮像位置などの撮像装置情報403を保持しておき、これを撮像データ入力部401が取得するようにしてもよい。この際、図16に示したGUI上では、画像表示領域1602に中央のカメラユニット205で撮像された画像が表示される。
【0025】
ステップS902では、距離推定処理部407は、ステップS901で取得した撮像画像301〜309及び撮像装置情報403を基に、距離推定処理を用いて撮像したシーンの奥行きを推定しシーンのデプスマップ408を生成する。距離推定処理の詳細は後述する。
【0026】
ステップS903では、パラメータ入力部404は、入力デバイス107から基準画像における仮想ピント位置を示す座標を含む仮想ピントパラメータ405、画像合成時に使用する各画像の重み係数を含む仮想絞りパラメータ406を取得する。仮想ピント位置を示す座標は、図16に示したGUI上で、ユーザが画像表示領域1602上のピントを合わせたい位置にてマウスクリック動作を行うことによって取得される。また、仮想絞りパラメータ406は、図16に示したGUI上で、ユーザがぼかし量調整スライダー1603を調整した結果として取得される。この仮想絞りパラメータ406は、撮影位置および仮想視点位置413において得られる画像に対する係数のセットである。つまり、ぼかし量調整スライダーを調整するとは、この係数セットを変更することに相当する。係数セットの詳細は画像合成処理の説明の中で記述する。
【0027】
ステップS904では、注目領域決定処理部409は、撮像画像301〜309、撮像装置情報403、デプスマップ408、仮想ピントパラメータ405に基づき、注目領域決定処理により注目領域情報410とカメラリスト417を生成する。注目領域決定処理の詳細は後述する。
【0028】
ステップS905では、画像補間処理部411は、撮像画像301〜309、撮像装置情報403、注目領域情報410、及びカメラリスト417に基づき画像補間処理を行い、補間画像412を生成する。ここで、補間処理は、注目領域内のみを処理対象とし、補間画像412は、撮像画像中の注目領域のみを補間した画像となる。注目領域外は、以後の処理に使用しないためどのような画像となっていても構わない。例えば、白や黒で塗りつぶされていてもよい。画像補間処理の詳細については後述する。
【0029】
ステップS906では、画像合成処理部414は、注目領域情報410、ステップS905で生成した補間画像412、仮想ピントパラメータ405、及び仮想絞りパラメータ406に基づき画像合成処理を行い、リフォーカス画像415を生成する。この処理では、注目領域のみを処理対象とし、生成されるリフォーカス画像415は、注目領域のみがリフォーカス処理された画像となる。注目領域外については、例えば中央のカメラユニット205で撮像された画像とする。画像合成処理の詳細については後述する。
【0030】
ステップS907では、画像出力部317は、ステップS906で生成された注目領域のみがリフォーカス処理されたリフォーカス画像415を出力デバイス109やHDD105を含む二次記録装置に出力する。この際、図16に示したGUI上では、画像表示領域1602にリフォーカス画像415が表示されることになる。
【0031】
注目領域のリフォーカス画像415の表示例を図17に2つ示す。図17(a)では、ステップS906で生成されたリフォーカス画像が画像表示領域1602に内接するように表示されている。さらに、設定された注目領域を示す注目領域枠1701が画像表示領域1602上に表示されている。一方、図17(b)では、ステップS906で生成されたリフォーカス画像のうち、注目領域内のみを画像表示領域1602に内接するように拡大表示している。ここでは、リフォーカス画像の表示例を2つ説明したが、これ以外の表示方法をとっても構わないことは言うまでもない。
【0032】
ステップS908では、ピント位置が確定されたかどうかを判定する。具体的には、図16に示すGUI上で、ユーザによりリフォーカス実行ボタン1605が押されたかどうかで判定を行う。リフォーカス実行ボタン1605が押された場合は、ピント位置が確定されたものとしてステップS909へ進み、押されていない場合は、ピント位置が確定されていないものとして、ステップS903へと戻り、別の仮想ピントパラメータ405の取得を行う。
ステップS909では、画像補間処理部411は、前のステップで取得した撮像画像301〜309及び撮像装置情報403に基づき画像補間処理を行い、補間画像412を生成する。ステップS905における画像補間処理との差分は、処理対象領域が画像全体となり、結果として得られる補間画像も画像全体を補間した画像となっていることである。その他の処理内容はステップS905と同様である。
【0033】
ステップS910では、画像合成処理部414は、撮像画像301〜309、ステップS908で生成した補間画像412、仮想ピントパラメータ405、及び仮想絞りパラメータ406に基づき画像合成処理を行い、リフォーカス画像415を生成する。ここで生成されるリフォーカス画像415は、画像全体のリフォーカス画像となる。ステップS906における画像合成処理との差分は、処理対象領域が画像全体となり、生成されるリフォーカス画像が画像全体に対して画像合成処理を行った画像となることである。その他の処理内容はステップS906と同様である。
【0034】
ステップS911では、画像出力部317は、ステップS910で生成されたリフォーカス画像316を出力デバイス109やHDD105を含む二次記録装置に出力する。この際、図16に示したGUI上では、画像表示領域1602に画像全体に対してリフォーカス処理を行った結果としてのリフォーカス画像415が表示されることになる。
【0035】
<距離推定処理>
ここでは、図9に示すフローチャートのステップS902で行う距離推定処理の詳細について説明する。距離推定処理では、位置の異なる複数の撮像画像301〜309を基に、撮像したシーンの距離を推定することでデプスマップ408を生成する。この距離推定方法には公知の方法を用いればよい。例えば、ステレオ法、マルチベースラインステレオ法などが適用可能である。本実施形態では、ステレオ法によって距離推定を行う。以下、図10に示すフローチャートを用い、距離推定処理の詳細を説明する。
【0036】
ステップS1001では、撮像画像301〜309から処理に使用する2つの画像を選択する。本実施形態では、撮像装置111の中央のカメラユニット205で撮像された画像と、それと横方向に隣接するカメラユニット206で撮像された画像を選択するものとする。以下、前者を基準画像、後者を対象画像とする。
【0037】
ステップS1002では、以降の処理を行う注目画素を初期化する。そして、ステップS1003では、全画素で距離値が求められているかを判定する。全画素で距離値が求められている場合はステップS1007へ進み、距離値の求められていない画素がある場合はステップS1004へ進む。
【0038】
ステップS1004では、まず基準画像の注目画素とその周囲の画素からなる領域を選択する。そして選択したブロックを用いて対象画像とパターンマッチングを行い、対象画像中から注目画素に対応する画素(対応画素)を求める。そして、ステップS1005では、撮像装置情報403、注目画素およびS1005で求めた対応画素を基に注目画素に対応する距離値pを求める。距離値pは、図8に示すα、β、sを基に以下の式(1)で表される。
【0039】
【数1】
【0040】
ここで、αはカメラユニット205の水平画角、基準画像の撮像位置、注目画素の座標から算出される。βはカメラユニット206の水平画角、対象画像の撮像位置、対象画素の座標から算出される。sはカメラユニット間の距離であり、基準画像および対象画像の撮像位置より算出される。
【0041】
ステップS1006では、注目画素を更新しS1003へ戻る。ステップS1007では、各画素値を基準画像の距離値とするデプスマップ408を出力する。なお、本実施形態ではステップS1001において、カメラユニット205、206を選択して距離推定を行ったが、距離推定可能なカメラユニットの組み合わせはこれに限るものではない。
【0042】
<注目領域決定処理>
ここでは、図9に示すフローチャートのステップS904で行う注目領域決定処理の詳細について説明する。注目領域決定処理では、仮想ピントパラメータ405と撮像装置情報403とに基づき、各カメラユニットで撮像された撮像画像301〜309のそれぞれに対して注目領域の設定処理を行う。そして、注目領域情報410と、注目領域情報410の生成に使用したカメラIDを記述したカメラリスト417とを生成する。以下、図11に示すフローチャートと図5に示す注目領域決定処理部の処理概要を用い、注目領域決定処理の詳細を説明する。
【0043】
ステップS1101では、処理対象カメラユニットを中央のカメラユニット205に設定する。ステップS1102では、ステップS903で入力された仮想ピントパラメータ405と、ステップS902で生成されたデプスマップ408からピントを合わせたい被写体の距離情報を取得する。ここで、仮想ピントパラメータとは、図5に示すように基準画像上での仮想ピント位置のXY座標である。ここでは、画像の左上を原点として、基準画像上での仮想ピント位置の座標を(Xf,Yf)とする。距離情報は、デプスマップ上でこの仮想ピント位置の座標を参照することによって取得することができる。
【0044】
ステップS1103では、図16に示したGUI上で、注目領域サイズエディットボックス1606に入力された値を、パラメータ入力部404が取得する。図5では、注目領域のサイズとしてr画素が指定された場合を示している。この場合、注目領域の幅及び高さがそれぞれr画素となる。なお、幅及び高さを別々に設定できるようにしてもよい。ここで設定された注目領域は、仮想ピントパラメータ405である仮想ピント位置の座標(Xf,Yf)を中心として、幅と高さがそれぞれr画素の正方領域となっている。次に、この注目領域の左上の座標(X1,Y1)と右下の座標(X2,Y2)とをそれぞれ求める。この2つの座標情報を中央カメラユニットの注目領域情報とする。なお、このステップでは、注目領域のサイズをGUI上で指定された値から取得すると説明したが、これに限らず、例えばあらかじめ定められたサイズを使用してもよい。
【0045】
ステップS1104では、処理対象カメラユニットを、まだ注目領域決定処理の行われていないカメラユニットへと更新する。ステップS1105では、ステップS901で入力された撮像画像301〜309及び撮像装置情報403から、処理対象カメラユニットによって撮像された撮像画像と処理対象カメラユニットの撮像装置情報を取得する。
【0046】
ステップS1106では、前のステップで取得した処理対象カメラユニットの撮像画像における仮想ピント位置の座標値を算出する。これには、距離推定処理で説明した距離値pを算出する式(1)を利用すればよい。このとき、距離値pはステップS1102で取得したピントを合わせたい被写体までの距離とする。sはカメラユニット間の距離であり、中央のカメラユニット205および処理対象カメラユニットの撮像位置より算出できる。また、αはカメラユニット205の水平画角、撮像位置、仮想ピント位置の座標(Xf,Yf)から算出できる。
【0047】
これらの値を式(1)に代入することで、処理対象カメラユニットとピントを合わせたい被写体との角度βを求めることができる。ここで求まったβと、処理対象カメラユニットの水平画角を含む撮像装置情報とから、処理対象カメラユニットの撮像画像における仮想ピント位置のX方向の座標値を算出することができる。また、水平画角を垂直画角と置き換えることによって同様の方法でY方向の座標値を算出することができる。
【0048】
ステップS1107では、前のステップで算出した処理対象カメラユニットの撮像画像における仮想ピント位置の座標が、撮像画像内にあるかどうかを判定する。撮像画像内にある場合は、ステップS1108へと進み、そうでない場合は、ステップS1110へと進む。
【0049】
ステップS1108では、現在処理対象となっているカメラユニットを識別可能なIDをカメラリストに追加する。そして、ステップS1109では、まず、処理対象カメラユニットの撮像画像における注目領域情報410を算出する。これは、ステップS1103で算出した中央カメラユニットの注目領域情報である注目領域の左上座標(X1,Y1)と右下座標(X2,Y2)を、それぞれステップS1106で説明した処理方法と同様の方法にて変換することによって求めることができる。
【0050】
具体的には、距離値pは注目領域の左上座標や右上座標に位置する被写体までの距離とする。sはカメラユニット間の距離であり、中央のカメラユニット205及び処理対象カメラユニットの撮像位置より算出できる。また、αはカメラユニット205の水平画角、撮像位置、注目領域の左上座標や右上座標から算出できる。これらの値を式(1)に代入することで、処理対象カメラユニットと注目領域の左上座標や右上座標に位置する被写体との角度βを求めることができる。ここで求まったβと、処理対象カメラユニットの水平画角を含む撮像装置情報から、処理対象カメラユニットの撮像画像における注目領域の左上座標や右上座標のX方向の座標値を算出することができる。また、水平画角を垂直画角と置き換えることによって同様の方法でY方向の座標値も同様に算出することができる。次に、この算出した注目領域情報410を、HDD105を含む二次記録装置に出力する。
【0051】
ステップS1110では、全てのカメラユニットに対して注目領域決定処理を行ったかどうかを判定する。もし、全てのカメラユニットに対する処理が行われていれば処理を終了し、そうでなければステップS1104へ戻り処理を継続する。
【0052】
<画像補間処理>
次に、ステップS905及びステップS909で行う画像補間処理の詳細について説明する。ステップS909で行う画像補間処理では、まず、撮像装置情報403に基づいて撮像画像301〜309の撮像位置を内挿するように仮想視点位置413を設定する。次に、視差補間処理を用いて撮像画像301〜309を基に各仮想視点位置413に対応する補間画像412を生成する。
【0053】
一方、ステップS905で行う画像補間処理では、まず、カメラリスト417にリストアップされているカメラユニットのみの撮像画像の撮像位置を内挿するように、撮像装置情報403に基づき仮想視点位置413を設定する。次に、視差補間処理を用いて注目領域情報410に基づき、各仮想視点位置413に対応する補間画像412を生成する。ここでの補間画像412は、注目領域内のみが補間された画像となる。注目領域外はどのような画像であっても構わない。以下、図12に示すフローチャートを用いてステップS909における画像補間処理の詳細を説明する。
【0054】
ステップS1201では、補間画像を生成する仮想視点位置413の設定を行う。撮像位置と仮想視点位置との関係を図6(a)に示す。x軸601、y軸602、z軸603はそれぞれ各カメラユニットの水平方向、垂直方向、光軸方向に対応し、カメラユニット205の撮像位置を原点として直交しているものとする。仮想視点位置413は各撮像位置を内挿するように設定する。本実施形態では、図6に示すように撮像位置を等間隔に内挿するよう格子状に仮想視点位置413を設定する。
【0055】
ステップS1202では、撮像画像301〜309の中から撮像位置が横方向に隣接する2つの画像を順に選択し、視差補間処理を用いて2画像間の仮想視点位置413に対応する補間画像412を生成する。図6(b)に、ステップS1402で補間画像を生成する仮想視点位置を示す。視差補間処理には公知の方法を利用する。例えば、2画像を用いて、ブロックマッチングにより算出した各画素の視差量を基に中間視点の画像を補間により生成すればよい。あるいは、2画像から抽出した特徴点を対応付け、各特徴点の対応関係を基にモーフィング処理を行うことで中間視点の画像を生成してもよい。
【0056】
ステップS1403では、撮像画像301〜309及びステップS1402で生成した補間画像412の中から撮像位置が縦方向に隣接する画像のペアを順に選択し、視差補間処理を用いて2画像間の仮想視点位置413に対応する補間画像を生成する。図6(c)に、ステップS1403で補間画像を生成する仮想視点位置を示す。視差補間処理には、ステップS1402と同様の手法が適用可能である。そして、ステップS1404では、ステップS1402及びステップS1403で生成した補間画像412を出力する。
【0057】
ここでは、ステップS909における画像補間処理について詳細に説明したが、ステップS905における画像補間処理も同様の手順で実行可能である。具体的には、撮像画像301〜309をすべて使う代わりにカメラリスト417に記述されているカメラユニットの撮像画像のみを使用し、仮想視点位置413は、カメラリストに記述されているカメラユニットの撮像位置のみを使用して設定する。また、視差補間処理では、注目領域内のみを処理することで実行可能である。
【0058】
<画像合成処理>
次に、ステップS906及びステップS910で行う画像合成処理について説明する。画像合成処理では、まず、仮想絞りパラメータ406を基に、各画像に対する重み係数を設定する。そして、撮像装置情報403および仮想視点位置413を基に、各画像をシフトし領域毎に異なる重み係数を用いて重み付け加算を行い、リフォーカス画像415を生成する。以下、図13に示すフローチャートを用い、ステップS910における画像合成処理の詳細を説明する。
【0059】
ステップS1301において、ステップS903で取得した仮想絞りパラメータ406を基に、画像を合成する際に用いる重み係数を設定する。まず、図7を用いて画像合成時の重み係数について説明する。仮想絞りパラメータ406は、撮影位置及び仮想視点位置413において得られる画像に対する係数のセットである。以下、図7(a)に示すように各撮影位置及び仮想視点位置413をそれぞれP0〜P24と表し、位置Pm(m=0〜24)において得られる画像をImとする。このとき、Imに対応する重み係数の値A(m)は、仮想絞りパラメータ406から、例えば、図7(b)に示すように設定することができる。ここでは、P12を中心としてガウス関数に従うよう重み係数を設定し、重み係数の和が1になるよう正規化している。こうすることにより、ピント外領域を滑らかにぼかすことができる。
【0060】
次に、ステップS1302において、撮像装置情報403およびステップS909で設定した仮想視点位置413を基に、各画像のシフト量を算出する。ピント距離をdとした際の画像Imの水平方向のシフト量△i(m、d)および垂直方向のシフト量△j(m、d)は以下の式(2)で表される。
【0061】
【数2】
【0062】
ここで、W、Hはそれぞれ画像の水平方向、垂直方向の画像サイズを示す。θwはカメラユニットの水平画角であり、θhはカメラユニットの垂直画角である。(sm,tm)はxy平面上におけるPmの座標であり、(s',t')はxy平面上におけるカメラユニット205の撮像位置P12の座標である。
【0063】
次に、ステップS1303において、ステップS1302で求めたシフト量、ステップS1301で求めた重み係数を用いて、撮像画像301〜309及びステップS909で生成した補間画像412に対して重み付け加算処理を行う。この処理により、リフォーカス画像415が生成される。リフォーカス画像415をHとしたとき、合成処理は以下の式(3)で表される。
【0064】
【数3】
【0065】
そして、ステップS1304において、前のステップで生成したリフォーカス画像415を出力する。ここでは、ステップS910における画像合成処理について詳細に説明したが、ステップS906における画像合成処理も同様の手順で実行可能である。具体的には、撮像画像301〜309を全て使用する代わりにカメラリストに記述されているカメラユニットの撮像画像のみを使用する。さらに、仮想視点位置413及び補間画像412はステップS905で生成したものを使用する。また、重み係数を使用する画像数に応じて再正規化し、処理範囲を注目領域内に限定することによって実行可能である。
【0066】
以上説明した処理によって、リフォーカス処理を行う際に、ピントを合わせたい領域のみを処理対象とすることによって、ユーザに対してリフォーカス結果を高速に提示することができる。これにより、リフォーカス処理におけるユーザビリティの向上を果たすことができる。
【0067】
なお、本実施形態では、仮想ピント位置を示す座標と注目領域のサイズの2つのパラメータを、GUIを通して取得し、これらから注目領域を設定すると説明したが、例えば次のような方法を用いてもよい。まず、注目領域の左上座標と右下座標の2つの座標を、GUIの画像表示領域上に表示された画像をクリックすることで取得する。次に、注目領域の中央座標を仮想ピント位置として設定し、先に取得した注目領域を示す2つの座標とこの仮想ピント位置を使ってリフォーカス処理を実行してもよい。
【0068】
(第2の実施形態)
第1の実施形態では、仮想ピント位置の座標(Xf,Yf)を中心として、任意のサイズの領域を注目領域として設定する方法について説明した。これに対し、本実施形態では、仮想ピント位置の座標(Xf,Yf)を含み、さらに仮想ピント位置の座標の被写体と等距離にある被写体を包含する領域を注目領域として設定する。
【0069】
以下、図15に示すフローチャートと図14に示す注目領域の例を用い、本実施形態における注目領域決定処理の詳細を説明する。なお、図11に示した第1の実施形態における注目領域決定処理のフローチャートと処理内容が同じステップに関しては、同じ記号を付与して説明を省略する。
【0070】
ステップS1501では、仮想ピントパラメータ405及びデプスマップ408から注目領域情報を取得する。仮想ピントパラメータ405とは、第1の実施形態でも説明したように、基準画像上での仮想ピント位置のXY座標である。ここでは、第1の実施形態と同様に画像の左上を原点として、基準画像上での仮想ピント位置の座標を(Xf,Yf)とする。ステップS1102で取得したピントを合わせたい被写体の距離情報を使って、仮想ピント位置の座標を含み、さらに仮想ピント位置の座標の被写体と等距離にある被写体を包含する矩形領域を注目領域として設定する。そして、この矩形領域の左上と右下の座標値を注目領域情報として取得する。
【0071】
図14に、このステップで設定される注目領域情報410の例を示す。ここでは、仮想ピント位置が異なる2つのケースに対して注目領域及び注目領域情報410を示している。どちらも仮想ピント位置の距離情報に基づき注目領域が設定されている。この方法では、第1の実施形態とは異なり、注目領域の大きさや形状は、被写体のサイズや形状に依存する。
【0072】
以上説明した処理によって、優先的に処理を行う注目領域を仮想ピントパラメータに基づいて自動的に決定することが可能となる。
【0073】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。
【符号の説明】
【0074】
401 撮像データ入力部
404 パラメータ入力部
407 距離推定処理部
409 注目領域決定部
411 画像補間処理部
414 画像合成処理部
416 画像出力部
【特許請求の範囲】
【請求項1】
リフォーカス処理を行う画像処理装置であって、
仮想ピントパラメータを入力する入力手段と、
前記仮想ピントパラメータに基づき注目領域を決定して注目領域情報を算出する決定手段と、
仮想視点位置からの撮像画像を示す補間画像を生成する補間手段と、
前記撮像画像、前記補間画像及び前記注目領域情報からリフォーカス画像を生成する合成手段とを備え、
前記合成手段は、前記注目領域のリフォーカス画像を生成することを特徴とする画像処理装置。
【請求項2】
前記注目領域とは仮想ピント位置を含む領域であることを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記注目領域とは、さらに前記仮想ピント位置にある被写体と同じ距離にある被写体を包含する領域であることを特徴とする請求項2記載の画像処理装置。
【請求項4】
リフォーカス処理を行う画像処理方法であって、
仮想ピントパラメータを入力する入力工程と、
前記仮想ピントパラメータに基づき注目領域を決定して注目領域情報を算出する決定工程と、
仮想視点位置からの撮像画像を示す補間画像を生成する補間工程と、
前記撮像画像、前記補間画像及び前記注目領域情報からリフォーカス画像を生成する合成工程とを備え、
前記合成工程においては、前記注目領域のリフォーカス画像を生成することを特徴とする画像処理方法。
【請求項5】
請求項4記載の画像処理方法の各工程をコンピュータに実行させるためのプログラム。
【請求項1】
リフォーカス処理を行う画像処理装置であって、
仮想ピントパラメータを入力する入力手段と、
前記仮想ピントパラメータに基づき注目領域を決定して注目領域情報を算出する決定手段と、
仮想視点位置からの撮像画像を示す補間画像を生成する補間手段と、
前記撮像画像、前記補間画像及び前記注目領域情報からリフォーカス画像を生成する合成手段とを備え、
前記合成手段は、前記注目領域のリフォーカス画像を生成することを特徴とする画像処理装置。
【請求項2】
前記注目領域とは仮想ピント位置を含む領域であることを特徴とする請求項1記載の画像処理装置。
【請求項3】
前記注目領域とは、さらに前記仮想ピント位置にある被写体と同じ距離にある被写体を包含する領域であることを特徴とする請求項2記載の画像処理装置。
【請求項4】
リフォーカス処理を行う画像処理方法であって、
仮想ピントパラメータを入力する入力工程と、
前記仮想ピントパラメータに基づき注目領域を決定して注目領域情報を算出する決定工程と、
仮想視点位置からの撮像画像を示す補間画像を生成する補間工程と、
前記撮像画像、前記補間画像及び前記注目領域情報からリフォーカス画像を生成する合成工程とを備え、
前記合成工程においては、前記注目領域のリフォーカス画像を生成することを特徴とする画像処理方法。
【請求項5】
請求項4記載の画像処理方法の各工程をコンピュータに実行させるためのプログラム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公開番号】特開2013−66058(P2013−66058A)
【公開日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願番号】特願2011−203484(P2011−203484)
【出願日】平成23年9月16日(2011.9.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
【公開日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願日】平成23年9月16日(2011.9.16)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】
[ Back to top ]