熊俊濤 韓詠林 王 瀟 李澤星 陳浩然 黃啟寅
(華南農業大學數學與信息學院, 廣州 510642)
隨著科學技術的快速發展,農業信息化與智能化水平得到了較大的提升,基于深度學習實現果蔬的視覺檢測,識別精度高,提取特征豐富[1-2]。近年來,越來越多的學者將計算機視覺與農業結合起來,將其應用于作物培育、采摘、收獲等[3-6]。深度學習已經和計算機視覺緊密融合,在水果成熟度檢測領域的研究也逐漸深入。
由于大多數水果在生長過程中具有成熟期不一致、分批成熟的特點,所以果實成熟度判斷是采摘中的一個重要環節,同時,精準檢測和統計樹上果實成熟度有利于采收計劃調度和水果產量估計等工作。目前我國對果實的成熟度判斷主要依賴于人工辨別,自動化程度低。隨著計算機視覺技術迅速興起,水果成熟度檢測技術也迅速發展,計算機視覺技術能實現對果實的精準識別和成熟度判斷。基于機器視覺的水果成熟度識別與判斷方法也日益成熟,對提高農業生產效率有很大的應用價值和很強的現實意義[7-10]。
目前,國內外關于木瓜成熟度的研究主要是化學方法、物理方法和光譜方法等,如孫思盛等[11]利用1-甲基環丙烯處理不同成熟度的木瓜果實,根據色澤、果肉糖、酸相關生理的變化來判斷木瓜成熟度。BRO等[12]采用敲打番木瓜然后分析共鳴音頻的方法,對番木瓜成熟度進行分級。BRON等[13]采用葉綠素熒光分析技術,對番木瓜成熟度分級進行了研究。利用計算機視覺方法來檢測木瓜成熟度的相關研究還較少。對其它水果成熟度的視覺檢測研究,主要基于傳統顏色特征和統計學習相結合的方法。如PRABHA等[14]使用香蕉圖像中的R、G、B分量的一階矩到四階矩特征識別香蕉成熟階段。劉陽泰等[15]通過圖像的R分量和H分量設計了香蕉成熟度的評定指標,人工設置合適的閾值從而判別香蕉的成熟度等級。畢智健等[16]對番茄的14個顏色分量組合后,使用線性判別分析法對番茄成熟度進行檢測,平均準確率達到 90%。葉晉濤等[17]利用R-G分量對哈密瓜區域進行分割,在RGB和HSV空間下提取8種顏色分量均值,構建SVM分類模型,預測準確率達97.2%。周文靜等[18]將紅提葡萄果穗用KNN模型從背景中分割出來,再運用圓形Hough變換提取出葡萄果實,提取果實的H顏色分量值,設置特定的顏色閾值對單個果實成熟度進行判定,經過統計后再判斷整個果串的成熟度等級。由于上述機器學習進行果實檢測仍存在檢測精度較低,檢測時間較長等問題,而隨著神經網絡的發展并在各種視覺任務中有較好的檢測效果,一些學者開始利用深度學習對水果成熟度進行識別分類。如HABARAGANUWA等[19]利用卷積神經網絡對溫室草莓進行識別和成熟度判斷。NASIRI等[20]利用卷積神經網絡VGG16對棗果實成熟度分類,總體分類準確率達96.98%。劉振[21]利用YOLO v3對番石榴的成熟度進行識別分類,總體檢測效果達94.8%。熊俊濤等[22]將YOLO v3的骨干網絡替換為DarkNet53,結合殘差網絡和密集連接網絡,提出了一種夜間柑橘識別的方法,最終夜間對柑橘檢測精度達97.67%。
綜合所述,深度卷積神經網絡在目標檢測中具有較大的優勢,能夠快速且精準地實現檢測任務,從而識別復雜環境中果實的成熟度[23]。目前大多數研究主要在自然光環境下進行水果成熟度檢測,適用于強光和弱光等環境的相關研究較少,同時對于遮擋、拍攝距離等問題研究也相對較少。此外,現有水果成熟度檢測研究的對象主要集中在葡萄[24]、芒果[25]、番茄[26]、棗類[27]、油棕櫚[28]等作物,而木瓜作為結果快、可食用階段多的經濟類水果作物,其相關研究反而較少。
YOLO v5-Lite作為YOLO v5改進后的算法,具有檢測效率高、準確率高、模型占用內存小等特點,同時可以在整體配置較低、算力較弱的邊緣設備上進行部署,為果園智能采收設備提供視覺支持。本文獲取不同自然光條件下、不同拍攝距離以及不同遮擋情況的木瓜圖像,基于YOLO v5-Lite深度學習算法模型進行木瓜成熟度檢測,以期為農業生產中水果選擇性采收的視覺檢測提供技術支持。
對果實成熟度的判定和識別是進行機械智能化收獲的必要條件,果實的成熟度會影響其用途和采摘時間,因此需要進行選擇性采摘。
木瓜是薔薇科木瓜屬植物,未成熟的木瓜果實外觀是青色的,果肉相對堅硬、酥脆,成熟的木瓜果實外表皮一般為黃色或者是橘紅色。由于木瓜屬于典型的呼吸躍變型水果,在常溫下運輸貯藏容易腐爛變質。利用木瓜的該特點,果農會在木瓜處于未成熟或半成熟時,根據運輸距離來采摘相應成熟度的果實,從而達到運輸過程中果實不腐爛的目的,保證木瓜最大的銷售價值。所以,為了采摘到最合適運輸或銷售的木瓜,對木瓜進行準確的成熟度判斷是非常重要的。本文的木瓜成熟度主要以顏色為判斷依據,根據感官評價法[29-30]、表皮相比例法[31]以及人工采摘專家的經驗,將木瓜果實成熟度分為3類:未成熟全綠木瓜、半成熟半黃木瓜和成熟全黃木瓜。如圖1所示,未成熟果實表皮顏色為全綠或有輕微黃色,具體性狀表現為果實表面的綠色區域面積占比超過3/4,半成熟果實表皮顏色逐漸發黃但仍有大面積綠色,具體性狀表現為果實表面的黃色區域面積占比介于1/4和2/3之間,成熟的果實表皮顏色呈黃色或帶有少量綠色,具體性狀表現為果實表面的黃色區域面積占比超過2/3。本研究所用木瓜圖像數據采集自廣州市從化區羅洞工匠小鎮木瓜采摘基地,基地的木瓜采用規范化種植方式。同時,為了增強數據,加強模型的魯棒性、適用性和泛化性,采集圖像的設備采用佳能EOS-750D 型相機與iPhone12手機,相機圖像分辨率為4 000像素×6 000像素,手機圖像分辨率為4 032像素×3 024像素,圖像最終保存格式為.jpg。

圖1 3種成熟度的木瓜圖像Fig.1 Images of papayas of three maturities
由于果園智能采收設備是在果園中作業且作業能力是有范圍的,按照作業的邏輯順序,先是遠距離檢測,然后靠近目標采摘。所以在其有效作業范圍內,需要對不同距離的果實進行識別和成熟度檢測,以便設備規劃下一步動作。因此,為了滿足果園智能采摘機器設備的作業能力和范圍,需要保證數據集的多樣性,所以數據集中不僅要有不同拍攝距離、不同光照情況以及不同遮擋情況的木瓜果實,每幅圖像中還需要存在不同成熟度的多個果實。在拍攝距離上,考慮到果園中果樹的種植間隔與設備的作業范圍,拍攝距離選擇在0.2~2.0 m之間,其中,近、中、遠3種拍攝距離分別對應拍攝設備與果樹距離0.2~0.8 m、0.8~1.4 m、1.4~2.0 m;在光照條件上,根據照度分為強光與弱光,在室外陰天時,照度為50~10 000 lx,算作弱光條件;在室外晴天時,照度為10 000~100 000 lx,算作強光條件[32]。數據集拍攝為遠、中、近距離和強光、弱光的隨機組合,可以滿足選擇性收獲作業。共采集1 386幅RGB圖像用于模型數據訓練及測試,部分圖像如圖2所示。

圖2 不同拍攝條件下的木瓜圖像Fig.2 Papaya images under different shooting conditions
數據集在不同光照條件與不同拍攝距離組合拍攝獲得,具體數據集分布情況如表1所示。為了保證數據參數的準確性,在模型訓練前使用標注工具LabelImg對數據進行人工標注,采用PASCAL VOC標注格式,其中,全綠木瓜標注為immature_papaya,半黃木瓜標注為semi_papaya,全黃木瓜標注為mature_papaya。標注時要將整個木瓜的最小外接矩形作為真實框,以此減少框內背景上的無用像素。標注完成后,生成.xml類型的標注文件。然后將1 386幅木瓜圖像,按照比例8∶1∶1分為訓練集、驗證集和測試集,最終訓練集1 108幅圖像,驗證集139幅圖像,測試集139幅圖像。訓練集與驗證集用于模型訓練以及在單次訓練中對結果進行評估,測試集用于最終模型的檢測效果評估。

表1 不同條件下數據集及其數量Tab.1 Data sets and their quantities under different conditions
YOLO v5算法是YOLO系列算法最新提出的算法之一,它是在YOLO v4算法基礎上進行改進得到的,YOLO v5可以獲得準確、實時、高效的檢測結果。相較于YOLO v4,在保證準確性的前提下,實現了模型輕量化。YOLO v5網絡模型檢測精度高,推理速度快,最快檢測速度可達140 f/s。YOLO v5體系結構包含4種結構,分別命名YOLO v5s、YOLO v5m、YOLO v5l和YOLO v5x。它們之間的主要區別在于特征提取深度和寬度不同,YOLO v5整體結構可以分為4個模塊:輸入端、主干(Backbone)、頸部(Neck)和輸出層。
在主干網絡中,YOLO v5采用CSPNet結構,從輸入圖像提取豐富的圖像特征,解決了其他大型卷積神經網絡框架Backbone中網絡優化的梯度信息重復問題,有效減少了模型的參數數量,在保證模型準確性的同時,減少了模型尺寸。與YOLO v4不同的是,YOLO v5基于CSP設計了2種結構:CSP1、CSP2,并將CSP2用于Neck,能夠深層次提取目標特征信息。
在頸部網絡中,延續了前代YOLO v4采用路徑聚合PANET網絡結構,進行不同層級的位置與語義信息融合,利用FPN自上而下方式對特征進行上采樣,利用PAN結構自底向上方式進行下采樣,通過低層級和高層的特征信息融合,改善識別檢測效果。
此外,YOLO v5還新增了Focus結構,其對原始輸入進行切片分割,減少計算量,加快網絡速度,其采用GIOU_Loss作為Bounding box的損失函數,且采用加權極大值抑制(NMS)對GIOU_Loss進行非極大值抑制,能快速選擇最佳的預測框,具有準確度高和識別檢測速度快的特點。YOLO v5目標檢測網絡模型的權重文件較小,僅為YOLO v4的10%,同時其檢測精度高、占用內存小,檢測速度快。
YOLO v5-Lite體系結構包含4種結構,分別命名為YOLO v5-Lite-e、YOLO v5-Lite-s、YOLO v5-Lite-c和YOLO v5-Lite-g。它們都是基于YOLO v5網絡進行改進得到的,主要區別在于特征提取深度和寬度不同,與其他3種結構的版本相比,由于YOLO v5-Lite-g在滿足精度高、速度快的同時,模型也較小,綜合網絡的各項指標后,本文研究選擇YOLO v5-Lite-g版本。
2.2.1去除掉Focus層
由于Focus層頻繁的圖像切片操作,會對芯片造成很大的負荷,加重計算處理的負擔,對模型進行部署時,Focus層的轉換也比較繁瑣復雜。不同于YOLO v5,在YOLO v5-Lite中,使用更加快速的卷積操作替代Focus層,并且獲得了更好的性能,在減少計算量的同時釋放了內存的占用,使得模型更加快速。
2.2.2使用ShuffleNetv2
ShuffleNet是曠視科技公司提出的一種輕量級深層神經網絡,它通過逐點群卷積和channel shuffle兩種操作,使模型既能保持很高的精度,又可以減輕模型的計算量。在此基礎上,進行了Channel Split的操作,同時創建了ShuffleNetv2。其主要有2個優點:①把ShuffleNet中1×1的組卷積改成了普通的卷積,通過減少組卷積的使用降低了計算量。②將分支上的普通卷積,更改為深度可分離卷積,大大減少了計算量,增加了計算效率。
2.2.3減少使用C3 Layer以及高通道C3 Layer
C3 Layer是CSPBottleneck改進版本,它更簡單、更快、更輕,在近乎相似的損耗上能取得更好的結果。但C3 Layer采用多路分離卷積,測試證明,頻繁使用C3 Layer以及通道數較高的C3 Layer,會占用較多的緩存空間,減低運行速度。
2.2.4剪枝FPN+PAN
FPN+PAN源于CVPR的PANet,經過拆分后應用到YOLO v4中,大大提高了特征提取能力。但是YOLO v5-Lite在此基礎上,對其進行通道剪枝,同時改進了YOLO v4中的FPN+PAN的結構,如圖3所示,具體改進為:①選擇使用相同的通道數量,從而最優化了內存訪問和使用。②選擇使用原始的PANet結構,還原YOLO v4的cat操作為相加操作,進一步優化了內存使用。

圖3 FPN+PAN結構Fig.3 FPN+PAN structure
2.2.5YOLO v5-Lite網絡模型
YOLO v5-Lite網絡模型如圖4所示,采用Mobilenetv3作為主干特征提取網絡替換原來的CSPDarknet53,而主干特征提取網絡替換的實現思路就是將3個具有相同的初步有效特征層進行對應替換。為了進一步減少參數量,在加強特征提取網絡中使用深度可分離卷積代替普通卷積。

圖4 YOLO v5-Lite網絡結構Fig.4 Network architecture of YOLO v5-Lite
為評估訓練所得模型的檢測效果,采用準確率(P)、召回率(R)、平均精度均值(mAP)、檢測速度(FPS)與模型內存占用量(weights)。準確率表示識別正確的木瓜數在識別目標中所占比率,召回率表示在所有木瓜中被識別出來的比率。這2個指標越高,表明訓練所得模型檢測性能越好。準確率和召回率是一對矛盾的度量標準,準確率越高,召回率一般會偏低,反之亦然,準確率越低,召回率則一般會偏高。
mAP為各類準確率P與召回率R構成P-R曲線下面積的平均值,是衡量目標檢測模型性能的重要指標,值越大,檢測效果越好。通常性能較好的算法以上指標都較優,因此綜合分析上述指標可以較好反映其性能。
本文實驗的軟硬件平臺硬件配置:CPU為Intel Core i7-11700K,六核十二線程,最大主頻率為3.6 GHz,GPU為NVIDIA 3090,擁有10 496個CUDA核心用于模型的加速訓練,內存32 GB,主板為華碩B85M-F。軟件配置:操作系統采用Ubuntu 16.04系統,網絡模型以Python 3.8編程語言實現,軟件平臺為PyCharm,搭配環境CUDA 11.3、Cudnn 7.6,采用Pytorch深度學習框架進行訓練。
考慮在實時檢測及采摘機器人上的部署需求,能夠更好識別到目標果實,本文采用YOLO v5-Lite模型為主要框架與預訓練權重,設置初始學習率為0.01,設置輸入圖像尺寸為640像素×640像素,以128幅圖像為一個批處理量,最大迭代次數為300次的模型參數,進行隨機梯度下降法(SDG)網絡訓練。YOLO v5-Lite參數具有快速收斂的特點,能夠在較小的迭代次數獲得較好的訓練結果。
在訓練過程中記錄模型的損失函數、準確率P、召回率R以及P-R曲線如圖5所示。由圖5可以看出,損失函數在訓練初期下降速度快,整體波動較小,且訓練到第200輪左右時損失值達到了0.027,經過300輪訓練后,損失值完成收斂,損失值為0.025。最終模型準確率為89.7%,召回率為85.5%,mAP(重疊率0.5)為92.4%。

圖5 訓練過程中損失函數、P、R、P-R變化曲線Fig.5 Loss function, P, R, P-R change curves during training
3.3.1不同光照程度的木瓜檢測效果
YOLO v5-Lite模型在強光與弱光不同光照條件下的檢測效果如圖6所示,可以看出在強光條件下,YOLO v5-Lite對檢測任務完成較好,對于一些遮擋嚴重的果實也有很好的檢測效果;而在弱光下,一些本身為綠色的果實由于遮擋嚴重導致光照強度的較弱,在圖6b中木瓜表皮的顏色特征由綠色變為較深的深綠或黑色,導致模型對于該種情況果實學習的效果較差,從而導致小部分果實存在漏檢和誤檢的情況。

圖6 不同光照程度的木瓜檢測效果Fig.6 Detection effect of papaya under different illumination levels
3.3.2不同拍攝距離的木瓜檢測效果
為了探究在不同拍攝距離下模型對木瓜檢測的效果,考慮到果園中果樹的種植間隔與設備的作業范圍,根據實驗需要,選用了3種不同拍攝距離的圖像數據。將訓練好的YOLO v5-Lite模型,用在不同拍攝距離的木瓜時,檢測效果如圖7所示,可以看出當模型檢測近距離和中距離圖像中的木瓜時,無論是對木瓜果實的識別還是對木瓜成熟度的判斷,都有非常好的檢測效果。而當木瓜處在較遠距離拍攝時,模型則出現誤檢漏檢的問題,同時還會誤判果實的成熟度。

圖7 不同拍攝距離的木瓜檢測效果Fig.7 Detection effect of papaya under different shooting conditions
3.3.3不同遮擋情況的木瓜檢測效果
為了探究遮擋情況對模型的影響程度,采用3種不同遮擋情況進行測試。在面對無遮擋和輕微遮擋的木瓜圖像時,如圖8所示,模型仍可以保持很好的識別精度,在特征明顯的情況下,不會出現漏檢誤檢的情況。而當出現較嚴重的遮擋時,由于果實間生長不規律構成較多的縫隙,該種情況所漏出的特征不能給模型足夠的信息去做出正確的判斷,所以會出現較多的漏檢情況,錯檢情況極少出現。同時,由于受遮擋影響導致的部分弱光環境,也會使樹干表皮成為誤判因素。

圖8 不同遮擋情況的木瓜檢測效果Fig.8 Detection effect of papaya under different occlusion conditions
3.3.4不同算法檢測能力對比
YOLO v5-Lite模型與其他模型在驗證集上對不同成熟度木瓜檢測的實驗結果如表2所示。由表2可知,YOLO v5-Lite模型在檢測中的總體平均正確率比YOLO v5s、YOLO v4-tiny和Faster R-CNN分別高1.1、5.1、4.7個百分點,且檢測速率也較高。其中,YOLO v5s的檢測精度較高,但容易出現漏檢誤檢的情況且檢測速度較慢;YOLO v4-tiny模型檢測速度最快但檢測精度較差且容易出現漏檢錯檢多檢的現象,同時所需內存較大且訓練時間較長;Faster R-CNN模型作為兩階段算法,模型所需內存最大且檢測速度最慢,在檢測精度效果上表現也較為一般。因此,綜合對比可以看出,YOLO v5-Lite模型在檢測木瓜各種成熟度的精度與速度上都有更大的優勢。

表2 不同訓練網絡模型的木瓜成熟度檢測結果Tab.2 Papaya maturity test results of different training network models
為驗證本模型在果園復雜環境下對木瓜成熟度檢測的準確性和快速性,以復雜果園為背景對木瓜的成熟度進行了檢測。圖9為不同模型在不同條件下對木瓜成熟度檢測的實驗結果。從圖9可以發現,在光照條件為弱光,多個木瓜果實重疊在一起時,3種模型檢測的準確率都受到影響,這是因為逆光時木瓜的表皮會變得暗沉且不清晰,給木瓜檢測增加了難度;另外,由于全綠木瓜的表皮與樹干表皮的顏色、紋理和光滑度都具有一定的相似度,當果實數量很多且互相發生重疊,這種情況下在中遠距離觀察木瓜時,通過人眼對木瓜的成熟度進行區分也存在一定難度,因此在中遠距離嚴重重疊的情況下,模型檢測的平均精度會受到一定的影響。但相比于其他模型,YOLO v5-Lite模型能夠一定程度上優化其他模型存在的漏檢、錯檢的情況,同時該模型的檢測速度也存在很大的優勢,其mAP達到92.4%,平均檢測時間為7 ms,說明該模型具有更強的魯棒性與實時性,因此能夠實現果園復雜環境下對木瓜成熟度的檢測。

圖9 不同環境下不同訓練網絡模型的木瓜成熟度檢測效果Fig.9 Effects of different training network models on papaya maturity detection in different environments
同時,為了驗證本模型的檢測速度,還對不同模型相同數量數據集圖像的處理時間進行了比較,如表3所示,YOLO v5-Lite與YOLO v5s、YOLO v4-tiny與Faster R-CNN在對同一批數據進行檢測的時間差距逐漸增大,YOLO v5s與Faster R-CNN在檢測精度與檢測速度上效果均低于YOLO v5-Lite,YOLO v4-tiny雖然在檢測速度上稍有領先,但在檢測精度上相比YOLO v5-Lite稍有遜色,且模型參數更多,也更加占用內存。由表2與表3可以看出,所訓練模型對木瓜成熟度檢測具有較好的檢測效果與檢測速度。

表3 不同訓練網絡模型檢測時間Tab.3 Detection speed of different training network models s
(1)基于YOLO v5-Lite目標檢測算法,用于復雜果園環境下木瓜成熟度的檢測,使用訓練完成的模型對測試集進行檢測,準確率為89.7%,召回率為85.5%,mAP為92.4%,檢測速度為166.7 f/s,實驗結果表明網絡模型具有較強的魯棒性,還具有輕量化的特點,同時保證了木瓜成熟度的檢測精度和檢測速率,滿足在復雜環境下對木瓜成熟度的檢測。
(2)為驗證本模型在實際的果園復雜環境中的檢測效果,在相同條件下使用不同模型分別對木瓜的成熟度作了檢測。實驗結果表明,YOLO v5-Lite模型在不同光照條件以及重疊遮擋情況下,相比于YOLO v5s、YOLO v4-tiny與Faster R-CNN模型,在精度上分別高1.1、5.1、4.7個百分點,檢測速度比YOLO v5s和Faster R-CNN分別快23.9、133.2 f/s,即能提供更高的檢測精度與更快的檢測速度。
(3)在具有較好的檢測效果與泛化特性的同時,模型所占內存僅為11.3 MB,易于移植與部署在內存容量較小的設備。