摘要: 死魚對于水域生態(tài)和飲水安全存在巨大威脅,由于水面環(huán)境復雜,導致現有目標檢測算法在死魚檢測任務中存在漏檢、誤檢等情況。為此,以單次多邊框檢測(single shot multibox detector,SSD)為基礎提出一種基于多尺度特征融合和注意力機制的水面死魚檢測方法FFA-SSD(SSD with feature fusion and attention)。首先,采用計算量和參數量更少且特征提取能力更強的殘差網絡ResNet50替換VGG16主干網絡;其次,設計了多尺度特征融合模塊,增強淺層特征和高層語義信息的融合;然后,引入通道注意力機制,抑制特征融合帶來的冗余信息干擾,提升網絡對目標的關注度;最后,設計了一種適用于小目標檢測的數據增強算法,擴充訓練數據中的小目標數量,豐富訓練背景。實驗結果表明,同現有目標檢測算法相比,FFA-SSD算法可以更好地識別水面死魚,檢測精度達到93.5%。
關鍵詞: SSD; 目標檢測; 特征融合; 注意力機制; 數據增強
中圖分類號: TP212.9; TN929.5
文獻標志碼: A
文章編號: 1671-6841(2024)06-0032-07
DOI: 10.13705/j.issn.1671-6841.2023149
A Method for Detecting Dead Fish on Water Surfaces Based on
Multi-scale Feature Fusion and Attention Mechanism
YANG Shuaipeng1,2, LI He1,2,3, LIU Jinjiang1, FU Zhumu3, ZHANG Rui2, JIA Huimei2
(1.College of Computer Science and Technology, Nanyang Normal University, Nanyang 473061, China;
2.Henan Costar Group Co., Ltd, Nanyang 473003, China; 3.College of Information Engineering,
Henan University of Science and Technology, Luoyang 471000, China)
Abstract: Dead fish could pose a huge threat to water ecology and safety of drinking water. With complex water surface environment, the existing object detection algorithms had some flaws such as missed and false detections in small target. Therefore, a dead fish detection method on water surface based on the multi-scale feature fusion and attention mechanism, SSD with feature fusion and attention (FFA-SSD) was proposed. Firstly, the residual network ResNet50 with less computation and fewer parameters and better feature extraction ability was used to replace the VGG16 backbone network. Then, a multi-scale feature fusion module was designed to enhance the fusion of shallow features and high-level semantic information. Finally, a channel attention mechanism was introduced to suppress the interference of redundant information brought by feature fusion and to improve the network′s focus on the target. In addition, a data enhancement algorithm applicable for small target detection was designed to increase the number of small targets in the training data and to enrich the training background. The experimental results showed that compared with other target detection algorithms, the recognition function of FFA-SSD algorithm for dead fish on the water surface was better, and the detection accuracy was at 93.5%.
Key words: SSD; target detection; feature fusion; attention mechanism; data enhancement
0 引言
魚類的生存情況往往和生存環(huán)境密切相關,同時也是水域監(jiān)管體系中的一項重要指標。魚類死亡后,若不能及時打撈,會對其他生物、水質以及飲水安全造成嚴重威脅。因此,對水面死魚進行準確高效的檢測并及時控制水域污染風險是十分必要的。
目前,基于深度學習的目標檢測技術已經在眾多領域廣泛應用。在水面死魚檢測研究中,文獻[1]主要考慮了死魚檢測模型面向部署過程中的輕量化問題。其中,MobileNet網絡在特征提取方面會導致信息丟失,非對稱卷積也會在某些方面的特征提取能力較弱,需要復雜的特征融合模塊保證其特征信息流通性。在現有水面漂浮物檢測研究中,可以分為基于深度學習的兩階段檢測方法[2]、單階段檢測方法[4]以及基于多模態(tài)數據融合處理的檢測方法。受分段式網絡結構限制,兩階段檢測算法的研究主要集中在提升檢測精度上[4-5]。隨著邊緣計算[6]和移動端等平臺部署需求增多,更多的研究集中在基于單階段檢測算法上,以提升檢測精度和速度的平衡性。文獻[7]基于YOLOv5網絡,采用原始拓撲結構增強了對漂浮物的特征提取能力。文獻[8]通過增加RefineDet模型深層次特征提取并進行特征融合,生成了具有更好表征能力的特征層。文獻[9]面向嵌入式設備通過減少檢測尺度來提升檢測速度,采用K-means聚類算法調整錨框補償精度,該方法更多考慮了對檢測速度的提升,忽略了水面小目標對淺層特征的依賴問題。此外,將雷達數據與視覺信息進行多模態(tài)數據融合的檢測方法能夠進一步提升對水面漂浮物的檢測精度。張堡瑞等[10]采用三維激光雷達點云數據與CornerNet-lite目標檢測網絡得到的視覺信息進行融合,通過調整兩者得到的目標置信度比例來獲得新的目標判定置信度。Cheng等[11]面向無人水面車輛將毫米波雷達點云數據與視覺信息進行深層次多尺度融合,利用雷達數據的特性,提升水面目標檢測的精度和魯棒性?;诙嗄B(tài)數據處理的檢測方法能夠彌補單一方法的缺陷,具有更好的檢測效果。目標檢測算法是整個感知系統(tǒng)的重點,同時也提高了對數據處理中心的計算能力要求,并涉及高成本的專業(yè)設備,適用性較差。在小目標檢測研究中,特征融合是通過特征表達增強小目標檢測的策略之一[12]。文獻[13]利用多尺度空洞卷積進行特征融合,為網絡補充更多的上下文信息。文獻[14]采用融入分組殘差連接的Darknet-53作為SSD的主干網絡,增強特征提取能力,引入基于多尺度空洞卷積的淺層特征增強模塊,豐富淺層特征的特征信息。其中小尺度特征圖在特征融合中效果并不明顯,多尺度空洞卷積能夠降低單個空洞卷積引起的遠距離信息不相關性,但多次疊加的空洞卷積會損失信息的連續(xù)性。
本文綜合水面漂浮物檢測和小目標檢測的特點,以SSD為基礎網絡,提出了基于多尺度特征融合和注意力機制的水面死魚檢測網絡模型。設計小目標數據增強算法提升數據集中的小目標數量以及豐富訓練背景。采用ResNet50作為主干網絡增強特征提取能力。將高層次特征融合至低層次特征中,豐富低層次特征中的語義信息。引入高效通道注意力機制來抑制網絡中負面信息帶來的影響。實驗結果表明,本文方法能夠在保持實時檢測的同時,具有更高的檢測精度。
1 基于多尺度特征融合和注意力機制的SSD算法
1.1 SSD目標檢測算法
SSD是一個單階多層的目標檢測模型,結合了YOLO(you only look once)和Fast R-CNN(fast region-based convolutional network)的優(yōu)點,在檢測精度和速度上都有不錯的表現。SSD模型采用VGG16(visual geomertry group-16)作為主干網絡,并將VGG16末端的兩個全連接層替換為卷積層,同時為了提取包含不同層次語義信息的特征,在VGG16后增加了多個不同尺度的卷積層作為附加網絡,共設置了六個不同尺度的特征提取層,以滿足不同尺寸目標的檢測需求。最后在不同尺度上利用不同比例和數量的先驗框生成候選區(qū)域,采用非極大值抑制方法得到最終預測框。
1.2 改進的SSD網絡結構
VGG16網絡層數較多且結構比較簡單,不僅需要更多的計算量和參數量,還容易出現梯度消失和過擬合的問題。SSD網絡雖然通過不同尺度特征圖檢測不同尺寸目標,但缺乏高層語義信息和淺層細節(jié)信息的交互,導致其在小目標檢測方面有所不足。
在水面死魚檢測任務中,數據源往往與目標之間存在一定距離,導致會有更多的小目標被檢測。針對SSD網絡在小目標檢測任務中存在的問題,提出一種改進的SSD算法FFA-SSD,首先調整ResNet50[15]殘差網絡并作為主干網絡;設計了特征融合模塊,通過對不同尺度的特征圖進行級聯(lián)融合,增強高層次語義信息和淺層細節(jié)信息交互;同時引入注意力機制模塊,提升網絡對目標的關注度,抑制無關噪聲信息。FFA-SSD網絡結構如圖1所示。
1.3 深度殘差網絡ResNet50
與VGG16相比,ResNet通過引入殘差連接可以更好地解決由網絡加深帶來的退化問題,具有更強的特征提取能力。ResNet根據不同網絡深度擁有不同的版本,本文采用ResNet50為主干網絡,ResNet50網絡結構和殘差結構如圖2所示。
在殘差結構中,輸入特征x經過通道降維、特征提取和通道升維,得到殘差映射結構F(x),右側分支通過恒等映射x直接與殘差映射結果F(x)逐元素相加得到最終的殘差結果H(x),學習到的殘差特征表示為
F(x)=H(x)-x。(1)
本文對ResNet50網絡進行了調整和修改,首先,保留殘差結構之前的卷積和最大池化作為第一個卷積層(Conv_Layer1);其次,只保留前三個殘差層(Res_Layer2,Res_Layer3,Res_Layer4);然后,修改Res_Layer4的第一個殘差結構的步長,將其由2調整為1,增大特征圖尺寸,保留更多淺層特征細節(jié);最后,由Res_Layer4得到的特征圖尺度為38×38×1 024,并將其作為第一個有效特征層,其余更深層次、語義信息更加豐富的有效特征層均在本層之后的附加層得到。修改后的ResNet50網絡作為主干網絡,其參數如表1所示。
1.4 多尺度特征融合
本文通過設計一個多尺度特征融合模塊,增加深層特征圖中的有效信息與淺層特征的交互融合。特征融合模塊如圖3所示。
SSD模型通過采用多尺度特征檢測不同尺寸物體,但缺乏對不同尺度特征圖的融合,本文設計的特征融合模塊通過將高層次特征圖(融合層)融合至更低的特征層(優(yōu)化層)中,豐富低層次特征圖中的語義信息。融合層(第二層,第三層)的高層次特征圖采用雙線性插值算法進行上采樣統(tǒng)一特征圖尺寸,與低層次的優(yōu)化層(第一層)分別經過常規(guī)卷積模塊后進行拼接,最后通過卷積降維進行通道轉換。新的特征圖尺寸以及通道數與第一層相同。在FFA-SSD網絡中,共進行了三次特征融合,前兩次是三個特征層進行融合,最后一次是兩個特征層進行融合,由于 Conv10_2和Conv11_2特征圖尺度太小,包含特征信息較少,本文并未對這兩個特征層進行融合。
1.5 高效通道注意力機制
不同層次的特征圖通常具有不同的背景噪聲分布,本文采用特征融合來抑制單個特征圖的背景噪聲,并生成更有判別力的特征表示,同時也會由于特征圖尺度和位置的差異產生冗余信息。為抑制這些負面信息的干擾,引入一種高效的通道注意力機制(efficient channel attention,ECA)[16]模塊,降低冗余信息和噪聲對網絡的負面影響,提高網絡對目標的注意力。
ECA模塊首先對上一次的卷積輸出進行全局平均池化,采用一維卷積快速捕獲每個通道和它的近K個相鄰通道之間的跨通道信息交互,通過Sigmoid激活函數得到每個通道可學習的權重系數,再將權重應用于每個原始特征圖的每個通道上,并生成加權后的特征圖。用C表示通道維度,K為卷核大小,表示局部跨通道交互覆蓋率,其大小根據特征圖通道數自適應確定。K和C之間的非線性映射關系定義以及K的取值分別為
C=(K)=2(r*k-b),(2)
K=ψ(C)=log2(C)γ+bγodd,(3)
其中:本文中γ和b分別為2和1;todd表示最接近t的奇數。ECA模塊避免了輸入特征映射到低維空間帶來的信息丟失,同時能夠采用有效的方式捕獲跨通道交互,更好地捕捉待檢測目標的重要特征信息,整個模塊涉及少量的參數,具備更有效的通道學習注意力,為網絡帶來明顯的性能增益。
1.6 小目標數據增強
傳統(tǒng)的數據增強方法是通過對圖像進行鏡像翻轉、縮放、增強對比度等操作豐富數據集。針對SSD網絡對小目標死魚檢測能力較弱的問題,本文提出一種針對小目標檢測的數據增強方法(small target data augmentation,STDA),通過該方法擴充數據集中小目標的數量,提升數據背景復雜度,增強網絡對小目標的檢測能力。
STDA方法如圖4所示,首先隨機選取四幅原始圖像(邊長為w)放入集合f{f1,f2,f3,f4},對f中的圖像分別按照隨機比例P{P1,P2,P3,P4}縮小,并進行傳統(tǒng)數據增強,得到處理后的圖像集合為F{F1,F2,F3,F4},將F集合中經處理的圖像分別與f集合中對應的原圖像進行像素區(qū)域替換,并按照圖4方式拼接,得到邊長為2w的圖像Fa。最后采用邊長為w的新樣本選取框在Fa中框選出新樣本。
隨機比例因子P的設置理論上應該在0~1之間,但如果P過小,會損失過多目標原始特征信息,P過大時,圖像縮小程度低,在訓練過程中效果提升較小。不同的網絡模型輸入尺寸不同,在本文FFA-SSD網絡中,設置P的范圍為0.2~0.9。新樣本選取框根據中心坐標、寬度、高度在Fa圖像上框選像素區(qū)域作為新樣本,其中心坐標范圍是由組成Fa的四幅圖像的中心點組成的矩形區(qū)域,以此保證新樣本選取框的框選范圍能夠完全覆蓋Fa。此方法會縮小原始圖像,進而也將對目標原始特征產生不同程度的影響,但作為原始數據集的擴增,可以得到包含更小尺寸目標的新樣本數據。
2 實驗結果與分析
2.1 實驗環(huán)境及數據集
為驗證本文算法在水面死魚檢測任務中的有效性,在相同環(huán)境下將本文改進SSD模型同其他主流目標檢測模型進行對比實驗,并進行了改進模塊的消融實驗。本文實驗基于Ubantu18.04系統(tǒng),GPU為GeForce RTX 3090,內存16 GB,設置訓練輪次為300。
本文實驗數據集主要來自網絡搜集相關死魚圖像、手動拍攝死魚圖像等,共3 200張,通過LabelImg進行目標標注,按照Pascal VOC2012數據集格式建立,其中訓練集、驗證集、測試集按照8∶1∶1的比例劃分。
2.2 評價指標
為驗證本文改進算法的檢測性能,選取精度(precision,P)和檢測速度(每秒檢測圖片的幀數)為評價指標,精度計算公式為
P=TP/(TP+FP),(4)
其中:TP為正樣本中的正例;FP為負樣本中的正例;FN為負樣本中的負例。
2.3 不同模型性能對比實驗
采用Faster R-CNN、YOLOv3、MobileNet-SSD、SSD以及本文改進算法FFA-SSD進行檢測實驗,實驗結果如表2所示。FFA-SSD算法比原SSD算法精度提高了7.6%,比Faster R-CNN、YOLOv3和MobileNet-SSD 分別提高了1.4%、5.4%和12.1%,改進后的SSD算法更具有精度優(yōu)勢。在檢測速度上,Faster R-CNN難以滿足實時性的需求,MobileNet-SSD檢測速度最快。由于FFA-SSD采用更加輕量化的ResNet50作為主干網絡,可以有效減少計算量和參數量,加入特征融合網絡和注意力機制后,比SSD-VGG16仍具有速度優(yōu)勢,可以達到48 fps。
2.4 改進模塊的消融實驗
為驗證本文改進策略的有效性,在SSD網絡中分別加入各改進模塊進行消融實驗,實驗數據集為測試集。消融實驗結果如表3所示,“●”表示在對應序號實驗中添加此改進模塊。
由表3可知,將ResNet50作為主干網絡后,模型的檢測精度提升了1.7%,證明ResNet50具有更強的特征提取能力,提取的特征信息更豐富,在此基礎上添加特征融合網絡、ECA注意力機制、STDA小目標增強,模型的檢測精度分別比前者提升了3.5%,1.2%,1.2%。其中特征融合模塊對模型檢測精度提升最大。以上數據驗證了本文改進模塊均能有效提升網絡模型對死魚的檢測效果??傮w來講,本文提出的FFA-SSD算法比原SSD算法在精度上提高了7.6%,能夠更精準地識別水面死魚目標。
2.5 小目標檢測實驗
為更好地證明本文改進算法在小目標檢測中的優(yōu)勢,制作了包含200張圖片、418個目標的測試數據集,其中小目標數量為267個,分別采用改進前、后的網絡模型在該數據集上進行檢測,采用錯檢率為評價指標。
在實驗中,原SSD網絡在小目標檢測中共錯檢了39個,錯檢率達到9.3%,其中小目標錯檢32個,錯檢率為12%;本文改進算法共錯檢了11個目標,其中含有小目標10個,總錯檢率下降了6.7%,小目標錯檢率下降了8.3%。實驗驗證了本文針對小目標的改進策略能夠有效提升網絡對小目標的檢測能力。
2.6 檢測結果可視化分析
為了驗證本文設計的多尺度特征模塊和高效通道注意力機制對檢測性能的提升效果,本文利用Grad-CAM(gradient-weighted class activation mapping)[17]技術,通過可視化的熱力圖譜進行分析。如圖5所示,在圖5(b)中未添加多尺度特征融合和注意力機制的SSD模型在檢測過程中容易受一些噪聲的影響,對死魚目標關注度不夠,在圖5(c)中, FFA-SSD模型對小目標死魚關注更加細致,有效提升了網絡模型對感興趣區(qū)域的注意力,對目標覆蓋更加準確。
為了更清晰地展現本文改進算法在水面死魚檢測中的效果,本文采用SSD-VGG16算法和FFA-SSD算法對不同環(huán)境下的死魚圖像進行檢測,檢測效果如圖6所示。
圖6(a)中,FFA-SSD算法在檢測精度上具有明顯優(yōu)勢。圖6(b)中包含多個小目標,且分布相對密集,為更好地觀察目標檢出情況,在圖6(b)的檢測過程中只保留了檢測框,SSD-VGG16算法出現了七處漏檢,FFA-SSD算法只有兩處未檢出。圖6(c)和圖6(d)的背景都相對復雜,二者均能正確檢出,但FFA-SSD算法更具精度優(yōu)勢。
3 總結
本文提出了一種基于特征融合和注意力機制的水面死魚檢測算法FFA-SSD,比VGG16、ResNet50具有更強的特征提取能力和更小的參數量。特征融合模塊通過增強不同尺度特征之間的交互,豐富淺層特征的語義信息,有效提高了特征表征能力。同時引入高效通道注意力機制,有效抑制了網絡中負面信息帶來的影響,提升了網絡對目標的關注度。小目標數據增強算法能夠使網絡學習到更多的魯棒性特征,提高模型泛化能力。實驗結果表明,本文改進算法的檢測精度可以達到93.5%,比原SSD算法提高了7.6%,檢測速度能夠保持在48 fps,可以滿足實時性的需求。本文的改進算法具有較高的檢測精度,同時能保持較高的檢測速度,從而為水面死魚自動化檢測提供參考。
參考文獻:
[1] YU G Y, WANG L, HOU M X, et al. An adaptive dead fish detection approach using SSD-MobileNet[C]∥2020 Chinese Automation Congress. Piscataway:IEEE Press, 2021: 1973-1979.
[2] 鄧姍姍, 黃慧, 馬燕. 基于改進Faster R-CNN的小目標檢測算法[J]. 計算機工程與科學, 2023, 45(5): 869-877.
DENG S S, HUANG H, MA Y. A small object detection algorithm based on improved Faster R-CNN[J]. Computer engineering & science, 2023, 45(5): 869-877.
[3] ZHENG J L, LIU Y. A study on small-scale ship detection based on attention mechanism[J]. IEEE access, 2022, 10: 77940-77949.
[4] 李國進, 姚冬宜, 艾矯燕, 等. 基于改進Faster R-CNN的水面漂浮物識別與定位[J]. 信陽師范學院學報(自然科學版), 2021, 34(2): 292-299.
LI G J, YAO D Y, AI J Y, et al. Detection and localization of floating objects via improved faster R-CNN[J]. Journal of Xinyang normal university (natural science edition), 2021, 34(2): 292-299.
[5] DUC MINH T, HOA N T N, LE T H. A model for floating garbage detection and quantification using fixed camera[C]∥2022 9th NAFOSTED Conference on Information and Computer Science. Piscataway:IEEE Press, 2022: 389-393.
[6] CHENG Q Q, WANG H J, ZHU B, et al. A real-time UAV target detection algorithm based on edge computing[J]. Drones, 2023, 7(2): 95.
[7] HE X Q, WANG J C, CHEN C B, et al. Detection of the floating objects on the water surface based on improved YOLOv5[C]∥2021 IEEE 2nd International Conference on Information Technology, Big Data and Artificial Intelligence (ICIBA). Piscataway:IEEE Press, 2021:772-777.
[8] ZHANG L L, WEI Y X, WANG H B, et al. Real-time detection of river surface floating object based on improved RefineDet[J]. IEEE access, 2021, 9: 81147-81160.
[9] LI X L, TIAN M J, KONG S H, et al. A modified YOLOv3 detection method for vision-based water surface garbage capture robot[J]. International journal of advanced robotic systems, 2020, 17(3): 172988142093271.
[10]張堡瑞, 肖宇峰, 鄭又能. 基于激光雷達與視覺融合的水面漂浮物檢測[J]. 應用激光, 2021, 41(3): 619-628.
ZHANG B R, XIAO Y F, ZHENG Y N. Detection of floating objects on water surface based on fusion of lidar and vision[J]. Applied laser, 2021, 41(3): 619-628.
[11]CHENG Y W, XU H, LIU Y M. Robust small object detection on the water surface through fusion of camera and millimeter wave radar[C]∥2021 IEEE/CVF International Conference on Computer Vision. Piscataway:IEEE Press, 2021:15243-15252.
[12]馬天鳳, 楊震, 羅勇, 等. 基于深度特征融合的紅外弱小目標檢測方法[J]. 鄭州大學學報(理學版), 2023, 55(3): 65-72.
MA T F, YANG Z, LUO Y, et al. Infrared dim small target detection method based on depth feature fusion[J]. Journal of Zhengzhou university (natural science edition), 2023, 55(3): 65-72.
[13]肖進勝, 趙陶, 周劍, 等. 基于上下文增強和特征提純的小目標檢測網絡[J]. 計算機研究與發(fā)展, 2023, 60(2): 465-474.
XIAO J S, ZHAO T, ZHOU J, et al. Small target detection network based on context augmentation and feature refinement[J]. Journal of computer research and development, 2023, 60(2): 465-474.
[14]陳科圻, 朱志亮, 鄧小明, 等. 多尺度目標檢測的深度學習研究綜述[J]. 軟件學報, 2021, 32(4): 1201-1227.
CHEN K Q, ZHU Z L, DENG X M, et al. Deep learning for multi-scale object detection: a survey[J]. Journal of software, 2021, 32(4): 1201-1227.
[15]RAVEENA S, SURENDRAN R. ResNet50-based classification of coffee cherry maturity using deep-CNN[C]∥2023 5th International Conference on Smart Systems and Inventive Technology (ICSSIT). Piscataway:IEEE Press, 2023:1275-1281.
[16]SONG T N, QIN W W, LIANG Z, et al. Research on CNN for anti-missile object detection algorithm based on improved attention mechanism[C]∥2021 40th Chinese Control Conference.Piscataway:IEEE Press, 2021: 8286-8291.
[17]HOU Q S, XING J S. SSD object detection algorithm based on KL loss and Grad-CAM[J]. Acta electronica sinica, 2020,48(12):2409-2416.