董麗君,曾志高,易勝秋,文志強,孟 辰
(湖南工業(yè)大學(xué) 計算機學(xué)院,湖南 株洲 412007;湖南省智能信息感知與處理技術(shù)重點實驗室,湖南 株洲 412007)
遙感技術(shù)[1]在航空航海動態(tài)監(jiān)控、生態(tài)資源環(huán)境監(jiān)測、軍事目標(biāo)檢測等眾多領(lǐng)域發(fā)揮著重要作用。而遙感圖像目標(biāo)檢測是遙感圖像分析技術(shù)的重要一環(huán)。近年來,人工智能快速崛起,基于深度學(xué)習(xí)的目標(biāo)檢測算法[2]層出不窮,但是隨著工業(yè)應(yīng)用要求的不斷嚴格,提高目標(biāo)檢測的精度仍然是研究的重點方向。傳統(tǒng)的目標(biāo)檢測算法利用滑動窗口遍歷原始圖像,易造成候選區(qū)域選擇效率低下、窗口冗余等弊端。遙感圖像背景復(fù)雜難以檢測[3-4],而傳統(tǒng)目標(biāo)檢測算法只適用于背景簡單、特征顯著的圖像,實際應(yīng)用有很大的局限性。隨著深度學(xué)習(xí)技術(shù)[5]的飛速發(fā)展,基于深度學(xué)習(xí)的目標(biāo)檢測算法憑借其結(jié)構(gòu)靈活、自動提取特征和強大的數(shù)據(jù)處理能力等優(yōu)勢,逐漸替代傳統(tǒng)目標(biāo)檢測算法,成為當(dāng)前目標(biāo)檢測的主流算法。相較于傳統(tǒng)目標(biāo)檢測算法,基于深度學(xué)習(xí)的方法具有性能較高、實際應(yīng)用場景廣、使用方便簡潔等諸多優(yōu)點。
基于深度學(xué)習(xí)的目標(biāo)檢測算法主要有兩種,一是以Fast R-CNN(convolutional neural networks)、Faster R-CNN等為代表的Two-Stage算法[6-7]。這類算法主要分為兩個步驟,第一步提取感興趣區(qū)域;第二步結(jié)合主干特征,提取網(wǎng)絡(luò)輸出,進行目標(biāo)精準定位及類別判定。另一種是以SSD(single shot multibox detector)、YOLO(you only look once)等為代表的One-Stage算法[8-10]。這類算法直接在特征提取層做目標(biāo)檢測,沒有生成候選區(qū)域,大大節(jié)省了檢測時間,且檢測精度沒有明顯劣勢。隨著對檢測精度及構(gòu)建更深層次網(wǎng)絡(luò)的不斷追求,國內(nèi)外研究者做了大量研究,Cheng G.等[11]提出一種學(xué)習(xí)旋轉(zhuǎn)不變卷積神經(jīng)網(wǎng)絡(luò)模型RICNN(rotation-invariant convolutional neural networks),該模型在現(xiàn)有CNN結(jié)構(gòu)的基礎(chǔ)上引入和學(xué)習(xí)新的旋轉(zhuǎn)不變結(jié)構(gòu)來提升檢測性能。Cheng G.等[12]提出了COPD(collection of part detectors)模型,通過一組代表性的分類器為多類地理空間目標(biāo)檢測提供了一種實用模型,能有效提高分類精度。Li K.等[13]從特征融合角度提出了RI-CAO(rotation- insensitive and context-augmented object detection)模型,通過局部上下文特征增強和雙通道特征融合網(wǎng)絡(luò),提高模型檢測性能。而Wang C.等[14]通過優(yōu)化檢測框篩選機制提出了DODN(deconvolutional object detection network)模型,該模型通過構(gòu)建二級反卷積網(wǎng)絡(luò)取代錨定框機制,再通過區(qū)域生成網(wǎng)絡(luò)(region proposal network,RPN)生成感興趣區(qū)域,提高了模型檢測精度。Ultralytics公司提出了YOLOv5算法,其采用跨階段局部網(wǎng)絡(luò)(cross stage partial network,CSP)作為主要結(jié)構(gòu),并結(jié)合空間金字塔池化(spatial pyramid pooling,SPP)和路徑聚合網(wǎng)絡(luò)(path aggregation network,PANet)對網(wǎng)絡(luò)結(jié)構(gòu)進行了優(yōu)化,同時數(shù)據(jù)集進行馬賽克增強和更改損失函數(shù)為GIoU loss[15],有效地提高了目標(biāo)檢測精度。本文擬將基于YOLOv5算法的優(yōu)化模型應(yīng)用于遙感圖像數(shù)據(jù)集,在開源的NWPUVHR 10數(shù)據(jù)集[16]和RSOD數(shù)據(jù)集[17]上進行訓(xùn)練測試,同時針對遙感數(shù)據(jù)集的特點進行數(shù)據(jù)增強,對模型損失函數(shù)進行改進,優(yōu)化目標(biāo)檢測方法,以期提高遙感圖像的檢測精度。
YOLO算法創(chuàng)造性地將目標(biāo)檢測當(dāng)作回歸問題來解決,直接從特征提取層獲取檢測框邊界和類別概率。與使用RPN網(wǎng)絡(luò)或滑動窗口的方法不同,YOLO算法將候選區(qū)域和檢測階段合二為一,將輸入劃分成s×s個窗格,每個格子會生成不同長寬比的B個邊界框(bounding box)。當(dāng)目標(biāo)框中心點落在某個窗格,則此目標(biāo)的檢測由該窗格負責(zé),同時預(yù)測出邊界框的位置信息、分類概率及置信度(confidence)。
目前,YOLO系列中,最強大的模型為YOLOv5模型,其具有輕量級的模型大小及超高的準確率等優(yōu)點。具體模型結(jié)構(gòu)如圖1所示。
圖1 YOLOv5模型結(jié)構(gòu)圖Fig.1 Structure diagram of YOLOv5 model
YOLOv5共有YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x 4種不同大小的模型,其中YOLOv5s模型最小,也是速度最快的一個,其他3種模型是在此基礎(chǔ)上不同程度地增加模型寬度與深度。為了提高檢測精度的同時也保證檢測速率,課題組選擇了YOLOv5s模型。YOLOv5s模型在第二次和第三次CSP結(jié)構(gòu)中采用了3個殘差組件,其余的CSP結(jié)構(gòu)只采用一個殘差結(jié)構(gòu),CSP結(jié)構(gòu)的使用緩解了大量推理時間問題。同時在主干特征提取網(wǎng)絡(luò)前還加入了Focus模塊,主要是對圖像進行切片操作,最大程度減少了信息損失和推理時間,并進行了下采樣操作,較完整地保留了圖像下采樣信息。在主干特征提取網(wǎng)絡(luò)中借鑒了SPP-Net中的SPP模塊,實現(xiàn)了多重感受野特征的融合,最大化提高了特征利用率。針對多尺度目標(biāo)檢測問題,采取了自上而下的側(cè)向特征融合的FPN結(jié)構(gòu)和自底向上的PAN結(jié)構(gòu),以此提高檢測能力,結(jié)構(gòu)如圖2所示。
圖2 FPN+PAN結(jié)構(gòu)圖Fig.2 Structure diagram of FPN + PAN
課題組選擇的YOLOv5s模型,其結(jié)構(gòu)較淺,在模型不夠深的情況下,通過充足的側(cè)向鏈接可以保證對不同分辨率的檢測目標(biāo)的檢測。特別是對于高空拍攝的遙感圖像,這類圖像分辨率高且目標(biāo)復(fù)雜,而側(cè)向鏈接有助于解決該類遙感圖像的檢測難題。
馬賽克數(shù)據(jù)增強原理如圖3所示。
圖3 馬賽克數(shù)據(jù)增強原理圖Fig.3 Mosaic data enhancement schematic diagram
課題組在數(shù)據(jù)集NWPU-VHR 10和數(shù)據(jù)集RSOD上進行訓(xùn)練和測試,數(shù)據(jù)集相對較小,為了提升檢測效果,采用馬賽克數(shù)據(jù)增強手段,提高模型的泛化能力。馬賽克數(shù)據(jù)增強是從一個batch中隨機選取4張圖片,將4張圖像通過隨機縮放、裁剪、排布等操作隨機拼接成一個設(shè)定邊長的訓(xùn)練樣本。這樣做豐富了數(shù)據(jù)集,同時增加了許多小目標(biāo),對遙感圖像檢測更有利,能有效緩解遙感圖像樣本不足的問題,加強了網(wǎng)絡(luò)魯棒性。模型可以一次性對4張圖像進行訓(xùn)練,這樣使batch size不需要很大,減少了對GPU的要求,一個GPU也可以訓(xùn)練出較好的模型。
YOLOv5的損失函數(shù)包括3個部分,分類損失、定位損失與置信度損失。通過對這3個損失值進行加權(quán)相加得到總損失值。
3.2.1 分類損失函數(shù)優(yōu)化
本文采用Focal loss函數(shù)作為分類損失函數(shù),在One-Stage detector中會生成成千上萬個候選框,但一張圖片中的檢測目標(biāo)有限,這就導(dǎo)致大部分的候選框是負樣本,帶來了嚴重的正負樣本不均勻問題。針對該問題,課題組使用Focal loss作為分類損失函數(shù),其定義如式(1)所示,式中,代表預(yù)測值,y表示真實值,γ>0為可調(diào)節(jié)因子。令pt表示預(yù)測類別為真實標(biāo)簽的概率,定義如式(2)所示,代入式(1)后Focal loss函數(shù)可用式(3)表達。從式(3)可看出Focal loss函數(shù)是對交叉熵損失函數(shù)的優(yōu)化,相比于交叉熵損失函數(shù),F(xiàn)ocal loss函數(shù)多了一個調(diào)制因子(1-pt)γ,當(dāng)γ=0時,F(xiàn)ocal loss就是交叉熵損失。
該損失函數(shù)的主要思想就是給正負樣本加上一個權(quán)值,度量難分樣本和易分樣本的損失貢獻,調(diào)節(jié)正負樣本損失貢獻的權(quán)值。圖4為不同γ取值的Focal loss函數(shù)曲線對比圖。
圖4 Focal loss函數(shù)曲線Fig.4 Focal loss function curve
當(dāng)類別概率pt→1.0時,表明預(yù)測值高度接近真實值y,此類樣本屬于易分樣本,這些易分樣本大部分是負樣本和極少數(shù)與真實框高度吻合的正樣本,模型能夠快速準確地識別,此時(1-pt)→0.0,則以此來降低這些易分樣本的權(quán)值。對于難分樣本(1-pt)→1.0,此時Focal loss逼近于交叉熵函數(shù),總體來說Focal loss函數(shù)降低了易分樣本的損失貢獻,使模型更關(guān)注于難分樣本。如圖所示,調(diào)節(jié)因子γ能有效降低簡單樣本的損失值,γ越大則簡單樣本的損失值越小。對于置信度損失,也就是有無物體的損失,模型通過輸出confidence表示圖像中是否有目標(biāo),有目標(biāo)則為1,預(yù)測時用sigmoid函數(shù)轉(zhuǎn)化為(0, 1)的概率值,最后通過二值交叉熵損失函數(shù)(binary cross entropy loss)進行反向傳播。
3.2.2 定位損失函數(shù)優(yōu)化
課題組對定位損失函數(shù)也進行了優(yōu)化,采用了更全面的CIoU loss函數(shù)。在目標(biāo)檢測中,需要對比檢測框與真實框之間的檢測效果,YOLOv5原作者采用的GIoU loss,定義如下:
式(4)~(5)中:A、B分別為預(yù)測框與真實框;C為A與B的最小外接矩;IoU為真實框與預(yù)測框之間的交并比(intersection over union);GIoU為對IoU的優(yōu)化,考慮了真實框與預(yù)測框之間的重疊面積;LGIoU代表GIoU的損失。
當(dāng)預(yù)測框包含于目標(biāo)框時,GIoU loss退化成了IoU loss,無法區(qū)分相對位置。一個好的定位損失函數(shù)應(yīng)該不止考慮到重疊面積,而CIoU還考慮到了距離、尺度以及長寬比。CIoU loss定義如下:
式(7)~(9)中:α為權(quán)值;v為衡量長寬比的相似性;b、bgt分別為預(yù)測框與真實框;w、h分別為預(yù)測框的寬和高;wgt、hgt分別為真實框的寬與高;c為兩個矩形框的最小外接矩的對角線;ρ為求兩個矩形框中心點的歐氏距離;CIoU為對IoU的一種更全面的優(yōu)化;LCIoU為CIoU的損失。
定位損失函數(shù)如圖5所示。
圖5 定位損失函數(shù)示意圖Fig.5 Locating loss function diagram
CIoU loss優(yōu)點如下:
1)當(dāng)預(yù)測框與目標(biāo)框不重疊時,邊界框仍然可以學(xué)習(xí)往目標(biāo)框移動;
2)直接優(yōu)化兩個目標(biāo)框的距離,收斂速度更快;
3)對于預(yù)測框包含于目標(biāo)框的情況,GIoU恒相等,無法學(xué)習(xí)到具體相交情況,而CIoU可以加速框回歸;
4)考慮了長寬比,使預(yù)測框更快地回歸到目標(biāo)框。
3.3.1 自適應(yīng)錨框
由于遙感圖像目標(biāo)尺寸復(fù)雜,因此訓(xùn)練時修改默認錨定框為自適應(yīng)錨框,生成更符合數(shù)據(jù)集的錨框。一個錨框由面積(s)和長寬比(ratio)定義,計算公式如下:
式中:w為邊框的寬;h為邊框的高。
在訓(xùn)練初期,如果召回率大于閾值則不改變默認錨框,如果召回率小于閾值,則利用K-mean均值和遺傳算法對數(shù)據(jù)集進行分析,自動學(xué)習(xí)新的預(yù)定錨框,獲得更適合數(shù)據(jù)集的預(yù)設(shè)錨定框。
3.3.2 自適應(yīng)圖片縮放
對于輸入圖像,傳統(tǒng)的做法是將圖像縮放到固定大小再進行后續(xù)操作。當(dāng)圖像的長寬比過大或過小時,則會產(chǎn)生大量的填充區(qū)域,造成信息冗余,影響模型推理速度。基于遙感圖像的復(fù)雜性,采用了自適應(yīng)圖片縮放,先選擇圖像的較長邊進行縮放到固定尺寸,本文設(shè)定為640,按照該比例再對較短邊進行縮放,這樣得到一個小于640的短邊長,具體公式如下:
YOLOv5網(wǎng)絡(luò)模型中經(jīng)過了5次下采樣,最后的特征層感受野為32,為了便于計算機計算,對小于640的短邊進行填充,填充到大于短邊同時為32的倍數(shù)的最小值。這樣保留了圖像原有的比例信息,同時也最小化了填充黑邊,降低了原始填充方法帶來的信息冗余問題,在測試時采用自適應(yīng)圖片縮放,縮減填充,提高模型推理速度。
本項目是基于Pytorch框架,使用GPU進行訓(xùn)練,試驗環(huán)境具體配置如表1所示。
表1 試驗環(huán)境配置Table 1 Experimental environment configuration
本文基于現(xiàn)有的配置,batch size設(shè)為4,初始學(xué)習(xí)率為0.01,epochs設(shè)置為1 000。NWPU-VHR10數(shù)據(jù)集包括650張含目標(biāo)的圖像和150張無目標(biāo)圖像,共800張,10個類別,分別為飛機、艦船、油罐、棒球場、網(wǎng)球場、籃球場、田徑場、港口、橋梁和汽車。RSOD數(shù)據(jù)集共有976張圖像,包含飛機、操場、立交橋和油桶4個類別。
本試驗評價體系包括召回率R(recall),精準率P(precision),平均精準度AP(average precision)和均值平均精度mAP(mean average precision),各標(biāo)準的具體公式如下:
式(14)~(17)中:TP、FP、TN、FN分別代表預(yù)測為正樣本且預(yù)測正確、預(yù)測為正樣本但預(yù)測錯誤、預(yù)測為負樣本且預(yù)測正確和預(yù)測為負樣本但預(yù)測錯誤;Psmooth(r)為平滑的P-R曲線。
為了更好地評價本次試驗效果,課題組利用其他目標(biāo)檢測算法在數(shù)據(jù)集NWPU-VHR10上進行測試對比,比較結(jié)果如表2所示。表中加*數(shù)據(jù)為該類別AP最高值。從表2中可以看出,優(yōu)化后的YOLOv5s模型在NWPU-VHR 10數(shù)據(jù)集上取得了較好的結(jié)果。優(yōu)化算法的所有類別精度都接近1,其mAP較優(yōu)化前的YOLOv5s模型高出2.31%,同時比其他模型中排第二的DODN模型高出8.19%。同時為了驗證模型的泛化能力,也在數(shù)據(jù)集RSOD上進行了訓(xùn)練測試。
表2 不同算法在數(shù)據(jù)集NWPU-VHR10上的試驗結(jié)果Table 2 Experimental results of different algorithms on dataset NWPU-VHR10
每類的P-R曲線如圖6所示。從圖中可以得出,優(yōu)化后的YOLOv5s模型在數(shù)據(jù)集RSOD的mAP約為93.07%。其中優(yōu)化后YOLOv5s模型在飛機、操場和油桶這3個類別上都有很好的檢測精度,但在立交橋的目標(biāo)檢測精度只有79.27%,主要原因是RSOD數(shù)據(jù)集中類別樣本不均衡,導(dǎo)致訓(xùn)練及測試樣本不平衡,雖然進行了數(shù)據(jù)增強操作,增加了數(shù)據(jù)樣本,但立交橋類的樣本僅占測試樣本集的1.94%。
圖6 不同類別的P-R曲線Fig.6 P-R curves of different classes
本文算法對遙感圖像小目標(biāo)的檢測效果如圖7所示。從圖中可以看出,本文基于YOLOv5s的優(yōu)化模型對遙感圖像小目標(biāo)檢測具有一定的優(yōu)越性。
圖7 本文算法對小尺度目標(biāo)的檢測效果圖Fig.7 Small target detection results with the proposed algorithm adopted
比較其他模型與優(yōu)化YOLOv5s模型之間的均值平均精度,發(fā)現(xiàn)優(yōu)化YOLOv5s模型表現(xiàn)出了超高的性能,究其根本,在以下幾個方面:1)在輸入端對訓(xùn)練集進行了馬賽克數(shù)據(jù)增強,增加了樣本多樣性,降低了過擬合,提高模型泛化能力;2)主干特征提取層結(jié)合了CSP結(jié)構(gòu)與SPP結(jié)構(gòu),加強了特征提取效率;3)在進入檢測端前對3種不同尺寸的特征圖采用了自頂而下的FPN結(jié)構(gòu)和自底而上的PAN結(jié)構(gòu),充分利用了特征提取信息,使低層次特征具有強語義信息高分辨率等特征,有利于小目標(biāo)檢測;4)采用Focal loss的分類損失函數(shù),降低了正負樣本不均衡問題,使模型更關(guān)注于難分樣本的損失;5)采用CIoU loss作為定位損失函數(shù),同時考慮了目標(biāo)框之間的距離、重疊面積、尺度以及長寬比。
本文針對遙感圖像小目標(biāo)占比較高且目標(biāo)復(fù)雜、目標(biāo)尺度不一等問題,把優(yōu)化后的YOLOv5s模型應(yīng)用于遙感圖像的檢測任務(wù)中,同時應(yīng)用馬賽克數(shù)據(jù)增強,有效地擴充數(shù)據(jù)樣本。結(jié)合自適應(yīng)的方法降低目標(biāo)尺寸復(fù)雜的影響,選取了CIoU loss作為定位損失函數(shù),提高了模型檢測精度。以Focal loss作為分類損失函數(shù),可降低訓(xùn)練時正負樣本不均衡問題。試驗結(jié)果表明,優(yōu)化后的YOLOv5s模型能有效地檢測遙感圖像,平均精準度和均值平均精度顯著提升。