聶 鑫,劉 文*,吳 巍
(1.武漢理工大學(xué)航運(yùn)學(xué)院,武漢 430063;2.內(nèi)河航運(yùn)技術(shù)湖北省重點(diǎn)實(shí)驗(yàn)室(武漢理工大學(xué)),武漢 430063;3.武漢理工大學(xué)信息工程學(xué)院,武漢 430070)
隨著水上交通運(yùn)輸業(yè)的蓬勃發(fā)展,水上交通安全形勢(shì)面臨嚴(yán)峻考驗(yàn)。船舶作為水路運(yùn)輸?shù)闹匾d體,準(zhǔn)確識(shí)別船舶類型和檢測(cè)船舶位置對(duì)感知水路交通態(tài)勢(shì)、保證船舶航行安全和水上違法行為預(yù)警等具有重要意義。實(shí)現(xiàn)船舶目標(biāo)的高效準(zhǔn)確檢測(cè)是后續(xù)進(jìn)行船舶行為識(shí)別與軌跡跟蹤等高級(jí)視覺(jué)任務(wù)的基礎(chǔ)。因通航環(huán)境復(fù)雜、水面反光和易受不良天氣影響等因素,與道路車輛檢測(cè)相比,水上船舶目標(biāo)檢測(cè)更具挑戰(zhàn)性。
傳統(tǒng)目標(biāo)檢測(cè)方法主要有幀間差分法和背景建模法等。幀間差分法依賴于從視頻圖像前后幀之間的差分運(yùn)算獲取目標(biāo)輪廓,無(wú)法提取目標(biāo)的完整區(qū)域,由于船舶運(yùn)動(dòng)速度較慢,難以選取合適的時(shí)間間隔,不能保證船舶目標(biāo)檢測(cè)的準(zhǔn)確性和穩(wěn)定性。背景建模法通過(guò)將當(dāng)前幀與背景模型進(jìn)行比較,通過(guò)閾值法區(qū)分像素是否屬于前景目標(biāo)。由于水面波紋和船舶尾跡等因素干擾,Prasad等[1]采用23種基于背景建模的傳統(tǒng)目標(biāo)檢測(cè)算法對(duì)水上船舶目標(biāo)進(jìn)行實(shí)驗(yàn),均無(wú)法準(zhǔn)確檢測(cè)出船舶目標(biāo)。另外,傳統(tǒng)目標(biāo)檢測(cè)方法需對(duì)目標(biāo)特征進(jìn)行人工建模,限制了檢測(cè)模型泛化能力的提升。因此,亟須一種新的方法提高船舶目標(biāo)檢測(cè)能力,并實(shí)現(xiàn)目標(biāo)船舶所屬船舶類型的準(zhǔn)確識(shí)別。
2012 年興起的卷積神經(jīng)網(wǎng)絡(luò)具備強(qiáng)大的目標(biāo)特征表達(dá)和建模能力,通過(guò)監(jiān)督學(xué)習(xí)的方式,逐層、自動(dòng)地學(xué)習(xí)目標(biāo)從低級(jí)到高級(jí)的特征表示,實(shí)現(xiàn)對(duì)物體層次化的抽象和描述,成為目前目標(biāo)檢測(cè)任務(wù)的首選。基于神經(jīng)網(wǎng)絡(luò)的目標(biāo)檢測(cè)算法主要分為以R-CNN(Region-Convolutional Neural Network)系列[2-4]為代表的兩次目標(biāo)檢測(cè)網(wǎng)絡(luò)和以SSD(Single Shot multibox Detector)[5]、YOLO(You Only Look Once)系列[6-8]為代表的單次目標(biāo)檢測(cè)網(wǎng)絡(luò)。兩次檢測(cè)網(wǎng)絡(luò)首先通過(guò)區(qū)域建議的方式產(chǎn)生大量候選區(qū)域,再將得到的候選區(qū)域送入神經(jīng)網(wǎng)絡(luò),預(yù)測(cè)目標(biāo)的類別概率和位置信息。單次檢測(cè)網(wǎng)絡(luò)把目標(biāo)檢測(cè)作為回歸問(wèn)題處理,將目標(biāo)的位置預(yù)測(cè)和類別概率預(yù)測(cè)整合到一個(gè)神經(jīng)網(wǎng)絡(luò)中,實(shí)現(xiàn)端到端的訓(xùn)練,在實(shí)際應(yīng)用中提高了檢測(cè)速度,但準(zhǔn)確率低于兩次檢測(cè)網(wǎng)絡(luò)。
深度卷積網(wǎng)絡(luò)已成功應(yīng)用于水上船舶目標(biāo)檢測(cè)領(lǐng)域。王新立等[9]和陳從平等[10]使用Faster R-CNN 網(wǎng)絡(luò)分別對(duì)港口與內(nèi)河船舶進(jìn)行了自動(dòng)檢測(cè),相較于傳統(tǒng)方法大幅提高了檢測(cè)準(zhǔn)確率。王言鵬等[11]使用SSD 網(wǎng)絡(luò)克服了波浪造成的誤檢測(cè),并利用遷移學(xué)習(xí)技術(shù)提高網(wǎng)絡(luò)的泛化能力。趙蓬暉等[12]通過(guò)改進(jìn)特征提取網(wǎng)絡(luò)提高了SSD網(wǎng)絡(luò)檢測(cè)船舶目標(biāo)的準(zhǔn)確率。于洋等[13]通過(guò)在YOLOv2 中加入直通層對(duì)船舶目標(biāo)進(jìn)行檢測(cè),與原始YOLOv2 算法相比準(zhǔn)確率有所提高。劉博等[14]在YOLOv3 算法中加入懲罰機(jī)制實(shí)現(xiàn)了對(duì)船舶目標(biāo)的識(shí)別與跟蹤。Kim 等[15]通過(guò)將Faster R-CNN 網(wǎng)絡(luò)與貝葉斯概率結(jié)合實(shí)現(xiàn)對(duì)船舶視頻圖像的準(zhǔn)確檢測(cè)。因缺少用于船舶檢測(cè)的數(shù)據(jù)集,實(shí)驗(yàn)所用數(shù)據(jù)主要來(lái)自從網(wǎng)絡(luò)獲取的低分辨率圖像,造成無(wú)法準(zhǔn)確識(shí)別船舶類型的問(wèn)題,缺乏實(shí)際應(yīng)用的價(jià)值。
本文選擇兼具檢測(cè)精度與速度的YOLOv3 算法作為基礎(chǔ),針對(duì)水上船舶目標(biāo)檢測(cè)的具體應(yīng)用場(chǎng)景進(jìn)行改進(jìn),采用真實(shí)高分辨率監(jiān)控視頻圖像進(jìn)行實(shí)驗(yàn),驗(yàn)證了所提算法在不同天氣條件與復(fù)雜通航背景下的有效性。
YOLO 系列目標(biāo)檢測(cè)網(wǎng)絡(luò)是單次目標(biāo)檢測(cè)網(wǎng)絡(luò)中最具代表性的網(wǎng)絡(luò)結(jié)構(gòu),YOLOv3 是YOLO 系列的最新改進(jìn)網(wǎng)絡(luò),因?yàn)樵跈z測(cè)精度上可以與兩次目標(biāo)檢測(cè)網(wǎng)絡(luò)相媲美,同時(shí)可以達(dá)到實(shí)時(shí)檢測(cè)速度,所以成為目前最受歡迎的目標(biāo)檢測(cè)算法之一??紤]到船舶目標(biāo)檢測(cè)在實(shí)際應(yīng)用中需要同時(shí)兼顧檢測(cè)的精度和速度,所以本文以YOLOv3 為主體,結(jié)合船舶目標(biāo)檢測(cè)的應(yīng)用場(chǎng)景進(jìn)行改進(jìn),完成對(duì)船舶的位置定位和類型識(shí)別。
YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv3算法框架Fig.1 YOLOv3 algorithm framework
在提取特征之前,輸入圖像首先被調(diào)整為統(tǒng)一的尺寸,然后輸入圖像被送入Darknet-53 特征提取網(wǎng)絡(luò)提取特征。Darknet-53特征提取網(wǎng)絡(luò)是包含53個(gè)卷積層的深度卷積神經(jīng)網(wǎng)絡(luò),可以用來(lái)提取輸入圖像從低級(jí)到高級(jí)的特征表示,在進(jìn)行目標(biāo)檢測(cè)任務(wù)時(shí)需要移除最后一層全連接層,所以可以對(duì)輸入圖像做52 次卷積操作,得到不同深度的特征圖。卷積層連續(xù)交替使用3×3 和1×1 兩種不同尺寸的卷積核,通過(guò)3×3 的卷積核使得到的特征圖數(shù)量增加一倍,便于網(wǎng)絡(luò)提取更多的目標(biāo)特征,使用1×1 的卷積核壓縮特征圖數(shù)量,從而減少模型參數(shù),降低網(wǎng)絡(luò)計(jì)算的復(fù)雜度。為了可以在訓(xùn)練時(shí)使用比較大的學(xué)習(xí)率以減少訓(xùn)練時(shí)間,提高收斂速度,達(dá)到穩(wěn)定訓(xùn)練的目的,在每一個(gè)卷積層后使用批規(guī)范化層,將輸入數(shù)據(jù)做均值為0、方差為1的歸一化處理。在批規(guī)范化層之后使用泄露線性修正單元(Leaky Rectified Linear Unit,Leaky ReLU)激活函數(shù)進(jìn)行非線性操作,從而使網(wǎng)絡(luò)可以應(yīng)用在非線性模型中。卷積層、批規(guī)范化層和激活函數(shù)層構(gòu)成卷積塊結(jié)構(gòu)。由于深層的卷積神經(jīng)網(wǎng)絡(luò)在訓(xùn)練時(shí)容易出現(xiàn)梯度消失的問(wèn)題,導(dǎo)致在訓(xùn)練過(guò)程中檢測(cè)準(zhǔn)確率達(dá)到飽和,所以引入殘差跳躍連接結(jié)構(gòu),在加深網(wǎng)絡(luò)層數(shù)的同時(shí)解決了網(wǎng)絡(luò)退化問(wèn)題。
YOLOv3 算法在預(yù)測(cè)階段使用了多尺度預(yù)測(cè)的策略,通過(guò)Darknet-53 特征提取網(wǎng)絡(luò)得到的特征圖經(jīng)過(guò)幾次卷積操作得到粗尺度特征圖用于檢測(cè)大尺度目標(biāo),粗尺度特征圖經(jīng)過(guò)上采樣操作并與Darknet-53 網(wǎng)絡(luò)中間層特征圖拼接得到中尺度特征圖用于檢測(cè)中尺度目標(biāo),中尺度特征圖再經(jīng)過(guò)上采樣操作并與Darknet-53 網(wǎng)絡(luò)更淺層的特征圖拼接得到細(xì)尺度特征圖用于小尺度目標(biāo)檢測(cè),這種類似特征金字塔網(wǎng)絡(luò)的結(jié)構(gòu)保證了算法對(duì)不同尺度的目標(biāo)都有比較好的預(yù)測(cè)效果。不同于兩次目標(biāo)檢測(cè)網(wǎng)絡(luò)使用的區(qū)域提名方法,YOLOv3 網(wǎng)絡(luò)將特征圖劃分成S×S的網(wǎng)格單元,如果目標(biāo)的中心點(diǎn)坐標(biāo)落在某個(gè)網(wǎng)格單元內(nèi)部,則該網(wǎng)格單元負(fù)責(zé)這個(gè)目標(biāo)的預(yù)測(cè)。同時(shí),YOLOv3 算法借鑒Faster R-CNN 的錨框機(jī)制,在每個(gè)尺度上預(yù)先設(shè)置3 個(gè)大小、寬高比不同的先驗(yàn)錨框提高目標(biāo)檢測(cè)的準(zhǔn)確率。在每一個(gè)預(yù)測(cè)尺度,檢測(cè)層對(duì)于每一個(gè)網(wǎng)格單元預(yù)測(cè)3 個(gè)預(yù)測(cè)框信息,每個(gè)預(yù)測(cè)框信息包括網(wǎng)絡(luò)學(xué)習(xí)到的預(yù)測(cè)框中心點(diǎn)相對(duì)于網(wǎng)格單元左上角坐標(biāo)的相對(duì)坐標(biāo)(tx,ty)、預(yù)測(cè)框?qū)?、高相?duì)于先驗(yàn)錨框?qū)挕⒏叩目s放尺度(tw,th),網(wǎng)格單元內(nèi)有無(wú)目標(biāo)的置信度Pobj以及對(duì)應(yīng)n個(gè)目標(biāo)類別的類別概率P0,P1,…,Pn-1。最后,將3 個(gè)預(yù)測(cè)尺度的預(yù)測(cè)信息組合并通過(guò)非極大值抑制算法得到最終的預(yù)測(cè)結(jié)果。
雖然經(jīng)過(guò)多次改進(jìn)的YOLOv3 網(wǎng)絡(luò)已經(jīng)在檢測(cè)精度和檢測(cè)速度之間取得了比較好的平衡,且因?qū)崿F(xiàn)簡(jiǎn)單,成為許多目標(biāo)檢測(cè)任務(wù)的首選算法,但是作為一種單次目標(biāo)檢測(cè)網(wǎng)絡(luò),仍然存在著定位誤差大和前景、背景復(fù)雜度不平衡的問(wèn)題。
為了追求檢測(cè)速度,YOLOv3 算法將目標(biāo)定位和分類集成在一個(gè)卷積神經(jīng)網(wǎng)絡(luò)中,同時(shí)預(yù)測(cè)目標(biāo)的位置坐標(biāo)和類別信息。然而,由于神經(jīng)網(wǎng)絡(luò)中深度特征圖包含更高級(jí)和抽象的特征信息,適合用于目標(biāo)分類,但由于丟失了較多的空間信息,對(duì)目標(biāo)定位的效果較差。而淺層特征圖的特征更加具體,包含空間信息較多,適合坐標(biāo)定位但對(duì)目標(biāo)分類的效果并不理想。雖然YOLOv3 嘗試使用深度特征圖和淺層特征圖拼接來(lái)融合不同級(jí)別的特征信息,但與兩次目標(biāo)檢測(cè)算法相比仍然存在著目標(biāo)定位不準(zhǔn)確的問(wèn)題。
此外,YOLOv3 算法在3 個(gè)預(yù)測(cè)尺度上一共要預(yù)測(cè)10 000個(gè)以上可能的預(yù)測(cè)框,其中只有一少部分預(yù)測(cè)框中包含有目標(biāo),而大多數(shù)預(yù)測(cè)框中只包含有圖像背景信息,導(dǎo)致前景、背景數(shù)量極度的不平衡。YOLOv3 網(wǎng)絡(luò)需要在上萬(wàn)個(gè)可能的預(yù)測(cè)框中搜索到包含有目標(biāo)的最適合的一個(gè)預(yù)測(cè)框,給網(wǎng)絡(luò)訓(xùn)練帶來(lái)很大困難,網(wǎng)絡(luò)更多地聚焦在容易分類的背景框,造成對(duì)前景的分類能力下降。
針對(duì)YOLOv3 網(wǎng)絡(luò)定位誤差大和前景、背景復(fù)雜度不平衡的問(wèn)題,本部分通過(guò)加入對(duì)預(yù)測(cè)框的不確定性回歸和重新設(shè)計(jì)損失函數(shù),提出增強(qiáng)YOLOv3 算法,并以海事監(jiān)控視頻中的船舶目標(biāo)作為檢測(cè)對(duì)象進(jìn)行實(shí)驗(yàn)。
由于YOLOv3 算法同時(shí)對(duì)目標(biāo)的位置和類別信息進(jìn)行回歸,所以自然存在高分類準(zhǔn)確率和低定位準(zhǔn)確率,而且不同于對(duì)預(yù)測(cè)框內(nèi)是否存在目標(biāo)的置信度和類別概率的回歸都是概率值,可以指示分類的準(zhǔn)確程度,YOLOv3 算法對(duì)目標(biāo)位置信息的預(yù)測(cè)是確定的值,即預(yù)測(cè)框的中心點(diǎn)相對(duì)于負(fù)責(zé)預(yù)測(cè)該目標(biāo)的網(wǎng)格單元左上角坐標(biāo)的相對(duì)坐標(biāo)(tx,ty)和預(yù)測(cè)框的寬、高相對(duì)于先驗(yàn)錨框?qū)?、高的縮放尺度(tw,th),所以無(wú)法知道網(wǎng)絡(luò)對(duì)目標(biāo)位置預(yù)測(cè)的準(zhǔn)確程度。雖然置信度Pobj可以反映該預(yù)測(cè)框內(nèi)是否有目標(biāo),但無(wú)法反映出該預(yù)測(cè)框定位的準(zhǔn)確度,即目標(biāo)有多大部分在預(yù)測(cè)框內(nèi)。Choi 等[16]在自動(dòng)駕駛中通過(guò)使用定位的不確定性提高了車輛和行人的檢測(cè)精度。受Choi 等的啟發(fā),通過(guò)在YOLOv3 算法的預(yù)測(cè)框輸出信息中加入顯示預(yù)測(cè)框準(zhǔn)確程度的指標(biāo),在網(wǎng)絡(luò)訓(xùn)練過(guò)程中指導(dǎo)網(wǎng)絡(luò)學(xué)習(xí)預(yù)測(cè)更加準(zhǔn)確的預(yù)測(cè)框,從而降低YOLOv3 算法的定位誤差。
因?yàn)槊恳粋€(gè)目標(biāo)只有一個(gè)人工標(biāo)注的真實(shí)邊界框(Ground Truth,GT),所以可以使用單高斯模型分別對(duì)預(yù)測(cè)框中心點(diǎn)的相對(duì)坐標(biāo)和歸一化尺寸的概率分布進(jìn)行建模。對(duì)于給定的輸入x,輸出y的單高斯模型如式(1)所示:
其中:μ(x)表示均值,Σ()x表示方差。用均值μ表示預(yù)測(cè)框的相對(duì)位置和尺寸信息,用方差Σ反映預(yù)測(cè)框定位的準(zhǔn)確程度。所以預(yù)測(cè)框的每一個(gè)坐標(biāo)和尺寸信息可以分別被建模為均值和方差,即網(wǎng)絡(luò)學(xué)習(xí)到的預(yù)測(cè)框信息可以表示為。沿用YOLOv3 使用預(yù)測(cè)框相對(duì)于對(duì)應(yīng)網(wǎng)格單元左上角坐標(biāo)的偏移值和相對(duì)于先驗(yàn)錨框的縮放尺度表示預(yù)測(cè)框的位置和尺寸的方法,需要對(duì)網(wǎng)絡(luò)學(xué)習(xí)到的預(yù)測(cè)框相關(guān)信息使用sigmoid函數(shù)進(jìn)行預(yù)處理:
其中:均值μtx和μty表示預(yù)測(cè)框中心點(diǎn)相對(duì)于負(fù)責(zé)該預(yù)測(cè)框回歸的網(wǎng)格單元左上角坐標(biāo)的偏移值,使用sigmoid 函數(shù)處理后的取值范圍在(0,1),控制目標(biāo)中心的偏移位于對(duì)應(yīng)的網(wǎng)格單元之內(nèi),確保不會(huì)過(guò)偏移;μtw和μth表示預(yù)測(cè)框?qū)?、高相?duì)于先驗(yàn)錨框?qū)挕⒏叩目s放尺度;Σtx、Σty、Σtw、Σth分別表示對(duì)應(yīng)信息的不確定性,取值為(0,1),值越小,說(shuō)明對(duì)預(yù)測(cè)框的回歸越準(zhǔn)確。
加入預(yù)測(cè)框不確定性回歸后網(wǎng)絡(luò)對(duì)每一個(gè)預(yù)測(cè)框輸出8個(gè)位置和尺寸信息,1 個(gè)有無(wú)目標(biāo)的置信度信息和多個(gè)類別信息,改進(jìn)后的輸出信息如圖2 所示。由于預(yù)測(cè)框不確定性回歸只在網(wǎng)絡(luò)最后的檢測(cè)層起作用,不會(huì)對(duì)網(wǎng)絡(luò)的特征提取造成影響,所以不會(huì)額外增加網(wǎng)絡(luò)的計(jì)算量。
圖2 帶有預(yù)測(cè)框不確定性回歸的輸出信息Fig.2 Output information with prediction box uncertain regression
通過(guò)網(wǎng)絡(luò)學(xué)習(xí)到的預(yù)測(cè)框信息的偏移值可以計(jì)算出預(yù)測(cè)框的坐標(biāo)和尺寸信息,如圖3 所示,網(wǎng)絡(luò)最后輸出的預(yù)測(cè)框的坐標(biāo)、尺寸信息可以由式(4)計(jì)算:
其中:(bx,by)表示輸出的預(yù)測(cè)框中心點(diǎn)坐標(biāo),bw和bh分別表示輸出的預(yù)測(cè)框的寬和高;pw和ph分別表示先驗(yàn)錨框映射到特征圖的寬和高;(cx,cy)表示網(wǎng)格單元左上角的坐標(biāo),在預(yù)測(cè)層的特征圖中,每一個(gè)網(wǎng)格單元的邊長(zhǎng)均為1。
圖3 預(yù)測(cè)框的坐標(biāo)信息Fig.3 Coordinate information of prediction box
損失函數(shù)是評(píng)價(jià)網(wǎng)絡(luò)訓(xùn)練情況的重要指標(biāo),通過(guò)對(duì)網(wǎng)絡(luò)預(yù)測(cè)結(jié)果與真實(shí)樣本標(biāo)記產(chǎn)生的誤差反向傳播指導(dǎo)網(wǎng)絡(luò)調(diào)整參數(shù)學(xué)習(xí),YOLOv3 算法主要使用了兩種損失函數(shù),對(duì)預(yù)測(cè)框信息使用了均方誤差損失函數(shù),對(duì)有無(wú)目標(biāo)的置信度信息和類別概率信息使用二值交叉熵?fù)p失函數(shù)。
由于預(yù)測(cè)信息中加入了對(duì)預(yù)測(cè)框的不確定性回歸,所以需要對(duì)位置損失函數(shù)進(jìn)行重新設(shè)計(jì)。使用負(fù)對(duì)數(shù)似然損失代替均方誤差損失如式(5)所示:
其中:Lx、Ly、Lw、Lh分別表示預(yù)測(cè)框的中心坐標(biāo)位置損失和尺寸損失;δ表示是否為最合適的預(yù)測(cè)框:是為1,否則為0;ε取一個(gè)極小的值;x、y表示目標(biāo)真實(shí)邊界框相對(duì)于網(wǎng)格單元左上角坐標(biāo)的偏移值,w、h表示目標(biāo)真實(shí)邊界框?qū)挕⒏呦鄬?duì)于先驗(yàn)錨框?qū)?、高的縮放尺度表示預(yù)測(cè)框相對(duì)于網(wǎng)格單元左上角坐標(biāo)的偏移值表示預(yù)測(cè)框?qū)?、高相?duì)于先驗(yàn)錨框?qū)?、高的縮放尺度。其中,真實(shí)值可由式(6)計(jì)算:
其中:Gx、Gy、Gw、Gh分別表示目標(biāo)真實(shí)邊界框映射到特征圖上的中心點(diǎn)坐標(biāo)和寬、高。
不同于YOLOv3 中使用的均方誤差損失函數(shù)無(wú)法反映噪聲數(shù)據(jù)對(duì)網(wǎng)絡(luò)訓(xùn)練的影響,負(fù)對(duì)數(shù)似然損失函數(shù)可以對(duì)網(wǎng)絡(luò)訓(xùn)練過(guò)程中不一致的數(shù)據(jù)添加不確定性懲罰,從而使網(wǎng)絡(luò)從穩(wěn)定的數(shù)據(jù)中學(xué)習(xí)預(yù)測(cè)框的準(zhǔn)確位置,提高網(wǎng)絡(luò)對(duì)預(yù)測(cè)框坐標(biāo)位置估計(jì)的準(zhǔn)確程度。
YOLOv3 算法存在的第二個(gè)問(wèn)題是前景、背景復(fù)雜度不平衡,如圖4 所示,在船舶目標(biāo)檢測(cè)中,待檢測(cè)的船舶是前景,其他部分是背景,簡(jiǎn)單樣本的特點(diǎn)是距離近、尺寸大,與背景差異較大,容易區(qū)分;復(fù)雜樣本的特點(diǎn)是拍攝距離遠(yuǎn)、尺寸小,與背景極為相似,不容易識(shí)別。而且在上萬(wàn)個(gè)預(yù)測(cè)框中,最后只有一個(gè)預(yù)測(cè)框是最適合的,這種“萬(wàn)里挑一”的做法給網(wǎng)絡(luò)訓(xùn)練帶來(lái)極大的困難,網(wǎng)絡(luò)將過(guò)多的焦點(diǎn)專注于學(xué)習(xí)樣本數(shù)量多的幾類目標(biāo),而忽略了對(duì)樣本數(shù)量較少的目標(biāo)的特征的學(xué)習(xí),影響損失函數(shù)的梯度更新。
圖4 復(fù)雜度不平衡的樣本Fig.4 Samples with imbalanced complexity
YOLOv3 算法在置信度損失和類別概率損失中使用的傳統(tǒng)二值交叉熵函數(shù)為L(zhǎng)bce=-ln(pt),式中,pt表示概率。借鑒文獻(xiàn)[17]中對(duì)密集物體的檢測(cè)方法,在上式中加入動(dòng)態(tài)放縮因子,使損失函數(shù)能夠降低簡(jiǎn)單樣本的損失,集中訓(xùn)練數(shù)據(jù)中的復(fù)雜樣本。改進(jìn)后的損失函數(shù)如式(7)所示:
其中:(1-pt)γ表示動(dòng)態(tài)放縮因子;γ是可調(diào)超參數(shù),用來(lái)控制放縮比例,解決前景、背景的不平衡,本文取2;αt表示平衡變量,取值為(0,1),用來(lái)解決船舶樣本復(fù)雜度的不平衡,本文取0.3。
圖像中的前景屬于正樣本,背景屬于負(fù)樣本。正樣本中又分為簡(jiǎn)單樣本和復(fù)雜樣本,對(duì)于簡(jiǎn)單樣本,容易分類,輸出概率值大,復(fù)雜樣本不容易分類,輸出概率之小。對(duì)于簡(jiǎn)單樣本,(1-pt)γ的值會(huì)更小,得到的損失函數(shù)也更小,而復(fù)雜樣本得到的損失相對(duì)變更大;對(duì)于負(fù)樣本,預(yù)測(cè)概率值小的樣本損失比預(yù)測(cè)概率值大的損失要小得多,可以使損失函數(shù)更多地聚焦在復(fù)雜樣本的學(xué)習(xí)上,減少簡(jiǎn)單樣本的影響。由于正樣本占比例較小,而且負(fù)樣本相對(duì)比較容易進(jìn)行分類,所以使用一個(gè)比較小的平衡變量對(duì)正樣本進(jìn)行平衡。
在目標(biāo)檢測(cè)中使用邊界框真值與預(yù)測(cè)框的交并比(Intersection over Union,IoU)表示預(yù)測(cè)的準(zhǔn)確程度,但是當(dāng)兩個(gè)框沒(méi)有重合時(shí)會(huì)導(dǎo)致梯度為0,造成損失函數(shù)無(wú)法優(yōu)化。為了解決這個(gè)問(wèn)題,受文獻(xiàn)[18]的啟發(fā),對(duì)于任意的兩個(gè)檢測(cè)框,定義廣義交并比(Generalized Intersection over Union,GIoU)如式(8)所示:
其中:A、B表示任意兩個(gè)檢測(cè)框;C表示兩個(gè)檢測(cè)框的最小閉合凸面;(A∪B)表示兩個(gè)檢測(cè)框重疊部分的面積。則GIoU的損失函數(shù)可以表示為L(zhǎng)giou=1-GIoU。
所以,改進(jìn)后的總體損失函數(shù)為:
其中:Lcoor、Lconf、Lprob分別表示坐標(biāo)損失、置信度損失和類別概率損失;lbbox_scale=2-表示預(yù)測(cè)框尺度損失,w、h和W、H分別表示預(yù)測(cè)框和輸入圖片的寬和高;1obj表示網(wǎng)格中是否存在船舶目標(biāo),存在為1,不存在為0;P(c)表示船舶所屬的類別概率。
數(shù)據(jù)集在基于深度學(xué)習(xí)的目標(biāo)檢測(cè)中起著至關(guān)重要的作用,卷積神經(jīng)網(wǎng)絡(luò)從龐大的訓(xùn)練數(shù)據(jù)中學(xué)習(xí)目標(biāo)特征。由于監(jiān)督學(xué)習(xí)需要人工標(biāo)記標(biāo)簽,是一項(xiàng)費(fèi)時(shí)費(fèi)力的工作,所以獲得訓(xùn)練數(shù)據(jù)集極其困難。SeaShips[19]是第一個(gè)公開(kāi)的用于船舶目標(biāo)檢測(cè)的數(shù)據(jù)集,包含7 000 張6 個(gè)類別的船舶圖像。將數(shù)據(jù)集分為:訓(xùn)練集1 750 張、驗(yàn)證集1 750 張,測(cè)試集3 500張,分別對(duì)3 個(gè)子數(shù)據(jù)集中每個(gè)類別的船舶數(shù)量(GT)進(jìn)行統(tǒng)計(jì)如表1 所示,3 個(gè)子數(shù)據(jù)集的目標(biāo)數(shù)量分布相似,保證了網(wǎng)絡(luò)具有良好的泛化能力。
文獻(xiàn)[20]證明霧天、低照度條件會(huì)嚴(yán)重影響船舶目標(biāo)檢測(cè)的準(zhǔn)確率,為了增強(qiáng)網(wǎng)絡(luò)的泛化能力,緩解訓(xùn)練過(guò)程中的過(guò)擬合現(xiàn)象,提高算法在惡劣天氣條件下的檢測(cè)能力,在訓(xùn)練過(guò)程中使用數(shù)據(jù)增強(qiáng)技術(shù)擴(kuò)充樣本數(shù)量。除了使用水平翻轉(zhuǎn)、隨機(jī)平移和隨機(jī)剪切外,針對(duì)水上常見(jiàn)的霧天和低照度環(huán)境,但難以獲取大量惡劣天氣環(huán)境下的船舶圖片的事實(shí),使用基于大氣散射模型和Retinex 模型的模擬霧圖、模擬低照度圖技術(shù)。樣本增強(qiáng)后的效果如圖5所示。
表1 不同類別船舶目標(biāo)數(shù)量統(tǒng)計(jì)Tab.1 Statistics of numbers of different ship categories
圖5 數(shù)據(jù)增強(qiáng)Fig.5 Data augmentation
由于船舶目標(biāo)呈細(xì)長(zhǎng)狀,也就是邊界框的寬比高要大很多,而且不同類型船舶之間尺寸差異很大。YOLOv3原始設(shè)定的先驗(yàn)錨框尺寸主要面向自然界中通用目標(biāo)檢測(cè),不能滿足船舶目標(biāo)檢測(cè)的需要,所以需要重新對(duì)先驗(yàn)錨框進(jìn)行設(shè)計(jì)。不同于依賴人的先驗(yàn)知識(shí)設(shè)定的錨框尺寸,通過(guò)使用K-means聚類算法對(duì)數(shù)據(jù)集中所有已標(biāo)注的目標(biāo)邊界框進(jìn)行聚類,產(chǎn)生不同數(shù)量的先驗(yàn)錨框,可以使錨框與目標(biāo)邊界框更加匹配,從而提高檢測(cè)精度。不同聚類數(shù)目對(duì)應(yīng)的平均交并比如圖6所示。
圖6 不同聚類數(shù)目與平均交并比Fig.6 Different number of clusters and mean intersection over union
考慮到計(jì)算效率與準(zhǔn)確率的平衡,同時(shí)為了使產(chǎn)生的先驗(yàn)錨框平均分配到3個(gè)預(yù)測(cè)尺度,選擇產(chǎn)生9個(gè)先驗(yàn)錨框。最終確定的先驗(yàn)錨框尺寸經(jīng)歸一化后如表2 所示。將YOLOv3原始設(shè)計(jì)的先驗(yàn)錨框尺寸與本文重新設(shè)計(jì)的先驗(yàn)錨框尺寸進(jìn)行比較如圖7 所示,可以看到兩者的差異很大,說(shuō)明重新設(shè)計(jì)先驗(yàn)錨框的必要性。
表2 先驗(yàn)錨框尺寸Tab.2 Prior anchor box scales
圖7 不同錨框尺寸比較Fig.7 Comparison of different prior anchor box scales
在預(yù)測(cè)的后處理階段,YOLOv3 使用非極大值抑制(Non-Maximum Suppression,NMS)算法消除冗余的預(yù)測(cè)框,降低誤檢率。由于非極大值抑制算法會(huì)將和得分最高的預(yù)測(cè)框的交并比大于某個(gè)閾值的其他預(yù)測(cè)框直接置零,所以在有重合目標(biāo)的情況下會(huì)導(dǎo)致有目標(biāo)檢測(cè)失敗。為了改進(jìn)非極大值抑制算法硬閾值的缺點(diǎn),設(shè)置高斯軟閾值函數(shù)如式(10)所示:
其中:bi表示網(wǎng)絡(luò)預(yù)測(cè)出的一系列預(yù)測(cè)框;si表示預(yù)測(cè)框得分;M表示得分最高的預(yù)測(cè)框;D表示經(jīng)過(guò)非極大值抑制算法處理后保留的一系列預(yù)測(cè)框的集合,初始時(shí)將D設(shè)為空集;IoU表示交并比;σ取值為(0,1),本文取0.3。高斯軟閾值函數(shù)可以在得分最高的預(yù)測(cè)框和其他預(yù)測(cè)框的交并比越大時(shí)降低其他預(yù)測(cè)框的置信度,而不是粗暴地將其他預(yù)測(cè)框置零,從而緩解了目標(biāo)重合時(shí)的檢測(cè)失敗問(wèn)題。
本文實(shí)驗(yàn)使用的操作系統(tǒng)為ubuntu18.04,處理器型號(hào)為Intel Core i7-8700K,顯卡型號(hào)為NVIDIA GeForce GTX 1080 Ti,采用NVIDIA CUDA9.0加速工具箱。
本文中除了特別說(shuō)明以外,在網(wǎng)絡(luò)訓(xùn)練階段使用的部分實(shí)驗(yàn)參數(shù)如表3所示。
為了評(píng)價(jià)網(wǎng)絡(luò)的性能和說(shuō)明船舶目標(biāo)檢測(cè)網(wǎng)絡(luò)的有效性,選取下列評(píng)價(jià)指標(biāo)。
1)查準(zhǔn)率(Precision,P)和召回率(Recall,R):查準(zhǔn)率指網(wǎng)絡(luò)檢測(cè)到的正樣本數(shù)量占檢測(cè)到的所有樣本數(shù)量的比率;召回率指網(wǎng)絡(luò)檢測(cè)到的正樣本數(shù)量占標(biāo)記的真實(shí)樣本數(shù)量的比率。查準(zhǔn)率和召回率的計(jì)算公式為:
其中:真正樣本(True Positive,TP)表示檢測(cè)到的目標(biāo)類別與真實(shí)目標(biāo)類別一致的樣本數(shù)量;假正樣本(False Positive,F(xiàn)P)為檢測(cè)到的目標(biāo)類別與真實(shí)目標(biāo)類別不一致的樣本數(shù)量;假負(fù)樣本(False Negative,F(xiàn)N)為真實(shí)目標(biāo)存在但未被網(wǎng)絡(luò)檢測(cè)出來(lái)的樣本數(shù)量。
表3 實(shí)驗(yàn)參數(shù)設(shè)置Tab.3 Setting of experimental parameters
2)平均準(zhǔn)確率(Average Precision,AP)和平均準(zhǔn)確率均值(mean Average Precision,mAP):一個(gè)理想的目標(biāo)檢測(cè)網(wǎng)絡(luò)應(yīng)該在召回率增長(zhǎng)的同時(shí)查準(zhǔn)率保持在很高的水平,但現(xiàn)實(shí)情況是召回率的提高往往需要損失查準(zhǔn)率的值,所以通常情況下用查準(zhǔn)率-召回率(Precision-Recall,P-R)曲線來(lái)顯示目標(biāo)檢測(cè)器在準(zhǔn)確率和召回率之間的平衡。對(duì)于每一個(gè)船舶類別,該類別的平均準(zhǔn)確率定義為P-R曲線下方的面積;平均準(zhǔn)確率均值是所有類別的平均準(zhǔn)確率的均值。AP和mAP的計(jì)算公式為:
其中N表示所有目標(biāo)類別的數(shù)量。
3)幀率(Frames Per Second,F(xiàn)PS):目標(biāo)檢測(cè)網(wǎng)絡(luò)每秒鐘能夠檢測(cè)的圖片數(shù)量,用該指標(biāo)評(píng)價(jià)目標(biāo)檢測(cè)網(wǎng)絡(luò)的檢測(cè)速度。
為了獲得更高性能的訓(xùn)練模型,在網(wǎng)絡(luò)訓(xùn)練階段會(huì)使用多種有利于網(wǎng)絡(luò)訓(xùn)練的方法,這些方法對(duì)神經(jīng)網(wǎng)絡(luò)的影響效果如表4所示。其中,“√”表示使用了對(duì)應(yīng)的方法。由于原始的數(shù)據(jù)集樣本數(shù)量太少,所以直接使用YOLOv3進(jìn)行訓(xùn)練的準(zhǔn)確率比較低,同時(shí)由于原始的先驗(yàn)錨框尺寸與船舶目標(biāo)形狀差異較大,得到的預(yù)測(cè)框的交并比值也比較低,這說(shuō)明對(duì)船舶目標(biāo)的定位不夠準(zhǔn)確。使用了合成惡劣天氣數(shù)據(jù)增強(qiáng)方法之后,有效擴(kuò)充了訓(xùn)練樣本的數(shù)量,從而提高了網(wǎng)絡(luò)的魯棒性和泛化能力,使算法的準(zhǔn)確率提升了5.24 個(gè)百分點(diǎn)。在網(wǎng)絡(luò)訓(xùn)練時(shí)使用重新設(shè)計(jì)的先驗(yàn)錨框,與船舶的形狀更加匹配,使網(wǎng)絡(luò)的平均交并比提高了6.93 個(gè)百分點(diǎn),說(shuō)明網(wǎng)絡(luò)輸出的預(yù)測(cè)框與人工標(biāo)注的真實(shí)邊界框重合程度更高,對(duì)船舶的定位更加準(zhǔn)確,而且在與其他方法組合使用時(shí),網(wǎng)絡(luò)的平均交并比還會(huì)進(jìn)一步提升。在網(wǎng)絡(luò)的后處理階段,在傳統(tǒng)非極大值抑制算法中加入了高斯軟閾函數(shù),主要是為了解決重合目標(biāo)的漏檢測(cè)問(wèn)題。從表5可以看出,使用了改進(jìn)后的非極大值抑制算法可以提高算法的召回率,這意味著有一些傳統(tǒng)YOLOv3算法無(wú)法檢測(cè)出來(lái)的船舶目標(biāo)被檢測(cè)出來(lái),其中散裝貨船、礦砂船和漁船召回率提升較多,主要是在這三種類型的船舶相互重合的場(chǎng)景多。因?yàn)橛幸恍┲睾系拇氨徽_檢測(cè),也讓整個(gè)網(wǎng)絡(luò)的檢測(cè)精度有了略微的提高。使用了3種訓(xùn)練方法的組合對(duì)YOLOv3算法進(jìn)行訓(xùn)練,得到的模型比原始模型的檢測(cè)精度提升了5.85 個(gè)百分點(diǎn),平均交并比提升了6.86個(gè)百分點(diǎn),說(shuō)明了在網(wǎng)絡(luò)訓(xùn)練階段使用合成惡劣天氣數(shù)據(jù)增強(qiáng)、根據(jù)檢測(cè)對(duì)象重新設(shè)計(jì)先驗(yàn)錨框和加入高斯軟閾值函數(shù)的非極大值抑制算法的組合訓(xùn)練方法能夠有效提升網(wǎng)絡(luò)的性能。
表4 不同改進(jìn)方法對(duì)算法性能的提升Tab.4 Performance improvement of algorithms by using different improvement methods
表5 使用不同非極大值抑制算法的船舶召回率 單位:%Tab.5 Recall of ships using different NMS algorithms unit:%
在使用網(wǎng)絡(luò)組合訓(xùn)練方法的基礎(chǔ)上,在網(wǎng)絡(luò)預(yù)測(cè)層加入對(duì)預(yù)測(cè)框的不確定性回歸使網(wǎng)絡(luò)整體性能提升了6.81 個(gè)百分點(diǎn),平均交并比提高5.2 個(gè)百分點(diǎn),這證明了加入預(yù)測(cè)框不確定性回歸減小了YOLOv3 算法的定位誤差。如果只使用改進(jìn)的二值交叉熵?fù)p失函數(shù)進(jìn)行網(wǎng)絡(luò)訓(xùn)練,也會(huì)使YOLOv3 算法的檢測(cè)精度提高3.93 個(gè)百分點(diǎn),平均交并比有小幅提升,說(shuō)明使用改進(jìn)后的損失函數(shù)可以有效提高算法的性能。
最后,使用所提改進(jìn)方法的組合模型進(jìn)行網(wǎng)絡(luò)訓(xùn)練,本文將該模型稱為增強(qiáng)YOLOv3,實(shí)驗(yàn)結(jié)果顯示增強(qiáng)YOLOv3相較于使用單獨(dú)改進(jìn)方法的模型,算法性能均有提升,主要原因是每一項(xiàng)改進(jìn)方法都針對(duì)傳統(tǒng)YOLOv3 算法的某一問(wèn)題進(jìn)行改進(jìn),而使用組合的改進(jìn)方法可以有效解決傳統(tǒng)YOLOv3 算法在船舶目標(biāo)檢測(cè)任務(wù)中存在的問(wèn)題,取得較好的檢測(cè)效果。實(shí)驗(yàn)結(jié)果表明,與傳統(tǒng)YOLOv3 算法相比,增強(qiáng)YOLOv3 算法的檢測(cè)精度提升了21.12%,平均交并比提升了27.60%。
為了驗(yàn)證加入預(yù)測(cè)框不確定性回歸后算法對(duì)目標(biāo)定位誤差是否有改進(jìn),實(shí)驗(yàn)在YOLOv3的最后預(yù)測(cè)層加入預(yù)測(cè)框不確定性信息,對(duì)預(yù)測(cè)框坐標(biāo)的損失函數(shù)使用負(fù)對(duì)數(shù)似然損失函數(shù)替換均方誤差損失函數(shù),而對(duì)置信度和類別概率仍然使用傳統(tǒng)的二值交叉熵?fù)p失函數(shù),所得模型稱為帶有預(yù)測(cè)框不確定性信息 的 YOLOv3(YOLOv3 with Prediction Box Uncertainty Information,YOLOv3-PBUI)。傳統(tǒng)YOLOv3 算法在最后的每個(gè)尺度的預(yù)測(cè)層輸出的張量維度為S×S×(5+n)×3,其中S×S是對(duì)特征圖劃分的網(wǎng)格單元的數(shù)量,5指的是5個(gè)預(yù)測(cè)信息,3表示每個(gè)網(wǎng)格單元預(yù)測(cè)的3個(gè)預(yù)測(cè)框,n表示共有n個(gè)目標(biāo)類別。加入預(yù)測(cè)框不確定性回歸信息后,YOLOv3-PBUI每個(gè)尺度的預(yù)測(cè)層輸出的張量維度變?yōu)镾×S×(9+n)×3,本文中共有6個(gè)船舶類別,所以n=6,輸出的張量維度為S×S×45。
分別對(duì)傳統(tǒng)YOLOv3 算法和YOLOv3-PBUI 算法進(jìn)行訓(xùn)練,得到訓(xùn)練好的模型。使用測(cè)試集進(jìn)行測(cè)試,設(shè)置IoU 閾值為0.5,得到的TP 值和FP 值如表6所示,圖8顯示了部分樣本的檢測(cè)結(jié)果。由圖8 可以看到,對(duì)于一些非常小的船舶目標(biāo),傳統(tǒng)YOLOv3算法無(wú)法準(zhǔn)確檢測(cè),而改進(jìn)后的算法可以準(zhǔn)確對(duì)這些小船舶目標(biāo)進(jìn)行檢測(cè),從而增加了算法的TP值,說(shuō)明改進(jìn)后的算法可以對(duì)更多的正樣本準(zhǔn)確檢測(cè);對(duì)于部分船舶目標(biāo),雖然傳統(tǒng)YOLOv3算法可以檢測(cè)出該船舶,但是錯(cuò)誤識(shí)別了該船舶的類型,從而導(dǎo)致了FP值很高,而改進(jìn)后的YOLOv3-PBUI算法可以同時(shí)準(zhǔn)確定位船舶位置和識(shí)別船舶類型,比傳統(tǒng)YOLOv3算法更加魯棒。同時(shí),因?yàn)楦倪M(jìn)后的YOLOv3-PBUI算法可以更好地學(xué)習(xí)目標(biāo)的位置信息,所以可以消除對(duì)船舶的錯(cuò)誤定位。從表6 可以看出,加入預(yù)測(cè)框不確定性回歸之后的YOLOv3-PBUI 算法FP 值降低了35.42%,而TP 值也提高了1.83%,這是改進(jìn)模型檢測(cè)精度提高的主要原因。對(duì)于海事視頻監(jiān)控來(lái)講,F(xiàn)P值降低說(shuō)明能夠準(zhǔn)確識(shí)別船舶類型,這對(duì)重點(diǎn)關(guān)注某一類型的船舶或防止船舶碰撞是有幫助的,而TP值增加說(shuō)明可以準(zhǔn)確檢測(cè)出更多的船舶數(shù)量,降低漏檢的可能性,這對(duì)統(tǒng)計(jì)船舶交通流量和監(jiān)控船舶行為十分必要。
圖8 YOLOv3和YOLOv3-PBUI的檢測(cè)結(jié)果Fig.8 Detection results of YOLOv3 and YOLOv3-PBUI
為了驗(yàn)證改進(jìn)后的二值交叉熵?fù)p失函數(shù)是否有助于解決傳統(tǒng)YOLOv3算法存在的類別不平衡問(wèn)題,實(shí)驗(yàn)用改進(jìn)的二值交叉熵?fù)p失函數(shù)替換了傳統(tǒng)二值交叉熵?fù)p失函數(shù),得到的實(shí)驗(yàn)結(jié)果如表7所示。在訓(xùn)練集中,客船的樣本數(shù)量是最少的,不足漁船和礦砂船樣本數(shù)量的1/5,不足所有訓(xùn)練樣本的5%,存在著樣本類別的不平衡問(wèn)題,同時(shí)訓(xùn)練樣本中有很多圖像中只有一個(gè)或幾個(gè)極小的船舶目標(biāo),而傳統(tǒng)YOLOv3算法在3個(gè)尺度的預(yù)測(cè)層共產(chǎn)生10 647個(gè)預(yù)測(cè)框,存在著嚴(yán)重的前景、背景不平衡問(wèn)題,但是實(shí)驗(yàn)結(jié)果顯示改進(jìn)后的模型對(duì)客船這一類船舶的檢測(cè)準(zhǔn)確率提高最多,提高了8.08個(gè)百分點(diǎn),而對(duì)樣本數(shù)量相對(duì)少的船舶類別的檢測(cè)準(zhǔn)確率都有不同程度的提高,說(shuō)明改進(jìn)后的損失函數(shù)可以使網(wǎng)絡(luò)專注于這些比較困難的樣本的學(xué)習(xí),提高了網(wǎng)絡(luò)的性能。而測(cè)試樣本中大多數(shù)小船舶目標(biāo)都是漁船,而且漁船的測(cè)試樣本數(shù)量是最多的,雖然改進(jìn)后的網(wǎng)絡(luò)對(duì)漁船的檢測(cè)性能有略微的降低,但是從整體上看改進(jìn)的二值交叉熵?fù)p失函數(shù)對(duì)解決類別不平衡問(wèn)題還是有效果的,對(duì)漁船的性能損失可以通過(guò)使用其他改進(jìn)方法進(jìn)行彌補(bǔ)。
表7 使用不同損失函數(shù)的船舶平均精度 單位:%Tab.7 mAP of ships using different loss functions unit:%
為了進(jìn)一步說(shuō)明本文所提方法的優(yōu)越性,增強(qiáng)YOLOv3算法將與兩種典型的基于背景建模的目標(biāo)檢測(cè)方法進(jìn)行比較分析,即低秩復(fù)原(Low Rank Recovery,LLR)算法[21]和魯棒主成分分析(Robust Principal Component Analysis,RPCA)算法[22]。由于傳統(tǒng)的船舶目標(biāo)檢測(cè)往往作為船舶目標(biāo)跟蹤的前序步驟,所以需要使用視頻數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。本文選擇了兩段采集于武漢二七長(zhǎng)江大橋的監(jiān)控視頻,分別使用三種檢測(cè)算法進(jìn)行檢測(cè),得到的結(jié)果如圖9所示。由于傳統(tǒng)目標(biāo)檢測(cè)算法使用人工設(shè)計(jì)的特征表達(dá),特征設(shè)計(jì)往往比較簡(jiǎn)單,所以無(wú)法對(duì)不同船舶的類別進(jìn)行識(shí)別。水面動(dòng)態(tài)背景會(huì)導(dǎo)致傳統(tǒng)檢測(cè)算法將水面檢測(cè)為前景,造成誤檢測(cè)非常多。背景建模方法獲得的前景往往很難是一個(gè)閉合的整體,所以容易導(dǎo)致對(duì)同一個(gè)船舶的多個(gè)檢測(cè),使檢測(cè)的準(zhǔn)確率下降。而基于深度學(xué)習(xí)的增強(qiáng)YOLOv3算法在網(wǎng)絡(luò)訓(xùn)練中只學(xué)習(xí)前景的特征而忽略了背景,所以有效解決了傳統(tǒng)目標(biāo)檢測(cè)算法存在的問(wèn)題,而且可以識(shí)別出不同類型的船舶,更符合智能視頻監(jiān)控的需要。
圖9 增強(qiáng)YOLOv3算法與傳統(tǒng)方法檢測(cè)結(jié)果比較Fig.9 Detection result comparison of the enhanced YOLOv3 algorithm and traditional methods
本文還與目標(biāo)檢測(cè)中常用的幾種深度學(xué)習(xí)算法進(jìn)行了對(duì)比實(shí)驗(yàn),包括單次目標(biāo)檢測(cè)算法YOLOv2、SSD 和兩次目標(biāo)檢測(cè)算法Faster R-CNN。實(shí)驗(yàn)使用同一訓(xùn)練集對(duì)每種算法進(jìn)行訓(xùn)練,網(wǎng)絡(luò)訓(xùn)練的相關(guān)參數(shù)都使用對(duì)應(yīng)論文中建議的參數(shù),在網(wǎng)絡(luò)訓(xùn)練過(guò)程中輸入圖像的尺寸也使用論文中建議的輸入尺寸,其中Faster R-CNN 算法限制輸入圖像的最長(zhǎng)邊為1 000 像素值,并對(duì)輸入圖像等比例縮放。通過(guò)官方評(píng)估算法使用同一測(cè)試集對(duì)算法性能進(jìn)行評(píng)估,各檢測(cè)算法的性能如表8 所示,由于SSD 算法的官方評(píng)估算法沒(méi)有提供對(duì)單種類別的平均精度,所以表8中沒(méi)有列出相關(guān)結(jié)果。具有代表性的4種檢測(cè)算法的檢測(cè)效果如圖10所示。
表8 不同目標(biāo)檢測(cè)網(wǎng)絡(luò)性能比較Tab.8 Performance comparison of different object detection networks
實(shí)驗(yàn)結(jié)果表明,本文所提出的增強(qiáng)YOLOv3 算法表現(xiàn)出了較好的性能,對(duì)每一種船舶類別的檢測(cè)效果相對(duì)平均,而另外4 種目標(biāo)檢測(cè)算法對(duì)于樣本數(shù)量最少的客船檢測(cè)效果,相比樣本數(shù)量較多的船舶類別的檢測(cè)效果都有極大的差距,這說(shuō)明增強(qiáng)YOLOv3 算法很好地解決了樣本類別不平衡的問(wèn)題。圖10的檢測(cè)效果顯示增強(qiáng)YOLOv3算法能夠準(zhǔn)確對(duì)圖像中的船舶目標(biāo)進(jìn)行定位和種類識(shí)別,而其他3 種算法漏檢測(cè)、對(duì)同一個(gè)船舶的多重檢測(cè)和錯(cuò)誤識(shí)別船舶類型的現(xiàn)象嚴(yán)重,這說(shuō)明增強(qiáng)YOLOv3 算法對(duì)船舶目標(biāo)的定位更加準(zhǔn)確,原因是增強(qiáng)YOLOv3 算法增加了對(duì)預(yù)測(cè)框的不確定性回歸,可以使網(wǎng)絡(luò)更好地學(xué)習(xí)目標(biāo)的位置信息,加入高斯軟閾值函數(shù)后的非極大值抑制算法也比傳統(tǒng)非極大值抑制算法更加穩(wěn)定。作為兩次目標(biāo)檢測(cè)算法,F(xiàn)aster R-CNN 受到檢測(cè)速度的制約,無(wú)法達(dá)到實(shí)時(shí)檢測(cè)的要求,而YOLOv3 算法在所有算法中表現(xiàn)出了最快的檢測(cè)速度,這也是單次目標(biāo)檢測(cè)算法最大的優(yōu)點(diǎn)。增強(qiáng)YOLOv3 算法因?yàn)樾枰A(yù)測(cè)更多的信息,所以檢測(cè)速度略有下降,但仍然快于其他檢測(cè)算法,可以滿足實(shí)時(shí)檢測(cè)的需要。增強(qiáng)YOLOv3 算法使用了分辨率更高的輸入圖像,這是因?yàn)榉直媛矢叩膱D像包含更多的細(xì)節(jié)特征,有助于網(wǎng)絡(luò)的學(xué)習(xí),可以在一定程度上獲得檢測(cè)性能的提升。
圖11展示了在不同場(chǎng)景下增強(qiáng)YOLOv3算法的檢測(cè)效果,在低照度條件和霧天環(huán)境下都能準(zhǔn)確檢測(cè)出船舶目標(biāo),這得益于在網(wǎng)絡(luò)訓(xùn)練過(guò)程中使用了合成惡劣天氣圖像的數(shù)據(jù)增強(qiáng)方法,提高了網(wǎng)絡(luò)在各種天氣條件下的穩(wěn)定性和泛化能力。增強(qiáng)YOLOv3算法在船舶目標(biāo)有大部分重疊的情況下和船舶目標(biāo)與通航背景極為相似的情況下也都可以準(zhǔn)確對(duì)船舶進(jìn)行檢測(cè),適用于各種復(fù)雜場(chǎng)景下的船舶目標(biāo)檢測(cè)。通過(guò)多項(xiàng)實(shí)驗(yàn)表明,本文所提出的增強(qiáng)YOLOv3算法檢測(cè)精度可以達(dá)到87.74%,遠(yuǎn)超其他目標(biāo)檢測(cè)算法,對(duì)船舶航行中遇到的多種復(fù)雜場(chǎng)景都有良好的檢測(cè)的結(jié)果,是兼具檢測(cè)精度和檢測(cè)速度的船舶目標(biāo)檢測(cè)算法。
圖10 不同目標(biāo)檢測(cè)算法的檢測(cè)結(jié)果Fig.10 Detection results of different object detection algorithms
圖11 增強(qiáng)YOLOv3算法在不同場(chǎng)景下的船舶目標(biāo)檢測(cè)結(jié)果Fig.11 Ship detection results of the enhanced YOLOv3 algorithm under different scenes
傳統(tǒng)YOLOv3 目標(biāo)檢測(cè)網(wǎng)絡(luò)無(wú)法準(zhǔn)確檢測(cè)復(fù)雜場(chǎng)景下的船舶目標(biāo)。本文通過(guò)在YOLOv3 網(wǎng)絡(luò)的預(yù)測(cè)層加入對(duì)預(yù)測(cè)框的不確定性回歸并重新改進(jìn)了損失函數(shù),使用組合網(wǎng)絡(luò)訓(xùn)練方法提出了適合船舶目標(biāo)檢測(cè)的增強(qiáng)YOLOv3 算法。實(shí)驗(yàn)結(jié)果表明預(yù)測(cè)框不確定性回歸有效降低了對(duì)船舶目標(biāo)的定位誤差,改進(jìn)的二值交叉熵?fù)p失函數(shù)解決了樣本類別和前景、背景不平衡的問(wèn)題,有助于算法性能的提升。在網(wǎng)絡(luò)訓(xùn)練階段使用重新設(shè)計(jì)的先驗(yàn)錨框提高了預(yù)測(cè)框位置的準(zhǔn)確度,使用數(shù)據(jù)增強(qiáng)策略提高算法在各種天氣條件和復(fù)雜通航背景下的檢測(cè)能力,增強(qiáng)網(wǎng)絡(luò)泛化能力和魯棒性,加入高斯軟閾值函數(shù)的非極大值抑制算法有效解決了船舶重合時(shí)容易漏檢測(cè)的問(wèn)題。通過(guò)與其他算法的對(duì)比實(shí)驗(yàn)驗(yàn)證了增強(qiáng)YOLOv3 算法有效平衡了檢測(cè)的精度和速度,適合復(fù)雜場(chǎng)景下的船舶目標(biāo)檢測(cè)。