文/駱雙龍 孫慶峰 朱闖 王仁君
水路運輸的運輸成本較低,運輸量較大,在全球貿易中的占比不斷提高,內河運輸也在經濟發展中占有重要地位。隨著經濟發展與國家的支持,港口與船舶的建設都有了快速的發展,監控攝像頭的布置不僅有利于港口管理而且為機器視覺奠定了基礎。人工智能技術的大力發展帶動了基于神經網絡的機器視覺活動的發展,其中對目標檢測與識別的應用比較廣泛,借鑒車牌識別的應用,船舶舷號的檢測識別也具有一定的研究價值,但是,船舶舷號與車牌不盡相同,主要表現在船舶舷號涂裝方式不同,涂裝位置不固定,字體大小不統一,這導致清晰船舶舷號圖片獲取難度高、相關研究較少。文章使用基于CNN的Yolov5s模型對船舶舷號進行檢測,通過對Yolov5s模型加入SE注意力機制以及與Transform er結合的BoTNet注意力機制,提高檢測準確率。
1.1 Yolov5s模型介紹。Yolo最早是在2016年提出來的,隨著Yolo不斷改進,其檢測效果也逐漸提高。Yolov5模型[1-5]是由Ultralytics公司在2020年公開發布的,它是基于Yolov3[6]為基礎改進而來,根據不同深度分為Yolov5s、Yolov5m、Yolov5l、Yolov5x四個模型。Yolov5s主要有四個部分,分別為輸入端、主干網絡、頸部以及輸出端。其中Yolov5s深度小,能更好地應用在算力有限的移動設備和數據集較小的訓練上。在輸入端為了提高對數據集小目標檢測的準確性,對圖片進行隨機裁剪、排布達到數據增強的效果,另外使用自適應圖片縮放與錨框計算對輸入圖片批量歸一化,還具有圖像數據預處理功能。主干網絡主要結構有Conv模塊、C3模塊、SPP模塊,Conv模塊是對圖像卷積提取特征值,C3模塊提高特征值的提取能力通過增加網絡深度和感受野,SPP模塊是主干網絡引入頸部的池化層。頸部使用了FPN特征金字塔結構,通過上采樣和下采樣操作將不同層次的特征圖融合到一起,生產多尺度的金字塔,以提高目標檢測準確率。
1.2 Yolov5s-SE模型。SE[7-8]注意力機制主要包含兩部分操作,首先是壓縮,輸入特征圖為W×H×C時,通過全局平均池化對輸入的特征進行壓縮,特征圖壓縮為1×1×C的向量。最后是激勵,通過一對全連接層和激活函數,對壓縮后的特征進行非線性映射和調整,學習特征之間的權重關系,這使得SE模塊能夠自適應選擇和強調重要特征,提高對特征的辨別能力,對映入SE注意力機制的模型命名為Yolov5s-SE模型。
1.3 Yolov5s-BoTNet模型。YOLOv5s主干特征提取網絡為CNN網絡,由于其具有平移不變性與局部性,因此缺乏全局建模長距離建模的能力,將自然語言處理領域的Transform er框架[9-10]與CNN進行融合形成CNN+Transform er架構即命名為Yolov5s-BoTNet,充分利用兩者的優點,提高目標檢測效果。Yolov5s-BoTNet利用了Transform er架構的多頭自注意力,使其應用在圖像分類、目標檢測和實例分割的計算機視覺任務中。其原理如圖1,是在ResNet的最后三個瓶頸模塊中用多頭自注意力(MHSA)替換空間卷積,使得目標檢測方面顯著改善了基線,同時還減少了參數。然而Transform er架構中的MHSA與Yolov5s-BoTNet中的MHSA是有些區別的,其表現在歸一化上,Transform er使用分層標準化,而Yolov5s-BoTNet使用批量標準化。非線性激活數量不盡相同,Transformer使用一個非線性激活,Yolov5s-BoTNet使用了3個非線性激活。

圖1 多頭注意力機制替換原理圖
2.1 船舶數據集構建。本文采用的數據集來自不同渠道,主要由Seaship公開數據集以及龍船社區的船員朋友們“隨手拍”渠道構建,篩選出具有舷號船舶圖片2023張,對數據集按照9:1的比例劃分訓練集與驗證集,使用Labelimg標注工具標注。
2.2 實驗設置。本文實驗硬件與開發環境在移動設備上進行,實驗環境為:(1)中央處理器(cpu):Intel core i7-7700,(2)顯卡類型:NVIDIAGTX1060(6G),(3)Cuda版本:11.3,(4)Pytorch版本:1.11.0。實驗參數設置應用普遍使用的學習率、循環率、學習率動量等,在訓練輪次中設置為100輪,批量大小受到GPU顯卡的影響設置為8。
為驗證Yolov5s模型對船舶舷號的檢測效果以及改進后Yolov5s-SE模型、Yolov5s-BoTNet模型在船舶檢測方面的效果,使用準確率(P)、召回率(R)對結果進行評估。
其中,TP代表檢測正確的結果數量,FN表示撿漏的數量,FP表示誤檢測結果數量。測試結果如表1所示。

表1 三種模型對比結果
從準確率與召回率衡量指標來看,Yolov5s模型對船舶舷號檢測效果比較好,加入了SE注意力機制的Yolov5s-SE模型,在檢測準確率上有所提升,而融合了Transformer架構的Yolov5s-BoTNet模型在準確率和召回率上表現最佳。
其中對船舶舷號檢測效果最佳的Yolov5s-BoTNet模型的指標如圖2所示,檢測效果如圖3所示。

圖2 Yolov5s-BoTNet模型指標

圖3 檢測效果圖
本文使用基于CNN的Yolov5s模型對船舶舷號進行檢測,檢測效果比較好,并引入了不同的注意力機制對Yolov5s模型進行改進,通過對比結果發現加入注意力機制對準確率的提升有很大幫助。Yolov5s-BoTNet模型的精確度達到了93.95%,檢測效果較佳。該改進模型對船舶舷號識別、建立船舶信息系統、船舶安全航行、依托機器視覺進行船舶管理等方面有一定的幫助。