秦溧矯
(西南交通大學(xué)計(jì)算機(jī)與人工智能學(xué)院,成都 611756)
我國內(nèi)河航運(yùn)體系發(fā)達(dá),是全國經(jīng)濟(jì)社會(huì)發(fā)展的重要支撐。水上交通參與者數(shù)量大,但參與者安全意識(shí)不足,超載、超速,大船、小船量級(jí)差別大,發(fā)生事故可能造成嚴(yán)重后果,因而需要提前對(duì)船只進(jìn)行判斷、監(jiān)測以便進(jìn)行決策和指揮,及早預(yù)防事故發(fā)生[1]。現(xiàn)有的系統(tǒng)建設(shè)成本高、監(jiān)控范圍有限、有效信息提取困難,不能滿足行業(yè)需求。
船舶檢測是一種目標(biāo)檢測任務(wù),目前基于深度學(xué)習(xí)的目標(biāo)檢測算法主要分為兩大類,一是基于候選區(qū)域的兩階段目標(biāo)檢測器,優(yōu)勢在于識(shí)別與定位準(zhǔn)確性高,其中主流的如Faster R-CNN[2];二是單階段的目標(biāo)檢測器,優(yōu)勢在于識(shí)別推理速度快,其中主流的如YOLO[3]系列、SSD[4]。
相比于普遍的目標(biāo)檢測,船舶檢測具有尺度更大的難點(diǎn)。尺度問題可以從兩方面進(jìn)行分析,一是物理層面,相比于交通場景下的小轎車與大貨車、車與人的尺度大小差異,航道場景下的大貨船與小漁船在尺度跨度上大得多,模型檢測更困難;二是視角層面,內(nèi)河航道錯(cuò)綜復(fù)雜,監(jiān)控視角多變,即使同類型船舶的尺度變化也極大。一般的目標(biāo)檢測算法、小目標(biāo)檢測算法都只針對(duì)普通大小物體以及均為小目標(biāo)的場景,目前檢測算法沒有針對(duì)如內(nèi)河航道場景跨尺度極大的問題提出解決方案。因此在船舶檢測中需要額外關(guān)注超大目標(biāo)、超小目標(biāo),模型應(yīng)具備跨尺度檢測的能力。
針對(duì)上述問題,基于YOLOv5s 模型提出了一種改進(jìn)的YOLO-CsShip(YOLO Cross-scale Ship)船舶檢測算法。針對(duì)超小目標(biāo),通過在骨干網(wǎng)絡(luò)低層引入自適應(yīng)空間并行卷積模塊[5],多尺度感受野自適應(yīng)地提取特征,捕獲多尺度局部上下文信息。針對(duì)超大目標(biāo),在骨干網(wǎng)絡(luò)高層引入卷積自注意力混合模塊[6],卷積與自注意力通過共享相同的操作方式形成混合模塊,有效提取圖像中大目標(biāo)特征。目前公開的數(shù)據(jù)集場景單一、尺度變化不大,因此本文自制了內(nèi)河航道船舶數(shù)據(jù)集InlandShips。和YOLOv5s相比,改進(jìn)的YOLO-CsShip 船舶檢測算法在滿足檢測速度的要求下,在公開的兩個(gè)數(shù)據(jù)集SeaShips[7]、McShips[8]及本文提出的InlandShips上明顯提升船舶檢測的平均精度,有效檢測出超小、超大的目標(biāo),具備良好的跨尺度檢測能力。
目前,兩階段、單階段目標(biāo)檢測器均應(yīng)用在船舶檢測的研究中。Wang 等[9]在Faster R-CNN上,通過增加一個(gè)側(cè)路徑融合網(wǎng)絡(luò)融合高層與低層特征加強(qiáng)特征提取能力。Gao等[10]將YOLOv4作為基本框架,引入閾值注意力模塊抑制復(fù)雜背景與噪聲的不利影響,嵌入通道注意力模塊到改進(jìn)的BiFPN中作為特征金字塔網(wǎng)絡(luò)融合特征。
目前的船舶檢測方法將通用目標(biāo)檢測任務(wù)進(jìn)行改進(jìn),針對(duì)船舶自身特點(diǎn)做了一定優(yōu)化,但是檢測能力仍有不足。對(duì)于場景復(fù)雜,尺度變化大的內(nèi)河航道場景數(shù)據(jù),特別是針對(duì)近河道的超大型船舶,并未提出針對(duì)性解決方案。
小目標(biāo)檢測是目標(biāo)檢測的一個(gè)研究方向,目前有許多專門針對(duì)小目標(biāo)檢測的方法。Li等[11]在SSD 的基礎(chǔ)上,提出輕量級(jí)的特征融合模塊,提高了SSD 的小物體檢測性能。Benjumea 等[12]提出YOLO-Z 專用于小目標(biāo)檢測,該方法在YOLOv5的基礎(chǔ)上引入ResNet50替換骨干網(wǎng)絡(luò),將頸部替換為FPN并使用更高分辨率的特征圖進(jìn)行特征融合輸出,以特定檢測小目標(biāo)。
小目標(biāo)檢測方法多樣,在特定的小目標(biāo)數(shù)據(jù)集上取得優(yōu)異的檢測效果,然而此類方法目的都只在于提升小目標(biāo)的檢測能力。對(duì)于內(nèi)河航道船舶檢測中常規(guī)尺度、超大尺度的目標(biāo),應(yīng)該保留更大的感受野,便于定位大目標(biāo)。
因此本文兼顧超小目標(biāo)與超大目標(biāo),形成了一個(gè)跨尺度檢測性能表現(xiàn)優(yōu)異,在模型參數(shù)、計(jì)算速度上也應(yīng)滿足實(shí)際場景部署的檢測模型YOLO-CsShip。該方法通過自適應(yīng)空間并行卷積模塊增強(qiáng)淺層特征提取能力,豐富空間信息,提高小目標(biāo)檢測精度,通過卷積自注意力混合模塊擴(kuò)大感受范圍,提升超大目標(biāo)檢測能力,具備跨尺度船舶檢測能力。
YOLOv5s 由Backbone、Neck、Head 三部分組成?;赮OLOv5s 改進(jìn)的YOLO-CsShip 模型結(jié)構(gòu)如圖1 所示。在Backbone 中,首先低層由自適應(yīng)空間并行卷積模塊(ASPConv)[5]提取小目標(biāo)的細(xì)節(jié)空間特征信息,接著使用三組Conv 結(jié)合C3 結(jié)構(gòu)提取一般目標(biāo)的特征信息,最后在骨干網(wǎng)絡(luò)高層,使用卷積自注意力混合模塊(ACmix)[6]進(jìn)一步提取超大目標(biāo)的特征信息。通過骨干網(wǎng)絡(luò)提取的信息來自不同網(wǎng)絡(luò)級(jí)別,并且同時(shí)具備超小目標(biāo)和超大目標(biāo)的豐富空間特征信息。最后通過Neck融合各層特征,Head輸出結(jié)果。
圖1 YOLO-CsShip架構(gòu)
內(nèi)河航道場景下存在全局視角攝像頭,遠(yuǎn)岸處船舶像素占比小,因此需要額外關(guān)注小目標(biāo)船舶檢測。此前的專注于小目標(biāo)檢測方式通常都會(huì)以更長的推斷時(shí)間、可能檢測到的大目標(biāo)對(duì)象為代價(jià)[12],并不適用于內(nèi)河航道場景下的船舶檢測。
神經(jīng)網(wǎng)絡(luò)淺層具有豐富的空間信息,因此在Backbone低層使用自適應(yīng)空間并行卷積模塊,使模型自適應(yīng)學(xué)習(xí)原始圖像中目標(biāo)的空間信息,有效提高網(wǎng)絡(luò)捕獲小目標(biāo)的建模能力。該模塊的并行卷積運(yùn)算可以捕獲多尺度局部上下文信息,在不影響大目標(biāo)的特征提取的同時(shí)提升小目標(biāo)特征提取能力。
如圖2 所示,在自適應(yīng)空間并行卷積模塊中,首先將輸入的特征圖X0進(jìn)行一次Conv 操作,Conv 模塊由Conv2d、BatchNorm2d、SiLu 組成,然后將特征圖X分割為兩個(gè)部分X1和X2,其計(jì)算如公式(1)。對(duì)X1進(jìn)行Conv 操作及Conv2d 操作;對(duì)X2進(jìn)行Conv2d 操作,對(duì)變換后的X1與X2進(jìn)行合并,再與X相加得到X3,計(jì)算如公式(2),目標(biāo)的多尺度局部上下文信息被自適應(yīng)融合在不同大小的感受野中,有效構(gòu)建目標(biāo)對(duì)象與環(huán)境的空間信息,獲得有利于小目標(biāo)檢測的空間信息,最后將得到的X3進(jìn)行下采樣得到指定分辨率的特征圖,并執(zhí)行進(jìn)一步特征提取得到輸出X4,計(jì)算如公式(3)。
其中:chunk 表示分割操作,⊕表示Concat 操作,d表示下采樣。
圖2 自適應(yīng)空間并行卷積示意圖
船舶目標(biāo)中存在著大量的超大目標(biāo),從類型上看,存在貨船等大型船舶,從視角上看,存在距離攝像頭極近的超大船舶。上述情況的船舶目標(biāo)在圖片中像素占比極大,模型無法有效獲取完整的有效特征信息,導(dǎo)致漏檢或錯(cuò)檢為其它類別,因此增強(qiáng)大目標(biāo)的特征提取十分有必要。
YOLOv5s 網(wǎng)絡(luò)高層用于提取大目標(biāo)特征的模塊使用傳統(tǒng)卷積操作,而傳統(tǒng)卷積操作提取特征存在一定的局限,卷積濾波器權(quán)重聚合的局部感受野形成的內(nèi)在特征增加了歸納偏置。相比于卷積,自注意力模塊對(duì)相關(guān)像素對(duì)之間的相似度函數(shù)動(dòng)態(tài)計(jì)算權(quán)重,該方式能使注意力模塊自適應(yīng)地聚焦于不同區(qū)域并捕獲更多的信息特征。因此本文在Backbone 網(wǎng)絡(luò)高層使用卷積自注意力混合模塊以加強(qiáng)大目標(biāo)特征提取能力。
如圖3 所示,該模塊首先使用一個(gè)特征學(xué)習(xí)模塊,執(zhí)行1*1的卷積投影輸入特征映射,得到一個(gè)豐富的特征集,接著按照自注意力和卷積兩種不同模式對(duì)中間特征進(jìn)行重用與聚合,通過此方式使得網(wǎng)絡(luò)高層提取大目標(biāo)特征時(shí)具備卷積和自注意力兩個(gè)模塊的優(yōu)點(diǎn),并且有效避免了兩次執(zhí)行高復(fù)雜度的投影操作。
圖3 卷積自注意力混合模塊示意圖
目前公開的內(nèi)河船舶數(shù)據(jù)集較少,本文實(shí)驗(yàn)的數(shù)據(jù)集包含兩個(gè)開源數(shù)據(jù)集、一個(gè)自制數(shù)據(jù)集。
其中Shao 等[7]提出的SeaShips 數(shù)據(jù)集包含31455 張圖片,公開7000 張圖片(SeaShips7000)用于本文實(shí)驗(yàn),共6個(gè)類別,分別為礦砂船、散貨船、普通貨船、集裝箱船、漁船、客船。Zheng等[8]提出的McShips數(shù)據(jù)集包含14709張圖片,其中公開McShips-lite 含7996 張圖片用于本文實(shí)驗(yàn),分為2個(gè)類別,軍用船與民用船。
分析上述兩個(gè)船舶數(shù)據(jù)集,數(shù)據(jù)簡單且具有以下特征:背景簡單,船舶角度、尺度變化均不大。由于訓(xùn)練的模型檢測能力有限,并不符合實(shí)際場景下變化多樣的情況。本文自制了一個(gè)內(nèi)河船舶數(shù)據(jù)集,數(shù)據(jù)來源于10 個(gè)攝像頭下不同角度尺度的監(jiān)控視頻,數(shù)據(jù)集命名為InlandShips,數(shù)據(jù)實(shí)例如圖4 所示。該數(shù)據(jù)集共包含5238 張圖片,以8∶1∶1 劃分為訓(xùn)練集、驗(yàn)證集、測試集。
本文以在目標(biāo)檢測中常用的精度P(precision)、召回率R(recall)、mAP@0.5 和mAP@0.5:0.95 作為指標(biāo),對(duì)模型性能進(jìn)行評(píng)估。各指標(biāo)計(jì)算過程見公式(4)~公式(6):
其中:TP表示真實(shí)框被預(yù)測出的檢測框數(shù)量;FP表示預(yù)測框與真實(shí)框不匹配的框;FN表示沒有檢測出來的真實(shí)框;N代表類別,AP表示P以R為權(quán)重的加權(quán)平均,mAP中的“m”表示對(duì)所有類別對(duì)應(yīng)的AP求均值。mAP@0.5 是IoU閾值為0.5 情況下的均值平均精度,mAP@0.5:0.95為IoU為0.5~0.95 下每隔0.05 計(jì)算的均值平均精度的平均值。
圖4 InlandShips數(shù)據(jù)示例
本文在Ubuntu18.04 操作系統(tǒng)、PyTorch 框架下訓(xùn)練所有模型。采用兩個(gè)NVIDIA GeForce 2080 RTX TI 的GPU,運(yùn)行環(huán)境為CUDA 11.4,Python3.7。
以YOLOv5s 模型為基準(zhǔn)模型,對(duì)上述改進(jìn)方法進(jìn)行對(duì)比實(shí)驗(yàn)、分析。以3.1 小節(jié)所述評(píng)價(jià)指標(biāo)分別評(píng)估了SeaShips7000,McShips-lite,InlandShips 數(shù)據(jù)集上YOLOv5s 及YOLO-CsShip模型的性能。訓(xùn)練階段,輸入網(wǎng)絡(luò)的大小為640 × 640,批量大小為8。采用SGD 優(yōu)化器,初始學(xué)習(xí)率為0.01,學(xué)習(xí)率衰減系數(shù)為0.1,動(dòng)量為0.937。考慮到InlandShips 數(shù)據(jù)集圖片數(shù)量有限,使用隨機(jī)水平翻轉(zhuǎn)、縮放、霧化,添加高斯噪聲,更改明亮度等數(shù)據(jù)增強(qiáng)方式。結(jié)果如表1所示。
實(shí)驗(yàn)數(shù)據(jù)表明,與YOLOv5s 模型相比,YOLO-CsShip在參數(shù)量、模型大小上有所增大,但在精度、召回率、mAP上都有所提升,mAP@0.5在公開數(shù)據(jù)集SeaShips7000、McShips-lite 上分別提升了2.4、2.6個(gè)百分點(diǎn)。在本文提出的數(shù)據(jù)集InlandShips 上,提升了4.6 個(gè)百分點(diǎn),最終達(dá)到86.9%檢測準(zhǔn)確率。
SeaShips7000中相鄰編號(hào)的圖片存在大量的類似場景,視角單一,船舶尺度變化小,使用YOLO-CsShip算法能針對(duì)漁船、遠(yuǎn)距離小目標(biāo)提升檢測性能。McShips-lite數(shù)據(jù)集中軍用船、民用船尺度差別大,但拍攝視角單一,YOLO-CsShip算法跨尺度檢測能力強(qiáng),能有效提升檢測精度。本文提出的InlandShips視角多樣,船舶尺度跨度大,YOLO-CsShip算法針對(duì)其中存在的超大目標(biāo)以及部分小目標(biāo)都有很好的檢測能力。
圖5~圖7 是YOLOv5s 和YOLO-CsShip 算法在InlandShips 數(shù)據(jù)集上檢測結(jié)果對(duì)比。對(duì)于每一組圖片,左側(cè)為YOLOv5s 模型檢測的結(jié)果,右側(cè)為YOLO-CsShip 模型檢測的結(jié)果。如圖5所示,在全局視角下,YOLO-CsShip 在檢測小目標(biāo)能力上有所提升,改善了小目標(biāo)漏檢的問題。如圖6 所示,在局部視角下,YOLO-CsShip 有效檢測出超大目標(biāo)船舶,對(duì)于漏檢及遮擋目標(biāo)檢測亦有所改善,如圖7所示。
表1 不同數(shù)據(jù)集在基準(zhǔn)模型、改進(jìn)模型上的對(duì)比
圖5 小目標(biāo)船舶漏檢改進(jìn)對(duì)比圖
圖6 大目標(biāo)船舶漏檢改進(jìn)對(duì)比圖
圖7 大目標(biāo)船舶遮擋漏檢改進(jìn)對(duì)比圖
為驗(yàn)證本文改進(jìn)算法的有效性,本節(jié)在InlandShips 數(shù)據(jù)集上進(jìn)行自適應(yīng)空間并行卷積模塊、卷積自注意力混合模塊的消融實(shí)驗(yàn)。結(jié)果如表2所示,自適應(yīng)空間并行卷積模塊在YOLOv5s模型的基礎(chǔ)上mAP@0.5提升了2.3個(gè)百分點(diǎn),精度提升5個(gè)百分點(diǎn)。這證明了自適應(yīng)空間并行卷積模塊在一定程度上可以提升目標(biāo),特別是小目標(biāo)特征的空間表達(dá)能力,緩解特征在往網(wǎng)絡(luò)深層時(shí)的信息衰減與丟失,從而提高小目標(biāo)的檢測能力。添加卷積自注意力混合模塊后,mAP@0.5 提升了2.9 個(gè)百分點(diǎn),精度提升4.1 個(gè)百分點(diǎn),召回率提升0.9 個(gè)百分點(diǎn)。卷積自注意力混合模塊通過卷積與自注意力結(jié)合,在特征提取網(wǎng)絡(luò)高層有效提取大目標(biāo)全局特征,InlandShips 數(shù)據(jù)集中大目標(biāo)占比大,因此該模塊能有效提升檢測精度。結(jié)合兩種改進(jìn)以及數(shù)據(jù)增強(qiáng)等方式,YOLO-CsShip 模型的精度提升4.6個(gè)百分點(diǎn),召回率提升1.9個(gè)百分點(diǎn),mAP@0.5提升4.6 個(gè)百分點(diǎn),mAP@0.5:0.95 提升4.5 個(gè)百分點(diǎn)。充分說明YOLO-CsShip 模型多種改進(jìn)模塊及數(shù)據(jù)增強(qiáng)等是有效的改進(jìn)方式。
表2 各模塊在InlandShips數(shù)據(jù)集上的消融實(shí)驗(yàn)結(jié)果
針對(duì)內(nèi)河航道場景下船舶檢測的跨尺度檢測難點(diǎn),自制場景豐富的InlandShips 數(shù)據(jù)集,提出基于YOLOv5s 的YOLO-CsShip 檢測算法,該算法具備跨尺度的檢測能力,能有效檢測出內(nèi)河航道場景下各船舶目標(biāo)。YOLO-CsShip 算法通過改進(jìn)網(wǎng)絡(luò)淺層,引入自適應(yīng)空間并行卷積模塊捕獲多尺度局部上下文信息,提升小目標(biāo)檢測能力。通過在網(wǎng)絡(luò)深層引入卷積自注意力混合模塊加強(qiáng)大目標(biāo)特征提取能力。在公開的SeaShips7000、McShips-lite 數(shù)據(jù)集及本文自制的InlandShips 數(shù)據(jù)集上實(shí)驗(yàn)證實(shí),提出的YOLO-CsShip 算法具備良好的跨尺度檢測能力,有效改善全局場景下小目標(biāo),超大船舶目標(biāo)檢測漏檢、錯(cuò)檢問題。在InlandShips 數(shù)據(jù)集上mAP@0.5 提升4.6%。該研究可用于內(nèi)河航道場景下的監(jiān)測系統(tǒng)中,實(shí)時(shí)監(jiān)控船舶運(yùn)行情況,及時(shí)反映航行中存在的安全隱患,對(duì)實(shí)現(xiàn)航道船舶安全運(yùn)行的智能化監(jiān)測發(fā)揮重要作用。