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