何維娟,江 濤,王林飛,徐權峰,王 欣
(1.云南民族大學 數學與計算機科學學院,云南 昆明 650500; 2.云南大學 信息學院,云南 昆明 650091)
近年來,研究人員在圖像識別[1]開發中做了很多工作。隨著遙感技術的快速發展,公開的目標檢測數據集也變得更多,大大增加了遙感圖像的數量和質量。遙感圖像可以描述空中觀測的一切物體,如飛機、油罐、車輛等。但是目前提出的目標檢測圖像數據集存在一些普遍的問題,大多都是自然場景下的數據集。并且這些數據集中單類目標場景通常很單一,目標數量也較少,對于特定場景和目標的數據集并不多見,但是這類數據集卻是很有價值的。研究人員廣泛地研究致力于航空圖像中的目標檢測[2-8],利用計算機視覺的最新進展,并考慮到地球視覺應用的高要求,這些方法中的大多數[4,8]試圖將針對自然場景開發的目標檢測算法轉移到航空圖像領域。此外,目前的目標檢測雖然取得了很大的成功,但是在艦船遙感圖像[9]中卻存在很多難題,從當前艦船遙感圖像目標檢測的研究來看,存在以下幾個普遍的問題:一是艦船目標較小,導致艦船占像素點較少;二是艦船的種類多、大小不一,檢測難度相對較高;三是艦船圖像的成像受天氣、岸邊建筑和光照等因素的影響引起艦船物體視覺的改變。
對于艦船目標檢測和艦船數據集的研究已有顯著成果。例如,徐芳[10]提出了一種梯度方向特征方法;余東行等人[11]采用基于頻率域相位譜的多尺度顯著性檢測方法抑制干擾因素;宋明珠等人[12]針對難以辨認的弱小艦船目標,設計了不同圖像層的權重,借此合成了基于多類特征的顯著性圖;李健偉等基于深度學習的SAR圖像艦船檢測數據集及性能分析提出了SSDD數據集;Li等[13]提出了DIOR數據集等等。艦船檢測的傳統方法是基于自動識別系統和艦船特征[14],Li等提出了一種改進的空間聚類算法來識別艦船的異常行為[15],Zhang等使用AIS數據來識別碰撞艦船,雖然這些研究都獲得了不錯的效果,但是卻普遍存在識別精度低和檢測速度低等一系列問題,因此,傳統的艦船檢測難以達到理想的檢測效果。近些年,基于深度學習的方法在各種圖像識別中占據主導地位,基于深度學習的方法主要包括兩種:一種是一階段基于回歸的方法,包括SSD[16]、YOLOV1[17]、YOLOV2[18]、YOLOV3[19]等;另一種是兩階段基于區域建議的方法,包括R-CNN[20]、Fast R-CNN[21]、Faster R-CNN[22](Faster Regions with CNN features)等。
為了更好地解決以上問題,該文構建一種艦船數據集,將其命名為DSTD。從開源數據集中采集了4 845張圖像,其中包含不同方向、形狀和比例的對象,共有87 076個艦船實例,每個實例都由一個bounding box標記。主要貢獻(Contribution)如下:(1)構建艦船數據集,構建的DSTD數據集是一組規模較大的艦船遙感圖像目標檢測數據集;(2)以DSTD艦船數據集為基準,選擇了單次目標檢測的YOLOV3算法和兩次目標檢測R-FCN算法與YOLOV5算法對該數據集進行實驗對比,最終在當前幾種主流的目標檢測方法中找到了最適合艦船檢測的方法:即YOLOV5。
遙感圖像是以航空拍攝為基礎,開始為航空遙感,隨著遙感數據集的發展,數據類型越來越豐富, 數據量也越來越大,目前而言,遙感圖像數據集已經有了很好的發展。
近些年,有許多人熱衷于遙感圖像數據集的研究,并公開發表了他們的數據集(部分數據集見表1),這些數據集簡要描述如下:

表1 遙感圖像數據集
(1)TAS:TAS數據集是用于航空圖像里的汽車檢測。包含30張圖像共1 319個汽車目標,圖像的空間分辨率相對較低。
(2)SZTAKI-INRIA:SZTAKI-INRIA數據集包含9張圖像,共665個建筑目標,該數據集用于對各種建筑檢測方法進行基準測試。
(3)NWPU VHR-10:NWPU VHR-10數據集由800張圖片構成,有10個對象類,其中包括艦船、油罐、飛機等等。
(4)VEDAI:VEDAI數據集由1 210張圖像構成,其中含有的目標為車輛,分辨率0.12 m,RGB+N(近紅外),尺寸大小:1 024*1 024。
(5)UCAS-AOD:中國科學院大學的實驗成果,UCAS-AOD數據集由910張圖像構成,其中含有的目標為汽車和飛機,還有部分背景樣本。
(6)DLR 3K Vehicle:DLR 3K Vehicle數據集由20張航拍圖像,共14 235個實例構成,這些圖片是用DLR 3K攝像系統拍攝的。
(7)HRSC2016:HRSC2016數據集由1 070張圖像構成,用于艦船檢測,該數據在位置、外觀和形狀等上都有很大的變化。(8)RSOD:武漢大學團隊標注,RSOD數據集由976張圖像構成,包含6 950個實例,有四個類別,分別為油箱、飛機、橋和操場。
(9)DOTA:DOTA數據集一共有15種土地利用類型,總樣本數高達18萬,包含2 806張圖片,其中含有15個對象類別,共計188 282個實例目標。
(10)SSDD:SSDD是國內外公開的第一個專門用于SAR圖像艦船目標檢測的數據集,SSDD中長寬比的分布范圍比較廣,從0.4到3,該數據集用于艦船檢測。
(11)DIOR:DIOR數據集由20個類別,23 463張圖像包含190 288個實例構成,該數據集在類別數量、對象數量和圖像數量都是最大的。
(12)ITCVD:ITCVD數據集是由飛機在高空約330米高度拍攝的,該數據集用于車輛檢測。
(1)R-FCN:R-FCN與Faster R-CNN是一個派系的,但是與Faster R-CNN比較,R-FCN的速度快得多,并且將部分卷積特征圖的計算實現了共享。R-FCN的關鍵思想:分類需要特征具有平移不變性,檢測則要求對目標的平移做出準確響應;消耗的卷積都盡量移到前面共享的subnetwork上,因此,與Faster RCNN中用的ResNet策略有所不同。
(2)YOLOV3:YOLOV3引入了FPN結構。從YOLOV1和YOLOV2中的Darknet19網絡升級到 Darknet-53[23]實現特征提取,借鑒殘差網絡[24]的思想,交替使用 3 × 3 與 1 × 1 的卷積神經網絡,但該方法借鑒了SSD方法中的多尺度思想,在保留了YOLO系列方法采用單階段網絡進行高幀率檢測的同時,進一步具備了檢測微小目標和多尺度目標的能力。它與SSD一樣準確,但是比Faster R-CNN和SSD檢測速度更快。
(3)YOLOV5:YOLOV5推理速度是目前最強的,它在YOLOV1-YOLOV4的基礎上進行優化。為了達到更快的目標檢測效果,YOLOV5在輸入端采用了Mosaic數據增強、自適應錨框計算和自適應圖片縮放,運行速度大大提高,最快的速度達到每秒140幀,在Backbone中使用了Focus結構和CSP結構,針對Focus結構,這種結構的主要操作是切片,目的是最大程度地減少信息損失而進行下采樣操作,保證了特征圖的語義多樣性。與YOLOV1-YOLOV4相比,YOLOV5具有更高的準確率和更好的識別小物體的能力。
實驗數據是由TGRS-HRRSD-Dataset-master、NWPU-VHRdataset、DIOR、DOTA等幾個開源遙感圖像數據集構成,對圖片進行剪切、修改以及篩選,并通過標注工具labelImg進行手動標注,一共得到了3 900張訓練集和954張測試集,制作了該艦船目標遙感數據集DSTD(見圖1)。

圖1 DSTD數據集部分艦船圖像數據示例
數據集文件中包括annotation,image兩個文件,其中annotation包含4 854個txt文件,是使用開源工具 LabelImg對DSTD進行人工標注,生成后綴為.txt的文件,每個txt文件主要為目標艦船的bounding box,格式為x1,y1,x2,y2,其中(x1,y1)與(x2,y2)分別是艦船bounding box的左上角坐標和右下角坐標。在訓練數據集之前,需要對數據通過人工標記標簽,這是非常費時費力的步驟,因此要獲得訓練數據集變得非常困難。
DSTD遙感圖像目標檢測數據集有以下顯著特征:
(1)針對性強、規模較大。DSTD數據集由4 854張最優艦船遙感圖像和87 076個艦船目標實例組成,該數據是從開源數據集中采集的。針對目前的遙感圖像數據集,DSTD針對性很強,只有艦船遙感圖像并且在圖像數量和目標數量上規模都較大,進一步提高了水上目標檢測技術水平。
(2)目標尺寸變化大。目標尺寸變化是目標檢測的一個重要特征,因為它對圖像的分辨率有很大影響,在DSTD數據集,艦船的大小變化范圍較大,為了增加目標的尺寸變化,該數據集收集了分辨率不同的圖像,兩張艦船圖片的目標大小與數量均有較大差異。
(3)圖片變化大。對于目標檢測而言,需要圖像具有較好的魯棒性,DSTD數據集就是在不同天氣、不同成像條件、不同水上環境下擁有豐富的圖像變化,因此DSTD數據集在光照、物體姿態和背景等方面都有豐富的變化,從而具有一定的魯棒性。
(4)類內多樣性高。為了增加類內多樣性,在收集艦船數據時,考慮了艦船比例、顏色、大小等因素,因此DSTD數據集具有較高的類內多樣性。
在這一節中,用DSTD數據集訓練了幾種經典目標檢測方法的性能,驗證了該數據集的可行性,同時找到了最適合艦船的檢測方法:即YOLOV5。進一步進行實驗分析并討論了驗證集上的可視化結果。
為保證進行實驗時訓練和測試數據分布的相似性,在4 854張DSTD艦船遙感圖像中,隨機獲得3 900幅艦船圖像當作訓練集,剩下的954幅圖片當作測試集(見表2)。由于每幅圖片至少包含一艘艦船,有的一幅圖片包含多艘艦船,因此,艦船目標數量不等于總的圖片數。

表2 艦船目標數據集
該文使用python語言進行實驗,實驗使用的操作系統為Red Hat 4.8.5-39,其中,處理器型號為Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10 GHz,顯卡型號為 GeForce GTX 1080,采用 NVIDIA CUAD11.0 加速工具箱。具體配置如表 3 所示。

表3 實驗環境
除了特別說明以外,對于YOLOV5算法在DSTD數據集的訓練階段使用的其他部分實驗參數如表 4 所示。

表4 實驗參數設置
在YOLOV5算法下,訓練階段設置 batch為64,輸入圖像為640×640,初始階段學習率為 0.004 7,結束學習率為0.000 044 7,訓練迭代次數為300,loss 值穩定在0.105 左右,訓練過程得到正常收斂效果,Loss曲線如圖2所示。

圖2 損失值函數
實驗評價指標主要是驗證實驗結果好壞的一種評比方法,該文選擇的評價指標為:精準率、召回率、平均精度和幀率。
(1)精準率(Precision,P)和召回率(Recall,R)。
其中,P是艦船的精準率,Ntp是準確檢測艦船的數量,Nfp是錯誤檢測艦船的數量,R是艦船的召回率,Nfn是將艦船誤檢為背景的數量。
(2)平均精度(mean Average Precision,mAP)。

其中,mAP表示多類別精度。
(3)幀率(FPS):目標檢測中每秒鐘能夠檢測的圖片數量,用該指標評價目標檢測的速度。
為了驗證YOLOV5算法在DSTD艦船遙感圖像的檢測性能,另外選了2種目標檢測方法作為對比,這兩種方法都是目前在深度學習中很有效的方法,一種為基于區域建議的方法:R-FCN,另一種為基于回歸的方法:YOLOV3。在進行R-FCN、YOLOV3模型的訓練時,使用官方代碼和默認參數。使用YOLOV3、R-FCN和YOLOV5對數據集訓練300次Batches。
三種算法在DSTD數據集上的精度、速度和召回率的對比如表5和圖3所示。圖3為三種算法的mAP圖像對比,其中YOLOV5、R-FCN、YOLOV3的圖像依次向下。YOLOV5目標檢測算法在檢測時間上每張圖片大約花費0.005 4 s,YOLOV3算法檢測一張圖片需要0.014 2 ms,R-FCN算法檢測一張圖片需要0.056 5 ms,YOLOV5的檢測速度是最快的。在檢測精度方面,YOLOV5的檢測精度為99.4%,YOLOV3的檢測精度為81.2%,R-FCN的檢測精度為86.2%,YOLOV5比YOLOV3和R-FCN的檢測精度提高了22.4%和18.8%。R-FCN的召回率為92.3%,YOLOV3的召回率為87.2%,YOLOV5的召回率為99.2%,YOLOV5較R-FCN及YOLOV3提高了7.5%和13.8%。

圖3 三種算法mAP對比結果

表5 實驗對比結果
對比YOLOV3和R-FCN,YOLOV5能夠保持較高分辨率的主要原因是具有較強的語義信息,具有開闊的感受野,YOLOV5中的Mosaic數據增強,隨機縮放、隨機裁剪、隨機排布的方式進行拼接等,提高了對艦船小目標的檢測能力。YOLOV5在保持一定精度的同時檢測速度最快,所以YOLOV5對艦船遙感圖像檢測效果最好。
該文構建了一種規模較大、艦船目標較多的DSTD艦船遙感圖像數據集。該數據集可以幫助水上艦船目標檢測有進一步的發展,并且利用構建的數據集對基于深度學習的方法進一步探索和驗證。對三種具有代表性的目標檢測方法的性能進行了評價,最終在當前幾種主流的檢測方法中發現了最適合艦船遙感圖像檢測的方法,即YOLOV5。將 YOLOV5應用到遙感艦船檢測領域中,更好地實現了DSTD目標的檢測。YOLOV5雖然效果很好,但是網絡在目標框構建的時候存在明顯的不足,使得模型完美地屏蔽了一些小目標的訓練,原因是通過比較目標框和錨框的比例,過濾掉了一部分錨框比例差距較大的目標框,訓練不好,并且進行過濾。該實驗結果可作為今后研究艦船目標檢測的一個有用性能。