閆 彬 樊 攀 王美茸 史帥旗 雷小燕 楊福增
(1.西北農林科技大學機械與電子工程學院, 陜西楊凌 712100; 2.農業農村部蘋果全程機械化科研基地, 陜西楊凌 712100; 3.農業農村部北方農業裝備科學觀測實驗站, 陜西楊凌 712100; 4.黃土高原土壤侵蝕與旱地農業國家重點實驗室, 陜西楊凌 712100)
目前蘋果采摘機器人[1-5]可以實現對其視覺范圍內未被遮擋或僅被樹葉遮擋蘋果的直接采摘,而針對被枝干遮擋的蘋果,若未經精確識別而直接對其進行采摘可能會造成果實損傷,或機械手、機械臂損壞[6]。
深度學習技術因具有能夠對所采集信息數據的特征進行較好地挖掘與提取的優點,近年來,已經被廣泛應用于目標識別領域中[7-10]。截至目前,在基于深度學習的蘋果目標識別方面,已經有許多深度學習網絡架構,如YOLOv2[11]、YOLOv3[12-14]、YOLOv4[15]、YOLOv5s[6]、Faster R-CNN[16-19]、DaSNet-v2[20]、R-FCN[21]、LedNet[22]、FCOS[23]、DaSNet[24]和Mask R-CNN[25]等,都被成功應用于檢測蘋果樹上的果實目標。
然而,現有的算法大多將復雜果園環境(蘋果被樹葉遮擋、枝干遮擋、果實遮擋和混合遮擋等)下的不同蘋果劃分為同一類目標進行識別,而現實中極有可能會造成果實的損傷,或采摘手、機械臂的損壞。本研究團隊前期針對蘋果被樹枝干遮擋的情形進行了識別[6],以引導機器人避開對這些果實的采摘,但會導致一部分蘋果漏采。另一方面,若根據蘋果被枝干遮擋的不同情形而相應地改變采摘手的位姿,則可以使機器人實現對該類蘋果的迂回采摘,以降低不必要的采摘損失。然而,目前尚未見可以區分枝干單側遮擋(即枝干遮擋蘋果的上、下、左、右側)、多側遮擋情形下蘋果識別算法的研究報道。
為解決蘋果采摘機器人采摘識別時所面臨的上述問題,本文基于人工智能算法,提出一種采摘機器人的蘋果采摘方式識別方法,擬實現對蘋果樹上不同枝干遮擋情形下果實的實時識別,從而為機械手主動調整位姿以避開枝干的遮擋進行果實采摘提供視覺引導,以期降低蘋果的采摘損失。
以現代標準果園中紡錘形栽培模式下的紅富士蘋果果實為研究對象,該栽培模式下的蘋果樹行距約4 m,株距約1.2 m,樹高約3.5 m,適合蘋果采摘機器人入園進行自動化采摘作業。采摘機器人所面臨的實際采摘情況如圖1所示。

圖1 機器人所面臨的蘋果采摘情況示意圖Fig.1 Schematic of apple picking situation that robot confronted
對位于陜西省乾縣農業科技試驗示范基地的現代標準蘋果園與西北農林科技大學白水蘋果試驗站中的蘋果樹進行圖像采集。分別采集晴天與陰天條件下的蘋果樹圖像,拍攝時段包括上午、中午與下午,圖像采集設備為佳能Canon PowerShot G16型相機,分別在不同的拍攝距離下(0.5~1.5 m)選擇多種角度進行圖像采集,共采集蘋果圖像1 400幅。具體包含以下情況:果實被樹葉遮擋、果實被枝干遮擋(枝干遮擋蘋果的上、下、左、右側或多側遮擋)、混合遮擋、果實之間重疊、順光角度、逆光角度和側光角度等(圖2、3)。所采集圖像分辨率為4 000像素×3 000像素,格式為JPEG。

圖2 不同情況下的蘋果圖像Fig.2 Apple images under different conditions

圖3 果實被枝干遮擋的不同情形Fig.3 Different situations of apples occluded by branches
從所采集的圖像中隨機選取拍攝質量穩定的344幅圖像(晴天與陰天各172幅)作為測試集,另隨機選取1 014幅圖像用于模型訓練。測試集圖像中含不可采摘果實1 202個,可直接采摘果實1 952個,上側采摘果實658個,下側采摘果實909個,左側采摘果實950個和右側采摘果實865個。
使用LabelImg圖像數據標注軟件在壓縮后的果樹圖像中繪制蘋果的外接矩形框以實現果實的人工標注。圖像標注時,需要基于每個蘋果的最小外接矩形進行標注,以保證矩形框內盡可能少地包含背景。其中,根據機器人在蘋果園采摘作業時所面臨的實際情況,將圖像中需要識別的蘋果目標分別劃歸入6個類別進行數據標注,具體的類別劃分規則為:將圖像中未被遮擋或僅被樹葉遮擋的蘋果標注為“可直接采摘”類,將果實上側被枝干遮擋的蘋果標注為“下側采摘”類,下側被枝干遮擋的蘋果標注為“上側采摘”類,左側被枝干遮擋的蘋果標注為“右側采摘”類,右側被枝干遮擋的蘋果標注為“左側采摘”類,其他情況下的蘋果標注為“不可采摘”類。
另一方面,由于較遠處種植行(非機器人所處的當前果樹種植行)中的蘋果與采摘機器人間的距離過大,故機器人無法對其進行采摘作業。而機器人視覺系統所獲取的蘋果樹圖像中會不可避免地拍攝到較遠種植行中的蘋果,因此并不能將其作為有效的待識別/采摘目標。因而模型需要避免對較遠處他行蘋果的識別。故在蘋果圖像數據集標注時,對于較遠處他行的蘋果均不進行標簽標注。最后,保存標注后所生成的XML格式文件。
為了豐富訓練集的圖像數據,以更好地提取不同標注類別蘋果的特征,對訓練集圖像進行數據擴增。由于存在光照與天氣等不確定因素,導致機器人在果園進行識別采摘作業時的視覺感知環境十分復雜,為了提高蘋果采摘方式識別模型的泛化能力,對訓練集的圖像分別進行亮度增強與減弱的數據增強方式:首先,將原始圖像轉換至HSV彩色空間;然后,將圖像的V分量(亮度分量)乘以不同的權重系數;最后,將新合成的HSV彩色空間圖像轉換至RGB彩色空間,實現圖像亮度的增強和減弱。在本研究中,利用亮度增強產生2種亮度的圖像:H+S+1.2V和H+S+1.6V,其中H為色調分量,S為飽和度分量;利用亮度減弱產生2種亮度的圖像:H+S+0.6V和H+S+0.8V。
另外,考慮到圖像采集裝置在拍攝過程中可能產生的噪聲以及由于設備晃動或樹枝干抖動而使所獲取的圖像存在模糊的情況,分別對圖像添加了方差為0.02的高斯噪聲,進行了運動模糊處理。在運動模糊處理中,將運動濾波器的參數(LEN,θ)(LEN代表長度,表示攝像機線性運動的像素;θ代表其逆時針方向旋轉的角度)設置為(7,45)。然后利用Matlab中的imfilter函數對圖像進行模糊處理。將經過數據擴增處理后所得到的共7 098幅圖像作為訓練集數據用于后續蘋果采摘方式識別模型的訓練。
YOLOv5網絡架構具有檢測精度高、運行速度快的優勢,最高檢測速度可達140幀/s[26]。另一方面,該網絡模型的權重文件較小,與YOLOv4模型相比縮小了近90%,這使得YOLOv5模型適合部署到嵌入式設備上以實現對目標的實時檢測。由于模型的檢測精度、實時性與是否輕量化直接關系到機器人識別果實采摘方式的準確率與效率,因此本研究以YOLOv5架構為基礎,改進設計蘋果采摘機器人的果實采摘方式識別網絡。
YOLOv5網絡[6,27-28]具體包含了YOLOv5s、YOLOv5m、YOLOv5l與YOLOv5x 4種架構,其主要區別為在網絡的特定位置處所包含的特征提取模塊數量和卷積核數量不同,4種模型的參數數量和體積依次增大,指標參數如表1所示。

表1 YOLOv5 4種架構模型指標參數Tab.1 Model parameters of four YOLOv5 architectures
由于本研究共需要識別6類目標,且對模型的識別實時性與輕量化要求較高,綜合考慮模型識別的準確率、效率及模型的體積,確定以YOLOv5m架構(圖4)為基礎,改進設計蘋果采摘方式識別網絡。

圖4 原始的YOLOv5m網絡結構Fig.4 Architecture of original YOLOv5m network
YOLOv5m架構主要由Backbone網絡、Neck網絡和Detect網絡組成。Backbone網絡即特征提取網絡,是在不同的圖像細粒度上聚合并形成圖像特征的卷積神經網絡。Backbone網絡的第1層為Focus模塊(圖5),該模塊的設計主要是為了減少模型的計算量以加快訓練速度,其主要功能是:首先通過切片操作將輸入的3通道圖像(YOLOv5m架構默認的圖像輸入尺寸為3×640×640)切分成4份3×320×320的切片,然后使用Concat操作從深度上連接這4個切片,輸出的特征圖尺寸為12×320×320,進而再通過由48個卷積核組成的卷積層,生成48×320×320的輸出,最后再經過BN層(Batch normalization)和Hardswish激活函數后將結果輸入到下一層。

圖5 Focus模塊Fig.5 Focus module
Backbone網絡的第3層為BottleneckCSP模塊,該模塊的主要作用是為了更好地提取圖像的深層特征。其中,BottleneckCSP模塊主要由Bottleneck模塊(圖6)構成,該模塊是一種殘差結構的網絡,即將卷積核尺寸為1×1的卷積層(Conv2d層+BN層+Hardswish激活函數)與3×3的卷積層相連,再將該部分的輸出通過殘差結構與輸入相加作為最終Bottleneck模塊的輸出。

圖6 Bottleneck模塊Fig.6 Bottleneck module
而BottleneckCSP模塊(圖7)的主要功能是:將初始的輸入分別送入2個分支,分別對這2個分支進行卷積操作使其特征圖的通道數減半,其中,分支2再與Bottleneck模塊相連,進而在經過Conv2d層后,使用Concat操作從深度上連接分支1與分支2的輸出特征圖。最后再依次經過BN層與Conv2d層后得到BottleneckCSP模塊的輸出特征圖,該特征圖的尺寸與輸入BottleneckCSP模塊的特征圖尺寸相同。

圖7 BottleneckCSP模塊Fig.7 BottleneckCSP module
Backbone網絡的第9層為空間金字塔池化模塊(Spatial pyramid pooling,SPP)(圖8),該模塊的主要功能是為了使任意尺寸的特征圖都能夠被轉換成固定尺寸的特征向量,以提高網絡的感受野。其中,YOLOv5m中SPP模塊的輸入特征圖尺寸為768×20×20,首先經過1×1的卷積層后輸出尺寸為384×20×20的特征圖,然后將該特征圖與其分別經過3個并列的Maxpooling層(最大池化層)進行下采樣后的輸出特征圖從深度上進行連接,輸出尺寸為1 536×20×20的特征圖,最后再經過卷積核數量為768的卷積層后輸出尺寸為768×20×20的特征圖。

圖8 SPP模塊Fig.8 SPP module
Neck網絡是一系列組合圖像特征的特征融合網絡,采用自頂向下與自底向上聯合的特征融合方式,更好地融合了多尺度特征,因此改善了低層特征的傳播,增強了模型對于不同縮放尺度對象的檢測,從而能夠更好地識別不同尺寸和尺度的同一目標對象。
Detect網絡主要用于模型最終的推理與檢測,該網絡在上一層Neck網絡輸出的特征圖上應用錨框(Anchor box),最后輸出包含目標對象的類別概率、對象得分和包圍框位置的向量。YOLOv5m架構的預測網絡由3個Detect層組成,其輸入尺寸分別為80×80、40×40與20×20的特征圖,用于檢測圖像中不同尺寸的目標物,每個Detect層最終輸出一個33通道的向量(3個錨定框,每個錨定框包括6個類別、1個類別概率、4個包圍框位置坐標,即(6+1+4)×3),進而在原始圖像中生成并標記出所預測目標的位置邊界框和類別,實現對圖像中目標對象的檢測。
對于設計面向采摘機器人的蘋果采摘方式識別算法,既要使其能夠準確區分復雜果園環境中的多種果實采摘方式,還需要盡可能壓縮算法模型的體積以有利于后期將其部署在硬件設備中。因此,在YOLOv5m架構的基礎上,對其骨干網絡進行優化改進,在能有效提取圖像的深層特征以保證識別精度的前提下,降低網絡的權重參數量,縮小其體積,以實現蘋果采摘方式識別網絡的輕量化改進設計。
由于所設計的識別算法需要區分6種不同的果實采摘方式,因此識別網絡需要對蘋果圖像的深層特征進行充分提取,以精確辨識不同蘋果采摘方式間的差異。為此,本研究對BottleneckCSP模塊進行了改進設計,以增強其對圖像深層特征提取的能力。
使用Bottleneck模塊替換原BottleneckCSP模塊中Concat特征圖拼接層之前的Conv2d層。由圖6可知,Bottleneck模塊中既含有跨接融合層,又包含多個Conv2d卷積層,因而該模塊既可實現對圖像低層特征與高層特征的融合(可彌補低分辨率的高層特征圖中空間信息的損失),又可實現對圖像更深層特征的提取。故該模塊相較于單一的Conv2d卷積層具有更強的圖像特征提取能力。進而,在上述改進的基礎上,再去掉原BottleneckCSP模塊跨接分支上的卷積層,則實現了將分辨率更高、包含更多目標物位置與細節信息的低層特征圖與經過多個特征提取模塊后包含更強語義信息的高層特征圖進行融合,使得改進后BottleneckCSP模塊的輸出特征圖含有更強的語義信息與更多的細節信息,以提升該模塊的特征提取能力。
改進后的BottleneckCSP模塊如圖9所示,將其命名為BottleneckCSP-B模塊。另一方面,為了縮小識別模型的體積,降低骨干網絡的整體參數量,以實現模型的輕量化,本研究將原骨干網絡中的4處共使用到16個BottleneckCSP模塊的地方都分別替換為4個相連的BottleneckCSP-B模塊。

圖9 改進BottleneckCSP(BottleneckCSP-B)模塊Fig.9 Improved BottleneckCSP (BottleneckCSP-B) module
由于蘋果外形和顏色與樹枝干、樹葉及圖像中的背景物相比具有一定的差異,因此為了提升果實采摘方式的識別精度,將機器視覺中的注意力機制[24](Attention mechanism)引入蘋果采摘方式識別網絡的架構中,以更好地提取不同果實圖像的特征。SE模塊[20,29](Squeeze and excitation networks,SENet)是視覺注意力機制網絡的一種,其采用了一種全新的特征重標定策略,即通過學習的方式自動獲取到每個特征通道的重要程度,然后據此提升有用的特征并抑制不重要的特征。該模塊主要包含3種操作:擠壓(Squeeze)操作、激勵(Excitation)操作、縮放(Scale)操作。由于該模塊的計算量不大,且能有效提升模型的表達能力,優化模型所學習的內容,因此將其嵌入所改進設計的YOLOv5m架構的骨干網絡中,以提升模型的識別精度。SE模塊結構示意圖如圖10所示,該模塊在改進YOLOv5m網絡(圖11)中的具體嵌入布局如下:分別在改進后骨干網絡的第5、7、11、14層嵌入SE模塊。第7層的嵌入,改進YOLOv5m架構的第1個檢測層(Detect層),可實現對圖像中尺寸相對較大目標物的識別。在改進后的網絡結構中,第7層輸出的特征圖與第20層輸出的高層特征圖進行拼接后輸入至第1個Detect層,因而在前端第7層位置處嵌入SE模塊,使第20層輸出的含有高維特征信息的特征圖與第7層經過SE模塊凸顯了尺寸較大目標物信息的特征圖進行融合,有利于第1檢測層對于圖像中相對較大目標物的準確識別。

圖10 SE模塊結構示意圖Fig.10 SE module

圖11 改進的YOLOv5m網絡結構Fig.11 Architecture of improved YOLOv5m network
第14層的嵌入。改進網絡第13層的SPP模塊實現了局部特征和全局特征的融合,豐富了特征圖的表達能力,有利于對圖像中目標大小差異較大的情況進行識別,在其后嵌入SE模塊,以進一步提升SPP模塊輸出特征圖中明顯的特征,并抑制不重要的特征。
改進后的YOLOv5m骨干網絡中存在多個含卷積操作的特征提取模塊,如BottleneckCSP-B模塊與Conv模塊,都具有對圖像特征進行提取的功能。因此,在這些特征提取模塊后接入SE模塊可以在得到深層特征圖的基礎上,挖掘特征圖中各通道之間的相互關系,提取細節信息,進一步優化經過卷積層所提取的特征。故在上述改進的基礎上,在改進后骨干網絡的第1~7層、7~14層之間嵌入SE模塊。
第5層的嵌入。由于骨干網絡對圖像特征的提取程度是隨層數遞進的,當骨干網絡前端對特征提取還不充分時,在過于靠前的位置嵌入SE模塊以進行特征優化的效果并不明顯。另一方面,2個SE模塊相連的架構又會造成資源冗余,故將SE模塊嵌入改進后骨干網絡的第5層。
第11層的嵌入。由于第7~14層之間各模塊的輸出特征圖維度包含了192、384、768,且維度為192與768的特征圖均經過SE模塊進行特征優化,故在7~14層間輸出特征圖維度為384的模塊后接入SE模塊。另一方面,為了將低層特征與包含強語義信息的更高層特征圖進行跨接融合,以增強網絡的特征提取能力,確定在7~14層間將SE模塊嵌入至引出了低層跨接線(圖11中淺藍色跨接線)的第10層BottleneckCSP-B模塊之后的第11層。
SE模塊的輸入與輸出特征圖的維度是相同的。在將該模塊嵌入YOLOv5m骨干網絡時,需要確保設置其輸入特征圖維度值與上一層模塊的輸出特征圖維度值相同。由于本研究是在改進YOLOv5m骨干網絡的第5、7、11和14層分別嵌入SE模塊,根據嵌入位置前一模塊的輸出特征圖維度尺寸,將各嵌入SE模塊的輸入特征圖維度值分別設置為192、192、384、768。
融合不同尺度的特征是提高目標檢測網絡識別性能的一個重要手段。特征融合是將從不同圖像中提取到的特征合成更具判別能力的特征圖。低層特征圖的分辨率較高,包含較多的目標物位置與細節信息,但由于卷積層對其特征進行提取較少,因而特征圖的語義性較低,所含噪聲較多。而高層特征圖具有較強的語義信息,但其分辨率較低,對圖像中細節的感知能力較差。因此,對高層與低層特征進行有效融合,是改善模型檢測性能的關鍵。
基于2.2節和2.3節中對YOLOv5m架構骨干網絡的改進設計,結合改進后網絡各層輸出特征圖的尺寸,將原YOLOv5m架構的第5層與第17層(圖4中紅色跨接線)、第7層與第13層(圖4中淺藍色跨接線)、第11層與第23層(圖4中黑色跨接線)融合,分別更改為本研究所設計網絡的第7層與第21層(圖11中紅色跨接線)、第10層與第17層(圖11中淺藍色跨接線)、第15層與第27層(圖11中黑色跨接線)融合。
另一方面,經過對所獲取的蘋果樹圖像進行分析,相對于整幅圖像,所需識別的蘋果目標大部分屬于中等尺寸。由于所改進設計網絡架構的第25層輸出特征圖是作為中等尺寸目標檢測層的輸入,因此,為提升對當前種植行蘋果目標的檢測精度,彌補高層特征因其自身的低分辨率所導致的空間信息的損失,對原YOLOv5m架構中輸入中等尺寸目標檢測層的特征圖的跨接融合(第15層與第20層融合,見圖4中粉紅色跨接線)進行改進,將低層感受野更大的特征提取層的輸出與中等尺寸目標檢測層之前的特征提取層輸出進行融合,即將改進網絡的第16層與第23層的輸出特征圖融合(圖11中粉紅色跨接線)。改進設計的蘋果采摘方式識別網絡架構如圖11所示。
YOLOv5m架構針對輸入多尺度檢測層用于識別小、中、大目標物的3種尺寸特征圖(80×80、40×40、20×20)各設置了3種初始檢測錨框尺寸,分別為:10×13、16×30、33×23;30×61、62×45、59×119;116×90、156×198、373×326。
對于機器人視覺系統所獲取的蘋果樹圖像,由于處在圖像里較遠處種植行中的蘋果與采摘機器人間的距離過大,因此并不能將其作為有效的待識別/采摘目標。為了避免對圖像中較遠種植行小蘋果的識別并提高對機器人所處的當前果樹種植行蘋果目標的識別準確率,在對所獲取圖像中當前種植行里的小、中、大蘋果的尺寸以及圖像中較遠種植行小蘋果的尺寸及圖像尺寸進行綜合分析的基礎上,對原YOLOv5m網絡中的小、中尺度目標檢測層的初始錨框尺寸進行了改進設計,分別修改為80×70、75×75、85×100;95×110、130×110、115×125。以期實現圖像里當前種植行果實目標的準確識別。
YOLOv5網絡的損失函數L主要由回歸框預測損失Lloc、置信度損失Lconf與目標分類損失Lclass組成,計算公式為
L=Lconf+Lclass+Lloc
(1)
其中,置信度損失和目標分類損失采用二進制交叉熵損失函數(BCELoss),計算公式為

(2)
式中,BCELoss表示BCE損失函數,p′表示樣本的預測值,y表示樣本的真實類別,y=1表示屬于該類目標,y=0則表示不屬于該類目標。
回歸框預測損失采用的是GIoU Loss函數。GIoU loss不僅考慮到了真實框與預測框的重疊區域,還關注了非重疊區域。這樣能較好地反映兩框之間的距離,因而目標框的回歸會更加穩定,避免了使用IOU進行模型訓練時出現的目標框回歸發散問題。
3.1.1訓練平臺
基于聯想Legion Y7000P型計算機(Intel(R)Core(TM)i7-9750H CPU,2.6 GHz,16 GB內存;NVIDIA GeForce RTX 2060 GPU,6 GB顯存),在Windows 10操作系統下搭建了Pytorch深度學習框架,使用Python語言編寫程序并調用CUDA、Cudnn和OpenCV等所需的庫,實現了對面向采摘機器人的果實采摘方式識別模型的訓練和測試。
采用隨機梯度下降法(SGD)以端到端的聯合方式訓練所改進設計的YOLOv5m網絡。模型訓練時采用4個樣本作為一個批處理單元(Batch size),每次更新權值時使用BN層進行正則化,動量因子(Momentum)設置為0.937,權值衰減率(Decay)設置為0.000 5,初始學習率設置為0.01,IOU閾值設置為0.01,色調(H)、飽和度(S)與明度(V)的增強系數分別設置為0.015、0.7和0.4,共訓練300輪(Epochs)。模型訓練結束后保存所得到的權重文件,在測試集上對識別模型的性能進行評估。在經過非極大值抑制(Non-maximum suppression,NMS)等后處理操作消除了大量冗余的預測框后,網絡的最終輸出為置信度得分最高的蘋果采摘方式預測類別,并返回果實位置預測框的坐標。
3.1.2訓練結果
網絡訓練的損失(Loss)曲線見圖12,由圖12可知,網絡在前50輪訓練時,損失值快速下降,訓練250輪之后,損失值基本趨于穩定。因此本研究將訓練300輪結束后輸出的模型確定為面向采摘機器人的蘋果采摘方式識別模型。

圖12 網絡訓練損失曲線Fig.12 Network training loss curve
3.2.1蘋果采摘方式識別性能評價指標
采用準確率(P)、召回率(R)、平均精度(Average precision,AP)、平均精度均值(mAP)和F1值(F1 Score)客觀評判標準來評估所訓練出的模型針對蘋果采摘方式的識別性能。
3.2.2最優模型和預測類別閾值確定
識別模型在預測出目標所屬類別的置信度之后需要依據預設的閾值對預測框進行篩選。基于同一個識別模型使用不同的置信度閾值進行預測,其識別結果的準確率和召回率是不同的。
若識別模型的置信度閾值選擇不合適,會出現如圖13所示的預測結果:置信度閾值設置過低時會誤將圖像中較遠種植行的小蘋果識別出來(圖13a中的黃色橢圓標識),閾值設置過高時可能會漏掉當前種植行中的蘋果目標(圖13b中的黃色橢圓標識)。因此,需要結合具體的識別任務為模型確定合適的置信度閾值,以準確地篩選出需要識別的蘋果目標。

圖13 預測類別閾值對識別結果的影響Fig.13 Impact of confidence threshold on recognition result
基于訓練所得的蘋果采摘方式識別模型,通過調整置信度閾值,比較衡量模型在不同閾值下對測試集共344幅蘋果樹圖像中的6類果實目標識別的準確率、召回率和mAP的變化,結合采摘機器人果實采摘方式識別任務的實際需求,確定模型的最佳預測類別閾值。經試驗測試,不同置信度閾值下模型的識別準確率、召回率、mAP曲線如圖14所示。

圖14 不同置信度閾值下模型性能變化曲線Fig.14 Changes of performance of model with different confidence thresholds
對于面向采摘機器人的蘋果采摘方式識別,需要對當前種植行(即采摘機械手可抓取范圍內)中的果實進行識別,同時排除較遠處他行蘋果樹上果實的干擾,因而在模型識別的準確率和召回率之間需要優先考慮準確率。另一方面,在選擇閾值時需要輔助參考用于評估模型綜合性能的指標mAP,因其能同時兼顧準確率和召回率。
由圖14可知,當置信度閾值小于0.5時,模型的識別準確率較低,不足80%;當置信度閾值高于0.5時,識別模型的mAP降低至80%以下;因而綜合考慮模型的識別準確率與mAP,當置信度閾值為0.5時,模型的性能表現最好,此時模型識別的準確率、召回率、mAP分別為81.0%、85.9%和80.7%。
為了驗證所設計的蘋果采摘方式識別模型的性能,對該模型在測試集圖像上的識別結果進行進一步分析。344幅測試集圖像中共有6 536個蘋果目標,其中可直接采摘果實目標數量為1 952個,不可采摘果實目標數量為1 202個,上、下、左、右側采摘果實的數量分別為658、909、950、865個。
模型的具體識別結果如表2所示,可以看出,針對可直接采摘果實、不可采摘果實和上、下、左、右側采摘果實,本文所提出的模型對其識別的AP及F1值分別為91.6%、90.0%,68.9%、73.5%,73.2%、82.5%,82.4%、83.3%,84.5%、84.3%,83.4%、84.3%。總體的識別準確率、召回率、mAP(6類蘋果采摘方式的平均精度)及F1值均在80%以上,分別為81.0%、85.9%、80.7%和83.4%,基本滿足蘋果采摘方式識別精度要求。

表2 基于改進YOLOv5m網絡的蘋果采摘方式識別結果Tab.2 Recognition results of apple picking pattern using improved YOLOv5m network
本文所提出的模型對不同天氣與光照條件下的6種蘋果采摘方式的識別結果示例如圖15所示。其中,所識別出的不可采摘、可直接采摘和上、下、左、右側采摘果實分別使用黃色、綠色和藍色、粉色、深藍色、紅色框標識。由圖15可以看出,所提出的識別模型不僅適用于陰天采集的光照均勻的圖像,也適用于晴天光照條件下采集的圖像,且對于順光、側光及逆光條件下的圖像均能較好地識別出不同蘋果采摘方式。

圖15 基于改進YOLOv5m的蘋果采摘方式識別示例Fig.15 Recognition examples of apple picking pattern using improved YOLOv5m
為了進一步分析所提出的蘋果采摘方式識別算法的性能,將改進的YOLOv5m網絡與原YOLOv5m、YOLOv3、EfficientDet-D0網絡在測試集圖像上進行了識別結果對比。以mAP、平均識別速度等作為評價指標,各網絡模型的識別結果、模型體積(占用存儲空間量)及參數數量如表3所示。

表3 不同目標檢測網絡識別性能對比Tab.3 Performance comparison of various target detection networks
由表3可以看出,本文提出的改進YOLOv5m識別模型的mAP最高,與原YOLOv5m網絡相比提高了5.4個百分點,與YOLOv3、EfficientDet-D0網絡相比分別高出了22、20.6個百分點。針對模型的識別速度,本文提出的改進YOLOv5m識別模型在測試集上單幅圖像平均識別時間可達0.025 s(40 f/s),能夠滿足蘋果采摘方式實時識別的要求,分別為EfficientDet-D0與YOLOv3網絡識別時間的62.5%與47.17%。另一方面,由表3可以看出,本文所提出識別模型的體積為37 MB,為原始YOLOv5m模型的89.59%。說明所提出的網絡在保證識別精度的同時,有效地實現了網絡的輕量化。
綜上,本文提出的模型在4種網絡模型中具有最高的mAP。所提出模型的識別速度明顯優于EfficientDet-D0與YOLOv3網絡,雖然略低于原始的YOLOv5m網絡,但識別平均幀率可達40 f/s,能夠滿足蘋果采摘方式實時識別的需求。
4種模型分別針對陰天與晴天條件下的蘋果采摘方式識別結果如圖16所示,可以看出,本文提出的改進YOLOv5m網絡的識別結果較準確,無誤識與漏識現象。

圖16 4種網絡模型的蘋果采摘方式識別結果Fig.16 Apple picking pattern recognition results of four network models
針對陰天條件下的蘋果采摘方式識別:EfficientDet-D0網絡的識別結果較準確,無漏識與誤識現象;YOLOv3網絡的識別結果中出現了漏識別(圖16d陰天圖像中白色橢圓標識)和將右側采摘果實識別為不可采摘果實的誤識別現象(圖16d陰天圖像中黑色橢圓標識);YOLOv5m網絡對當前種植行中蘋果采摘方式的識別結果雖然較準確,但卻過度識別了較多較遠種植行中的蘋果(如圖16b陰天圖像)。
針對晴天條件下的蘋果采摘方式識別:YOLOv5m網絡出現了將右側、下側采摘果實誤識別為不可采摘果實的現象(圖16b晴天圖像中黑色橢圓標識);EfficientDet-D0網絡和YOLOv3網絡均出現了漏識別現象(圖16c晴天圖像、圖16d晴天圖像中白色橢圓標識)和將不可采摘果實誤識別為可采摘果實的現象(圖16c晴天圖像、圖16d晴天圖像中黑色橢圓標識)。其中,EfficientDet-D0網絡還出現了將右側、上側采摘果實誤識別為不可采摘果實的現象,YOLO v3網絡還出現將不可采摘、右側采摘果實誤識別為左側采摘果實的現象(圖16c晴天圖像、圖16d晴天圖像中黑色橢圓標識)。
現有的蘋果識別算法大多將蘋果樹上各種情況下的果實作為一類目標進行識別,對蘋果目標多分類識別的研究較少。GAO等[17]將Faster R-CNN網絡用于識別蘋果樹上不同條件下的共4類蘋果目標,包括無遮擋、樹葉遮擋、樹枝/線遮擋和果實遮擋的蘋果。YAN等[6]將YOLOv5s網絡用于蘋果識別中,將不同條件下的果實劃分為可采摘(未被遮擋或僅被樹葉遮擋的果實)與不可采摘(被樹枝干或被其他蘋果遮擋的果實)兩類。為了驗證所提出算法的識別性能,將本文算法與上述蘋果檢測算法的識別結果進行了比較,對比結果見表4。
由表4可以看出,YAN等[6]所提出的算法雖然在總體識別mAP與識別速度上優于本研究提出的算法,可以識別出被樹枝干遮擋的蘋果目標,以引導機器人避開對這些果實的采摘,但該算法卻無法從視覺上引導機器人采摘被樹枝干遮擋的蘋果,從而導致一部分果實的漏采。而針對蘋果采摘機器人,若根據蘋果被枝干遮擋的不同情形而相應地改變機械手的采摘位姿,則可以實現對被枝干遮擋蘋果的采摘。而本文所提出的識別方法實現了對不同蘋果采摘方式的識別,從而可為機械手主動調整位姿以避開枝干對蘋果的遮擋進行果實采摘提供視覺引導。

表4 與其他多分類蘋果目標識別算法對比Tab.4 Performance comparison with multi-class recognition method for apple
另一方面,GAO等[17]所提出的算法也無法從視覺上引導機器人采摘被樹枝干遮擋的蘋果。該算法識別4類蘋果的總體mAP為87.9%,比本文所提出識別方法的mAP(80.7%)高7.2個百分點。但該文識別模型的體積較龐大,權重文件達到了512 MB,而本文所提出的輕量化識別模型的體積為37 MB,僅為該文模型的7.23%,體積的輕量化有利于后期將模型部署在硬件設備中。另外,模型的識別速度對于機器人的采摘效率具有重要影響,該文模型的單幀圖像識別時間為0.241 s(幀率為4.15 f/s),而本文模型的單幀圖像識別時間僅為0.025 s(幀率為40 f/s),為該文模型識別速度的9.64倍,能夠滿足果實目標實時識別的需求。
(1)針對現有識別算法無法區分枝干單側遮擋(即枝干遮擋蘋果的上、下、左、右側)、多側遮擋情形下蘋果目標的問題,提出了一種基于改進YOLOv5m面向采摘機器人的蘋果采摘方式實時識別方法,實現了對蘋果樹上不同果實采摘方式的識別,從而可為機械手主動調整位姿以避開樹枝干的遮擋進行果實采摘提供視覺引導,以降低蘋果的采摘損失。
(2)改進設計了BottleneckCSP-B特征提取模塊并替換原YOLOv5m骨干網絡中的BottleneckCSP模塊,實現了原模塊對圖像深層特征提取能力的增強與骨干網絡的輕量化改進;將SE模塊嵌入到所改進設計的骨干網絡中,更好地提取了不同蘋果目標的特征;改進了原YOLOv5m架構中輸入中等尺寸目標檢測層的特征圖跨接融合方式與網絡的初始錨框尺寸,提升了當前種植行蘋果目標的識別精度,避免了對圖像里較遠種植行蘋果的識別。
(3)所提出的改進網絡模型可有效實現對圖像中可直接采摘、迂回采摘(蘋果的上、下、左、右側采摘)和不可采摘果實的識別,測試集試驗結果表明,識別召回率為85.9%,準確率為81.0%,mAP為80.7%,F1值為83.4%,單幅(幀)圖像平均識別時間為0.025 s。
(4)對比了所提出的改進YOLOv5m算法與原始YOLOv5m、YOLOv3和EfficientDet-D0算法在測試集圖像上對6類蘋果目標的識別效果,結果表明,所提出的改進算法與其他3種算法相比,識別的mAP分別高出了5.4、22、20.6個百分點。改進模型的體積壓縮至原YOLOv5m模型的89.6%。