陳常暉
(福建船政交通職業(yè)學(xué)院 通用航空產(chǎn)業(yè)學(xué)院, 福建 福州 350007)
無人機(jī)航拍技術(shù)發(fā)展迅速,近年來已成為研究熱點(diǎn).無人機(jī)航拍擁有輕巧、靈活、造價(jià)低等特點(diǎn),在軍事領(lǐng)域和民用領(lǐng)域都發(fā)揮著重要作用,如高危地區(qū)偵查、環(huán)境監(jiān)測(cè)、天氣預(yù)測(cè)等.由于飛行高度、相機(jī)性能和惡劣環(huán)境等各種因素的影響,無人機(jī)航拍獲取的單張圖片包含信息較少,需要對(duì)多張圖片進(jìn)行圖像拼接處理,以獲取目標(biāo)區(qū)域的全面圖[1].傳統(tǒng)的無人機(jī)圖像拼接技術(shù)一般采用尺度不變特征變換算法(Scale-Invariant Feature Transform,SIFT)和加速穩(wěn)健特征算法(Speeded Up Robust Features,SURF),但兩種算法運(yùn)行較慢,無法滿足處理實(shí)時(shí)性的要求[2].研究采用ORB算法(Oriented FAST and Rotated BRIEF,ORB)、K最近鄰算法(K-Nearest Neighbors Algorithm,KNN)、隨機(jī)采樣一致算法(Random Sample Consensus,RANSAC)對(duì)圖像特征點(diǎn)進(jìn)行提取、匹配和提純,實(shí)現(xiàn)對(duì)無人機(jī)圖像拼接技術(shù)優(yōu)化.研究結(jié)果表明,優(yōu)化拼接技術(shù)在擁有足夠高的匹配精度同時(shí),還擁有比傳統(tǒng)技術(shù)更快的處理速度.
無人機(jī)(Unmanned Aerial Vehicle,UAV)是一種無人駕駛的不載人飛機(jī),用途十分廣泛.近年來,我國(guó)無人機(jī)銷量不斷上漲,在2018年,無人機(jī)銷售總量已經(jīng)超過了300萬(wàn)臺(tái)[3-4].無人機(jī)航拍是無人機(jī)的重要用途之一,無人機(jī)圖像拼接是無人機(jī)航拍的重要環(huán)節(jié)[5].圖像拼接是指以某張圖像為基準(zhǔn)圖像,另一張與基準(zhǔn)圖像有一定重疊區(qū)域的圖像作為待拼接圖像,在對(duì)兩張圖像進(jìn)行配準(zhǔn)后,使兩幅圖像重疊的坐標(biāo)點(diǎn)能夠?qū)?zhǔn),然后拼接重疊部分以外的的區(qū)域,得到一張新的圖像[6].具體實(shí)施過程如圖1所示.
圖1 圖像拼接流程
在無人機(jī)圖像拼接技術(shù)中,圖像特征點(diǎn)的提取是極為關(guān)鍵的一環(huán)[7].圖像特征點(diǎn)是指一種有助于理解和分析圖像的在二維空間有較大變化的圖像局部點(diǎn)特征.傳統(tǒng)的無人機(jī)圖像拼接技術(shù)是采用SIFT算法和SURF算法來進(jìn)行特征點(diǎn)提取.SIFT算法是一種特征檢測(cè)算子,通過對(duì)尺度空間極值點(diǎn)的檢測(cè),以搜索圖像在各個(gè)尺度上的位置,并根據(jù)關(guān)鍵點(diǎn)的信息生成特征點(diǎn)的特征向量.SURF算法相比SIFT算法擁有更快的特征點(diǎn)提取速度,是一種基于海森矩陣(Hessian Matrix)的特征提取算法[8].SURF算法通過對(duì)圖像特征點(diǎn)的小波響應(yīng)進(jìn)行計(jì)算,尋找模值最大向量的方向以確定特征點(diǎn)的方向,具體尋找方法如圖2所示.
圖2 特征點(diǎn)主方向
但這兩種算法都有很大的局限性,即運(yùn)算速度相對(duì)較慢,無法滿足處理實(shí)時(shí)性,因此研究引入ORB算法進(jìn)行特征點(diǎn)提取,優(yōu)化無人機(jī)圖像拼接技術(shù).
ORB算法是結(jié)合了快速角點(diǎn)檢測(cè)算法(Features from Accelerated Segment Test,F(xiàn)AST)和BRIEF算法(Binary Robust Independent Elementary Features)的優(yōu)點(diǎn),并在此基礎(chǔ)上進(jìn)行改進(jìn)優(yōu)化的特征點(diǎn)提取方法.ORB算法采用FAST算法進(jìn)行特征點(diǎn)檢測(cè),利用BRIEF算法進(jìn)行特征點(diǎn)描述.FAST算法最大的特點(diǎn)是基于像素點(diǎn)與待測(cè)點(diǎn)之間的灰度值差異大小,決定是否將該像素點(diǎn)作為特征點(diǎn)[9].由于ORB算法不對(duì)特征點(diǎn)進(jìn)行特征描述,因此計(jì)算量極大減少,實(shí)時(shí)性得到了極大提高,且能保留圖像本身的特征.在引入高斯金字塔(Gaussian Pyramid)后,能夠?qū)崿F(xiàn)尺度不變性與旋轉(zhuǎn)不變性,得到尺度特征,并根據(jù)FAST角點(diǎn)的灰度和質(zhì)心偏移來確定主方向[10].對(duì)圖像中的任意特征點(diǎn)P,有如公式(1)所示.
(1)
在公式(1)中,mpq為特征點(diǎn)P的鄰域像素矩.對(duì)于圖像的質(zhì)心,其計(jì)算方式如公式(2)所示.
(2)
公式(2)中,C為圖像質(zhì)心.C與P之間的夾角,即是FAST特征點(diǎn)的主方向,其計(jì)算方式如公式(3)所示.
(3)
BRIEF算法是一種采用二進(jìn)制碼串作為特征點(diǎn)的特征描述子,因此運(yùn)算速度較快.對(duì)于一個(gè)面積為S*S的像素塊A,對(duì)其進(jìn)行平滑處理后,其二值測(cè)試可定義為公式(4).
(4)
公式(4)中,A(x)表示像素點(diǎn)在x位置的灰度值.BRIEF算法生成的特征描述子是一個(gè)n維的二進(jìn)制碼串,如公式(5)所示.
(5)
在該特征點(diǎn)上選出n對(duì)特征,得到矩陣,對(duì)矩陣進(jìn)行旋轉(zhuǎn)變換處理后,得到新矩陣,如公式(6)所示.
(6)
公式(6)中,Sθ表示描述矩陣,通過公式(6)的變換,即可得到特征點(diǎn)的描述子,如公式(7)所示.
gn(a,θ)=fn(a)|(xi,yi)∈Sθ.
(7)
經(jīng)過特征點(diǎn)檢測(cè)和特征點(diǎn)描述,ORB算法即可完成對(duì)圖像的特征點(diǎn)提取.
在無人機(jī)圖像拼接之前,需要進(jìn)行圖像配準(zhǔn),將待拼接的兩張圖像統(tǒng)一到同一個(gè)平面坐標(biāo)系中.特征點(diǎn)的匹配需要先提取基準(zhǔn)圖像與待拼接圖像的特征點(diǎn),再以相似性度量來判定這些特征點(diǎn)間的相似性,搜索匹配這些特征點(diǎn)后,對(duì)待拼接圖像進(jìn)行變換,最終實(shí)現(xiàn)圖像間的配準(zhǔn)[11].KNN算法是以待判定樣本周圍最近的K個(gè)樣本的數(shù)據(jù)類型來判定該樣本的數(shù)據(jù)類型,在對(duì)圖像的相似性度量時(shí),KNN算法采用歐式距離來確定K個(gè)樣本.設(shè)圖像中有任意兩個(gè)點(diǎn)p1(x1,y1)和p2(x2,y2),則兩個(gè)點(diǎn)之間的歐氏距離如公式(8)所示.
(8)
KNN算法對(duì)特征點(diǎn)的搜索策略,研究采用K-d樹(K-dimension tree).K-d樹常用于多維數(shù)據(jù)的索引,能夠有效提高匹配效率,由K-d樹的構(gòu)建和K-d樹的匹配搜索構(gòu)成.K-d樹的構(gòu)建如圖3所示.
圖3 K-d樹構(gòu)建流程
在K-d樹通過對(duì)最近鄰的搜索后,獲取到距離待測(cè)數(shù)據(jù)點(diǎn)最近的數(shù)據(jù)點(diǎn).以二叉樹搜索的方式獲取到葉子節(jié)點(diǎn),在這個(gè)葉子節(jié)點(diǎn)中含有查詢點(diǎn),但此葉子節(jié)點(diǎn)并不絕對(duì)是最近鄰,因此還需要沿之前的搜索路徑反向回溯,搜索是否有比葉子節(jié)點(diǎn)更接近查詢點(diǎn)的數(shù)據(jù)點(diǎn).采用KNN算法對(duì)無人機(jī)圖像特征點(diǎn)進(jìn)行匹配后,圖像中會(huì)存在大量的誤匹配點(diǎn),進(jìn)而對(duì)圖像配準(zhǔn)的精度造成不良影響,因此需要對(duì)這些匹配特征點(diǎn)進(jìn)行提純優(yōu)化,以防止誤匹配點(diǎn)對(duì)圖像配準(zhǔn)造成影響.
RANSAC算法是一種常用于計(jì)算機(jī)視覺領(lǐng)域具有較高魯棒性的算法,能夠在一組含有異常數(shù)據(jù)的數(shù)據(jù)集中,通過對(duì)數(shù)據(jù)的數(shù)學(xué)模型參數(shù)進(jìn)行計(jì)算,剔除異常數(shù)據(jù),獲取有效的樣本數(shù)據(jù)[12].研究采用RANSAC算法對(duì)匹配點(diǎn)進(jìn)行提純處理,其原理是通過對(duì)不同目標(biāo)空間參數(shù)的不斷嘗試,從而獲取一個(gè)大多數(shù)特征點(diǎn)能夠滿足的數(shù)學(xué)模型參數(shù),并不斷迭代以增加模型的準(zhǔn)確率,最后記錄與數(shù)學(xué)模型相符的最多樣本參數(shù),劃分內(nèi)外點(diǎn),內(nèi)點(diǎn)即符合數(shù)學(xué)模型的數(shù)據(jù),外點(diǎn)為不符合的數(shù)據(jù),則有公式(9).
p=1-(1-wn)N.
(9)
公式(9)中,p為迭代過程中隨機(jī)抽取數(shù)據(jù)集中的點(diǎn)均為內(nèi)點(diǎn)的概率,w為數(shù)據(jù)集中抽取內(nèi)點(diǎn)的概率,n為模型抽取點(diǎn)的數(shù)量,N為采樣次數(shù),且N應(yīng)滿足條件如公式(10)所示.
(10)
單應(yīng)性矩陣能夠?qū)D像間的幾何變換關(guān)系進(jìn)行描述,是RANSAC算法提純匹配點(diǎn),消除誤匹配點(diǎn)的關(guān)鍵.單應(yīng)性矩陣如公式(11)所示.
(11)
公式(11)中,(x,y)和(x′,y′)為圖像中待匹配特征點(diǎn)的坐標(biāo).在公式(11)中,需要至少4對(duì)匹配特征點(diǎn),因此RANSAC算法對(duì)匹配點(diǎn)的提純步驟為:將兩張圖像進(jìn)行配準(zhǔn),得到A個(gè)匹配點(diǎn)對(duì)的集合X,從X內(nèi)隨機(jī)抽取4對(duì)匹配點(diǎn),計(jì)算出公式(11)中的參數(shù),對(duì)X中剩余的(A-4)個(gè)匹配點(diǎn)對(duì)進(jìn)行計(jì)算,獲取剩余匹配點(diǎn)到模型的距離,記錄滿足模型的數(shù)據(jù)點(diǎn)數(shù)量,即內(nèi)點(diǎn)數(shù)量C,重復(fù)上述操作N次后,求出C的最大值,C個(gè)內(nèi)點(diǎn)即為匹配點(diǎn),剩余(A-C)個(gè)則為誤匹配點(diǎn),需要進(jìn)行消除.經(jīng)過上述操作后,即可完成對(duì)圖像特征點(diǎn)的匹配和提純.
無人機(jī)圖像拼接算法需要同時(shí)保證算法對(duì)圖像特征點(diǎn)的提取速度、提取精度、匹配速度、匹配精度.為了驗(yàn)證改進(jìn)無人機(jī)對(duì)圖像拼接算法對(duì)圖像特征點(diǎn)的匹配效果,研究選取3張不同的圖像,圖像A、圖像B以及圖像D,分別采用改進(jìn)無人機(jī)圖像拼接算法、SURF算法以及SIFT算法對(duì)這3張圖像進(jìn)行特征點(diǎn)提取和匹配,分別記錄3種算法對(duì)3張圖像特征點(diǎn)的匹配準(zhǔn)確率和匹配時(shí)間,以比較3種算法在無人機(jī)圖像拼接中圖像特征點(diǎn)匹配方面的性能.3種算法對(duì)3張圖像特征點(diǎn)的匹配情況如表1所列.
表1 3種算法對(duì)圖像特征點(diǎn)的匹配情況對(duì)比
從表1看出,SIFT算法與改進(jìn)算法的特征點(diǎn)匹配準(zhǔn)確率要遠(yuǎn)遠(yuǎn)高于SURF算法.其中SIFT算法的特征點(diǎn)匹配準(zhǔn)確率最高,平均為87.77%;改進(jìn)算法的特征點(diǎn)匹配準(zhǔn)確率平均為84.61%,與SIFT算法相當(dāng),僅低3.16%;SURF算法的特征點(diǎn)匹配準(zhǔn)確率最低,平均為65.15%,比SIFT算法低22.62%,比改進(jìn)算法低19.46%.改進(jìn)算法的匹配用時(shí)最短,分別為0.06 s、0.12 s和0.02 s,改進(jìn)算法對(duì)3張圖像的匹配總用時(shí)為0.2 s,平均用時(shí)0.07 s;SIFT算法的匹配用時(shí)最長(zhǎng),分別為1.17 s、6.51 s和5.11 s,總用時(shí)12.79 s,平均用時(shí)4.26 s,是改進(jìn)算法平均匹配時(shí)長(zhǎng)的6.5倍;SURF算法的匹配時(shí)長(zhǎng)分別為0.49 s、1.73 s和1.30 s,對(duì)3張圖像的總匹配時(shí)長(zhǎng)為3.52 s,平均時(shí)長(zhǎng)為1.17 s,是改進(jìn)算法平均匹配時(shí)長(zhǎng)的1.78倍.綜上所述,SIFT算法的匹配準(zhǔn)確率最高,但匹配用時(shí)過長(zhǎng),是改進(jìn)算法的6.5倍;SIFT算法的匹配速率較快,但匹配準(zhǔn)確率明顯低于SIFT算法和改進(jìn)算法;改進(jìn)算法的匹配速率最快,且匹配準(zhǔn)確率較高,僅略低于SIFT算法.以上結(jié)果說明,改進(jìn)算法對(duì)圖像特征點(diǎn)匹配的準(zhǔn)確率與速率綜合考量最為理想,能夠滿足實(shí)際運(yùn)用.
無人機(jī)圖像拼接技術(shù)對(duì)算法的特征點(diǎn)提取速度性能要求較高,為了驗(yàn)證改進(jìn)無人機(jī)圖像拼接算法在特征點(diǎn)提取速度方面的性能,研究選取7張不同的圖像,分別采用改進(jìn)無人機(jī)圖像拼接算法、SURF算法以及SIFT算法對(duì)這7張圖像進(jìn)行特征點(diǎn)提取,并記錄3種算法對(duì)這7張圖像進(jìn)行特征點(diǎn)提取所耗費(fèi)的時(shí)長(zhǎng),以比較3種算法在圖像特征點(diǎn)提取方面的性能.3種算法對(duì)7張圖像特征點(diǎn)的提取耗時(shí)情況如圖4所示.
圖4 3種算法對(duì)圖像特征點(diǎn)的提取速度對(duì)比
從圖4看出,改進(jìn)算法提取7張圖像的特征點(diǎn)所花費(fèi)的時(shí)長(zhǎng)遠(yuǎn)遠(yuǎn)少于SIFT算法和SURF算法.改進(jìn)算法完成7張圖像的特征點(diǎn)提取總共需耗費(fèi)2.3 s,平均每張圖像耗費(fèi)0.33 s;SURF算法提取7張圖像特征點(diǎn)的花費(fèi)總時(shí)長(zhǎng)比改進(jìn)算法多,但比SIFT算法少,為8.6 s,平均每提取一張圖像的特征點(diǎn)所耗費(fèi)時(shí)間為1.23 s,是改進(jìn)算法的3.7倍;SIFT算法提取取7張圖像的特征點(diǎn)所花費(fèi)的時(shí)間最多,為41.22 s,平均每張圖像耗費(fèi)5.89 s,是改進(jìn)算法的17.85倍,是SURF算法的4.79倍.在圖4中,3種算法提取圖像特征點(diǎn)花費(fèi)時(shí)間的圖像并非一條直線,而是有一定波動(dòng),說明7張圖像的特征點(diǎn)數(shù)量不同,因此在算法對(duì)7張圖像進(jìn)行特征點(diǎn)提取時(shí),每張圖像提取的時(shí)長(zhǎng)并不完全相同.以上結(jié)果說明,改進(jìn)無人機(jī)圖像拼接算法對(duì)圖像的特征點(diǎn)提取速度最快,具有較高的實(shí)時(shí)性.
RANSAC算法能夠?qū)μ崛〉奶卣鼽c(diǎn)進(jìn)行提純處理,消除誤匹配點(diǎn),提高圖像配準(zhǔn)的準(zhǔn)確率和效率.為了驗(yàn)證RANSAC算法對(duì)圖像特征點(diǎn)的提純效果,研究選取3張不同的圖像,圖像1、圖像2以及圖像3,采用改進(jìn)無人機(jī)圖像拼接算法對(duì)這3張圖像進(jìn)行特征點(diǎn)提取,并將之分為A、B兩組,兩組分別采用RANSAC算法對(duì)特征點(diǎn)提純后進(jìn)行特征點(diǎn)匹配,和直接進(jìn)行特征點(diǎn)匹配,對(duì)比兩組的匹配效率和準(zhǔn)確率.兩組的特征點(diǎn)匹配對(duì)比情況如圖5所示.
圖5 A、B兩組3張圖像特征點(diǎn)匹配情況對(duì)比
從圖5看出,A組在圖像1的特征點(diǎn)匹配數(shù)量為92個(gè),在圖像2的特征點(diǎn)匹配數(shù)量為201個(gè),圖像3的特征點(diǎn)匹配數(shù)量為577個(gè),均少于B組.A組平均每張圖像的匹配特征點(diǎn)為290個(gè),而B組為486.7個(gè),A組每張圖像的匹配特征點(diǎn)平均比B組少196.7個(gè),說明RANSAC算法能夠有效消除誤匹配點(diǎn),減少算法的計(jì)算量;A組的平均匹配用時(shí)為0.15 s,比B組的0.28 s少0.13 s;此外,A組的匹配準(zhǔn)確率平均為81.89%,而B組為67.90%,A組比B組平均高13.99%.以上結(jié)果說明,RANSAC算法能夠有效提純待匹配特征點(diǎn),消除誤匹配點(diǎn),提高匹配效率和準(zhǔn)確率.
傳統(tǒng)的無人機(jī)圖像拼接技術(shù)已開始逐漸淘汰.研究利用ORB算法、KNN算法和RANSAC算法對(duì)無人機(jī)圖像拼接算法進(jìn)行改進(jìn)優(yōu)化.研究結(jié)果表明,與SURF算法相比,改進(jìn)算法的特征點(diǎn)匹配準(zhǔn)確率要高出接近20%;對(duì)圖像進(jìn)行匹配操作時(shí),改進(jìn)算法的圖像匹配時(shí)間要明顯低于SIFT算法和SURF算法;對(duì)于相同圖像上的特征點(diǎn),改進(jìn)算法的提取時(shí)間明顯少于SIFT算法和SURF算法;在采用RANSAC算法對(duì)特征點(diǎn)進(jìn)行提純操作后,圖像的匹配時(shí)長(zhǎng)得到了明顯縮短,圖像特征點(diǎn)的匹配準(zhǔn)確率也得到了顯著提高.以上結(jié)果說明,改進(jìn)算法具有較高的實(shí)際應(yīng)用價(jià)值,但研究未針對(duì)在不同天氣環(huán)境下的無人機(jī)圖像拼接進(jìn)行探討,需要后續(xù)進(jìn)一步探索.