李健源 柳春娜 盧曉春 吳必朗
(1.三峽大學(xué)水利與環(huán)境學(xué)院, 宜昌 443002; 2.中國水利水電科學(xué)研究院, 北京 100038;3.中國水利水電科學(xué)研究院流域水循環(huán)模擬與調(diào)控國家重點(diǎn)實(shí)驗(yàn)室, 北京 100038)
大壩的修建會(huì)導(dǎo)致河流縱向連通性消失,產(chǎn)生大壩阻隔效應(yīng),影響上下游種群基因交流[1]、降低河流生物多樣性[2],尤其對(duì)洄游性魚類產(chǎn)生的負(fù)面影響最為直接[3-4]。根據(jù)水利水電工程建設(shè)項(xiàng)目環(huán)境保護(hù)要求,需要建立減緩筑壩影響的環(huán)境保護(hù)措施[5],實(shí)施生態(tài)補(bǔ)償,恢復(fù)河流生態(tài)系統(tǒng)健康。近些年,水利水電項(xiàng)目逐步開始建設(shè)魚道工程作為大壩的連接通道,以協(xié)助魚類洄游產(chǎn)卵、促進(jìn)上下游種群基因交流[6-8],在魚道的運(yùn)行過程中需要開展過魚監(jiān)測[9],對(duì)驗(yàn)證魚道的過魚效果、提高魚道的過魚效率、優(yōu)化運(yùn)行方式,實(shí)現(xiàn)魚道的科學(xué)管理,促進(jìn)魚類資源保護(hù)具有重要的理論意義。
目前,已有不少國內(nèi)外學(xué)者開展了魚道過魚監(jiān)測研究[10-14]??傮w來看,國內(nèi)外魚道過魚效果按監(jiān)測方式可分為直接法和間接法兩大類,其中人工觀測、張網(wǎng)法、堵截法等屬于直接法[15],雖然可以判斷過魚種類和數(shù)量[16],但過度依賴人工操作,效率和準(zhǔn)確率較低、對(duì)魚類干擾大,成本高。而聲學(xué)和PIT遙測法等屬于間接法[17-18],通過深度分析采集的數(shù)據(jù),開展過魚效果評(píng)估,其中過魚數(shù)量的準(zhǔn)確性取決于數(shù)據(jù)分析方法[19]。在分析現(xiàn)階段常采用的監(jiān)測技術(shù)方法差距后可以看出,現(xiàn)有監(jiān)測技術(shù)方法難以滿足過魚監(jiān)測的準(zhǔn)確率和效率要求。
隨著計(jì)算機(jī)視覺等多個(gè)領(lǐng)域取得重大突破[20],越來越多的深度學(xué)習(xí)算法在眾多領(lǐng)域得到應(yīng)用[21-23],為提高魚道過魚目標(biāo)監(jiān)測的準(zhǔn)確率和效率提供了可行性。張亦弛等[24]通過卷積神經(jīng)網(wǎng)絡(luò)對(duì)水下聲吶探測到的圖像進(jìn)行檢測,但網(wǎng)絡(luò)比較單一,檢測的準(zhǔn)確率比較低;王蓉蓉等[25]基于水下目標(biāo)檢測特征提取困難、目標(biāo)漏檢等問題,提出了一種改進(jìn)的CenterNet算法,但模型檢測速度較低,僅有7 f/s;強(qiáng)偉等[26]基于SSD目標(biāo)檢測算法,提出用ResNet網(wǎng)絡(luò)代替VGG網(wǎng)絡(luò)作為算法的特征提取網(wǎng)絡(luò),提高對(duì)水下復(fù)雜環(huán)境的檢測精度和速度;李寶奇等[27]針對(duì)水下光學(xué)圖像目標(biāo)檢測精度低的問題,提出了SSD-MV2SDB網(wǎng)絡(luò),有效提升了水下檢測精度;陳宇梁等[28]針對(duì)光學(xué)圖像在水中衰弱嚴(yán)重等問題,提出了YOLOv5s-underwater模型,有效提高了檢測精度。但以上方法都是基于單一背景下的目標(biāo)檢測,在魚道工程環(huán)境里,水下成像背景復(fù)雜,存在泥沙、樹枝樹葉等雜質(zhì)漂浮物,大幅增加魚道過魚目標(biāo)的檢測難度。而且過魚季節(jié)的天然河流水體濁度高,自然光在水體傳播時(shí)易受吸收、反射和散射等影響,普遍存在成像效果對(duì)比度低、模糊等問題,導(dǎo)致魚類特征信息匹配困難。同時(shí),魚道內(nèi)的水流具有一定流速,在過魚季節(jié)時(shí),魚類高速上溯通過魚道,常伴有密集魚群遮擋通過等問題,為動(dòng)態(tài)目標(biāo)的快速檢測造成了難度。裴倩倩等[29]采用YOLOv3目標(biāo)檢測模型實(shí)現(xiàn)了魚道內(nèi)的檢測,但不能解決復(fù)雜水體環(huán)境下的魚類動(dòng)態(tài)目標(biāo)快速捕捉、密集魚群遮擋識(shí)別問題,造成漏檢、誤檢等現(xiàn)象。漏檢和誤檢不利于科學(xué)評(píng)估魚道過魚效果,魚道中常會(huì)通過一些珍稀物種[30],需要在其游動(dòng)狀態(tài)對(duì)目標(biāo)進(jìn)行快速準(zhǔn)確檢測。為提高檢測網(wǎng)絡(luò)精度,往往會(huì)在模型中添加注意力機(jī)制[31-32]或加深網(wǎng)絡(luò)結(jié)構(gòu)深度[33]來提升準(zhǔn)確率,但隨著添加注意力機(jī)制和網(wǎng)絡(luò)的加深,模型的計(jì)算參數(shù)也會(huì)大幅度增加,導(dǎo)致模型處理速度下降[34-37],滿足不了工程現(xiàn)場中實(shí)時(shí)檢測的需求。
基于上述問題,本文針對(duì)魚道水下環(huán)境復(fù)雜、特征信息匹配困難、準(zhǔn)確率和效率低等問題對(duì)YOLOv5s網(wǎng)絡(luò)模型進(jìn)行改進(jìn)。首先,針對(duì)魚道工程現(xiàn)場復(fù)雜水體環(huán)境造成的圖像模糊、過魚目標(biāo)檢測困難的問題,提出將Swin Transformer (STR)作為檢測層,提高模型對(duì)全局信息的捕獲能力,加強(qiáng)對(duì)魚類特征信息解碼,以進(jìn)一步優(yōu)化模型的檢測性能。其次,針對(duì)水下密集魚群相互遮擋時(shí),被遮擋目標(biāo)易出現(xiàn)漏檢的問題,提出ECA注意力機(jī)制作為C3的Bottleneck,提高網(wǎng)絡(luò)對(duì)目標(biāo)特征信息的提取能力,增強(qiáng)不同網(wǎng)絡(luò)層之間特征信息的傳遞,提升模型檢測精度,降低漏檢率。然后,針對(duì)水下光學(xué)圖像存在對(duì)比度低,檢測目標(biāo)定位差,造成模型不收斂的問題,利用Focal and efficient IOU loss(FIOU)作為模型損失函數(shù),獲得更加精確的框定位和使訓(xùn)練損失得到更快收斂,優(yōu)化模型整體性能。最后,為提高模型的處理速度,將訓(xùn)練好的模型使用TensorRT框架部署進(jìn)行優(yōu)化,使模型達(dá)到最大的推理吞吐量和效率,以實(shí)現(xiàn)模型推理加速。
YOLOv5為一種高效、快速的單階段目標(biāo)檢測算法,主要由輸入端、主干提取網(wǎng)絡(luò)、頸部網(wǎng)絡(luò)、檢測端4部分組成。輸入端(Input)主要是圖像的輸入以及Mosaic數(shù)據(jù)增強(qiáng)。主干提取網(wǎng)絡(luò)(Backbone)由卷積層(Conv)、瓶頸層(C3)和快速空間金字塔池化(Spatial pyramid pooling-fast,SPPF)構(gòu)成。頸部網(wǎng)絡(luò)(Neck)采用實(shí)例分割框架下的路徑聚合網(wǎng)絡(luò)結(jié)構(gòu)(Path aggregation network,PANet)對(duì)網(wǎng)絡(luò)進(jìn)行特征加強(qiáng)。檢測端(YOLO Head)將得到的特征圖進(jìn)行解碼預(yù)測,輸出檢測目標(biāo)的類別和位置。
魚類在水體中的姿態(tài)、形狀會(huì)隨著游動(dòng)在不同時(shí)刻發(fā)生不同變化,為實(shí)現(xiàn)復(fù)雜水體環(huán)境下的動(dòng)態(tài)目標(biāo)快速檢測,對(duì)YOLOv5模型進(jìn)行改進(jìn),如圖1所示,具體方案為:①在Neck結(jié)構(gòu),以Swin Transformer模塊作為模型的檢測層,增強(qiáng)模型對(duì)特征信息解碼能力。②將C3模塊的Bottleneck用ECA注意力機(jī)制代替,提高對(duì)圖像有效特征信息的提取能力。③使用FIOU作為模型損失函數(shù),優(yōu)化模型回歸性能。
圖1 本文算法框架Fig.1 Framework of algorithm model
1.2.1Swin Transformer模塊
Swin Transformer[38]是一種窗口注意力模塊,由窗口多頭自注意力模型(Window multi-head self-attention modules,W-MSA)和滑動(dòng)窗口多頭自注意力模型(Shifted-window multi-head self-attention modules,SW-MSA)構(gòu)成,是Transformer[39]結(jié)構(gòu)的變體,如圖2所示。其中LN表示層歸一化,MLP是多層感知器,相鄰塊之間分別使用了W-MSA和SW-MSA模塊,其利用多頭自注意力機(jī)制有效運(yùn)用同層次的多維度信息,有利于在復(fù)雜多樣的目標(biāo)場景中檢測多尺度目標(biāo)。因此,本文以Swin Transformer作為模型的檢測層,通過該結(jié)構(gòu)提高模型對(duì)于目標(biāo)識(shí)別的泛化性。自注意力機(jī)制是STR的核心部分,計(jì)算公式為
圖2 Swin Transformer 模塊Fig.2 Swin Transformer module
(1)
Z=contant(A1,A2,…,Aj)W
(2)
其中
(3)
式中Q——圖像注意力查詢向量
K——圖像注意力鍵向量
V——圖像注意力值向量
dk——向量Q和K的維度
W——線性化系數(shù)矩陣
Z——多頭自注意力機(jī)制結(jié)合不同獨(dú)立特征空間信息得到的深層次特征
A——自注意力機(jī)制
Softmax(t)——?dú)w一化指數(shù)函數(shù)
N——多類分類器類數(shù)
contant(A1,A2,…,Aj)——不同自注意力機(jī)制容器
1.2.2ECA結(jié)構(gòu)
魚群通過時(shí),易相互遮擋,被遮擋目標(biāo)有效信息少,為充分挖掘有限信息,減少漏檢現(xiàn)象,本文將Efficient channel attention(ECA)[40]代替主干網(wǎng)絡(luò)C3模塊的Bottleneck。ECA(圖3,圖中χ表示特征圖)是一種極其輕量級(jí)的通道注意模塊,主要提出了一種不降維的局部跨信道交互策略和自適應(yīng)選擇一維卷積核大小的方法,可以減少模型的計(jì)算參數(shù)量并提升檢測精度。自適應(yīng)卷積核k的計(jì)算式為
(4)
式中 |t|odd——距離t最近的奇數(shù)
C——通道數(shù)
圖3 ECA注意力機(jī)制Fig.3 ECA attention mechanism
圖4 TensorRT優(yōu)化流程圖Fig.4 TensorRT optimization process
1.2.3Focal and efficient IOU loss
YOLO作為典型的one-stage網(wǎng)絡(luò)模型,為了提高檢測速度[41],相對(duì)于two-stage目標(biāo)檢測模型[42],舍棄了生成候選框這一階段,缺少了對(duì)anchor box的篩選過程,導(dǎo)致目標(biāo)定位生成的錨框正負(fù)樣本不平衡,而且YOLOv5原本使用的Generalized intersection over union loss (GIOU)[43]在預(yù)測框和真實(shí)框重合時(shí),無法區(qū)分預(yù)測框和真實(shí)框的位置關(guān)系,預(yù)測框與真實(shí)框之間的誤差較大。因此本文使用Focal and efficient IOU loss(FIOU)[44]作為模型損失函數(shù),其通過減少易分類樣本的權(quán)重,使得模型在訓(xùn)練時(shí)更專注于難分類的樣本,優(yōu)化目標(biāo)框定位,提升收斂速度,F(xiàn)IOU損失計(jì)算式為
LFIOU=IOUγLEIOU
(5)
其中
(6)
(7)
式中IOU——邊界框與真實(shí)框進(jìn)行交并比
b——預(yù)測框中心點(diǎn)
bgt——真實(shí)框中心點(diǎn)γ——超參數(shù)
w——預(yù)測框?qū)挾葁gt——真實(shí)框?qū)挾?/p>
h——預(yù)測框高度ρ——兩點(diǎn)間歐氏距離
hgt——真實(shí)框高度
Rw、Rh——能夠同時(shí)包含預(yù)測框和真實(shí)框的最小閉包區(qū)域?qū)挾?、高?/p>
R——能夠同時(shí)包含預(yù)測框和真實(shí)框的最小閉包區(qū)域的對(duì)角線距離
為提高模型的處理速度,采用TensorRT框架部署進(jìn)行優(yōu)化。TensorRT是NVIDIA推出的高效推理引擎,其包含2個(gè)階段:構(gòu)建(build)和部署(deployment)。在構(gòu)建階段,TensorRT對(duì)神經(jīng)網(wǎng)絡(luò)圖(Neural network graph)進(jìn)行了幾個(gè)重要的轉(zhuǎn)換和優(yōu)化:①消除未使用的輸出的層以避免不必要的計(jì)算。②將Convolution、Bias和ReLU層融合形成單個(gè)層,主要是垂直層融合和水平層融合,減少計(jì)算步驟和傳輸時(shí)間,如圖4所示。在部署階段,TensorRT以最小化延遲和最大化吞吐量運(yùn)行優(yōu)化了的網(wǎng)絡(luò)。將訓(xùn)練好的.pt權(quán)重通過C語言轉(zhuǎn)換為引擎文件.engine和動(dòng)態(tài)庫.dll,將其部署在網(wǎng)絡(luò)中可使模型獲得加速推理。
深度學(xué)習(xí)目標(biāo)需要大量的數(shù)據(jù)集支撐,且在所需檢測場景下,數(shù)據(jù)采集對(duì)該場景的目標(biāo)檢測效果往往具有決定性作用。因此本文數(shù)據(jù)集分別在西藏自治區(qū)某魚類增殖站、水產(chǎn)科學(xué)研究所和某水電站自行采集所得,采集后的數(shù)據(jù)集經(jīng)過人工剔除冗余、像素質(zhì)量差圖像,共3 000幅魚類圖像。將圖像數(shù)據(jù)使用LabelImg標(biāo)注后使用腳本轉(zhuǎn)換為YOLOv5訓(xùn)練格式文件,并將其按比例8∶2隨機(jī)構(gòu)建訓(xùn)練集和驗(yàn)證集。
為客觀評(píng)價(jià)不同模型算法對(duì)魚類目標(biāo)的檢測性能,采用準(zhǔn)確率(Precision)、召回率(Recall)、平均精度均值(mAP)、參數(shù)量(Params)以及單幅圖像平均處理時(shí)間綜合衡量模型。準(zhǔn)確率可以衡量模型預(yù)測正確的比例;召回率衡量模型預(yù)測正確的目標(biāo)比例;平均精度均值衡量模型的整體性能;參數(shù)量衡量計(jì)算內(nèi)存資源的消耗;圖像平均處理時(shí)間衡量模型的實(shí)時(shí)性。
實(shí)驗(yàn)基于Windows 10,CPU處理器為Intel(R)i7-11800H、GPU為GeForce RTX3080顯卡(顯存為16GB),在Pytorch 1.9深度學(xué)習(xí)框架進(jìn)行訓(xùn)練,選用YOLOv5s模型進(jìn)行實(shí)驗(yàn),具體環(huán)境配置和模型訓(xùn)練參數(shù)見表1。
為驗(yàn)證本文研究對(duì)YOLOv5s提出3種改進(jìn)策略的有效性和先進(jìn)性,在相同實(shí)驗(yàn)平臺(tái)的基礎(chǔ)上,進(jìn)行8組消融實(shí)驗(yàn),并采用同一驗(yàn)證集進(jìn)行驗(yàn)證,評(píng)估不同改進(jìn)對(duì)模型性能的影響。
通過表2可以看出不同的改進(jìn)策略對(duì)原YOLOv5s模型性能均有不同程度的提升,結(jié)果表明,模型B召回率雖有微小降低,但準(zhǔn)確率得到大幅提高,mAP較模型A提升2.3個(gè)百分點(diǎn),計(jì)算參數(shù)量減少0.62 MB,使得處理時(shí)間減少2.7 ms,證明將ECA注意力機(jī)制作為主干特征提取網(wǎng)絡(luò)中C3結(jié)構(gòu)的Bottleneck在減輕模型計(jì)算參數(shù)量的同時(shí)可以更好地提取目標(biāo)特征信息,提升檢測精度。將STR作為檢測層,模型召回率得到改善,mAP提升3.3個(gè)百分點(diǎn),模型解碼能力得到加強(qiáng),提升了模型對(duì)目標(biāo)的檢測能力。從圖5a可以看出,模型用FIOU作為模型損失函數(shù)后,目標(biāo)框訓(xùn)練損失值得到了有效降低,雖然mAP沒有得到提高,但檢測速度得到了大幅提升,解決了模型不收斂、定位框不準(zhǔn)確的問題。從圖5b可以看出,本文改進(jìn)的算法較其它模型,整體的mAP達(dá)到最優(yōu),為91.9%,較YOLOv5s提升4.8個(gè)百分點(diǎn),且沒有為提升檢測精度而犧牲檢測速度,模型單幅圖像檢測時(shí)間為10.4 ms。
表1 實(shí)驗(yàn)平臺(tái)參數(shù)配置Tab.1 Parameter configuration of experimental platform
表2 消融實(shí)驗(yàn)評(píng)估Tab.2 Evaluation form of ablation experiment
圖5 消融實(shí)驗(yàn)訓(xùn)練損失值和mAPFig.5 Ablation experiment training loss and mAP
圖6 YOLOv5s和本文算法檢測效果對(duì)比Fig.6 Comparison between YOLOv5s and proposed algorithm
為檢驗(yàn)本文算法改進(jìn)的準(zhǔn)確性,隨機(jī)抽取某水電站魚道過魚季節(jié)圖像作為YOLOv5s和本文算法的測試集。圖6為該水電站魚道過魚實(shí)際拍攝圖的檢測結(jié)果,圖6a在密集魚群相互遮擋時(shí),因圖像信息少,YOLOv5s產(chǎn)生漏檢的情況,而本文算法并未發(fā)生漏檢;圖6b在微小目標(biāo)模糊場景下,YOLOv5s未能檢測出圖像中間模糊的小目標(biāo)魚類,本文算法成功的檢測出小目標(biāo)魚類;在圖6c水下場景復(fù)雜,樹枝等雜質(zhì)漂浮物與目標(biāo)魚類重疊,容易將魚類與雜質(zhì)混淆,在水體濁度較大的情況下,YOLOv5s將左下的樹枝陰影識(shí)別成魚類,而本文算法則完成了正確的檢測和識(shí)別。
綜上,本文算法有效提高了算法在渾濁水體下對(duì)目標(biāo)的檢測能力,減少了因魚群遮擋、模糊和有效信息少造成漏檢的情況,并有效提升了模型精度,魯棒性更強(qiáng),能夠適應(yīng)復(fù)雜的水下環(huán)境。
為進(jìn)一步驗(yàn)證本文提出的改進(jìn)算法在復(fù)雜水體下魚道過魚監(jiān)測識(shí)別能力優(yōu)于其它目標(biāo)檢測算法,使用相同復(fù)雜水體數(shù)據(jù)集對(duì)SSD、Faster R-CNN、YOLOv4、YOLOv5s和YOLOv5x在同一實(shí)驗(yàn)平臺(tái)進(jìn)行訓(xùn)練和驗(yàn)證,主要測試其檢測精度和速度,結(jié)果如表3所示。從表3可以看出,與其它算法相比,本文提出的改進(jìn)YOLOv5s算法在mAP取得了最優(yōu)值。YOLOv5x通過增加網(wǎng)絡(luò)的深度使得模型的mAP得到一定的提升,但模型參數(shù)計(jì)算量也隨著模型深度的增加而增加,導(dǎo)致模型處理速度比YOLOv5s增加了一倍。而本文算法在保證處理速度的前提下,提高了模型的mAP等各項(xiàng)指標(biāo),進(jìn)一步證明了本文算法在檢測性能上具有更高的優(yōu)勢(shì),更適合完成復(fù)雜水體下魚道過魚目標(biāo)檢測。
表3 主流算法實(shí)驗(yàn)評(píng)估結(jié)果Tab.3 Experimental evaluation results of mainstream algorithms
目前YOLOv5網(wǎng)絡(luò)模型轉(zhuǎn)TensorRT有兩種方式:①直接使用YOLOv5自帶的轉(zhuǎn)換腳本轉(zhuǎn)換成onnx形式后直接生成.engine文件(方式1),這種比較便捷直接,但模型推理速度優(yōu)化有一定局限性。②本文的轉(zhuǎn)換方式,首先通過C語言對(duì)YOLOv5進(jìn)行編譯,然后生成.engine引擎文件和.dll動(dòng)態(tài)鏈接庫進(jìn)行部署(方式2)。選取100幅圖像分別對(duì)推理加速前、方式1推理加速以及方式2推理加速進(jìn)行測試,得到的推理效率結(jié)果見圖7。從圖7可以看出,將模型部署為TensorRT后推理速度均可得到大幅提升。原始YOLOv5s模型每幅圖像平均推理時(shí)間為10.8 ms,本文算法為10.4 ms,使用方式1的方法將模型部署為TensorRT后,2個(gè)模型的推理速度分別提升2.6倍和2.3倍,而使用本文的方式將模型部署為TensorRT,推理速度達(dá)到2.6、2.3 ms,相比轉(zhuǎn)換前,模型推理速度提高4倍多,該方式可以有效解決模型檢測速度慢或者因改進(jìn)模型而降低處理速度的問題,優(yōu)化計(jì)算損耗。
圖7 TensorRT部署推理時(shí)間對(duì)比Fig.7 Comparison of TensorRT deployment reasoning time
本文對(duì)YOLOv5s進(jìn)行了改進(jìn),檢測精度和處理速度均為側(cè)重點(diǎn),表2為消融實(shí)驗(yàn)驗(yàn)證不同改進(jìn)對(duì)算法的影響。每個(gè)改進(jìn)模塊對(duì)模型提升的效果均不一樣,YOLOv5s在添加ECA模塊后(模型 B),其準(zhǔn)確率大幅度提升,對(duì)目標(biāo)的特征匹配能力增強(qiáng),但召回率有所下降。召回率衡量實(shí)際為正的樣本中被預(yù)測為正樣本的概率,是不可忽略的一部分。而實(shí)驗(yàn)中發(fā)現(xiàn),YOLOv5s將STR作為檢測層后能有效提高模型的召回率(模型 C),因此將兩者組合起來后,進(jìn)行了互補(bǔ),模型(模型 E)的精確度mAP得到了進(jìn)一步提高,但模型的平均處理速度卻降低了,雖然在準(zhǔn)確率和召回率提高的情況下,推理速度增加的時(shí)間是可以接受的,并不影響在魚道工程中的過魚實(shí)時(shí)檢測。但為了不犧牲檢測效率提升模型精度,本文對(duì)模型的損失函數(shù)進(jìn)行了更換(模型 D),發(fā)現(xiàn)FIOU作為損失函數(shù)后模型的精度提升可以忽略不計(jì),但處理速度卻提高1.6倍。因此將3種改進(jìn)措施進(jìn)行組合(本文算法),實(shí)驗(yàn)結(jié)果表明,本文算法在檢測精度、能力、計(jì)算消耗和處理速度4個(gè)指標(biāo)上均優(yōu)于YOLOv5s,在惡劣環(huán)境下本文算法具有更好的性能,可以很好地解決水下環(huán)境復(fù)雜、特征信息匹配困難、準(zhǔn)確率和效率低等問題。如圖6所示,在魚群遮擋、圖像模糊、有效信息少的情況下,與YOLOv5s相比,本文算法在目標(biāo)定位和檢測能力等方面都有很大提升。然而,當(dāng)環(huán)境過于復(fù)雜、目標(biāo)魚類較小時(shí),本文的模型仍然可能存在漏檢。如圖8所示,圖像中左邊的魚類頭部沒有被檢測出來。且在實(shí)驗(yàn)的過程中發(fā)現(xiàn),雖然對(duì)樹枝等雜質(zhì)漂浮物誤識(shí)別的概率大幅度降低,但該現(xiàn)象還會(huì)偶爾發(fā)生。出現(xiàn)這種現(xiàn)象可能的原因有:①數(shù)據(jù)集不夠豐富,對(duì)訓(xùn)練中沒有出現(xiàn)的微小目標(biāo)魚類識(shí)別困難。②數(shù)據(jù)集中沒有添加負(fù)樣本,導(dǎo)致將樹枝等雜質(zhì)容易識(shí)別成目標(biāo)魚類。未來,針對(duì)微小目標(biāo)魚類識(shí)別困難的問題,可以對(duì)數(shù)據(jù)集進(jìn)行擴(kuò)充,針對(duì)性的添加微小目標(biāo)魚類圖像,通過提高樣本類型的豐富性和實(shí)時(shí)性來提高模型的魯棒性;針對(duì)誤識(shí)別的問題,可以在訓(xùn)練集中添加負(fù)樣本,如添加各種雜質(zhì)和漂浮物(特別是樹枝和樹葉)樣本,可以避免誤檢,提高目標(biāo)魚類的檢測精度。
圖8 YOLOv5s和本文算法漏檢現(xiàn)象Fig.8 Missing detection of YOLOv5s and proposed algorithm
此外,本文通過C語言轉(zhuǎn)換的方式對(duì)模型進(jìn)行TensorRT部署,避免不必要的計(jì)算,使推理速度大幅度提升。圖9為本文算法使用TensorRT部署前后的檢測效果,可以看出兩者的檢測性能和推理生成的定位框幾乎沒有任何的差異,故本文方法將模型部署為TensorRT不會(huì)影響其檢測精度。
圖9 TensorRT部署前后檢測效果Fig.9 Detection effect before and after TensorRT deployment
(1)為解決傳統(tǒng)魚道監(jiān)測方式過度依賴人工、對(duì)魚類干擾大以及現(xiàn)階段技術(shù)對(duì)復(fù)雜水體下的魚道過魚監(jiān)測效率低、準(zhǔn)確率差等問題,提出了一種基于YOLOv5模型改進(jìn)的復(fù)雜水體魚道檢測算法,并將其部署在TensorRT上,相比其它算法模型,本文算法在各指標(biāo)均表現(xiàn)出強(qiáng)大的優(yōu)勢(shì)。
(2)針對(duì)水下環(huán)境復(fù)雜,檢測目標(biāo)困難的問題,將STR作為模型檢測層,提高了檢測能力;將輕量級(jí)注意力ECA作為C3模塊Bottleneck,加強(qiáng)模型特征提取能力,減輕了計(jì)算參數(shù)量并提升了模型檢測精度;使用FIOU作為損失函數(shù),使模型預(yù)測框更精確;將本文算法部署于TensorRT,優(yōu)化模型結(jié)構(gòu),降低計(jì)算損耗,處理速度得到大幅度提升。
(3)實(shí)驗(yàn)結(jié)果表明,本文算法的準(zhǔn)確率、召回率、平均精度均值均有提升,mAP達(dá)到91.9%,較YOLOv5s提升4.8個(gè)百分點(diǎn),具有更好的檢測性能,使用TensorRT部署后模型處理時(shí)間可以達(dá)到每幅圖像2.3 ms,提高4.5倍。
農(nóng)業(yè)機(jī)械學(xué)報(bào)2022年12期