關鍵詞魚體病害檢測;YOLOv8;特征提取網絡;注意力機制;特征金字塔
隨著人民生活水平的提高,海洋食品的需求日益增加[1],因此海洋魚類養(yǎng)殖業(yè)在短時間內得到了快速發(fā)展。在魚類養(yǎng)殖過程中,魚體病害是影響魚類產量的關鍵因素之一,對養(yǎng)殖效益產生了巨大的影響。例如,在挪威的一個海洋鮭魚養(yǎng)殖場,疾病導致的死亡占總損失的70%,另外據越南方面的報告,每年因疾病導致的平均損失高達10億美元[2]。因此,研究一種高效且準確的魚體病害檢測方法以及時防控魚病是減少養(yǎng)殖損失的重要措施。
魚體病害檢測方法多種多樣,其中目視檢查法是常用的方法之一[3]。然而這種方法不僅耗費大量的人力資源[4],而且其可靠性也有待考察。近年來,隨著人工智能的發(fā)展,國內外學者開始嘗試利用深度學習的方法來識別魚體病害。Noman等[5]對采集的病魚圖像使用光照調整等預處理程序并使用HY?BRID-CNN為基礎結構對孟加拉國鱸魚的傷口病等4種疾病進行檢測,最終在其自制的數據集上,總體識別準確率為99.28%,但該方法未明確提及模型的檢測速度和實時性方面的表現且在實際復雜環(huán)境下的魯棒性仍需進一步驗證。Khabusi等[6]針對目前缺乏公開的魚病數據集和復雜的水下環(huán)境限制了魚病自動檢測和分類的問題,提出利用背景消除的方法來減少背景的干擾,并將CBAM注意力與ResNet50網絡融合進行魚病分類,其準確率、精確率、召回率和F1-score分別達到89.9%、89.9%、89.3%和89.7%。該方法在一定程度上解決了背景干擾的問題,但該方法的實時性仍未得到驗證。陳科等[7]以YOLOv5s模型為基礎對鯽病害檢測進行研究,采用ShuffleNetV2改進主干網絡,對模型進行輕量化改進,引入CBAM提高模型精準度,并使用ASPP模塊提升模型的魯棒性,最終實現92.0%的檢測精度與14400kb的模型體積,但其未考慮不規(guī)則病灶的檢測并且試驗條件局限于實驗室規(guī)模。Yu等[8]以Mo?bileNet3-GELU-YOLOv4結構為基礎對出血性敗血癥等4種魚體病害進行檢測與識別,在輕量化模型的基礎上進一步將mAP和幀率分別提高了12.39%和19.31幀/s,實現了檢測速度與識別精度的雙重提升,但其未考慮到形態(tài)各異的病斑是否會被檢測到的問題。魏立明等[9]利用CNN擅長提取魚類圖像細粒度特征的優(yōu)點與Transformer善于獲取全局圖像信息的優(yōu)勢構建了CViT-FDRM魚類疾病識別模型,最終在自制404張測試集上達到了97.02%的識別準確率,該方法成功提取了魚病的細粒度特征,但未充分考慮對分布式目標特征的信息捕捉能力。
以上研究者針對魚體病害檢測中的相關問題提出了多種解決方案。但這些檢測研究仍處于早期階段[10-12],均未考慮病害的形狀和分布范圍是否會對檢測結果產生影響。因此,本研究提出一種基于雙通道分層協同的CEH-YOLOv8魚體病害檢測方法。首先,提出一種雙通道主干網絡,旨在增強網絡對形狀不規(guī)則、紋理不清晰病斑的檢測能力。然后,提出一種ECSA注意力機制,增強模型對長程依賴關系的學習,進而提升模型對分布式病害的特征提取能力。最后,提出一種新型頸部網絡HBFPN,充分融合不同通道的特征信息。旨在解決病害形狀不規(guī)則、紋理不清晰以及病斑分散導致難以定位真實病害區(qū)域的問題。
1 材料與方法
1.1 數據集采集與處理
本研究采用??低旸S-E12高清攝像頭。在鯉魚養(yǎng)殖場中首先挑選出帶有體表病灶的魚并放至容器中,隨后采集圖像信息,最后刪除誤拍等無效圖像后得到550張原始數據集。在真實養(yǎng)殖場景下,魚體表面圖像的采集受到攝像頭角度變化、病斑尺寸多樣性、水體中水草遮擋及光照條件波動等多重因素的干擾。為應對這些挑戰(zhàn),本研究采用了圖像翻轉、裁剪及添加噪聲等數據增強算法。這些技術分別用于模擬攝像頭的不同觀測角度和捕捉魚體病灶在不同位置和尺度下的特征;同時,通過添加噪聲來模擬真實養(yǎng)殖環(huán)境中可能出現的圖像質量問題。經過上述處理,最終構建了1個包含5512張樣本的高質量魚體病害圖像數據集,如圖1所示。建立數據集后,使用LabelImg軟件進行病害標注,并按照8∶1∶1的比例分為訓練集、驗證集和測試集。
1.2 YOLOv8網絡模型
YOLO(youonlylookonce)系列[13-14]算法自2015年推出以來,因其準確的目標檢測能力而廣受歡迎。YOLOv8是Ultralytics公司在2023年1月推出的開源模型,它共有n、s、m、l、x5種不同大小的模型規(guī)模以靈活應對多樣化的應用場景和性能需求。在實際魚類養(yǎng)殖場景下,因魚病檢測的實時性要求較高[15],筆者采用推理速度最快且模型復雜度最低的YOLOv8n模型作為Baseline進行研究。
YOLOv8n由主干網絡、頸部網絡、預測網絡[16]三大部分組成。主干網絡采用了CSPDarkNet結構,并提出一種新型空間金字塔池化方法-SPPF(serialparallelpoolingfusion),SPPF模塊將YOLOv5網絡中的SPP并行池化結構革新為串行結構,通過連續(xù)應用多個5×5最大池化層,降低了計算量,從而提升了處理速度,實現了效率與性能的雙重優(yōu)化。頸部網絡采用了PANet(pathaggregationnetwork)結構,通過優(yōu)化特征融合策略,提高了多尺度目標檢測的效率與準確性。預測網絡使用了Decoupled-Head結構,使模型更具靈活性和適應性。在損失函數方面,YOLOv8將YOLOv7分類損失BCE-Loss改進為VFL-Loss,提高了分類的準確性,在回歸損失CIoULoss基礎上增加了DFL-Loss,優(yōu)化了邊界框回歸,提高了檢測精度與穩(wěn)定性。此外,主干網絡和頸部網絡都采用了CBS模塊和C2f模塊,其中CBS模塊進行卷積操作、批量歸一化和激活函數處理。C2f模塊取消了YOLOv5中C3模塊分支內的卷積操作,并額外增加了Split操作,在實現輕量化的同時獲取了更為豐富的梯度流信息。
1.3 改進的YOLOv8網絡模型
本研究提出的改進YOLOv8網絡模型如圖2所示,綠色部分構成雙通道特征提取網絡,承擔著從輸入圖像中精準提取各種類型病害特征的任務。橙色部分為HBFPN特征金字塔網絡,負責對不同層級的特征進行融合,以獲取更為豐富和準確的特征表示。藍色部分為預測網絡,負責對目標進行精準定位和分類,生成最終的檢測結果?;疑糠终f明了整個網絡中每個模塊的具體結構。
1.4 Backbone改進
標準卷積在提取魚體病害這種具有隨機發(fā)病形狀的特征時,固定的kernelsize和stride難以捕捉不規(guī)則和復雜的紋理特征,從而導致關鍵信息的丟失。相比之下,DSConv[17]具有更靈活的卷積路徑,能夠自適應地調整卷積方向,因此可以更好地提取不規(guī)則形狀的特征信息。為保持對規(guī)則形狀病斑的識別精準度并增強對不規(guī)則病斑的識別能力,本研究將DSConv與標準卷積并行加入YOLOv8主干網絡中。DSConv用于捕捉圖像中不規(guī)則形狀病斑的特征信息,標準卷積對DSConv提取的特征進行有效整合與精細化處理,進一步增強了模型識別的準確性。然后在主干網絡尾部與原主干網絡進行特征融合,使得網絡能夠綜合不同層級的特征信息,提高整個模型的識別精準度。其結構如圖3所示。
DSConv作為即插即用的模塊在二維3×3卷積核的基礎上擴展為9×9的卷積核,旨在擴大感受野,獲取到更為廣泛的圖像信息。引入偏移量Δ,提高卷積核的靈活性,從而更為有效地捕捉到不規(guī)則病灶形狀的信息,如公式(1)。
每個網格Ki±c=(xi±c,yi±c)的位置由與中心的水平距離c決定,c={0,1,2,3,4},K的數值如公式(2)所示:
在卷積核K中,每個網格位置Ki±c的選取遵循累積的過程,這一過程起始于中心位置Ki,隨后依據前一個網格的位置來確定后續(xù)網格的位置,因此Ki+1與Ki之間的位置差異表現為一個偏移量Δ。因此,累加偏移量可以確保卷積核保持線性形態(tài)結構的一致性。如圖4A、圖4B所示,在x軸方向上為公式(3),在y軸方向上為公式(4)。
因此,相比于DCN(deformableconvolution),如圖4C所示,過于自由的偏置學習方式,DSConv可以更好地提取微小細長的病害特征。
1.5 ECSA注意力機制
ECSA(efficientchannelspatialattention)是一種融合了改進的ECA[18](efficientchannelattention)模塊和ESA(efficientspatialattention)模塊的注意力機制。首先對輸入的圖像通過改進的ECA模塊將特征圖在空間維度上壓縮成一維矢量,以實現對特征映射的空間信息進行有效聚合。然后通過ESA模塊對圖像的不同通道進行特征信息的提取與整合,進一步增強模型對真實目標區(qū)域的關注,如圖5所示。
為克服ECA平均池化操作會將噪聲也納入計算的缺點,本研究在ECA平均池化的基礎上引入最大池化。首先對輸入的特征圖進行全局平均池化與最大池化的操作,將特征圖從大小為(N,C,H,W)轉換為(N,C,1,1),并將經過池化后的特征輸入到卷積核大小為k的一維卷積中,其中C為通道數,|x|odd為距離x最近的奇數,γ和b分別取2和1。
然后經過sigmoid激活函數將權重映射在0~1。將得到的權重與原始特征圖進行element-wise(公式中用?表示)操作生成ESA模塊所需的輸入特征。改進的ECA注意力機制公式如下:
SAM(spatialattentionmodule)在通道壓縮時采用最大池化和平均池化,但此過程會導致學習長程依賴關系的能力降低,進而損失對分布式目標的特征提取能力。為彌補這一不足,在原始SA(spatialattention)的基礎上引入SGC(spatialgroupconvolu?tion)模塊,如圖5所示。SGC為4組3×3卷積,通過引入分組卷積使模型能夠更加專注于病害特征的提取,然后增加1層5×5卷積層以增強模型的可表達性。隨后通過1×1卷積實現多通道的特征融合,在保留各通道特征學習的基礎上利用通道混合重新整合多通道信息。最后所得結果經sigmoid操作生成空間注意力特征圖,再與模塊輸入特征相乘,得到優(yōu)化后的特征表示。ECSA注意力的公式如下:
1.6 特征金字塔改進
在FPN[19](featurepyramidnetworks)的演化過程中,PANet[20](pathaggregationnetwork)(圖6A)與BiFPN[21](bidirectionalfeaturepyramidnetwork)(圖6B)等結構成為其代表性成果。然而在魚體病害檢測的實際應用中,雖然BiFPN結合雙通道主干網絡能夠提取到豐富的特征信息,但其單一的特征融合方式限制了其融合復雜特征信息的能力。為彌補這一不足,本研究提出一種分層協同的特征金字塔網絡(hierarchybidirectionalfeaturepyramidnetwork,HBFPN),如圖6C所示。HBFPN將R1(Right1)與L1(Left1)經過DSConv提取出的特征進行融合,同時將L2與P7經過DSConv提取出的特征進行融合,全面捕捉不同尺度下的魚體病害特征信息。最后將R2經過DSConv提取出的特征進行跨層融合,形成更為全面和精細的特征表達。因此將雙通道的主干網絡與HBFPN特征金字塔相結合能夠充分利用主干網絡在特征提取方面的優(yōu)勢,并通過HBFPN的特征融合策略進一步提升整個模型的病害檢測能力。
1.7 試驗條件
為確保試驗環(huán)境的統(tǒng)一性,在模型訓練和測試時采用相同的實驗平臺配置。該平臺基于Ubuntu18.04操作系統(tǒng),CPU主頻為2.50GHz、核心數為24,運行內存為32GB。此外GPU型號為NVIDIARTX3060,顯存大小為12GB。在軟件方面,采用Pytorch深度學習框架,并使用Python3.7進行編程。
1.8 超參數設置
本研究選取YOLOv8n作為基礎模型,輸入圖像尺寸為640像素×640像素×3像素。為優(yōu)化訓練效率,設定訓練迭代次數為300次,當模型在連續(xù)100次迭代中未能提升性能指標時,訓練過程將終止。此外設定批處理大?。╞atch_size)為8,初始學習率設置為0.01,使用Adam優(yōu)化器,試驗中未采用Mosaic訓練策略。
1.9 評價指標
本研究采用精確率(precision,P)、召回率(re?call,R)和平均精度均值(mAP,公式中用PmA表示)作為評價指標,以全面評估模型的性能。同時還考慮了計算量(GFLOPs)和模型大小,以衡量模型的復雜度和實際應用效率。相關指標計算公式如下,其中TP表示真陽性,FP表示假陽性,FN表示漏報的真陽性數量,PA表示平均精度。
2 結果與分析
2.1 消融實驗
為體現本研究中改進的有效性,對模型進行6組消融實驗。將雙通道主干網絡、ECSA注意力機制、HBFPN金字塔網絡分別添加到YOLOv8模型中,并進行多個改進模塊的組合試驗。具體試驗結果如表1所示。將主干網絡替換成雙通道主干網絡后,由于DSConv對不規(guī)則形狀病斑的特征提取能力的增強,模型的精確率、召回率和mAP分別提升了2.1、3.3和1.8百分點。在主干網絡的尾部融入ECSA注意力機制后,模型能夠綜合提取通道和空間信息,進而更好地捕捉分布式目標的特征。在增加少量參數的情況下,精確率、召回率和mAP分別提升了1.6、1.9和1.4百分點。在探究多個模塊組合使用的效應時,將雙通道主干網絡與HBFPN的組合使用,能夠使模型在保持高效特征提取的同時,更精準地利用不規(guī)則特征的信息,提高對復雜病斑的識別能力。精確率、召回率、mAP實現了3.6、5.1和4.1百分點的提升。同時雙通道主干網絡與ECSA注意力機制的組合,既增強了模型對不規(guī)則特征的關注度,又加強了對分布式特征的信息提取能力,精確率、召回率、mAP分別提升了3、3.9和2.9百分點。最后將雙通道主干網絡、ECSA注意力機制與HBFPN同時加入進模型中,精確率、召回率、mAP上分別得到了4.3、6.9和6百分點的提升。綜上,經過一系列實驗驗證,通過綜合運用雙通道主干網絡、ECSA注意力機制和HBF?PN特征金字塔網絡與YOLOv8網絡進行結合,為魚體病害檢測領域帶來了新的方法。
2.2 YOLOv8使用不同Backbone與FPN的試驗結果
為驗證雙通道主干網絡與HBFPN結合的檢測效果,本研究對比了YOLOv8結合PANet與YO?LOv8結合BiFPN2種模型,試驗結果如表2所示。與YOLOv8+PANet相比,本研究提出的方法在精確率、召回率、mAP方面實現了3.6、5.1和4.1百分點的提升。同時與YOLOv8+BiFPN相比較,也提升了3.4、4.9和3.3百分點。
2.3 不同Backbone與FPN結合的效果對比
為進一步驗證雙通道主干網絡與HBFPN相結合的有效性,本研究挑選5組具有不同形狀且紋理不清晰的病斑圖像進行檢測效果的對比,如圖7所示。黃色框是未能檢測出病害的區(qū)域。傳統(tǒng)的檢測網絡結構,如YOLOv8和YOLOv8+BiFPN在應對不規(guī)則形狀病害以及復雜紋理病害的檢測任務時,通常會出現漏檢的情況。這是由于病害發(fā)病形狀不規(guī)則且有時會與魚體本身的紋理相重合,從而導致病害紋理不清晰,使得網絡難以準確區(qū)分和定位真實的患病區(qū)域。而本研究提出的檢測模型可以解決這類問題,擁有精準識別不規(guī)則形狀病害的能力。
2.4 不同模型的對比試驗
為進一步驗證本研究中模型的綜合性能,將本研究網絡與M-G-YOLOv4、改進的YOLOv5n、YOLOv7-tiny、YOLOv9[22]、Faster-RCNN、目前的SOTA方法YOLOv10[23]以及CEH-YOLOv10n進行對比試驗,具體如表3所示。首先,盡管YO?LOv10與CEH-YOLOv10n在推理速度方面具有優(yōu)勢,但其NMS-free的思想在小目標檢測上具有局限性,進而降低了對細小病斑的識別精準度。因此在涉及隨機病斑大小的魚體病害檢測領域,其應用潛力受到一定限制。大規(guī)模參數網絡如YOLOv9和Faster-RCNN在魚體病害檢測中,預測率和召回率差異較大,主要因網絡參數過多導致過擬合的出現。魚體病害檢測任務需要提取病害的細粒度與分散目標的特征,而過大的參數量使得模型難以部署且僅對個別簡單樣本預測有效。此外,本研究提出的方法僅需6.7MB存儲空間且浮點運算量為10.6×109。在推理速度方面,盡管本研究提出的方法落后于M-G-YOLOv4、改進的YOLOv5n和YO?LOv7-tiny網絡,但整體速度仍保持在單幀推理時間10ms以下。在通用精確度指標方面,本研究方法的mAP值相比于M-G-YOLOv4、改進的YO?LOv5n、YOLOv7-tiny、YOLOv9、YOLOv10、CEHYOLOv10n和Faster-RCNN分別提升了11.1、5.1、10.9、14.1、11.9、9.8和13.4百分點,證明本研究方法在魚體病害檢測任務中的有效性和實用性。綜上,本研究避免了大規(guī)模參數網絡在魚體病害檢測任務中的過擬合問題,同時保持了較高的預測精度和實時性能,為魚體病害檢測領域提供了一種高效、準確的方法。
2.5 魯棒性實驗
為進一步驗證本研究中方法的魯棒性,從互聯網上選取4組魚體病害圖像作為測試樣本,如圖8所示,黃色框是未能檢測出病害的區(qū)域。這些圖像不僅涵蓋了多樣化的病害類型及多種患病魚種,而且還包含了不同程度的背景干擾,從而對模型的魯棒性進行測試。
圖8中的第1列圖像展示了病害分布廣泛且特征復雜的場景。在此情況下,YOLOv8n模型出現了漏檢現象,而本研究所提模型則能夠準確識別并檢測出患病部位。第2列圖像的背景干擾較為嚴重,導致基線模型錯誤地將背景干擾識別為病害。相比之下,本研究的模型能夠精準聚焦于真實病害的具體位置,有效避免了誤檢情況的發(fā)生。第3列圖像中的病害形狀不規(guī)則且紋理不清晰?;€模型雖然能夠檢測出病害的位置,但置信度較低,可靠性較差。而本研究模型則能夠準確定位發(fā)病區(qū)域,且置信度也有大幅提升。第4列圖像中的病害不僅分布廣泛,而且部分病害的紋理不清晰、形狀不規(guī)則。YOLOv8n模型未能檢測到全部病害,漏檢了1個紋理不清晰、形狀不規(guī)則的病害,同時檢測到的病害置信度也明顯不如本研究模型。綜上,本研究所提出的模型在魚體病害檢測領域展現出了一定的優(yōu)勢,不僅能夠有效應對多樣化病害類型的挑戰(zhàn),還能夠提高檢測的準確性和可靠性。
2.6 熱力圖可視化分析
為直觀展示CEH-YOLOv8模型的有效性,將本研究改進的方法與原始模型進行熱力圖可視化對比,如圖9所示。在熱力圖中,顏色越紅表示該區(qū)域對于預測結果的貢獻越大,即模型對于該區(qū)域的關注程度越高。在原始模型YOLOv8n的熱力圖中,如圖9第2行所示,紅色區(qū)域較少且未覆蓋全部病害區(qū)域,這反映出未改進的模型在病害區(qū)域的關注度不夠集中。相比之下,如圖9第3行所示,展示了本研究方法的熱力圖,其中所有病害區(qū)域均被深紅色區(qū)域準確覆蓋,這表明了本研究的方法能夠有效聚焦在病害區(qū)域的目標信息上,從而驗證了該改進方法的有效性。
3 討論
針對目前使用深度學習技術進行魚體病害識別時因魚體病斑形狀不規(guī)則、紋理不清晰以及病斑分散導致難以定位真實病害區(qū)域的難題,本研究提出了一種基于雙通道分層協同的CEH-YOLOv8魚體病害檢測方法。該方法通過將DSConv與標準卷積并行加入YOLOv8主干網絡、增強了模型對不規(guī)則病斑形狀及復雜病害紋理的特征提取能力。設計的ECSA注意力機制進一步增強模型對目標區(qū)域的關注度,有效提升模型對雜散分布病斑的識別精度。引入了HBFPN特征金字塔,進一步強化了整個模型的特征融合能力。通過消融實驗證明本研究提出的改進點可以有效提升病害檢測的準確率。在對比試驗中,本研究提出的方法在精確率、召回率和mAP上較原始YOLOv8網絡分別提升4.3、6.9和6百分點。與YOLOv10網絡相比,提升幅度達到了6.9、11.6和11.9百分點。這說明本研究設計的雙通道主干網絡以及ECSA注意力機制檢測出了原始網絡無法發(fā)現的病害。同時,本研究方法的模型大小為6.7MB,單幀推理時間為9.1ms,有效地平衡了模型的大小和推理速度。在魯棒性實驗中,本研究的方法在面對復雜的背景干擾和病斑形狀時,也未出現漏檢誤檢的情況,且置信度高于基線模型,進一步驗證了本研究改進的有效性。
鑒于目前魚病數據集的稀缺現狀,本研究所使用的數據集無法涵蓋到足夠的魚病種類和魚的品種,因此本研究模型在水下魚體病害檢測的深層次性能驗證仍受到一定限制。在未來的工作中,我們將進一步優(yōu)化本文方法的網絡結構,以提升模型的性能和泛化能力。同時,我們也將繼續(xù)豐富魚體病害數據集,涵蓋更多種類的魚體和病害,以確保模型能夠應對各種實際場景的挑戰(zhàn),為水產養(yǎng)殖業(yè)的病害防控提供更加準確和高效的技術支持,推動該領域的持續(xù)發(fā)展。