王夢妮,顧寄南,王化佳,胡甜甜,方新領,潘知瑤
(江蘇大學機械工程學院,鎮江,212013)
作為全球最大的茶葉生產和消費國,中國的人均年消費量已超過1 500 g[1]。茶產業屬于季節性勞動密集型產業,其中人工采摘環節占整個茶園管理用工的60%左右[2]。人工采摘不但效率低還占用大量農時,人工成本高;市面上的傳統采茶機效率高但仍處于嫩芽與老葉同時“一刀切”的水平,這種“無差別采摘”方式極可能造成茶嫩芽的損壞,采摘的茶葉完整度低、質量差,只能制作廉價的大宗茶[3]。因此,為了將茶農從繁重的采摘作業中解放出來,提高嫩芽采摘的準確率和效率,研究茶葉的智能化采摘具有重要意義,其前提和關鍵便是茶嫩芽的準確識別。
近年來,對茶嫩芽的識別檢測方法研究主要集中在國內,其研究方法包括傳統圖像處理和深度學習方法。傳統的圖像處理方法是根據灰度、顏色、紋理和形狀等基本特征對圖像進行區域劃分,使得區域間顯差異性、區域內呈相似性[4]。吳雪梅等[5]根據嫩芽和老葉的G 和G-B 分量的顏色信息,利用改進的最大方差自動取閾法計算G 和G-B 分量的分割閾值,分割出嫩芽。張浩等[6]結合RGB 因子和Otsu 法對圖像處理,通過濾波、腐蝕膨脹、閾值分割,面積篩選等得到嫩芽二值圖。張可等[7]人基于傳統閾值分割方法,結合K 聚類理論,提取茶葉圖像RGB 模型中的R-B 分量以及Lab 模型中的b 分量,用于嫩芽圖像的提取。張博等[8]通過RGB 色彩分量對圖像灰度化,濾波去噪,然后進行圖像分割,再通過面積篩選等只保留嫩芽的二值圖,從而識別出茶葉嫩芽。以上方法雖然能實現茶嫩芽的識別,但其分割精度低,效果受嫩芽特征的影響較大,模型的泛化性和魯棒性較差。
隨著深度學習的快速發展和在其他領域的大量應用,其在現代農業中的研究也在增加[9]。許高建等[10]采用改進Faster R-CNN 算法對茶葉嫩芽圖像進行識別,但模型普適性較差,且分割速度較慢。CHEN等[11]和WANG等[12]分別利用Faster R-CNN 和Mask-RCNN 網絡識別出自然場景下的茶葉嫩芽,以上兩種方法具有較好的通用性和魯棒性,但識別檢測茶嫩芽的步驟多速度慢,實時性不高,應用到茶葉的智能采摘上的效率有待提高。
目前的茶葉嫩芽識別方法研究大多屬于傳統圖像處理方法或傳統方法與深度學習相結合,雖然能夠識別到目標,但仍存在以下不足:首先,傳統圖像處理方法在進行特征選擇時,依賴研究人員人工設計特征,需要豐富的先驗知識和復雜的調參過程,耗費時間過長。其次,由于市場的需求,茶葉嫩芽的識別精度應當很高,然而當前針對茶葉嫩芽的識別研究大多沒有考慮到識別精度問題,現有的研究網絡模型參數量大、運行速度慢,未能實現識別效率與精度的有效平衡,然而,檢測速度和檢測精度是衡量模型能否應用在工程上的重要指標[13];最后,與人臉識別等傳統目標的識別相比,嫩芽的顏色、紋理特征與葉子相似,特征差異較小;圖像中的目標小、密度高,且并非處于結構化環境中,背景復雜。
針對以上問題,本文以茶葉嫩芽的識別為目標任務,運用檢測速度和精度較好的YOLOv5s 網絡為基礎,根據目前嫩芽檢測中存在的問題對原網絡模型進行改進,在保證實時檢測速度的基礎上提高網絡模型的檢測精度,并與Faster R-CNN、YOLOv4 等網絡模型進行效果對比,以評估改進后的模型性能,為茶葉的產量估計和茶葉智能采摘視覺系統提供技術支持。
本研究所用茶葉嫩芽數據集原始圖像采集地點為江蘇省南京市綠航獼猴桃園和鎮江市五峰茶廠,采集對象為龍井43 和五峰茶樹,茶樹均單攏栽種,長勢較好。圖像采集設備為iPhone 手機和Canon EOS 800D,數據的分辨率分別是4 032×3 024 和3 984×2 656像素,以PNG 格式保存。數據采集于2022 年3 月、6 月上旬和10 月下旬,拍攝時間為06:00~18:00。在對茶葉嫩芽進行圖像采集的時候,拍攝設備與茶樹的距離為10~50 cm,拍攝角度與豎直向上方向呈30°~90°夾角,嫩芽為前景,嫩芽以外的信息為背景。共采集原始圖像1 190 幅,如圖1 所示,包含不同背景復雜度、近遠景、不同季節和單張圖中目標多少的數據。

圖1 不同場景下的茶嫩芽數據樣本Fig.1 Tea buds data samples in different scenarios
利用矩形區域標注工具LabelImg 對采集到的圖像進行人工標記,以獲得圖像中目標嫩芽的類別和位置信息。標注完的信息以txt 文件的形式保存后,完成茶葉嫩芽數據集的構建。本研究將數據集按照7∶2∶1 的比例隨機劃分為訓練集(833 幅)、驗證集(238 幅)和測試集(119 幅),每個數據集都包含采集到的茶嫩芽圖像和標注的標簽信息。
在單階段目標檢測算法里,YOLOv5 的性能良好,是YOLO 系列中推理速度和識別效果最優的模型[14],其中,YOLOv5s 網絡的深度和特征圖的寬度較小,推理速度快,廣泛應用于實際場景中[15],其作為基礎模型。因此本研究選YOLOv5s 的網絡結構包括輸入端Input、骨干網絡Backbone、頸部網絡Neck 和預測Prediction 4個部分,其網絡結構如圖2 所示。

圖2 YOLOv5 網絡結構Fig.2 The network structure of YOLOv5
輸入端的Mosaic 數據增強隨機使用4 張圖片,通過隨機縮放、裁剪、分布進行拼接,以此豐富數據集,增強模型的泛化性[16];通過自適應的錨框自動計算茶嫩芽數據集的最佳錨框值。輸入的圖片首先在Backbone 部分進行特征提取,獲得3個有效特征層后,Neck 部分的特征金字塔網絡(FPN)進行通過上采樣的方式進行特征融合,結合不同尺度的特征信息[17];Neck 部分的路徑聚合網絡(PAN)[18]自底向上通過下采樣來傳達強定位特征,兩個網絡從不同的主干層進行特征聚合,從而獲得信息更豐富的特征圖。Prediction 部分包含3個預測分支,利用提取到的特征信息對不同尺寸的目標進行預測,獲得預測目標的類別、置信度及其位置信息。
YOLOv5 原模型在公共數據集COCO 上進行訓練和評估[19],該數據集涵蓋80個類別、8.8×105個標注對象[20],識別類別過多會影響算法本身的主要特征表達[21]。本研究只涉及到茶葉嫩芽這一單類別識別,為提高茶葉嫩芽的檢測性能,本文提出一種改進模型Tea-YOLOv5s,將原模型中Backbone 網絡的SPPF 模塊替換為ASPP 結構、Neck 網絡引入BiFPN 結構,并在加強特征提取網絡上增加3個CBAM 注意力機制,在保證可以實現實時檢測的基礎上,提高茶葉嫩芽的識別精度。
2.2.1 Backbone 網絡優化
YOLOv5s 模型的骨干網絡中使用空間金字塔池化結構SPPF(spatial pyramid pooling-fast)來提取不同感受野的信息,但其池化操作會損失局部信息,不能充分體現全局信息和局部信息的語義關系[22]。本文采用文獻[23]中所提出的空洞空間卷積池化金字塔ASPP(atrous spatial pyramid pooling)結構取代原Backbone 網絡中的SPPF結構,利用不同空洞率的多個并行空洞卷積層[24]來實現SPPF 結構中的池化操作,并將其全局平均池化并聯,組成新的特征金字塔網絡,以此實現特征融合,獲取多尺度物體信息,增強模型識別不同尺寸同一目標的能力。
ASPP 結構如圖3 所示,其前向傳播流程為:將骨干特征提取網絡輸出的特征圖作為 ASPP 模塊的輸入,尺寸為20×20×1 024,第一個支路是1×1 標準卷積,保持原有的感受野;第二至四個支路是擴張率分別為6、12、18 且卷積核大小為3×3 的空洞卷積,特征提取以獲得不同的感受野;第五個支路是將輸入的特征圖進行全局平均池化,獲取全局特征。最后將五個分支的特征圖在通道維度上堆疊,經過1×1 標準卷積融合不同尺度的信息,最終生成20×20×1 024 特征圖。

圖3 ASPP 結構Fig.3 Structure of atrous spatial pyramid pooling
2.2.2 Neck 網絡優化
對于多尺度特征融合,在融合不同的輸入特征時,傳統的特征金字塔結構FPN(feature pyramid network)自頂向下融合特征,淺層的特征信息在傳遞的過程中丟失嚴重[25];YOLOv5s 采用的路徑聚合網絡PANet(path aggregation network)在FPN 的基礎上增加自底向上的路徑,雙向融合骨干網絡使得底層的信息更容易傳播,但結構仍較為簡單[26]。本研究引入可加權重的雙向特征金字塔網絡結構BiFPN(bidirectional feature pyramid network)[27],3 種Neck 網絡結構如圖4 所示。

圖4 三種Neck 網絡結構Fig.4 Three types of Neck network structures
BiFPN 刪除了貢獻度小的單輸入節點以此簡化網絡;然后在原始輸入節點和輸出節點之間增加一條邊以融合更多特征;最后將自頂向下和自底向上的路徑融合進一個模塊中,通過NAS 技術算出此模塊的重復次數后將其作為參數設計到網絡中來,提高茶葉嫩芽此類小目標的特征提取的準確度,以實現更高層次的特征融合。
先前的特征融合方法對輸入的特征均平等處理,然而,由于不同特征的分辨率不同,它們對特征融合的貢獻權重也是不同的[28]。為解決此問題,BiFPN 在特征融合期間為每個輸入添加一個額外的權重O,讓網絡去學習每個輸入特征的重要性[29],如式(1)所示。
式中Ii表示輸入的特征;ωi和ωj表示網絡訓練得到的權重;?=0.000 1。
2.2.3 加入CBAM 模塊提高識別精度
自然場景下的茶葉嫩芽環境比較復雜,且茶葉圖像的前景和背景較為相似,為使網絡模型在進行信息提取的時候更好地關注茶葉嫩芽的關鍵信息,改善小目標的識別效果,本文選擇將融合通道注意力與空間注意力的CBAM(convolutional block attention module)卷積注意力模塊[30]應用于加強特征融合網絡中,添加在Neck 網絡中的每個CSP2-_1 模塊后。
CBAM 模塊由通道注意力模塊(CAM)和空間注意力模塊(SAM)組成,如圖5 所示,CBAM 依次沿著通道和空間兩個獨立維度推斷注意力圖,兩個模塊分別關注特征的含義和重要特征的位置[31]。CAM 模塊對輸入進來的單個細化特征F[C,H,W],先分別進行全局平均池化和全局最大池化操作得到兩個[C,1,1]的權重向量;之后權重向量通過共享多層感知器映射成每個通道的權重;將映射后的權重相加,利用Sigmoid 激活函數獲得輸入特征層的權值矩陣Mc,其計算式如式(2)所示:

圖5 卷積注意力模塊Fig.5 Convolutional block attention module
式中,σ 為Sigmoid 激活函數,F為輸入的特征圖。在獲得Mc后,將其與原輸入特征圖F按通道數相乘得到通道細化特征F′,其計算式為式(3)。
式中F′為經CAM 細化后的特征圖,?為逐元相乘操作。特征圖F’[C’,H’,W’]在SAM 中沿每一個特征點的通道上進行最大池化和平均池化操作得到兩個[1,H’,W’]的權重向量,之后將結果進行堆疊獲得[2,H’,W’]的特征圖空間權重;經過7×7的卷積操作后利用Sigmoid 激活函數,進而得到空間壓縮權值矩陣Ms,如式(4)所示:
式中,f7×7為7×7 卷積層獲得權值Ms后,將其與輸入特征層F’相乘得到空間細化特征F’’,其計算式如式(5):
2.3.1 試驗平臺
本試驗運行算法的計算機工作站配置有Intel Core i7-10700K 處理器,主頻3.80 GHz,運行內存為16GB,并配有Nvidia 2 080 顯卡。試驗在Ubuntu18.04.6 LTS 操作系統上進行,采用PyTorch 深度學習框架對模型進行搭建和改進,Loss 曲線收斂后對各算法進行分析。
2.3.2 模型訓練參數設置
模型訓練時,將訓練集圖像的分辨率均調整為640×640 像素,選用隨機梯度下降法(stochastic gradient descent,SGD)優化器,訓練300個epoch,批次大小設為16,初始學習率為0.01,動量參數和權值衰減參數分別設置為0.937 和0.000 5。
2.3.3 評價指標
試驗結果采用檢測速度FPS(幀/s)作為模型的識別速度評價指標;采用準確率P(Precision,%)、召回率R(Recall,%)、平均精度XmAP(mean average precision,%)來衡量模型預測的準確度,計算式如下:
式中,XTP表示被正確地檢測為茶葉嫩芽的數量;XFP表示被錯誤地檢測成茶葉嫩芽的數量;XFN為圖像中被漏檢的茶嫩芽數量;XAP為0~1 之間所有R值的P的平均值函數;C為檢測類別數,本研究的識別目標只有茶葉嫩芽,故C=1。
將原YOLOv5s 網絡模型和改進后獲得的Tea-YOLOv5s 模型在119 張測試集上進行試驗對比,隨機選擇背景復雜、前景與背景相似、多目標情況下的3 種場景中選擇1 張茶葉圖像進行展示,如圖6 所示。

圖6 YOLOv5s 改進前后的茶葉嫩芽檢測效果對比Fig.6 Comparison of detection effect of tea buds before and after improvement of YOLOv5s
可以看出,由于茶葉嫩芽目標較小,處于的場景較為復雜,原YOLOv5s 模型對于多目標場景下的茶葉嫩芽出現漏檢現象,檢測出的目標置信度略有降低。Tea-YOLOv5s 模型對茶葉圖像進行檢測時具有更高的置信度分數,且出現的嫩芽目標全部被識別出。
本研究通過消融試驗以檢驗不同優化策略的有效性。試驗結果如表1 所示,由表可知,ASPP 結構提高了骨干網絡特征提取能力,召回率提升了0.5個百分點,mAP提升了1.7個百分點;若直接在頸部網絡的3個C3 層后添加3個CBAM 卷積注意力模塊,準確率、召回率和mAP 仍有小幅度提升;若在引入ASPP 結構的基礎上添加3個CBAM,準確率、召回率和mAP 均有所提高,其中mAP 提高了2.0個百分點。最終,改進后的Tea-YOLOv5s 模型的準確率、召回率和mAP 比原模型分別高出4.4、0.5 和4個百分點,但推理速度降低至84 幀/s,這表明引入各個結構增加了模型的復雜度導致推理速度變慢。

表1 消融試驗性能對比Table 1 Comparison of ablation experiment performance
以上4 種改進方法比原模型的檢測精度均有提升,雖然檢測速度略有降低但仍達到了實時檢測要求。5個網絡模型的性能曲線如圖7 所示,通過消融試驗證實了對YOLOv5s 網絡的Backbone、Neck 結構同時進行優化可以改善模型對茶葉嫩芽的檢測性能。

圖7 基于YOLOv5s 的不同改進算法在訓練過程中的性能參數變化曲線Fig.7 Curves of performance parameter changes of different improved algorithms based on YOLOv5s during training process
將基于改進YOLOv5s 的Tea-YOLOv5s 模型與主流目標檢測網絡模型如Faster-RCNN、SSD、YOLOv3、YOLOv4 和YOLOv5s 等進行試驗對比,結果如表2 所示。從表中可以看出,Tea-YOLOv5s 模型的平均精度比其他模型分別高出54.27、29.66、26.40、32.45、4.00個百分點,雙階段檢測網絡模型Faster-RCNN 的識別精度低且網絡參數多,推理速度最慢,單階段目標檢測模型SSD、YOLOv3、YOLOv4 的檢測精度較于Faster-RCNN 略有提高,但仍無法滿足茶葉嫩芽的實時性識別要求;改進后的Tea-YOLOv5s 的平均精度提高到了84.3%,雖然推理速度略低于常規YOLOv5s,但足以滿足茶葉嫩芽的實時檢測。

表2 不同網絡模型的試驗結果對比Table 2 Comparison of experimental results of different network models
1)本研究以原YOLOv5s 模型為基礎進行改進,使用ASPP 空洞空間卷積池化金字塔來提取茶葉嫩芽的多尺度特征信息,BiFPN 雙向特征金字塔網絡替換PANet路徑聚合網絡,提升了網絡特征融合能力,并將3個CBAM 卷積注意力模塊添加到Neck 網絡中,加強了關鍵信息的提取,提高檢測精度和效率。
2)根據茶園的實際環境,本研究制作了不同自然場景下的茶葉嫩芽數據集以用于模型的訓練、驗證和測試,并分別與Faster-RCNN、SSD、YOLOv3、YOLOv4 和YOLOv5s 模型進行試驗對比,結果表明,本研究提出的Tea-YOLOv5s 均能提升茶葉嫩芽識別的準確率、召回率和平均精度,較原模型分別提高了4.4、0.5 和4.0個百分點,隨著改進后模型的復雜度提高,推理速度也下降至84 幀/s,但仍能達到實時識別的要求。該模型對自然場景下的茶葉嫩芽檢測性能良好,可對茶葉的產量估計和茶葉采摘機器人的研發提供參考。