光睿智,安博文,潘勝達
上海海事大學 信息工程學院,上海 201306
伴隨著國內(nèi)航運事業(yè)的迅猛發(fā)展,內(nèi)河航道愈發(fā)擁擠,給海事部門的監(jiān)管帶來許多困難。隨著無人機技術的快速進步,采用無人機航拍影像進行航道船舶目標檢測已經(jīng)成為較有成效的輔助手段,其優(yōu)勢在于覆蓋面廣,可以實現(xiàn)目標航道無死角的監(jiān)控。然而,無人機影像中船舶目標較小,尺度變換較大,具有易抖動、易模糊和航道兩邊背景特征復雜的問題,進行船舶目標檢測的難度較高。傳統(tǒng)的目標檢測算法一般基于人工設計特征,如HOG[1]、SIFT[2]、SURF[3]等,因此在實際使用時檢測效果不夠理想,且泛化能力較弱。
現(xiàn)今計算機視覺領域中基于深度學習的目標檢測算法已經(jīng)在目標檢測方向得到廣泛的應用。這類算法若根據(jù)網(wǎng)絡結構上的差異進行劃分,依照是否有候選區(qū)域網(wǎng)絡分為單階段和兩階段兩類。單階段目標檢測算法的檢測精度普遍較之兩階段算法稍差,但其一般具有更快的檢測速度,更適合工程應用。此外,依據(jù)不同的邊框回歸策略,基于深度學習的目標檢測算法也分成基于錨框(anchor-base)和無錨框(anchor-free)兩類。錨框是由數(shù)據(jù)集預處理產(chǎn)生的一種超參數(shù),通過預先規(guī)范檢測框的形狀來提高網(wǎng)絡召回率和精度。雖然使用錨框可以在一定程度上的優(yōu)化算法性能,但是其存在并不符合人眼視覺特性,也不利于算法的泛化。因此,設計基于無錨框的算法實現(xiàn)目標檢測已經(jīng)成為該領域的重要方向。對于單階段目標檢測算法,基于錨框的算法有YOLOV3[4]、SSD[5]、RetinaNet[6]等,無錨框的算法也有FoveaBox[7]、FCOS[8]等算法。
作為目標檢測中的重要分支,基于深度學習的航拍圖像船舶檢測是當前目標檢測領域的研究熱點之一。但航拍影像中目標普遍偏小、物體尺度變化較大,因此需要對這類算法進行一些有針對性的改進。在小目標檢測精度提升方面,裴偉等[9]使用基于SSD 的方法,改進了算法的特征提取網(wǎng)絡和檢測網(wǎng)絡的結構;史文旭等[10]在SSD算法上增加特征增強模塊,同時采用候選框匹配的方式改善檢測框的定位問題。這兩種方式均在目標數(shù)據(jù)集獲得了較好效果,但受限于算法中特征提取網(wǎng)絡的分類性能,其小目標檢測精度仍有待提高。對于待測目標大范圍尺度變換方面,謝學立等[11]基于RetinaNet 算法,使用網(wǎng)絡旁路構造動態(tài)感受野改善尺度變換問題;李曉光等[12]使用改進的Faster R-CNN[13]算法進行多尺度檢測;Gui等[14]在Faster R-CNN中添加尺度變換模塊,對殘差網(wǎng)絡的輸出特征進行處理。這三者均在檢測對象尺度變換較大的情況下實現(xiàn)算法精度提高,但其定位匹配方式均基于錨框,需要借助較多的超參數(shù),限制了算法遷移。對于待測目標背景復雜方面,王健林等[15]基于R-FCN 網(wǎng)絡通過在殘差塊中混合卷積尺度提高檢測精度;于野等[16]使用改進的A-FPN網(wǎng)絡改善特征提取方式,提高了復雜背景下的算法性能。這類算法著重于提高船舶檢測準確率,但算法復雜度較高。
由上述分析可知,面對航道船舶目標較小、尺度變換大、背景復雜等問題,目前存在的大部分單階段算法的檢測精度稍顯不足,兩階段算法雖提高了準確率卻使網(wǎng)絡結構復雜化,同時這兩類算法多數(shù)基于錨框?qū)崿F(xiàn)回歸策略。為此,本文提出了一種無錨框的單階段目標檢測算法FoveaSDet。首先,F(xiàn)oveaSDet算法為提高小目標和整體檢測精度,在算法特征提取部分提出了基于殘差網(wǎng)絡[17](Residual Network,ResNet)的骨干網(wǎng)SEResNeXt-I,該網(wǎng)絡在ResNeXt[18]的基礎上改進了輸入數(shù)據(jù)的特征提取結構,同時也優(yōu)化了網(wǎng)絡特征層中數(shù)據(jù)的空間關聯(lián)性;其次,為改善尺度變換對檢測精度的影響,同時實現(xiàn)無錨框的邊框回歸,算法中引入了FoveaBox中的Foveahead模塊實現(xiàn)目標分類和定位;最后,為增加復雜背景下的定位精度和檢測框的交并比(Intersection over Union,IOU),使用完全交并比損失[19](Complete-IOU,CIOU)作為邊框回歸損失。
本文所提出的FoveaSDet 算法主要由三個模塊構成:特征提取網(wǎng)絡、無錨框檢測模塊和損失函數(shù)。
特征提取網(wǎng)絡,即骨干網(wǎng),負責提取圖像中包含的不同層次的特征信息。旨在提高FoveaSDet 算法整體的檢測精度及小目標檢測性能,本文優(yōu)化了基于ResNeXt的骨干網(wǎng)及網(wǎng)絡塊的內(nèi)部結構兩個部分,并稱改進后的骨干網(wǎng)為SEResNeXt-I。同時,為了適配多尺度檢測,進一步提升算法的整體性能,在骨干網(wǎng)中增加了特征金字塔網(wǎng)絡[20](Feature Pyramid Network,F(xiàn)PN)結構。
無錨框檢測模塊旨在拋卻傳統(tǒng)算法基于錨框的邊框回歸的策略,使得算法的檢測方式更符合人眼視覺,預設的超參數(shù)更少,并擁有更好的泛化能力。本文選擇Foveahead 實現(xiàn)該目標,其優(yōu)勢在于該算法使用了語義分割的思想設計正負樣本區(qū)域劃分,并與FPN 相結合,用簡潔的方法實現(xiàn)了無錨框的邊框回歸。
損失函數(shù)對算法的學習能力有決定性影響,可將其分為兩類:分類損失函數(shù)及邊框損失函數(shù)。針對本文要實現(xiàn)的船舶檢測任務,選擇分類損失函數(shù)FocalLoss 實現(xiàn)分類,同時引入邊框損失函數(shù)CIOU。
FocalLoss用以緩解數(shù)據(jù)集樣本不平衡的問題,CIOU旨在進一步挖掘圖像特征信息與樣本真值(GroundTruth,GT)之間的聯(lián)系,提升算法檢測框的定位精度。
FoveaSDet 算法實現(xiàn)目標檢測的流程如圖1 所示。首先將待測圖片輸入特征提取網(wǎng)絡,通過SEResNeXt-I及FPN完成對圖片基本特征的提取,獲得5層不同尺度的特征映射,每層的數(shù)據(jù)均需通過Foveahead 分成兩個子網(wǎng)絡,分別完成目標的分類和檢測框的預測。最后在各層完成檢測之后按尺度融合,并對檢測框進行軟非極大值抑制[21](Soft Non-Maximum Suppression,Soft-NMS)獲得最后的檢測結果。
圖1 FoveaSDet船舶檢測流程Fig.1 Process of FoveaSDet ship detection
殘差網(wǎng)絡作為現(xiàn)今常用的特征提取網(wǎng)絡,其特點在于通過在網(wǎng)絡塊中構造恒等映射的方式,緩解了深層網(wǎng)絡學習能力退化的問題。同時在殘差塊中增加批量歸一化[22](Batch Normalization,BN)層及Relu 激活函數(shù),降低了學習成本,并且改善了網(wǎng)絡的訓練環(huán)境。然而,即便殘差網(wǎng)絡具有很多良好的特性,其對于小目標的特征提取能力稍顯遜色。為此,本文對骨干網(wǎng)的網(wǎng)絡結構和殘差塊的內(nèi)部結構兩部分內(nèi)容進行了改進。
首先,本文優(yōu)化了骨干網(wǎng)用來處理輸入數(shù)據(jù)的網(wǎng)絡結構,旨在減少輸入特征損失,保留更多特征信息,提高對小目標的檢測精度,其改變?nèi)鐖D2(a)所示。左側(cè)為主流的殘差網(wǎng)絡結構ResNeXt101,在進入殘差網(wǎng)絡前使用步長為2的7×7卷積處理輸入圖片。雖然這種方式使用大小為7的卷積核來提高感受野,但是較大的步長仍使網(wǎng)絡在處理輸入數(shù)據(jù)時便損失了許多圖片特征。為了減少特征損失,并且保留充足的感受野,將網(wǎng)絡結構改進為圖2(a)右側(cè)所示。將7×7卷積核拆分成3個3×3卷積核,同時步長變?yōu)?,輸入通道縮減為16。這樣既能保留網(wǎng)絡的空間感知能力,又增加了輸出特征數(shù)量。此外,通過降低網(wǎng)絡的初始通道數(shù),后續(xù)網(wǎng)絡輸入?yún)?shù)也隨之減少。隨后在網(wǎng)絡結構中增加了2 個跳躍連接結構,這使得網(wǎng)絡中添加了更多的非線性映射,同時令不同層次的特征在塊之間流動。本文將完成結構改進后的網(wǎng)絡稱為ResNeXt-I。當設定其網(wǎng)絡深度為101時,用ResNeXt-I101 表示,文中的骨干網(wǎng)名稱均采用此類方式命名。
圖2 骨干網(wǎng)結構和殘差塊結構改進Fig.2 Improvement of backbone and residual block structure
其次,為了提高網(wǎng)絡層中不同特征的利用率,建立通道之間的依賴關系,同時改善網(wǎng)絡全局的檢測精度,本文對網(wǎng)絡殘差塊的內(nèi)部結構進行改進,將壓縮激勵[23](Squeeze and Excitation,SE)模塊引入殘差塊中,其樣式如圖2(b)所示。SE模塊能使特征提取網(wǎng)絡在學習過程中不斷更新各個特征通道的重要程度,篩選出重要特征并拋棄掉無用的特征,這一步也剔除了冗余的參數(shù),降低網(wǎng)絡整體的計算開銷。SE模塊可分為壓縮和激勵兩個部分。首先為壓縮部分,對于ResNeXt殘差塊輸出的數(shù)據(jù),使用全局平均池化完成對二維數(shù)據(jù)的空間壓縮,將特征通道壓縮成一個實數(shù),該實數(shù)映射了對應特征通道的全局表達。令該值為zc,通道的高為h,寬為w,二維平面的數(shù)據(jù)為xc(i,j),則壓縮部分的表達式為:
完成壓縮操作后,算法將要實現(xiàn)的是激勵操作。對特征通道壓縮后獲得了當前通道的特征權重,為了平衡數(shù)據(jù)集整體的特征權重,使用全連接層建立不同通道的相關性。此外,為降低計算量,第一個全連接層將輸入降低為原來1/16,隨之再經(jīng)過一個全連接層用以實現(xiàn)特征通道在整體上的關聯(lián)。這種方式也為輸入輸出增添了更多非線性元素,有助于更好地呈現(xiàn)特征。在完成激勵操作后,通過Sigmoid激活函數(shù)完成歸一化,并通過縮放操作將獲得的權重加權到各個特征上,完成SE 模塊的整體流程。
最后,在特征提取網(wǎng)絡的末端使用FPN結構。FPN在原始的特征映射上進行步長為2 的下采樣,縮放出4個不同尺度的特征層。每個特征層不僅包含原始輸入層的特征信息,還與經(jīng)過上采樣的下一層特征層相融合。這使得每層特征映射既包含了當前尺度的特征細節(jié),又結合了來自上層的更抽象的語義信息。這4層特征與原始特征一起構成了5個不同尺度的特征映射,其輸出數(shù)據(jù)將用于之后的無錨框模塊,完成目標的分類和定位。相較而言,進行過兩點改進并添加FPN 結構的SEResNeXt-I 網(wǎng)絡比單純的ResNeXt 有更低的分類誤差。
傳統(tǒng)的基于錨框的目標檢測算法,在檢測前首先通過聚類等手段計算與數(shù)據(jù)集相適應的N組錨框,隨后在檢測時根據(jù)錨框的大小進行邊框回歸。為實現(xiàn)無錨框邊框回歸策略,同時更好地處理船舶檢測時尺度變換較大的問題,引入FoveaBox算法中Foveahead的實現(xiàn)無錨框檢測,具體的檢測流程如圖3所示。Foveahead首先對特征施行尺度劃分。對于由FPN結構輸出的5類尺寸的特征層,F(xiàn)oveahead設定每層用于檢測的基礎大小為Sl,Sl∈{322,642,1282,2562,5122} 。該檢測面積可以通過常數(shù)η控制縮放,使得每層的尺寸范圍為[Sl/η2,Sl?η2]。本文設定η=2,這會使不同特征層的尺度范圍存在相交的現(xiàn)象。因此Foveahead將根據(jù)GT的尺寸,在一個或多個符合尺度的特征層中完成檢測并融合結果。
圖3 Foveahead檢測流程Fig.3 Process of Foveahead prediction
在確定各個特征層的尺度劃分后,F(xiàn)oveahead 將特征映射劃分為正、負樣本兩部分,輔助完成目標的分類和回歸。Foveahead 先通過樣本的GT 計算出在第l個尺度的特征映射中,位于目標中心的位置(c′x,c′y),其公式如式(2)所示:
樣本劃分完成后,對于正樣本區(qū)域上每一個坐標,F(xiàn)oveahead都將回歸其分類結果和檢測框。因各個特征層上坐標點位于不同尺度的特征映射,需要將坐標變換到原始圖像。隨后引入損失函數(shù)計算分類結果及檢測框的定位結果,并衡量與GT 的差異。最后通過大小為0.05 的置信度閾值篩選出排名前1 000 的檢測框,并使用閾值為0.5的Soft-NMS獲得最終的檢測結果。
對于FoveaSDet 算法的分類損失,本文采用的是FocalLoss,旨在緩解正負樣本區(qū)域的不平衡,降低分類誤差,其公式為:
式中,y為GT的標簽,代表樣本正負,y′為檢測分類置信值。α用于區(qū)分樣本的重要性,γ用來分辨樣本的難易度,此兩者共同約束了訓練時獲得的損失,本文設定α=0.5,γ=4。對于容易訓練的樣本,其損失Lfl相對較小,反之難于訓練的樣本的分類損失將會放大。
FoveaSDet算法的邊框回歸損失選取CIOU,該損失函數(shù)屬于IOU 損失函數(shù)中的一類。CIOU 損失繼承了IOU 損失具有的尺度不變性、非負性等優(yōu)點,同時也克服了IOU損失無法反映檢測框之間狀態(tài)的缺點,該損失函數(shù)的優(yōu)勢為:
(1)衡量了IOU=0 時的情況,使不相交的目標之間也存在梯度損失進行計算。
(2)考慮了邊框重合時的情況,通過計算中心點距離使檢測框更好地趨向GT中心移動。
(3)引入寬高比概念,使得檢測框和GT有更相近的矩形框形狀。
若令檢測框為P,GT 框為T,則IOU 的公式為式(5)所示:
為評估在框的集合S中不相交的框P和T,設C為S集合中包含P、T的最小框,則廣義交并比損失函數(shù)[24](Generalized-IOU,GIOU)的公式為:
該公式計算出C中P、T以外的部分與C的比值,修正了IOU 損失的計算值,可以更好反映檢測框相交的情況,可將其視作IOU的下界。
在GIOU 基礎上,為了提升損失函數(shù)的整體性能,CIOU 引入了對檢測框與GT 框的中心點距離和寬高比的計算,在相交面積和形狀比例兩方面實現(xiàn)對檢測框的約束。設ρ為中心點的距離,b,bgt為兩框的中心點,c為最小包圍框C的對角線距離,α為比例平衡系數(shù),v為一致性系數(shù),則CIOU損失的表示式為:
該算式首先將GIOU 設定的區(qū)域比值轉(zhuǎn)化為距離比值,這能更好地反映兩框之間的關系。其次,該方法降低了訓練所需的計算量,使得函數(shù)收斂得更快,邊框能較快地移動到目標位置。最后,為更好地獲得邊框形狀,進一步提高檢測結果,CIOU增加參數(shù)v來評估兩框一致性,同時使用α控制尺度及梯度移動方向,規(guī)范邊框的收斂樣式。
本文采用的數(shù)據(jù)集源自于大疆M100無人機在黃浦江上空的實景拍攝,共5 743 張圖片,分辨率均大于1 280×720,包含船舶和背景兩類,其樣本示例如圖4 所示。相較于目前的許多公開數(shù)據(jù)集而言,本文數(shù)據(jù)集的檢測難度較高,目標的尺度會隨無人機的航跡發(fā)生變化,船舶目標較小且樣本數(shù)量偏少。通過考慮上述因素,選擇擴大訓練集的比例,將數(shù)據(jù)集的訓練集、驗證集和測試集劃分比例為7∶1∶2,同時將數(shù)據(jù)集標注為COCO格式方便進行更細致的結果展示。
圖4 數(shù)據(jù)集樣本示例Fig.4 Samples of dataset
本文實驗在Ubuntu16.04 操作系統(tǒng)下完成,算法部署于Pytorch1.1框架,使用RTX2080Ti進行訓練及測試,并基于CUDA10.0 及CUDNN7.3 完成計算加速和算法優(yōu)化。
本文在訓練時采取了一系列數(shù)據(jù)增強[25]手段,旨在改善部分特征的展現(xiàn)形式,提高算法最終的檢測精度。首先,通過對樣本進行上下、左右翻折,圖像隨機旋轉(zhuǎn)和抖動,圖像扭曲模糊及亮度調(diào)整等操作,完成了數(shù)據(jù)集的增廣。這些手段也能使訓練出的權重更加魯棒,抗干擾失真的能力更強。其次,在訓練中增加了多尺度訓練、隨機剪裁等技巧。多尺度訓練通過在訓練時縮放輸入數(shù)據(jù)改變算法輸入,既提高了算法的訓練速度,又增強了魯棒性。輸入圖像的隨機剪裁變相擴大了數(shù)據(jù)集的樣本數(shù),也使樣本展現(xiàn)的形式更加豐富。最后,使用預熱學習率(warm-up)的方式設定學習率,提高了算法學習的上限。
此外,為減少超參數(shù)及訓練樣本數(shù)據(jù)差異對算法的影響,在對各類算法進行測試時均未使用預訓練權重,旨在單純測試算法在設定環(huán)境下的學習能力。本文算法選取隨機梯度下降法完成梯度計算,初始學習率為0.001,動量為0.9,衰減系數(shù)為0.000 1,迭代輪數(shù)為24輪。
本文使用平均準確率(Average Precision,AP)、召回率(Recall)、交并比(IOU)及PR曲線來評估算法檢測結果。平均準確率展示算法的檢測精度;召回率表征樣本被正確檢測的概率;交并比作為衡量檢測精度的門限,影響邊框回歸與檢測精度的關系;PR 曲線展示不同IOU 閾值下準確率和召回率之間的比例關系,該曲線閉合區(qū)域的面積數(shù)值即為對應算法的平均準確率。準確率P、召回率R和平均準確率AP的公式如式(8)、(9)所示:
其中,NTP表示算法檢測正確的正樣本數(shù),NFP表示算法檢測錯誤的正樣本數(shù),兩者相和為總的正樣本數(shù),NFN指代檢測錯誤的負樣本數(shù)。
將FoveaSDet 的骨干網(wǎng)和損失函數(shù)部分進行消融實驗,旨在測試算法對小目標的檢測優(yōu)勢及其邊框定位性能。首先對骨干網(wǎng)的性能進行測試,主要比較SEResNeXt-I 和殘差網(wǎng)絡對小目標檢測精度APS、網(wǎng)絡中所含參量及Flops。當骨干網(wǎng)深度為101,分組數(shù)為32且寬度為4 時,SEResNeXt-I 與各網(wǎng)絡的對比結果展示在表1中。
表1 骨干網(wǎng)對算法性能影響Table 1 Influence of backbone on algorithm performance
由表1中可知,將骨干網(wǎng)從ResNeXt改進為ResNeXt-I時,小目標檢測精度提高了約0.7%。增加SE 模塊后,SEResNeXt-I 小目標精度相較原版ResNeXt 提高6.4%,其中SE 模塊貢獻約5.7%的準確率增益。SEResNeXt-I通過改變網(wǎng)絡結構,并使用SE模塊進行特征篩選,兩者相結合降低了網(wǎng)絡整體的參量。
隨后測試邊框損失CIOU損失對FoveaSDet算法目標檢測性能的影響。為了衡量在較高IOU 閾值下邊框回歸的檢測精度,使用IOU 閾值為0.75 的AP 及邊框平均召回率進行評估。將CIOU損失與L1[26]損失、GIOU損失比較,其結果如表2所示。經(jīng)測試證明采用CIOU對算法的整體性能有一定提高,其檢測精度提升了2.9%,平均召回率上升了1.5%。使用CIOU 損失改善了網(wǎng)絡的訓練效率,同時也對算法檢測精度提升做出了貢獻。
表2 邊框損失函數(shù)對算法性能影響Table 2 Influence of bounding box loss function on algorithm performance%
消融實驗的測試結果證明,本文改進所得的骨干網(wǎng)及邊框損失兩個模塊均在原有基礎上提高了算法的檢測精度。骨干網(wǎng)SEResNeXt-I 在提高小目標檢測精度的同時降低了網(wǎng)絡參量,損失函數(shù)CIOU為算法的邊框定位提供了增益。
將FoveaSDet算法與基于錨框的算法SSD、YOLOV3、RetinaNet,無錨框的算法FCOS 及FoveaBox 進行比較,其測試結果如表3所示。FoveaSDet在使用網(wǎng)絡深度為101,分組數(shù)為32且寬度為4時的骨干網(wǎng)SEResNeXt-I101-32×4d時,其在整體AP上相較于使用ResNeXt101-32×4d的FoveaBox上升了4.9%。對于高IOU判決下的檢測精度,兩算法的差異更為明顯,F(xiàn)oveaSDet算法的AP75較后者提高了約8.6%,同時對小目標的準確率APS也提高了約6.2%,各項性能均實現(xiàn)了對FoveaBox 的超越。隨后比較FoveaSDet 算法使用L1、GIOU 和CIOU 回歸損失的性能差異。GIOU相比L1損失對于算法整體AP均有提升,而算法采用CIOU 相較于GIOU 而言雖然各項數(shù)值提升較小,但改善了算法的訓練及收斂情況,其測試結果受數(shù)據(jù)集及骨干網(wǎng)性能影響。最后分析FoveaSDet算法的計算效率。在骨干網(wǎng)相同的情況下,該算法相較于FoveaBox的幀率提高了23%,在使用SEResNeXt-I骨干網(wǎng)后,其幀率相較ResNeXt 版本降低了0.5 至1 幀。雖然SEResNeXt-I 使用SE 模塊提高了檢測性能,同時壓縮了網(wǎng)絡參數(shù),但其較為復雜的數(shù)據(jù)處理方式仍對檢測速率產(chǎn)生了影響。
將FoveaSDet 與常用的一些單階段檢測算法,如YOLOV3和SSD算法進行比較,本文算法的AP較其中性能最好的SSD512提升了約9.6%。與同樣使用Focal-Loss 進行分類的RetinaNet 相比,本文算法在整體精度上也有較大提升,同時擁有更快的檢測速率。相較于另一種較好的無錨框單階段檢測算法FCOS,其AP比之高了2.2%,檢測速率也與之基本持平。
圖5顯示FoveaSDet算法在使用不同骨干網(wǎng)的情況下,與表3中其余算法在IOU閾值分別為0.5和0.75時的PR曲線,該圖表明本文算法相較于其他算法在檢測精度和召回率兩部分都有一定優(yōu)勢。圖6展示了FoveaSDet算法對測試集部分數(shù)據(jù)的檢測結果。從圖中可以看出,本文算法在航道兩邊的背景極為復雜,光線、陰影、視角及船舶尺度因素各不相同的情況下,仍能很好地實現(xiàn)船舶的目標檢測,其對于小目標的檢測效果較好。并且FoveaSDet算法在尺度變換較大并且背景較復雜的情況下,檢測框的定位良好。
圖5 兩種閾值IOU下PR曲線比較Fig.5 Comparison of PR curves under two thresholds IOU
圖6 FoveaSDet航道船舶目標檢測樣例Fig.6 Samples of FoveaSDet channel target detection
表3 多種算法船舶檢測精度及召回率Table 3 Multiple algorithms for ship detection accuracy and recall rate
圖7展示了在不同環(huán)境下,YOLOV3、SSD與Fovea-SDet 三種算法的檢測結果。圖中錯檢漏檢的部分用紅框標注,檢測框偏移等問題用黃框標出。對于不同背景分布、光照環(huán)境不同、船舶數(shù)量尺度不一的四類圖片中,YOLOV3 和SSD 因精度等問題出現(xiàn)了一定的錯檢漏檢情況,同時伴有檢測框堆疊的情況。相較而言,F(xiàn)oveaSDet算法在相同場景下實現(xiàn)了更好的檢測結果,其檢測框的定位相對較好。對小目標檢測精度和檢測框定位精度的提升得益于算法對骨干網(wǎng)和邊框回歸損失的改進。
圖7 三種算法對不同環(huán)境場景檢測結果比較Fig.7 Comparison of prediction results of three algorithms for different environmental scenarios
本文提出了一種單階段的無錨框目標檢測算法FoveaSDet,旨在解決復雜背景下船舶目標小、尺度變換大、難以檢測定位的問題,提高對航拍航道船舶小目標的檢測精度。對于船舶目標較小的特點,改善了特征提取網(wǎng)絡的結構,并在殘差塊內(nèi)增加SE模塊實現(xiàn)對于小目標提升;針對目標尺度變換較大的問題,使用Foveahead無錨框檢測模塊實現(xiàn)多尺度檢測;針對檢測框難以定位的問題,使用了CIOU 損失函數(shù)予以改善,使檢測框的定位精度更高,提升算法的整體性能。經(jīng)過實驗證實,F(xiàn)oveaSDet 算法能夠很好地實現(xiàn)航道船舶檢測功能,算法的魯棒性和泛化能力較強,可以推廣到更廣泛的應用場景。下一階段的任務為使FoveaSDet 算法更為輕量化,需要提高其檢測速率,使其能部署在邊緣計算設備上,更好地實現(xiàn)落地應用。