熊俊濤 鄭鎮(zhèn)輝 梁嘉恩 鐘 灼 劉柏林 孫寶霞
(1.華南農(nóng)業(yè)大學(xué)數(shù)學(xué)與信息學(xué)院, 廣州 510642; 2.廣東機電職業(yè)技術(shù)學(xué)院, 廣州 510515)
我國為世界上重要的水果生產(chǎn)國之一, 截至2017年, 我國柑橘產(chǎn)量3 816.78萬t, 占世界柑橘產(chǎn)量的四分之一。采摘是水果生產(chǎn)過程中勞動力投入最大的作業(yè)環(huán)節(jié), 柑橘采摘勞動量占整個生產(chǎn)過程工作量的50%~70%, 而所處環(huán)境的復(fù)雜性導(dǎo)致水果采摘仍然以人工作業(yè)為主[1]。隨著控制技術(shù)和計算機的發(fā)展,水果采摘機器人得以快速發(fā)展,并投入農(nóng)業(yè)生產(chǎn)[2],對推動農(nóng)業(yè)自動化、智能化生產(chǎn)具有極其重要的價值和意義。目前,大部分采摘機器人都是白天作業(yè),如能充分利用夜間時間進行采摘作業(yè),將提高全天平均生產(chǎn)效率[3]。在野外復(fù)雜環(huán)境下,果實精準識別與定位是采摘機器人高效完成采摘任務(wù)的先決條件,其中識別精度決定了采摘機器人對采摘位置定位的精確性,對成功采摘至關(guān)重要。
LU等[4]提出的水果識別方法需要在白天提供人工照明的條件下才有穩(wěn)定的識別準確率,識別算法受到光照因素影響。LINKER等[5]開發(fā)并驗證了一種用于估算自然光照下果園彩色圖像中蘋果數(shù)量的算法,其檢測正確率達85%以上,但白天光照造成大量的假陽性檢測,對檢測算法影響巨大。近年來,一些研究者對夜間水果識別進行了探索,XIONG等[6]利用RGB顏色空間的R分量圖結(jié)合改進的C-V水平集模型,實現(xiàn)了夜間綠色葡萄的識別,其算法識別正確率為92%。項榮等[7]利用夜間主動照明在重疊區(qū)域內(nèi)形成的陰影,采用基于重疊邊緣距離就近法實現(xiàn)了夜間雙果重疊番茄的前后位置關(guān)系判斷及未被遮擋番茄的識別,算法識別正確率在83.3%以上。PAYNE等[8]利用密集像素分割方法,提取超級像素中SIFT算子,結(jié)合使用支持向量機(SVM)和基于顏色和橢圓形狀的模型,實現(xiàn)了夜間樹木冠層圖像中芒果的分割和檢測,算法檢測正確率達84%以上。
可見,夜間采摘在提供穩(wěn)定的人工光照條件下,減弱了白天不同時間段光強不同和光照不均勻?qū)λR別的影響,提高了水果的識別正確率,這為夜間采摘機器人的投入應(yīng)用提供了技術(shù)支撐[9]。夜間水果識別研究存在以下難點:夜間小體積果實、重疊果實的識別率較低;夜間識別方法步驟復(fù)雜,采用多階段人工特征提取方法,不適合大樣本數(shù)據(jù)集,識別效果有待進一步提升;目前,夜間水果識別方法效率不高。此外,一些研究表明,采用的檢測方法受限于溫度、設(shè)備成本、拍攝角度等因素,導(dǎo)致果實檢測成本和復(fù)雜性升高[10-14]。
本文提出通過深度學(xué)習(xí)方式對柑橘類果實進行檢測識別。目前,目標檢測領(lǐng)域的深度學(xué)習(xí)方法主要分為兩類:一是基于區(qū)域生成網(wǎng)絡(luò)(Region proposal network,RPN)的檢測方法,該方法先由算法生成一系列作為樣本的候選框,再通過卷積神經(jīng)網(wǎng)絡(luò)(CNN)進行樣本分類;二是基于回歸的檢測方法,該方法不用產(chǎn)生候選框,直接將目標邊框定位的問題轉(zhuǎn)化為回歸問題處理。前者在檢測準確率和定位精度上占有優(yōu)勢,后者在算法速度上占有優(yōu)勢。為了進一步提高后者的檢測精度,研究者常常通過深層CNN[15-16]等網(wǎng)絡(luò)來提取更抽象、更高維的特征,以獲得更優(yōu)的檢測效果。但深層CNN往往導(dǎo)致更高的計算復(fù)雜度,同時存在淺層信息隨著卷積操作而丟失和梯度消失的問題[17]。Dense Net是GAO等[18]提出的一種高效卷積神經(jīng)網(wǎng)絡(luò),通過建立前面所有層與后面層的密集連接,使得后面層融合了前面所有層的信息,在高層特征中保留各級底層特征,實現(xiàn)了特征重用,有效解決了網(wǎng)絡(luò)深度和梯度消失問題,進一步提高了模型檢測的分類精度[19]。
對樹上目標果實識別的精準性和實時性是影響采摘機器人高效作業(yè)的重要因素,為實現(xiàn)野外夜間復(fù)雜環(huán)境下成熟柑橘的精確、快速識別和高效采摘,本文對YOLO v3深度卷積神經(jīng)網(wǎng)絡(luò)進行改進,借鑒殘差網(wǎng)絡(luò)和密集連接網(wǎng)絡(luò),提出Des-YOLO v3網(wǎng)絡(luò)結(jié)構(gòu),有效減少模型參數(shù),同時保證淺層特征不丟失,進一步實現(xiàn)網(wǎng)絡(luò)多層特征的復(fù)用和融合,以提高對小目標和重疊遮擋果實識別的魯棒性。
圖像采集于廣東省廣州市華南農(nóng)業(yè)大學(xué)的柑橘園,拍攝相機為Kinect V2,夜間柑橘圖像采集示意圖如圖1所示。對果園柑橘進行不同角度的拍攝,圖像尺寸為1 920像素×1 080像素,彩色圖像保存為png格式,共拍攝了2 000幅圖像,并篩選出清晰的、具有代表性的、遮擋和完整的柑橘圖像1 600幅。遮擋圖像是指柑橘面積遮擋超過1/3,遮擋圖像為749幅,完整圖像為851幅,其中1 200幅作為訓(xùn)練集,剩余400幅作為測試集。這些圖像于20:00—22:30之間拍攝,當晚沒有月光,柑橘園中除了環(huán)形光源系統(tǒng)外無其他光源,環(huán)形光源品牌為鷹視科技,外徑為100 mm,內(nèi)徑為40 mm,高為22 mm,輸入電壓為12 V,其中光源系統(tǒng)最大光照強度為35 000 lx,光源放大圖如圖2所示,相機放大圖如圖3所示。
圖1 夜間柑橘圖像采集示意圖Fig.1 Image acquisition of mature citrus at nighttime
圖2 環(huán)形光源放大圖Fig.2 Enlarged view of circular light source
圖3 相機放大圖Fig.3 Local enlarged image of camera
相對于其它目標檢測與識別方法(如R-CNN系列),YOLO v3網(wǎng)絡(luò)基于回歸的方法來提取特征,無需生成大量的候選窗口,而直接采用單個神經(jīng)網(wǎng)絡(luò)對輸入的圖像進行目標預(yù)測和分類, 實現(xiàn)了端到端的物體檢測。該算法在保證準確率較高的情況下,可快速預(yù)測并分類目標,更加適合現(xiàn)場應(yīng)用環(huán)境。
如圖4所示,YOLO v3網(wǎng)絡(luò)將輸入圖像按特征圖尺寸劃分成S×S(S=7)的網(wǎng)格, 如果一個物體的中心落在某個單元格內(nèi),則由該單元格負責檢測該物體。單元格會輸出多個預(yù)測框和每個預(yù)測框的置信度,拋棄置信度低的預(yù)測框并通過非極大值抑制算法最終定位柑橘位置。其中預(yù)測框包含參數(shù)c、x、y、w、h,(x,y)為候選框的中心坐標,w、h為候選框的寬度和高度,c(c=1)為類型。
圖4 YOLO v3檢測網(wǎng)絡(luò)Fig.4 YOLO v3 detection network
YOLO v3網(wǎng)絡(luò)是目標檢測算法YOLO系列的第3個版本,該網(wǎng)絡(luò)在VOC2007數(shù)據(jù)集上具有較高的檢測精度和速度,檢測性能優(yōu)異,優(yōu)于Faster R-CNN、SSD和YOLO等算法。但在進行夜間成熟柑橘識別試驗中發(fā)現(xiàn),YOLO v3網(wǎng)絡(luò)存在小目標漏檢的缺點,檢測精度有待提高。同時該網(wǎng)絡(luò)采用DarkNet53作為backbone網(wǎng)絡(luò),該框架性能強大但網(wǎng)絡(luò)層數(shù)太多,導(dǎo)致運算量較大。針對以上缺點,本文借鑒殘差網(wǎng)絡(luò)和密集連接網(wǎng)絡(luò)思想 ,提出了Des-YOLO v3網(wǎng)絡(luò)結(jié)構(gòu),進一步提高了算法性能、縮小了運算成本。
1.3.1殘差網(wǎng)絡(luò)
網(wǎng)絡(luò)深度對于網(wǎng)絡(luò)的性能至關(guān)重要,深層網(wǎng)絡(luò)可以提取到高效特征進行識別,但網(wǎng)絡(luò)的性能 (準確率) 會隨著網(wǎng)絡(luò)深度的增加迅速達到飽和, 甚至開始迅速下降,稱其為退化問題。為了解決網(wǎng)絡(luò)退化問題并能夠訓(xùn)練上千層的網(wǎng)絡(luò),何凱明等于2015年提出了殘差網(wǎng)絡(luò)(ResNet)模型,其核心為殘差單元, 如圖5所示。
圖5 殘差網(wǎng)絡(luò)基本模塊Fig.5 Basic module of residual network
圖5中x為網(wǎng)絡(luò)輸入,G(x)為期望輸出,ResNet只是學(xué)習(xí)輸出和輸入的差G(x)-x, 即殘差F(x)。通過執(zhí)行恒等映射,后面的層可通過支路x直接學(xué)習(xí)殘差, 并且反向傳播更易將梯度回傳。當網(wǎng)絡(luò)達到最優(yōu),該模塊將被置0,由恒等映射向下方傳遞特征同時保持網(wǎng)絡(luò)能一直處于最優(yōu)狀態(tài),而不受層數(shù)過多的影響。殘差單元可定義為
yk=f(xk+F(xk,wk))
(1)
其中
f=max(0,x)
式中xk、yk——第k個殘差單元的輸入和輸出
f——激活函數(shù),一般為修正線性單元(Rectified linear unit,ReLU)
wk——卷積核[20]
1.3.2密集連接網(wǎng)絡(luò)
為了有效減少模型參數(shù),同時盡可能在高層特征中保留各級底層特征 (包括原始圖像信息) ,進一步實現(xiàn)網(wǎng)絡(luò)多層特征的復(fù)用和融合, 本文借鑒了密集連接網(wǎng)絡(luò)(Dense Net)的思想。
如圖6所示,密集連接網(wǎng)絡(luò)由密集連接塊(Dense Block)和轉(zhuǎn)換層(Transition Layer)兩種基本結(jié)構(gòu)組成。在密集連接塊1中,模塊的層間變換可表示為
xk=Hk([x0,x1,…,xk-1])
(2)
式中x0——密集連接塊的輸入特征圖
xk——第k層的輸出
Hk——層間變換函數(shù)
[x0,x1,…,xk-1]表示從輸入層到第k-1層網(wǎng)絡(luò)特征圖的連接。Hk包含6個連續(xù)非線性變換,依次為BN、ReLU、Conv (1, 1)、BN、ReLU、Conv (3, 3)[21]。
圖6 密集網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.6 Dense network structure diagram
1.3.3Des-YOLO v3網(wǎng)絡(luò)
在保證算法的實時性同時,應(yīng)盡可能滿足并提高采摘機器人對樹上目標果實識別的精準性。相比YOLO v3_Tiny的輕量和高速,YOLO v3_DarkNet53網(wǎng)絡(luò)則是在保證實時性的基礎(chǔ)上追求更高的性能。因此本文選取具有較高檢測精度和速度的DarkNet53作為YOLO v3的基礎(chǔ)網(wǎng)絡(luò)。通過借鑒殘差網(wǎng)絡(luò)和密集連接網(wǎng)絡(luò),在YOLO v3深度卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上進行多次改進和試驗驗證,提出了Des-YOLO v3網(wǎng)絡(luò),其網(wǎng)絡(luò)參數(shù)如表1所示。
如表1所示,Des-YOLO v3網(wǎng)絡(luò)對輸入圖像進行1次密集連接卷積和3次殘差卷積提取特征,與原框架DarkNet53相比,Des-YOLO v3淺層網(wǎng)絡(luò)采用密集連接卷積塊,淺層特征可以更好更快地傳達到深層卷積,實現(xiàn)網(wǎng)絡(luò)多層特征的復(fù)用和融合,進一步改善了整個網(wǎng)絡(luò)的信息傳遞效率和梯度傳遞效率,有利于回歸預(yù)測中上采樣與淺層特征的結(jié)合以進行目標檢測。在特征提取網(wǎng)絡(luò)的后半部分,Des-YOLO v3網(wǎng)絡(luò)保持采用殘差網(wǎng)絡(luò),通過3組殘差塊加深特征提取網(wǎng)絡(luò)結(jié)構(gòu),提高模型對圖像深層特征的選擇與提取能力。最后Des-YOLO v3網(wǎng)絡(luò)使用類似FPN網(wǎng)絡(luò)的尺度金字塔結(jié)構(gòu),通過2次上采樣并與網(wǎng)絡(luò)上層中相同尺寸的特征圖譜拼接,進行3次回歸預(yù)測,實現(xiàn)對不同尺寸目標的多尺度檢測。此外,Des-YOLO v3網(wǎng)絡(luò)在保證模型具有較高預(yù)測準確率的基礎(chǔ)上縮減了網(wǎng)絡(luò)的卷積層數(shù)量,減小了模型尺寸和計算量。
表1 Des-YOLO v3網(wǎng)絡(luò)參數(shù)Tab.1 Network parameters of Des-YOLO v3
Des-YOLO v3網(wǎng)絡(luò)架構(gòu)如圖7所示。CBR是Des-YOLO v3網(wǎng)絡(luò)的基本組件,包括卷積、批量歸一化 (Batch normalization, BN)、ReLU (Leaky ReLU)操作;Dense為密集連接塊,其中包含2個卷積操作,該模塊將卷積操作前后的特征圖進行拼接,實現(xiàn)網(wǎng)絡(luò)多層特征的復(fù)用和融合;Res Block為殘差塊,其中Res_unit*n表示含有n個殘差單元,使用殘差結(jié)構(gòu)可以讓網(wǎng)絡(luò)結(jié)構(gòu)更深,獲得高維特征以提高預(yù)測準確率。
圖7 Des-YOLO v3 架構(gòu)圖Fig.7 Des-YOLO v3 architecture diagram
試驗采用DarkNet53深度學(xué)習(xí)框架,計算機配置為Intel Core i7-8700HQ CPU,3.20 GHz×12,顯卡為GeForce GTX 1080,操作系統(tǒng)為Ubuntu16.04LTS,NVIDIA 430.26驅(qū)動,CUDA 8.0.61版本,CUDNN神經(jīng)網(wǎng)絡(luò)加速庫版本為5.1.1,訓(xùn)練設(shè)置如下:
(1)參數(shù)設(shè)置:每次迭代訓(xùn)練的樣本數(shù)為64,共16批次,進行50 000次迭代;動量因子設(shè)為0.9;衰減系數(shù)設(shè)為0.000 5;學(xué)習(xí)率調(diào)整策略采用steps,初始學(xué)習(xí)率設(shè)為0.001,當網(wǎng)絡(luò)迭代40 000次和45 000次時,學(xué)習(xí)率依次降低為0.000 1和0.000 01。
(2)訓(xùn)練策略:在訓(xùn)練過程中, 采用多尺度訓(xùn)練策略,同時通過調(diào)整飽和度、曝光量以及色調(diào)等方式來生成更多訓(xùn)練樣本, 提高網(wǎng)絡(luò)對不同分辨率圖像的魯棒性和準確率。
圖8為Des-YOLO v3網(wǎng)絡(luò)在訓(xùn)練時的平均損失值隨迭代次數(shù)的變化曲線,從圖中可以看到,當網(wǎng)絡(luò)迭代超過24 000次后,損失值基本趨于平穩(wěn),下降到0.24左右。從參數(shù)收斂情況來看, 網(wǎng)絡(luò)訓(xùn)練結(jié)果理想。
圖8 損失值變化曲線Fig.8 Loss changing graph
Des-YOLO v3網(wǎng)絡(luò)對測試集中各種環(huán)境下的柑橘果實進行識別的效果如圖9所示。
本研究設(shè)計并進行了夜間成熟柑橘識別試驗,由于在實際柑橘圖像中果實對象的信息往往不同,相應(yīng)地算法檢測效果會受到不同程度的影響,如在果實稀疏完整的圖像中,果實對象比較完整清晰,識別難度低;而在果實重疊遮擋圖像中,有可能存在果實過小、粘連、相互遮擋或被果樹枝葉遮擋等情況,增加了果實檢測的難度[22]。因此在本節(jié)中,設(shè)計了YOLO v3和Des-YOLO v3的對比識別試驗,將原始測試集分為果實稀疏完整和果實遮擋2個梯度,目的是對比分析2種識別網(wǎng)絡(luò)在以上兩種情況下的檢測性能。試驗采用精確率 (precision)、召回率(recall)和F1值作為評價標準,計算公式為
圖9 Des-YOLO v3網(wǎng)絡(luò)檢測效果圖Fig.9 Des-YOLO v3detection results
(3)
(4)
(5)
式中TP——真正例數(shù)FP——假正例數(shù)
FN——假負例數(shù)
F1——查準率與查全率的調(diào)和平均數(shù)
P——精確率R——召回率
柑橘識別試驗將400幅原始測試圖像分成2個梯度,每個梯度包括200幅圖像作為數(shù)據(jù)集。分別使用YOLO v3網(wǎng)絡(luò)和Des-YOLO v3網(wǎng)絡(luò)對兩個梯度的數(shù)據(jù)集進行檢測,圖10為兩種網(wǎng)絡(luò)P、R關(guān)系曲線,圖11為2種網(wǎng)絡(luò)的識別效果圖。
圖10 YOLO v3網(wǎng)絡(luò)與Des-YOLO v3網(wǎng)絡(luò)的P、R關(guān)系曲線對比Fig.10 Comparison of P and R curves for YOLO v3 network and Des-YOLO v3 network
圖11 識別效果對比Fig.11 Comparison diagrams of detection effect
從圖10和圖11可以看出,Des-YOLO v3網(wǎng)絡(luò)整體性能明顯優(yōu)于YOLO v3網(wǎng)絡(luò)。Des-YOLO v3網(wǎng)絡(luò)通過應(yīng)用密集連接模塊與殘差模塊,進一步提高網(wǎng)絡(luò)對圖像深層高效特征的提取能力,同時加強網(wǎng)絡(luò)多層特征的復(fù)用和融合,很好地克服了YOLO v3網(wǎng)絡(luò)漏檢小柑橘目標的缺點。此外,與YOLO v3網(wǎng)絡(luò)相比,Des-YOLO v3網(wǎng)絡(luò)在果實密集遮擋較為嚴重的情況下可以分別識別并框出每個柑橘,具有更優(yōu)的魯棒性和準確率。
表2為YOLO v3網(wǎng)絡(luò)和Des-YOLO v3網(wǎng)絡(luò)的性能對比結(jié)果。從表中可知,對于3種柑橘狀態(tài),Des-YOLO v3網(wǎng)絡(luò)的精確率、召回率以及F1值均高于YOLO v3網(wǎng)絡(luò)。結(jié)果表明,本文算法具有更優(yōu)的檢測效果。檢測錯誤的主要原因可能是:①部分柑橘果實半徑太小。②某些圖像光照太暗難以識別。③多個果實靠得太近容易被識別成一個區(qū)域。
表2 YOLO v3網(wǎng)絡(luò)與Des-YOLO v3網(wǎng)絡(luò)在不同柑橘場景下性能對比Tab.2 YOLO v3 and Des-YOLO v3 performance comparison under different citrus scenarios
為了更直觀地驗證本文方法的效果,考慮不同網(wǎng)絡(luò)在不同光線強度、果實密集度遮擋等因素下性能不同,隨機抽取兩幅測試圖像,分別使用YOLO v3_DarkNet53、Des-YOLO v3、Faster R-CNN 3種網(wǎng)絡(luò)進行測試,試驗結(jié)果如圖12所示。
圖12 不同算法識別效果對比Fig.12 Comparison effects among different algorithms
圖12表明,測試圖像1中有14個目標柑橘,F(xiàn)aster R-CNN算法識別出11個,把遮擋的3個柑橘識別成1個;YOLO v3_DarkNet53識別出12個,但在遮擋處仍未能成功識別;而Des-YOLO v3的識別效果最佳,識別出14個目標。測試圖像2中有多個目標柑橘,從圖12b、12d可以看出,F(xiàn)aster R-CNN和YOLO v3_DarkNet53均存在果實漏檢情況,而圖12f表明Des-YOLO v3成功識別出所有柑橘目標。兩組測試均說明了Des-YOLO v3算法性能更優(yōu)。
表3為本文網(wǎng)絡(luò)與其他網(wǎng)絡(luò)的性能對比。Des-YOLO v3網(wǎng)絡(luò)更小,識別速度更快;相比于YOLO v3_DarkNet53,mAP提高了2.27個百分點。Des-YOLO v3網(wǎng)絡(luò)與Faster R-CNN網(wǎng)絡(luò)相比,少了生成候選區(qū)域這一步,所以mAP比Faster R-CNN低了0.5個百分點,但是Des-YOLO v3網(wǎng)絡(luò)的速度為53 f/s,明顯快于Fater R-CNN,可用于果園采摘機器人的定位檢測。結(jié)果表明, Des-YOLO v3網(wǎng)絡(luò)進一步縮減了網(wǎng)絡(luò)規(guī)模,提高了識別精度和速度。
(1)針對采摘機器人在果園夜間復(fù)雜環(huán)境下果實識別準確率較低的問題,提出了一種多尺度卷積神經(jīng)網(wǎng)絡(luò)Des-YOLO v3網(wǎng)絡(luò),實現(xiàn)對成熟柑橘的識別與檢測,最終在測試集上的mAP為90.75%,與YOLO v3_DarkNet53網(wǎng)絡(luò)相比,提高了2.27個百分點。
表3 Des-YOLO v3與其他CNN網(wǎng)絡(luò)性能對比Tab.3 Comparison of Des-YOLO v3 and other algorithm network performance
(2)為了驗證本文算法的有效性和可行性,設(shè)計了不同柑橘場景下改進前后識別網(wǎng)絡(luò)的性能對比試驗。結(jié)果表明,Des-YOLO v3網(wǎng)絡(luò)在原始測試集上精確率達97.67%,召回率達97.46%,F(xiàn)1值達0.976,3個指標均高于YOLO v3網(wǎng)絡(luò),表明本文算法具有更優(yōu)的檢測識別效果。
(3)Des-YOLO v3網(wǎng)絡(luò)借鑒殘差網(wǎng)絡(luò)和密集連接網(wǎng)絡(luò),加強對小目標果實的識別和對遮擋重疊目標的魯棒性,并且有效縮減了原有網(wǎng)絡(luò)的卷積層數(shù)量,顯著提高了果實檢測精度和速度,為水果采摘機器人提供了新的視覺識別思路。