説明

相関演算装置

【課題】一律な照明変動や空間的に低周波な照明ムラに対するロバスト性が高く、かつSSDAの手法の適用により演算の高速化が可能な、新たな差分総和演算を行うことができる相関演算装置を提供する。
【解決手段】相関演算装置は、位置変数に依存した関数である第1関数データおよび第2関数データに対してローパスフィルタ処理を施し、第3関数データおよび第4関数データを生成するローパスフィルタ手段と、位置変数の1つの変数値における第1関数データと第4関数とを乗じた第1積データと、該変数値における第2関数データと第3関数データとを乗じた第2積データとの差分に基づき、該変数値における第1積データと第2積データとの相関値を算出し、変数値が変化する毎の相関値を積算して得られる積算値に基づき、第1関数データと第2関数データとの相関度を算出する相関演算手段とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は2次元以上の位置変数に依存した関数である2つの分布情報間の相関度(類似度)を算出する相関演算装置に関する。
【背景技術】
【0002】
従来2つの画像間の相関度を求める処理は多くの分野で用いられている。例えばテンプレートマッチング(対象画像中において特定画像パターンが存在する位置を検出する手法)は電子式ブレ補正技術、顔検出技術などの分野に応用されている。2つの画像の相関度を算出する手法として、差分総和演算が知られている(特許文献1)。
【0003】
差分総和演算は演算規模が比較的少ないうえに、相関度を求める過程において単調増加する特性を有するため、予め閾値を定めておけば計算の打ち切りによる計算時間短縮手法(SSDA:Sequential Similarity Detection Algorithm)を用いることができる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2009−80701号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら上記差分総和演算は一律な照明変動や空間的に低周波な照明ムラに対するロバスト性がないという問題があった。
【課題を解決するための手段】
【0006】
請求項1に記載の発明による相関演算装置は、位置変数に依存した関数である第1関数データおよび第2関数データに対してローパスフィルタ処理を施し、第1関数データおよび第2関数データにそれぞれ対応する第3関数データおよび第4関数データを生成するローパスフィルタ手段と、位置変数の1つの変数値における第1関数データと第4関数データとを乗じた第1積データと、該変数値における第2関数データと第3関数データとを乗じた第2積データとの差分に基づき、該変数値における第1積データと第2積データとの相関値を算出し、変数値が変化する毎の相関値を積算して得られる積算値に基づき、第1関数データと第2関数データとの相関度を算出する相関演算手段とを備えることを特徴とする。
【発明の効果】
【0007】
本発明による相関演算装置は、一律な照明変動や空間的に低周波な照明ムラに対するロバスト性が高く、かつSSDAの手法の適用により演算の高速化が可能な、新たな差分総和演算を行うことができる。
【図面の簡単な説明】
【0008】
【図1】相関演算装置の一実施の形態における顔検索装置の構成を示す図である。
【図2】顔検索装置の画像処理部の動作を示すフローチャートである。
【図3】基本画像の一例を示す図である。
【図4】比較対象画像の一例を示す図である。
【図5】画像水平方向の空間周波数分布およびローパスフィルタ特性を示す図である。
【図6】2次元的な画素位置に応じたローパスフィルタの重み係数の例を7×7の画素マトリックスに対応して示した図である。
【図7】デジタルフィルタの係数が0以外の値を持つ領域をコンパクトにした例を示す図である。
【図8】画像垂直方向と画像水平方向とで互いに異なるローパスフィルタ特性を持つデジタルフィルタの一例を示す図である。
【図9】基本画像中の顔画像近傍を拡大した画像の一例を示す図である。
【図10】顔画像近傍におけるローパスフィルタ処理の様子を示した図である。
【図11】ローパスフィルタ処理の結果生成される基本ローパス画像の顔画像近傍を拡大した画像を示す図である。
【図12】比較対象画像中のある部分画像の領域近傍を拡大した画像を示す図である。
【図13】部分画像近傍におけるローパスフィルタ処理の様子を示した図である。
【図14】ローパスフィルタ処理の結果として生成される比較対象ローパス画像における部分画像近傍を拡大した画像を示す図である。
【図15】相関画素位置における相関値の計算式とその計算に使用する画素データとの対応関係を示す図である。
【図16】相関画素位置における相関値の計算式の演算を模式的に示した図である。
【図17】相関度Cの値の変化を3Dワイヤーフレームで表示したグラフである。
【図18】画素アドレスの2変数のうちの一方を固定して、該画素アドレスの周囲の画素アドレスに対応した相関度の値を縦軸に示した図である。
【図19】本発明の処理およびデータフローをブロック化してまとめた図である。
【発明を実施するための形態】
【0009】
相関演算装置の一実施の形態として、顔検索装置を例に挙げて説明する。この顔検索装置は、比較対象となる1つの比較対象画像内において、テンプレート顔画像との類似度(相関度)が高い領域の位置を探索し、特定する。なお本発明の明確化とともに説明の簡潔化をはかるため、テンプレート顔画像と比較対象画像中の部分画像である顔画像とは同じ大きさであるとともに相対的な回転はないとして説明を行う。また画像間の相対的な拡大または縮小、および回転を考慮する場合は、アフィン変換などの周知の画像処理手法を用いて適宜対応が可能である。
【0010】
図1に顔検索装置10の構成を示す。顔検索装置10は、2次元的な画素データからなる複数の画像を2次元画像データとして記憶格納する画像記憶部11と、画像に対して種々の処理を行う画像処理部12と、画像を表示する画像表示部13とを含む。画像処理部12は、画像記憶部11から基本画像の2次元画像データを読み込み、例えばHaar-like特徴を用いた手法等の周知の顔画像検出手法を用いて該基本画像からテンプレート画像となる顔画像を抽出する。また画像処理部12は画像記憶部11から比較対象画像を読み込み、該比較対象画像の中から、2次元的に順次抽出位置を変えて部分画像を抽出する。画像処理部12は基本画像と比較対象画像とに対しローパスフィルタ処理を施し、所定値(特定周波数)以上の高い空間周波数成分が基本画像および比較対象画像よりも抑制された基本ローパス画像と比較対象ローパス画像を生成する。顔画像、部分画像、基本ローパス画像および比較対象ローパス画像の各々は2次元画像データとして表され、その2次元画像データは、各画像の各画素位置が各変数値として表される位置変数に依存した関数データである。
【0011】
画像処理部12は、部分画像上での2次元的な各抽出位置において、顔画像、部分画像、基本ローパス画像、比較対象ローパス画像の画素データに対し、後述するような差分総和演算による相関演算を行い、顔画像と部分画像との相関度を求める。画像処理部12は、2次元的な抽出位置に対応して求められた相関度に基づき、顔画像に類似した部分画像の抽出位置を決定し、画像表示部13において、比較対象画像に重畳して該部分画像の抽出位置を表示する。
【0012】
なお基本画像および比較対象画像の選択は自動または手動で行われる。基本画像からの顔画像の抽出は、画像表示部13に基本画像を表示した上で手動にて行われることとしても良い。
【0013】
図2は、本実施の形態における顔検索装置10の画像処理部12の動作を示すフローチャートである。ステップS100で、画像処理部12は一連の画像処理を開始する。ステップS110では、画像処理部12は、画像記憶部11から図3に示す基本画像20と図4に示す比較対象画像30とを読出し、画像表示部13にそれぞれ表示する。
【0014】
ステップS120では、画像処理部12は、基本画像20から図3に示す顔画像21(第1画像)を抽出する。また、画像処理部12は、顔画像21の基準画素位置22を定める。基本画像20から抽出された顔画像21の範囲は、画像表示部13において基本画像20に重畳して表示される。
【0015】
ステップS130では、画像処理部12は、顔画像の画素データに対しフーリエ変換演算処理を施し、顔画像の空間周波数分布を求める。図5の上部に示したグラフは、画像水平方向の空間周波数分布を図示した例であって、縦軸は相対成分量、横軸は画像水平方向の空間周波数Wxをそれぞれ表している。図5の上部に示したグラフにおいて、空間周波数分布は周波数Whにおいてピークを示している。
【0016】
ステップS140では、画像処理部12は、空間周波数分布に応じて、ローパスフィルタの特性(カットオフ周波数、通過帯域、遷移帯域、阻止帯域など)を決定する。例えば図5の上部に示したグラフのように周波数Whにおいてピークを示す空間周波数分布の場合、ピークの周波数Wh以上の高周波成分を抑制するように、図5の下部に示したグラフのようにローパスフィルタの阻止帯域CBに周波数Whが含まれるとともに、遷移帯域TBが周波数Whに近づくようにローパスフィルタ特性が決定される。図5の下部に示したグラフは、ローパスフィルタとして2次元的なデジタルフィルタであるガウシアンフィルタを用いた場合のローパスフィルタ特性を、縦軸に伝達関数、横軸に画像水平方向の空間周波数Wxをとって図示した例である。図5の下部に示したグラフには、周波数Whより高い周波数において抑制効果を持つガウス分布の伝達関数が示されている。
【0017】
さらに該伝達関数に対応するガウシアンフィルタの重み係数は、例えば図6のように決定される。図6は、2次元的な画素位置に応じたローパスフィルタの重み係数の例を7×7の画素マトリックスに対応して示した図であり、ローパスフィルタの重み中心は重み係数として10が設定されている位置である。図5の上部に示したグラフに示す空間周波数分布のピーク周波数Whがさらに高周波側にシフトしている場合には、図5の下部に示すローパスフィルタ特性を高周波側にシフトする。そのため、デジタルフィルタの係数が0以外の値を持つ領域を図7のように図6のデジタルフィルタに比較してコンパクトにすればよい。また空間周波数分布を画像垂直方向にも求め、さらに該画像垂直方向の空間周波数分布と画像水平方向の空間周波数分布との平均的な空間周波数分布を求め、該平均的な空間周波数分布に基づいてローパスフィルタ特性を決定してもよい。また画像垂直方向の空間周波数分布と画像水平方向の空間周波数分布とに基づき、画像垂直方向と画像水平方向とで互いに異なるローパスフィルタ特性を持つデジタルフィルタ(図8)を設定することも可能である。
【0018】
空間周波数分布が図5のようなピークを持たない場合やピークが低い場合には、たとえば周波数0における成分量を基準として、成分量がそのP%(P=10〜50)となる周波数以上の高周波を抑制するようにローパスフィルタ特性を決定する。図6〜8においては簡便のため重み係数の値を整数で示しているが、実際には重み係数の絶対値の総和で各重み係数を除した値を使用することが好ましい。
【0019】
ローパスフィルタの目的は画像の高周波成分を抑制して平滑化することにあるので、ローパスフィルタは上述したガウシアンフィルタに限定されず、移動平均フィルタなどの平滑化フィルタをローパスフィルタとして使用することも可能である。またローパスフィルタ処理を画像に施すことにより、局所的範囲内、例えば図6〜8の重み係数が0でない画素の範囲内での画像の平滑化が行われるわけであるが、この局所的範囲の大きさは画像の空間周波数分布に応じて決める必要があり、むやみにこの範囲を広くすると局所的な照明の変動に対するロバスト性が低下してしまう。定性的には前述したように画像の空間周波数分布における高周波側の領域の空間周波数を十分抑制するという条件内で、なるべく高い空間周波数まで通すように、すなわち遷移帯域を高周波側に寄せるように、ローパスフィルタ特性を決定するのがよい。
【0020】
以上のようにしてローパスフィルタが決定されると、画像処理部12は、基本画像20と比較対象画像30とに対し、ローパスフィルタ処理を施して基本ローパス画像(第3画像)と比較対象ローパス画像(第4画像)を生成する。
【0021】
図9は、基本画像20中の顔画像21近傍を拡大した画像であって、正方格子のマスで示す2次元画素配置に重畳して顔画像21を示す。図10は、顔画像21近傍におけるローパスフィルタ処理の様子を示した図である。なお、ここでのローパスフィルタ50は、図6〜8の重み係数が0でない範囲を示している。この顔画像21近傍に対してローパスフィルタ50を画素単位で2次元的に走査することにより、この画像の画素データに対してローパスフィルタ処理が施される。具体的には、図6に示すような重みマトリックスを画素データのマトリックスに乗じて各画素の演算値を算出するとともに、重みマトリックスを画像に対して順次移動しながら各画素の演算値を積算していく。
【0022】
図11は以上のようなローパスフィルタ処理の結果生成される基本ローパス画像の顔画像近傍を拡大した画像であって、高周波成分が失われてぼけた顔画像41が生成される。図11において、顔画像41のうちの口を含む領域111の中心部および両眼を含む領域112の中心部は最も濃度が高い領域であり、領域111の中心部および領域112の中心部から遠ざかるにつれて濃度が徐々に低くなる。両眼周辺の領域113の濃度は領域112の濃度よりも低く、顔の中央部分を含む領域114の濃度は領域113の濃度よりも低く、領域114の外側の、顔の輪郭付近の領域115の濃度は領域114の濃度よりも低い。作図の都合上、図11の顔画像41を領域111〜115に区分して上記説明を行ったが、上述したような口および両目から顔の輪郭へ向かう方向における濃度の低下は、実際には連続的である。
【0023】
図12は、図4に示す比較対象画像30中のある部分画像33の領域近傍を拡大した画像である。図12では、正方格子のマスで示す2次元画素配置に重畳して部分画像33が示されている。図13は部分画像33近傍におけるローパスフィルタ処理の様子を示した図である。なお、ここでのローパスフィルタ50は、図6〜8の重み係数が0でない範囲を示している。この部分画像33に対して、ローパスフィルタ50を画素単位で2次元的に走査することにより、この画像の画素データに対してローパスフィルタ処理が施される。ローパスフィルタ50を画像の画素データに乗じた結果を、さらに画素単位で積算する。
【0024】
図14は以上のようなローパスフィルタ処理の結果として生成される比較対象ローパス画像における部分画像33近傍を拡大した画像であって、高周波成分が失われてぼけた部分画像43が生成される。図14において、部分画像43のうち、領域141の中心部および領域143の中心部は最も濃度が高い領域であり、領域141の中心部および領域143の中心部から遠ざかるにつれて濃度が徐々に低くなる。領域141周辺の領域142の濃度は領域141の濃度よりも低く、領域143周辺の領域144の濃度は領域143の濃度よりも低く、領域142および144の外側の領域145の濃度は領域142の濃度および領域144の濃度よりも低く、領域145の外側の領域146の濃度は領域145の濃度よりも低い。作図の都合上、図14の部分画像43を領域141〜146に区分して上記説明を行ったが、上述したような領域141の中心部および領域143の中心部から部分画像43の外周付近へ向かう方向における濃度の低下は、実際には連続的である。
【0025】
ステップS150では、画像処理部12は、図4に示すように、基準画像20の顔画像21の基準画素位置22に対応した基準画素位置32を、比較対象画像30において決定し、該基準画素位置32の2次元的な画素走査を開始する。
【0026】
ステップS160では、画像処理部12は、図4に示すように、比較対象画像30において、基準画素位置32を基準にして顔画像21と同じ大きさの部分画像(第2画像)33を抽出する。
【0027】
ステップS170では、画像処理部12は、図9に示す顔画像21において、顔画像21内の相関画素位置23を決定し、顔画像21内における該相関画素位置23の2次元的な画素走査を開始する。
【0028】
ステップS180では、2つの位置変数で表される画素アドレスがある変数値をとるときの相関画素位置23における相関値を算出し、算出した相関値と相関画素位置23の走査に応じて順次算出された相関値とを積算し、基準画素位置32における相関度とする。ここで相関値および相関度の算出に使用する際の4つの2次元画像(顔画像、部分画像、基本ローパス画像の顔画像、比較対象ローパス画像の部分画像)の位置関係について説明する。2次元画像上の画素位置は、水平方向および垂直方向の2次元の位置変数で表される。基準となる画素位置を画素原点という。画素原点は、画素アドレス(0,0)の画素位置に設定される。図9に示すように、顔画像21では基準画素位置22を画素原点とする。図12に示すように、部分画像33では顔画像21の基準画素位置22に対応した基準画素位置32を画素原点とする。図11に示すように、基本ローパス画像20aの顔画像41では、顔画像21と同様の基準画素位置22を画素原点とする。比較対象ローパス画像30aの部分画像43では、図14に示すように、部分画像33と同様の基準画素位置32を画素原点とする。
【0029】
このように画素原点を定めた場合の顔画像21、部分画像33、基本ローパス画像20aの顔画像41、および比較対象ローパス画像30aの部分画像43の2次元的な画素データを、図15に示すようにそれぞれAxy、Bxy、Exy、Fxyとする。画素アドレス(x,y)は、顔画像21、部分画像33、顔画像41および部分画像43の各画像内における、上述した画素原点に対する水平方向および垂直方向の画素位置を表す。図9〜14において、顔画像21、部分画像33、顔画像41および部分画像43は矩形画像ではないが、説明を簡便にするため、図15においては、顔画像21、部分画像33、顔画像41および部分画像43が矩形画像であるものとする。画素アドレス(x,y)が所定値(i,j)をとるときの特定の相関画素位置23における相関値D(i,j)は、(1)式で与えられる。(1)式に表されるように、相関値D(i,j)は、特定の相関画素位置23における顔画像21の画素データと部分画像43の画素データとを乗じて得られる積データと、同じ相関画素位置23における部分画像33の画素データと顔画像41の画素データとを乗じて得られる積データとの差分に基づいて算出される値であり、それらの2つの積データの相関値である。図15は、(1)式と計算に使用する各画素データとの対応関係を示す。なお、相関画素位置23の画素アドレス(x,y)=(i,j)は、上述した画素原点と顔画像21、部分画像33、顔画像41および部分画像43の各画像の大きさとで定まる定義域の範囲の値をとる位置変数である。上述したように、顔画像21の大きさと部分画像33の大きさとは互いに等しい。顔画像21の大きさとローパスフィルタ処理後の顔画像41の大きさとが互いに等しく、かつ部分画像33の大きさとローパスフィルタ処理後の部分画像43の大きさとが互いに等しいとすれば、上述した定義域は全て一致する。
D(i,j)=|Aij×Fij−Bij×Eij| (1)
【0030】
図16は、画素アドレス(i,j)の相関画素位置23における(1)式の演算を模式的に示した図であって、縦軸は画素データ値、横軸は画素位置である。顔画像21の画素データ値Axyで表される顔が、部分画像33の画素データ値Bxyで表される顔と同じ場合であっても、光源変動等によりそれぞれの画素データ値AxyおよびBxyの間には、局所的に変動するレベル差(倍率変動)が生じている。図16において、画素アドレス(i,j)の相関画素位置23における顔画像21の画素データ値Aijに対し、画素アドレス(i,j)の相関画素位置23における顔画像41の画素データ値Eijは、画素アドレス(i,j)の相関画素位置23の周囲Lの画素データ値の局所的な平均値となっている。一方、図16において、相関画素位置23と同じ画素アドレス(i,j)の画素位置における部分画像33の画素データ値Bijに対し、画素アドレス(i,j)の画素位置における部分画像43の画素データ値Fijは、画素アドレス(i,j)の画素位置の周囲Lの画素データ値の局所的な平均値となっている。従って顔画像21の画素データ値Aijに部分画像43の画素データ値Fijを乗じてレベル補正を行うとともに、部分画像33の画素データ値Bijに顔画像41の画素データ値Eijを乗じてレベル補正を行う。こうしたレベル補正を行うことにより、補正された顔画像データAij×Fijの値と、補正された部分画像データBij×Eijの値とは、互いにレベルが揃うことになる。補正された顔画像データAij×Fijの値と部分画像データBij×Eijの値との差分演算を行うことにより、2つの画像(顔画像21および部分画像33)間に照明変動などによるレベル差が生じていた場合においても、正確な相関値を算出することが可能になる。
【0031】
従来の差分総和演算においては、基本画像中の顔画像の画素データと比較対象画像中の部分画像の画素データとの間の差分を計算していた。本実施の形態においては、(1)式においては基本画像中の顔画像の画素データと比較対象ローパス画像中の部分画像の画素データとの積と、比較対象画像中の部分画像の画素データと基本ローパス画像中の顔画像の画素データとの積との間の差分を算出している。比較対象ローパス画像中の部分画像の各画素位置の画素データレベルは、比較対象画像中の部分画像の各画素位置周辺の平均的な画素データレベルに相当する。基本ローパス画像中の顔画像の各画素位置の画素データレベルは、基本画像中の顔画像の各画素位置周辺の平均的な画素データレベルに相当する。本実施の形態における顔検索装置10では、顔画像と部分画像との間に一律な照度差や比較的低周波な照明ムラが存在した場合においても、画素毎にデータレベル差が補正されていることになる。従って、一律な照度差や比較的低周波な照明ムラに対してロバスト性の高い相関値を算出することができる。
【0032】
ステップS190では、画像処理部12は、顔画像21内における相関画素位置23の走査が終了したか否かをチェックし、走査が終了していない場合には、ステップS170およびS180の動作を繰り返し、相関画素位置23の走査が終了するまで、走査により相関画素位置23が変化する毎に順次算出された相関値が積算される。
【0033】
ステップS190で顔画像21内における相関画素位置23の走査が終了した場合には、処理はステップS200に進む。この時点で、比較対象画像30の走査により指定された画素アドレス(N,M)で表される基準画素位置32での相関値の積算値の算出が終了することになる。本実施の形態においては、この相関値の積算値がそのまま、基本画像中の顔画像21と比較対象画像30との相関度C(N,M)として用いられる。すなわち、C(N、M)は(2)式で表される。ただし、積算演算ΣΣは位置変数iおよびjについての積算を表す。位置変数iおよびjのとりうる値の範囲は、上述した定義域の範囲と一致するので、すなわち顔画像の存在する画素の範囲に制限される。相関度C(N,M)の値が小さいとき、基本画像中の顔画像21と比較対象画像30との相関度は高い。
C(N,M)=ΣΣD(i,j)=ΣΣ|Aij×Fij−Bij×Eij| (2)
【0034】
また(2)式において基準画素位置32の画素アドレスの画素原点の位置は適宜決めることができる。例えば比較対象画像30の中心画素位置を画素原点(0,0)としたり、比較対象画像30の左下隅の画素位置を画素原点(0,0)とすることができる。
【0035】
なお、上述した相関値演算および相関度演算は、それぞれ(1)式および(2)式には限定されず、一般的な差分総和演算に用いられる演算が適用されることとしてもよい。例えば、(1)式および(2)式で用いられている絶対値の代わりに自乗演算を用いた(3)式および(4)式を用いて、それぞれ相関値演算および相関度演算を行うことも可能である。
D(i,j)=(Aij×Fij−Bij×Eij) (3)
C(N,M)=ΣΣD(i,j)
=ΣΣ(Aij×Fij−Bij×Eij) (4)
【0036】
ステップS200では、画像処理部12は、比較対象画像30内における基準画素位置32の走査が終了したか否かをチェックし、走査が終了していない場合には、ステップS150〜S180の動作を繰り返し、基準画素位置32の走査が終了するまで、各基準画素位置32に対応する相関度C(N,M)が算出される。
【0037】
ステップS200で比較対象画像30内の基準画素位置32の走査が終了した場合には、処理はステップS210に進む。この時点で、比較対象画像30上で走査した全ての基準画素位置において(2)式または(4)式で求められる相関度の算出が終了することになる。
【0038】
図17は、このようにして求められた相関度C(N,M)の値の変化を3Dワイヤーフレームで表示したグラフであり、相関度の高い画素アドレスにおいて、相関度C(N,M)の値は極小値を示す。
【0039】
ステップS210では、画像処理部12は、2次元的な画素アドレス(N,M)に対して求められた相関度C(N,M)に基づき、サブピクセル精度、すなわち画素単位以下の小数点の精度で、最も相関度の高い画素アドレスを検出する。図18は、画素単位の精度で相関度C(N,M)の値の極小値C(n,m)を与える画素アドレス(n,m)(ただしn,mは整数)に対して、変数Mの値をmに固定してN軸方向における、画素アドレス(n,m)の周囲の画素アドレスの変数Nの値を横軸にとり、各画素アドレスに対応した相関度C(N,m)の値を縦軸に示した図である。画素アドレス(n,m)、ならびに画素アドレス(n,m)に隣接する画素アドレス(n−1,m)および(n+1,m)における相関度を、それぞれ、相関度C(n,m)、ならびに相関度C(n−1,m)およびC(n+1,m)として、等角直線フィッティングを適用してサブピクセル単位の内挿を行う。具体的には、相関度C(n−1,m)およびC(n+1,m)のうちの大きな値を示す相関度とC(n,m)とを結んだ直線と、相関度C(n−1,m)およびC(n+1,m)のうちの小さな値を示す相関度を通り該直線と反対の傾きを持つ直線との交点として得られる画素アドレス(n’,m)を算出する。(5)〜(8)式に示されるように、中間演算パラメータDEFNおよびSLPNを求めることにより、サブピクセル単位で内挿された画素アドレス(n’,m)と、画素アドレス(n’,m)に対応する相関度C(n’,m)を求める。こうして求められた相関度C(n’,m)の値は、相関度C(N,m)の最小値である。
DEFN={C(n−1,m)−C(n+1,m)}/2 (5)
SLPN=MAX{C(n−1,m)−C(n,m),C(n+1,m)−C(n,m)} (6)
n’=n+DEFN/SLPN (7)
C(n’,m)=C(n,m)−|DEFN| (8)
【0040】
また、同様にして、変数Nの値をnに固定してM軸方向における、画素アドレス(n,m)、ならびに画素アドレス(n,m)に隣接する画素アドレス(n,m−1)および(n,m+1)における相関度を、それぞれ、相関度C(n,m)ならびにC(n,m−1)およびC(n,m+1)として、等角直線フィッティングを適用してサブピクセル単位の内挿を行う。(9)〜(12)式に示されるように、中間演算パラメータDEFMおよびSLPMを求めることにより、サブピクセル単位で内挿された画素アドレス(n,m’)と、画素アドレス(n,m’)に対応する相関度C(n,m’)を求める。
DEFM={C(n,m−1)−C(n,m+1)}/2 (9)
SLPM=MAX{C(n,m−1)−C(n,m),C(n,m)−C(n,m+1)} (10)
m’=m+DEFM/SLPM (11)
C(n,m’)=C(n,m)−|DEFM| (12)
【0041】
以上の処理により、相関度C(N,M)の値が最小のときの画素アドレス(n’,m’)、すなわち最高相関を与えるサブピクセル単位の画素アドレス(n’,m’)が特定される。
【0042】
なお、中間演算パラメータSLPNおよびSLPMは、相関度C(N,M)の値の落ち込みの傾斜量を表すパラメータであり、このパラメータが第1の所定閾値より小さい場合には、画像処理部12は、算出された画素アドレス(n’,m’)の信頼性が低いと判定する。このとき、画像処理部12は、基本画像中の顔画像21に類似する部分画像33が比較対象画像30中には含まれているか否かを、判定不能である。
【0043】
また内挿された相関度C(n’,m)およびC(n,m’)の値が第2の所定閾値より大きな場合にも、画像処理部12は、算出された画素アドレス(n’,m’)の信頼性が低いと判定する。このとき、画像処理部12は、基本画像中の顔画像21に類似する部分画像33が比較対象画像30中には含まれているか否かを判定不能である。
【0044】
以上のようにして、高相関度を示す画素アドレス(n’,m’)が求められると、画素アドレス(n’,m’)を基準として顔画像21と同じ大きさの範囲が、画像表示部13において、比較対象画像30に重畳して、例えば図4の部分画像31として示すように、表示される。最後にステップS220で、画像処理部12は本処理を終了する。
【0045】
本実施の形態における顔検索装置10は相関演算に差分総和演算を用いている。そのため、ステップS150〜S200における相関度の算出ループにおいて、(2)式で示すC(N,M)の積算途中で第3の所定閾値を越えた場合には積算処理を中止するような計算時間短縮手法(SSDA)をステップS180とS190との間に追加することも可能である。こうすることにより、比較対象画像を走査する時間を大幅に短縮することも出来る。
【0046】
上述した(2)式を用いた相関度演算において、相関度と第3の所定閾値との比較により信頼性判定や演算打ち切りを行うと、部分画像33のデータレベルが全体的に低い場合、例えば部分画像33が暗黒部に含まれてしまった場合、相関度の値が低く算出されてしまい、誤った結果を招く虞がある。
【0047】
そこで画素アドレス(i,j)の相関画素位置23における相関値D(i,j)が、該相関値D(i,j)の算出に用いられる画素データ値Aij、Bij、EijおよびFijを用いて、画素位置単位で正規化されるようにしてもよい。例えば(1)式が正規化されると(13)式が得られる。
D(i,j)
=|Aij×Fij−Bij×Eij|/|Aij×Fij+Bij×Eij| (13)
【0048】
この場合、比較対象画像30の画素アドレス(N,M)の基準画素位置32における正規化された相関度C(N,M)は(14)式で表される。
C(N,M)
=ΣΣ{|Aij×Fij−Bij×Eij|/|Aij×Fij+Bij×Eij|} (14)
【0049】
また、(13)式のように、相関画素位置23の走査に伴って画素アドレス(i,j)毎に相関値D(i,j)の除算による正規化を行うと演算時間の増大を招くので、(2)式で算出した相関度が、該相関度算出に用いられた画素データ値Aij、Bij、EijおよびFijを用いて正規化されることとしてもよい。例えば(2)式が正規化されると(15)式が得られる。
C(N,M)=ΣΣ{|Aij×Fij−Bij×Eij|}/ΣΣ{|Aij×Fij+Bij×Eij|} (15)
【0050】
(13)〜(15)式の除算部分の正規化演算は、上述した演算に限定されたものではなく、顔画像と部分画像との積のデータレベルを反映する演算であれば他の演算であってもかまわない。例えば(15)式の代わりに(16)式のような演算であってもよい。
C(N,M)=ΣΣ{|Aij×Fij−Bij×Eij|}/ΣΣ{Aij×Bij} (16)
【0051】
以上説明した本発明の処理およびデータフローをブロック化してまとめると、図19のようになる。図19において、破線50で囲んだ部分が相関度算出に用いられる4つの画像(顔画像、部分画像、基本ローパス画像、比較対象ローパス画像)である。顔画像は基本画像から顔画像検出を行うことにより抽出される。顔画像に対する周波数解析に基づいてローパスフィルタ処理のローパスフィルタ特性が設定され、該ローパスフィルタ処理を基本画像および比較対象画像に施すことにより、基本ローパス画像および比較対象ローパス画像が得られる。また顔画像と同じ大きさの領域の部分画像が、比較対象画像内を順次走査される。4つの画像(顔画像、部分画像、基本ローパス画像、比較対象ローパス画像)に対して上述した相関演算処理が行われることにより、比較対象画像中の基準画素位置毎の相関度が算出される。
【0052】
また、以上の説明では、比較対象画像から部分画像を抽出し、該部分画像と顔画像との相関度が算出されることとしているが、一般的には部分画像を抽出する処理は必須ではなく、2つの画像の相関度を算出する場合の相関演算に本発明を適用することができる。その場合には、相関度を算出する対象である2つの画像を第1画像、第2画像とすれば、第1画像および第2画像に対してローパスフィルタ処理が施され、所定値(特定周波数)以上の高い空間周波数成分が第1画像および第2画像よりも低減された2次元画像情報である第3画像および第4画像が算出される。第1画像、第2画像、第3画像および第4画像の4つの画像に対し、上述した相関演算が施されることにより算出される第1画像と第2画像との相関度は、第1画像と第2画像との間に存在する一律な照明変動や空間的に低周波な照明ムラに対して高いロバスト性を示すことができる。
【0053】
本発明の相関演算装置は、上述したような顔検索装置への適用に限定されず、テンプレートマッチングやパターンマッチングや動きベクトル検出などの位置変数に依存した関数データにおいて相関演算が用いられる情報処理装置であればどのような装置にでも適用が可能である。例えば、動画における特定物体の追跡や画像ブレ検出や電子式ブレ補正にも適用可能である。また複数画像を1つの画像に合成する場合の対応点抽出などにも適用できる。また、本発明の相関演算装置は、2次元画像データのような2次元的な位置変数に依存した関数データへの適用に限定されず、ともに3次元以上の位置変数に依存した第1関数データと比較対象となる第2関数データとの相関度を算出するというような相関演算にも適用することができる。また、本発明の相関演算装置により行われる相関演算は、デジタル演算への適用に限定されず、アナログ演算にも適用することができる。
【符号の説明】
【0054】
10 顔検索装置、11 画像記憶部、12 画像処理部、13 画像表示部、
20 基本画像、21 顔画像、22 基準画素位置、23 相関画素位置、
30 比較対象画像、31 部分画像、32 基準画素位置、33 部分画像、
41 顔画像、43 部分画像、50 ローパスフィルタ、
111、112、113、114、115 領域、
141、142、143、144、145、146 領域

【特許請求の範囲】
【請求項1】
位置変数に依存した第1関数データおよび第2関数データに対してローパスフィルタ処理を施し、前記第1関数データおよび前記第2関数データにそれぞれ対応する第3関数データおよび第4関数データを生成するローパスフィルタ手段と、
前記位置変数の1つの変数値における前記第1関数データと前記第4分布関数データとを乗じた第1積データと、該変数値における前記第2関数データと前記第3関数データとを乗じた第2積データとの差分に基づき、該変数値における前記第1積データと前記第2積データとの相関値を算出し、前記変数値が変化する毎の前記相関値を積算して得られる積算値に基づき、前記第1関数データと前記第2関数データとの相関度を算出する相関演算手段とを備えることを特徴とする相関演算装置。
【請求項2】
請求項1に記載の相関演算装置において、
前記相関値は、前記差分の絶対値であることを特徴とする相関演算装置。
【請求項3】
請求項1に記載の相関演算装置において、
前記相関値は、前記変数値における前記第1関数データ、前記第2関数データ、前記第3関数データおよび前記第4関数データを用いて前記差分の絶対値を正規化することにより算出されることを特徴とする相関演算装置。
【請求項4】
請求項1または2に記載の相関演算装置において、
前記相関度は、前記変数値における前記第1関数データおよび前記第2関数データを用いて前記積算値を正規化することにより算出されることを特徴とする相関演算装置。
【請求項5】
請求項1乃至4のいずれか1項に記載の相関演算装置において、
前記第1関数データ、前記第2関数データ、前記第3関数データおよび前記第4関数データの次元は2次元以上であり、
前記変数値は、前記第1関数データが依存する前記位置変数の範囲であることを特徴とする相関演算装置。
【請求項6】
請求項1乃至5のいずれか1項に記載の相関演算装置において、
前記第1関数データおよび前記第2関数データは、ともに画素単位のデジタルデータからなる2次元画像データとして表される第1画像および第2画像にそれぞれ対応し、
前記ローパスフィルタ手段は、前記第1画像および前記第2画像に対する前記ローパスフィルタ処理として2次元ローパスフィルタ処理を施し、特定周波数以上の空間周波数成分が抑制された2次元画像データとして表される第3画像および第4画像にそれぞれ対応する前記第3関数データおよび前記第4関数データを生成し、
前記相関演算手段は、前記変数値に対応する画素位置における前記第1画像の画素データと前記第4画像の画素データとを乗じて得られる前記第1積データと、該画素位置における前記第2画像の画素データと記第3画像の画素データとを乗じて得られる前記第2積データとの前記差分に基づき該画素位置における前記相関値を算出し、前記画素位置が変化する毎の前記相関値を積算して得られる前記積算値に基づき前記相関度を算出することを特徴とする相関演算装置。
【請求項7】
請求項6に記載の相関演算装置において、
前記第1画像の空間周波数分布を検出する空間周波数分布検出手段をさらに備え、
前記2次元ローパスフィルタ処理は、前記空間周波数分布検出手段により検出された前記空間周波数分布に基づき、前記第1画像および前記第2画像に対して前記特定周波数以上の前記空間周波数成分を抑制する処理であることを特徴とする相関演算装置。
【請求項8】
請求項6または7に記載の相関演算装置において、
2次元画像データとして表される第5画像の部分画像を前記第2画像として抽出する部分画像抽出手段と、
前記部分画像の前記第5画像上での抽出位置を、前記第5画像における基準画素位置を画素単位で2次元的に走査する際の前記基準画素位置に応じて順次変更する部分画像抽出位置変更手段と、
前記基準画素位置に応じた前記抽出位置に対応して前記相関演算手段により算出される前記相関度に基づき、前記相関度を表す値の極小値に対応する前記基準画素位置を特定する特定手段とをさらに備えることを特徴とする相関演算装置。
【請求項9】
請求項8に記載の相関演算装置において、
前記特定手段は、特定した前記極小値に対応する前記基準画素位置と、該基準画素位置周辺の画素位置における前記相関度を表す値と、前記極小値とに基づいて内挿演算を行うことにより、前記相関度を表す値が最小のときの前記部分画像の前記第5画像上での前記抽出位置を、画素単位以下の精度で特定することを特徴とする相関演算装置。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate


【公開番号】特開2013−109589(P2013−109589A)
【公開日】平成25年6月6日(2013.6.6)
【国際特許分類】
【出願番号】特願2011−254282(P2011−254282)
【出願日】平成23年11月21日(2011.11.21)
【出願人】(000004112)株式会社ニコン (12,601)
【Fターム(参考)】