張皓婷李明李敏閆鳳祝鵬
(1.內蒙古農業大學園藝與植物保護學院,內蒙古 呼和浩特 010018;2.內蒙古農業大學職業技術學院,內蒙古 包頭 014095)
番茄是人們日常生活中重要的蔬菜,是我國蔬菜實現周年生產和供應最主要的設施蔬菜之一[1]。番茄營養豐富,不僅含有豐富的維生素,還可以作為水果食用。隨著人工智能的發展,高效準確地檢測番茄果實以識別定位、機械采摘、計數和估產,是對減少人力投入而必需解決的問題。機器學習[2]是人工智能研究的重要分支,其通過算法讓機器可以從外界輸入的大量數據中學習到規律,從而進行識別判斷[3];目前被廣泛的應用在多個領域中,特別是在計算機視覺方面,機器學習利用深層次的神經網絡從視頻或圖像中自動提取目標特征,將目標與非目標區分開來,檢測出特定目標[4],其高效地解決了圖像的分類和識別、目標跟蹤和檢測、語義分割等任務,且具有非常高的精度。對基于Faster R-CNN算法番茄果實目標檢測進行研究和運用,在目標檢測中能夠有效區分目標特征與非目標特征,提高目標檢測效率。本試驗設計基于Faster R-CNN網絡模型對番茄果實的識別,對番茄果實重疊、遮擋而造成的圖像難以分割的問題進行分析,盡可能提高準確率與檢測效率,以期實現機器學習對作物的識別和預測結果,實現技術在設施番茄果實識別方面的應用,達到省時省人力目的。因此,用該算法識別番茄果數具有重要的研究價值和意義,并可為豐富和優化設施番茄栽培生產提供一定的參考。
供試作物為草莓番茄;拍攝設備為手機和相機;試驗平臺是在Win10操作系統下完成。
試驗番茄幼苗5月6日定植,種植密度為27700株·hm-2;在番茄苗期、結果前期、結果中期和結果后期分別進行圖像采集。采集照片2000張,精心挑選出1002張各個時期的番茄果實樣本。數據采集:拍攝時間2021年6月11日—8月10日13∶00—16∶00,光線良好。采集圖像的原始尺寸為3120像素×4128像素,圖像存儲格式為JPG。
數據處理:首先進行裁剪處理,由于原始拍攝圖像尺寸為3120像素×4128像素,遠大于正常深度學習訓練圖像的大小,因此將原始圖像進行裁剪,裁剪后的圖像尺寸為780像素×1032像素。制作VOC格式的數據集:使用LabelImg標注工具對精選出的樣本數據進行標注;該數據集是番茄目標檢測的一個數據集,自制的VOC格式數據集中只包含1種帶標簽的待測目標,共有1002張訓練圖像和668張測試圖像;分別將xml文件和xml對應圖片存放在Annotations和JPEGImages文件夾中,Main文件夾開始為空,在數據集同級目錄新建test.py生成4個txt文件。運行test.py后會在Main生成4個txt文件,至此,自制的VOC格式的數據集準備完畢。

圖1 標注番茄圖像和數據集建立
使用Faster R-CNN算法得出訓練過程數據,使用詳解PyTorch可視化工具visdom(一)進行數據統計和圖形繪制。
本試驗采用的測試標準為平均準確率均值(Mean Average Precision,mAP);計算所有待測目標的AP均值,即
mAP∶mAP=1/20∑k=120APk
人們雖然可以通過眼睛主觀判斷番茄果實和類型,但由于人力有限,識別費時費力,也對采摘機器人的自主采摘與收獲沒有任何幫助。圖像處理技術的持續發展和不斷突破已應用在各個領域,同時農業領域也漸漸取得許多可觀的進展;人們只需采集番茄果實的圖像數據,預處理數據,提取特征并將信息送至分類器進行訓練并獲取模型參數,就可以使用生成的模型來識別檢測番茄果實及其類別[5]。機器學習中的深度學習[6]是人工智能的典型代表,其廣泛應用于各個領域,特別是在計算機視覺領域,可以精準又高效地解決圖像分類與識別、目標跟蹤與檢測、語義分割等任務。應用深度學習技術不僅可以節約時間和人力成本,還可以實時判斷,并減少一些損失。利用深度學習中的Faster R-CNN神經網絡自動提取目標特征,使得精準檢測目標和訓練模型可預測結果。
番茄果實識別是基于機器學習技術的目標檢測,是從視頻或圖像數據中檢測特定目標。在目標檢測過程中能否根據所提取的特征區分特定目標與非特定目標是成功或失敗的關鍵[4]。
在番茄圖像的識別過程中,需要先進行預處理,再用圖片標注工具labelImg標注出圖像目標區域,為番茄果實的圖像特征提取做準備,最后通過機器學習算法進行訓練獲得模型參數。在具體方式實現中利用Faster R-CNN網絡模型提取目標特征,以獲得準確的檢測結果。Faster R-CNN網絡模型運行番茄圖像檢測結構如圖2。

圖2 Faster R-CNN運行流程
此次采集的番茄圖像制作的數據集,可在網絡模型中訓練并預測結果。目前,許多學者對該技術進行了研究,這些技術的實現與應用,既可以節約時間和精力,又可以實時做出判斷。因此,用機器學習的方法來識別番茄果實具有重要的研究價值和意義。
使用Faster R-CNN網絡模型對番茄果實圖像隨機樣本進行訓練,獲取訓練過程中的準確率及其他相關數據,并對試驗中采集的圖像制作的數據集做訓練和預測。樣本數據單次運行結束如圖3。

圖3 Faster R-CNN運行過程圖像
通過Faster R-CNN網絡模型對隨機樣本數據集的運行訓練、測試和驗證,獲取番茄數據集的真實數據。樣本多次訓練運行結果如圖4,通過多次訓練樣本得到該網絡模型初步數據。

圖4 Faster R-CNN訓練數據圖像
基于Faster R-CNN算法的標注結果和測試結果圖見圖5、圖6。通過運行得出數據結果,并對檢測出的番茄果實數與實際生產測得的數據進行了比較。由圖5、圖6可知,由于Faster R-CNN算法模型本身精準率較高,基于Faster R-CNN算法運行的番茄數據集的測試直觀效果較好,運行速度快、識別準確性較高;與實際生產過程中測得的番茄結果數相比只有嚴重遮擋和嚴重重疊的果實存在檢測數量上的差別,總體來說可作為其他指標測定的基礎。

圖5 標記結果圖

圖6 測試結果圖
通過運行后得出的數據,對實際生產中隨機采集的番茄樣本數據多次訓練的檢測結果準確率進行了比較;Faster R-CNN網絡模型在開始訓練之前進行參數的初始化,學習率(lr)設為0.001,rpn_Batch size為訓練計算損失函數時IOU閾值大于0.7記為正樣本(1),小于0.3則記為負樣本(0),計算rpn的損失函數,Batch size可以設置的較大。roi分類是在RPN階段區分前景和背景的,roi回歸是RPN階段初步調整。本文運行的網絡中學習率(lr=0.001)設為0.001,Batch size為64,dropout參數設為0.5。參數設置如下表1所示。

表1 部分參數設置
訓練過程rpn計算損失函數時曲線圖見圖7;訓練過程roi計算損失函數時曲線圖見圖8。

圖7 rpn分類損失與回歸損失曲線圖

圖8 roi分類損失與回歸損失曲線圖
由于Faster R-CNN的網絡模型是2步檢測算法,該網絡的損失函數分為4個部分,4個損失的總和就是最終的損失率;即訓練結果得出損失率0.233929117;訓練過程是不斷地反向傳播,更新參數的。經過對數據集在該網絡模型上多次訓練的分類回歸,發現在實際生產中隨機采集樣本的番茄果實樣本數據檢測的損失曲線高度一致,且總損失率幾乎相同;由數據可知,同一模型訓練多次的回歸損失函數值幾近相同,且目前訓練的損失率相對其他學者的損失率較小。
Faster R-CNN網絡模型中mAP的計算主要流程:運行/tools下的test_net.py文件;test_net.py文件調用/lib/fast_rcnn/test.py文件中的test_net函數進行檢測;在test_net函數檢測完成后調用/lib/datasets/pascal_voc.py中的evaluate_detections函數計算mAP。經過運行,結果如圖9所示。

圖9 訓練過程中測試集mAP變化圖
從圖9可以看出,Faster R-CNN網絡訓練完成后測試集的mAP值為0.908824;經過多次運行最初在實際生產隨機采集的番茄樣本數據中的番茄果實圖像進行訓練、測試和驗證該模型的準確率,得到的mAP值在0.908824~0.908895范圍浮動,即可得出測試集的檢測準確率近似為90.89%。綜上得出,運行Faster R-CNN網絡模型時,損失函數下降速度快、變化幅度小,測試準確率曲線先減小,然后上下波動,再趨于平緩;Faster R-CNN網絡模型檢測番茄果實的損失率及準確率曲線波動幅度小,且Faster R-CNN網絡具有較高的測試準確率。初步運用Faster R-CNN網絡模型訓練番茄果實圖像樣本數據檢測方面,模型準確率約為90.89%,檢測效果較好,可為后續測算提供支持。
王菽裕等[7]利用基于圖像的牦牛目標檢測方法,將現代技術和傳統畜牧業結合起來,利用深度學習下的Faster R-CNN進行牦牛目標檢測,實驗結果及數據分析發現,該方法平均檢測牦牛的精度在測試集可以到達83.3%,圖像處理速率為毫秒級別,相較傳統的人工牦牛計數的方式,在準確率和處理速率上均得到了巨大的提高。熊龍燁[8]構建了以Darknet53為特征提取網絡的YOLO v3分類識別模型,該改進模型對于不同類型的柑橘果實平均識別準確率達86.42%,與原模型相比準確率和檢測速度均有提高。Liu等[9]在YOLO v3的基礎上提出了一個密集的體系結構,可以更加精準地匹配番茄,該模型的檢測識別準確率達到94.58%。可以看出,檢測不同的物體和使用不同的網絡模型,準確率也不盡相同;本試驗結果表明,基于Faster R-CNN網絡模型對番茄果實的檢測識別與其他學者研究相比準確度較高,在訓練過程和預測過程中的結果和各項數據的顯著性較優。本次試驗利用機器學習下的Faster R-CNN網絡模型進行番茄果實目標檢測法測試直觀效果較好,識別準確性較高,平均檢測準確率為90.89%。基于深度學習網絡模型在對物體進行目標檢測時體現出不同的檢測效果,一些學者認為,不同算法和不同采集圖像數據的條件下具有不同的識別效果,主要受到復雜環境的影響;本研究在番茄圖像中存在較多的果數重疊、莖葉遮擋環境方面造成的影響與前面學者觀點一致,但本研究認為,不同模型在目標檢測過程中,還可能與待測物體是否處于靜止狀態和待測物體本身大小有一定關系;在此次試驗中Faster R-CNN網絡模型的檢測準確率可能受自制的數據集在其環境中運行擬合性低、番茄圖像中存在較多果數重疊、莖葉遮擋和圖像分割等多方面影響,后續試驗中有待進一步改善和提高。
本文提出的基于Faster R-CNN算法在番茄果實檢測方面,由于使用的Faster R-CNN算法模型本身精準率較高,基于Faster R-CNN算法運行的番茄數據集的測試直觀效果較好,經過對數據集在Faster R-CNN網絡上多次訓練的分類回歸,發現識別檢測訓練的損失曲線高度一致,且總損失率幾乎相同,同一模型訓練多次的回歸損失函數值近似相同,模型準確率為90.89%,識別準確性較高;目前采集的數據中存在果實遮擋和重疊問題,對識別檢測數量上存在一定誤差,總體來說可作為其他指標測定的基礎。隨著機器學習技術的不斷開發、改進與完善,未來數據的增加、拍攝技術的升級以及對重疊部分的優化,基于Faster R-CNN算法對番茄果實識別在后續試驗中應用會有新的進展,該算法的預測精度也將進一步提升。