(57)【特許請求の範囲】
【請求項１】
異なる時刻および視点で撮影された複数の画像から被写体の距離分布に関連するマップデータを生成する画像処理装置であって、
異なる視点で撮影された対をなす画像のデータを取得する取得手段と、
取得された第１の対の画像から画像間の相関量を第１の相関量として演算し、前記第１の対の画像とは異なる時刻に撮影された第２の対の画像から画像間の相関量を第２の相関量として演算する相関演算手段と、
前記第１の相関量から算出される前記第１の対の画像のずれ量と、前記第２の相関量から算出される前記第２の対の画像のずれ量とが一致し、または前記ずれ量の差分が閾値以下である場合に、前記第１の相関量と前記第２の相関量を加算して第３の相関量を算出する加算手段と、
前記第３の相関量から前記マップデータを算出する生成手段を備えることを特徴とする画像処理装置。
【請求項２】
前記第１の相関量と前記第２の相関量とを加算するか否かを判定する判定手段を備え、
前記生成手段は、前記判定手段により前記第１の相関量と前記第２の相関量を加算することが判定された場合、前記第３の相関量から前記マップデータを算出し、前記判定手段により前記第１の相関量と前記第２の相関量を加算しないことが判定された場合、前記第１または第２の相関量から前記マップデータを算出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記第１の対の画像を基準画像とし、前記第２の対の画像を参照画像として、前記判定手段により前記第１の相関量と前記第２の相関量を加算しないことが判定された場合、前記生成手段は前記基準画像に係る前記第１の相関量から前記マップデータを算出することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
異なる時刻および視点で撮影された複数の画像から被写体の距離分布に関連するマップデータを生成する画像処理装置であって、
異なる視点で撮影された対をなす画像のデータを取得する取得手段と、
取得された第１の対の画像から画像間の相関量を第１の相関量として演算し、前記第１の対の画像とは異なる時刻に撮影された第２の対の画像から画像間の相関量を第２の相関量として演算する相関演算手段と、
前記第１の相関量と前記第２の相関量を加重加算して第３の相関量を算出する加算手段と、
前記第３の相関量から前記マップデータを算出する生成手段と、
前記第１の相関量から算出される前記第１の対の画像のずれ量と、前記第２の相関量から算出される前記第２の対の画像のずれ量とに基づいて、前記第１の相関量と前記第２の相関量との加重加算に用いる重み付け係数を決定する決定手段と、を備え、
前記加算手段は前記決定手段により決定された前記重み付け係数を用いて、前記第１の相関量と前記第２の相関量とを加重加算することにより前記第３の相関量を算出することを特徴とする画像処理装置。
【請求項５】
前記決定手段は、前記第１の相関量に対して前記第２の相関量を加重加算する前記重み付け係数の値を、前記第２の相関量の傾きが小さい場合に比べて当該傾きが大きい場合に大きくすることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記決定手段は、前記第１の対の画像の画像間の相関が最も高くなる画像のずれ量と前記第２の対の画像の画像間の相関が最も高くなる画像のずれ量との差分を算出し、当該差分の絶対値が閾値より大きい場合に比べて当該差分の絶対値が閾値より小さい場合に、前記第１の相関量に対して前記第２の相関量を加重加算する前記重み付け係数の値を大きくすることを特徴とする請求項４に記載の画像処理装置。
【請求項７】
前記加算手段は、前記第１の対の画像の画像間の相関が最も高くなる画像のずれ量と前記第２の対の画像の画像間の相関が最も高くなる画像のずれ量との差分の絶対値が閾値以下である場合に前記加重加算を行うことを特徴とする請求項４に記載の画像処理装置。
【請求項８】
前記閾値は、前記第１または第２の対の画像における前記画像のずれ量の大きさが小さい場合に比べて当該ずれ量の大きさが大きい場合に大きく設定されることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
複数の画像間の動きベクトルを検出する検出手段を備え、
前記相関演算手段は、前記検出手段により検出された動きベクトルを取得して前記第２の対の画像における着目画素位置を補正し、補正された位置にて算出した相関量を前記第２の相関量として出力することを特徴とする請求項１から８のいずれか１項に記載の画像処理装置。
【請求項１０】
請求項１から９のいずれか１項に記載の画像処理装置と、
被写体を撮像する撮像手段を備えることを特徴とする撮像装置。
【請求項１１】
異なる時刻および視点で撮影された複数の画像から被写体の距離分布に関連するマップデータを生成する画像処理装置により実行される画像処理方法であって、
異なる視点で撮影された対をなす画像のデータを取得して、相関演算手段が第１の対の画像から画像間の相関量を第１の相関量として演算し、前記第１の対の画像とは異なる時刻に撮影された第２の対の画像から画像間の相関量を第２の相関量として演算するステップと、
前記第１の相関量から算出される前記第１の対の画像のずれ量と、前記第２の相関量から算出される前記第２の対の画像のずれ量とが一致し、または前記ずれ量の差分が閾値以下である場合に、前記第１の相関量と前記第２の相関量を加算して第３の相関量を算出するステップと、
前記第３の相関量から前記マップデータを算出するステップを有することを特徴とする画像処理方法。
【請求項１２】
異なる時刻および視点で撮影された複数の画像から被写体の距離分布に関連するマップデータを生成する画像処理装置により実行される画像処理方法であって、
異なる視点で撮影された対をなす画像のデータを取得して、相関演算手段が第１の対の画像から画像間の相関量を第１の相関量として演算し、前記第１の対の画像とは異なる時刻に撮影された第２の対の画像から画像間の相関量を第２の相関量として演算する相関演算ステップと、
前記第１の相関量と前記第２の相関量との加重加算に用いる重み付け係数を決定する決定ステップと、
前記第１の相関量と前記第２の相関量を加重加算して第３の相関量を算出する加算ステップと、
前記第３の相関量から前記マップデータを算出するステップと、を有し、
前記決定ステップでは、前記第１の相関量から算出される前記第１の対の画像のずれ量と、前記第２の相関量から算出される前記第２の対の画像のずれ量とに基づいて、前記第１の相関量と前記第２の相関量との加重加算に用いる重み付け係数が決定され、
前記加算ステップでは前記決定ステップにより決定された前記重み付け係数を用いて、前記第１の相関量と前記第２の相関量とを加重加算することで前記第３の相関量が算出されることを特徴とする画像処理方法。
【請求項１３】
請求項１１または１２に記載の各ステップを前記画像処理装置のコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる時刻および視点で撮影された複数の画像を用いて、被写体までの距離に関連するマップデータを生成する技術に関する。
【背景技術】
【０００２】
撮像光学系の異なる瞳領域からの光束を受光することで取得される瞳分割画像や、２眼で撮影したステレオペア画像の相関演算を行うことで、距離情報の空間的な分布を示す距離マップを取得する技術がある。特許文献１には、被写体の輪郭に対応する距離値を、撮影画像を用いて正しい輪郭に合わせる距離マップ整形処理が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１５０５２１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示された従来技術では、被写体像のエッジがノイズの影響で不鮮明になってしまう場合や被写体が低コントラストである場合、正確な相関量を算出できない可能性がある。
【０００５】
本発明は、異なる時刻および視点で撮影された複数の画像を用いて、より高精度な距離分布データを生成することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一実施形態の装置は、異なる時刻および視点で撮影された複数の画像から被写体の距離分布に関連するマップデータを生成する画像処理装置であって、異なる視点で撮影された対をなす画像のデータを取得する取得手段と、取得された第１の対の画像から画像間の相関量を第１の相関量として演算し、前記第１の対の画像とは異なる時刻に撮影された第２の対の画像から画像間の相関量を第２の相関量として演算する相関演算手段と、前記第１の相関量から算出される前記第１の対の画像のずれ量と、前記第２の相関量から算出される前記第２の対の画像のずれ量とが一致し、または前記ずれ量の差分が閾値以下である場合に、前記第１の相関量と前記第２の相関量を加算して第３の相関量を算出する加算手段と、前記第３の相関量から前記マップデータを算出する生成手段を備える。
【発明の効果】
【０００７】
本発明によれば、異なる時刻および視点で撮影された複数の画像を用いて、より高精度な距離分布データを生成することができる。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態のデジタルカメラの機能構成を例示するブロック図である。
【図２】本発明の実施形態に係る撮像部の構成例を示す図である。
【図３】第１実施形態に係る画像処理部の機能構成を例示するブロック図である。
【図４】第１実施形態に係る画像処理部の処理を示すフローチャートである。
【図５】異なる時刻に撮影された瞳分割画像を示す図である。
【図６】第１実施形態に係る距離マップ生成処理を示すフローチャートである。
【図７】第１実施形態に係るノイズが存在しない状態での相関量を示すグラフである。
【図８】第１実施形態に係る基準画像、参照画像の相関量と、その加算結果を示すグラフである。
【図９】比較例の基準画像、参照画像の相関量と、その加算結果を説明するグラフである。
【図１０】第２実施形態に係る画像処理部の構成例を示すブロック図である。
【図１１】第２実施形態に係る画像処理部の処理を示すフローチャートである。
【図１２】第２実施形態に係る基準画像のシフト量と閾値の設定例を示す図である。
【図１３】第２実施形態に係る参照画像のＳＬＯＰと重みの設定例を示す図である。
【図１４】第３実施形態に係る画像処理部の構成例を示すブロック図である。
【図１５】第３実施形態に係る画像処理部の処理を示すフローチャートである。
【図１６】第３実施形態に係る微小ブロックの位置を示す図である。
【発明を実施するための形態】
【０００９】
以下、本発明の各実施形態について添付図面を参照して詳細に説明する。なお、各実施形態では、画像処理装置をデジタルカメラに適用した例を説明する。
［第１実施形態］
【００１０】
本発明の第１実施形態の説明するにあたり、概要を説明する。
撮影時刻が異なる複数の画像において動体（移動する被写体）が存在する場合、同一の画素位置に写っている被写体が異なることがある。この場合、同一の画素位置から算出された相関量を単に加算すると、誤った距離情報を生成してしまう可能性がある。また手持ちでの撮影時に手ぶれが発生した場合においても、同一の画素位置に写っている被写体が異なることがある。このような場合に誤った距離情報が生成されると、当該距離情報に基づいて生成される距離マップデータの正確性に影響を及ぼす。なお、距離マップデータは被写体の距離分布に関連するデータであり、奥行き方向における被写体の距離値を直接的に表し、または距離値に対応する情報（デフォーカス情報）を間接的に表すものとする。
【００１１】
本実施形態では、視差を有する一対の画像を入力画像とし、ＳＡＤ（Sum of Absolute Difference）等による相関演算で相関量を算出し、相関量に基づいて被写体までの距離情報を算出する。異なる時刻に撮影した一対の画像から算出した相関量を加算することで、ノイズが多い場合や低コントラストの被写体であっても精度の高い距離マップを生成することができる。さらには、異なる時刻に撮影した一対の画像間において、相関量が最小かつ極小（または最大かつ極大）となるずれ量を比較し、ずれ量が同じである場合にのみ相関量を加算する処理が行われる。したがって、動体の移動や手ぶれにより、同一の画素位置に写っている被写体が異なる場合であっても、誤った距離情報が算出される可能性を低減することが可能となる。
【００１２】
図１は、本実施形態に係るデジタルカメラ１００の機能構成を例示するブロック図である。システム制御部１０１は制御中枢部であり、ＣＰＵ（中央演算処理装置）を備える。ＣＰＵは、デジタルカメラ１００が備える各構成部の動作や処理を制御するプログラムをＲＯＭ（リード・オンリー・メモリ）１０２から読み出し、ＲＡＭ（ランダム・アクセス・メモリ）１０３に展開して実行する。ＲＯＭ１０２は、書き換え可能な不揮発性メモリであり、デジタルカメラ１００の各構成部の動作プログラムに加え、各構成部の動作に必要なパラメータ等を記憶する。例えば、焦点検出などで必要なレンズ情報として射出瞳距離等のデータがＲＯＭ１０２に記憶されている。ＲＡＭ１０３は、データの書き換えが可能な揮発性メモリであり、デジタルカメラ１００の各構成部の処理において出力されたデータ等を一時的な記憶する。
【００１３】
撮像光学系１０４は、被写体からの光を撮像部１０５に結像させる。撮像光学系１０４はレンズや絞りを備え、絞りは開口径の調節によって撮影時の光量調節を行う。撮像部１０５は、ＣＣＤ（電荷結合素子）センサやＣＭＯＳ（相補型金属酸化膜半導体）センサ等の撮像素子を備える。撮像素子は、撮像光学系１０４により結像された光学像を光電変換し、得られたアナログ画像信号をＡ（アナログ）／Ｄ（デジタル）変換部１０６に出力する。Ａ／Ｄ変換部１０６は入力されたアナログ画像信号をＡ／Ｄ変換し、デジタル画像データをＲＡＭ１０３に出力して記憶させる。
【００１４】
画像処理部１０７は、ＲＡＭ１０３に記憶されている画像データに対して、ホワイトバランス調整、色補間、縮小／拡大、フィルタリング、および距離マップの生成等の処理を行う。記録媒体１０８は着脱可能なメモリカード等である。記録媒体１０８には、ＲＡＭ１０３に記憶されている画像処理部１０７で処理された画像やＡ／Ｄ変換部１０６でＡ／Ｄ変換された画像等のデータが記録される。バス１０９は、各構成部の間で信号を送受し合うために用いられる。
【００１５】
次に、撮像部１０５について説明する。図２（Ａ）は、撮像部１０５の画素配列の構成を例示する図である。３次元直交座標を構成するｘ軸方向を左右方向とし、ｙ軸方向を上下方向とし、ｚ軸方向を紙面に垂直な方向と定義する。図２（Ｂ）は画素２００を拡大して示す模式図である。撮像部１０５において、複数の画素２００が二次元アレイ状に規則的な配列で配置されている。１つの画素２００は、マイクロレンズ２０１と一対の光電変換部２０２Ａおよび２０３Ｂから構成される。
【００１６】
本実施形態において、第１の光電変換部２０２Ａの出力信号からＡ像が生成され、第２の光電変換部２０３Ｂの出力信号からＢ像が出力されるものとする。以下、一対の画像であるＡ像およびＢ像を瞳分割画像と呼ぶ。撮像光学系１０４の瞳の異なる領域（瞳部分領域）を通過する一対の光束を、一対の光学像としてそれぞれ結像させ、一対の画像であるＡ像およびＢ像を出力することができる。本実施形態では、瞳分割を水平方向に２分割としたが、これに限定されるものではなく、仕様に応じて任意の方向と数の瞳分割構成が可能である。
【００１７】
図３は、画像処理部１０７の構成例を示すブロック図である。
相関演算部３００は、対をなす画像データの相関演算を行い、相関値Ｃ（ｋ）を算出する。相関量加算判定部３０１は、算出された複数の相関量Ｃ（ｋ）が最小かつ極小になるずれ量を比較する。相関量加算部３０２は、算出した複数の相関量Ｃ（ｋ）を加算し、加算結果を出力する。距離情報算出部３０３は距離情報（デフォーカス量）を算出する。各処理の詳細については後述する。
【００１８】
次に図４を参照して、画像処理部１０７が行う処理について説明する。図４は、画像処理部１０７の処理の流れを示すフローチャートである。
まずＳ４００において、一対の画像である瞳分割画像を連続的に撮影する処理が実行される。本実施形態では、説明の便宜のため２組の瞳分割画像が撮影されるものとするが、撮影時の組数は２組以上であればよい。
【００１９】
次にＳ４０１では、基準となる、視差を有する一対の画像が決定される。本実施形態では、ある時刻Ｔに撮影された一対の画像を基準とし、これを基準画像と呼ぶ。その後の単位時間が経過した時刻Ｔ＋１に撮影された一対の画像を、参照画像と呼ぶ。なお、この例とは逆に、時刻Ｔ＋１に撮影された一対の画像を基準画像とし、時刻Ｔに撮影された一対の画像を参照画像としてもよい。図５を参照して、Ｓ４００において撮影された視差を有する一対の画像について説明する。
【００２０】
図５（Ａ−１）および図５（Ａ−２）は、時刻Ｔに撮影された一対の画像例として、ランダムに発生したノイズが画像全体に分布している画像を示す。図５の左右方向をｘ方向とし、右方向を正方向と定義する。ｘ方向に直交する上下方向をｙ方向とし、上方向を正方向と定義する。図５（Ａ−１）は、水平方向に瞳を２分割した画素のうち第１の光電変換部２０２Ａから出力された画像を示し、これは建物５００に合焦して撮影された画像である。また、建物５００の手前に＋ｘ方向に移動するボール５０１が存在している。また、図５（Ａ−２）は、第２の光電変換部２０３Ｂから出力された画像を示す。建物５０２の位置は、図５（Ａ−１）に示す建物５００と同じ位置である。一方、手前のボール５０３は、水平方向に視差がついているため、図５（Ａ−１）に示すボール５０１と比較すると、−ｘ方向にずれている。なお、一対の画像である瞳分割画像は同時刻Ｔに取得できることとする。したがって、ボール５０３は移動に伴う視差はつかない。
【００２１】
図５（Ｂ−１）および図５（Ｂ−２）は、時刻Ｔ＋１に撮影された一対の画像例として、画像全体にノイズが分布している画像を示す。図５（Ｂ−１）は、第１の光電変換部２０２Ａから出力された画像を示し、これは建物５０４に合焦して撮影された画像である。建物５０４の位置は、図５（Ａ−１）に示す建物５００と同じ位置である。また、ボール５０５は、図５（Ａ−１）に示すボール５０１と比較すると、＋ｘ方向に移動しているため、建物５０４の一部と重なっている。図５（Ｂ−２）は、第２の光電変換部２０３Ｂから出力された画像を示す。建物５０６の位置は、図５（Ｂ−１）に示す建物５０４と同じ位置である。一方、手前のボール５０７は、水平方向に視差がついているため、図５（Ｂ−１）に示すボール５０５と比較すると、−ｘ方向にずれている。図５（Ａ−１）および図５（Ａ−２）、図５（Ｂ−１）および図５（Ｂ−２）において、破線で示す領域５１０〜５１３および領域５２０〜５２３は、後述する相関演算時に参照する微小ブロック領域である。なお、連続的に撮影された複数の画像データの処理を説明したが、予め撮影した瞳分割画像の画像データを記録媒体１０８に記録しておき、その画像データを読み出して処理する構成としてもよい。
【００２２】
次に図４のＳ４０２では、Ｓ４００で読み込んだ画像を用いて距離マップを生成する処理が行われる。図６は、距離マップ生成処理の流れを示すフローチャートである。まず、Ｓ６００にて画像処理部１０７は、基準画像と参照画像をそれぞれ、微小ブロックに分割する。なお、微小ブロックのサイズまたは形状についての制限は無く、近接するブロック同士で領域が重なってもよい。
【００２３】
次に、Ｓ６０１にて相関演算部３００は、基準画像の微小ブロックにおいて相関演算を行う。以下、一対の画像である瞳分割画像（Ａ像、Ｂ像）の相関演算について説明する。着目画素位置におけるＡ像の信号列をＥ（１）〜Ｅ（ｍ）と表記し、着目画素位置におけるＢ像の信号列をＦ（１）〜Ｆ（ｍ）と表記する。Ａ像の信号列Ｅ（１）〜Ｅ（ｍ）に対して、Ｂ像の信号列Ｆ（１）〜Ｆ（ｍ）を相対的にずらしながら、式（１）を用いて２つの信号列間のずれ量ｋにおける相関量Ｃ（ｋ）が演算される。
Ｃ（ｋ）＝Σ｜Ｅ（ｎ）−Ｆ（ｎ＋ｋ）｜・・・（１）
【００２４】
式（１）において、Σ演算はｎについて総和を算出する演算を意味する。Σ演算において、ｎ、ｎ＋ｋの取る範囲は、１からｍの範囲に限定される。ずれ量ｋは整数値であり、一対のデータの検出ピッチを単位とした相対的シフト量である。ノイズが存在しない理想的な状態において、一対の画像信号列の相関が高い場合の式（１）の演算結果を図７に示す。
【００２５】
図７に示すように、一対の画像信号列の相関が高いずれ量（ｋ＝ｋｊ＝０）において、相関量Ｃ（ｋ）が最小になる。以下、離散的な相関量Ｃ（ｋ）が最小となるときのｋを、ｋｊと表記する。式（２）から（４）に示す３点内挿処理によって、連続的な相関量に対する最小値Ｃ（ｘ）を与えるシフト量ｘが算出される。なお、シフト量ｘは実数値であり、単位をｐｉｘｅｌとする。
ｘ＝ｋｊ＋Ｄ／ＳＬＯＰ                  ・・・（２）
Ｄ＝{Ｃ（ｋｊ−１）−Ｃ（ｋｊ＋１）}／２・・・（３）
ＳＬＯＰ＝ＭＡＸ{Ｃ（ｋｊ＋１）−Ｃ（ｋｊ），Ｃ（ｋｊ−１）−Ｃ（ｋｊ）}・・・（４）
式（４）のＳＬＯＰは、最小かつ極小となる相関量と、その隣接する相関量における変化の傾きを表す。
【００２６】
図７において、具体例として、
Ｃ（ｋｊ）      ＝Ｃ（０）    ＝１０００
Ｃ（ｋｊ−１）  ＝Ｃ（−１）  ＝１７００
Ｃ（ｋｊ＋１）  ＝Ｃ（１）    ＝１８３０
とする。この例では、ｋｊ＝０である。式（２）から（４）より、
ＳＬＯＰ  ＝８３０
ｘ        ＝−０．０７８  ｐｉｘｅｌ
となる。
合焦状態の場合、Ａ像の信号列とＢ像の信号列に対するシフト量ｘは０．００が理想値である。以下では、Ｓ６０１で相関演算部３００が算出した相関量を、第１の相関量という。
【００２７】
一方、図５に示すように、ノイズが存在する微小ブロック５１０と５１１に式（１）を適用した場合の演算結果を図８（Ａ）に示す。図８（Ａ）に示すように、ランダムに分布しているノイズの影響により、Ａ像の信号列とＢ像の信号列との相関が低下する。相関量Ｃ（ｋ）の最小値は、図７に示す最小値に比べて大きくなり、相関量の曲線は全体的に平坦な形状（最大値と最小値との差分絶対値が小さいこと）となる。
図８（Ａ）において、具体例として、
Ｃ（ｋｊ）      ＝Ｃ（０）    ＝１３００
Ｃ（ｋｊ−１）  ＝Ｃ（−１）  ＝１４８０
Ｃ（ｋｊ＋１）  ＝Ｃ（１）    ＝１８００
とする。この例では、ｋｊ＝０である。式（２）から（４）より、
ＳＬＯＰ  ＝５００
ｘ        ＝−０．３２  ｐｉｘｅｌ
となる。
図７に示すノイズが存在しない状態での演算結果と比べて、シフト量ｘが理想値から離れている。
【００２８】
一対の画像信号系列間の相関が低い場合、相関量Ｃ（ｋ）の変化量が小さくなり、相関量の曲線は全体的に平坦な形状となるため、ＳＬＯＰの値が小さくなる。また、被写体像が低コントラストである場合にも、同様に一対の画像信号系列間の相関が低くなり、相関量の曲線が平坦な形状となる。この性質に基づき、算出されたシフト量ｘの信頼性をＳＬＯＰの値で判断することができる。すなわち、ＳＬＯＰの値が大きい場合には、一対の画像信号系列間の相関が高く、またＳＬＯＰの値が小さい場合には、一対の画像信号系列間に有意な相関が得られなかったと判断することができる。
本実施形態では、相関演算に式（１）を用いたため、一対の画像信号系列の相関が最も高いずれ量において相関量Ｃ（ｋ）が最小かつ極小となる。別の方法として、一対の画像信号系列の相関が最も高いずれ量において相関量Ｃ（ｋ）が最大かつ極大となる相関演算法を用いてもよい。
【００２９】
図６のＳ６０２にて相関演算部３００は、Ｓ６０１と同様にして、参照画像の微小ブロックにおいて相関演算を行う。図５に示す微小ブロック５１２と５１３に式（１）を適用した場合の演算結果を図８（Ｂ）に示す。
図８（Ｂ）において、具体例として、
Ｃ（ｋｊ）      ＝Ｃ（０）    ＝１２００
Ｃ（ｋｊ−１）  ＝Ｃ（−１）  ＝１８５０
Ｃ（ｋｊ＋１）  ＝Ｃ（１）    ＝１４２０
とする。この例では、ｋｊ＝０である。式（２）から（４）より、
ＳＬＯＰ  ＝６５０
ｘ        ＝０．３３  ｐｉｘｅｌ
となる。
基準画像から算出される結果と比較すると、相関量Ｃ（ｋｊ）が最小値になるが、シフト量ｘは正値であり、符号が反転している。以下、Ｓ６０２で相関演算部３００が算出した相関量を、第２の相関量という。
【００３０】
次に、図６のＳ６０３で相関量加算判定部３０１は、基準画像における相関量Ｃ（ｋ）が最小かつ極小になるずれ量と、参照画像における相関量Ｃ（ｋ）が最小かつ極小になるずれ量とを比較する。基準画像および参照画像について、相関量Ｃ（ｋ）が最小かつ極小になるずれ量が一致する場合（Ｓ６０３でＹｅｓ）、Ｓ６０４に処理を進める。また、相関量Ｃ（ｋ）が最小かつ極小になるずれ量が一致しない場合(Ｓ６０３でＮｏ)、Ｓ６０６に移行する。上述の例では、基準画像および参照画像に関して、共にずれ量（ｋ＝ｋｊ＝０）において相関量Ｃ（ｋ）が最小かつ極小になることから、Ｓ６０４に処理を進める。なお、Ｓ６０３では整数値のずれ量ｋｊを比較する判定処理を例示したが、実数値のシフト量ｘを比較する判定処理でもよい。あるいは相関量加算判定部３０１は、基準画像における相関量Ｃ（ｋ）が最小かつ極小になるずれ量と、参照画像における相関量Ｃ（ｋ）が最小かつ極小になるずれ量との差分の絶対値を閾値と比較してもよい。差分の絶対値が閾値以下の場合、Ｓ６０４に進み、差分の絶対値が閾値より大きい場合、Ｓ６０６に進む。
【００３１】
次に、Ｓ６０４で相関量加算部３０２は、基準画像における相関量Ｃ（ｋ）と参照画像における相関量Ｃ（ｋ）とを加算する。この場合の加算は単純加算であるが、本明細書中の加算は加重加算を含むものとする。加算後の相関量を図８（Ｃ）に示す。
図８（Ｃ）において、具体的にはｋｊ＝０として、
Ｃ（ｋｊ）      ＝Ｃ（０）    ＝１３００＋１２００  ＝２５００
Ｃ（ｋｊ−１）  ＝Ｃ（−１）  ＝１４８０＋１８５０  ＝３３３０
Ｃ（ｋｊ＋１）  ＝Ｃ（１）    ＝１８００＋１４２０  ＝３２２０
となる。式（２）から（４）より、
ＳＬＯＰ  ＝８３０
ｘ        ＝０．０６６  ｐｉｘｅｌ
となる。
Ｓ６０４で相関量加算部３０２が算出した相関量を、第３の相関量という。
【００３２】
相関量加算部３０２が相関量を加算することにより、ノイズが存在しない状態で算出したＳＬＯＰの大きさと同じになり、シフト量ｘが加算前に比べて理想状態に近づく。すなわち、異なる時刻に撮影された一対の画像（基準画像よび参照画像）から、それぞれ相関量を算出して加算をすることで、相関量の傾きが大きくなる。これにより、ノイズが多い場合や低コントラストの被写体であっても、精度の高い相関結果を算出できる。
【００３３】
次に、基準画像における相関量Ｃ（ｋ）が最小かつ極小になるずれ量と、参照画像における相関量Ｃ（ｋ）が最小かつ極小になるずれ量とが一致しない場合について説明する。図５の微小ブロック５２０と５２１に式（１）を適用した場合の演算結果を図９（Ａ）に示す。また、図５の微小ブロック５２２と５２３に式（１）を適用した場合の演算結果を図９（Ｂ）に示す。図９（Ａ）と図９（Ｂ）にしたがって相関量加算部３０２が加算したと仮定した場合の相関量を、図９（Ｃ）に示す。
【００３４】
図９（Ａ）では、図５の微小ブロック５２０および５２１には建物が写っているため、ずれ量（ｋ＝ｋｊ＝０）において相関量Ｃ＿ａ（ｋ）が最小かつ極小となる。
図９（Ａ）において、具体例として、
Ｃ＿ａ（ｋｊ）      ＝Ｃ＿ａ（０）    ＝１２５０
Ｃ＿ａ（ｋｊ−１）  ＝Ｃ＿ａ（−１）  ＝１８００
Ｃ＿ａ（ｋｊ＋１）  ＝Ｃ＿ａ（１）    ＝１５００
Ｃ＿ａ（ｋｊ＋２）  ＝Ｃ＿ａ（２）    ＝１９００
Ｃ＿ａ（ｋｊ＋３）  ＝Ｃ＿ａ（３）    ＝１８００
とする。式（２）から（４）より、
ＳＬＯＰ  ＝５５０
ｘ        ＝０．２７  ｐｉｘｅｌ
となる。
【００３５】
一方、図９（Ｂ）では微小ブロックの座標は同じであるが、時刻Ｔ＋１では、前方を移動しているボールが建物に重なっている。すなわち、手前に存在するボールに対して相関演算を行うことになるため、ずれ量（ｋ＝ｋｊ＝２）において相関量Ｃ＿ｂ（ｋ）が最小かつ極小となる。
図９（Ｂ）において、具体例として、
Ｃ＿ｂ（ｋｊ）      ＝Ｃ＿ｂ（２）    ＝１２００
Ｃ＿ｂ（ｋｊ−１）  ＝Ｃ＿ｂ（１）    ＝１５７０
Ｃ＿ｂ（ｋｊ＋１）  ＝Ｃ＿ｂ（３）    ＝１９００
Ｃ＿ｂ（ｋｊ−２）  ＝Ｃ＿ｂ（０）    ＝１９００
Ｃ＿ｂ（ｋｊ−３）  ＝Ｃ＿ｂ（−１）    ＝１８５０
とする。式（２）から（４）より、
ＳＬＯＰ  ＝７００
ｘ        ＝１．７６  ｐｉｘｅｌ
となる。
【００３６】
そして、図９（Ｃ）に示すように、加算の結果、相関量Ｃ＿ｃ（ｋ）が得られる。
図９（Ｃ）において、
Ｃ＿ｃ（ｋｊ）      ＝Ｃ＿ｃ（１）＝Ｃ＿ａ（１）＋Ｃ＿ｂ（１）    ＝３０７０
Ｃ＿ｃ（ｋｊ−１）  ＝Ｃ＿ｃ（０）＝Ｃ＿ａ（０）＋Ｃ＿ｂ（０）    ＝３１５０
Ｃ＿ｃ（ｋｊ＋１）  ＝Ｃ＿ｃ（２）＝Ｃ＿ａ（２）＋Ｃ＿ｂ（２）    ＝３１００
Ｃ＿ｃ（ｋｊ＋２）  ＝Ｃ＿ｃ（３）＝Ｃ＿ａ（３）＋Ｃ＿ｂ（３）    ＝３７００
Ｃ＿ｃ（ｋｊ−２）  ＝Ｃ＿ｃ（-１）＝Ｃ＿ａ（−１）＋Ｃ＿ｂ（−１）＝３６５０
ＳＬＯＰ  ＝８０
ｘ        ＝１．３１  ｐｉｘｅｌ
となる。
相関量Ｃ＿ｃ（ｋ）が最小となるずれ量はｋｊ＝１となるため、本来被写体が存在していない誤った距離情報が算出されてしまう。
【００３７】
距離情報が正確でなくなる場合を回避するため、基準画像と参照画像について相関量Ｃ（ｋ）が最小かつ極小になるずれ量が一致しないと相関量加算判定部３０１が判定した場合、相関量加算部３０２は第１および第２の相関量を加算しない。この場合、距離情報算出部３０３は、基準画像から求めた相関量に基づいて距離情報を算出する。これにより、被写体が移動する場合や手ぶれやが発生する場合であっても、誤った距離情報が算出される可能性を低減できる。
【００３８】
図６のＳ６０５にて距離情報算出部３０３は、第３の相関量から算出されたシフト量ｘを参照して距離情報であるデフォーカス量を計算する。具体的には、デフォーカス量（ＤＥＦと記す）を下記式（５）で求めることができる。
ＤＥＦ＝Ｐ・ｘ・・・（５）
式（５）において、Ｐは検出ピッチ（画素配置ピッチ）と一対の視差画像における左右２つの視点の投影中心の距離とによって決まる変換係数であり、単位はｍｍ／ｐｉｘｅｌである。なお、本実施形態では距離情報としてデフォーカス量を算出する例を説明した。これに限らず、レンズ公式を使って、撮像光学系を介した物体側の距離に変換した距離情報を算出してもよい。
【００３９】
図６のＳ６０６にて距離情報算出部３０３は、第１の相関量から算出されたシフト量ｘを参照し、式（５）を用いて距離情報を算出する。Ｓ６０５、Ｓ６０６の処理後、Ｓ６０７に処理を進め、全ての微小ブロックで距離情報を算出したか否かについて判定処理が実行される。判定の結果、全ての微小ブロックについて距離情報が算出されている場合（Ｓ６０７でＹｅｓ）、距離マップの生成処理を終了する。一方、全ての微小ブロックで距離情報が算出されていない場合(Ｓ６０７でＮｏ)、Ｓ６０１に戻り処理を継続する。
【００４０】
本実施形態では、異なる時刻に撮影された複数組の画像対（Ａ像およびＢ像）を取得してそれぞれ相関量を算出し、各相関量を加算する処理が行われる。これにより、ノイズが多い場合や低コントラストの被写体であっても、精度の高い距離マップを生成できる。さらに本実施形態では、異なる時刻に撮影された一対の画像間において、相関量が最小かつ極小（または最大かつ極大）となるずれ量を比較し、ずれ量が同じである場合に限り相関量を加算する処理が行われる。これにより、被写体の移動や手ぶれが発生し、同一の画素位置に写っている被写体が異なる場合であっても、誤った距離情報が算出されることを抑制できる。
【００４１】
なお、本実施形態では、距離情報を算出するための一対の画像として、撮像面位相差検出型撮像素子により取得される瞳分割画像としたが、これに限定されない。例えば、２眼カメラで撮影された画像でもよいし、単眼カメラを複数用いて視点の異なる画像をそれぞれ異なる時刻に撮影した画像であってもよい。このことは後述する実施形態でも同じである。
【００４２】
［第２実施形態］
次に、本発明の第２実施形態を説明する。本実施形態では、基準画像から算出される相関量（第１の相関量）と、参照画像から算出される相関量（第２の相関量）とを加算する際に、重みを付けて加算することで、高精度な距離マップを生成可能な画像処理装置について説明する。なお、本実施形態に係るデジタルカメラの機能構成については、図１および図２と同様であるため、既に使用した符号を用いることにより、詳細な説明を省略し、主に相違点を説明する。このような説明の省略については後述の実施形態でも同じである。
【００４３】
図１０は、本実施形態の画像処理部の構成例を示す図である。重み算出部１２０１は、相関量を加算する際に用いる重み付け係数の値を算出する。図１１は、本実施形態の画像処理部が行う処理の流れを示すフローチャートである。Ｓ１３００〜Ｓ１３０２の処理については、図６のＳ６００〜Ｓ６０２の処理と同様であるため、説明を省略する。
【００４４】
Ｓ１３０３にて重み算出部１２０１は重み付け係数の値を算出する。重み算出部１２０１は、基準画像におけるシフト量ｘを参照して閾値を決定する。図１２を参照して、閾値の設定例について説明する。図１２にて横軸は基準画像におけるシフト量ｘを表し、縦軸は閾値Ｔｈを表す。基準画像において着目する被写体に関し、シフト量ｘが±１．０以内の範囲で検出された場合、つまり合焦近傍の被写体である場合に重み算出部１２０１は、閾値を０．０に設定する。この場合、重み算出部１２０１は、設定した閾値と、基準画像におけるシフト量および参照画像におけるシフト量の差分の絶対値とを比較する。差分の絶対値が閾値以下である場合、重み算出部１２０１は基準画像の相関量と参照画像の相関量を加重加算する。合焦近傍の被写体のエッジは明瞭であり、相関演算で有意な相関が得やすい傾向にある。よって閾値を０．０とすることで、移動体や手ぶれの影響を受けている可能性がある参照画像の相関量を加算するか否かについて、厳しい基準で判定処理が行われる。
【００４５】
一方、シフト量ｘが１．０より大きい前景領域や、シフト量ｘが−１．０未満の背景領域である場合、光学系のボケが付与される影響でエッジが不鮮明になり、低コントラストの被写体となる可能性がある。このような場合、重み算出部１２０１は、シフト量ｘが１．０より大きくなるにしたがって閾値Ｔｈを大きくし、またシフト量ｘが−１．０より小さくなるにしたがって閾値Ｔｈを大きく設定する。これは、式（４）のＳＬＯＰを大きくし、精度の高い距離情報を算出するためであり、合焦状態でのシフト量から離れるほど参照画像の相関量を加重加算する可能性を高めるために、閾値Ｔｈが大きく設定され、判定基準が緩くなる。
【００４６】
次に重み算出部１２０１は、重み付け係数値を参照画像のＳＬＯＰから決定する。図１３を参照して具体例を説明する。図５の横軸は参照画像のＳＬＯＰを表し、縦軸は重みＷｅｉｇｈｔ（重み付け係数）を表す。第１閾値Ｔｈ１は第２閾値Ｔｈ２よりも小さいものとする。参照画像のＳＬＯＰが予め設定した第１閾値Ｔｈ１より大きく、かつ第２閾値Ｔｈ２以下である場合、重み付け係数値はＳＬＯＰの増加につれて大きく設定される。参照画像のＳＬＯＰが第１閾値Ｔｈ１以下である場合、重み付け係数値はゼロであり、参照画像のＳＬＯＰが第２閾値Ｔｈ２より大きい場合、重み付け係数値は１．０である。
【００４７】
図１３に示す特性は例示であり、例えば以下の閾値処理で重み付け係数値を決定してもよい。重み算出部１２０１は、下記式（６）を用いて基準画像におけるシフト量Ｅ＿Ｓｈｉｆｔと参照画像におけるシフト量Ｆ＿Ｓｈｉｆｔとの差分の絶対値を算出して閾値Ｔｈと比較する。
｜Ｅ＿Ｓｈｉｆｔ−Ｆ＿Ｓｈｉｆｔ｜  ≦Ｔｈ・・・（６）
重み算出部１２０１は判定結果に従い、差分の絶対値が閾値以下であれば重み付け係数値を１．０に設定し、差分の絶対値が閾値より大きい場合には重み付け係数値を０．０に設定する。
【００４８】
図１１のＳ１３０４にて相関量加重加算部１２０２は、下記式（７）に従い、基準画像の相関量Ｅ＿Ｃ（ｎ）と参照画像の相関量Ｆ＿Ｃ（ｎ）との加重加算を行い、第３の相関量Ｅ＿ＡＤＤ＿Ｃ（ｎ）を算出する。
Ｅ＿ＡＤＤ＿Ｃ（ｎ）＝Ｅ＿Ｃ（ｎ）＋Ｆ＿Ｃ（ｎ）・Ｗｅｉｇｈｔ・・・（７）
式（７）のＷｅｉｇｈｔは、Ｓ１３０３で算出された重み付け係数である。
【００４９】
次に、Ｓ１３０５で距離情報算出部１２０３は、第３の相関量から算出されるシフト量ｘを参照して式（５）により距離情報を算出する。Ｓ１３０６において、全ての微小ブロックで距離情報が算出されたか否かについて判定処理が行われる。全ての微小ブロックで距離情報が算出されている場合（Ｓ１３０６でＹｅｓ）、距離マップの生成処理を終了する。一方、全ての微小ブロックで距離情報が算出されていない場合（Ｓ１３０６でＮｏ）、Ｓ１３０１に戻り処理を継続する。
【００５０】
本実施形態では、相関演算部１２００が算出した基準画像の相関量と参照画像の相関量を加算する際に、重み付け係数を用いて加重加算処理を行う。これにより、合焦近傍の基準画像でもエッジが明瞭である被写体領域に対しては、移動体や手ぶれの影響を受けていない参照画像の相関量を加算し、高精度な距離情報を取得できる。一方、前景および背景に存在する被写体に対してはノイズの影響や光学系のボケによる低コントラスト化の影響をより重視し、参照画像の相関量を適切に加重加算することで高精度な距離情報を取得できる。
【００５１】
［第３実施形態］
次に本発明の第３実施形態を説明する。本実施形態では、微小ブロックごとに基準画像と参照画像間の動きベクトルを算出し、動きベクトル分だけ参照画像の微小ブロックの位置を移動させて補正し、参照画像の相関量を算出する。ずれ量を比較し、比較結果に基づいて相関量を加算するか否かが判定される。これにより、移動体が存在することや手ぶれの影響を受けた場合でも基準画像の相関量に参照画像の相関量を加算することができ、高精度な距離マップを生成できる。
【００５２】
図１４は、本実施形態に係る画像処理部の構成例を示す図である。動きベクトル算出部１６０１は、基準画像と参照画像とを比較し、両者間の動きベクトル量を算出する。図１５は、本実施形態に係る画像処理部１０７が行う処理の流れを示すフローチャートである。Ｓ１７００、Ｓ１７０１の処理については、図６のＳ６００、Ｓ６０１の処理と同様であるため、それらの説明を省略する。
【００５３】
図１６を参照して、本実施形態における微小ブロックについて説明する。図１６にて左右方向をＸ方向とし、上下方向をＹ方向と定義する。図１６（Ａ−１）および図１６（Ａ−２）は、時刻Ｔに撮影した瞳分割画像を示す。なお、図５と同じ被写体に関しては同じ符号を使用している。破線で示す微小ブロック１８００および１８０１は、着目する微小ブロックである。一方、図１６（Ｂ−１）および図１６（Ｂ−２）は、時刻Ｔ＋１に撮影した瞳分割画像を示す。微小ブロック１８０２および１８０３は、時刻Ｔで撮影された画像において着目している微小ブロック１８００および１８０１と同じ位置座標に存在する微小ブロックである。
【００５４】
図１５のＳ１７０２にて動きベクトル算出部１６０１は、基準画像と参照画像との間の動きベクトル量を算出する。動きベクトル量の算出処理としては、テンプレートマッチング処理などがある。動きベクトル算出部１６０１が算出した動きベクトル量は、移動体の移動量や撮影者が手持ちで撮影した場合の手ぶれ量に該当する。
【００５５】
次のＳ１７０３で相関演算部１６００は、Ｓ１７０２で算出された動きベクトル量だけ、参照画像における微小ブロックの座標を移動させる処理を行う。図１６（Ｂ−１）および（Ｂ−２）の微小ブロック１８０４，１８０５は、微小ブロック１８０２，１８０３から移動した後の位置をそれぞれ示す。図１６に示すように、当初時刻Ｔに撮影された画像における微小ブロックに写っている被写体（ボール）と、時刻Ｔ＋１に撮影された画像における微小ブロックに写っている被写体（背景）は異なっている。動きベクトル分だけ参照画像における微小ブロックの座標位置を移動させる処理によって、微小ブロックに写っている被写体が共にボールとなる。
【００５６】
Ｓ１７０４にて相関演算部１６００は、参照画像の微小ブロックにおいて相関演算を行い、第２の相関量を算出する。Ｓ１７０５にて相関量加算判定部１６０２は、基準画像における相関量Ｃ（ｋ）が最小かつ極小になるずれ量と、参照画像における相関量Ｃ（ｋ）が最小かつ極小になるずれ量と比較する。基準画像と参照画像について相関量Ｃ（ｋ）が最小かつ極小になるずれ量が一致する場合（Ｓ１７０５でＹｅｓ）、Ｓ１７０６に処理を進める。一方、基準画像と参照画像について相関量Ｃ（ｋ）が最小かつ極小になるずれ量が一致しない場合（Ｓ１７０５でＮｏ）、Ｓ１７０８に処理を進める。本実施形態では、動きベクトル分だけ参照画像における微小ブロックの座標位置を移動しているため、基準画像と参照画像に関して相関量Ｃ（ｋ）が最小かつ極小になるずれ量が一致する可能性を高くすることができる。動きベクトル量を用いた参照画像の位置の補正により、移動体が存在する場合や手ぶれが発生する場合でも、高精度に距離情報を取得できる。
【００５７】
Ｓ１７０６にて相関量加算部１６０３は、基準画像における第１の相関量Ｃ（ｋ）と参照画像における第２の相関量Ｃ（ｋ）とを加算し、第３の相関量を算出する。次のＳ１７０７で距離情報算出部１６０４は、第３の相関量から算出されたシフト量ｘを参照し、式（５）から距離情報を算出する。また、Ｓ１７０８で距離情報算出部１６０４は、第１の相関量から算出されたシフト量ｘを参照し、式（５）から距離情報を算出する。Ｓ１７０７またはＳ１７０８の処理後、Ｓ１７０９にて、全ての微小ブロックで距離情報が算出されたか否かについて判定処理が行われる。全ての微小ブロックで距離情報が算出されている場合（Ｓ１７０９でＹｅｓ）、距離マップの生成処理を終了する。一方、全ての微小ブロックで距離情報が算出されていない場合（Ｓ１７０９でＮｏ）、Ｓ１７０１に戻り処理を継続する。
【００５８】
本実施形態の画像処理装置は、微小ブロックごとに基準画像と参照画像との間の動きベクトルを算出し、動きベクトル分だけ参照画像の微小ブロックの位置を移動させる補正処理を実行する。画像処理装置は、補正処理後に参照画像の相関量を算出し、ずれ量を比較して相関量を加算するか否かを判定する。これにより、移動体が存在する場合や手ぶれが発生する場合でも、基準画像の相関量と参照画像の相関量を加算することができる領域を増やすことができるので、高精度な距離マップを生成できる。
【００５９】
本実施形態では、相関量を加算するか否かについての判定処理を第１実施形態の場合と同じとして説明したが、第２実施形態のように重み付け係数を用いた加重加算を行う構成にしてもよい。
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【００６０】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６１】
１００  デジタルカメラ
１０１  システム制御部
１０４  撮像光学系
１０５  撮像部
１０７  画像処理部
【図１】
0006608238.tif 000002
【図２】
0006608238.tif 000003
【図３】
0006608238.tif 000004
【図４】
0006608238.tif 000005
【図５】
0006608238.tif 000006
【図６】
0006608238.tif 000007
【図７】
0006608238.tif 000008
【図８】
0006608238.tif 000009
【図９】
0006608238.tif 000010
【図１０】
0006608238.tif 000011
【図１１】
0006608238.tif 000012
【図１２】
0006608238.tif 000013
【図１３】
0006608238.tif 000014
【図１４】
0006608238.tif 000015
【図１５】
0006608238.tif 000016
【図１６】
0006608238.tif 000017