(57)【要約】【課題】動きベクトルの検出性能を向上させると共に、特徴点追跡の際の特徴点消失を防いで追跡性能をも向上可能にすることを課題とする。【解決手段】画像処理装置は、撮影された画像から被写体を検出する被写体検出手段（１２３）と、画像に対して複数の処理領域を設定する設定手段（１１２）と、処理領域ごとに対応して設けられ、対応した処理領域を複数に分けた抽出枠領域ごとに特徴点を抽出して特徴点を用いた動きベクトル検出を行い、特徴点と動きベクトルとを基に特徴点の追跡を行う処理手段（１２１，１２２）と、被写体が処理領域の境界を跨いで移動する場合に、移動する被写体の少なくとも移動先の処理領域に対応した処理手段が新たな特徴点を抽出する際の設定を制御する制御手段（１１２）と、を有する。【選択図】図１
2019191724.tif 000002
【特許請求の範囲】
【請求項１】
撮影された画像から被写体を検出する被写体検出手段と、
前記画像に対して複数の処理領域を設定する設定手段と、
前記処理領域ごとに対応して設けられ、前記対応した処理領域を複数に分けた抽出枠領域ごとに特徴点を抽出して前記特徴点を用いた動きベクトル検出を行い、前記特徴点と動きベクトルとを基に前記特徴点の追跡を行う処理手段と、
前記被写体が前記処理領域の境界を跨いで移動する場合、前記移動する被写体の少なくとも移動先の処理領域に対応した処理手段が新たな特徴点を抽出する際の設定を制御する制御手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記処理手段は、
前記対応した処理領域を複数に分けた抽出枠領域ごとに特徴点を抽出する抽出手段と、
時間軸上で隣接する２枚のフレームの一方を原画像とし、もう一方を参照画像として、前記特徴点を中心とする、前記参照画像の矩形領域内の画素値と前記原画像の矩形領域内の画素値とで相関演算を行って動きベクトルを検出するベクトル検出手段と、
前記動きベクトルと前記特徴点とを基に、次のフレームの画像内で追跡対象となる特徴点を算出する追跡先決定手段と、を有し、
前記制御手段は、前記抽出手段における特徴点の抽出に関する設定を制御することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記制御手段は、
前記被写体が前記処理領域の境界を跨いで移動する場合の移動元の処理領域内の被写体の位置と前記動きベクトルとを基に、前記境界を跨いだ移動先の処理領域で前記被写体が出現する位置を予測し、
前記移動先の処理領域に対応した処理手段に対し、前記予測した位置に応じて前記抽出枠領域を密に配置するように設定させる制御を行うことを特徴とする請求項１または２に記載の画像処理装置。
【請求項４】
前記制御手段は、
前記被写体が前記処理領域の境界を跨いで移動する場合の移動元の処理領域内の被写体の位置と前記動きベクトルとを基に、前記境界を跨いだ移動先で前記被写体が出現する位置を予測し、
前記移動先の処理領域に対応した処理手段に対し、前記予測した位置に応じた前記抽出枠領域の特徴点の特徴量を調整するように設定を制御することを特徴とする請求項１から３のいずれか１項に記載の画像処理装置。
【請求項５】
前記制御手段は、前記移動先の処理領域に対応した処理手段に対し、前記予測した位置に応じた前記抽出枠領域の特徴点の特徴量を大きくするような前記調整を行わせることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記制御手段は、前記被写体が前記処理領域の境界を跨いで移動する場合、前記移動する被写体の移動元の処理領域に対応した処理手段の設定をも制御することを特徴とする請求項１から５のいずれか１項に記載の画像処理装置。
【請求項７】
前記制御手段は、前記移動元の処理領域に対応した処理手段に対し、前記抽出枠領域を前記被写体の位置から外すように設定させる制御を行うことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記制御手段は、前記移動元の処理領域に対応した処理手段に対し、前記被写体の位置に応じた前記抽出枠領域で抽出された特徴点の特徴量を調整するように設定を制御することを特徴とする請求項６または７に記載の画像処理装置。
【請求項９】
前記制御手段は、前記移動元の処理領域に対応した処理手段に対し、前記被写体の位置に応じた前記抽出枠領域で抽出される特徴点の特徴量を小さくするような前記調整を行わせることを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記被写体の移動先の処理領域に対応した処理手段は、前記被写体が前記処理領域の境界を跨いで移動することにより特徴点が消失する場合、前記制御手段による前記設定の制御に基づいて前記新たに抽出した特徴点を補填することを特徴とする請求項１から９のいずれか１項に記載の画像処理装置。
【請求項１１】
前記設定手段は、前記画像を撮影する撮影装置の位置と被写体の動きの少なくともいずれかに基づいて、前記処理領域を設定することを特徴とする請求項１から１０のいずれか１項に記載の画像処理装置。
【請求項１２】
画像処理装置が実行する画像処理方法であって、
撮影された画像から被写体を検出する被写体検出工程と、
前記画像に対して複数の処理領域を設定する設定工程と、
前記処理領域ごとに対応して設けられ、前記対応した処理領域を複数に分けた抽出枠領域ごとに特徴点を抽出して前記特徴点を用いた動きベクトル検出を行い、前記特徴点と動きベクトルとを基に前記特徴点の追跡を行う処理工程と、
前記被写体が前記処理領域の境界を跨いで移動する場合、前記移動する被写体の少なくとも移動先の処理領域に対応した処理工程で新たな特徴点を抽出する際の設定を制御する制御工程と、
を有することを特徴とする画像処理方法。
【請求項１３】
コンピュータを、請求項１から１１のいずれか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の被写体等の動きを検出して追跡する技術に関する。
【背景技術】
【０００２】
デジタルスチルカメラやデジタルビデオカメラ等の撮像装置においては、例えば、撮影された映像のフレーム画像間の動き量を検出して複数枚の各フレーム画像の位置合わせを行うことで、手ぶれ等による画像のぶれを補正することがある。フレーム画像間の動き量を検出する方法としては、例えば撮影されたフレーム画像から動き量を推定するような方法等が知られている。フレーム画像を用いて動き量を推定する方法は従来から種々提案されているが、その代表的なものとして、テンプレートマッチングによる動きベクトル検出がある。テンプレートマッチングでは、先ず、映像中の時間的に隣接した２枚のフレーム画像のうち一方を原画像とし、他方を参照画像とする。そして、原画像上に配置した所定の大きさの矩形領域をテンプレートブロックとし、参照画像の各位置において、テンプレートブロック内の画素値の分布との相関を求める。このとき、参照画像の中で最も相関が高くなる位置がテンプレートブロックの移動先であり、原画像上でのテンプレートブロックの位置を基準とした時の移動先への向きと移動量が動きベクトルとして検出される。
【０００３】
また、動きベクトルの検出率を向上させるための技術として、例えば、画像から特徴点を抽出し、その抽出した特徴点に基づいてテンプレートブロックを配置してテンプレートマッチングを行う技術が知られている。ただし、画像全体で特徴点抽出を行うと、特徴点の分布が不均一になることがある。このように特徴点の不均一な分布から得られた動きベクトルを画像のぶれ補正に使用した場合、特徴点の分布が集中した領域が主となるぶれ補正になってしまうことがある。これに対し、特許文献１には、画像を複数のグリッドに分割し、各グリッド内で画素ごとに特徴の大きさを表す特徴値を計算し、特徴値が最も大きい画素を該当グリッドの特徴点として抽出することで、特徴点の分布を略々均一にする技術が開示されている。
【０００４】
さらに、動きベクトルの検出率を向上させるための技術として、例えば、特徴点を追跡するような技術が知られている。例えば、特許文献２には、画像から抽出された特徴点の動きベクトルを、連続する複数のフレーム画像に渡って逐次検出することにより、特徴点の追跡を実現する技術が開示されている。ただし、特徴点追跡の際に、例えば特徴点が消失したり数が減ってしまったりして追跡に失敗してしまうことがある。このように追跡対象の特徴点が消失したり数が減ってしまったりした場合には、別の特徴点を追跡対象として設定する（補填する）ことが必要となる。その他にも、例えば特許文献３には、追跡対象の移動方向などから追跡の範囲を制限する技術が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−１９２０６０号公報
【特許文献２】特開２００７−３３４６２５号公報
【特許文献３】特開２０１２−７３９９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、動きベクトルの検出精度を更に高める手法として、例えば１つの画像に２つの処理領域を設定し、それら２つの処理領域に各々対応した動きベクトル検出部により多数の動きベクトルを検出するような手法もある。しかしながらこの手法を適用して特徴点追跡を行うようにした場合、例えば隣接する処理領域の境界を被写体が跨いで移動した際に、追跡対象となる特徴点が消失してしまうことになる。この場合、例えば特許文献３のように追跡対象の移動方向が分かっていたとしても特徴点の追跡が実施できなくなり、追跡性能が低下してしまうことになる。
【０００７】
そこで、本発明は、動きベクトルの検出性能を向上させると共に、特徴点追跡の際の特徴点消失を防いで追跡性能をも向上可能にすることを目的とする。
【課題を解決するための手段】
【０００８】
本発明の画像処理装置は、撮影された画像から被写体を検出する被写体検出手段と、前記画像に対して複数の処理領域を設定する設定手段と、前記処理領域ごとに対応して設けられ、前記対応した処理領域を複数に分けた抽出枠領域ごとに特徴点を抽出して前記特徴点を用いた動きベクトル検出を行い、前記特徴点と動きベクトルとを基に前記特徴点の追跡を行う処理手段と、前記被写体が前記処理領域の境界を跨いで移動する場合、前記移動する被写体の少なくとも移動先の処理領域に対応した処理手段が新たな特徴点を抽出する際の設定を制御する制御手段と、を有することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、動きベクトルの検出性能を向上させると共に、特徴点追跡の際の特徴点消失を防いで追跡性能をも向上可能となる。
【図面の簡単な説明】
【００１０】
【図１】画像処理装置の一例であるデジタルカメラの概略構成を示す図である。
【図２】ベクトル検出部の概略的な構成と動作説明に用いる図である。
【図３】グリッド、特徴点、マッチング領域の関係を示す図である。
【図４】動きベクトル検出から特徴点追跡までの処理のフローチャートである。
【図５】特徴点算出部の概略構成を示す図である。
【図６】精度判定部の判定処理の説明に用いるグラフである。
【図７】追跡先決定処理のフローチャートである。
【図８】特徴点追跡処理の概要説明に用いる図である。
【図９】処理領域と被写体の移動および特徴点追跡の説明に用いる図である。
【図１０】撮影画像に対して上下２つの処理領域を設定した例を示した図である。
【図１１】第１の実施形態のグリッド配置制御の説明に用いる図である。
【図１２】第１の実施形態におけるグリッド配置制御のフローチャートである。
【図１３】第１の実施形態の被写体位置の移動例の説明に用いる図である。
【図１４】第２の実施形態のグリッド配置の説明に用いる図である。
【図１５】第２の実施形態における特徴量調整制御のフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
図１は、本発明の実施形態の画像処理装置の一適用例であるデジタルカメラの概略構成を示す図である。
図１において、結像光学部１０１は、レンズ及び絞りなどを備えている。撮影の際、結像光学部１０１は、フォーカス調節及び露出調節を行い、撮像素子１０２に光学像を結像させる。
撮像素子１０２は、光学像を電気信号（アナログ画像信号）に変換する光電変換機能を有し、ＣＣＤやＣＭＯＳセンサ等で構成される。
Ａ／Ｄ変換部１０３は、撮像素子１０２からのアナログ画像信号をデジタル画像信号に変換する。
【００１２】
ＤＲＡＭ（メモリ）１０７は、データ等を記憶するメモリであり、所定枚数の静止画像や所定時間分の動画像、音声等のデータや、ＣＰＵ１１２の動作用の定数、展開されたプログラム等を格納するのに十分な記憶容量を備える。本実施形態の場合、ＤＲＡＭ１０７は、少なくとも、後述するテンプレートマッチング処理における原画像と参照画像とを記憶可能となされている。後述する動きベクトル検出が行われる場合、原画像と参照画像は時間軸上で隣接するフレーム画像であり、例えば参照画像が現在のフレーム画像（現フレーム）である場合、原画像は参照画像に対して時間的に前のフレーム画像（前フレーム）である。
メモリ制御部１０６は、ＣＰＵ１１２或いはデータ転送部１０５からの指示に応じて、ＤＲＡＭ１０７に対するデータ書き込みや読み出しを行う。
ＲＯＭ１０９は、電気的に消去・記録可能なメモリであり、ＥＥＰＲＯＭ等が用いられる。ＲＯＭ１０９には、ＣＰＵ１１２の動作用の定数、プログラム等が記憶される。
不揮発性メモリ制御部１０８は、ＣＰＵ１１２からの指示に応じて、ＲＯＭ１０９（不揮発性メモリ）に対するデータの書き込みや読み出しを行う。
【００１３】
ＣＰＵ１１２は、画像処理装置全体（デジタルカメラ全体）の制御を司るマイクロコンピュータ等で構成され、各部に対して動作指示を行い、各種の制御処理を実行する。ＣＰＵ１１２は、バス１１４を介して、画像処理部１０４、データ転送部１０５、メモリ制御部１０６、不揮発性メモリ制御部１０８、表示制御部１１０、操作部１１３、撮像素子１０２を制御する。ＣＰＵ１１２は、ＲＯＭ１０９に格納されているプログラムを実行することにより各部の制御や処理を実現する。
【００１４】
バス１１４は、システムバスであり、バス１１５は画像データバスである。
表示部１１１は、液晶モニタ等からなり、表示制御部１１０により制御され、各種画像やユーザインターフェース画面等を表示する。
操作部１１３は、ユーザーにより操作されるスイッチやボタン等を含み、電源のオン／オフ、シャッターのオン／オフ等の操作等に使用される。
ジャイロセンサ１１６は、カメラの姿勢（横位置、縦位置など）や動き方向を検出し、ＣＰＵ１１２へ通知する。ジャイロセンサ１１６から動き等の検出信号を受け取ることで、ＣＰＵ１１２は、手ぶれ等に起因するカメラのぶれ方向やぶれ量等を算出することも可能である。
【００１５】
画像処理部１０４は、各種画像処理を行う回路やプロセッサー、バッファメモリ等から構成されている。また本実施形態の場合、画像処理部１０４は、１つの撮影画像に対して設定された複数の処理領域を、それぞれに対応して設けられた動きベクトル検出部により処理し、動きベクトル検出および特徴点追跡を行う機能を備えている。ここで、特徴点と動きベクトルを基に被写体追跡等を行う場合において、多数の動きベクトルを精度良く検出でき、また多数の特徴点を追跡できれば、被写体の追跡精度の向上を図ることができる。一方で、動画等のリアルタイム処理において、１つの動きベクトル検出部で検出できる動きベクトル数には限りがある。そこで本実施形態では、１つの撮影画像について複数の処理領域を設定し、各処理領域をそれぞれ個々に対応した動きベクトル検出部にて処理することで、動きベクトルの検出精度を向上させつつ、多数の特徴点を精度良く追跡することを実現可能としている。このため、本実施形態の画像処理部１０４は、被写体検出部１２３と、第１のベクトル検出部１２１および第２のベクトル検出部１２２の２つのベクトル検出部を備えている。被写体検出部１２３は、撮像された画像から、被写体の顔部分や物体部分などの特徴量や動き量を検出し、それらを基に、主となる被写体を検出する。第１のベクトル検出部１２１と第２のベクトル検出部１２２は、同一の機能を有し、各々独立して動きベクトル検出を行う。本実施形態の場合、１つの画像について第１の領域と第２の領域の２つの処理領域を設定し、第１のベクトル検出部１２１は第１の領域を、第２のベクトル検出部１２２は第２の領域を処理する。すなわち、画像処理部１０４は、第１の領域と第２の領域に対して並列して処理を行うことで、多数の特徴点と多数の動きベクトルを高い精度で検出可能とし、それらを基に特徴点追跡を行うことにより、追跡精度の向上を図っている。本実施形態の画像処理部１０４における処理領域の設定、特徴点の抽出、動きベクトルの検出、および特徴点追跡の詳細な説明は後述する。
【００１６】
データ転送部１０５は、データ転送を行う複数のＤＭＡＣ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ  Ｃｏｎｔｒｏｌｌｅｒ）で構成されている。
画像処理部１０４やデータ転送部１０５は、ハードウェア構成であってもよいし、マイクロコンピュータ等が実行するソフトウェア構成により実現されてもよい。画像処理部１０４やデータ転送部１０５がマイクロコンピュータにより構成されている場合、それら画像処理部１０４やデータ転送部１０５の処理は、ＲＯＭ１０９に格納されているプログラムを実行することにより実現される。
【００１７】
以下、画像処理部１０４の第１，第２のベクトル検出部１２１，１２２の構成およびデータ転送部１０５の動作について、図２〜図９を参照して概要を説明する。その後、図１０以降の各図を参照して本実施形態に係る詳細な構成と動作について説明する。なお、第１，第２のベクトル検出部１２１，１２２は同一の機能を有するため、以下、それらの区別が必要な場合を除き、ベクトル検出部とのみ表記する。
【００１８】
図２は、ベクトル検出部（１２１，１２２）の概略構成および動作の説明に用いる図である。ベクトル検出部は、ＣＰＵ１１２にて制御され、またデータ転送部１０５を介してメモリにアクセスして動きベクトル検出処理および特徴点追跡処理を実行する。このため、図２には、動きベクトル検出および特徴点追跡に係る機能構成の他に、それらに関連したＣＰＵ１１２の機能構成とデータ転送部１０５およびメモリの機能構成も示されている。図２において、動きベクトル検出および特徴点追跡に係る主要な構成は、マッチング画像生成部２０１、特徴点算出部２０２、マッチング処理部２０３、精度判定部２０４、追跡先決定部２０５である。また図２において、ＣＰＵ１１２に含まれる機能構成は処理領域設定部２６０であり、データ転送部１０５に含まれる機能構成はＲＤＤＭＡＣａ２２１、ＲＤＤＭＡＣｂ２２２、ＷＲＤＭＡＣ２３１となっている。ＲＤＤＭＡＣａ２２１、ＲＤＤＭＡＣｂ２２２は、ＤＲＡＭ１０７に対してデータの読み出しを行う際のＤＭＡＣ機能を表し、ＷＲＤＭＡＣ２３１は、ＤＲＡＭ１０７に対してデータの書き込みを行う際のＤＭＡＣ機能を表している。メモリとしては、ＤＲＡＭ１０７と図１には不図示のＳＲＡＭ２０６が含まれる。
【００１９】
図３は、ベクトル検出部が、データ転送部１０５を介してＤＲＡＭ１０７からグリッド毎に画像データを読み出して特徴点を抽出する際の各グリッドの配置および特徴点と、テンプレートマッチング領域及びサーチ領域との関係を示す図である。
テンプレートマッチングによる動きベクトル検出の際、データ転送部１０５は、ＤＲＡＭ１０７から、図３に示すようにフレーム画像を複数分割したグリッド毎に画像データを読み出して、ベクトル検出部に転送する。各グリッドのサイズは予め設定されており、また、フレーム画像から分割される各グリッドの個数は水平，垂直方向について予め設定された個数となされている。フレーム画像を複数分割したグリッドには、特徴点の抽出およびテンプレートマッチングに用いられる抽出枠領域としてのグリッドと、特徴点抽出は実施されないがテンプレートマッチングには使用される非抽出枠領域としてのグリッドとがある。図３の例では、図中の白色のグリッド３０２が、特徴点抽出が行われる抽出枠領域としてのグリッドである。これら特徴点抽出が行われる各グリッド３０２からなるグリッド群の周囲には周辺グリッド３０１が配置される。周辺グリッド３０１は、特徴点抽出は実施されないが、テンプレートマッチングでは使用される、非抽出枠領域としてのグリッドである。
【００２０】
ベクトル検出部は、抽出枠領域のグリッド３０２内で画像の特徴の大きさを表す特徴値を画素毎に計算し、特徴値が最も大きい画素を、該当グリッド３０２の特徴点３０３として取得する。これにより、各グリッド３０２につき一つの特徴点３０３が取得される。また、そのグリッド３０２の特徴点３０３の特徴量は、特徴点３０３となされた画素の特徴値に相当する。そして、ベクトル検出部は、特徴点３０３を中心として、予め設定されたサイズの矩形領域をテンプレート領域３０４として決定する。ベクトル検出部は、これらグリッド３０２毎に得られた特徴点３０３とテンプレート領域３０４のデータをＤＲＡＭ１０７に格納する。ＤＲＡＭ１０７に格納されたテンプレート領域３０４は、テンプレートマッチングにおける原画像（前フレーム）のテンプレート領域３０４として用いられる。そして、ベクトル検出部は、テンプレートマッチングにおける参照画像（現フレーム）のグリッド３０２に対して、前フレーム内で対応した位置のグリッド３０２から得られたテンプレート領域３０４を用いたサーチを行う。
【００２１】
このサーチの際、ベクトル検出部は、現フレーム（参照画像）のグリッド３０２内において、特徴点３０３を中心として、テンプレート領域３０４より大きく予め設定されたサイズの矩形領域を、サーチ領域３０５として設定する。ベクトル検出部は、テンプレート領域３０４の画像を用い、サーチ領域３０５内を順に走査することでテンプレートマッチングを行う。テンプレートマッチングの際の走査手法は公知の技術であるためその詳細な説明は省略する。テンプレートマッチングの際、ベクトル検出部は、テンプレート領域３０４内の画素値と、サーチ領域３０５内でテンプレート領域３０４と同じ大きさの矩形領域内の画素値との相関を求める相関演算処理を行う。そして、ベクトル検出部は、現フレームのグリッド３０２のサーチ領域３０５の中で、前フレームのグリッド３０２のテンプレート領域３０４と最も相関が高い矩形領域の位置を、そのテンプレート領域３０４の移動先として検出する。さらに、ベクトル検出部は、前フレームのグリッド３０２内のテンプレート領域３０４の位置を基準位置とし、その基準位置に対し、現フレームのグリッド３０２のサーチ領域３０５内におけるテンプレート領域３０４の移動先の向きと移動量を求める。ベクトル検出部は、このようにして求めた向きと移動量を、グリッド３０２におけるベクトル値として検出する。
【００２２】
図４には、図２に示されたデータ転送部１０５の各ＤＭＡＣ（２２１，２２２，２３１）機能によるグリッド分割から、ベクトル検出部における特徴点と動きベクトルに基づく追跡先特徴点算出までの処理のフローチャートを示す。以下、図４のフローチャートを参照しながら、図２に示したベクトル検出部の構成とデータ転送部１０５のデータ転送動作について、より詳細な説明を行う。なおこのフローチャートの処理は、ハードウェア構成により実行されてもよいし、マイクロコンピュータ等が実行するプログラムに基づくソフトウェア構成により実現されてもよく、一部がハードウェア構成で残りがソフトウェア構成により実現されてもよい。マイクロコンピュータ等が実行するプログラムは、例えばＲＯＭ１０９に格納されていてもよいし、不図示の外部メモリ等の記録媒体から取得されてもよく、或いは不図示のネットワーク等を介して取得されてもよい。以下の説明では、各処理のステップＳ４００〜ステップＳ４０９をＳ４００〜Ｓ４０９と略記する。これらのことは後述する他のフローチャートにおいても同様であるとする。
【００２３】
先ずＳ４００において、ＣＰＵ１１２は、ジャイロセンサ１１６からの検出情報や被写体検出部１２３からの情報を統合する。そして、ＣＰＵ１１２は、処理領域設定部２６０における処理領域設定として、第１，第２のベクトル検出部１２１，１２２で各々独立して動きベクトル検出処理と特徴点追跡が行われる処理領域を設定する。なお、処理領域の設定方法の詳細については、後述する第１の実施形態及び第２の実施形態の項目で説明する。
【００２４】
次にＳ４０１において、データ転送部１０５のＲＤＤＭＡＣａ２２１は、バス１１５を介し、ＤＲＡＭ１０７から、動きベクトル検出対象となる現フレームの入力画像データ２４１を読み出す。この時、データ転送部１０５のＲＤＤＭＡＣａ２２１は、図３に示したグリッド３０２および周辺グリッド３０１のグリッド単位毎に画像データを読み出す。なお、入力画像データ２４１は、画像処理部１０４で既に各種画像処理が施された後のデータである。そして、ＲＤＤＭＡＣａ２２１は、グリッド単位毎に読み出された入力画像データ２４１を、ベクトル検出部のマッチング画像生成部２０１および特徴点算出部２０２に出力する。また、ＲＤＤＭＡＣａ２２１は、それぞれ読み出したグリッドの座標位置を示すグリッド座標情報２５２を、後述する追跡先決定部２０５に送る。Ｓ４０１の後は、マッチング画像生成部２０１にて行われるＳ４０２の処理と、特徴点算出部２０２にて行われるＳ４０４の処理に移行する。
【００２５】
Ｓ４０２に移行すると、マッチング画像生成部２０１は、動きベクトル検出のためのテンプレートマッチングに使用するマッチング用画像データ２４２を生成し、データ転送部１０５のＷＲＤＭＡＣ２３１に出力する。具体的には、マッチング画像生成部２０１は、バンドパスフィルタ回路であり、テンプレートマッチング処理に不要な、画像信号の高周波成分と低周波成分を除去して、マッチング用画像データ２４２を生成する。Ｓ４０２の後は、データ転送部１０５のＷＲＤＭＡＣ２３１にて行われるＳ４０３の処理に移行する。
【００２６】
Ｓ４０３に移行すると、ＷＲＤＭＡＣ２３１は、バス１１５を介し、ＤＲＡＭ１０７に対して、マッチング画像生成部２０１から送られてきたマッチング用画像データ２４２を書き込む。このマッチング用画像データ２４２は、現フレームから生成されたデータであり、テンプレートマッチングの際に参照される画像データである。また、ＤＲＡＭ１０７には、現フレームに対して時間軸上で一つ前のフレーム画像から生成されたマッチング用画像データ２４３も格納されている。このマッチング用画像データ２４３は、前フレームにおいて生成されたデータであり、テンプレートマッチングにおける原画像データである。Ｓ４０３の後は、データ転送部１０５のＲＤＤＭＡＣｂ２２２にて行われるＳ４０５の処理に移行する。
【００２７】
特徴点算出部２０２にて行われるＳ４０４の処理は、前述したＳ４０２及びその後のＳ４０３の処理と並列に行われる。Ｓ４０４において、特徴点算出部２０２は、現フレームについて新規特徴点を算出する。
【００２８】
図５には、特徴点算出部２０２の構成例を示す。特徴点算出部２０２は、図５に示すように、特徴フィルタ部５０１、特徴評価部５０２、特徴点決定部５０３を有する。
特徴フィルタ部５０１は、バンドパスフィルタ、水平微分フィルタ、垂直微分フィルタ、平滑化フィルタなど、複数のフィルタから構成される。特徴フィルタ部５０１は、バンドパスフィルタにより画像データから不要な高周波成分と低周波成分を除去した後、水平方向の微分フィルタ処理と垂直方向の微分フィルタ処理を施す。さらに、特徴フィルタ部５０１は、それら水平方向と垂直方向の微分フィルタ処理を施したデータに対して、平滑化フィルタ処理を施す。これら水平，垂直方向について各々微分フィルタ処理と平滑化フィルタ処理が施されたデータは、特徴評価部５０２に送られる。
【００２９】
特徴評価部５０２は、特徴フィルタ部５０１で処理されたグリッドの画像から、２つのエッジの交点の画素や、曲率が極大となっている曲線部分の点の画素のように、周辺の各画素の微分値が多方向に大きくなっている画素の値を、特徴値として算出する。なお、グリッド内に、２つのエッジの交点や曲率が極大となっている曲線部分の点等が存在していない場合には、特徴値は算出されない。以下、グリッドから特徴点を検出する方法の一例として、Ｓｈｉ  ａｎｄ  Ｔｏｍａｓｉの手法を例に挙げて説明する。Ｓｈｉ  ａｎｄ  Ｔｏｍａｓｉについては公知の手法であるため、ここでは概要のみ説明する。
【００３０】
特徴評価部５０２は、特徴フィルタ部５０１により水平，垂直方向に各々微分フィルタ処理を施した画素の値から、自己相関行列Ｈを作成する。自己相関行列Ｈの式は、式（１）にて表される。
【００３１】
【数１】
2019191724.tif 000003
【００３２】
式（１）において、Ｉｘは水平微分フィルタが施された後の画素の値、Ｉｙは垂直微分フィルタが施された後の画素の値であり、自己相関行列Ｈは、ガウシアンフィルタＧを畳み込むことで求められる。そして、特徴評価部５０２は、式（２）に示すＳｈｉ  ａｎｄ  Ｔｏｍａｓｉの特徴評価式により、特徴値を求める。なお、式（２）に示したＳｈｉ  ａｎｄ  Ｔｏｍａｓｉの特徴評価式は、式（１）の自己相関行列Ｈの固有値λ１、λ２のうち小さい方の固有値を特徴値とすることを表している。
【００３３】
Ｓｈｉ  ａｎｄ  Ｔｏｍａｓｉ＝ｍｉｎ（λ１，λ２）      式（２）
【００３４】
特徴評価部５０２によりグリッド毎に求められた特徴値のデータは、特徴点決定部５０３に送られる。
特徴点決定部５０３は、グリッドから特徴評価部５０２により画素毎に算出された特徴値の中で最も大きい値を持つ画素を、該当グリッドの特徴点として決定する。なお、特徴評価部５０２にて特徴値が算出されなかった場合には、特徴点決定部５０３では、そのグリッドの特徴点は取得されない。そして、グリッドにおいて取得された特徴点の座標情報は、特徴点決定部５０３が備えているメモリに格納される。本実施形態において、特徴点の座標は、グリッドの左上端の座標（ｘ，ｙ）を原点（０，０）とした場合の相対座標（ＰＸ，ＰＹ）により表される。なお、特徴点の座標は、相対座標（ＰＸ，ＰＹ）の他に、フレーム画像内における画素位置を表す座標で表現されてもよい。また、特徴点決定部５０３が備えているメモリは、前フレームの各グリッドで決定された特徴点の座標情報と、現フレームの各グリッドで決定された特徴点の座標情報とを格納可能な容量を有している。特徴点決定部５０３に格納された特徴点の座標情報のうち、前フレームのグリッドにおける特徴点の座標情報２５１は、後述するマッチング処理部２０３でテンプレートマッチング処理が開始される際にＲＤＤＭＡＣｂ２２２に出力される。ただし、最初のテンプレートマッチング処理では、前フレームから追跡先の特徴点座標を算出することができないため、全て新規の特徴点座標を用いた処理が実施されることになる。
【００３５】
図４のフローチャートに説明を戻す。Ｓ４０４の後は、データ転送部１０５のＲＤＤＭＡＣｂ２２２にて行われるＳ４０５の処理に移行する。
Ｓ４０５において、ＲＤＤＭＡＣｂ２２２は、ＤＲＡＭ１０７からテンプレート領域３０４とサーチ領域３０５の画像データを読み出す。具体的には、ＲＤＤＭＡＣｂ２２２は、前フレームで算出された座標情報２５１とグリッド座標情報２５２を基に、マッチング用画像データ２４３から、特徴点３０３を中心としたテンプレート領域３０４の画像データ２５４を読み出す。また、ＲＤＤＭＡＣｂ２２２は、前フレームで算出された座標情報２５１とグリッド座標情報２５２を基に、マッチング用画像データ２４２から、特徴点３０３を中心としたサーチ領域３０５の画像データ２５３を読み出す。そして、ＲＤＤＭＡＣｂ２２２は、サーチ領域３０５の画像データ２５３とテンプレート領域３０４の画像データ２５４を、マッチング処理部２０３へ出力する。Ｓ４０５の後は、ベクトル検出部のマッチング処理部２０３にて行われるＳ４０６の処理に移行する。
【００３６】
Ｓ４０６において、マッチング処理部２０３は、サーチ領域の画像データ２５３とテンプレート領域の画像データ２５４とを用い、それら画像の画素毎に相関値を算出する相関演算を行い、その相関値からベクトル値を算出する。具体的には、マッチング処理部２０３は、相関値として、各画素の差分絶対値和（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ、以下ＳＡＤと略す。）を求める。マッチング処理部２０３がＳＡＤの演算により相関値Ｓ＿ＳＡＤを求める際の演算式を式（３）に示す。
【００３７】
【数２】
2019191724.tif 000004
【００３８】
なお、式（３）において、ｆ（ｉ，ｊ）はテンプレート領域内の座標（ｉ，ｊ）における画素値を表し、ｇ（ｉ，ｊ）はサーチ領域内において相関値算出の対象となる矩形領域内の各画素値を表している。サーチ領域内で相関値算出の対象となる矩形領域とは、テンプレート領域と同じサイズの領域であり、テンプレートマッチングの際にサーチ領域内で左上端部から順に走査される領域である。以下、サーチ領域内で相関値算出の対象となる矩形領域を「相関値算出領域」と表記する。マッチング処理部２０３は、それらテンプレート領域の画素値ｆ（ｉ，ｊ）と相関値算出領域の画素値ｇ（ｉ，ｊ）の差の絶対値を計算して、その総和を求めることにより、相関値Ｓ＿ＳＡＤを求める。なお、この時に用いられる画素値は例えば輝度値である。この相関値Ｓ＿ＳＡＤは、その値が小さいほど、両領域の画像間の輝度値の差分が小さいこと、つまり、テンプレート領域の画像とサーチ領域内の相関値算出領域の画像のテクスチャが類似していることを表す。ここでは、ＳＡＤにより相関値を求める例を挙げたが、これに限るものではなく、例えば差分二乗和（ＳＳＤ）や正規化相互相関（ＮＣＣ）等の他の相関値を用いてもよい。
【００３９】
そして、マッチング処理部２０３は、相関値が最小値となる座標位置を求める。相関値が最小値となる座標位置は、現フレームのグリッドのサーチ領域の中で、前フレームのグリッドのテンプレート領域と最も相関が高い矩形領域の位置であると考えられる。さらに、サーチ領域の中でテンプレート領域と最も相関が高い矩形領域の位置は、前フレームのテンプレート領域が、現フレーム内では何れの位置になっているのかを示す移動先を表している。マッチング処理部２０３は、前フレームのグリッド内のテンプレート領域の位置を基準位置とし、その基準位置に対し、前述の移動先の向きと移動量を、グリッドにおけるベクトル値とする。そして、マッチング処理部２０３は、ベクトル値および相関値情報２５５を、精度判定部２０４に出力する。
【００４０】
精度判定部２０４は、Ｓ４０７の処理として、前フレームのグリッドのテンプレート領域や現フレームのグリッドのサーチ領域の画像が、動きベクトル検出に適した画像であるか否かを判定する。具体的には、Ｓ４０７において、精度判定部２０４は、Ｓ４０６で算出された画素毎の相関値情報２５５を用いて、それら相関値の最大値、最小値、平均値、極小値を求める。そして、精度判定部２０４は、それら相関値の最大値、最小値、平均値、極小値に基づいて、低コントラスト判定、画素値の最大値突出判定、繰り返しパターン判定を行う。
【００４１】
図６（ａ）〜図６（ｄ）には、相関値の最大値、最小値、平均値、極小値による、低コントラスト判定、画素値の最大値突出判定、繰り返しパターン判定と、画素値との関係をグラフとして示している。ただし、相関値が小さいほど画像間の類似度は高いことになるため、図６（ａ）〜図６（ｄ）における画素値の最大値は相関値では最小値を表し、画素値の最小値は相関値では最大値を表し、画素値の極大値は相関値では極小値を表すことになる。
【００４２】
精度判定部２０４は、低コントラスト判定において、相関値算出領域内の相関値の最大値と最小値の差分が、予め設定されている閾値よりも小さい場合、その相関値算出領域内は低コントラストであると判定する。また、精度判定部２０４は、画素値の最大値突出判定では、相関値算出領域内の相関値の最小値がどれだけ際立っているかを判定する。例えば、画素値の最大値と平均値の差分と、画素値の最大値と最小値の差分とを除算した値が、予め設定されている閾値よりも小さい場合、精度判定部２０４は、相関値算出領域内は低ピークであると判定する。一方、画素値の最大値と平均値の差分と、画素値の最大値と最小値の差分とを除算した値が、閾値よりも大きい場合、精度判定部２０４は、相関値算出領域内は高ピークであると判定する。また、精度判定部２０４は、繰り返しパターン判定において、相関値算出領域内の画素値の最小値と極小値の差分が、予め設定されている閾値よりも小さい場合には、繰り返しパターンであると判定する。
【００４３】
図６（ａ）は、精度判定部２０４における低コントラスト判定、画素値の最大値突出判定、繰り返しパターン判定が、それぞれ良好な場合の例を挙げている。これに対し、図６（ｂ）は、低コントラスト判定において低コントラストであると判定される例を示しており、図６（ａ）の例に比べて図６（ｂ）では、画素値の最大値と最小値の差が少ない。図６（ｃ）は、画素値の最大値突出判定において低ピークであると判定される例を示しており、図６（ａ）の例に比べて図６（ｃ）では、画素値の最大値と平均値の差分と、画素値の最大値と最小値の差分との除算値が小さい。図６（ｄ）は、繰り返しパターン判定において繰り返しパターンであると判定される例を示しており、図６（ａ）の例に比べて図６（ｄ）では、画素値の最大値と極大値の差分が小さい。
【００４４】
精度判定部２０４は、前述のような低コントラスト判定、最大値突出判定、繰り返しパターン判定を各グリッドについて行う。そして、精度判定部２０４は、低コントラスト、最大値突出、繰り返しパターンの何れかにも該当しないと判定した場合、テンプレート領域とサーチ領域の画像は、動きベクトル検出に適した画像であると判定する。一方、精度判定部２０４は、低コントラスト、最大値突出、繰り返しパターンの何れかであると判定した場合には、テンプレート領域とサーチ領域の画像は、動きベクトル検出に適さない画像であると判定する。
【００４５】
そして、ＣＰＵ１１２は、Ｓ４０８において、低コントラスト、低ピーク、繰り返しパターンの判定結果を表す判定情報およびベクトル情報２５６を、ＳＲＡＭ２０６に送って書き込ませる。
次に、Ｓ４０９の処理として、追跡先決定部２０５では、次フレームのテンプレートマッチング処理に用いるための、後述する追跡先特徴点を決定する処理を行う。
【００４６】
図７は、追跡先決定部２０５における追跡先特徴点決定処理の流れを示すフローチャートである。以下、図７のフローチャートを参照しながら、追跡先特徴点の決定処理の概要を説明する。
Ｓ７０１において、追跡先決定部２０５は、ＳＲＡＭ２０６から入力された現フレームのベクトル情報と、現フレームの追跡先特徴点の座標とを基に、次フレームの追跡先特徴点の座標を算出する。つまり、追跡先決定部２０５は、現フレームの追跡先特徴点の座標をベクトル始点とし、ベクトル情報のベクトル値で表される方向と大きさに相当する分だけ移動した先のベクトル終点の座標を、次フレームの追跡先特徴点の座標として決定する。
【００４７】
次にＳ７０２において、追跡先決定部２０５は、ＳＲＡＭ２０６から入力された判定情報がＯＫ判定であったか否かを判断する。つまり、追跡先決定部２０５は、Ｓ７０１で算出した追跡先特徴点が次フレームのテンプレートマッチング処理に使用可能である有効な追跡先特徴点であったかどうかを判定する。ＳＲＡＭ２０６から入力された判定情報は、前述したように、低コントラスト判定で低コントラストと判定されるか、画素値の最大値突出判定で低ピークと判定されるか、繰り返しパターン判定で繰り返しパターンであると判定された場合にはＮＧ判定となる。一方、それらの何れにも該当しない場合にはＯＫ判定とされる。そして、追跡先決定部２０５は、Ｓ７０２において、判定情報がＮＧ判定であった場合にはＳ７０４に遷移し、ＯＫ判定であった場合にはＳ７０３に遷移する。
【００４８】
Ｓ７０３に遷移した場合、追跡先決定部２０５は、Ｓ７０１で算出した追跡先特徴点座標が、フレームの画角内であるかどうかを判定する。具体的には追跡先決定部２０５は、追跡先特徴点座標を中心とするテンプレート領域が周辺グリッドの内側に収まっている場合にはフレーム画角内にあると判定（ＯＫ判定）してＳ７０５に遷移し、一方、収まっていない場合はＮＧと判定してＳ７０４に遷移する。
【００４９】
Ｓ７０４に遷移した場合、追跡先決定部２０５は、Ｓ７０２またはＳ７０３でＮＧ判定された位置に該当する追跡先特徴点座標を破棄して、新規特徴点座標に置き換える。具体的には、追跡先決定部２０５は、破棄された追跡先特徴点が一番初めに新規特徴点として算出された位置の抽出枠領域のグリッドに該当する位置で算出された現フレームの新規特徴点座標で置き換える処理を行う。このＳ７０４の後、追跡先決定部２０５の処理は、Ｓ７０５に遷移する。
【００５０】
Ｓ７０５に遷移すると、追跡先決定部２０５は、抽出枠領域のグリッド数分の全ての追跡先特徴点座標が算出されたか否かを判定する。そして、追跡先決定部２０５は、全ての追跡先特徴点座標が算出されたと判定した場合は図７のフローチャートの処理を終了し、一方、算出されていないと判定した場合にはＳ７０１に処理を戻して、Ｓ７０１以降の前述した処理を行う。
【００５１】
以上が、図４のフローチャートにおけるグリッド分割から動きベクトル検出および追跡先特徴点決定までの大まかな流れである。なお、図４のフローチャートでは、１フレーム分の処理を示しているが、ベクトル検出部とデータ転送部１０５は、毎フレームに対して同様のグリッド分割から動きベクトル検出および追跡先特徴点決定までの処理を行う。
【００５２】
次に、図８と図９（ａ）および図９（ｂ）を参照し、特徴点追跡の概要と、動きベクトルの検出精度の向上を目的とした処理領域設定を行った場合の特徴点追跡で生ずる課題について説明する。
図８は、特徴点追跡処理の概略を示す図であり、前述した図３と同様の、抽出枠領域のグリッド１４０４、テンプレート領域１４０３、サーチ領域１４０６、周辺グリッド１４０５を示している。動きベクトル検出の際には、図８に示すように抽出枠領域のグリッド１４０４内で特徴点１４０１が算出され、テンプレート領域１４０３によるテンプレートマッチングが行われることでベクトル値１４０７が算出される。そして次のフレームの処理では、特徴点１４０１をベクトル始点とし、ベクトル値１４０７による方向と大きさ分だけ離れた点を追跡先特徴点１４０２とし、その追跡先特徴点１４０２を中心としたテンプレートマッチングが行われる。以後、複数フレームに渡って、前述同様の特徴点追跡が行われる。
【００５３】
ここで、動きベクトルの検出精度を向上させるために、１つの画像について複数の処理領域を設定し、それら複数の処理領域に各々対応して個別に設けたベクトル検出部により特徴点の抽出と動きベクトルの検出、および特徴点の追跡を行うとする。
図９（ａ）は、１つの画像を第１，第２の領域１５０２，１５０１の２つの処理領域に分け、第１の領域１５０２を第１のベクトル検出部で処理し、第２の領域１５０１を第２のベクトル検出部で処理する場合の抽出特徴点と追跡先特徴点を示した図である。このように第１，第２のベクトル検出部でそれぞれ処理を行う場合、第１，第２の領域１５０２，１５０１にはそれぞれ特徴点抽出が実施される抽出枠領域のグリッドと、特徴点抽出が実施されない周辺グリッドとが設定される。また、第１の領域１５０２と第２の領域１５０１には重なり領域１５００が設けられる。そして、図９（ａ）に示すように、動きベクトルが例えば右方向へのベクトルであった場合、追跡先特徴点は右側に移動していくことになる。しかしながら、第１の領域１５０２の右端部の追跡先特徴点１５１０〜１５１４までの追跡がされた場合、その更に右側の領域は、第１の領域１５０２外の第２の領域１５０１となる。この場合、第１の動きベクトル検出部では特徴点を追跡できず特徴点が消失することになり、特徴点追跡性能が低下してしまうことになる。
【００５４】
図９（ｂ）は、図９（ａ）と同様に、１つの画像に第１，第２の領域１５０２，１５０１の２つの処理領域が設定され、その画像内に例えば矢印１５０３に示すように右側に移動する被写体１５０４が写っている例を表している。つまり、図９（ｂ）の例において、被写体１５０４は、第１の領域１５０２から、第１の領域１５０２と第２の領域１５０１との境界を跨いで、第２の領域１５０１に移動しているとする。また、第１のベクトル検出部により、第１の領域１５０２からは被写体１５０４を検出可能な優良な各特徴点１５２０〜１５２７が抽出または追跡されているとする。しかしながら、各特徴点１５２０〜１５２７は、被写体１５０４の移動に伴って右側に移動するため、重なり領域１５００付近まで追跡された後は第１の領域１５０２から外れて消失してしまうことになる。このように被写体１５０４の移動を検出可能な優良な特徴点が存在していても、例えば被写体１５０４が第１の領域１５０２と第２の領域１５０１の境界を跨ぐ場合には、特徴点が消失してしまい、その結果、特徴点追跡性能が低下してしまうようになる。
【００５５】
そこで、本実施形態では、被写体が処理領域の境界を跨いで移動することで特徴点が消失する場合、被写体の少なくとも移動元の処理領域に対応するベクトル検出部が、新たな特徴点を抽出する際の設定を制御し、新たな追跡先特徴点を設定（補填）し易くする。
【００５６】
＜第１の実施形態＞
以下、被写体が処理領域の境界を跨いで移動することで特徴点が消失する場合に、新たな追跡先特徴点を設定（補填）し易くするような処理を実施する第１の実施形態の画像処理装置について、図１０から図１３を参照しながら説明する。前述の図９（ａ）と図９（ｂ）の例では１つの画像を左右方向（水平方向）に分けて処理領域を設定した例を挙げたが、以降の説明では画像を上下方向（垂直方向）に分けて処理領域を設定する例を挙げる。第１の実施形態に係る画像処理装置の構成および概略的な処理は前述の図１〜図７で説明したのと同様である。
【００５７】
図１０は、第１の実施形態に係る画像処理装置おいて、１つの画像を上下方向に分けるように処理領域を設定した場合の一例を示した図である。第１の実施形態の画像処理装置において、処理領域設定部２６０は、図１０に示すように、撮影により得られた撮影画像８０５に対し、上下方向に分けた処理領域を設定する。なお図１０の例では、被写体８０４とその周辺の動きベクトルを多く検出可能にするため、撮影画像８０５内で被写体８０４とその周辺の画像領域に対し、上側の第１の領域８０１と下側の第２の領域８０２の２つの処理領域を設定した例を示している。また図１０には、被写体８０４が、矢印８０３に示すように上方向に動いていて、第１の領域８０１と第２の領域８０２との境界（以下、処理領域境界とする。）を跨るように移動する場合の例を示している。
【００５８】
図１１（ａ）と図１１（ｂ）は、撮影画像に対する処理領域の設定と各処理領域内に設定されるグリッドの配置例とを示した図である。第１の実施形態の画像処理装置は、図１１（ａ）に示すように撮影画像９００に対して第１の領域９０１と第２の領域９０２を設定し、同様に、図１１（ｂ）に示すように撮影画像９１０に対して第１の領域９１１と第２の領域９１２を設定する。また、画像処理装置は、それら第１，第２の領域に対し、特徴点抽出が実施される抽出枠領域のグリッドと、特徴点抽出が実施されない周辺グリッドとを設定し、さらに、第１の領域と第２の領域との処理領域境界には前述同様に重なり領域が設けられる。図１１（ａ）の例は、被写体９０３が第２の領域９０２内に存在していて、第１の領域９０１と第２の領域９０２の処理領域境界を未だ跨いでいない状態を表している。一方、図１１（ｂ）の例は、図１１（ａ）では第２の領域９１２内に存在していた被写体９１３が、第１の領域９１１と第２の領域９１２の処理領域境界を跨いで、被写体９１３の位置まで移動した状態を表している。
【００５９】
本実施形態の画像処理装置は、図１１（ｂ）に示すように、被写体９１３が処理領域境界を跨いで移動する場合、その移動後に被写体が出現する位置を予測し、その予測出現位置に対して抽出枠領域のグリッドを密に配置するようにグリッド配置の設定を制御する。
【００６０】
図１２は、被写体が処理領域境界を跨ぐ位置に移動する際に、移動後の被写体位置を予測してグリッド配置を制御し、動きベクトルを検出するまでの処理の流れを示したフローチャートである。図１２のＳ１００１からＳ１００５までは、移動後の被写体位置を予測してグリッド配置を制御するまでの処理ステップであり、これらの処理は図４のＳ４００においてＣＰＵ１１２（処理領域設定部２６０を含む）により行われる。なお、図１２のＳ１００７の動きベクトル検出処理は、図４のＳ４０１以降の処理に相当する。
【００６１】
Ｓ１００１において、ＣＰＵ１１２は、画像処理部１０４の処理モードを、撮影画像を複数の処理領域に分けてそれぞれベクトル検出部で処理するモードに遷移させる。本実施形態の場合、画像処理部１０４は、撮影画像に対して第１，第２の領域を設定し、第１の領域を第１のベクトル検出部１２１で処理し、第２の領域を第２のベクトル検出部１２２で処理するモードに遷移する。
【００６２】
次にＳ１００２において、ＣＰＵ１１２の処理領域設定部２６０は、被写体検出部１２３による被写体の検出情報に基づき、現時点における被写体の位置を表す座標を算出する。被写体の座標としては、被写体位置上にある追跡特徴点座標を用いるとする。複数の追跡特徴点がある場合には、処理領域境界に最も近い追跡特徴点の座標とする。その他にも、被写体位置上の追跡特徴点座標は、被写体の重心位置、複数の追跡特徴点位置の中間位置、最も特徴量の大きい追跡特徴点の座標等でもよい。図１３は図１０や図１１（ａ）、図１１（ｂ）に示した被写体が移動している様子を表した図である。図１３には、第２の領域１１１２から第１の領域１１１１の方向（下から上方向）に順に移動している途中の各フレームにおける被写体１１０１〜１１０３を示している。図１３の例では、被写体１１０２が現フレームの被写体を表し、被写体１１０１が現フレームの１Ｖ（垂直同期）前のフレームの被写体を、被写体１１０１が現フレームの１Ｖ後のフレームで予測される位置の被写体を表している。
【００６３】
次にＳ１００３において、処理領域設定部２６０は、第１のベクトル検出部１２１および第２のベクトル検出部１２２がそれぞれ現フレームと１Ｖ前のフレームとから算出した動きベクトルを基に、被写体位置にある特徴点の移動量１１０４を算出する。なお、複数の追跡先特徴点から動きベクトルが算出される場合、被写体の移動量は、各動きベクトルの平均値、最頻値、中央値のいずれかで求めればよい。本実施形態では、算出した被写体の移動量１１０４を、１Ｖ後の予測移動量１１０５として使用する。その他にも、処理領域設定部２６０は、過去フレームの被写体移動量を記憶しておき、それら過去の移動量を加味して予測移動量１１０５を算出してもよい。
【００６４】
次にＳ１００４において、処理領域設定部２６０は、Ｓ１００２で算出した被写体位置と、Ｓ１００３で算出した被写体の予測移動量とに基づき、次フレームで被写体が処理領域境界を跨ぐか否かを判定する。本実施形態の場合、上下方向に処理領域を設定するため、処理領域設定部２６０は、処理領域境界跨ぎの判定の際、処理領域境界の垂直座標Ｌｙと、被写体の垂直座標Ｐｙと、垂直方向の予測移動量Ｍｙを用いた下記の式（４）、式（５）による判定を行う。
【００６５】
Ｌｙ＜（Ｐｙ＋Ｍｙ）          式（４）
Ｌｙ＞（Ｐｙ＋Ｍｙ）          式（５）
【００６６】
なお、式（４）は、被写体が下から上方向に移動して処理領域境界を跨ぐ場合（図１３のように被写体１１０３が第２の領域１１１２から第１の領域１１１１に移動する場合）の判定式である。一方、式（５）は、被写体が上から下方向に移動して処理領域を跨ぐ場合（被写体が第１の領域から第２の領域に移動する場合）の判定式である。そして、処理領域設定部２６０は、Ｓ１００４において、被写体が処理領域境界を跨ぐと判定した場合にはＳ１００５へ遷移し、被写体が処理領域境界を跨がないと判定した場合にはＳ１００６へ遷移する。
【００６７】
Ｓ１００５に遷移すると、処理領域設定部２６０は、図１１（ｂ）に示したように、被写体９１３が処理領域境界を跨いで移動する移動先の第１の領域９１１と、被写体９１３が移動する前の移動元の第２の領域９１２とについてそれぞれグリッド配置を制御する。処理領域設定部２６０は、移動先の第１の領域９１１内で被写体９１３が移動すると予測される位置に対し、特徴点抽出が実施される抽出枠領域のグリッドの大きさを小さくし且つ密集させるようにグリッド配置を設定し、それら以外を周辺グリッドにする。ここで、被写体が上下方向（垂直方向）に移動した後に出現する予測出現位置をＯｙとすると、その予測出現位置Ｏｙは下記の式（６）、式（７）で算出できる。
【００６８】
Ｏｙ＝Ｌｙ−Ｐｙ＋Ｍｙ        式（６）
Ｏｙ＝Ｐｙ＋Ｍｙ−Ｌｙ        式（７）
【００６９】
なお、式（６）は、被写体が下から上方向に移動して処理領域境界を跨ぐ場合の算出式である。一方、式（７）は、被写体が上から下方向に移動して処理領域境界を跨ぐ場合の算出式である。
【００７０】
このように、本実施形態の画像処理装置は、被写体の予測出現位置に基づいて、特徴点抽出が実施される抽出枠領域のグリッドを細かく配置する。ここで、被写体が処理領域境界を跨ぐことによって移動先の処理領域で追跡対象の特徴点が消失した場合には、新たな特徴点を追跡対象の特徴点として設定する（補填する）ことが必要となる。本実施形態では、被写体の予測出現位置で特徴点抽出が実施される抽出枠領域のグリッドを細かく密に配置するように設定することで、移動先の処理領域で追跡対象となる特徴点が設定され易く（補填され易く）なるような補填のための設定制御を行う。そして、被写体の予測出現位置で細かく配置された抽出枠領域のグリッドでは、前述の図７のＳ７０４で説明した新規特徴点を用いた置き換え処理によって、新たな特徴点が設定される（つまり追跡対象の特徴点が補填される）。このように本実施形態において、消失した特徴点の補填は、処理領域境界を跨いで移動先に出現が予測される被写体領域に対応して密に配置した抽出枠領域のグリッドから得られる新規特徴点群の中の特徴点で置き換える処理により行われる。
【００７１】
一方、処理領域設定部２６０は、被写体９１３の移動元である第２の領域９１２については処理領域境界を跨ぐ被写体９１３を避けるような（特徴点抽出処理から外すような）グリッド配置とする。例えば図１３に示したように、第２の領域９１２において処理領域境界を跨ぐ被写体９１３の領域については、特徴点抽出が実施されない周辺グリッドを設定する。これにより、第２の領域９１２を出ていく被写体９１３の位置に対応したグリッドでは、Ｓ７０４における新規特徴点による置き換え処理が行われないようになる。このように、本実施形態では、被写体の移動元の処理領域については処理領域境界を跨ぐ被写体を避けるようなグリッド配置とすることで、移動元の被写体にかかるグリッドから追跡対象の特徴点が抽出されないように設定する補填の制御が行われる。
【００７２】
図１２のフローチャートに説明を戻す。
Ｓ１００４で被写体９１３が処理領域境界を跨がないと判定されてＳ１００６に遷移すると、処理領域設定部２６０は、図１１（ａ）の例と同様に、第１，第２の領域９０１，９０２共に、処理領域全体で均等なグリッド配置とする。これにより、Ｓ７０４で説明した新規特徴点による置き換え処理は、該当する処理領域の画面全体より求められた新規特徴点群の中の特徴点により行われることになる。
【００７３】
前述したＳ１００５またはＳ１００６の後、ＣＰＵ１１２は、画像処理部１０４の処理をＳ１００７に遷移させ、図４のＳ４０１からＳ４０９の処理を実行させる。すなわち、Ｓ１００７において、画像処理部１０４は、前述のように設定された第１の領域を第１のベクトル検出部１２１にて処理し、第２の領域を第２のベクトル検出部１２２にて処理する。
【００７４】
以上説明したように、第１の実施形態の画像処理装置は、被写体が処理領域境界を跨いで移動する場合、被写体の移動先の処理領域において被写体が出現すると予測される領域には特徴点抽出を実施するグリッドを密集させて配置する。また、画像処理装置は、被写体の移動元の領域には特徴点抽出が実施されないグリッドを配置して、被写体領域から特徴点抽出を実施するグリッドを外す配置とする。これにより第１の実施形態の画像処理装置によれば、被写体の領域で検出される優良な特徴点が処理領域境界で消失したとしても、移動先の処理領域で新たな追跡対象の特徴点による追跡を継続できる確率が高まり、特徴点追跡性能を向上させることが可能となる。
【００７５】
前述した図１２のフローチャートでは、被写体が処理領域境界を跨いだ瞬間のフレームのみＳ１００５に分岐する例を挙げたが、被写体が複数Ｖ期間をかけて処理領域境界を跨ぐ場合、処理領域境界を跨ぐ複数Ｖ期間、Ｓ１００５に分岐する制御としてもよい。また、被写体が処理領域境界を跨ぐのに合わせて、グリッド配置を細かく調整してもよい。
【００７６】
なお、第１の実施形態では上下方向に処理領域を設定の例を挙げて説明したが、左右方向に処理領域を設定する場合も同様のグリッド配置制御を行うことができる。また本実施形態において、処理領域を設定する方向は、画像を撮影する撮影装置（カメラ）の位置情報と被写体の動き情報の少なくともいずれか、に基づいて設定される。例えばカメラの位置情報あるいは被写体の動き情報が変化した場合には、その変化後のカメラの位置情報と被写体の動き情報の少なくともいずれかに、基づいて処理領域を設定する方向を切り替えてもよい。そしてカメラの位置情報ならびに被写体の動き情報に基づいて、処理領域を設定する方向を切り替えた上で、図１２に示したグリッド配置制御の処理に移行してもよい。
【００７７】
＜第２の実施形態＞
以下、第２の実施形態に係る画像処理装置における処理について図１４と図１５を参照して説明する。なお、第２の実施形態に係る画像処理装置の構成および主要な処理は前述の図１から図７で説明したのと同様である。第２の実施形態では、図４のＳ４００で行われる処理領域設定と、Ｓ４０４で特徴点算出部２０２により行われる現フレームの新規特徴点算出、図７のＳ７０４で追跡先特徴点座標を新規特徴点の座標で置き換える処理について説明する。
【００７８】
図１４は、第２の実施形態の画像処理装置において、撮影画像１２００に対し第１の領域１２０１と第２の領域１２０２の処理領域を設定し、被写体１２０３が処理領域境界を跨ぐ場合のグリッド配置制御の事例を示した図である。図１４の例においても前述同様に、第１の領域１２０１と第２の領域１２０２には、特徴点抽出が実施されるグリッドと、特徴点抽出が実施されない周辺グリッドが設定され、また重なり領域が設けられる。図１４の例は、被写体１２０３が処理領域境界を跨いで第２の領域１２０２から第１の領域１２０１に入る例を示している。
【００７９】
第２の実施形態でも、被写体が処理領域の境界を跨いで移動する場合、移動先の処理領域で被写体が出現する位置を予測し、その出現予測位置に対して、追跡対象となる特徴点が設定され易く（補填され易く）なるような補填の設定制御を行う。また、第２の実施形態でも、移動元の処理領域では被写体領域からは追跡対象の特徴点として設定されない（補填されない）ようにする補填の制御を行う。ただし、第２の実施形態の場合、前述した第１の実施形態のように、被写体が処理領域境界を跨ぐか、跨がないかでグリッド配置を変更するようなことは行わない。
【００８０】
第２の実施形態では、被写体が処理領域境界を跨いで入る処理領域内の被写体領域を含むグリッドと、被写体が出て行く処理領域内で被写体領域を含むグリッドとにおいて算出される特徴点の特徴量を調整するような補填の設定制御を行う。図１４の例の場合、第１の領域１２０１内のグリッド１２０４が、処理領域境界を跨いで入る被写体１２０３を含むグリッドであり、第２の領域１２０２内のグリッド１２０５が、処理領域境界を跨いで出て行く被写体１２０３を含むグリッドである。第２の実施形態の画像処理装置は、被写体１２０３が処理領域境界を跨ぐ場合に、それらグリッド１２０４およびグリッド１２０５において算出される特徴点の特徴量を調整する。
【００８１】
図１５は、第２の実施形態の画像処理装置における特徴点の調整制御の流れを示すフローチャートである。以下、図１５のフローチャートと、図４のＳ４０４とを参照して、第２の実施形態において各グリッドで求められる特徴点の調整制御について説明する。
Ｓ１３０１〜Ｓ１３０４は、図１２のＳ１００１〜Ｓ１００４と概ね同じ処理であるため、その説明は省略する。ＣＰＵ１１２は、Ｓ１３０４において、被写体が処理領域境界を跨ぐと判定した場合にはＳ１３０５に遷移し、処理領域境界を跨がないと判定した場合にはＳ１３０６に遷移する。
【００８２】
Ｓ１３０５に移ると、ＣＰＵ１１２は、図１４に示したように、第１の領域１２０１（被写体の移動先）で被写体１２０３を含むグリッド１２０４と、第２の領域１２０２（移動元）で被写体１２０３を含むグリッド１２０５との情報を記憶する。なお、記憶する情報は、グリッド番号でもよいし、グリッド座標でもよく、それら両方でもよい。ＣＰＵ１１２は、被写体が垂直方向（上下方向）に移動し、処理領域境界を跨いで移動先で出現する予測出現位置Ｏｙを、前述の式（６）または式（７）により算出し、予測出現位置に該当する座標を有するグリッドとその周辺グリッドの情報を記憶する。また、ＣＰＵ１１２は、被写体の移動元の処理領域についても、処理領域境界を跨ぐ被写体の位置に該当する座標を有するグリッドとその周辺のグリッドの情報を記憶する。
【００８３】
Ｓ１３０５の後、ＣＰＵ１１２は、画像処理部１０４の処理をＳ１３０６に遷移させ、図４のＳ４０１からＳ４０９の処理を実行させる。すなわち、Ｓ１３０７において、画像処理部１０４は、第１の領域を第１のベクトル検出部１２１にて処理し、第２の領域を第２のベクトル検出部１２２にて処理する。第２の実施形態の場合、Ｓ４０４とＳ４０９以外の処理は第１の実施形態で説明した処理と同様であるため、ここではＳ４０４とＳ４０９について説明する。
【００８４】
第２の実施形態において、Ｓ４０４で実行される処理のうち、特徴点算出部２０２による各グリッドの特徴点算出処理までは第１の実施形態で説明したのと同様である。また、マッチング処理部２０３に特徴点座標情報がＲＤＤＭＡＣｂ２２２に出力されるタイミングも第１の実施形態の例と同様である。
【００８５】
第２の実施形態の場合、Ｓ４０４において、ＣＰＵ１１２は、特徴点算出部２０２が算出した新規特徴点の座標（ＰＸ，ＰＹ）と共に、その新規特徴点の特徴量ＰｃをもＳＲＡＭ２０６に格納する。このため、第２の実施形態の場合、ＳＲＡＭ２０６は、前フレームの特徴点と現フレームの特徴点を格納可能な容量を有している。
【００８６】
そして、ＣＰＵ１１２は、Ｓ１３０５で被写体を含むグリッドについて記憶されたグリッドの情報に基づいて、新規特徴点の特徴量Ｐｃを調整して特徴量Ｐｃ'を生成する。図１４の例を用いて説明すると、ＣＰＵ１１２は、処理領域境界を跨いだ移動先の第１の領域１２０１内で被写体１２０３が含まれるグリッド１２０４について、下記の式（８）の計算式により、調整後の特徴量Ｐｃ'を求める。
【００８７】
Ｐｃ'＝Ｐｃ×Ｇｕ      式（８）
【００８８】
式（８）において、Ｇｕは調整値であり、特徴量を大きくするために予め設定されたゲイン値である。本実施形態の場合、ＧｕはＧｕ＞１．０の値となされている。すなわち、処理領域境界を跨いだ移動先の被写体を含むグリッドについては、優先的に特徴点の特徴量を大きくするような調整処理が行われる。なお、移動先の処理領域における調整後の特徴量Ｐｃ'は、Ｇｕをオフセット値として加算することで求めてもよい。
【００８９】
一方、ＣＰＵ１１２は、処理領域境界を跨ぐ際の移動元の第２の領域１２０２内で被写体１２０３が含まれるグリッド１２０５について、下記の式（９）の計算式により、調整後の特徴量Ｐｃ'を求める。
【００９０】
Ｐｃ'＝Ｐｃ×Ｇｌ      式（９）
【００９１】
式（９）において、Ｇｌは調整値であり、特徴量を小さくするために予め設定されたゲイン値である。本実施形態の場合、ＧｌはＧｌ＜１．０の値となされている。すなわち、処理領域境界を跨ぐ際の移動元の被写体を含むグリッドについては、特徴量を小さくするような調整処理が行われる。なお、移動元の処理領域における調整後の特徴量Ｐｃ'は、Ｇｌをオフセット値として減算することで求められてもよい。
【００９２】
また第２の実施形態において、Ｓ４０９に遷移した場合、追跡先決定部２０５では追跡先特徴点を決定する処理を行う。第２の実施形態の場合、追跡先決定部２０５により実行される図７のフローチャートの処理のうち、第１の実施形態と異なる処理はＳ７０４のみであるため、以下、Ｓ７０４の処理について説明する。
【００９３】
第２の実施形態の追跡先決定部２０５は、Ｓ７０４において、Ｓ７０２またはＳ７０３でＮＧと判定された位置に該当する追跡先特徴点座標を破棄して、新規特徴点座標に置き換える。具体的には、追跡先決定部２０５は、Ｓ４０４で算出されてＳＲＡＭ２０６に記憶された新規特徴点のうち、最も特徴量が大きい新規特徴点の現フレームの座標で置き換える処理を行う。したがって、処理領域境界を跨いだ移動先の被写体を含むグリッドについて優先的に特徴点の特徴量を大きくする調整処理が行われた場合、当該特徴量が大きく調整された特徴点は、新規特徴点の現フレームの座標で置き換える処理が行われ易くなる。すなわち、処理領域境界を跨いだ移動先の被写体を含むグリッドの特徴点は、追跡先特徴点として選ばれ易くなる。一方、処理領域境界を跨ぐ際の移動元の被写体を含むグリッドについて特徴量を小さくするような調整処理が行われた場合、その特徴量が小さく調整された特徴点は、新規特徴点の現フレームの座標で置き換える処理が行われなくなる。すなわち、処理領域境界を跨ぐ際の移動元の被写体を含むグリッドの特徴点は、追跡先特徴点として選ばれなくなる。
【００９４】
以上説明したように、第２の実施形態においては、被写体が移動して処理領域境界を跨ぐかどうかを予測し、跨いだ場合には、跨いだ後の移動先の処理領域内で被写体が含まれるグリッドについて優先的に追跡対象の特徴点が補填される。また、第２の実施形態において、移動元の処理領域では、被写体が含まれるグリッドに対し、追跡対象の特徴点が補填されないようになされている。これにより、第２の実施形態によれば、被写体で検出される優良な特徴点が、処理領域境界で消失したとしても追跡できる確率が高まり、特徴点追跡性能を高めることが可能となる。なお、第２の実施形態においても上下方向（垂直方向）の処理領域設定の事例を挙げて説明したが、左右方向（水平方向）の処理領域設定が行われる場合にも同様の考え方で制御すればよい。
【００９５】
また、前述した第１，第２の実施形態では、動きベクトル検出部を２個具備する例を挙げて説明したが、３個以上の動きベクトル検出部を具備する場合も本発明は適用可能である。例えば３個の場合、撮影画像に対して上下方向あるいは左右方向に３つの処理領域が設定される。そして、隣接する処理領域の境界を被写体が跨いで移動するかどうかに応じて、前述同様のグリッド配置制御や特徴量の調整等を行うことで、前述した実施形態と同様の効果を得ることができる。さらに、１つの撮影画像に対して複数の処理領域を設定する場合、上下方向あるいは左右方向だけでなく、上下左右方向に処理領域を設定してもよい。この場合、動きベクトル検出部もそれら上下左右方向に設定された処理領域に応じた数が設けられることになる。
また、前述した第１，第２の実施形態で説明した処理は、それぞれ個々に行う場合だけでなく、それらを組み合わせて行うようにしてもよい。
【００９６】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
また、本実施形態では、画像処理装置の一例としてデジタルカメラを挙げたが、撮影画像を処理可能なタブレット端末、スマートフォン、電子ゲーム機、ドライブレコーダ、ナビゲーション装置、パーソナルコンピュータなど様々な装置であってもよい。この場合のそれら置は、その装置自身に搭載されているカメラ機能により撮影された画像、又は、デジタルカメラ等により撮影された画像を取得し、その画像データに対して前述した実施形態に係る各処理を実行する。また、これらの装置における実施形態に係る処理は、内部のマイクロコンピュータ等においてコンピュータプログラムを実行することにより実現されてもよい。実施形態に係る処理を実現するためのコンピュータプログラムは、記録媒体や各種ネットワークや通信回線を介して提供される。
【００９７】
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００９８】
１０４：画像処理部、１０５：データ転送部、１０６：メモリ制御部、１０７：ＤＲＡＭ（メモリ）、１０８：不揮発性メモリ制御部、１０９：ＲＯＭ（不揮発性メモリ）、１１２：ＣＰＵ、１２１：第１のベクトル検出部１１３、１２２：第２のベクトル検出部、１２３：被写体検出部
【図１】
2019191724.tif 000005
【図２】
2019191724.tif 000006
【図３】
2019191724.tif 000007
【図４】
2019191724.tif 000008
【図５】
2019191724.tif 000009
【図６】
2019191724.tif 000010
【図７】
2019191724.tif 000011
【図８】
2019191724.tif 000012
【図９】
2019191724.tif 000013
【図１０】
2019191724.tif 000014
【図１１】
2019191724.tif 000015
【図１２】
2019191724.tif 000016
【図１３】
2019191724.tif 000017
【図１４】
2019191724.tif 000018
【図１５】
2019191724.tif 000019