周玉金 謝宜壯 喬婷婷,2 馮 杏
(1.北京理工大學(xué)信息與電子學(xué)院雷達(dá)技術(shù)研究所;嵌入式實(shí)時(shí)信息處理技術(shù)北京市重點(diǎn)實(shí)驗(yàn)室,北京 100081;2.華北電力大學(xué)電氣與電子工程學(xué)院,北京 102206)
星載合成孔徑雷達(dá)(Synthetic Aperture Radar,SAR)具有全天時(shí)、全天候、成像幅度大等特點(diǎn),其被廣泛應(yīng)用于海上目標(biāo)監(jiān)視領(lǐng)域[1]。目前,隨著SAR成像技術(shù)的不斷發(fā)展,SAR 成像的圖像分辨率不斷提高,船只目標(biāo)在SAR 圖像中具有了更高的辨識(shí)度。因此,基于SAR 圖像的船只目標(biāo)檢測(cè)應(yīng)用變得十分廣泛,在軍事領(lǐng)域,對(duì)特定船只目標(biāo)進(jìn)行實(shí)時(shí)位置檢測(cè),有利于緊急戰(zhàn)略部署;在民用領(lǐng)域,可以對(duì)海運(yùn)進(jìn)行實(shí)時(shí)監(jiān)測(cè)和調(diào)度[2]。
近年來(lái),隨著深度學(xué)習(xí)領(lǐng)域的不斷發(fā)展,SSD,YOLO 和Faster-RCNN(Faster Region Convolutional Neural Networks)等深度學(xué)習(xí)檢測(cè)模型在SAR 船只檢測(cè)領(lǐng)域取得了很好的效果,利用深度學(xué)習(xí)技術(shù)實(shí)現(xiàn)SAR 船只檢測(cè),在有效避免了復(fù)雜特征設(shè)計(jì)的同時(shí)大幅度提升了算法檢測(cè)精度[3]。李健偉等發(fā)布了國(guó)內(nèi)首個(gè)SAR 圖像船只公開(kāi)數(shù)據(jù)集,并基于該數(shù)據(jù)集證明了采用R-CNN 深度學(xué)習(xí)網(wǎng)絡(luò)方法較傳統(tǒng)方法具有明顯優(yōu)勢(shì)[4]。孫顯等公開(kāi)了高分辨率SAR船只檢測(cè)數(shù)據(jù)集AIR-SARShip-1.0,并對(duì)多種深度學(xué)習(xí)模型檢測(cè)效果進(jìn)行了對(duì)比,采用的密集連接端到端網(wǎng)絡(luò)方法達(dá)到了更好的檢測(cè)效果,但檢測(cè)速度較慢[5]。高分辨SAR 數(shù)據(jù)集的公開(kāi)有效促進(jìn)了深度學(xué)習(xí)網(wǎng)絡(luò)方法在SAR 船只目標(biāo)檢測(cè)領(lǐng)域的發(fā)展,SAR 船只檢測(cè)精度得到了不斷提高。然而,考慮到SAR 船只檢測(cè)的應(yīng)用場(chǎng)景,算法的設(shè)計(jì)和實(shí)現(xiàn)不僅要保證較高的檢測(cè)精度,也要考慮船只檢測(cè)算法和檢測(cè)系統(tǒng)的實(shí)時(shí)性。
在星上和機(jī)載系統(tǒng)硬件資源和功耗受限的背景下,設(shè)計(jì)并實(shí)現(xiàn)高效可行的SAR 船只目標(biāo)檢測(cè)系統(tǒng)變得十分重要。本文基于Jetson TX2嵌入式平臺(tái)成功部署了改進(jìn)的YOLOv2 SAR 船只檢測(cè)網(wǎng)絡(luò),并設(shè)計(jì)了SAR 船只目標(biāo)檢測(cè)系統(tǒng),在保證較高檢測(cè)精度的同時(shí)實(shí)現(xiàn)了高速SAR 船只目標(biāo)檢測(cè)。實(shí)時(shí)處理方案通過(guò)高速以太網(wǎng)鏈路進(jìn)行平臺(tái)間的通信,實(shí)現(xiàn)了兩個(gè)Jetson TX2 嵌入式平臺(tái)的協(xié)同工作,有效提升了SAR船只目標(biāo)檢測(cè)系統(tǒng)的實(shí)時(shí)處理能力。
Jetson TX2 平臺(tái)是由英偉達(dá)公司推出的高性能嵌入式開(kāi)發(fā)平臺(tái),其性能與上一代產(chǎn)品Jetson TX1相比具有顯著提升,具有高性能、低功耗以及易于開(kāi)發(fā)等優(yōu)點(diǎn),在實(shí)時(shí)圖像處理領(lǐng)域具有很好的應(yīng)用前景。TX2 平臺(tái)的核心芯片是Tegra Parker SOC,其芯片架構(gòu)為ARM+GPU 架構(gòu),不僅具有較強(qiáng)的復(fù)雜運(yùn)算能力,同時(shí)還具有很好的并行運(yùn)算性能。CPU集群由雙核Denver2 處理器和四核ARM Cortex-A57組成,最高主頻皆為2 GHz。雙核Denver2具有良好的單線程性能,四核Cortex-A57 集群則具有良好的多線程性能,兩個(gè)處理器通過(guò)高速一致性結(jié)構(gòu)連接在一起,根據(jù)需要可以選擇一個(gè)或者多個(gè)核心進(jìn)行異構(gòu)多進(jìn)程處理。GPU 由兩個(gè)NVIDIA Pascal 架構(gòu)的多數(shù)據(jù)流處理器(SM,Streaming Multiprocessor)組成,每個(gè)SM 具有128 個(gè)CUDA 內(nèi)核,與獨(dú)立的GPU一樣支持API 和CUDA 庫(kù),主頻在0.85 GHz 到1.3 GHz 之間,浮點(diǎn)計(jì)算性能可以達(dá)到1.5 TFLOPS[6]。TX2 核心芯片具有很好的并行計(jì)算能力,該平臺(tái)在深度學(xué)習(xí)算法實(shí)現(xiàn)和加速方面具有一定優(yōu)勢(shì)[7]。在外設(shè)接口方面,芯片上集成了PCIE 接口、1 千兆以太網(wǎng)、UART 串口、顯示器接口等,可以同時(shí)以多種方式與外界進(jìn)行數(shù)據(jù)交互,便于進(jìn)行開(kāi)發(fā)和應(yīng)用。功耗方面,該平臺(tái)具有五種工作模式,可以根據(jù)具體的性能要求進(jìn)行靈活調(diào)節(jié),保證了性能和功耗之間的平衡,其最低功耗可以達(dá)到7.5 W,最高為15 W。
SAR 船只目標(biāo)檢測(cè)系統(tǒng)框圖如圖1 所示,SAR船只目標(biāo)檢測(cè)系統(tǒng)由一臺(tái)千兆交換機(jī),一臺(tái)主機(jī)和兩個(gè)Jetson TX2嵌入式平臺(tái)構(gòu)成,TX2平臺(tái)A和TX2平臺(tái)B 為獨(dú)立的服務(wù)端,主機(jī)同時(shí)作為TX2 平臺(tái)A和TX2平臺(tái)B 的客戶端。TX2嵌入式平臺(tái)和主機(jī)分別通過(guò)千兆網(wǎng)線與交換機(jī)連接,TX2 嵌入式平臺(tái)的IP 地址和主機(jī)IP 地址被設(shè)置為同一網(wǎng)段,在共享局域網(wǎng)環(huán)境下,TX2 平臺(tái)A 和TX2 平臺(tái)B 可以通過(guò)Socket編程分別與主機(jī)進(jìn)行獨(dú)立通信。
Socket(套接字)是一個(gè)對(duì)TCP/IP 協(xié)議進(jìn)行封裝的編程調(diào)用接口,通過(guò)Socket 通信機(jī)制實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)傳輸可以簡(jiǎn)化用戶編程,與基礎(chǔ)的信號(hào)機(jī)制相比,Socket 通信機(jī)制不僅能實(shí)現(xiàn)同一臺(tái)計(jì)算機(jī)下不同進(jìn)程的通信,還可以實(shí)現(xiàn)多臺(tái)計(jì)算機(jī)間的通信[8-9]。Socket 通信采用client/server 通信模式,在SAR 船只目標(biāo)檢測(cè)系統(tǒng)中,主機(jī)作為客戶端采用多線程的方式分別與TX2平臺(tái)A和TX2平臺(tái)B進(jìn)行獨(dú)立通信,主機(jī)作為客戶端在不同線程中可以與不同IP 的服務(wù)端建立連接,進(jìn)而主機(jī)可以與兩個(gè)TX2 嵌入式平臺(tái)同時(shí)進(jìn)行狀態(tài)交互,實(shí)現(xiàn)兩個(gè)TX2 平臺(tái)對(duì)數(shù)據(jù)的協(xié)同處理。
Socket通信主要實(shí)現(xiàn)客戶端和服務(wù)器端之間處理狀態(tài)的實(shí)時(shí)交互,為了進(jìn)一步實(shí)現(xiàn)SAR 圖像切片在主機(jī)與嵌入式平臺(tái)間的快速傳輸,檢測(cè)系統(tǒng)采用共享文件的方式進(jìn)行數(shù)據(jù)傳輸,兩個(gè)TX2 嵌入式平臺(tái)可以同時(shí)訪問(wèn)共享文件夾中的SAR 圖像切片,并將處理結(jié)果保存到共享文件夾下的指定目錄,主機(jī)可以同時(shí)對(duì)共享目錄進(jìn)行實(shí)時(shí)檢測(cè),并對(duì)返回結(jié)果進(jìn)行分析和展示。
主機(jī)主要負(fù)責(zé)數(shù)據(jù)預(yù)處理和檢測(cè)結(jié)果展示,TX2嵌入式平臺(tái)主要實(shí)現(xiàn)基于深度學(xué)習(xí)的船只目標(biāo)檢測(cè)算法。數(shù)據(jù)預(yù)處理包括SAR 成像和對(duì)成像后的大場(chǎng)景圖進(jìn)行切片,SAR 成像原始數(shù)據(jù)量較大,數(shù)據(jù)緩存和成像需要大量?jī)?nèi)存資源,目前大多采用FPGA 平臺(tái)進(jìn)行數(shù)據(jù)緩存和成像,而TX2 嵌入式平臺(tái)內(nèi)存資源有限,主要負(fù)責(zé)船只目標(biāo)檢測(cè),本文通過(guò)計(jì)算機(jī)模擬星上或機(jī)載SAR 成像硬件平臺(tái),與TX2 嵌入式平臺(tái)進(jìn)行數(shù)據(jù)交互,對(duì)TX2 嵌入式平臺(tái)的數(shù)據(jù)傳輸性能以及處理能力進(jìn)行驗(yàn)證。SAR 船只目標(biāo)檢測(cè)系統(tǒng)處理流程如圖2 所示,主機(jī)端首先完成客戶端初始化,包括IP 設(shè)置和共享文件夾掛載,然后完成數(shù)據(jù)預(yù)處理和數(shù)據(jù)發(fā)送,對(duì)airsarship1.0 數(shù)據(jù)集中的大場(chǎng)景SAR 成像圖片進(jìn)行切片,將處理后的切片存在指定的共享目錄中等待服務(wù)端處理。主機(jī)作為客戶端采用多線程方案,其可以同時(shí)與兩個(gè)服務(wù)端進(jìn)行通信,最后,主機(jī)接收處理結(jié)果并進(jìn)行展示。
TX2嵌入式平臺(tái)作為服務(wù)端主要完成船只目標(biāo)檢測(cè),服務(wù)端Socket 通信初始化流程主要包括以下步驟:第一步,使用socket函數(shù)建立套接字;第二步,使用bind函數(shù)對(duì)設(shè)定的IP 地址和端口號(hào)進(jìn)行綁定;第三步,啟動(dòng)listen 函數(shù)對(duì)端口進(jìn)行監(jiān)聽(tīng);第四步,循環(huán)運(yùn)行accept函數(shù)等待客戶端連接。TX2 嵌入式平臺(tái)接收到客戶端發(fā)送的開(kāi)始命令后對(duì)切片進(jìn)行處理,并將檢測(cè)結(jié)果保存到指定共享文件夾內(nèi)。
文獻(xiàn)[10]中提出了一種改進(jìn)的YOLOv2深度學(xué)習(xí)網(wǎng)絡(luò),該網(wǎng)絡(luò)在YOLOv2 網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上添加了空洞卷積和轉(zhuǎn)置卷積層,以提高對(duì)不同尺度目標(biāo)的檢測(cè)性能,該網(wǎng)絡(luò)在模型復(fù)雜度和目標(biāo)檢測(cè)性能之間取得了平衡[11],本文基于SAR 船只目標(biāo)檢測(cè)系統(tǒng)對(duì)該網(wǎng)絡(luò)進(jìn)行了實(shí)現(xiàn),并取得了較好的檢測(cè)結(jié)果。
NVIDIA 官方提供的JetPack(Jetson Development Pack)開(kāi)發(fā)工具套件為用戶提供了可靠方便的Jetson TX2嵌入式平臺(tái)環(huán)境搭建方案,JetPack4.4開(kāi)發(fā)套件包含cuda10.2、cuDNN 等深度學(xué)習(xí)開(kāi)發(fā)工具包,并且支持OpenCV 計(jì)算機(jī)視覺(jué)庫(kù),為深度學(xué)習(xí)網(wǎng)絡(luò)的搭建提供了可靠的基礎(chǔ)環(huán)境。為了成功部署改進(jìn)的YOLOv2 算法,在安裝JetPack4.4 開(kāi)發(fā)套件的基礎(chǔ)上,還需要配置pytorch1.4 和torchvision0.4開(kāi)發(fā)環(huán)境。
SAR船只目標(biāo)檢測(cè)系統(tǒng)需要對(duì)網(wǎng)絡(luò)連接進(jìn)行設(shè)置,包括IP 地址設(shè)置和共享文件夾創(chuàng)建。通過(guò)千兆以太網(wǎng)將主機(jī)、兩個(gè)嵌入式平臺(tái)分別與交換機(jī)相連,并將IP 地址設(shè)為同一網(wǎng)段,通過(guò)ping 命令可以確認(rèn)連接狀態(tài)。TX2嵌入式平臺(tái)端的共享文件夾創(chuàng)建需要安裝cifs-utils包,并通過(guò)mount命令進(jìn)行掛載。
基于本文搭建的SAR 船只目標(biāo)檢測(cè)系統(tǒng),對(duì)改進(jìn)的YOLOv2 算法進(jìn)行了實(shí)驗(yàn),實(shí)驗(yàn)采用AIRSARShip-1.0 數(shù)據(jù)集,數(shù)據(jù)集和訓(xùn)練集的劃分依據(jù)文獻(xiàn)[5],選取21景大圖作為訓(xùn)練集,余下10景大圖作為測(cè)試集,深度學(xué)習(xí)網(wǎng)絡(luò)訓(xùn)練平臺(tái)采用GTX Titan Xp GPU,使用的網(wǎng)絡(luò)框架為Pytorch。在訓(xùn)練過(guò)程中,將大圖切為1024x1024像素尺寸大小的切片,相鄰兩幅圖重合256*256 像素大小,同時(shí)使用圖像旋轉(zhuǎn)、圖像翻轉(zhuǎn)、按比例縮放等方式做數(shù)據(jù)增強(qiáng)。模型訓(xùn)練batchsize 設(shè)置為14,epoch 設(shè)置為64,前20 個(gè)epoch 學(xué)習(xí)率設(shè)置為0.001,后44 個(gè)epoch 學(xué)習(xí)率設(shè)置為0.0001,完成訓(xùn)練后在TX2 嵌入式平臺(tái)部署網(wǎng)絡(luò)并將訓(xùn)練好的網(wǎng)絡(luò)權(quán)重導(dǎo)入TX2嵌入式平臺(tái)。
參考文獻(xiàn)[5],采用船只目標(biāo)檢測(cè)AP 值對(duì)網(wǎng)絡(luò)檢測(cè)精度進(jìn)行衡量,AP 值計(jì)算方式如式(1)所示
其中pinterp(rn+1)計(jì)算方式如式(2)所示
其中,TP代表檢測(cè)結(jié)果為真且真值為真的檢測(cè)框數(shù)量,F(xiàn)P 代表檢測(cè)結(jié)果為真但真值為假的檢測(cè)框數(shù)量,F(xiàn)N 代表檢測(cè)結(jié)果為假但真值為真的檢測(cè)框數(shù)量。如式(5)所示
IOU 為檢測(cè)框與標(biāo)注框重合部分面積除以兩者做并集部分的面積,當(dāng)IOU 大于0.5 時(shí)檢測(cè)成功,記為TP,當(dāng)IOU 小于0.5 時(shí)認(rèn)為虛警,記為FP,然后未檢測(cè)出的艦船記為FN。數(shù)據(jù)集只包含船只一個(gè)類別,所以代表所有類的AP 平均值mAP 與AP 值相同。在本文提出的SAR 船只目標(biāo)檢測(cè)系統(tǒng)上進(jìn)行網(wǎng)絡(luò)部署并測(cè)試得到,船只目標(biāo)檢測(cè)AP值為78.73%,檢測(cè)速度為1.9 FPS。
基于TX2 嵌入式平臺(tái)的部分切片檢測(cè)結(jié)果如圖3 所示,改進(jìn)后的YOLOv2 網(wǎng)絡(luò)無(wú)論在近岸還是遠(yuǎn)海環(huán)境下都具有較好的檢測(cè)性能。
主機(jī)GUI 界面如圖4 所示,GUI 界面主要實(shí)現(xiàn)傳輸控制和處理流程展示,可以指定輸入輸出文件存儲(chǔ)位置,并且可以對(duì)處理進(jìn)度進(jìn)行實(shí)時(shí)顯示,返回兩個(gè)TX2 嵌入式平臺(tái)數(shù)據(jù)處理完成情況和總的完成時(shí)間。
本文基于TX2 嵌入式平臺(tái)設(shè)計(jì)了SAR 船只目標(biāo)檢測(cè)系統(tǒng),該方案采用兩個(gè)TX2 嵌入式平臺(tái)協(xié)同工作,基于SAR 船只目標(biāo)檢測(cè)系統(tǒng)實(shí)現(xiàn)了改進(jìn)的YOLOv2 網(wǎng)絡(luò),保證較高檢測(cè)精度的同時(shí),有效提高了SAR 圖像船只檢測(cè)速率,為解決檢測(cè)速率和檢測(cè)精度兩者之間的矛盾提供了有效方案。同時(shí)在平臺(tái)間實(shí)現(xiàn)了高速網(wǎng)絡(luò)數(shù)據(jù)傳輸,保證了SAR 船只目標(biāo)檢測(cè)系統(tǒng)的實(shí)時(shí)性,未來(lái)將考慮在SAR 船只目標(biāo)檢測(cè)系統(tǒng)中集成更多TX2 嵌入式平臺(tái)做并行數(shù)據(jù)處理,進(jìn)一步提升數(shù)據(jù)處理能力。