李小敏,張日紅,陳天賜,侯炳法,張權,李雄
(仲愷農業工程學院機電學院,廣州市,510225)
近年,隨著經濟的快速發展和人民生活水平的顯著提高,水果消費的比重逐年增加[1]。同時在精準農業、智慧農業等技術的推動下,水果種植的面積越來越大、品種越來越多。根據2019年報告顯示,我國水果種植面積同比凈增16.48萬hm2,果園種植面積共計高達1 227.67萬hm2[2];其中以蘋果、柑橘、梨等為主的大宗果品,種植面積更是每年以8%的速度遞增[3-4]。
果園種植面積增加的同時,落花與落果成為不同果園智能管理所面臨的普遍問題。雖然生理落果是果樹種植過程中的正?,F象,但是非正常的落果嚴重影響果樹的產量和水果品質[5]。如果落果發現不及時,不僅會造成落果的堆積和病變,而且會增加果樹果品二次病害傳染的風險[6]。因此,開展果園落果識別與監測層面的相關研究,具有重要意義。
目前國內外落果研究已取得一定的進展,Khamis等[7]以埃及金冠品種蘋果在預期收獲期前四周的早熟落果為研究對象,從蘋果病理學角度對早期落果原因進行了探討與研究。Fabrício等[8]為探究甜橙落果的成因,對甜橙果實上病變大小、花梗距離、病變出現次數、時間等因素與過早落果之間的關聯性進行相關研究與分析。Kumar等[9]通過作物養分管理對酸檸檬落果原因進行分析,通過實際試驗得到生物化肥最佳比例以實現最低落果率。張利軍等[10]以特色柑橘品種‘琯溪蜜柚’落果為研究對象,從不同分級落果的養分含量、養分脫落損耗,對該品種落果特性進與規律進行分析。楊小慧等[11]采用紫外分光光度法,測定文冠果落果黃酮含量;得出文冠果落果中黃酮含量豐富,蘆丁是其重要的單體成分,具有良好的抑菌活性等結論。然而,目前有關落果的研究,大多集中在機理、原因尋找與分析、改善策略設計與分析等層面,而落果智能化識別相關技術是上述研究的重要基礎和依據,卻鮮有該方面的研究。
農業環境中的目標識別,主要分為兩種方法,一種是傳統的目標識別,其中以圖像分割[12]、機器學習[13]為代表;機器學習標志性的算法有K-means[14],SVM[15]等。另一種方法是基于深度學習的目標識別。隨著以深度卷積神經網絡為代表的人工智能的快速發展,將相關深度學習模型引入水果識別成為可能[16-18]。深度學習網絡種類繁多,然而由于YOLO(You only look once)執行速度快、準確率高等優勢,被廣泛應用目標識別與定位[19-21]。Tian等[22]利用YOLO-v3提出改進性的深度學習網絡模型,對三個不同時期的蘋果圖像進行了識別,實現對蘋果的實時識別。Lawal[23]為了檢測復雜環境條件下的番茄快速識別問題,設計了一種改進YOLO-v3深度學習模型。熊俊濤等[24]通過對YOLO-v3算法進行改進,設計一種實現多層特征復用的神經網絡,用于夜間環境柑橘的識別,測試結果表明識別精確率高達95%以上。荊偉斌等[25]采集了不同條件下的地面蘋果圖像數據集,基于快速區域卷積神經網絡模型(Faster-RCNN)對地面蘋果進行識別與統計,其平均識別率高達95%。上述基于圖像分割、機器學習、人工智能等方法的水果識別與定位文獻,為落果識別與計數提供必要的參考。然而落果圖像數據存在環境復雜、特征不明顯等特點不利于識別與計數;同時采用深度學習框架對落果識別層面的研究偏少。因此,亟需采用新型人工智能技術,開展落果識別等相關方面的工作。
針對目前落果識別存在的問題,基于深度學習YOLO-v3網絡框架,構建了林下落果智能識別方法。以真實果園落果、互聯網落果圖像、模擬落果場景圖像為基礎,建立典型水果落果數據集合。探究了該深度學習框架在實際果園環境中識別效率與準確性;并與SSD(Single Shot MultiBox Detector),RCNN(Recurrent Convolutional Neural Networks),CenterNet三種網絡模型算法進行了落果識別性能對比;同時對試驗結果進行了分析與討論。
為了滿足數據多樣性與算法普遍性,選取3種常見大宗水果(蘋果、梨、柑橘)為對象,構建試驗數據集合。該試驗落果圖像數據由真實果園落果、互聯網落果圖像、模擬落果場景圖像等幾部分組成。圖像大小為1 920像素×1 080像素,960像素×576像素,608像素× 608像素等,以BMP、JPG、PNG等格式進行存儲。由于數據獲取渠道多樣存在尺寸不一、格式多樣等問題。數據篩選之后,為了降低運算成本,提高落果識別效率,如圖1所示對落果圖像進行如下數據預處理:(1)圖片大小調整,將落果圖片樣本統一調整為416像素×416像素;(2)格式轉化,將多種圖片格式統一轉為PNG格式;(3)圖片分類,按照不同水果品種將圖片進行分類存儲。

圖1 落果圖像預處理
為了增加數據多樣性和防止深度神經網絡訓練過程中的過擬合線性,采用翻轉、旋轉、隨機裁剪、噪聲添加等圖像數據增強方法對圖像數據集進行部分轉化,進而擴展整個數據集合。三種典型水果落果圖像數據增強后,如圖2所示。

(a) 落果原圖 (b) 裁剪
完成上述數據預處理與數據增強后,構建林下落果數據集合共計1 700張,其中蘋果500張,梨500張,柑橘700張。如圖3所示,以LabelImag為工具選取對不同類型的落果進行人工標記,并以xml格式進行存儲,在已標記的1 700張圖像中隨機選取1 400張為訓練集合,其余300張圖像為測試集合。

圖3 落果數據標注
YOLO是一種典型的深度學習算法,其具有運算速度快、結構簡單等特點,被廣泛應用于目標識別與檢測層面?;舅枷胧菍⑤斎雸D像分成S×S個格子,若某個物體的中心位置坐標落入到某個格子,此格子就負責檢測出該物體。
YOLO-v3是YOLO系列第三個版本,是應用最廣泛的算法。YOLO-v3的網絡結構如圖4所示,該網絡模型引入了殘差模型和FPN(Feature Pyramid Network)框架,同時在YOLO-v2提出的Darknet19基礎上加入殘差模塊,形成YOLO-v3的主干Darknet53網絡。其中卷積單元由卷積層、批量歸一化層和激活函數構成,卷積單元和零填充單元形成殘差單元,多個殘差單元構成殘差塊。

圖4 YOLO-v3網絡結構
為了獲得性能良好的林下落果識別網絡模型,采用如圖5所示流程對模型進行訓練。

圖5 基于YOLO-v3的落果識別流程
首先,將原始圖像進行尺寸、標注等預處理,數據分為訓練、測試兩個子數據集;再把訓練數據集輸入YOLO-v3網絡,經過多次迭代;當損失函數取值小幅波滿足閾值條件,意味著網絡模型參數穩定,然后輸出穩定的網絡模型。最后,采用測試數據集合對落果識別網絡模型進行性能測試。
為了識別不同大小和距離的落果,根據落果的大小等參數考慮,將整個識別網絡輸出張量參數設置為13×13,26×26,52×52三個張量預測結果。同時,為減少張量維度,每個輸出預測張量的長度取值為21,以減少訓練成本。試驗模型訓練與測試平臺均在Ubuntu18.04操作系統下進行,配置有英特爾RTX2080顯卡,8G顯存;使用tensorflow-2.0框架并配置CUDA10.2版本和CUDNN v8.0.4版本進行加速。將訓練的相關參數設置如下,動量取值0.9,權重衰減率取值0.000 5,初始學習率取值0.001。
模型訓練過程中為獲得平均損失取值較小的模型和探究訓練次數對該值的影響,在服務器中一共訓練10 000次,耗時4 h。模型在前1 500次迭代,損失函數取值迅速變小,到3 000次后趨于穩定,波動幅度較??;經過6 000次迭代后,平均損失取值無明顯變化,并在0.015附近小幅波動。
為了對落果識別性能進行評估,采用評價指標準確率(precision,P),召回率(recall,Rc)作為圖像分割結果的評價指標,并以綜合評價指標(F1)作為準確率和召回率的評估值。
(1)
(2)
(3)
式中:TP——正確識別到落果的數量;
FP——將非落果目標識別為落果的數量;
FN——誤落果識別為背景的數量。
將訓練好的深度學習模型部署于GPU1660顯卡上運行,輸入測試數據集合計算不同類型落果檢測結果的準確率(P)和召回率(Rc),最后統計得到F1值。
試驗以不同數量和遠近為因素,測試了100張落果圖像,其中含1~10個落果圖像共計30張,包含11~20落果圖像共計38張,含20個以上落果圖像共計32張。對每張圖像采用YOLO-v3訓練好的模型進行測試,結果如圖6所示。

(a) 1~10個落果
從圖6中可知,在落果數量較少、距離較近時,所設計的算法可以準確識別出落果和相對應的數量;但是當數據超過20個或距離較遠時,存在遺漏識別的現象,其原因在于落果數量增多,落果圖像重疊增加了網絡模型識別的難度。
為測試該算法對不同品種落果的識別效果,采用YOLO-v3算法對測試集中不同水果落果進行識別性能測試,得到如表1所示的準確率(P)、召回率(Rc)和F1值。從表1可知,YOLO-v3對三種典型落果的識別準確率高達89%以上,其中柑橘的識別準確率最高,超過94%。同時,三種水果落果的F1值均大于90%。綜上,說明提出的模型可以很好地識別不同品種水果落果。

表1 不同水果落果識別性能分析Tab. 1 Identification performance in different fruit
在本試驗中,以柑橘落果為例,在相同訓練集的條件,采用YOLO-v3,SSD,RCNN,CenterNet四種方法對柑橘落果識別網絡進行訓練,以測試集為基礎對落果檢測與識別進行了測試。4種算法對柑橘落果識別效果,如圖7所示。YOLO-v3的落地識別效果最好,除個別重疊落果未識別出來,其余大部分都能夠準確識別;CenterNet的識別效果次之,存在個別誤識別現象。SSD方法存在較多的遺漏識別,落果效果最差,同樣RCNN也存在較多落果遺漏識別。

(a) YOLO-v3 (b) SSD
如圖8所示,不同算法對柑橘落果檢測識別的準確率和召回率。YOLO-v3與RCNN的識別效果相當,當YOLO-v3識別準確率最高和召回率最高,即該算法對于柑橘落果具有較好識別準確率;相對于SSD,RCNN和CenterNet網絡模型,YOLO-v3的準確率分別提高了7%,2%和3.5%。

圖8 不同算法柑橘落果識別的準確率和召回率
果實的腐爛是落果最常見的現象之一,如何采用神經網絡對其進行識別是落果識別的組成部分。腐爛落果在顏色、形成等層面與正常落果存在較大差異,因此腐爛落果的檢測與識別是算法面臨的重要挑戰,也是衡量算法識別落果穩定性與魯棒性的重要指標。為此,以30張腐爛落果圖片為基礎構建其測試集合,對不同深度學習模型的腐爛落果識別效果進行了試驗,得到如圖9所示效果。

(a) YOLO-v3 (b) SSD
YOLO-v3的腐爛識別效果最好,圖中7個腐爛落果均被正確識別出來,RCNN次之,CenterNet模型的識別效果最差。根據試驗結果可知,當落果腐爛面積較大時會影響SSD、RCNN、CenterNet網絡的識別準確性。同時統計測試結果得到,YOLO-v3、SSD、RCNN和CenterNet的腐爛識別準確率分別為86%,59%,64%和43%。該結果說明,對YOLO-v3在腐爛落果識別方法存在較大優勢。
為了研究落果識別效率,基于測試集合隨機抽取100張圖片采用上述四種神經網絡框架對落果進行識別并統計總識別時間,然后取其平均值,獲得不同網絡對落果識別的平均時間,試驗結果如圖10所示。由圖10可知,四種網絡在落果識別時間性能層面存在較大差異。RCNN的落果識別時間最長,時間值大于1.6 s;其他三中網絡的識別時間均小于0.3 s,SSD網絡的落果識別時間最快但是識別精度最低。YOLO-v3的平均識別時間為0.213 5 s,在識別時間性能層面略遜于SSD;原因在于YOLO-v3網絡層數較多,增加網絡落果識別時間。盡管YOLO-v3識別時間不是最快,但是識別準確性最高;因此,綜合上述因素YOLO-v3是四種網絡中識別落果最優選擇。

圖10 不同算法的落果識別時間對比
林下落果的準確識別與統計是果園智能化管理的重要基礎與依據。針對落果種類多、圖像多樣、容易病變等特點,本文利用深度學習方法,提出一種基于YOLO-v3的落果檢測方法,實現對落果準確與智能化識別。通過數據預處理與增強建立落果數據集合,經過訓練搭建了識別網絡模型,并進行相關試驗。在未考慮將落果識別效率、時間等作為試驗因素的條件下,通過相關試驗得到以下結論。
1) YOLO-v3在落果數量較少、距離較近時,可以準確的識別出落果和相對應的數量;當數據超過20個或距離較遠時,存在遺漏識別的現象。對三種典型落果的識別準確率高達89%以上,其中柑橘的識別準確準最高,其值超過94%。同時,三種水果落果的F1值均大于90%。
2) 柑橘落果識別層面,對比其他深度學習方法YOLO-v3算法的識別準確率最高、召回率最高;相對于SSD,RCNN和CenterNet網絡模型YOLO-v3的準確率,分別提高了7%,2%和3.5%。
3) YOLO-v3、SSD、RCNN和CenterNet的腐爛落果識別準確率分別為86%,59%,64%和43%;相對于其他算法YOLO-v3在腐爛落果識別方法存在較大優勢。