孫和利,彭政杰,李 娟,陳 鎮(zhèn)
(1. 武漢大學(xué) 遙感信息工程學(xué)院,湖北 武漢430079 ;2. 武漢市黃陂區(qū)木蘭房產(chǎn)測繪隊,湖北 武漢430300 ;3. 武漢市黃陂區(qū)木蘭房產(chǎn)測繪隊,湖北 武漢430300 ;4. 武漢市房產(chǎn)測繪中心,湖北 武漢430015)
基于GPU的無人機遙感影像快速拼接
孫和利1,彭政杰2,李 娟3,陳 鎮(zhèn)4
(1. 武漢大學(xué) 遙感信息工程學(xué)院,湖北 武漢430079 ;2. 武漢市黃陂區(qū)木蘭房產(chǎn)測繪隊,湖北 武漢430300 ;3. 武漢市黃陂區(qū)木蘭房產(chǎn)測繪隊,湖北 武漢430300 ;4. 武漢市房產(chǎn)測繪中心,湖北 武漢430015)
近年來,無人機遙感技術(shù)得到較快的發(fā)展,無人機遙感技術(shù)有著實時性強、靈活性強、低成本以及獲取影像分辨率高的特點,在處理應(yīng)急響應(yīng)任務(wù)時,運用無人機遙感技術(shù),優(yōu)勢極為明顯。在無人機進行對地航拍時,所獲取的是單張影像,由于像幅的限制,影像并不能覆蓋完整的目標(biāo)區(qū)域,相鄰的多張影像都有著一定的重疊度,利用重疊區(qū)域來將多幅影像依次拼接,獲得目標(biāo)區(qū)域的一幅完整影像。隨著各種傳感器技術(shù)的提升,無人機上的相機所獲取到的影像的分辨率越來越高,這對影像拼接的速度提出了新的要求。基于無人機遙感影像的特點,采用SIFT算子對無人機遙感影像進行拼接工作,并在CUDA平臺下對配準(zhǔn)算法進行加速處理,從而提高影像拼接的速度。
無人機遙感;影像拼接;CPU;GPU;CUDA;影像配準(zhǔn)
目前,根據(jù)無人機遙感技術(shù)的研究狀況分析來看,無人機遙感影像的像幅較小,需要大量的單幅影像才能完整地覆蓋整個研究區(qū)域,另外,如果要得到完整的正射影像,需要在拼接的過程中花費大量時間,所以,研究如何提高無人機遙感影像的拼接速度,對于各種災(zāi)害的應(yīng)急響應(yīng)有著非常重要的意義。
影像匹配是進行影像拼接的前提,按照提取特征的層次來看,可以分為三大類:基于灰度,基于特征以及基于解譯的影像匹配[1]。無人機影像有幾個突出特點:很難精確計算相鄰兩幅影像之間的空間位置關(guān)系,各影像之間重疊度大小不一致,旋轉(zhuǎn)角變化沒有明顯規(guī)律,影像特征經(jīng)常出現(xiàn)斷開情況,因此,基于尺度特征提取的影像匹配算法是相對而言最適合無人機遙感影像匹配的[2]。
2004年,LOWE正式提出一種基于尺度空間的、對圖像縮放、旋轉(zhuǎn)甚至仿射變換保持不變性的圖像局部特征描述算子——SIFT(scale invariant feature transform)算子,即尺度不變特征變換[3]。SIFT 算子有以下幾個特點:①特征點是在多尺度空間中提取出來的,因此實際影像在尺度發(fā)生變化時,不會影響特征點的提取;②計算特征點描述子的時候,計算了關(guān)鍵點的梯度主方向,因此SIFT算法具有了旋轉(zhuǎn)不變性;③對光照發(fā)生變化時并不敏感;④對仿射變換、噪聲等也有比較好的抗性。SIFT算子的基本流程是建立尺度空間,得到高斯金字塔影像,然后將相鄰高斯影像相減得到高斯差分尺度空間,在高斯差分尺度空間內(nèi),將每個點與相鄰所有點進行比較,從而得到備選的特征點[1],通過三維二次函數(shù)對關(guān)鍵點位置進行精確定位,把一個128維的特征向量作為特征點的描述符,從而提高了匹配的穩(wěn)健性。
1.2 幾何變換模型求解
完成特征點匹配之后,就可以解算出影像之間的幾何變換模型。幾何變換模型的實質(zhì)是單應(yīng)矩陣。解算單應(yīng)矩陣主要分為兩部分,一是解算相對單應(yīng)矩陣,二是解算絕對單應(yīng)矩陣。相對單應(yīng)矩陣是指計算出相鄰兩幅影像的幾何變換模型,絕對單應(yīng)矩陣是指得到每一幅影像在一個統(tǒng)一的坐標(biāo)系中的幾何變換模型[4]。
2.1 CUDA平臺下SIFT算法設(shè)計
通過對基于SIFT算子的影像匹配算法的分析可知,在建立高斯金字塔影像、關(guān)鍵點探測、關(guān)鍵點主方向計算、相鄰兩幅影像關(guān)鍵點匹配這幾個計算步驟中,數(shù)據(jù)運算具有高度的并行性,相互之間的數(shù)據(jù)依賴程度很小,非常適合在CUDA平臺下進行并行計算的設(shè)計[5-6]。利用CPU-GPU對基于SIFT算子的影像匹配進行異構(gòu)編程的算法流程如圖1所示。
推薦理由:本書從資深國際采購人員視角講解出口操作,在全球經(jīng)濟環(huán)境嚴(yán)峻的當(dāng)下,給予中國外貿(mào)人打破交易瓶頸的解決方案。本書的繁體版《外貿(mào)大神的32節(jié)客戶成交課》登陸香港書展,受到港澳臺讀者的認(rèn)可與好評。
由圖1可知,在CUDA平臺下基于SIFT算子的影像配準(zhǔn)主要分為以下幾個步驟:
1)將待配準(zhǔn)的影像讀入到主存中,高斯核函數(shù)對應(yīng)的卷積模板傳到GPU端的常數(shù)存儲器當(dāng)中,在GPU端利用高斯模板對影像作卷積運算,生成高斯金字塔影像[7]。
2)將得到的高斯金字塔影像數(shù)據(jù)傳回到CPU端,將相鄰影像相減,生成高斯差分金字塔影像。繼續(xù)在CPU端進行極值點的檢測,并記錄所得到的極值點的坐標(biāo)以及所在影像的尺度。
圖1 CUDA平臺下影像配準(zhǔn)示意圖
3)得到備選的極值點坐標(biāo)以及尺度信息之后,將這些數(shù)據(jù)傳入到GPU端,通過計算特征點的對比度,刪除一些低對比度的點,通過計算特征值比值去刪除一些邊緣響應(yīng)點。去除掉這些多余的備選點之后,將剩下的特征點的坐標(biāo)以及尺度記錄下來[8]。
4)在GPU端用另外一個內(nèi)核函數(shù)繼續(xù)計算選出的關(guān)鍵點的主方向,得到每個關(guān)鍵點的梯度幅值以及方向角度。利用高斯權(quán)函數(shù)對關(guān)鍵點所在16×16領(lǐng)域的像素梯度信息進行加權(quán)運算,繪制成直方圖,得到關(guān)鍵點的主方向。
5)將關(guān)鍵點的信息以及主方向參數(shù)回傳到CPU端,在CPU端計算出關(guān)鍵點的描述子。由于在生成種子點以及特征向量長度歸一化計算過程中,存在較多的邏輯運算,數(shù)據(jù)之間存在較強的依賴性,計算強度也較小,利用GPU進行并行計算,效果并不好。因此關(guān)鍵點的描述子選擇在CPU端進行。
6)得到關(guān)鍵點的主方向以及描述子之后,接下來將這些數(shù)據(jù)傳入GPU端,進行特征點的匹配。通過將左影像的關(guān)鍵點的特征向量遍歷右影像的關(guān)鍵點,進行特征向量的歐氏距離運算,通過設(shè)定閾值,完成特征點的匹配。
CPU以及GPU二者有著各自的計算優(yōu)勢,CPU更擅長邏輯性強的控制運算,GPU擅長高密度的并行運算,另外,由于CPU端與GPU端的數(shù)據(jù)傳輸速度較慢,因此,盡量將數(shù)據(jù)放在兩端進行計算,減少二者的數(shù)據(jù)訪問,縮短訪問延遲時間。若能充分利用CPU和GPU的計算優(yōu)勢,那么影像拼接的速度就能大大提高。
2.2 GPU端并行計算實現(xiàn)
2.2.1 高斯金字塔影像生成
在CPU端將影像數(shù)據(jù)讀入到內(nèi)存之后再傳入到GPU端的設(shè)備存儲器中,然后根據(jù)影像的分辨率確定并行計算所需要的網(wǎng)格數(shù)。利用GPU構(gòu)建高斯金字塔影像需要設(shè)置6個內(nèi)核函數(shù),用于處理各個計算步驟。每一個內(nèi)核函數(shù)需要分配相應(yīng)的線程塊數(shù)以及線程塊內(nèi)的線程數(shù)。線程塊數(shù)以及塊內(nèi)線程數(shù)由所需要處理的影像數(shù)據(jù)的大小來決定。
根據(jù)對高斯濾波的特點分析可知,在對影像每個像素進行像素計算的時候,數(shù)據(jù)之間是相互獨立的,因此在進行高斯濾波計算時,可以將構(gòu)建高斯金字塔的過程分解成一系列彼此獨立的卷積運算。卷積運算由兩部分組成:乘運算以及加和運算。
對影像進行高斯濾波計算,是分為行、列兩個維度進行的,設(shè)置兩個內(nèi)核函數(shù)來完成行和列的卷積運算。對行和列進行卷積計算的過程是基本一致的,以行為例來說明。首先,將線程網(wǎng)格內(nèi)的線程塊設(shè)置成二維,將影像數(shù)據(jù)分成多個部分映射到各個線程塊上,而線程塊內(nèi)的每個線程分別去加權(quán)計算每一塊影像數(shù)據(jù)中的每個像素。當(dāng)每個線程塊完成對影像的高斯濾波計算之后,得到了每個像素的卷積值,最后將計算結(jié)果組成高斯金字塔影像,并將該影像數(shù)據(jù)回傳到CPU端,用于高斯差分金字塔影像的生成。
2.2.2 關(guān)鍵點精確定位
特征點檢測完畢之后,會得到一個特征點的數(shù)據(jù)集合,該集合是線性結(jié)構(gòu)的,可以通過設(shè)置一個內(nèi)核函數(shù),在每個線程塊內(nèi)開辟512個線程,對特征點數(shù)據(jù)集合進行并行判斷計算,從而確定是否留下該備選點。
2.2.3 關(guān)鍵點匹配
關(guān)鍵點的匹配過程是將左影像的特征點的特征向量與右影像的特征點的特征向量進行歐氏距離運算。一般情況,影像上的特征點數(shù)目較多,影像分辨率越高,則數(shù)目會更多,同時每個特征向量有128維的數(shù)據(jù),因此,如果用傳統(tǒng)的串行計算方法,速度會非常慢。根據(jù)對算法的分析可知,在進行特征點匹配的過程中,每個特征點之間沒有關(guān)聯(lián),并且歐氏距離運算當(dāng)中的差的平方計算也是獨立的。因此,可以分配線程塊來計算對應(yīng)關(guān)鍵點間的歐氏距離,然后用線程來對應(yīng)差的平方計算。最后通過三次歸約并行計算,得到累加結(jié)果,并對該結(jié)果進行開平方即可得到左右兩幅影像的歐氏距離。
2.3 實驗結(jié)果與分析
2.3.1 實驗環(huán)境
軟件環(huán)境:系統(tǒng)為Windows7,開發(fā)環(huán)境為Microsoft Visual Studio 2010,opencv 2.4,CUDA版本為5.0;
硬件環(huán)境:實驗機型為Lenovo E530,處理器為 Intel(R) Core(TM)i5-3210M CPU @2.50 GHz 2.50 GHz,內(nèi)存為4.00 GB,64位操作系統(tǒng),顯卡為NVIDIA GeForce GT 635M顯存為1 GB。
2.3.2 實驗結(jié)果
實驗一 通過不同大小的影像進行特征點提取以及特征匹配,將串行處理的計算結(jié)果與利用GPU加速后的結(jié)果進行對比,得到的數(shù)據(jù)如表1所示。
表1 不同大小的影像配準(zhǔn)串并行計算對比
實驗二 將三條航帶共30張無人機影像分別在CPU端和CUDA平臺進行拼接(編號分別為 IMG_4903-IMG_4912,IMG_4966-IMG_4975,IMG_5027-IMG_5036),將串行拼接結(jié)果和利用CUDA平臺加速后的結(jié)果進行對比,得到的數(shù)據(jù)如表2所示。
表2 不同平臺下影像拼接耗時對比
2.3.3 實驗分析
通過實驗一可知,當(dāng)影像像素較少時,串行計算和并行計算速度相差不大,但隨著影像像素的增加,經(jīng)過GPU加速后的影像配準(zhǔn)算法,速度有了明顯的提升,而且影像像素越多,所得到的加速效果也更加明顯。如今的無人機遙感影像的分辨率已經(jīng)越來越高,需要處理的數(shù)據(jù)量也越來越大,而由實驗數(shù)據(jù)可知,當(dāng)遙感影像的數(shù)據(jù)量足夠大的時候,僅僅是CPU端的串行處理,速度已經(jīng)非常緩慢,而經(jīng)過GPU加速后,速度有了明顯的提升,因此,可以得出結(jié)論,當(dāng)需要處理的遙感影像數(shù)據(jù)越大的時候,GPU加速的效果就會更好。當(dāng)影像像素較少的時候,CPU和GPU對影像拼接的速度相差并不是十分大,這是因為CPU端和GPU端進行數(shù)據(jù)傳輸會耗費一定量的時間,但是當(dāng)數(shù)據(jù)量增大時,進行配準(zhǔn)所耗費的時間逐步占據(jù)主導(dǎo)地位,因此,當(dāng)數(shù)據(jù)量增大到一定程度時,通過CPU和GPU協(xié)同合作,可以有效提高對無人機遙感影像的配準(zhǔn)速度。
通過實驗二可以看出,經(jīng)過GPU加速后的無人機遙感影像拼接,時間上有了明顯的縮短。結(jié)合實驗一,隨著影像像素增加,對比串行處理和并行處理可知,利用GPU加速后的影像拼接所消耗的時間大大減少。
通過GPU的無人機遙感影像快速拼接技術(shù),詳細(xì)介紹了無人機遙感影像拼接過程所需要的理論基礎(chǔ),并在CPU端實現(xiàn)了無人機遙感影像的拼接,闡述了利用GPU對影像拼接過程中配準(zhǔn)算法的加速原理,在CUDA平臺下,進行CPU-GPU異構(gòu)編程,實現(xiàn)配準(zhǔn)算法的加速,從而加速無人機遙感影像拼接。
[1] 張春美.特征點提取及其在影像匹配中的應(yīng)用研究[D].鄭州:解放軍測繪學(xué)院,2008:4-7
[2] LOWE D G. Distinctive Image Features from Scale-invariant Keypoints[J].International Journal of Computer Vision, 2004,2(60): 91-110
[3] ZHANG Yongjun. Photogrammetric Processing of Low Altitude Image Sequences by Unmanned Airship[C].The International Archives of the Photogrammetry,Remote Sensing and Spatial Information Science,Beijing,2008:751-757
[4] 王勃.基于特征的無人機影像自動拼接技術(shù)研究[D].鄭州:解放軍測繪學(xué)院,2011
[5] HSU G S,LIN C Y ,WU J S.Real-time 3-D object Recognition Using Scale Invariant Feature Transform and Stereo vision [C].4th International Conference on Autonomous Robots and Agents,2009
[6] 蘇麗麗.基于CPU-GPU集群的分子動力學(xué)并行計算研究[D].大連:大連理工大學(xué),2009
[7] KIM J,PARDK E,CUI Xuenan,et al.A Fast Feature Extraction in Object Recognition Using Parallel Processing on CPU and GPU[C]//IEEE International Conference on Systems, Man and Cybernetics,2009
[8] WARN S,EMENEKER W,COTHREN J,et al.Aceelerating SIFT on Parallel Architectures[C].IEEE International Conference on Cluster Computing and Workshops.2009
P237
B
1672-4623(2017)02-0009-03
10.3969/j.issn.1672-4623.2017.02.003
2016-09-27。
項目來源:國家自然科學(xué)基金資助項目(41101417)。
孫和利,副教授,研究方向為攝影測量與遙感。