













摘要:花生莢果分級是花生商品化過程中的重要環節。針對傳統花生莢果分級機械精度較低、局限性較大等問題,提出一種基于深度學習的YOLOv5n—SP花生莢果檢測算法,對花生莢果按籽仁數量和是否破損進行分級。結合GSConv構建輕量級頸部網絡,輕量化的同時實現性能提升;為減少計算冗余,引入Slimming算法進行通道剪枝,在保證性能的前提下進一步降低模型參數量;引入通道智慧蒸餾算法,提高剪枝模型性能。結果表明,改進后的YOLOv5n—SP相較于原模型YOLOv5n,浮點計算量減少58.5%,模型精確率、召回率分別提高2.0%和1.1%,實時檢測速度達到84幀/s,提升7.7%。
關鍵詞:花生莢果;分級機械;輕量化模型;剪枝算法;智慧蒸餾算法;實時檢測
中圖分類號:S226.5""""" 文獻標識碼:A""""" 文章編號:2095?5553"(2025)"02?0230?08
Real?time peanut pods detection method based on improved YOLOv5n
Wu Yanghua1, Wang Jiannan1, Liu Minji1, You Zhaoyan1, Xie Huanxiong1, Du Yuanjie2
(1. Nanjing Institute of Agricultural Mechanization, Ministry of Agriculture and Rural Affairs, Nanjing, 210014, China;
2. Chinese Academy of Agricultural Sciences, Beijing, 100081, China)
Abstract: The grading of peanut pods is a crucial step in the commercialization process of peanuts. In view of the low mechanical precision and large limitations of traditional peanut pod grading machines, a YOLOv5n—SP algorithm for peanut pod detection based on deep learning was proposed, which could classify peanut pods according to the number of kernels and whether they were damaged. By incorporating the GSConv, a lightweight neck network was constructed, achieving performance improvement while reducing computational complexity. In order to mitigate computational redundancy, the Slimming algorithm was employed for channel pruning, further reducing the parameter count while maintaining performance. Additionally, the channel wise distillation algorithm was introduced to enhance the performance of pruned model. Experimental results demonstrate that compared to the original YOLOv5n model, the improved YOLOv5n—SP model reduces floating point operations by 58.5%, with a 2.0% and 1.1% increase in model precision and recall rate. The real?time detection speed reaches 84 frame/s, representing a 7.7% improvement.
Keywords: peanut pod; grading machines; lightweight model; pruning algorithm; intelligent distillation; real?time detection
收稿日期:2024年4月10日""""""" 修回日期:2024年5月15日
? 基金項目:國家重點研發項目子課題(2023YFD2001005—3);國家花生產業技術體系產后加工機械化崗位(CARS—13—產后加工機械化)
第一作者:吳陽華,男,1999年生,安徽銅陵人,碩士研究生;研究方向為農產品加工技術裝備。E?mail: 2027561477@qq.com
通訊作者:謝煥雄,男,1968年生,廣西浦北人,碩士,研究員,碩導;研究方向為農產品加工技術裝備。E?mail: xhxnq@163.com
0 引言
花生作為一種具有高商品價值農作物,是促進中國農業可持續發展的主要農產品之一[1]。在花生加工和商品化過程中,花生單多籽仁莢果分級是一個非常重要的環節,根據不同籽仁數量對花生莢果進行分級,是將花生莢果的分級標準進一步細化,針對不同籽仁花生的品質特點進行分類處理,能最大程度地發揮花生價值。單籽仁和雙籽仁花生莢果內的花生種子要更加飽滿,適合選種育種或者脫殼銷售,三籽仁及以上的花生莢果形狀比較統一,外觀品質更好,適合帶殼銷售。傳統的機械式花生莢果分級方式存在著易堵篩竄級,難以精確細分等問題,且不能對破損的花生莢果進行分級[2]。隨著機器學習的興起以及人們對圖像識別的不斷研究,機器視覺逐漸可以代替人眼來進行識別,為實現花生單多籽仁莢果分級提供新的途徑。
近年來,對花生莢果的分級算法研究大多基于傳統機器學習方法或卷積神經網絡。Wang等[3]從采集圖像中提取花生莢果的物理特征,通過訓練人工神經網絡來估計莢果中的籽仁數量,該網絡對含有3個或3個以上籽仁的花生莢果識別精確率達到92.5%;Li等[4]采用3種方法提取花生圖像特征,并分別用SVM對花生莢果籽仁數量進行預測,其中花生莢果長寬比與SVM組合的精度最高,達到96.72%;張瑞青等[5]提出一種基于AlexNet的改進模型對花生莢果等級進行識別,平均識別精確率達到95.43%。
目標檢測不僅要確定圖像中是否存在目標物體,還要準確地定位并標識目標的位置。YOLO[6]最大的特點是檢測速度快,能對目標進行實時檢測,是目標檢測代表性算法之一。YOLO在進行目標檢測時魯棒性很好,當光線強弱發生變化或者背景信息復雜時仍具有檢測精確率高、檢測速度快等優點,同時對小目標也具有很好的檢測效果,近些年來被應用在多種顆粒狀農作物的檢測中。張伏等[7]利用MobileNet—v3和深度可分離卷積對YOLOv4進行輕量化,針對密集圣女果進行識別,模型的測試集識別精確率為99.15%,可用于圣女果產量預測;楊堅等[8]提出了一種YOLOv4—tiny改進模型,增加檢測頭來提高網絡預測能力,并使用密集連接卷積來加強特征融合,以實現番茄成熟度識別,在自然背景下對番茄檢測的mAP@0.5達到97.9%;Gai等[9]為檢測櫻桃成熟度設計了YOLOv4改進模型,將DenseNet與YOLOv4特征提取網絡相結合,mAP@0.5較原模型提高15%,在不同背景下均能準確檢測;Xiang等[10]基于YOLOX框架添加一個用于預測莢果數量的塊并修改損失函數,構建一個多任務模型,并引入卷積注意力模塊,實現了對大豆莢的精確計數。
花生莢果實時檢測分級任務對檢測精度和速度有較高要求,然而在實際檢測中,模型通常部署在算力有限的嵌入式設備上,因此實現模型大小與檢測性能的平衡,成為花生單多籽仁莢果分級算法研究的重點與難題。
為解決上述難題,提出一種基于GSConv和模型壓縮技術的YOLOv5n—SP花生莢果分級算法。以YOLOv5n為基礎模型,結合輕量型卷積GSConv構建輕量頸部網絡,再引入Slimming剪枝算法,進一步壓縮模型體積,最后使用通道智慧蒸餾算法對模型進行知識蒸餾,提高剪枝模型檢測精度。
1 材料與方法
1.1 材料
1.1.1 數據來源
帶殼花生的一個重要用途是鮮食,“四粒紅”粒度均勻,有光澤,味道香醇可口,營養豐富,是中國著名鮮食花生品種。購買吉林省扶余市9月份收獲后曬干貯藏未進行分級的“四粒紅”花生進行圖像采集。
為保證圖像環境與實際工作環境一致,在搭建的輸送臺上進行圖像采集工作。在不額外添加光源的前提下,分別在上午10:00、下午4:00、晚上21:00這三個時間點進行花生莢果圖像采集[15]。圖像分辨率為1"280像素×1"024像素,共有5"970張原始圖像。根據花生莢果的籽仁數量和外觀完整性,花生莢果圖像可分為5類,如圖1所示。
1.1.2 花生莢果數據集構建
原始圖像中各類花生莢果圖像數量并不均衡,使用數據增強手段對原始圖像進行變換和擴充。基于LabelImg將圖片標注為YOLO格式,數據標定過程如圖2所示。標定后按8∶1∶1的比例,將數據集劃分為訓練集、驗證集和測試集,數據集構成如表1所示。
1.1.3 試驗平臺
試驗基于Win11操作系統進行,處理器型號為Intel(R)"Core(TM)"i9-10900X,顯卡型號為NVIDIA"GeForce"RTX"2060Ti。深度學習框架為"PyTorch1.8.1,開發環境為PyCharm,編程語言為Python3.9,模型訓練測試均在相同環境中進行。
1.1.4 評價指標
為全面評估模型的性能,選擇多個指標進行測試。利用精確率P和召回率R評估檢測的準確性與全面性;使用浮點計算量FLOPs來衡量模型計算復雜度;檢測速度與硬件水平息息相關,但在同一設備測試下,不同模型的每秒檢測幀數FPS一定程度上反映了該模型的檢測速度;在不同交并比IoU下,模型P—R曲線不同,曲線圍成的面積為平均精度AP,平均精度均值mAP綜合所有類別AP的平均值,是評估模型性能的常用指標。P、R、AP、mAP定義如式(1)~式(4)所示。
式中: AP——P—R曲線圍成面積;
C——檢測類別數量,本文取5。
1.2 基于YOLOv5n的花生單多籽仁莢果分級檢測
1.2.1"YOLOv5n算法
針對不同的使用場景和檢測精度需求,YOLOv5提供多個縮放版本,其中YOLOv5n是參數量和計算量較小的模型。模型結構主要分為3個部分:主干網絡,頸部網絡和檢測頭。
主干網絡負責從輸入圖像中提取有用的特征,它通常是在大規模圖像分類任務上訓練的卷積神經網絡,捕獲不同尺度的層次特征,在較淺的層中提取較低級別的特征,在較深的層中提取較高級別的特征;頸部網絡聚合和細化主干提取的特征,通常側重于增強不同尺度的空間和語義信息;頭部網絡負責根據主干和頸部提供的特征,為每個候選對象生成預測并進行后處理,只保留最可靠的檢測結果。YOLOv5結構如圖3所示[12]。
1.2.2"YOLOv5n—slimneck
為使深度可分離卷積的輸出精度盡可能地接近標準卷積,Li等[13]提出一種融合標準卷積和逐深度卷積的混洗卷積GSConv。混洗是一種統一的混合策略,允許來自標準卷積的信息通過在不同通道上均勻地交換局部特征信息,完全混合到逐深度卷積的輸出中但不會有任何干擾,GSConv原理示意如圖4所示。
YOLOv5中提出一種新的模塊C3,共有兩種結構,分別放置在主干網絡和頸部網絡中,用于引入多尺度上下文信息來提高檢測性能。基于GSConv重新構建頸部網絡中的C3模塊,設計VoVGSCSP。
使用GSConv和VoVGSCSP替換YOLOv5n中原頸部網絡中的模塊,將頸部網絡進行輕量化得到YOLOv5n—slimneck。改進后的網絡結構如圖5所示。
1.2.3"Slimming通道剪枝算法
模型剪枝是一種通過減少神經網絡中的參數數量來降低模型復雜度的技術,是模型壓縮的重要手段之一,其目標是保持模型在性能損失最小化的同時,減少模型的計算和存儲成本。
Slimming剪枝算法于2017年提出,該算法根據BN層縮放因子絕對值的大小來判斷各通道的重要程度[14]。但在所有BN層中縮放因子都不為0,各BN層都有其重要性,因此需要對縮放因子施加L1正則化項進行稀疏。L1正則化定義如式(5)所示。
式中: Loss——總損失;
L0——原損失;
L1——正則化項;
[λ]——正則化強度系數;
[jwj]——正則化范數,所有權重絕對值之和。
對縮放因子進行L1正則化后,通過迭代一些縮放因子的值逐漸向0接近,從而達到對應BN層的稀疏表示。Slimming剪枝算法會將全局縮放因子進行排序,對于在某個閾值內的縮放因子,刪除對應層所有傳入和傳出連接,以此進行通道剪枝。Slimming剪枝原理如圖6所示。
1.2.4 通道智慧蒸餾算法
知識蒸餾是一種用于模型壓縮的技術,旨在通過從一個復雜模型(教師模型)中蒸餾出知識,用從教師模型學習到的知識來訓練一個簡化模型(學生模型),因此學生模型能夠學到更復雜的決策邊界和潛在的數據分布,從而性能接近教師模型。
Zhou等[15]提出一種通道智慧蒸餾算法(Channel Wise Distillation, CWD),在學生模型學習過程中分別采取兩種不同的學習策略。在特定層上學習特征提取過程中,參考SENet的原理,學生模型學習教師模型每個通道的權重,再將權重乘以原始通道,使提取的特征更具有指向性。通常教師模型和學生模型的通道數不一定相同,因此先使用1×1的卷積對學生模型進行升維,待兩者通道數相同再進行通道蒸餾。在預測過程中,基于引導知識蒸餾算法(Guided Knowledge Distillation, GKD)在softmax層上進行學習,不同于知識蒸餾算法中對教師模型預測分布的全盤學習,引導知識蒸餾算法只學習教師模型中預測正確的偏好分布,通道智慧蒸餾算法原理示意如圖7所示。
2 試驗結果與分析
測試分析不同目標檢測模型在花生莢果檢測任務上的表現,YOLOv5n在測試集上綜合性能最好,因此基于YOLOv5n設計輕量型花生莢果檢測模型。本文中所有模型均在同一設備環境中進行訓練,避免不同訓練環境對模型性能的影響。基本訓練參數設置如下:訓練輪次設置為500,早停輪次設置為100,訓練批次為4,優化器選擇Adam,初始學習率為0.001,權重衰減為0.000"5,Adam的超參數beta1取0.937。
2.1 輕量型網絡模塊試驗對比分析
設計消融試驗并進行訓練測試,驗證輕量型頸部網絡slimneck的性能,結果如表2所示。
C3Ghost是一種輕量型C3結構,試驗中使用該模塊對YOLOv5n主干網絡中原C3結構進行替換,模型mAP@0.5和mAP@0.5:0.95分別下降1.3%和3%,FLOPs減少19.5%,FPS減少11.5%,模型性能有所下降。使用slimneck對YOLOv5n—C3Ghost的頸部網絡進行替換,其精確率提升3.1%,mAP@0.5和mAP@0.5:0.95分別上升0.2%和2.2%,FLOPs減少15.2%。使用slimneck對YOLOv5n的頸部網絡進行替換,其精確率提升2.1%,召回率提升1%,mAP@0.5:0.95上升0.5%,FLOPs減少14.6%,FPS下降1.3%。FPS輕微下降可能是因為GSConv有混洗操作導致推理時間有所增加。兩組試驗證實slimneck能在輕量化的同時提升模型精度,因此可在YOLOv5n—slimneck基礎上繼續進行輕量化試驗研究。
2.2 剪枝模型試驗對比分析
基于Torch—Pruning庫使用Slimming算法對YOLOv5n—slimneck進行剪枝。訓練參數與之前一致,設定剪枝率為0.5,即FLOPs為剪枝前的50%時停止剪枝,微調輪數為500輪,早停輪數設置為100。
正則化強度系數越大,稀疏輪次越多,對BN層縮放因子的稀疏效果就越強。稀疏過程中BN層權重變化趨勢如圖8所示,圖中橫坐標為BN層數量,縱坐標為BN層權重大小,在迭代過程中隨著稀疏率的增大,權重值逐漸向0靠近。
設置稀疏訓練參數,探究YOLOv5n—slimneck在不同稀疏參數下的剪枝效果,測試結果如表3所示。當正則化強度系數為0.000"5,稀疏輪次為250輪時,剪枝效果最好,僅精確率下降1.7%,召回率上升0.2%,mAP@0.5增加0.4%,mAP@0.5:0.95增加0.3%,計算量減少51.4%。基于Slimming剪枝算法實現模型性能與體積的平衡,在減小模型計算量的同時性能還略有提升。
選擇Slimming剪枝效果最好的模型進行研究,后續稱其為YOLOv5n—SS。剪枝前后模型通道數量對比如圖9所示,Slimming通道剪枝集中于模型第7、8、9、23層,即通道數最多的層。這可能是因為通道數多的層,其BN層數量也多,縮放因子被稀疏至0的也會相應較多,因此算法更傾向于對這些層進行剪枝。
2.3 通道智慧蒸餾模型試驗對比分析
基于Slimming算法剪枝的模型其精確率都有一定下降,YOLOv5n—SS的綜合性能最好但精確率也下降1.7%,因此嘗試通道智慧蒸餾算法進行知識蒸餾,借助教師模型提升檢測精度。YOLOv5s相較于YOLOv5n有更多通道數,因此能提取更加復雜的特征。將YOLOv5s的頸部網絡替換為slimneck并進行訓練,得到YOLOv5s?slimneck,以該模型作為教師模型進行知識蒸餾。以YOLOv5n—SS的prune.pt文件,即剪枝后微調前的模型作為學生模型。
蒸餾參數主要有特征損失率和蒸餾層數,特征損失率大小與兩種交叉熵損失有關,一般設置為在真實標簽交叉熵損失與教師模型交叉熵損失的差值,第一次訓練可以先設置成中間值,再根據訓練結果改變特征損失率大小。對不同層進行蒸餾,試驗結果如表4所示。
注:括號內的數字是智慧蒸餾后模型與智慧蒸餾前模型(YOLOv5n—SS)對比的結果。
由YOLOv5n的模型配置文件可知,模型第17、20、23層將來自不同尺度的特征圖進行融合,以便在檢測過程中更好地捕獲不同尺度的目標。試驗開始分別對特征融合層(17,"20,"23)和Slimming算法剪枝重點層(7,"8,"9,"23)進行知識蒸餾,兩種方法蒸餾后的模型性能都有所下降,但后者的精確率有所上升,證明對主干網絡進行蒸餾能提高模型精確率。綜合前兩種的層數選擇進行第三次試驗,蒸餾后模型性能下降較之前有所減少。增加蒸餾中主干網絡的層數,最終得到預期模型,后續稱之為YOLOv5n—SP。蒸餾后模型精確率提高1.6%,其他指標與之前持平達到預期效果。由試驗結果可知,不能僅對模型中某一部分進行知識蒸餾,需要綜合特征提取和特征融合中通道數較大的層同時進行,雖然訓練成本較大,但蒸餾效果更好。
2.4 輕量模型試驗對比分析
不同方法對YOLOv5n的輕量化結果如表5所示。P—R曲線是一條以召回率為橫坐標,精確率為縱坐標的曲線,相同交并比下曲線圍成的面積越大,模型綜合性能越高。5種模型的P—R曲線對比如圖10所示。其中YOLOv5n—SP的P—R曲線面積最大,綜合性能在五種模型中最好,且YOLOv5n—SP的精確率較高,適用于花生莢果實時檢測分級任務。
通常卷積神經網絡被認為是一個黑箱模型,以目標檢測算法模型為例,完成訓練的模型能對輸入圖片進行檢測,但僅根據模型輸出結果,難以弄清模型對特征圖的檢測重點與分類依據。熱力圖能顯示模型對于特征圖的響應區域與響應程度,顏色越深,響應權重越大,在一定程度上能夠反映模型的性能[10]。基于Grad—CAM對模型倒數第二層輸出的特征圖進行可視化,結果如圖11所示。根據熱力圖顯示結果,模型對未破損花生莢果的響應區域集中在縮縊處,對于破損花生莢果的響應區域則集中在破損處。對比不同模型檢測同一花生莢果的熱力圖,觀察響應區域和響應程度,綜合比較下YOLOv5n—SP要優于另外兩種模型。
3 結論
1)"引入輕量型頸部網絡,將通道剪枝算法,通道智慧蒸餾算法與YOLOv5n相融合,提出一種花生單多籽仁莢果檢測分級模型YOLOV5n—SP,在保證模型精度的前提下減少參數量和計算量。模型計算量1.7"G,模型精確率、召回率分別為96.8%和97.3%,實時檢測速度達到84幀/s,為研究適用于花生莢果實時檢測任務的輕量化模型提供參考。
2)"探究不同稀疏率下的通道剪枝以及不同蒸餾層下的知識蒸餾對模型性能的影響。當剪枝率為0.5,正則化強度系數為0.000 5,稀疏輪次為250輪時,剪枝效果最好。蒸餾層為5、6、7、8、9、17、20、23,特征損失率為0.01時,通道智慧蒸餾效果最好。
所構建的花生莢果數據集中僅包含繭型小粒鮮食花生品種“四粒紅”的圖像,后續研究中可以選取不同品種不同果型的花生莢果補充數據集,令模型的適用性更廣。
參 考 文 獻
[ 1 ]""""" 鄧源喜, 張姚瑤, 董曉雪, 等. 花生營養保健價值及在飲料工業中的應用進展[J]. 保鮮與加工, 2018, 18(6): 166-169, 174.
Deng Yuanxi, Zhang Yaoyao, Dong Xiaoxue, et al. Nutritional and health value of peanut and its utilization in beverage industry [J]. Storage and Process, 2018, 18(6): 166-169, 174.
[ 2 ]""""" 劉敏基, 謝煥雄, 王建楠, 等. 柵條滾筒式花生分級機的優化設計與試驗[J]. 中國農機化學報, 2014, 35(2): 210-212.
Liu Minji, Xie Huanxiong, Wang Jiannan, et al. Optimal design and experimental study on peanut sorting machine of grid cylinder [J]. Journal of Chinese Agricultural Mechanization, 2014, 35(2): 210-212.
[ 3 ]""""" Wang J, Yang W, Walker L, et al. Identification of peanut pods with three or more kernels by machine vision and neural network [J]. International Journal of Food Engineering, 2014, 10(1): 97-102.
[ 4 ]""""" Li Z, Niu B, Peng F, et al. Classification of peanut images based on multi?features and SVM [J]. IFAC-PapersOnLine, 2018, 51(17): 726-731.
[ 5 ]""""" 張瑞青, 李張威, 郝建軍, 等. 基于遷移學習的卷積神經網絡花生莢果等級圖像識別[J]. 農業工程學報, 2020, 36(23): 171-180.
Zhang Ruiqing, Li Zhangwei, Hao Jianjun, et al. Image recognition of peanut pod grades based on transfer learning with convolutional neural network [J]. Transactions of the Chinese Society of Agricultural Engineering, 2020, 36(23): 171-180.
[ 6 ]""""" Redmon J, Farhadi A. YOLOv3: An incremental improvement [J]. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), 2018.
[ 7 ]""""" 張伏, 陳自均, 鮑若飛, 等. 基于改進型 YOLOv4—LITE 輕量級神經網絡的密集圣女果識別[J]. 農業工程學報, 2021, 37(16): 270-278.
Zhang Fu, Chen Zijun, Bao Ruofei, et al. Recognition of dense cherry tomatoes based on improved YOLOv4—LITE lightweight neural network [J]. Transactions of the Chinese Society of Agricultural Engineering, 2021, 37(16): 270-278.
[ 8 ]""""" 楊堅, 錢振, 張燕軍, 等. 基于改進 YOLOv4—tiny 的復雜環境下番茄實時識別[J]. 農業工程學報, 2022, 38(9): 215-221.
Yang Jian, Qian Zhen, Zhang Yanjun, et al. Real?time recognition of tomatoes in complex environments based on improved YOLOv4—tiny [J]. Transactions of the Chinese Society of Agricultural Engineering, 2022, 38(9): 215-221.
[ 9 ]""""" Gai R, Chen N, Yuan H. A detection algorithm for cherry fruits based on the improved YOLO—v4 model [J]. Neural Computing and Applications, 2023, 35(19): 13895-13906.
[10]""""" Xiang S, Wang S, Xu M, et al. YOLO POD: A fast and accurate multi?task model for dense Soybean Pod counting [J]. Plant Methods, 2023, 19(1): 8.
[11]""""" Novtahaning D, Shah H A, Kang J M. Deep learning ensemble?based automated and high?performing recognition of coffee leaf disease [J]. Agriculture, 2022, 12(11): 1909.
[12]"""" Terven J, Córdova?Esparza D M, Romero?González J A. A comprehensive review of YOLO architectures in computer vision: From YOLOv1 to YOLOv8 and YOLO—NAS [J]. Machine Learning and Knowledge Extraction, 2023, 5(4): 1680-1716.
[13]""""" Li H, Li J, Wei H, et al. Slim?neck by GSConv: A better design paradigm of detector architectures for autonomous vehicles [J]. arXiv preprint arXiv: 2206. 02424, 2022.
[14]""""" 王政, 許興時, 華志新, 等. 融合YOLO v5n與通道剪枝算法的輕量化奶牛發情行為識別[J]. 農業工程學報, 2022, 38(23): 130-140.
Wang Zheng, Xu Xingshi, Hua Zhixin, et al. Lightweight recognition for the oestrus behavior of dairy cows combining YOLO v5n and channel pruning [J]. Transactions of the Chinese Society of Agricultural Engineering, 2022, 38(23): 130-140.
[15]""""" Zhou Z, Zhuge C, Guan X, et al. Channel distillation: Channel?wise attention for knowledge distillation [J]. arXiv preprint arXiv: 2006. 01683, 2020.
[16]""""" Selvaraju R R, Cogswell M, Das A, et al. Grad—CAM: Visual explanations from deep networks via gradient?based localization [C]. IEEE International Conference on Computer Vision. IEEE, 2017.