(57)【特許請求の範囲】
【請求項１】
少なくとも2つの異なる視点から撮像された複数の画像を取得する撮像データ入力手段と、
仮想的なピント面までの距離を示すリフォーカスパラメータを入力する入力手段と、
前記取得された画像について、画素に対応する撮像対象と撮像装置との距離を示すデプスマップを生成する距離推定処理手段と、
前記リフォーカスパラメータに応じて、前記デプスマップからフォーカスを所望するピント内領域および所望しないピント外領域を含む領域を算出し、前記ピント内領域およびピント外領域を示すピントマップを生成するピントマップ生成手段と、
前記ピント内領域について一定の処理を施し、少なくとも前記撮像画像を含む画像群を合成することによって合成画像を生成するピント内領域画像処理手段と、
前記ピント外領域について前記ピント内領域画像処理手段とは異なる処理を施し、少なくとも前記撮像画像を含む画像群を合成することによって合成画像を生成するピント外領域画像処理手段と、
前記ピントマップに応じて、前記ピント内領域および前記ピント外領域ごとに生成された合成画像をブレンドしてリフォーカス画像を生成する画像ブレンド手段と
を備え、
前記ピント外領域画像処理手段は、前記ピント外領域の画像について縮小処理を実行する画像縮小処理手段と、視点位置の補間により前記縮小処理された画像を補間して補間画像を生成する補間画像生成手段とを含み、前記縮小処理された画像と前記補間画像とを合成することにより前記ピント外領域についての合成画像を生成する
ことを特徴とする画像処理装置。
【請求項２】
前記ピント内領域に対する一定の処理は、高解像度化処理であることを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記ピント外領域画像処理手段は、前記ピント外領域には前記画像縮小処理手段によって撮像画像の解像度より低解像度の合成画像を生成し、さらに出力解像度へと変換する画像拡大手段をさらに含むことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記ピント外領域において解像度の異なる複数枚の合成画像を生成し保持することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
少なくとも2つの異なる視点から撮像された複数の画像を取得する撮像データ入力ステップと、
仮想的なピント面までの距離を示すリフォーカスパラメータを入力する入力ステップと、
前記取得された画像について、画素に対応する撮像対象と撮像装置との距離を示すデプスマップを生成する距離推定処理ステップと、
前記リフォーカスパラメータに応じて、前記デプスマップからフォーカスを所望するピント内領域および所望しないピント外領域を含む領域を算出し、前記ピント内領域およびピント外領域を示すピントマップを生成するピントマップ生成ステップと、
前記ピント内領域について一定の処理を施し、少なくとも前記撮像画像を含む画像群を合成することによって合成画像を生成するピント内領域画像処理ステップと、
前記ピント外領域について前記ピント内領域画像処理ステップとは異なる処理を施し、少なくとも前記撮像画像を含む画像群を合成することによって合成画像を生成するピント外領域画像処理ステップと、
前記ピントマップに応じて、前記ピント内領域および前記ピント外領域ごとに生成された合成画像をブレンドしてリフォーカス画像を生成する画像ブレンドステップと、
を含み、
前記ピント外領域画像処理ステップは、前記ピント外領域の画像について縮小処理を実行する画像縮小処理ステップと、視点位置の補間により前記縮小処理された画像を補間して補間画像を生成する補間画像生成ステップとを含み、  前記縮小処理された画像と前記補間画像とを合成することにより前記ピント外領域についての合成画像を生成する
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関し、特に多視点撮影した複数枚の画像を合成しリフォーカス画像を生成する画像処理装置および画像処理方法に関する。
【背景技術】
【０００２】
従来、複数の視点から撮影された画像から、画像位置合わせ及び画像合成処理により、仮想フォーカス距離にリフォーカス処理を行う方法が知られている（例えば、特許文献１および非特許文献１参照）。特許文献１および非特許文献１に記載された発明では、撮影位置の異なる複数枚の画像を合成し、各画像の撮影位置とピントを合わせたい被写体距離に応じて、各画像をシフトあるいは変形して合成することによりリフォーカス画像を生成している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−２２７９６号公報
【非特許文献】
【０００４】
【非特許文献１】楠本夏未他、"未較正合成開口撮影法によるデフォーカスコントロール"、MIRU2008画像の認識・理解シンポジウム論文集、日本、2008年、1057-1062頁
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、非特許文献１の方法では、撮影画像間の中間視点画像を推定処理によって生成することで被写界深度外のぼけた領域の画質を向上させているが、一方で中間視点画像の影響によりピントを合わせたい領域までぼけてしまうという課題があった。また、出力画像の解像度が高くなればなるほど、きれいなぼけを再現するためには多くの中間視点画像が必要となり、この生成に膨大な計算コストがかかるという課題があった。
【０００６】
そこで本発明では、中間視点画像の生成にかかる計算コストを抑えつつ、ピントを合わせたい領域の画質を向上させることを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る画像処理装置は、少なくとも2つの異なる視点から撮像された複数の画像を取得する撮像データ入力手段と、仮想的なピント面までの距離を示すリフォーカスパラメータを入力する入力手段と、前記取得された画像について、画素に対応する撮像対象と撮像装置との距離を示すデプスマップを生成する距離推定処理手段と、前記リフォーカスパラメータに応じて、前記デプスマップからフォーカスを所望するピント内領域および所望しないピント外領域を含む領域を算出し、前記ピント内領域およびピント外領域を示すピントマップを生成するピントマップ生成手段と、前記ピント内領域について一定の処理を施し、少なくとも前記撮像画像を含む画像群を合成することによって合成画像を生成するピント内領域画像処理手段と、前記ピント外領域について前記ピント内領域画像処理手段とは異なる処理を施し、少なくとも前記撮像画像を含む画像群を合成することによって合成画像を生成するピント外領域画像処理手段と、前記ピントマップに応じて、前記ピント内領域および前記ピント外領域ごとに生成された合成画像をブレンドしてリフォーカス画像を生成する画像ブレンド手段とを備え、前記ピント外領域画像処理手段は、前記ピント外領域の画像について縮小処理を実行する画像縮小処理手段と、視点位置の補間により前記縮小処理された画像を補間して補間画像を生成する補間画像生成手段とを含み、前記縮小処理された画像と前記補間画像とを合成することにより前記ピント外領域についての合成画像を生成することを特徴とする。
【発明の効果】
【０００８】
本発明は、ピントを合わせたい領域とぼかしたい領域とで処理を切り替えることで、中間視点画像の生成にかかる計算コストを抑えつつ、ピントを合わせたい領域の画質を向上させる効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】本実施例における画像処理装置のシステム構成を示すブロック図である。
【図２】本実施例における撮像装置を示す図である。
【図３】本実施例における概要機能構成を示す図である。
【図４】本実施例におけるピント外領域画像処理部の詳細を示す図である。
【図５】本実施例におけるピントマップ生成処理部の処理概要を示す図である。
【図６】本実施例におけるピントマップ生成処理部の処理概要を示す図である。
【図７】本実施例における撮像位置と仮想視点位置の関係を示す図である。
【図８】本実施例における撮像位置と仮想視点位置の関係を示す図である。
【図９】本実施例における撮像位置と仮想視点位置の関係を示す図である。
【図１０】本実施例における重み係数の例を示す図である。
【図１１】本実施例における重み係数の例を示す図である。
【図１２】本実施例における撮影位置の間隔と被写体までの距離との関係を示す図である。
【図１３】本実施例における処理の流れを示すフローチャートである。
【図１４】本実施例における距離推定処理の流れを示すフローチャートである。
【図１５】本実施例におけるピントマップ生成処理の流れを示すフローチャートである。
【図１６】本実施例におけるピント内領域画像処理の流れを示すフローチャートである。
【図１７】実施例１におけるピント外領域画像処理の流れを示すフローチャートである。
【図１８】本実施例における画像補間処理の流れを示すフローチャートである。
【図１９】本実施例における画像合成処理の流れを示すフローチャートである。
【図２０】実施例１における画像ブレンド処理の流れを示すフローチャートである。
【図２１】実施例１におけるブレンドの処理のブレンド比率の例を示す図である。
【図２２】実施例２におけるピント外領域処理の流れを示すフローチャートである。
【図２３】実施例２における画像ブレンド処理の概要を示す図である。
【図２４】実施例２における画像ブレンド処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１０】
［実施例１］
本実施例では、複数のカメラユニットを備えた多眼方式の撮像装置から得られた複数枚の撮影画像から、画像処理によって任意の仮想フォーカス距離にピントを合わせを所望する画像を生成するリフォーカス処理に関するものである。すなわち、本実施例のリフォーカス処理においては、一定のピントを合わせたい領域に対して高解像度化処理を行い、ぼかしたい領域に対しては、出力解像度より低解像度なぼけ画像を生成する。まず、本実施例における画像処理装置のシステム構成例について、図１を参照して説明する。
【００１１】
同１において、ＣＰＵ１０１は、ＲＡＭ１０２をワークメモリとして、ＲＯＭ１０３及びハードディスクドライブ（ＨＤＤ）１０５に格納されたプログラムを実行し、システムバス１１２を介して後述する各構成を制御する。これにより、後述する様々な処理が実行される。ＨＤＤインターフェース（Ｉ／Ｆ）１０４は、ＨＤＤ１０５や光ディスクドライブなどの二次記憶装置を接続する、例えば、シリアルＡＴＡ（ＳＡＴＡ）等のインターフェースである。ＣＰＵ１０１は、ＨＤＤＩ／Ｆ１０４を介して、ＨＤＤ１０５からのデータ読み出し、およびＨＤＤ１０５へのデータ書き込みが可能である。さらにＣＰＵ１０１は、ＨＤＤ１０５に格納されたデータをＲＡＭ１０２に展開し、同様に、ＲＡＭ１０２に展開されたデータをＨＤＤ１０５に保存することが可能である。そしてＣＰＵ１０１は、ＲＡＭ１０２に展開したデータをプログラムとみなし、実行することができる。入力インターフェース（Ｉ／Ｆ）１０６は、キーボードやマウスなどの入力デバイス１０７を接続する、例えばＵＳＢやＩＥＥＥ１３９４等のシリアルバスインターフェースである。
【００１２】
ＣＰＵ１０１は、入力Ｉ／Ｆ１０６を介して入力デバイス１０７からデータを読み込むことが可能である。出力インターフェース（Ｉ／Ｆ）１０８は、モニタやプロジェクタなどの出力デバイス１０９を接続する、例えばＤＶＩやＨＤＭＩ等である。ＣＰＵ１０１は、出力Ｉ／Ｆ１０８を介して出力デバイス１０９にデータを送り、表示を実行させることができる。撮像インターフェース（Ｉ／Ｆ）１１０は、デジタルカメラなどの撮像装置１１１を接続する、例えばＵＳＢやＩＥＥＥ１３９４などのシリアルバスインターフェースである。ＣＰＵ１０１は、撮像Ｉ／Ｆ１１０を介して撮像装置１１１を制御し、撮像を行うことが可能である。さらにＣＰＵ１０１は、撮像Ｉ／Ｆ１１０を介して撮像装置１１１から撮像したデータを読み込むことが可能である。
【００１３】
図２は、本実施例における撮像装置１１１を示した図である。この撮像装置は、撮影画像を取得する９個のカメラユニット２０１〜２０９を備えた多眼方式の装置である。本実施例では説明を簡潔にするため、９個のカメラユニット２０１〜２０９は、正方格子上に均等に配置されている。同様に、各カメラユニットの上下軸、左右軸、光軸は全て同じ方向であるとする。このカメラユニット２０１〜２０９が、被写体の光情報をセンサ（撮像素子）で受光し、受光した信号がＡ／Ｄ変換されて、複数の撮影画像（デジタルデータ）が同時に取得される。このような多眼方式の撮像装置により、同一の被写体を複数の視点位置から撮像した撮影画像群を得ることができる。なお、ここではカメラユニットの数を９個としたが、これに限定されるものではない。撮像装置が複数のカメラユニットを有する限りにおいて本発明は適用可能である。また、ここでは９個のカメラユニットが正方格子上に均等に配置される例について説明したが、カメラユニットの配置はこれに限るものではなく、システムに応じて任意の配置が可能である。
【００１４】
次に、本実施例に係る一連の処理を行う概要機能構成について、図３を参照して説明する。ＣＰＵ１０１の機能部としての撮像データ入力部３０１は、撮像装置１１１によって異なる位置から撮像された複数の撮像画像３０２および撮像装置１１１の画角や撮像位置を含む撮像装置情報３０３を記憶装置から取得する。ここで、この記憶装置には、撮像装置１１１あるいはＲＯＭ１０３、ＨＤＤ１０５等が含まれるが、これに限られない。ＣＰＵ１０１の機能部としてのパラメータ入力部３０４は、仮想的なピント面までの距離を含むリフォーカスパラメータである仮想ピントパラメータ３０５および仮想絞りパラメータ３０６を入力デバイス１０９あるいは記憶装置から取得する。ここで、記憶装置には、ＲＯＭ１０３、ＨＤＤ１０５等が含まれるが、これに限られない。さらに同じくリフォーカス処理によって生成するリフォーカス画像の解像度３１８を入力デバイス１０９あるいはＲＯＭ１０３、ＨＤＤ１０５等の記憶装置から取得する。
【００１５】
ＣＰＵ１０１の機能部としての距離推定処理部３０７は、撮像画像３０２および撮像装置情報３０３に基づき、ステレオマッチングにより撮像対象を含む撮像シーンの深さ方向の位置を示すデプス値を推定し、デプスマップ３０８を生成する。ピントマップ生成処理部３０９は、仮想ピントパラメータ３０５およびデプスマップ３０８に基づき、領域分割処理によりピントを合わせたい領域（ピント内領域）とぼかしたい領域（ピント外領域）を示すピントマップ３１０を生成する。ここで、ピントマップ生成処理部３０９は、ＣＰＵ１０１の機能部として動作する。
【００１６】
ＣＰＵ１０１の機能部としてのピント内領域画像処理部３１１は、撮像画像３０２、撮像装置情報３０３およびピントマップ３１０に基づき、ピントを合わせる領域であるピント内領域に重点を置いた画像処理を行い、ピント内領域画像３１２を生成する。ＣＰＵ１０１の機能部としてのピント外領域画像処理部３１３は、撮像画像３０２、撮像装置情報３０３、ピントマップ３１０および仮想絞りパラメータ３０６に基づき、ピント外領域に重点を置いた画像処理を行い、ピント外領域画像３１４を生成する。ＣＰＵ１０１の機能部としての画像ブレンド処理部３１５は、ピント内領域画像３１２、ピント外領域画像３１４およびピントマップ３１０に基づき、画像のブレンド処理によりリフォーカス画像３１６を生成する。ＣＰＵ１０１の機能部としての画像出力部３１７は、リフォーカス画像３１６を出力デバイス１０９やＨＤＤ１０５等の二次記憶装置へ出力する。
【００１７】
図４は、ピント外領域画像処理部の概要機能構成を示す図である。ＣＰＵ１０１の機能部としての画像縮小処理部４０１は、撮像画像３０２に対して画像縮小処理を行い、縮小画像４０５を生成する。これにより、ピント外領域では、その後縮小された合成画像を生成してから拡大処理を行うことで画像合成処理に必要な補間画像の生成にかかる計算コストを抑えることができる。ＣＰＵ１０１の機能部としての画像補間処理部４０２は、まず撮像装置情報３０３に基づき、撮像画像３０２の撮像位置を内挿するように仮想視点位置４０９を設定する。そして、縮小画像４０５を基に各仮想視点位置４０９から撮像される画像を補間し、補間画像４０６を生成する。
【００１８】
ＣＰＵ１０１の機能部としての画像合成処理部４０３は、撮像装置情報３０３、仮想視点位置４０９、仮想ピントパラメータ３０５、仮想絞りパラメータ３０６、ピントマップ３１０に基づいて、縮小画像４０５および補間画像４０６に対して画像合成処理を行う。この画像合成処理により合成画像（ピント外領域）４０７を生成する。ＣＰＵ１０１の機能部としての画像拡大処理部４０４は、合成画像（ピント外領域）４０７に対してリフォーカス画像の解像度３１８へと画像拡大処理を行い、ピント外領域画像４０８を生成する。
【００１９】
図１３は、本実施例の画像処理装置における一連の処理の動作手順を示す全体のフローチャートである。詳細には、図１３のフローチャートに示す手順を記述したコンピュータ実行可能なプログラムを、ＲＯＭ１０３あるいはＨＤＤ１０５からＲＡＭ１０２上に読み込んだ後に、ＣＰＵ１０１によって該プログラムを実行することによって処理が実施される。以下、図１３に示す各処理について説明するが、図１３に示すフローチャートは全体処理の流れを示すものなので、本実施例に特徴的な各処理の詳細は図１４ないし２０を参照してさらに説明する。
【００２０】
ステップＳ９０１で、撮像データ入力部３０１は、撮像装置１１１を用いて撮像画像３０２を撮像し、撮像画像３０２および撮像装置１１１の各カメラユニットの画角や撮像位置を含む撮像装置情報３０３を取得する。あるいは、予めＲＯＭ１０３やＨＤＤ１０５などの記録装置に撮像画像３０２および撮像装置１１１の各カメラユニットの画角や撮像位置などの撮像装置情報３０３を保持しておき、これを撮像データ入力部３０１が取得するようにしてもよい。
【００２１】
ステップＳ９０２では、パラメータ入力部３０４は、入力デバイス１０７から仮想ピント距離を含む仮想ピントパラメータ３０５、画像合成時に使用する各画像の重み係数を含む仮想絞りパラメータ３０６および生成するリフォーカス画像の解像度３１８を取得する。あるいは、予めＲＯＭ１０３やＨＤＤ１０５などの記録装置に仮想ピントパラメータ３０５、仮想絞りパラメータ３０６、およびリフォーカス画像の解像度３１９を保持しておき、これをパラメータ入力部３０４が取得するようにしてもよい。
【００２２】
ステップＳ９０３で、距離推定処理部３０７は、ステップＳ９０１で取得した撮像画像３０２および撮像装置情報３０３を基に、距離推定処理を用いて撮像したシーンの奥行きを推定し、シーンのデプスマップ３０８を生成する。距離推定処理の詳細は図１４を参照して後述する。
【００２３】
ステップＳ９０４で、ピントマップ生成処理部３０９は、ステップＳ９０２で取得した仮想ピントパラメータ３０５、およびステップＳ９０３で生成したデプスマップ３０８に基づき、ピントマップ生成処理を実行する。これによりピントを合わせたい領域（ピント内領域）と、ぼかしたい領域（ピント外領域）とを示すピントマップ３１０を生成する。ピントマップ生成処理の詳細は図１５を参照して後述する。
【００２４】
ステップＳ９０５のピント内領域画像処理は、ステップＳ９０１で取得した撮像画像３０２および撮像装置情報３０３、ステップＳ９０２で取得したリフォーカス画像の解像度３１９並びにステップＳ９０４で生成したピントマップ３１０に基づく。これらの情報に基づき、ピント内領域画像処理部３１１は、ピント内領域画像処理を行い、ピント内領域画像３１２を生成する。ピント内領域画像処理の詳細は図１６を参照して後述する。
【００２５】
ステップＳ９０６で、ピント外領域画像処理部３１３は、ピント外領域画像処理を行う。ここで本処理は、上記で取得した撮像画像３０２および撮像装置情報３０３、リフォーカス画像の解像度３１８、仮想ピントパラメータ３０５仮想絞りパラメータ３０６およびピントマップ３１０に基づく。その結果、ピント外領域画像３１４を生成する。ピント外領域画像処理の詳細は図１７ないし１９を参照して後述する。
【００２６】
ステップＳ９０７で、画像ブレンド処理部３１５は、ステップＳ９０５で生成したピント内領域画像３１２とステップＳ９０６で生成したピント外領域画像３１４に対して画像ブレンド処理を行い、リフォーカス画像３１６を生成する。画像ブレンド処理の詳細は図２０を参照して後述する。
【００２７】
ステップＳ９０８で、画像出力部３１７はリフォーカス画像３１６を出力デバイス１０９やＨＤＤ１０５を含む二次記録装置に出力し、本実施例の全体の処理は終了する。
【００２８】
＜距離推定処理＞
ここでは、図１３に示すフローチャートのステップＳ９０３で行う距離推定処理の詳細について説明する。距離推定処理では、位置の異なる複数の撮像画像３０２を基に、撮像したシーンの距離を推定することでデプスマップ３０８を生成し、これを用いてピントを合わせたい領域（ピント内領域）とそれ以外の領域（ピント外領域）にシーンを分割する。分割の結果、ピントマップが作られる。この距離推定方法には公知の方法を用いればよい。例えば、ステレオ法、マルチベースラインステレオ法などが適用可能である。本実施例では、ステレオ法によって距離推定を行う。以下、図１４に示すフローチャートを用い、距離推定処理の詳細を説明する。
【００２９】
図１４のステップＳ１００１では、撮像画像３０２から処理に使用する２つの画像を選択する。本実施例では撮像装置１１１の中央のカメラユニット２０５で撮像された画像と、それと横方向に隣接するカメラユニット２０６で撮像された画像を選択するが、これに限られずいずれかのカメラユニットの組みを使用することもできる。以下、前者を基準画像、後者を対象画像とする。
【００３０】
ステップＳ１００２で、以降の処理を行う注目画素を初期化する。ステップＳ１００３では、全画素で距離値が求められたか否かを判定する。全画素で距離値の算出が終了した場合はステップＳ１００７へ進みデプスが像を出力して終了し、まだ距離値の求められていない画素がある場合はステップＳ１００４へ進む。
【００３１】
ステップＳ１００４で、まず基準画像の注目画素とその周囲の画素とからなる領域を選択する。そして選択したブロックを用いて対象画像とパターンマッチングを行い、対象画像中から注目画素に対応する画素（対応画素）を求める。ステップＳ１００５で、撮像装置情報３０３、注目画素およびＳ１００５で求めた対応画素を基に注目画素に対応する距離値ｐを求める。距離値ｐは、図１２に示すα、β、ｓを基に以下の式で表される。
【００３２】
【数１】
0005822613.tif 000002
【００３３】
ここで、αはカメラユニット２０５の水平画角、基準画像の撮像位置、注目画素の座標から算出される。βはカメラユニット２０６の水平画角、対象画像の撮像位置、対象画素の座標から算出される。ｓはカメラユニット間の距離であり、基準画像および対象画像の撮像位置より算出される。ステップＳ１００６で、注目画素を更新しＳ１００３へ戻って、まだ未処理の画素がある場合はその画素について同様に距離値ｐを求め、処理すべき画素がもうない場合はＳ１００７に進んで出力処理を行う。
【００３４】
ステップＳ１００７で、各画素値を基準画像の距離値ｐとするデプスマップ３０８を出力する。これにより各画素に対応した被写体の撮像装置からの距離をマッピングしたデプスマップが得られ、これを基にさらにピントマップを生成する。なお、本実施例ではステップＳ１００１において、カメラユニット２０５および２０６を選択し距離推定を行ったが、距離推定可能なカメラユニットの組み合わせはこれに限るものではない。
【００３５】
＜ピントマップ生成処理＞
ここでは、図１３に示すフローチャートのステップＳ９０４で行うピントマップ生成処理の詳細について説明する。本処理では、ステップＳ９０２で取得した仮想ピントパラメータ３０５およびステップＳ９０３で取得したデプスマップ３０８に基づき、ピントを合わせたい領域（ピント内領域）とそれ以外の領域（ピント外領域）にシーンを分割しピントマップ３１０を生成する。以下、図１５に示すフローチャートを用い、ピントマップ生成処理の詳細を説明する。
【００３６】
ステップＳ１１０１で、以下のようにピント内領域の設定を行う。仮想ピントパラメータ３０５より得られる仮想ピント距離をｄ、デプスマップ３０８の画素値をＤ（ｉ，ｊ）とする。このとき、Ｄ（ｉ，ｊ）＝ｄとなる画素（ｉ，ｊ）の集合をピント内領域とする。ステップＳ９０２で、以下のようにピント外領域の設定を行う。デプスマップ３０８において、ピント内領域以外の画素の集合をピント外領域とする。ステップＳ９０３において、画素がピント内領域に含まれるか、またはピント外領域に含まれるかにより異なるラベル値を割り当てマッピングし、ピントマップ３０８として出力する。
【００３７】
以上の処理によって得られるピントマップ３１０の例を図５に示す。デプスマップ３０８を距離値ｄ０、ｄ１、ｄ２からなる画像とし、仮想ピントパラメータ３０５から得られる仮想ピント距離をｄ２とする。この場合、デプスマップ３０８において距離値がｄ２となる画素の集合がピント内領域として設定され、距離値がｄ０、ｄ１となる画素の集合がピント外領域として設定される。
【００３８】
なお、本実施例ではステップＳ１１０１において、デプスマップ３０８における画素値Ｄ（ｉ，ｊ）が仮想ピント距離ｄと等しい領域をピント内領域としたが、ピント内領域の設定方法はこれに限るものではない。例えば、ｄ−α１≦Ｄ（ｉ，ｊ）≦ｄ＋α２を満たす画素Ｄ（ｉ，ｊ）をピント内領域としてもよい。この際、α１、α２の値は、仮想絞りパラメータ３０６に基づき、リフォーカス画像３１６における仮想的被写界深度を考慮し決定する。
【００３９】
＜ピント外領域画像処理＞
本実施例では、ピント内領域とピント外領域とで異なる画像処理を行うことを特徴とするので、以降それぞれの処理を説明する。まず、ここでは、図１３に示すフローチャートのステップＳ９０６で行うピント外領域画像処理の詳細について説明する。ピント外領域画像処理では、ピントマップ３１０においてピント外領域として設定された領域に重点を置いた処理を行い、ピント外領域画像３１４を生成する。以下、図１７に示すフローチャートおよび図４に示す処理部構成を参照し、ピント外領域画像処理の詳細を説明するが、一部の処理の詳細はさらに後述する。すなわち、本処理では以下に説明するように処理負荷を軽減するため、対象画像を縮小し、補間処理を行って合成し、処理すべきデータ量を削減するが、画像補間処理および画像合成処理の詳細は図１８および１９を参照して後述する。
【００４０】
ステップＳ１３０１で、画像縮小処理部４０１は、撮像画像３０２に対して画像縮小処理を行い、縮小画像４０５を生成する。なお、画像縮小処理には、例えばバイリニア法やバイキュービック法などの公知の方法を用いればよい。縮小画像の解像度は、撮像画像３０２の解像度以下であれば、撮像装置全体、被写体、撮像環境等に合わせて任意に定めることができる。例えば、縮小画像の解像度は、撮像装置情報３０３、仮想ピントパラメータおよび仮想絞りパラメータ３０６から得られるピント外領域のぼけの大きさに応じて決定するようにしてもよい。あるいは、パラメータ入力部３０４から予め決められた解像度を取得するようにしてもよい。
【００４１】
ステップＳ１３０２で、画像補間処理部４０２は、縮小画像４０５から画像補間処理を行い、補間画像４０６を生成する。画像補間処理の詳細については図１８を参照して後述する。ステップＳ１３０３で、画像合成処理部４０３は、縮小画像４０５、補間画像４０６、ピントマップ３１０、仮想ピントパラメータ３０５および仮想絞りパラメータ３０６から画像合成処理を行い、合成画像（ピント外領域）４０７を生成する。画像合成処理の詳細については図１９を参照して後述する。
【００４２】
ステップＳ１３０４で、画像拡大処理部４０４は、前のステップで生成した合成画像（ピント外領域）４０７に対して、リフォーカス画像の解像度３１９へと画像拡大処理を行い、ピント外領域画像４０８を生成して処理を終了する。なお、画像拡大処理には、例えばバイリニア法やバイキュービック法などの公知の方法を用いればよい。
【００４３】
＜画像補間処理＞
ここで、図１７のステップＳ１３０２で行う画像補間処理の詳細について、図１８を参照して説明する。画像補間処理では、まず、撮像装置情報３０３に基づいて撮像画像３０２の撮像位置を内挿するように仮想視点位置４０９を設定する。次に、視差補間処理を用いてＳ１３０１で得られた縮小画像４０５を基に、各仮想視点位置４０９に対応する補間画像４０６を生成する。以下、図１８に示すフローチャートおよび図４に示す処理部構成を参照して画像補間処理の詳細を説明する。
【００４４】
ステップＳ１４０１では、補間画像を生成する仮想視点位置４０９の設定を行う。撮像位置と仮想視点位置との関係を図７に示す。ｘ軸６０１、ｙ軸６０２、ｚ軸６０３は、それぞれ各カメラユニットの水平方向、垂直方向、光軸方向に対応し、カメラユニット２０５の撮像位置を原点として直交しているものとする。仮想視点位置４０９は、各撮像位置を内挿するように設定する。本実施例では、図７ないし９に示すように撮像位置を等間隔に内挿するよう格子状に仮想視点位置４０９を設定する。
【００４５】
ステップＳ１４０２では、縮小画像４０５の中から撮像位置が横方向に隣接する２つの画像を順に選択し、視差補間処理を用いて２画像間の仮想視点位置４０９に対応する補間画像４０６を生成する。図８に、ステップＳ１４０２で補間画像を生成する仮想視点位置を示す。視差補間処理には公知の方法、例えば２画像を用いて、ブロックマッチングにより算出した各画素の視差量を基に中間視点の画像を補間により生成することができる。あるいは、２画像から抽出した特徴点を対応付け、各特徴点の対応関係を基にモーフィング処理を行うことで中間視点の画像を生成してもよく、その他本技術分野で知られたいずれの方法を採用することもできる。
【００４６】
ステップＳ１４０３では、縮小画像４０５、およびステップＳ１４０２で生成した補間画像４０６の中から撮像位置が縦方向に隣接する画像のペアを順に選択し、視差補間処理を用いて２画像間の仮想視点位置４０９に対応する補間画像を生成する。図９にステップＳ１４０３で補間画像を生成する仮想視点位置を示す。視差補間処理には、ステップＳ１４０２と同様の手法が適用可能である。ステップＳ１４０４では、ステップＳ１４０２およびステップＳ１４０３で生成した補間画像４０６を出力する。
【００４７】
＜画像合成処理＞
次に、図１７に示すステップＳ１３０３で行う画像合成処理について説明する。画像合成処理では、まず仮想絞りパラメータ３０６を基に、各画像に対する重み係数を設定する。そして、撮像装置情報３０３および仮想視点位置４０９を基に、各画像をシフトし領域毎に異なる重み係数を用いて重み付け加算を行い、合成画像（ピント外領域）４０７を生成する。以下、図１９に示すフローチャートおよび図４に示す処理部構成を参照し、画像合成処理の詳細を説明する。
【００４８】
ステップＳ１５０１において、ステップＳ９０２で取得した仮想絞りパラメータ３０６を基に、画像を合成する際に用いる重み係数を設定する。まず図１０および１１を参照して画像合成時の重み係数について説明する。仮想絞りパラメータ３０６は、撮影位置および仮想視点位置４０９において得られる画像に対する係数のセットである。以下、図１０に示すように各撮影位置および仮想視点位置４０９をそれぞれＰ０〜Ｐ２４と表し、位置Ｐm（ｍ＝０〜２４）において得られる画像をＩmとする。このとき、Ｉmに対応する重み係数の値Ａ（ｍ）は、仮想絞りパラメータ３０６から、例えば図１１に示すように設定することができる。ここでは、Ｐ12を中心としてガウス関数に従うよう重み係数を設定し、重み係数の和が１になるよう正規化している。こうすることにより、ピント外領域を滑らかにぼかすことができる。
【００４９】
ステップＳ１５０２において、撮像装置情報３０３および仮想視点位置４０９を基に、各画像のシフト量を算出する。ピント距離をｄとした際の画像Ｉmの水平方向のシフト量△ｉ（ｍ、ｄ）および垂直方向のシフト量△ｊ（ｍ、ｄ）は以下の式で表される。
【００５０】
【数２】
0005822613.tif 000003
【００５１】
ここで、Ｗ、Ｈはそれぞれ画像の水平方向、垂直方向の画像サイズ、θｗはカメラユニットの水平画角、θｈはカメラユニットの垂直画角、（ｓm，ｔm）はｘｙ平面上におけるＰmの座標である。また、（ｓ’，ｔ’）はｘｙ平面上におけるカメラユニット２０５の撮像位置Ｐ12の座標である。
【００５２】
ステップＳ１５０３において、ステップＳ１５０２で求めたシフト量、ステップＳ１５０１で求めた重み係数を用いて、縮小画像４０５および補間画像４０６に対して重み付け加算処理を行うことにより合成画像（ピント外領域）４０７を生成する。合成画像（ピント外領域）４０７をＨとしたとき、合成処理は以下の式で表される。
【００５３】
【数３】
0005822613.tif 000004
【００５４】
ステップＳ１５０４において、前のステップで生成した合成画像（ピント外領域）４０７を出力する。
【００５５】
＜ピント内領域画像処理＞
ここでは、ステップＳ９０５で行うピント内領域画像処理について説明する。ピント内領域画像処理では、ピントマップ３１０においてピント内領域として設定された領域に重点を置いた処理を行い、ピント内領域画像３１２を生成する。ピント内領域画像処理の詳細について、図１６に示すフローチャートを参照して説明する。
【００５６】
ステップＳ１２０１では、図１９のフローチャートで説明した画像合成処理と同様の処理を行う。ただし、図１９の説明では、ｍ＝０〜２４であったのに対し、ここでは、ｍは撮像位置のみの値として処理を実行する。つまり、ｍ＝０、２、４、１０、１２、１４、２０、２２、２４となる。また、縮小画像４０５の代わりに撮像画像３０２を使用し、補間画像４０６は使用しない。よって、位置Ｐmは撮像位置のみとなり、画像Ｉmは撮像画像３０２のみとなる。さらに、重み係数Ａ（ｍ）についても、撮像位置にあたる係数に対して再正規化を行い、これを使用する。以上の条件の下で画像合成処理を行うことで、合成画像（ピント内領域）を生成する。
【００５７】
ステップＳ１２０２では、合成画像（ピント内領域）に対して公知の高解像度化処理を行い、ピント内領域画像３１２を生成する。例えば、シャープネス処理により、ピント内領域の先鋭度を向上させる。なお、高解像度化処理はこれに限るものではなく、画像合成処理において算出されたシフト量をもとに超解像処理を行ってもよい。本実施例に適用可能な超解像処理としては、ＭＡＰ  （  Ｍａｘｉｍｕｍ  Ａ  Ｐｏｓｔｅｒｉｏｒ  ）  推定に基づく方法などがある。ＭＡＰ法は、二乗誤差に高解像度画像の確率情報を付加した評価関数を最小化するような高解像度画像を推定する方法である。すなわち、高解像度画像に対するある先見情報と画像間の位置ずれを表すパラメータとを利用して、事後確率を最大化する最適化問題として高解像度画像の推定を行う。その他、本技術分野で知られた種々の方法でピント内領域画像３１２を得ることができる。
【００５８】
＜画像ブレンド処理＞
次に、ステップＳ９０７で行う画像ブレンド処理について説明する。画像ブレンド処理では、ピントマップ３１０に基づき、ピント内領域画像３１２とピント外領域画像３１４とをブレンド処理することで、リフォーカス画像３１６を生成する。以下、図２０に示すフローチャートおよび図３の構成を参照し、画像ブレンド処理の詳細を説明する。
【００５９】
ステップＳ１６０１では、ブレンド処理を行う対象画素のインデックスを初期値に設定する。ステップＳ１６０２では、全ての画素に対してブレンド処理が終了したかどうかを判定する。もし、終了していればステップＳ１６０６へ進みんでリフォーカス画像を出力して本処理は終了し、終了していなければステップＳ１６０３へ進む。
【００６０】
ステップＳ１６０３では、ピント内領域画像３１２の画素値と、ピント外領域画像３１４の画素値とをブレンド処理するためのブレンド比率を決定する。ピントマップにおいて処理対象画素に対応する画素を参照し、その画素がピント内領域と設定されていればブレンド比率ｒbを１．０に設定し、ピント外領域と設定されていればブレンド比率ｒbを０．０に設定する。ステップＳ１６０４では、次式に従い画素値のブレンド処理を実行する。
【００６１】
【数４】
0005822613.tif 000005
【００６２】
ここで、Ｒ（ｉ，ｊ）はブレンド処理により生成されるリフォーカス画像の画素値、Ｉinはピント内領域画像３１２の画素値、Ｉoutはピント外領域画像３１４の画素値である。ステップＳ１６０５では、処理対象画素のインデックスを１つ進める。ステップＳ１６０６では、ブレンド処理により生成されたリフォーカス画像を出力する。
【００６３】
以上説明したように、本実施例では、ピント内領域とピント外領域とで処理を切り替え、ピント内領域に対しては高解像度化処理を行い、ピント外領域に対しては縮小された合成画像を生成してから拡大処理を行う。これにより、ピント内領域の画質を向上させつつ、画像合成処理に必要な補間画像の生成にかかる計算コストを抑えることが可能となる。
【００６４】
なお、本実施例では、画像ブレンド処理において、ピント内領域画像３１２あるいはピント外領域画像３１４のどちらかの画素値が採用されるような処理について説明したが、これに限るものではない。これに加え、領域の境界を目立たなくするために次のような処理を加えることも可能である。図６に示すように、ピントマップに対して、ピント領域を拡張した拡張ピント内領域を設定する。これは、例えば、ピント内領域のエッジからｒ画素広げた領域である。なお、拡張ピント内領域の大きさや形状に関しては、これに限るものではなく、ピント内領域を取り囲む領域であればどのように設定しても構わない。
【００６５】
次に、画像ブレンド処理においてブレンド比率を決定する際に、この拡張ピント内領域に関しては、図２１に示すように、ピント内領域からの距離に応じてブレンド比率ｒbを例えば線形に変化するように決定する。つまりピント内領域から離れるほど、ブレンド時のピント内領域画像３１２の寄与率が小さくなる。このように決定したブレンド比率を基に画像ブレンド処理を行うことによって、図６に示すようにピント内領域とピント外領域の境界を目立たなくすることができる。
【００６６】
［実施例２］
実施例１では、ピント外領域処理において生成する合成画像（ピント外領域）の解像度は１つとして処理した。本実施例では、これを複数設定してピント外領域画像を複数保持し、画像ブレンド処理の際に、デプスマップから得られる距離情報等に応じて、使用する画像を切り替える処理を行う。これにより、画像合成処理に必要な補間画像の生成にかかる計算コストをより小さくすることができる。
【００６７】
本実施例では、全体の処理のうち実施例１で既に説明した処理とは異なる、ピント外領域画像処理および画像ブレンド処理に関して詳細に説明する。それ以外の処理に関しては、実施例１と同様であるため説明は省略する。
【００６８】
＜ピント外領域画像処理＞
本実施例におけるピント外領域画像処理の詳細を図２２のフローチャートを参照して説明する。図１７で説明した実施例１のピント外領域画像処理と同内容の処理に関しては同じ図番号を付与し説明は省略する。
【００６９】
ステップＳ１７０１では、合成画像（ピント外領域）の解像度となる複数の縮小解像度Ｓn（nは１以上）を設定する。例えば、縦横それぞれの解像度が、撮像画像３０２の解像度の１／２、１／４、１／８・・・となるようにｎ個設定すればよい。あるいは、デプスマップ３０８、仮想ピントパラメータ３０５および仮想絞りパラメータ３０６から、シーン中の各被写体距離におけるボケの大きさを推定して、これに応じて複数の解像度を設定するようにしてもよい。
【００７０】
図２３では、デプスマップ３０８が、ｄ１、ｄ２、ｄ３、ｄ４（ｄ１＞ｄ２＞ｄ３＞ｄ４）という４つの距離値で構成されており、ｄ４がピント内領域となる距離である場合を示している。この場合、ｄ１、ｄ２、ｄ３に対応した３つの縮小解像度をそれぞれ、Ｓ1、Ｓ2、Ｓ3（Ｓ1＜Ｓ2＜Ｓ3）と設定する。
【００７１】
ステップＳ１７０２では、処理対象となる縮小解像度を初期値に設定する。ステップＳ１７０３では、ステップＳ１７０１で設定した複数の縮小解像度Ｓnに対して、処理が終了したかどうかを判定する。処理が終了していればステップＳ１７０５へ進み、ピント外領域画像を出力して処理を終了し、そうでなければステップＳ１３０１へと進んで、未処理の解像度について処理する。
【００７２】
ステップＳ１３０２およびＳ１３０３では実施例と同様の処理を行ない、ステップＳ１７０４では、縮小解像度を処理の終わっていない別の解像度へと更新する。ステップＳ１７０５では、ここまでのステップで生成された複数枚の合成画像（ピント外領域）４０７をピント外領域画像４０８として出力する。
【００７３】
＜画像ブレンド処理＞
本実施例における画像ブレンド処理は、ピント内領域画像３１２、解像度の異なる複数のピント外領域画像３１４およびデプスマップ３０８を用いて行われる。図２４のフローチャートおよび図２３のブレンド処理の概要を参照して、本実施例における画像ブレンド処理の詳細を説明する。ステップＳ１９０１で、ブレンド処理を行う対象画素のインデックスを初期値に設定する。
【００７４】
ステップＳ１９０２で、全ての画素に対してブレンド処理が終了したかどうかを判定する。もし、終了していればステップＳ１９０７へ進みリフォーカス画像を出力して終了し、終了していなければステップＳ１９０３へ進む。ステップＳ１９０３では、図２３に示すデプスマップ３０８を参照し、処理対象画素の画素位置に対応する距離値を取得する。
【００７５】
ステップＳ１９０４では、ステップＳ１９０３で取得した距離値に対応するピント外領域画像を選択する。例えば、図２３において、取得した距離値がｄ１であった場合には、解像度Ｓ1の画像が選択され、距離値がｄ２であった場合には、解像度Ｓ2の画像が選択されることになる。
【００７６】
ステップＳ１９０５では、ステップＳ１９０４で選択したピント外領域画像において、処理対象画素の画素位置に対応する画素値を公知の画素補間処理（例えばバイキュービック法）により取得する。ステップＳ１９０６では、処理対象画素のインデックスを１つ進める。ステップＳ１９０７では、ブレンド処理により生成されたリフォーカス画像を出力する。
【００７７】
以上の処理により、解像度の異なるピント外領域画像を複数保持し、画像ブレンド処理の際に、デプスマップから得られる距離情報等に応じて、ブレンド処理することで、画像合成処理に必要な補間画像の生成にかかる計算コストをより小さくすることができる。
【００７８】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。すなわち、上述した実施例の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。また、本発明は、複数のプロセッサが連携して処理を行うことによっても実現できるものである。
【図１】
0005822613.tif 000006
【図２】
0005822613.tif 000007
【図３】
0005822613.tif 000008
【図４】
0005822613.tif 000009
【図５】
0005822613.tif 000010
【図６】
0005822613.tif 000011
【図７】
0005822613.tif 000012
【図８】
0005822613.tif 000013
【図９】
0005822613.tif 000014
【図１０】
0005822613.tif 000015
【図１１】
0005822613.tif 000016
【図１２】
0005822613.tif 000017
【図１３】
0005822613.tif 000018
【図１４】
0005822613.tif 000019
【図１５】
0005822613.tif 000020
【図１６】
0005822613.tif 000021
【図１７】
0005822613.tif 000022
【図１８】
0005822613.tif 000023
【図１９】
0005822613.tif 000024
【図２０】
0005822613.tif 000025
【図２１】
0005822613.tif 000026
【図２２】
0005822613.tif 000027
【図２３】
0005822613.tif 000028
【図２４】
0005822613.tif 000029