梁中巖,戚紅雨,王偉良,胡 杰
(1.中國電子科技集團公司第二十八研究所,江蘇 南京 210007;2.中國人民解放軍96902部隊,北京 100015;3.中國人民解放軍91604部隊,山東 龍口 265700)
由于靈活、機動的特點,無人機越來越多地應用于生產(chǎn)、生活的各個方面,如農(nóng)業(yè)監(jiān)控、電力監(jiān)控和交通監(jiān)控等[1]。偵察人員在得到無人機航拍圖像的同時,往往需要知道關(guān)注目標的地理信息數(shù)據(jù),如經(jīng)度、緯度和高度等?,F(xiàn)有的圖像處理技術(shù)僅考慮圖像中色彩、紋理等圖像信息的處理,而未對地理信息進行處理,處理后的圖像會丟失地理信息數(shù)據(jù),最終使得處理后的圖像僅有色彩、紋理信息,而不具有地理信息數(shù)據(jù)。為了滿足偵察人員的需要,本文提出了一種圖像與地理數(shù)據(jù)信息一體化的表示方法,使得地理數(shù)據(jù)信息處理與圖像處理過程同步,實現(xiàn)圖像與地理數(shù)據(jù)的一體化融合處理。同時,結(jié)合圖像配準、融合和拼接技術(shù),將地理信息融合到圖像處理過程中,實現(xiàn)圖像地理數(shù)據(jù)的同步處理,以便于偵察情報分析人員能夠迅速從圖像中直接獲取感興趣目標的地理位置。
本文以圖像拼接為例介紹帶地理信息的無人機圖像表示和處理算法。圖像拼接的主要步驟包括圖像配準和圖像融合[2]。
圖像配準主要通過檢測圖像中的特征點進行配準,常用的特征點檢測算法主要是局部圖像特征檢測算法。近年來,有大量基于尺度不變特征變換SIFT(Scale Invariant Feature Transform)[3]、加速魯棒特性SURF(Speeded Up Robust Features)[4]、有方向的加速分割測試特征和有旋轉(zhuǎn)的二進制魯棒獨立基本特征ORB(Oriented FAST and Rotated BRIEF)[5]和關(guān)鍵點或角點檢測Harris[6]的拼接算法被提出來,但基本都是僅僅處理圖像本身。而在無人機遙感領域,無人機所拍攝的圖像不僅包含圖像本身,還帶有各種地理信息和飛行參數(shù)。在無人機正視俯拍的情況下,可以利用飛機的載荷參數(shù)計算出圖像中像素點的地理信息[7],并將其與圖像一同傳回地面控制中心。在圖像處理的同時,處理人員希望能夠不丟失地理信息,例如,在拼接后的圖像上可以更加直觀地觀察圖像中的目標,對感興趣的目標可以直接進行地理定位。
隨著小型無人機的發(fā)展,無人機航拍圖像的專業(yè)處理軟件也蓬勃發(fā)展起來。其中,PhotoScan和Pix4D[8,9]可用于離線生成無人機航拍正射影像,然而在其處理過程中,多使用基于點云的稠密重建來生成全景影像,從而導致在圖像插值的區(qū)域可能發(fā)生圖像紋理扭曲的現(xiàn)象。雖然Arcgis[8]中也集成有無人機航拍圖像的離線全景正射影像生成、無人機航跡點的地圖顯示等功能,然而該功能附屬于Arcgis平臺,主要支持民用的小型無人機數(shù)據(jù)與圖像的傳輸、控制與處理,平臺封閉性較強。
為了解決大量拼接計算時間長的問題,本文提出了基于分組控制的帶地理信息的圖像拼接算法,充分利用處理器多線程核心處理能力,對拼接圖像的不同部分同時進行拼接,并在最終將各個處理器的處理結(jié)果拼接為最終拼接結(jié)果。
本文采用多維矩陣表示地理信息矩陣,參與圖像拼接過程,與圖像進行相同的仿射變換、平移操作,從而將地理信息拼接起來,并與原始圖像一一對應。
在計算機視覺領域,圖像可由紅、綠、藍3個通道表示。由于地理信息與圖像像素可一一對應,本文提出了一種使用圖像存儲結(jié)構(gòu)存儲并處理地理信息數(shù)據(jù)的方法。數(shù)字圖像可由多通道無符號字符型(unsigned char,0~255)整數(shù)矩陣表示。本文采用雙精度浮點多通道矩陣表示地理信息數(shù)據(jù)的主要信息,例如經(jīng)度(單位為度(°),-180°(不含)~180°)、緯度(單位為度(°),-90°~90°)和高度(單位為m)。將地理信息存儲為雙精度浮點多通道矩陣,可利用矩陣處理算法對地理信息數(shù)據(jù)進行處理。
地理信息數(shù)據(jù)表示方法如圖 1所示。
Figure 1 Geographic information data representation method圖1 地理信息數(shù)據(jù)表示方法
地理信息數(shù)據(jù)多通道雙精度浮點矩陣存儲結(jié)構(gòu)如圖 2所示。
Figure 2 Multi-channel geographic information matrix storage structure圖2 多通道地理信息矩陣存儲結(jié)構(gòu)
地理信息數(shù)據(jù)變換處理過程如下所示:
(1) 使用多通道雙精度浮點矩陣表示地理信息數(shù)據(jù),記為矩陣Gorg;與之對應的圖像數(shù)據(jù)矩陣記為Iorg。
(2) 通過歸一化方法,將矩陣Gorg元素的取值范圍轉(zhuǎn)換到[0,1],記為G,其中經(jīng)度通道矩陣記為lon,緯度通道矩陣記為lat。
①經(jīng)度通道歸一化計算方法為:對于lon矩陣第y行x列的元素lonx,y=(lon0(x,y)+180)/360,其中l(wèi)on0(x,y)為(-180,180]值域范圍內(nèi)的經(jīng)度矩陣在y行x列的值。
②緯度通道歸一化計算方法為:對于lat矩陣第y行x列的元素latx,y=(lat0(x,y)+90)/180,其中l(wèi)at0(x,y)為[-90,90]值域范圍內(nèi)的緯度矩陣在y行x列的值。
③ 高度采用經(jīng)緯度所在位置的數(shù)字高程模型DEM(Digital Elevation Model)高程數(shù)據(jù),不參與計算。
(3) 通過歸一化方法,將圖像Iorg的取值范圍轉(zhuǎn)換到[0,1],記為I。圖像I歸一化計算方法為:
(1)
(4) 從圖像中提取特征,并在[0,1]進行圖像處理變換。例如,對于仿射變換Γ,變換結(jié)果圖像記為I′=ΓI。
(5) 矩陣G遵循相同的變換操作,包括平移、縮放、翻轉(zhuǎn)、旋轉(zhuǎn)、仿射等。例如,對于仿射變換Γ,變換結(jié)果矩陣記為G′=ΓG。
(6) 將結(jié)果圖像I′和變換后的地理信息數(shù)據(jù)矩陣G′轉(zhuǎn)換回原始值域空間。
為了解決大量拼接計算時間長的問題,本文提出基于ORB帶地理信息的多線程無人機圖像拼接算法,通過多線程分組控制大量圖像的拼接過程,減少多幅航拍圖像拼接過程中的誤差累積,保證了無人機航拍圖像大場景拼接的準確性。
無人機圖像拼接任務往往面臨大量的圖像需要進行拼接處理,順序拼接將耗時耗力,由于存在累積誤差,拼接效果并不好。為了提高計算速度,充分利用計算資源,本文算法自動對拼接的圖像進行分批,每個處理器核心運動一個線程,處理一批圖像。多線程拼接過程如圖 3所示。
每個線程處理的圖像數(shù)計算方法為:
(2)
其中,l為每個線程處理的圖像數(shù),N為圖像總數(shù)(N≥2),b為不同批次之間重疊圖像數(shù)(一般取b=1,取值范圍為0≤b≤N-1,為了提高多線程拼接后對多個線程拼接結(jié)果進行合并的成功率,不同線程處理的圖像之間需要有一定的重疊,重疊數(shù)并不是越大越好,典型值為1),n為線程數(shù)(一般等于計算機CPU線程數(shù))。圖3中t為線程執(zhí)行時間,tT(T=1,2,3,…,e)為線程執(zhí)行時刻。
帶地理信息的無人機圖像處理算法首先需要通過圖像處理算法對圖像特征進行提取,而后在進行地理信息變換時共用圖像處理過程計算得到的變換矩陣,如單應性矩陣H。本文以圖像拼接為例介紹圖像特征提取和變換矩陣計算過程。
Figure 3 Image mosaicking process with geographic information based on grouping control圖3 基于分組控制的帶地理信息的圖像拼接過程
5.2.1 ORB特征提取
ORB算法[5]是基于關(guān)鍵點檢測oFAST(orientation FAST)[10]和旋轉(zhuǎn)敏感的二進制魯棒獨立基本特征BRIEF rBRIEF(rotation-aware Binary Robust Independent Elementary Features)[11]特征檢測的一種新型特征提取算法。與SIFT算法相比,該算法具有計算量小、計算準確度滿足使用需求的特點。
對圖像進行ORB特征提取的步驟如下所示:
(1) 對圖像構(gòu)建金字塔。
(2) 用加速分割測試特征FAST(Features from Accelerated Segment Test)算法檢測關(guān)鍵點的位置,這里的關(guān)鍵點指角點,角點為鄰域內(nèi)具有2個主方向的特征點。
(4) 對于選出的M個角點,利用強度中心(Intensity Centroid)算法[13]計算角點的方向,得到oFAST特征。
(5) 由于BRIEF算法是無向的,將(4)中計算出來的角點方向作為BRIEF的方向進行旋轉(zhuǎn),就得到了有向的BRIEF,并用貪婪學習算法篩選出具有高方差和高不相關(guān)的有向BRIEF,稱之為rBRIEF。
(6) ORB特征就是oFAST和rBRIEF的組合。
5.2.2 特征匹配
ORB特征匹配步驟如下所示:
(1) 使用k近鄰算法[14]計算任意2幅圖像之間的特征點距離,記特征點最近距離為m0,次近距離為m1,如果r=m0/m1<δ,那么特征點為匹配點,匹配的特征點記為〈p0,p1〉;對任意圖像進行特征點的匹配,并刪除置信度低(即認為不是同一個全景圖中的)的圖像。
(2) 通過最小采樣一致性算法RANSAC(RANdom SAmple Consensus)[15]進行優(yōu)選。
(4) 將2幅可以拼接的圖像放到拼接集合Φ={I0,I1}中,并不斷擴展該集合形成最大的拼接集Φ={I0,I1,…,Im}。
5.2.3 光束法平差
由于多個單應性矩陣合成全景拼接圖像時會造成累積誤差,因此需要為每幅圖像加上光束法平差值,以初始化圖像為相同的旋轉(zhuǎn)和焦距長度。使用光束法平差(Bundle Adjustment)[16]算法對所有圖像進行相機參數(shù)K校正,以提高估計精度。光束法平差具有魯棒性,其目標函數(shù)是一個映射誤差的平方和函數(shù),即每一個特征點都要映射到其他的圖像中,使計算出的相機參數(shù)的誤差的平方和最小。
根據(jù)相機參數(shù)和旋轉(zhuǎn)矩陣,對圖像進行單應性矩陣變換,再對圖像進行初始拼接。地理信息矩陣也使用對應圖像的旋轉(zhuǎn)參數(shù)進行單應性矩陣變換,以對地理信息進行拼接。地理信息跟隨圖像進行相同的單應性矩陣變換,保證了變換后的圖像有相同的地理信息。同時,由于經(jīng)度為-180°(不含)~180°,緯度為-90°~90°,在插值變換時需要注意地理信息不能超出有效范圍。
對拼接后的圖像進行亮度的增量補償以及基于圖像金字塔的多波段融合[17]。對拼接后的地理信息進行有條件的插值融合。如果在拼接過程中,其中一幅圖像全部或部分區(qū)域地理信息未知,而另一幅圖像相同區(qū)域的地理信息已知,則直接將已知的地理信息作為拼接后圖像的地理信息;如果拼接的2幅圖像在融合點處的經(jīng)緯度相差不大(小于0.000 2°),則取兩者的平均值作為拼接圖像的經(jīng)緯度。
帶地理信息數(shù)據(jù)的圖像變換步驟為:
(1) 對重疊區(qū)域進行分塊估計平均光強。
(2) 用最大流算法檢測縫隙。
(3) 進行多波段融合,將原圖像分解成多個不同空間分辨率、不同尺度的子圖像構(gòu)成金字塔,然后由各層金字塔分別進行融合,最后組合得到拼接圖像。
(4) 對拼接后的地理信息進行有條件的插值融合。
最后,對每一個處理器核心處理的拼接結(jié)果進行綜合拼接融合,形成拼接結(jié)果圖像。
對于圖像拼接結(jié)果的驗證,本文提出一種基于SIFT特征點對拼接后的地理信息進行驗證的方法。該方法使用拼接前的圖像與拼接后的圖像進行SIFT特征匹配,用隨機采樣一致性RANSAC算法選出匹配度高的特征點,并比較拼接前和拼接后特征點地理信息的差異,如果其差異小于或等于0.000 1,則認為拼接的地理信息正確。具體步驟為:
(1) 提取拼接前圖像的SIFT特征。
(2) 提取拼接后圖像的SIFT特征。
(3) 使用RANSAC算法[15]選擇高分特征點。
(4)比較匹配特征點之間的差值d,如果d≤0.0001(單位為°,在緯度尺度上大約11.1 m),那么認為拼接結(jié)果是正確的。
為了驗證本文算法的有效性,本文收集了不同場景下大量無人機航拍影像,分別對帶地理信息的無人機圖像進行性能測試、拼接結(jié)果測試和拼接結(jié)果驗證。在實驗之前,本文已通過無測距定位算法[7]對無人機圖像中攜帶的地理信息進行了逐像素點定位,將每一像素對應的經(jīng)緯度信息存儲在多通道雙精度浮點矩陣中。
測試平臺采用Intel i7-3770 3.4 GHz 4核8線程CPU,8 GB內(nèi)存。本文分別使用單線程連續(xù)拼接算法、不使用多線程分組控制的本文算法(單線程)和使用多線程分組控制的本文算法做比較,測試結(jié)果如表 1所示,圖像分辨率為720×576。
Table 1 Multi-thread and single-thread image mosaicking performance comparison表1 多線程與單線程拼接性能對比
從表 1可以看出,基于分組控制的帶地理信息的圖像拼接算法大幅提高了圖像拼接速度和準確度,由于累積誤差的存在,單線程拼接算法在拼接50幅以上圖像時會因為畸變過大而失敗。
單線程連續(xù)拼接是指多幅圖像按拍攝順序一幅一幅拼接,每次新拼接的圖像只與之前的拼接結(jié)果做比較計算單應性矩陣H,而該矩陣變換模型的估計值與真實值之間始終存在誤差。
分析單應性矩陣,第q幅圖像與第r幅圖像(r (3) 其中,Hi,i+1為第i幅圖像至第i+1幅圖像的單應性矩陣估計值。由于Hi,i+1為矩陣變量,矩陣乘法是矩陣元素的加法和乘法的混合運算,隨機誤差在加法和乘法中傳遞。 Figure 4 Image mosaicking results of 100 UAV images圖4 100幅無人機圖像拼接結(jié)果 (1)隨機誤差在加法中的傳遞[19]。 (4) 即隨機變量的和的方差等于各個方差之和。 (2)隨機誤差在乘法中的傳遞[19]。 對于X=A×B×C×…有: (5) 即隨機變量積的相對偏差的平方等于各個相對偏差的平方之和。 這種誤差的累積效應會導致拼接誤差越來越大[18,20],最終得到的配準點無法用于計算單應性矩陣,從而導致拼接失敗。拼接失敗是指拼接程序不能完成指定圖像數(shù)量的拼接,例如,表1中50幅單線程連續(xù)拼接失敗的原因:未完成50幅圖像的拼接,只拼接了前45幅。 使用本文基于分組控制的帶地理信息的圖像拼接算法拼接的100幅圖像結(jié)果如圖 4所示。 基于SIFT特征點對拼接后的地理信息進行驗證。對拼接前的圖像與拼接后的圖像進行SIFT特征匹配,用RANSAC算法選出匹配度高的特征點,并比較拼接前和拼接后特征點地理信息的差異,如果其差異小于或等于0.000 1°,則認為拼接的地理信息正確。驗證結(jié)果如圖 5所示,左圖為右圖拼接前的圖像,右圖為100幅圖像拼接后的圖像,共220個匹配點,縱向距離約4.463 km,部分匹配點差值如表 2所示(真實經(jīng)緯度的整數(shù)部分分別替換為YY和XX,距離差值通過Haversine公式[21,22]計算),均在有效誤差范圍內(nèi)。 Figure 5 SIFT feature points matching verification圖5 SIFT特征點匹配驗證 從圖 5和表 2可以看出,本文使用SIFT算法自動提取拼接前和拼接后圖像的關(guān)鍵點,關(guān)鍵點的地理信息數(shù)據(jù)精度達到了算法要求,表示本文提出的算法在處理地理信息數(shù)據(jù)方面有效。 表2中距離差值通過Haversine公式[21,22]計算: (6) Table 2 Key points latitude and longitude matching results before and after mosaicking (partial matched points)表2 拼接前后圖像匹配點部分關(guān)鍵點經(jīng)緯度匹配結(jié)果(部分匹配點) D=Δσ×RE (7) 其中,假設地球是一個完美的球體,RE≈6371 km為地球的平均半徑,Δφ為拼接前后圖像中對應的2點緯度弧度差值的絕對值,Δγ為拼接前后圖像中對應的2點經(jīng)度弧度差值的絕對值,Δσ為拼接前后圖像中對應的地球球面上2點分別與球心的連線所構(gòu)成的圓心角,φA和φB分別為拼接前和拼接后對應2點的緯度,D為2點間的球面距離。 與其他算法的準確度比較如表3所示,其中本文算法數(shù)據(jù)是在220個匹配點上計算得出的。 從表3可以看出,文獻[23]所述算法實驗結(jié)果經(jīng)緯度差值最大小于0.000 2°;文獻[24]所述算法實驗結(jié)果經(jīng)緯度差值最大小于0.002°;文獻[20]所述算法實驗結(jié)果拼接平均距離差值在56.9 cm(0.000 569 km),最大距離差值在文獻[20]中未明確指出,表中數(shù)據(jù)為根據(jù)圖表估算;本文算法實驗結(jié)果經(jīng)緯度差值最大小于或等于0.000 1°(在緯度尺度上大約11.1 m)優(yōu)于文獻[23,24]算法的計算結(jié)果,距離商用軟件PhotoScan和Pix4D結(jié)果[25]還有一定的差距。 Table 3 Accuracy comparison of the proposed algorithm with other algorithms表3 本文算法與其他算法的準確度比較 本文首先提出了一種基于ORB帶地理信息的無人機圖像拼接算法。該算法利用地理信息數(shù)據(jù)和圖像像素點之間一一對應的關(guān)系,并將地理信息的經(jīng)度、緯度和高度使用多通道雙精度浮點矩陣存儲,使得圖像和矩陣處理算法可以用于處理地理信息數(shù)據(jù)。同時,應用基于分組控制的多線程處理算法,提高了100幅圖像拼接時的執(zhí)行速度和準確性。最后,本文提出了一種基于SIFT算法的關(guān)鍵點拼接結(jié)果驗證方法,利用該方法可以驗證拼接結(jié)果的有效性。7.2 圖像拼接結(jié)果
7.3 地理信息驗證實驗結(jié)果
8 結(jié)束語