以下、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
図1は、本発明の実施形態の画像処理装置の一適用例であるデジタルカメラの概略構成を示す図である。
図1において、結像光学部101は、レンズ及び絞りなどを備えている。撮影の際、結像光学部101は、フォーカス調節及び露出調節を行い、撮像素子102に光学像を結像させる。
撮像素子102は、光学像を電気信号(アナログ画像信号)に変換する光電変換機能を有し、CCDやCMOSセンサ等で構成される。
A/D変換部103は、撮像素子102からのアナログ画像信号をデジタル画像信号に変換する。
DRAM(メモリ)107は、データ等を記憶するメモリであり、所定枚数の静止画像や所定時間分の動画像、音声等のデータや、CPU112の動作用の定数、展開されたプログラム等を格納するのに十分な記憶容量を備える。本実施形態の場合、DRAM107は、少なくとも、後述するテンプレートマッチング処理における原画像と参照画像とを記憶可能となされている。後述する動きベクトル検出が行われる場合、原画像と参照画像は時間軸上で隣接するフレーム画像であり、例えば参照画像が現在のフレーム画像(現フレーム)である場合、原画像は参照画像に対して時間的に前のフレーム画像(前フレーム)である。
メモリ制御部106は、CPU112或いはデータ転送部105からの指示に応じて、DRAM107に対するデータ書き込みや読み出しを行う。
ROM109は、電気的に消去・記録可能なメモリであり、EEPROM等が用いられる。ROM109には、CPU112の動作用の定数、プログラム等が記憶される。
不揮発性メモリ制御部108は、CPU112からの指示に応じて、ROM109(不揮発性メモリ)に対するデータの書き込みや読み出しを行う。
CPU112は、画像処理装置全体(デジタルカメラ全体)の制御を司るマイクロコンピュータ等で構成され、各部に対して動作指示を行い、各種の制御処理を実行する。CPU112は、バス114を介して、画像処理部104、データ転送部105、メモリ制御部106、不揮発性メモリ制御部108、表示制御部110、操作部113、撮像素子102を制御する。CPU112は、ROM109に格納されているプログラムを実行することにより各部の制御や処理を実現する。
バス114は、システムバスであり、バス115は画像データバスである。
表示部111は、液晶モニタ等からなり、表示制御部110により制御され、各種画像やユーザインターフェース画面等を表示する。
操作部113は、ユーザーにより操作されるスイッチやボタン等を含み、電源のオン/オフ、シャッターのオン/オフ等の操作等に使用される。
ジャイロセンサ116は、カメラの姿勢(横位置、縦位置など)や動き方向を検出し、CPU112へ通知する。ジャイロセンサ116から動き等の検出信号を受け取ることで、CPU112は、手ぶれ等に起因するカメラのぶれ方向やぶれ量等を算出することも可能である。
画像処理部104は、各種画像処理を行う回路やプロセッサー、バッファメモリ等から構成されている。また本実施形態の場合、画像処理部104は、1つの撮影画像に対して設定された複数の処理領域を、それぞれに対応して設けられた動きベクトル検出部により処理し、動きベクトル検出および特徴点追跡を行う機能を備えている。ここで、特徴点と動きベクトルを基に被写体追跡等を行う場合において、多数の動きベクトルを精度良く検出でき、また多数の特徴点を追跡できれば、被写体の追跡精度の向上を図ることができる。一方で、動画等のリアルタイム処理において、1つの動きベクトル検出部で検出できる動きベクトル数には限りがある。そこで本実施形態では、1つの撮影画像について複数の処理領域を設定し、各処理領域をそれぞれ個々に対応した動きベクトル検出部にて処理することで、動きベクトルの検出精度を向上させつつ、多数の特徴点を精度良く追跡することを実現可能としている。このため、本実施形態の画像処理部104は、被写体検出部123と、第1のベクトル検出部121および第2のベクトル検出部122の2つのベクトル検出部を備えている。被写体検出部123は、撮像された画像から、被写体の顔部分や物体部分などの特徴量や動き量を検出し、それらを基に、主となる被写体を検出する。第1のベクトル検出部121と第2のベクトル検出部122は、同一の機能を有し、各々独立して動きベクトル検出を行う。本実施形態の場合、1つの画像について第1の領域と第2の領域の2つの処理領域を設定し、第1のベクトル検出部121は第1の領域を、第2のベクトル検出部122は第2の領域を処理する。すなわち、画像処理部104は、第1の領域と第2の領域に対して並列して処理を行うことで、多数の特徴点と多数の動きベクトルを高い精度で検出可能とし、それらを基に特徴点追跡を行うことにより、追跡精度の向上を図っている。本実施形態の画像処理部104における処理領域の設定、特徴点の抽出、動きベクトルの検出、および特徴点追跡の詳細な説明は後述する。
データ転送部105は、データ転送を行う複数のDMAC(Direct Memory Access Controller)で構成されている。
画像処理部104やデータ転送部105は、ハードウェア構成であってもよいし、マイクロコンピュータ等が実行するソフトウェア構成により実現されてもよい。画像処理部104やデータ転送部105がマイクロコンピュータにより構成されている場合、それら画像処理部104やデータ転送部105の処理は、ROM109に格納されているプログラムを実行することにより実現される。
以下、画像処理部104の第1,第2のベクトル検出部121,122の構成およびデータ転送部105の動作について、図2〜図9を参照して概要を説明する。その後、図10以降の各図を参照して本実施形態に係る詳細な構成と動作について説明する。なお、第1,第2のベクトル検出部121,122は同一の機能を有するため、以下、それらの区別が必要な場合を除き、ベクトル検出部とのみ表記する。
図2は、ベクトル検出部(121,122)の概略構成および動作の説明に用いる図である。ベクトル検出部は、CPU112にて制御され、またデータ転送部105を介してメモリにアクセスして動きベクトル検出処理および特徴点追跡処理を実行する。このため、図2には、動きベクトル検出および特徴点追跡に係る機能構成の他に、それらに関連したCPU112の機能構成とデータ転送部105およびメモリの機能構成も示されている。図2において、動きベクトル検出および特徴点追跡に係る主要な構成は、マッチング画像生成部201、特徴点算出部202、マッチング処理部203、精度判定部204、追跡先決定部205である。また図2において、CPU112に含まれる機能構成は処理領域設定部260であり、データ転送部105に含まれる機能構成はRDDMACa221、RDDMACb222、WRDMAC231となっている。RDDMACa221、RDDMACb222は、DRAM107に対してデータの読み出しを行う際のDMAC機能を表し、WRDMAC231は、DRAM107に対してデータの書き込みを行う際のDMAC機能を表している。メモリとしては、DRAM107と図1には不図示のSRAM206が含まれる。
図3は、ベクトル検出部が、データ転送部105を介してDRAM107からグリッド毎に画像データを読み出して特徴点を抽出する際の各グリッドの配置および特徴点と、テンプレートマッチング領域及びサーチ領域との関係を示す図である。
テンプレートマッチングによる動きベクトル検出の際、データ転送部105は、DRAM107から、図3に示すようにフレーム画像を複数分割したグリッド毎に画像データを読み出して、ベクトル検出部に転送する。各グリッドのサイズは予め設定されており、また、フレーム画像から分割される各グリッドの個数は水平,垂直方向について予め設定された個数となされている。フレーム画像を複数分割したグリッドには、特徴点の抽出およびテンプレートマッチングに用いられる抽出枠領域としてのグリッドと、特徴点抽出は実施されないがテンプレートマッチングには使用される非抽出枠領域としてのグリッドとがある。図3の例では、図中の白色のグリッド302が、特徴点抽出が行われる抽出枠領域としてのグリッドである。これら特徴点抽出が行われる各グリッド302からなるグリッド群の周囲には周辺グリッド301が配置される。周辺グリッド301は、特徴点抽出は実施されないが、テンプレートマッチングでは使用される、非抽出枠領域としてのグリッドである。
ベクトル検出部は、抽出枠領域のグリッド302内で画像の特徴の大きさを表す特徴値を画素毎に計算し、特徴値が最も大きい画素を、該当グリッド302の特徴点303として取得する。これにより、各グリッド302につき一つの特徴点303が取得される。また、そのグリッド302の特徴点303の特徴量は、特徴点303となされた画素の特徴値に相当する。そして、ベクトル検出部は、特徴点303を中心として、予め設定されたサイズの矩形領域をテンプレート領域304として決定する。ベクトル検出部は、これらグリッド302毎に得られた特徴点303とテンプレート領域304のデータをDRAM107に格納する。DRAM107に格納されたテンプレート領域304は、テンプレートマッチングにおける原画像(前フレーム)のテンプレート領域304として用いられる。そして、ベクトル検出部は、テンプレートマッチングにおける参照画像(現フレーム)のグリッド302に対して、前フレーム内で対応した位置のグリッド302から得られたテンプレート領域304を用いたサーチを行う。
このサーチの際、ベクトル検出部は、現フレーム(参照画像)のグリッド302内において、特徴点303を中心として、テンプレート領域304より大きく予め設定されたサイズの矩形領域を、サーチ領域305として設定する。ベクトル検出部は、テンプレート領域304の画像を用い、サーチ領域305内を順に走査することでテンプレートマッチングを行う。テンプレートマッチングの際の走査手法は公知の技術であるためその詳細な説明は省略する。テンプレートマッチングの際、ベクトル検出部は、テンプレート領域304内の画素値と、サーチ領域305内でテンプレート領域304と同じ大きさの矩形領域内の画素値との相関を求める相関演算処理を行う。そして、ベクトル検出部は、現フレームのグリッド302のサーチ領域305の中で、前フレームのグリッド302のテンプレート領域304と最も相関が高い矩形領域の位置を、そのテンプレート領域304の移動先として検出する。さらに、ベクトル検出部は、前フレームのグリッド302内のテンプレート領域304の位置を基準位置とし、その基準位置に対し、現フレームのグリッド302のサーチ領域305内におけるテンプレート領域304の移動先の向きと移動量を求める。ベクトル検出部は、このようにして求めた向きと移動量を、グリッド302におけるベクトル値として検出する。
図4には、図2に示されたデータ転送部105の各DMAC(221,222,231)機能によるグリッド分割から、ベクトル検出部における特徴点と動きベクトルに基づく追跡先特徴点算出までの処理のフローチャートを示す。以下、図4のフローチャートを参照しながら、図2に示したベクトル検出部の構成とデータ転送部105のデータ転送動作について、より詳細な説明を行う。なおこのフローチャートの処理は、ハードウェア構成により実行されてもよいし、マイクロコンピュータ等が実行するプログラムに基づくソフトウェア構成により実現されてもよく、一部がハードウェア構成で残りがソフトウェア構成により実現されてもよい。マイクロコンピュータ等が実行するプログラムは、例えばROM109に格納されていてもよいし、不図示の外部メモリ等の記録媒体から取得されてもよく、或いは不図示のネットワーク等を介して取得されてもよい。以下の説明では、各処理のステップS400〜ステップS409をS400〜S409と略記する。これらのことは後述する他のフローチャートにおいても同様であるとする。
先ずS400において、CPU112は、ジャイロセンサ116からの検出情報や被写体検出部123からの情報を統合する。そして、CPU112は、処理領域設定部260における処理領域設定として、第1,第2のベクトル検出部121,122で各々独立して動きベクトル検出処理と特徴点追跡が行われる処理領域を設定する。なお、処理領域の設定方法の詳細については、後述する第1の実施形態及び第2の実施形態の項目で説明する。
次にS401において、データ転送部105のRDDMACa221は、バス115を介し、DRAM107から、動きベクトル検出対象となる現フレームの入力画像データ241を読み出す。この時、データ転送部105のRDDMACa221は、図3に示したグリッド302および周辺グリッド301のグリッド単位毎に画像データを読み出す。なお、入力画像データ241は、画像処理部104で既に各種画像処理が施された後のデータである。そして、RDDMACa221は、グリッド単位毎に読み出された入力画像データ241を、ベクトル検出部のマッチング画像生成部201および特徴点算出部202に出力する。また、RDDMACa221は、それぞれ読み出したグリッドの座標位置を示すグリッド座標情報252を、後述する追跡先決定部205に送る。S401の後は、マッチング画像生成部201にて行われるS402の処理と、特徴点算出部202にて行われるS404の処理に移行する。
S402に移行すると、マッチング画像生成部201は、動きベクトル検出のためのテンプレートマッチングに使用するマッチング用画像データ242を生成し、データ転送部105のWRDMAC231に出力する。具体的には、マッチング画像生成部201は、バンドパスフィルタ回路であり、テンプレートマッチング処理に不要な、画像信号の高周波成分と低周波成分を除去して、マッチング用画像データ242を生成する。S402の後は、データ転送部105のWRDMAC231にて行われるS403の処理に移行する。
S403に移行すると、WRDMAC231は、バス115を介し、DRAM107に対して、マッチング画像生成部201から送られてきたマッチング用画像データ242を書き込む。このマッチング用画像データ242は、現フレームから生成されたデータであり、テンプレートマッチングの際に参照される画像データである。また、DRAM107には、現フレームに対して時間軸上で一つ前のフレーム画像から生成されたマッチング用画像データ243も格納されている。このマッチング用画像データ243は、前フレームにおいて生成されたデータであり、テンプレートマッチングにおける原画像データである。S403の後は、データ転送部105のRDDMACb222にて行われるS405の処理に移行する。
特徴点算出部202にて行われるS404の処理は、前述したS402及びその後のS403の処理と並列に行われる。S404において、特徴点算出部202は、現フレームについて新規特徴点を算出する。
図5には、特徴点算出部202の構成例を示す。特徴点算出部202は、図5に示すように、特徴フィルタ部501、特徴評価部502、特徴点決定部503を有する。
特徴フィルタ部501は、バンドパスフィルタ、水平微分フィルタ、垂直微分フィルタ、平滑化フィルタなど、複数のフィルタから構成される。特徴フィルタ部501は、バンドパスフィルタにより画像データから不要な高周波成分と低周波成分を除去した後、水平方向の微分フィルタ処理と垂直方向の微分フィルタ処理を施す。さらに、特徴フィルタ部501は、それら水平方向と垂直方向の微分フィルタ処理を施したデータに対して、平滑化フィルタ処理を施す。これら水平,垂直方向について各々微分フィルタ処理と平滑化フィルタ処理が施されたデータは、特徴評価部502に送られる。
特徴評価部502は、特徴フィルタ部501で処理されたグリッドの画像から、2つのエッジの交点の画素や、曲率が極大となっている曲線部分の点の画素のように、周辺の各画素の微分値が多方向に大きくなっている画素の値を、特徴値として算出する。なお、グリッド内に、2つのエッジの交点や曲率が極大となっている曲線部分の点等が存在していない場合には、特徴値は算出されない。以下、グリッドから特徴点を検出する方法の一例として、Shi and Tomasiの手法を例に挙げて説明する。Shi and Tomasiについては公知の手法であるため、ここでは概要のみ説明する。
特徴評価部502は、特徴フィルタ部501により水平,垂直方向に各々微分フィルタ処理を施した画素の値から、自己相関行列Hを作成する。自己相関行列Hの式は、式(1)にて表される。
式(1)において、Ixは水平微分フィルタが施された後の画素の値、Iyは垂直微分フィルタが施された後の画素の値であり、自己相関行列Hは、ガウシアンフィルタGを畳み込むことで求められる。そして、特徴評価部502は、式(2)に示すShi and Tomasiの特徴評価式により、特徴値を求める。なお、式(2)に示したShi and Tomasiの特徴評価式は、式(1)の自己相関行列Hの固有値λ1、λ2のうち小さい方の固有値を特徴値とすることを表している。
Shi and Tomasi=min(λ1,λ2) 式(2)
特徴評価部502によりグリッド毎に求められた特徴値のデータは、特徴点決定部503に送られる。
特徴点決定部503は、グリッドから特徴評価部502により画素毎に算出された特徴値の中で最も大きい値を持つ画素を、該当グリッドの特徴点として決定する。なお、特徴評価部502にて特徴値が算出されなかった場合には、特徴点決定部503では、そのグリッドの特徴点は取得されない。そして、グリッドにおいて取得された特徴点の座標情報は、特徴点決定部503が備えているメモリに格納される。本実施形態において、特徴点の座標は、グリッドの左上端の座標(x,y)を原点(0,0)とした場合の相対座標(PX,PY)により表される。なお、特徴点の座標は、相対座標(PX,PY)の他に、フレーム画像内における画素位置を表す座標で表現されてもよい。また、特徴点決定部503が備えているメモリは、前フレームの各グリッドで決定された特徴点の座標情報と、現フレームの各グリッドで決定された特徴点の座標情報とを格納可能な容量を有している。特徴点決定部503に格納された特徴点の座標情報のうち、前フレームのグリッドにおける特徴点の座標情報251は、後述するマッチング処理部203でテンプレートマッチング処理が開始される際にRDDMACb222に出力される。ただし、最初のテンプレートマッチング処理では、前フレームから追跡先の特徴点座標を算出することができないため、全て新規の特徴点座標を用いた処理が実施されることになる。
図4のフローチャートに説明を戻す。S404の後は、データ転送部105のRDDMACb222にて行われるS405の処理に移行する。
S405において、RDDMACb222は、DRAM107からテンプレート領域304とサーチ領域305の画像データを読み出す。具体的には、RDDMACb222は、前フレームで算出された座標情報251とグリッド座標情報252を基に、マッチング用画像データ243から、特徴点303を中心としたテンプレート領域304の画像データ254を読み出す。また、RDDMACb222は、前フレームで算出された座標情報251とグリッド座標情報252を基に、マッチング用画像データ242から、特徴点303を中心としたサーチ領域305の画像データ253を読み出す。そして、RDDMACb222は、サーチ領域305の画像データ253とテンプレート領域304の画像データ254を、マッチング処理部203へ出力する。S405の後は、ベクトル検出部のマッチング処理部203にて行われるS406の処理に移行する。
S406において、マッチング処理部203は、サーチ領域の画像データ253とテンプレート領域の画像データ254とを用い、それら画像の画素毎に相関値を算出する相関演算を行い、その相関値からベクトル値を算出する。具体的には、マッチング処理部203は、相関値として、各画素の差分絶対値和(Sum of Absolute Difference、以下SADと略す。)を求める。マッチング処理部203がSADの演算により相関値S_SADを求める際の演算式を式(3)に示す。
なお、式(3)において、f(i,j)はテンプレート領域内の座標(i,j)における画素値を表し、g(i,j)はサーチ領域内において相関値算出の対象となる矩形領域内の各画素値を表している。サーチ領域内で相関値算出の対象となる矩形領域とは、テンプレート領域と同じサイズの領域であり、テンプレートマッチングの際にサーチ領域内で左上端部から順に走査される領域である。以下、サーチ領域内で相関値算出の対象となる矩形領域を「相関値算出領域」と表記する。マッチング処理部203は、それらテンプレート領域の画素値f(i,j)と相関値算出領域の画素値g(i,j)の差の絶対値を計算して、その総和を求めることにより、相関値S_SADを求める。なお、この時に用いられる画素値は例えば輝度値である。この相関値S_SADは、その値が小さいほど、両領域の画像間の輝度値の差分が小さいこと、つまり、テンプレート領域の画像とサーチ領域内の相関値算出領域の画像のテクスチャが類似していることを表す。ここでは、SADにより相関値を求める例を挙げたが、これに限るものではなく、例えば差分二乗和(SSD)や正規化相互相関(NCC)等の他の相関値を用いてもよい。
そして、マッチング処理部203は、相関値が最小値となる座標位置を求める。相関値が最小値となる座標位置は、現フレームのグリッドのサーチ領域の中で、前フレームのグリッドのテンプレート領域と最も相関が高い矩形領域の位置であると考えられる。さらに、サーチ領域の中でテンプレート領域と最も相関が高い矩形領域の位置は、前フレームのテンプレート領域が、現フレーム内では何れの位置になっているのかを示す移動先を表している。マッチング処理部203は、前フレームのグリッド内のテンプレート領域の位置を基準位置とし、その基準位置に対し、前述の移動先の向きと移動量を、グリッドにおけるベクトル値とする。そして、マッチング処理部203は、ベクトル値および相関値情報255を、精度判定部204に出力する。
精度判定部204は、S407の処理として、前フレームのグリッドのテンプレート領域や現フレームのグリッドのサーチ領域の画像が、動きベクトル検出に適した画像であるか否かを判定する。具体的には、S407において、精度判定部204は、S406で算出された画素毎の相関値情報255を用いて、それら相関値の最大値、最小値、平均値、極小値を求める。そして、精度判定部204は、それら相関値の最大値、最小値、平均値、極小値に基づいて、低コントラスト判定、画素値の最大値突出判定、繰り返しパターン判定を行う。
図6(a)〜図6(d)には、相関値の最大値、最小値、平均値、極小値による、低コントラスト判定、画素値の最大値突出判定、繰り返しパターン判定と、画素値との関係をグラフとして示している。ただし、相関値が小さいほど画像間の類似度は高いことになるため、図6(a)〜図6(d)における画素値の最大値は相関値では最小値を表し、画素値の最小値は相関値では最大値を表し、画素値の極大値は相関値では極小値を表すことになる。
精度判定部204は、低コントラスト判定において、相関値算出領域内の相関値の最大値と最小値の差分が、予め設定されている閾値よりも小さい場合、その相関値算出領域内は低コントラストであると判定する。また、精度判定部204は、画素値の最大値突出判定では、相関値算出領域内の相関値の最小値がどれだけ際立っているかを判定する。例えば、画素値の最大値と平均値の差分と、画素値の最大値と最小値の差分とを除算した値が、予め設定されている閾値よりも小さい場合、精度判定部204は、相関値算出領域内は低ピークであると判定する。一方、画素値の最大値と平均値の差分と、画素値の最大値と最小値の差分とを除算した値が、閾値よりも大きい場合、精度判定部204は、相関値算出領域内は高ピークであると判定する。また、精度判定部204は、繰り返しパターン判定において、相関値算出領域内の画素値の最小値と極小値の差分が、予め設定されている閾値よりも小さい場合には、繰り返しパターンであると判定する。
図6(a)は、精度判定部204における低コントラスト判定、画素値の最大値突出判定、繰り返しパターン判定が、それぞれ良好な場合の例を挙げている。これに対し、図6(b)は、低コントラスト判定において低コントラストであると判定される例を示しており、図6(a)の例に比べて図6(b)では、画素値の最大値と最小値の差が少ない。図6(c)は、画素値の最大値突出判定において低ピークであると判定される例を示しており、図6(a)の例に比べて図6(c)では、画素値の最大値と平均値の差分と、画素値の最大値と最小値の差分との除算値が小さい。図6(d)は、繰り返しパターン判定において繰り返しパターンであると判定される例を示しており、図6(a)の例に比べて図6(d)では、画素値の最大値と極大値の差分が小さい。
精度判定部204は、前述のような低コントラスト判定、最大値突出判定、繰り返しパターン判定を各グリッドについて行う。そして、精度判定部204は、低コントラスト、最大値突出、繰り返しパターンの何れかにも該当しないと判定した場合、テンプレート領域とサーチ領域の画像は、動きベクトル検出に適した画像であると判定する。一方、精度判定部204は、低コントラスト、最大値突出、繰り返しパターンの何れかであると判定した場合には、テンプレート領域とサーチ領域の画像は、動きベクトル検出に適さない画像であると判定する。
そして、CPU112は、S408において、低コントラスト、低ピーク、繰り返しパターンの判定結果を表す判定情報およびベクトル情報256を、SRAM206に送って書き込ませる。
次に、S409の処理として、追跡先決定部205では、次フレームのテンプレートマッチング処理に用いるための、後述する追跡先特徴点を決定する処理を行う。
図7は、追跡先決定部205における追跡先特徴点決定処理の流れを示すフローチャートである。以下、図7のフローチャートを参照しながら、追跡先特徴点の決定処理の概要を説明する。
S701において、追跡先決定部205は、SRAM206から入力された現フレームのベクトル情報と、現フレームの追跡先特徴点の座標とを基に、次フレームの追跡先特徴点の座標を算出する。つまり、追跡先決定部205は、現フレームの追跡先特徴点の座標をベクトル始点とし、ベクトル情報のベクトル値で表される方向と大きさに相当する分だけ移動した先のベクトル終点の座標を、次フレームの追跡先特徴点の座標として決定する。
次にS702において、追跡先決定部205は、SRAM206から入力された判定情報がOK判定であったか否かを判断する。つまり、追跡先決定部205は、S701で算出した追跡先特徴点が次フレームのテンプレートマッチング処理に使用可能である有効な追跡先特徴点であったかどうかを判定する。SRAM206から入力された判定情報は、前述したように、低コントラスト判定で低コントラストと判定されるか、画素値の最大値突出判定で低ピークと判定されるか、繰り返しパターン判定で繰り返しパターンであると判定された場合にはNG判定となる。一方、それらの何れにも該当しない場合にはOK判定とされる。そして、追跡先決定部205は、S702において、判定情報がNG判定であった場合にはS704に遷移し、OK判定であった場合にはS703に遷移する。
S703に遷移した場合、追跡先決定部205は、S701で算出した追跡先特徴点座標が、フレームの画角内であるかどうかを判定する。具体的には追跡先決定部205は、追跡先特徴点座標を中心とするテンプレート領域が周辺グリッドの内側に収まっている場合にはフレーム画角内にあると判定(OK判定)してS705に遷移し、一方、収まっていない場合はNGと判定してS704に遷移する。
S704に遷移した場合、追跡先決定部205は、S702またはS703でNG判定された位置に該当する追跡先特徴点座標を破棄して、新規特徴点座標に置き換える。具体的には、追跡先決定部205は、破棄された追跡先特徴点が一番初めに新規特徴点として算出された位置の抽出枠領域のグリッドに該当する位置で算出された現フレームの新規特徴点座標で置き換える処理を行う。このS704の後、追跡先決定部205の処理は、S705に遷移する。
S705に遷移すると、追跡先決定部205は、抽出枠領域のグリッド数分の全ての追跡先特徴点座標が算出されたか否かを判定する。そして、追跡先決定部205は、全ての追跡先特徴点座標が算出されたと判定した場合は図7のフローチャートの処理を終了し、一方、算出されていないと判定した場合にはS701に処理を戻して、S701以降の前述した処理を行う。
以上が、図4のフローチャートにおけるグリッド分割から動きベクトル検出および追跡先特徴点決定までの大まかな流れである。なお、図4のフローチャートでは、1フレーム分の処理を示しているが、ベクトル検出部とデータ転送部105は、毎フレームに対して同様のグリッド分割から動きベクトル検出および追跡先特徴点決定までの処理を行う。
次に、図8と図9(a)および図9(b)を参照し、特徴点追跡の概要と、動きベクトルの検出精度の向上を目的とした処理領域設定を行った場合の特徴点追跡で生ずる課題について説明する。
図8は、特徴点追跡処理の概略を示す図であり、前述した図3と同様の、抽出枠領域のグリッド1404、テンプレート領域1403、サーチ領域1406、周辺グリッド1405を示している。動きベクトル検出の際には、図8に示すように抽出枠領域のグリッド1404内で特徴点1401が算出され、テンプレート領域1403によるテンプレートマッチングが行われることでベクトル値1407が算出される。そして次のフレームの処理では、特徴点1401をベクトル始点とし、ベクトル値1407による方向と大きさ分だけ離れた点を追跡先特徴点1402とし、その追跡先特徴点1402を中心としたテンプレートマッチングが行われる。以後、複数フレームに渡って、前述同様の特徴点追跡が行われる。
ここで、動きベクトルの検出精度を向上させるために、1つの画像について複数の処理領域を設定し、それら複数の処理領域に各々対応して個別に設けたベクトル検出部により特徴点の抽出と動きベクトルの検出、および特徴点の追跡を行うとする。
図9(a)は、1つの画像を第1,第2の領域1502,1501の2つの処理領域に分け、第1の領域1502を第1のベクトル検出部で処理し、第2の領域1501を第2のベクトル検出部で処理する場合の抽出特徴点と追跡先特徴点を示した図である。このように第1,第2のベクトル検出部でそれぞれ処理を行う場合、第1,第2の領域1502,1501にはそれぞれ特徴点抽出が実施される抽出枠領域のグリッドと、特徴点抽出が実施されない周辺グリッドとが設定される。また、第1の領域1502と第2の領域1501には重なり領域1500が設けられる。そして、図9(a)に示すように、動きベクトルが例えば右方向へのベクトルであった場合、追跡先特徴点は右側に移動していくことになる。しかしながら、第1の領域1502の右端部の追跡先特徴点1510〜1514までの追跡がされた場合、その更に右側の領域は、第1の領域1502外の第2の領域1501となる。この場合、第1の動きベクトル検出部では特徴点を追跡できず特徴点が消失することになり、特徴点追跡性能が低下してしまうことになる。
図9(b)は、図9(a)と同様に、1つの画像に第1,第2の領域1502,1501の2つの処理領域が設定され、その画像内に例えば矢印1503に示すように右側に移動する被写体1504が写っている例を表している。つまり、図9(b)の例において、被写体1504は、第1の領域1502から、第1の領域1502と第2の領域1501との境界を跨いで、第2の領域1501に移動しているとする。また、第1のベクトル検出部により、第1の領域1502からは被写体1504を検出可能な優良な各特徴点1520〜1527が抽出または追跡されているとする。しかしながら、各特徴点1520〜1527は、被写体1504の移動に伴って右側に移動するため、重なり領域1500付近まで追跡された後は第1の領域1502から外れて消失してしまうことになる。このように被写体1504の移動を検出可能な優良な特徴点が存在していても、例えば被写体1504が第1の領域1502と第2の領域1501の境界を跨ぐ場合には、特徴点が消失してしまい、その結果、特徴点追跡性能が低下してしまうようになる。
そこで、本実施形態では、被写体が処理領域の境界を跨いで移動することで特徴点が消失する場合、被写体の少なくとも移動元の処理領域に対応するベクトル検出部が、新たな特徴点を抽出する際の設定を制御し、新たな追跡先特徴点を設定(補填)し易くする。
<第1の実施形態>
以下、被写体が処理領域の境界を跨いで移動することで特徴点が消失する場合に、新たな追跡先特徴点を設定(補填)し易くするような処理を実施する第1の実施形態の画像処理装置について、図10から図13を参照しながら説明する。前述の図9(a)と図9(b)の例では1つの画像を左右方向(水平方向)に分けて処理領域を設定した例を挙げたが、以降の説明では画像を上下方向(垂直方向)に分けて処理領域を設定する例を挙げる。第1の実施形態に係る画像処理装置の構成および概略的な処理は前述の図1〜図7で説明したのと同様である。
図10は、第1の実施形態に係る画像処理装置おいて、1つの画像を上下方向に分けるように処理領域を設定した場合の一例を示した図である。第1の実施形態の画像処理装置において、処理領域設定部260は、図10に示すように、撮影により得られた撮影画像805に対し、上下方向に分けた処理領域を設定する。なお図10の例では、被写体804とその周辺の動きベクトルを多く検出可能にするため、撮影画像805内で被写体804とその周辺の画像領域に対し、上側の第1の領域801と下側の第2の領域802の2つの処理領域を設定した例を示している。また図10には、被写体804が、矢印803に示すように上方向に動いていて、第1の領域801と第2の領域802との境界(以下、処理領域境界とする。)を跨るように移動する場合の例を示している。
図11(a)と図11(b)は、撮影画像に対する処理領域の設定と各処理領域内に設定されるグリッドの配置例とを示した図である。第1の実施形態の画像処理装置は、図11(a)に示すように撮影画像900に対して第1の領域901と第2の領域902を設定し、同様に、図11(b)に示すように撮影画像910に対して第1の領域911と第2の領域912を設定する。また、画像処理装置は、それら第1,第2の領域に対し、特徴点抽出が実施される抽出枠領域のグリッドと、特徴点抽出が実施されない周辺グリッドとを設定し、さらに、第1の領域と第2の領域との処理領域境界には前述同様に重なり領域が設けられる。図11(a)の例は、被写体903が第2の領域902内に存在していて、第1の領域901と第2の領域902の処理領域境界を未だ跨いでいない状態を表している。一方、図11(b)の例は、図11(a)では第2の領域912内に存在していた被写体913が、第1の領域911と第2の領域912の処理領域境界を跨いで、被写体913の位置まで移動した状態を表している。
本実施形態の画像処理装置は、図11(b)に示すように、被写体913が処理領域境界を跨いで移動する場合、その移動後に被写体が出現する位置を予測し、その予測出現位置に対して抽出枠領域のグリッドを密に配置するようにグリッド配置の設定を制御する。
図12は、被写体が処理領域境界を跨ぐ位置に移動する際に、移動後の被写体位置を予測してグリッド配置を制御し、動きベクトルを検出するまでの処理の流れを示したフローチャートである。図12のS1001からS1005までは、移動後の被写体位置を予測してグリッド配置を制御するまでの処理ステップであり、これらの処理は図4のS400においてCPU112(処理領域設定部260を含む)により行われる。なお、図12のS1007の動きベクトル検出処理は、図4のS401以降の処理に相当する。
S1001において、CPU112は、画像処理部104の処理モードを、撮影画像を複数の処理領域に分けてそれぞれベクトル検出部で処理するモードに遷移させる。本実施形態の場合、画像処理部104は、撮影画像に対して第1,第2の領域を設定し、第1の領域を第1のベクトル検出部121で処理し、第2の領域を第2のベクトル検出部122で処理するモードに遷移する。
次にS1002において、CPU112の処理領域設定部260は、被写体検出部123による被写体の検出情報に基づき、現時点における被写体の位置を表す座標を算出する。被写体の座標としては、被写体位置上にある追跡特徴点座標を用いるとする。複数の追跡特徴点がある場合には、処理領域境界に最も近い追跡特徴点の座標とする。その他にも、被写体位置上の追跡特徴点座標は、被写体の重心位置、複数の追跡特徴点位置の中間位置、最も特徴量の大きい追跡特徴点の座標等でもよい。図13は図10や図11(a)、図11(b)に示した被写体が移動している様子を表した図である。図13には、第2の領域1112から第1の領域1111の方向(下から上方向)に順に移動している途中の各フレームにおける被写体1101〜1103を示している。図13の例では、被写体1102が現フレームの被写体を表し、被写体1101が現フレームの1V(垂直同期)前のフレームの被写体を、被写体1101が現フレームの1V後のフレームで予測される位置の被写体を表している。
次にS1003において、処理領域設定部260は、第1のベクトル検出部121および第2のベクトル検出部122がそれぞれ現フレームと1V前のフレームとから算出した動きベクトルを基に、被写体位置にある特徴点の移動量1104を算出する。なお、複数の追跡先特徴点から動きベクトルが算出される場合、被写体の移動量は、各動きベクトルの平均値、最頻値、中央値のいずれかで求めればよい。本実施形態では、算出した被写体の移動量1104を、1V後の予測移動量1105として使用する。その他にも、処理領域設定部260は、過去フレームの被写体移動量を記憶しておき、それら過去の移動量を加味して予測移動量1105を算出してもよい。
次にS1004において、処理領域設定部260は、S1002で算出した被写体位置と、S1003で算出した被写体の予測移動量とに基づき、次フレームで被写体が処理領域境界を跨ぐか否かを判定する。本実施形態の場合、上下方向に処理領域を設定するため、処理領域設定部260は、処理領域境界跨ぎの判定の際、処理領域境界の垂直座標Lyと、被写体の垂直座標Pyと、垂直方向の予測移動量Myを用いた下記の式(4)、式(5)による判定を行う。
Ly<(Py+My) 式(4)
Ly>(Py+My) 式(5)
なお、式(4)は、被写体が下から上方向に移動して処理領域境界を跨ぐ場合(図13のように被写体1103が第2の領域1112から第1の領域1111に移動する場合)の判定式である。一方、式(5)は、被写体が上から下方向に移動して処理領域を跨ぐ場合(被写体が第1の領域から第2の領域に移動する場合)の判定式である。そして、処理領域設定部260は、S1004において、被写体が処理領域境界を跨ぐと判定した場合にはS1005へ遷移し、被写体が処理領域境界を跨がないと判定した場合にはS1006へ遷移する。
S1005に遷移すると、処理領域設定部260は、図11(b)に示したように、被写体913が処理領域境界を跨いで移動する移動先の第1の領域911と、被写体913が移動する前の移動元の第2の領域912とについてそれぞれグリッド配置を制御する。処理領域設定部260は、移動先の第1の領域911内で被写体913が移動すると予測される位置に対し、特徴点抽出が実施される抽出枠領域のグリッドの大きさを小さくし且つ密集させるようにグリッド配置を設定し、それら以外を周辺グリッドにする。ここで、被写体が上下方向(垂直方向)に移動した後に出現する予測出現位置をOyとすると、その予測出現位置Oyは下記の式(6)、式(7)で算出できる。
Oy=Ly−Py+My 式(6)
Oy=Py+My−Ly 式(7)
なお、式(6)は、被写体が下から上方向に移動して処理領域境界を跨ぐ場合の算出式である。一方、式(7)は、被写体が上から下方向に移動して処理領域境界を跨ぐ場合の算出式である。
このように、本実施形態の画像処理装置は、被写体の予測出現位置に基づいて、特徴点抽出が実施される抽出枠領域のグリッドを細かく配置する。ここで、被写体が処理領域境界を跨ぐことによって移動先の処理領域で追跡対象の特徴点が消失した場合には、新たな特徴点を追跡対象の特徴点として設定する(補填する)ことが必要となる。本実施形態では、被写体の予測出現位置で特徴点抽出が実施される抽出枠領域のグリッドを細かく密に配置するように設定することで、移動先の処理領域で追跡対象となる特徴点が設定され易く(補填され易く)なるような補填のための設定制御を行う。そして、被写体の予測出現位置で細かく配置された抽出枠領域のグリッドでは、前述の図7のS704で説明した新規特徴点を用いた置き換え処理によって、新たな特徴点が設定される(つまり追跡対象の特徴点が補填される)。このように本実施形態において、消失した特徴点の補填は、処理領域境界を跨いで移動先に出現が予測される被写体領域に対応して密に配置した抽出枠領域のグリッドから得られる新規特徴点群の中の特徴点で置き換える処理により行われる。
一方、処理領域設定部260は、被写体913の移動元である第2の領域912については処理領域境界を跨ぐ被写体913を避けるような(特徴点抽出処理から外すような)グリッド配置とする。例えば図13に示したように、第2の領域912において処理領域境界を跨ぐ被写体913の領域については、特徴点抽出が実施されない周辺グリッドを設定する。これにより、第2の領域912を出ていく被写体913の位置に対応したグリッドでは、S704における新規特徴点による置き換え処理が行われないようになる。このように、本実施形態では、被写体の移動元の処理領域については処理領域境界を跨ぐ被写体を避けるようなグリッド配置とすることで、移動元の被写体にかかるグリッドから追跡対象の特徴点が抽出されないように設定する補填の制御が行われる。
図12のフローチャートに説明を戻す。
S1004で被写体913が処理領域境界を跨がないと判定されてS1006に遷移すると、処理領域設定部260は、図11(a)の例と同様に、第1,第2の領域901,902共に、処理領域全体で均等なグリッド配置とする。これにより、S704で説明した新規特徴点による置き換え処理は、該当する処理領域の画面全体より求められた新規特徴点群の中の特徴点により行われることになる。
前述したS1005またはS1006の後、CPU112は、画像処理部104の処理をS1007に遷移させ、図4のS401からS409の処理を実行させる。すなわち、S1007において、画像処理部104は、前述のように設定された第1の領域を第1のベクトル検出部121にて処理し、第2の領域を第2のベクトル検出部122にて処理する。
以上説明したように、第1の実施形態の画像処理装置は、被写体が処理領域境界を跨いで移動する場合、被写体の移動先の処理領域において被写体が出現すると予測される領域には特徴点抽出を実施するグリッドを密集させて配置する。また、画像処理装置は、被写体の移動元の領域には特徴点抽出が実施されないグリッドを配置して、被写体領域から特徴点抽出を実施するグリッドを外す配置とする。これにより第1の実施形態の画像処理装置によれば、被写体の領域で検出される優良な特徴点が処理領域境界で消失したとしても、移動先の処理領域で新たな追跡対象の特徴点による追跡を継続できる確率が高まり、特徴点追跡性能を向上させることが可能となる。
前述した図12のフローチャートでは、被写体が処理領域境界を跨いだ瞬間のフレームのみS1005に分岐する例を挙げたが、被写体が複数V期間をかけて処理領域境界を跨ぐ場合、処理領域境界を跨ぐ複数V期間、S1005に分岐する制御としてもよい。また、被写体が処理領域境界を跨ぐのに合わせて、グリッド配置を細かく調整してもよい。
なお、第1の実施形態では上下方向に処理領域を設定の例を挙げて説明したが、左右方向に処理領域を設定する場合も同様のグリッド配置制御を行うことができる。また本実施形態において、処理領域を設定する方向は、画像を撮影する撮影装置(カメラ)の位置情報と被写体の動き情報の少なくともいずれか、に基づいて設定される。例えばカメラの位置情報あるいは被写体の動き情報が変化した場合には、その変化後のカメラの位置情報と被写体の動き情報の少なくともいずれかに、基づいて処理領域を設定する方向を切り替えてもよい。そしてカメラの位置情報ならびに被写体の動き情報に基づいて、処理領域を設定する方向を切り替えた上で、図12に示したグリッド配置制御の処理に移行してもよい。
<第2の実施形態>
以下、第2の実施形態に係る画像処理装置における処理について図14と図15を参照して説明する。なお、第2の実施形態に係る画像処理装置の構成および主要な処理は前述の図1から図7で説明したのと同様である。第2の実施形態では、図4のS400で行われる処理領域設定と、S404で特徴点算出部202により行われる現フレームの新規特徴点算出、図7のS704で追跡先特徴点座標を新規特徴点の座標で置き換える処理について説明する。
図14は、第2の実施形態の画像処理装置において、撮影画像1200に対し第1の領域1201と第2の領域1202の処理領域を設定し、被写体1203が処理領域境界を跨ぐ場合のグリッド配置制御の事例を示した図である。図14の例においても前述同様に、第1の領域1201と第2の領域1202には、特徴点抽出が実施されるグリッドと、特徴点抽出が実施されない周辺グリッドが設定され、また重なり領域が設けられる。図14の例は、被写体1203が処理領域境界を跨いで第2の領域1202から第1の領域1201に入る例を示している。
第2の実施形態でも、被写体が処理領域の境界を跨いで移動する場合、移動先の処理領域で被写体が出現する位置を予測し、その出現予測位置に対して、追跡対象となる特徴点が設定され易く(補填され易く)なるような補填の設定制御を行う。また、第2の実施形態でも、移動元の処理領域では被写体領域からは追跡対象の特徴点として設定されない(補填されない)ようにする補填の制御を行う。ただし、第2の実施形態の場合、前述した第1の実施形態のように、被写体が処理領域境界を跨ぐか、跨がないかでグリッド配置を変更するようなことは行わない。
第2の実施形態では、被写体が処理領域境界を跨いで入る処理領域内の被写体領域を含むグリッドと、被写体が出て行く処理領域内で被写体領域を含むグリッドとにおいて算出される特徴点の特徴量を調整するような補填の設定制御を行う。図14の例の場合、第1の領域1201内のグリッド1204が、処理領域境界を跨いで入る被写体1203を含むグリッドであり、第2の領域1202内のグリッド1205が、処理領域境界を跨いで出て行く被写体1203を含むグリッドである。第2の実施形態の画像処理装置は、被写体1203が処理領域境界を跨ぐ場合に、それらグリッド1204およびグリッド1205において算出される特徴点の特徴量を調整する。
図15は、第2の実施形態の画像処理装置における特徴点の調整制御の流れを示すフローチャートである。以下、図15のフローチャートと、図4のS404とを参照して、第2の実施形態において各グリッドで求められる特徴点の調整制御について説明する。
S1301〜S1304は、図12のS1001〜S1004と概ね同じ処理であるため、その説明は省略する。CPU112は、S1304において、被写体が処理領域境界を跨ぐと判定した場合にはS1305に遷移し、処理領域境界を跨がないと判定した場合にはS1306に遷移する。
S1305に移ると、CPU112は、図14に示したように、第1の領域1201(被写体の移動先)で被写体1203を含むグリッド1204と、第2の領域1202(移動元)で被写体1203を含むグリッド1205との情報を記憶する。なお、記憶する情報は、グリッド番号でもよいし、グリッド座標でもよく、それら両方でもよい。CPU112は、被写体が垂直方向(上下方向)に移動し、処理領域境界を跨いで移動先で出現する予測出現位置Oyを、前述の式(6)または式(7)により算出し、予測出現位置に該当する座標を有するグリッドとその周辺グリッドの情報を記憶する。また、CPU112は、被写体の移動元の処理領域についても、処理領域境界を跨ぐ被写体の位置に該当する座標を有するグリッドとその周辺のグリッドの情報を記憶する。
S1305の後、CPU112は、画像処理部104の処理をS1306に遷移させ、図4のS401からS409の処理を実行させる。すなわち、S1307において、画像処理部104は、第1の領域を第1のベクトル検出部121にて処理し、第2の領域を第2のベクトル検出部122にて処理する。第2の実施形態の場合、S404とS409以外の処理は第1の実施形態で説明した処理と同様であるため、ここではS404とS409について説明する。
第2の実施形態において、S404で実行される処理のうち、特徴点算出部202による各グリッドの特徴点算出処理までは第1の実施形態で説明したのと同様である。また、マッチング処理部203に特徴点座標情報がRDDMACb222に出力されるタイミングも第1の実施形態の例と同様である。
第2の実施形態の場合、S404において、CPU112は、特徴点算出部202が算出した新規特徴点の座標(PX,PY)と共に、その新規特徴点の特徴量PcをもSRAM206に格納する。このため、第2の実施形態の場合、SRAM206は、前フレームの特徴点と現フレームの特徴点を格納可能な容量を有している。
そして、CPU112は、S1305で被写体を含むグリッドについて記憶されたグリッドの情報に基づいて、新規特徴点の特徴量Pcを調整して特徴量Pc'を生成する。図14の例を用いて説明すると、CPU112は、処理領域境界を跨いだ移動先の第1の領域1201内で被写体1203が含まれるグリッド1204について、下記の式(8)の計算式により、調整後の特徴量Pc'を求める。
Pc'=Pc×Gu 式(8)
式(8)において、Guは調整値であり、特徴量を大きくするために予め設定されたゲイン値である。本実施形態の場合、GuはGu>1.0の値となされている。すなわち、処理領域境界を跨いだ移動先の被写体を含むグリッドについては、優先的に特徴点の特徴量を大きくするような調整処理が行われる。なお、移動先の処理領域における調整後の特徴量Pc'は、Guをオフセット値として加算することで求めてもよい。
一方、CPU112は、処理領域境界を跨ぐ際の移動元の第2の領域1202内で被写体1203が含まれるグリッド1205について、下記の式(9)の計算式により、調整後の特徴量Pc'を求める。
Pc'=Pc×Gl 式(9)
式(9)において、Glは調整値であり、特徴量を小さくするために予め設定されたゲイン値である。本実施形態の場合、GlはGl<1.0の値となされている。すなわち、処理領域境界を跨ぐ際の移動元の被写体を含むグリッドについては、特徴量を小さくするような調整処理が行われる。なお、移動元の処理領域における調整後の特徴量Pc'は、Glをオフセット値として減算することで求められてもよい。
また第2の実施形態において、S409に遷移した場合、追跡先決定部205では追跡先特徴点を決定する処理を行う。第2の実施形態の場合、追跡先決定部205により実行される図7のフローチャートの処理のうち、第1の実施形態と異なる処理はS704のみであるため、以下、S704の処理について説明する。
第2の実施形態の追跡先決定部205は、S704において、S702またはS703でNGと判定された位置に該当する追跡先特徴点座標を破棄して、新規特徴点座標に置き換える。具体的には、追跡先決定部205は、S404で算出されてSRAM206に記憶された新規特徴点のうち、最も特徴量が大きい新規特徴点の現フレームの座標で置き換える処理を行う。したがって、処理領域境界を跨いだ移動先の被写体を含むグリッドについて優先的に特徴点の特徴量を大きくする調整処理が行われた場合、当該特徴量が大きく調整された特徴点は、新規特徴点の現フレームの座標で置き換える処理が行われ易くなる。すなわち、処理領域境界を跨いだ移動先の被写体を含むグリッドの特徴点は、追跡先特徴点として選ばれ易くなる。一方、処理領域境界を跨ぐ際の移動元の被写体を含むグリッドについて特徴量を小さくするような調整処理が行われた場合、その特徴量が小さく調整された特徴点は、新規特徴点の現フレームの座標で置き換える処理が行われなくなる。すなわち、処理領域境界を跨ぐ際の移動元の被写体を含むグリッドの特徴点は、追跡先特徴点として選ばれなくなる。
以上説明したように、第2の実施形態においては、被写体が移動して処理領域境界を跨ぐかどうかを予測し、跨いだ場合には、跨いだ後の移動先の処理領域内で被写体が含まれるグリッドについて優先的に追跡対象の特徴点が補填される。また、第2の実施形態において、移動元の処理領域では、被写体が含まれるグリッドに対し、追跡対象の特徴点が補填されないようになされている。これにより、第2の実施形態によれば、被写体で検出される優良な特徴点が、処理領域境界で消失したとしても追跡できる確率が高まり、特徴点追跡性能を高めることが可能となる。なお、第2の実施形態においても上下方向(垂直方向)の処理領域設定の事例を挙げて説明したが、左右方向(水平方向)の処理領域設定が行われる場合にも同様の考え方で制御すればよい。
また、前述した第1,第2の実施形態では、動きベクトル検出部を2個具備する例を挙げて説明したが、3個以上の動きベクトル検出部を具備する場合も本発明は適用可能である。例えば3個の場合、撮影画像に対して上下方向あるいは左右方向に3つの処理領域が設定される。そして、隣接する処理領域の境界を被写体が跨いで移動するかどうかに応じて、前述同様のグリッド配置制御や特徴量の調整等を行うことで、前述した実施形態と同様の効果を得ることができる。さらに、1つの撮影画像に対して複数の処理領域を設定する場合、上下方向あるいは左右方向だけでなく、上下左右方向に処理領域を設定してもよい。この場合、動きベクトル検出部もそれら上下左右方向に設定された処理領域に応じた数が設けられることになる。
また、前述した第1,第2の実施形態で説明した処理は、それぞれ個々に行う場合だけでなく、それらを組み合わせて行うようにしてもよい。
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本実施形態では、画像処理装置の一例としてデジタルカメラを挙げたが、撮影画像を処理可能なタブレット端末、スマートフォン、電子ゲーム機、ドライブレコーダ、ナビゲーション装置、パーソナルコンピュータなど様々な装置であってもよい。この場合のそれら置は、その装置自身に搭載されているカメラ機能により撮影された画像、又は、デジタルカメラ等により撮影された画像を取得し、その画像データに対して前述した実施形態に係る各処理を実行する。また、これらの装置における実施形態に係る処理は、内部のマイクロコンピュータ等においてコンピュータプログラムを実行することにより実現されてもよい。実施形態に係る処理を実現するためのコンピュータプログラムは、記録媒体や各種ネットワークや通信回線を介して提供される。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。