張 奇 偉
(山東省國土測繪院,山東 濟南 250103)
基于雙目成像的云底高度測量系統是利用立體視角差測距原理,采用兩個相對固定的相機同步獲取到兩幅圖像,通過圖像匹配算法獲得同名點,采用數字攝影測量中的空間前方交會算法計算其云底高度[1]。
由于高度、厚薄、分層、光照、能見度等因素的影響,使得空中的云表面不連續,種類單一,因此,云圖像具有紋理缺乏、對比度低和邊緣不清晰等局限[2]。而且,對同一塊云,從不同角度觀察也會有所差別,使得云圖像在匹配時不易檢測同名點。
圖像匹配是云底高度測量系統的核心算法,主要分為基于灰度的匹配和基于特征的匹配兩類[3]。其中,基于灰度的匹配對光照,噪聲等非常敏感,不夠穩定,而基于特征的匹配可有效克服這些缺點[4]。SIFT(Scale-Invariant Feature Transform)[5]是經典的基于特征的匹配算法,Wang和Bay等[6,7]提出的SURF算法是加速版的SIFT,繼承了它的不變性,并在運算速度上比它快3倍左右[8]。
SURF對圖像的局部特征進行描述,具有高效性和高魯棒性。在圖像發生平移、旋轉、尺度縮放、光照變化、視角變化和噪聲的情況下具有極強的適應性[9]。SURF特征匹配算法分3個步驟:特征點檢測、特征點描述和特征點匹配[10]。
SURF特征點檢測分四步:構建Hessian(Hessian Matrix)矩陣、構建尺度空間、特征點定位和特征點主方向分配。
2.1.1構建Hessian矩陣
構建Hessian矩陣能夠檢測到圖像穩定的邊緣點,為提取特征點做好準備。黑塞矩陣是一個多元函數的二階偏導數構成的方陣,描述了函數的局部曲率。對于圖像f(x,y),其Hessian矩陣如式(1)所示:
(1)
對圖像進行高斯濾波后的Hessian矩陣如式(2)所示:
(2)
其中,x為特征點坐標;σ為尺度;Lxx(x,σ),Lxy(x,σ),Lyy(x,σ)為圖像在該點與高斯二階偏導數的卷積。Hessian矩陣的判別式,如式(3)所示:
det(H)=Dxx×Dyy-Dxy×Dxy
(3)
當det(H)取得局部極大值時,則表示當前點為其周圍鄰域內的更亮或更暗點,以此來定位關鍵點的位置。
為簡化計算,SURF算法以盒子濾波器來近似替代二階高斯濾波器,高斯濾波器和盒式濾波器的示意圖如圖1所示。

圖1中,上邊是二階高斯濾波器模板,下邊是使用盒式濾波器對其近似的模板[11]。
2.1.2構建尺度空間
SURF的尺度空間由若干組構成,每組包含若干層。不同組間使用尺寸逐漸增大的盒式濾波器,因此,圖像的尺寸是一致的;同一組內不同層間使用模糊系數逐漸增大、尺寸相同的濾波器,如圖2所示。

2.1.3特征點定位
將經過Hessian矩陣處理的每個像素點與其在尺度空間鄰域內的26個點進行比較(如圖3所示),若該點大于這26個點,則定位為關鍵點,再剔除能量比較弱或錯誤定位的關鍵點,篩選出最終的穩定的特征點[12]。
2.1.4特征點主方向分配
在SURF中,特征點的主方向是對以該點圓形鄰域內的Harr小波特征統計運算得到的。即在特征點的6倍特征尺度為半徑的圓形鄰域內,統計60°扇形區域內所有點的Harr小波特征總和,旋轉扇形區域依次統計,小波特征總和最大的扇形方向定為主方向。求取特征點主方向的過程如圖4所示。


SURF算法中,特征點描述選取該點周圍以特征點主方向為方向的一個4×4的矩形區域塊,每個子區域統計4個方向各自的Harr小波特征總和。這樣就得到4×4×4=64維特征向量作為SURF特征的描述子,如圖5所示。

SURF特征點匹配由特征點間的歐式距離來判斷匹配度,距離越小,匹配度越好。同時,SURF特征點匹配還加入了Hessian矩陣跡的判斷,同號代表特征具有相似的對比度變化;反號則予以排除。
2.3.1特征匹配最近鄰算法FLANN
FLANN算法由Lowe和Muja于2009年提出,該算法基于KD-TREEK或均值樹的搜索操作來實現,在高維空間最近鄰查找不受局部敏感哈希影響[13]。FLANN算法的對象是n維向量空間Rn,在數據集中使用歐氏距離找到待匹配點的最近鄰值。歐氏距離公式如式(4)所示:
(4)
本文以KD-TREE結構存儲向量空間Rn的所有歐氏距離,通過KD-TREE可以有效搜索與待匹配點距離最鄰近的點。搜索過程是在KD-TREE結構上由上至下的遞歸過程:先以一個特定基準將分割點和目標點的值進行比較,判斷目標點所在的區域;在對應節點中循環比較,直到目標搜索成功為止。
2.3.2隨機采樣一致性算法RANSAC
通過FLANN算法匹配得到的特征點中還存在大量錯誤的匹配點,為了消除這些錯誤匹配點,保證匹配的質量和效果,本文選用隨機采樣一致性算法RANSAC(Random Sample Consensus)對特征點進行篩選。RANSAC是根據一組包含異常數據的樣本數據集,計算出數據的數學模型參數,得到有效樣本數據的算法,是目前廣泛采用的一種剔除錯誤匹配點的算法[14]。
RANSAC剔除錯誤匹配點對的過程如下:首先隨機選取4個匹配點對數據,計算得到模型參數,利用此模型搜索統計其他局內數據,重新計算得到新的模型參數;迭代以上過程,不斷隨機抽樣計算,最后選取局內點數據最多、誤差最小的模型[15]剔除錯誤匹配點對。
本文測試云圖像選取了低空、中空和高空三組數據,數據獲取基線長度分別為60 m,120 m,200 m。對同步觀測的云圖像進行SURF特征匹配,匹配結果如圖6~圖8所示,圖中十字絲為特征點,連線為匹配點對。可以看出,特征點主要集中在云的邊緣部分,只有少量點位于云的底部。圖6中云的視差較大但邊緣比較清晰,圖8中云量大且紋理比較豐富,所以特征點較多;而圖7中,云的邊緣模糊,紋理缺乏,所以特征點較少。從匹配結果來看,三組云圖像均能匹配出云底部的同名點。
實驗數據如表1所示,結果表明:本文采用的SURF特征匹配算法對云圖像匹配效果良好,匹配正確率高于94.8%。



表1 實驗圖像匹配結果
本文利用SURF特征匹配算法對云圖像進行同名點檢測,很好地解決了云圖像不易匹配的問題。本文所用方法對云圖像的亮度變化、視差變化、邊緣模糊具有較強的魯棒性,匹配正確率較高,且能夠匹配出一定數量的云底部同名點。但是,面對邊緣不清晰、紋理缺乏的云圖像,云底部同名點數量稀少,還需要進一步研究。