(57)【要約】【課題】複数の画像処理プロセッサを用いて特徴点を抽出し、動きベクトルを検出する場合に、画像処理プロセッサの処理負荷と画像処理プロセッサ間での転送データ量を削減する。【解決手段】動画像中の各フレーム画像をそれぞれ複数の部分領域に分割して、複数の部分領域の画像信号を並列に処理する複数の画像処理プロセッサを備え、複数の画像処理プロセッサのそれぞれが、部分領域を複数の分割領域に分割する分割部と、分割された分割領域ごとに画素の特徴値を算出して、特徴点を選択する選択部と、分割領域ごとの特徴点に基づいて、各フレーム画像を参照するマッチング処理に使用する画像領域を設定し、動きベクトルを検出する検出部とを有し、検出部は、複数の部分領域の境界に位置する分割領域においては、マッチング処理において境界を越えた画像の参照が生じないように、マッチング処理に使用する画像領域を設定する。【選択図】  図１
2018081641.tif 000002
【特許請求の範囲】
【請求項１】
動画像中の各フレーム画像をそれぞれ複数の部分領域に分割して、該複数の部分領域の画像信号を並列に処理する複数の画像処理プロセッサを備え、
前記複数の画像処理プロセッサのそれぞれが、
前記部分領域を複数の分割領域に分割する分割手段と、
分割された分割領域ごとに画素の特徴値を算出して、特徴点を選択する選択手段と、
前記分割領域ごとの特徴点に基づいて、前記各フレーム画像を参照するマッチング処理に使用する画像領域を設定し、動きベクトルを検出する検出手段とを有し、
前記検出手段は、前記複数の部分領域の境界に位置する前記分割領域においては、前記マッチング処理において前記境界を越えた画像の参照が生じないように、前記マッチング処理に使用する画像領域を設定することを特徴とする画像処理装置。
【請求項２】
前記検出手段は、前記特徴点の座標を中心に前記マッチング処理に使用する画像領域としてテンプレート画像とサーチ画像とを設定し、該テンプレート画像とサーチ画像の相関に基づいて動きベクトルを検出することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記検出手段は、前記複数の部分領域の境界に位置する前記分割領域においては、前記マッチング処理において前記境界を越えた画像の参照が生じないように、前記特徴点を選択する領域の範囲を制限することを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記検出手段は、前記複数の部分領域の境界に位置する前記分割領域においては、前記マッチング処理において前記境界を越えた画像の参照が生じないように、前記マッチング処理に使用する画像領域を変更することを特徴とする請求項２に記載の画像処理装置。
【請求項５】
前記検出手段は、前記複数の部分領域の境界に位置する前記分割領域においては、前記マッチング処理において前記境界を越えた画像の参照が生じないように、前記マッチング処理に使用する画像領域を移動させることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記マッチング処理に使用する画像領域を移動させる量が所定の閾値を超える場合は、前記選択手段は、前記特徴点を前記特徴値が次に高い特徴点に変更することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記検出手段は、前記複数の部分領域の境界に位置する前記分割領域においては、前記マッチング処理において前記境界を越えた画像の参照が生じないように、前記マッチング処理に使用する画像領域のサイズを変更することを特徴とする請求項４に記載の画像処理装置。
【請求項８】
前記マッチング処理に使用する画像領域のサイズを変更する量が所定の閾値を超える場合は、前記選択手段は、前記特徴点を前記特徴値が次に高い特徴点に変更することを特徴とする請求項７に記載の画像処理装置。
【請求項９】
前記検出手段は、前記複数の部分領域の境界に位置する前記分割領域においては、前記マッチング処理において前記境界を越えた画像の参照が生じないように、前記マッチング処理に使用する画像領域を変形させることを特徴とする請求項４に記載の画像処理装置。
【請求項１０】
前記検出手段は、前記複数の部分領域の境界に位置する前記分割領域においては、処理する画像範囲が大きい方の前記画像処理プロセッサにより前記マッチング処理に使用する画像領域を設定することを特徴とする請求項１乃至９のいずれか１項に記載の画像処理装置。
【請求項１１】
被写体像を撮像する撮像手段と、
該撮像手段により撮像された動画像が入力される請求項１乃至１０のいずれか１項に記載の画像処理装置と、
を備えることを特徴とする撮像装置。
【請求項１２】
動画像中の各フレーム画像をそれぞれ複数の部分領域に分割して、該複数の部分領域の画像信号を並列に処理する複数の画像処理プロセッサを備える画像処理装置を制御する方法であって、
前記複数の画像処理プロセッサのそれぞれが、
前記部分領域を複数の分割領域に分割する分割工程と、
分割された分割領域ごとに画素の特徴値を算出して、特徴点を選択する選択工程と、
前記分割領域ごとの特徴点に基づいて、前記各フレーム画像を参照するマッチング処理に使用する画像領域を設定し、動きベクトルを検出する検出工程とを行い、
前記検出工程では、前記複数の部分領域の境界に位置する前記分割領域においては、前記マッチング処理において前記境界を越えた画像の参照が生じないように、前記マッチング処理に使用する画像領域を設定することを特徴とする画像処理装置の制御方法。
【請求項１３】
請求項１２に記載の制御方法の各工程を前記画像処理プロセッサに実行させるためのプログラム。
【請求項１４】
請求項１２に記載の制御方法の各工程を前記画像処理プロセッサに実行させるためのプログラムを記憶したコンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のフレーム画像間で動きベクトルを検出する画像処理装置に関するものである。
【背景技術】
【０００２】
デジタルカメラ等の撮像装置を用いて撮影された映像に対して像ブレ補正を施すためには、フレーム画像間の動き量を検出して複数枚の画像に対して位置合わせを行う必要がある。フレーム画像間の動き量を検出する方法としては、ジャイロセンサのような外部機器の情報を用いたり、撮影されたフレーム画像から動き量を推定したりする方法等がある。
【０００３】
フレーム画像を用いて動き量を推定する方法は従来から種々提案されているが、その代表的なものとしてテンプレートマッチングによる動きベクトル検出がある。テンプレートマッチングでは、まず映像中のある２枚のフレーム画像の一方を原画像、もう一方を参照画像とする。そして、原画像上に配置した所定の大きさの矩形領域をテンプレートブロックとし、参照画像の各位置においてテンプレートブロック内の画素値の分布との相関を求める。このとき、参照画像中で最も相関が高くなる位置がテンプレートブロックの移動先であり、原画像上でのテンプレートブロックの位置を基準とした時の移動先への向きと移動量が動きベクトルとなる。
【０００４】
動きベクトルの検出率を向上させるため、特徴点を抽出し、抽出した特徴点にテンプレートブロックを配置し、フレーム画像間でテンプレートマッチングを行う技術がある。ここで、画像全体に対して特徴点抽出を行うと、特徴点の分布は不均一になることが多い。不均一な特徴点に対して得られた動きベクトルを像ブレ補正の用途で使用する場合、特徴の集中した領域が主となる像ブレ補正となってしまう。
【０００５】
この問題を解決するため、特許文献１では、特徴点を均一に分布させるために、画像をグリッド状に分割して、特徴の大きさを表す特徴値を画素ごとに計算し、各グリッド内で特徴値が最も大きい画素を特徴点として抽出している。
【０００６】
図１５は、特許文献１に記載されている技術に基づいて、各グリッド内で特徴点を求めて、その特徴点にテンプレートブロックを配置し、テンプレートマッチングを行う例を示した図である。図１５において、１５０１はグリッド、１５０２はグリッド内の特徴点、１５０３はテンプレート、１５０４はテンプレートに対するサーチ範囲を示す。例えば、グリッド１５０１においては、特徴点１５０２を中心としたテンプレート１５０３に基づいて、サーチ範囲１５０４内でテンプレートマッチングが行われる。
【０００７】
一方、近年、撮像素子の多画素化や動画像の高フレームレート化などに伴い、画像処理プロセッサで処理するデータ量が増大してきている。データ量が増大すると、画像処理を行う場合に１つの画像処理プロセッサで処理することができなくなるため、複数の画像処理プロセッサを搭載し、処理を分担するという方法がとられる。特許文献２には、複数の画像処理プロセッサで処理を分担する例が開示されている。特許文献２には、複数の画像処理プロセッサを直列に接続し、画像の領域を分割して、分割した領域を各々の画像処理プロセッサで分担して処理することが開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−１９２０６０号公報
【特許文献２】特許第４８４３７４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献１に開示されている技術においては、抽出される特徴点の位置が画像により変化するため、図１５に１５０５や１５０６で示される領域のように、グリッド外の領域の画像が必要となる場合がある。
【００１０】
そのため、例えば図１５に示す画像を破線１５０７で分割し、複数の画像処理プロセッサで画像領域１５００と１５０８を分担して処理しようとした場合、分割境界のグリッドにおいて特徴点抽出処理を行うためには、画像をオーバーラップさせる必要がある。この場合、各画像処理プロセッサの処理負荷が大きくなり、画像処理プロセッサ間の転送データ量も増加するという問題がある。
【００１１】
本発明は上述した課題に鑑みてなされたものであり、その目的は、複数の画像処理プロセッサを用いて特徴点を抽出し、動きベクトルを検出する場合に、画像処理プロセッサの処理負荷と画像処理プロセッサ間での転送データ量を削減することである。
【課題を解決するための手段】
【００１２】
本発明に係わる画像処理装置は、動画像中の各フレーム画像をそれぞれ複数の部分領域に分割して、該複数の部分領域の画像信号を並列に処理する複数の画像処理プロセッサを備え、前記複数の画像処理プロセッサのそれぞれが、前記部分領域を複数の分割領域に分割する分割手段と、分割された分割領域ごとに画素の特徴値を算出して、特徴点を選択する選択手段と、前記分割領域ごとの特徴点に基づいて、前記各フレーム画像を参照するマッチング処理に使用する画像領域を設定し、動きベクトルを検出する検出手段とを有し、前記検出手段は、前記複数の部分領域の境界に位置する前記分割領域においては、前記マッチング処理において前記境界を越えた画像の参照が生じないように、前記マッチング処理に使用する画像領域を設定することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、複数の画像処理プロセッサを用いて特徴点を抽出し、動きベクトルを検出する場合に、画像処理プロセッサの処理負荷と画像処理プロセッサ間での転送データ量を削減することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の画像処理装置の第１の実施形態である撮像装置の構成を示すブロック図。
【図２】第１の実施形態における動きベクトル検出部の構成を示す図。
【図３】第１の実施形態における画像の分割例を示す図。
【図４】分割された画像の処理順序を示す図。
【図５】特徴点算出部の構成を示す図。
【図６】第１の実施形態における特徴点抽出を行う範囲の制限方法を示す図。
【図７】ベクトル検出画像の読み出し範囲を示す図。
【図８】第２の実施形態におけるメモリアドレス生成処理のフローチャート。
【図９】第２の実施形態におけるベクトル検出画像の読み出し範囲の変更方法を示す図。
【図１０】第３の実施形態におけるメモリアドレス生成処理のフローチャート。
【図１１】第３の実施形態におけるベクトル検出画像の読み出し範囲の変形方法を示す図。
【図１２】第４の実施形態の撮像装置の構成を示す図。
【図１３】第４の実施形態におけるメモリアドレス生成処理のフローチャート。
【図１４】第４の実施形態における各画像処理プロセッサでの処理画像範囲を示す図。
【図１５】複数の画像処理プロセッサを用いたグリッド分割処理に基づく特徴点テンプレートマッチングの例を示す図。
【発明を実施するための形態】
【００１５】
以下、本発明の実施形態について、添付図面を参照して詳細に説明する。
【００１６】
＜第１の実施形態＞
図１から図７を参照して、本発明の画像処理装置の第１の実施形態について説明する。第１の実施形態では、複数の画像処理プロセッサを有する画像処理装置において、各画像処理プロセッサの処理画像領域の境界グリッドにおいて特徴点抽出を行う範囲を制限する例について説明する。これにより、各画像処理プロセッサ間の画像のオーバーラップを減らし、処理負荷と転送データ量の削減を図ることができる。
【００１７】
図１は、本発明の画像処理装置の第１の実施形態である撮像装置１００の構成を示すブロック図である。撮像装置１００は、画像信号を並列に処理する２つの画像処理プロセッサを有する。この２つの画像処理プロセッサは、本実施形態では同一の構成の画像処理プロセッサであり、一方を第１の画像処理プロセッサ１、もう一方を第２の画像処理プロセッサ２と呼ぶ。図１では、番号の後に「−１」が記載されているものが第１の画像処理プロセッサ１側の機能ブロックであり、番号の後に「−２」が記載されているものが第２の画像処理プロセッサ２の機能ブロックである。なお、第１の画像処理プロセッサ１と第２の画像処理プロセッサ２は、例えば一部の未使用機能を省いた、異なる構成の画像処理装置でもよい。
【００１８】
撮像装置１００は、撮像光学系１０１、撮像素子１０２、撮像光学系駆動部１０３、撮像素子駆動部１０４、画像分配部１０５、記憶部１０６、カメラ信号処理部１０７、動きベクトル検出部１０８、ＣＰＵ１０９、通信部１１０を備える。
【００１９】
撮像光学系１０１は、フォーカスレンズや像ぶれ補正レンズを含む複数のレンズ群および絞りを有して構成される。撮像光学系１０１は被写体からの光を受け、撮像素子１０２に被写体像を結像させる。撮像光学系駆動部１０３は、ＣＰＵ１０９から出力される、光学系のズーム、フォーカス、絞り、像ぶれ補正のための駆動制御情報に基づいて、撮像光学系１０１を制御する。撮像光学系１０１を通過した光束は撮像素子１０２上に被写体の光学像を形成する。
【００２０】
撮像素子１０２は、ＣＣＤやＣＭＯＳセンサ等からなり、その表面は例えばベイヤー配列のようなＲＧＢカラーフィルタにより覆われ、カラー撮影が可能な構成となっている。撮像素子１０２は受光した光束を電気信号に変換し、アナログ信号をＡ／Ｄ変換した画像データを第１の画像処理プロセッサ１に出力する。撮像素子駆動部１０４は、ＣＰＵ１０９から出力される、撮像素子の画素加算／間引き読み出し、切り出し読み出し等のための駆動制御情報に基づいて、撮像素子１０２を制御する。
【００２１】
画像分配部１０５は、２つの画像処理プロセッサで分担して処理を行うために、撮像素子１０２から出力される画像を上下に分割し、第１の画像処理プロセッサ１で処理する下半分（下部分領域）の画像を記憶部１０６−１に出力する。また、第２の画像処理プロセッサ２で処理する上半分（上部分領域）の画像を通信部１１０−１に出力する。画像分配部１０５は、カメラ信号処理部１０７、動きベクトル検出部１０８、通信部１１０よりも数倍の画像を処理できる構成となっている。
【００２２】
第１の画像処理プロセッサ１の通信部１１０−１は、第２の画像処理プロセッサ２の通信部１１０−２に対し、上半分の画像を送信し、第２の画像処理プロセッサ２の通信部１１０−２は、受信した上半分の画像を記憶部１０６−２に出力する。記憶部１０６は、ＤＲＡＭなどの記憶部で構成され、画像分配部１０５や通信部１１０から出力される画像、動きベクトル検出用の画像等を記憶する。
【００２３】
カメラ信号処理部１０７−１は、記憶部１０６−１に記憶された下半分の画像に対して、カメラ信号処理部１０７−２は、記憶部１０６−２に記憶された上半分の画像に対して、センサ補正、ホワイトバランス調整、ノイズリダクション、現像処理などのカメラ信号処理を行う。なお、カメラ信号処理部１０７は画像処理を行う際に適宜画像を記憶部１０６に記憶、もしくは記憶部１０６から画像の読み出しを行う。
【００２４】
カメラ信号処理部１０７で処理された各々の画像は、記録用および表示用の画像データとして、不図示の記録部、表示部に出力される。分割された画像は既知の手法で、再統合される。記録部、表示部の構成は公知のものであり、詳細な説明は省略する。
【００２５】
第１の画像処理プロセッサ１の動きベクトル検出部１０８−１は、画像分割部１０５が記憶部１０６−１に出力する下半分の画像を用いて動きベクトル検出を行い、動きベクトルデータを算出する。算出された動きベクトルデータはＣＰＵ１０９−１に出力される。第２の画像処理プロセッサ２の動きベクトル検出部１０８−２は、通信部１１０−２が記憶部１０６−２に出力する上半分の画像を用いて動きベクトル検出を行い、動きベクトルデータを算出する。算出された動きベクトルデータはＣＰＵ１０９−２に出力される。動きベクトル検出部１０８の詳細な構成及び動きベクトルの検出方法については、後述する。
【００２６】
ＣＰＵ１０９−２は取得した動きベクトルデータを通信部１１０−２へ出力する。通信部１１０−２は、第１の画像処理プロセッサ１の通信部１１０−１に動きベクトルデータを出力する。通信部１１０−１は、第２の画像処理プロセッサ２で算出した動きベクトルデータをＣＰＵ０１０９−１に出力する。
【００２７】
ＣＰＵ０１０９−１は、第１の画像処理プロセッサ１で算出した動きベクトルデータと第２の画像処理プロセッサ２で算出した動きベクトルデータから、像ぶれ補正のためのグローバルモーション（画面全体の動き）を算出する。グローバルモーションの算出方法としては、Ｘ方向とＹ方向のそれぞれで、全ての分割グリッドのベクトル値でヒストグラムを求め、その最頻値をグローバルモーションとする。ＣＰＵ０１０９−１は算出したグローバルモーションに基づいて、既知の手法で、像ぶれ補正のためのレンズ駆動量を算出して、レンズ制御情報を撮像光学系駆動部１０３に出力する。また、ＣＰＵ１０９は、記憶部１０６に格納されている制御プログラムに従って、システム全体の動作制御を行う。
【００２８】
以上が本実施形態の撮像装置１００の構成である。次に、本実施形態における動きベクトル検出部１０８の構成及び、動きベクトルの検出方法について説明する。図２は、動きベクトル検出部１０８の構成を示すブロック図である。図２において、動きベクトル検出部１０８は、グリッド分割部２０１、ベクトル検出画像生成部２０２、特徴点算出部（特徴点選択部）２０３、メモリアドレス生成部２０４、マッチング処理部２０５を有している。
【００２９】
グリッド分割部２０１は、入力された動きベクトル検出の対象となる画像を複数の領域に分割し、分割したグリッド毎の画像を出力する。図３は、第２の画像処理プロセッサ２における上半分の画像をグリッド分割した例を示しており、画像３００を、水平方向に６個、垂直方向に３個のグリッドに分割している。グリッド分割数、グリッド画像サイズは、ＣＰＵ１０９によってグリッド分割部２０１に設定される。以降の処理では、グリッド３０１−１に対し、特徴点３０２−１を求め、求めた特徴点に応じて、テンプレート画像３０３−１の位置と、サーチ画像３０４−１の位置を決定して、テンプレートマッチングを行う。また、特徴点３０２はグリッド３０１内の座標となるため、グリッド３０１−２に示すように、特徴点３０２−２がグリッド３０１−２の端に近くなると、テンプレート画像３０３−２とサーチ画像３０４−２がグリッド３０１−２をはみ出してしまう場合がある。従って、上下左右端のグリッドに対しては、余分領域３０５を準備する必要があるが、下端に関しては、画像処理プロセッサの処理境界であり、画像中心となるため、余分画素は設けない。余分領域サイズは、ＣＰＵ１０９によってグリッド分割部２０１に設定される。
【００３０】
また、グリッド分割部２０１は、図４に示すように、後段のベクトル検出画像生成部２０２と、特徴点算出部２０３に対し、画像４００を、前述した余分領域を含めた分割領域単位で出力する。まず、左上端の余分領域４０２−１の画像を読み出したら、次に、その右隣の余分領域４０２−２を読み出し、そのまま水平方向の余分領域を読み出す。上端の余分領域の画像を全て読み出し終えたら、グリッド４０１−１に対する左端の余分領域４０２−３を読み出し、その後にグリッド４０１−１を読み出す。グリッド４０１−１を読み出し終えたら、グリッド４０１−２、グリッド４０１−３という順で、水平方向のグリッドを読み出していく。
【００３１】
なお、後段のベクトル検出画像生成部２０２には、余分領域４０２を入力する必要があるが、特徴点算出部２０３は、グリッド４０１のみが処理対象となるため、余分領域４０２の入力は不要である。例えば、余分領域４０２がベクトル検出画像生成部２０２に入力されている間は、特徴点算出部２０３は、供給するクロックを停止するなどして、消費電力を抑える構成としてもよい。また、画像４００がラスタスキャンで、グリッド分割部２０１に入力される場合は、グリッド分割部２０１において、既知の手法による、ラスタブロック変換処理を行う必要がある。
【００３２】
次に、分割された画像は、ベクトル検出画像生成部２０２において、ベクトル検出画像に変換されて、記憶部１０６に書き込まれる。ベクトル検出画像生成部２０２は、例えば、バンドパスフィルタ回路であり、テンプレートマッチング処理に不要な、画像の高周波成分と低周波成分をカットする。
【００３３】
また、ベクトル検出画像が生成されるのと並行して、特徴点算出部２０３において、各グリッドの特徴点を算出する。図５は、特徴点算出部２０３の構成例を示した図であり、特徴点算出部２０３は、特徴フィルタ部５０１、特徴評価部５０２、特徴点決定部５０３、座標算出部５０４を有する。
【００３４】
特徴フィルタ部５０１は、例えば、バンドパスフィルタ、水平微分フィルタ、垂直微分フィルタ、平滑化フィルタなど、複数のフィルタから構成される。例えば、本実施形態においては、バンドパスフィルタで、画像の不要な高周波成分と低周波成分をカットし、水平方向の微分フィルタ処理を施した信号と、垂直方向の微分フィルタ処理を施した信号それぞれに対して、平滑化フィルタ処理を施した信号を出力する。特徴評価部５０２は、特徴フィルタ部５０１によりフィルタ処理されたグリッドに対し、画素ごとに２つのエッジの交点や曲率が極大である曲線状の点など画素の周辺の微分値が多方向に大きい点を特徴評価式により特徴値として算出する。本実施形態では、例えば、Ｓｈｉ ａｎｄ Ｔｏｍａｓｉの手法を用いる場合について説明する。
【００３５】
水平微分フィルタと垂直微分フィルタを施した結果から、自己相関行列Ｈを作成する。自己相関行列Ｈの式を（式１）に示す。
【００３６】
【数１】
2018081641.tif 000003
【００３７】
（式１）において、Ｉxは水平微分フィルタを施した結果、Ｉyは垂直微分フィルタを施した結果を表しており、ガウシアンフィルタＧを畳み込む。Ｓｈｉ ａｎｄ Ｔｏｍａｓｉの特徴評価式を（式２）に示す。
【００３８】
Shi and Tomashi ＝ min（λ1，λ2）      （式２）
（式２）は、（式１）の自己相関行列Ｈの固有値λ1，λ2のうち小さい方の固有値を特徴値とすることを示す。
【００３９】
座標算出部５０４は、グリッド内における画素の座標を算出する。画素の座標は、グリッドの左上端を（０，０）とした、相対座標で表現する。特徴点決定部５０３は、グリッド毎に、特徴評価部５０２によって画素ごとに算出された特徴値の最も大きい値を持つ画素を特徴点と決定し、座標と合わせて特徴点情報を生成する。生成された特徴点情報は、特徴点決定部５０３内で、グリッド毎にメモリやレジスタに一旦記憶される。そして、マッチング処理部２０５において、対応するグリッドのテンプレートマッチング処理が開始されるときに、メモリアドレス生成部２０４に特徴点情報が出力される。記憶部１０６には、現時点のベクトル検出画像と、動画像中の１フレーム前のベクトル検出画像の、２フレーム分のベクトル検出画像が記憶されている。本実施形態においては、現時点のベクトル検出画像をテンプレート画像とし、１フレーム前のベクトル検出画像をサーチ画像として、テンプレートマッチングを行う。
【００４０】
また、特徴点決定部５０３は、第１の画像処理プロセッサ１と第２の画像処理プロセッサ２の処理境界に位置するグリッドにおいては、下方向もしくは上方向に対してテンプレート画像、サーチ画像がはみ出さないように、特徴点を算出する範囲を制限する。
【００４１】
図６は、第１の画像処理プロセッサ１と第２の画像処理プロセッサ２の処理境界に位置するグリッドにおける、特徴点算出範囲を示した図である。上半分の画像（第２の画像処理プロセッサ２）の処理の場合、サーチ範囲の垂直サイズをＳＹ、グリッドの垂直サイズをＧＹとすると、特徴点算出範囲６０１はグリッドの上端から（ＧＹ−ＳＹ／２）ライン目までとなる。一方、下半分の画像（第１の画像処理プロセッサ１）の処理の場合の特徴点算出範囲６０２は、（ＧＹ−ＳＹ／２＋１）ライン目から、グリッドの下端までとなる。
【００４２】
メモリアドレス生成部２０４は、記憶部１０６に配置された２枚のベクトル検出画像から、所定のグリッドに対して、テンプレートマッチングに必要となるテンプレート画像とサーチ画像の読み出し位置の決定と、メモリアクセスを実施する。
【００４３】
図７は、グリッド７０１におけるテンプレート画像とサーチ画像の範囲を示した図である。７０２はグリッド開始座標、７０３は特徴点座標、７０４はテンプレート画像、７０５はサーチ画像、７０６はテンプレート画像読み出し開始座標である。また、７０７はサーチ画像読み出し開始座標、７０８はサーチ画像読み出し完了座標、７０９はグリッド７０１のテンプレートマッチング処理に必要となる、余分画素領域である。
【００４４】
まず、グリッド７０１内の特徴点７０３（ＰＸ，ＰＹ）は、グリッド開始位置を（ＧＳＸ，ＧＳＹ）とした場合に、画像内の絶対座標（ＧＰＸ，ＧＰＹ）として以下の式で表現される。
【００４５】
（ＧＰＸ，ＧＰＹ）＝（ＧＳＸ＋ＰＸ，ＧＳＹ＋ＰＹ）      （式３）
テンプレート画像は、特徴点が中心となるように配置される。従って、テンプレート画像の読み出し開始位置（ＧＴＸ，ＧＴＹ）は、テンプレート画像の水平サイズをＴＸ、垂直サイズをＴＹとした場合、以下の式で表現される。
【００４６】
（ＧＴＸ，ＧＴＹ）＝（ＧＰＸ−ＴＸ／２，ＧＰＹ−ＴＹ／２）      （式４）
サーチ画像は、画像の中心をテンプレート画像の中心に揃えて配置する。従って、サーチ画像の読み出し開始位置（ＧＭＸ，ＧＭＹ）は、サーチ画像の水平サイズをＳＸ、垂直サイズをＳＹとした場合、以下の式で表現される。
【００４７】
（ＧＭＸ，ＧＭＹ）＝（ＧＰＸ−ＳＸ／２，ＧＰＹ−ＳＹ／２）      （式５）
また、サーチ画像の右下の座標、すなわちサーチ画像の読み出し完了位置（ＧＥＸ，ＧＥＹ）は、以下の式で表現される。
【００４８】
（ＧＥＸ，ＧＥＹ）＝（ＧＰＸ＋ＳＸ／２，ＧＰＹ＋ＳＹ／２）      （式６）
テンプレート画像の読み出し開始座標、サーチ画像の読み出し開始座標及び読み出し完了座標を算出すると、メモリアドレス生成部２０４はメモリアドレス発行処理を行う。メモリアドレス発行処理では、記憶部１０６に配置された、現フレームのベクトル検出画像に対して、座標（ＧＴＸ，ＧＴＹ）から、水平サイズＴＸ、垂直サイズＴＹの矩形領域を読みだすよう、メモリアドレスを発行する。また、同様に、記憶部１０６に配置された１フレーム前のベクトル検出画像に対して、座標（ＧＭＸ，ＧＭＹ）から、水平サイズＳＸ、垂直サイズＳＹの矩形領域を読み出すよう、メモリアドレスを発行する。
【００４９】
マッチング処理部２０５は、記憶部１０６から読み出されたテンプレート画像とサーチ画像を用いて（参照して）相関値を算出し、その相関値からベクトル値を算出する。例えば、相関値の算出方法の一例として差分絶対値和（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅ、以下ＳＡＤと略す）を使用する。
【００５０】
【数２】
2018081641.tif 000004
【００５１】
…（式７）
（式７）において、ｆ（ｉ，ｊ）はテンプレート画像７０４内の座標（ｉ，ｊ）における画素値を表しており、ｇ（ｉ，ｊ）はサーチ画像７０５において相関値算出の対象となる領域内の各画素値を表す。相関値算出対象領域は、テンプレート画像７０４と同じ大きさである。そしてＳＡＤでは、両ブロック内の各画素値ｆ（ｉ，ｊ）及びｇ（ｉ，ｊ）について差の絶対値を計算し、その総和を求めることで相関値Ｓ＿ＳＡＤを得ることが出来る。従って、相関値Ｓ＿ＳＡＤの値が小さいほど両ブロック間の輝度値の差分が小さい、つまりテンプレート画像７０４と相関値算出領域内のテクスチャが類似していることを表している。なお、本実施形態では、相関値の一例としてＳＡＤを使用しているが、これに限られるものではなく、差分二乗和（ＳＳＤ）や正規化相互相関（ＮＣＣ）等の他の相関値を用いてもよい。マッチング処理部２０５は、相関値の最小値の位置（ＭＶＸ，ＭＶＹ）を、グリッドの動きベクトル値として出力する。
【００５２】
以上説明したように、本実施形態の動きベクトル検出部１０８は、各画像処理プロセッサの処理画像境界に位置するグリッドにおいて、特徴点抽出を行う範囲を制限する。これにより、本実施形態によれば、テンプレート画像とサーチ画像を各画像処理プロセッサで処理する画像範囲内に納めることができる。したがって、各画像処理プロセッサ間での画像のオーバーラップを減らすことが可能となり、各画像処理プロセッサの処理負荷と転送データ量の削減を図ることができる。
【００５３】
＜第２の実施形態＞
次に、図８、図９を参照して、本発明の画像処理装置の第２の実施形態について説明する。第２の実施形態では、各画像処理プロセッサの処理画像領域の境界グリッドにおいて、テンプレート画像とサーチ画像が他の画像処理プロセッサの処理画像範囲にはみ出した場合に、読み出し範囲を移動させる例について説明する。これにより、各画像処理プロセッサ間の画像のオーバーラップを減らし、処理負荷と転送データ量の削減を図ることができる。
【００５４】
本発明の第２の実施形態である撮像装置、ベクトル検出部の構成は、図１、図２に示される第１の実施形態の構成と同様である。第１の実施形態と異なる点は、特徴点算出部２０３とメモリアドレス生成部２０４の処理である。
【００５５】
第２の実施形態における特徴点算出部２０３の処理では、第１の画像処理プロセッサ１と第２の画像処理プロセッサ２の処理境界に位置するグリッドにおいても、他のグリッドと同様にグリッド全体から特徴点を抽出する。抽出された特徴点の情報はメモリアドレス生成部２０４に出力される。
【００５６】
次に、メモリアドレス生成部２０４の処理について説明する。図８は、第２の実施形態におけるメモリアドレス生成部２０４におけるメモリアドレス生成処理の動作を示すフローチャートである。また、図９は、第１の画像処理プロセッサ１と第２の画像処理プロセッサ２の処理境界に位置するグリッドにおける、テンプレート画像とサーチ画像の読み出し範囲の変更処理を示す図である。
【００５７】
図９において、９０１−１、９０４−１はそれぞれ読み出し範囲変更処理前の特徴点、９０２−１、９０５−１はそれぞれ読み出し範囲変更処理前のテンプレート画像範囲、９０３−１、９０６−１はそれぞれ読み出し範囲変更処理前のサーチ画像範囲である。これに対し、９０１−２、９０４−２はそれぞれ読み出し範囲変更処理後の特徴点、９０２−２、９０５−２はそれぞれ読み出し範囲変更処理後のテンプレート画像範囲、９０３−２、９０６−２はそれぞれ読み出し範囲変更処理後のサーチ画像範囲である。
【００５８】
図８おいて、メモリアドレス生成部２０４は、メモリアドレス生成処理を開始すると、ステップＳ８０１で第１の実施形態と同様に、テンプレート画像とサーチ画像の読み出し開始座標及び読み出し完了座標を算出する。ステップＳ８０１でテンプレート画像とサーチ画像の範囲を算出すると、ステップＳ８０２に進む。
【００５９】
ステップＳ８０２では、メモリアドレス生成部２０４は、処理対象のグリッドが画像処理プロセッサの境界グリッドであるか否かを判定する。処理対象のグリッドが境界グリッドであった場合、メモリアドレス生成部２０４は、処理をステップＳ８０３に進め、境界グリッドでない場合は処理をステップＳ８０５に進める。
【００６０】
ステップＳ８０２で処理対象グリッドが境界グリッドであった場合、ステップＳ８０３でメモリアドレス生成部２０４は、テンプレート画像とサーチ画像の範囲が他の画像処理プロセッサの処理画像範囲にはみ出していないかを判定する。はみ出している場合は処理をステップＳ８０４に進め、はみ出していない場合は、処理をステップＳ８０５に進める。
【００６１】
ステップＳ８０４でメモリアドレス生成部２０４は、図９に示すように、他の画像処理プロセッサの処理画像範囲にはみ出したテンプレート画像９０２−１、９０５−１とサーチ画像９０３−１、９０６−１を移動させる。サーチ画像範囲に基づいて、はみ出したライン数を算出し、そのライン数分だけテンプレート画像とサーチ画像の範囲を移動させることで、他の画像処理プロセッサの処理画像範囲へのはみ出しをなくす。ステップＳ８０４でテンプレート画像とサーチ画像の範囲を移動させると、メモリアドレス生成部２０４は、処理をステップＳ８０５に進める。
【００６２】
ステップＳ８０５でメモリアドレス生成部２０４は、ステップＳ８０１で算出された、もしくはステップＳ８０４で移動されたテンプレート画像とサーチ画像に対応する矩形領域を読み出すよう、記憶部１０６に対してメモリアドレスを発行する。メモリアドレスの発行を完了すると、メモリアドレス生成部２０４は、ステップＳ８０６に処理を進める。
【００６３】
ステップＳ８０６でメモリアドレス生成部２０４は、全グリッドに対して処理が完了したか否かを判定する。全グリッドの処理が完了した場合、メモリアドレス生成処理は完了する。ステップＳ８０６で、全グリッドの処理が完了していない場合は、ステップＳ８０１に戻り、同様の処理を繰り返す。
【００６４】
以上が第２の実施形態における、メモリアドレス生成部２０４の制御である。これにより、テンプレート画像とサーチ画像を各画像処理プロセッサで処理する画像範囲内に納めることができる。したがって、各画像処理プロセッサ間での画像のオーバーラップを減らすことが可能となり、各画像処理プロセッサの処理負荷と転送データ量の削減を図ることができる。
【００６５】
なお、本実施形態では移動量に関係なく、テンプレート画像とサーチ画像の範囲を移動させる例を説明したが、これに限られるものではなく、予め算出した移動量に応じて制御を変更してもよい。例えば移動量が所定の閾値以上の場合は、抽出した特徴点からテンプレート画像が大きくずれることによる精度劣化が懸念される。このため、移動量が閾値以上の場合は、評価値順に複数保持しておいた特徴点の中から選択した他の特徴点に基づいたテンプレート画像とサーチ画像の範囲に変更するなどしてもよい。
【００６６】
＜第３の実施形態＞
図１０、図１１を参照して、本発明の画像処理装置の第３の実施形態について説明する。第３の実施形態では、各画像処理プロセッサの処理画像領域の境界グリッドにおいて、テンプレート画像とサーチ画像が他の画像処理プロセッサの処理画像範囲にはみ出した場合に、読み出し範囲のサイズ変更をする例について説明する。これにより、各画像処理プロセッサ間の画像のオーバーラップを減らし、処理負荷と転送データ量の削減を図ることができる。
【００６７】
本発明の第２の実施形態である撮像装置、ベクトル検出部の構成は、図１、図２に示される第１及び第２の実施形態の構成と同様である。第２の実施形態と異なる点は、メモリアドレス生成部２０４の処理である。
【００６８】
第３の実施形態におけるメモリアドレス生成部２０４の処理について説明する。図１０は、第３の実施形態におけるメモリアドレス生成部２０４のメモリアドレス生成処理の動作を示すフローチャートである。ステップＳ８０１〜Ｓ８０３、Ｓ８０５、Ｓ８０６の処理は第２の実施形態と同様の処理となるため、同一の記号を振り、説明は省略する。
【００６９】
また、図１１は、第１の画像処理プロセッサ１と第２の画像処理プロセッサ２の処理境界に位置するグリッドにおける、テンプレート画像とサーチ画像の読み出し範囲のサイズ変更処理を示す図である。図１１において、１１０１，１１０３はそれぞれ読み出し範囲サイズ変更処理後のサーチ画像範囲である。１１０２，１１０４はそれぞれ他の画像処理プロセッサの処理画像範囲にはみ出しているサーチ画像範囲である。
【００７０】
図１０において、メモリアドレス生成部２０４は、ステップＳ８０３でテンプレート画像とサーチ画像の範囲が、他の画像処理プロセッサの処理画像範囲にはみ出していると判定された場合に、ステップＳ１００１のサイズ変更処理を行う。
【００７１】
ステップＳ１００１でメモリアドレス生成部２０４は、例えば図１１に示すように、他の画像処理プロセッサの処理画像範囲にはみ出したサーチ画像範囲１１０２，１１０４を差し引いたサーチ画像範囲１１０１，１１０３に読み出し範囲のサイズを変更するあるいは変形する。これにより、他の画像処理プロセッサの処理画像範囲へのはみ出しをなくす。ステップＳ１００１で読み出し範囲のサイズ変更を行うと、メモリアドレス生成部２０４は処理をステップＳ８０５に進め、メモリアドレスを発行する。
【００７２】
以上が第３の実施形態における、メモリアドレス生成部２０４の制御である。これにより、テンプレート画像とサーチ画像を各画像処理プロセッサで処理する画像範囲内に納めることができる。したがって、各画像処理プロセッサ間での画像のオーバーラップを減らすことが可能となり、各画像処理プロセッサの処理負荷と転送データ量の削減を図ることができる。
【００７３】
なお、本実施形態ではサイズの変更量に関係なく、サーチ画像の範囲のサイズを変更させる例について説明したが、これに限られるものではなく、予め算出したサイズ変更量に応じて制御を変更してもよい。例えばサイズ変更量が所定の閾値以上の場合は、相関値演算を行うサーチ範囲が小さくなることによる精度劣化が懸念される。このため、サイズ変更量が閾値以上の場合は、評価値順に複数保持しておいた特徴点の中から選択した他の特徴点に基づいたテンプレート画像とサーチ画像の範囲に変更するなどしてもよい。
【００７４】
＜第４の実施形態＞
図１２〜図１４を参照して、本発明の画像処理装置の第４の実施形態について説明する。第４の実施形態では、動きベクトル検出以外の他の画像処理要因により、各画像処理プロセッサに分配される画像サイズが動的に変化し、境界グリッドの中間が各画像処理プロセッサの処理範囲の境界となった場合に、読み出し範囲を決定する例について説明する。これにより、各画像処理プロセッサ間の画像のオーバーラップを減らし、処理負荷と転送データ量の削減を図ることができる。
【００７５】
図１２は本実施形態の撮像装置１２００の構成を示すブロック図である。第１の実施形態、第２の実施形態、第３の実施形態の撮像装置１００とは、ブロックの構成と各ブロックの処理は同様であるため、同一の符号を振り、説明は省略する。
【００７６】
第４の実施形態では、カメラ信号処理部１０７内の信号処理ブロックからＣＰＵ１０９に対して処理結果が出力される。第２の画像処理プロセッサ２の処理結果は通信部１１０を介して第１の画像処理プロセッサ１のＣＰＵ１０９−１に集約され、その結果に応じてＣＰＵ１０９−１は画像分配部１０５で各画像処理プロセッサに分配される画像サイズを変更する構成となっている。
【００７７】
また、第４の実施形態におけるベクトル検出部の構成は、図２に示される第１の実施形態、第２の実施形態、第３の実施形態と同様である。第２の実施形態と異なる点は、メモリアドレス生成部２０４の処理である。
【００７８】
以下、第４の実施形態におけるメモリアドレス生成部２０４の処理について説明する。図１３は、第４の実施形態におけるメモリアドレス生成部２０４のメモリアドレス生成処理の動作を示すフローチャートである。ステップＳ８０１〜Ｓ８０６の処理は第２の実施形態と同様の処理となるため、同一の符号を振り、説明は省略する。
【００７９】
また、図１４は、第１の画像処理プロセッサ１と第２の画像処理プロセッサ２の処理境界に位置するグリッドにおける、各画像処理プロセッサの処理範囲を示す図である。図１４において、１４０１は各画像処理プロセッサの処理範囲境界が中間に存在するグリッドであり、１４０２は境界グリッド１４０１の内第２の画像処理プロセッサ２に入力される範囲、１４０３は境界グリッド１４０１の内第１の画像処理プロセッサ１に入力される範囲を示している。
【００８０】
本実施形態においてメモリアドレス生成部２０４は、図１３のステップＳ８０２で処理対象のグリッドが画像処理プロセッサの境界グリッドであると判定された場合に、ステップＳ１３０１に進む。ステップＳ１３０１では、グリッド全体領域における画像処理プロセッサの処理範囲の割合を判定する処理を行う。
【００８１】
ステップＳ１３０１で、例えば図１４に示すように、画像処理プロセッサの処理範囲境界に該当する境界グリッド１４０１において、第１の画像処理プロセッサ１に入力される画像範囲１４０３はグリッド全体の画素数の１／２以下であるとする。この場合、第１の画像処理プロセッサ１のメモリアドレス生成部２０４では、ステップＳ１３０１の判定結果によりステップＳ８０６に進む。つまり、テンプレート画像とサーチ画像の読み出しは行われず、境界グリッド１４０１における動きベクトル検出を行わないことになる。一方、第２の画像処理プロセッサ２に入力される画像範囲１４０２はグリッド全体の画素数の１／２以上である。したがって、第２の画像処理プロセッサ２のメモリアドレス生成部２０４では、ステップＳ１３０１の判定結果によりステップＳ８０３に進み、以降第２の実施形態と同様にしてテンプレート画像とサーチ画像の読み出しが行われる。
【００８２】
以上が第４の実施形態におけるメモリアドレス生成部２０４の制御である。これにより、テンプレート画像とサーチ画像を各画像処理プロセッサで処理する画像範囲内に納めることができる。したがって、各画像処理プロセッサ間での画像のオーバーラップを減らすことが可能となり、各画像処理プロセッサの処理負荷と転送データ量の削減を図ることができる。
【００８３】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８４】
１：第１の画像処理プロセッサ、２：第２の画像処理プロセッサ、１０１：撮像光学系、１０２：撮像素子、１０８：動きベクトル検出部、１０９：ＣＰＵ
【図１】
2018081641.tif 000005
【図２】
2018081641.tif 000006
【図３】
2018081641.tif 000007
【図４】
2018081641.tif 000008
【図５】
2018081641.tif 000009
【図６】
2018081641.tif 000010
【図７】
2018081641.tif 000011
【図８】
2018081641.tif 000012
【図９】
2018081641.tif 000013
【図１０】
2018081641.tif 000014
【図１１】
2018081641.tif 000015
【図１２】
2018081641.tif 000016
【図１３】
2018081641.tif 000017
【図１４】
2018081641.tif 000018
【図１５】
2018081641.tif 000019