?

基于ZYNQ 的輕量化YOLOv5聲吶圖像目標檢測算法及實現

2024-04-01 07:02趙冬冬謝墩翰梁榮華郭新新
光電工程 2024年1期
關鍵詞:聲吶注意力卷積

趙冬冬,謝墩翰,陳 朋*,梁榮華,沈 伊,郭新新

1 浙江工業大學計算機科學與技術學院,浙江 杭州 310023;

2 中國科學院深??茖W與工程研究所,海南 三亞 572000

1 引 言

地球上海洋總面積約為3.6 億平方千米,超過地球表面積的三分之二,海洋資源對于地球上的生命來說至關重要。21 世紀,人類進入了大規模開發利用海洋的時期。隨著海洋強國戰略任務的提出,我們需要提高對海洋資源的開發以及利用能力,而這需要大量精確的海洋環境數據,以便進行水下目標定位、水下目標檢測、海底資源探測[1-3]等任務。

水下目標檢測技術是進行水下目標定位與識別的關鍵[4]。水下環境復雜多變,對水下數據的傳輸以及水下數據的可用性會造成很大影響,水下目標的檢測和識別[5]具有很大挑戰性。如何提高檢測和識別的速率以及準確度、降低水下數據計算以及通信成本、減小檢測模型的參數量和計算量,這些都是亟待攻克的核心難題。水下目標檢測的成像技術有許多種,相較于光學成像等水下探測技術,聲吶成像具有探測距離遠、穿透能力強的特點,聲吶能夠在復雜多變的水下環境下穩定成像,因而成為目前主流的水下目標檢測手段[6-7]。由于水聲信道的復雜性,以及聲波本身傳播的損失和散射等因素,成像聲吶直接采集得到的圖像質量不高、分辨率低,存在大量散斑噪聲,目標成像邊緣不清晰[8-9],這也嚴重影響了聲吶圖像的后續處理[10]。

傳統的聲吶圖像目標檢測算法包括基于數理統計、基于數學形態學和基于像素的方法[11]。這些方法存在檢測效果差、檢測時間長等問題,需要尋找更優的方法提高聲吶圖像的檢測準確度以及縮短聲吶圖像的檢測時間。近幾年,在目標檢測領域,卷積神經網絡取得了飛速的發展,越來越多的人開始嘗試利用深度學習的方法來進行水下環境中的目標檢測[12]。Valdenegro[13]針對前視聲吶圖像的水下目標檢測任務,設計了一種卷積神經網絡,能夠根據特定的閾值,對區域建議進行目標物的置信度評估,達到了很高的召回率。通過使用深度卷積神經網絡,Williams[14]設計了一個10 層卷積神經網絡模型,對合成孔徑聲吶(SAS)圖像進行三個二元分類任務(目標與非目標、截錐體與巖石、地雷與截斷圓錐體)。模型性能較傳統的基于特征的分類方法有了明顯的提升,表明了深度學習在聲吶圖像目標檢測上的巨大優勢。Kim[15]等將YOLO 目標檢測算法應用于前視聲吶圖像的目標檢測任務中。實驗結果表明,YOLO 算法在離線驗證時速度高達107.7 FPS,遠超過傳統的滑動窗口算法的0.2 FPS。在真實海洋環境的前視聲吶圖像中,算法幀率為5 FPS,證明了其在聲吶圖像目標實時檢測方面的可行性。

通過卷積神經網絡的逐層卷積、填充、池化等操作,基于深度學習的目標檢測算法,可以從聲吶圖像中提取到更深層次的語義信息。雖然基于深度學習的目標檢測算法性能較之傳統算法有了顯著提高[16-17],但由于網絡所需參數量大,因而基于深度學習的目標檢測算法大多不能直接部署于嵌入式端,無法達到水下設備實時進行目標檢測的目的[18]。由于聲吶圖像的特殊性,聲吶圖像數據集較少且聲吶圖像成像質量不高,如何利用小樣本進行深度學習也成了進行聲吶圖像檢測不可避免的難題[19]。在聲吶圖像中,細小目標和細長形狀是常見的,但目前的主流算法在對它們進行定位回歸時,檢測精度有所不足[20]。

本文針對細長、細小的聲吶圖像檢測精度差的問題,提出一種基于注意力機制的聲吶圖像小目標檢測算法,改善檢測細長、細小的聲吶圖像的關鍵策略。針對水下設備內存不足以及設備運算能力有限的問題,設計了一種聲吶圖像的輕量化檢測方法,通過替換輕量化網絡及NCNN 推理框架壓縮移植模型,以及在頸部網絡中采用GSConv 模塊替換傳統卷積,來改善目標檢測網絡模型參數量太大、計算復雜的問題,使其可部署于ZYNQ 嵌入式平臺,達到實時檢測聲吶圖像的目的。

2 面向聲吶圖像的輕量化YOLOv5目標檢測算法

YOLOv5 是一種基于深度學習的單階段目標檢測算法。相比于YOLOv4[21],它在速度與精度都有了顯著的提升。在目標檢測任務中,特別是對小目標的檢測中,表現出優秀的檢測效果[22-23]。對比后來提出的YOLOv7 算法,YOLOv5 的訓練和推理速度更快,并且內存占用也更少。這使得YOLOv5 在某些應用場景中更占優勢,例如在移動設備或者運行資源有限的系統中。由于水下聲吶圖像模糊、噪聲大、目標小,同時嵌入式設備運行內存小,設備運算能力有限的情況,為了提升聲吶圖像小目標的檢測精度和提高模型的推理速度并進一步降低網絡參數量,本文在YOLOv5 算法的基礎上,設計了一種面向聲吶圖像的輕量化YOLOv5 目標檢測網絡模型,其結構如圖1 所示。

圖1 輕量化聲吶圖像YOLOv5 目標檢測網絡模型Fig.1 Lightweight sonar image YOLOv5 object detection network model

2.1 深度可分離卷積

傳統的YOLOv5 算法采用CSP-Darknet53 作為主干網絡來進行圖像特征的提取,雖然在檢測效果上有較高的精度,但在嵌入式平臺上,其計算量和內存占用太大,不適合低運算能力和存儲能力的情況[24]。

為了進一步減少參數量和運算量,本文采用深度可分離卷積[25]代替原來的卷積模塊。深度可分離卷積包含逐通道卷積和逐點卷積。逐通道卷積用不同的卷積核對輸入的每個通道單獨做卷積,而逐點卷積是用1×1 的卷積核對逐通道卷積所有通道的輸出合并在一起。其結構如圖2 所示。

圖2 深度可分離卷積結構Fig.2 Depthwise separable convolution structure

對于一個卷積點而言:假設有一個3×3 大小的卷積層,輸入通道為16、輸出通道為32。要用32 個3×3 大小的卷積核在16 個通道中分別做卷積,得到32 個輸出通道,參數量為16×32×3×3=4608 個。

如果應用深度可分離卷積結構塊,先用16 個3×3 大小的卷積核在16 個通道上做逐通道卷積,得到16 個特征圖譜。在融合操作之前,接著用32 個1×1 大小的卷積核在這16 個特征圖譜上做逐點卷積,參數量為16×3×3+16×32×1×1=656 個??梢钥闯?,深度可分離卷積的應用可以顯著地降低模型的參數量。

2.2 GSConv

在YOLOv5 中,Neck 層是位于Backbone 和Head之間的一組卷積層,用于提取特征金字塔。特征金字塔有助于模型對不同大小和比例的物體進行泛化。Neck 層的作用是將不同層次的特征圖進行融合,以提高特征提取的效率和準確性。相較于普通卷積,深度可分離卷積雖然顯著減少了參數量,但其最大缺陷在于一定程度上忽視了通道之間的關系,產生了信息割裂。深度可分離卷積對輸入通道的內容進行分層處理,針對每一個通道進行相互分離的卷積操作,最后依照其輸入通道重新合并,雖然在一定程度上降低了多通道所帶來的計算量問題,但是通道間的相關信息卻丟失了。為了有效保留多通道信息,增強提取到的語義信息,讓圖像特征更好地表示圖像的本質和特點[26],本文在Neck 層采用GSConv[27]代替傳統卷積,提高檢測模型的精度,同時減少模型的參數量,而不額外增加計算量[28]。

GSConv 模塊的結構如圖3 所示。設輸入和輸出通道數分別為C1和C2。首先經過一個標準卷積,通道數變為C2/2,再經過一個深度可分離卷積,通道數不變,最后將兩次卷積的結果進行拼接和混洗。最后的混洗操作,能夠將通道信息進行均勻打亂,增強提取到的語義信息,加強特征信息的融合,提高圖像特征的表達能力。

圖3 GSConv 結構圖Fig.3 GSConv structure diagram

GSConv 模塊是由標準卷積、深度可分離卷積和Shuffle 三部分卷積混合而成。該模塊對標準卷積所生成的特征信息通過Shuffle 混合策略滲透到深度可分離卷積生成的特征信息的每一模塊中,使得該方法的卷積計算接近于標準卷積的輸出,但降低了計算成本。通過添加深度可分離卷積層和Shuffle 層,增強了特征信息的非線性表達能力,使得GSConv 卷積更加適用于輕量化的模型檢測器。

網絡在Neck 層進行特征融合時,語義信息也會不斷地向下傳輸,當特征圖的高寬和通道數被不斷壓縮和擴展時,會導致部分語義信息的丟失,從而影響到最后的預測。本文在網絡的Neck 層引入GSConv模塊,使用GSConv 模塊代替標準卷積來進行上采樣和下采樣,降低模型的參數量和計算量,并在最大程度保證采樣效果,保證訓練精度。

2.3 融合注意力機制

對于聲吶圖像存在模糊且小目標物體易被忽略等現象,研究發現在主干網絡中添加注意力機制可以有效地剔除不相關信息的干擾,更好關注小目標物體的特征[29-30]。為了提高模型的精度,本文中使用了一種三維無參注意力機制SimAM 和卷積塊注意力機制CBAM 相結合的融合注意力機制。

2.3.1 CBAM 注意力機制

在YOLOv5 算法改進中,常見的是添加SE(squeeze-and-excitation)注意力機制模塊[31]。SE 注意力機制能夠通過自適應地學習通道之間的關系來增強重要特征的表達能力,但是在聲吶圖像小目標檢測問題上存在著一些不足。由于聲吶圖像中的目標尺寸較小,其空間信息對于檢測和定位至關重要,SE 注意力機制是將特征圖壓縮為全局描述向量,這會導致空間信息的丟失,不利于聲吶圖像小目標檢測。因此本文引入CBAM 注意力機制[32],更好地結合通道和空間注意力,更好地適應小目標的特征表示需求。

卷積塊注意力機制(CBAM),包括兩個子模塊:通道注意力模塊(CAM)和空間注意力模塊(SAM)。兩個模塊具有不同的功能,SAM 可以提取輸入圖像的主要特征信息,CAM 可以根據每個特征通道的重要性設置權重。CBAM 模塊結構如圖4 所示。

圖4 CBAM 模塊結構圖Fig.4 CBAM module structure diagram

在通道注意力模塊中,將輸入的圖像分別應用平均池化和最大池化,輸出的特征圖通過只有一個隱藏層的多層感知器(multi layer perceptron,MLP)來生成通道注意力圖。再通過元素相加計算通道注意力子模塊。計算公式如下:

其中:σ是Sigmoid 函數;MLP 為多層感知器;AvgPool(F)和MaxPool(F)分別表示平均池化和最大池化;MC(F)為通道注意力模塊。

與通道注意力不同,空間注意力子模塊為了更好地檢測目標的位置信息,其沿通道軸同時進行平均池化和最大池化過程,并通過卷積層生成空間注意圖。計算公式如下:

其中:F′為輸入特征圖;f為7×7 卷積運算;AvgPool(F')和MaxPool(F')分別表示平均池化和最大池化;MS(F')是空間注意力模塊。

2.3.2 SimAM 注意力機制

由于聲吶圖像目標較小,其特征容易被忽略或丟失,本文在算法的Head 部分因引入SimAM 注意力機制[33],SimAM 的結構如圖5 所示。在實際聲吶圖像檢測過程中,即使目標在圖像中所占比例較小,依然可以通過評估每個神經元的重要性,從而提高局部感知能力以幫助網絡更好地捕捉目標的語義特征,提高精度和成功率;同時,SimAM 機制通過調整特征圖的尺寸和通道權重相互關系,加強相似的特征圖之間的關聯性,在不增加模型參數量的前提下,實現模型的自適應特征選擇。

圖5 SimAM 結構圖Fig.5 SimAM structure diagram

該注意力機制的作用原理是通過能量函數來實現的,而能量函數的定義與神經科學領域中的空域抑制現象有關,活躍的神經元會抑制周圍信息匱乏神經元的表現能力。因此,神經元的重要程度可通過能量函數來表達,最小能量可以通過式(3)得到:

其中:t代表輸入特征X的目標神經元,和是除t外所有神經元計算所得的平均值和方差。對于一個目標神經元,如果它的輸出與其他神經元的輸出差異越大,那么它的能量越低,也就是它的重要性越高,因而可用來表示神經元的重要性。

接著,我們對特征進行增強以特征的表達能力:

本實驗將SimAM 注意力模塊放在Head 網絡,此舉可以在不額外增加參數的情況下,通過對空間位置特征和通道信息的全面評估來對重點神經元進行特別關注,最終實現在改善網絡特征提取能力的同時加快網絡訓練速度。

2.4 損失函數設計

因為聲吶圖像的特點,圖像數據集中各類別數量往往不平衡,導致模型沒有很好的泛化能力。本文借鑒Focal-Loss 的計算思路,將YOLOv5 原始的CIoU損失函數優化為Focal-CIoU[34],更好地處理小目標、困難樣本和類別不平衡問題,提高目標檢測的精度和魯棒性。它是一種動態縮放的交叉熵損失,可以專注于難以分類的錯誤分類樣本,其計算公式為

借助動態縮放因子,可以動態降低訓練中那些易分類樣本的權重[35],從而讓模型可以更快地關注那些復雜樣本。對于分類不準確的樣本,Focal-CIoU 的損失沒有改變,而對于分類準確的樣本,損失會變小[36]。換言之,增加了不準確分類樣本在Focal-CIoU 中的權重,提高了分類的魯棒性。

3 基于ZYNQ 的聲吶系統設計及目標檢測算法實現

3.1 基于ZYNQ 的聲吶系統設計系統

為了驗證本文所設計的聲吶圖像目標檢測算法的可行性,設計了一種基于ZYNQ 的聲吶圖像檢測系統。本文所設計的聲吶圖像目標檢測系統分為PL 端和PS 端兩個部分,系統設計圖如圖6 所示。PL 端主要包括Xilinx Artix-7 系列FPGA,PS 端則主要兩個ARM Cortex A9 處理器組成。

圖6 聲吶系統結構圖Fig.6 Diagram of the sonar system

本文所設計的聲吶系統工作流程如圖7 所示,主要包括兩部分:PL 端產生PWM 信號上傳到發射驅動模塊,該模塊通過升壓激勵發射換能器。接收換能器接收目標的反射和散射回波信號,經過濾波、放大等信號調理后,將信號傳輸至AD 進行采集。隨后,系統對接收到的數據進行DFT 處理,并將處理結果上傳至波束形成模塊。PL 端通過波束形成算法每兩秒約生成40 張圖,根據式(6)計算每對圖片的均方差(MSE),然后根據均方差的值選擇差異最大的兩張圖傳至DDR;PS 端每次從DDR 中讀取兩張聲吶圖像,PS 端的兩個CPU 利用轉換好的模型同時進行聲吶圖像的實時目標檢測。

其中:m和n分別是圖像的高度和寬度。I1[i,j]和I2[i,j]分別是兩個圖像在像素位置(i,j)處的灰度值。

3.2 ZYNQ 端目標檢測算法部署

PC 端所訓練出的深度學習參數往往保存在指定的模型中,并不能應用在所有硬件平臺,模型移植ZYNQ 端首先需要經過參數提取與格式轉換。如圖8所示為本文算法部署到ZYNQ 端的原理圖,深度學習的算法模型可基于NCNN 框架實現高效快速的前向推理計算。聲吶圖像目標檢測算法成功部署到ZYNQ 端,首先需要將Pytorch 所訓練的pt 模型文件轉化為開放神經網絡交換模型(open neural network exchange,ONNX),并檢查模型是否錯誤;使用onnxsimplifier 優化ONNX 模型,以提升模型的推理速度;隨后通過onnx2ncnn 工具將ONNX 模型轉化為NCNN 模型,并利用ncnnoptimize 工具對模型進行量化操作。

圖8 模型轉換流程Fig.8 Model conversion process

分別在GPU 2080Ti、X86 CPU 和 ZYNQ7020 三個平臺上進行實驗,以確定本文所設計的模型在不同平臺上的計算量、內存占用、推理率、運行功耗和單位功耗幀速率指標,所得的實驗結果如表1 所示。

表1 不同設備運行結果Table 1 Running results of different equipments

將模型移植到ZYNQ 平臺時,通過ncnnoptimize操作將卷積層替換為內積層,并刪除部分無用的連接,減少了部分模型的計算量。更改的檢測流程,使得雙核CPU 更好的利用,提高了推理速度,減少了系統內存的占用,同時也由于ZYNQ7020 平臺低功耗設計和SoC 架構,使得內存占用遠遠優于其他平臺。對比模型的推理率,顯然,2080Ti 的推斷率是最好的,然而功耗也異常高。本研究所使用的 ZYNQ7020 平臺獲得了高達 0.162 FPS/W 的優異性能,從而驗證了所設計的聲吶系統比其他平臺具有綜合優勢。

4 實驗結果與分析

4.1 聲吶圖像數據集

本文采用的數據集是使用ARIS Explorer 3000 聲吶在水箱和轉盤中用前視聲吶捕獲的海洋廢棄物數據vPropeller、Shampoo-bottle、Standing-bottle、Tire、Valve、Wall),共有1868 張圖片。本文測試集按總數據0.1 的比例劃分,訓練集共1718 張,測試集共150 張。數據集每個類別的分類如圖9 所示。

圖9 數據集中的圖片數量分布Fig.9 Distribution of the number of images in the dataset

聲吶圖像目標檢測神經網絡的訓練,通常需要大量的水下數據支持。由于聲吶圖像受到設備、成本、環境等各種因素的限制,導致聲吶圖像數據集的圖片數量短缺。本文采用數據增強的方法,對原始的訓練集圖片進行上下翻轉、幾何濾波等操作,將原始的訓練集圖片數量擴大了三倍,使其更好進行聲吶圖像上的卷積神經網絡訓練。擴充后訓練集和驗證集分別包含5154 張和150 張圖片,訓練集圖像數據增強的結果如圖10 所示。

圖10 數據增強圖像Fig.10 Data-enhanced images

4.2 目標檢測算法性能

4.2.1 對比實驗

為了進一步驗證本文所提出的算法在聲吶圖像目標檢測的優勢,將本文算法與其他常見目標檢測算法進行了對比,對比實驗結果如表2 所示。

表2 對比試驗Table 2 Comparative experiments

從實驗結果可以看出,本文所提出的算法在Map50 指標上高于其他算法,在模型參數量上也優于其他算法。本文算法在檢測精度和模型大小上均具有出色的能力,更能適應嵌入式端聲吶圖像目標檢測任務。

為了比較本文算法與其他算法在不同類別上的實際檢驗效果,對數據集上的測試結果進行了可視化展示,比較結果如圖11 所示。

圖11 不同算法圖像檢測結果對比圖Fig.11 Different algorithm image detection result comparison

從圖中可以看出,本文算法的檢測框圖與實際標注文件的目標最為緊密,而且在各類別的檢測情況中,錯檢、漏檢的現象都要優于其他算法。并且,本文算法在Can 和Drink-carton 這些小目標類別上的檢測效果優于其他算法,更好地關注了聲吶圖像細小目標的特征。

4.2.2 消融實驗

為了直觀地觀察不同的改進模塊對聲吶圖像檢測模型檢測性能的影響,本節采用消融實驗進行驗證。具體而言,在原有的YOLOv5s 模型中分別進行加入SimAM、CBAM、混合注意力機制、改進的損失函數、替換主干網絡的卷積為深度可分離卷積以及替換頸部網絡的卷積為GSConv 來保證在相同數據集、相同訓練輪次下檢測效果的比較。

實驗結果如表3 所示。當分別加入SimAM 和CBAM 時,Map50 和Map50-95 均有所提高。將混合注意力機制加入到網絡后,Map50 和Map50-95 均比單獨添加要高,提高了目標檢測的精度指標。當使用了改進的損失函數后,Map50 和Map50-95 有了顯著提高。當替換了YOLOv5s 的主干網絡的卷積為深度可分離卷積以及替換頸部網絡的卷積模塊后,模型的參數量大大減少,Map50 和Map50-95 也有了提高。當同時應用上述改進模塊集成生成最終目標檢測模型時,Map50 和Map50-95 分別達到0.934 和0.708,檢測精度達到最高。

表3 消融實驗Table 3 Ablation experiments

4.2.3 經典數據集對比實驗

為證明改進模型也同樣適用于其它圖像的目標檢測,本文補充了對于經典數據集VOC2007 的檢測結果,將YOLOv5s 和本文算法進行對比實驗,結果如表4 所示。

表4 經典數據集對比實驗Table 4 Comparison experiment of classic datasets

實驗結果表明,在經典數據集上,本文算法相較于YOLOv5s 算法,本文算法的Map50 提升不足1%,遠不如聲吶數據集上提升明顯,且Map50-95 由于更多關注小目標特征反而有所下降,證明了本文所改進模型在聲吶圖像目標檢測上的有效性。

5 結 論

本文針對聲吶圖像背景噪聲大、小目標檢測精度低等問題,設計了一種面向聲吶圖像的輕量化YOLOv5 目標檢測算法。首先利用替換主干網絡為輕量級網絡,大大降低了模型的運算量,然后利用融合注意力機制和改進損失函數的方法,更好地提取小目標特征,提升模型的檢測精度,最后利用NCNN 前向推理框架,將訓練好的模型成功部署到ZYNQ 端,實現了聲吶圖像的實時檢測。實驗證明,本文所提出的方法在聲吶圖像小目標檢測任務中具有較高的檢測準確度,可應用到水下聲吶圖像實時檢測任務中。

猜你喜歡
聲吶注意力卷積
探索大洋的“千里眼”——聲吶
讓注意力“飛”回來
基于3D-Winograd的快速卷積算法設計及FPGA實現
一種便攜式側掃聲吶舷側支架的設計及實現
聲吶
從濾波器理解卷積
基于傅里葉域卷積表示的目標跟蹤算法
“揚眼”APP:讓注意力“變現”
A Beautiful Way Of Looking At Things
COTS技術在聲吶裝備中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合