基于嵌入式GPU的SAR實時艦船檢測算法CUDA設(shè)計
作者 武鵬1 金燕2 張俊舉1 1.南京理工大學(xué) (江蘇 南京 210094) 2.中國科學(xué)院電子學(xué)研究所蘇州研究院 (江蘇 蘇州 215123)
本文引用地址:http://m.butianyuan.cn/article/201703/345943.htm武鵬(1991-),女,碩士生,研究方向:信號與信息處理。
摘要:為了實現(xiàn)對合成孔徑雷達(dá)(SAR)圖像中艦船目標(biāo)的實時檢測,本文以雙參數(shù)恒虛警(CFAR)算法為例,提出一種基于ARM+GPU架構(gòu)的SAR圖像艦船目標(biāo)檢測算法的實現(xiàn)方案。該方案在NVIDIA Jetson TK1開發(fā)板上的測試結(jié)果表明,與傳統(tǒng)基于CPU 的SAR圖像艦船檢測算法相比,該方案能夠達(dá)到數(shù)百倍的速度提升,有效解決了利用CPU平臺進(jìn)行艦船目標(biāo)檢測耗時長、效率低的問題。Jetson TK1作為嵌入式處理平臺,相對于工作站或服務(wù)器,在功耗和便攜性方面都具有明顯的優(yōu)勢。
引言
對海上艦船目標(biāo)進(jìn)行檢測與監(jiān)視一直都是世界各海岸地帶國家的傳統(tǒng)任務(wù)[1]。我國領(lǐng)海廣闊,海洋資源豐富,開展艦船目標(biāo)檢測的研究在軍事、民用方面都具有極其重要的意義。星載合成孔徑雷達(dá)(Synthetic Aperture Radar, SAR)作為一種全天時、全天候的有源主動式微波成像系統(tǒng),以其優(yōu)越的二維高分辨率特性,日益成為世界各國普遍重視的遙感探測技術(shù)[2]。在軍事領(lǐng)域,主要用于陸戰(zhàn)場偵查、海洋監(jiān)測、偽裝識別以及發(fā)現(xiàn)假目標(biāo)等,快速準(zhǔn)確地獲取瞬息萬變戰(zhàn)場上的動態(tài)情報,獲取軍事主動權(quán);在海洋監(jiān)測方面,可以根據(jù)艦船的反射特性及其產(chǎn)生的尾跡特征進(jìn)行艦船目標(biāo)的檢測、監(jiān)視和識別,還能從中提取位置、航向、航速等信息。因此,SAR已經(jīng)成為當(dāng)今艦船目標(biāo)檢測、監(jiān)視和定位的最有效手段之一[3]。然而,傳統(tǒng)基于中央處理器(Central Processing Unit ,CPU)的個人計算機(jī)、工作站及大型計算服務(wù)器對SAR艦船目標(biāo)檢測往往效率很低,不能滿足在災(zāi)害應(yīng)急監(jiān)測和軍事應(yīng)用領(lǐng)域的高機(jī)動性、高應(yīng)急性和時效性的要求。
近年來,由于市場對實時、高清晰度的圖形處理需求的推動,可編程圖形處理器(GPU)得到了空前的發(fā)展,已經(jīng)演變成具有極高存儲器帶寬、強(qiáng)大的計算能力、高并行度、多線程的多核處理器。GPU不再僅限于圖形圖像處理領(lǐng)域的應(yīng)用,還被廣泛應(yīng)用于生物信息學(xué)、流體力學(xué)、信號處理、信息檢索、線性代數(shù)等通用計算領(lǐng)域,在這些領(lǐng)域取得了幾十甚至幾百的加速比[4]。同樣,在SAR艦船目標(biāo)檢測方面,GPU也展現(xiàn)出了越來越重要的作用。
早期的SAR圖像處理過程需要將數(shù)據(jù)下傳至地面站進(jìn)行,這不僅要求雷達(dá)衛(wèi)星具有高帶寬的下行數(shù)據(jù)鏈路,而且還受到衛(wèi)星過頂時間的限制,這些都使得如何對SAR圖像數(shù)據(jù)進(jìn)行在軌實時處理成為熱點問題,在軌實時處理包括:在軌完成遙感圖像的預(yù)處理、數(shù)據(jù)壓縮、存儲與格式轉(zhuǎn)換、目標(biāo)特征點的提取等工作,通過使用星上的自主數(shù)據(jù)處理能力,盡量少地減少地面站對衛(wèi)星任務(wù)的干預(yù),從而滿足未來遙感衛(wèi)星對高機(jī)動性、高應(yīng)急性和時效性的要求,在災(zāi)害應(yīng)急監(jiān)測以及軍事應(yīng)用等領(lǐng)域發(fā)揮更大的作用。在軌SAR實時處理系統(tǒng)作為一種典型的實時系統(tǒng),在性能、體積、重量、功耗及可靠性方面都有很高的要求,NVIDIA Jetson TK1平臺通過采用ARM+GPU的嵌入式架構(gòu),體積小、功耗低,滿足在軌實時處理的需求,提高了系統(tǒng)的數(shù)據(jù)處理能力,可以實現(xiàn)在軌SAR遙感圖像目標(biāo)檢測的過程。同時,該硬件架構(gòu)可以應(yīng)用于很多需要在軌高速數(shù)據(jù)處理的情況中,例如合成孔徑雷達(dá)所獲取的大量數(shù)據(jù)在軌處理、在軌維修、空間攻防、航天器的捕獲與攻擊、空間交會對接等需要對目標(biāo)物體進(jìn)行快速測量與控制的場合,具有極其重要的研究價值和非常廣闊的應(yīng)用前景。
在艦船目標(biāo)檢測中經(jīng)常用到的檢測特征主要有艦船的灰度、面積、形狀及艦船由于航行所產(chǎn)生的尾跡等,其中提取艦船的高亮、形狀、尾跡等特征是SAR圖像艦船目標(biāo)檢測中研究的重點[5]。艦船檢測所用的算法主要有四類:雙參數(shù)恒虛警(CFAR)算法、基于K-分布的CFAR算法、多極化檢測算法、其他檢測算法(簡單閾值法、模糊決策法、基于分割的模擬退火算法)[6]。雙參數(shù)CFAR算法主要適用于分辨率較低的SAR圖像目標(biāo)檢測[7],K-分布CFAR算法的應(yīng)用集中于RADARSAT圖像,多極化檢測算法僅限于應(yīng)用在具有同時多極化觀測的SAR圖像中。其他算法中,簡單閾值法和模糊決策法都不具備自適應(yīng)性,而基于分割的模擬退火算法適用性更是非常有限。本文擬采用雙參數(shù)CFAR算法在NVIDIA Jetson TK1平臺上實現(xiàn)對遠(yuǎn)洋圖像中的艦船目標(biāo)進(jìn)行檢測,雙參數(shù)恒虛警(CFAR)檢測方法是雷達(dá)信號檢測領(lǐng)域里最常用和最有效的一類檢測算法[8]。大量的研究和實驗指出,即使在海況極其惡劣的情況下,CFAR檢測器仍然能夠獲得較好的檢測結(jié)果[9]。
1 雙參數(shù)CFAR艦船檢測算法結(jié)構(gòu)分析
針對不同的天氣、風(fēng)速等條件,海況有很大的變化,呈現(xiàn)在SAR圖像中的海洋雜波的效果也有較大的差別[10],因此,針對上述各種復(fù)雜的情況,在對艦船目標(biāo)進(jìn)行檢測過程中,需要采用一種能夠自適應(yīng)的恒虛警檢測方法。雙參數(shù)CFAR目標(biāo)檢測算法是基于背景雜波,服從高斯分布的假設(shè)[11],具有自適應(yīng)性,能夠適應(yīng)背景雜波變化。通過使用局部滑動窗口,對每個像素進(jìn)行檢測,計算背景窗口中的所有雜波像素的均值和方差,得到該局部窗口的門限,將目標(biāo)窗口中高于該門限的像素判定為艦船目標(biāo)[12]。最后再利用一系列形態(tài)學(xué)的處理方法將目標(biāo)在圖中標(biāo)注出來。
如圖1所示,設(shè)XT為待檢測的像素點,在它的周圍分別定義了兩個局部滑動窗口:背景窗口和保護(hù)窗口。背景窗口的大小可以根據(jù)船只實際的大小進(jìn)行選取,主要用于背景雜波的統(tǒng)計分析,保護(hù)窗口主要起到保護(hù)的作用,防止將待測像素點周圍的目標(biāo)像素也計算在對背景窗口的統(tǒng)計分析中。
如圖2所示,由于要對圖像中每個像素進(jìn)行背景雜波統(tǒng)計及閾值比較的操作,局部滑動窗口進(jìn)行統(tǒng)計分析的過程具有計算量大,耗時長的特點,運(yùn)行時間與窗口尺寸的大小有關(guān)[14],是雙參CFAR算法的核心步驟。因此,要實現(xiàn)對艦船目標(biāo)的實時檢測,必須考慮如何對局部滑動窗口部分算法進(jìn)行相應(yīng)的優(yōu)化,減小計算量,縮短檢測周期。
2 算法優(yōu)化
由于雙參CFAR算法是通過對當(dāng)前像素點的鄰域數(shù)據(jù)進(jìn)行統(tǒng)計判斷為目標(biāo)點或背景,相比于全局閾值的處理方法具有自適應(yīng)的特性。局部滑動窗口計算類似于基于模板的運(yùn)算,在進(jìn)行計算時,需要使用當(dāng)前像素點的鄰域數(shù)據(jù),并且對前后兩個像素進(jìn)行操作的存儲訪問高度相關(guān)。如果使用普通的存儲類型進(jìn)行數(shù)據(jù)的存儲訪問,每次讀取操作都要從全局存儲器(Global Memory)中取出需要的數(shù)據(jù),會出現(xiàn)重復(fù)讀取數(shù)據(jù)的情況,訪問效率低,因此,需要采用一種更為合適的數(shù)據(jù)存儲方式[15]。
紋理存儲器(Texture memory)是一種只讀存儲器,由GPU中用于紋理渲染的圖形專用單元發(fā)展而來,紋理存儲器中的數(shù)據(jù)位于顯存,但可以通過紋理緩存加速讀取。在通用計算中,紋理存儲器適用于進(jìn)行圖像處理或查找表等操作,具有良好的加速效果。
紋理緩存主要有兩個作用。首先,紋理緩存中的數(shù)據(jù)可以被重復(fù)利用,當(dāng)需要訪問的數(shù)據(jù)在紋理緩存中已經(jīng)存在時,可以避免再從顯存中重復(fù)讀取相同的數(shù)據(jù);第二,紋理緩存可以實現(xiàn)濾波模式,緩存拾取坐標(biāo)點附近幾個像元的數(shù)據(jù),提高局部訪問的效率。因此,雙參CFAR算法中局部滑動窗口部分采用紋理存儲方式,可以很好的滿足應(yīng)用的需求。
紋理類型使用非常簡單,首先使用cudaBindTextureToArray()將圖像數(shù)據(jù)的數(shù)組綁定到一個紋理對象,然后就可以在kernel中使用tex2D()函數(shù)來快速訪問該紋理對象中的數(shù)據(jù),有一點需要注意的是,由于紋理存儲器是一種只讀存儲器,綁定到紋理的數(shù)據(jù)有變化時,需要重新綁定才能保證訪問的數(shù)據(jù)是最新的。
3 設(shè)計與實現(xiàn)
下面以雙參數(shù)CFAR檢測算法為例,分析基于嵌入式GPU的SAR實時艦船檢測算法的CUDA設(shè)計與實現(xiàn)過程。
對上面所得的二值圖像做進(jìn)一步形態(tài)學(xué)處理:中值濾波、圖像膨脹等。中值濾波、圖像膨脹的過程同樣在GPU中進(jìn)行,最后,利用OpenCV將圖中的艦船目標(biāo)標(biāo)注出來,這里不再贅述。
4 實驗結(jié)果及加速比測試
實驗中使用的圖像為海陸分割之后遠(yuǎn)洋SAR圖像,在NVIDIA TK1平臺進(jìn)行艦船目標(biāo)檢測。其中雙參數(shù)CFAR算法判決準(zhǔn)則中的標(biāo)稱化因子取為3.1。圖4為原始SAR圖像,圖5為原始圖像經(jīng)過滑窗操作、中值濾波之后的圖像,圖6為經(jīng)過膨脹運(yùn)算后的SAR圖像,圖7為最終的艦船檢測結(jié)果。
檢測結(jié)果圖7中畫出的方框表示正確檢測的目標(biāo),圓圈表示檢測的虛警目標(biāo)。
為了衡量檢測效果,定義檢測結(jié)果的品質(zhì)因數(shù)FoM為:
(2)
其中Ntt為檢測結(jié)果中正確檢測出來的目標(biāo)數(shù),Nfa為虛警目標(biāo)數(shù),Ngt為實際的目標(biāo)數(shù),這里實際的目標(biāo)數(shù)Ngt以目視解譯的結(jié)果為準(zhǔn)[6]。原圖中有20只艦船,因此,實際目標(biāo)數(shù) 為20。
本文使用的GPU平臺是NVIDIA公司生產(chǎn)的NVIDIA Jetson TK1 開發(fā)組件,與之進(jìn)行對比的常規(guī)CPU是選用Intel?Core?i3處理器。經(jīng)過多次實驗,對于2048×2048大小的SAR圖像數(shù)據(jù),分別測試了基于CPU單線程的Matlab程序和基于GPU多線程的檢測算法運(yùn)行時間,如表2所示。
由測試結(jié)果可知,本文提出的利用CUDA實現(xiàn)的,基于ARM+GPU的SAR艦船檢測算法具有極高的效率,相比傳統(tǒng)的基于CPU的SAR艦船檢測算法,效率得到了162倍以上的提升。
5 結(jié)論
本文對SAR遙感圖像艦船目標(biāo)檢測算法中的雙參數(shù)CFAR算法在CUDA架構(gòu)下的高效實現(xiàn)方法進(jìn)行了深入研究。首先對雙參CFAR算法的結(jié)構(gòu)特征以及CUDA架構(gòu)下的實現(xiàn)思路進(jìn)行了詳細(xì)分析,并對算法的CUDA實現(xiàn)進(jìn)行了優(yōu)化,相對于傳統(tǒng)的基于CPU的艦船檢測方式,具有低廉的成本、極低的功耗,以及高度的便攜性,同時獲得了162倍以上的加速比。
參考文獻(xiàn):
[1]唐沐恩,林挺強(qiáng),文貢堅.遙感圖像中艦船檢測方法綜述[J].計算機(jī)應(yīng)用研究,2011,01:29-36.
[2]郭勐,簡方軍,張欽,等.基于FPGA實現(xiàn)的星載SAR實時成像系統(tǒng)研究[J].計算機(jī)研究與發(fā)展,2007,03:497-502.
[3]雷盼飛,蘇清賀,楊桄. SAR圖像艦船目標(biāo)檢測研究[J].影像技術(shù),2011,04:40-45.
[4]姚成祥.基于CPU+GPU異構(gòu)計算平臺的SAR成像研究與實現(xiàn)[D].中國航天第二研究院航天科工集團(tuán)第二研究院, 2012.
[5]李文武.中低分辨率光學(xué)遙感圖像艦船目標(biāo)檢測算法研究[D].國防科學(xué)技術(shù)大學(xué),2008.
[6]種勁松.合成孔徑雷達(dá)圖像艦船目標(biāo)檢測算法與應(yīng)用研究[D].中國科學(xué)院電子學(xué)研究所,2002.
[7]李俊敏. SAR圖像艦船目標(biāo)檢測方法研究[D].西安電子科技大學(xué),2014.
[8]趙明波,何峻,付強(qiáng). SAR圖像CFAR檢測的快速算法綜述[J].自動化學(xué)報,2012,12:1885-1895.
[9]周樹道,王敏,葉松,王俊. 基于SAR圖像的海洋艦船目標(biāo)檢測技術(shù)[J]. 微計算機(jī)應(yīng)用,2010,02:61-65.
[10]Blake A P, Blacknell D, and Oliver C J. Sea clutter analysis and its resolution dependence[C].Radar conference 97,Edinburgh, UK, Oct.14-16, 1997: 124-128.
[11]Novak L M, Halversen S D, Owirka G J, et al. Effects of polarization and resolution on SAR ATR[J]. erospace and Electronic Systems, IEEE Transactions on, 1997, 33(1): 102-116.
[12]陳利民,楊學(xué)志,張晰,等. SAR艦船檢測算法對比分析研究[J].遙感信息,2015,02:99-104+110.
[13]龔小冬,李飛,張志敏,等. 一種新穎的高分辨率SAR艦船檢測方法[J].雷達(dá)科學(xué)與技術(shù),2015,01:70-75.
[14] MOREIRA A,PRATSTIRAOLA P,YOUNIS M,et al.A tutorial on synthetic aperture radar[J].IEEE Geoscience and Remote Sensing Magazine,2013,1( 1) : 6 - 43.
[15]陶偉東,黃昊,苑振宇,等.基于GPU并行的遙感影像邊緣檢測算法[J].地理與地理信息科學(xué),2013,01:8-11.
本文來源于《電子產(chǎn)品世界》2017年第4期第53頁,歡迎您寫論文時引用,并注明出處。
評論