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