施瑩瑩 李祥瑞 孫凡
摘要:以自然環(huán)境下手機(jī)拍攝的多天氣情況、多品種的茶葉嫩芽圖像為實(shí)驗(yàn)樣本數(shù)據(jù)集,研究茶葉嫩芽目標(biāo)檢測方法。采用基于深度神經(jīng)網(wǎng)絡(luò)的YOLOv3算法構(gòu)建模型,將經(jīng)過數(shù)據(jù)增強(qiáng)處理的多品種茶葉嫩芽圖像作為模型輸入,通過單一的特征提取網(wǎng)絡(luò),進(jìn)行多尺度目標(biāo)檢測,對輸入圖像進(jìn)行粗、中、細(xì)的網(wǎng)格劃分,將茶葉嫩芽目標(biāo)檢測任務(wù)看作目標(biāo)區(qū)域預(yù)測和類別預(yù)測的回歸問題。實(shí)驗(yàn)結(jié)果表明,基于YOLOv3的目標(biāo)檢測算法對自然環(huán)境下多品種的茶葉嫩芽目標(biāo)具有較高的召回率及檢測精度,為農(nóng)業(yè)機(jī)械化、智能化提供了思路。
關(guān)鍵詞:目標(biāo)檢測;YOLOv3;茶葉嫩芽識別;深度學(xué)習(xí)
中圖分類號:TP3? ? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2021)03-0014-03
中國茶文化源遠(yuǎn)流長,而茶葉作為茶文化的中心,同時也是中國與世界文化溝通的橋梁之一,其種植與采摘自然是不可忽視的方面。目前,主要的茶葉采摘方式分為人工采摘和機(jī)械采摘2種。一方面,人工采摘雖然能較準(zhǔn)確地識別嫩芽,但效率低下、成本高昂,且在采茶洪峰時期務(wù)工難[1];另一方面,使用機(jī)械采摘代替人工手采雖能提高采摘速度,但采摘時老葉、嫩葉、嫩芽一起采,缺乏選擇性,并有部分葉片遭破損現(xiàn)象,降低了原料品質(zhì)[2]。因此,研究一種面向自動采茶裝置的高效、低損傷的茶葉嫩芽目標(biāo)檢測方法十分必要。
目前,茶葉嫩芽的識別與檢測主要依賴于茶葉形狀和顏色特征的提取,且大多是基于傳統(tǒng)機(jī)器學(xué)習(xí)和數(shù)字圖像處理技術(shù)的。如楊福增[3]等針對白色背景下的茶葉圖像,利用其在RGB顏色空間中的G分量,通過雙閾值方法進(jìn)行分割,再根據(jù)茶葉嫩芽的形狀特征進(jìn)行邊緣檢測,展開嫩芽識別的研究。吳雪梅[2]等提出基于茶葉嫩芽圖像在Lab顏色模型中a分量、b分量信息的K -means聚類法,為智能采摘技術(shù)的研究提供了支持。
近年來,由于深度神經(jīng)網(wǎng)絡(luò)在目標(biāo)檢測領(lǐng)域的發(fā)展迅速,一系列框架及經(jīng)典算法的相繼出現(xiàn),如R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD等目標(biāo)檢測網(wǎng)絡(luò)為目標(biāo)的精確定位與檢測提供了基礎(chǔ)。孫肖肖[4]等基于端到端檢測框架的代表算法YOLO,通過超綠特征以及OSTU算法的結(jié)合對復(fù)雜背景下的茶葉嫩芽進(jìn)行預(yù)處理分割,用大尺度和中尺度檢測,進(jìn)行了有較高精度的茶葉嫩芽目標(biāo)檢測。
鑒于自然環(huán)境下茶葉嫩芽的識別研究有待深入展開,且目前尚無適用于多品種、多天氣情況下的茶葉嫩芽目標(biāo)檢測算法的研究成果,本研究以清明前后、晴天陰天多種情況下的待采摘茶葉為研究對象,基于YOLOv3算法檢測圖像中的茶葉嫩芽,擬為快速識別多場景、多品種的茶葉嫩芽目標(biāo)提供有效的經(jīng)驗(yàn)。
1 基本理論
1.1 YOLOv3基本思想
YOLO(You Only Look Once)與其他two-stage算法(例如Fast RCNN、Faster RCNN、Mask RCNN)不同,是一種采用單步(one-stage)檢測的算法,two-stage算法是將目標(biāo)位置框的檢測和分類預(yù)測分為兩步進(jìn)行,而YOLO通過先提出候選框,再進(jìn)行分類的方法,直接將目標(biāo)檢測問題處理為回歸問題,即使用一個神經(jīng)網(wǎng)絡(luò)就可以完成圖像的邊界框(bounding box)和類概率(class probabilities)的預(yù)測。因此,可以實(shí)現(xiàn)端到端的物體檢測性能優(yōu)化[5]。
YOLO中,先將圖像劃分為S×S的網(wǎng)格,每個網(wǎng)格負(fù)責(zé)監(jiān)測中心落入格子中的目標(biāo)。每個網(wǎng)格都會輸出邊界框(bounding box),置信度分?jǐn)?shù)(confidence scores)和類概率(class probability map),如圖1所示。其中,bounding box包含x,y,w,h四個值,box中心用(x,y)表示,box的寬和高用(w,h)表示,預(yù)測框包含一個對象的模型的置信度即它認(rèn)為該框預(yù)測的準(zhǔn)確性用confidence scores表示,置信度在形式上定義為[PrObject*IOUtruthpred],[PrObject]為單元格中存在目標(biāo)的概率,[IOUtruthpred]為預(yù)測框與真實(shí)框之間的IOU值,物體的類別概率表示為class probability,在YOLOv3中采用的是二分類的方法。
在推理階段,通過置信度定義得到每個網(wǎng)格中的各類置信度得分,然后將低于設(shè)定閾值分?jǐn)?shù)的檢測框過濾掉,而后用非極大值抑制算法(non-maximum suppression, NMS)處理剩下的檢測框。此外,在預(yù)測對象類別時,以logistic回歸模型替代softmax邏輯回歸模型,以便支持多標(biāo)簽對象的分類。
1.2 特征提取網(wǎng)絡(luò)結(jié)構(gòu)
YOLOv3算法的特征提取網(wǎng)絡(luò)結(jié)構(gòu)為DarkNet-53結(jié)構(gòu)[6],它主要由卷積層和殘差模塊所組成,沒有池化和全連接層。當(dāng)網(wǎng)絡(luò)層數(shù)過多時,會出現(xiàn)梯度消失問題,因此DarkNet-53屆用了殘差網(wǎng)絡(luò)(ResNet)的思想,通過在網(wǎng)絡(luò)結(jié)構(gòu)中加入殘差模塊來解決該問題。為了使網(wǎng)絡(luò)集中地學(xué)習(xí)輸入和輸出之間的殘差,殘差模塊通過恒等映射(identity mapping)的方法在輸入和輸出之間建立了一條直接關(guān)聯(lián)的通道。其中,每個殘差模塊都是由兩個卷積層和一個快捷鏈路(shortcut connections)組成。而每個卷積層的實(shí)現(xiàn)又包含了卷積層Conv2d,批量歸一化曾(Batch Normalization)和激活函數(shù)LeakyReLU,每個殘差模塊之后加上zero padding對圖片等的2D輸入進(jìn)行邊界填充(填充數(shù)字0),來控制卷積操作以后的特征圖的大小。
1.3 多尺度檢測
YOLOv3采用3種不同尺度的特征圖,對輸入的圖像進(jìn)行細(xì)、中和粗的網(wǎng)格劃分,從而分別實(shí)現(xiàn)對小、中和大物體的預(yù)測。在前向傳播的過程中,張量的尺寸變換是 通過卷積核的步長改變來達(dá)到的,如stride=(2, 2),這就相當(dāng)于將圖像邊長縮小一半( 即圖像面積縮小為原來的1/4),經(jīng)歷5次下采樣變換,網(wǎng)絡(luò)會將輸出特征圖縮小到輸入的1/25(即1/32)。因此,輸入圖像尺寸 一般是32的倍數(shù),那么如果輸入圖像尺寸為416×416時, 那么得到細(xì)、中和粗網(wǎng)格尺寸分別為52×52、26×26和13×13。
1.4 損失函數(shù)
YOLOv3將目標(biāo)檢測看作是目標(biāo)類別預(yù)測和區(qū)域預(yù)測的回歸問題,YOLOv3的損失函數(shù)包括置信度損失、框回歸損失及分類損失。其中,置信度損失,用于判斷預(yù)測框有無目標(biāo),分辨圖片的背景和前景區(qū)域,其判定規(guī)則為:如果一個預(yù)測框與所有真實(shí)框的IOU都小于某個閾值,那么就判定它是背景,否則為前景(包含目標(biāo));框回歸損失,僅在預(yù)測框中包含預(yù)測目標(biāo)時計(jì)算;分類損失,采用二分類交叉熵(即把所有類別的分類問題歸結(jié)為是否屬于這個類別),公式為
如此便將多分類問題理解為二分類問題,有益于排除類別的互斥性和解決因?yàn)槎鄠€ 類別物體重疊導(dǎo)致的漏檢問題。
2 實(shí)驗(yàn)方法
2.1 數(shù)據(jù)獲取
首先要確定數(shù)據(jù)收集范圍、數(shù)據(jù)類型及總量。目前主流手機(jī)后置攝像頭成像效果足夠清晰,滿足實(shí)驗(yàn)要求,故本文采用手機(jī)后攝,使用正常的采摘距離、多角度進(jìn)行拍攝,模擬人工采茶的實(shí)際情況。實(shí)驗(yàn)選擇鎮(zhèn)江五峰白茶、安徽養(yǎng)心谷黃茶、青茶和青島嶗山綠茶共4個品種的茶葉,分別在2019年10月、2020年4月前往對應(yīng)茶場拍攝,共計(jì)拍攝3340張有效原始圖像。構(gòu)成數(shù)據(jù)集的茶葉品種多樣,茶葉的實(shí)際拍攝場景包括晴天和陰天2種不同天氣狀況下拍攝的圖像,以此確保模型具有良好的泛化能力和魯棒性。拍攝的圖像如圖2所示。
2.2 工具選擇
基于前述YOLOv3算法的特點(diǎn),本研究采用Tensorflow2進(jìn)行模型構(gòu)建。通過tf.keras,能夠方便地構(gòu)建、修改網(wǎng)絡(luò)模型結(jié)構(gòu)。該框架支持多種硬件加速和分布式運(yùn)算,大大提高模型的訓(xùn)練速度。其對多種語言的支持也保證了模型的可移植性。
2.3 算法流程
基于YOLOv3算法,使用DarkNet-53的網(wǎng)絡(luò)結(jié)構(gòu),準(zhǔn)備標(biāo)注好的茶葉嫩芽圖像數(shù)據(jù)集、標(biāo)注框類別的匯總(即數(shù)據(jù)集中所標(biāo)注物體的全部類別)、預(yù)測特征圖的anchor框集合作為模型輸入?yún)?shù)。輸入圖像將統(tǒng)一縮放到416×416,通過隨機(jī)剪裁、旋轉(zhuǎn)、鏡像等對數(shù)據(jù)進(jìn)行增強(qiáng)處理。將預(yù)訓(xùn)練模型的權(quán)重及上述參數(shù)輸入網(wǎng)絡(luò)模型,模型通過邊界框的K-Means聚類,產(chǎn)生3個尺度的特征圖,每個特征圖3個anchor框,共9個框。根據(jù)預(yù)測結(jié)果計(jì)算損失函數(shù)值,對網(wǎng)絡(luò)權(quán)重使用反向傳播和Adam作為優(yōu)化器的梯度下降算法進(jìn)行調(diào)整,擬合輸入與輸出之間的關(guān)系。在訓(xùn)練的過程中,不 斷保存每個epoch完成后 的模型權(quán)重,直到訓(xùn)練完成。
3 結(jié)果與分析
實(shí)驗(yàn)所用復(fù)雜背景多光照下四種茶葉嫩芽圖像數(shù)據(jù)集信息如表1所示。
實(shí)驗(yàn)測試環(huán)境為普通筆記本電腦,實(shí)驗(yàn)代碼適用于Windows、Mac及Linux。將測試集中的茶葉嫩芽圖像輸入到 訓(xùn)練好的網(wǎng)絡(luò)模型中,即可得到每張檢測圖像,四種茶葉嫩芽的測試結(jié)果如圖3所示。
由于在以前的研究中沒有使用多類型多光照條件下的茶葉嫩芽圖像數(shù)據(jù),本實(shí)驗(yàn)具有開創(chuàng)性,因此在此只列舉本文算法的數(shù)據(jù)結(jié)果。根據(jù)訓(xùn)練及測試結(jié)果計(jì)算mAP(平均精度均值,mean average precision),mAP是對檢測器檢測各個類別的AP(平均精度,average precision)求平均值,由于本文中所有茶葉嫩芽分為一類,故mAP即為AP。本文提出的算法在復(fù)雜背景不同光照下四種茶葉嫩芽圖像數(shù)據(jù)集上的AP和Recall結(jié)果如表2所示。
由表2可得,本文在多種類多光照條件對復(fù)雜背景下對茶葉嫩芽檢測的召回率Recall的表現(xiàn)較好,平均精度AP的表現(xiàn)一般。因?yàn)锳P是在召回率Recall從0到1各個點(diǎn)的查準(zhǔn)率Precision的均值,所以可以推出查準(zhǔn)率Precision的表現(xiàn)一般。我們多次就單張圖片進(jìn)行測試,分析后發(fā)現(xiàn),由于所有標(biāo)簽是人為標(biāo)注的,且復(fù)雜背景下圖片中茶葉嫩芽數(shù)量較大,因此難免會有遺漏的情況,而當(dāng)模型將沒有標(biāo)注到的嫩芽識別出來時,會被認(rèn)定為False Positives,因此降低了查準(zhǔn)率,實(shí)際上的查準(zhǔn)率應(yīng)略高于當(dāng)前查準(zhǔn)率,則AP也應(yīng)當(dāng)略高于0.637。
根據(jù)模型我們也開發(fā)了相應(yīng)的可視化界面,可以直接運(yùn)行可視化界面進(jìn)行單張圖片的上傳、檢測與結(jié)果分析,如圖4所示。
4 結(jié)論
針對復(fù)雜背景下茶葉嫩芽目標(biāo)檢測問題,本文創(chuàng)新性地使用了多種光照條件、多種類型的茶葉嫩芽數(shù)據(jù)集作為網(wǎng)絡(luò)輸入,使得模型具有較強(qiáng)泛化能力與檢測效果。首先,使用數(shù)據(jù)增強(qiáng)擴(kuò)充數(shù)據(jù)集,然后采用基于深度學(xué)習(xí)的YOLOv3目標(biāo)檢測算法對茶葉嫩芽進(jìn)行檢測,最后開發(fā)了可視化界面方便用戶使用。在下一步的實(shí)驗(yàn)中,擬采用GAN生成對抗網(wǎng)絡(luò)(generative? adversarial networks)或者迭代的形式進(jìn)行標(biāo)簽的標(biāo)記,來解決查準(zhǔn)率較低的問題。
參考文獻(xiàn):
[1] 邵明. 基于計(jì)算機(jī)視覺的龍井茶葉嫩芽識別方法研究[D]. 中國計(jì)量學(xué)院,2013.
[2] 吳雪梅,唐仙,張富貴,等.基于K-means聚類法的茶葉嫩芽識別研究[J].中國農(nóng)機(jī)化學(xué)報,2015,36(5):161-164,179.
[3] 楊福增,楊亮亮,田艷娜,等.基于顏色和形狀特征的茶葉嫩芽識別方法[C]//智能化農(nóng)業(yè)信息技術(shù)國際學(xué)術(shù)會議,2009.
[4] 孫肖肖,牟少敏,許永玉,等.基于深度學(xué)習(xí)的復(fù)雜背景下茶葉嫩芽檢測算法[J].河北大學(xué)學(xué)報(自然科學(xué)版),2019,39(2):211-216.
[5] Redmon J,Divvala S,Girshick R,et al.You only look once:unified,real-time object detection[EB/OL].2015:arXiv:1506.02640[cs.CV].https://arxiv.org/abs/1506.02640
[6] Redmon J , Farhadi A . YOLOv3: An Incremental Improvement[J]. arXiv e-prints, 2018.
【通聯(lián)編輯:代影】