(57)【要約】      （修正有）【課題】動きベクトルの検出性能を向上させることができる画像処理装置を提供する。【解決手段】デジタルカメラ１０の画像処理装置１００は、入力画像としての基準画像及び参照画像のそれぞれに対して複数の異なる解像度の各階層の画像を生成する階層画像生成部１０４と、各階層の基準画像に対して、テンプレート領域の位置及び大きさを設定するテンプレート領域設定部１１０と、各階層の参照画像に対して、サーチ領域の位置及び大きさを設定するサーチ領域設定部１１１と、テンプレート領域とサーチ領域の相関値演算によって動きベクトルを算出する動きベクトル算出部１０６と、動きベクトルの信頼度を算出する信頼度算出部１０７とを備える。より低解像度の階層の画像について算出された動きベクトルの信頼度に基づいてテンプレート領域の大きさを設定するとともに、サーチ領域の位置及び大きさを設定する。【選択図】図１
2018072942.tif 000002
【特許請求の範囲】
【請求項１】
入力画像としての基準画像および参照画像のそれぞれに対して複数の異なる解像度の各階層の画像を生成する階層画像生成手段と、
前記階層画像生成手段により生成された各階層の基準画像に対して、テンプレート領域の位置および大きさを設定するテンプレート領域設定手段と、
前記階層画像生成手段により生成された各階層の参照画像に対して、サーチ領域の位置および大きさを設定するサーチ領域設定手段と、
前記テンプレート領域と前記サーチ領域の相関値演算によって動きベクトルを算出する動きベクトル算出手段と、
前記動きベクトルの信頼度を算出する信頼度算出手段と、
を備え、
前記テンプレート領域設定手段は、より低解像度の階層の画像について算出された前記動きベクトルの信頼度に基づいて前記テンプレート領域の大きさを設定するとともに、前記サーチ領域設定手段は、前記より低解像度の階層の画像について算出された前記動きベクトルの信頼度に基づいて前記サーチ領域の位置および大きさを設定することを特徴とする画像処理装置。
【請求項２】
前記各階層の画像を複数の画像領域に分割する分割手段をさらに備え、前記テンプレート領域設定手段は、前記画像領域ごとに算出された前記動きベクトルの信頼度に基づいて画像領域ごとに前記テンプレート領域の大きさを設定するとともに、前記画像領域ごとに算出された前記動きベクトルの信頼度に基づいて画像領域ごとに前記サーチ領域の位置および大きさを設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記信頼度算出手段は、前記動きベクトル算出手段から得られる相関値演算の結果に基づいて、前記動きベクトルの信頼度を算出することを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記信頼度算出手段は、複数の動きベクトルの信頼度を加重加算することにより、最終的な動きベクトルの信頼度を算出することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記信頼度算出手段は、複数の動きベクトルの信頼度の優先度に応じて、最終的な動きベクトルの信頼度を算出することを特徴とする請求項３に記載の画像処理装置。
【請求項６】
前記信頼度算出手段は、前記動きベクトル算出手段から得られる相関値の最大値が大きくなるにつれて、前記動きベクトルの信頼度を高く算出することを特徴とする請求項３に記載の画像処理装置。
【請求項７】
前記信頼度算出手段は、前記動きベクトル算出手段から得られる相関値の最大値と最小値との差分が大きくなるにつれて、前記動きベクトルの信頼度を高く算出することを特徴とする請求項３に記載の画像処理装置。
【請求項８】
前記信頼度算出手段は、前記動きベクトル算出手段から得られる相関値の最大値と最小値との差分に対する、相関値の最大値と平均値との差分の比率が大きくなるにつれて、前記動きベクトルの信頼度を高く算出することを特徴とする請求項３に記載の画像処理装置。
【請求項９】
前記信頼度算出手段は、前記動きベクトル算出手段から得られる相関値の最大値と、少なくとも一つの相関値の極小値との差分が大きくなるにつれて、前記動きベクトルの信頼度を高く算出することを特徴とする請求項３に記載の画像処理装置。
【請求項１０】
前記テンプレート領域設定手段は、前記動きベクトルの信頼度が高くなるにつれて、次に処理する階層の基準画像に対するテンプレート領域の大きさを、１つ前に処理した階層の基準画像に対するテンプレート領域の大きさよりも小さく設定することを特徴とする請求項１に記載の画像処理装置。
【請求項１１】
前記サーチ領域設定手段は、前記動きベクトルの信頼度が高くなるにつれて、次に処理する階層の参照画像に対するサーチ領域の大きさを、１つ前に処理した階層の参照画像に対するサーチ領域の大きさよりも小さく設定することを特徴とする請求項１に記載の画像処理装置。
【請求項１２】
前記サーチ領域設定手段は、前記動きベクトルの信頼度が高くなるにつれて、次に処理する階層の参照画像に対するサーチ領域の位置を、前記動きベクトルの方向に沿って、前記テンプレート領域の中心からより遠い位置に設定することを特徴とする請求項１に記載の画像処理装置。
【請求項１３】
入力画像としての基準画像および参照画像のそれぞれに対して複数の異なる解像度の各階層の画像を生成する階層画像生成工程と、
前記階層画像生成工程により生成された各階層の基準画像に対して、テンプレート領域の位置および大きさを設定するテンプレート領域設定工程と、
前記階層画像生成工程により生成された各階層の参照画像に対して、サーチ領域の位置および大きさを設定するサーチ領域設定工程と、
前記テンプレート領域と前記サーチ領域の相関値演算によって動きベクトルを算出する動きベクトル算出工程と、
前記動きベクトルの信頼度を算出する信頼度算出工程と、
を有し、
前記テンプレート領域設定工程では、より低解像度の階層の画像について算出された前記動きベクトルの信頼度に基づいて前記テンプレート領域の大きさを設定するとともに、前記サーチ領域設定工程では、前記より低解像度の階層の画像について算出された前記動きベクトルの信頼度に基づいて前記サーチ領域の位置および大きさを設定することを特徴とする画像処理方法。
【請求項１４】
請求項１３に記載の画像処理方法の各工程をコンピュータに実行させるためのプログラム。
【請求項１５】
請求項１３に記載の画像処理方法の各工程をコンピュータに実行させるためのプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のフレーム画像間で動きベクトルを検出する画像処理装置に関するものである。
【背景技術】
【０００２】
デジタルスチルカメラやデジタルビデオカメラ等の撮像装置を用いて撮影された映像に対して像ブレ補正やダイナミックレンジ拡大処理を施すためには、フレーム画像間の動き量を検出して複数枚の画像の位置合わせを行う必要がある。フレーム画像間の動き量を検出する方法としては、ジャイロセンサのような外部機器の情報を用いたり、撮影されたフレーム画像から動き量を推定したりする方法等がある。
【０００３】
フレーム画像を用いて動き量を推定する方法は従来から種々提案されているが、その代表的なものとしてテンプレートマッチングによる動きベクトル検出がある。動きベクトルの検出方法としては、次のような階層動きベクトル検出方法が知られている。階層動きベクトル検出では、入力された画像から解像度が互いに異なる複数の階層画像を生成する。そして、まず最も低解像度の階層画像から動きベクトルを検出し、低解像度の階層画像で検出された動きベクトルを参照しながら高解像度の階層画像で動きベクトルを検出する。
【０００４】
階層動きベクトル検出の利点は、低解像度の階層画像で検出された動きベクトルを参照することにより、高解像度の階層画像におけるサーチ領域を小さくし、テンプレート領域とサーチ領域の輝度分布の相関を算出するための演算を短縮できることである。一方欠点は、低解像度の階層画像で動きベクトルが正しく検出されなかった場合、高解像度の階層画像で誤った動きベクトルを参照することになり、最終的に正しい動きベクトルが得られないことである。
【０００５】
このような階層画像間における誤検出の伝搬を防ぐ方法として、特許文献１及び特許文献２には、動きベクトルの信頼度を判定し、信頼度の低い動きベクトルを、周囲の信頼度の高い動きベクトルを用いて修正する技術が開示されている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００１−１４８０１２号公報
【特許文献２】特開２００９−２８２７６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、低解像度の階層画像で信頼度の低い動きベクトルを修正するだけでは、階層動きベクトル検出における検出性能を十分に引き出せない問題がある。
【０００８】
テンプレートマッチングでは、テンプレート内の画角が小さいほど、テンプレート内に特徴的なテクスチャを含む確率が低くなり、信頼度の高い動きベクトルを検出できる可能性が低くなる。一方で、画角が大きいほど、特徴点以外の周辺領域の動きの影響を受けやすくなり、動きベクトルの検出精度は低下してしまう。
【０００９】
したがって、階層動きベクトル検出においては、両者の関係を考慮した上で、テンプレート領域の大きさを制御する必要がある。この点、特許文献１および特許文献２に開示されている方法では、そのような各階層画像のテンプレート領域の大きさについては言及されていない。
【００１０】
本発明は、上述した課題に鑑みてなされたものであり、その目的は、入力された画像から解像度の異なる複数の階層画像を生成して動きベクトルを検出する場合に、動きベクトルの検出性能を向上させることができる画像処理装置を提供することである。
【課題を解決するための手段】
【００１１】
本発明に係わる画像処理装置は、入力画像としての基準画像および参照画像のそれぞれに対して複数の異なる解像度の各階層の画像を生成する階層画像生成手段と、前記階層画像生成手段により生成された各階層の基準画像に対して、テンプレート領域の位置および大きさを設定するテンプレート領域設定手段と、前記階層画像生成手段により生成された各階層の参照画像に対して、サーチ領域の位置および大きさを設定するサーチ領域設定手段と、前記テンプレート領域と前記サーチ領域の相関値演算によって動きベクトルを算出する動きベクトル算出手段と、前記動きベクトルの信頼度を算出する信頼度算出手段と、を備え、前記テンプレート領域設定手段は、より低解像度の階層の画像について算出された前記動きベクトルの信頼度に基づいて前記テンプレート領域の大きさを設定するとともに、前記サーチ領域設定手段は、前記より低解像度の階層の画像について算出された前記動きベクトルの信頼度に基づいて前記サーチ領域の位置および大きさを設定することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、入力された画像から解像度の異なる複数の階層画像を生成して動きベクトルを検出する場合に、動きベクトルの検出性能を向上させることができる画像処理装置を提供することが可能となる。
【図面の簡単な説明】
【００１３】
【図１】本発明の画像処理装置の第１の実施形態であるデジタルカメラの構成を示すブロック図。
【図２】第１の実施形態のデジタルカメラの動作を示すフローチャート。
【図３】動きベクトルの信頼度とテンプレート領域の関係を説明する図。
【図４】動きベクトルの信頼度に基づくテンプレート領域を示す図。
【図５】動きベクトルの信頼度が低い場合のテンプレートサイズを説明する図。
【図６】動きベクトルの信頼度が高い場合のテンプレートサイズを説明する図。
【図７】動きベクトルの信頼度とサーチ領域の関係を説明する図。
【図８】テンプレートマッチングを説明する図。
【図９】相関値マップを説明する図。
【図１０】相関値マップの表現方法を説明する図。
【図１１】動きベクトルの信頼度を表わす相関値指標を説明する図。
【図１２】動きベクトルの信頼度の算出方法を説明する図。
【図１３】第２の実施形態のデジタルカメラの構成を示すブロック図。
【図１４】第２の実施形態のデジタルカメラの動作を示すフローチャート。
【図１５】第２の実施形態における領域分割処理を説明する図。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について、添付図面を参照して詳細に説明する。
【００１５】
＜第１の実施形態＞
図１は、本発明の画像処理装置の第１の実施形態であるデジタルカメラ（撮像装置）１０の構成を示すブロック図である。図１において、撮影光学系１０１はレンズおよび絞りなどを備えており、撮影の際、フォーカス調節および露出調節を行い、撮像素子１０２に光学像を結像させる。撮像素子１０２は、光学像を電気信号（アナログ画像信号）に変換する光電変換機能を有し、ＣＣＤやＣＭＯＳセンサ等で構成される。
【００１６】
カメラ信号処理部１０３は、不図示のＡ／Ｄ変換部、オートゲイン制御部（ＡＧＣ）およびオートホワイトバランス部を含み、撮像素子１０２から出力されたアナログ電気信号からデジタル映像信号（以下、入力画像という）を生成する。撮像素子１０２およびカメラ信号処理部１０３により、撮像により入力画像を生成する撮像部が構成される。また、図１中に破線で囲んだ部分により画像処理装置１００が構成される。
【００１７】
階層画像生成部１０４は、入力画像に対して周波数帯域制限のためのフィルタ処理とダウンサンプリングを行い、入力画像よりも解像度が段階的に低い複数の画像データ（以下、階層画像という）を生成する。なお、入力画像自体も１つの階層画像（最も高解像度の階層画像）として取得される。その結果、入力画像を用いて、入力画像を含む複数の階層画像が取得される。階層画像生成部１０４は、これら互いに異なる解像度の階層画像を階層画像保持部１０５ に格納する。
【００１８】
動きベクトル検出部（動きベクトル算出部）１０６は、階層画像生成部１０４および階層画像保持部１０５から入力される２つの同一解像度の階層画像（以下、一方を基準画像、もう一方を参照画像という）から、例えばテンプレートマッチングにより動きベクトルを検出する。信頼度算出部１０７は、動きベクトル検出部１０６から入力される動きベクトルに対して信頼度を算出する。
【００１９】
動きベクトル検出部１０６で検出された動きベクトルおよび信頼度算出部１０７で算出された信頼度（以下、動きベクトルとその動きベクトルの信頼度をまとめて動きベクトル情報という）を動きベクトル情報保持部１０８に格納する。動きベクトル制御部１０９は、テンプレート領域設定部１１０およびサーチ領域設定部１１１を有し、動きベクトル情報保持部１０８が保持する動きベクトル情報に基づいて動きベクトル検出部１０６を制御する。
【００２０】
テンプレート領域設定部１１０は、動きベクトル検出部１０６に入力される基準画像に対して、所定の位置に所定の大きさの矩形領域をテンプレート領域として設定する。サーチ領域設定部１１１は、動きベクトル検出部１０６に入力される参照画像に対して、所定の位置に所定の大きさの矩形領域をサーチ領域として設定する。
【００２１】
これらの構成要素１０４〜１１１を含む画像処理装置１００は、ＣＰＵやＭＰＵ等の画像処理用コンピュータにより構成され、図２にフローチャートで示す画像処理をコンピュータプログラムとしての画像処理プログラムに従って実行する。以下、画像処理装置１００の動作について、図２のフローチャートを参照して説明する。
【００２２】
ステップＳ２０１では、画像処理装置１００の階層画像生成部１０４は複数の階層画像を生成する。以下の説明では、階層画像生成部１０４が、入力画像（１／１画像）としての高解像度画像から、入力画像に対する１／２縮小画像である低解像度画像を生成するものとする。
【００２３】
ステップＳ２０２では、動きベクトル制御部１０９は処理対象となる階層画像を選択する。本実施形態では、低解像度画像から高解像度画像に順次処理するよう選択する。ステップＳ２０３では、ステップＳ２０２で選択した階層画像に対し、テンプレート領域設定部１１０がテンプレート領域を設定する。テンプレート領域の位置は、固定的に決めてもよいが、特徴点のようなベクトル検出に適したテクスチャを含むよう配置することが好ましい。例えば、階層画像保持部１０５から得られる階層画像を用いて特徴抽出を行い、抽出された特徴点を中心にテンプレート領域を配置する。
【００２４】
特徴点の抽出方法としては、例えばHarris corner検出器もしくはShi and Tomasiの手法を用いる。これらの手法では、画像の画素（ｘ，ｙ）における輝度値をＩ（ｘ，ｙ）と表現し、画像に対して水平および垂直の１次微分フィルタを適用した結果Ｉｘ，Ｉｙから、式（１）で示す自己相関行列Ｈを作成する。
【００２５】
【数１】
2018072942.tif 000003
【００２６】
式（１）において、Ｇは式（２）に示すガウス分布による平滑化を表す。
【００２７】
【数２】
2018072942.tif 000004
【００２８】
Harris検出器は、式（３）に示す特徴評価式により、特徴量が大きくなる画素を特徴点として抽出する。
【００２９】
Ｈａｒｒｉｓ＝ｄｅｔ（Ｈ）−α（ｔｒ（Ｈ））2        …（３）
（α＝０．０４〜０．１５）
式（３）において、ｄｅｔは行列式を、ｔｒは対角成分の和を表す。また、αは定数であり、実験的に０．０４〜０．１５の値が良いとされている。
【００３０】
一方、Shi and Tomasiは、式（４）に示す特徴評価式を用いる。
【００３１】
Ｓｈｉ  ａｎｄ  Ｔｏｍａｓｉ＝ｍｉｎ（λ１，λ２）              …（４）
式（４）は、式（１）の自己相関行列Ｈの固有値λ１，λ２のうち小さい方の固有値を特徴量とすることを表す。Shi and Tomasiを用いる場合でも、特徴量が大きくなる画素を特徴点として抽出する。
【００３２】
テンプレート領域の大きさは、より低解像度の階層画像で検出された動きベクトルの信頼度に応じて設定することが好ましい。図３に動きベクトルの信頼度とテンプレート領域の大きさの関係を示す。なお、最も低解像度の階層画像では動きベクトルの信頼度とは無関係に所定の大きさを設定すれば良い。
【００３３】
図３において、３０１は処理対象の階層画像、３０２は特徴点の座標、３０３はより低解像度の階層画像で設定されたテンプレート領域を示している。３０４，３０６，３０８はそれぞれより低解像度の階層で検出された動きベクトルを、処理対象の階層画像サイズに合わせて変倍した動きベクトルである。ここでは、動きベクトルの信頼度をベクトル３０４＜ベクトル３０６＜ベクトル３０８と仮定する。３０５，３０７，３０９は処理対象の階層画像におけるテンプレート領域であり、低解像度画像の動きベクトルの信頼度が高くなるほど、テンプレート領域の大きさを小さくする。
【００３４】
つまり、信頼度が低い場合は、図３（ａ）のように、テンプレート領域３０５を、低解像度画像のテンプレート領域３０３よりも大きくする（３０５＞３０３）。信頼度が中程度の場合は、図３（ｂ）のように、テンプレート領域３０７を、低解像度画像のテンプレート領域３０３と同じにする（３０７＝３０３）。信頼度が高い場合は、図３（ｃ）のように、テンプレート領域３０９を、低解像度画像のテンプレート領域３０３よりも小さくする（３０９＜３０３）。
【００３５】
図３（ｄ）は、横軸を信頼度、縦軸をテンプレート領域サイズとして、信頼度とテンプレート領域サイズの関係をグラフ化した図である。図３（ｄ）ではテンプレート領域サイズを、信頼度に対して線形に変化させているが、非線形に変化させても良い。
【００３６】
このように、低解像度画像の動きベクトルの信頼度が高くなるほど、テンプレート領域の大きさを小さくする効果について、図４、図５、図６を用いて説明する。
【００３７】
図４は、低解像度画像で検出される動きベクトルの信頼度に関わらず、高解像度画像において低解像度画像と同じ大きさのテンプレート領域を設定する場合を示している。図４において、４０１は低解像度画像、４０４は高解像度画像、４０２，４０５はそれぞれ特徴点、４０３，４０６はそれぞれテンプレート領域である。
【００３８】
いま高解像度画像のテンプレート領域４０６は、低解像度画像のテンプレート領域４０３と同じ大きさに設定されている。すると、図４から分かるように、テンプレート領域４０６の画角はテンプレート領域４０３の画角よりも、低解像度画像と高解像度画像の比率だけ小さくなる。仮に低解像度画像で検出された動きベクトルの信頼度が高い場合は、高解像度画像でテンプレート領域の画角を小さくしたとしても、テンプレート内に含まれるテクスチャの情報量はまだ十分にあり、信頼度の高い動きベクトルを検出できると考えられる。むしろ、特徴点以外の周辺領域の動きの影響を受けにくくなり、高解像度画像において動きベクトルの検出精度が向上することが期待できる。
【００３９】
しかし、低解像度画像で検出された動きベクトルの信頼度が低い場合は、高解像度画像でテンプレート領域の画角が小さくなることで、テンプレート内に含まれるテクスチャの情報量が不足する。そして、高解像度画像においても信頼度の高い動きベクトルを検出できる可能性は低いと考えられる。したがって、低解像度画像の動きベクトルの信頼度に応じて、高解像度画像のテンプレート領域の大きさを制御することが必要である。
【００４０】
図５は、低解像度画像で検出される動きベクトルの信頼度が低い場合におけるテンプレート領域の大きさの変化を示している。５０１は低解像度画像、５０４は高解像度画像、５０２，５０５はそれぞれ特徴点、５０３，５０６はそれぞれテンプレート領域である。
【００４１】
いま低解像度画像で検出される動きベクトルの信頼度が低いと仮定する。この場合、図３（ａ）に従えば、高解像度画像のテンプレート領域５０６は、低解像度画像のテンプレート領域５０３よりも大きく設定される。すると、図５から分かるように、テンプレート領域５０６では、テンプレート領域５０３に含まれる画角が維持される。その結果、テンプレート内に含まれるテクスチャの情報量を維持したまま高解像度画像で動きベクトル検出を行うことができるため、高解像度画像において信頼度の高い動きベクトルを検出できる可能性を向上できる。
【００４２】
図６は低解像度画像で検出される動きベクトルの信頼度が高い場合におけるテンプレート領域の大きさの変化を示している。６０１は低解像度画像、６０４は高解像度画像、６０２，６０５はそれぞれ特徴点、６０３，６０６はそれぞれテンプレート領域である。
【００４３】
いま低解像度画像で検出される動きベクトルの信頼度が高いと仮定する。この場合、図３（ｃ）に従えば、高解像度画像のテンプレート領域６０６は、低解像度画像のテンプレート領域６０３よりも小さく設定される。すると、図６から分かるように、テンプレート領域６０５に含まれる画角は、テンプレート領域６０３に含まれる画角よりも小さくなる。その結果、高解像度画像におけるテンプレートマッチングにおいて、特徴点以外の周辺領域の動きの影響を受けにくくなるため、高解像度画像における動きベクトルの検出精度を向上できる。
【００４４】
続いて、ステップＳ２０４では、ステップＳ２０２で選択した階層画像に対し、サーチ領域設定部１１１はサーチ領域を設定する。サーチ領域の位置および大きさは、より低解像度の階層画像で検出された動きベクトルとその信頼度に応じて設定することが好ましい。
【００４５】
図７は、動きベクトルの信頼度とサーチ領域の関係を示す図である。なお、最も低解像度の階層画像ではテンプレート領域を上下左右均等に包含するように所定の大きさのサーチ領域を設定すれば良い。
【００４６】
図７において、７０１は処理対象の階層画像、７０２は特徴点の座標を示している。７０３，７０６，７０９はそれぞれより低解像度の階層画像で検出された動きベクトルを、処理対象の階層画像サイズに合わせて変倍した動きベクトルである。ここでは、動きベクトルの信頼度をベクトル７０３＜ベクトル７０６＜ベクトル７０９と仮定する。
【００４７】
７０４，７０７，７１０はそれぞれテンプレート領域であり、図３を用いて説明したように、低解像度画像の動きベクトルの信頼度が高いほど、大きさを小さく設定している。７０５，７０８，７１１はサーチ領域であり、低解像度画像の動きベクトルの信頼度が高くなるほど、サーチ領域の大きさを小さくする。つまり、サーチ領域７０５＞サーチ領域７０８＞サーチ領域７１１とする。
【００４８】
またサーチ領域の位置については、以下のように設定することが好ましい。信頼度が低い場合は、図７（ａ）のように、サーチ領域７０５の中心を、動きベクトル７０３の始点の位置に設定する。信頼度が中程度の場合は、図７（ｂ）のように、サーチ領域７０８の中心を、動きベクトル７０６の始点から終点の間の位置に設定する。信頼度が高い場合は、図７（ｃ）のように、サーチ領域７１１の中心を、動きベクトル７０９の終点の位置に設定する。
【００４９】
図７（ｄ）は、横軸を信頼度、縦軸をサーチ領域サイズとして、信頼度とサーチ領域サイズの関係をグラフ化した図である。図７（ｄ）では、サーチ領域サイズを信頼度に対して線形に変化させているが、非線形に変化させても良い。このようにサーチ領域を設定することで、階層動きベクトル検出における低解像度画像の動きベクトルの寄与度を、その動きベクトルの信頼度に応じて制御することができる。
【００５０】
次に、ステップＳ２０５では、動きベクトル検出部１０６は、ステップＳ２０３、ステップＳ２０４で設定されたテンプレート領域およびサーチ領域を用いて動きベクトルの検出を行う。
【００５１】
動きベクトル検出部１０６は、テンプレートマッチングにより動きベクトルを検出する。図８は、テンプレートマッチングの概要を示す図である。図８（ａ）は２つのベクトル検出画像のうちの一方である基準画像を示し、図８（ｂ）は他方である参照画像を示している。ベクトル検出画像として用いられる階層画像は、階層画像保持部１０５に保持されているフレーム画像と階層画像生成部１０４から直接入力される画像データである。
【００５２】
動きベクトル検出部１０６は、基準画像にテンプレート領域８０１、参照画像にサーチ領域８０２を配置し、テンプレート領域８０１とサーチ領域８０２との相関値を算出する（相関値演算）。本実施形態では、相関値の算出方法として、差分絶対値和（Sum of Absolute Difference：以下、ＳＡＤと略す）を使用する。ＳＡＤの計算式を式（５）に示す。
【００５３】
【数３】
2018072942.tif 000005
【００５４】
式（５）において、ｆ（ｉ，ｊ）はテンプレート領域８０１内の座標（ｉ，ｊ）での輝度値を示している。また、ｇ（ｉ，ｊ）はサーチ領域８０２内において相関値の算出対象となる領域（以下、相関値算出領域という）８０３内の各座標での輝度値を示す。ＳＡＤでは、両領域８０２，８０３内の輝度値ｆ（ｉ，ｊ），ｇ（ｉ，ｊ）の差の絶対値を計算し、その総和を求めることで相関値Ｓ＿ＳＡＤを得る。相関値Ｓ＿ＳＡＤの値が小さいほど、テンプレート領域８０１と相関値算出領域８０３のテクスチャの類似度が高いことを表す。なお、相関値の算出にＳＡＤ以外の方法を用いてもよく、例えば差分二乗和（ＳＳＤ）や正規化相互相関（ＮＣＣ）を用いてもよい。
【００５５】
動きベクトル検出部１０６は、サーチ領域８０２の全域において相関値算出領域８０３を移動させて相関値を算出する。これにより、サーチ領域８０２に対して図９に示すような相関値マップを作成する。
【００５６】
図９（ａ）において、Ｘ軸とＹ軸は相関値マップ内（つまりはサーチ領域８０２内）での座標を表しており、Ｚ軸は各座標での相関値の大きさを表している。また図９（ｂ）は、図９（ａ）の等高線を示したものである。図９（ａ）および図９（ｂ）において、相関値が最も小さいのは極小値９０１であり、サーチ領域８０２内で極小値９０１が算出された領域にはテンプレート領域８０１と非常に類似したテクスチャが存在していると判定できる。９０２は二番目の極小値、９０３は三番目の極小値を表わしており、これらは９０１に次いで類似したテクスチャが存在していることを意味する。
【００５７】
このように、動きベクトル検出部１０６は、テンプレート領域８０１とサーチ領域８０２との間で相関値を算出し、その値が最も小さくなる相関値算出領域８０３の位置を判定する。これにより、基準画像上のテンプレート領域８０１の参照画像上での移動先を特定することができる。そして、基準画像上でのテンプレート領域の位置を基準とした参照画像上での移動先への方向および移動量を方向および大きさとした動きベクトルを検出することができる。
【００５８】
ステップＳ２０６では、信頼度算出部１０７は、ステップＳ２０５で得られた動きベクトルの信頼度を算出する。動きベクトルの信頼度の算出には二次元の相関値マップを用いる。図１０（ａ）は、図９で示したような相関値マップを上から見た様子を模式的に表した図である。二次元の相関値マップ１００１において、１００２は図９の極小値に対応する位置である。この二次元相関値マップにおける相関値を、矢印１００３で示すようにラスター順に並べ一次元で表わしたものが図１０（ｂ）である。図１０（ｂ）の縦軸は相関値、横軸は相関値マップのＸ座標とＹ座標により一意に定まる画素アドレスである。以降、動きベクトルの信頼度を算出するため、この図１０（ｂ）の表現を用いることにする。  図１１は、動きベクトルの信頼度を表わす相関値の指標の一例を示す図である。図１１の横軸は画素のアドレス、縦軸は相関値である。図１１（ａ）では、指標として相関値の最小値と最大値の差分Ｄａを用いている。Ｄａは相関値マップのレンジを表わしており、Ｄａの値が小さい場合、テクスチャのコントラストが低いことが考えられ、信頼度が低いことを示す。
【００５９】
図１１（ｂ）では、指標として相関値の最小値と最大値の差分Ａと、最小値と平均値の差分Ｂとの比率Ｄｂ（＝Ｂ／Ａ）を用いている。Ｄｂは相関値ピークの急峻性を表わしており、Ｄｂが小さい場合、テンプレート領域とサーチ領域の類似度が低いと考えられ、信頼度が低いことを示す。
【００６０】
図１１（ｃ）では、指標として相関値の極小値と二番目の極小値の差分Ｄｃを用いている。ここで、１１０，１１０２，１１０３は、それぞれ図９の相関値９０１，９０２，９０３と対応している。よって、図１１（ｃ）は、図９（ｂ）の等高線において、相関値の最小値と類似した極小値が存在しないかを確認することを意味している。Ｄｃは相関値マップの周期性を表わし、Ｄｃが小さい場合、テクスチャが繰り返しパターンやエッジなどであることが考えられ、信頼度が低いことを示す。なお、ここでは極小値と二番目の極小値を選択したが、相関値マップの周期性を判定できれば良いため、その他の極小値を選択しても良い。
【００６１】
図１１（ｄ）では、指標として相関値の最小値Ｄｄを用いている。Ｄｄが大きい場合、テンプレート領域とサーチ領域の類似度が低いと考えられ、信頼度が低いことを表わす。Ｄｄと信頼度は反比例の関係にあるため、Ｄｄの逆数（１／Ｄｄ）を指標とする。
【００６２】
上記で説明した相関値の指標はそのまま信頼度として用いることができるが、例えば図１２のように相関値指標と信頼度の対応付けを行っても良い。図１２の横軸は相関値指標（上述のＤａ，Ｄｂ，Ｄｃ，１／Ｄｄのいずれか）、縦軸は信頼度である。この例では、二つの閾値Ｔ１，Ｔ２を設けており、相関値指標がＴ１以下なら信頼度を０、Ｔ２以上なら信頼度を１としている。閾値は各相関値指標で変更しても良い。また閾値Ｔ１とＴ２の間の区間は、相関値指標と信頼度を非線形に対応付けても良い。以降の説明では、各相関値指標Ｄａ，Ｄｂ，Ｄｃ，１／Ｄｄから得られる信頼度をＲａ，Ｒｂ，Ｒｃ，Ｒｄと表現する。
【００６３】
最終的な動きベクトルの信頼度Ｒは、これらＲａ，Ｒｂ，Ｒｃ，Ｒｄを組み合わせて算出すればよい。ここでは、重み付け加算（加重加算）と優先順位に基づく組み合わせ方法について説明する。重み付け加算による組み合わせでは、Ｒａ，Ｒｂ，Ｒｃ，Ｒｄの重みをそれぞれＷａ，Ｗｂ，Ｗｃ，Ｗｄとすれば、信頼度Ｒは式（６）のように計算される。
【００６４】
Ｒ＝Ｗａ×Ｒａ＋Ｗｂ×Ｒｂ＋Ｗｃ×Ｒｃ＋Ｗｄ×Ｒｄ        …（６）
例えば重みをＷａ＝０．４，Ｗｂ＝０．３，Ｗｃ＝０．２，Ｗｄ＝０．１とする。全ての信頼度が十分に高く、Ｒａ＝Ｒｂ＝Ｒｃ＝Ｒｄ＝１の場合には、式（６）よりＲ＝１．０となる。またＲａ＝０．６，Ｒｂ＝０．５，Ｒｃ＝０．７，Ｒｄ＝０．７のような場合には、式（６）よりＲ＝０．６となる。
【００６５】
一方、優先順位に基づく組み合わせでは、Ｒａ，Ｒｂ，Ｒｃ，Ｒｄのいずれかを優先して、信頼度Ｒを決定する。例えば、階層動きベクトル検出では、低解像度階層の動きベクトルを利用し、サーチ領域を絞り込んで動きベクトルを検出するため、相関値が小さくなる領域（テンプレート領域とサーチ領域の類似度が高い領域）を集中的に探索することになる。そのため、正しい動きベクトルが検出できたとしても、相関値マップは全体的に相関値が小さいものになり、Ｒｄは高くなるものの、ＲａやＲｂ、Ｒｃは低くなる傾向がある。特に複数の極小値を用いるＲｃは低くなりやすくなる。そこで、例えばＲｄ＞Ｒａ＝Ｒｂ＞Ｒｃのように優先度を設定する。この場合の信頼度算出の一例を以下に説明する。
【００６６】
まずＲｄが所定の値よりも高いかを判定し、高い場合はその時点で信頼度を１．０と判定する。仮にＲｄが所定の値よりも低い場合は、次にＲａ、Ｒｂがそれぞれ所定の値よりも高いかを判定し、いずれかが高い場合は、その時点で信頼度を０．５と判定する。仮にＲａおよびＲｂが所定の値よりも低い場合は、最後にＲｃが所定の値よりも高いかを判定し、高い場合は信頼度を０．３、低い場合は信頼度を０のように判定する。このように、優先度を高く設定した信頼度から順に所定の値と比較し、その大小関係に応じて信頼度を決めることができる。
【００６７】
最後のステップＳ２０７では、動きベクトル制御部１０９は、処理階層が最終階層まで達したか否かを判定する。最終階層まで達していない場合はステップＳ２０２に戻り、ステップＳ２０２〜ステップＳ２０７を繰り返す。
【００６８】
以上説明したように、本実施形態では、それぞれの階層画像のテンプレート領域の大きさを動きベクトルの信頼度に応じて変更することで、階層動きベクトル検出の検出性能を向上させることができる。
【００６９】
＜第２の実施形態＞
図１３は、本発明の画像処理装置の第２の実施形態であるデジタルカメラ２０の構成を示すブロック図である。図１３のデジタルカメラ２０の構成要素において、図１に示したデジタルカメラ１０の構成要素と同じものには図１中の符号と同符号を付す。また、図１３のデジタルカメラ２０の構成要素のうち、図１に示したデジタルカメラ１０の構成要素に対応する（同じではないが類似する）ものには図１中の符号の末尾に「ａ」を付す。本実施形態のデジタルカメラも画像処理装置２００を含む。画像処理装置２００は、領域分割部１３０１を有する。以下では、第１の実施形態と異なる部分を中心に説明する。
【００７０】
第１の実施形態では、フレーム画像単位での処理について説明した。しかし動きベクトルの信頼度は領域毎に異なり得る。このため、本実施形態では、階層画像を複数の画像領域に分割し、画像領域ごとに動きベクトルを検出し、信頼度を算出し、その信頼度に基づいて画像領域単位でテンプレート領域およびサーチ領域を制御する。
【００７１】
図１４は、本実施形態のデジタルカメラの動作を示すフローチャートである。図１４において、図２に示したフローチャートと同じものには図２中の符号と同符号を付す。また、図１４において、図２に示したフローと対応する（同じではないが類似する）ものには図２中の符号の末尾に「ａ」を付す。
【００７２】
ステップＳ１４０１では、画像処理装置２００において、領域分割部（分割手段）１３０１は、動きベクトル制御部１０９ａに対して、各階層画像を複数の画像領域に分割するための分割情報を出力する。各画像領域の形状は任意であるが、本実施形態では図１５（ａ）に示すように、階層画像を格子状に分割する。
【００７３】
ステップＳ１４０２では、動きベクトル制御部１０９は処理対象となる分割領域を選択する。なお、ステップＳ１４０１とＳ２０１およびステップＳ１４０２とＳ２０２の順序を入れ替え、階層画像を生成した後に、領域分割を行うようにしても良い。その場合は、後述するステップＳ２０７とＳ１４０３も同時に入れ替える必要がある。
【００７４】
ステップＳ２０３ａでは、テンプレート領域設定部１１０ａは、まず領域分割部１３０１からの分割情報に基づいて、画像領域ごとに所定数（複数）の特徴点を抽出する。具体的には、画像領域ごとに、式（３）または式（４）により画素の特徴量を算出し、特徴量が高い方から所定数の画素を特徴点として抽出する。図１５（ｂ）には、格子状に分割された画像領域ごとに１つの特徴点１５０１が抽出された様子を示している。
【００７５】
さらにテンプレート領域設定部１１０ａは、領域毎に抽出された特徴点に基づいて、テンプレート領域の位置を決定する。また低解像度階層の分割領域ごとに検出された動きベクトルの信頼度に基づいて、第１の実施形態と同様にテンプレート領域の大きさを決定する。
【００７６】
ステップＳ２０４において、サーチ領域設定部１１１ａは、より低解像度の階層の分割領域ごとに検出された動きベクトルとその信頼度に基づいて、第１の実施形態と同様にサーチ領域を設定する。
【００７７】
最後にステップＳ１４０３では、動きベクトル制御部１０９ａは、処理した分割領域が最後の領域であるか否かを判定する。最後の分割領域まで達していない場合はステップＳ１４０２に戻り、ステップＳ１４０２〜Ｓ１４０３を繰り返す。
【００７８】
本実施形態では、画像領域ごとに検出された動きベクトルの信頼度を算出し、その信頼度に基づいて画像領域単位でテンプレート領域およびサーチ領域を制御できるため、第１の実施形態よりもさらに階層動きベクトル検出の性能を向上させることができる。
【００７９】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８０】
１０１：撮影光学系、１０２：撮像素子、１０３：カメラ信号処理部、１０４：階層画像生成部、１０５：階層画像保持部、１０６：動きベクトル検出部、１０７：信頼度算出部、１０８：動きベクトル情報保持部、１０９：動きベクトル制御部、１１０：テンプレート領域設定部、１１１：サーチ領域設定部、１３０１：領域分割部
【図１】
2018072942.tif 000006
【図２】
2018072942.tif 000007
【図３】
2018072942.tif 000008
【図４】
2018072942.tif 000009
【図５】
2018072942.tif 000010
【図６】
2018072942.tif 000011
【図７】
2018072942.tif 000012
【図８】
2018072942.tif 000013
【図９】
2018072942.tif 000014
【図１０】
2018072942.tif 000015
【図１１】
2018072942.tif 000016
【図１２】
2018072942.tif 000017
【図１３】
2018072942.tif 000018
【図１４】
2018072942.tif 000019
【図１５】
2018072942.tif 000020