許 增,王志偉,胡桃花,李雪鵬,楊曉峰,李海芳+
(1.太原理工大學 信息與計算機學院,山西 太原 030600;2.山西省氣象局 山西省氣候中心, 山西 太原 030006;3.山西省朔州市氣象局 氣象服務中心,山西 朔州 036000)
我國的蘋果產量位居世界首位,出口量達90%,具有重要的產業(yè)地位。幼果期、果實膨大期、果實成熟期是蘋果整個物候期當中的關鍵時期,蘋果的產量和品質與此期間的物候觀測和科學管理息息相關。
而物候期的自動觀測,可以客觀地判別作物所處物候期階段,及時有效地開展農事活動和精準管理,提高農事管理效率,減少人為主觀引起的觀測資料的絕對性,以取得少投入、多產出、保護農業(yè)資源的突破,具有重要的應用價值。
隨著機器學習的發(fā)展,計算機視覺技術以及深度學習技術在農業(yè)中得到了廣泛的應用[1]。蘋果物候期自動化觀測也開始步入新的階段。李宏利等[2]以3點確定圓算法為中心,配合圖像中樹枝樹葉部分的分割、果實邊緣的檢測及去除圖像的噪聲等技術,以使處理速度滿足實時要求,并使成熟期蘋果定位結果準確。夏雪等[3,4]設計了基于自適應G-B色差圖,并結合迭代閾值分割法(ITS)探測出幼果期蘋果圖像興趣區(qū)。并且提出了一種融合K-means算法、關鍵角點檢測算法和距離最小二乘算法實現(xiàn)了成熟蘋果雙果重疊目標偵測方法;趙德安等[5]提出了基于深度神經網絡YOLOv3算法,實現(xiàn)了未成熟期、套袋期、成熟期的機器人采摘蘋果定位。Tian等[6]提出了一種改進的YOLO-V3模型,利用密集連接的方法處理低分辨率的特征層,實現(xiàn)了幼果期、膨大期、成熟期的蘋果檢測估產及生長階段判別雙任務。但上述研究中,多數主要集中在不同時期的蘋果采摘定位、檢測估產等,在速度、精度之間的權衡更偏向于精度,而針對物候期識別輕任務,本文選用了可用于嵌入式實時監(jiān)測設備的輕量級模型Tiny-YOLOv3作為本文的主干網絡,雖然Tiny-YOLOv3模型檢測速度快,但其檢測識別精度較低。因此,本文引入ResNet和DenseNet方法對Tiny-YOLOv3的主干網絡進行適度深化并對低分辨率層進行特征復用和融合,利用所設計的物候期測試集,驗證了改進模型的性能。
本文的數據來源于中國山西臨猗農田試驗站,參考農業(yè)氣象觀測規(guī)范,制定適宜本地的蘋果物候期觀測標準,于2019年3月(萌芽期)開始,采集至2019年11月(葉脫落期)結束,表1為部分物候期觀測標準。使用了3888×5184像素分辨率的田間實時監(jiān)測設備在不同物候期進行圖像采集。采集時間段設定為每天上午8點~11點,下午12點~15點,下午16點~19點。
表1 蘋果部分物候期觀測標準
其中在幼果期、果實膨大期、果實成熟期3個物候期,分別采集到4200張物候期圖像。在每個物候期,隨機選取一半的物候期圖像用于訓練集。
由于戶外光照的角度和強度變化很大,神經網絡能否處理不同復雜環(huán)境下采集的圖像取決于訓練數據集的完整性。為增強訓練數據集的豐富性,對采集到的圖像進行角度、色彩、曝光度、圖像清晰度處理,如圖1所示。將6300張圖像增強為50 400張圖像,生成訓練數據集。剩下的6300張圖像作為測試數據集,驗證改進的Minor-YOLOv3-dense模型的檢測性能。
圖1 圖像增強方法
本文使用的Minor-YOLOv3-dense模型通過讀取txt文本獲得訓練圖像的存儲位置、目標在圖像中的標注像素位置和目標的類別。這個txt文件通過讀取一個使用VOC格式的數據集生成。因此,通過LabelImage軟件將場景中采集到的圖片以VOC的形式制成數據集。LabelImage是一個圖像標注工具,它將圖像中標注的目標類信息和位置信息保存為xml格式的文件,以便進行訓練。圖2顯示了標注圖像的過程。完成的數據集見表2。
圖2 LabelImage標記工具
表2 數據增強后訓練集
自2016年以來,陸續(xù)發(fā)布了YOLOv1[7]、YOLOv2[8]、YOLOv3[9]等不同版本,逐步提高了通用框架的準確性。YOLOv3不僅具有較高的檢測識別精度和速度,而且對小目標的檢測識別性能也很好。但是對于嵌入式實時監(jiān)測設備,YOLOv3模型的體系結構過于復雜,需要更多的處理能力,且占用大量內存,對硬件設備要求較高。與此同時,YOLOv3模型更新了輕量級版本Tiny-YOLOv3,如圖3所示,將特征金字塔網絡[10],與全卷積網絡結合起來。但在 應對物候期觀測的復雜環(huán)境時,Tiny-YOLOv3網絡僅由7個卷積層和6個池化層交替組成前饋網絡,有些過于簡單,導致物候期觀測性能不佳。
針對多樣的物候期特征,適度深化網絡可以更好地提取物候期特征,但網絡的參數也會不斷增長,這將大大增加計算量,占用內存資源。在計算量過大的情況下,ResNet[11]提出增加1×1個卷積層來實現(xiàn)信息的跨通道整合和交互,減少網絡參數,同時,在特征尺寸不變的前提下,大幅提升非線性特性,加強了網絡的表達能力。
為了提高實時檢測識別的平均精度,本文借鑒了ResNet中的方法,以保持實時性并提升平均精度為出發(fā)點,提出一種參數數量較少、運算復雜度相對較低的卷積神經網絡作為特征提取網絡,稱之為Minor-YOLOv3。如圖4所示,在原Tiny-YOLOv3的Conv-4和Conv-6增加了2個卷積層,并在過渡模塊中使用1×1的卷積核進一步降低維數。
Huang等[12]受到殘差網絡的啟發(fā),重新設計稠密塊,建立了每層與全部后置層間的連接,進而每層輸入都擁有了全部前置層的特征圖,實現(xiàn)了特征的復用,緩解了梯度消失。l層拼接全部前置層x0,x1,…,xl-1特征的公式如下
xl=Hl[x0,x1,…,xl-1]
(1)
基于前文所提出的Minor-YOLOv3網絡,將其低分辨率傳輸層替換為DenseNet,以此鞏固特征的傳輸,促使特征反復利用和融會,如圖5所示。其中,傳輸函數Hl包括批量歸一化、線性整流函數以及卷積。Hl提供了全部前置層的非線性變換。xi由64個特征層構成,每層的分辨率為13×13。H1首先對x0實行BN-ReLU-Conv(1×1)非線性計算,然后對其輸出實行BN-ReLU-Conv(3×3)計算。H2對[x0,x1]產生的特征映射實行同樣的操作。拼接結果x2與[x0,x1]為[x0,x1,x2],當作H3的輸入。拼接結果x3與[x0,x1,x2]為[x0,x1,x2,x3],再當作H4的輸入。最后,特征層[x0,x1,x2,x3,x4]連續(xù)往前傳輸。
圖3 Tiny-YOLOv3網絡結構
圖4 Tiny-YOLOv3和Minor-YOLOv3的網絡參數
圖5 Minor-YOLOv3-dense網絡結構
在訓練過程中,當圖像的特征被傳輸到低分辨率層時,DenseNet中的后一層特征將接收到它所有前置層中的特征,從而減少了特征損失。這樣,低分辨率的卷積層之間可以重復利用和融合特征,進而提高特征使用率以及使用效果。
最后,本文提出的Minor-YOLOv3-dense模型可以預測26×26、13×13兩個不同尺度的邊界框。它可以精準定位目標,并對檢測到的目標進行分類,以提供蘋果物候期的實時觀測。
本研究中使用的Minor-YOLOv3-dense網絡基于PyTorch框架。并在NVIDIA GeForce RTX 2080Ti服務器上進行了訓練和測試。編程語言為Python,GPU加速庫為CUDA9.0和CUDNN7.0。網絡初始化參數見表3。
表3 網絡初始化參數
本文針對改進后的Tiny-YOLOv3模型,利用測試圖像(6300張)進行了一系列實驗,驗證了算法的性能。
3.1.1 mAP
mAP(mean average precision)是多個類別的平均AP值,在目標檢測中作為衡量檢測識別精度的指標。AP(average precision)是平均精度。該值是由精準率P和召回率R計算得出。精確率、召回率以及mAP的計算如下所示
(2)
(3)
(4)
3.1.2 Loss
損失函數是評價模型性能的一個標準。Tiny-YOLO中的損失函數定義如下
Loss=lbox+lobj+lcls
(5)
目標框位置誤差lbox定義如下
(6)
目標置信度誤差lobj定義如下
(7)
目標分類誤差lcls定義如下
(8)
3.1.3 速度
速度也是目標檢測算法一個重要評價指標,這對于田間實時監(jiān)測設備是非常重要的。本文使用了兩個速度指標,第一個是每秒幀數(FPS);第二個是識別一張圖像所需時長,單位為ms。
為了驗證本文提出的模型的改進性能,3個物候期圖像作為訓練集,兩次改進后的模型同Tiny-YOLOv3進行比較,以此來說明本文網絡改進的提升效果,如表4所示。Tiny-YOLOv3、Minor-YOLOv3-dense在訓練過程中的損失及mAP,如圖6所示。
表4 兩次模型改進效果
圖6 Minor-YOLOv3-dense與原模型的 Loss、mAP曲線對比
從以上結果可以看出,Minor-YOLOv3-dense在訓練過程中比Tiny-YOLOv3收斂速度更快,收斂效果更好,Tiny-YOLOv3的最終損失約為2.52,而Minor-YOLOv3-dense的最終損失約為1.54,比原模型的損失約低0.98,且更加穩(wěn)定平滑。Minor-YOLOv3和Minor-YOLOv3-dense的mAP值分別為78.03和80.26,比原模型高出3.33和5.56。這說明Minor-YOLOv3-dense模型的檢測識別性能優(yōu)于Tiny-YOLOv3模型。但同時隨著改進效果的提升,檢測速度均有所下降。
為了更好地觀測邊界框,分別使用1、2和3標注幼果期、膨大期和成熟期。圖7為3個物候期檢測識別效果對比。圖7(a)為Tiny-YOLOv3模型在3個物候期的檢測識別效果,卷曲的葉面易被誤判為幼果期、膨大期,發(fā)紅的枝干、土壤易被誤判為成熟期,幼果期與膨大期間易混淆識別,可見其容易產生了較大的誤檢誤判。改進后的Minor-YOLOv3-dense模型檢測識別效果如圖7(b)所示,其可以精準定位并識別物候期類別。
圖7 改進前后檢測識別效果對比
此外,在本文的數據集上測試了其它幾種較為先進的模型,其mAP值、FPS、平均檢測時間,如表5所示。
表5 與其它模型的對比分析結果
從以上結果可以看出,Minor-YOLOv3-dense模型的平均精度均值均明顯高于前兩種輕量級模型,與YOLOv3-dense模型基本相同。Minor-YOLOv3-dense的平均檢測速度比YOLOv3-dense快了近11倍,但與Tiny-YOLOv2、Tiny-YOLOv3模型相比較,略有所下降,但仍符合實際工作環(huán)境下的實時性要求。綜上,在物候期觀測單任務中,Minor-YOLOv3-dense模型的檢測識別精度較高,且符合實時性要求,體現(xiàn)了Minor-YOLOv3-dense網絡在蘋果關鍵物候期觀測中的優(yōu)越性。
為了比較數據類別對檢測識別性能提升的影響,本文分別使用Tiny-YOLOv3、Minor-YOLOv3-dense模型訓練各個物候期圖像。不同模型下3個物候期的AP值見表6。
表6 不同物候期的改進效果
從以上結果可以看出,3個物候期的檢測識別分別提升了3.39、5.77以及7.52,由于幼果期果實體積較小,顏色與樹葉相近,所以幼果期的檢測識別效果提升不如膨大期和成熟期,而成熟期顏色變化較大,更容易被檢測識別,說明該模型性能提升受到形態(tài)大小,以及顏色特征的影響。
使用角度、色彩、曝光和清晰度處理來增強圖像。為了驗證4種處理方法對訓練模型的影響,依次去掉一種增強后的數據集,得到對應mAP。結果見表7。曝光、模糊問題圖像檢測識別效果如圖8所示。
表7 不同訓練集的檢測識別效果
圖8 曝光、模糊問題圖像檢測識別效果
從實驗結果可以看出,角度處理對訓練模型的影響有限,去除角度處理數據集后的訓練模型的性能略低于完整數據集。色彩處理對提高檢測識別有很大的幫助,去掉色彩處理數據集會降低平均精度均值。曝光處理有利于模型適應戶外光照變化,去除曝光處理數據集后的訓練模型的檢測識別效果比完整數據集訓練的模型檢測識別效果差。模糊處理有利于提高模型的魯棒性,與未經模糊處理的數據集相比,經過完整數據集訓練的模型具有更高的平均精度均值。
本研究將ResNet以及DenseNet方法應用于蘋果物候期的實時觀測,對現(xiàn)有的Tiny-YOLOv3檢測模型進行了改進。這個模型可以用來實時檢測識別幼果期、膨大期和成熟期。本文提出的Minor-YOLOv3-dense模型借鑒ResNet方法對Tiny-YOLOv3主干網絡適度深化,并使用DenseNet方法增強特征傳播,促進特征的復用和融合,減少了特征損失,提高了網絡的性能。實驗結果表明,與其它幾種較為先進的算法相比,本文提出的Minor-YOLOv3-dense模型具有較好的檢測識別精度和實時性,并且能較好處理曝光、模糊問題圖像。
以上工作驗證了Minor-YOLOv3-dense用于蘋果物候期實時精準識別的可行性和高效性,未來工作將集中于完善各種復雜環(huán)境下的數據采集工作,提升現(xiàn)有模型,并進一步實現(xiàn)各個物候期始期、盛期、末期的實時精準識別。