<第1の実施形態>
図1には、第1の実施形態である画像処理装置100の概略構成を示す。本実施形態の画像処理装置100は、一例として、複数枚の画像の位置合わせなどの際に使用可能な動きベクトルを高精度に検出する装置である。複数枚の画像の位置合わせ処理は、例えば撮像装置により撮影された画像信号に対し、画像処理による手振れ補正等が行われる際に用いられる。本実施形態において、撮像装置により撮影された画像信号は、デジタルビデオカメラ等による動画像信号だけでなく、デジタルスチルカメラによる連続撮影等で得られた複数枚の静止画像信号であってもよい。以下の説明では、デジタルビデオカメラによる動画像の中の1枚の画像やデジタルスチルカメラで連続撮影された複数の静止画像の中の1枚の画像を、それぞれ区別せずに「フレーム」と呼ぶことにする。本実施形態の画像処理装置100では、動画像や連続撮影による複数の静止画像のように時間軸方向に連なる複数のフレームのうち近接した2枚のフレーム間の相関を求め、それら2枚のフレーム間の相関に基づいて動きベクトルを検出する。それら2枚のフレームは、動きベクトル検出に用いられるフレームであるため、時間軸上で近接したフレームであり、時間軸方向において相互に関連した或る程度の相関を有するフレームであるとする。近接した二つのフレームとは、隣接フレームだけでなく、1フレーム以上離れたフレームを含む。
図1に示す本実施形態の画像処理装置100は、画像入力部101と画像メモリ102と特徴点抽出部103と特徴点メモリ104とテンプレートマッチング部105と特徴点信頼度判定部106と動きベクトル検出部107とを有して構成されている。
画像入力部101(以下、入力部101と表記する。)には、デジタルスチルカメラやデジタルビデオカメラ等の撮像装置により撮影された画像信号が入力される。なお、以下の説明では、画像信号を単に「画像」と表記する。入力部101に入力された画像110は、特徴点抽出部103と画像メモリ102と特徴点信頼度判定部106とテンプレートマッチング部105に送られる。
画像メモリ102は、入力部101より供給された1フレーム分の画像又は複数フレーム分の画像を、一時的に記憶する。本実施形態では、画像メモリ102に記憶されたフレームの画像が第1の画像であり、以下の説明では基準画像111と表記する。また、本実施形態では、その基準画像111のフレームよりも時間軸上で後のフレームの画像(画像メモリ102に未だ記憶されていない画像)が第2の画像であり、以下の説明では参照画像112と表記する。参照画像112のフレームは、画像メモリ102から基準画像111のフレームが出力されたときに、入力部101から出力された画像110に相当する。そして、画像メモリ102は、一時的に記憶した基準画像111をテンプレートマッチング部105に出力する。なお、第1の実施形態では、参照画像112は基準画像111よりも時間軸上で例えば1フレーム後の画像となる例を挙げて説明するが、参照画像は基準画像よりも複数フレーム後の画像となされてもよく、これは後述の第2,第3の実施形態の例でも同様である。また、画像メモリ102に記憶されたフレーム画像が参照画像となされ、その参照画像のフレームよりも後のフレームが基準画像となされてもよく、このことは後述する第2,第3の実施形態の例でも同様である。
特徴点抽出部103(以下、抽出部103と表記する。)は、入力部101より供給された画像110から、画像の所定の特徴を表す特徴点を抽出する。詳細については後述するが、抽出部103は、画像の所定の特徴を表す特徴点の情報として、画像110の中の例えば二つのエッジの交点や曲率が極大である曲線状の点などのコーナー点の特徴値と座標を求める。そして、抽出部103は、それら特徴値と座標とで表される特徴点の情報を出力する。なお、以下の説明では、特徴点の情報を単に「特徴点」と表記する。抽出部103から出力された特徴点113は、特徴点メモリ104と特徴点信頼度判定部106へ送られる。
特徴点メモリ104は、抽出部103により抽出された特徴点113を、1フレームの時間分又は複数フレームの時間分だけ一時的に記憶する。なお、画像メモリ102に記憶されたフレーム画像が基準画像111となされ、その基準画像111より1フレーム後の画像が参照画像112となされている場合には、特徴点メモリ104が特徴点113を一時的に保持する時間も1フレームの時間分となされる。本実施形態の場合、特徴点メモリ104に記憶された特徴点は、画像メモリ102に保持された基準画像111に相当するフレームから抽出された第1の特徴点である。以下の説明では、第1の特徴点を基準画像特徴点114と表記する。また、本実施形態では、基準画像特徴点114より1フレーム時間分だけ後のフレームの特徴点(特徴点メモリ104に未だ記憶されていない画像の特徴点)は、参照画像112に相当するフレームから抽出された第2の特徴点である。以下の説明では、第2の特徴点を参照画像特徴点115と表記する。参照画像特徴点115は、特徴点メモリ104から基準画像特徴点114が出力されたときに、抽出部103から出力された特徴点113に相当する。そして、特徴点メモリ104は、一時的に記憶保持した基準画像特徴点114を、テンプレートマッチング部105と特徴点信頼度判定部106に出力する。なお、画像メモリ102の出力が参照画像となされ、参照画像よりも後のフレームが基準画像となされた場合には、それに合わせて、特徴点メモリ104の出力が参照画像特徴点となり、参照画像特徴点よりも後のフレームの特徴点が基準画像特徴点となる。このことは後述する第2,第3の実施形態の例でも同様である。
テンプレートマッチング部105(以下、マッチング部105と表記する。)は、基準画像111からテンプレートブロックを生成し、参照画像112に対してテンプレートマッチング領域(以下、マッチング領域と表記する。)を設定する。本実施形態においては、このマッチング部105が領域検出手段の一例である。そして、マッチング部105は、テンプレートブロックを用いてマッチング領域に対するテンプレートマッチング処理を行う。このテンプレートマッチング処理により、マッチング領域内の各画像領域とテンプレートブロックとがどの程度類似しているのかについての類似度の評価が行われる。より具体的には、マッチング部105は、テンプレートマッチング処理による類似度を表す値として相関値を算出し、その算出された相関値とその位置の情報を出力する。マッチング部105によるテンプレートブロックの生成とテンプレートマッチング領域の設定、及び、相関値算出処理と位置情報の出力処理の詳細については後述する。なお、以下の説明では、相関値及びその位置情報を纏めて「相関情報」と表記する。マッチング部105により算出された相関情報116は、動きベクトル検出部107に送られる。
特徴点信頼度判定部106(以下、判定部106と表記する。)は、参照画像特徴点115と基準画像特徴点114と参照画像112とを使用して、特徴点の信頼度117を判定する。判定部106による特徴点の信頼度判定処理の詳細については後述する。なお、以下の説明では、特徴点の信頼度の情報を単に「特徴点の信頼度」と表記する。判定部106による特徴点の信頼度117は、動きベクトル検出部107に送られる。
動きベクトル検出部107は、基準画像111と参照画像112との間の類似度とその位置を表す相関情報116と、判定部106からの信頼度117とに基づいて、基準画像特徴点114に対応した動きベクトルを検出する。以下、動きベクトル検出部107を検出部107と表記する。また、検出部107は、基準画像特徴点114に対応した動きベクトルを使用して、基準画像111と参照画像112との間の画像全体の動きベクトル118を求める。また、詳細については後述するが、検出部107は、画像全体の動きベクトル118を求める際には、特徴点の信頼度117に応じて、基準画像特徴点114に対応した動きベクトルの使用を制御する。検出部107により検出された動きベクトル118の情報は、図示しない後段の構成に送られ、例えば画像処理による手振れ補正等の際に使用される。
図2には、特徴点抽出部103の構成例を示す。図2に示すように、抽出部103は、特徴フィルタ部1031と特徴評価部1032と特徴点決定部1033とを有して構成されている。
特徴フィルタ部1031(以下、フィルタ部1031と表記する。)は、水平微分フィルタと垂直微分フィルタと平滑化フィルタから構成され、図1の入力部101から供給された画像110に対してフィルタ処理を施す。フィルタ部1031におけるフィルタ処理の詳細については後述する。フィルタ部1031によりフィルタ処理された画像は、特徴評価部1032に送られる。
特徴評価部1032(以下、評価部1032と表記する。)は、フィルタ部1031によりフィルタ処理された画像の中で2つのエッジの交点や曲率が極大になっている曲線状の点などのコーナー点について、画素毎に特徴評価式を用いて特徴値を算出する。特徴評価式を用いた特徴値の算出処理の詳細については後述する。評価部1032により算出された特徴値は、特徴点決定部1033に送られる。
特徴点決定部1033(以下、決定部1033と表記する。)は、評価部1032によって画素毎に算出された特徴値とその特徴値の画素の座標(位置情報)とを特徴点113として決定する。決定部1033による特徴点決定処理の詳細については後述する。決定部1033により決定された特徴点113は、図1の特徴点メモリ104と判定部106に送られる。
図3には、テンプレートマッチング部105の構成例を示す。図3に示すように、マッチング部105は、相関値算出部1051と相関値判定部1052とを有して構成されている。
相関値算出部1051(以下、算出部1051と表記する。)は、基準画像111の中で、基準画像特徴点114を例えば中心とした所定の大きさの矩形領域を、テンプレートブロックとして設定する。また、算出部1051は、テンプレートブロックを用いたテンプレートマッチング処理が行われるマッチング領域を、参照画像112に対して設定する。マッチング領域は、少なくともテンプレートブロックよりも大きな矩形領域となされる。そして、算出部1051は、基準画像特徴点114を含むテンプレートブロックを用い、参照画像112に設定されたマッチング領域に対するテンプレートマッチング処理を行って、類似度を表す相関値を算出する。テンプレートブロック及びマッチング領域の設定処理と、それらを用いたテンプレートマッチング処理による相関値の算出処理の詳細については後述する。算出部1051にて算出された相関値は、相関値判定部1052に送られる。
相関値判定部1052は、マッチング領域内において相関値の極小値(最小値)を求め、その極小値に対応した相関値の位置(座標)を求める。相関値判定部1052において、マッチング領域内で相関値の極小値を求めてそれに対応した位置(座標)を求める処理の詳細については後述する。相関値判定部1052により求められた極小値の相関値とその位置情報からなる相関情報116が検出部107に送られる。
図4には、判定部106の構成例を示す。図4に示すように、判定部106は、マッチング領域内特徴点探索部1061とマッチング特定点抽出部1062とマッチング特定点・特徴点比較部1063と信頼度設定部1064とを有して構成されている。
マッチング領域内特徴点探索部1061(以下、探索部1061と表記する。)は、テンプレートマッチング部105にて設定されたのと同様のマッチング領域を、参照画像112内に設定する。そして、探索部1061は、参照画像112のマッチング領域内に参照画像特徴点115が在るか否か探索する。探索部1061による参照画像特徴点115の探索処理の詳細については後述する。探索部1061による特徴点探索の結果は、マッチング特定点抽出部1062と信頼度設定部1064に送られる。
マッチング特定点抽出部1062(以下、特定点抽出部1062と表記する。)は、探索部1061による探索処理において参照画像112のマッチング領域内に参照画像特徴点115がない場合、マッチング領域内の特徴値からマッチング特定点を抽出する。このマッチング特定点とその抽出処理の詳細については後述する。特定点抽出部1062により抽出されたマッチング特定点の情報は、マッチング特定点・特徴点比較部1063へ送られる。なお、以下の説明では、マッチング特定点の情報を単に「特定点」と表記する。
マッチング特定点・特徴点比較部1063(以下、比較部1063と表記する。)は、特定点抽出部1062で抽出された特定点と、参照画像特徴点115とを比較して距離を算出する。特定点と参照画像特徴点115との比較による距離算出処理の詳細は後述する。比較部1063により算出された距離の情報は、信頼度設定部1064に送られる。なお、以下の説明では、距離の情報を単に「距離」と表記する。
信頼度設定部1064は、探索部1061による探索結果と、比較部1063による距離とに基づいて、基準画像特徴点114に対する信頼度117を設定する。信頼度設定部1064による信頼度設定処理の詳細については後述する。信頼度設定部1064による信頼度117は、検出部107に送られる。
以上のように構成された画像処理装置100における各部の処理について、図5に示すフローチャートを用いて詳細に説明する。なお、本実施形態では、前述したように、時間軸方向に連なるフレーム間で動きベクトル118の検出を行うものとし、基準画像111のフレームと参照画像112のフレームは時間軸方向において相互に関連している近接したフレームである。
図5のフローチャートにおいて、入力部101は、ステップS501において、撮像装置により撮影された画像110が入力されると、その画像110を画像メモリ102と抽出部103と判定部106とマッチング部105に送る。本実施形態では、前述したように、画像メモリ102に記憶された画像を基準画像111とし、その基準画像111のフレームよりも時間軸上で後のフレームの画像を参照画像112とする。ステップS501の後、画像処理装置100の処理は、抽出部103にて行われるステップS502に進む。
抽出部103は、ステップS502において、入力部101から送られてきた画像110から特徴点を抽出する。抽出された特徴点は、特徴点メモリ104と判定部106に送られる。本実施形態では、前述したように、特徴点メモリ104に記憶された特徴点を基準画像特徴点114とし、その基準画像特徴点114よりも後のフレームの特徴点を参照画像特徴点115としている。
図6には、前述の図2の構成を有する抽出部103が図5のステップS502で行う特徴点抽出処理の詳細なフローチャートを示す。なお、本実施形態では、Harris Corner検出器により特徴点の抽出が行われる例を挙げる。
図6のステップS601において、抽出部103は、入力部101から送られてきた画像110に対して、図2の特徴フィルタ部1031によるフィルタ処理を施す。本実施形態の場合、特徴フィルタ部1031は、入力された画像110に対して、水平微分フィルタと垂直微分フィルタにより水平方向と垂直方向、さらに斜め方向の一次微分フィルタ処理を施す。そして、特徴フィルタ部1031は、それら各方向の1次微分フィルタ処理を施した結果に対し、平滑化フィルタによるガウシアンフィルタ処理を施す。ステップS601の後、抽出部103の処理は、図2の評価部1032にて行われるステップS602に進む。
ステップS602に進むと、評価部1032は、ステップS601でフィルタ処理された画像の中で2つのエッジの交点や曲率が極大である曲線状の点などのコーナー点について、画素毎に特徴評価式による特徴値を算出する。
具体的には、評価部1032は、ステップS601の水平微分フィルタと垂直微分フィルタを施した結果から、自己相関行列Hを作成する。自己相関行列Hの算出式を下記の式(1)に示す。
式(1)において、Ixは水平微分フィルタ処理を施した結果を表し、Iyは垂直微分フィルタ処理を施した結果を、Gは平滑化フィルタであるガウシアンフィルタによる畳み込み処理を表している。また、Harris検出器の特徴評価式を下記の式(2)に示す。
Harris=det(H)−α(tr(H))2 (α=0.04〜0.15) ・・・式(2)
式(2)において、αは定数であり、実験的に良い値とされている0.04〜0.15を用いる。また、detは自己相関行列Hの行列式を表し、trは自己相関行列Hの主対角成分の和を表す。ステップS602の後、抽出部103の処理は、図2の決定部1033により行われるステップS603の処理に進む。
決定部1033は、ステップS603において、ステップS602で画素毎に算出された特徴値に基づいて、特徴点を決定する。本実施形態では、特徴値の高いものから順番に、予め決められた個数の特徴値を特徴点113として抽出する。このとき特徴点の分布の偏りを防ぐために、いわゆるグリッド分割処理などを行っても良い。なお、本実施形態では、特徴点の抽出にHarris corner検出器を使用したが、これに限るものではなく、Shi and Tomasi方式などの他の特徴点抽出方式を用いてもよい。
抽出部103による図6の特徴点抽出処理が終了すると、画像処理装置100の処理は、図1のマッチング部105にて行われる図5のステップS503と、図1の判定部106にて行われる図5のステップS504の処理に進む。
図5のステップS503において、マッチング部105は、ステップS502で抽出された基準画像特徴点114を基に、基準画像111にテンプレートブロックを配置する。また、マッチング部105は、参照画像112に対してマッチング領域を設定する。そして、マッチング部105は、テンプレートブロックを用い、マッチング領域に対してテンプレートマッチング処理を行うことにより、マッチング領域毎に相関情報116を算出する。
図7には、前述の図3の構成を有するマッチング部105が図5のステップS503で行うテンプレートマッチング処理の詳細なフローチャートを示す。マッチング部105は、図7のステップS701において、図3の算出部1051により、基準画像111のテンプレートブロックと参照画像112のマッチング領域との間のテンプレートマッチング処理を行って相関値を求める。
図8(a)と図8(b)を参照して、マッチング部105の算出部1051によるテンプレートマッチング処理の概要を説明する。図8(a)は基準画像111を示し、図8(b)は参照画像112を示している。また、図8(a)の例では、基準画像111内の基準画像特徴点114の一例として基準画像特徴点801を示している。算出部1051は、図8(a)に示すように、基準画像111に対し、基準画像特徴点801を含む矩形領域をテンプレートブロック802として設定する。一方、算出部1051は、参照画像112に対しては、図8(b)に示すように、図8(a)の基準画像111内に配置されたテンプレートブロック802に対応した相関値算出領域804を設定する。相関値算出領域804は、テンプレートブロック802に対応した大きさの矩形形状の領域である。なお、図8(b)の相関値算出領域804の中の点805は、参照画像112内において図8(a)の基準画像特徴点801に対応した座標(以下、対応座標805と表記する。)を表している。また、算出部1051は、図8(b)に示すように、参照画像112に対して、対応座標805を中心としたサーチ範囲803を設定する。そして、算出部1051は、サーチ範囲803内で相関値算出領域804を図8(b)内の矢印で示すように移動させつつ、テンプレートブロック802と相関値算出領域804との間の相関値を算出する。なお、サーチ範囲803の位置や大きさの設定については特に制限はない。本実施形態において、算出部1051は、このサーチ範囲803を、テンプレートマッチング処理の際のマッチング領域として設定する。なお、マッチング領域は、サーチ範囲803の中に設定されてもよく、この場合、マッチング領域の大きさは変更可能となされ、マッチング領域の最大の大きさがサーチ範囲803の大きさとなる。本実施形態においては、サーチ範囲803内で相関値を算出するようにしているため、算出部1051は、例えば参照画像112の全領域に対して相関値を算出するような膨大な量の演算は行わなくてもよい。
本実施形態において、算出部1051は、相関値の算出方法の一例として、差分絶対値和(Sum of Absolute Difference、以下SADと表記する。)を用いている。以下、SADによる相関値S_SADの算出例について説明する。式(3)には、SADの計算式を示す。
式(3)において、f(i,j)はテンプレートブロック802内の座標(i,j)の画素の輝度値を表しており、g(i,j)はサーチ範囲803内で相関値算出の対象となる相関値算出領域804内の画素の輝度値を表している。算出部1051は、テンプレートブロック802の輝度値f(i,j)と相関値算出領域804の輝度値g(i,j)との差の絶対値を計算する。そして、算出部1051は、テンプレートブロック802内の各輝度値と相関値算出領域804内の各輝度値との差の絶対値の総和を求めることで、相関値S_SADを得る。この相関値S_SADは、その値が小さいほど、テンプレートブロック802と相関値算出領域804の間の輝度値の差が小さいことを表している。つまり、相関値S_SADの値が小さいほど、テンプレートブロック802と相関値算出領域804のブロック内のテクスチャ(画像の模様や質感等)が類似していて、類似度が高いことを表している。
なお、本実施形態では、相関値の算出方法の一例としてSADを使用した例を挙げたが、これに限るものではなく、例えば差分二乗和(SSD)や正規化相互相関(NCC)等の他の相関値算出方法を用いてもよい。
図7のフローチャートに説明を戻し、ステップS701で相関値を算出した後、マッチング部105の処理は、図3の相関値判定部1052にて行われるステップS702の処理に進む。ステップS702において、相関値判定部1052は、ステップS701で算出された相関値から、サーチ範囲803内で相関値が最小値(極小値)となった相関値算出領域804の位置(例えば相関値算出領域804の中心座標等)を検出する。このときの相関値算出領域804の位置(座標)が、前述した極小値の相関値の位置情報である。そして、マッチング部105は、相関値判定部1052による位置情報とその相関値からなる相関情報116の検出処理が終わると、その相関情報116を図1の検出部107へ送って図7のフローチャートの処理を終了する。
図5のフローチャートに説明を戻す。図5のステップS504において、判定部106は、参照画像特徴点115及び基準画像特徴点114と参照画像112とから、基準画像特徴点114の信頼度の判定を行う。
図9には、前述の図4の構成を有する判定部106が図5のステップS504で行う特徴点信頼度判定処理の詳細なフローチャートを示す。図9のステップS901において、判定部106の探索部1061は、前述したテンプレートマッチング処理で用いたのと同様のマッチング領域に対する探索処理を行うことで、マッチング領域内に参照画像特徴点115が存在するか否か判定する。なお、この場合も図8(b)の例と同様に、マッチング領域の大きさは、最大でサーチ範囲803の大きさにすることができ、参照画像特徴点がサーチ範囲803内に存在するかどうかの判定を行うことができる。
図10(a)と図10(b)を参照して、探索部1061における探索処理の概要を説明する。図10(a)は基準画像111を示し、図10(b)は参照画像112を示している。また、図10(a)の例では、基準画像111内の基準画像特徴点114の一例として基準画像特徴点1001と1002を示している。探索部1061は、図10(b)に示すように、参照画像112に対して、基準画像111内の基準画像特徴点1001と1002に対応したマッチング領域1007と1008を設定する。なお、図10(b)のマッチング領域1007,1008の中の各点1003,1004は、参照画像112内において図10(a)の基準画像特徴点1001,1002にそれぞれ対応した座標(以下、対応座標1003,1004と表記する。)を表している。また、図10(b)の点1005,1006は、それぞれが参照画像特徴点115(以下、参照画像特徴点1005,1006と表記する。)を表している。図10(b)の場合、参照画像特徴点1005はマッチング領域1007内に在り、参照画像特徴点1006はマッチング領域1008から外れている例を示している。
これら図10(a)と図10(b)に示すように、探索部1061は、基準画像111の基準画像特徴点1001,1002に対応させるように参照画像112に設定したマッチング領域1007,1008の中に、参照画像特徴点が存在するか探索する。この例の場合、探索部1061は、ステップS901において、マッチング領域1007に対する探索処理の際には参照画像特徴点1005が在ると判定し、マッチング領域1008に対する探索処理の際には参照画像特徴点が無いと判定する。そして、ステップS901において、探索部1061にて参照画像特徴点が存在すると判定された場合、判定部106の処理は、図4の信頼度設定部1064で行われるステップS904の処理に進む。一方、ステップS901において、探索部1061にて参照画像特徴点が無いと判定された場合、判定部106の処理は、図4の特定点抽出部1062で行われるステップS902の処理に進む。
ステップS902の処理に進んだ場合、特定点抽出部1062は、参照画像112に対して、マッチング領域1008内で特定点を1点抽出する。具体的には、特定点抽出部1062は、前述した抽出部103における特徴点抽出処理と同様の処理により特定点を抽出する。図10(b)には、特定点抽出部1062が、マッチング領域1008内から特定点1009を抽出した例を示している。ステップS902の処理後、判定部106の処理は、図4の比較部1063で行われるステップS903の処理に進む。
ステップS903において、比較部1063は、特定点抽出部1062が抽出した特定点と、その特定点が抽出されたマッチング領域から外れた参照画像特徴点との間の距離を算出する。図10(b)の例の場合は、比較部1063は、特定点1009が抽出されたマッチング領域1008から外れた例えば参照画像特徴点1006と、特定点1009との間の距離を算出する。ステップS903の処理後、判定部106の処理は、信頼度設定部1064で行われるステップS904の処理に進む。
ステップS904において、信頼度設定部1064は、比較部1063が算出した距離が遠くなるにつれて、基準画像特徴点の信頼度が低くなるようにする。図10(a)と図10(b)の例の場合は、比較部1063による算出対象となされたマッチング領域1008の対応座標1004に応じた基準画像111内の基準画像特徴点1002の信頼度を低くする。一例として、信頼度設定部1064は、例えば図11(a)のように距離と信頼度を線形で変化させる。また、信頼度設定部1064は、図11(b)のように距離が少しでも離れていたら信頼度を急に下げ、一定値まで下がったら信頼度を緩やかに変化させてもよい。その他にも、信頼度設定部1064は、図11(c)のように一定の距離までは信頼度を緩やかに下げ、所定の距離より離れた場合に信頼度を急に下げるように変化させてもよい。なお、前述のステップS901においてマッチング領域1007の中に参照画像特徴点1005が在ると判定されている場合、ステップS904では、信頼度設定部1064は、基準画像特徴点の信頼度を例えば最も高く設定する。
判定部106は、参照画像112の各マッチング領域について図9の特徴点信頼度判定処理が終了すると、各基準画像特徴点114の信頼度117を図1の検出部107へ送って、図9のフローチャートの処理を終了する。
図5のフローチャートに説明を戻す。図5のステップS505において、図1の検出部107は、マッチング部105による相関情報116と、判定部106による基準画像特徴点114の信頼度117とに基づいて、動きベクトルを検出する。具体的には、検出部107は、相関情報116に含まれる位置情報から、基準画像111上のテンプレートブロックが参照画像112においてどの位置に移動したかを表す、動きベクトルを検出する。そして、検出部107は、マッチング領域毎、つまり各マッチング領域の中心位置に対応した特徴点毎に検出された動きベクトルを使用して、画像全体の動きベクトルを求める。一例として、検出部107は、特徴点毎に検出した各動きベクトルの方向と大きさの総和や平均等を求めることにより、画像全体に対する動きベクトルを求める。
ただし、画像全体の動きベクトルを求める際には、検出部107は、信頼度の低い基準画像特徴点を基に検出された動きベクトルについては、そのときの信頼度に応じて、その動きベクトルの使用を制御する。一例として、検出部107は、信頼度の低い基準画像特徴点(一例として信頼度が閾値未満の基準画像特徴点)を基に検出された動きベクトルについては、画像全体の動きベクトルを求める際に使用しないように制御する。また例えば、検出部107は、画像全体の動きベクトルを求める際に、信頼度が低い基準画像特徴点を基に検出された動きベクトルを使用してもよいが、この場合、その信頼度の値に応じて、その動きベクトルの影響を小さくするような制御を行う。動きベクトルの影響を小さくする手法としては、一例として、画像全体の動きベクトルを求める際に、信頼度に応じて、その動きベクトルの使用割合(影響度)を低くするような方法が考えられる。なお、検出部107は、画像全体の動きベクトルを求める際には、信頼度が閾値以上の基準画像特徴点を基に検出された動きベクトルについては、例えばその動きベクトルをそのまま使用するようにしてもよい。また、前述のステップS901で参照画像特徴点が在ると判定され、ステップS904で基準画像特徴点に最も高い信頼度が設定された場合、検出部107は、画像全体の動きベクトルを求める際、その基準画像特徴点に対応した動きベクトルをそのまま使用する。これら基準画像特徴点の信頼度に応じた動きベクトルの使用制御はあくまで一例である。
以上説明したように、本実施形態の画像処理装置100は、フレーム画像間で特徴点が移動してしまった場合でも、その移動距離に応じて特徴点の信頼度を判定し、その信頼度を動きベクトル検出処理に反映することで、精度の良い動きベクトル検出が可能となる。具体的には、画像処理装置100は、画像全体の動きベクトルを求める際、信頼度の低い特徴点を基に検出された動きベクトルの使用を制限することにより、精度の良い動きベクトル検出を行うことが可能となる。また、本実施形態の画像処理装置100においては、マッチング領域毎に、テンプレートマッチング処理と特徴点信頼度判定処理を行っているため、少ない演算量で精度良く動きベクトルを検出することができる。
<第2の実施形態>
図12には、第2の実施形態の画像処理装置1200の構成例を示す。なお、図12において、図1に示した構成要素と共通するものについては、図1と同じ指示符号を付して、それらの説明については省略する。第2の実施形態の画像処理装置1200の場合、特徴点信頼度判定部1201(以下、判定部1201と表記する。)で行われる処理が、第1の実施形態の特徴点信頼度判定部106で行われる処理とは異なる。
判定部1201は、参照画像112と基準画像特徴点114及び参照画像特徴点115に加えて、基準画像111をも用いて、基準画像特徴点114の信頼度117を判定して、その信頼度117を検出部107へ出力する。
図13には、第2の実施形態の場合の判定部1201の構成例を示す。なお、図13において、図4に示した構成要素と共通するものについては、図4と同じ指示符号を付して、それらの説明については省略する。
図13に示すように、判定部1201は、参照画像マッチング領域内特徴点探索部12014と参照画像マッチング特定点抽出部12015と参照画像マッチング特定点・特徴点比較部12016と信頼度設定部12017とを有する。さらに、判定部1201は、基準画像マッチング領域内特徴点探索部12011と基準画像マッチング特定点抽出部12012と基準画像マッチング特定点・特徴点比較部12013とを有する。なお、参照画像マッチング領域内特徴点探索部12014(以下、参照探索部12014と表記する。)は、図4の探索部1061と同一の動作を行うため、その詳細な説明については省略する。また、参照画像マッチング特定点抽出部12015(以下、参照特定点抽出部12015と表記する。)は、図4の特定点抽出部1062と同一の動作を行うため、その詳細な説明については省略する。同様に、参照画像マッチング特定点・特徴点比較部12016(以下、参照比較部12016と表記する。)は、図4の比較部1063と同一の動作を行うため、その詳細な説明については省略する。第2の実施形態においては、参照特定点抽出部12015により抽出された特定点が第1の特定点である。
基準画像マッチング領域内特徴点探索部12011(以下、基準探索部12011と表記する。)は、基準画像111内において、参照画像112の参照画像特徴点115に対応した座標を中心としたマッチング領域を設定する。マッチング領域の大きさについては、前述の第1の実施形態で説明したのと同様の大きさに設定される。そして、基準探索部12011は、そのマッチング領域内に基準画像特徴点114が在るか否か探索する。なお、基準探索部12011における探索処理は、探索対象画像が基準画像111になっていること以外、基本的には前述した図10(a),図10(b)で説明したのと同様の処理であるため、その詳細については省略する。この基準探索部12011による探索結果は、基準画像マッチング特定点抽出部12012と信頼度設定部12017に送られる。
基準画像マッチング特定点抽出部12012(以下、基準特定点抽出部12012と表記する。)は、基準探索部12011において基準画像特徴点114が探索できなかった場合、マッチング領域内の特徴値からマッチング特定点を抽出する。第2の実施形態においては、基準特定点抽出部12012により抽出された特定点が、第2の特定点である。なお、基準特定点抽出部12012における抽出処理は、抽出対象画像が基準画像111になっていること以外、基本的には前述した図10(a),図10(b)で説明したのと同様の処理であるため、その詳細については省略する。基準特定点抽出部12012により抽出されたマッチング特定点の情報は、基準画像マッチング特定点・特徴点比較部12013へ送られる。
基準画像マッチング特定点・特徴点比較部12013(以下、基準比較部12013と表記する。)は、基準特定点抽出部12012により抽出された特定点と、基準画像特徴点114とを比較して距離を算出する。基準比較部12013における距離算出処理は、特定点との間の距離算出対象が基準画像特徴点114になっていること以外、基本的には前述した図10(a),図10(b)で説明したのと同様の処理であるため、その詳細については省略する。基準比較部12013により算出された距離の情報は、信頼度設定部12017に送られる。
信頼度設定部12017は、基準探索部12011及び参照探索部12014による探索結果と、基準比較部12013及び参照比較部12016による距離とに基づいて、基準画像特徴点114の信頼度を設定する。第2の実施形態の場合の信頼度設定部12017による信頼度設定処理の詳細については後述する。信頼度設定部12017による信頼度117は、図12の検出部107に送られる。
図12に示した第2の実施形態の画像処理装置1200における各部の処理のフローチャートは、前述の図5に示したフローチャートと略々同じであるが、第2の実施形態の場合には、ステップS504の信頼度判定処理が第1の実施形態の例とは異なる。第2の実施形態の場合、図12の判定部1201は、図5のステップS504において、参照画像特徴点115と基準画像特徴点114と参照画像112と基準画像111とを用いて、基準画像特徴点114の信頼度117を判定する。なお、第2の実施形態の場合、図5のステップS501,S502,S503,S505の処理については、第1の実施形態で説明した処理と基本的に同一であるため、それらの説明については省略する。
図14には、第2の実施形態の場合におけるステップS504の処理の詳細なフローチャートを示す。なお、図14のフローチャートにおいて、ステップS901〜S903の処理は、前述の図9のステップS901〜S903の処理と同じであるため、それらの詳細な説明については省略する。一方、図14において、ステップS1501の処理は図13の基準探索部12011が行い、ステップS1502の処理は図13の基準特定点抽出部12012が、ステップS1503の処理は図13の基準比較部12013が行う処理となされている。また、図15(a)と図15(b)には、第2の実施形態の判定部1201において、基準探索部12011〜基準比較部12013にて行われる処理の概要を説明するための図を示す。以下、図14と図15(a)及び図15(b)を参照しながら、基準探索部12011〜基準比較部12013おいて行われる処理について詳細に説明する。
図15(a)は基準画像111を示し、図15(b)は参照画像112を示している。また、図15(b)の例では、参照画像112内の参照画像特徴点115の一例として参照画像特徴点1601と1602を示している。基準探索部12011は、図14のステップS1501において、図15(a)に示すように、基準画像111に対して、参照画像112内の参照画像特徴点1601と1602に対応したマッチング領域1607と1608を設定する。なお、図15(a)のマッチング領域1607,1608の中の各点1603,1604は、基準画像111内において図15(b)の参照画像特徴点1601,1602にそれぞれ対応した座標(以下、対応座標1603,1604と表記する。)を表している。また、図15(a)の点1605,1606は、それぞれが基準画像特徴点114(以下、基準画像特徴点1605,1606と表記する。)を表している。図15(a)の場合、基準画像特徴点1605はマッチング領域1607内に在り、基準画像特徴点1606はマッチング領域1608から外れている例を示している。
また、基準探索部12011は、ステップS1501において、参照画像112の参照画像特徴点1601,1602に対応させるように基準画像111内に設定したマッチング領域1607,1608の中に、基準画像特徴点が在るか探索する。この例の場合、基準探索部12011は、ステップS1501において、マッチング領域1607に対する探索処理の際には基準画像特徴点1605が在ると判定し、マッチング領域1608に対する探索処理の際には基準画像特徴点が無いと判定する。そして、ステップS1501において、基準探索部12011にて基準画像特徴点が存在すると判定された場合、判定部1201の処理は、図13の信頼度設定部12017で行われるステップS1504の処理に進む。一方、ステップS1501において、基準探索部12011にて基準画像特徴点が無いと判定された場合、判定部1201の処理は、図13の基準特定点抽出部12012で行われるステップS1502の処理に進む。
ステップS1502の処理に進んだ場合、基準特定点抽出部12012は、基準画像111に対して、マッチング領域1608内で特定点を1点抽出する。具体的には、基準特定点抽出部12012は、前述の抽出部103における特徴点抽出処理と同様の処理により特定点を抽出する。図15(a)には、基準特定点抽出部12012が、マッチング領域1608内から特定点1609を抽出した例を示している。ステップS1502の処理後、判定部1201の処理は、図13の基準比較部12013で行われるステップS1503の処理に進む。
ステップS1503において、基準比較部12013は、基準特定点抽出部12012が抽出した特定点と、その特定点が抽出されたマッチング領域から外れた基準画像特徴点との間の距離を算出する。図15(a)の例の場合は、基準比較部12013は、特定点1609が抽出されたマッチング領域1608から外れた例えば基準画像特徴点1606と、特定点1609との間の距離を算出する。ステップS1503の処理後、判定部1201の処理は、信頼度設定部12017で行われるステップS1504の処理に進む。
ステップS1504において、信頼度設定部12017は、基準比較部12013により得られた距離を用いて、前述の第1の実施形態の図11(a)〜図11(c)で説明したのと同様にして信頼度を求める。第2の実施形態においては、基準比較部12013により得られた距離を用いて求められた信頼度が第2の信頼度である。また、このときの信頼度設定部12017は、参照探索部12014〜参照比較部12016により前述の第1の実施形態と同様にして求められた距離を用いて、図11(a)〜図11(c)で説明したように信頼度を求める。第2の実施形態においては、参照比較部12016により得られた距離を用いて求められた信頼度が第1の信頼度である。そして、信頼度設定部12017は、それら二つの信頼度から、基準画像特徴点114に対する最終的な信頼度を設定する。具体的には、信頼度設定部12017は、例えば、基準比較部12013による距離に応じた信頼度と、参照比較部12016による距離に応じた信頼度との和を求め、その和が低くなるにつれて最終的な信頼度を低くするように設定する。又は、信頼度設定部12017は、例えば、基準比較部12013による距離に応じた信頼度と、参照比較部12016による距離に応じた信頼度との差を求め、その差が高くなるにつれて最終的な信頼度を低くするように設定してもよい。又は、信頼度設定部12017は、基準比較部12013による距離に応じた信頼度と参照比較部12016による距離に応じた信頼度にそれぞれ重みを付けた二つの信頼度について、前述同様に和又は差を求めて最終的な信頼度を設定してもよい。なお、信頼度設定部12017は、ステップS901でマッチング領域内に参照画像特徴点が在ると判断され、且つ、ステップS1501でマッチング領域内に基準画像特徴点が在ると判断された場合には、基準画像特徴点の信頼度を例えば最も高く設定する。
その他、第2の実施形態において、図13の基準比較部12013は、図15(a)の特定点1609と基準画像特徴点1606との間の距離と共に方向も算出してベクトルを求めてもよい。この場合、同様に、参照比較部12016は、前述の図10(b)の特定点1009と参照画像特徴点1006との間の距離と共に方向も算出してベクトルを求める。そして、信頼度設定部12017は、それら二つのベクトルの角度を比較し、それら角度の比較結果に応じて最終的な信頼度を設定する。一例として、信頼度設定部12017は、二つのベクトルの角度の差を求め、例えば図16(a)のように、角度の差に応じて最終的な信頼度を線形に変化させる。また、信頼度設定部12017は、図16(b)のように角度に少しでも差が生じたならば、最終的な信頼度を急に下げ、そして、一定の信頼度まで下がった後には、最終的な信頼度を緩やかに変化させてもよい。その他にも、信頼度設定部12017は、図16(c)のように、一定の角度差までは信頼度を緩やかに下げ、特定の角度差以上になった場合には最終的な信頼度を急に下げるように変化させてもよい。
第2の実施形態において、判定部1201は、図14の特徴点信頼度判定処理が終了すると、各基準画像特徴点114の信頼度117を図1の検出部107へ送って、図14のフローチャートの処理を終了する。第2の実施形態の場合の検出部107における処理は前述の第1の実施形態の例と同様である。
以上説明したように、第2の実施形態の画像処理装置1200は、信頼度の判定の際に、基準画像と参照画像の両画像を用いるようにしているため、前述した第1の実施形態の場合よりも更に精度の高い信頼度判定を行うことができる。したがって、第2の実施形態の画像処理装置1200は、第1の実施形態の場合よりも精度良く動きベクトルを検出可能である。
<第3の実施形態>
図17には、第3の実施形態の画像処理装置1800の構成例を示す。なお、図17において、図1に示した構成要素と共通するものについては、図1と同じ指示符号を付して、それらの説明については省略する。第3の実施形態の画像処理装置1800は、図1に示した各構成要素に加えて、仮動きベクトル動き算出部1801と参照画像・参照画像特徴点座標修正部1802を有している。
仮動きベクトル算出部1801(以下、ベクトル算出部1801と表記する。)は、マッチング部105から出力された相関情報116が入力され、その相関情報116を基に仮動きベクトル121を算出する。ベクトル算出部1801が相関情報116から仮動きベクトル121を算出する処理は、基本的には前述の動きベクトル検出部107による動きベクトル検出処理と同じである。ベクトル算出部1801により算出された仮動きベクトル121は、参照画像・参照画像特徴点座標修正部1802に送られる。
参照画像・参照画像特徴点座標修正部1802(以下、修正部1802と表記する。)は、仮動きベクトル121を使用して、参照画像112及び参照画像特徴点115の座標を修正する。具体的には、修正部1802は、仮動きベクトル121で示される移動量及び方向に基づいて、参照画像112及び参照画像特徴点115の座標位置を移動前の座標に戻す処理を行う。修正部1802により座標が修正された参照画像122及び参照画像特徴点123は、判定部106に送られる。
第3の実施形態において、判定部106は、修正部1802により各々座標が修正された参照画像122と参照画像特徴点123を使用して、前述の第1の実施形態の例と同様にして、基準画像特徴点114の信頼度を判定する。
第3の実施形態の画像処理装置1800における各部の処理を、図18のフローチャートを用いて詳細に説明する。なお、図18のフローチャートにおいて、ステップS501〜S503,S504,S505の処理は、前述の図5のステップS501〜S503,S504,S505の処理と同じであるため、それらの詳細な説明については省略する。一方、図18において、ステップS1901の処理は図17のベクトル算出部1801が行い、ステップS1902の処理は図17の修正部1802が行う処理となされている。以下、ステップS1901,S1902の処理について、詳細に説明する。
図18のフローチャートにおいて、ベクトル算出部1801は、ステップS503の後のステップS1901において、マッチング部105から供給される相関情報116から前述の第1の実施形態で説明したようにして動きベクトルを算出する。ただし、ベクトル算出部1801での動きベクトル算出処理の際には、前述の検出部107での動きベクトル検出で使用される信頼度117については用いない。また、ベクトル算出部1801は、前述の第1の実施形態で説明したようにして、特徴点毎に検出された動きベクトルを使用して画像全体の動きベクトルを求めて、それを仮動きベクトル121とする。
ステップS1901の後、画像処理装置1800の処理は、修正部1802にて行われるステップS1902に進む。ステップS1902では、修正部1802は、ベクトル算出部1801から送られてきた仮動きベクトル121を使用し、参照画像112及び参照画像特徴点115の座標を修正する。
ステップS1902の後、画像処理装置1800の処理は、判定部106により行われるステップS505に進む。第3の実施形態の場合、判定部106は、移動前の座標位置に戻された参照画像122と参照画像特徴点123を用いて、基準画像特徴点114の信頼度を判定する。判定部106における信頼度判定処理は、前述の第1の実施形態で説明したのと同様であるため、その詳細な説明については省略する。
なお、第3の実施形態では、参照画像112と参照画像特徴点115の座標修正が1度しか行われていないが、ベクトル算出部1801による仮動きベクトル算出処理と修正部1802による座標修正処理は複数回繰り返し行われてもよい。また、第3の本実施形態において、例えば画像が異なる解像度毎に階層化され、ベクトル算出処理が階層処理として行われるような場合、座標修正は特定の階層に対してのみ行うようにしてもよい。この場合、演算量の削減が可能となる。さらに、第3の実施形態は、第1の実施形態を基に説明したが、前述の第2の実施形態に対して仮動きベクトル算出処理と座標修正処理を適用することも可能である。
第3の実施形態の画像処理装置1800によれば、仮動きベクトル算出処理の後に、参照画像112及び参照画像特徴点115の座標修正処理を行うことにより、画像間の移動量が大きいときでも、精度の高い信頼度判定を行うことが可能となる。
<その他の実施形態>
本発明は、上述の各実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASICによっても実現可能である。
また、前述の各実施形態の画像処理装置は、撮像装置であるデジタルカメラの他、タブレット端末やスマートフォン、電子ゲーム機、ナビゲーション装置、パーソナルコンピュータなど様々な情報処理装置にも適用可能である。各実施形態の画像処理装置がそれら情報処理装置に適用された場合、各実施形態に係る処理は、情報処理装置内のCPU等が各実施形態に係るコンピュータプログラムを実行することにより実現される。各実施形態に係るコンピュータプログラムは、記録媒体や各種ネットワークや通信回線を介して情報処理装置に提供される。
上述の実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。即ち、本発明は、その技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。