JP6576179B2 - 画像処理装置、画像処理方法、及びプログラム - Google Patents

画像処理装置、画像処理方法、及びプログラム Download PDF

Info

Publication number
JP6576179B2
JP6576179B2 JP2015179787A JP2015179787A JP6576179B2 JP 6576179 B2 JP6576179 B2 JP 6576179B2 JP 2015179787 A JP2015179787 A JP 2015179787A JP 2015179787 A JP2015179787 A JP 2015179787A JP 6576179 B2 JP6576179 B2 JP 6576179B2
Authority
JP
Japan
Prior art keywords
grid
image
area
unit
region
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2015179787A
Other languages
English (en)
Other versions
JP2017054431A (ja
Inventor
谷口 浩之
浩之 谷口
稔 坂井田
稔 坂井田
友貴 植草
友貴 植草
総一郎 鈴木
総一郎 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2015179787A priority Critical patent/JP6576179B2/ja
Publication of JP2017054431A publication Critical patent/JP2017054431A/ja
Application granted granted Critical
Publication of JP6576179B2 publication Critical patent/JP6576179B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、画像を複数に分割して処理する画像処理装置、画像処理方法、及びプログラムに関する。
デジタルスチルカメラやデジタルビデオカメラ等の撮像装置を用いて撮影された映像に対して手ぶれ補正を施す場合、フレーム画像間の動き量を検出して複数枚の各フレーム画像に対する位置合わせが行われる。フレーム画像間の動き量を検出する方法としては、ジャイロセンサのような外部機器からの出力情報を用いて検出する方法や、撮影されたフレーム画像から動き量を推定する方法等が知られている。
フレーム画像を用いて動き量を推定する方法は従来から種々提案されているが、その代表的なものとしてテンプレートマッチングにより動きベクトルを検出する方法が知られている。テンプレートマッチングでは、先ず、時間軸上で例えば隣接した2枚のフレーム画像のうち一方が原画像となされ、他方が参照画像となされる。参照画像が時間軸上で現在のフレーム(現フレーム)であるとした場合、原画像は例えば時間軸上で一つ前のフレーム(前フレーム)となされる。次に、原画像上に配置した所定の大きさの矩形領域をテンプレートブロックとし、そのテンプレートブロックを用いて参照画像に対するサーチを行う。参照画像に対するサーチの際には、テンプレートブロックの画素値の分布と、参照画像内においてテンプレートブロックと同じ大きさの矩形領域内の画素値の分布との相関が演算される。そして、参照画像に対するサーチでは、その参照画像の中で、原画像のテンプレートブロックと最も相関値が高い矩形領域の位置が、そのテンプレートブロックの移動先として検出される。動きベクトル検出では、原画像上におけるテンプレートブロックの位置を基準位置とし、その基準位置に対して、参照画像のサーチによるテンプレートブロックの移動先の向きと移動量を求め、それら向きと移動量を動きベクトルとして検出する。
また、動きベクトルの検出率を向上させる技術として、フレーム画像から画像の特徴の大きさを表す特徴点を抽出し、抽出した特徴点に基づいてテンプレートブロックを設定して、参照画像と原画像との間のテンプレートマッチングを行う技術がある。ただし、フレーム画像全体で特徴点抽出を行った場合、特徴点の分布は画像内で不均一になることが多い。このような特徴点の不均一な分布から得られた動きベクトルを例えば手ぶれ補正のために使用した場合、特徴点の分布が集中した領域に基づく、誤った手ぶれ補正処理が行われてしまう虞がある。
このため、特許文献1には、フレーム画像を複数のグリッドに分割し、それら各グリッドについて画素毎に特徴値を求め、各グリッド内で特徴値が最も大きい画素を特徴点として抽出する技術が開示されている。特許文献1によれば、フレーム画像を分割したグリッド毎に特徴点が得られるため、それらグリッド毎に得られた特徴点は、フレーム画像内では略々均一に分布した特徴点となる。
特開2008−192060号公報
しかし、特許文献1の技術を適用したハードウェアによりテンプレートマッチング処理を行うようにした場合、複数のグリッドの画像データをそれぞれメモリに読み書きする必要があるため、メモリ・バスの使用帯域の占有率が上昇するという問題が発生する。一方、デジタルスチルカメラやデジタルビデオカメラ等では、ベクトル検出処理と略々同時に、高フレームレートの動画像処理やノイズ低減処理等も行われ、それら各処理に伴って画像データ等の読み書きが行われるため、頻繁にメモリアクセスが発生する。したがって、ベクトル検出の際のグリッド毎のテンプレートマッチング処理のためのメモリアクセスにより、メモリ・バスの使用帯域が多く占有されてしまうことは、他の各種処理の処理速度に影響を与えることになり好ましくない。
なお、複数グリッドの処理によるメモリアクセスを減らすために、例えば、メモリから読み出すグリッドの個数を間引くことも考えられる。しかしながら、読み出すグリッドの個数を単純に一定間隔で間引いたとすると、特徴点が存在するグリッドまで除外してしまう虞がある。この場合、テンプレートマッチングの際の相関演算に使用されるデータが存在しなくなってしまうため、テンプレートマッチング処理が行えなくなり、その結果、ベクトル検出精度が低下してしまうことになる。このようなベクトル検出精度の低下を防ぐためには、テンプレートマッチング処理の際の相関演算に使用されるデータが存在しなくってしまうことを防ぐ必要がある。
本発明はこのような問題点に鑑みてなされたものである。本発明は、メモリアクセスを減らしてメモリ・バスの使用帯域の占有率を削減しつつ、相関演算に使用するデータが存在しなくなることをも防止可能な画像処理装置、画像処理方法、及びプログラムを提供することを目的とする。
本発明の画像処理装置は、メモリに格納された第1の画像と第2の画像をそれぞれ複数のグリッド領域毎に分割して読み出すための読み出す手段と、前記第1の画像の前記グリッド領域毎に画像の特徴点を算出する算出手段と、前記第1の画像の前記グリッド領域毎に算出された特徴点に基づいて、前記第1,第2の画像の前記グリッド領域毎に矩形領域を設定する設定手段と、前記第2の画像の前記複数のグリッド領域のうち、グリッド領域の内に前記矩形領域が収まるグリッド領域のみを選択し、前記読み出し手段に対して前記選択したグリッド領域の画像を読み出させる選択手段と、前記第2の画像で前記選択されたグリッド領域の前記矩形領域と、前記第2の画像で前記選択されたグリッド領域に対応した、前記第1の画像のグリッド領域の前記矩形領域との間の相関を求め、前記相関に基づいて所定の処理を行う処理手段とを有することを特徴とする。
本発明によれば、メモリアクセスを減らしてメモリ・バスの使用帯域の占有率を削減可能とし、また、相関演算に使用するデータが存在しなくなることをも防止可能となる。
画像処理装置であるデジタルカメラの概略構成を示す図である。 ベクトル検出部とデータ転送部の概略的な動作説明に用いる図である。 グリッド、特徴点、矩形領域の関係を示す図である。 グリッドに対するベクトル検出処理の概略的なフローチャートである。 特徴点算出部の概略構成を示す図である。 精度判定部の説明に用いるグラフである。 全グリッドに対する処理が行われる場合の説明に用いる図である。 第1の実施形態のベクトル検出部の動作説明に用いる図である。 第1の実施形態のグリッド選択処理のフローチャートである。 第1の実施形態のグリッド選択処理の説明に用いる図である。 選択されるグリッドと除外されるグリッドの説明に用いる図である。 第2の実施形態のベクトル検出部の動作説明に用いる図である。 第2の実施形態のグリッド選択処理の説明に用いる図である。 第2の実施形態のグリッド選択処理のフローチャートである。
以下、本発明の好ましい実施の形態を、添付の図面に基づいて詳細に説明する。
図1は、本発明の実施形態の画像処理装置の一例であるデジタルカメラの概略構成を示す図である。
図1において、結像光学部101は、レンズ及び絞りなどを備えている。撮影の際、結像光学部101は、フォーカス調節及び露出調節を行い、撮像素子102に光学像を結像させる。撮像素子102は、光学像を電気信号(アナログ画像信号)に変換する光電変換機能を有し、CCDやCMOSセンサ等で構成される。A/D変換部103は、撮像素子102からのアナログ画像信号をデジタル画像信号に変換する。
DRAM(メモリ)107は、格納手段としてデータを記憶するメモリであり、所定枚数の静止画像や所定時間分の動画像、音声等のデータや、CPU112の動作用の定数、プログラム等を格納するのに十分な記憶容量を備える。本実施形態の場合、DRAM107は、少なくとも第1の画像と第2の画像のフレーム画像データを記憶している。第1の画像は後述するテンプレートマッチング処理における原画像として用いられ、第2の画像は参照画像として用いられる。後述する動きベクトル検出が行われる場合、原画像と参照画像は時間軸で隣接するフレーム画像であり、例えば参照画像が現在のフレーム画像(現フレーム)である場合、原画像は参照画像に対して時間的に前のフレーム画像(前フレーム)である。メモリ制御部106は、CPU112或いはデータ転送部105からの指示に応じて、DRAM107へのデータ書き込みやデータ読み出しを行う。ROM109は、電気的に消去・記録可能なメモリであり、EEPROM等が用いられる。ROM109には、CPU112の動作用の定数、プログラム等が記憶される。不揮発性メモリ制御部108は、CPU112からの指示に応じて、ROM(不揮発性メモリ)109にデータの書き込み及び読み出しを行う。
CPU112は、画像処理装置全体の制御を司るマイクロコンピュータ等で構成され、各部に対して動作指示を行い、各種の制御処理を実行する。CPU112は、バス114を介して、画像処理部104、データ転送部105、メモリ制御部106、不揮発性メモリ制御部108、表示制御部110、操作部113、撮像素子102を制御する。
バス114は、システムバスであり、バス115は画像データバスである。表示部111は、液晶モニタ等から成り、表示制御部110により制御され、各種画像データ等を表示する。操作部113は、ユーザーにより操作されるスイッチやボタン等を含み、電源のオン/オフ、シャッターのオン/オフ等の操作等に使用される。
画像処理部104は、各種画像処理部及びバッファメモリ等から構成されており、ベクトル検出部120を有している。データ転送部105は、データ転送を行う複数のDMAC(Direct Memory Access Controller)で構成されている。画像処理部104やデータ転送部105は、ハードウェアにより構成されていてもよいし、マイクロコンピュータ等により構成されていてもよい。マイクロコンピュータ等により構成されている場合、マイクロコンピュータは、例えばROM109に格納されているプログラムを実行することにより、後述する本実施形態に係る各処理を実現する。
以下、画像処理部104のベクトル検出部120の構成と、データ転送部105の動作について、先ず、図2〜図7を参照して概要を説明し、その後、図8以降の各図を参照して本実施形態に係る詳細な構成と動作について説明する。
図2は、ベクトル検出部120の概略構成と、データ転送部105の複数のDMACと、データ転送部105のDMACによるDRAM107とベクトル検出部120との間のデータ転送の説明に用いる図である。なお、図2には、データ転送部105のDMACの動作説明のために、DRAM107と、そのDRAM107に書き込みと読み出しがなされるデータ例も示している。
図2において、ベクトル検出部120は、テンプレートマッチング用画像生成部201(以下、マッチング用画像生成部201と表記する。)と、特徴点算出部202と、テンプレートマッチング処理部203と、精度判定部204とを有して構成されている。データ転送部105は、複数のDMACとして、RDDMACa221、RDDMACb222、WRDMACa231、WRDMACb232の機能を有している。RDDMACa221、RDDMACb222は、DRAM107に対してデータの読み出しを行う際のDMAC機能を表し、WRDMACa231、WRDMACb232は、DRAM107に対してデータの書き込みを行う際のDMAC機能を表している。
図3は、ベクトル検出部120がデータ転送部105を介してDRAM107からグリッド領域毎に画像データを読み出す際の各グリッド領域の配置と画像の特徴点、テンプレートマッチング領域及びサーチ領域の関係を示す図である。なお、以下の説明では、グリッド領域を単に「グリッド」と表記する。
図3に示すように、テンプレートマッチングによる動きベクトル検出の際、データ転送部105は、DRAM107から、フレーム画像を複数分割したグリッド302毎に画像データを読み出して、ベクトル検出部120に転送する。各グリッド302のサイズは予め設定されており、また、フレーム画像から分割される各グリッドの個数は水平,垂直方向について予め設定された個数となされている。
ベクトル検出部120は、グリッド302内の画像の特徴の大きさを表す特徴値を画素毎に計算し、各グリッド302内で特徴値が最も大きい画素を特徴点303として取得する。これにより、各グリッド302につき一つの特徴点303が取得される。そして、ベクトル検出部120は、特徴点303を中心として、予め設定されたサイズの矩形領域をテンプレート領域304として決定する。ベクトル検出部120は、これらグリッド302毎に得られた特徴点303とテンプレート領域304のデータをDRAM107に格納する。DRAM107に格納されたテンプレート領域304は、テンプレートマッチングにおける原画像(前フレーム)のテンプレート領域304として用いられる。そして、ベクトル検出部120は、テンプレートマッチングにおける参照画像(現フレーム)のグリッド302に対して、前フレーム内で対応した位置のグリッド302から得られたテンプレート領域304を用いたサーチを行う。
このサーチの際、ベクトル検出部120は、現フレーム(参照画像)のグリッド302内において、特徴点303を中心として、テンプレート領域304より大きく予め設定されたサイズの矩形領域をサーチ領域305として設定する。ベクトル検出部120は、テンプレート領域304の画像を用い、サーチ領域305内を順に走査することでテンプレートマッチングを行う。テンプレートマッチングの際の走査手法は公知の技術であるためその詳細な説明は省略する。テンプレートマッチングでは、ベクトル検出部120は、テンプレート領域304内の画素値と、サーチ領域305内でテンプレート領域304と同じ大きさの矩形領域内の画素値との相関を演算する。そして、ベクトル検出部120は、現フレームのグリッド302のサーチ領域305の中で、前フレームのグリッド302のテンプレート領域304と最も相関が高い矩形領域の位置を、そのテンプレート領域304の移動先として検出する。さらに、ベクトル検出部120は、前フレームのグリッド302内のテンプレート領域304の位置を基準位置とし、その基準位置に対し、現フレームのグリッド302のサーチ領域305内におけるテンプレート領域304の移動先の向きと移動量を求める。ベクトル検出部120は、このようにして求めた向きと移動量を、グリッド302におけるベクトル値255として検出する。
図4には、図2に示したデータ転送部105の各DMAC(221,222,231,232)機能によるグリッド分割から、ベクトル検出部120による動きベクトルの検出までの処理のフローチャートを示す。以下、図4のフローチャートを参照しながら、図2に示したベクトル検出部120の構成とデータ転送部105のデータ転送動作についてより詳細な説明を行う。
図4において、データ転送部105のRDDMACa221は、ステップS401の処理として、バス115を介し、DRAM107から、ベクトル検出に用いる入力画像データ241を読み出す。このデータ読み出しの際、データ転送部105のRDDMACa221は、読み出し手段として、図3に示したグリッド302の単位毎に画像データを読み出す。なお、本実施形態において、入力画像データ241は、画像処理部104で既に各種画像処理が施された後のフレームデータである。そして、RDDMACa221は、画像データ241からグリッド302の単位毎に読み出したデータを、ベクトル検出部120のマッチング用画像生成部201と特徴点算出部202に出力する。また、RDDMACa221は、それぞれ読み出したグリッド302の左上座標位置を示すグリッド座標情報252を、RDDMACb222に送る。ステップS401の後は、ベクトル検出部120のマッチング用画像生成部201にて行われるステップS402の処理と、ベクトル検出部120の特徴点算出部202にて行われるステップS404の処理に移行する。
ステップS402では、マッチング用画像生成部201は、ベクトル検出のためのテンプレートマッチングに使用するテンプレートマッチング処理用画像データ242を生成し、データ転送部105のWRDMACa231に出力する。具体的には、マッチング用画像生成部201は、バンドパスフィルタ回路であり、テンプレートマッチング処理に不要な、画像信号の高周波成分と低周波成分を除去して、テンプレートマッチング処理用画像データ242を生成する。ステップS402の後は、データ転送部105のWRDMACa231にて行われるステップS403の処理に移行する。
ステップS403では、WRDMACa231は、バス115を介し、DRAM107に対して、マッチング用画像生成部201から送られてきたテンプレートマッチング処理用画像データ242を書き込む。このテンプレートマッチング処理用画像データ242は、現フレームのグリッド302から生成されたデータであり、グリッド単位でのテンプレートマッチングにおける参照画像である。また、DRAM107には、現フレームに対して時間軸上で一つ前のフレーム画像から生成されたテンプレートマッチング処理用画像データ243も格納されている。このテンプレートマッチング処理用画像データ243は、前フレームのグリッド302で生成されたデータであり、グリッド単位でのテンプレートマッチングにおける原画像である。ステップS403の後は、データ転送部105のRDDMACb222にて行われるステップS405の処理に移行する。
特徴点算出部202にて行われるステップS404の処理は、前述したステップS402及びその後のステップS403の処理と並列に行われる。ステップS404において、特徴点算出部202は、算出手段として、各グリッド302からそれぞれ一つの特徴点303を算出する。
図5には、特徴点算出部202の構成例を示す。
図5に示すように、特徴点算出部202は、特徴フィルタ部501、特徴評価部502、特徴点決定部503を有する。特徴フィルタ部501は、バンドパスフィルタ、水平微分フィルタ、垂直微分フィルタ、平滑化フィルタなど、複数のフィルタから構成される。
特徴フィルタ部501は、バンドパスフィルタにより各グリッド302の画像データから不要な高周波成分と低周波成分を除去した後、水平方向の微分フィルタ処理と垂直方向の微分フィルタ処理を施す。さらに、特徴フィルタ部501は、それら水平方向と垂直方向の微分フィルタ処理がそれぞれ施された後のデータに対して、平滑化フィルタ処理を施す。これら水平,垂直方向について各々微分フィルタ処理と平滑化フィルタ処理が施されたデータは、特徴評価部502に送られる。
特徴評価部502は、特徴フィルタ部501で処理されたグリッド302の画像から、2つのエッジの交点の画素や、曲率が極大となっている曲線部分の点の画素のように、周辺の各画素の微分値が多方向に大きくなっている画素の値を、特徴値として算出する。なお、グリッド302内の画像に、2つのエッジの交点や曲率が極大となっている曲線部分の点等が存在していない場合には、特徴値は算出されないことになる。以下、2つのエッジの交点や曲率が極大となっている曲線部分の点などを検出する方法の一例として、Shi and Tomasiの手法を例に挙げて説明する。Shi and Tomasiについては公知の手法であるため、ここでは概要のみ説明する。
特徴評価部502は、特徴フィルタ部501により水平,垂直方向に各々微分フィルタ処理が施された後の画素の値から、自己相関行列Hを作成する。自己相関行列Hの式は、式(1)にて表される。
Figure 0006576179
式(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によりグリッド302毎に求められた特徴値のデータは、特徴点決定部503に送られる。
特徴点決定部503は、グリッド302から特徴評価部502により画素毎に算出された特徴値の中で最も大きい値を持つ画素を、特徴点として決定する。なお、特徴評価部502にて特徴値が算出されなかった場合には、特徴点決定部503では、そのグリッド302の特徴点は取得されないことになる。そして、グリッド302において取得された特徴点の座標情報は、特徴点決定部503が備えているメモリ或いはレジスタに格納される。本実施形態において、特徴点の座標は、グリッド302の左上端の座標(x,y)を原点(0,0)とした場合の相対座標(PX,PY)により表される。なお、特徴点の座標は、相対座標(PX,PY)の他に、フレーム画像内における画素位置を表す座標で表現されてもよい。また、特徴点決定部503が備えているメモリやレジスタは、前フレームの各グリッド302で決定された特徴点の座標情報と、現フレームの各グリッド302で決定された特徴点の座標情報とを格納可能な容量を有している。特徴点決定部503に格納された特徴点の座標情報のうち、前フレームのグリッド302における特徴点の座標情報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の後は、ベクトル検出部120のマッチング処理部203にて行われるステップS406の処理に移行する。
ステップS406では、マッチング処理部203は、処理手段として、サーチ領域305の画像データ253とテンプレート領域304の画像データ254とを用い、それら画像の画素毎に相関値を算出し、その相関値からベクトル値を算出する。具体的には、マッチング処理部203は、相関値として、各画素の差分絶対値和(Sum of Absolute Difference、以下SADと略す。)を求める。マッチング処理部203がSADの演算により相関値S_SADを求める際の演算式を式(3)に示す。
Figure 0006576179
なお、式(3)において、f(i,j)はテンプレート領域304内の座標(i,j)における画素値を表し、g(i,j)はサーチ領域305内において相関値算出の対象となる矩形領域内の各画素値を表している。サーチ領域305内で相関値算出の対象となる矩形領域とは、テンプレート領域304と同じサイズの領域であり、テンプレートマッチングの際にサーチ領域305内で左上端部から順に走査される領域である。以下、サーチ領域305内で相関値算出の対象となる矩形領域を「相関値算出領域」と表記する。マッチング処理部203は、それらテンプレート領域304の画素値f(i,j)と相関値算出領域の画素値g(i,j)の差の絶対値を計算して、その総和を求めることにより、相関値S_SADを求める。なお、このとき用いられる画素値は例えば輝度値である。この相関値S_SADは、その値が小さいほど、両領域の画像間の輝度値の差分が小さいこと、つまり、テンプレート領域304の画像とサーチ領域305内の相関値算出領域の画像のテクスチャが類似していることを表す。ここでは、SADにより相関値を求める例を挙げたが、これに限るものではなく、例えば差分二乗和(SSD)や正規化相互相関(NCC)等の他の相関値を用いてもよい。
そして、マッチング処理部203は、相関値が最小値となる座標位置を求める。相関値が最小値となる座標位置は、現フレームのグリッド302のサーチ領域305の中で、前フレームのグリッド302のテンプレート領域304と最も相関が高い矩形領域の位置であると考えられる。さらに、サーチ領域305の中でテンプレート領域304と最も相関が高い矩形領域の位置は、前フレームのテンプレート領域304が、現フレーム内では何れの位置になっているのかを示す移動先を表している。マッチング処理部203は、前フレームのグリッド302内のテンプレート領域304の位置を基準位置とし、その基準位置に対し、前述の移動先の向きと移動量を、グリッド302におけるベクトル値255とする。マッチング処理部203は、ベクトル値255をデータ転送部105のWRDMACb232に出力する。また、マッチング処理部203は、ステップS406で算出された画素毎の相関値の情報256を、精度判定部204に出力する。
ステップS406の後は、データ転送部105のWRDMACb232にて行われるステップS408の処理に移行する。また、ステップS406の後は、ベクトル検出部120の精度判定部204にて行われるステップS407の処理にも移行する。
精度判定部204は、判定手段として、前フレームのグリッド302のテンプレート領域304や現フレームのグリッドのサーチ領域305の画像が、後述する動きベクトル検出に適した画像であるか否かを判定する。具体的には、ステップS407において、精度判定部204は、ステップS406で算出された画素毎の相関値の情報256を用いて、それら画素毎の相関値の最大値、最小値、平均値、極小値を求める。そして、精度判定部204は、それら相関値の最大値、最小値、平均値、極小値に基づいて、グリッド302について低コントラスト判定、画素値の最大値突出判定、繰り返しパターン判定を行う。
図6(a)〜図6(d)には、相関値の最大値、最小値、平均値、極小値による、グリッド302の低コントラスト判定、画素値の最大値突出判定、繰り返しパターン判定と、画素値との関係をグラフとして示している。ただし、相関値が小さいほど画像間の類似度は高いことになるため、図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は、前述のような低コントラスト判定、最大値突出判定、繰り返しパターン判定を各グリッド302について行う。そして、精度判定部204は、低コントラスト、最大値突出、繰り返しパターンの何れかにも該当しないと判定した場合、テンプレート領域304とサーチ領域305の画像は、動きベクトル検出に適した画像であると判定する。一方、精度判定部204は、低コントラスト、最大値突出、繰り返しパターンの何れかであると判定した場合には、テンプレート領域304とサーチ領域305の画像は、動きベクトル検出に適さない画像であると判定する。精度判定部204は、グリッド302毎に行った前述の判定の結果を示す判定情報257を、データ転送部105のWRDMACb232に送る。
ステップS407の後は、データ転送部105のWRDMACb232にて行われるステップS408の処理に移行する。
ステップS408では、WRDMACb232は、バス115を介し、DRAM107に対して、ステップS406でマッチング処理部203が算出したベクトル値255を、グリッド302のベクトルデータ244として書き込む。ただし、WRDMACb232は、ステップS407において低コントラスト、低ピーク、繰り返しパターンの何れかであると判定がされている場合は、そのベクトルデータ244は無効なデータであること示すフラグ情報も併せて書き込む。
以上が、図4のフローチャートにおけるグリッド分割から動きベクトルの検出までの大まかな流れである。なお、図4のフローチャートでは、1フレーム分の処理を示しているが、動きベクトル検出部120とデータ転送部105は、毎フレームに対して同様の処理を行い、毎フレームで動きベクトルを検出する。
ここで、図4に示したフローチャートの処理が、例えば図3に示した全てのグリッドについて行われることを想定した場合、例えば図7で説明するような問題が生ずることになる。
図7は、前述の図3と同様に、フレーム画像1401を複数のグリッドに分割し、各グリッドで特徴点を取得してテンプレート領域とサーチ領域が設定された例を示している。図7の例えばグリッド1402−1では、特徴点1403−1を中心としたテンプレート領域1404−1とサーチ領域1405−1が設定されている。ここで、図7の全てのグリッドについて前述したような動きベクトル検出のための処理を行なった場合、前述したDRAM107に格納されたフレーム画像1401のデータを、各グリッドの単位に分割して読み出すためのメモリアクセスが発生することになる。さらに、各グリッドの画像データに対して、ベクトル検出のためのテンプレートマッチングに使用する画像データを出力するためのメモリアクセスが発生する。また、テンプレートマッチングの際には、特徴点を中心としたテンプレート領域とサーチ領域を読み出すためにメモリアクセスが発生する。このように、全てのグリッドの処理を行うようにした場合には、メモリアクセスが頻繁に発生し、したがって、ベクトル検出処理のためのメモリアクセスにより、メモリ・バスの使用帯域が多く占有されてしまう虞がある。
一方、ベクトル検出処理の際のメモリアクセスを減らすために、例えば画像データをメモリからグリッド単位で読み出す個数を間引くことも考えられるが、グリッド単位で読み出す個数を単純に間引いた場合、特徴点が存在するグリッドまで間引かれる虞がある。例えば、図7のグリッド1402−2を例に挙げて説明する。図7のグリッド1402−2では、特徴点1403−2を中心としたテンプレート領域1404−2とサーチ領域1405−2が設定されることになる。ここで、例えば、グリッド1402−2の下側に隣接したグリッド1402−3が間引き対象のグリッドであった場合、そのグリッド1402−3の画像データはメモリから読み出されないことになる。そして、グリッド1402−2の特徴点1403−2が、例えばグリッド1402−2の下端部近傍に存在していたとすると、テンプレート領域1404−2及びサーチ領域1405−2は、グリッド1402−2の範囲外の領域1406も含むことになる。しかしながら、この領域1406は、間引きされたグリッド1402−3の領域であり、画像データは存在しないため、テンプレートマッチングの際の相関演算が行えなくなってしまう。このように相関演算が出来ずにテンプレートマッチングが行えない場合、ベクトル検出の精度は低下してしまうことになる。
<第1の実施形態>
以下、メモリアクセスを減らしてメモリ・バスの使用帯域の占有率を削減しつつ、相関演算に使用するデータが存在しなくなることを防止してベクトル検出の精度の低下を防ぐことを可能とする第1の実施形態の画像処理装置について説明する。第1の実施形態の画像処理装置は、動きベクトルの検出のためのテンプレートマッチングの際に、DRAM107から読み出すグリッドを選択(選定)するようにしている。
図8〜図11を参照して、第1の実施形態の画像処理装置におけるベクトル検出部120の詳細な構成とデータ転送部105の詳細な動作について説明する。
図8は、第1の実施形態のベクトル検出部120の概略構成と、データ転送部105の複数のDMACと、データ転送部105のDMACによるDRAM107とベクトル検出部120との間のデータ転送の説明に用いる図である。前述の図2の例と同様に、図8には、データ転送部105のDMACの動作説明のために、DRAM107と、そのDRAM107に書き込みと読み出しがなされるデータ例も示している。また、図8において、前述の図2と同じ構成要素には図2と同一の指示符号を付し、それらの詳細な説明については省略する。
図8において、第1の実施形態のベクトル検出部120は、前述の図2に示したマッチング用画像生成部201、特徴点算出部202、マッチング処理部203、精度判定部204に加え、読出しグリッド選択部705を有している。以下、読出しグリッド選択部705を「グリッド選択部705」と表記する。グリッド選択部705には、特徴点算出部202が前フレームにおいてグリッド毎に求めて保持している特徴点情報751と、精度判定部204が前フレームにおいてグリッド毎に求めて保持している判定情報257とが入力される。
図9には、グリッド選択部705におけるグリッド選択処理から、データ転送部105によるグリッド読み出し処理、読み出されたグリッドを用いた動きベクトル検出までの処理のフローチャートを示す。以下、図9のフローチャートを参照しながら、図8に示したベクトル検出部120の構成とデータ転送部105におけるデータ転送動作について説明する。
図9のステップS801において、グリッド選択部705は、特徴点算出部202が保持する前フレームのグリッド毎の特徴点情報751と、精度判定部204が保持する前フレームのグリッド毎の判定情報257とを取得する。そして、グリッド選択部705は、それら前フレームのグリッド毎の特徴点情報751と判定情報257とに基づいて、RDDMACa221が現フレームの画像データ241から読み出すグリッドを選択する。
以下、グリッド選択部705が、前フレームのグリッド毎の特徴点情報751と判定情報257とに基づいて、現フレームの画像データ241から読み出すグリッドを選択する処理について説明する。
図10は、フレーム画像を分割した複数のグリッドのうち一部のグリッドを拡大して示した図であり、グリッドの特徴点とテンプレート領域及びサーチ領域の関係を説明するための図である。図10に示すように、グリッド900では、特徴点903が取得され、また、その特徴点903に基づいてテンプレート領域904とサーチ領域905が決定されている。また、図10において、グリッド900の水平方向のサイズはGLID_Xで垂直方向のサイズはGLID_Yで表され、サーチ領域905の水平方向のサイズはSLXで垂直方向のサイズはSLYで表されている。
グリッド選択部705は、グリッド開始座標902を原点(0,0)とし、グリッド900内の特徴点903の座標を特徴点座標(PX,PY)とする。なお、ここでは特徴点座標(PX,PY)等の各座標は、グリッド開始座標902である原点(0,0)からの相対座標であるとして説明する。また、グリッド選択部705は、テンプレート領域読み出し開始座標906として座標(SX0,SY0)を設定し、テンプレート領域読み出し終了座標907として座標(SX1,SY1)を設定する。テンプレート領域読み出し開始座標906は、テンプレート領域904によりサーチ領域905内のサーチが開始される際に、そのテンプレート領域904の左上端座標が配置されることになる座標であり、サーチ領域905の左上端座標と一致している。また、テンプレート領域読み出し終了座標907は、サーチ領域905内をテンプレート領域904でサーチし終わる際に、そのテンプレート領域904の右下端座標が配置されることになる座標であり、サーチ領域905の右下端座標と一致している。このため、テンプレート領域読み出し開始座標906からテンプレート領域読み出し終了座標907までで表される矩形領域は、実際にはサーチ領域905の矩形領域と一致している。グリッド選択部705は、それらテンプレート領域読み出し開始座標(SX0,SY0)を式(4)の演算により求め、テンプレート領域読み出し終了座標(SX1,SY1)を式(5)の演算により求める。
(SX0,SY0)=(PX−SLX/2,PY−SLX/2) ・・・式(4)
(SX1,SY1)=(PX+SLX/2,PY+SLX/2) ・・・式(5)
そして、グリッド選択部705は、グリッド900において式(6)の条件が満たされている場合、そのグリッド900を、テンプレートマッチング処理の際に現フレームから読み出しの対象となるグリッドとして選択する。以下、テンプレートマッチング処理の際に現フレームから読み出しの対象となるグリッドを「読み出し対象グリッド」と表記する。
0≦SX0,SX1≦GLID_X
0≦SY0,SY1≦GLID_Y ・・・式(6)
図11は、前フレーム及び現フレームの各グリッドと、前フレームで取得された特徴点と、その特徴点に基づいて決定されるテンプレート領域及びサーチ領域の関係を示す図である。図11中の斜線で示されるグリッドが、前フレームで特徴点が取得されたグリッドであり、現フレームで読み出し対象グリッドとなる可能性があるグリッドである。なお、図11中の斜線で示されていないグリッドは、前フレームにおいて特徴点が存在せずに取得できなかったグリッドであり、これらのグリッドは現フレームで読み出し対象グリッドから除外される。グリッド選択部705は、現フレームの読み出し対象グリッドとなる可能性があるグリッドについて、式(6)の条件を満たすか否かの判定を行う。
図11の現フレームの読み出し対象グリッドとなる可能性があるグリッドのうち、例えばグリッド1002−1は、サーチ領域1005−1が式(6)の条件を満たしており、そのグリッド1002−1内に包含されている。このため、グリッド選択部705は、現フレームにおけるグリッド1002−1を、読み出し対象グリッドとして選択する。一方、図11の現フレームの読み出し対象グリッドとなる可能性があるグリッドのうち、例えばグリッド1002−2は、サーチ領域1005−2が式(6)の条件を満たさず、そのグリッド1002−2内からはみ出している。このため、グリッド選択部705は、現フレームにおけるグリッド1002−2については読み出し対象グリッドから除外する。
また、グリッド選択部705は、前フレームで求められた精度判定情報757に基づいて、読み出し対象グリッドとして選択されたグリッドの中で、更に読み出し対象グリッドから除外するグリッドを決定する。具体的には、グリッド選択部705は、低コントラスト、低ピーク、繰り返しパターンの何れかに該当するグリッドについては、読み出し対象グリッドから外す。すなわち、グリッド選択部705は、式(6)の条件を満たして読み出し対象グリッドとして選択された各グリッドに対して、更に、低コントラスト、低ピーク、繰り返しパターンの何れかにも該当しないグリッドのみを選ぶような絞りこみを行う。ここでは、式(6)の条件を満たして読み出し対象グリッドとして選択された各グリッドに対して更に絞り込みを行う例を挙げたが、図11の読み出し対象グリッドとなる可能性があるグリッドの中から、先ず精度判定情報757に基づく選択を行ってもよい。この場合、図11の読み出し対象グリッドとなる可能性があるグリッドの中から精度判定情報757に基づいて選択された各グリッドに対し、更に式(6)の条件を満たすグリッドのみに絞り込むような選択が行われる。またここでは、精度判定情報757を読み出し対象グリッドの選択に用いる例を挙げたが、精度判定情報757を用いずに特徴点情報751のみに基づいて選択を行ってもよい。
このように、グリッド選択部705は、ステップS801において、前フレームの特徴点情報751及び精度判定情報757、又は、前フレームの特徴点情報751に基づいて、現フレームで読み出し対象となるグリッドを選択する。グリッド選択部705は、グリッド選択情報761を、RDDMACa221に送る。ステップS801の後、グリッド選択部705は、ステップS802に処理を進める。
ステップS802では、グリッド選択部705は、ステップS801で選択された読み出し対象グリッドの個数を判定する。ここで、グリッド選択部705には、グリッド個数の閾値として、ベクトル検出の精度を一定以上維持するため必要な最小個数が設定されている。グリッド選択部705は、ステップS802において、ステップS801で選択された読み出し対象グリッドの個数が、閾値として設定されている最小個数よりも多いか否かを判定する。ステップS802において、読み出し対象グリッドの個数が閾値の最小個数より多いと判定された場合には、データ転送部105のRDDMACa221が行うステップS804の処理に移行する。一方、グリッド選択部705は、読み出し対象グリッドの個数が閾値の最小個数以下であると判定した場合には、ステップS803に処理を進める。
ステップS803では、グリッド選択部705は、読み出し対象グリッドの個数が閾値の最小個数よりも多くなるように、更に読み出し対象グリッドを追加設定する。具体的には、グリッド選択部705は、読み出し対象グリッド以外のグリッドからランダムに選んだグリッドを、読み出し対象グリッドとして追加する。また、グリッドの追加方法の他の例として、グリッド選択部705は、ステップS801の選択処理の際に、読み出し対象グリッドから外されたグリッドの周囲のグリッドを、追加するようにしてもよい。グリッド選択部705は、ステップS803において、読み出し対象グリッド数がステップS802で用いた閾値の最小個数に達するまで、グリッドの追加処理を行う。ステップS803の後は、データ転送部105のRDDMACa221にて行われるステップS804の処理に移行する。
ステップS804では、RDDMACa221は、バス115を介し、DRAM107に格納されている画像データ241から、読み出し対象グリッドの画像データを読み出す。RDDMACa221により読み出されたグリッドの画像データ241は、マッチング用画像生成部201と特徴点算出部202に送られる。ステップS804の後は、特徴点算出部202とマッチング用画像生成部201とマッチング処理部203と精度判定部204にて行われるステップS805の処理に移行する。
ステップS805では、前述の図4のステップS402〜S408で説明したのと同様の処理が行われる。ただし、第1の実施形態の場合、特徴点算出部202とマッチング用画像生成部201では、ステップS801で選択されてステップS804で読み出されたグリッドのみに対して、前述したような特徴点算出処理とマッチング用画像生成処理が行われる。マッチング処理部203では、ステップS801で選択されてステップS804で読み出されたグリッドのみに対して、現フレームのサーチ領域と前フレームのテンプレート領域を用いたテンプレートマッチング処理が行われる。そして、マッチング処理部203からは、ステップS801で選択されてステップS804で読み出されたグリッドのみから検出されたベクトル値255が出力される。また、精度判定部802では、マッチング処理部203で求められた相関値に基づいて、前述した精度判定処理が行われる。このように、ステップS805では、前フレームと現フレームの各グリッドのうち、グリッド選択部705により選択されたグリッドについてのみ、テンプレートマッチングによる動きベクトル検出処理が行われることになる。ステップS805の後は、グリッド選択部705にて行われるステップS806の処理に移行する。
ステップS806では、グリッド選択部705は、ベクトル検出の処理が完了したグリッドの個数を判定する。このステップS806の場合、グリッド選択部705は、このグリッドの個数の閾値として、ベクトル検出の精度を維持するために十分な最大個数が設定されている。グリッド選択部705は、ステップS806において、ベクトル検出の完了したグリッドの個数が、閾値として設定されている最大個数よりも多いか否かを判定する。ステップS806において、グリッド選択部705は、ベクトル検出の完了した個数が、閾値の最大個数より多いと判定した場合には、ステップS807に処理を進める。一方、ステップS806において、ベクトル検出の完了した個数が、閾値の最大個数以下であると判定された場合には、データ転送部105のRDDMACa221にて行われるステップS804に処理が戻る。ステップS804の処理に戻ると、次の読み出し対象グリッドの画像データの読み出しが行われる。
ステップS807の処理に進むと、グリッド選択部705は、ベクトル検出を行うべき全てのフレームについての処理が完了したか否か判定する。そして、グリッド選択部705は、全てのフレームについての処理が完了したと判定した場合には、図9のフローチャートの処理を終了し、一方、完了していないと判定した場合にはステップS801に処理を戻す。ステップS801の処理に戻ると、次のフレームに対する処理が行われることになる。
以上説明したように、第1の実施形態によれば、グリッド選択部705が、前フレームの特徴点情報751及び精度判定情報757、又は、前フレームの特徴点情報751に基づいて、現フレームで読み出し対象となるグリッドを選択している。そして、ベクトル検出部120では、その選択されたグリッドのみに対して、現フレームと前フレームの画像データを用いたテンプレートマッチング処理による動きベクトル検出が行われる。したがって、第1の実施形態においては、動きベクトル検出の際に、全グリッドの処理を行う場合のような頻繁なメモリアクセスは発生せず、メモリ・バスの使用帯域の占有率を削減可能である。また、第1の実施形態においては、単純にグリッドを間引いた場合のようにテンプレートマッチング用の画像データが存在しなくなってベクトル検出の精度が低下してしまうようなことはなく、ベクトル検出精度を維持できる。
<第2の実施形態>
以下、第2の実施形態の画像処理装置について説明する。
第2の実施形態の画像処理装置は、現フレームの読み出し対象となるグリッドを選択する際に、第1の実施形態で説明した前フレームの特徴点情報751及び精度判定情報757に加えて、前フレームのグリッドで求められベクトル値情報1155をも使用する。前フレームのグリッドのベクトル値情報1155は、マッチング処理部203が前フレームの処理で求めて内部メモリやレジスタに格納されており、このベクトル値情報1155がグリッド選択部705に送られる。
以下、第2の実施形態の画像処理装置におけるベクトル検出部120の詳細な構成とデータ転送部105の詳細な動作について、図12〜図14を参照しながら説明する。
図12は、第2の実施形態のベクトル検出部120の概略構成と、データ転送部105の複数のDMACと、データ転送部105のDMACによるDRAM107とベクトル検出部120との間のデータ転送の説明に用いる図である。前述の図2の例と同様に、図12には、データ転送部105のDMACの動作説明のために、DRAM107と、そのDRAM107に書き込みと読み出しがなされるデータ例も示している。また、図12において、前述の図8と同じ構成要素には図8と同一の指示符号を付し、それらの詳細な説明については省略する。
図12において、第2の実施形態のベクトル検出部120は、前述の図2に示したマッチング用画像生成部201、特徴点算出部202、マッチング処理部203、精度判定部204と、前述の図8に示したグリッド選択部705を有している。ただし、第2の実施形態の場合のグリッド選択部705には、前述した前フレームの特徴点情報751及び判定情報257と、マッチング処理部203が前フレームで求めて保持しているベクトル値情報1155とが入力される。
図13は、現フレームと前フレームの複数のグリッドのうち一部のグリッドを拡大して示した図であり、グリッドの特徴点とテンプレート領域及びサーチ領域の関係説明に用いる図である。なお、図13では、読み出し対象グリッドとしてグリッド1220を例に挙げ、そのグリッド1220内に特徴点903が有り、その特徴点903に基づいてテンプレート領域904とサーチ領域905が設定されているとする。図13においても前述の図10で説明したのと同様に、読み出し対象グリッド1220の水平方向のサイズはGLID_X、垂直方向のサイズはGLID_Y、サーチ領域905の水平方向のサイズはSLX、垂直方向のサイズはSLYとする。また、前述の図10と同様に、グリッド選択部705は、グリッド開始座標902を原点(0,0)とし、グリッド1220内の特徴点903の座標を特徴点座標(PX,PY)とする。同様に、グリッド選択部705は、テンプレート領域読み出し開始座標906を座標(SX0,SY0)とし、テンプレート領域読み出し終了座標907を座標(SX1,SY1)とする。
さらに、第2の実施形態の場合は、グリッド選択部705は、テンプレート領域右上端座標1208として座標(SX2,SY2)を設定し、テンプレート領域左下端座標1209として座標(SX3,SY3)を設定する。テンプレート領域右上端座標1208は、テンプレート領域904がサーチ領域905内の右上端に位置したときにテンプレート領域904の右上端座標が配置されることになる座標であり、サーチ領域905の右上端座標と一致している。テンプレート領域左下端座標1209は、テンプレート領域904がサーチ領域905内の左下端に位置したときにテンプレート領域904の左下端座標が配置されることになる座標であり、サーチ領域905の左下端座標と一致している。このため、これら各座標906、1208、1209、907で表される矩形領域は、実際にはサーチ領域905の矩形領域と一致している。
また、第2の実施形態では、図13に示すように、読み出し対象グリッド1220の各辺に隣接した周囲のグリッドのうち、図中上側に隣接するグリッドを「グリッド1221」とし、図中下側に隣接するグリッドを「グリッド1223」とする。さらに、グリッド開始座標902のグリッド1220の各辺に隣接した周囲のグリッドのうち、図中で左側に隣接するグリッドを「グリッド1222」とし、右側に隣接するグリッドを「グリッド1223」とする。
詳細については後述するが、第2の実施形態の場合のグリッド選択部705は、読み出し対象グリッド1220に隣接した四つのグリッド1221〜1223が、読み出し対象グリッドの候補になるか否かを判定する。グリッド選択部705は、候補になると判定したグリッドを、読み出し対象グリッドとして追加するようなグリッド選択処理を行う。第2の実施形態のグリッド選択部705は、このような読み出し対象グリッドを追加するグリッド選択処理を行うために、以下に説明する各処理を行う。
第2の実施形態のグリッド選択部705は、前述した第1の実施形態と同様に、テンプレート領域読み出し開始座標(SX0,SY0)を式(4)により求め、テンプレート領域読み出し終了座標(SX1,SY1)を式(5)により求める。また、第2の実施形態の場合、グリッド選択部705は、テンプレート領域右上端座標(SX2,SY2)を式(7)により求め、テンプレート領域左下端座標(SX3,SY3)を式(8)により求める。
(SX2,SY2)=(PX+SLX/2,PY−SLX/2) ・・・式(7)
(SX3,SY3)=(PX−SLX/2,PY+SLX/2) ・・・式(8)
ここで、第2の実施形態において、マッチング処理部203が前フレームのグリッド1220で求めたベクトル値情報1155で表されるベクトルの水平方向の大きさをVLX、垂直方向の大きさをVLYとする。グリッド選択部705は、前述した四つの各座標(SX0,SY0)、(SX1,SY1)、(SX2,SY2)、(SX3,SY3)に対し、ベクトルの大きさVLX、VLYをそれぞれ加算する。そして、グリッド選択部705は、それら四つの座標(SX0,SY0)〜(SX3,SY3)にVLX、VLYを各々加算した座標を、(SVX0,SVY0)、(SVX1,SVY1)、(SVX2,SVY2)、(SVX3,SVY3)とする。なお、図13には、前述した四つの各座標のうち、テンプレート領域読み出し開始座標(SX0,SY0)のみを例に挙げ、その座標(SX0,SY0)にVLX、VLYを加算した座標1306(SVX0,SVY0)を示している。各座標(SVX0,SVY0)、(SVX1,SVY1)、(SVX2,SVY2)、(SVX3,SVY3)は、式(9)〜式(12)で表すことができる。
(SVX0,SVY0)=(SX0+VLX,SY0+VLY) ・・・式(9)
(SVX1,SVY1)=(SX1+VLX,SY1+VLY) ・・・式(10)
(SVX2,SVY2)=(SX2+VLX,SY2+VLY) ・・・式(11)
(SVX3,SVY3)=(SX3+VLX,SY3+VLY) ・・・式(12)
図14には、第2の実施形態のグリッド選択部705におけるグリッド選択処理のフローチャートを示す。以下、図14のフローチャートを参照しながら、第2の実施形態の場合のグリッド選択部705が読み出し対象グリッドを追加するグリッド選択処理を行う際の処理の流れを説明する。
グリッド選択部705は、先ず図14のステップS1301として、マッチング処理部203から、前フレームのグリッド1220で求めたベクトル値情報1155を取得する。このとき取得されるベクトル値情報1155は、ベクトルの水平方向の大きさVLXと垂直方向の大きさVLYを示す情報である。ステップS1301の後、グリッド選択部705は、ステップS1302に処理を進める。
ステップS1302では、グリッド選択部705は、ステップS1301で取得したベクトルの水平方向の大きさVLXと垂直方向の大きさVLYとを比較する。具体的には、グリッド選択部705は、VLXの絶対値がVLYの絶対値以上であるか否かを判定する。そして、グリッド選択部705は、VLXの絶対値がVLYの絶対値以上である場合、読み出し対象グリッド1220に対して水平方向に隣接するグリッド1222,1224を、読み出し対象グリッドの候補として残し、ステップS1303に処理を進める。一方、グリッド選択部705は、VLXの絶対値がVLYの絶対値より小さい場合、読み出し対象グリッド1220に対して垂直方向に隣接するグリッド1221,1223を、読み出し対象グリッドの候補として残し、ステップS1304に処理を進める。
ステップS1303の処理に進むと、グリッド選択部705は、VLXがゼロ(0)より小さいか否かを判定する。そして、グリッド選択部705は、VLXがゼロより小さい場合、読み出し対象グリッド1220の水平方向左側に隣接するグリッド1222を読み出し対象グリッドの候補として残し、ステップS1305に処理を進める。一方、グリッド選択部705は、VLXがゼロ以上である場合、読み出し対象グリッド1220の水平方向右側に隣接するグリッド1224を読み出し対象グリッドの候補として残し、ステップS1306に処理を進める。
ステップS1305の処理に進むと、グリッド選択部705は、テンプレート領域読み出し開始座標906のSY0に対してベクトルの大きさVLYを加算したSVY0が、ゼロ(0)以上であるか否かを判定する。さらに、グリッド選択部705は、テンプレート領域左下端座標1209のSY3に対してベクトルの大きさVLYを加算したSVY3が、グリッド1220の垂直方向のサイズGLID_Y以下であるか否かを判定する。そして、グリッド選択部705は、SVY0がゼロ以上で且つSVY3がGLID_Y以下であると判定した場合には、ステップS1310に処理を進める。ステップS1310では、グリッド選択部705は、読み出し対象グリッド1220の水平方向左側に隣接するグリッド1222を読み出し対象グリッドとして追加する。一方、グリッド選択部705は、ステップS1305において、SVY0がゼロ以上で且つSVY3がGLID_Y以下でないと判定した場合には、グリッド選択処理を終了する。
ステップS1306の処理に進んだ場合、グリッド選択部705は、テンプレート領域右上端座標1208のSY2に対してベクトルの大きさVLYを加算したSVY2が、ゼロ(0)以上であるか否かを判定する。さらに、グリッド選択部705は、テンプレート領域右上端座標1208のSY2に対してベクトルの大きさVLYを加算したSVY2が、グリッド1220の垂直方向のサイズGLID_Y以下であるか否かを判定する。そして、グリッド選択部705は、SVY2がゼロ以上で且つSVY2がGLID_Y以下であると判定した場合には、ステップS1311に処理を進める。ステップS1311では、グリッド選択部705は、読み出し対象グリッド1220の水平方向右側に隣接するグリッド1224を読み出し対象グリッドとして追加する。一方、グリッド選択部705は、ステップS1306において、SVY2がゼロ以上で且つSVY2がGLID_Y以下でないと判定した場合には、グリッド選択処理を終了する。
ステップS1304の処理に進んだ場合、グリッド選択部705は、ベクトルの垂直方向の大きさVLYがゼロ(0)より小さいか否かを判定する。そして、グリッド選択部705は、VLYがゼロより小さい場合、読み出し対象グリッド1220の垂直方向上側に隣接するグリッド1221を読み出し対象グリッドの候補として残し、ステップS1307に処理を進める。一方、グリッド選択部705は、VLYがゼロ以上である場合、読み出し対象グリッド1220の垂直方向下側に隣接するグリッド1223を読み出し対象グリッドの候補として残し、ステップS1308に処理を進める。
ステップS1307の処理に進むと、グリッド選択部705は、テンプレート領域読み出し開始座標906のSX0に対してベクトルの大きさVLXを加算したSVX0が、ゼロ(0)以上であるか否かを判定する。さらに、グリッド選択部705は、テンプレート領域左下端座標1209のSX3に対してベクトルの大きさVLXを加算したSVX3が、グリッド1220の水平方向のサイズGLID_X以下であるか否かを判定する。そして、グリッド選択部705は、SVX0がゼロ以上で且つSVX3がGLID_X以下であると判定した場合には、ステップS1312に処理を進める。ステップS1312では、グリッド選択部705は、読み出し対象グリッド1220の垂直方向上側に隣接するグリッド1221を読み出し対象グリッドとして追加する。一方、グリッド選択部705は、ステップS1307において、SVX0がゼロ以上で且つSVX3がGLID_X以下でないと判定した場合には、グリッド選択処理を終了する。
ステップS1308の処理に進んだ場合、グリッド選択部705は、テンプレート領域左下端座標1209のSX3に対してベクトルの大きさVLXを加算したSVX3が、ゼロ(0)以上であるか否かを判定する。さらに、グリッド選択部705は、テンプレート領域読み出し終了座標907のSX1に対してベクトルの大きさVLXを加算したSVX1が、グリッド1220の水平方向のサイズGLID_X以下であるか否かを判定する。そして、グリッド選択部705は、SVX3がゼロ以上で且つSVX1がGLID_X以下であると判定した場合には、ステップS1313に処理を進める。ステップS1313では、グリッド選択部705は、読み出し対象グリッド1220の垂直方向下側に隣接するグリッド1223を読み出し対象グリッドとして追加する。一方、グリッド選択部705は、ステップS1308において、SVX3がゼロ以上で且つSVX1がGLID_X以下でないと判定した場合には、グリッド選択処理を終了する。
以上説明したように、第2の実施形態によれば、読み出し対象グリッド1220の周囲のグリッド1221〜1224のうち、グリッド1220で求められたベクトルの方向と大きさに対応したグリッドが、読み出し対象グリッドとして追加されることになる。これにより、グリッド選択部705は、例えばサーチの際にテンプレート領域904が読み出し対象グリッド1220からはみ出してしまう場合でも、テンプレートマッチング用画像データが存在していることになる。したがって、第2の実施形態によれば、取得できるベクトル数が増加することになるため、ベクトル検出精度を向上させることができる。また、第2の実施形態においても、第1の実施形態と同様に、全グリッドの処理を行う場合のような頻繁なメモリアクセスは発生せず、メモリ・バスの使用帯域の占有率を削減可能である。
なお、第2の実施形態では、前述した四つの座標906,907,1209,1208とベクトルの大きさに基づいて、グリッド1220の周囲のグリッド1221〜1224の追加判定を行う例を挙げたが、それとは異なる方法による判定も可能である。例えば、前述したテンプレート領域読み出し開始座標906が読み出し対象グリッド1220の上端から予め定められた規定の距離内になっている場合には、垂直方向上側に隣接するグリッド1221を読み出し対象グリッドとして追加する。例えば、テンプレート領域読み出し開始座標906が読み出し対象グリッド1220の左端から規定の距離内にある場合には、水平方向左側に隣接するグリッド1222を読み出し対象グリッドとして追加する。例えば、テンプレート領域読み出し終了座標907が読み出し対象グリッド1220の下端から規定の距離内にある場合には、垂直方向下側に隣接するグリッド1223を読み出し対象グリッドとして追加する。例えば、テンプレート領域読み出し終了座標907が読み出し対象グリッド1220の右端から規定の距離内にある場合には、水平方向右側に隣接するグリッド1224を読み出し対象グリッドとして追加する。例えば、テンプレート領域読み出し開始座標906が読み出し対象グリッド1220の上端左端から規定の距離内にある場合、グリッド1221と1222、更に斜め左上に隣接するグリッドを読み出し対象グリッドとして追加してもよい。例えば、テンプレート領域読み出し終了座標907が読み出し対象グリッド1220の下端右端から規定の距離内にある場合、グリッド1223と1224、更に斜め右下に隣接するグリッドを読み出し対象グリッドとして追加してもよい。例えば、テンプレート領域右上端座標1208が読み出し対象グリッド1220の上端右端から規定の距離内にある場合、グリッド1221と1224、更に斜め右上に隣接するグリッドを読み出し対象グリッドとして追加してもよい。例えば、テンプレート領域左下端座標1209が読み出し対象グリッド1220の下端左端から規定の距離内にある場合、グリッド1222と1223、更に斜め左下に隣接するグリッドを読み出し対象グリッドとして追加してもよい。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読み出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
また、本実施形態では、画像処理装置の一例としてデジタルカメラを挙げたが、タブレット端末、スマートフォン、電子ゲーム機、ドライブレコーダ、ナビゲーション装置、パーソナルコンピュータなど様々な情報処理装置であってもよい。この場合の情報処理装置は、その装置自身に搭載されているカメラ機能により撮影された画像、又は、デジタルカメラ等により撮影された画像を取得し、その画像データに対して前述した実施形態に係る各処理を実行する。また、情報処理装置における実施形態に係る処理は、内部のマイクロコンピュータ等においてコンピュータプログラムを実行することにより実現されてもよい。実施形態に係る処理を実現するためのコンピュータプログラムは、記録媒体や各種ネットワークや通信回線を介して情報処理装置に提供される。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
101 結像光学系、102 撮像素子、103 A/D変換部、104 画像処理部、105 データ転送部、106 メモリ制御部、107 DRAM(メモリ)、108 不揮発性メモリ制御部、109 ROM(不揮発性メモリ)、110 表示制御部、111 表示部、112 CPU、113 操作部、201 テンプレートマッチング用画像生成部、202 特徴点算出部、203 テンプレートマッチング処理部、204 精度判定部、221 RDDMACa、222 RDDMACb、231 WRDMACa、232 WRDMACb、501 特徴フィルタ部、502 特徴評価部、503 特徴点決定部、705 読出しグリッド選択部

Claims (10)

  1. メモリに格納された第1の画像と第2の画像をそれぞれ複数のグリッド領域毎に分割して読み出すための読み出し手段と、
    前記第1の画像の前記グリッド領域毎に画像の特徴点を算出する算出手段と、
    前記第1の画像の前記グリッド領域毎に算出された特徴点に基づいて、前記第1,第2の画像の前記グリッド領域毎に矩形領域を設定する設定手段と、
    前記第2の画像の前記複数のグリッド領域のうち、グリッド領域の内に前記矩形領域が収まるグリッド領域のみを選択し、前記読み出し手段に対して前記選択したグリッド領域の画像を読み出させる選択手段と、
    前記第2の画像で前記選択されたグリッド領域の前記矩形領域と、前記第2の画像で前記選択されたグリッド領域に対応した、前記第1の画像のグリッド領域の前記矩形領域との間の相関を求め、前記相関に基づいて所定の処理を行う処理手段と
    を有することを特徴とする画像処理装置。
  2. 前記算出手段は、前記第1の画像のグリッド領域の画素毎に特徴値を算出する処理を行い、前記第1の画像の複数のグリッド領域の中で前記画素毎の特徴値を算出できたグリッド領域についてのみ、前記画素毎の特徴値の中で最も大きい特徴値を前記特徴点として取得し、
    前記設定手段は、前記第1,第2の画像の前記複数のグリッド領域のうち、前記第1の画像で前記特徴点が算出されたグリッド領域に対応したグリッド領域のみに対して、前記特徴点を中心とした前記矩形領域の設定を行い、
    前記選択手段は、前記第2の画像の前記複数のグリッド領域のうち、前記第1の画像で前記特徴点が算出されたことで前記矩形領域が設定されたグリッド領域の中から、グリッド領域の内に前記矩形領域が収まるグリッド領域のみを前記選択することを特徴とする請求項1に記載の画像処理装置。
  3. 前記処理手段にて求められた前記相関に基づいて、前記第1の画像の前記グリッド領域の前記矩形領域の画像が、前記所定の処理に適する画像であるか否かを判定する判定手段を有し、
    前記選択手段は、前記第2の画像で前記グリッド領域の内に前記矩形領域が収まっているグリッド領域の中で、更に前記判定手段の判定により前記第1の画像で前記矩形領域の画像が前記所定の処理に適する画像であると判定されているグリッド領域に対応したグリッド領域のみを選択することを特徴とする請求項1又は2に記載の画像処理装置。
  4. 前記選択手段は、前記選択したグリッド領域の個数を判定し、前記個数が所定の最小個数より少ないときには、前記第2の画像の各グリッド領域の中で前記選択されていないグリッド領域から、新たなグリッド領域を選択することを特徴とする請求項1〜3のいずれか1項に記載の画像処理装置。
  5. 前記選択手段は、前記選択したグリッド領域の個数を判定し、前記個数が所定の最大個数に達したときには、前記グリッド領域の選択を止めることを特徴とする請求項1〜4のいずれか1項に記載の画像処理装置。
  6. 前記選択手段は、前記第2の画像で前記選択されたグリッド領域の内で、前記矩形領域の端部とグリッド領域の端部との間の距離が所定の距離内であるときには、前記第2の画像の各グリッド領域の中で前記選択されていないグリッド領域から、前記所定の距離内となっている前記端部の側に隣接するグリッド領域を、新たに選択したグリッド領域として追加することを特徴とする請求項1〜5のいずれか1項に記載の画像処理装置。
  7. 前記第1の画像と第2の画像は時間軸で隣接した画像で、前記第1の画像に対して前記第2の画像が時間軸で後であり、
    前記処理手段は、前記相関に基づく所定の処理として、前記第1,第2の画像の前記矩形領域の間の動きベクトルを検出することを特徴とする請求項1〜6のいずれか1項に記載の画像処理装置。
  8. 前記選択手段は、前記処理手段にて検出された動きベクトルの方向と大きさに基づいて、前記第2の画像の各グリッド領域の中で前記選択されていないグリッド領域から、前記動きベクトルが検出されたグリッド領域に隣接するグリッド領域を、新たに選択するグリッド領域として追加することを特徴とする請求項7に記載の画像処理装置。
  9. 読み出し手段が、メモリに格納された第1の画像と第2の画像をそれぞれ複数のグリッド領域毎に分割して読み出すためのステップと、
    算出手段が、前記第1の画像の前記グリッド領域毎に画像の特徴点を算出するステップと、
    設定手段が、前記第1の画像の前記グリッド領域毎に算出された特徴点に基づいて、前記第1,第2の画像の前記グリッド領域毎に矩形領域を設定するステップと、
    選択手段が、前記第2の画像の前記複数のグリッド領域のうち、グリッド領域の内に前記矩形領域が収まるグリッド領域のみを選択し、前記読み出し手段に対して前記選択したグリッド領域の画像を読み出させるステップと、
    処理手段が、前記第2の画像で前記選択されたグリッド領域の前記矩形領域と、前記第2の画像で前記選択されたグリッド領域に対応した、前記第1の画像のグリッド領域の前記矩形領域との間の相関を求め、前記相関に基づいて所定の処理を行うステップと
    を含むことを特徴とする画像処理方法。
  10. コンピュータを、請求項1〜8のいずれか1項に記載の画像処理装置の各手段として機能させるためのプログラム。
JP2015179787A 2015-09-11 2015-09-11 画像処理装置、画像処理方法、及びプログラム Active JP6576179B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015179787A JP6576179B2 (ja) 2015-09-11 2015-09-11 画像処理装置、画像処理方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015179787A JP6576179B2 (ja) 2015-09-11 2015-09-11 画像処理装置、画像処理方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2017054431A JP2017054431A (ja) 2017-03-16
JP6576179B2 true JP6576179B2 (ja) 2019-09-18

Family

ID=58316777

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015179787A Active JP6576179B2 (ja) 2015-09-11 2015-09-11 画像処理装置、画像処理方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6576179B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7077115B2 (ja) * 2018-04-20 2022-05-30 キヤノン株式会社 画像処理装置、画像処理方法、及びプログラム
CN114638774B (zh) * 2020-12-01 2024-02-02 珠海碳云智能科技有限公司 图像数据处理方法及装置、非易失性存储介质
CN113514812B (zh) * 2021-09-14 2021-12-14 北京海兰信数据科技股份有限公司 一种岸基雷达杂波抑制处理方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4670630B2 (ja) * 2005-12-26 2011-04-13 ソニー株式会社 画像処理装置、画像処理方法、撮像装置および撮像方法
JP4775277B2 (ja) * 2007-02-07 2011-09-21 株式会社デンソー 画像処理装置及び画像処理方法
JP2008199658A (ja) * 2008-04-04 2008-08-28 Olympus Corp 画像処理装置及びその画像処理方法
JP5146575B2 (ja) * 2011-08-08 2013-02-20 カシオ計算機株式会社 画像処理装置及びプログラム

Also Published As

Publication number Publication date
JP2017054431A (ja) 2017-03-16

Similar Documents

Publication Publication Date Title
US10366504B2 (en) Image processing apparatus and image processing method for performing three-dimensional reconstruction of plurality of images
US9942477B2 (en) Image processing apparatus and method
JP6576179B2 (ja) 画像処理装置、画像処理方法、及びプログラム
US11153479B2 (en) Image processing apparatus, capable of detecting an amount of motion between images by tracking a point across one or more images, image capturing apparatus, image processing method, and storage medium
US10880457B2 (en) Image processing apparatus, image capturing apparatus, image processing method, and storage medium
US11196925B2 (en) Image processing apparatus that detects motion vectors, method of controlling the same, and storage medium
JP2012169701A (ja) 画像処理装置、画像処理方法及びプログラム
JP7077115B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP7039215B2 (ja) 画像処理装置、画像処理方法、およびプログラム
JP2018072941A (ja) 画像処理装置、画像処理方法、プログラム、記憶媒体
JP2019192048A (ja) 撮像装置
JP6556033B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP5953142B2 (ja) 画像処理装置及びそれを備えた撮像装置、画像処理方法、並びに画像処理プログラム
JP2018072895A (ja) 画像処理装置、画像処理方法及びプログラム
JP6381212B2 (ja) 撮像装置及びその制御方法
JP2018067058A (ja) 画像処理装置、画像処理方法、プログラム、記憶媒体
JP2010079414A (ja) プログラム、カメラおよび画像の輪郭抽出方法
JP2021108035A (ja) 画像処理装置、画像処理方法、及びプログラム
JP2018081640A (ja) 画像処理装置、画像処理方法、プログラム、記憶媒体
JP2018081641A (ja) 画像処理装置及びその制御方法、プログラム、記憶媒体
JP2017034608A (ja) 画像処理装置、画像処理方法及びプログラム
JP2021107976A (ja) 画像処理装置、画像処理方法、及びプログラム
JP4911621B2 (ja) 画像処理装置
JP2021044652A (ja) 動きベクトル検出装置及び動きベクトル検出方法
JP2021026311A (ja) 画像処理装置、画像処理方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180831

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190709

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190723

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190820

R151 Written notification of patent or utility model registration

Ref document number: 6576179

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151