王夢妮,顧寄南,王化佳,胡甜甜,方新領(lǐng),潘知瑤
(江蘇大學(xué)機(jī)械工程學(xué)院,鎮(zhèn)江,212013)
作為全球最大的茶葉生產(chǎn)和消費國,中國的人均年消費量已超過1 500 g[1]。茶產(chǎn)業(yè)屬于季節(jié)性勞動密集型產(chǎn)業(yè),其中人工采摘環(huán)節(jié)占整個茶園管理用工的60%左右[2]。人工采摘不但效率低還占用大量農(nóng)時,人工成本高;市面上的傳統(tǒng)采茶機(jī)效率高但仍處于嫩芽與老葉同時“一刀切”的水平,這種“無差別采摘”方式極可能造成茶嫩芽的損壞,采摘的茶葉完整度低、質(zhì)量差,只能制作廉價的大宗茶[3]。因此,為了將茶農(nóng)從繁重的采摘作業(yè)中解放出來,提高嫩芽采摘的準(zhǔn)確率和效率,研究茶葉的智能化采摘具有重要意義,其前提和關(guān)鍵便是茶嫩芽的準(zhǔn)確識別。
近年來,對茶嫩芽的識別檢測方法研究主要集中在國內(nèi),其研究方法包括傳統(tǒng)圖像處理和深度學(xué)習(xí)方法。傳統(tǒng)的圖像處理方法是根據(jù)灰度、顏色、紋理和形狀等基本特征對圖像進(jìn)行區(qū)域劃分,使得區(qū)域間顯差異性、區(qū)域內(nèi)呈相似性[4]。吳雪梅等[5]根據(jù)嫩芽和老葉的G 和G-B 分量的顏色信息,利用改進(jìn)的最大方差自動取閾法計算G 和G-B 分量的分割閾值,分割出嫩芽。張浩等[6]結(jié)合RGB 因子和Otsu 法對圖像處理,通過濾波、腐蝕膨脹、閾值分割,面積篩選等得到嫩芽二值圖。張可等[7]人基于傳統(tǒng)閾值分割方法,結(jié)合K 聚類理論,提取茶葉圖像RGB 模型中的R-B 分量以及Lab 模型中的b 分量,用于嫩芽圖像的提取。張博等[8]通過RGB 色彩分量對圖像灰度化,濾波去噪,然后進(jìn)行圖像分割,再通過面積篩選等只保留嫩芽的二值圖,從而識別出茶葉嫩芽。以上方法雖然能實現(xiàn)茶嫩芽的識別,但其分割精度低,效果受嫩芽特征的影響較大,模型的泛化性和魯棒性較差。
隨著深度學(xué)習(xí)的快速發(fā)展和在其他領(lǐng)域的大量應(yīng)用,其在現(xiàn)代農(nóng)業(yè)中的研究也在增加[9]。許高建等[10]采用改進(jìn)Faster R-CNN 算法對茶葉嫩芽圖像進(jìn)行識別,但模型普適性較差,且分割速度較慢。CHEN等[11]和WANG等[12]分別利用Faster R-CNN 和Mask-RCNN 網(wǎng)絡(luò)識別出自然場景下的茶葉嫩芽,以上兩種方法具有較好的通用性和魯棒性,但識別檢測茶嫩芽的步驟多速度慢,實時性不高,應(yīng)用到茶葉的智能采摘上的效率有待提高。
目前的茶葉嫩芽識別方法研究大多屬于傳統(tǒng)圖像處理方法或傳統(tǒng)方法與深度學(xué)習(xí)相結(jié)合,雖然能夠識別到目標(biāo),但仍存在以下不足:首先,傳統(tǒng)圖像處理方法在進(jìn)行特征選擇時,依賴研究人員人工設(shè)計特征,需要豐富的先驗知識和復(fù)雜的調(diào)參過程,耗費時間過長。其次,由于市場的需求,茶葉嫩芽的識別精度應(yīng)當(dāng)很高,然而當(dāng)前針對茶葉嫩芽的識別研究大多沒有考慮到識別精度問題,現(xiàn)有的研究網(wǎng)絡(luò)模型參數(shù)量大、運行速度慢,未能實現(xiàn)識別效率與精度的有效平衡,然而,檢測速度和檢測精度是衡量模型能否應(yīng)用在工程上的重要指標(biāo)[13];最后,與人臉識別等傳統(tǒng)目標(biāo)的識別相比,嫩芽的顏色、紋理特征與葉子相似,特征差異較??;圖像中的目標(biāo)小、密度高,且并非處于結(jié)構(gòu)化環(huán)境中,背景復(fù)雜。
針對以上問題,本文以茶葉嫩芽的識別為目標(biāo)任務(wù),運用檢測速度和精度較好的YOLOv5s 網(wǎng)絡(luò)為基礎(chǔ),根據(jù)目前嫩芽檢測中存在的問題對原網(wǎng)絡(luò)模型進(jìn)行改進(jìn),在保證實時檢測速度的基礎(chǔ)上提高網(wǎng)絡(luò)模型的檢測精度,并與Faster R-CNN、YOLOv4 等網(wǎng)絡(luò)模型進(jìn)行效果對比,以評估改進(jìn)后的模型性能,為茶葉的產(chǎn)量估計和茶葉智能采摘視覺系統(tǒng)提供技術(shù)支持。
本研究所用茶葉嫩芽數(shù)據(jù)集原始圖像采集地點為江蘇省南京市綠航獼猴桃園和鎮(zhèn)江市五峰茶廠,采集對象為龍井43 和五峰茶樹,茶樹均單攏栽種,長勢較好。圖像采集設(shè)備為iPhone 手機(jī)和Canon EOS 800D,數(shù)據(jù)的分辨率分別是4 032×3 024 和3 984×2 656像素,以PNG 格式保存。數(shù)據(jù)采集于2022 年3 月、6 月上旬和10 月下旬,拍攝時間為06:00~18:00。在對茶葉嫩芽進(jìn)行圖像采集的時候,拍攝設(shè)備與茶樹的距離為10~50 cm,拍攝角度與豎直向上方向呈30°~90°夾角,嫩芽為前景,嫩芽以外的信息為背景。共采集原始圖像1 190 幅,如圖1 所示,包含不同背景復(fù)雜度、近遠(yuǎn)景、不同季節(jié)和單張圖中目標(biāo)多少的數(shù)據(jù)。
圖1 不同場景下的茶嫩芽數(shù)據(jù)樣本Fig.1 Tea buds data samples in different scenarios
利用矩形區(qū)域標(biāo)注工具LabelImg 對采集到的圖像進(jìn)行人工標(biāo)記,以獲得圖像中目標(biāo)嫩芽的類別和位置信息。標(biāo)注完的信息以txt 文件的形式保存后,完成茶葉嫩芽數(shù)據(jù)集的構(gòu)建。本研究將數(shù)據(jù)集按照7∶2∶1 的比例隨機(jī)劃分為訓(xùn)練集(833 幅)、驗證集(238 幅)和測試集(119 幅),每個數(shù)據(jù)集都包含采集到的茶嫩芽圖像和標(biāo)注的標(biāo)簽信息。
在單階段目標(biāo)檢測算法里,YOLOv5 的性能良好,是YOLO 系列中推理速度和識別效果最優(yōu)的模型[14],其中,YOLOv5s 網(wǎng)絡(luò)的深度和特征圖的寬度較小,推理速度快,廣泛應(yīng)用于實際場景中[15],其作為基礎(chǔ)模型。因此本研究選YOLOv5s 的網(wǎng)絡(luò)結(jié)構(gòu)包括輸入端Input、骨干網(wǎng)絡(luò)Backbone、頸部網(wǎng)絡(luò)Neck 和預(yù)測Prediction 4個部分,其網(wǎng)絡(luò)結(jié)構(gòu)如圖2 所示。
圖2 YOLOv5 網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 The network structure of YOLOv5
輸入端的Mosaic 數(shù)據(jù)增強(qiáng)隨機(jī)使用4 張圖片,通過隨機(jī)縮放、裁剪、分布進(jìn)行拼接,以此豐富數(shù)據(jù)集,增強(qiáng)模型的泛化性[16];通過自適應(yīng)的錨框自動計算茶嫩芽數(shù)據(jù)集的最佳錨框值。輸入的圖片首先在Backbone 部分進(jìn)行特征提取,獲得3個有效特征層后,Neck 部分的特征金字塔網(wǎng)絡(luò)(FPN)進(jìn)行通過上采樣的方式進(jìn)行特征融合,結(jié)合不同尺度的特征信息[17];Neck 部分的路徑聚合網(wǎng)絡(luò)(PAN)[18]自底向上通過下采樣來傳達(dá)強(qiáng)定位特征,兩個網(wǎng)絡(luò)從不同的主干層進(jìn)行特征聚合,從而獲得信息更豐富的特征圖。Prediction 部分包含3個預(yù)測分支,利用提取到的特征信息對不同尺寸的目標(biāo)進(jìn)行預(yù)測,獲得預(yù)測目標(biāo)的類別、置信度及其位置信息。
YOLOv5 原模型在公共數(shù)據(jù)集COCO 上進(jìn)行訓(xùn)練和評估[19],該數(shù)據(jù)集涵蓋80個類別、8.8×105個標(biāo)注對象[20],識別類別過多會影響算法本身的主要特征表達(dá)[21]。本研究只涉及到茶葉嫩芽這一單類別識別,為提高茶葉嫩芽的檢測性能,本文提出一種改進(jìn)模型Tea-YOLOv5s,將原模型中Backbone 網(wǎng)絡(luò)的SPPF 模塊替換為ASPP 結(jié)構(gòu)、Neck 網(wǎng)絡(luò)引入BiFPN 結(jié)構(gòu),并在加強(qiáng)特征提取網(wǎng)絡(luò)上增加3個CBAM 注意力機(jī)制,在保證可以實現(xiàn)實時檢測的基礎(chǔ)上,提高茶葉嫩芽的識別精度。
2.2.1 Backbone 網(wǎng)絡(luò)優(yōu)化
YOLOv5s 模型的骨干網(wǎng)絡(luò)中使用空間金字塔池化結(jié)構(gòu)SPPF(spatial pyramid pooling-fast)來提取不同感受野的信息,但其池化操作會損失局部信息,不能充分體現(xiàn)全局信息和局部信息的語義關(guān)系[22]。本文采用文獻(xiàn)[23]中所提出的空洞空間卷積池化金字塔ASPP(atrous spatial pyramid pooling)結(jié)構(gòu)取代原Backbone 網(wǎng)絡(luò)中的SPPF結(jié)構(gòu),利用不同空洞率的多個并行空洞卷積層[24]來實現(xiàn)SPPF 結(jié)構(gòu)中的池化操作,并將其全局平均池化并聯(lián),組成新的特征金字塔網(wǎng)絡(luò),以此實現(xiàn)特征融合,獲取多尺度物體信息,增強(qiáng)模型識別不同尺寸同一目標(biāo)的能力。
ASPP 結(jié)構(gòu)如圖3 所示,其前向傳播流程為:將骨干特征提取網(wǎng)絡(luò)輸出的特征圖作為 ASPP 模塊的輸入,尺寸為20×20×1 024,第一個支路是1×1 標(biāo)準(zhǔn)卷積,保持原有的感受野;第二至四個支路是擴(kuò)張率分別為6、12、18 且卷積核大小為3×3 的空洞卷積,特征提取以獲得不同的感受野;第五個支路是將輸入的特征圖進(jìn)行全局平均池化,獲取全局特征。最后將五個分支的特征圖在通道維度上堆疊,經(jīng)過1×1 標(biāo)準(zhǔn)卷積融合不同尺度的信息,最終生成20×20×1 024 特征圖。
圖3 ASPP 結(jié)構(gòu)Fig.3 Structure of atrous spatial pyramid pooling
2.2.2 Neck 網(wǎng)絡(luò)優(yōu)化
對于多尺度特征融合,在融合不同的輸入特征時,傳統(tǒng)的特征金字塔結(jié)構(gòu)FPN(feature pyramid network)自頂向下融合特征,淺層的特征信息在傳遞的過程中丟失嚴(yán)重[25];YOLOv5s 采用的路徑聚合網(wǎng)絡(luò)PANet(path aggregation network)在FPN 的基礎(chǔ)上增加自底向上的路徑,雙向融合骨干網(wǎng)絡(luò)使得底層的信息更容易傳播,但結(jié)構(gòu)仍較為簡單[26]。本研究引入可加權(quán)重的雙向特征金字塔網(wǎng)絡(luò)結(jié)構(gòu)BiFPN(bidirectional feature pyramid network)[27],3 種Neck 網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示。
圖4 三種Neck 網(wǎng)絡(luò)結(jié)構(gòu)Fig.4 Three types of Neck network structures
BiFPN 刪除了貢獻(xiàn)度小的單輸入節(jié)點以此簡化網(wǎng)絡(luò);然后在原始輸入節(jié)點和輸出節(jié)點之間增加一條邊以融合更多特征;最后將自頂向下和自底向上的路徑融合進(jìn)一個模塊中,通過NAS 技術(shù)算出此模塊的重復(fù)次數(shù)后將其作為參數(shù)設(shè)計到網(wǎng)絡(luò)中來,提高茶葉嫩芽此類小目標(biāo)的特征提取的準(zhǔn)確度,以實現(xiàn)更高層次的特征融合。
先前的特征融合方法對輸入的特征均平等處理,然而,由于不同特征的分辨率不同,它們對特征融合的貢獻(xiàn)權(quán)重也是不同的[28]。為解決此問題,BiFPN 在特征融合期間為每個輸入添加一個額外的權(quán)重O,讓網(wǎng)絡(luò)去學(xué)習(xí)每個輸入特征的重要性[29],如式(1)所示。
式中Ii表示輸入的特征;ωi和ωj表示網(wǎng)絡(luò)訓(xùn)練得到的權(quán)重;?=0.000 1。
2.2.3 加入CBAM 模塊提高識別精度
自然場景下的茶葉嫩芽環(huán)境比較復(fù)雜,且茶葉圖像的前景和背景較為相似,為使網(wǎng)絡(luò)模型在進(jìn)行信息提取的時候更好地關(guān)注茶葉嫩芽的關(guān)鍵信息,改善小目標(biāo)的識別效果,本文選擇將融合通道注意力與空間注意力的CBAM(convolutional block attention module)卷積注意力模塊[30]應(yīng)用于加強(qiáng)特征融合網(wǎng)絡(luò)中,添加在Neck 網(wǎng)絡(luò)中的每個CSP2-_1 模塊后。
CBAM 模塊由通道注意力模塊(CAM)和空間注意力模塊(SAM)組成,如圖5 所示,CBAM 依次沿著通道和空間兩個獨立維度推斷注意力圖,兩個模塊分別關(guān)注特征的含義和重要特征的位置[31]。CAM 模塊對輸入進(jìn)來的單個細(xì)化特征F[C,H,W],先分別進(jìn)行全局平均池化和全局最大池化操作得到兩個[C,1,1]的權(quán)重向量;之后權(quán)重向量通過共享多層感知器映射成每個通道的權(quán)重;將映射后的權(quán)重相加,利用Sigmoid 激活函數(shù)獲得輸入特征層的權(quán)值矩陣Mc,其計算式如式(2)所示:
圖5 卷積注意力模塊Fig.5 Convolutional block attention module
式中,σ 為Sigmoid 激活函數(shù),F(xiàn)為輸入的特征圖。在獲得Mc后,將其與原輸入特征圖F按通道數(shù)相乘得到通道細(xì)化特征F′,其計算式為式(3)。
式中F′為經(jīng)CAM 細(xì)化后的特征圖,?為逐元相乘操作。特征圖F’[C’,H’,W’]在SAM 中沿每一個特征點的通道上進(jìn)行最大池化和平均池化操作得到兩個[1,H’,W’]的權(quán)重向量,之后將結(jié)果進(jìn)行堆疊獲得[2,H’,W’]的特征圖空間權(quán)重;經(jīng)過7×7的卷積操作后利用Sigmoid 激活函數(shù),進(jìn)而得到空間壓縮權(quán)值矩陣Ms,如式(4)所示:
式中,f7×7為7×7 卷積層獲得權(quán)值Ms后,將其與輸入特征層F’相乘得到空間細(xì)化特征F’’,其計算式如式(5):
2.3.1 試驗平臺
本試驗運行算法的計算機(jī)工作站配置有Intel Core i7-10700K 處理器,主頻3.80 GHz,運行內(nèi)存為16GB,并配有Nvidia 2 080 顯卡。試驗在Ubuntu18.04.6 LTS 操作系統(tǒng)上進(jìn)行,采用PyTorch 深度學(xué)習(xí)框架對模型進(jìn)行搭建和改進(jìn),Loss 曲線收斂后對各算法進(jìn)行分析。
2.3.2 模型訓(xùn)練參數(shù)設(shè)置
模型訓(xùn)練時,將訓(xùn)練集圖像的分辨率均調(diào)整為640×640 像素,選用隨機(jī)梯度下降法(stochastic gradient descent,SGD)優(yōu)化器,訓(xùn)練300個epoch,批次大小設(shè)為16,初始學(xué)習(xí)率為0.01,動量參數(shù)和權(quán)值衰減參數(shù)分別設(shè)置為0.937 和0.000 5。
2.3.3 評價指標(biāo)
試驗結(jié)果采用檢測速度FPS(幀/s)作為模型的識別速度評價指標(biāo);采用準(zhǔn)確率P(Precision,%)、召回率R(Recall,%)、平均精度XmAP(mean average precision,%)來衡量模型預(yù)測的準(zhǔn)確度,計算式如下:
式中,XTP表示被正確地檢測為茶葉嫩芽的數(shù)量;XFP表示被錯誤地檢測成茶葉嫩芽的數(shù)量;XFN為圖像中被漏檢的茶嫩芽數(shù)量;XAP為0~1 之間所有R值的P的平均值函數(shù);C為檢測類別數(shù),本研究的識別目標(biāo)只有茶葉嫩芽,故C=1。
將原YOLOv5s 網(wǎng)絡(luò)模型和改進(jìn)后獲得的Tea-YOLOv5s 模型在119 張測試集上進(jìn)行試驗對比,隨機(jī)選擇背景復(fù)雜、前景與背景相似、多目標(biāo)情況下的3 種場景中選擇1 張茶葉圖像進(jìn)行展示,如圖6 所示。
圖6 YOLOv5s 改進(jìn)前后的茶葉嫩芽檢測效果對比Fig.6 Comparison of detection effect of tea buds before and after improvement of YOLOv5s
可以看出,由于茶葉嫩芽目標(biāo)較小,處于的場景較為復(fù)雜,原YOLOv5s 模型對于多目標(biāo)場景下的茶葉嫩芽出現(xiàn)漏檢現(xiàn)象,檢測出的目標(biāo)置信度略有降低。Tea-YOLOv5s 模型對茶葉圖像進(jìn)行檢測時具有更高的置信度分?jǐn)?shù),且出現(xiàn)的嫩芽目標(biāo)全部被識別出。
本研究通過消融試驗以檢驗不同優(yōu)化策略的有效性。試驗結(jié)果如表1 所示,由表可知,ASPP 結(jié)構(gòu)提高了骨干網(wǎng)絡(luò)特征提取能力,召回率提升了0.5個百分點,mAP提升了1.7個百分點;若直接在頸部網(wǎng)絡(luò)的3個C3 層后添加3個CBAM 卷積注意力模塊,準(zhǔn)確率、召回率和mAP 仍有小幅度提升;若在引入ASPP 結(jié)構(gòu)的基礎(chǔ)上添加3個CBAM,準(zhǔn)確率、召回率和mAP 均有所提高,其中mAP 提高了2.0個百分點。最終,改進(jìn)后的Tea-YOLOv5s 模型的準(zhǔn)確率、召回率和mAP 比原模型分別高出4.4、0.5 和4個百分點,但推理速度降低至84 幀/s,這表明引入各個結(jié)構(gòu)增加了模型的復(fù)雜度導(dǎo)致推理速度變慢。
表1 消融試驗性能對比Table 1 Comparison of ablation experiment performance
以上4 種改進(jìn)方法比原模型的檢測精度均有提升,雖然檢測速度略有降低但仍達(dá)到了實時檢測要求。5個網(wǎng)絡(luò)模型的性能曲線如圖7 所示,通過消融試驗證實了對YOLOv5s 網(wǎng)絡(luò)的Backbone、Neck 結(jié)構(gòu)同時進(jìn)行優(yōu)化可以改善模型對茶葉嫩芽的檢測性能。
圖7 基于YOLOv5s 的不同改進(jìn)算法在訓(xùn)練過程中的性能參數(shù)變化曲線Fig.7 Curves of performance parameter changes of different improved algorithms based on YOLOv5s during training process
將基于改進(jìn)YOLOv5s 的Tea-YOLOv5s 模型與主流目標(biāo)檢測網(wǎng)絡(luò)模型如Faster-RCNN、SSD、YOLOv3、YOLOv4 和YOLOv5s 等進(jìn)行試驗對比,結(jié)果如表2 所示。從表中可以看出,Tea-YOLOv5s 模型的平均精度比其他模型分別高出54.27、29.66、26.40、32.45、4.00個百分點,雙階段檢測網(wǎng)絡(luò)模型Faster-RCNN 的識別精度低且網(wǎng)絡(luò)參數(shù)多,推理速度最慢,單階段目標(biāo)檢測模型SSD、YOLOv3、YOLOv4 的檢測精度較于Faster-RCNN 略有提高,但仍無法滿足茶葉嫩芽的實時性識別要求;改進(jìn)后的Tea-YOLOv5s 的平均精度提高到了84.3%,雖然推理速度略低于常規(guī)YOLOv5s,但足以滿足茶葉嫩芽的實時檢測。
表2 不同網(wǎng)絡(luò)模型的試驗結(jié)果對比Table 2 Comparison of experimental results of different network models
1)本研究以原YOLOv5s 模型為基礎(chǔ)進(jìn)行改進(jìn),使用ASPP 空洞空間卷積池化金字塔來提取茶葉嫩芽的多尺度特征信息,BiFPN 雙向特征金字塔網(wǎng)絡(luò)替換PANet路徑聚合網(wǎng)絡(luò),提升了網(wǎng)絡(luò)特征融合能力,并將3個CBAM 卷積注意力模塊添加到Neck 網(wǎng)絡(luò)中,加強(qiáng)了關(guān)鍵信息的提取,提高檢測精度和效率。
2)根據(jù)茶園的實際環(huán)境,本研究制作了不同自然場景下的茶葉嫩芽數(shù)據(jù)集以用于模型的訓(xùn)練、驗證和測試,并分別與Faster-RCNN、SSD、YOLOv3、YOLOv4 和YOLOv5s 模型進(jìn)行試驗對比,結(jié)果表明,本研究提出的Tea-YOLOv5s 均能提升茶葉嫩芽識別的準(zhǔn)確率、召回率和平均精度,較原模型分別提高了4.4、0.5 和4.0個百分點,隨著改進(jìn)后模型的復(fù)雜度提高,推理速度也下降至84 幀/s,但仍能達(dá)到實時識別的要求。該模型對自然場景下的茶葉嫩芽檢測性能良好,可對茶葉的產(chǎn)量估計和茶葉采摘機(jī)器人的研發(fā)提供參考。