?

基于改進 RetinaNet網絡的水下機器人目標檢測與實驗

2024-02-28 01:26黃珍偉王文杰路錦通
計算機工程與科學 2024年2期
關鍵詞:卷積權重機器人

黃珍偉,陳 偉,王文杰,路錦通

(江蘇科技大學自動化學院,江蘇 鎮江 212000)

1 引言

水下機器人可以在極端情況下完成人工不能勝任的任務。水下目標快速精準檢測[1]是實現水下機器人高效作業的關鍵技術之一,廣泛應用于漁業養殖[2]、海洋管道鋪設[3]等領域。

目前水下機器人目標檢測算法大致分為2類:一類是基于回歸思想的單階段算法,以YOLO(You Only Look Once)系列算法[4]和RetinaNet算法[5]為主,具有較好的檢測精度和優異的檢測速度;另一類是基于生成目標候選框和標簽的雙階段算法,以Fast R-CNN(Fast Region-based Convolutional Neural Network)算法[6]和Faster R-CNN算法[7]為主,其特點是檢測精度略高于單階段算法的但是檢測速度慢。上述算法都可以在水下復雜環境中對退化嚴重的低質量圖像進行相應的目標檢測,且具備較好的檢測精度和檢測效果,但是其網絡模型參數量過大或者運算速度過慢,且均未使用到水下機器人進行實地檢測作業。水下機器人屬于嵌入式機器人,為了方便實地作業,一般算力和內存較小,難以滿足水下目標檢測的硬件要求,故需要一種參數量少、模型結構簡單且運算速度和精度都較好的目標檢測算法。本文選取的RetinaNet算法屬于單階段算法,具備良好的檢測精度和檢測速度,算法結構相對于雙階段算法結構更加簡單,且對中小型目標具有優異的檢測效果。

現有的國內外水下機器人目標檢測算法更多專注于提升復雜環境中的檢測精度或者檢測速度。陳宇梁等人[8]提出快速空間金字塔池化模塊,解決了水下物體區分度低和特征損失嚴重的問題;提出了一種基于旋轉窗口的Swin-Transformer模塊,提高了小目標的檢測能力。Wei等人[9]在YOLOv3模型中加入擠壓和激勵模塊,增大了檢測規模。強偉等人[10]用ResNet卷積神經網絡代替SSD(Single Shot multibox Detector)的VGG(Visual Geometry Group)卷積神經網絡,再用深度分離可變形卷積替換原始卷積,以簡化網絡并提高其性能。上述衍生的改進算法具備較高的檢測效率和魯棒性,但是其復雜度過高,很難集成在水下機器人上。

綜上所述,為了實現輕量型模型在真實水下環境中對目標快速、精確的識別,本文提出了改進DenseNet121-Deform-CBAM算法,在原有單階段的RetinaNet算法基礎上,利用深度分離可變形卷積的特點代替原始卷積,參考DenseNet121[11]的網絡結構,替換ResNet50;此外還引入了注意力機制模塊[12]提高對水下模糊目標的提取性能,使得復雜水下環境中目標檢測在保證檢測速度和準確性的情況下,降低模型復雜度,減輕模型運行負擔,從而進一步推動水下機器人的實用化進程。

2 基于改進RetinaNet的水下目標檢測算法

2.1 原始卷積的改進

原始RetinaNet的卷積會沿著卷積核的固定路線進行平移來確定檢測區間,并且池化層的池化比例固定不變。但是,當檢測到形變較大的圖像時,仍然沿著固定軌跡機械地進行卷積運算會導致整體運算效率大大下降。

本文利用可變形卷積能夠減少網絡內部計算量的優點,替換原始卷積。改變每個卷積核的權重,增加卷積核的偏移量,以此改變卷積核的原始軌跡。如圖1所示,可變形卷積在采樣過程中,可對檢測區域的目標位置進行適應性改變,使得卷積核集中于有效感受域。

Figure 1 Comparison of activation units of standard convolution and deformable convolution圖1 標準卷積和可變形卷積激活單元對比

圖2為可變形卷積的學習過程。其中,K表示卷積采樣區域大小,N表示通道緯度。首先,輸入特征圖,通過原始卷積核進行卷積操作。其次,把原始卷積核的輸出作為可變形卷積所需要的偏移量,根據反向傳播原理,同步更新卷積核和偏移量??勺冃尉矸e雖然可以提高模型結構的適應性和泛化能力,但是相對于原始卷積來說增加了參數量,并且一定程度上影響了模型的運行速度。

Figure 2 Learning process of deformable convolutional圖2 可變形卷積學習過程

針對可變形卷積增加了參數量,進而影響模型的運行速度的問題,本文采用深度分離卷積來提取特征,以減少參數量和運行成本。深度分離卷積示意圖如圖3所示。

Figure 3 Schematic diagram of deep separation convolution圖3 深度分離卷積示意圖

首先,輸入5×5×3彩色圖像,通過3×3的卷積核,由于逐通道卷積是在二維平面上進行,所以卷積核的數量與上層通道數一一對應。生成3個特征圖,尺寸與輸入層的相同,均為5×5。然后,進行逐點卷積,根據上層通道數(3),設置卷積核尺寸為1×1×3,卷積核數量為4。對比傳統卷積,在同樣參數的情況下,傳統卷積需要3×3×3×4=108個參數,而深度分離卷積僅需要3×3×3×1=27(逐通道參數)加上1×1×3×4=12(逐點卷積)共計39個參數。

將深度分離卷積和可變形卷積結合構成深度分離可變形卷積,大幅度減少了模型參數,且同時增加了特征圖的維度,顯著提高了模型運行速度,增強了模型對于復雜環境的適應能力。

2.2 主干網絡的改進

原始ResNet的傳輸原理是建立前后層之間的連接。在ResNet傳輸過程中,前一層的結果作為后一層的輸入進行運算。但是,隨著網絡層數的增加,計算誤差逐漸增大,最后會產生梯度爆炸的問題。

DenseNet通過建立前后層的密切連接來促進訓練過程中的梯度反向傳播,從而使得網絡的訓練深度增加。在參數量和計算量更小的情況下,DenseNet具備比RetinaNet更加優秀的性能。DenseNet模型結構如圖4所示 。

Figure 4 Structure of DenseNet model圖4 DenseNet模型結構

若干個Dense layer和Transition layer層組成DenseNet。DenseNet區別于RetinaNet之處是DenseNet每個層將前面所有層的信息整合后作為下一層的輸入,實現了特征重用。第i層DenseNet和ResNet的輸入和輸出之間的表達式分別如式(1)和式(2)所示:

ResNet:

xi=Hi(xi-1)+xi-1

(1)

DenseNet:

xi=Hi(x0,x1,…,xi-1)

(2)

其中,xi表示第i層的輸出;xi-1表示第i-1層的輸出;Hi(·)表示非線性變換,包含歸一化、激活函數和卷積3種操作。式(2)中的(x0,x1,…,xi-1)指的是將第i-1層的輸出與之前所有層的輸出進行連接。

2.3 CBAM注意力模塊的引入

注意力機制是一種聚焦于局部信息的機制。本文采用由通道注意力模塊CAM(Channel Attention Module)和空間注意力模塊SAM(Spatial Attention Module)串行形成的CBAM( Convolutional Block Attention Module)輕量級注意力模塊。通過多次更改CBAM模塊在模型中的位置,比較各項參數,最后將CBAM模塊放在第1個卷積后。輸入圖像首先經過DenseNet特征提取模塊進行圖像特征提取,之后將具有不同分辨率的特征信息傳入到CBAM模塊,先在CAM模塊中將輸出的特征信息(4×4×256)進行最大池化和平均池化操作,得到2個1×1×256的通道特征提取后的圖像特征信息,然后將這2個特征圖分別輸入多層感知器MLP(MultiLayer Perceptron),得到2個1×1×256特征向量,最后通過Sigmoid激活函數獲得通道注意力權重Mc。而SAM模塊的輸入則需要先乘以Mc,然后依次進行最大池化和平均池化操作,通過池化層操作后輸出特征信息,再通過3×3卷積核進行拼接,最后通過Sigmoid激活函數獲得空間注意力權重Ms。經過CAM模塊輸出的特征信息再乘以Ms即得到經過聚焦于關鍵目標信息后的增強特征。

3 實驗設置

3.1 實驗環境

本文實驗環境如下:Windows 11操作系統,NVIDIA?GeForce?RTXTM3090 Ti顯卡,開發工具為PyCharm,編程語言為Python,環境配置為Python 3.9、CUDA11.6和PyTorch框架?;A參數設定如表1所示。

Table 1 Basic parameters setting

3.2 水下數據集的建立

由于圖像是在真實的海洋環境中拍攝,受到水質、光線等多方面因素的影響,所以圖像存在對比度低、失真和模糊等明顯的質量退化問題,并且水下環境復雜,還包含很多干擾目標(珊瑚、其余魚類等),故本文采用水下圖像融合來對水下圖像進行恢復和增強。

本文的圖像融合算法結合了自適應直方圖均衡化和多尺度融合算法。先對原圖進行灰度世界和白平衡處理,由于水下圖像光線質量差,圖像中存在亮暗不均的問題,所以對處理好的圖像的亮通道進行自適應直方圖均衡化操作。其次,為了得出質量最佳的水下圖像,本文均衡化圖像后再進行基于幾種權重的多尺度融合處理。幾種權重介紹如下。

(1)拉普拉斯對比度權重▽2f(x,y):該權重用于擴展景深,對圖像邊緣和紋理賦予較大權重值,詳細公式如式(3)所示:

(3)

拉普拉斯對比度權重通過計算亮度通道的拉普拉斯濾波絕對值來估算全局對比度。

(2)顯著性權重Ws:本文利用顯著性估計器估計圖像中水下生物的顯著性水平,加強明暗區域的對比度。計算公式如式(4)所示:

Ws=Iμ-Iω

(4)

其中,Iμ表示Lab色彩通道的平均值,Iω表示Lab通道在進入高斯濾波后的結果。

(3)飽和度權重Wsat:該權重用于增強融合算法適應彩色圖像中高飽和度信息的能力。詳細公式如式(5)所示:

(5)

其中,Rk、Gk和Bk分別表示RGB通道中在第k個像素點的亮度值,Lk表示第k個像素點的亮度標準值。

(4)曝光權重WE:該權重用于反映圖像中像素的曝光程度,此權重與平均歸一化范圍值(0.5)的距離成反比。距離中間值越近,權重值越大,反之則越小。具體公式如式(6)所示:

(6)

其中,Ik(x,y)表示圖像中當前點的像素值;σ表示標準差,本文設為0.25。權重值過大,說明圖像出現了過曝或曝光不足的問題。

最后本文通過多尺度融合算法進行圖像融合。R(x,y)是對每個像素點(x,y)的4種權重進行融合,具體公式如式(7)所示:

(7)

圖像增強效果如圖5所示。

Figure 5 Image contrast with and without enhancement圖5 增強前后圖像對比

本文實驗采用URPC(Underwater Robot Professional Contest)數據集,并在網絡上收集海膽、海星、海參和扇貝4類圖像作為擴充數據集,共計6 000余幅。4種類別的圖像呈現不均勻分布。20%為測試集,80%為訓練集,再將訓練集以8∶2劃分為訓練子集和驗證子集。

3.3 評價指標

本文采用平均精度AP(Average Precision)、全類平均精度mAP(mean Average Precision)以及幀率FPS(Frame Per Second)綜合評價目標檢測算法的性能。

(1)AP指標用來評價單個類型的檢測精度,計算公式如式(8)~式(10)所示:

(8)

(9)

(10)

其中,R(Recall)表示召回率,表示正樣本中成功被檢測出來的樣本占比;P(Precision)表示檢測精度,用于表示預測為正的樣本數在真實正樣本數中的占比;TP表示檢測為正、實際為正的正樣本數量,FN表示檢測為負、實際為正的正樣本數量。

(2)mAP指標用來綜合評價算法的檢測精度,計算公式如式(11)所示:

(11)

mAP指標是對每個類別的AP指標進行求和取平均,式中C表示數據集類別總數,c表示其中的某一類別。

(3)FPS指標表示每秒傳輸幀數,用來評價算法的檢測速度。

4 實驗與結果分析

4.1 改進算法與原始RetinaNet算法對比

為了評價本文改進算法,對改進算法與原始RetinaNet算法的檢測精度和檢測速度等方面進行比較。實驗結果如表2、表3和圖6所示。

Table 2 Comparison of AP values of the improved algorithm and the original RetinaNet algorithm

Table 3 Comparison of other parameters between the improved algorithm and the original RetinaNet algorithm

Figure 6 Comparison of detection results of algorithms with and without improvement圖6 改進前后算法檢測結果對比

從表2和表3可以看出,本文改進算法對于4種類別的水下目標檢測效果都明顯優于原始RetinaNet算法的,對海膽、海參、海星和扇貝的AP分別提升了9.8%,15.9%,9.9%和11.1%,mAP提升了11.1%。一方面水下環境復雜,干擾多,另一方面水下檢測目標存在遮擋和粘連等現象,原始RetinaNet算法對于這類目標檢測能力有限,而改進算法經過一定的優化,對于模糊和存在遮擋的目標具備更強的檢測能力。

從圖6來看,原始RetinaNet算法并不能很好地處理水中模糊或者特征類似的物體,對于小目標存在一定的漏檢和誤檢問題。改進算法則解決了上述問題。

4.2 與其他主流算法的對比實驗

為了驗證本文提出的融合改進RetinaNet和注意力機制的水下目標檢測算法DenseNet121-Deform-CBAM的性能,在保持其他條件不變的情況下,分別對RetinaNet、Fast R-CNN和YOLOv4 3種主流算法進行對比實驗。實驗結果如表4所示。

Table 4 Comparison of experimental results among mainstream algorithms

從表4可以看出,改進算法的mAP可達81.9%,相對于其他3種主流算法的提升明顯,說明改進算法對于水下目標檢測具有一定的優勢,可以提升檢測精度。

圖7是不同算法對于相同復雜水下圖像的處理結果。從圖7可以看出,原始RetinaNet算法對于粘連目標和小目標存在一定的漏檢情況,并且置信度較低。相對于Fast R-CNN 和YOLOv4算法,本文改進算法的檢測效果也有所提高,利用深度分離可變形卷積大幅降低了算法復雜度,減少參數量,使得運算速度加快,在保證準確率和低誤檢率的同時,更快地檢測出了更多的目標。而本文引入CBAM模塊和改進模型結構則有效地解決了漏檢的問題,提高了對目標物體的專注度。除此以外,從參數量來看,改進算法的參數量(Parameters)小于其他3種算法的,其原因是采用的深度分離可變形卷積代替原始卷積極大地減少了計算量和參數量,說明DenseNet121-Deform-CBAM是一種相對輕量型的模型。推理速度方面也有一定的提升,相較于大部分對比算法而言提升幅度不大,總結原因是算法復雜度雖然比對比算法有所降低,但是算法模型仍具備一定程度的參數量。

Figure 7 Detection results of different algorithms圖7 不同算法的檢測結果

4.3 消融實驗

為了更加準確地驗證改進算法的性能,本節對改進后的算法通過疊加不同的模塊進行消融實驗。從模型大小Modelsize、參數量Parameters、全類平均檢測精度mAP和檢測速度FPS等性能指標進行對比分析,實驗結果如表5所示。第2組實驗在第1組實驗基礎上用DenseNet121網絡替換了ResNet50網絡,保持其他條件不變。這時算法模型大小和參數量分別為154.8 MB和45.9 MB,mAP提高了5.5%,檢測速度提高了0.8 f/s,FPS的明顯下降。這是因為DenseNet121要比ResNet50的復雜度低很多,有效地減少了計算量和參數量,且DenseNet121提高了特征的傳播和利用效率,減輕了梯度消失現象。第3組實驗和第2組實驗結果對比,第3組實驗用深度分離可變形卷積代替原始卷積層。這時模型大小和參數量分別為155.9 MB和34.5 MB,mAP為79.6%,檢測速度提高了1.2 f/s。值得一提的是,使用深度分離可變形卷積后,最明顯的特點是參數量大幅下降,算法模型變得更加輕量化,即使具備更少的訓練參數,速度也有一定程度的提高。第4組在第3組的基礎上增加了CBAM模塊,這時模型大小和參數量分別為170.2 MB和56.8 MB,檢測速度小幅上升了1.8 f/s,但是平均檢測精度增加了2.3%,說明添加了CBAM模塊之后增加了算法復雜度,對運行速度也存在一定的影響,但CBAM模塊串行了空間注意力和通道注意力,抑制了無效信息,增強了有效信息,從而加強了網絡的魯棒性,提升了多尺度目標的檢測能力,所以mAP值上升明顯。

Table 5 Results of ablation experiments

圖8為實驗過程中損失值函數曲線的變化趨勢。從圖8可以看出,由于加入了不同作用的模塊,損失值函數曲線也發生了相應的變化,在前50輪左右的損耗相差不大,但是改進后的網絡模型參數量較小,較為容易訓練,損失函數值收斂速度加快。

Figure 8 Loss values of different combination modules in ablation experiments圖8 消融實驗中不同組合模塊的損失值

4.4 人工水池抓取實驗

本節在實驗室水池環境中進行水下機器人目標檢測和海參抓取實驗。水下機器人實物圖如圖9 所示。

Figure 9 Picture of underwater robot圖9 水下機器人實物圖

機器人裝載三自由度機械手、網絡攝像機和推進器等硬件設備。實驗場地為人工水池。抓取實驗中,水下機器人先對網絡攝像機采集的水下目標圖像進行圖像優化,然后根據本文改進RetinaNet算法精準識別圖像中仿真海參位置。通過計算出機械臂在空間坐標系位置,利用視覺伺服控制算法移動機械臂至海參模型位置,完成海參抓取任務。

圖10為水下機器人進行水下抓取實驗的實驗流程,實驗對象為水下仿真海參,總共進行300次抓取實驗,抓取成功的次數為276次,抓取準確率為92%,平均抓取時間為7.2 s,水下目標檢測與抓取效果較好。

Figure 10 Grasping experiment of underwater robot圖10 水下機器人抓取實驗

此外,為了驗證本文改進算法在真實環境中對比其他3種算法的優勢,其他3種算法也進行人工水池中的抓取實驗。實驗條件中僅改變水下機器人加載的檢測算法,不改變其余條件,實驗結果如表6所示。

Table 6 Experimental results of different algorithms for grasping in artificial water tank

從表6可以看出,在檢測速度方面,大部分算法的檢測速度小幅低于改進算法的;在抓取準確率方面,改進算法抓取準確率精度高達92%,明顯高于其余對比算法的。

4.5 自然水域抓取實驗

在自然水域中,水質較差,且相對于人工水池來說背景更復雜,目標與環境對比差別較小,識別目標與水底泥沙顏色相近。采集的圖像質量較差,顏色整體偏藍綠色。為驗證自然水域中水下機器人目標識別效果及本文所提算法的有效性,本節在同一自然水域下的不同地點進行目標識別檢測實驗。首先放置部分目標假體,岸邊控制水下機器人進行水下巡游,部分實驗圖像和檢測結果如圖11所示。

Figure 11 Underwater target detection experimental results in natural environment圖11 自然水域目標檢測實驗結果

實驗過程中,水下機器人運轉正常,通信穩定,運行幀率保持在15~20 f/s。檢測準確率為86.3%,平均檢測時間為10.6 s。幾種類別的目標均可以被檢測到,但是部分性能指標存在小幅下降的情況,原因可能為除水體質量影響了水下機器人識別以外,部分檢測過程中泥沙揚起或者是水草遮擋影響了機器人目標識別??傮w而言,本文提出的算法仍具備較高的可行性,可以滿足自然水域中高效作業的需求。

5 結束語

針對水下圖像質量差導致目標特征信息提取困難和目標漏檢等問題,本文提出了一種融合改進RetinaNet算法和注意力機制的水下目標檢測算法DenseNet121-Deform-CBAM。在原有單階段的RetinaNet算法基礎上,利用深度分離可變形卷積代替原始卷積,降低了算法復雜度,減少了模型計算量;用DenseNet替換ResNet,增加模型的訓練深度,解決梯度爆炸問題;最后,引入CBAM模塊,集中網絡注意力,關注有效信息,增強算法對水下模糊目標的提取性能,提升算法對水下多尺度目標的檢測能力。實驗結果表明,本文所提出的算法對于復雜環境中的水下目標檢測具備優異的檢測能力。

猜你喜歡
卷積權重機器人
基于3D-Winograd的快速卷積算法設計及FPGA實現
權重常思“浮名輕”
從濾波器理解卷積
為黨督政勤履職 代民行權重擔當
基于傅里葉域卷積表示的目標跟蹤算法
基于公約式權重的截短線性分組碼盲識別方法
機器人來幫你
認識機器人
機器人來啦
一種基于卷積神經網絡的性別識別方法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合