(57)【特許請求の範囲】
【請求項１】
第１の画像と第２の画像との動きベクトルを、前記第１の画像および前記第２の画像の相関に基づいて検出する検出手段と、
前記動きベクトルの信頼度を、前記相関に関する評価値に基づいて判定する判定手段と、を有し、
前記判定手段は、前記第１の画像と前記第２の画像のボケ量の差によって前記信頼度が低く判定されることを抑制するように前記判定を行うことを特徴とする画像処理装置。
【請求項２】
前記判定手段は、
前記評価値と閾値との大小関係に基づいて前記判定を行い、
前記ボケ量の差に応じて、前記閾値または前記評価値を補正して前記判定を行うことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記評価値が、前記相関が高いほど小さい値を有し、
前記判定手段は、前記ボケ量の差がある場合には、前記ボケ量の差がない場合よりも前記閾値を大きい値に補正することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記判定手段は、前記ボケ量の差が予め定められた閾値よりも大きい場合には、前記信頼度の判定を行わないことを特徴とする請求項１から請求項３のいずれか１項に記載の画像処理装置。
【請求項５】
前記判定手段は、前記ボケ量の差が予め定められた閾値よりも大きい場合には、前記動きベクトルを無効とすることを特徴とする請求項１から請求項３のいずれか１項に記載の画像処理装置。
【請求項６】
第１の画像と第２の画像との動きベクトルを、前記第１の画像および前記第２の画像の相関に基づいて検出する検出手段と、
前記動きベクトルの信頼度を、前記相関に関する評価値に基づいて判定する判定手段と、を有し、
前記判定手段は、前記第１の画像と前記第２の画像を撮影した際の撮像光学系の合焦距離の差によって前記信頼度が低く判定されることを抑制するように前記判定を行うことを特徴とする画像処理装置。
【請求項７】
前記第１の画像および前記第２の画像を撮影する撮像手段と、
請求項１から請求項６のいずれか１項に記載の画像処理装置と、
を有することを特徴とする撮像装置。
【請求項８】
検出手段が、第１の画像と第２の画像との動きベクトルを、前記第１の画像および前記第２の画像の相関に基づいて検出する検出工程と、
判定手段が、前記動きベクトルの信頼度を、前記相関に関する評価値に基づいて判定する判定工程と、を有し、
前記判定工程において前記判定手段は、前記第１の画像と前記第２の画像のボケ量の差によって前記信頼度が低く判定されることを抑制するように前記判定を行うことを特徴とする画像処理方法。
【請求項９】
検出手段が、第１の画像と第２の画像との動きベクトルを、前記第１の画像および前記第２の画像の相関に基づいて検出する検出工程と、
判定手段が、前記動きベクトルの信頼度を、前記相関に関する評価値に基づいて判定する判定工程と、を有し、
前記判定工程において前記判定手段は、前記第１の画像と前記第２の画像を撮影した際の撮像光学系の合焦距離の差によって前記信頼度が低く判定されることを抑制するように前記判定を行うことを特徴とする画像処理方法。
【請求項１０】
コンピュータを、請求項１から請求項６のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置および画像処理方法に関し、特には動きベクトル検出技術に関する。
【背景技術】
【０００２】
画像間における動きベクトルを検出するための方法として、テンプレートマッチング法が知られている。テンプレートマッチング法は、一方の画像の部分領域をテンプレート画像として、他方の画像内のテンプレート画像との相関が最も大きくなる部分領域を探索し、部分領域間の位置の差を動きベクトルとして検出する方法である（特許文献１）。探索範囲を限定したり、テンプレート画像を複数用いたりすることもある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−２２４８５４
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１では、画像領域間の相関を、絶対差分和(Sum of Absolute Difference: SAD)の大きさによって評価し、テンプレート画像とのＳＡＤが最小となる領域を探索している。また、検出した動きベクトルの信頼度を、ＳＡＤと予め定められた複数の閾値との大小関係によって判定している。
【０００５】
しかしながら、ＳＡＤのような画素値の差分に基づく相関評価値は、合焦距離もしくは画像内の合焦位置が異なる場合のように、画像間にぼけ具合の差がある場合、差が無い場合よりも全体的に大きくなる。そのため、相関評価値と固定の閾値との大小関係に基づいて動きベクトルの信頼度を評価すると、実際の信頼度よりも低く評価されるおそれがある。
【０００６】
本発明はこのような従来技術の問題点に鑑みてなされたものであり、画像間の相関に基づいて検出された動きベクトルの信頼度を精度よく判定できる画像処理装置および画像処理方法の提供を目的とする。
【課題を解決するための手段】
【０００７】
上述の目的は、第１の画像と第２の画像との動きベクトルを、第１の画像および第２の画像の相関に基づいて検出する検出手段と、動きベクトルの信頼度を、相関に関する評価値に基づいて判定する判定手段と、を有し、判定手段は、第１の画像と第２の画像のボケ量の差によって信頼度が低く判定されることを抑制するように判定を行うことを特徴とする画像処理装置によって達成される。
【発明の効果】
【０００８】
このような構成により、本発明によれば、画像間の相関に基づいて検出された動きベクトルの信頼度を精度よく判定できる画像処理装置および画像処理方法を提供することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る画像処理装置の一例としてのデジタルカメラの機能構成例を示すブロック図
【図２】図１の動きベクトル検出部の機能構成例を示すブロック図
【図３】実施形態における動きベクトル検出部の動作に関するフローチャート
【図４】被写体距離と像距離との関係を示す模式図
【図５】実施形態におけるテンプレートマッチング処理に関する模式図
【図６】被写体距離とボケ量の関係例を示す模式図
【図７】実施形態におけるブロックの例を示す模式図
【図８】実施形態における動きベクトルの信頼度判定処理に関する模式図
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら本発明の例示的な実施形態を詳細に説明する。なお、以下では本発明の実施形態に係る画像処理装置の一例としてのデジタルカメラに関して説明するが、本発明において撮像や撮像画像の記録に関する機能は必須でない。本発明は、動きベクトルを検出するための複数の画像と、被写体距離に関する情報とを取得可能な任意の電子機器において実施可能である。このような電子機器の例には、デジタルスチルまたはビデオカメラ、パーソナルコンピュータ、ゲーム機、携帯電話機、携帯情報端末、カーナビゲーションシステム、ドライブレコーダ、ロボットなどが含まれるが、これらに限定されない。
【００１１】
（デジタルカメラの構成）
図１は、本発明の実施形態に係る画像処理装置の一例としてのデジタルカメラ１００の機能構成例を示すブロック図である。デジタルカメラ１００は、撮像光学系１０１、撮像素子１０２、フォーカスレンズ制御部１０３、防振レンズ制御部１０４、システム制御部１０５、Ａ／Ｄ変換器１０６、メモリ部１０７、画像処理部１０８、操作部１１３、表示部１１４、記録部１１５を有する。
【００１２】
撮像光学系１０１は、フォーカスレンズ、防振レンズを含む複数のレンズ、および絞りを有し、撮像素子１０２の撮像面に被写体の光学像を形成する。フォーカスレンズ制御部１０３は、システム制御部１０５の制御に従ってフォーカスレンズを駆動し、撮像光学系の合焦距離を変化させる。なお、フォーカスレンズの位置は、ピントリングの回転動作によって手動で変更されてもよい。防振レンズ制御部１０４はシステム制御部１０５の制御に従って防振レンズを駆動し、光学的手ブレ補正機能を実現する。
【００１３】
撮像素子１０２は、例えば原色ベイヤー配列のカラーフィルタを備えたＣＣＤまたはＣＭＯＳイメージセンサである。撮像素子１０２には複数の画素が例えば行列状に２次元配列されている。各画素は１つまたは複数のフォトダイオードまたは光電変換領域を有し、受光量に応じた電圧を有するアナログ電気信号をＡ／Ｄ変換器１０６に出力する。Ａ／Ｄ変換器１０６は、撮像素子１０２からのアナログ信号をデジタル信号に変換し、画像処理部１０８に出力する。
【００１４】
システム制御部１０５はＣＰＵのようなプログラマブルプロセッサを有し、メモリ部１０７に格納されている制御プログラムを実行して、デジタルカメラ１００の各構成要素の動作を制御し、デジタルカメラ１００の機能を実現する。また、システム制御部１０５は、デジタルカメラ１００の構成要素間のデータや信号の入出力制御も行う。
【００１５】
メモリ部１０７は、不揮発性領域と揮発性領域とを有する。不揮発性領域には、基本ソフト、システム制御部１０５と画像処理部１０８が後述する各種制御や信号処理を実行するためのプログラム、プログラムの実行に伴って使用される各種データが格納される。揮発性領域は、プログラムをロードしたり、一時的なデータを格納したりするためのワークエリアとして用いられる。本実施形態において揮発性領域に一時記憶されるデータには、例えば、距離マップ１０７１、現像処理後の画像データ１０７２、フォーカスレンズ位置１０７３などがあるが、これらに限定されない。また、フォーカスレンズ位置データは撮影時の合焦距離を表す情報の一例であり、具体的な距離を表す数値など、他の型式であってもよい。なお、不揮発性領域と揮発性領域とは、それぞれ別個のメモリ素子によって実現されてよい。
【００１６】
画像処理部１０８は、現像処理部１０９、追尾情報生成部１１０、距離マップ生成部１１１、動きベクトル検出部１１２を有する。画像処理部１０８が有する各部の少なくとも一部は、プログラマブルロジックアレイやＡＳＩＣのようなハードウェア回路により実現されてもよいし、システム制御部１０５がプログラムを実行することにより実現されてもよい。
【００１７】
画像処理部１０８は、システム制御部１０５の制御に従って、Ａ／Ｄ変換器１０６から供給されるデジタル信号（画像データ）や、メモリ部１０７の揮発性領域に格納されている画像データに対して様々な画像処理を行う。現像処理部１０９では、ガンマ補正処理、ホワイトバランス調整処理、ＲＧＢ形式とＹＵＶ形式との変換処理、色補間処理（デモザイク処理）などを行う。現像処理部１０９は、処理後の画像データを動きベクトル検出部１１２およびメモリ部１０７に出力する。なお、処理負荷の軽減や、用途に適した解像度とするために、現像処理部１０９は画像処理の適用前や出力直前に画像データの画素数を削減してもよい。また、現像処理部１０９は、メモリ部１０７に出力する画像データと、動きベクトル検出部１１２に出力する画像データとで解像度を異ならせてもよい。
【００１８】
追尾情報生成部１１０は、操作部１１３で指定された領域や、顔検出処理などの人体検出処理を行って検出した領域などの被写体領域の位置を、例えば動画像フレームのように時系列に沿った複数の画像内で探索し、検出された被写体領域の位置情報を生成する。システム制御部１０５は、被写体領域の位置情報に基づいて焦点検出領域を設定して自動焦点検出を行うことにより、特定の被写体に対する合焦状態を維持する被写体追尾機能を実現する。
【００１９】
動きベクトル検出部１１２は、動画像フレームのように撮影時刻の異なる画像間の動きベクトルを検出し、動きベクトル情報（例えば、始点と終点の画像座標）をシステム制御部１０５に出力する。システム制御部１０５は、動きベクトル情報に基づいて防振レンズ制御部１０４を制御することにより、防振レンズを駆動し、手ブレ補正機能を実現する。動きベクトル検出部１１２の構成および動作の詳細については後述する。
【００２０】
また、本実施形態において画像処理部１０８は、画像データに基づいて、被写体までの距離情報を表す距離マップを生成する距離マップ生成部１１１を有する。距離マップは、任意の公知技術に基づいて生成可能である。例えば、撮像素子１０２の画素が瞳分割機能を有し、１対の視差画像を得ることが可能な場合には、視差画像の相関が最大となる視差と画素ピッチなどの情報に基づいて画素ごとに被写体距離を求めることができる。
【００２１】
あるいは、フォーカスレンズの位置を変更しながら順次撮影した画像における合焦領域を例えばコントラスト評価値などに基づいて検出することによっても、画素ごとに被写体距離を求めることができる。さらに、被写体を照射する光源を用いて、ＴＯＦ(Time of Flight)方式やパターン照射方式などによって距離マップを生成してもよい。なお、距離マップは撮像素子１０２で得られた画像データに基づかない方法で生成されてもよい。本実施形態では、画素位置の被写体距離を画素の輝度で表す距離画像の形式で距離マップを生成するものとするが、他の型式であってもよい。
【００２２】
画像処理部１０８はここで説明した以外にも、画像データの符号化処理や復号処理、視覚的な効果を加えるための画像処理、画像合成処理など、様々な画像処理を行うことができる。
【００２３】
操作部１１３は、ユーザが撮影パラメータの設定や撮影動作などの操作指示をデジタルカメラ１００に入力するための、各種スイッチ、ダイヤル、ボタン、タッチパネルなどの入力デバイス群である。操作部１１３からの入力はシステム制御部１０５で検知される。
【００２４】
表示部１１４は、例えば液晶ディスプレイ（ＬＣＤ）等であり、システム制御部１０５から転送される各種の画像やデジタルカメラ１００の情報などを表示する。表示される画像には、ライブビュー画像、記録部１１５から読み出された画像、設定画面などＧＵＩに関する画像などがある。
【００２５】
記録部１１５は、システム制御部１０５の制御に従い、例えばメモリカード等の着脱可能な記録媒体に対するデータの読み書きを行う。
【００２６】
（動きベクトルの検出）
図２は、動きベクトル検出部１１２の機能構成を模式的に示したブロック図である。動きベクトル検出部１１２はシステム制御部１０５のＣＰＵがソフトウェアを実行することによって実現されてもよいし、ＡＳＩＣやプログラマブルロジックアレイのようなハードウェア回路によって実現されてもよい。動きベクトル検出部１１２は、入力部２０１、マッチング部２０８、距離算出部２０９、ボケ量算出部２１０、閾値制御部２１１、信頼度判定部２１２、動きベクトル算出部２１３、出力部２１４を有している。
【００２７】
以下の説明では、動きベクトルを検出する複数の画像が、例えばライブビュー画像のような動画を形成するフレーム画像のうち、第Ｎフレームと第（Ｎ＋１）フレーム（Ｎは自然数）の連続する２フレームであるものとする。しかしながら、以下に説明する動きベクトル検出方法は、連続する動画フレームに限らず、任意の画像間に対して実施可能である。また、第（Ｎ＋１）フレームが撮像素子１０２で撮影された最新のフレーム（現在のフレーム）であるものとし、第Ｎフレーム以前の過去のフレームに関する距離マップ、画像データ、フォーカスレンズ位置はメモリ部１０７に記憶されているものとする。
【００２８】
入力部２０１は、第Ｎフレームについての画像データ２０２、撮影時のフォーカスレンズ位置２０４、距離マップ２０６をメモリ部１０７から取得する。入力部２０１はまた、第（Ｎ−１）フレームについて、画像データ２０３を現像処理部１０９から、フォーカスレンズ位置２０５をシステム制御部１０５から、距離マップ２０７を距離マップ生成部１１１から取得する。
【００２９】
マッチング部２０８は第Ｎフレームの画像データ２０２からテンプレート画像を生成し、第（Ｎ＋１）フレームの画像データ２０３の少なくとも一部を参照画像としたテンプレートマッチングを行う。そして、テンプレート画像と参照画像との相関が最も高くなる、テンプレート画像のずらし量（動きベクトル）を検出し、相関の評価値とともに信頼度判定部２１２に出力する。詳細については後述する。
【００３０】
距離算出部２０９は撮影時のフォーカスレンズ位置に基づいて、第Ｎフレームの画像データ２０２と第（Ｎ−１）フレームの画像データ２０３で合焦している被写体の距離（以下、被写体距離または合焦距離という）を算出し、ボケ量算出部２１０に出力する。
【００３１】
ボケ量算出部２１０は、距離算出部２０９で算出された被写体距離、第Ｎフレームの距離マップ２０６、および第（Ｎ−１）フレームの距離マップ２０７に基づいて、フレーム画像間のボケ量の差分を算出し、閾値制御部２１１に出力する。
【００３２】
閾値制御部２１１は、ボケ量算出部２１０で算出されたボケ量の差分に基づいて、信頼度判定のための閾値を算出し、信頼度判定部２１２に出力する。
信頼度判定部２１２は、マッチング部２０８が出力するフレーム画像間の相関評価値と、閾値制御部２１１が出力する閾値とに基づいてマッチング結果（動きベクトル）の信頼度を判定し、判定結果を動きベクトル算出部２１３に出力する。
【００３３】
動きベクトル算出部２１３は、信頼度判定部２１２で信頼度が高いと判定されたマッチング結果に基づく動きベクトルを出力部２１４に出力する。出力部２１４は、システム制御部１０５に動きベクトルのデータ（例えば水平方向成分と垂直方向成分）を出力する。
【００３４】
（動きベクトルの検出）
次に、本実施形態における動きベクトル検出部１１２の動作について、図２に加え、図３に示すフローチャートなどを用いて説明する。
Ｓ３０１において入力部２０１は、入力された第Ｎフレームの画像データ２０２、第（Ｎ＋１）フレームの画像データ２０３を、任意のｍ個（ｍは１以上の整数）のブロックに分割し、処理をＳ３０２へ進める。
【００３５】
Ｓ３０２で距離算出部２０９は、第Ｎフレームの画像データ２０２および第（Ｎ＋１）フレームの画像データ２０３のそれぞれについて、合焦している被写体距離を撮影時のフォーカスレンズ位置２０４，２０５に基づいて算出する。第（Ｎ＋１）フレームのフォーカスレンズ位置２０５は入力部２０１がシステム制御部１０５から取得し、第Ｎフレームのフォーカスレンズ位置２０４は入力部２０１がメモリ部１０７から取得する。図４に示すように、ピントを合わせている被写体４０１とレンズ４０２との間の距離を被写体距離Ｄｆ、レンズ４０２と撮像素子４０３（像面）との間の距離を像距離Ｄｓとし、焦点距離をＦとすると、式１の関係が成り立つ。
【数１】
0006564284.tif 000002
なお、撮像光学系１０１のようにレンズが複数存在する場合は、被写体距離や像距離をレンズの主点からの距離とする。フォーカスレンズ位置が変わると像距離Ｄｓが変わるため、フォーカスレンズ位置に応じた像距離Ｄｓを式１に代入することで、被写体距離Ｄｆを算出することができる。なお、撮像光学系１０１の焦点距離Ｆはシステム制御部１０５を通じて取得してもよいし、メモリ部１０７に記憶されている値を取得してもよい。また、焦点距離Ｆが固定であれば距離算出部２０９が有していてもよい。
【００３６】
Ｓ３０３でマッチング部２０８は、Ｓ３０１で分割したブロックごとにテンプレートマッチング処理を行う。具体的には、マッチング部２０８は図５（ａ）に示すように、第Ｎフレームのブロックからテンプレート画像５０１を生成し、テンプレート画像５０１の位置に基づく第（Ｎ＋１）フレームの部分領域である参照画像５０２内でテンプレートマッチングを行う。テンプレート画像５０１（第１の画像）は、ブロックよりも小さい、予め設定されたサイズの領域であり、例えば、ブロック内の任意の設定された位置、もしくは顔領域などの特徴領域の位置に基づいて設定することができる。一方、参照画像５０２（第２の画像）はテンプレート画像５０１と中心の座標を同じくする、テンプレート画像５０１よりも大きなサイズの画像領域である。マッチング部２０８は、テンプレート画像５０１と参照画像５０２のテンプレートマッチングの評価値として、相関評価値の一つである差分絶対値和（ＳＡＤ）を用いたＳ＿ＳＡＤを算出する。評価値Ｓ＿ＳＡＤの計算式を式２に示す。
【数２】
0006564284.tif 000003
式２において、ｆ（ｉ，ｊ）はテンプレート画像５０１内の座標（ｉ，ｊ）における画素値を表しており、ｇ（ｉ，ｊ）は参照画像５０２において相関値算出の対象となる、テンプレート画像と同じ大きさの領域内の各画素値を表す。式２に示すように、２つの画像内の同じ座標の画素値ｆ（ｉ，ｊ）とｇ（ｉ，ｊ）との差の絶対値を順次計算し、その総和を評価値Ｓ＿ＳＡＤとする。従って、評価値Ｓ＿ＳＡＤの値が小さいほど２つの画像の相関が高いこと、つまり、評価値を算出した参照画像５０２内の領域と、テンプレート画像５０１とのテクスチャが類似していることを示す。
【００３７】
参照画像５０２の内部でテンプレート画像５０１を水平方向および垂直方向に１画素ずつずらしながら、式２による評価値Ｓ＿ＳＡＤ値の算出を繰り返していくと、評価値Ｓ＿ＳＡＤがずらし量に応じて例えば図５（ｂ）の曲線５０３に示すように変化する。例えば水平方向におけるずらし量について図５（ｂ）の結果が得られた場合、評価値Ｓ＿ＳＡＤ値の最小値５０４に対応するずらし量で相関が最も高いことが分かる。垂直方向のずらし量ごとに曲線５０３を求め、全ての曲線５０３のうちで評価値Ｓ＿ＳＡＤが最小となる垂直方向および水平方向のずらし量を検出することにより、相関が最大となる水平及び垂直方向におけるずらし量を検出できる。このずらし量は動きベクトルの水平方向成分および垂直方向成分であるため、相関が最大となる水平及び垂直方向におけるずらし量の検出は、実質的には動きベクトルの検出である。なお、マッチングの評価値は、ＳＡＤ以外に、差分二乗和（ＳＳＤ）や正規化相互相関（ＮＣＣ）を用いたものなど、相関に応じた値が得られる他の演算を用いたものであってもよい。マッチング部２０８は、相関が最も高くなるずらし量と、そのときの評価値をマッチング結果として信頼度判定部２１２に出力する。
【００３８】
Ｓ３０４でボケ量算出部２１０は、第Ｎフレームおよび第（Ｎ＋１）フレームについて、Ｓ３０２で距離算出部２０９が算出した被写体距離Ｄｆと入力部２０１が取得した距離マップとに基づき、テンプレート画像５０１および参照画像５０２のボケ量を算出する。被写体距離Ｄｆにピントを合わせて撮影した画像における、被写体距離Ｄｏの像のボケ量Ｂは、以下の式３で求めることができる。
【数３】
0006564284.tif 000004
式３において、Ｉはレンズの有効直径（絞り）、Ｆは撮像光学系１０１の焦点距離、Ｐは画像の水平画素数、Ｗは撮像素子の水平幅である。式３において、レンズの有効直径Ｉ、焦点距離Ｆ、画像の水平画素数Ｐ、撮像素子の水平幅Ｗおよびピントを合わせた被写体距離Ｄｆは、撮像された画像全体に共通する値である。一方、ボケ量を算出する被写体距離Ｄｏは、画素ごとに変化しうる値である。
【００３９】
本実施形態においてボケ量算出部２１０は、テンプレート画像５０１に対応する被写体距離Ｄｏとして、第Ｎフレームの距離マップからテンプレート画像５０１の各画素に対応する被写体距離を取得し、その平均値を算出する。そして、ボケ量算出部２１０は平均被写体距離を式３の被写体距離Ｄｏに代入して、テンプレート画像５０１のボケ量を算出する。
【００４０】
同様にボケ量算出部２１０は、参照画像５０２に対応する被写体距離Ｄｏとして、第（Ｎ＋１）フレームの距離マップから参照画像５０２の各画素に対応する被写体距離を取得し、その平均値を算出する。そして、ボケ量算出部２１０は平均被写体距離を式３の被写体距離Ｄｏに代入して、参照画像５０２のボケ量を算出する。
【００４１】
そしてＳ３０５でボケ量算出部２１０は、Ｓ３０４で算出した、テンプレート画像５０１に対応するボケ量と、参照画像５０２に対応するボケ量との差分を算出する。ボケ量の差分は、２つの画像間のテクスチャの異なり度合を表す。
【００４２】
図６は、第Ｎフレームの画像データ２０２と、第（Ｎ＋１）フレームの画像データ２０３に関する、ボケ量と被写体距離の関係例である。実線６０１は、第Ｎフレームの画像データ２０２のボケ量を、破線６０２は、第（Ｎ＋１）フレームの画像データ２０３のボケ量をそれぞれ示している。第Ｎフレームの画像データ２０２、第（Ｎ＋１）フレームの画像データ２０３とも、撮影時にピントを合わせた被写体距離６０３，６０４でボケ量はゼロになり、被写体距離６０３，６０４から離れるほどボケ量は大きくなる。また、被写体距離６０３，６０４との差に応じたボケ量の変化は至近側の方が大きく、無限遠側では差がある一定の値以上になるとボケ量はほとんど変化しなくなる。
【００４３】
図７は、第Ｎフレームの画像データ２０２、第（Ｎ＋１）フレームの画像データ２０３におけるブロックとテンプレート画像、参照画像の位置関係の例を示した図である。例えば、図７に示すようなブロック７０１、７０２、７０３内から抽出したテンプレート画像５０１と参照画像５０２に対応する平均被写体距離が、それぞれ図６に示す被写体距離６０５、６０６、６０７であったとする。このとき、ブロック７０１のテンプレート画像５０１と参照画像５０２のボケ量の差分は、矢印６０８で示すように比較的大きく、ブロック７０２では差分なし、ブロック７０３では、矢印６０９で示すように比較的小さくなる。なお、ここでは３つのブロックについて代表的に説明したが、ボケ量およびその差分の算出は各ブロックに対して実行される。
【００４４】
次に、Ｓ３０６で閾値制御部２１１は、処理対象のブロックにおけるマッチング結果の信頼度判定用の閾値Ｔｆを、Ｓ３０５で算出されたボケ量の差分を用いて以下の式４によって算出する。
Ｔｆ＝Ｔｓ＋Ｔｃ
Ｔｃ＝α×Ｂｄ                  ・・・（式４）
ここで、Ｔｓはボケ量に差が無い画像間でのマッチング結果に適用するために予め設定された閾値（基準閾値）であり、Ｔｃは基準閾値を動的に制御（補正）するための閾値制御量である。また、ＢｄはＳ３０５で算出したボケ量の差分、係数αはボケ量の差分Ｂｄを閾値と同じスケールに変換するための調整パラメータである。閾値制御部２１１は算出した閾値Ｔｆを信頼度判定部２１２に出力する。
【００４５】
Ｓ３０７で信頼度判定部２１２は、Ｓ３０６で閾値制御部２１１が算出した閾値に基づいて、Ｓ３０３でマッチング部２０８が出力したマッチング結果の信頼度、すなわち検出された動きベクトルの信頼度、を判定する。信頼度判定部２１２は、マッチング結果として取得した評価値と閾値との大小関係によりマッチング結果の信頼度を判定する。ここでは、値が小さいほど相関が高いことを示すＳ＿ＳＡＤを評価値として用いているため、図８（ａ）に示すように、信頼度判定部２１２は評価値８０１が基準閾値８０２より小さい場合にマッチング結果の信頼度が高いと判定する。なお、図８では図５（ｂ）と同様の、ずらし量と評価値との関係を示す曲線を示しているが、これはマッチング部２０８が出力する評価値が最小値であることを示すための単なる表現である。
【００４６】
上述の通り、本実施形態ではマッチング結果（動きベクトル）の信頼度を、相関の評価値と閾値との大小関係に応じて判定する構成において、マッチングを行った画像のボケ量の差による評価値の変動を考慮した判定を行うことを特徴とする。そして、そのような判定を実現する具体例として、信頼度の判定に用いる閾値を画像のボケ量の差に応じて変更している。ボケ量の差は、画像撮影時における撮像光学系の合焦距離の差によって生じるため、撮像光学系の合焦距離の差に応じて閾値を変更しているともいえる。
【００４７】
図８（ｂ）は、ボケ量に応じた閾値制御および判定結果の例を示す図である。例えば、図７のブロック７０１〜７０３におけるボケ量の差が図６の６０５〜６０７で示される場合を考える。この場合、ボケ量の差が大きいほど、評価値は全体的に大きくなるため、ブロック７０１〜７０３のマッチング結果として得られる評価値は例えば図８（ｂ）の評価値８０３，８０５，８０４のような大小関係になる。
【００４８】
ボケ量の差６０６がないブロック７０２については、基準閾値８０２がそのまま用いられ、信頼度が高いと判定される。一方、評価値８０３および８０４は、基準閾値８０２より大きいため、従来であれば信頼度は低いと判定される。しかしながら、ボケ量の差に応じて基準閾値より大きな閾値８０６，８０７を用いるようにすることで、図８（ｂ）の例では評価値８０３および８０４はいずれも信頼度が高いと判定される。このように、本実施形態によれば、参照画像とテンプレート画像のボケ量の差の影響によって、信頼度の高いマッチング結果を信頼度が低いと誤判定することを抑制することができる。信頼度判定部２１２は、判定結果を表すデータと、マッチング部２０８から評価値と共に供給されたずらし量とを動きベクトル算出部２１３に出力する。
【００４９】
次に、Ｓ３０８で動きベクトル算出部２１３は、Ｓ３０７で信頼度判定部２１２によって、対象のブロックにおけるマッチング結果の信頼度が高いと判定されたか否かを調べる。マッチング結果の信頼度が高いと判定されていれば、処理をＳ３０９に進めてブロックについての動きベクトルを算出する。
【００５０】
Ｓ３０９で動きベクトル算出部２１３は、マッチング処理において最も高い相関が得られたずらし量から、動きベクトルを算出する。動きベクトルの算出方法に制限は無く、例えばマッチング部２０８から得られる水平方向および垂直方向のずらし量をそのまま動きベクトルを表すデータとして利用する場合には、Ｓ３０９の処理は不要である。一方、動きベクトルを大きさと方向（角度）で表す場合には、動きベクトル算出部２１３で水平方向および垂直方向のずらし量から算出する。動きベクトル算出部２１３は、算出した動きベクトルを出力部２１４からシステム制御部１０５に出力する。あるいは、全ブロックについて処理が終了するまで、算出結果をメモリ部１０７に蓄積してもよい。
【００５１】
一方、マッチング結果の信頼度が高いと判定されていない（あるいは、信頼度が低いと判定されている）ことがＳ３０８で分かった場合、動きベクトル算出部２１３は動きベクトルを算出せず（あるいは出力せず）に処理をＳ３１０に進める。このように、信頼度が高くない動きベクトルは無効とする。
【００５２】
Ｓ３１０で動きベクトル算出部２１３は、Ｓ３０１で分割したブロックのうち、Ｓ３０３以降の処理を行っていない未処理ブロックがあるか否か判定する。そして、動きベクトル検出部１１２は、未処理ブロックがあると判定されれば未処理ブロックを対象としてＳ３０３からの処理を繰り返し、未処理ブロックがないと判定されれば動きベクトル検出処理を終了する。
【００５３】
動きベクトル検出部１１２による動きベクトル検出処理が終了すると、検出された動きベクトルはシステム制御部１０５へ出力される。システム制御部１０５は、検出された動きベクトルの例えばヒストグラムに基づいて、デジタルカメラ１００の動きを示すグローバル動きベクトルを算出する。そして、システム制御部１０５は、算出したグローバル動きベクトルを防振レンズ制御部１０４に出力する。防振レンズ制御部１０４はグローバル動きベクトルから防振のためのレンズシフト量を決定し、防振レンズの駆動制御を行う。
【００５４】
以上説明したように、本実施形態によれば、パターンマッチングに用いたテンプレート画像のボケ量と参照画像のボケ量との差を考慮して、パターンマッチング結果の信頼度を判定するようにした。より具体的には、ボケ量の差がパターンマッチングの結果を表す評価値に与える影響を考慮してパターンマッチング結果の信頼度を判定するようにした。そのため、ボケ量の差に起因した信頼度の誤判定を抑制することができ、移動被写体にフォーカスを追尾させながら撮影された動画フレームのような、合焦位置が異なる画像間における動きベクトルの算出精度の低下を抑制することが可能になる。従って、動きベクトルを用いた各種機能、例えば防振機能や被写体追尾機能などの精度を向上させることが可能となる。
【００５５】
（他の実施形態）
なお、上述の実施形態では、信頼度判定に用いる閾値をボケ量の差に応じて調整する構成について説明した。しかし、閾値を調整する代わりに、閾値と比較する評価値Ｓ＿ＳＡＤの値をボケ量の差に応じて調整するように構成してもよい。具体的には、ボケ量の差が大きいほど、評価値の低減量を大きくするように補正すればよい。これによっても、ボケ量の差が大きい場合に信頼度が低く判定されやすくなることを抑制できる。
【００５６】
また、上述の実施形態では、Ｓ３０５で算出したボケ量の差分の大きさにかかわらず、信頼度の判定に関するＳ３０６〜Ｓ３０８の処理を行う例を説明した。しかし、テンプレートマッチングが失敗している可能性が高いと判定できる程度にボケ量の差分が大きい場合（ボケ量の差分が所定値以上の場合）は、Ｓ３０６〜Ｓ３０８の処理を省略するようにしてもよい。ボケ量およびその差分算出に関するＳ３０４〜Ｓ３０５の処理を、Ｓ３０３のテンプレートマッチング処理の前に行い、ボケ量の差分が所定値以上の場合はテンプレート処理を含む、以降の処理を省略して、次の未処理ブロックに処理の対象を変更してもよい。また、図３のフローチャートにおいて時系列的に示した工程の一部は、並列処理したり、違う順序で実行したりすることもできる。
【００５７】
さらに、上述の実施形態では、距離マップや被写体距離を生成もしくは算出する構成について説明したが、これらの情報は必ずしも生成もしくは算出しなくてもよい。例えば、動画データの記録時もしくは記録後にこれらの情報が既に生成されて利用可能な場合には、生成済みの情報を取得すればよい。また、距離マップの生成や被写体距離の算出を他の装置で行ってもよい。従って、本発明において距離マップの生成や被写体距離の算出に係る構成は必須では無い。
【００５８】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５９】
１００…デジタルカメラ、１０１…撮像光学系、１０２…撮像素子、１０５…システム制御部、１０７…メモリ部、１０８…画像処理部、１１１…距離マップ生成部、１１２…動きベクトル検出部、１１３…操作部、１１４…表示部
【図１】
0006564284.tif 000005
【図２】
0006564284.tif 000006
【図３】
0006564284.tif 000007
【図４】
0006564284.tif 000008
【図５】
0006564284.tif 000009
【図６】
0006564284.tif 000010
【図７】
0006564284.tif 000011
【図８】
0006564284.tif 000012