成偉,張文愛,馮青春,張萬豪
(1. 太原理工大學(xué)信息與計算機學(xué)院,山西晉中,030600; 2. 北京農(nóng)業(yè)智能裝備技術(shù)研究中心,北京市,100097; 3. 國家農(nóng)業(yè)智能裝備工程技術(shù)研究中心,北京市,100097; 4. 農(nóng)業(yè)智能裝備技術(shù)北京市重點實驗室,北京市,100097)
通訊作者:張文愛,女,1967年生,山西翼城人,碩士,副教授;研究方向為智能信息處理。E-mail: zhangwenai@tyut.edu.cn
中國是番茄的生產(chǎn)和消費大國,種植面積達1 050 khm2[1],人均年消費量約21 kg[2]。通過實時統(tǒng)計和預(yù)測番茄果實時序產(chǎn)量信息,并進行相應(yīng)的生產(chǎn)管控,以實現(xiàn)供貨訂單的精準(zhǔn)響應(yīng),對于解決當(dāng)前番茄產(chǎn)能大幅波動、產(chǎn)程不連續(xù)等問題具有重要意義。番茄果實的視覺信息獲取是支撐智能化產(chǎn)量估計的重要前提。然而溫室內(nèi)植株叢生、雜亂無序,且其莖、葉、果等密集生長、相互重疊,使得果實圖像特征識別成為限制番茄產(chǎn)量精準(zhǔn)估計的重要因素。
鑒于農(nóng)業(yè)作業(yè)對象外觀、姿態(tài)和大小的非結(jié)構(gòu)化特征,基于單一閾值的分類方法較難實現(xiàn)其圖像特征的準(zhǔn)確識別。融合色彩、形態(tài)、紋理、位姿等多元信息,建立自適應(yīng)分類識別模型,實現(xiàn)其復(fù)雜特征識別的有效途徑。以多層卷積特征提取網(wǎng)絡(luò)為核心的深度學(xué)習(xí)模型[3],避免了傳統(tǒng)機器學(xué)習(xí)模型構(gòu)建的復(fù)雜過程,具有更高的識別精度,對于農(nóng)業(yè)作業(yè)對象多元視覺信息的感知融合具有獨特優(yōu)勢[4-8]。王富春等利用均值聚類算法番茄紅果、果柄、葉片圖像進行聚類分割,對成熟番茄像素的識別準(zhǔn)確率達到83.45%。馬翠花等[9]提出了基于顯著性檢測與圓形隨機Hough變換的目標(biāo)識別方法,對綠色番茄識別準(zhǔn)確率為77.6%。孫哲等[10]提出了一種基于Faser R-CNN的自然環(huán)境下西蘭花幼苗檢測方法,平均精度達到91%。Murean等[11]以水果種類識別為目標(biāo),提出了針對深度卷積網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化方法,8類水果分類識別精度達到95%以上。崔永杰等[12]利用可視化方法對比了6類不同深度的卷積神經(jīng)網(wǎng)絡(luò)特征提取差異,確定最佳卷積網(wǎng)絡(luò)Alexnet[13]與Vgg 16識別準(zhǔn)確率可達到93%以上。Williams等[14]提出了一種基于深度學(xué)習(xí)的奇異果識別方法,并應(yīng)用于其采摘機器人,對密集果實的探測準(zhǔn)確率達到76.3%。趙德安等[15]提出了基于YOLOv3深度卷積神經(jīng)網(wǎng)絡(luò)的蘋果定位方法,果實準(zhǔn)確率為97%。以上目標(biāo)識別算法研究主要針對特定色彩目標(biāo),然而番茄時序產(chǎn)量估計需要對不同成熟度的綠果和紅果進行識別。
本文針對溫室番茄產(chǎn)量精準(zhǔn)預(yù)測實際需要,以工廠化溫室番茄為研究對象,研究針對番茄紅果和綠果的動態(tài)識別方法,通過改進優(yōu)化YOLOv3深度學(xué)習(xí)模型,提高對叢生交錯植株內(nèi)的密集生長番茄的識別精度。研究結(jié)果可為番茄生產(chǎn)智能管控系統(tǒng)研發(fā)提供技術(shù)支撐。
溫室內(nèi)工廠化種植的番茄植株如圖1所示,距地面600~1 000 mm和1 000~1 500 mm高度區(qū)域分別為紅果和綠果的主要生長區(qū)域,即估產(chǎn)圖像采集區(qū)域。隨著植株不斷生長,通過釋放纏繞于主莖的吊線進行落蔓,使得估產(chǎn)區(qū)域相對地面保持高度不變,本文以該高度區(qū)域內(nèi)的番茄植株為探測對象。智能估產(chǎn)設(shè)備以植株行間軌道為支撐進行移動,其視覺系統(tǒng)實時獲取兩側(cè)番茄植株圖像信息。
圖1 工廠化番茄種植環(huán)境Fig. 1 Tomato factory-planted environment
如圖2所示,估產(chǎn)視覺系統(tǒng)包括雙目視覺攝像機和二自由度云臺機構(gòu)。攝像機選用FL3-U3-13S2C型號相機,配置8 mm鏡頭,與番茄植株相距800 mm,獲得視場區(qū)域?qū)?、高分別為500 mm、400 mm。云臺可進行垂直和水平旋轉(zhuǎn),以調(diào)整攝像機空間姿態(tài)從不同視角采集番茄植株不同區(qū)域的圖像。
圖2 估產(chǎn)視覺系統(tǒng)Fig. 2 Visual system for estimating yield1.旋轉(zhuǎn)云臺 2.攝像機
YOLO算法基本原理在于,將輸入圖片劃分為S×S的柵格化單元格,若被檢測的目標(biāo)中心落入特定單元格,則該單元格負責(zé)檢出該目標(biāo),即自身有目標(biāo)的概率Probj=1。預(yù)設(shè)每個單元格產(chǎn)生B個先驗邊界框,每個邊界框與真實值邊界框之間的重合度指標(biāo)為IOU,則圖像內(nèi)目標(biāo)位置和類別預(yù)測可以用S×S×B×(4+1+C)的張量表示,其中4表示先驗證框坐標(biāo)(x,y)、寬高(w,h)和1表示的置信度分數(shù)5個特征參數(shù),C表示所用數(shù)據(jù)集目標(biāo)的類別數(shù)量。通過訓(xùn)練對真實邊界框不斷地回歸,可得到最終預(yù)測目標(biāo)的位置、置信度和類別信息。最終,通過保留中置信度最高的邊界框,篩選最佳識別結(jié)果。
圖3 YOLO目標(biāo)識別算法原理Fig. 3 Target detection principle of YOLO
YOLOv3算法中使用DarkNet53特征提取網(wǎng)絡(luò)獲取多尺度圖像特征,克服YOLO前期版本對圖片內(nèi)顯著尺度差異目標(biāo)的漏檢問題。Darknet53以416像素×416像素的圖像為輸入,分別進行32倍、16倍和8倍下采樣,獲得不同層次的特征圖,然后通過上采樣和張量拼接,將不同層次的特征圖融合轉(zhuǎn)化為維度相同的特征圖。其包含的多尺度圖像特征,有利于改善算法對小目標(biāo)檢測的精度。鑒于本文檢測紅果和綠果兩類目標(biāo),DarkNet53特征提取最終分別輸出像素為13×13、26×26、及52×52三種尺度的特征圖,分別作為遠近景尺度視場內(nèi)果實目標(biāo)回歸檢測的依據(jù)。
圖4 DarkNet53多尺度特征提取原理Fig. 4 Multiscale feature extraction based on DarkNet53
YOLOv3根據(jù)目標(biāo)樣本邊框標(biāo)注信息,預(yù)先設(shè)置先驗框進行回歸檢測,以提高目標(biāo)識別效率。本文采用K-means聚類算法,以1-IOU為聚類指標(biāo),為3個不同尺度的特征圖分別獲得9個不同規(guī)格的先驗框,并根據(jù)特征圖層次等級進行分配,如表1所示。
表1 不同尺度特征圖的先驗框分配Tab. 1 Anchors boxes matched with various feature map
因此對于416像素×416像素的圖像,對于分別以13×13、26×26和52×52網(wǎng)格劃分后,每個網(wǎng)格設(shè)置3個先驗框,識別紅果和綠果需要進行13×13×3+26×26×3+52×52×3=10 647次預(yù)測判斷。
(1)
式中:Losscoord——目標(biāo)位置損失函數(shù);
估產(chǎn)視覺系統(tǒng)采集圖像過程中,番茄相對攝像機的距離動態(tài)變化,使得果實在圖像中形態(tài)呈現(xiàn)多尺度變化特征。若采用歐式距離對番茄目標(biāo)邊框偏差進行評價,損失函數(shù)數(shù)值與果實大小相關(guān),不具有尺度不變性,容易造成圖像中小果漏檢問題。因此本文采用具有尺度不變性的廣義交并比[16](GIOU)參數(shù)作為目標(biāo)真實邊框與預(yù)測邊框偏差的評價指標(biāo)。如圖5所示,黑色邊框為果實真實邊框,藍色邊框為預(yù)測邊框,邊框交集區(qū)域面積為J,二者最小包圍邊框(紅色)面積為A,則其包含目標(biāo)的單元格i的先驗框j與目標(biāo)真實邊框的GIOUij可由式(2)得到。
(2)
圖5 番茄果實邊框GIOUFig. 5 Tomato fruit border box GIOU
圖像樣本通過估產(chǎn)視覺系統(tǒng)在溫室內(nèi)采集獲得,共采集圖像2 000幅。為了保證樣本多樣性,在不同時段、空間位置采集圖像,并且采集圖像過程中隨機調(diào)節(jié)鏡頭焦距,獲得不同視場尺度下的圖像??紤]到番茄果實姿態(tài)多樣、形態(tài)各異,對采集的圖像進行隨機旋轉(zhuǎn)和縮放,使得總樣本數(shù)量擴大2倍。使用Labelimg標(biāo)注工具標(biāo)注番茄紅果、綠果區(qū)域,得到Y(jié)OLO數(shù)據(jù)集。4 000幅圖像樣本中包含800幅測試樣本,3 200幅訓(xùn)練樣本。
圖6 番茄果實圖像樣本Fig. 6 Tomato fruits image simples
算法運行平臺為深度學(xué)習(xí)工作站,其配置處理器Intel I7-9700K、顯卡Nvidia 1080TI、內(nèi)存DDR4 16G、主板Intel Z390。軟件平臺采用Ubuntu18.04操作系統(tǒng)下的Pytorch1.3深度學(xué)習(xí)框架和CUDA10.0并行計算構(gòu)架。
采用YOLOv3官方權(quán)重參數(shù),結(jié)合樣本識別分類需求,調(diào)整模型輸出層參數(shù)。基于改進的損失函數(shù)對模型進行訓(xùn)練,訓(xùn)練參數(shù)設(shè)置如表2所示,整體算法流程圖如圖7所示。
表2 訓(xùn)練參數(shù)Tab. 2 Training parameters
700次迭代周期中,損失函數(shù)的如圖8所示,前400次迭代周期中損失函數(shù)值明顯減小、且趨勢變緩。為了確保模型收斂精度,在400次以后的迭代周期中減小學(xué)習(xí)速率,最終模型在700次迭代周期后,損失函數(shù)值降至2附近小幅波動,則認為模型達到穩(wěn)定收斂。
圖7 算法流程圖Fig. 7 Algorithm flow chart
訓(xùn)練過程每10次迭代周期,輸出一次模型,對測試集圖像進行識別處理。以平均精度均值[17](mAP)作為評價指標(biāo),選擇具有最高精度的模型作為最優(yōu)模型。對相同訓(xùn)練過程的YOLOv3和其改進模型進行比較,如表3所示。傳統(tǒng)YOLOv3的mAP值為92.1%,經(jīng)過改進的YOLOv3的mAP值為95.7%,提高了3.6%,且改進后的算法檢測效率與傳統(tǒng)算法基本相同,載入模型后單幅圖像平均檢測時間為15 ms。
圖8 訓(xùn)練損失函數(shù)Fig. 8 Loss function of training
表3 算法性能對比Tab. 3 Performance comparison of algorithms
為了驗證模型的泛化性能,2019年10月20日在北京特菜大觀園番茄溫室內(nèi)進行了現(xiàn)場試驗,隨機選擇200個視場區(qū)域采集,由估產(chǎn)視覺系統(tǒng)實時采集番茄植株圖像,并分別由人工、YOLOv3和改進YOLOv3對圖像內(nèi)番茄果實進行計數(shù)估產(chǎn)試驗。
試驗方法如下:(1)在采摘區(qū)域內(nèi),對番茄植株隨機采集圖像。為保證數(shù)據(jù)多樣性,采集過程包括全天不同光照時段,且圖像包含遠近景不同尺度視場;(2)以人工識別結(jié)果為對照,統(tǒng)計試驗圖像內(nèi)紅果、綠果數(shù)量,選取果實稀疏、密集和遮擋情況對應(yīng)的特殊圖像樣本;(3)分別利用YOLOv3和改進YOLOv3模型對試驗圖像進行處理,對視場內(nèi)果實進行計數(shù),并與人工計數(shù)結(jié)果進行對照比較,評估估產(chǎn)模型精度。
以人工識別紅果、綠果計數(shù)結(jié)果為參考,對YOLOv3和改進YOLOv3識別計數(shù)結(jié)果進行評價。兩個模型對紅果、綠果及果實總數(shù)的識別數(shù)量與人工識別數(shù)量的比值,分別作為其各自紅果、綠果和總體估產(chǎn)精度。統(tǒng)計如表4所示,可見YOLOv3模型改進后,對于番茄的估產(chǎn)精度均得到改善,其中紅果、綠果和總體估產(chǎn)精度分別達到97.0%、95.5%和96.3%,比算法傳統(tǒng)YOLOv3識別精度分別提高0.8%、3.7%和2.7%。
表4 番茄果實估產(chǎn)精度Tab. 4 Tomato yield estimation precision %
此外,在圖像采集過程中,由于圖像采集系統(tǒng)與番茄植株的相對位姿不斷變化,并且果實自身隨機無序生長,從而番茄果實在視場內(nèi)呈現(xiàn)稀疏、密集和遮擋等3種特殊情況,如圖9所示。估產(chǎn)模型對特殊視場內(nèi)果實的識別精度是驗證模型估產(chǎn)泛化性能的重要參考。
(a) YOLOv3模型識別稀疏、密集和受遮擋果實
(b) 改進YOLOv3模型識別稀疏、密集和受遮擋果實圖9 特殊視場果實識別效果Fig. 9 Tomato identification in special fields
分別選擇果實稀疏、密集和遮擋視場各30幅圖像,兩個模型的估產(chǎn)精度統(tǒng)計如表5所示。改進的YOLOv3模型對于稀疏紅果、綠果的估產(chǎn)精度分別提高2.5%、1.4%,對于密集紅果、綠果分別提高5.5%、9.4%,對于受遮擋紅果、綠果分別提高9.5%、11.3%。可見模型改進前后,對于三種特殊視場下的番茄估產(chǎn)精度均有提高,且對于密集果實和受遮擋果實估產(chǎn)改善效果更加明顯。
表5 特殊視場估產(chǎn)精度Tab. 5 Estimating yield precision in special fields %
1) 針對溫室番茄智能化估產(chǎn)需要,本文研究了基于改進YOLOv3的溫室番茄果實識別方法,以對自然生長狀態(tài)下番茄果實進行計數(shù)估產(chǎn)。通過改進傳統(tǒng)YOLOv3位置損失函數(shù),建立了自然生長狀態(tài)下番茄綠果和紅果的識別模型。改進的YOLOv3對樣本的識別精度得到改善,最終模型mAP值為95.7%,比改進前傳統(tǒng)YOLOv3模型值提高3.6%。
2) 為了驗證識別模型的有效性和泛化性能,進行了現(xiàn)場試驗。試驗表明,改進YOLOv3模型相比較傳統(tǒng)YOLOv3模型,對于番茄紅果、綠果和總體的估產(chǎn)精度均得到改善,分別達到97.0%、95.5%和96.3%。
3) 改進YOLOv3模型對于密集果實和受遮擋果實具有更顯著的改善效果,更具有魯棒性,對于密集紅果、綠果分別達到95.3%、95.1%,對于受遮擋紅果、綠果分別達到95.4%、94.8%。且改進后的算法載入模型后單幅圖像平均檢測時間為15 ms,滿足實時性要求。本文研究結(jié)果可為溫室番茄時序產(chǎn)量的實時估計相關(guān)研究提供參考。