説明

画像処理装置および画像処理方法

【課題】中間視点画像の生成にかかる計算コストを抑えつつ、ピントを合わせたい領域の画質を向上させること。
【解決手段】撮像対象を含む撮像シーンの深さ方向の位置を示すデプス値を推定し、デプスマップ308を生成する。ピントマップ生成処理部309は、仮想ピントパラメータ305およびデプスマップ308に基づき、領域分割処理によりピントを合わせたい領域(ピント内領域)とぼかしたい領域(ピント外領域)を示すピントマップ310を生成する。ピント内領域画像処理部311は、ピントを合わせる領域であるピント内領域に重点を置いた画像処理を行い、ピント内領域画像312を生成する。ピント外領域画像処理部313は、ピント外領域に重点を置いた画像処理を行い、ピント外領域画像314を生成する。画像ブレンド処理部315は、画像のブレンド処理によりリフォーカス画像316を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置および画像処理方法に関し、特に多視点撮影した複数枚の画像を合成しリフォーカス画像を生成する画像処理装置および画像処理方法に関する。
【背景技術】
【0002】
従来、複数の視点から撮影された画像から、画像位置合わせ及び画像合成処理により、仮想フォーカス距離にリフォーカス処理を行う方法が知られている(例えば、特許文献1および非特許文献1参照)。特許文献1および非特許文献1に記載された発明では、撮影位置の異なる複数枚の画像を合成し、各画像の撮影位置とピントを合わせたい被写体距離に応じて、各画像をシフトあるいは変形して合成することによりリフォーカス画像を生成している。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2011−22796号公報
【非特許文献】
【0004】
【非特許文献1】楠本夏未他、"未較正合成開口撮影法によるデフォーカスコントロール"、MIRU2008画像の認識・理解シンポジウム論文集、日本、2008年、1057-1062頁
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、非特許文献1の方法では、撮影画像間の中間視点画像を推定処理によって生成することで被写界深度外のぼけた領域の画質を向上させているが、一方で中間視点画像の影響によりピントを合わせたい領域までぼけてしまうという課題があった。また、出力画像の解像度が高くなればなるほど、きれいなぼけを再現するためには多くの中間視点画像が必要となり、この生成に膨大な計算コストがかかるという課題があった。
【0006】
そこで本発明では、中間視点画像の生成にかかる計算コストを抑えつつ、ピントを合わせたい領域の画質を向上させることを目的とする。
【課題を解決するための手段】
【0007】
以上のような課題を解決するため、本発明の画像処理装置は、少なくとも2つの異なる視点から撮像された複数の画像を取得する撮像データ入力手段と、仮想的なピント面までの距離を示すリフォーカスパラメータを入力する入力手段と、取得された画像について、画素に対応する撮像対象と撮像装置との距離を示すデプスマップを生成する距離推定処理手段と、リフォーカスパラメータに応じて、デプスマップからフォーカスを所望するピント内領域および所望しないピント外領域を含む領域を算出し、ピント内領域およびピント外領域を示すピントマップを生成するピントマップ生成手段と、ピント内領域について一定の処理を施し、少なくとも撮像画像を含む画像群を合成することによって合成画像を生成するピント内領域画像処理手段と、ピント外領域についてピント内領域画像処理手段とは異なる処理を施し、少なくとも撮像画像を含む画像群を合成することによって合成画像を生成するピント外領域画像処理手段と、ピントマップに応じて、ピント内領域およびピント外領域ごとに生成された合成画像をブレンドしてリフォーカス画像を生成する画像ブレンド手段とを備えことを特徴とする。
【発明の効果】
【0008】
本発明は、ピントを合わせたい領域とぼかしたい領域とで処理を切り替えることで、中間視点画像の生成にかかる計算コストを抑えつつ、ピントを合わせたい領域の画質を向上させる効果を奏する。
【図面の簡単な説明】
【0009】
【図1】本実施例における画像処理装置のシステム構成を示すブロック図である。
【図2】本実施例における撮像装置を示す図である。
【図3】本実施例における概要機能構成を示す図である。
【図4】本実施例におけるピント外領域画像処理部の詳細を示す図である。
【図5】本実施例におけるピントマップ生成処理部の処理概要を示す図である。
【図6】本実施例におけるピントマップ生成処理部の処理概要を示す図である。
【図7】本実施例における撮像位置と仮想視点位置の関係を示す図である。
【図8】本実施例における撮像位置と仮想視点位置の関係を示す図である。
【図9】本実施例における撮像位置と仮想視点位置の関係を示す図である。
【図10】本実施例における重み係数の例を示す図である。
【図11】本実施例における重み係数の例を示す図である。
【図12】本実施例における撮影位置の間隔と被写体までの距離との関係を示す図である。
【図13】本実施例における処理の流れを示すフローチャートである。
【図14】本実施例における距離推定処理の流れを示すフローチャートである。
【図15】本実施例におけるピントマップ生成処理の流れを示すフローチャートである。
【図16】本実施例におけるピント内領域画像処理の流れを示すフローチャートである。
【図17】実施例1におけるピント外領域画像処理の流れを示すフローチャートである。
【図18】本実施例における画像補間処理の流れを示すフローチャートである。
【図19】本実施例における画像合成処理の流れを示すフローチャートである。
【図20】実施例1における画像ブレンド処理の流れを示すフローチャートである。
【図21】実施例1におけるブレンドの処理のブレンド比率の例を示す図である。
【図22】実施例2におけるピント外領域処理の流れを示すフローチャートである。
【図23】実施例2における画像ブレンド処理の概要を示す図である。
【図24】実施例2における画像ブレンド処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0010】
[実施例1]
本実施例では、複数のカメラユニットを備えた多眼方式の撮像装置から得られた複数枚の撮影画像から、画像処理によって任意の仮想フォーカス距離にピントを合わせを所望する画像を生成するリフォーカス処理に関するものである。すなわち、本実施例のリフォーカス処理においては、一定のピントを合わせたい領域に対して高解像度化処理を行い、ぼかしたい領域に対しては、出力解像度より低解像度なぼけ画像を生成する。まず、本実施例における画像処理装置のシステム構成例について、図1を参照して説明する。
【0011】
同1において、CPU101は、RAM102をワークメモリとして、ROM103及びハードディスクドライブ(HDD)105に格納されたプログラムを実行し、システムバス112を介して後述する各構成を制御する。これにより、後述する様々な処理が実行される。HDDインターフェース(I/F)104は、HDD105や光ディスクドライブなどの二次記憶装置を接続する、例えば、シリアルATA(SATA)等のインターフェースである。CPU101は、HDDI/F104を介して、HDD105からのデータ読み出し、およびHDD105へのデータ書き込みが可能である。さらにCPU101は、HDD105に格納されたデータをRAM102に展開し、同様に、RAM102に展開されたデータをHDD105に保存することが可能である。そしてCPU101は、RAM102に展開したデータをプログラムとみなし、実行することができる。入力インターフェース(I/F)106は、キーボードやマウスなどの入力デバイス107を接続する、例えばUSBやIEEE1394等のシリアルバスインターフェースである。
【0012】
CPU101は、入力I/F106を介して入力デバイス107からデータを読み込むことが可能である。出力インターフェース(I/F)108は、モニタやプロジェクタなどの出力デバイス109を接続する、例えばDVIやHDMI等である。CPU101は、出力I/F108を介して出力デバイス109にデータを送り、表示を実行させることができる。撮像インターフェース(I/F)110は、デジタルカメラなどの撮像装置111を接続する、例えばUSBやIEEE1394などのシリアルバスインターフェースである。CPU101は、撮像I/F110を介して撮像装置111を制御し、撮像を行うことが可能である。さらにCPU101は、撮像I/F110を介して撮像装置111から撮像したデータを読み込むことが可能である。
【0013】
図2は、本実施例における撮像装置111を示した図である。この撮像装置は、撮影画像を取得する9個のカメラユニット201〜209を備えた多眼方式の装置である。本実施例では説明を簡潔にするため、9個のカメラユニット201〜209は、正方格子上に均等に配置されている。同様に、各カメラユニットの上下軸、左右軸、光軸は全て同じ方向であるとする。このカメラユニット201〜209が、被写体の光情報をセンサ(撮像素子)で受光し、受光した信号がA/D変換されて、複数の撮影画像(デジタルデータ)が同時に取得される。このような多眼方式の撮像装置により、同一の被写体を複数の視点位置から撮像した撮影画像群を得ることができる。なお、ここではカメラユニットの数を9個としたが、これに限定されるものではない。撮像装置が複数のカメラユニットを有する限りにおいて本発明は適用可能である。また、ここでは9個のカメラユニットが正方格子上に均等に配置される例について説明したが、カメラユニットの配置はこれに限るものではなく、システムに応じて任意の配置が可能である。
【0014】
次に、本実施例に係る一連の処理を行う概要機能構成について、図3を参照して説明する。CPU101の機能部としての撮像データ入力部301は、撮像装置111によって異なる位置から撮像された複数の撮像画像302および撮像装置111の画角や撮像位置を含む撮像装置情報303を記憶装置から取得する。ここで、この記憶装置には、撮像装置111あるいはROM103、HDD105等が含まれるが、これに限られない。CPU101の機能部としてのパラメータ入力部304は、仮想的なピント面までの距離を含むリフォーカスパラメータである仮想ピントパラメータ305および仮想絞りパラメータ306を入力デバイス109あるいは記憶装置から取得する。ここで、記憶装置には、ROM103、HDD105等が含まれるが、これに限られない。さらに同じくリフォーカス処理によって生成するリフォーカス画像の解像度318を入力デバイス109あるいはROM103、HDD105等の記憶装置から取得する。
【0015】
CPU101の機能部としての距離推定処理部307は、撮像画像302および撮像装置情報303に基づき、ステレオマッチングにより撮像対象を含む撮像シーンの深さ方向の位置を示すデプス値を推定し、デプスマップ308を生成する。ピントマップ生成処理部309は、仮想ピントパラメータ305およびデプスマップ308に基づき、領域分割処理によりピントを合わせたい領域(ピント内領域)とぼかしたい領域(ピント外領域)を示すピントマップ310を生成する。ここで、ピントマップ生成処理部309は、CPU101の機能部として動作する。
【0016】
CPU101の機能部としてのピント内領域画像処理部311は、撮像画像302、撮像装置情報303およびピントマップ310に基づき、ピントを合わせる領域であるピント内領域に重点を置いた画像処理を行い、ピント内領域画像312を生成する。CPU101の機能部としてのピント外領域画像処理部313は、撮像画像302、撮像装置情報303、ピントマップ310および仮想絞りパラメータ306に基づき、ピント外領域に重点を置いた画像処理を行い、ピント外領域画像314を生成する。CPU101の機能部としての画像ブレンド処理部315は、ピント内領域画像312、ピント外領域画像314およびピントマップ310に基づき、画像のブレンド処理によりリフォーカス画像316を生成する。CPU101の機能部としての画像出力部317は、リフォーカス画像316を出力デバイス109やHDD105等の二次記憶装置へ出力する。
【0017】
図4は、ピント外領域画像処理部の概要機能構成を示す図である。CPU101の機能部としての画像縮小処理部401は、撮像画像302に対して画像縮小処理を行い、縮小画像405を生成する。これにより、ピント外領域では、その後縮小された合成画像を生成してから拡大処理を行うことで画像合成処理に必要な補間画像の生成にかかる計算コストを抑えることができる。CPU101の機能部としての画像補間処理部402は、まず撮像装置情報303に基づき、撮像画像302の撮像位置を内挿するように仮想視点位置409を設定する。そして、縮小画像405を基に各仮想視点位置409から撮像される画像を補間し、補間画像406を生成する。
【0018】
CPU101の機能部としての画像合成処理部403は、撮像装置情報303、仮想視点位置409、仮想ピントパラメータ305、仮想絞りパラメータ306、ピントマップ310に基づいて、縮小画像405および補間画像406に対して画像合成処理を行う。この画像合成処理により合成画像(ピント外領域)407を生成する。CPU101の機能部としての画像拡大処理部404は、合成画像(ピント外領域)407に対してリフォーカス画像の解像度318へと画像拡大処理を行い、ピント外領域画像408を生成する。
【0019】
図13は、本実施例の画像処理装置における一連の処理の動作手順を示す全体のフローチャートである。詳細には、図13のフローチャートに示す手順を記述したコンピュータ実行可能なプログラムを、ROM103あるいはHDD105からRAM102上に読み込んだ後に、CPU101によって該プログラムを実行することによって処理が実施される。以下、図13に示す各処理について説明するが、図13に示すフローチャートは全体処理の流れを示すものなので、本実施例に特徴的な各処理の詳細は図14ないし20を参照してさらに説明する。
【0020】
ステップS901で、撮像データ入力部301は、撮像装置111を用いて撮像画像302を撮像し、撮像画像302および撮像装置111の各カメラユニットの画角や撮像位置を含む撮像装置情報303を取得する。あるいは、予めROM103やHDD105などの記録装置に撮像画像302および撮像装置111の各カメラユニットの画角や撮像位置などの撮像装置情報303を保持しておき、これを撮像データ入力部301が取得するようにしてもよい。
【0021】
ステップS902では、パラメータ入力部304は、入力デバイス107から仮想ピント距離を含む仮想ピントパラメータ305、画像合成時に使用する各画像の重み係数を含む仮想絞りパラメータ306および生成するリフォーカス画像の解像度318を取得する。あるいは、予めROM103やHDD105などの記録装置に仮想ピントパラメータ305、仮想絞りパラメータ306、およびリフォーカス画像の解像度319を保持しておき、これをパラメータ入力部304が取得するようにしてもよい。
【0022】
ステップS903で、距離推定処理部307は、ステップS901で取得した撮像画像302および撮像装置情報303を基に、距離推定処理を用いて撮像したシーンの奥行きを推定し、シーンのデプスマップ308を生成する。距離推定処理の詳細は図14を参照して後述する。
【0023】
ステップS904で、ピントマップ生成処理部309は、ステップS902で取得した仮想ピントパラメータ305、およびステップS903で生成したデプスマップ308に基づき、ピントマップ生成処理を実行する。これによりピントを合わせたい領域(ピント内領域)と、ぼかしたい領域(ピント外領域)とを示すピントマップ310を生成する。ピントマップ生成処理の詳細は図15を参照して後述する。
【0024】
ステップS905のピント内領域画像処理は、ステップS901で取得した撮像画像302および撮像装置情報303、ステップS902で取得したリフォーカス画像の解像度319並びにステップS904で生成したピントマップ310に基づく。これらの情報に基づき、ピント内領域画像処理部311は、ピント内領域画像処理を行い、ピント内領域画像312を生成する。ピント内領域画像処理の詳細は図16を参照して後述する。
【0025】
ステップS906で、ピント外領域画像処理部313は、ピント外領域画像処理を行う。ここで本処理は、上記で取得した撮像画像302および撮像装置情報303、リフォーカス画像の解像度318、仮想ピントパラメータ305仮想絞りパラメータ306およびピントマップ310に基づく。その結果、ピント外領域画像314を生成する。ピント外領域画像処理の詳細は図17ないし19を参照して後述する。
【0026】
ステップS907で、画像ブレンド処理部315は、ステップS905で生成したピント内領域画像312とステップS906で生成したピント外領域画像314に対して画像ブレンド処理を行い、リフォーカス画像316を生成する。画像ブレンド処理の詳細は図20を参照して後述する。
【0027】
ステップS908で、画像出力部317はリフォーカス画像316を出力デバイス109やHDD105を含む二次記録装置に出力し、本実施例の全体の処理は終了する。
【0028】
<距離推定処理>
ここでは、図13に示すフローチャートのステップS903で行う距離推定処理の詳細について説明する。距離推定処理では、位置の異なる複数の撮像画像302を基に、撮像したシーンの距離を推定することでデプスマップ308を生成し、これを用いてピントを合わせたい領域(ピント内領域)とそれ以外の領域(ピント外領域)にシーンを分割する。分割の結果、ピントマップが作られる。この距離推定方法には公知の方法を用いればよい。例えば、ステレオ法、マルチベースラインステレオ法などが適用可能である。本実施例では、ステレオ法によって距離推定を行う。以下、図14に示すフローチャートを用い、距離推定処理の詳細を説明する。
【0029】
図14のステップS1001では、撮像画像302から処理に使用する2つの画像を選択する。本実施例では撮像装置111の中央のカメラユニット205で撮像された画像と、それと横方向に隣接するカメラユニット206で撮像された画像を選択するが、これに限られずいずれかのカメラユニットの組みを使用することもできる。以下、前者を基準画像、後者を対象画像とする。
【0030】
ステップS1002で、以降の処理を行う注目画素を初期化する。ステップS1003では、全画素で距離値が求められたか否かを判定する。全画素で距離値の算出が終了した場合はステップS1007へ進みデプスが像を出力して終了し、まだ距離値の求められていない画素がある場合はステップS1004へ進む。
【0031】
ステップS1004で、まず基準画像の注目画素とその周囲の画素とからなる領域を選択する。そして選択したブロックを用いて対象画像とパターンマッチングを行い、対象画像中から注目画素に対応する画素(対応画素)を求める。ステップS1005で、撮像装置情報303、注目画素およびS1005で求めた対応画素を基に注目画素に対応する距離値pを求める。距離値pは、図12に示すα、β、sを基に以下の式で表される。
【0032】
【数1】

【0033】
ここで、αはカメラユニット205の水平画角、基準画像の撮像位置、注目画素の座標から算出される。βはカメラユニット206の水平画角、対象画像の撮像位置、対象画素の座標から算出される。sはカメラユニット間の距離であり、基準画像および対象画像の撮像位置より算出される。ステップS1006で、注目画素を更新しS1003へ戻って、まだ未処理の画素がある場合はその画素について同様に距離値pを求め、処理すべき画素がもうない場合はS1007に進んで出力処理を行う。
【0034】
ステップS1007で、各画素値を基準画像の距離値pとするデプスマップ308を出力する。これにより各画素に対応した被写体の撮像装置からの距離をマッピングしたデプスマップが得られ、これを基にさらにピントマップを生成する。なお、本実施例ではステップS1001において、カメラユニット205および206を選択し距離推定を行ったが、距離推定可能なカメラユニットの組み合わせはこれに限るものではない。
【0035】
<ピントマップ生成処理>
ここでは、図13に示すフローチャートのステップS904で行うピントマップ生成処理の詳細について説明する。本処理では、ステップS902で取得した仮想ピントパラメータ305およびステップS903で取得したデプスマップ308に基づき、ピントを合わせたい領域(ピント内領域)とそれ以外の領域(ピント外領域)にシーンを分割しピントマップ310を生成する。以下、図15に示すフローチャートを用い、ピントマップ生成処理の詳細を説明する。
【0036】
ステップS1101で、以下のようにピント内領域の設定を行う。仮想ピントパラメータ305より得られる仮想ピント距離をd、デプスマップ308の画素値をD(i,j)とする。このとき、D(i,j)=dとなる画素(i,j)の集合をピント内領域とする。ステップS902で、以下のようにピント外領域の設定を行う。デプスマップ308において、ピント内領域以外の画素の集合をピント外領域とする。ステップS903において、画素がピント内領域に含まれるか、またはピント外領域に含まれるかにより異なるラベル値を割り当てマッピングし、ピントマップ308として出力する。
【0037】
以上の処理によって得られるピントマップ310の例を図5に示す。デプスマップ308を距離値d0、d1、d2からなる画像とし、仮想ピントパラメータ305から得られる仮想ピント距離をd2とする。この場合、デプスマップ308において距離値がd2となる画素の集合がピント内領域として設定され、距離値がd0、d1となる画素の集合がピント外領域として設定される。
【0038】
なお、本実施例ではステップS1101において、デプスマップ308における画素値D(i,j)が仮想ピント距離dと等しい領域をピント内領域としたが、ピント内領域の設定方法はこれに限るものではない。例えば、d−α1≦D(i,j)≦d+α2を満たす画素D(i,j)をピント内領域としてもよい。この際、α1、α2の値は、仮想絞りパラメータ306に基づき、リフォーカス画像316における仮想的被写界深度を考慮し決定する。
【0039】
<ピント外領域画像処理>
本実施例では、ピント内領域とピント外領域とで異なる画像処理を行うことを特徴とするので、以降それぞれの処理を説明する。まず、ここでは、図13に示すフローチャートのステップS906で行うピント外領域画像処理の詳細について説明する。ピント外領域画像処理では、ピントマップ310においてピント外領域として設定された領域に重点を置いた処理を行い、ピント外領域画像314を生成する。以下、図17に示すフローチャートおよび図4に示す処理部構成を参照し、ピント外領域画像処理の詳細を説明するが、一部の処理の詳細はさらに後述する。すなわち、本処理では以下に説明するように処理負荷を軽減するため、対象画像を縮小し、補間処理を行って合成し、処理すべきデータ量を削減するが、画像補間処理および画像合成処理の詳細は図18および19を参照して後述する。
【0040】
ステップS1301で、画像縮小処理部401は、撮像画像302に対して画像縮小処理を行い、縮小画像405を生成する。なお、画像縮小処理には、例えばバイリニア法やバイキュービック法などの公知の方法を用いればよい。縮小画像の解像度は、撮像画像302の解像度以下であれば、撮像装置全体、被写体、撮像環境等に合わせて任意に定めることができる。例えば、縮小画像の解像度は、撮像装置情報303、仮想ピントパラメータおよび仮想絞りパラメータ306から得られるピント外領域のぼけの大きさに応じて決定するようにしてもよい。あるいは、パラメータ入力部304から予め決められた解像度を取得するようにしてもよい。
【0041】
ステップS1302で、画像補間処理部402は、縮小画像405から画像補間処理を行い、補間画像406を生成する。画像補間処理の詳細については図18を参照して後述する。ステップS1303で、画像合成処理部403は、縮小画像405、補間画像406、ピントマップ310、仮想ピントパラメータ305および仮想絞りパラメータ306から画像合成処理を行い、合成画像(ピント外領域)407を生成する。画像合成処理の詳細については図19を参照して後述する。
【0042】
ステップS1304で、画像拡大処理部404は、前のステップで生成した合成画像(ピント外領域)407に対して、リフォーカス画像の解像度319へと画像拡大処理を行い、ピント外領域画像408を生成して処理を終了する。なお、画像拡大処理には、例えばバイリニア法やバイキュービック法などの公知の方法を用いればよい。
【0043】
<画像補間処理>
ここで、図17のステップS1302で行う画像補間処理の詳細について、図18を参照して説明する。画像補間処理では、まず、撮像装置情報303に基づいて撮像画像302の撮像位置を内挿するように仮想視点位置409を設定する。次に、視差補間処理を用いてS1301で得られた縮小画像405を基に、各仮想視点位置409に対応する補間画像406を生成する。以下、図18に示すフローチャートおよび図4に示す処理部構成を参照して画像補間処理の詳細を説明する。
【0044】
ステップS1401では、補間画像を生成する仮想視点位置409の設定を行う。撮像位置と仮想視点位置との関係を図7に示す。x軸601、y軸602、z軸603は、それぞれ各カメラユニットの水平方向、垂直方向、光軸方向に対応し、カメラユニット205の撮像位置を原点として直交しているものとする。仮想視点位置409は、各撮像位置を内挿するように設定する。本実施例では、図7ないし9に示すように撮像位置を等間隔に内挿するよう格子状に仮想視点位置409を設定する。
【0045】
ステップS1402では、縮小画像405の中から撮像位置が横方向に隣接する2つの画像を順に選択し、視差補間処理を用いて2画像間の仮想視点位置409に対応する補間画像406を生成する。図8に、ステップS1402で補間画像を生成する仮想視点位置を示す。視差補間処理には公知の方法、例えば2画像を用いて、ブロックマッチングにより算出した各画素の視差量を基に中間視点の画像を補間により生成することができる。あるいは、2画像から抽出した特徴点を対応付け、各特徴点の対応関係を基にモーフィング処理を行うことで中間視点の画像を生成してもよく、その他本技術分野で知られたいずれの方法を採用することもできる。
【0046】
ステップS1403では、縮小画像405、およびステップS1402で生成した補間画像406の中から撮像位置が縦方向に隣接する画像のペアを順に選択し、視差補間処理を用いて2画像間の仮想視点位置409に対応する補間画像を生成する。図9にステップS1403で補間画像を生成する仮想視点位置を示す。視差補間処理には、ステップS1402と同様の手法が適用可能である。ステップS1404では、ステップS1402およびステップS1403で生成した補間画像406を出力する。
【0047】
<画像合成処理>
次に、図17に示すステップS1303で行う画像合成処理について説明する。画像合成処理では、まず仮想絞りパラメータ306を基に、各画像に対する重み係数を設定する。そして、撮像装置情報303および仮想視点位置409を基に、各画像をシフトし領域毎に異なる重み係数を用いて重み付け加算を行い、合成画像(ピント外領域)407を生成する。以下、図19に示すフローチャートおよび図4に示す処理部構成を参照し、画像合成処理の詳細を説明する。
【0048】
ステップS1501において、ステップS902で取得した仮想絞りパラメータ306を基に、画像を合成する際に用いる重み係数を設定する。まず図10および11を参照して画像合成時の重み係数について説明する。仮想絞りパラメータ306は、撮影位置および仮想視点位置409において得られる画像に対する係数のセットである。以下、図10に示すように各撮影位置および仮想視点位置409をそれぞれP0〜P24と表し、位置Pm(m=0〜24)において得られる画像をImとする。このとき、Imに対応する重み係数の値A(m)は、仮想絞りパラメータ306から、例えば図11に示すように設定することができる。ここでは、P12を中心としてガウス関数に従うよう重み係数を設定し、重み係数の和が1になるよう正規化している。こうすることにより、ピント外領域を滑らかにぼかすことができる。
【0049】
ステップS1502において、撮像装置情報303および仮想視点位置409を基に、各画像のシフト量を算出する。ピント距離をdとした際の画像Imの水平方向のシフト量△i(m、d)および垂直方向のシフト量△j(m、d)は以下の式で表される。
【0050】
【数2】

【0051】
ここで、W、Hはそれぞれ画像の水平方向、垂直方向の画像サイズ、θwはカメラユニットの水平画角、θhはカメラユニットの垂直画角、(sm,tm)はxy平面上におけるPmの座標である。また、(s’,t’)はxy平面上におけるカメラユニット205の撮像位置P12の座標である。
【0052】
ステップS1503において、ステップS1502で求めたシフト量、ステップS1501で求めた重み係数を用いて、縮小画像405および補間画像406に対して重み付け加算処理を行うことにより合成画像(ピント外領域)407を生成する。合成画像(ピント外領域)407をHとしたとき、合成処理は以下の式で表される。
【0053】
【数3】

【0054】
ステップS1504において、前のステップで生成した合成画像(ピント外領域)407を出力する。
【0055】
<ピント内領域画像処理>
ここでは、ステップS905で行うピント内領域画像処理について説明する。ピント内領域画像処理では、ピントマップ310においてピント内領域として設定された領域に重点を置いた処理を行い、ピント内領域画像312を生成する。ピント内領域画像処理の詳細について、図16に示すフローチャートを参照して説明する。
【0056】
ステップS1201では、図19のフローチャートで説明した画像合成処理と同様の処理を行う。ただし、図19の説明では、m=0〜24であったのに対し、ここでは、mは撮像位置のみの値として処理を実行する。つまり、m=0、2、4、10、12、14、20、22、24となる。また、縮小画像405の代わりに撮像画像302を使用し、補間画像406は使用しない。よって、位置Pmは撮像位置のみとなり、画像Imは撮像画像302のみとなる。さらに、重み係数A(m)についても、撮像位置にあたる係数に対して再正規化を行い、これを使用する。以上の条件の下で画像合成処理を行うことで、合成画像(ピント内領域)を生成する。
【0057】
ステップS1202では、合成画像(ピント内領域)に対して公知の高解像度化処理を行い、ピント内領域画像312を生成する。例えば、シャープネス処理により、ピント内領域の先鋭度を向上させる。なお、高解像度化処理はこれに限るものではなく、画像合成処理において算出されたシフト量をもとに超解像処理を行ってもよい。本実施例に適用可能な超解像処理としては、MAP ( Maximum A Posterior ) 推定に基づく方法などがある。MAP法は、二乗誤差に高解像度画像の確率情報を付加した評価関数を最小化するような高解像度画像を推定する方法である。すなわち、高解像度画像に対するある先見情報と画像間の位置ずれを表すパラメータとを利用して、事後確率を最大化する最適化問題として高解像度画像の推定を行う。その他、本技術分野で知られた種々の方法でピント内領域画像312を得ることができる。
【0058】
<画像ブレンド処理>
次に、ステップS907で行う画像ブレンド処理について説明する。画像ブレンド処理では、ピントマップ310に基づき、ピント内領域画像312とピント外領域画像314とをブレンド処理することで、リフォーカス画像316を生成する。以下、図20に示すフローチャートおよび図3の構成を参照し、画像ブレンド処理の詳細を説明する。
【0059】
ステップS1601では、ブレンド処理を行う対象画素のインデックスを初期値に設定する。ステップS1602では、全ての画素に対してブレンド処理が終了したかどうかを判定する。もし、終了していればステップS1606へ進みんでリフォーカス画像を出力して本処理は終了し、終了していなければステップS1603へ進む。
【0060】
ステップS1603では、ピント内領域画像312の画素値と、ピント外領域画像314の画素値とをブレンド処理するためのブレンド比率を決定する。ピントマップにおいて処理対象画素に対応する画素を参照し、その画素がピント内領域と設定されていればブレンド比率rbを1.0に設定し、ピント外領域と設定されていればブレンド比率rbを0.0に設定する。ステップS1604では、次式に従い画素値のブレンド処理を実行する。
【0061】
【数4】

【0062】
ここで、R(i,j)はブレンド処理により生成されるリフォーカス画像の画素値、Iinはピント内領域画像312の画素値、Ioutはピント外領域画像314の画素値である。ステップS1605では、処理対象画素のインデックスを1つ進める。ステップS1606では、ブレンド処理により生成されたリフォーカス画像を出力する。
【0063】
以上説明したように、本実施例では、ピント内領域とピント外領域とで処理を切り替え、ピント内領域に対しては高解像度化処理を行い、ピント外領域に対しては縮小された合成画像を生成してから拡大処理を行う。これにより、ピント内領域の画質を向上させつつ、画像合成処理に必要な補間画像の生成にかかる計算コストを抑えることが可能となる。
【0064】
なお、本実施例では、画像ブレンド処理において、ピント内領域画像312あるいはピント外領域画像314のどちらかの画素値が採用されるような処理について説明したが、これに限るものではない。これに加え、領域の境界を目立たなくするために次のような処理を加えることも可能である。図6に示すように、ピントマップに対して、ピント領域を拡張した拡張ピント内領域を設定する。これは、例えば、ピント内領域のエッジからr画素広げた領域である。なお、拡張ピント内領域の大きさや形状に関しては、これに限るものではなく、ピント内領域を取り囲む領域であればどのように設定しても構わない。
【0065】
次に、画像ブレンド処理においてブレンド比率を決定する際に、この拡張ピント内領域に関しては、図21に示すように、ピント内領域からの距離に応じてブレンド比率rbを例えば線形に変化するように決定する。つまりピント内領域から離れるほど、ブレンド時のピント内領域画像312の寄与率が小さくなる。このように決定したブレンド比率を基に画像ブレンド処理を行うことによって、図6に示すようにピント内領域とピント外領域の境界を目立たなくすることができる。
【0066】
[実施例2]
実施例1では、ピント外領域処理において生成する合成画像(ピント外領域)の解像度は1つとして処理した。本実施例では、これを複数設定してピント外領域画像を複数保持し、画像ブレンド処理の際に、デプスマップから得られる距離情報等に応じて、使用する画像を切り替える処理を行う。これにより、画像合成処理に必要な補間画像の生成にかかる計算コストをより小さくすることができる。
【0067】
本実施例では、全体の処理のうち実施例1で既に説明した処理とは異なる、ピント外領域画像処理および画像ブレンド処理に関して詳細に説明する。それ以外の処理に関しては、実施例1と同様であるため説明は省略する。
【0068】
<ピント外領域画像処理>
本実施例におけるピント外領域画像処理の詳細を図22のフローチャートを参照して説明する。図17で説明した実施例1のピント外領域画像処理と同内容の処理に関しては同じ図番号を付与し説明は省略する。
【0069】
ステップS1701では、合成画像(ピント外領域)の解像度となる複数の縮小解像度Sn(nは1以上)を設定する。例えば、縦横それぞれの解像度が、撮像画像302の解像度の1/2、1/4、1/8・・・となるようにn個設定すればよい。あるいは、デプスマップ308、仮想ピントパラメータ305および仮想絞りパラメータ306から、シーン中の各被写体距離におけるボケの大きさを推定して、これに応じて複数の解像度を設定するようにしてもよい。
【0070】
図23では、デプスマップ308が、d1、d2、d3、d4(d1>d2>d3>d4)という4つの距離値で構成されており、d4がピント内領域となる距離である場合を示している。この場合、d1、d2、d3に対応した3つの縮小解像度をそれぞれ、S1、S2、S3(S1<S2<S3)と設定する。
【0071】
ステップS1702では、処理対象となる縮小解像度を初期値に設定する。ステップS1703では、ステップS1701で設定した複数の縮小解像度Snに対して、処理が終了したかどうかを判定する。処理が終了していればステップS1705へ進み、ピント外領域画像を出力して処理を終了し、そうでなければステップS1301へと進んで、未処理の解像度について処理する。
【0072】
ステップS1302およびS1303では実施例と同様の処理を行ない、ステップS1704では、縮小解像度を処理の終わっていない別の解像度へと更新する。ステップS1705では、ここまでのステップで生成された複数枚の合成画像(ピント外領域)407をピント外領域画像408として出力する。
【0073】
<画像ブレンド処理>
本実施例における画像ブレンド処理は、ピント内領域画像312、解像度の異なる複数のピント外領域画像314およびデプスマップ308を用いて行われる。図24のフローチャートおよび図23のブレンド処理の概要を参照して、本実施例における画像ブレンド処理の詳細を説明する。ステップS1901で、ブレンド処理を行う対象画素のインデックスを初期値に設定する。
【0074】
ステップS1902で、全ての画素に対してブレンド処理が終了したかどうかを判定する。もし、終了していればステップS1907へ進みリフォーカス画像を出力して終了し、終了していなければステップS1903へ進む。ステップS1903では、図23に示すデプスマップ308を参照し、処理対象画素の画素位置に対応する距離値を取得する。
【0075】
ステップS1904では、ステップS1903で取得した距離値に対応するピント外領域画像を選択する。例えば、図23において、取得した距離値がd1であった場合には、解像度S1の画像が選択され、距離値がd2であった場合には、解像度S2の画像が選択されることになる。
【0076】
ステップS1905では、ステップS1904で選択したピント外領域画像において、処理対象画素の画素位置に対応する画素値を公知の画素補間処理(例えばバイキュービック法)により取得する。ステップS1906では、処理対象画素のインデックスを1つ進める。ステップS1907では、ブレンド処理により生成されたリフォーカス画像を出力する。
【0077】
以上の処理により、解像度の異なるピント外領域画像を複数保持し、画像ブレンド処理の際に、デプスマップから得られる距離情報等に応じて、ブレンド処理することで、画像合成処理に必要な補間画像の生成にかかる計算コストをより小さくすることができる。
【0078】
[その他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。すなわち、上述した実施例の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。また、本発明は、複数のプロセッサが連携して処理を行うことによっても実現できるものである。

【特許請求の範囲】
【請求項1】
少なくとも2つの異なる視点から撮像された複数の画像を取得する撮像データ入力手段と、
仮想的なピント面までの距離を示すリフォーカスパラメータを入力する入力手段と、
前記取得された画像について、画素に対応する撮像対象と撮像装置との距離を示すデプスマップを生成する距離推定処理手段と、
前記リフォーカスパラメータに応じて、前記デプスマップからフォーカスを所望するピント内領域および所望しないピント外領域を含む領域を算出し、前記ピント内領域およびピント外領域を示すピントマップを生成するピントマップ生成手段と、
前記ピント内領域について一定の処理を施し、少なくとも前記撮像画像を含む画像群を合成することによって合成画像を生成するピント内領域画像処理手段と、
前記ピント外領域について前記ピント内領域画像処理手段とは異なる処理を施し、少なくとも前記撮像画像を含む画像群を合成することによって合成画像を生成するピント外領域画像処理手段と、
前記ピントマップに応じて、前記ピント内領域および前記ピント外領域ごとに生成された合成画像をブレンドしてリフォーカス画像を生成する画像ブレンド手段と
を備えたことを特徴とする画像処理装置。
【請求項2】
前記ピント内領域に対する一定の処理は、高解像度化処理であることを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記ピント外領域画像処理手段は、前記ピント外領域の画像について縮小処理を実行する画像縮小処理手段と、視点位置の補間により前記縮小処理された画像を補間して補間画像を生成する補間画像手段とを含み、前記縮小処理された画像と前記補間画像とを合成することにより前記ピント外領域についての合成画像を生成することを特徴とする請求項1または2に記載の画像処理装置。
【請求項4】
前記ピント外領域画像処理手段は、前記ピント外領域には前記画像縮小処理手段によって撮像画像の解像度より低解像度の合成画像を生成し、さらに出力解像度へと変換する画像拡大手段をさらに含むことを特徴とする請求項3に記載の画像処理装置。
【請求項5】
前記ピント外領域において解像度の異なる複数枚の合成画像を生成し保持することを特徴とする請求項3または4に記載の画像処理装置。
【請求項6】
少なくとも2つの異なる視点から撮像された複数の画像を取得する撮像データ入力ステップと、
仮想的なピント面までの距離を示すリフォーカスパラメータを入力する入力ステップと、
前記取得された画像について、画素に対応する撮像対象と撮像装置との距離を示すデプスマップを生成する距離推定処理ステップと、
前記リフォーカスパラメータに応じて、前記デプスマップからフォーカスを所望するピント内領域および所望しないピント外領域を含む領域を算出し、前記ピント内領域およびピント外領域を示すピントマップを生成するピントマップ生成ステップと、
前記ピント内領域について一定の処理を施し、少なくとも前記撮像画像を含む画像群を合成することによって合成画像を生成するピント内領域画像処理ステップと、
前記ピント外領域について前記ピント内領域画像処理ステップとは異なる処理を施し、少なくとも前記撮像画像を含む画像群を合成することによって合成画像を生成するピント外領域画像処理ステップと、
前記ピントマップに応じて、前記ピント内領域および前記ピント外領域ごとに生成された合成画像をブレンドしてリフォーカス画像を生成する画像ブレンドステップと
を備えたことを特徴とする画像処理装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate


【公開番号】特開2013−61743(P2013−61743A)
【公開日】平成25年4月4日(2013.4.4)
【国際特許分類】
【出願番号】特願2011−198878(P2011−198878)
【出願日】平成23年9月12日(2011.9.12)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】