張海芹 張銀鳳 王 浩
(黑龍江地理信息工程院,黑龍江 哈爾濱150081)
異構(gòu)尺度的遙感影像,僅通過傳統(tǒng)的影像分析和處理,很難實(shí)現(xiàn)高效的地形圖要素匹配及分析。在地理信息數(shù)據(jù)生產(chǎn)過程中,通過建立影像控制點(diǎn)數(shù)據(jù)庫的方式并應(yīng)用特征算法,可以在一定程度上解決控制點(diǎn)自動匹配的問題。英國科學(xué)家David Lowe在1999年公開發(fā)表了SIFT算法,其特點(diǎn)是在角度不變、光線均衡的條件下,匹配跟蹤目標(biāo)特征點(diǎn),提高了特征點(diǎn)位匹配的效率。本文通過對SIFT算法進(jìn)行進(jìn)一步優(yōu)化和改進(jìn),實(shí)現(xiàn)高效除去不穩(wěn)定點(diǎn),進(jìn)而實(shí)現(xiàn)影像間高效特征匹配。
1.SIFT特征點(diǎn)算法簡介
SIFT算法是建立在尺度空間的基礎(chǔ)上,通過檢索異構(gòu)尺度空間上的影像特征點(diǎn),實(shí)現(xiàn)多尺度影像特征點(diǎn)統(tǒng)一的過程,SIFT算法是提取影像某一部分的特征點(diǎn)算法,具有一定的可擴(kuò)展性。SIFT算法的基本步驟是通過初步檢測極值點(diǎn),然后除去不穩(wěn)定點(diǎn)噪聲,進(jìn)而實(shí)現(xiàn)影像之間的特征匹配[1],其具體步驟(如圖1所示):
圖1 SIFT算法具體步驟
(1)SIFT特征是圖像的局部特征,對平移、旋轉(zhuǎn)、尺度縮放、亮度變化、遮擋和噪聲等具有良好的不變性,對視覺變化、仿射變換也保持一定程度的穩(wěn)定性。
(2)獨(dú)特性好,信息量豐富,適用于在海量特征數(shù)據(jù)庫中進(jìn)行快速、準(zhǔn)確匹配。
(3)多量性,即使少數(shù)的幾個物體也可以產(chǎn)生大量SIFT特征向量。
(4)速度相對較快,經(jīng)優(yōu)化的SIFT匹配算法甚至可以達(dá)到實(shí)時的要求。
以某地航空影像為例,目標(biāo)影像在未經(jīng)過重采樣的前提下直接匹配,由于影像分辨率過高,未能實(shí)現(xiàn)較好的特征點(diǎn)匹配(如圖2所示),因此需要對目標(biāo)影像進(jìn)行重新采樣,從而提升特征點(diǎn)位匹配率[2,3]。
圖2特征點(diǎn)直接匹配
對目標(biāo)影像進(jìn)行降低采樣率,能夠有效提升特征點(diǎn)匹配率。影像降低采樣率的方法有線性插值法、鄰近像元法和三次卷積法等,采用任何一種方法均可實(shí)現(xiàn)較好的影像降采樣效果。經(jīng)過實(shí)驗(yàn)分析,將目標(biāo)影像降采樣與控制點(diǎn)影像分辨率近似時,匹配到的同名像控點(diǎn)數(shù)量較多[4](如圖3所示):
圖3降采樣后匹配特征點(diǎn)情況
在控制點(diǎn)影像數(shù)據(jù)庫中,同一點(diǎn)位可能存在較多的特征點(diǎn)影像,這些影像往往是不同來源不同時相的,影像紋理表達(dá)的地物特征也不盡相同,經(jīng)過實(shí)驗(yàn)可知,在影像地物特征明顯、影像清晰的情況下,匹配效果較好[5,6],在影像地物特征不明顯、影像模糊的情況下,匹配效果一般,因此應(yīng)盡量選擇地物特征明顯的控制點(diǎn)影像進(jìn)行匹配,在控制點(diǎn)影像數(shù)據(jù)采集的時候,也應(yīng)該盡量選取地物特征明顯的影像錄入數(shù)據(jù)庫,不同地物特征控制點(diǎn)影像匹配結(jié)果(如表1所示):
表1不同地物特征控制點(diǎn)影像匹配結(jié)果
首先對目標(biāo)影像確定影像范圍,根據(jù)分辨率和精度要求,通過SHIF算法,提取待匹配控制點(diǎn),最終得到帶匹配的影像相片,控制點(diǎn)提取基本流程(如圖4所示)。在匹配過程中要特別注意目標(biāo)影像的分辨率和精度要求,相同來源的影像要優(yōu)先考慮,控制點(diǎn)分布應(yīng)盡量均勻[7,8]。
圖4控制點(diǎn)提取基本流程
尺度屬于圖像信息的一種,通常情況下,我們可用大尺度來表示圖像細(xì)節(jié)特征,用小尺度來描述影像概貌特征。主要目的是得到多尺度的圖像空間序列,利用圖像的多尺度特性,并在此基礎(chǔ)上提取目標(biāo)的輪廓,再在輪廓上提取特征點(diǎn)[9,10],其目的也就是檢測在尺度變化下仍然穩(wěn)定的特征,這也是尺度不變的含義。如式(1)所示:
式(1)中,是圖像像素坐標(biāo);σ為尺度空間因子;G是高斯函數(shù)。
SIFT算法建議在某一個尺度上檢測極值點(diǎn),可以通過對相鄰兩個尺度空間的圖像相減得到一個高斯差分(DOG)的響應(yīng)值圖像是高斯尺度空間;,如式(2)所示:
式(2)中,k為常數(shù)因子。
DOG描述的就是圖像的輪廓,SIFT算法就在此基礎(chǔ)上提取極值點(diǎn)(特征點(diǎn)),實(shí)際就是求函數(shù)的極值點(diǎn),每一個像素點(diǎn)都要與其相鄰點(diǎn)進(jìn)行比較,包括圖像域和尺度域,當(dāng)其是這些點(diǎn)中的極值點(diǎn)(最大值或者最小值)時,就認(rèn)為其是該圖像的特征點(diǎn)。
對上面得到的點(diǎn)進(jìn)行插值運(yùn)算,采用式(3)進(jìn)行最小二乘擬合,用得到的擬合曲面極值來確定特征點(diǎn)的位置。DOG函數(shù)的泰勒展開式如式(3)所示:為尺度空間坐標(biāo)的偏移量,求導(dǎo)并令其為0,得到X的極值如式(4)所示:
式(3)中,
采用多次修正的方法進(jìn)行點(diǎn)的精確定位,當(dāng)三個偏移量有任何一個大于0.5時,就改變位置重新進(jìn)行計算,直到滿足要求為止,將式(4)代入式(3),得到式(5):
由于D0G函數(shù)在圖像邊緣具有很強(qiáng)的邊緣效應(yīng),會給特征點(diǎn)的檢測帶來影響,所以要進(jìn)一步排除邊緣效應(yīng),函數(shù)特征點(diǎn)在圖像橫跨邊緣方向具有較大的主曲率,而在垂直方向具有較小主曲率[11,12],可以通過計算在該點(diǎn)位置尺度的階的Hessian矩陣得到主曲率的值,如式(6)所示:
D0G函數(shù)的主曲率與H矩陣特征值是正比關(guān)系,令最大、最小的特征值分別為和,它們之間的比值為,則:
式(7)中,tr(H)和Det(H)如式(8)和式(9)所示:隨著 的增大而增大,建議取值,若時將特征點(diǎn)保留,否則剔除。
根據(jù)特征點(diǎn)的尺度,可以求出圖像任一像素梯度的模值和方向,如式(10)和式(11)所示:
通過周圍采樣點(diǎn)梯度幅值的加權(quán)處理,確定特征點(diǎn)的主方向,并以幅度為主峰值80%的方向?yàn)樘卣鼽c(diǎn)的輔助方向。這樣一來,特征點(diǎn)的檢測結(jié)束,每個特征點(diǎn)都有三個信息:位置、尺度、方向;同時,也使特征點(diǎn)具有平移、縮放以及旋轉(zhuǎn)不變性,進(jìn)而實(shí)現(xiàn)對影像的匹配。
在特征點(diǎn)計算后,用一組向量將其描述出來,作為目標(biāo)匹配的依據(jù),也可以是特征點(diǎn)具有更多的不變性,以特征點(diǎn)為中心,范圍為采樣窗口(如圖5所示):
圖5采樣窗口
圖5中左圖的每一小格都代表了特征點(diǎn)領(lǐng)域的一個像素,箭頭代表梯度方向,長度代表了幅值,先把它分為4×4的小格,每個小格內(nèi)的梯度方向把0°-360°均分為8個方向,計算每個方向的幅值累加值,這樣一來一個特征點(diǎn)的描述就具有128維向量表征。為了增強(qiáng)匹配算法的穩(wěn)定性,圖中一般取4×4=16個種子點(diǎn)進(jìn)行描述,為了去除光照影響,還需要對其進(jìn)行歸一化處理,尺度空間特征描述(如圖6所示):
圖6尺度空間特征描述
利用SIFT算法對相鄰兩張航空影像進(jìn)行實(shí)驗(yàn),其中SIFT提取點(diǎn)的主方向用紅色箭頭表示,尺度的大小用箭頭的長度來表示(如圖7和圖8所示),圖中高斯空間為4,每組5層,經(jīng)過計算統(tǒng)計,在左片上共有2245個特征向量,右片上共有1979個特征向量。SIFT算法提取的特征點(diǎn)不只分布在特征紋理清晰的地方,同時特征紋理不明顯的地方也能提取出大量的特征點(diǎn)信息。
圖7匹配左片
圖8匹配右片
當(dāng)用SIFT算法將兩幅圖像的特征向量提出來后,需要對特征點(diǎn)進(jìn)行粗匹配,可以通過度量關(guān)鍵點(diǎn)特征向量之間的歐式距離來完成。主要思想是:取一幅圖像中的一個關(guān)鍵點(diǎn),計算其與另一幅圖像中每個關(guān)鍵點(diǎn)的歐式距離,計算最近距離和次近距離之間的比值,如果小于設(shè)定的閾值,那么就認(rèn)為這一對特征點(diǎn)匹配上了。經(jīng)過采用歐式距離進(jìn)行粗匹配之后,在兩幅影像中共有725對同名特征點(diǎn)成功匹配(如圖9所示):
圖9 SIFT算法粗匹配影像
生成特征點(diǎn)后我們就可以進(jìn)行兩幅圖像之間的匹配,得到同名點(diǎn),利用這些同名點(diǎn)我們就可以進(jìn)行圖像拼接、空三處理以及質(zhì)量檢查,但都需要一個前提,就是沒有誤匹配點(diǎn),否則都會給結(jié)果帶來明顯的誤差。所以,在進(jìn)行SIFT特征匹配后,需要對誤匹配點(diǎn)進(jìn)行剔除。
RANSAC算法(隨機(jī)抽樣一致性)是一種參數(shù)估計算法,主要就是根據(jù)不同的任務(wù)要求,設(shè)計不同的目標(biāo)模型,在原始數(shù)據(jù)中隨機(jī)抽取樣本,每組樣本的數(shù)據(jù)量由目標(biāo)模型而定,然后分別估計目標(biāo)模型的參數(shù)初值,接著再計算每組參數(shù)初值所對應(yīng)的局內(nèi)點(diǎn)(滿足參數(shù)模型函數(shù))和局外點(diǎn)(不滿足參數(shù)模型函數(shù)),如果局內(nèi)點(diǎn)數(shù)量越多,說明估計的模型夠合理,這個過程被重復(fù)執(zhí)行固定的次數(shù),直到得到最理想的結(jié)果。
RANSAC計算步驟:
(1)設(shè)樣本數(shù)k為無窮大,樣本計數(shù)器為0;
(2)從匹配點(diǎn)中隨機(jī)選擇4個點(diǎn)對,求解投影變換系數(shù)M;
(3)利用投影變換系數(shù)計算其他點(diǎn)的誤差d,計算所有誤差的中值med(d),根據(jù)中值計算內(nèi)點(diǎn)的閾值t,,當(dāng)時是樣本個數(shù),m為計算模型參數(shù)需要的數(shù)據(jù)量。根據(jù)閾值判斷內(nèi)點(diǎn),計算誤匹配的概率
(4)樣本計數(shù)器t加1;
根據(jù)RANSAC算法得到精匹配圖(如圖10所示):
圖10粗差剔除后精匹配影像
通過實(shí)驗(yàn)分析應(yīng)用基于特征的影像拼接方法,在生成整體影像過程中,由于拼接誤差的積累,會使得影像產(chǎn)生嚴(yán)重的變形,越到最后影像的變形越大,拼接效果越差。
通過對SIFT算法的應(yīng)用研究,可以得到如下結(jié)論:在控制點(diǎn)影像匹配過程之前要先對目標(biāo)影像進(jìn)行降采樣處理,降采樣方法采取任意方法均可,影像匹配時,應(yīng)選取地物特征明顯的地區(qū),在控制點(diǎn)影像數(shù)據(jù)采集的時候,也應(yīng)該盡量選取地物特征明顯的影像錄入數(shù)據(jù)庫。