張 奇 偉
(山東省國土測繪院,山東 濟南 250103)
基于雙目成像的云底高度測量系統(tǒng)是利用立體視角差測距原理,采用兩個相對固定的相機同步獲取到兩幅圖像,通過圖像匹配算法獲得同名點,采用數(shù)字攝影測量中的空間前方交會算法計算其云底高度[1]。
由于高度、厚薄、分層、光照、能見度等因素的影響,使得空中的云表面不連續(xù),種類單一,因此,云圖像具有紋理缺乏、對比度低和邊緣不清晰等局限[2]。而且,對同一塊云,從不同角度觀察也會有所差別,使得云圖像在匹配時不易檢測同名點。
圖像匹配是云底高度測量系統(tǒng)的核心算法,主要分為基于灰度的匹配和基于特征的匹配兩類[3]。其中,基于灰度的匹配對光照,噪聲等非常敏感,不夠穩(wěn)定,而基于特征的匹配可有效克服這些缺點[4]。SIFT(Scale-Invariant Feature Transform)[5]是經(jīng)典的基于特征的匹配算法,Wang和Bay等[6,7]提出的SURF算法是加速版的SIFT,繼承了它的不變性,并在運算速度上比它快3倍左右[8]。
SURF對圖像的局部特征進行描述,具有高效性和高魯棒性。在圖像發(fā)生平移、旋轉(zhuǎn)、尺度縮放、光照變化、視角變化和噪聲的情況下具有極強的適應(yīng)性[9]。SURF特征匹配算法分3個步驟:特征點檢測、特征點描述和特征點匹配[10]。
SURF特征點檢測分四步:構(gòu)建Hessian(Hessian Matrix)矩陣、構(gòu)建尺度空間、特征點定位和特征點主方向分配。
2.1.1構(gòu)建Hessian矩陣
構(gòu)建Hessian矩陣能夠檢測到圖像穩(wěn)定的邊緣點,為提取特征點做好準備。黑塞矩陣是一個多元函數(shù)的二階偏導(dǎo)數(shù)構(gòu)成的方陣,描述了函數(shù)的局部曲率。對于圖像f(x,y),其Hessian矩陣如式(1)所示:
(1)
對圖像進行高斯濾波后的Hessian矩陣如式(2)所示:
(2)
其中,x為特征點坐標;σ為尺度;Lxx(x,σ),Lxy(x,σ),Lyy(x,σ)為圖像在該點與高斯二階偏導(dǎo)數(shù)的卷積。Hessian矩陣的判別式,如式(3)所示:
det(H)=Dxx×Dyy-Dxy×Dxy
(3)
當det(H)取得局部極大值時,則表示當前點為其周圍鄰域內(nèi)的更亮或更暗點,以此來定位關(guān)鍵點的位置。
為簡化計算,SURF算法以盒子濾波器來近似替代二階高斯濾波器,高斯濾波器和盒式濾波器的示意圖如圖1所示。
圖1中,上邊是二階高斯濾波器模板,下邊是使用盒式濾波器對其近似的模板[11]。
2.1.2構(gòu)建尺度空間
SURF的尺度空間由若干組構(gòu)成,每組包含若干層。不同組間使用尺寸逐漸增大的盒式濾波器,因此,圖像的尺寸是一致的;同一組內(nèi)不同層間使用模糊系數(shù)逐漸增大、尺寸相同的濾波器,如圖2所示。
2.1.3特征點定位
將經(jīng)過Hessian矩陣處理的每個像素點與其在尺度空間鄰域內(nèi)的26個點進行比較(如圖3所示),若該點大于這26個點,則定位為關(guān)鍵點,再剔除能量比較弱或錯誤定位的關(guān)鍵點,篩選出最終的穩(wěn)定的特征點[12]。
2.1.4特征點主方向分配
在SURF中,特征點的主方向是對以該點圓形鄰域內(nèi)的Harr小波特征統(tǒng)計運算得到的。即在特征點的6倍特征尺度為半徑的圓形鄰域內(nèi),統(tǒng)計60°扇形區(qū)域內(nèi)所有點的Harr小波特征總和,旋轉(zhuǎn)扇形區(qū)域依次統(tǒng)計,小波特征總和最大的扇形方向定為主方向。求取特征點主方向的過程如圖4所示。
SURF算法中,特征點描述選取該點周圍以特征點主方向為方向的一個4×4的矩形區(qū)域塊,每個子區(qū)域統(tǒng)計4個方向各自的Harr小波特征總和。這樣就得到4×4×4=64維特征向量作為SURF特征的描述子,如圖5所示。
SURF特征點匹配由特征點間的歐式距離來判斷匹配度,距離越小,匹配度越好。同時,SURF特征點匹配還加入了Hessian矩陣跡的判斷,同號代表特征具有相似的對比度變化;反號則予以排除。
2.3.1特征匹配最近鄰算法FLANN
FLANN算法由Lowe和Muja于2009年提出,該算法基于KD-TREEK或均值樹的搜索操作來實現(xiàn),在高維空間最近鄰查找不受局部敏感哈希影響[13]。FLANN算法的對象是n維向量空間Rn,在數(shù)據(jù)集中使用歐氏距離找到待匹配點的最近鄰值。歐氏距離公式如式(4)所示:
(4)
本文以KD-TREE結(jié)構(gòu)存儲向量空間Rn的所有歐氏距離,通過KD-TREE可以有效搜索與待匹配點距離最鄰近的點。搜索過程是在KD-TREE結(jié)構(gòu)上由上至下的遞歸過程:先以一個特定基準將分割點和目標點的值進行比較,判斷目標點所在的區(qū)域;在對應(yīng)節(jié)點中循環(huán)比較,直到目標搜索成功為止。
2.3.2隨機采樣一致性算法RANSAC
通過FLANN算法匹配得到的特征點中還存在大量錯誤的匹配點,為了消除這些錯誤匹配點,保證匹配的質(zhì)量和效果,本文選用隨機采樣一致性算法RANSAC(Random Sample Consensus)對特征點進行篩選。RANSAC是根據(jù)一組包含異常數(shù)據(jù)的樣本數(shù)據(jù)集,計算出數(shù)據(jù)的數(shù)學(xué)模型參數(shù),得到有效樣本數(shù)據(jù)的算法,是目前廣泛采用的一種剔除錯誤匹配點的算法[14]。
RANSAC剔除錯誤匹配點對的過程如下:首先隨機選取4個匹配點對數(shù)據(jù),計算得到模型參數(shù),利用此模型搜索統(tǒng)計其他局內(nèi)數(shù)據(jù),重新計算得到新的模型參數(shù);迭代以上過程,不斷隨機抽樣計算,最后選取局內(nèi)點數(shù)據(jù)最多、誤差最小的模型[15]剔除錯誤匹配點對。
本文測試云圖像選取了低空、中空和高空三組數(shù)據(jù),數(shù)據(jù)獲取基線長度分別為60 m,120 m,200 m。對同步觀測的云圖像進行SURF特征匹配,匹配結(jié)果如圖6~圖8所示,圖中十字絲為特征點,連線為匹配點對。可以看出,特征點主要集中在云的邊緣部分,只有少量點位于云的底部。圖6中云的視差較大但邊緣比較清晰,圖8中云量大且紋理比較豐富,所以特征點較多;而圖7中,云的邊緣模糊,紋理缺乏,所以特征點較少。從匹配結(jié)果來看,三組云圖像均能匹配出云底部的同名點。
實驗數(shù)據(jù)如表1所示,結(jié)果表明:本文采用的SURF特征匹配算法對云圖像匹配效果良好,匹配正確率高于94.8%。
表1 實驗圖像匹配結(jié)果
本文利用SURF特征匹配算法對云圖像進行同名點檢測,很好地解決了云圖像不易匹配的問題。本文所用方法對云圖像的亮度變化、視差變化、邊緣模糊具有較強的魯棒性,匹配正確率較高,且能夠匹配出一定數(shù)量的云底部同名點。但是,面對邊緣不清晰、紋理缺乏的云圖像,云底部同名點數(shù)量稀少,還需要進一步研究。