(58)【調査した分野】(Int.Cl.,DB名)
前記対応点探索部は、前記相関値の最大値を前記第1相関ピークとして判定し、大きさが2番目以降の相関値については、所定の値より大きい相関値を、前記第2相関ピークとして判定する請求項1又は2記載の対応点探索装置。
前記対応点探索部は、前記探索範囲内の注目位置の相関値に対する、前記注目位置に隣接する位置の相関値の比が、所定の値以下の場合、前記注目位置に相関ピークが現れていると判定する請求項1〜4のいずれかに記載の対応点探索装置。
前記対応点探索部は、前記探索範囲内の注目位置の相関値から前記注目位置に隣接する位置の相関値を差し引いた差分値が所定の値より大きい場合、前記注目位置に相関ピークが現れていると判定する請求項1〜4のいずれかに記載の対応点探索装置。
前記対応点探索部は、前記注目階層の参照画像において、前記初期位置設定部により複数の初期探索位置が決定された場合、各初期探索位置を基準として前記探索範囲を設定し、
前記初期位置設定部は、前記対応点探索部により各探索範囲において複数の対応点が探索された場合であっても、全対応点に対する初期探索位置を前記注目階層の1つ上の階層の参照画像に設定する請求項1〜8のいずれかに記載の対応点探索装置。
前記初期位置設定部は、前記注目階層において前記対応点探索部により探索された対応点の個数が所定の上限値を超えた場合、前記上限値以下の対応点に対して前記初期探索位置を設定する請求項1〜9のいずれかに記載の対応点探索装置。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態による対応点探索装置について説明する。
図1は、本発明の実施の形態による対応点探索装置が適用された対応点探索システムのブロック図である。この対応点探索システムは、例えば自動車等の車両の車体に搭載され、カメラ101(カメラA)、カメラ102(カメラB)、及び対応点探索装置110を備えている。
【0012】
カメラ101,102は、車体の進行方向に直交し、かつ水平方向に平行な方向である左右方向に所定の間隔を設けて、進行方向を中心に対称となるように同一高さ位置に配設され、所定のフレームレートで車体の前方を撮像する。ここで、カメラ101,102の光軸は平行である。
【0013】
また、カメラ101,102は、同一時刻においてフレームが撮影されるように撮影タイミングの同期が図られている。なお、カメラの台数は2台に限定されず、3台以上にしてもよい。
【0014】
対応点探索装置110は、例えば、マイクロコントローラにより構成され、カメラ101,102において例えば時刻tで撮像された2枚の画像に対して対応点の探索処理を実行する。
【0015】
具体的には、対応点探索装置110は、画像取得部103、多重解像度画像生成部104、探索制御部105、初期位置設定部106、及び対応点探索部109を備えている。対応点探索部109は、対応点決定部107及び対応点候補決定部108を備えている。
【0016】
画像取得部103は、カメラ101により撮影された入力画像を基準画像として取得すると共に、カメラ102により撮影された入力画像を参照画像として取得し、図略のメモリに記憶する。ここで、入力画像としては、例えば0(黒)〜255(白)の256階調値を有する複数の画素がマトリックス状に配列されたデジタルの画像データを採用することができる。
【0017】
なお、カメラの台数が3台以上の場合は、いずれか1台のカメラで撮像された入力画像が基準画像とされ、残りの複数の入力画像がそれぞれ参照画像とされる。
【0018】
多重解像度画像生成部104は、画像取得部103により取得された基準画像及び参照画像をそれぞれ低解像度化することで、下位の階層から上位の階層に向かうにつれて解像度が高くなるように、解像度の異なる複数の基準画像及び参照画像をそれぞれ階層的に生成する。ここで、階層の数及び各階層の解像度としては予め定められた値を採用することができる。また、最上位の階層の基準画像及び参照画像は、低解像度化がされていない画像が採用される。また、同一階層において、基準画像及び参照画像の解像度は同一である。また、階層化された基準画像及び参照画像の複数の階層のうち、注目する1つの階層を“注目階層”と記述する。
【0019】
図2は、多重解像度画像生成部104により階層化された基準画像及び参照画像を示した図である。
図2の例では、階層数は4とされている。また、
図2の例では入力画像の解像度はVGA(640×480)であり、階層間の解像度の変換倍率は1/2に設定されている。
【0020】
よって、1番目の階層L1(最上位の階層)の基準画像及び参照画像の解像度はVGAとなる。また、2番目の階層L2の基準画像及び参照画像の解像度はQVGA(320×240)となる。また、3番目の階層L3の基準画像及び参照画像の解像度は(160×120)となる。また、4番目の階層L4(最下位の階層層)の基準画像及び参照画像の解像度は(80×60)となる。
【0021】
例えば、階層L3のある点(x,y)は、階層L2の点(2x,2y)、(2x+1,2y)、(2x,2y+1)、(2x+1,2y+1)の2×2の画素の平均値として求められる。
【0022】
変換倍率は1/2に限らず、1/3など小さくし、階層数を少なくしてもよい。この場合、高速な処理が可能となる。
【0023】
また、逆に変換倍率を1/1.5のように大きくし、階層数を増大させても良い。この場合、階層数が増加して、演算負荷は大きくなるが、より細かな探索が可能となり、ロバスト性を向上させることができる。
【0024】
また、階層間で変換倍率を等しくする必要はなく、例えば、上位の階層では変換倍率を小さくして、下位の階層に向かうにつれて変換倍率を大きくしてもよい。
【0025】
各階層で設定される探索範囲を一定とすると、下位の階層に設定された探索範囲内には距離の異なる複数の被写体が存在する。つまり、下位の階層の探索範囲では距離混合が激しくなってしまう。
【0026】
そこで、下位の階層に向かうにつれて変換倍率を大きくすることで、解像度の低い階層が多くなり、下位の階層において対応点をきめ細かく探索することができ、ロバスト性を担保することができる。また、解像度の高い階層が少なくなり、上位の階層ではロバスト性よりも高速化に重きを置くことができる。これにより、下位の階層から上位の階層に渡りトータルバランスが取れた対応点の探索処理が可能となる。
【0027】
図1に戻り、探索制御部105は、対応点決定部107に下位の階層から上位の階層に向けて順次に対応点を探索させる。
図3は、探索制御部105による制御の下、対応点を探索する対応点決定部107の処理の流れを示した図である。
【0028】
なお、
図3において、階層数、変換倍率は
図2と同じである。例えば、階層L3の基準画像上のある注目点R3(x3、y3)に対応する参照画像上の対応点T3(p3、q3)が対応点決定部107によって求められる。
【0029】
次に、階層L2の基準画像上の注目点R2(x2、y2)に対応する参照画像上の対応点T2(p2,q2)を探索するとき、階層L3における探索結果を利用する。具体的には、階層L2の対応点T2(p2,q2)は、階層L3の対応点T3(p3、q3)をおよそ2倍にした位置の近傍にあると考えられる。
【0030】
そこで、対応点決定部107は、階層L2において、対応点T3(p3,q3)を2倍した位置を基準に探索範囲を設定し、この位置の周辺を重点的に探索する。これにより、効率良く対応点T2(p2,q2)を探索することができる。
【0031】
そして、対応点決定部107は、対応点T2(p2,q2)を探索すると、階層L1において、対応点T2(p2,q2)を2倍にした位置を基準に探索範囲を設定し、この位置の周辺を重点的に探索する。これにより、効率良く対応点T1(p1,q1)を探索することができる。
【0032】
このように、下位の階層の探索結果を利用して上位の階層に探索範囲を設定し、対応点を探索していく多重解像度戦略を用いることで、対応点を効率良く探索することができる。なお、多重解像度戦略は、粗密戦略とも呼ばれている。
【0033】
図1に戻り、初期位置設定部106は、注目階層の1つ下の階層で探索された対応点を基に、注目階層の参照画像における初期探索位置を設定する。ここで、初期位置設定部106は、対応点決定部107により注目階層の1つ下の階層で複数の対応点が探索された場合、各対応点に対する初期探索位置を注目階層の参照画像上に設定する。
【0034】
図4は、階層L2及び階層L3のそれぞれにおいて基準画像及び参照画像の一部を切り出した図である。以下、
図4を用いて、初期位置設定部106による処理を説明する。階層L3の注目点(bx,by)は、多重解像度画像生成部104により、階層L2の点(BX,BY),(BX+1,BY),(BX,BY+1),(BX+1,BY+1)の2×2の平均値として求められている。
【0035】
階層L3の参照画像の点(rx,ry)は注目点(bx,by)の対応点である。階層L3における対応点(rx,ry)から、階層L2の参照画像には下記の式により初期探索位置が設定される。
【0036】
(RX,RY)=(2×rx,2×ry)
(RX+1,RY)=(2×rx+1,2×ry)
(RX,RY+1)=(2×rx,2×ry+1)
(RX+1,RY+1)=(2×rx+1,2×ry+1)
【0037】
これら4つの点(RX,RY),(RX+1,RY),(RX,RY+1),(RX+1,RY+1)が階層L2の初期探索位置となる。これにより、初期探索位置をより正確に設定することができる。なお、演算を簡略化するために、(RX,RY),(RX+1,RY),(RX,RY+1),(RX+1,RY+1)の4点を求めることなく、(RX,RY)=(2×rx,2×ry)を初期探索位置として設定してもよい。
【0038】
図1に戻り、対応点探索部109は、注目階層の基準画像における注目点に対する対応点を、注目階層の参照画像から探索する。対応点探索部109は、対応点決定部107及び対応点候補決定部108を備えている。
【0039】
対応点決定部107は、注目階層において設定された初期探索位置を基準として、注目階層の参照画像に所定の探索範囲を設定し、設定した探索範囲内の各位置において注目点に対する相関値を算出する。
【0040】
ここで、対応点決定部107は、例えば、POC(位相限定相関法)を用いて探索範囲の各位置の相関値を算出する。
図5(A)は、POCの処理の流れを示した図である。まず、対応点決定部107は、基準画像の注目点を中心として基準ウィンドウを設定し、かつ、参照画像に参照ウィンドウを設定する(S1)。なお、基準ウィンドウと参照ウィンドウとのサイズは同じであり、それぞれ、四角形である。
【0041】
次に、対応点決定部107は、基準ウィンドウ内の画像及び参照ウィンドウ内の画像に対して、フーリエ変換を行う(S2)。
【0042】
なお、フーリエ変換は式(1)で表される。
【0043】
【数1】
ここで、x,yは入力画像の水平,垂直方向を表し、u,vは、x方向,y方向に対応する周波数を表し、N1,N2はウィンドウサイズを表し、f(x,y)は画素値を表し、F(u,v)はf(x,y)の周波数空間の値を表す。
【0044】
例えば、基準ウィンドウ及び参照ウィンドウのサイズが33×17の場合、周波数uは1個の直流成分と16個の交流成分とで表され、周波数vは1個の直流成分と8個の周波数成分とで表される。なお、実際には、周波数uの交流成分は32個存在するが、直流成分を中心に対称的なデータを持つので、16個の交流成分を持つ。
【0045】
フーリエ変換は、ウィンドウサイズが2のべき乗の場合は、バタフライ演算を特徴とするFFT(高速フーリエ変換)を使用することができる。そのため、処理の高速化の観点からはウィンドウサイズは2のべき乗にすることが好ましい。例えば、ウィンドウサイズが32×16の場合、周波数uは1個の直流成分と15個の交流成分とで表され、周波数vは1個の直流成分と7個の交流成分とで表される。
【0046】
次に、対応点決定部107は、フーリエ変換した基準ウィンドウ内の画像を、式(2)を用いて、位相成分θ(u,v)と振幅成分A(u,v)とに分け、かつ、フーリエ変換した参照ウィンドウ内の画像を、式(2)を用いて、位相成分φ(u,v)と振幅成分B(u,v)とに分ける(S3)。
【0047】
【数2】
ここで、Re(u,v)はフーリエ変換された画像の実部を示し、Im(u,v)はフーリエ変換された画像の虚部を示している。
【0048】
次に、対応点決定部107は、位相成分θ(u,v)と位相成分φ(u,v)との差分をとり、位相差画像を求める(S4)。
【0049】
次に、対応点決定部107は、位相差画像を逆フーリエ変換し(S5)、相関値であるPOC値を求める。
図5(B)は、位相差画像を逆フーリエ変換することで得られたPOC値の分布を示したグラフである。
図5(B)に示すように、位相差画像を逆フーリエ変換することで、基準ウィンドウ内の画像と参照ウィンドウ内の画像との各位置におけるPOC値が求められる。
【0050】
具体的には、x軸及びy軸は、それぞれ、基準ウィンドウ内の画像に対する参照ウィンドウ内の画像のずれ量のx成分及びy成分を示し、z軸はPOC値を示している。
【0051】
基準ウィンドウ内の画像に対して、参照ウィンドウ内の画像が(xs,ys)ずれていたとすると、(xs,ys)の位置に相関ピークが現れる。このように、位相限定相関法は、ずれ量を示す位置に急峻な相関ピークが現れることが特徴であり、基準ウィンドウ内の画像に対する参照ウィンドウ内の画像のずれ量を正確に求めることができる。なお、このx軸及びy軸で表される各位置のPOC値が探索範囲内の各位置の相関値に相当する。
【0052】
そして、対応点決定部107は、相関ピークが現れた位置が(xs,ys)であったとすると、参照ウィンドウの中心を(xs,ys)ずらした位置を対応点として決定する。
【0053】
図1に戻り、対応点候補決定部108は、対応点決定部107により算出された相関値に基づき、複数の相関ピークが現れているか否かを判定する。そして、対応点決定部107は、対応点候補決定部108により複数の相関ピークが現れていると判定された場合、相関ピークが示す相関値同士の比を算出し、算出した比に基づいて、1又は複数の対応点を決定し、初期位置設定部106に通知する。
【0054】
図6は、POC値の分布の一例を示したグラフであり、縦軸はPOC値を示し、横軸は位置を示している。なお、
図6は、説明を簡素化するために1次元のグラフでPOC値の分布を示している。
【0055】
従来はPOC値が最も高い位置を対応点として決定し、かつ、その位置のPOC値の大きさに基づき、対応点の信頼度を求めていた。ここで、信頼度は、対応点の確からしさを示し、アルゴリズムの設計に依存するが、例えば、全POC値の総和が1となるように各POC値を正規化した値が採用される。そして、信頼度が例えば0.2以上であれば、その対応点は信頼性が高いと判定される。
【0056】
次に、本実施の形態による対応点探索装置が解決したいケースについて説明する。
図7は、従来の手法の問題点を説明するためのグラフであり、(A)はある階層L(i)において2つの相関ピークが現れた場合のPOC値の分布を示すグラフであり、(B)、(C)は階層L(i)よりも1つ上の階層L(i−1)におけるPOC値の分布を示すグラフである。
【0057】
従来の手法では、
図7(A)に示すように2つの相関ピークが現れた場合、信頼度が高い方の相関ピークが現れている位置を用いて対応点が決定されていた。しかしながら、2つの相関ピークのうちどちらが本当の対応点を示しているかを特定するのは容易ではない。特に、2つの相関ピークの信頼度が共に拮抗しているような場合、本当の対応点を決定することは困難である。
【0058】
図7(A)において正しい方の対応点を選択した場合、その対応点に基づいて探索範囲を設定し、階層L(i−1)で対応点を探索すると、
図7(B)に示すようにPOC値の分布に急峻な相関ピークが現れ、階層L(i−1)においても正しい対応点を探索できる。
【0059】
一方、
図7(A)において正しくない方の対応点を選択した場合、その対応点に基づいて探索範囲を設定し、階層L(i−1)で対応点を探索すると、
図7(C)に示すように、急峻な相関ピークが現れず、階層L(i−1)において正しい対応点を探索できる可能性が低くなる。
【0060】
そこで、本実施の形態では、階層L(i)において2個の相関ピークが検出された場合において、両相関ピークの相関値が拮抗しており、どちらが正解であるかの判定がし難い場合、一方の相関ピークを用いて対応点を決定するのではなく、2個の相関ピークを共に用いて2個の対応点を決定する。そして、階層L(i−1)において両対応点のそれぞれに対して探索範囲を設定して対応点を探索するというようにして、対応点の判断を階層L(i−1)に委ねている。
【0061】
ここで、探索範囲のサイズは全階層において一定であるため、参照画像に対する探索範囲の相対的なサイズは、上位の階層に向かうにつれて小さくなる。そのため、上位の階層に向かうほど、探索範囲が絞られ、探索範囲内に距離が異なる複数の被写体が含まれる可能性が低くなる。その結果、最終的に1つの相関ピークのみが現れる可能性を高くすることができ、精度の良い対応点探索を実現することができる。
【0062】
具体的には、まず、対応点候補決定部108は、探索範囲においてPOC値が最大の位置を抽出し、その位置に第1相関ピークが現れていると判定する。次に、対応点候補決定部108は、2番目に大きいPOC値が所定の閾値α1より大きい場合、その位置に第2相関ピークが現れていると判定する。この場合、複数の相関ピークが現れていると判定される。
【0063】
一方、2番目に大きいPOC値が閾値α1以下である場合、対応点候補決定部108は、第1相関ピークのみを相関ピークとして判定する。この場合、相関ピークが1つだけ現れていると判定される。なお、閾値α1としては、相関ピークを表していないことが明白な相関値を採用することができる。
【0064】
そして、対応点決定部107は、対応点候補決定部108により複数の相関ピークが現れていると判定された場合、第1相関ピークの相関値P1に対する第2相関ピークの相関値P2の比(P2/P1)を算出する。
【0065】
そして、対応点決定部107は、比が所定の値Vth1以下の場合、第1相関ピークの位置のみを用いて対応点を決定する。一方、対応点決定部107は、比が値Vth1より大きい場合、第1、第2相関ピークの位置をそれぞれ用いて2つの対応点を決定する。
【0066】
図8は、本実施の形態による対応点の探索処理を説明するグラフであり、縦軸はPOC値を示し、横軸は位置を示している。
図8(A)では2つの相関ピークPK1,PK2が現れているが、相関値P1に対する相関値P2の比が値Vth1よりも低い。この場合、対応点決定部107は、相関ピークPK1のみを相関ピークとして決定する。
【0067】
つまり、相関ピークが2つ現れていても相関ピークPK1の相関値P1に比べて相関ピークPK2の相関値P2が小さければ、相関ピークPK1が対応点を示している可能性が高い。そこで、このような場合、相関ピークPK1のみを用いて対応点を決定する。すると、階層L(i−1)において、
図8(B)に示すように、急峻な1つの相関ピークが現れる可能性が高くすることができる。
【0068】
なお、本実施の形態では比としてP2/P1を用いたが、この逆数(P1/P2)を採用してもよい。この場合、対応点候補決定部108は、比が所定の値Vth2より小さい場合、複数の相関ピークが現れていると判定し、比が値Vth2以上の場合、1つの相関ピークが現れていると判定すればよい。
【0069】
また、対応点候補決定部108は、相関値P1から相関値P2を差し引いた差分値(P1−P2)が所定の値Vth3より小さい場合、複数の相関ピークが現れていると判定し、差分値が値Vth3以上の場合、1つの相関ピークが現れていると判定してもよい。
【0070】
なお、所定の値Vth1〜Vth3は、固定値であっても良いし、下記の式を用いて決定してもよい。
【0071】
Vth1〜Vth3=α×P1(αは固定値)
この場合、相関値P1の値に応じて適宜、Vth1〜Vth3の値が決定される。
【0072】
図9は、本発明の実施の形態による対応点探索装置の動作を示すフローチャートである。なお、
図9に示す処理は、カメラ101,102により入力画像が撮影される毎に実行される。
【0073】
まず、画像取得部103は、カメラ101により撮影された入力画像を基準画像、カメラ102により撮影された入力画像を参照画像として取得する(S101)。次に、多重解像度画像生成部104は、基準画像及び参照画像を低解像度化し、解像度の異なる複数の基準画像及び参照画像を生成する(S102)。ここでは、
図2に示すように、階層L1〜L4の4つの階層の基準画像及び参照画像が生成されたとする。
【0074】
次に、探索制御部105は、注目階層を設定する(S103)。ここで、探索制御部105は、
図2の例では、まず、階層L4を注目階層として設定し、次に階層L3を注目階層として設定するというように、階層L4から階層L1に向けて順次に注目階層を設定する。
【0075】
次に、探索制御部105は、全階層に対する探索処理が終了したか否かを判定し、全階層の探索処理が終了している場合(S104でYES)、処理を終了する。一方、全階層の探索処理が終了していない場合(S104でNO)、探索制御部105は、注目階層の基準画像上の注目点として設定されるべき全ての点に対する探索処理が終了しているか否かを判定する(S105)。
【0076】
そして、探索制御部105は、全ての点に対する探索処理が終了していると判定した場合(S105でYES)、処理をS103に戻し、注目階層の1つ上の階層を注目階層として設定する。
【0077】
一方、探索制御部105が全ての点に対する探索処理が終了していないと判定した場合(S105でNO)、対応点決定部107は、注目階層の基準画像に注目点を設定する(S106)。この場合、1つ下の階層で設定された注目点の座標に変換倍率の逆数を乗じた位置を注目階層の注目点として設定すればよい。
【0078】
次に、対応点決定部107は、S106で設定された注目点を中心として注目階層の基準画像に基準ウィンドウを設定する(S107)。
【0079】
次に、初期位置設定部106は、
図4で示した手法を用いて、注目階層の1つ下の階層で探索された対応点を用いて、注目階層の参照画像に初期探索位置を設定する(S108)。
【0080】
この場合、初期位置設定部106は、注目階層の1つ下の階層で例えば2個の対応点が探索されたとすると、注目階層の参照画像に2個の初期探索位置を設定する。また、最下位の階層が注目階層である場合、1つ下の階層が存在していないため、初期位置設定部106は、所定の位置(例えば、中心の位置)を初期探索位置として設定すればよい。
【0081】
次に、対応点決定部107は、S108で設定した初期探索位置を基準に注目階層の参照画像上に探索範囲を設定する(S109)。ここで、探索範囲は、初期探索位置に中心が位置するように設定され、全階層において同じサイズを持つ。
【0082】
また、S108において、複数の初期探索位置が設定された場合、対応点決定部107は、各初期探索位置を基準に複数の探索範囲を設定する。
【0083】
次に、対応点決定部107は対応点探索処理を実行する(S110)。ここで、S109において複数の探索範囲が設定された場合、対応点決定部107は、全探索範囲から対応点を探索する。S110の処理が終了すると、処理がS105に戻され、処理が継続される。
【0084】
図10は、
図9のS110の処理の詳細を示すフローチャートである。まず、対応点決定部107は、S109で設定した探索範囲において参照ウィンドウを設定する(S201)。
【0085】
次に、対応点決定部107は、基準ウィンドウ内の画像及び参照ウィンドウ内の画像のそれぞれに対してフーリエ変換を行う(S202)。
【0086】
次に、対応点決定部107は、フーリエ変換された基準ウィンドウ内の画像及び参照ウィンドウ内の画像の位相成分θ(u,v),φ(u,v)を抽出する(S203)。
【0087】
次に、対応点決定部107は、両位相成分の差分をとり(θ(u,v)−φ(u,v))、位相差画像を算出する(S204)。
【0088】
次に、対応点決定部107は、位相差画像を逆フーリエ変換し、POC値の分布を算出する(S205)。これにより、探索範囲の各位置におけるPOC値が得られる。
【0089】
次に、対応点候補決定部108は、複数の相関ピークが現れているか否かを判定する(S206)。そして、第1、第2相関ピークが現れていると判定された場合(S206でYES)、対応点決定部107は、相関値P1に対する相関値P2の比(P2/P1)が値Vth1より大きいか否かを判定する(S207)。
【0090】
そして、対応点決定部107は、比(P2/P1)が値Vth1より大きい場合(S207でYES)、第1、第2相関ピークの位置を用いて2個の対応点を決定する(S208)。具体的には、対応点決定部107は、第1相関ピークの位置から基準ウィンドウ内の画像に対する参照ウィンドウ内の画像のずれ量を求め、参照ウィンドウの中心をずれ量分だけずらした位置を対応点として決定する。また、対応点決定部107は、第2相関ピークについても第1相関ピークと同様にして、対応点を決定する。
【0091】
一方、第1、第2相関ピークが現れていないと判定された場合(S206でNO)、対応点決定部107は処理をS209に進める。また、比(P2/P1)が値Vth1以下である場合(S207でNO)、対応点決定部107は処理をS209に進める。
【0092】
次に、対応点決定部107は、第1相関ピークの位置を用いて1個の対応点を決定する(S209)。
【0093】
<変形例1>
上記実施の形態では、POC値の大きさから複数の相関ピークが現れているか否かを判定していた。変形例1は、POC値の大きさに加えて他の判断基準を用いて複数の相関ピークが現れているか否かを判定する。
【0095】
i)相関値がピークの頂点に位置している場合、その相関値を相関ピークとして決定する。この場合、対応点候補決定部108は、まず、最大の相関値P1を特定する。そして、相関値P1がピークの頂点に位置しているか否かを判定する。そして、相関値P1がピークの頂点に位置していれば、相関値P1を第1相関ピークと判定する。ここで、ピークの頂点に位置するか否かは、相関値を微分することで判定すればよい。一方、相関値P1がピークの頂点に位置していない場合、次に大きな相関値P1’がピークの頂点に位置していれば、相関値P1’を第1相関ピークと判定すればよい。
【0096】
次に、対応点候補決定部108は、第1相関ピークが特定できた場合、閾値α1より大きな相関値P2を特定する。次に、相関値P2がピークの頂点に位置していれば、相関値P2を第2相関ピークと判定する。一方、相関値P2がピークの頂点に位置していなければ、次に大きな相関値であって閾値α1よりも大きな相関値P2’を特定し、相関値P2と同様にして、第2相関ピークであるか否かを判定する。
【0097】
ii)探索範囲内の注目位置の相関値に対する、注目位置に隣接する位置の相関値の比が、所定の値より小さい場合、注目位置に相関ピークが現れていると判定する。
【0098】
この場合、対応点候補決定部108は、まず、最大の相関値P1を特定する。次に、相関値P1に隣接する位置の相関値P1_1を特定する。そして、P1_1/P1が所定の閾値α2以下の場合、相関値P1が第1相関ピークであると判定する。なお、注目位置に隣接する位置として4近傍の位置、8近傍の位置を採用してもよい。例えば、4近傍の位置を採用した場合、4近傍の位置の相関値をそれぞれP1_1〜P1_4とすると、P1_1/P1,P1_2/P1,P1_3/P1,P1_4/P1の少なくとも1つ、2つ、3つ、又は全部が閾値α2以下の場合、相関値P1が第1相関ピークであると判定すればよい。
【0099】
ここで、相関値P1が第1相関ピークでないと判定した場合、次に大きな相関値P1’を特定し、相関値P1と同様にして、相関値P1’が第1相関ピークであるか否かを判定すればよい。
【0100】
次に、対応点候補決定部108は、第1相関ピークが判定できた場合、次に大きな相関値であって、閾値α1よりも大きな相関値P2を特定し、第1相関ピークを判定した手法と同じ手法を用いて第2相関ピークを検出する。
【0101】
iii)探索範囲内の注目位置の相関値から注目位置に隣接する位置の相関値を差し引いた差分値が所定の値より大きい場合、注目位置に相関ピークが現れていると判定する。
【0102】
この場合、対応点候補決定部108は、まず、最大の相関値P1を特定する。次に、相関値P1に隣接する位置の相関値P1_1を特定する。そして、P1−P1_1により差分値ΔP1を求める。次に、差分値ΔP1が所定の閾値α3より大きい場合、相関値P1が第1相関ピークであると判定する。なお、注目位置に隣接する位置として4近傍の位置、8近傍の位置を採用してもよい。例えば、4近傍の位置を採用した場合、4近傍の位置の相関値をそれぞれP1_1〜P1_4とすると、相関値P1とそれぞれの相関値P1_1〜P1_4との差分値ΔP1〜ΔP4を求め、1つ、2つ、3つ、又は全差分値が閾値α3より大きい場合、相関値P1が第1相関ピークであると判定すればよい。
【0103】
ここで、相関値P1が第1相関ピークでないと判定した場合、次に大きな相関値P1’を特定し、相関値P1と同様にして、相関値P1’が第1相関ピークであるか否かを判定すればよい。
【0104】
次に、対応点候補決定部108は、第1相関ピークが判定できた場合、次に大きな相関値であって、閾値α1よりも大きな相関値P2を特定し、第1相関ピークを判定した手法と同じ手法を用いて第2相関ピークを検出する。
【0105】
変形例1に示すi)〜iii)のいずれかの手法を用いることで相関ピークをより正確に検出することができる。
【0106】
<変形例2>
上記実施の形態では、最大の相関値P1を第1相関ピーク、相関値P1の次に相関値が大きく、かつ、閾値α1より大きな相関値P2を第2相関ピークと判定していた。
図11は、大きな相関値が隣接して分布している場合のPOC値の分布を示したグラフであり、縦軸はPOC値を示し、横軸は位置を示している。
【0107】
図11に示すように、相関値P1に隣接する相関値P1’は、値は大きいが、ピークの頂点に位置していないため、相関ピークとして検出することは好ましくない。
【0108】
そこで、変形例2は、隣接した位置に相関ピークが現れているとは判定しないことを特徴とする。具体的には、対応点候補決定部108は、まず、最大の相関値P1を第1相関ピークとして判定する。そして、相関値P1の次に大きな相関値であって、閾値α1よりも大きな相関値P2を検出する。そして、相関値P2が相関値P1に隣接していれば、相関値P2を第2相関ピークとして検出しない。
【0109】
一方、相関値P2が相関値P1に隣接していなければ、相関値P2を第2相関ピークとして検出する。ここで、対応点候補決定部108は、相関値P2が相関値P1に対して例えば2画素以上離間していれば、つまり、1画素分離れて位置していれば、相関値P2を第2相関ピークとして検出すればよい。
【0110】
<変形例3>
上記実施の形態では、複数の探索範囲を設定した場合、全探索範囲から2つの第1、第2相関ピークを検出し、注目階層から最大2つの対応点が決定されるようにしていた。
【0111】
変形例3では、複数の探索範囲を設定した場合、各探索範囲につき第1、第2相関ピークを検出し、3個以上の対応点が探索された場合であっても、全対応点を一つ上の階層に渡すことを特徴とする。
【0112】
図12は、複数の対応点が上位の階層に渡される様子を示した図である。階層L(i)において、第1、第2相関ピークである相関ピークPK1,PK2が検出されている。
【0113】
階層L(i−1)では、相関ピークPK1に基づき探索範囲A1が設定され、相関値PK2に基づき探索範囲A2が設定されている。この場合、対応点候補決定部108は、探索範囲A1,A2について個別に第1、第2相関ピークが現れているか否かを判定する。
【0114】
その結果、階層L(i−1)では、探索範囲A1に2個の相関ピークPK1_a,PK1_bが検出されている。また、探索範囲A2にも2個の相関ピークPK2_a,PK2_bが検出されている。
【0115】
対応点決定部107は、探索範囲A1から相関ピークPK1_a,PK2_bに基づき2個の対応点を決定している。そのため、階層L(i−2)では、相関ピークPK1_aに基づく探索範囲B1と、相関ピークPK1_bに基づく探索範囲B2が設定されている。
【0116】
一方、対応点決定部107は、探索範囲A2の2個の相関ピークのうち、相関ピークPK2_aのみに基づいて1個の対応点を決定している。そのため、階層L(i−2)では、相関ピークPK2_aに基づく探索範囲B3が設定されている。
【0117】
そして、対応点候補決定部108は、探索範囲B1〜B3のそれぞれにつき、第1,第2ピークを検出する。
図12の例では、探索範囲B1において、急峻な1個の相関ピークが現れているが、探索範囲B2,B3において、急峻な相関ピークが現れていない。
【0118】
このように、複数の探索範囲を設定した場合、各探索範囲につき個別に複数の相関ピークが現れているか否かを判定し、複数の相関ピークが現れ、複数の対応点が検出された場合、各対応点に対する探索範囲を上位の階層に設定する。
【0119】
こうすることで、正解となる対応点が候補から外される事態を回避することができる。その結果、
図12の階層L(i−2)に示すように、最終的に1つの急峻な相関ピークを得る可能性が高まり、対応点の探索精度をより高めることができる。なお、変形例3は変形例1,2と組み合わせても良い。
【0120】
<変形例4>
変形例3の手法では、探索範囲毎に2つの対応点が検出されているため、上位の階層に向かうにつれて次々と対応点の個数が増大することが懸念される。この場合、上位の階層において非常に多くの対応点が検出され、どの対応点を最終的な解として選択すべきかが分からなくなり、却って検出精度が低くなる虞がある。
【0121】
そこで、変形例4では、上の階層に渡す対応点の個数に制限を加えている。具体的には、階層毎に上の階層に渡す対応点の個数の最大数が決められている。下位の階層では、参照画像に対する参照ウィンドウの相対サイズが大きいため、距離混合が激しくなる。そこで、下位の階層ほど最大数が大きく、上位の階層に向かうにつれて最大数を少なくするように設定する。対応点決定部107は、注目階層で最大数を超える対応点の候補点が検出された場合、相関値の高い候補点から最大数分だけの候補点を選択し、対応点として上の階層に渡せばよい。
【0122】
これにより、上位の階層において非常に多くの対応点が検出され、どの対応点を最終的な解として選択すべきかが分からなく事態を防止することができる。
【0123】
<変形例5>
変形例5は、最上位の階層において、複数の対応点が検出された場合、解となる1つの対応点を決定することを特徴とする。具体的には、下記のいずれかの手法を採用すればよい。
【0124】
i)最上位の階層において検出された複数の対応点のうち、相関値が最大の対応点を解として決定する。
【0125】
ii)最上位の階層において検出された複数の対応点のうち、周辺の画素との類似度が最も高い対応点を解として決定する。ここで、類似度とは、例えば周辺画素との視差の近さを示す。例えば、ある対応点T1の視差がd1であったとする。また、対応点T1の近傍に位置する画素T1_1の視差がd2であったとする。この場合、視差d1と視差d2との差分Δd12の逆数(=1/Δd12)が対応点T1の類似度SIM1となる。同様に、別の対応点T2の類似度がSIM2であったとする。そして、SIM1>SIM2であったとする。この場合、対応点T1が解となる。
【0126】
iii)最上位の階層において検出された複数の対応点のうち、安定度が最も高い対応点を解として決定する。安定度は、下位の階層から複数の相関ピークが続けて検出されているような対応点は安定度が低く、複数の相関ピークがあまり出てこないような場合は安定度が高いと定義される。
【0127】
図12を用いて安定度を説明する。階層L(i−2)を最上位の階層とし、相関ピークPK11,PK12,PK13に基づき対応点T1〜T3が検出されたとする。
【0128】
対応点T1の相関ピークの履歴は、PK1→PK1_a→PK11である。PK1は階層L(i)において2分岐され、PK1_aは階層L(i−1)において二分岐されている。そのため、対応点T1の安定度は、(1/2)
2となる。ここで、2分岐とは、対応点が2つ検出されたことを意味する。したがって、対応点が3個検出された場合は3分岐となる。
【0129】
対応点T2の相関ピークの履歴は、PK1→PK1_b→PK12である。PK1は階層L(i)で2分岐され、PK1_bは階層L(i−1)で2分岐されている。よって、対応点T2の安定度は、(1/2)
2となる。
【0130】
対応点T3の相関ピークの履歴は、PK2→PK2_a→PK13である。PK2は階層L(i)で2分岐され、PK2_aは階層L(i−1)で2分岐されていない。よって、対応点T3の安定度は、安定度は、1/2となる。この場合、対応点T3の安定度が最も高いため、対応点T3が解として決定される。
【0131】
なお、変形例5の処理は、最上位の階層に適用されたが、これに限定されずに、途中の階層において適用してもよい。この場合、不要な対応点を排除して、計算時間の増大を防止することができる。
【0132】
また、変形例5に示すi)〜iii)の処理を組み合わせて解となる対応点を決定してもよい。例えば、まず、iii)の手法を用いて1つの対応点を決定しようとしたが、安定度が同一の対応点が複数存在し、1つの対応点を決定することができなかった場合、i)又はii)の手法を用いて1つの対応点を決定すればよい。
【0133】
<変形例6>
上記実施の形態では、説明を簡単にするために第1、第2相関ピークというように2つの相関ピークを検出するものとして説明したが、3つの相関ピークを検出するようにしてもよい。
【0134】
例えば、探索範囲において、閾値α1よりも大きな相関値が3つ存在した場合、相関値P1,P2,P3を相関ピークとして検出すればよい。但し、P1>P2>P3である。この場合、対応点候補決定部108は、P2/P1,P3/P1を求め、P2/P1,P3/P1が値Vth1より大きい場合、相関値P1〜P3の3個の相関ピークに基づき、3個の対応点を検出すればよい。
【0135】
一方、対応点候補決定部108は、P2/P1のみが値Vth1より大きい場合、相関値P1,P2の2個の相関ピークに基づき、2個の対応点を検出すればよい。
【0136】
<変形例7>
上記実施の形態ではPOCを用いて相関値を算出したが、他の手法を用いてもよい。他の手法としては例えばDCT符号限定相関法、及びSAD(Sum of Absolute Difference)が挙げられる。DCT符号限定相関法の詳細については、“画像信号処理と画像パターン認識の融合−DCT符号限定相関とその応用、貴家仁志 首都大学東京 システムデザイン学部 動的画像処理実利用化ワークショップ2007(2007.3.8−9)”に開示されている。
【0137】
図13は、SADの説明図である。
図13に示すように、基準画像に注目点CPが設定され、注目点CPを中心として基準ウインドウW1が設定される。ここで、注目点CPは、基準画像上の全画素、又は一定の間隔で間引かれた各画素が例えばラスタ走査されるようにして順次設定される。
【0138】
次に、参照画像に設定された探索範囲内の所定の画素が参照ウインドウW2の中心点O1として設定され、この中心点O1を中心として参照ウインドウW2が設定される。ここで、探索範囲としては、注目点CPと垂直方向の高さが同一であり、かつ、水平方向と平行な直線状の参照画像上の領域を採用することができる。次に、基準ウインドウW1内の画像Img1と参照ウインドウW2内の画像Img2との相関値CORpが下記の式を用いて算出される。
【0139】
【数3】
但し、Wは基準ウインドウW1、参照ウインドウW2のウィンドウサイズを示し、iは垂直方向の座標を示し、jは水平方向の座標を示し、pは0≦p≦max_dispを満たす変数であり、max_dispは最終探索点を示す。
【0140】
そして、相関値CORpが求まると、pが1増加されて参照ウインドウW2が水平方向にずらされ、次の相関値CORpが求められる。
【0141】
そして、相関値CORpが参照ウインドウW2内の画像の中心点O1の相関値として採用され、参照画像において相関値が最も高くなる位置が探索され、探索された位置が基準画像に設定された注目点CPの対応点として特定される。
図13のグラフに示すように、相関値CORpは、画像Img1と画像Img2との相関が高く、類似しているほど高くなる。
【0142】
なお、SAD以外にも例えば、SSD(濃度差の二乗和)、又はNCC(正規化相互相関)等を採用してもよい。
【0143】
<使用例1>
使用例1は、上記実施の形態による対応点探索装置をステレオ測距システムに適用したことを特徴とする。
図14は、ステレオ測距システムのブロック図である。ステレオ測距システムは、自動車等の車両の車体に搭載され、カメラ101,102、演算処理装置11、及び表示装置12を備えている。
【0144】
演算処理装置11は、
図1に示す対応点探索装置110を備え、対応点決定部107により検出された対応点を用いて車体前方の物体の距離をステレオ法を用いて算出する。表示装置12は、液晶表示ディスプレイ、有機ELディスプレイといった表示装置から構成され、演算処理装置11により生成された情報を表示する。
【0145】
図15は、ステレオ法による測距方法の説明図である。
図15において、fは、カメラ101,102のレンズの焦点距離を示し、カメラ101,102の撮影面(CCD)の画素数は等しいものとする。また、カメラ101,102は、所定の基線長Bだけ左右方向に離間され、かつ、光軸が平行となるように配置されている。この場合、注目点CPと対応点TPとの座標から得られる撮影面上の視差をΔdとすると、レンズ位置から対象物までの距離Dは、下記の式により表される。
【0147】
また、対象物の3次元位置(X,Y,Z)は下記の式により表される。
【0148】
X=x・D/f
Y=y・Z/f
Z=D
但し、x,yは注目点CPの座標を示す。
【0149】
そして、演算処理装置11は、対象物の3次元位置から対象物と車体との距離が所定の値より短い場合、対象物を障害物として判定し、自車体に障害物が迫っている情報を生成して表示装置12に表示する。これにより、障害物が迫っていることがユーザに報知される。
【0150】
<使用例2>
使用例2は、本実施の形態の対応点探索装置110を時系列的に前後する入力画像に対して対応点探索を行うシステムに適用したことを特徴としている。
図16は、時系列的に前後する入力画像に対して対応付けを行わせるシステムのブロック図である。
【0151】
このシステムは、カメラ101、対応点探索装置13、及び表示装置12を備えている。カメラ101は、所定のフレームレートで被写体を撮像する。対応点探索装置13は、
図1に示す対応点探索装置110と同一構成であるが、基準画像と参照画像との特定の仕方が異なる。
図1では、時刻tにカメラ101が撮像した画像を基準画像、カメラ102が撮像した画像を参照画像としていた。本使用例2では、時刻tにカメラ101が撮像した画像を基準画像、時刻t−1にカメラ102が撮像した画像を参照画像とする。
【0152】
そして、対応点探索装置13は、基準画像上の注目点の対応点を参照画像から検出する。そして、対応点探索装置13は、例えば、対応点と注目点との差分をとって対象物のオプティカルフローを算出する。
【0153】
(上記の対応点探索装置の纏め)
(1)上記対応点探索装置は、少なくとも2枚の入力画像のうち、1枚の入力画像を基準画像、残りの入力画像を参照画像として取得する画像取得部と、前記画像取得部で取得された基準画像及び参照画像のそれぞれにつき、解像度の異なる複数の基準画像及び参照画像を階層的に生成する多重解像度画像生成部と、注目階層の基準画像における注目点に対する対応点を、前記注目階層の参照画像から探索する対応点探索部と、前記注目階層の1つ下の階層で探索された対応点を基に、前記注目階層の参照画像における初期探索位置を設定する初期位置設定部と、前記対応点探索部に下位の階層から上位の階層に向けて順次に対応点を探索させる探索制御部とを備え、前記対応点探索部は、前記注目階層において設定された前記初期探索位置を基準として、前記注目階層の前記参照画像に所定の探索範囲を設定し、設定した探索範囲内の各位置において前記注目点に対する相関値を算出し、算出した相関値に基づき、複数の相関ピークが現れているか否かを判定し、複数の相関ピークが現れていると判定した場合、各相関ピークを用いて複数の対応点を決定し、前記初期位置設定部は、前記対応点探索部により複数の対応点が探索された場合、各対応点に対する前記初期探索位置を設定する。
【0154】
この構成によれば、注目階層において複数の相関ピークが検出された場合において、両相関ピークの相関値が拮抗しており、どちらが正解であるかの判定がし難い場合、いずれか1個の相関ピークを用いて1個の対応点を決定するのではなく、複数の相関ピークのそれぞれを用いて複数の対応点を検出する。そして、注目階層の1つ上の階層において各対応点のそれぞれに対して探索範囲を設定して対応点を探索するというようにして、対応点の判断を上位の階層に委ねている。
【0155】
ここで、探索範囲のサイズを全階層において同一とすると、参照画像に対する探索範囲の相対的なサイズは、上位の階層に向かうにつれて小さくなる。そのため、上位の階層に向かうほど、探索範囲が絞られ、探索範囲内に距離が異なる複数の被写体が含まれる可能性が低くなる。その結果、最終的に1つの相関ピークのみが現れる可能性を高くすることができ、精度の良い対応点探索を実現することができる。
【0156】
(2)前記対応点探索部は、複数の相関ピークが現れていると判定した場合、前記相関値が最大である第1相関ピークの相関値に対する、前記第1相関ピーク以外の第2相関ピークの相関値の比を算出し、前記比が所定の値よりも大きな第2相関ピークが存在しない場合、前記第1相関ピークのみから対応点を決定し、前記比が所定の値より大きい第2相関ピークが存在する場合、前記比が所定の値より大きい第2相関ピークから対応点を決定し、かつ、前記第1相関ピークから対応点を決定することが好ましい。
【0157】
相関ピークが2つ現れていても第1相関ピークの相関値に比べて第2相関ピークの相関値が小さければ、第1相関ピークが対応点を示している可能性が高い。そこで、このような場合、第1相関ピークのみを用いて対応点を決定する。すると、上位の階層において、急峻な1つの相関ピークが現れる可能性を高くすることができる。
【0158】
(3)前記対応点探索部は、位相限定相関法を用いて前記相関値を算出することが好ましい。
【0159】
この構成によれば、急峻な相関ピークが現れるという特徴を持った位相限定相関法を用いて相関値が算出されるため、相関ピークの検出精度を高め、高精度な対応点探索を実現することができる。
【0160】
(4)前記対応点探索部は、前記相関値の最大値を前記第1相関ピークとして判定し、大きさが2番目以降の相関値については、所定の値より大きい相関値を、前記第2相関ピークとして判定することが好ましい。
【0161】
この構成によれば、少なくとも1つの相関ピークが検出されるため、対応点探索が途中の階層で途切れてしまうことを防止することができる。また、相関値が所定の値より小さい位置は第2相関ピークとして判定されないため、解の可能性が低い相関ピークを除外して対応点探索を行うことができ、処理コストの削減を図ることができる。
【0162】
(5)前記対応点探索部は、前記相関値の分布において、ピークの頂点に位置する相関値を相関ピークとして判定することが好ましい。
【0163】
この構成によれば、相関ピークを高精度に検出することができる。
【0164】
(6)前記対応点探索部は、前記探索範囲内の注目位置の相関値に対する、前記注目位置に隣接する位置の相関値の比が、所定の値以下の場合、前記注目位置に相関ピークが現れていると判定することが好ましい。
【0165】
この構成によれば、周辺の相関値よりもある程度大きな相関値を持つ位置に相関ピークが現れていると判定されるため、ピークの中腹位置の相関値が相関ピークとして検出されることが防止され、高精度に相関ピークを検出することができる。
【0166】
(7)前記対応点探索部は、前記探索範囲内の注目位置の相関値から前記注目位置に隣接する位置の相関値を差し引いた差分値が所定の値より大きい場合、前記注目位置に相関ピークが現れていると判定することが好ましい。
【0167】
この構成によれば、周辺の相関値よりもある程度大きな相関値を持つ位置に相関ピークが現れていると判定されるため、ピークの中腹位置の相関値が相関ピークとして検出されることが防止され、高精度に相関ピークを検出することができる。
【0168】
(8)前記対応点探索部は、所定距離以上離間した位置に相関ピークを検出することが好ましい。
【0169】
この構成によれば、隣接した位置に相関ピークが検出されることが防止され、高精度に相関ピークを検出することができる。
【0170】
(9)前記対応点探索部は、前記注目階層の参照画像において、前記初期位置設定部により複数の初期探索位置が決定された場合、各初期探索位置を基準として前記探索範囲を設定し、前記初期位置設定部は、前記対応点探索部により各探索範囲において複数の対応点が探索された場合であっても、全対応点に対する初期探索位置を前記注目階層の1つ上の階層の参照画像に設定することが好ましい。
【0171】
この構成によれば、正解となる対応点が候補から外される事態を回避することができ、対応点の探索精度をより高めることができる。
【0172】
(10)前記初期位置設定部は、前記注目階層において前記対応点探索部により探索された対応点の個数が所定の上限値を超えた場合、前記上限値以下の対応点に対して前記初期探索位置を設定することが好ましい。
【0173】
この構成によれば、上位の階層において非常に多くの対応点が検出され、どの対応点を最終的な解として選択すべきかが分からなく事態を防止することができる。
【0174】
(11)前記対応点探索部は、最上位の階層において、1つの対応点を決定することが好ましい。
【0175】
この構成によれば、最終的に1つの対応点を確実に決定することができる。