(57)【特許請求の範囲】
【請求項１】
第１の視差画像、第２の視差画像、および、該第１の視差画像と該第２の視差画像との合算画像を取得する画像取得手段と、
前記第１の視差画像または前記第２の視差画像を用いて動きベクトルを算出する動きベクトル算出手段と、
前記動きベクトルに基づいて前記合算画像の位置合わせを行う位置合わせ手段と、
位置合わせ後の前記合算画像を合成する画像合成手段と、を有し、
前記動きベクトル算出手段は、
第１の領域において、前記合算画像を用いて前記動きベクトルを算出し、
第２の領域において、前記第１の視差画像または前記第２の視差画像を用いて前記動きベクトルを算出することを特徴とする画像処理装置。
【請求項２】
前記動きベクトル算出手段は、前記第１の視差画像または前記第２の視差画像として、第１の時刻に撮影された第１の画像と該第１の時刻とは異なる第２の時刻に撮影された第２の画像とを用いて、前記動きベクトルを算出し、
前記画像取得手段は、前記合算画像として、
前記第１の時刻に撮影された前記第１の視差画像と前記第２の視差画像とを合算して第１の合算画像を生成し、
前記第２の時刻に撮影された前記第１の視差画像と前記第２の視差画像とを合算して第２の合算画像を生成し、
前記位置合わせ手段は、前記第１の合算画像と前記第２の合算画像との関係を修正するように前記位置合わせを行い、
前記画像合成手段は、位置合わせ後の前記第１の合算画像と前記第２の合算画像とを合成する、ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記画像取得手段は、
前記第１の視差画像と前記合算画像とを取得し、
前記合算画像から前記第１の視差画像を減算することにより前記第２の視差画像を取得する、ことを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記第１の領域は、合焦領域であり、
前記第２の領域は、非合焦領域であることを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記合算画像に対して所定の周波数帯域の領域を抽出するフィルタを適用するフィルタ処理手段を更に有し、
前記第１の領域は、前記所定の周波数帯域の前記領域を含み、
前記第２の領域は、前記所定の周波数帯域の前記領域を含まない、ことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項６】
前記合算画像に対してローパスフィルタを適用するフィルタ処理手段を更に有し、
前記ローパスフィルタは、前記合算画像から、第１の周波数帯域よりも低い周波数帯域の領域を抽出し、
前記第１の領域は、前記周波数帯域の前記領域を含まず、
前記第２の領域は、前記周波数帯域の前記領域を含む、ことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項７】
前記第１の視差画像と第２の視差画像との間の第１の視差量を算出する視差量算出手段を更に有し、
前記視差量算出手段は、前記第１の視差量を用いて、前記第１の視差画像または前記第２の視差画像と前記合算画像との間の第２の視差量を算出し、
前記動きベクトル算出手段は、前記第２の視差量を用いて、前記合算画像の動きベクトルを算出することを特徴とする請求項１乃至６のいずれか１項に記載の画像処理装置。
【請求項８】
前記動きベクトル算出手段は、輝度に応じて選択された第１の視差画像または第２の視差画像を用いて前記動きベクトルを算出することを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記動きベクトル算出手段は、画像領域ごとに、前記輝度に応じて選択された前記第１の視差画像または前記第２の視差画像を用いて前記動きベクトルを算出することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
人物領域を検出する人物検出手段を更に有し、
前記動きベクトル算出手段は、前記人物領域に関して、前記動きベクトルを算出しないことを特徴とする請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
撮像光学系を介して形成された光学像を光電変換して画像データを出力する撮像素子と、
前記画像データに基づいて、第１の視差画像、第２の視差画像、および、該第１の視差画像と該第２の視差画像との合算画像を取得する画像取得手段と、
前記第１の視差画像または前記第２の視差画像を用いて動きベクトルを算出する動きベクトル算出手段と、
前記動きベクトルに基づいて前記合算画像の位置合わせを行う位置合わせ手段と、
位置合わせ後の前記合算画像を合成する画像合成手段と、を有し、
前記動きベクトル算出手段は、
第１の領域において、前記合算画像を用いて前記動きベクトルを算出し、
第２の領域において、前記第１の視差画像または前記第２の視差画像を用いて前記動きベクトルを算出することを特徴とする撮像装置。
【請求項１２】
前記撮像素子は、１つのマイクロレンズに関して第１の光電変換部および第２の光電変換部を有し、該マイクロレンズが２次元状に配列されている、ことを特徴とする請求項１１に記載の撮像装置。
【請求項１３】
前記第１の光電変換部は、前記撮像光学系の第１の瞳部分領域を通過する光束を受光し、
前記第２の光電変換部は、前記撮像光学系の第２の瞳部分領域を通過する光束を受光し、
前記第１の視差画像は、前記第１の光電変換部からの画像データに基づいて取得され、
前記第２の視差画像は、前記第２の光電変換部からの画像データに基づいて取得される、ことを特徴とする請求項１２に記載の撮像装置。
【請求項１４】
第１の視差画像、第２の視差画像、および、該第１の視差画像と該第２の視差画像との合算画像を取得するステップと、
前記第１の視差画像または前記第２の視差画像を用いて動きベクトルを算出するステップと、
前記動きベクトルに基づいて前記合算画像の位置合わせを行うステップと、
位置合わせ後の前記合算画像を合成するステップと、を有し、
前記動きベクトルを算出するステップでは、
第１の領域において、前記合算画像を用いて前記動きベクトルが算出され、
第２の領域において、前記第１の視差画像または前記第２の視差画像を用いて前記動きベクトルが算出されることを特徴とする画像処理方法。
【請求項１５】
第１の視差画像、第２の視差画像、および、該第１の視差画像と該第２の視差画像との合算画像を取得するステップと、
前記第１の視差画像または前記第２の視差画像を用いて動きベクトルを算出するステップと、
前記動きベクトルに基づいて前記合算画像の位置合わせを行うステップと、
位置合わせ後の前記合算画像を合成するステップと、をコンピュータに実行させ、
前記動きベクトルを算出するステップでは、
第１の領域において、前記合算画像を用いて前記動きベクトルが算出され、
第２の領域において、前記第１の視差画像または前記第２の視差画像を用いて前記動きベクトルが算出されることを特徴とするプログラム。
【請求項１６】
請求項１５に記載のプログラムを記憶していることを特徴とするコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像装置の動きに起因して生じる画像間の構図のずれを補正する技術に関する。
【背景技術】
【０００２】
従来から、手ぶれなどに起因する撮像装置の動きによる画像の構図のずれを低減するため、電子式手ぶれ補正を行う撮像装置が知られている。電子式手ぶれ補正では、手ぶれが生じない程度の短い露光時間で撮影を繰り返し、撮影された複数の画像の位置を合わせながら合成することにより、画像ごとの構図のずれを補正しつつ露出の不足を補間する。
【０００３】
電子式手ぶれ補正では、人物を基準として構図のずれを補正しようとすると、人物の手足の動きに影響されるため、基準となる人物を高精度に検出することが困難である。そこで、人物の領域を避けて背景を用いて動きベクトルを算出する方法が考えられるが、絞りを開いて被写界深度を浅く設定すると、背景はボケてしまい、動きベクトルを高精度に算出することができない。
【０００４】
特許文献１には、人物の顔領域の重み付けを大きくして動きベクトルを求めることにより、手足の動きの影響を受けにくい動きベクトルの算出方法が開示されている。特許文献２には、複数の画素うちの一部の画素のみで構成した画像（瞳分割画像）を用いて動きベクトルを算出する撮像装置が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−８１６８２号公報
【特許文献２】特開２０１３−１７５８９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示された動きベクトルの算出方法では、２つの撮影画像間において人物が首をひねって顔が傾くと、顔の傾きに影響されて顔以外の領域が傾いた画像になる。このため、背景にビルなどがある場合、画像が不自然に感じる。
【０００７】
また、特許文献２の撮像装置は、複数の画素の全ての出力信号を用いた全開口画像よりも被写界深度の深い瞳分割画像を用いて動きベクトルを高精度に算出することができる。しかし、瞳を分割することによって入射光量も減るため、ノイズが多くなる。このため、ノイズの影響が大きい低輝度部では、動きベクトルの算出精度が低下する。
【０００８】
そこで本発明は、撮像装置の動きに起因して生じる画像間の構図のずれを高精度に補正可能な画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体を提供する。
【課題を解決するための手段】
【０００９】
本発明の一側面としての画像処理装置は、第１の視差画像、第２の視差画像、および、該第１の視差画像と該第２の視差画像との合算画像を取得する画像取得手段と、前記第１の視差画像または前記第２の視差画像を用いて動きベクトルを算出する動きベクトル算出手段と、前記動きベクトルに基づいて前記合算画像の位置合わせを行う位置合わせ手段と、位置合わせ後の前記合算画像を合成する画像合成手段とを有し、前記動きベクトル算出手段は、第１の領域において、前記合算画像を用いて前記動きベクトルを算出し、第２の領域において、前記第１の視差画像または前記第２の視差画像を用いて前記動きベクトルを算出する。
【００１０】
本発明の他の側面としての撮像装置は、撮像光学系を介して形成された光学像を光電変換して画像データを出力する撮像素子と、前記画像データに基づいて、第１の視差画像、第２の視差画像、および、該第１の視差画像と該第２の視差画像との合算画像を取得する画像取得手段と、前記第１の視差画像または前記第２の視差画像を用いて動きベクトルを算出する動きベクトル算出手段と、前記動きベクトルに基づいて前記合算画像の位置合わせを行う位置合わせ手段と、位置合わせ後の前記合算画像を合成する画像合成手段とを有し、前記動きベクトル算出手段は、第１の領域において、前記合算画像を用いて前記動きベクトルを算出し、第２の領域において、前記第１の視差画像または前記第２の視差画像を用いて前記動きベクトルを算出する。
【００１１】
本発明の他の側面としての画像処理方法は、第１の視差画像、第２の視差画像、および、該第１の視差画像と該第２の視差画像との合算画像を取得するステップと、前記第１の視差画像または前記第２の視差画像を用いて動きベクトルを算出するステップと、前記動きベクトルに基づいて前記合算画像の位置合わせを行うステップと、位置合わせ後の前記合算画像を合成するステップとを有し、前記動きベクトルを算出するステップでは、第１の領域において、前記合算画像を用いて前記動きベクトルが算出され、第２の領域において、前記第１の視差画像または前記第２の視差画像を用いて前記動きベクトルが算出される。
【００１２】
本発明の他の側面としてのプログラムは、第１の視差画像、第２の視差画像、および、該第１の視差画像と該第２の視差画像との合算画像を取得するステップと、前記第１の視差画像または前記第２の視差画像を用いて動きベクトルを算出するステップと、前記動きベクトルに基づいて前記合算画像の位置合わせを行うステップと、位置合わせ後の前記合算画像を合成するステップと、をコンピュータに実行させ、前記動きベクトルを算出するステップでは、第１の領域において、前記合算画像を用いて前記動きベクトルが算出され、第２の領域において、前記第１の視差画像または前記第２の視差画像を用いて前記動きベクトルが算出される。
【００１３】
本発明の他の側面としての記憶媒体は、前記プログラムを記憶している。
【００１４】
本発明の他の目的及び特徴は、以下の実施形態において説明される。
【発明の効果】
【００１５】
本発明によれば、撮像装置の動きに起因して生じる画像間の構図のずれを高精度に補正可能な画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】各実施形態における撮像装置のブロック図である。
【図２】各実施形態における撮像部の画素配列図である。
【図３】各実施形態における撮像部の像高の説明図である。
【図４】各実施形態における瞳分割の概念の説明図である。
【図５】各実施形態における撮像面の中央近傍での瞳分割画素の瞳強度分布の説明図である。
【図６】各実施形態における周辺像高での瞳分割の概念および瞳強度分布の説明図である。
【図７】各実施形態における周辺像高での瞳分割画像の明るさの説明図である。
【図８】第１の実施形態における画像処理部のブロック図である。
【図９】第１の実施形態における画像処理方法のフローチャートである。
【図１０】各実施形態における瞳分割画像の説明図である。
【図１１】各実施形態における全開口画像の説明図である。
【図１２】各実施形態におけるシェーディング補正に用いられるゲインの説明図である。
【図１３】各実施形態における動きベクトル算出の際の明るさ閾値およびゲイン閾値の説明図である。
【図１４】第２の実施形態における画像処理部のブロック図である。
【図１５】第２の実施形態における画像処理方法のフローチャートである。
【発明を実施するための形態】
【００１７】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
【００１８】
（第１の実施形態）
まず、図１を参照して、本発明の第１の実施形態における撮像装置について説明する。図１は、本実施形態における撮像装置１００（デジタルカメラ）のブロック図である。なお本実施形態は、デジタルカメラの動き（手ぶれ）に起因して生じる撮影画像の構図のずれを補正可能な画像処理装置について説明するが、これに限定されるものではない。
【００１９】
撮像装置１００において、システム制御部１０１は、例えばＣＰＵなどのプロセッサである。システム制御部１０１は、撮像装置１００の各ブロック（各部）の動作プログラムをＲＯＭ１０２から読み出し、ＲＡＭ１０３に展開して実行することにより、撮像装置１００の各ブロックの動作を制御する。ＲＯＭ１０２は、書き換え可能な不揮発性メモリであり、撮像装置１００の各ブロックの動作プログラムに加え、各ブロックの動作に必要なパラメータなどを記憶する。またＲＯＭ１０２は、焦点検出などで必要なレンズ情報である射出瞳距離を記憶している。ＲＡＭ１０３は、書き換え可能な揮発性メモリであり、撮像装置１００の各ブロックの動作において出力されたデータの一時的な記憶領域として用いられる。
【００２０】
光学系１０４（撮像光学系）は、被写体像を撮像部１０５に結像（形成）する。光学系１０４は絞りを含む。絞りの開口径を調節することにより、撮影時の光量調節を行うことができる。撮像部１０５は、ＣＣＤやＣＭＯＳセンサなどの撮像素子である。撮像部１０５は、光学系１０４を介して形成（結像）された光学像（被写体像）を光電変換して、画像データ（アナログ画像信号）をＡ／Ｄ変換部１０６に出力する。Ａ／Ｄ変換部１０６は、撮像部１０５から出力されたアナログ画像信号に対してＡ／Ｄ変換処理を行い、デジタル画像信号を出力する。ＲＡＭ１０３は、Ａ／Ｄ変換部１０６から出力されたデジタル画像信号を記憶する。
【００２１】
画像処理部１０７（画像処理装置）は、ＲＡＭ１０３に記憶されている画像データ（デジタル画像データ）に対して画像処理を行う。記録媒体１０８は、着脱可能なメモリカードなどである。記録媒体１０８は、ＲＡＭ１０３に記憶されている画像（Ａ／Ｄ変換部１０６によりＡ／Ｄ変換された画像や、画像処理部１０７で処理された画像など）を、記録画像として記録する。バス１０９は、各ブロック（各部）の間で信号のやり取りを行うために用いられる。
【００２２】
次に、図２を参照して、撮像部１０５（撮像素子）の画素配列について説明する。図２（ａ）は撮像部１０５の画素配列図であり、図２（ｂ）は画素２００の拡大図である。図２（ｂ）に示されるように、画素２００は、マイクロレンズ２０１と一対の光電変換部（瞳分割画素２０３Ａ、２０４Ｂ）とを備えて構成されている。図２（ａ）に示されるように、撮像部１０５は、複数の画素２００が二次元状に規則的に配列されて構成されている。このように撮像部１０５は、１つのマイクロレンズ２０１に関して瞳分割画素２０３Ａ（第１の光電変換部）および瞳分割画素２０４Ｂ（第２の光電変換部）を有し、マイクロレンズ２０１が２次元状に配列されている。
【００２３】
次に、図３を参照して、撮像部１０５における像高について説明する。図３は、撮像部１０５における像高の説明図であり、撮像部１０５の全体像を示している。画素２００は、撮像面の中央近傍（図３中の領域３００）に配置された画素であるものとする。また撮像部１０５のいずれの画素もそれぞれ、瞳分割画素２０３Ａ、２０４Ｂ（一対の光電変換部）を有し、瞳分割画素２０３Ａ、２０４Ｂのそれぞれから独立に受光して得られた信号を出力可能である。
【００２４】
図２（ｂ）における右側の瞳分割画素２０３Ａから出力された信号をＡ（ｘ，ｙ）、左側の瞳分割画素２０４Ｂから出力された信号をＢ（ｘ，ｙ）とするとき、画素２００の全開口信号ｇ（ｘ，ｙ）は、以下の式（１）のように表される。
【００２５】
ｇ（ｘ，ｙ）＝Ａ（ｘ，ｙ）＋Ｂ（ｘ，ｙ）  …  （１）
以下、瞳分割画素２０３Ａから出力された信号Ａから形成される画像または瞳分割画素２０４Ｂから出力された信号Ｂから形成される画像を、それぞれ、瞳分割画像（第１の瞳分割画像、第２の瞳分割画像）という。瞳分割画像は、視差画像（第１の視差画像、第２の視差画像）ということもできる。また、全開口信号ｇから形成される画像を全開口画像（合算画像または加算画像）という。
【００２６】
次に、図４を参照して、画素２００による瞳分割の概念について説明する。図４は、瞳分割の概念の説明図であり、図２（ｂ）中の画素２００のＳ−Ｓ断面を＋ｙ側から見た断面図と光学系１０４の射出瞳面とをそれぞれ示している。図４においては、射出瞳面の座標軸と対応を取るため、断面図のｘ軸とｙ軸とを図２に対して反転させている。なお、図４において、図２と共通する部分については同一の符号で示している。
【００２７】
撮像部１０５は、光学系１０４の結像面の近傍に配置されている。被写体からの光束は、光学系１０４の射出瞳４００を通過し、それぞれの画素に入射する。射出瞳４００の大きさは、絞りの大きさや、レンズを保持するレンズ枠などの大きさに応じて変化する。
【００２８】
瞳部分領域４０１Ａ、４０２Ｂは、マイクロレンズ２０１により、２×１分割された瞳分割画素２０３Ａ、２０４Ｂの受光面と略共役関係になっている。従って、瞳部分領域４０１Ａ、４０２Ｂのそれぞれを通過した光束は、共役関係にある瞳分割画素２０３Ａ、２０４Ｂで受光される。すなわち、瞳分割画素２０３Ａ（第１の光電変換部）は、光学系１０４の瞳部分領域４０１Ａ（第１の瞳部分領域）を通過する光束を受光する。瞳分割画素２０４Ｂ（第２の光電変換部）は、光学系１０４の瞳部分領域４０２Ｂ（第２の瞳部分領域）を通過する光束を受光する。そして第１の視差画像は、第１の光電変換部からの画像データに基づいて取得され、第２の視差画像は、第２の光電変換部からの画像データに基づいて取得される。
【００２９】
光学系１０４の射出瞳４００は、瞳分割数をＮｐ＝Ｍ×Ｎとして、互いに異なる瞳部分領域にＮｐ分割される。光学系１０４の絞り値をＦとすると、瞳部分領域の実効絞り値は、Ｆ×√（Ｍ×Ｎ）となる。また、瞳領域４０３は、Ｍ×Ｎ分割された光電変換部を全て合わせた際の画素２００全体で受光可能な瞳領域（全開口領域）である。本実施形態では、瞳分割数Ｍ×Ｎは２×１である。このため、瞳部分領域の実効絞り値は、Ｆ×√２となる。すなわち、一つの瞳分割画像は、全開口画像と比較して、一段分被写界深度が深く、暗い画像となる。
【００３０】
次に、図５を参照して、撮像面の中央近傍の画素における瞳分割画素２０３Ａ、２０４Ｂの瞳強度分布について説明する。図５は、撮像面の中央近傍での瞳分割画素の瞳強度分布（ｘ軸断面における受光特性）の説明図である。図５の横軸は光学系１０４の射出瞳面における水平座標、縦軸は瞳分割画素の受光効率をそれぞれ示す。また、縦軸は絞りの透過率分布でもあるため、瞳分割画素の光束受光効率と見なすことができる。以下、光束受光効率の分布特性を瞳強度分布という。また、図５中に示される縦の点線は、射出瞳４００の幅を示している。
【００３１】
図４および図５に示されるように、撮像面の中央近傍の画素における瞳分割画素２０３Ａ、２０４Ｂが受光する光量は互いに略等しい。瞳分割画素２０３Ａの瞳強度分布５０１Ａに着目すると、＋ｘ側はセンサ（撮像素子）の瞳分割性能が十分でないことによる回折ボケのため、緩やかなカーブとなっている。一方、−ｘ側はレンズ枠のケラレにより急なカーブになる。このため、瞳強度分布５０１Ａは、強度のピークに対して非対称になっている。一方、瞳分割画素２０４Ｂの瞳強度分布５０２Ｂは、瞳分割画素２０３Ａの瞳強度分布５０１Ａと同様のことがいるが、瞳強度分布５０１Ａが左右反転した形状となっている。
【００３２】
次に、図６を参照して、図３中の領域３０１のような周辺像高における画素について説明する。図６は、周辺像高での瞳分割の概念の説明図および瞳強度分布の説明図である。図６（ａ）は周辺像高に配置された画素が有する瞳分割画素の投影像、および、図６（ｂ）は図６（ａ）の瞳強度分布をそれぞれ示している。
【００３３】
図６（ａ）に示されるように、周辺像高における画素に関して、瞳部分領域６０１Ａ、６０２Ｂおよび瞳領域６０３の構成は、図４と同様である。一方、射出瞳６００の形状は、口径食（ケラレ）に応じて変化する。その結果、シェーディングが発生する。このため、射出瞳６００の投影像の重心は、瞳部分領域６０１Ａの中心寄りになる（すなわち、瞳部分領域６０１Ａに近づく）。図６（ｂ）に示されるように、瞳部分領域６０１Ａの受光効率は、瞳部分領域６０２Ｂよりも高くなり、瞳部分領域６０１Ａのほうが明るい画像が得られる。反対の周辺像高の画素に関しては、前述と逆の現象が生じ、瞳部分領域６０２Ｂの受光効率のほうが瞳部分領域６０１Ａよりも高くなり、瞳部分領域６０２Ｂのほうが明るい画像が得られる。
【００３４】
次に、図７を参照して、周辺像高における瞳分割画素Ａ、Ｂの明るさについて説明する。図７は、周辺像高での瞳分割画像の明るさの説明図であり、縦軸は輝度（明るさ）、横軸はｘ軸（画素の位置）をそれぞれ示している。図７は、図３中の領域３０１と同じ像高において、像の明るさ（輝度）のｘ軸方向における変化を示す図であり、実線は瞳分割画素Ａを、点線は瞳分割画素Ｂをそれぞれ表している。図７に示されるように、−ｘ側では、瞳分割画素Ａのほうが瞳分割画素Ｂよりも明るい。このため、瞳分割画素Ａにより形成された画像は、瞳分割画素Ｂにより形成された画像と比較して、被写界深度が浅く、画像のノイズ量を表す指標であるＳ／Ｎ比が向上する。一方、＋ｘ側ではその逆となる。
【００３５】
次に、本実施形態における動きベクトルの算出方法について説明する。本実施形態の電子式手ぶれ補正における動きベクトルの算出方法では、ポートレート撮影などで背景がボケてしまうと動きベクトルの精度が低下するという課題を解決するため、全開口画像よりも被写界深度が深い瞳分割画像を用いて動きベクトルを算出する。被写界深度が深い瞳分割画像を用いることにより、より明瞭なエッジで動きベクトルを算出することが可能となり、動きベクトルの精度が向上する。また、前述のように、瞳分割画像は画像領域の位置（像高）に応じて明るさが変化する。そこで本実施形態では、ノイズによる動きベクトルの算出精度の低下を抑制するため、動きベクトルの算出に用いる瞳分割画像の明るさに制限を設けることが好ましい。このような構成により、撮像装置の動きに起因して生じる画像間の構図のずれを高精度に補正することを可能となる。
【００３６】
次に、図８乃至図１２を参照して、本実施形態における画像処理方法について説明する。図８は、画像処理部１０７（画像処理装置）のブロック図である。画像処理部１０７は、画像取得部８００、シェーディング補正部８０１、視差量算出部８０２、動きベクトル算出部８０３、動きベクトル変換部８０４、構図ずれ補正部８０５、および、合成画像生成部８０６を有する。図９は、画像処理方法のフローチャートである。図９の各ステップは、システム制御部１０１により実行された動作プログラムに従って、主に画像処理部１０７の各部により実行される。
【００３７】
まず、ステップＳ９００において、画像処理部１０７（画像取得部８００）は、時系列が異なる瞳分割画像を読み込む。図１０は、画像処理部１０７により読み込まれる画像の説明図である。図１０（ａ−１）は、時刻Ｔ（第１の時刻）に撮影された、水平方向（ｘ軸方向）に瞳を２分割した画素のうち瞳分割画素Ａから出力された画像（第１の瞳分割画像）を示し、人物１０００に合焦して撮影された画像である。図１０（ａ−１）の画像において、背景には家１００１が写っており、被写界深度が深い状態であるため、エッジが明瞭である。
【００３８】
図１０（ａ−２）は、時刻Ｔに撮影された、他方の瞳分割画素Ｂから出力された画像（第２の瞳分割画像）を示している。図１０（ａ−２）の画像において、人物１００２は、図１０（ａ−１）の画像中の人物１０００と同じ位置に写っている。一方、図１０（ａ−２）の背景１００３は、水平方向に視差を有するため、図１０（ａ−１）の家１００１と比較して、−ｘ軸方向にずれている。
【００３９】
図１０（ｂ−１）は、時刻Ｔ＋１（第２の時刻）に撮影された瞳分割画素Ａから出力された画像（第１の瞳分割画像）を示している。図１０（ｂ−１）の画像は、人物１００４に合焦している画像であるが、手ぶれの影響により、その構図が、図１０（ａ−１）と比較して−ｘ軸方向および−ｙ軸方向にそれぞれずれている。
【００４０】
図１０（ｂ−２）は、時刻Ｔ＋１に撮影された、他方の瞳分割画素Ｂから出力された画像（第２の瞳分割画像）を示している。図１０（ｂ−２）の画像は、図１０（ｂ−１）の画像と比較して、家１００７に視差を有するためずれが生じている。また図１０（ｂ−２）の画像は、手ぶれの影響により、図１０（ａ−２）の画像と比較して、その構図が−ｘ軸方向および−ｙ軸方向にそれぞれずれている。
【００４１】
なお本実施形態は、瞳の分割方向は水平方向に２分割であるとして説明しているが、これに限定されるものではない。本実施形態において、瞳の分割方向および分割数はそれぞれ任意である。また本実施形態は、時系列の連続する２組の画像を入力画像として説明しているが、これに限定されるものではなく、ノイズ抑制効果を高めるために更に多くの組数の画像を入力してもよい。また、時系列が異なる画像であれば、連続する画像でなくてもよい。
【００４２】
続いて、図９のステップＳ９０１において、画像処理部１０７（画像取得部８００）は、ステップＳ９００にて入力された瞳分割画像（第１の瞳分割画像および第２の瞳分割画像）を、式（１）で表されるように合算（加算）し、全開口画像（合算画像）を生成する。図１１は、全開口画像（合算画像）の説明図である。図１１（ａ）は、時刻Ｔにて撮影された第１の瞳分割画像と第２の瞳分割画像とを合算した画像（第１の合算画像）、すなわち図１０（ａ−１）の画像と図１０（ａ−２）の画像とを合算した画像を示す。図１１（ｂ）は、時刻Ｔ＋１にて撮影された第１の瞳分割画像と第２の瞳分割画像とを合算した画像（第２の合算画像）、すなわち図１０（ｂ−１）の画像と図１０（ｂ−２）の画像を合算した画像を示す。図１１（ａ）に示されるように、人物１１００は合焦位置の被写体であるため、第１の瞳分割画像と第２の瞳分割画像との間で視差はなく、これらの画像を合算（加算）してもボケは発生しない。一方、背景の家１１０１に関しては、第１の瞳分割画像と第２の瞳分割画像との間で視差を有するため、これらの画像を合算（加算）するとボケが生じる。図１１（ｂ）（時刻Ｔ＋１にて撮影された第１の瞳分割画像と第２の瞳分割画像との合算画像）に関しても、図１１（ａ）と同様である。
【００４３】
なお本実施形態において、画像取得部８００は、一対の瞳分割画像（第１の瞳分割画像および第２の瞳分割画像）を入力して、これらを合算（加算）して全開口画像（合算画像）を生成するが、これに限定されるものではない。画像取得部８００は、例えば、全開口画像と一方の瞳分割画像（第１の瞳分割画像）とを取得し、全開口画像から一方の瞳分割画像を減算することにより他方の瞳分割画像（第２の瞳分割画像）を取得（生成）するように構成してもよい。
【００４４】
続いて、図９のステップＳ９０２において、画像処理部１０７（シェーディング補正部８０１）は、第１の瞳分割画像および第２の瞳分割画像に発生しているシェーディングを補正する（シェーディング補正）。シェーディング補正は、各瞳分割画像に、対応するゲインを乗算することにより行われる。図１２は、シェーディング補正に用いられるゲインの説明図であり、縦軸はゲイン、横軸はｘ軸方向の画素位置をそれぞれ示している。図１２に示されるように、乗算するゲインの形状は、図７に示される輝度の逆数をとった形状に対応する。
【００４５】
続いて、ステップＳ９０３において、画像処理部１０７（視差量算出部８０２）は、第１の瞳分割画像と第２の瞳分割画像との間の視差量を算出する。視差量を算出する方法は、例えば特開２００８−１５７５４号公報に開示されているように、画像を小領域に分割した小ブロックごとに相関演算を行って視差量を算出する。すなわち、小ブロックにおける一対の画素データを、ｍをデータ数としてＥ（１）〜Ｅ（ｍ）およびＦ（１）〜Ｆ（ｍ）と一般化して表現する。そして、データ列Ｅ（１）〜Ｅ（ｍ）に対してデータ列Ｆ（１）〜Ｆ（ｍ）を相対的にずらしながら、以下の式（２）を用いて２つのデータ列間のずらし量ｋにおける相関量Ｃ（ｋ）を演算する。
【００４６】
Ｃ（ｋ）＝Σ｜Ｅ（ｎ）−Ｆ（ｎ＋ｋ）｜  …  （２）
式（２）において、Σ演算はｎについて行われる。Σ演算において、ｎ、ｎ＋ｋの取る範囲は１〜ｍの範囲に限定される。また、ずらし量ｋは整数であり、一対の画像データの検出ピッチを単位とした相対的シフト量である。式（２）の演算結果においては、一対のデータ列の相関が高いシフト量に対する相関量Ｃ（ｋ）が最小になる。
【００４７】
続いて、離散的な相関量Ｃ（ｋ）が最小となるｋをｋｊとすると、連続的な相関量に対する最小値Ｃ（ｘ）を与えるシフト量ｘは、以下の式（３）〜（５）のように算出される。
【００４８】
ｘ＝ｋｊ＋Ｄ／ＳＬＯＰ  …  （３）
Ｄ＝｛Ｃ（ｋｊ−１）−Ｃ（ｋｊ＋１）｝／２  …  （４）
ＳＬＯＰ＝ＭＡＸ｛Ｃ（ｋｊ＋１）−Ｃ（ｋｊ），Ｃ（ｋｊ−１）−Ｃ（ｋｊ）｝  …  （５）
式（３）により算出されたシフト量ｘを一対の瞳分割画像における視差量とする。本実施形態は、図１０（ａ−１）の瞳分割画像と図１０（ａ−２）の瞳分割画像とから（時刻Ｔにて撮影された複数の瞳分割画像から）視差量を算出するものとして説明するが、これに限定されるものではない。例えば、図１０（ｂ−１）の瞳分割画像と図１０（ｂ−２）の瞳分割画像とから（時刻Ｔ＋１にて撮影された複数の瞳分割画像から）視差量を算出するように構成してもよい。
【００４９】
続いて、図９のステップＳ９０４において、画像処理部１０７（動きベクトル算出部８０３）は、時系列の異なる視差画像間での動きベクトルを算出する。本実施形態では、図１０（ａ−１）の画像（時刻Ｔにて撮影された第１の瞳分割画像）を基準画像（第１の視差画像）とし、図１０（ｂ−１）の画像（時刻Ｔ＋１にて撮影された第１の瞳分割画像）を比較画像（第２の視差画像）として、動きベクトルを算出する。
【００５０】
動きベクトルの算出方法としては、例えば、以下のようなブロックマッチングが用いられる。まず、基準画像と比較画像とをそれぞれ小領域に分割し、基準画像の小領域を比較画像の小領域内で移動させながら相関値を小ブロックごとに求める。そして、相関値が最も小さい位置までの座標移動量をその領域の動きベクトルとする。相関値としては、例えば差分二乗和（ＳＳＤ）などが用いられる。また本実施形態において、小領域に分割する際に、ステップＳ９０３にて視差量を算出する際に分割した領域と同じになるように画像を分割する。
【００５１】
また、公知の顔検出および人体検出技術を用い、人物と検出された小領域（人物領域）においては動きベクトルを算出しないように構成してもよい。この場合、画像処理部１０７は人物領域を検出する人物検出手段を有する。そして動きベクトル算出部８０３は、人物領域に関して、動きベクトルを算出しない。これにより、人物の局所的な動きの影響を低減することができる。
【００５２】
本実施形態の動きベクトル算出方法では、ブロックマッチングの精度を高めるため、入力画像を全開口画像よりも被写界深度が深く、かつエッジが明瞭な瞳分割画像が用いられる。ただし瞳分割画像は、全開口画像と比較して、被写界深度が深いが、画像が暗くＳ／Ｎ比が劣化しているため、ブロックマッチングの精度に影響を与える可能性がある。このため本実施形態では、撮影する感度ごとに動きベクトルの算出に用いることができる画像の明るさに閾値を設けることが好ましい。
【００５３】
図１３は、動きベクトル算出の際の明るさ閾値およびゲイン閾値の説明図である。図１３（ａ）に示されるように、例えば、低輝度側に明るさ閾値Ｔ１を設ける。閾値Ｔ１未満の領域では、図１３（ｂ）に示されるようにゲイン量を低下させる（ゲイン閾値Ｔ２を設ける）ことにより、Ｓ／Ｎ比の劣化を低減することができる。また本実施形態では、明るさ閾値を設定する代わりに、明るいほうの瞳分割画像を用いて動きベクトルを算出するようにしてもよい。また、瞳分割数が２分割よりも多い場合、閾値以上の明るさになるように、瞳分割画像同士を合算してもよい。その際、視差ずれが抑制（低減）されるように、分割領域が互いに近い画像同士を優先して合算するように構成することが好ましい。このように動きベクトル算出部８０３は、輝度（明るさ）に応じて選択された第１の視差画像または第２の視差画像を用いて動きベクトルを算出することができる。好ましくは、動きベクトル算出部８０３は、画像領域ごとに、輝度に応じて選択された第１の視差画像または第２の視差画像を用いて動きベクトルを算出する。
【００５４】
また、ボケが生じていない合焦領域では、Ｓ／Ｎ比が向上することを考慮して、動きベクトルを算出する画像をステップＳ９０１にて算出した全開口画像（図１１（ａ）、図１１（ｂ）の画像）を用いて動きベクトルを算出するように構成してもよい。
【００５５】
このような構成により、瞳分割画像の明るさが像高領域に応じて変化するという特性により生じるＳ／Ｎ比の変化も考慮しつつ、全開口画像を用いて動きベクトルを算出するよりも、より高精度に動きベクトルを算出することができる。また、合焦面はボケが生じていないため、Ｓ／Ｎ比がよい全開口画像で動きベクトルを算出することにより、精度を更に向上させることができる。
【００５６】
続いて、図９のステップＳ９０５において、画像処理部１０７（動きベクトル変換部８０４）は、ステップＳ９０４にて小領域ごとに瞳分割画像を用いて算出した動きベクトルを、全開口画像用の動きベクトルに変換する。動きベクトルの変換方法は、例えば、第１の瞳分割画像の中心と第２の瞳分割画像の中心との差異の半分に相当する位置が全開口画像の中心であるという特徴を利用する。すなわち、ステップＳ９０３にて算出した視差量の半分だけ動きベクトルの開始座標を移動し、全開口画像における動きベクトルを算出する。なお、ステップＳ９０４にて合焦面領域に関して全開口画像を用いて動きベクトルを算出した場合、合焦面領域に関しては動きベクトルの変換を行わない。
【００５７】
なお、ステップＳ９０４、Ｓ９０５において、視差量算出部８０２（視差量算出手段）は、第１の視差画像と第２の視差画像との間の第１の視差量を算出し、第１の視差量を用いて第１または第２の視差画像と合算画像との間の第２の視差量を算出してもよい。このとき動きベクトル算出部８０３は、第２の視差量を用いて、合算画像の動きベクトルを算出する。
【００５８】
続いてステップＳ９０６において、画像処理部１０７（構図ずれ補正部８０５）は、全開口画像の位置合わせ、すなわち時刻Ｔにて撮影された全開口画像と時刻Ｔ＋１にて撮影された全開口画像との位置合わせを行う。まず構図ずれ補正部８０５は、ステップＳ９０５にて算出した各小領域における動きベクトルに基づいて、手ぶれに起因する撮像装置１００の動きを示す動きベクトルを選択し、射影変換のパラメータを算出する。手ぶれによる撮像装置１００の動きを示す動きベクトルを選択方法は、例えば、各小領域の動きベクトルのヒストグラムを作成し、最も数が多いベクトルを、手ぶれによって構図全体が動いた際の動きベクトルとして選択する。そして構図ずれ補正部８０５は、算出した射影変換パラメータに基づいて、図１１（ｂ）の全開口画像に対して射影変換を施し、図１１（ｂ）の画像を図１１（ａ）の画像と一致させる。なお、構図ずれの補正方法については、射影変換に限定されるものではない。また本実施形態では、構図ずれを補正する画像に対して一つの動きベクトルを算出しているが、小領域ごとに射影変換パラメータを算出し、構図ずれを補正するように構成してもよい。その場合、全ての小領域に関して動きベクトルが算出される。
【００５９】
続いてステップＳ９０７において、画像処理部１０７（合成画像生成部８０６）は、図１１（ａ）の全開口画像を基準として、ステップＳ９０６にて構図ずれを補正した全開口画像を合成して画像（手ぶれ補正画像）を出力する。
【００６０】
本実施形態によれば、手ぶれなどによる撮像装置の動きに起因して生じる画像間の構図のずれを高精度に補正することができる。
【００６１】
（第２の実施形態）
次に、本発明の第２の実施形態について説明する。第１の実施形態では、動きベクトル算出用の画像として、背景などの非合焦領域に関しては瞳分割画像を用い、合焦領域ではＳ／Ｎ比の向上を目的として全開口画像を用いている。一方、本実施形態では、全開口画像に対してバンドパスフィルタを適用し、合焦領域の周波数帯域を有する被写体の領域を抽出する。そして、抽出された領域において動きベクトルを算出する際には、全開口画像を用いる。このような構成により、全開口画像でボケている領域に限定して瞳分割画像を用いた動きベクトルの算出を行うことができ、Ｓ／Ｎ比の劣化による動きベクトルの算出精度の低下を抑制し、より高精度に構図ずれを補正することができる。
【００６２】
図１４および図１５を参照して、本実施形態における画像処理方法について説明する。図１４は、画像処理部１０７ａ（画像処理装置）のブロック図である。画像処理部１０７ａは、画像取得部８００、シェーディング補正部８０１、視差量算出部８０２、動きベクトル算出部８０３、動きベクトル変換部８０４、構図ずれ補正部８０５、合成画像生成部８０６、および、フィルタ処理部１４００を有する。本実施形態の画像処理部１０７ａは、フィルタ処理部１４００を有する点で、第１の実施形態の画像処理部１０７とは異なる。画像処理部１０７ａの他の構成は、画像処理部１０７と同様であるため、その説明については省略する。
【００６３】
図１５は、画像処理方法のフローチャートである。図１５の各ステップは、システム制御部１０１により実行された動作プログラムに従って、主に画像処理部１０７ａの各部により実行される。本実施形態の画像処理方法は、所定の周波数帯域の領域を抽出するステップ（ステップＳ１５０２）を有する点で、第１の実施形態の画像処理方法とは異なる。本実施形態における他のステップＳ１５００、Ｓ１５０１、Ｓ１５０３〜Ｓ１５０８は、第１の実施形態のステップＳ９００〜Ｓ９０７とそれぞれ同様であるため、それらの説明については省略する。
【００６４】
ステップＳ１５０２において、画像処理部１０７ａ（フィルタ処理部１４００）は、ステップＳ１５０１にて生成された全開口画像に対して、所定の周波数帯域を抽出するフィルタを適用し、その周波数帯域の領域を抽出する。本実施形態において、領域の抽出対象となる画像は、ステップＳ１５０８での画像合成の基準画像であることが好ましい。また、所定の周波数帯域とは、エッジが明瞭に判定可能な中高域である。このためフィルタ処理部１４００は、全開口画像に対して、中高域の領域を抽出可能なバンドパスフィルタを適用する。これにより、ボケが生じている低周波数の領域が除外され、エッジが明瞭な領域のみを抽出することができる。そしてステップＳ１５０５において、動きベクトル算出部８０３は、ステップＳ１５０２にて抽出された領域を含む小領域に関しては、全開口画像を用いて動きベクトルを算出する。一方、動きベクトル算出部８０３は、ステップＳ１５０２にて抽出された領域を含まない小領域に関しては、瞳分割画像を用いて動きベクトルを算出する。
【００６５】
なお本実施形態は、エッジが明瞭な中高域の周波数帯域を抽出するバンドパスフィルタを用いているが、これに限定されるものではない。例えば、低周波数の領域を抽出するローパスフィルタを全開口画像に適用し、ボケが生じている領域を抽出するように構成してもよい。このとき動きベクトル算出部８０３は、ステップＳ１５０５において、ステップＳ１５０２にて抽出されたボケ領域を含む小領域に関しては瞳分割画像を用いて動きベクトルを算出する。一方、それ以外の領域に関しては、動きベクトル算出部８０３は、全開口画像を用いて動きベクトルを算出する。
【００６６】
本実施形態によれば、手ぶれなどによる撮像装置の動きに起因して生じる画像間の構図のずれを、Ｓ／Ｎ比を考慮してより高精度に補正することができる。
【００６７】
各実施形態において、画像処理装置（画像処理部１０７、１０７ａ）は、画像取得手段（画像取得部８００）、動きベクトル算出手段（動きベクトル算出部８０３）、位置合わせ手段（構図ずれ補正部８０５）、画像合成手段（合成画像生成部８０６）を有する。画像取得手段は、第１の視差画像（第１の瞳分割画像）、第２の視差画像（第２の瞳分割画像）、および、第１の視差画像と第２の視差画像との合算画像（全開口画像）を取得する。動きベクトル算出手段は、第１の視差画像または第２の視差画像を用いて動きベクトルを算出する。位置合わせ手段は、動きベクトルに基づいて合算画像の位置合わせを行う。画像合成手段は、位置合わせ後の合算画像を合成する。
【００６８】
好ましくは、動きベクトル算出手段は、第１の視差画像または第２の視差画像として、第１の時刻（例えば時刻Ｔ１）に撮影された第１の画像と第１の時刻とは異なる第２の時刻（例えば時刻Ｔ＋１）に撮影された第２の画像とを用いて、動きベクトルを算出する。画像取得手段は、合算画像として、第１の時刻に撮影された第１の視差画像と第２の視差画像とを合算して第１の合算画像（例えば図１１（ａ）の画像）を生成する。また画像取得手段は、第２の時刻に撮影された第１の視差画像と第２の視差画像とを合算して第２の合算画像（例えば図１１（ｂ）の画像）を生成する。位置合わせ手段は、第１の合算画像と第２の合算画像との関係を修正するように位置合わせを行う。画像合成手段は、位置合わせ後の第１の合算画像と第２の合算画像とを合成する。
【００６９】
好ましくは、動きベクトル算出手段は、第１の領域において、合算画像を用いて動きベクトルを算出する。また動きベクトル算出手段は、第２の領域において、第１の視差画像または第２の視差画像を用いて動きベクトルを算出する。より好ましくは、第１の領域は合焦領域であり、第２の領域は非合焦領域である。また好ましくは、画像処理装置は、合算画像に対して所定の周波数帯域の領域を抽出するフィルタを適用するフィルタ処理手段（フィルタ処理部１４００）を有する。このとき、第１の領域は所定の周波数帯域の領域を含み、第２の領域は所定の周波数帯域の領域を含まない。また好ましくは、画像処理装置は、合算画像に対してローパスフィルタを適用するフィルタ処理手段（フィルタ処理部１４００）を有する。ローパスフィルタは、合算画像から、第１の周波数帯域よりも低い周波数帯域の領域を抽出する。このとき、第１の領域は前記周波数帯域の領域を含まず、第２の領域は前記周波数帯域の領域を含む。
【００７０】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７１】
各実施形態によれば、撮像装置の動きに起因して生じる画像間の構図のずれを高精度に補正可能な画像処理装置、撮像装置、画像処理方法、プログラム、および、記憶媒体を提供することができる。
【００７２】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【００７３】
１０７  画像処理部（画像処理装置）  
８００  画像取得部（画像取得手段）
８０３  動きベクトル算出部（動きベクトル算出手段）
８０５  構図ずれ補正部（位置合わせ手段）
８０６  合成画像生成部（画像合成手段）
【図１】
0006652294.tif 000002
【図２】
0006652294.tif 000003
【図３】
0006652294.tif 000004
【図４】
0006652294.tif 000005
【図５】
0006652294.tif 000006
【図６】
0006652294.tif 000007
【図７】
0006652294.tif 000008
【図８】
0006652294.tif 000009
【図９】
0006652294.tif 000010
【図１０】
0006652294.tif 000011
【図１１】
0006652294.tif 000012
【図１２】
0006652294.tif 000013
【図１３】
0006652294.tif 000014
【図１４】
0006652294.tif 000015
【図１５】
0006652294.tif 000016