










關鍵詞: 目標檢測; 注意力機制; 損失函數; 激活函數; 線蟲
中圖法分類號: S154.38+6; TP391.41 文獻標識碼: A 文章編號: 1000-2324(2024)01-0100-08
根結線蟲會對多種類型的作物產生負面影響,包括蔬菜(如番茄、黃瓜、胡蘿卜等)、果樹(如柑橘類、蘋果等)以及經濟作物(如棉花等),線蟲防治是一個全球性的問題,目前化學防治方法仍是根結線蟲病防治主要手段之一。高效低毒的殺線劑研制過程中,在試劑的活性測試篩選階段,研究人員需要測定不同濃度的化合物藥劑下線蟲的存活率,以對比判斷試劑的殺線蟲效果。傳統的線蟲形態學檢測方法通常包括取樣、分離和鏡檢三個步驟,需要生物實驗室研究人員進行肉眼識別和手動計數工作,亟待利用信息化手段,減輕研究人員的繁重篩選工作。
隨著計算機深度學習技術的發展,深度卷積神經網絡在計算機視覺領域發展迅速,可方便地實現智能識別與目標檢測,在害蟲識別或YOLO網絡模型優化方面,陸健強等[1] 提出基于YOLOv5s 的線蟲快速識別方法YOLOFN,通過坐標注意力機制和高效損失函數提高精度,但基線性能有待提升。李浩等[2] 結合ResNet50 和Faster R-CNN實現高準確率染病松木識別,但對比研究有限。宋懷波等[3]提出改進的YOLOv7模型,加入ECA 機制提高自然環境下蘋果幼果檢測精度,但未實現算法的實際應用。王小榮等[4]增加Swin Transformer 注意力機制提高模型對各分類樣本的檢測精準率,改進了Focal Loss損失函數,對于紅花的識別準確率達到88.5%,仍有待提升。朱香元等[5]用TPH-YOLOv5 進行害蟲識別,結合CBAM和在線數據增強,平均精度85.7%,但缺配套軟件。徐信羅等[6]采用FasterR-CNN識別染病松樹,準確率82.42%,未與其他高性能模型比較。鄭果[7]等提出改進YOLOv7,結合卷積注意力、特征金字塔和MobileNetv3,提高水稻害蟲檢測準確率至85.46%,模型大小20.6 M。Hong 等[8]提出一種改進的YOLOv7 模型進行絕緣表面缺陷檢測,使用動態ODConv替換傳統卷積,使用SIoU 作為損失函數,模型準確度到達88.7%,仍存在提升空間。Wang 等[9]基于CSP 方法對YOLOv4 目標檢測神經網絡進行擴展和縮減,構建適用于小型和大型網絡的模型,但是未實現高通量。
本文以改進的YOLOv7 神經網絡模型為核心算法,實現線蟲的死/活狀態智能識別,通過攝像頭捕捉線蟲圖像,實時上傳到云端系統進行識別檢測,高效準確的線蟲死/活狀態識別和計數,為線蟲研究人員提供便捷手段;此外,開發可視化的WEB端線蟲智能識別管理系統,方便研究人員進行數據管理和分析。
1 數據采集與處理
1.1 數據采集
本文研究所用數據自2023 年3 月于山東農業大學生命科學學院微生物學系微生物資源實驗室采集,共收集到2 402 張JPG 圖像格式,1280像素×960像素分辨率的線蟲圖像。
本文基于STM32 與OV5640,設計并開發了集控制、拍攝、傳輸一體化的單目采集設備。該設備可在顯微鏡目鏡處自動拍攝圖像。設備在接收到服務器命令后,捕獲圖像幀并對數據進行編碼,通過無線網絡向服務器傳輸數據。STM32單片機以及單片機和攝像頭的整體連接如圖1所示。
拍攝終端的整體工作流程如表1所示:
線蟲圖像中,基于體態學對線蟲死/活狀態進行劃分,蟲體蜷曲扭動、形態不定的判定為活蟲,蟲體僵直不動、呈現“J”狀的判定為死蟲,如圖2 所示。在線蟲研究人員的觀察指導下,使用開源標注軟件Labelimg按照死蟲和活蟲兩個類別對數據集進行標注,標注示例圖片如圖3所示。
1.2數據增強處理
線蟲具有蟲體個體相似度高的特點,為提高模型的魯棒性,增強模型的泛化能力,采取離線數據增強與在線數據增強兩種方式擴充數據集,使模型更易獲取線蟲更全面的特征。
按照8∶2的比例對2402張線蟲圖像樣本進行劃分,將數據集分割成訓練集和測試集。對訓練集圖片進行了多種離線數據擴充技術,包括隨機旋轉,仿射變換和隨機裁剪等,如圖4 所示,將訓練集圖片規模增大到了3 834張。
另外,還將batchsize設置為8,初始學習率為0.01,在每張圖片輸入網絡模型訓練前,將圖像分別放縮至640×640,采用Mosaic 數據增強[10],隨機切割四張圖像并合并為一張圖像,再作為新訓練數據傳入神經網絡進行訓練學習,增加了傳入網絡的線蟲樣本數,顯著擴充了檢測數據集。在推理階段,將圖像左右翻轉以3 個不同的分辨率進行處理,輸出結果在NMS之前被合并。
2 改進的YOLOv7網絡模型
YOLOv7 網絡主要通過高效層聚合網絡(EELAN)和MP 結構的骨干部分提取圖像特征,MP 層采用了maxpooling 和stride=2 的3×3 卷積用于進行下采樣,輸出通過concat 的方式連接起來,使得網絡可以更好地提取特征。本文為避免線蟲圖像模糊造成的檢測效果不佳,在YOLOv7特征提取主干網絡中引入ECA 注意力機制,有效減少了冗余信息的干擾。因YOLOv7 原模型的損失函數與激活函數不適合線蟲圖像,為提高模型在該數據集上的性能,對默認損失函數與激活函數進行優化。
2.1 添加ECA注意力機制
在一幅圖片中,為了識別出圖片中的目標,圖片中的某些區域往往比其他區域更為重要。基于注意力機制的模型能夠在處理復雜任務時,對輸入信息進行加權,以便模型更加集中地關注對當前任務更為重要的部分,從而提高模型的性能。引入ECA模塊的YOLOv7模型結構如圖5所示。
ECA 注意力機制下,輸入特征圖首先通過全局平均池化進行空間特征壓縮,壓縮后的特征圖通過1×1 卷積進行通道特征學習,最后以通道為重點的特征圖與原始輸入特征圖逐個通道相乘,輸出以通道為重點的特征圖。后續對該改進模型進行的實驗驗證顯示本方法能較好提升模型識別效果,mAP值達到94.5%。
2.5 神經網絡訓練及圖形檢測效果比較
本文具體模型訓練環境部分配置如表2所示。
使用改進后的YOLOv7 算法進行訓練,訓練后的Precision、Recall、mAP如圖6所示。
由圖6可得,在前100 個epochs,模型的Precision、Recall、mAP上升較快,在前200個epochs已經達到相當高的精度,在300epochs 完成之后,模型達到最優值,可以準確地識別線蟲目標。
為驗證改進后YOLOv7算法的有效性,對改進后YOLOv7算法進行了消融試驗,試驗結果如表3 所示,上述改進機制的引入使模型在評價指標上均有提升:
在圖像識別效果上,各模型檢測結果對比如圖7 所示。四張圖片是改進前后模型對同一張圖片的不同檢測情況,最終(d)YOLOv7+ECA+EIoU+Mish 模型的mAP值達到95.3%,高于其它模型,能達到更高的檢測精度。
將目前主流的目標檢測模型SSD、Faster-RCNN、YOLOv5 以及改進后的YOLOv5 模型CBAM-YOLOv5、SE-YOLOv5 訓練后對測試集中的線蟲圖像進行檢測,將mAP作為評價指標,各模型結果對比表現如表4所示。
對比試驗結果表明,本文算法的mAP 值最高,比SSD、Faster-RCNN、YOLOv5、CBAMYOLOv5、SE-YOLOv5 和YOLOv7 模型分別提升了12.3%、6.2%、4.3%、1.7%、1.8%、1.2%,能更好地完成了線蟲存活識別檢測任務。
3 線蟲檢測系統的設計實現
模型的開發目的是幫助研究人員節省時間,加快殺線劑測試階段的進程。在攝像頭捕捉圖像、人工或單片機控制自動上傳圖片后,模型能對線蟲進行快速智能識別及計數統計,最終在WEB 端程序實現可視化數據管理及結果展示。
3.1 線蟲檢測模塊
用戶選擇圖片上傳或實時拍攝,客戶端將圖片轉換為url 安全的base64 編碼,點擊“開始檢測”按鈕后將編碼數據發送到后端服務器,服務器解碼獲得原圖像后開始檢測,檢測結果示意圖如圖8所示。
3.2 歷史數據管理模塊
源圖片與檢測后圖片均使用數據庫image表中的id 來標識,死/活數的記錄使用格式字符串liveamp;dead 存儲于task 表中,對數據庫查詢時再進行解析。服務器在收到用戶查詢請求時對數據庫進行分頁查詢,返回json 格式的數據供前端使用,效果如圖9所示。
3.3 系統部署
核心檢測模塊使用Triton Inference Server開源深度學習框架[13],可方便部署深度學習模型,以及提供請求排隊、多路復用、動態批處理等功能。將改進后的YOLOv7 Pytorch 模型轉換為開放神經網絡交換(ONNX)模型[14]部署到Triton Inference Server 開源服務框架,對外提供服務。系統采取微服務架構[15],使檢測程序和用戶服務程序互不干擾地獨立運行( 如圖10)。
4結論
本文提出了一種基于改進YOLOv7網絡的線蟲計數模型,在主干網絡中添加ECA注意力機制、采用EIoU作為網絡架構損失函數、替換原激活函數為Mish激活函數,提高了對重疊黏連線蟲的檢測能力和回歸精度,減少了冗余信息干擾。對比試驗結果表明,改進后的模型mAP達到了95.3%,改進模型在線蟲存活率檢測的效率和準確性方面顯著優于其他經典目標檢測算法。此外,基于Vue和SpringBoot 等技術開發了基于改進模型的線蟲存活數量檢測系統,能在線識別和統計線蟲死/活量,大幅提升研究人員的線蟲計數效率。
本研究后續將開發專用線蟲拍攝硬件,優化拍攝質量與采傳性能,增加拍攝通道,實現多路線蟲識別,實現更加高效的線蟲數量統計。