施瑩瑩 李祥瑞 孫凡



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