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