(57)【要約】      （修正有）【課題】撮影途中にフレームインする移動被写体に対応する特徴点をより多く追跡する。【解決手段】撮影範囲の一部に第１の処理領域を設定する設定手段と、第１の撮影画像から複数の追跡対象点を選択する選択手段と、第１の撮影画像と次に撮影された第２の撮影画像との間で追跡対象点の動きベクトルを検出する検出手段と、第１の処理領域に移動被写体が出現したかを判定する判定手段と、移動被写体が出現したと判定するまでは、選択手段による選択と検出手段による検出と判定手段による判定とを含む第１の処理セットを繰返し実行し、移動被写体が出現したと判定した後は選択手段による選択と検出手段による検出とを含む第２の処理セットを繰返し実行する制御手段とを備える。第１の処理セットでは第１の処理領域から複数の追跡対象点を選択し、第２の処理セットでは直前の第２の処理セットで検出された追跡対象点の移動先を追跡対象点として選択する。【選択図】図９
2019191661.tif 000002
【特許請求の範囲】
【請求項１】
撮影範囲の一部に第１の処理領域を設定する設定手段と、
複数の撮影画像のうちの第１の撮影画像において複数の追跡対象点を選択する選択手段と、
前記第１の撮影画像と前記第１の撮影画像の次に撮影された第２の撮影画像との間で、各追跡対象点の動きベクトルを検出する検出手段と、
前記第１の処理領域に移動被写体が出現したか否かを判定する判定手段と、
前記複数の撮影画像の各々を撮影順に前記第１の撮影画像として、前記第１の処理領域に前記移動被写体が出現したと判定されるまでは、前記選択手段による選択と前記検出手段による検出と前記判定手段による判定とを含む第１の処理セットを繰り返し実行し、前記第１の処理領域に前記移動被写体が出現したと判定された後は、前記選択手段による選択と前記検出手段による検出とを含む第２の処理セットを繰り返し実行するように制御する制御手段と、
を備え、
前記第１の処理セットにおいて、前記選択手段は、前記第１の撮影画像の前記第１の処理領域に基づいて、前記第１の処理領域の中から前記複数の追跡対象点を選択し、
前記第２の処理セットにおいて、前記選択手段は、直前の第２の処理セットにおいて検出された各追跡対象点の前記動きベクトルが示す各追跡対象点の移動先を、現在の第２の処理セットのための前記複数の追跡対象点として選択する
ことを特徴とする画像処理装置。
【請求項２】
前記第１の処理セットにおいて、前記判定手段は、直前の第１の処理セットにおいて検出された各追跡対象点の前記動きベクトルと現在の第１の処理セットにおいて検出された各追跡対象点の前記動きベクトルとの相違に基づいて、前記第１の処理領域に前記移動被写体が出現したか否かを判定する
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記設定手段は、前記第１の処理領域の中に複数の分割領域を設定し、
前記第１の処理セットにおいて、前記選択手段は、前記第１の処理領域の各分割領域から１つずつ前記追跡対象点を選択する
ことを特徴とする請求項１又は２に記載の画像処理装置。
【請求項４】
前記設定手段は、前記撮影範囲の中に前記第１の処理領域よりも広い第２の処理領域を設定し、
直前の第２の処理セットにおいて特定の追跡対象点について有効な動きベクトルが検出されなかった場合、現在の第２の処理セットにおいて、前記選択手段は、当該特定の追跡対象点の移動先の代わりとなる追跡対象点を、前記第１の撮影画像の前記第２の処理領域に基づいて、前記第２の処理領域の中から選択する
ことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記第２の処理領域は、前記撮影範囲の全体である
ことを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記第１の処理セットの次に実行される前記第２の処理セットにおいて、前記選択手段は、直前の第１の処理セットにおいて検出された各追跡対象点の前記動きベクトルが示す各追跡対象点の移動先を、現在の第２の処理セットのための前記複数の追跡対象点として選択する
ことを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項７】
前記第１の処理セットの次に実行される前記第２の処理セットにおいて、前記選択手段は、前記第１の撮影画像の前記第１の処理領域に基づいて、前記第１の処理領域の中から前記複数の追跡対象点を選択する
ことを特徴とする請求項１乃至５のいずれか１項に記載の画像処理装置。
【請求項８】
撮像手段の撮影範囲の一部に第１の処理領域を設定する設定手段と、
前記撮像手段で順次撮像された複数の撮影画像に対して前記第１の処理領域で特徴点の算出を行う算出手段と、
前記特徴点に基づいて前記第１の処理領域に移動被写体が検出されるまで、前記複数の撮影画像に対して前記第１の処理領域で前記特徴点の算出を繰り返し、該移動被写体が検出されたことに応じて、算出された特徴点を追跡する処理を行う制御手段と、
を有することを特徴とする画像処理装置。
【請求項９】
前記制御手段は、前記移動被写体が検出されたことに応じて前記第１の処理領域よりも大きい第２の処理領域において、前記特徴点を追跡する
ことを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記撮像手段により撮像された画像を表示部に表示する表示制御手段と、
前記表示部に前記撮像手段により撮像された画像が表示された状態で前記第１の処理領域を指示する指示手段と、
を更に有することを特徴とする請求項８又は９に記載の画像処理装置。
【請求項１１】
請求項１乃至１０のいずれか１項に記載の画像処理装置と、
前記複数の撮影画像を生成する撮像手段と、
を備えることを特徴とする撮像装置。
【請求項１２】
画像処理装置が実行する画像処理方法であって、
撮影範囲の一部に第１の処理領域を設定する設定工程と、
複数の撮影画像のうちの第１の撮影画像において複数の追跡対象点を選択する選択工程と、
前記第１の撮影画像と前記第１の撮影画像の次に撮影された第２の撮影画像との間で、各追跡対象点の動きベクトルを検出する検出工程と、
前記第１の処理領域に移動被写体が出現したか否かを判定する判定工程と、
前記複数の撮影画像の各々を撮影順に前記第１の撮影画像として、前記第１の処理領域に前記移動被写体が出現したと判定されるまでは、前記選択工程による選択と前記検出工程による検出と前記判定工程による判定とを含む第１の処理セットを繰り返し実行し、前記第１の処理領域に前記移動被写体が出現したと判定された後は、前記選択工程による選択と前記検出工程による検出とを含む第２の処理セットを繰り返し実行するように制御する制御工程と、
を備え、
前記第１の処理セットにおいて、前記選択工程は、前記第１の撮影画像の前記第１の処理領域に基づいて、前記第１の処理領域の中から前記複数の追跡対象点を選択し、
前記第２の処理セットにおいて、前記選択工程は、直前の第２の処理セットにおいて検出された各追跡対象点の前記動きベクトルが示す各追跡対象点の移動先を、現在の第２の処理セットのための前記複数の追跡対象点として選択する
ことを特徴とする画像処理方法。
【請求項１３】
コンピュータを、請求項１乃至１０のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、撮像装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
デジタルビデオカメラ等の撮像装置を用いて撮影された映像に対して手ぶれ補正を施すためには、フレーム画像間の動き量を検出して複数枚の画像に対して位置合わせを行う必要がある。フレーム画像間の動き量を検出する方法としては、ジャイロセンサのような外部機器の情報を用いたり、撮影されたフレーム画像から動き量を推定したりする方法等がある。
【０００３】
フレーム画像を用いた動き量推定の方法は従来から種々提案されているが、その代表的なものとしてテンプレートマッチングによる動きベクトル検出がある。テンプレートマッチングでは、まず映像中のある２枚のフレーム画像の一方を原画像、もう一方を参照画像とする。そして、原画像上に配置した所定の大きさの矩形領域をテンプレートブロックとし、参照画像の各位置においてテンプレートブロック内の画素値の分布との相関を求める。このとき、参照画像中で最も相関が高くなる位置がテンプレートブロックの移動先であり、原画像上でのテンプレートブロックの位置を基準とした時の移動先への向きと移動量が動きベクトルとなる。
【０００４】
動きベクトルの検出率を向上させるため、フレーム画像から特徴点を抽出し、抽出した特徴点にテンプレートブロックを配置してテンプレートマッチングを行う技術がある。ここで、画像全体で特徴点抽出を行うと、特徴点の分布は不均一になることが多い。不均一な特徴点に対して得られた動きベクトルを手ぶれ補正の用途で使用する場合、特徴の集中した領域が主となる手ぶれ補正となってしまう。そこで、特許文献１が開示するように、特徴点を均一に分布させるため、画像をグリッド状に分割して、特徴の大きさを表す特徴値を画素ごとに計算し、各グリッド内で特徴値が最も大きい画素を特徴点として抽出する技術が知られている。
【０００５】
また、特許文献２が開示するように、動きベクトルの検出率を向上させるために、特徴点を追跡する技術が知られている。特徴点追跡は、画像から抽出された特徴点の動きベクトルを、連続する複数のフレーム画像にわたって逐次検出することで実現できる。
【０００６】
図１０は、特徴点追跡処理の概略を示す図である。撮像装置は、特徴点抽出を行うための特徴点抽出グリッド１００４内で特徴点１００１を抽出し、テンプレート領域１００３を設定する。そして、撮像装置は、テンプレートマッチング領域１００６内でテンプレートマッチングを実施してベクトル値１００７を算出する。特徴点抽出グリッド１００４の周囲には、特徴点抽出は実施されないがテンプレートマッチングで使用される周辺グリッド１００５が配置される。
【０００７】
次のフレームの処理では、撮像装置は、算出されたベクトル値１００７を特徴点１００１に加算することにより得られる追跡先特徴点１００２を中心にテンプレートマッチングを実施する。以後、撮像装置は、複数フレームにわたって、追跡先特徴点に対して、ベクトル値を加算して次の追跡先特徴点を検出する処理を繰り返す。
【０００８】
また、特許文献３が開示するように、追跡対象の移動方向などに基づいて追跡の範囲を制限する技術も知られている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−１９２０６０号公報
【特許文献２】特開２００７−３３４６２５号公報
【特許文献３】特開２０１２−７３９９７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上記のような特徴点追跡処理を行う撮像装置を用いて、移動する主被写体（移動被写体）がフレームインするタイミングの前後の期間に撮影を行う場合を考える。この場合、移動被写体のフレームイン前は、撮像装置は、移動被写体とは無関係な特徴点しか抽出することができない。従って、移動被写体のフレームイン前に特徴点追跡処理を開始した場合、撮像装置は、移動被写体のフレームイン後も、移動被写体とは無関係な特徴点を追跡し続けることになる。その結果、例えば、移動被写体を重視した手ぶれ補正を行うことができなくなる。
【００１１】
本発明はこのような状況に鑑みてなされたものであり、撮影途中にフレームインする移動被写体に対応する特徴点をより多く追跡することを可能にする技術を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、本発明は、撮影範囲の一部に第１の処理領域を設定する設定手段と、複数の撮影画像のうちの第１の撮影画像において複数の追跡対象点を選択する選択手段と、前記第１の撮影画像と前記第１の撮影画像の次に撮影された第２の撮影画像との間で、各追跡対象点の動きベクトルを検出する検出手段と、前記第１の処理領域に移動被写体が出現したか否かを判定する判定手段と、前記複数の撮影画像の各々を撮影順に前記第１の撮影画像として、前記第１の処理領域に前記移動被写体が出現したと判定されるまでは、前記選択手段による選択と前記検出手段による検出と前記判定手段による判定とを含む第１の処理セットを繰り返し実行し、前記第１の処理領域に前記移動被写体が出現したと判定された後は、前記選択手段による選択と前記検出手段による検出とを含む第２の処理セットを繰り返し実行するように制御する制御手段と、を備え、前記第１の処理セットにおいて、前記選択手段は、前記第１の撮影画像の前記第１の処理領域に基づいて、前記第１の処理領域の中から前記複数の追跡対象点を選択し、前記第２の処理セットにおいて、前記選択手段は、直前の第２の処理セットにおいて検出された各追跡対象点の前記動きベクトルが示す各追跡対象点の移動先を、現在の第２の処理セットのための前記複数の追跡対象点として選択することを特徴とする画像処理装置を提供する。
【発明の効果】
【００１３】
本発明によれば、撮影途中にフレームインする移動被写体に対応する特徴点をより多く追跡することが可能となる。
【００１４】
なお、本発明のその他の特徴及び利点は、添付図面及び以下の発明を実施するための形態における記載によって更に明らかになるものである。
【図面の簡単な説明】
【００１５】
【図１】画像処理装置を含むデジタルカメラ１００の構成を示すブロック図。
【図２】動きベクトル検出部１１６が処理するグリッド配置、特徴点、及びテンプレート領域などの関係を示す図。
【図３】動きベクトル検出部１１６の構成を示すブロック図。
【図４】特徴点追跡処理のフローチャート。
【図５】新規特徴点抽出部３０２の詳細な構成を示すブロック図。
【図６】低コントラスト判定、画素値の最大値突出判定、及び繰り返しパターン判定を説明する図。
【図７】追跡先特徴点算出処理（図４のＳ４０９）の詳細を示すフローチャート。
【図８】撮影範囲の特定の領域に対して移動被写体がフレームインするシーンを撮影する際の動きベクトル検出部１１６の処理を時系列に示した模式図。
【図９】図８のようなシーンにおける動きベクトル検出部１１６の処理を示すフローチャート。
【図１０】特徴点追跡処理の概略を示す図。
【発明を実施するための形態】
【００１６】
以下、添付図面を参照して、本発明の実施形態を説明する。添付図面の全体を通じて、同一の参照符号が付与された要素は、同一又は同様の要素を表す。なお、本発明の技術的範囲は、特許請求の範囲によって確定されるのであって、以下の個別の実施形態によって限定されるわけではない。また、実施形態の中で説明されている特徴の組み合わせすべてが、本発明に必須とは限らない。また、別々の実施形態の中で説明されている特徴を適宜組み合せることも可能である。
【００１７】
［第１の実施形態］
図１は、画像処理装置を含むデジタルカメラ１００の構成を示すブロック図である。図１において、結像光学部１０１はフォーカスレンズや防振レンズを含む複数のレンズ群及び絞りなどを備えている。撮影の際、結像光学部１０１はフォーカス調節、露出調節、及びブレ補正等を行い、撮像素子１０２に光学像を結像する。撮像素子１０２は、光学像を電気信号（アナログ画像信号）に変換する光電変換機能を有し、ＣＣＤやＣＭＯＳセンサ等で構成される。Ａ／Ｄ変換部１０３は撮像素子１０２からのアナログ画像信号をデジタル画像信号に変換する。
【００１８】
ＣＰＵ１１２は、デジタルカメラ１００全体の制御を司るマイクロコンピュータ等で構成され、各機能ブロックに対して動作指示を行い、各種の制御処理を実行する。バス１１４はシステムバスであり、バス１１５は画像データバスである。
【００１９】
ＤＲＡＭ１０７は、データを記憶するメモリであり、所定枚数の静止画像、所定時間の動画像、音声等のデータや、ＣＰＵ１１２の動作用の定数、プログラム等を格納するのに十分な記憶容量を備える。メモリ制御部１０６は、ＣＰＵ１１２或いはデータ転送部１０５からの指示に応じて、ＤＲＡＭ１０７へのデータ書き込み及びデータ読み出しを行う。
【００２０】
不揮発性メモリ制御部１０８は、ＣＰＵ１１２からの指示に応じて、ＲＯＭ１０９にデータの書き込み及び読み出しを行う。ＲＯＭ１０９は、電気的に消去・記録可能なメモリであり、ＥＥＰＲＯＭ等が用いられる。ＲＯＭ１０９には、ＣＰＵ１１２の動作用の定数、プログラム等が記憶される。
【００２１】
ＣＰＵ１１２は、バス１１４を介して画像処理部１０４、データ転送部１０５、メモリ制御部１０６、不揮発性メモリ制御部１０８、表示制御部１１０、操作部１１３、撮像素子１０２を制御する。ＣＰＵ１１２は、ＲＯＭ１０９に記録されたプログラムを実行することにより、本実施形態の各処理を実現する。
【００２２】
表示部１１１は、液晶モニタ等から成り、表示制御部１１０により制御され、各種画像データ等を表示する。操作部１１３は、ユーザにより操作されるスイッチ、ボタン、及び、タッチパネル等を含み、電源のＯＮ／ＯＦＦ、シャッターのＯＮ／ＯＦＦ等の操作に使用される。
【００２３】
画像処理部１０４は、各種画像処理回路及びバッファメモリ等から構成されており、動きベクトル検出部１１６を備える。
【００２４】
データ転送部１０５は、データ転送を行う複数のＤＭＡＣ（Direct Memory Access Controller）で構成されている。
【００２５】
図２は、動きベクトル検出部１１６が処理するグリッド配置、特徴点、及びテンプレート領域などの関係を示す図である。
【００２６】
設定されたサイズの特徴点抽出グリッド２０２（図２中の白色グリッド）と周辺グリッド２０１（図２中の網点グリッド）が、水平、垂直方向に設定された個数分配置されている。特徴点２０３が、各特徴点抽出グリッド２０２に１つ抽出される。周辺グリッド２０１は、特徴点抽出グリッド２０２の周囲に配置され、特徴点抽出は実施されないが、テンプレートマッチングで使用される領域である。抽出された特徴点２０３を中心として、設定されたサイズの矩形状のサーチ領域２０５及びテンプレート領域２０４が設けられる。
【００２７】
次に、図３及び図４を参照して、特徴点追跡処理について説明する。図３は、動きベクトル検出部１１６の構成を示すブロック図であり、図４は、特徴点追跡処理のフローチャートである。なお、図３においては、説明の便宜上、実際には動きベクトル検出部１１６に含まれないブロックであっても、特徴点追跡処理のために利用されるブロック（例えば、ＤＲＡＭ１０７）については、動きベクトル検出部１１６の内部に図示する。また、データの流れを分かりやすくするために、同じブロック（例えば、ＤＲＡＭ１０７）を複数の位置に図示する場合もある。画像処理部１０４に対する撮影画像の入力が開始すると、図４のフローチャートの処理が実行される。
【００２８】
Ｓ４００で、ＣＰＵ１１２は、プログラム及び操作部１１３からの情報に基づいて、撮影範囲において特徴点抽出処理（後述）の対象とする処理領域を設定し、設定した処理領域を動きベクトル検出部１１６の分割設定部３６０に設定する。分割設定部３６０は、設定された処理領域を、例えば図２に示すようなグリッドに分割する。
【００２９】
Ｓ４０１で、データ転送部１０５が具備するＲＤＤＭＡＣ３２１は、ベクトル検出対象となる現フレームの入力画像３４１を、バス１１５を介してＤＲＡＭ１０７から読み出す。読み出すデータ量は、Ｓ４００において例えば図２に示されるように設定された特徴点抽出グリッド２０２及び周辺グリッド２０１のサイズに従う。なお、入力画像３４１は、画像処理部１０４で各種画像処理が実施されている。ＲＤＤＭＡＣ３２１によりグリッド単位で読み出された入力画像３４１は、テンプレートマッチング画像生成部３０１及び新規特徴点抽出部３０２に出力される。また、ＲＤＤＭＡＣ３２１は、読み出したグリッドの座標位置を示すグリッド座標情報３５２を後述する追跡先特徴点決定部３０５に出力する。
【００３０】
Ｓ４０２で、テンプレートマッチング画像生成部３０１は、ベクトル検出時のテンプレートマッチングに使用するテンプレートマッチング画像を生成し、データ転送部１０５が具備するＷＲＤＭＡＣ３３１に出力する。テンプレートマッチング画像生成部３０１は、バンドパスフィルタ回路を含み、テンプレートマッチング処理に不要な画像信号の高周波成分と低周波成分をカットする。
【００３１】
Ｓ４０３で、データ転送部１０５が具備するＷＲＤＭＡＣ３３１は、入力されたテンプレートマッチング画像（以下、テンプレートマッチング画像３４２と呼ぶ）を、バス１１５を介してＤＲＡＭ１０７に書き出す。また、ＤＲＡＭ１０７には、前フレームで生成されたテンプレートマッチング画像（以下、テンプレートマッチング画像３４３と呼ぶ）が格納されている。
【００３２】
Ｓ４０４で、新規特徴点抽出部３０２は、現フレームの新規特徴点（新規の追跡対象点）を抽出する。なお、Ｓ４０４の処理は、Ｓ４０２及びＳ４０３の処理と並行して実行可能である。
【００３３】
ここで、図５を参照して、新規特徴点抽出部３０２の詳細について説明する。新規特徴点抽出部３０２は、特徴フィルタ部５０１、特徴評価部５０２、特徴点決定部５０３を含む。
【００３４】
特徴フィルタ部５０１は、バンドパスフィルタ、水平微分フィルタ、垂直微分フィルタ、平滑化フィルタなど、複数のフィルタから構成される。本実施形態においては、バンドパスフィルタが、入力画像（グリッド単位）の不要な高周波成分と低周波成分をカットする。その後、水平微分フィルタにより水平方向の微分フィルタ処理を施した信号と、垂直微分フィルタにより垂直方向の微分フィルタ処理を施した信号とが生成される。そして、各方向の微分フィルタ処理が施された信号に対して、平滑化フィルタにより平滑化フィルタ処理が施される。特徴フィルタ部５０１は、こうして得られた信号を、各方向の特徴画像として出力する。
【００３５】
特徴評価部５０２は、特徴フィルタ部５０１によりフィルタ処理された特徴画像（グリッド単位）に対し、画素ごとに、２つのエッジの交点や曲率が極大である曲線状の点など画素の周辺の微分値が多方向に大きい点を、特徴評価式により特徴値として算出する。以下、Ｓｈｉ  ａｎｄ  Ｔｏｍａｓｉの手法を例に、特徴値の算出について説明する。特徴評価部５０２は、水平微分フィルタと垂直微分フィルタを施した結果から、式１に示す自己相関行列Ｈを作成する。
2019191661.tif 000003
式１においてＩｘは水平微分フィルタを施した結果、Ｉｙは垂直微分フィルタを施した結果を表しており、ガウシアンフィルタＧを畳み込む演算が行われる。Ｓｈｉ  ａｎｄ  Ｔｏｍａｓｉの特徴評価式を式２に示す。
Ｓｈｉ  ａｎｄ  Ｔｏｍａｓｉ＝ｍｉｎ（λ１，λ２）・・・（２）
式２は、式１の自己相関行列Ｈの固有値λ１，λ２のうちの小さい方を特徴値とすることを示す。
【００３６】
特徴点決定部５０３は、各グリッド（特徴点の選択対象領域）について、特徴評価部５０２によって画素ごとに算出された特徴値のうち最も大きい特徴値Ｐｃを持つ画素を特徴点として決定（選択）する。本実施形態においては、特徴点の座標は、グリッドの左上端を（０，０）とした相対座標（ＰＸ，ＰＹ）で表現するが、画像信号における絶対座標で表現してもよい。
【００３７】
なお、抽出された新規特徴点の座標（ＰＸ，ＰＹ）は、新規特徴点抽出部３０２が具備するメモリに格納される。メモリは、前フレーム及び現フレームの特徴点の座標（ＰＸ，ＰＹ）を格納するための容量を有している。テンプレートマッチング処理部３０３にて、対応するグリッドのテンプレートマッチング処理が開始される際に、新規特徴点３５１が追跡先特徴点決定部３０５へ出力される。
【００３８】
Ｓ４０５で、ＲＤＤＭＡＣ３２２は、前フレームで算出された追跡先特徴点３５７を中心として、設定されたサイズの矩形領域を、現フレームのテンプレートマッチング画像３４２及び前フレームのテンプレートマッチング画像３４３から読み出す。追跡先特徴点３５７は、追跡先特徴点決定部３０５から入力される。但し、最初にテンプレートマッチング処理を行う際には、前フレームで追跡先特徴点が算出されていないため、追跡先特徴点３５７の代わりに前フレームの新規特徴点３５１が使用される。また、後述する特定の状況下においても、追跡先特徴点３５７の代わりに前フレームの新規特徴点３５１が使用される。
【００３９】
なお、現フレームのテンプレートマッチング画像３４２から読み出される矩形領域はサーチ領域２０５に対応し、前フレームのテンプレートマッチング画像３４３から読み出される矩形領域はテンプレート領域２０４に対応する。サーチ領域２０５に対応する矩形領域の画像及びテンプレート領域２０４に対応する画像は、それぞれ、サーチ領域画像３５３及びテンプレート領域画像３５４として、テンプレートマッチング処理部３０３へ出力される。
【００４０】
Ｓ４０６で、テンプレートマッチング処理部３０３は、サーチ領域画像３５３及びテンプレート領域画像３５４を用いて相関値を算出し、その相関値に基づいてベクトル値を算出する。本実施形態では、相関値の算出方法として、式３に示す差分絶対値和（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ、ＳＡＤ）を使用することができる。
Ｓ＿ＳＡＤ＝ΣｉΣｊ｜ｆ（ｉ，ｊ）−ｇ（ｉ，ｊ）｜  ・・・  （３）
式３において、ｆ（ｉ，ｊ）はテンプレート領域画像３５４内の座標（ｉ，ｊ）における画素値を表し、ｇ（ｉ，ｊ）はサーチ領域画像３５３において相関値算出の対象となる領域内の対応する画素値を表す。相関値算出対象領域は、テンプレート領域画像３５４と同じ大きさである。そしてＳＡＤでは、両ブロック内の各画素値ｆ（ｉ，ｊ）及びｇ（ｉ，ｊ）について差の絶対値を計算し、その総和を求めることで相関値Ｓ＿ＳＡＤを得ることができる。従って、相関値Ｓ＿ＳＡＤの値が小さいほど両ブロック間の輝度値の差分が小さい、つまりテンプレート領域画像３５４と相関値算出領域内とでテクスチャが類似していることを表している。
【００４１】
なお、本実施形態では、相関値の一例としてＳＡＤを使用しているが、これに限るものではなく、差分二乗和（ＳＳＤ）や正規化相互相関（ＮＣＣ）等の他の相関値を用いてもよい。テンプレートマッチング処理部３０３は、相関値の最小値の位置に基づいて、前フレームの追跡先特徴点のベクトル値を算出する。テンプレートマッチング処理部３０３は、ベクトル情報３５５（算出されたベクトル値及び相関値）を精度判定部３０４に出力する。
【００４２】
Ｓ４０７で、精度判定部３０４は、Ｓ４０６において算出された相関値に基づいて相関値の最大値、最小値、平均値、極小値を算出し、低コントラスト判定、画素値の最大値突出判定、及び繰り返しパターン判定を行う。
【００４３】
図６に、画素値と各判定の関係をグラフで示す。但し、本実施形態では相関値が小さいほど類似度が高いため、図６において、画素値の最大値は相関値では最小値を表し、画素値の最小値は相関値では最大値を表し、画素値の極大値は相関値では極小値を表す。
【００４４】
低コントラスト判定では、相関値算出領域内の相関値の最大値と最小値の差分が予め設定されている閾値よりも小さい場合に、相関値算出領域は低コントラストであると判定される。画素値の最大値突出判定では、相関値算出領域内の相関値の最小値がどれだけ際立っているかが判定される。画素値の最大値と平均値の差分と、画素値の最大値と最小値の差分の除算結果が、予め設定されている閾値よりも小さい場合、相関値算出領域は低ピークであると判定される。除算結果が閾値よりも大きい場合、相関値算出領域は高ピークであると判定される。繰り返しパターン判定では、相関値算出領域内の画素値の最小値と極小値の差分が予め設定されている閾値よりも小さい場合に、相関値算出領域は繰り返しパターンであると判定される。
【００４５】
図６（ａ）は、各判定の結果が良好な場合を示す。図６（ｂ）は、低コントラスト判定により相関値算出領域が低コントラストであると判定される場合を示す。図６（ａ）に比べて、図６（ｂ）では画素値の最大値と最小値の差が小さい。図６（ｃ）は、画素値の最大値突出判定により相関値算出領域が低ピークであると判定される場合を示す。図６（ａ）に比べて、図６（ｃ）では画素値の最大値と平均値の差分と、画素値の最大値と最小値の差分の除算結果が小さい。図６（ｄ）は、繰り返しパターン判定により相関値算出領域が繰り返しパターンであると判定される場合を示す。図６（ａ）に比べて、図６（ｄ）では画素値の最大値と極大値の差分が小さい。
【００４６】
Ｓ４０８で、精度判定部３０４は、低コントラスト判定、最大値突出判定、及び繰り返しパターン判定の判定結果を含むベクトル情報３５６をＳＲＡＭ３０６に出力する。ベクトル情報３５６は、ベクトルデータ３４４としてＳＲＡＭ３０６に格納される。
【００４７】
Ｓ４０９で、追跡先特徴点決定部３０５は、前フレームの追跡先特徴点３５７及びベクトルデータ３４４に基づいて、次フレームのテンプレートマッチング処理に用いるための、現フレームの追跡先特徴点を算出する。ここで算出された追跡先特徴点は、次にＳ４０５においてテンプレートマッチング処理が実行される際に、前フレームの追跡先特徴点３５７として使用される。なお、Ｓ４０９の処理の詳細については、図７を参照して後述する。
【００４８】
以上の処理により、現フレームのテンプレートマッチング処理（即ち、現フレームにおいて前フレームの特徴点を追跡する処理）が完了する。その後、画像処理部１０４に次フレームの撮影画像が入力されると、次フレームの画像を現フレームの画像として、Ｓ４０１〜Ｓ４０９の処理が再び実行される。従って、図４では、基準となる所定の撮影画像（例えば、最初の撮影画像）の後に撮影される１以上の撮影画像にわたって特徴点を追跡する処理が行われる。
【００４９】
次に、図７を参照して、Ｓ４０９の処理の詳細について説明する。Ｓ７０１で、追跡先特徴点決定部３０５は、ＳＲＡＭ３０６からベクトルデータ３４４を取得する。そして、追跡先特徴点決定部３０５は、前フレームの追跡先特徴点３５７の座標に対してベクトルデータ３４４が示すベクトル値を加算することにより、現フレームの追跡先特徴点の座標を算出する。なお、Ｓ７０１及び続くＳ７０２〜Ｓ７０５の処理は、追跡先特徴点ごとに実行される。
【００５０】
Ｓ７０２で、追跡先特徴点決定部３０５は、ベクトルデータ３４４に含まれる判定結果（Ｓ４０７の判定結果）に基づき、Ｓ７０１で算出された追跡先特徴点が有効であるか否か（次フレームのテンプレートマッチング処理に使用可能であるか否か）を判定する。低コントラスト判定により相関値算出領域が低コントラストであると判定された場合、追跡先特徴点は有効でないと判定される。また、最大値突出判定で相関値算出領域が低ピークであると判定された場合、及び、繰り返しパターン判定で相関値算出領域が繰り返しパターンであると判定された場合にも、追跡先特徴点は有効でないと判定される。それ以外の場合には、追跡先特徴点は有効であると判定される。追跡先特徴点が有効である場合、処理はＳ７０３に進み、追跡先特徴点が有効でない場合、処理はＳ７０４に進む。
【００５１】
Ｓ７０３で、追跡先特徴点決定部３０５は、Ｓ７０１で算出された追跡先特徴点が撮影範囲の内部に含まれるか否かを判定する。Ｓ７０１で算出された追跡先特徴点が撮影範囲の内部に含まれる場合、処理はＳ７０５に進み、そうでない場合、処理はＳ７０４に進む。
【００５２】
Ｓ７０４で、追跡先特徴点決定部３０５は、Ｓ７０１で算出された追跡先特徴点を、図４のＳ４０４で算出された現フレームの新規特徴点で置き換える。即ち、Ｓ７０２又はＳ７０３で「ＮＯ」と判定された場合、追跡先特徴点決定部３０５は、特徴点の追跡に失敗したと判断し、前フレームの追跡先特徴点を代替する新たな特徴点を現フレームにおいて選択する。この時、追跡先特徴点決定部３０５は、Ｓ４０４で算出された複数の新規特徴点のうち、追跡に失敗した特徴点が最初に算出された特徴点抽出グリッドにおいて算出された新規特徴点を、追跡に失敗した特徴点を代替する新たな特徴点として選択する。例えば、最初の撮影画像の特定の特徴点抽出グリッドにおいて算出された特定の特徴点について、後続の特定の撮影画像において追跡に失敗した場合を考える。この場合、この特定の撮影画像を現フレームとして用いるＳ４０４の処理によりこの特定の特徴点抽出グリッドにおいて算出された新規特徴点が、追跡に失敗したこの特定の特徴点を代替する。
【００５３】
Ｓ７０５で、追跡先特徴点決定部３０５は、全ての追跡先特徴点が処理されたか否かを判定する。全ての追跡先特徴点が処理された場合、本フローチャートの処理は完了する。未処理の追跡先特徴点が残っている場合、次の未処理の追跡先特徴点について、同様にＳ７０１以降の処理が行われる。
【００５４】
次に、図８及び図９を参照して、移動被写体がフレームインするタイミングの前後の期間における撮影のための、手ぶれ補正に利用可能な特徴点追跡処理について説明する。この期間において、複数の撮影画像が撮像素子１０２により順次撮像される。
【００５５】
図８（ａ）〜（ｅ）は、撮影範囲の特定の領域に対して移動被写体がフレームインするシーンを撮影する際の動きベクトル検出部１１６の処理を時系列に示した模式図である。また、図９は、図８のようなシーンにおける動きベクトル検出部１１６の処理を示すフローチャートである。
【００５６】
Ｓ９０１で、図８（ａ）〜（ｅ）に示すような移動被写体がフレームインしてくるシーンを撮影することを望むユーザは、操作部１１３を用いて、移動被写体に対する防振を優先的に行う撮影モードに設定する操作を行う。ＣＰＵ１１２は、ユーザによる操作に応じて、移動被写体に対する防振を優先的に行う撮影モードに設定する。
【００５７】
Ｓ９０２で、ユーザは、操作部１１３を用いて、例えば図８（ｂ）に示すような被写体フレームイン領域８０１を指定する。被写体フレームイン領域８０１は、移動被写体がフレームインしてくるとユーザが期待する領域であり、撮影範囲の一部の領域である。この際に、ユーザは、矩形領域の水平・垂直サイズ及び位置を指定する。操作部１１３による指定は、方向キーなどのボタンによるものであってもよいし、タッチパネルによるものでもあってもよい。図８（ｂ）から理解できるように、被写体フレームイン領域８０１の指定は、撮影画像が表示された状態で実行可能である。
【００５８】
Ｓ９０３の処理は、図４のＳ４００において処理領域がＳ９０２の指定領域に対応する場合に相当する。即ち、ＣＰＵ１１２は、Ｓ９０２における指定領域に対応する処理領域を分割設定部３６０に設定し、分割設定部３６０は、予め設定されたグリッド分割数に基づき、処理領域をグリッド（分割領域）に分割する。その結果、図８（ｃ）に示すような、動きベクトル検出部１１６で処理する分割処理領域８０２が設定される。例えば、水平方向及び垂直方向のグリッド分割数は、サイズの大きい方向に多くなるように設定されるなど、ユーザの入力に応じて自動で設定される。なお、ここで分割処理領域８０２は、前述した特徴点抽出グリッド２０２のみを表記したものであり、周辺グリッド２０１の表記は割愛している。
【００５９】
Ｓ９０４で、動きベクトル検出部１１６は、図４のＳ４０１〜Ｓ４０４の処理に従って、テンプレートマッチング画像の用意と、各グリッド（分割処理領域８０２）における新規特徴点の抽出（選択）とを行う。
【００６０】
Ｓ９０５で、動きベクトル検出部１１６は、図４のＳ４０５〜Ｓ４０８の処理に従って、基準フレーム（第１の撮影画像）と基準フレームの次に撮影されたフレーム（第２の撮影画像）との間で、基準フレームの特徴点に関するベクトル検出処理を行う。なお、Ｓ９０５のベクトル検出処理では、精度判定部３０４は、ベクトル情報３５６を、ＳＲＡＭ３０６に加えて被写体検知部３０７に出力する。また、Ｓ９０５のベクトル検出処理では、追跡先特徴点算出処理（図４のＳ４０９）は行われない。従って、後述するＳ９０６からＳ９０４へ処理が戻った場合、次フレームについても、新規特徴点抽出部３０２が出力する新規特徴点３５１に関するベクトル検出処理が行われる。これにより、移動被写体のフレームイン前においては、背景のベクトル情報に基づいた背景防振がなされることになる。
【００６１】
Ｓ９０６で、被写体検知部３０７は、精度判定部３０４により出力されたベクトル情報３５６に基づいて、被写体フレームイン領域８０１に移動被写体がフレームインしたか否か（出現したか否か）を判定する。移動被写体のフレームイン前は、図８（ｃ）に示すように、取得されるベクトル情報は背景のベクトル情報８０３、つまりユーザの撮影による手ぶれ成分が支配的となる。一方、図８（ｄ）に示すように移動被写体８０４がフレームインすると、移動被写体８０４のベクトル情報８０５が取得される。移動被写体８０４のベクトル情報８０５は、背景のベクトル情報８０３に比べて大きな値を持ち、その方向も同一方向に揃う傾向にある。被写体検知部３０７は、背景のベクトル情報８０３が支配的なフレームから移動被写体８０４のベクトル情報８０５が支配的なフレームへの切り替わりを検知することで、移動被写体のフレームインを検知する。被写体検知部３０７による検知結果３１５は、分割設定部３６０、及び追跡先特徴点決定部３０５に出力される。Ｓ９０６において移動被写体のフレームインが検知された場合、処理はＳ９０７に進む。
【００６２】
Ｓ９０６において移動被写体のフレームインが検知されなかった場合、処理はＳ９０４に戻り、次のフレームについてＳ９０４〜Ｓ９０６の処理が行われる。即ち、デジタルカメラ１００は、移動被写体がフレームインしたと判定されるまでは、複数の撮影画像の各々を撮影順に基準フレームとして、Ｓ９０４〜Ｓ９０６の処理（第１の処理セット）を繰り返し実行する。この繰り返しにおいて、各回のベクトル検出処理（Ｓ９０５）における追跡対象（ベクトル検出対象）の特徴点は、基準フレームの処理領域に基づいて各グリッドから１つずつ新たに抽出（選択）された特徴点である。また、Ｓ９０６の判定は、直前の繰り返しにおいて検出された各特徴点の動きベクトルと現在の繰り返しにおいて検出された各特徴点の動きベクトルとの相違に基づいて行われる。なお、最初のフレームの処理時には比較対象となる前フレームのベクトル情報が存在しないため、Ｓ９０６の判定は行われず、処理はＳ９０４に戻る。また、デジタルカメラ１００は、動きベクトルを用いない方法（例えば、画像認識処理）によりＳ９０６の判定を行ってもよい。
【００６３】
Ｓ９０７で、分割設定部３６０は、図８（ｅ）に示すように、動きベクトル検出部１１６の処理領域を撮影範囲全体に拡大してグリッドに分割する。これにより、分割処理領域８０６が設定される。処理領域のグリッド分割数は、処理性能に応じて予め決定されているため、拡大の前後で変化しない。また、ここで分割処理領域８０６は、前述した特徴点抽出グリッド２０２のみを表記したものであり、周辺グリッド２０１の表記は割愛している。なお、Ｓ９０７において新たに設定される処理領域は、Ｓ９０３において設定される処理領域よりも広ければ、撮影範囲の全体ではなく一部であってもよい。
【００６４】
Ｓ９０８で、動きベクトル検出部１１６は、Ｓ４０９の処理に従って、追跡先特徴点３５７を決定する。なお、分割処理領域８０６は撮影範囲全体（画面全体）に設定されているため、特徴点の追跡に失敗した場合（図７のＳ７０２又はＳ７０３でＮＯと判定された場合）にＳ７０４で採用される新規特徴点は、画面全体から抽出したものから選択されることになる。
【００６５】
Ｓ９０９で、動きベクトル検出部１１６は、図４のＳ４０１〜Ｓ４０４の処理に従って、テンプレートマッチング画像の用意と、各グリッド（分割処理領域８０６）における新規特徴点の抽出とを行う。ここで抽出された新規特徴点は、次にＳ９０８の追跡先特徴点算出処理が行われた際に特徴点の追跡に失敗した場合に使用される。
【００６６】
Ｓ９１０で、動きベクトル検出部１１６は、図４のＳ４０５〜Ｓ４０８の処理に従って、Ｓ９０８の追跡先特徴点に関するベクトル検出処理を行う。Ｓ９１０のベクトル検出処理は、Ｓ９０５と異なり、追跡先特徴点決定部３０５が出力した追跡先特徴点３５７に基づいて行われる。これにより、被写体のフレームイン検知後は、図８（ｅ）に示すように移動被写体８０４のベクトル情報を継続して取得し続けることになる。
【００６７】
Ｓ９１１で、ＣＰＵ１１２は、撮影終了か否かを判定する。撮影終了の場合、本フローチャートの処理は終了する。撮影終了でない場合、処理はＳ９０８に戻り、次のフレームについてＳ９０８〜Ｓ９１０の処理と、それに続くＳ９１１の判定とが行われる。即ち、デジタルカメラ１００は、移動被写体がフレームインしたと判定された後は、複数の撮影画像の各々を撮影順に基準フレームとして、Ｓ９０８〜Ｓ９１０の処理（第２の処理セット）を繰り返し実行する。この繰り返しにおいて、各回のベクトル検出処理（Ｓ９１０）における追跡対象（ベクトル検出対象）の特徴点として、直前の繰り返しにおいて検出された各特徴点の動きベクトルが示す各特徴点の移動先が選択される（Ｓ９０８）。但し、直前の繰り返しにおいて特定の特徴点の有効な動きベクトルが検出されない場合がある。この場合、現在の繰り返しにおいて、動きベクトル検出部１１６は、特定の特徴点の移動先の代わりとなる特徴点を、基準フレームの処理領域に基づいて、処理領域の中から選択する。
【００６８】
なお、図９によれば、移動被写体のフレームイン後に最初に行われるベクトル検出処理（Ｓ９１０）が行われる前に、追跡先特徴点算出処理（Ｓ９０８）が行われる。従って、移動被写体のフレームイン後に最初に行われるベクトル検出処理（Ｓ９１０）の特徴点は、移動被写体のフレームイン時のベクトル検出処理（Ｓ９０５）の特徴点の移動先である。即ち、図９によれば、移動被写体のフレームインが検知されると直ちに、ベクトル検出処理の対象となる特徴点が新規特徴点から移動先（追跡先）の特徴点へと切り替えられる。しかしながら、切り替えのタイミングは、図９に示すタイミングよりも１フレーム後であってもよい。この場合、移動被写体のフレームイン後に最初に実行されるＳ９０８の処理において、動きベクトル検出部１１６は、図４のＳ４０４の処理に従って、基準フレームの新規特徴点を抽出する。また、移動被写体のフレームイン後に最初に実行されるＳ９１０の処理において、動きベクトル検出部１１６は、Ｓ９０８で抽出された新規特徴点について、ベクトル検出処理を行う。また、Ｓ９０７の処理は、移動被写体のフレームイン後に新規特徴点が抽出された後に、１回だけ実行される。
【００６９】
以上説明したように、第１の実施形態によれば、デジタルカメラ１００は、移動被写体がフレームインしたと判定されるまでは、複数の撮影画像の各々を撮影順に基準フレームとして、Ｓ９０４〜Ｓ９０６の処理（第１の処理セット）を繰り返し実行する。この繰り返しにおいて、各回のベクトル検出処理（Ｓ９０５）における追跡対象（ベクトル検出対象）の特徴点は、基準フレームの処理領域に基づいて各グリッドから１つずつ新たに抽出（選択）された特徴点である。また、デジタルカメラ１００は、移動被写体がフレームインしたと判定された後は、複数の撮影画像の各々を撮影順に基準フレームとして、Ｓ９０８〜Ｓ９１０の処理（第２の処理セット）を繰り返し実行する。この繰り返しにおいて、各回のベクトル検出処理（Ｓ９１０）における追跡対象（ベクトル検出対象）の特徴点として、直前の繰り返しにおいて検出された各特徴点の動きベクトルが示す各特徴点の移動先が選択される（Ｓ９０８）。これにより、撮影途中にフレームインする移動被写体に対応する特徴点をより多く追跡することが可能となる。
【００７０】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００７１】
１００…デジタルカメラ、１０２…撮像素子、１０４…画像処理部、１０７…ＤＲＡＭ、１０９…ＲＯＭ、１１１…表示部、１１２…ＣＰＵ、１１３…操作部、１１６…動きベクトル検出部
【図１】
2019191661.tif 000004
【図２】
2019191661.tif 000005
【図３】
2019191661.tif 000006
【図４】
2019191661.tif 000007
【図５】
2019191661.tif 000008
【図６】
2019191661.tif 000009
【図７】
2019191661.tif 000010
【図８】
2019191661.tif 000011
【図９】
2019191661.tif 000012
【図１０】
2019191661.tif 000013