












[摘 要] 現有的機器采茶都需要人工輔助進行采茶,且存在老葉、嫩芽一刀切的情況,會損害一部分茶葉,只適用于低端茶葉的采摘。因此,需要研究出一種精準高效的茶葉嫩芽識別方法。針對茶葉嫩芽圖像背景復雜的問題,在YOLOv5算法的基礎上,對算法進行多角度的改進,實驗結果表明,改進算法的模型的mAP提升了4.1%,Recall提升了4.0%,且改進方法減少了漏檢情況的發生。
[關鍵詞] 茶葉采摘; YOLOv5算法; 機器學習; 嫩芽識別
[中圖分類號] TP391.9 [文獻標識碼] A
中國是眾多品種茶葉的生產地和出口國,茶葉種植面積和產量穩居世界首位。按其品質,茶葉可分為高端茶葉和普通茶葉兩類[1]。目前,茶葉嫩芽的采摘方式為機械采收大宗茶,茶農手動采摘名優茶[2]。機械采摘設備類似于割草機一樣,存在老葉嫩芽一刀切現象,缺乏選擇性,降低了茶葉的品質;人工采摘主要是依靠茶農觀察茶葉的顏色形狀等特征,找出嫩芽的位置并進行摘取,但這種方法效率低且成本高[3-5]。
隨著時代的進步與學者們的深入研究,目標檢測已成為機器視覺和圖像識別領域的研究重點[6-7]。在機器視覺領域,共有兩類目標檢測算法:一是以速度見長的one-stage算法,如:SSD、YOLO等;二是以準確率見長的two-stage算法,如:R-CNN、SPP-Net、Fast R-CNN[8-10]。王琨等[11]將顏色特征輸入到CNN(卷積神經網絡)中進行8次迭代訓練,取得了較好的識別效果,平均每個嫩芽耗時0.18 s,無法用于實時檢測;陳妙婷等[12]利用PSO-SVM算法分割圖像,再用YOLO算法訓練,準確率達到了84%,但識別速度未能達到實時檢測標準;孫肖肖等[13]先用OSTU算法分割圖像,再用YOLOv3算法訓練模型,準確率達到了76.3%,卻受困于圖像分割,被遮擋的嫩芽識別率較低。目前用機器視覺識別茶葉嫩芽的實驗結果都不太理想,且茶園中環境復雜,視覺系統容易收到天氣、光照等因素的影響,增大了檢測的難度,因此模型識別的準確率和速度都有待提升。
本文選用一階段算法[CD2]YOLOv5[14],并對其進行三個方面的改進:針對茶葉嫩芽圖像背景復雜的問題,引入CBAM注意力機制[15],將其融入在頸部網絡特征融合之前,對Backone提取的特征進行自適應優化;同時還利用involution算子,在不同的位置上自適應的分配權重,提升卷積核在空間維度上提取信息的能力;在邊界框回歸時,損失函數無法辨別邊界框的大小與置信度的差異,在訓練過程中,會影響模型相適性的優化,為此引入EIou拆分寬高比,并分別計算目標框和錨框的寬高比,對檢測效果有一定的提升。
1 數據集的制作
本文從茶園中拍攝茶葉嫩芽圖像,挑選出不同的光照和背景下的茶葉嫩芽圖像共423張,將其像素規范化為512×512像素。為了提高模型的識別率,需要對這些圖像進行降噪、直方圖均衡化處理來提高圖像的清晰度;為了增加模型的魯棒性,需要采用翻轉、鏡像、變換顏色和變換飽和度等方法對圖像進行數據增強,如圖1所示。將圖像數量擴充至1692張用以制作成數據集;最后通過標注工具Labeling給圖像打上標簽,并按照傳統的(訓練集+驗證集):測試集=7:3的比例對圖像進行分配處理,用于后期的模型訓練和測試。
2 YOLOv5識別算法的改進
2.1 傳統YOLOv5算法
YOLOv5是目前比較流行的目標檢測算法,具有模型體積小,訓練和推理速度快等特點。為了保證模型的識別速度,選用網絡比較簡單的YOLOv5s算法模型,該模型結構如圖2所示。
YOLOv5s網絡模型主要由Backone(主干層)、Neck(頸部層)和Head(頭部層,也叫預測層)三層組成,對圖像進行分割、檢測、定位和分類等操作。在圖像輸入至主干網絡前,需要經過數據層的處理;主干層由Focus、Conv、CSP和SPP組成,完成對圖像特征提取的工作,頸部層主要是提取、融合特征圖中的信息,提升算法檢測小目標的性能;頭部層會在每個尺度中生成3個錨框鎖定目標。當目標存在時,三個預測框就會從不同的長度和寬度鎖定目標,通過非極大抑制的方法選取置信度最高的預測框,作為最終輸出。
對于預測層的損失函數,主要為物體分類、置信度和檢測三部分損失的總和。物體分類損失和置信度損失是用二元交叉熵的方法計算;而檢測損失會受益于YOLOv5自帶的GIou損失函數,更加清晰地顯示錨框與檢測框的誤差,如:
式中:A為真實框;B為預測框;C為真實框與預測框的最小外接矩形。
2.2 改進YOLOv5算法
2.2.1 引入CBAM注意力模塊 在自然條件下,茶葉嫩芽圖像的背景比較復雜,老葉與嫩芽的相似度較高,為了使模型更好地識別茶葉嫩芽,需要借助CBAM注意力模塊,降低背景因素對檢測的影響力。CBAM模塊工作的原理是分別從通道和空間兩個方向優化算法,從而使特征提取網絡能夠更加快速、準確且有效地提取茶葉嫩芽特征。針對通道方向優化算法,是在輸入特征圖后,對特征圖進行兩種池化操作,從而提升目標通道的影響因子,如圖3所示。池化后會獲得不同尺度的特征圖,全連接層會對其進行計算并將其與通道背景融合,融合的特征圖需要經過擠壓函數的強化后,才能輸出最終的特征圖。
空間層次的優化,則要簡單一點,其原理如圖4所示。類似于傳統的卷積,對特征圖進行處理,附加空間注意力權重,之后再進行7×7的卷積。通道優化與空間優化完成后,需要將兩種帶有注意力權重的特征圖進行合并,得到最終的特征圖。
2.2.2 involution算子分配權重
對于YOLOv5算法,在神經網絡卷積的過程中,受到網絡結構的影響,感受野的大小被限制,使特征圖無法記錄相鄰像素之間的信息,因此在對不同維度的特征圖進行卷積時,會使用多種卷積核并產生大量的數據,加大算法的復雜度。針對這個問題,本文考慮引入Involution算子,從感受野入手,給輸入特征圖各個空間維度分配相應的權重,并且同時進行多組卷積運算,以此減少卷積核的數量,降低算法的復雜度。如圖5所示,圖中左邊為生成卷積核的方法。結構圖左半部分表示在分組卷積時,卷積核的通道數G比原特征圖的通道數小,需要對卷積核進行組內廣播,將通道數降為C。右半部分表示為將像素點xi,j增大為K×K大小,將其展開后再進行卷積運算,最后將運算的結果累加,得到的數值就是最終輸出。
2.2.3 EIou拆分寬高比 傳統YOLOv5算法的損失函數是GIou,是Iou函數的改進版,在Iou的基礎上解決了框不相交時,梯度為0,無法優化目標函數的問題。當GIou趨近于1時兩框完全相交,除此之外,兩框距離越遠,GIou則無限趨近于-1,如若出現這種情況,會導致GIou退化成Iou。
針對這個問題,由衍生出了DIou損失函數。繼DIou之后,為了使錨框更接近真實框,增加了錨框的尺度損失、長和寬的損失,演化成了CIou,CIou考慮的東西最全面,是目前比較流行的損失函數。但寬高比在[0,1]區間時,會出現梯度爆炸的現象,為此需要拆分寬高比分別計算,因此衍生出了EIou損失函數。EIou明確衡量了重疊區域、中心點和邊長等三個幾何因素的差異,引入Focal Loss優化邊界框回歸任務中的樣本不平衡問題,即減少與目標框重疊較少的大量錨框對BBox回歸的優化貢獻,使回歸過程專注于高質量錨框。
3 實驗及結果分析
3.1 實驗環境
本實驗的硬件環境AMD Ryzen 7 4800H cpu@2.90 GHz,RAM為16G,顯卡為Nvidia GeForee GTX 2060,軟件系統為Win10操作系統,開發環境選的是Anaconda,語言為python,深度學習框架為pytorch 1.2.0版本,用PyCharm 2021.1.2 (Community Edition)進行調試。
3.2 實驗流程
1) 在拍攝完茶葉嫩芽圖像后,將其進行預處理,并通過數據增強擴充數據集。最后用Labelimg工具制作標簽文件。
2)在YOLOv5s算法中,引入CBAM注意力模塊和involution算子,將GIou改為EIou損失函數,拆分寬高比。
3)用傳統YOLOv5s算法訓練數據集,獲取相應的模型。同時還選取Faster RCNN、SSD+VGG16和YOLOv3算法做對比實驗。
4)所有模型進行檢測實驗,并對比實驗結果。
3.3 實驗結果
做完準備工作后,就需要進行消融實驗。先利用傳統的YOLOv5s算法訓練茶葉嫩芽圖像數據集,運行train.py文件后訓練過程如圖6所示,訓練結束后,會在最后一個exp文件夾中保存訓練的結果,其中包含模型文件、各種曲線圖以及識別的結果圖,其中的Recall曲線如圖7所示。
訓練得到的模型檢測結果為:mAP=76.6%,fps=54.64,Recall=87.6%。
首先是CBAM引入實驗:前文提到CBAM注意力機制可以分別對圖像進行空間和通道維度上的加權,增加特征圖的表征能力,提升模型的性能,因此CBAM注意力機制應該加在Conv之后。在YOLOv5s網絡結構中,雖然有8個Conv模塊,但其中4個處于頭部層,如果在頭部層引入CBAM注意力機制,會直接影響頭部層的表征能力,間接影響到模型的性能,因此本文只需要考慮剩下3個可以引入CABM注意力機制的點,共有7種添加方案,如表1所示,可以分析出編號5的實驗效果最好,應在第一和第二個點引入CBAM。
其次是involution算子引入實驗?;谇拔慕榻B的involution算子特性,involution算子主要是取代conv模塊中的卷積操作,從而提升網絡的表達能力,使訓練得到的模型性能更好。在整個YOLOv5s網絡中有8個conv模塊,考慮到模型的大小,防止involution算子過多引起數據量的增大,降低模型的性能,因此本文最多只增加2個involution算子。由于頭部層已經獲取了前層網絡提供的大量信息,于此處添加involution算子只會增加網絡的復雜程度,在訓練模型時容易引發過擬合現象;且在頭部層的分類和回歸進程中,involution算子有可能改變像素點間的關系,影響最終的結果,因此本文只在主干層添加involution算子,共有3種添加方案,如表2所示,從結果可以看出引入一個involution算子效果最優。
在主干網絡引入兩個CBAM注意力機制和一個involution算子后,其網絡結構如圖8、9所示。
最后改進是將GIou損失函數換成EIou函數,拆分寬高比。其消融實驗的結果如表3所示。
由表3的數據可以看出,在YOLOv5s模型中加入三種改進方法,可以逐步提高模型的性能。為了更好的反應出改進前后的模型性能差距,選取若干茶葉嫩芽的檢測圖像展示進行對比,如圖10所示,可以看出傳統YOLOv5s模型雖然fps=54.64,滿足實時檢測的要求,但還是存在漏檢的現象(圖10a中的前兩張圖都存在漏檢現象)。改進后的YOLOv5s模型不僅檢測精度有所提高,如圖10a第三張圖與圖10b第三張圖對比,此外還減少了漏檢情況的出現。
為做消融實驗,還選用Faster RCNN[16]、SSD+VGG16[17]和YOLOv3[18]算法訓練本文制作的茶葉嫩芽圖像數據集,將模型的性能參數與YOLOv5模型進行對比。數據如表4所示。
結合以上數據可知,改進后的YOLOv5s模型,雖然在檢測速度上略有降低,但不影響實時檢測,且有效的提升了mAP和Recall,可見改進方法對于茶葉嫩芽圖像的識別起到了作用。
4 結論
為了解決在茶葉采摘過程中,嫩芽識別準確率不夠的問題,本文基于YOLOv5s模型進行研究,通過引入CBAM注意力模塊和involution算子提升模型的性能,利用EIou拆分寬高比來優化模型。實驗結果表明:改進后的模型,在不影響實時檢測的條件下略微降低了識別速度,但提升了模型的識別精度和召回率,限制了漏檢情況的發生,降低了復雜背景對識別的影響,能夠滿足自然條件下茶葉嫩芽識別的要求。
[ 參 考 文 獻 ]
[1] 吳華成.茶葉褐色葉斑病的綜合防治技術[J]. 農業與技術, 2015,35(16):113-114.
[2] 鄒勇,胡根貴.茶葉采摘與管理[J].安徽農學通報,2005,11(01):71.
[3] 黃藩,劉飛,王云,等. 計算機視覺技術在茶葉領域中的應用現狀及展望[J]. 茶葉科學,2019,39(01):81-87.
[4] 陳立杰,徐本祿.提高茶葉產值的途徑探討[J].貴州農業科學, 2008(03):190-192.
[5] 高鳳.名優茶并聯采摘機器人結構設計與仿真[D].南京:南京林業大學,2013.
[6] 黃星奕;李劍;姜松.基于計算機視覺的稻谷品種識別技術的研究[J],江蘇大學學報;自然科學版,2004,25(02):102-104.
[7] 龍德帆;樊尚春.計算機視覺在原木材積檢測中的應用[J].儀器儀表學報(增刊),2004,25(04):1024-1025.
[8] 藍金輝,王迪,申小盼.卷積神經網絡在視覺圖像檢測的研究進展[J].儀器儀表學報,2020,41(04):167-182.
[9] 王彥翔,張艷,楊成婭,等. 基于深度學習的農作物病害 圖像識別技術進展[J]. 浙江農業學報,2019,31(04): 669-676.
[10] KRIZHEVSKY A, SUTSKEVER I, HINTON G. ImageNet classification with deep convolutional neural networks[C].∥Conference and Workshop on Neural Information Processing Systems. Lake Tahoe, Nevada, USA: MIT Press, 2012: 1097-1105.
[11] 王琨,劉大茂.基于深度學習的茶葉狀態智能識別方法[J].重慶理工大學學報(自然科學),2015,29(12):120-126.
[12] 陳妙婷. 基于計算機視覺的名優茶嫩芽識別與定位[D]. 青島:青島科技大學, 2019.
[13] 孫肖肖.基于深度學習的茶葉嫩芽檢測和葉部病害圖像識別研究[D].太原:山西農業大學, 2019.
[14] LINGYU C, MEICHENG Z," SHUNQIANG D, et al. Underwater target recognition based on improved YOLOv4 neural network [J]. Electronics, 2021, 10(14): 1634.
[15] WOO S, PARK J, LEE J Y, et al. Cbam: Convolutional block attention module[C]. ∥Proceedings of the European Conference on Computer Vision (ECCV), 2018: 3-19.
[16] SHAOQING R, KAIMING H, ROSS GIRSHICK, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2016, 39(06): 1137-1149.
[17] LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector[C]. European Conference on Computer Vision, Springer International Publishing, 2016: 21-37.
[18] REDMON J, FARHADI" A. YOLOv3: An Incremental Improvement[J]. Journal of Computer Vision Research, 2018,1(02): 10-16.
Research on Image Recognition Algorithm of TeaShoots Based on YOLOv5
MA Zhiyan, LI Hui
(Agricultural Machinery Engineering Research and Design Institute ofHubei Univ. of Tech., Wuhan 430068,China)
Abstract: The existing machinery for tea picking requires manual assistance for tea picking, and there is a situation where old leaves and tender buds are cut in one piece, which can damage a portion of the tea and is only suitable for picking low end tea. Therefore, it is necessary to develop an accurate and efficient method for identifying tea buds. Aiming at the problem of complex background in tea bud images, this paper addresses the issue of complex backgrounds in images of tea bud shoots. Based on the YOLOv5 algorithm, the paper implements multifaceted improvements to the algorithm. The experimental results show that the improved model's mean Average Precision (mAP) has increased by 4.1%, and Recall has increased by 4.0%, with the improved method reducing the occurrence of missed detections.
Keywords: tea picking; YOLOv5 algorithm; machine learning; tender bud identification
[責任編校: 閆 品]
[收稿日期] 2023-01-29
[基金項目] 國家重點研發計劃基金資助項目(2018YFD0701002-03)
[第一作者] 馬志艷(1976-),男,湖北武漢人,工學博士,湖北工業大學副教授,研究方向為農業信息化與智能化。