潘 慧,段先華,羅斌強(qiáng)
江蘇科技大學(xué) 計(jì)算機(jī)學(xué)院,江蘇 鎮(zhèn)江212003
近幾年,我國(guó)的海域頻頻受到鄰國(guó)的侵犯和非法捕撈,四大海域的監(jiān)管任務(wù)日趨嚴(yán)峻,因此海上船舶識(shí)別成為海上交通安全領(lǐng)域的熱門(mén)研究方向。針對(duì)海洋背景下的船舶檢測(cè)問(wèn)題,目前常見(jiàn)的解決方法有兩類(lèi):一類(lèi)為成像系列,以基于合成孔徑雷達(dá)(synthetic aperture radar,SAR)的圖像[1]、紅外圖像[2]的檢測(cè)方法為主,它的應(yīng)用比較成熟,但其成像未能包含目標(biāo)豐富的光譜信息,且與人類(lèi)視覺(jué)習(xí)慣相偏差,不利于網(wǎng)絡(luò)提取更豐富的特征信息,從而降低了檢測(cè)的精度。另一類(lèi)為非成像系列,利用聲吶[3]等技術(shù)獲取船舶目標(biāo)的相關(guān)信號(hào),但是海上環(huán)境復(fù)雜,且通信傳輸通道復(fù)雜,對(duì)小目標(biāo)的船舶檢測(cè)效果極差。
隨著卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)[4]和候選區(qū)域算法[5]的問(wèn)世,基于深度學(xué)習(xí)的目標(biāo)檢測(cè)取得了巨大突破。傳統(tǒng)的檢測(cè)算法結(jié)合了Region Proposal和CNN,代表性的two-stage算法有Fast-RCNN[6](fast region-based convolutional neural network)和Faster-RCNN[7](faster region-based convolutional neural network),雖然這類(lèi)算法檢測(cè)精度很高,但是該系列算法需要在每個(gè)映射區(qū)域進(jìn)行分類(lèi)和回歸,模型參數(shù)的計(jì)算量非常大,導(dǎo)致其在實(shí)時(shí)應(yīng)用上遭到限制。針對(duì)此類(lèi)問(wèn)題,出現(xiàn)了以YOLO(you only look once)和SSD(single shot multibox detector)[8]為主的one-stage 系列算法,其利用端到端的網(wǎng)絡(luò)一步完成候選框回歸和目標(biāo)分類(lèi)的任務(wù),運(yùn)行檢測(cè)速度較two-stage系列算法有近100倍的提升,為實(shí)時(shí)檢測(cè)打下了理論基礎(chǔ)。目前流行的檢測(cè)算法YOLOV3,在YOLOV1[9]和YOLO9000[10]的基礎(chǔ)上進(jìn)行各項(xiàng)優(yōu)化,包括多尺度特征融合,加入類(lèi)FPN(feature pyramid network)[11]的金字塔結(jié)構(gòu)。該算法平衡了精度和速度之間的差距,在保持檢測(cè)速度快的特點(diǎn)前提下,性能得到了很大的提升,較同期的SSD 算法,檢測(cè)速度快了3倍。YOLOV3的尺度特征圖來(lái)自不同層的融合,其特征檢測(cè)圖包含的目標(biāo)信息更加豐富,進(jìn)而檢測(cè)精度的優(yōu)勢(shì)更明顯。
YOLOV3在各個(gè)領(lǐng)域應(yīng)用時(shí)具有更好的泛化性,因此本文將采用該模型對(duì)海上船舶進(jìn)行檢測(cè)[12],但是拍攝的海上船舶圖像[13]分辨率較低,其包含的船體信息不豐富,不同類(lèi)別的船舶在形狀上擁有高度相似性,導(dǎo)致YOLOV3 模型在檢測(cè)過(guò)程中出現(xiàn)誤檢和小目標(biāo)漏檢的現(xiàn)象。針對(duì)上述問(wèn)題,本文的工作分為兩部分:首先,根據(jù)圖像信息不豐富的特點(diǎn),在YOLOV3 的網(wǎng)絡(luò)基礎(chǔ)上增加檢測(cè)的尺度,并在高低層特征融合的過(guò)程中使用雙線(xiàn)性插值上采樣算法和判別相關(guān)分析(discriminant correlation analysis,DCA)融合策略,增強(qiáng)輸出特征信息表達(dá)能力,使得目標(biāo)的細(xì)節(jié)信息更加突出。其次,優(yōu)化損失函數(shù),在MS-YOLOV3模型的基礎(chǔ)上,采用GIOU(generalized intersection over union)損失代替損失函數(shù)中邊框優(yōu)化參數(shù)。前者主要是改進(jìn)模型來(lái)適應(yīng)真實(shí)環(huán)境拍攝的低分辨率圖像檢測(cè)任務(wù),后者進(jìn)一步優(yōu)化模型參數(shù),提升目標(biāo)位置信息的精確度。在自建的船舶數(shù)據(jù)集上,對(duì)YOLOV3 和MS-YOLOV3 的各項(xiàng)性能進(jìn)行對(duì)比,結(jié)果驗(yàn)證了改進(jìn)后的網(wǎng)絡(luò)在船舶圖像上取得的結(jié)果優(yōu)于原始算法。同時(shí)以公開(kāi)數(shù)據(jù)集Pascal VOC2007為訓(xùn)練目標(biāo),將改進(jìn)后的模型與原始模型、YOLO9000、SSD300 和Faster-RCNN 進(jìn)行平均精度對(duì)比,改進(jìn)后的網(wǎng)絡(luò)更勝一籌。
YOLOV3 模型[14]以Darknet-53[15]作為特征提取網(wǎng)絡(luò),其由52 個(gè)卷積層和1 個(gè)全連接層組成,提取網(wǎng)絡(luò)為全卷積,取消池化層,解除了對(duì)輸入圖像尺寸的限制,圖像尺度變化通過(guò)卷積步長(zhǎng)完成;此外,該網(wǎng)絡(luò)借鑒了ResNet[16]的殘差結(jié)構(gòu)思想,以1×1 和3×3 的卷積方式組成Residual 類(lèi)殘差結(jié)構(gòu),并在其內(nèi)部加入快捷鏈路層Shortcut,保證了網(wǎng)絡(luò)結(jié)構(gòu)在很深的情況下,網(wǎng)絡(luò)關(guān)鍵點(diǎn)仍然能夠正常收斂。雖然YOLOV3網(wǎng)絡(luò)檢測(cè)精度和速度比較優(yōu)秀,但是對(duì)Shipdataset數(shù)據(jù)集的低分辨率圖像來(lái)說(shuō),該模型的預(yù)測(cè)網(wǎng)絡(luò)獲取的尺度特征信息還是不豐富,導(dǎo)致模型無(wú)法檢測(cè)部分小目標(biāo),且對(duì)于相似的其他類(lèi)型船體或者圖中凸起的物體,容易出現(xiàn)誤檢的情況?;诖耍疚膶?duì)YOLOV3網(wǎng)絡(luò)進(jìn)行了兩處修改。
在YOLOV3模型上增加一個(gè)檢測(cè)尺度[17],提高對(duì)小目標(biāo)的識(shí)別能力。用于預(yù)測(cè)的尺度特征圖來(lái)源于網(wǎng)絡(luò)高層與低層的特征圖融合,高層的特征圖為上一個(gè)尺度特征圖上采樣的結(jié)果,而低層的特征圖為原圖經(jīng)過(guò)多層卷積下采樣得到,因此新增檢測(cè)尺度特征圖的大小為104。改進(jìn)的模型結(jié)構(gòu)如圖1 所示,特征提取網(wǎng)絡(luò)仍然使用Darknet-53,輸入圖像的大小為416×416×3,原模型的3個(gè)尺度預(yù)測(cè)模塊,分別記為L(zhǎng)F(52×52)、MF(26×26)和SF(13×13),新增尺度的預(yù)測(cè)模塊記為Add_LF(104×104),原圖經(jīng)過(guò)Darknet-53下采樣8倍后,得到的特征輸出會(huì)在形狀顏色等細(xì)節(jié)方面突出優(yōu)勢(shì),將其作為尺度融合的低階特征,大小為104×104×128,然后將LF2 信息交互模塊的輸出進(jìn)行上采樣。雖然最近鄰插值算法簡(jiǎn)單,但是其操作不考慮采樣點(diǎn)附近的像素值,使得縮放后的圖像灰度值不連續(xù),圖像質(zhì)量損失較大,會(huì)有明顯的馬賽克和鋸齒,最終影響網(wǎng)絡(luò)訓(xùn)練性能。因此利用雙線(xiàn)性差值算法將其尺寸放大至104,并與低階特征進(jìn)行特征融合。之后利用一組信息交互模塊完成低層細(xì)節(jié)信息和高層語(yǔ)義信息的充分交流,得到的結(jié)果經(jīng)過(guò)1×1的卷積更改通道數(shù)之后,輸出作為第四個(gè)尺度檢測(cè)的輸入。新增模塊的尺度感受野[18]大,更容易檢測(cè)到小目標(biāo)的存在,能夠有效地改善小目標(biāo)漏檢的現(xiàn)象。
圖1 MS-YOLOV3網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Network structure of MS-YOLOV3
YOLOV3對(duì)于融合高低層特征圖,采用concat通道拼接算法,即將高低層特征圖的通道數(shù)直接相加,尺度不變,結(jié)果作為局部特征交互模塊的輸入,這種做法簡(jiǎn)單,但是兩種特征集因相關(guān)性不強(qiáng)而產(chǎn)生冗余信息,這些信息影響后續(xù)其他策略的執(zhí)行,從而造成目標(biāo)漏檢的問(wèn)題。為此,引入DCA[19-21]特征融合策略,此策略在CCA[22](canonical correlation analysis)的基礎(chǔ)做了改進(jìn),使得兩個(gè)特征集之間的差異更為突出,同時(shí)最大化兩者之間的相關(guān)性,更好地融合不同模式下提取的信息,進(jìn)而使得經(jīng)過(guò)交互模塊的待檢測(cè)輸入的特征信息更加豐富。
首先假設(shè)樣本數(shù)矩陣有C個(gè)單獨(dú)的類(lèi),因此n列數(shù)據(jù)可以分為C個(gè)單獨(dú)的類(lèi)。假設(shè)ni列屬于第i類(lèi),對(duì)于i類(lèi)的第j個(gè)樣本,即特征向量,記為Xi,j。和分別表示所有特征集合的平均值和第i類(lèi)特征的平均值。由此得到的類(lèi)間散布矩陣如下:
其中有:
r的最顯著特征可以通過(guò)Φ→Φbxφ映射得到,Wbx=ΦbxφΛ-1/2為轉(zhuǎn)移矩陣,歸一化Sbx并對(duì)數(shù)據(jù)矩陣進(jìn)行降維(p→r)。記輸入的其中一個(gè)特征集為X,則X在空間上的投影X′的求解如式(4)和(5)所示:
同理可得另一輸入特征集Y在空間上的投影Y′,如式(6)和(7)所示:
為了讓X與Y的特征保持非零相關(guān),利用SVD(singular value decomposition)[23]對(duì)兩者的協(xié)方差矩陣進(jìn)行對(duì)角化,先定義S′xy=X′Y′T,那么對(duì)角化推算如下:
緊接著定義Wcx=UΣ-1/2,Wcy=UΣ-1/2,這樣就能得到。最后進(jìn)行轉(zhuǎn)換,得到新的特征集X*、Y*,如式(9)和(10)所示:
該策略在本文實(shí)驗(yàn)中的具體加入流程如圖2所示。
圖2 基于DCA的深度特征融合示意圖Fig.2 Schematic diagram of deep features fusion based on DCA
損失函數(shù)由三部分組成:邊框損失、類(lèi)別損失和置信度損失。本節(jié)主要說(shuō)明邊框損失帶來(lái)的問(wèn)題。在YOLOV3檢測(cè)算法中,利用交并比(intersection over union,IOU)[24]衡量預(yù)測(cè)框和真實(shí)框的距離,利用損失函數(shù)迭代優(yōu)化模型的網(wǎng)絡(luò)結(jié)構(gòu)參數(shù),邊框參數(shù)優(yōu)化將預(yù)測(cè)的4個(gè)點(diǎn)看成一個(gè)整體進(jìn)行回歸,采用的是范數(shù)L1或者L2距離[25]。但是在相同Loss的情況下,每組的預(yù)測(cè)框和真實(shí)框的IOU值參差不齊,這也就說(shuō)明了根據(jù)損失局部?jī)?yōu)化得出的權(quán)重參數(shù),并不能表示其預(yù)測(cè)的邊框最接近真實(shí)框,即IOU值最大。進(jìn)一步講,模型的MSE損失和IOU預(yù)測(cè)距離在評(píng)判模型性能上形成不了等價(jià)關(guān)系。這種情況下通常的做法是,將IOU 作為邊框損失計(jì)算參數(shù),解決上述的不等價(jià)問(wèn)題。但是基于IOU 的損失面臨著一個(gè)問(wèn)題:當(dāng)預(yù)測(cè)框和真實(shí)框不相交,即IOU為零值時(shí),不僅不能反映兩個(gè)邊框的距離,而且損失不可導(dǎo),無(wú)法參與優(yōu)化任務(wù)。此外,利用YOLOV3訓(xùn)練Shipdataset時(shí),出現(xiàn)了預(yù)測(cè)框遠(yuǎn)偏離真實(shí)框的情況,導(dǎo)致預(yù)測(cè)位置信息不準(zhǔn)確,極大地降低了整個(gè)模型的性能。
針對(duì)上述問(wèn)題,在不能采用IOU_Loss的情況下,對(duì)模型損失進(jìn)行了優(yōu)化,引入廣義交并比(GIOU)[26-27]。
對(duì)于預(yù)測(cè)框A和真實(shí)框B,先求出A和B的最小凸包(包含AB框的最小包圍圈)C,再根據(jù)IOU的值得到GIOU,具體的計(jì)算公式如式(11)和(12)所示:
式中,C表示預(yù)測(cè)框和真實(shí)框的最小包圍框的面積,A?B表示真實(shí)框和預(yù)測(cè)框的面積之和減去兩者的重疊面積。
由上述公式,GIOU總是小于等于IOU,根據(jù)公式得其值位于區(qū)間[0 ,1],因此GIOU 的值位于區(qū)間[-1,1]。當(dāng)預(yù)測(cè)框和真實(shí)框完全重合的時(shí)候,GIOU 的值為1。當(dāng)預(yù)測(cè)框和真實(shí)框不重合,即IOU為0時(shí),GIOU越接近-1,兩者的距離越遠(yuǎn)。
GIOU作為邊框評(píng)價(jià)指標(biāo)時(shí),邊框代價(jià)函數(shù)如式(13)所示:
最后,整個(gè)模型的損失函數(shù)如式(14)所示。其中,第一部分為邊框損失。第二部分為類(lèi)別損失,的取值是由網(wǎng)絡(luò)單元代表的邊界框是否負(fù)責(zé)預(yù)測(cè)某個(gè)對(duì)象決定,為參與預(yù)測(cè)的邊界框含有目標(biāo)的置信度。若邊界框不參與目標(biāo)預(yù)測(cè),但是其與真實(shí)框的IOU值大于設(shè)定的閾值,那么Gij值為0,其他情況下,其值為1。第三部分為置信度損失,同樣也表示邊界框是否預(yù)測(cè)對(duì)象。
為了驗(yàn)證改進(jìn)的模型在海上船舶檢測(cè)中的有效性,本次實(shí)驗(yàn)建立一個(gè)海上船舶數(shù)據(jù)集Shipdataset,該數(shù)據(jù)集包含兩類(lèi)船舶品種,海上民用船(civilship)和海上軍用船(warship)。此次數(shù)據(jù)集的圖片來(lái)自網(wǎng)上搜索的海上拍攝視頻和圖片,因?yàn)橐曨l中存在大量相同內(nèi)容,所以通過(guò)跳幀手段,即每20幀截取一張視頻片段,最后將得到的視頻片段進(jìn)行人工篩選,剔除低質(zhì)量不清晰的圖像,保留含有目標(biāo)的圖像和海上背景圖像。
因?yàn)槭占降臉颖緮?shù)量不夠支撐網(wǎng)絡(luò)的訓(xùn)練,所以通過(guò)數(shù)據(jù)增強(qiáng)的手段來(lái)增加樣本的數(shù)量。先對(duì)圖片進(jìn)行裁剪和縮放,將圖片的大小固定為640×720,接著對(duì)預(yù)處理過(guò)的圖片隨機(jī)抽取1/3進(jìn)行90°、180°和270°的旋轉(zhuǎn)和鏡像翻轉(zhuǎn),再隨機(jī)抽取1/3 進(jìn)行對(duì)比度和亮度的調(diào)整,以此提高模型的泛化能力,同時(shí)也能緩沖網(wǎng)絡(luò)過(guò)擬合的現(xiàn)象。最后利用labelImage 工具對(duì)已處理好的圖片進(jìn)行目標(biāo)框標(biāo)注。將數(shù)據(jù)集按照比例劃分為訓(xùn)練集、測(cè)試集和驗(yàn)證集,具體如表1所示。
表1 海上船舶數(shù)據(jù)集Table 1 Shipdataset
實(shí)驗(yàn)的條件以及訓(xùn)練中的參數(shù)調(diào)整如下:為了節(jié)省訓(xùn)練時(shí)間和加快損失的收斂,本次實(shí)驗(yàn)的網(wǎng)絡(luò)結(jié)構(gòu)各節(jié)點(diǎn)參數(shù)在backbone 上進(jìn)行微調(diào)。使用隨機(jī)梯度下降法[28]進(jìn)行損失優(yōu)化,學(xué)習(xí)動(dòng)量設(shè)為0.9,初始學(xué)習(xí)率設(shè)為0.001,權(quán)重衰減為5.0×10-4,Batch Size為64。前4.0×104迭代次數(shù)中學(xué)習(xí)率不變化,到4.5×104迭代次數(shù)中學(xué)習(xí)率為前者的10%,之后至最大迭代次數(shù),學(xué)習(xí)率為當(dāng)前值的10%,適當(dāng)降低學(xué)習(xí)率,可以使模型更有效地學(xué)習(xí),也能降低訓(xùn)練損失。實(shí)驗(yàn)所需要的環(huán)境和軟硬件設(shè)備如下:Win10,Darknet,CPU 為Intel Core i9-6700,GPU為NVIDIA GeForce GTX 2080,顯存12 GB等。
利用Kmeans 聚類(lèi)算法[29],對(duì)數(shù)據(jù)集的邊框信息進(jìn)行訓(xùn)練,得到K值和平均IOU 的關(guān)系,如圖3 所示。當(dāng)K大于15 時(shí)IOU 變化趨于平緩,因此實(shí)驗(yàn)將選取12 個(gè)Anchor Box。根據(jù)網(wǎng)絡(luò)的輸出尺度個(gè)數(shù),每個(gè)尺度按照感受野的大小分配3個(gè)相應(yīng)大小的Anchor Box,即預(yù)測(cè)特征圖中每個(gè)單元格可預(yù)測(cè)3個(gè)Bounding Box。
圖3 平均IOU變化曲線(xiàn)Fig.3 Curve of average IOU
本實(shí)驗(yàn)針對(duì)數(shù)據(jù)集中兩類(lèi)船舶進(jìn)行檢測(cè),具體的評(píng)價(jià)標(biāo)準(zhǔn)為單類(lèi)精確率(precision,P)、平均精度(mean average precision,mAP)和召回率(recall,R),如式(15)、(16)、(17)所示。
式中,TP表示被模型預(yù)測(cè)的真正類(lèi),F(xiàn)P表示模型將負(fù)例錯(cuò)誤分類(lèi)為正例,F(xiàn)N表示模型將正例錯(cuò)誤分類(lèi)為負(fù)類(lèi),Pcivil和Pwar分別代表民用船和軍用船的識(shí)別精確度。
3.3.1 上采樣算法對(duì)比
為了驗(yàn)證插值算法對(duì)模型的影響,上采樣模塊分別以最近鄰插值和雙線(xiàn)性插值為基礎(chǔ)來(lái)訓(xùn)練模型,然后采集模型中三個(gè)上采樣模塊輸出特征圖。圖4(a)為以最近鄰插值為主的上采樣模塊輸出,對(duì)比圖4(b),表現(xiàn)出較為明顯的馬賽克和鋸齒缺陷,細(xì)節(jié)信息的精度缺失嚴(yán)重,對(duì)比最大尺寸的采樣結(jié)果圖來(lái)看,前期的上采樣模塊采用雙線(xiàn)性插值算法,經(jīng)過(guò)卷積操作之后,一定程度上保留了目標(biāo)的形狀信息。因此模型的上采樣模塊將采用雙線(xiàn)性插值保證后期每個(gè)卷積模塊輸出的特征信息精度不會(huì)缺失,以此間接提升模型的識(shí)別準(zhǔn)確度。
圖4 上采樣模塊的可視化對(duì)比Fig.4 Visual comparison of upsampling module
3.3.2 特征融合算法對(duì)比
為了驗(yàn)證DCA融合策略的優(yōu)勢(shì),在模型的LF模塊所表示的尺度基礎(chǔ)上,對(duì)相關(guān)卷積層的輸出特征圖做灰度化處理。以Darknet-53 網(wǎng)絡(luò)提取到尺寸為52 的特征圖為輸入X,以MF2 模塊的輸出再上采樣得到的特征圖為輸入Y,對(duì)原始模型中直接通道拼接融合方法和改進(jìn)模型中DCA融合方法進(jìn)行比較。如圖5所示,經(jīng)過(guò)相關(guān)性變換得到輸出X′和Y′,對(duì)比輸入的兩張圖,在最大化兩者相關(guān)性后,輸出圖中船體的信息更加豐富,再經(jīng)過(guò)通道拼接,得到的尺度特征圖在目標(biāo)形狀、背景和目標(biāo)分割界線(xiàn)方面,與直接通道拼接融合的輸出圖對(duì)比,細(xì)節(jié)信息有著明顯的精度提升,且后者的視覺(jué)效果不如前者。由此可以看出,使用DCA 策略的融合模塊能夠加強(qiáng)細(xì)節(jié)信息的表達(dá),豐富船體的特征信息,使得船體凸出部分的特征得到顯示。對(duì)于檢測(cè)層來(lái)說(shuō),細(xì)粒度特征豐富的輸出更容易檢測(cè)出目標(biāo)的類(lèi)別和位置信息,這也有助于提升整個(gè)模型的性能。
圖5 融合算法的特征可視化結(jié)果圖對(duì)比Fig.5 Comparison of feature visualization maps in strategy of scale fusion
如圖6所示,將DCA融合算法與卷積神經(jīng)網(wǎng)絡(luò)常見(jiàn)的Addition 融合算法和Concatenation 融合算法進(jìn)行類(lèi)別準(zhǔn)確度對(duì)比。從圖中可以看出,相比另外兩個(gè)融合算法,加入DCA融合策略的模型在每個(gè)類(lèi)別上的AP值都有提升,雖然上升的幅度較小,但是對(duì)于改善模型性能也能起到推波助瀾的作用。
圖6 融合算法對(duì)模型準(zhǔn)確度的影響Fig.6 Influence of different fusion methods on accuracy
3.3.3 損失對(duì)比
以MS-YOLOV3為實(shí)驗(yàn)訓(xùn)練模型,對(duì)損失函數(shù)收斂性進(jìn)行驗(yàn)證。兩種Loss 函數(shù)隨著迭代次數(shù)的變化曲線(xiàn)如圖7 所示。圖中的兩條曲線(xiàn)分別表示邊框損失使用MSE 的初始損失函數(shù),和使用GIOU 的更改損失函數(shù)。雖然兩者在迭代一定次數(shù)之后都趨于零值,達(dá)到收斂狀態(tài),但是邊框損失函數(shù)使用GIOU 之后,模型平均損失收斂更快,曲線(xiàn)整體值低于MSE,而且batch之間的縱坐標(biāo)數(shù)值波動(dòng)大幅度減小,穩(wěn)定性增強(qiáng)。由此看出,使用GIOU邊框損失之后,模型的性能更加穩(wěn)定,同時(shí)具有較高的魯棒性。
圖7 平均損失收斂曲線(xiàn)對(duì)比Fig.7 Comparison of average loss
如圖8所示,對(duì)船舶圖片進(jìn)行目標(biāo)預(yù)測(cè)和真實(shí)框的距離測(cè)試對(duì)比,圖8(a)(b)表示邊框損失使用MSE,圖8(c)(d)表示邊框損失使用GIOU,粉色框表示預(yù)測(cè)邊框,藍(lán)色框表示真實(shí)邊框。比較兩組結(jié)果,GIOU 邊框損失下的真實(shí)框與預(yù)測(cè)框的距離,明顯小于MSE 邊框損失的反饋結(jié)果,以此也表明GIOU在對(duì)邊框位置信息的預(yù)測(cè)精確度上還是起到了推進(jìn)作用。
圖8 預(yù)測(cè)框和真實(shí)框的距離對(duì)比Fig.8 Distance comparison between prediction box and real box
3.3.4 原始模型與改進(jìn)模型對(duì)比
以Darknet-53為基礎(chǔ)提取網(wǎng)絡(luò),將原始YOLOV3與基于GIOU損失的MS-YOLOV3進(jìn)行性能對(duì)比,實(shí)驗(yàn)結(jié)果如表2所示。從結(jié)果可以看出,YOLOV3的尺度特征表達(dá)的信息不充分,兩個(gè)類(lèi)別的精度只達(dá)到了65.32%和79.34%,平均精度達(dá)到72.34%。而MS-YOLOV3 充分融合更低層的特征信息,單類(lèi)別精度提升了5.9~9.9個(gè)百分點(diǎn),檢測(cè)平均精度提升了7.9個(gè)百分點(diǎn),同時(shí)召回率也提升至82.45%。因此從精確度可以看出MS-YOLOV3在Shipdataset數(shù)據(jù)集上的優(yōu)勢(shì)。
表2 兩種模型的精度和召回率對(duì)比Table 2 Comparison of precision and recall of two models
通過(guò)訓(xùn)練好的模型,對(duì)驗(yàn)證集圖片預(yù)測(cè)后,得到每個(gè)類(lèi)別的置信度得分,分別對(duì)兩個(gè)類(lèi)別的樣本進(jìn)行排序,計(jì)算Precision 和Recall,并繪制每個(gè)類(lèi)別的P-R 曲線(xiàn),如圖9 所示。圖9(a)(b)表示民用船在兩個(gè)模型測(cè)試下精度和召回率的關(guān)系,圖9(a)表示YOLOV3 驗(yàn)證結(jié)果,圖9(b)表示MS-YOLOV3測(cè)試結(jié)果。由于民用船的船體結(jié)構(gòu)復(fù)雜,其類(lèi)別精確度整體還是偏低,但是根據(jù)P-R 曲線(xiàn)來(lái)看,經(jīng)過(guò)MS-YOLOV3 測(cè)試得到的Recall還是提升了10 個(gè)百分點(diǎn)左右。圖9(c)(d)表示軍用船的測(cè)試結(jié)果,圖9(d)對(duì)比圖9(c)原始模型的測(cè)試結(jié)果,Recall 有小幅度提升,每個(gè)召回率對(duì)應(yīng)的精度提升很大,說(shuō)明MS-YOLOV3 預(yù)測(cè)錯(cuò)誤類(lèi)別的概率減小,兩個(gè)指標(biāo)都得到改善。
圖9 YOLOV3和MS-YOLOV3對(duì)兩類(lèi)船舶驗(yàn)證的P-R曲線(xiàn)Fig.9 P-R curve of two types of ships of YOLOV3 and MS-YOLOV3
為了進(jìn)一步驗(yàn)證改進(jìn)模型的有效性,對(duì)比不同的改進(jìn)措施下YOLOV3 的運(yùn)行時(shí)間,如表3 所示。很明顯,四種改進(jìn)方案下的模型在運(yùn)行時(shí)間上整體處于上升趨勢(shì),特別是多加一個(gè)檢測(cè)尺度之后,網(wǎng)絡(luò)層數(shù)增加,計(jì)算參數(shù)量變大,運(yùn)行速度漲幅較大。最終改進(jìn)模型的檢測(cè)精度提升了7.9 個(gè)百分點(diǎn),但是模型的運(yùn)行速度相較于原始模型上升了3.34 ms。綜合考慮,犧牲較小的速度換取預(yù)測(cè)準(zhǔn)確度的大提升,這種方案在本場(chǎng)景中還是可取的。
表3 不同改進(jìn)方法對(duì)模型運(yùn)行時(shí)間的影響Table 3 Influence of different improvement methods on running time of model
根據(jù)訓(xùn)練出來(lái)的權(quán)重文件對(duì)海上船舶圖片進(jìn)行預(yù)測(cè)。如圖10 所示,對(duì)部分船舶進(jìn)行目標(biāo)檢測(cè),MS-YOLOV3可以精確地預(yù)測(cè)出船舶類(lèi)別和位置信息。
圖10 船舶類(lèi)別識(shí)別Fig.10 Identification of ship classes
為了更加直觀(guān)地觀(guān)察神經(jīng)網(wǎng)絡(luò)的運(yùn)作情況,如圖11所示,對(duì)MS-YOLOV3預(yù)測(cè)網(wǎng)絡(luò)中四個(gè)尺度模塊的卷積層輸出進(jìn)行可視化。
圖11 四個(gè)尺度預(yù)測(cè)模塊的卷積層可視化Fig.11 Convolutional layer visualization of four scale prediction modules
在船舶數(shù)據(jù)集上對(duì)MS-YOLOV3 和原始YOLOV3進(jìn)行效果測(cè)試,實(shí)驗(yàn)結(jié)果如圖12所示。圖12(a)(b)(c)(d)為原算法的樣本測(cè)試效果??梢钥闯?,在圖12(a)中,由于船體相似,小船的預(yù)測(cè)邊框出現(xiàn)嚴(yán)重的類(lèi)別偏差。在圖12(b)中,原算法將凸起的人和文字誤檢為船舶。在圖12(c)中,選取分辨率較低的圖片進(jìn)行測(cè)試,發(fā)現(xiàn)對(duì)于小一點(diǎn)的目標(biāo),原算法無(wú)法檢測(cè)。在圖12(d)中,除了出現(xiàn)上述問(wèn)題之外,目標(biāo)雖然在預(yù)測(cè)之中,但是并沒(méi)有完全覆蓋到,位置信息預(yù)測(cè)不精確。圖12(e)(f)(g)(h)表示MS-YOLOV3 的樣本測(cè)試效果,對(duì)比來(lái)看,對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行改進(jìn),增加的尺度使得圖12(g)(h)中不清晰的小目標(biāo)得到發(fā)現(xiàn)。同時(shí)尺度特征融合階段采用DCA策略,增強(qiáng)兩個(gè)特征集的相關(guān)性,使檢測(cè)圖的語(yǔ)義和細(xì)節(jié)信息得到充分的交互,增加了細(xì)粒度特征信息,如圖12(e)(f)所示,船舶的誤檢情況得到改善。此外優(yōu)化先驗(yàn)框和加入GIOU邊框損失,也著實(shí)提高了邊框位置信息的精確度。
圖12 YOLOV3和MS-YOLOV3對(duì)船舶預(yù)測(cè)效果對(duì)比Fig.12 Visual comparison of ship prediction between YOLOV3 and MS-YOLOV3
為了驗(yàn)證采用GIOU損失的MS-YOLOV3在目標(biāo)檢測(cè)任務(wù)中的可靠性,將其與其他流行檢測(cè)算法在Pascal VOC20007 數(shù)據(jù)集上做性能對(duì)比。實(shí)驗(yàn)以threshold 為0.5進(jìn)行平均精度性能評(píng)估。實(shí)驗(yàn)結(jié)果如表4所示,相比較SSD300、Faster-RCNN以及YOLO系列的模型訓(xùn)練平均精度,MS-YOLOV3的優(yōu)勢(shì)還是很明顯的。
表4 不同模型在Pascal VOC2007數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果Table 4 Experimental results of different models on Pascal VOC2007 dataset
針對(duì)YOLOV3模型對(duì)船舶識(shí)別中出現(xiàn)的誤檢和漏檢問(wèn)題,本文提出了基于YOLOV3 模型改進(jìn)的船舶檢測(cè)算法。以民用船和軍用船作為研究對(duì)象,海上環(huán)境為研究背景。首先通過(guò)剪裁、縮放、旋轉(zhuǎn)等手段,增加正樣本的數(shù)量,為緩沖過(guò)擬合現(xiàn)象打下鋪墊。其次利用維度聚類(lèi)的算法對(duì)采集的船舶數(shù)據(jù)集進(jìn)行anchor box 的常見(jiàn)尺寸的聚類(lèi),以提高模型對(duì)目標(biāo)位置的檢測(cè)準(zhǔn)確度。接著在網(wǎng)絡(luò)模型增加檢測(cè)尺度,并在高低層尺度融合過(guò)程中加入DCA融合策略,豐富了待檢測(cè)輸入的細(xì)粒度,減小模型對(duì)目標(biāo)的誤檢率和漏檢率。雖然多尺度模塊拉低了運(yùn)行速度,但是準(zhǔn)確度提升7.9個(gè)百分點(diǎn),速度小幅度降低對(duì)于場(chǎng)景目標(biāo)檢測(cè)還是可取的。最后優(yōu)化損失函數(shù),采用GIOU 作為邊框損失函數(shù)的參數(shù),以此提高模型對(duì)目標(biāo)的檢測(cè)定位能力。實(shí)驗(yàn)結(jié)果表明,相對(duì)于YOLOV3 模型,改進(jìn)后的MS-YOLOV3 模型對(duì)船舶的檢測(cè)精度有很大的提高,同時(shí)將改進(jìn)模型與其他流行檢測(cè)算法在Pascal VOC2007 數(shù)據(jù)集上做精度對(duì)比,實(shí)驗(yàn)結(jié)果驗(yàn)證了本文提出的改進(jìn)方法的有效性。下一步工作主要對(duì)本文提出的船舶數(shù)據(jù)集Shipdataset進(jìn)行優(yōu)化,同時(shí)針對(duì)民用船的船體復(fù)雜特征的情況,繼續(xù)改進(jìn)模型,使得其對(duì)民用船的檢測(cè)精度得到提升。此外,針對(duì)模型計(jì)算量較大的情況,需要學(xué)習(xí)研究模型剪枝方面的策略。