王曉寧, 宋曉煒, 楊 蕾, 李夢龍, 蔡文靜
(中原工學院 電子信息學院, 河南 鄭州 450007)
雙目視覺技術[1]的原理是利用不同方位的左右兩臺攝像機對同一場景目標進行拍攝,獲取兩幅二維數(shù)字圖像后,根據(jù)雙目視差原理在計算機中計算出該場景的三維數(shù)據(jù)信息[2],然后利用這些數(shù)據(jù)在計算機中呈現(xiàn)現(xiàn)實場景的三維幾何圖像。雙目視覺技術的核心是立體匹配[3],即獲取精確匹配點的過程。
基于特征的匹配主要是通過提取圖像上幾何形狀信息進行的,特征提取的準確與否決定匹配的精度,因此獲取穩(wěn)定的特征在圖像匹配中很有用[4]。近幾年張量理論發(fā)展迅速,張量處理圖像的優(yōu)勢在于對所處理數(shù)據(jù)多維性質(zhì)的良好表示。通過結(jié)構(gòu)張量能夠找到空間中每個點在其局部鄰域中的向量表示(該點的圍繞點存在一定的規(guī)則性),計算局部鄰域中所有點的梯度向量,使其方向更加接近這種向量表示[5]。為改善結(jié)構(gòu)張量的魯棒性,可以根據(jù)局部結(jié)構(gòu)進行濾波,因為這種方向向量非常適合局部結(jié)構(gòu)。結(jié)構(gòu)張量在局部結(jié)構(gòu)的區(qū)域檢測能力方面表現(xiàn)更好,十分適合在圖像中尋找行人、汽車、路標等特定圖形[6]。本文將亮度信息與結(jié)構(gòu)張量結(jié)合起來,形成擴展結(jié)構(gòu)張量,用于對交通路標進行匹配,并且將其與SURF(Speeded Up Robust Feature)匹配算法、PCA(Principal Components Analysis)匹配算法對比,研究擴展結(jié)構(gòu)張量在雙目視覺立體匹配中的性能。
SURF匹配算法是在SIFT(Scale-invariant Feature Transform)算法基礎上提出來的,SURF算子不僅擁有SIFT算子所有的優(yōu)點,而且能夠滿足圖像匹配的實時性要求[7]。
SURF匹配算法實現(xiàn)的過程為:首先進行特征點檢測,并計算圖像每個像素對應Hessian矩陣行列式的值,對比后把行列式值的局部最大值定為興趣點位置(因為該點的行列式值比周圍點都大,所以其周圍會更亮或者更暗);然后通過統(tǒng)計特征點鄰域內(nèi)的harr小波特征來確定特征點的主方向;最后,為了讓光照變換或者角度變換下的特征點都有一定的穩(wěn)定性,必須建立一個特征描述向量(這是關鍵的一步)。通過以上步驟就可以完成特征提取,進而進行匹配。
邊緣是圖像的常見特征,邊緣通常是圖像里某些位置灰度發(fā)生快速改變的像素之和,代表了圖像上改變最明顯的位置,它一般處在目標、背景和區(qū)域之間。
PCA匹配算法屬于多變量的分析方法[8],經(jīng)常在大容量數(shù)據(jù)分析中使用。使用PCA匹配算法選取一些特征,使數(shù)據(jù)更加集中。為了減少數(shù)據(jù)量,可使用少量特征數(shù)據(jù)近似表達整個數(shù)據(jù)集。如果一些數(shù)據(jù)與大部分數(shù)據(jù)都沒有共同的特征,則說明這些數(shù)據(jù)并不能由主成分表示。采用主分量對大部分數(shù)據(jù)如一幅圖像的灰度進行表示,對應的就是圖像中較大面積的灰度平滑位置,而剩余的像素點就是與上述區(qū)域不同的點,即灰度產(chǎn)生變異的點(又叫邊緣點)。因此,使用PCA匹配算法時,通過主分量分析進行殘差重構(gòu),能夠提取圖像的邊緣信息。
如果圖像是二維離散信號,那么其相應的結(jié)構(gòu)張量為:
(1)
雖然式(1)中有4個分量,但因為Txy=Tyx,所以實際上只有3個分量。因此,T是正對稱矩陣。
結(jié)構(gòu)張量雖然提供了關于輸入圖像局部區(qū)域結(jié)構(gòu)的有價值信息[9],但雙目立體匹配還需要亮度信號,所以可以將亮度與結(jié)構(gòu)張量結(jié)合起來,組成非線性擴展結(jié)構(gòu)張量(EST),即:
(2)
對于EST,雖然快速計算時也可用其他濾波器,但通常選擇各向異性擴散濾波器作為其平均算子[10]。
若圖像為彩色圖像,則式(2)中UE可擴展為:
(3)
由式(3)獲得的張量是對稱的。如果張量UE是L維度的,那么有k個獨立分量,且:
(4)
例如,L=2,3,4,5,…,則可獲得k個(k=3,6,10,15…)獨立分量。
雙目立體視覺技術可以很好地模擬人的雙眼觀察,能夠?qū)θS空間進行立體重塑。圖1所示為雙目平行攝像機的模型[11]。這個模型要求兩個攝像機光軸完全平行且高度一致,另外成像平面需要在同一平面上。
圖1 雙目平行攝像機模型
圖2所示為平行雙目攝像機的深度計算二維平面。兩攝像機光心Cl和Cr之間的距離為B(即基線距離),目標點P在左右圖像上的成像點分別為Pl和Pr,攝像機焦距為f,視差d=xl-xr。
圖2 平行雙目攝像機的深度計算二維平面示意圖
根據(jù)三角關系可得:
(5)
式中:Z表示物體與攝像機的距離,也就是通常所說的深度。通過攝像機標定的參數(shù)可計算出深度。
本文根據(jù)文獻[12]進行雙目攝像機的標定[13]。實驗在Matlab 2011a下的標定工具箱中完成,所用的標定板如圖3所示。為獲得好的標定結(jié)果,一般采集10~20組標定圖像。本文對雙目攝像機標定時,采集了15組大小為1 288×964(pixel)的圖像。
獲得標定圖像后,讀取圖像,提取棋盤格上的角點,獲取攝像機初值參數(shù),并進行參數(shù)整體優(yōu)化和鏡頭畸變程度的計算,得到左右攝像機各自參數(shù)后,通過立體標定構(gòu)建左右攝像機的位置關系(包括旋轉(zhuǎn)關系和平移關系)。雙目立體攝像機標定實驗參數(shù)如表1所示。
圖3 標定板
表1 雙目立體攝像機標定參數(shù)
根據(jù)標定參數(shù)可計算出:B=211.5 mm,f=17.0 mm。
匹配實驗選用道路上標牌的圖像。為了解擴展結(jié)構(gòu)張量匹配方法的匹配準確性,選用了兩組路標圖像進行實驗(一組是深度為4 824 mm處的禁止停車路標,另一組是深度為3 604 mm處的禁止鳴笛路標)。實驗中分別對這兩組路標圖像進行SURF匹配、PCA匹配和擴展結(jié)構(gòu)張量匹配,并比較它們的匹配精度。
第一組為禁止停車路標的匹配實驗(見圖4)。其深度真值為4 824 mm,由深度真值計算出的標準視差為12 pixel。根據(jù)標準視差可以得到匹配錯點數(shù)。
(a) SURF匹配
(b) PCA匹配
(c) 擴展結(jié)構(gòu)張量匹配圖4 禁止停車路標的匹配實驗圖例
通過第一組實驗,得到的總匹配點數(shù)和匹配錯點數(shù)如表2所示。
表2 第一組匹配實驗數(shù)據(jù)
第二組為禁止鳴笛路標的匹配實驗(見圖5)。其深度真值為3 604 mm,由深度真值計算出的標準視差為16 pixel。根據(jù)標準視差可以得到匹配錯點數(shù)。
(a) SURF匹配
(b) PCA匹配
(c) 擴展結(jié)構(gòu)張量匹配圖5 禁止鳴笛路標的匹配實驗圖例
通過第二組實驗,得到的總匹配點數(shù)和匹配錯點數(shù)如表3所示。
表3 第二組匹配實驗數(shù)據(jù)
對以上兩組實驗數(shù)據(jù)進行計算,可獲得錯誤匹配點數(shù)占總匹配點數(shù)的比例(見圖6)。
圖6 3種匹配算法的誤差對比
從圖6可以看出,利用SURF匹配算法得到的誤匹配率很高,PCA匹配算法相對于SURF匹配算法來說結(jié)果較好,但也存在較高的誤匹配率,擴展結(jié)構(gòu)張量匹配算法與以上兩種算法相比能獲得較低的誤匹配率,在一定程度上保證了匹配的準確性。
本文將亮度信息與結(jié)構(gòu)張量相結(jié)合,得到一種擴展結(jié)構(gòu)張量的雙目視覺立體匹配算法。在雙目圖像的特征匹配過程中,針對SURF特征匹配的不準確性以及PCA邊緣檢測后匹配的不足,該算法提高了特征匹配的精度。對兩組路標的圖像進行實驗,對比3種匹配算法可知,擴展結(jié)構(gòu)張量的雙目視覺立體匹配算法更有效,誤匹配率有明顯降低,達到了預期匹配效果。
該算法在模式識別、立體導航等領域具有一定的應用價值。