孫東閣, 陳 輝
(上海電力大學(xué) 自動(dòng)化工程學(xué)院, 上海 200090)
近年來,無人機(jī)因其機(jī)動(dòng)性強(qiáng)、成本低等優(yōu)點(diǎn)在軍事和民用領(lǐng)域得到了廣泛應(yīng)用[1]。但目前通過無人機(jī)航拍對(duì)物體進(jìn)行非接觸信息采集來構(gòu)建物體的三維模型,在考古、信息化城市、文物保護(hù)、機(jī)器人、軍事等領(lǐng)域應(yīng)用還不夠成熟。因此,研究無人機(jī)圖像處理技術(shù)具有重要現(xiàn)實(shí)意義[2]。特征匹配是指在一個(gè)被測目標(biāo)的兩幅或多幅圖像中尋找相同的特征點(diǎn),探尋其對(duì)應(yīng)關(guān)系,從而將這兩幅或者多幅圖像進(jìn)行匹配的過程。無人機(jī)圖像的特征匹配在軍事、人工智能、圖像拼接、三維重建、物體追蹤及定位領(lǐng)域中的應(yīng)用十分廣泛[3]。
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,無人機(jī)圖像匹配算法也得到了不斷改進(jìn)。1988年Harris算子的提出[4],增加了特征點(diǎn)的穩(wěn)定性,但其對(duì)邊緣點(diǎn)的檢測仍然不夠敏感。1999年,LOWE D提出了尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)算法[5]。該算法經(jīng)不斷完善,在圖像匹配中得到了廣泛應(yīng)用,但其仍存在不足之處,如計(jì)算復(fù)雜,在視角變化大、紋理豐富的無人機(jī)圖像匹配中難以獲得匹配對(duì)等[6]。2006年ECCY大會(huì)上提出的加速穩(wěn)健特征(Speeded Up Robust Features,SURF)算法,在一定程度上提高了匹配速度,但對(duì)于視角變化的處理仍不夠理想[7]。2009年,MOREL J M等人提出ASIFT(Affine-SIFT)算法[8],相較之前的算法,提高了匹配效率。近年來,不斷有學(xué)者對(duì)ASIFT算法的相機(jī)模型[9]進(jìn)行了改進(jìn),增加了匹配數(shù)量,但在匹配過程中存在誤差匹配較多等問題?;诖?本文提出了一種ASIFT改進(jìn)算法,以解決原算法中存在的誤差匹配問題。
SIFT算法主要包括提取、描述、匹配3個(gè)步驟。首先,在DoG金字塔尺度空間內(nèi)提取特征點(diǎn)。尺度空間由高斯卷積、圖像下采樣和高斯差分操作構(gòu)建而成。在尺度空間中初步提取出作為局部極值點(diǎn)的興趣點(diǎn),再剔除掉能量低的不穩(wěn)定的和錯(cuò)誤的興趣點(diǎn),得到最終穩(wěn)定的特征點(diǎn)[10]。然后,設(shè)定特征點(diǎn)的主方向,便于對(duì)特征點(diǎn)進(jìn)行描述,旋轉(zhuǎn)特征點(diǎn)的方向來構(gòu)造特征描述子,可以使算子保持較好的旋轉(zhuǎn)不變性。特征點(diǎn)的主方向可以借助其鄰域像元的梯度分布情況來描述[11]。
為了實(shí)現(xiàn)圖像旋轉(zhuǎn)的不變性,以關(guān)鍵點(diǎn)為坐標(biāo)原點(diǎn),將坐標(biāo)軸旋轉(zhuǎn)為關(guān)鍵點(diǎn)的主方向,然后以關(guān)鍵點(diǎn)為中心,取8×8個(gè)鄰域作為采樣窗口。通常一個(gè)特征點(diǎn)由2×2共4個(gè)種子點(diǎn)組成,形成2×2×8共32維描述子。為了提高匹配的穩(wěn)定性和魯棒性,對(duì)每個(gè)特征點(diǎn)采用 4×4 共16個(gè)子區(qū)域進(jìn)行描述,即16個(gè)種子點(diǎn)。每個(gè)區(qū)域分為8個(gè)方向,即形成一個(gè)16×8共 128 維 SIFT 特征描述子。然后對(duì)特征描述子數(shù)據(jù)進(jìn)行歸一化處理,進(jìn)一步減弱灰度變化帶來的干擾。
最后,利用k-d樹在高維空間快速而準(zhǔn)確地找到查詢特征點(diǎn)的近鄰,用歐式距離作為相似性度量,即特征向量的最近鄰與次近鄰的比值進(jìn)行匹配。取參考圖像中的任一特征點(diǎn),找出其與待配準(zhǔn)圖像中距離最近的兩個(gè)特征點(diǎn),如果最近鄰值與次近鄰值的比值小于設(shè)定閾值,則認(rèn)為該匹配對(duì)為正確匹配對(duì),否則判為誤匹配對(duì)。特征點(diǎn)匹配實(shí)際上就是一個(gè)通過距離函數(shù)在高維矢量之間進(jìn)行相似性檢索的問題。
SIFT算法在傳統(tǒng)圖像配準(zhǔn)中可以取得很好的效果,但是在面對(duì)視角變化較大、紋理較為豐富的無人機(jī)圖像時(shí),往往只能找到少數(shù)特征點(diǎn)甚至不能匹配[12]。ASIFT算法是基于SIFT算法提出的一種改進(jìn)算法。ASIFT算法提出經(jīng)度、維度的概念,通過模仿相機(jī)的實(shí)際位置,從而估測由相機(jī)位置不同而產(chǎn)生的圖形畸變[13]。一個(gè)完整的仿射矩陣需要6個(gè)參數(shù),SIFT算法模仿其中4個(gè):相機(jī)圍繞光軸的旋轉(zhuǎn)、相機(jī)焦距、平移和旋轉(zhuǎn)。ASIFT算法則模仿2個(gè)參數(shù):相機(jī)與圖像法線的傾斜角θ和旋轉(zhuǎn)角φ,即為相機(jī)模型的緯度角θ和經(jīng)度角φ。仿射相機(jī)模型如圖1所示。圖1中:α代表圖像平面;φ為相機(jī)光軸經(jīng)度;θ為相機(jī)光軸緯度;ψ為相機(jī)旋轉(zhuǎn);λ為對(duì)應(yīng)縮放。
圖1 仿射相機(jī)模型
ASIFT算法匹配直觀圖如圖2所示。圖2中,A代表參考圖像,B代表模擬圖像。由圖2不難看出,圖像B是由圖像A進(jìn)行小幅旋轉(zhuǎn)得到的。
圖2 ASIFT算法匹配直觀圖
本文以兩幅圖像作為輸入圖像;利用ASIFT算法建立相機(jī)模型,進(jìn)而模擬圖像畸變;然后采用SIFT算法進(jìn)行特征點(diǎn)的提取與匹配;最后加入隨機(jī)抽樣一致(Random Sample Consensus,RANSAC)算法[14]對(duì)誤差匹配進(jìn)行剔除。其整體流程如圖3所示。
圖3 算法流程示意
具體如下。
(2)采用SIFT算法對(duì)模擬圖像I′(φ,t)提取匹配。在尺度空間進(jìn)行表示:
(1)
L(φ,t,σ)=G(φ,t,σ)*I′(φ,t)
(2)
式中:G(φ,t,σ)——高斯核函數(shù);
σ——尺度空間因子;
L(φ,t,σ)——圖像的尺度空間;
*——卷積運(yùn)算。
首先通過差分金字塔D(φ,t,σ)的構(gòu)建來實(shí)現(xiàn)特征點(diǎn)定位,然后利用鄰域像元的梯度分布來描述特征子的方向,最后采用k-d樹算法用歐式舉例作為相似性度量,即特征向量的最近鄰值與次近鄰值的比值進(jìn)行匹配。
(3)
取參考圖像中任一特征點(diǎn),找出其與待配準(zhǔn)圖像中距離最近的兩個(gè)特征點(diǎn)。如果最近鄰值與次近鄰值的比值小于設(shè)定閾值0.8,則認(rèn)為該匹配對(duì)為正確匹配對(duì),否則,判為誤差匹配對(duì)。對(duì)于誤差匹配,本文采用RANSAC算法,其原理是根據(jù)一組包含異常數(shù)據(jù)的樣本數(shù)據(jù)集,計(jì)算出數(shù)據(jù)的數(shù)學(xué)模型參數(shù),從而得到有效樣本數(shù)據(jù)。
RANSAC算法的核心思想就是在匹配的特征點(diǎn)中隨機(jī)抽取4個(gè)特征點(diǎn),通過計(jì)算和不斷迭代,尋找到最優(yōu)的參數(shù)模型,在這個(gè)最優(yōu)模型中,能匹配上的特征點(diǎn)最多。
引入最優(yōu)單應(yīng)性3×3矩陣H,使得滿足該矩陣的匹配特征點(diǎn)最多。令h33=1來歸一化矩陣,H只有8個(gè)未知參數(shù),對(duì)應(yīng)到特征點(diǎn)位置信息上,至少需要4組特征匹配點(diǎn)對(duì)才能求解得到單應(yīng)性矩陣H。
(4)
式中:s——尺度參數(shù);
(x′,y′)——模擬場景圖像中的角點(diǎn)位置;
(x,y)——目標(biāo)場景圖像中的角點(diǎn)位置。
RANSAC算法從匹配數(shù)據(jù)集P中選出隨機(jī)樣本S,初始化模型M,然后利用該模型測試所有數(shù)據(jù),并計(jì)算滿足該模型數(shù)據(jù)點(diǎn)的個(gè)數(shù)與投影誤差(即代價(jià)函數(shù))。若該模型為最優(yōu)模型,則對(duì)應(yīng)的代價(jià)函數(shù)最小。計(jì)算代價(jià)函數(shù)的公式為
(5)
為了驗(yàn)證算法的有效性,本文采用大疆無人機(jī)精靈4 PRO P4P,以校園環(huán)境中的建筑物為目標(biāo)進(jìn)行實(shí)驗(yàn),所采集的每幅圖片的尺寸規(guī)格均為800×600。實(shí)驗(yàn)在Visual studio 2013 Open CV軟件環(huán)境下,運(yùn)行于Windows 7操作系統(tǒng)的計(jì)算機(jī)上。編程語言為C++。首先利用ASIFT算法對(duì)實(shí)驗(yàn)圖像進(jìn)行特征點(diǎn)提取,然后對(duì)提取的特征點(diǎn)通過k-d樹算法進(jìn)行快速匹配,最后用RANSAC算法訓(xùn)練建立模型,以此來不斷篩選出最優(yōu)匹配,達(dá)到剔除誤差匹配的效果。
甸園錦江賓館、上海電力大學(xué)科技園、上海電力學(xué)院圖書館分別在SIFT算法,ASIFT算法,ASIFT改進(jìn)算法下的匹配結(jié)果如圖4、圖5、圖6所示。
圖4 甸園錦江賓館在3種算法下的匹配結(jié)果
由圖4~圖6可知,在同一無人機(jī)圖像對(duì)的匹配中,ASIFT算法匹配對(duì)數(shù)遠(yuǎn)遠(yuǎn)超過SIFT算法。此實(shí)驗(yàn)結(jié)果說明ASIFT算法在無人機(jī)圖像匹配中效果遠(yuǎn)好于SIFT算法。但從圖4(b)、圖5(b)、圖6(b)可以看出,ASIFT算法下的匹配結(jié)果仍存在諸多錯(cuò)誤匹配,因此我們在此基礎(chǔ)上進(jìn)行了改進(jìn),在ASIFT算法上加入 RANSAC算法,由圖4(c)、圖5(c)、圖6(c)可以看出,加入該算法后,匹配對(duì)相應(yīng)減少,消除了錯(cuò)雜混亂的匹配現(xiàn)象。
圖5 上海電力大學(xué)科技園在3種算法下的匹配結(jié)果
圖6 上海電力大學(xué)圖書館在3種算法下的匹配結(jié)果
3種算法下的匹配結(jié)果數(shù)據(jù)如表1所示。3種算法下的匹配時(shí)間數(shù)據(jù)如表2所示。
由表1可知,在同一無人機(jī)圖像匹配中,采用ASIFT算法所得匹配對(duì)數(shù)約為SIFT算法匹配對(duì)數(shù)的20倍,其效果遠(yuǎn)好于SIFT算法;采用ASIFT改進(jìn)算法對(duì)誤差匹配進(jìn)行剔除后,其匹配對(duì)數(shù)則約為SIFT算法匹配對(duì)數(shù)的7倍。由表2可知,ASIFT算法匹配時(shí)間長于SIFT匹配算法,ASIFT改進(jìn)算法匹配時(shí)間介于ASIFT算法與SIFT算法之間。因此,相較于ASIFT算法,ASIFT改進(jìn)算法匹配速度約提升了23%;相較于SIFT算法,ASIFT改進(jìn)算法時(shí)間差距較小,而匹配能力遠(yuǎn)遠(yuǎn)優(yōu)于SIFT算法。
表1 算法匹配結(jié)果對(duì)比 單位:對(duì)
表2 算法匹配時(shí)間對(duì)比 單位:s
本文所提算法是基于ASIFT算法的一種改進(jìn)算法,該算法保留了ASIFT算法的特征提取部分,以及SIFT算法的特征點(diǎn)匹配部分,并在此基礎(chǔ)上加入了RANSAC算法,對(duì)ASIFT算法進(jìn)行誤差匹配的過濾,以優(yōu)化匹配效果。通過對(duì)甸園錦江賓館、上海電力大學(xué)科技園、上海電力大學(xué)圖書館3個(gè)場景進(jìn)行無人機(jī)圖像的采集,采用3種算法對(duì)匹配結(jié)果進(jìn)行對(duì)比,最終得出符合預(yù)期的實(shí)驗(yàn)效果。對(duì)實(shí)驗(yàn)證明,本文所提改進(jìn)算法可以有效剔除ASIFT算法中的誤差匹配,并且提高了約23%的匹配速度。
上海電力大學(xué)學(xué)報(bào)2020年3期