宋懷波 尚鈺瑩 何東健
(1.西北農林科技大學機械與電子工程學院, 陜西楊凌 712100;2.農業農村部農業物聯網重點實驗室, 陜西楊凌 712100)
隨著水果種植產業的迅速發展及勞動力資源的日益緊缺,開發智能化、自動化農業智能裝備的需求在不斷增加,果實采摘機器人已成為農業發展的重要方向[1]。利用機器人進行采摘作業不僅可以提高采摘效率且降低了勞動成本,有利于提高果農的經濟效益[2]。實現自然場景下果實的準確識別與定位,可為果實采摘機器人的視覺系統提供關鍵的技術支持[3-4]。利用機器視覺技術對果實目標進行檢測,對于果實的生長監測、產量預測[5-6]、果實分揀等任務也具有重要意義,是實施精準農業技術的重要步驟之一[7]。本文以果實采摘為例,對果實目標識別技術研究成果進行綜述。
果實目標識別方法主要包括基于手工設計特征的傳統識別方法和基于卷積神經網絡(Convolutional neural network, CNN)的深度學習方法兩種。傳統目標檢測算法主要包括區域選擇、特征提取和分類3個步驟。傳統目標檢測算法相對成熟,然而,在復雜的自然場景下,果實目標檢測任務仍存在難點:果實種類以及外觀形態具有多樣性;光照條件變化;復雜天氣情況;復雜背景影響等。這些問題使得手工設計特征的過程更加復雜[8-9],且傳統的目標檢測算法存在檢測精度較低、檢測速度較慢、模型實時性較差、普適性不強等缺點,應用傳統目標檢測算法進行果實目標檢測難以滿足果實采摘機器人的實際作業要求。基于深度學習的果實目標檢測模型是一種端到端的檢測模型,可將目標的特征提取、特征選擇和特征分類融合在同一模型中[10]。深度學習模型具有高度的層次結構和強大的學習能力[11],在復雜視覺信息與目標感知融合方面具有獨特優勢[12]。
雖然深度學習技術在果實目標識別方面取得了很好的效果和進展,然而距離實際作業應用還有一定的距離。如圖1所示,本文對蘋果、番茄、柑橘等28種果實的相關識別研究成果進行檢索(圖中沒有標注數量的均為1),并以此為基礎總結歸納國內外果實目標識別的研究進展、關鍵技術,分析果實目標識別任務存在的問題和面臨的挑戰,并對未來發展趨勢進行展望,以期為果實目標識別任務的后續研究提供參考。

圖1 引文中涉及到的果實種類及數量Fig.1 Species and quantity of fruit involved in citation
傳統的果實目標識別方法是基于顏色、幾何形狀、紋理等特征對果實目標進行分類、檢測和分割[13]?;陬伾卣鞯墓麑嵞繕俗R別方法主要通過選取合適的顏色模型,利用果實目標與背景區域的像素顏色特征差異,將果實目標與背景分開。利用YCbCr顏色模型對荔枝圖像進行閾值分割,去除復雜背景,可實現荔枝果實與果梗的識別,綜合識別率為95.50%[14]?;跉w一化紅綠色差的蘋果分割方法可實現紅色蘋果與綠色背景的分割,然而當果實目標的顏色與背景顏色相似時,僅利用簡單的顏色特征進行果實目標分割難以取得較好的效果[3]。以歸一化的g分量和HSV顏色空間中H、S分量為特征參數的支持向量機(Support vector machine, SVM)分類器和以超綠算子(2G-R-B)為特征的閾值分類器,設計一種用于近色背景中綠色蘋果目標識別的混合分類器,該方法平均識別正確率為89.30%[15]。
當果實目標與背景的顏色特征較為接近,或者光照條件對果實顏色的影響較大時,相比于顏色特征,利用果實與背景之間的形狀和紋理特征的差異可以取得更好的分割效果。利用顏色、形狀和紋理特征可識別自然環境中的綠色柑橘,其正確率為75.30%[16]?;谶吘壡史治龅闹丿B番茄識別方法對輕微遮擋的重疊番茄識別正確率為90.90%,對遮擋率在25%~50%之間的番茄目標的識別正確率為76.90%[17]。利用檸檬、柑橘等水果近球形的形態特征,結合其深度圖像,實現對果實中心點的定位及果實圖像的分割,可解決光照和近景色所造成的識別精度較低的問題[18]。
隨著傳統目標檢測算法的不斷發展,手工設計特征的算法性能逐漸趨于飽和[19],然而,傳統目標檢測算法仍存在以下局限性:在生成候選區域的過程易產生大量冗余區域;在復雜背景下,基于低級視覺線索設計的特征描述符較難提取具有代表性的語義信息[20]。所以,對于復雜場景下的果實目標檢測,例如:背景較為復雜、目標之間存在嚴重遮擋、光照不均等情況,傳統果實目標檢測算法已不能滿足需求,且傳統目標檢測算法在檢測速度和模型大小方面均難以滿足果實采摘機器人的要求,因此,基于傳統方法的果實目標識別技術較難推廣到實際應用領域。
深度學習是一種具有多層次表征的學習方法[21],深度學習方法通過引入多層感知器結構,利用低級特征形成高級特征,用于最終的目標檢測任務[1]。與傳統的目標檢測算法相比,深度學習在圖像分類、目標檢測和識別方面優勢明顯。由于自然場景下的果實目標具有空間分布隨機、存在重疊遮擋、形狀多樣等非結構化特征,而深度卷積網絡可以自動從訓練數據中學習特征。因此,深度學習方法可以在復雜的自然場景下表現出更加強大的果實目標識別能力。根據檢測組件和目標區域的識別結果,深度學習模型可以分為分類檢測模型和分割模型。如圖2a、2b所示,分類檢測模型包括圖像分類和目標檢測,目標檢測的輸出是目標類別及其邊界框的區域,目標檢測任務在完成圖像分類任務的同時利用邊界框反映目標的位置信息。圖像分割是指根據圖像屬性與目標圖像的一致性,對特征相對一致的目標圖像進行分割,使同一子區域的特征具有一定的相似性和差異性[22]。分割模型需要精確的像素級掩碼進行目標分割[12]。如圖2c、2d所示,分割模型主要包括語義分割和實例分割,語義分割為每個像素分配特定的類別標簽,但并不區分同一類別的多個對象,實例分割為每個目標分配單獨的分類像素級掩碼,可以區分同一類別的不同目標。學者們對于果實目標檢測和分割的研究大多是基于在目標識別領域表現較好的網絡模型,根據不同果實目標生長的自然環境以及果實目標本身的特點,對網絡模型的輸入端、骨干網絡等結構進行改進,或是引入注意力機制、遷移學習、特征融合、密集連接等操作,以實現提高目標識別的效果,提高模型在復雜場景下的魯棒性,或是實現模型的輕量化等目標。
圖3為基于深度學習的果實目標識別及應用的基本步驟。首先是采集數據,通過對田間采集到的果實目標圖像進行處理分析,以實現不同場景下、不同品種、不同生長階段的果實目標識別任務。接著針對不同目標識別任務的特點進行數據預處理(數據集制備),該過程既包括利用圖像增強技術進行圖像的顏色、亮度、對比度等的調整,或對圖像進行旋轉、翻轉、裁剪等操作,使輸入到網絡中的圖像更適合于特定的目標識別任務或實現數據集規模的擴大,也包括對數據集進行標注,實現用于深度學習任務的標簽文件制作。根據訓練數據是否含有標簽信息,可將訓練過程分為監督學習、無監督學習和半監督學習3類。

圖3 果實目標識別的基本步驟Fig.3 Basic steps of fruit target recognition
基于深度學習的目標識別任務需要一定規模的數據集進行訓練,目前基于深度學習的果實目標檢測方法大多是基于監督學習,通過向網絡中輸入一定數量的圖像及其對應的標簽文件進行模型訓練,以提取目標的特征,實現目標識別任務。監督學習是解決分類和回歸問題的常用方法[23]。對于田間果實目標識別任務,訓練數據在一定程度上決定了目標檢測任務的效果,其規模取決于果實圖像的視覺復雜度和深度學習模型的種類。由于果實生長的田間環境較為復雜多變,該環境下采集到的果實目標可能存在遮擋、光照不均、果實目標大小不一、顏色變化等情況,網絡的特征提取過程相對困難,因此需要較大規模的數據。對于網絡結構較復雜、層數較深的網絡,其精確度較高,然而也需要大量的訓練數據[24],且對于不同品種果實的檢測任務,都需制定合適的標注策略。
基于監督學習的數據標注過程耗時耗力,效率低下,且對某些特定的識別任務,數據標注過程需要相關專家提供指導。因此如何更有效地標記數據并使用更少的樣本進行有效學習是目前該領域的關鍵問題。利用中小型數據進行半監督學習以獲得高精度的結果,為此類研究提供了借鑒,半監督學習的訓練數據中僅部分圖像有對應的標簽,且帶標簽的數據所占比例較小,通過從帶標簽的數據中提取到的局部特征進行圖像分類[25]。
無監督學習可以完全脫離數據集標注過程,模型僅利用圖像作為訓練數據,其通過學習數據的結構,并從數據中提取可區分的信息或特征,將輸入映射到特定輸出[26]。聚類是最基本的無監督學習之一,其目標是將數據分成相似數據點的聚類[27]。因此,無監督學習在圖像分割領域應用較多。盡管如此,監督學習仍然是目前的主流方法,關于半監督學習和無監督學習的研究相對較少。
目標檢測任務可以分為目標定位和目標分類。隨著計算機算力的提升和數據規模的不斷擴大,基于深度卷積神經網絡(Deep convolutional neural network, DCNN)的目標檢測技術逐漸得到發展。自AlexNet[28]應用于圖像分類任務并贏得ILSVRC-2012比賽冠軍以來,諸多學者開始致力于DCNN的研究和應用。圖4為基于深度學習的目標檢測算法的發展歷程,圖中橙色箭頭表示無錨框目標檢測算法。基于深度學習的目標檢測主要分為兩大類:兩階段檢測和單階段檢測。兩階段目標檢測將目標定位和目標分類任務分離開,首先生成候選區域,再對區域進行分類。其代表算法有R-CNN[29]、SPPNet[30]、Fast R-CNN[31]、Faster R-CNN[32]等。單階段目標檢測省去了生成候選區域的過程,直接生成目標的類概率和位置坐標,其過程比兩階段目標檢測簡單。單階段目標檢測的代表算法有SSD系列、YOLO系列等。

圖4 基于深度學習的目標檢測算法發展歷程Fig.4 Development of object detection algorithm based on deep learning
2.2.1兩階段果實目標檢測方法
兩階段檢測方法又稱為基于候選區域的檢測方法。將傳統的機器學習方法與CNN相結合,提出一種基于R-CNN的檢測框架,通過選擇性搜索獲得盡可能多的候選區域,利用CNN代替人工提取區域的特征并使用SVM進行分類。SPPNet引入自適應大小的池化,其運行速度比R-CNN更快。Fast R-CNN利用興趣池化區域(Region of interest Pooling, RoI Pooling)層代替空間金字塔池化(Spatial pyramid pooling, SPP)層,加快了模型的速度。由于SPPNet和Fast R-CNN生成的候選區域數量過多,導致了大量的計算消耗,因此其應用場景受到了限制。一種區域生成網絡(Region proposal network, RPN)方法用于生成候選區域,其輸入為骨干網絡輸出的特征圖,輸出為一組矩形的候選區域,且每個區域均有一個目標得分[33]。
Faster R-CNN模型用RPN取代Fast R-CNN中的選擇性搜索,且通過網絡共享的方式生成候選區域,利用Softmax分類器完成訓練和學習過程,其檢測性能有了大幅提高,被廣泛地應用于目標檢測任務。Faster R-CNN算法由特征提取器、RPN和Fast R-CNN模塊構成。首先對輸入網絡中的圖像進行特征提取,再將提取到的特征輸入RPN和Fast R-CNN,生成建議矩形框。如文獻[7,33],利用Faster R-CNN模型可實現自然場景下的柑橘果實和芒果花穗的檢測,然而其mAP均相對較低,檢測效果不理想。
利用遷移學習的模型對Faster R-CNN的模型結構進行改進,可以提高模型的泛化性能和檢測精度。如文獻[34],利用遷移學習訓練基于Faster R-CNN的柑橘目標識別模型,可有效降低訓練模型的平均損失,且模型平均準確率較高。文獻[35]利用遷移學習微調的AlexNet網絡替換Faster R-CNN原始的特征提取層,可解決廣域復雜環境中的獼猴桃因枝葉遮擋或部分果實重疊遮擋所導致的識別精度較低的問題。
為了提高檢測準確率,降低目標的漏檢率,同時提高模型在目標存在遮擋、目標形態和大小存在差異等復雜場景下的魯棒性,一些學者對Faster R-CNN算法進行了改進?;跀祿胶膺M行數據擴增,可解決Faster R-CNN模型檢測不同成熟度冬棗的樣本數量相差懸殊導致的識別率較低的問題[36]。利用預訓練的VGG16網絡替換Faster R-CNN原始的特征提取層,并改進RPN的結構,可提高模型對在體青皮核桃和蘋果果實的檢測精度的漏檢率[37-38]。將興趣區域校準引入Faster R-CNN框架,可提高Faster R-CNN模型對不同形態刺梨的檢測精度[39]。融合RGB圖像和深度信息,并融合全局和局部信息,可提高Faster R-CNN對小目標百香果的檢測效果[40]。
用于目標檢測的基于區域的全卷積網絡(Region-based fully convolutional networks, R-FCN),由共享的全卷積網絡構成,可實現整個圖像上的共享計算,有效減少了參數冗余,并引入位置敏感分數圖解決了圖像分類中的平移不變性與目標檢測中的平移可變性間的矛盾,該模型具有較快的訓練和檢測速度[41]。利用ResNet-44替換R-FCN的原始特征提取網絡,可有效識別重疊、枝葉遮擋、模糊及表面有陰影的蘋果目標,并簡化網絡結構[42]。兩階段果實目標檢測算法的相關研究成果如表1所示。

表1 基于兩階段算法的果實目標識別研究成果Tab.1 Research on fruit target recognition based on two-stage algorithm
2.2.2單階段果實目標檢測方法
雖然兩階段目標檢測算法的檢測精度較高,但其參數數量和計算量較大,檢測速度較慢,難以完成實時檢測任務,影響了采摘機器人的工作效率。
表2列出了基于單階段目標檢測算法的果實目標識別研究成果。單階段目標檢測算法又稱為基于回歸的檢測方法。LIU等[17]提出了一種利用單個深度網絡進行目標檢測的SSD模型,其核心是利用小型卷積濾波器進行多尺度特征映射,生成并預測固定的默認邊界框的類別得分和偏移量。由于SSD模型實現了端對端的訓練,其具有易于訓練和集成的優點,與兩階段檢測方法相比,SSD基本實現了檢測速度與精度的相對平衡,因此被廣泛地應用于果實目標檢測任務。利用ResNet-101模型替換SSD的原始主干網絡,可實現蘋果、荔枝等4種水果的識別,且該模型的檢測精度高于原始SSD模型[43]。SSD模型采用特征金字塔來檢測不同尺度的目標,然而由淺層網絡生成的小目標特征缺乏足夠的語義信息,導致其對小目標的檢測性能較差。FSSD[78]是一種增加了特征融合的SSD模型,該模型在傳統SSD的基礎上增加一個輕量級、高效的特征融合模塊,對不同比例的特征圖進行融合,以提升對小目標的檢測性能?;诟倪M的輕量化FSSD模型可實現靈武長棗的檢測,該方法可為靈武長棗的智能化采摘提供一定的技術支持[44]。基于多重特征增強與特征融合的MFEFF-SSD模型可實現無人機拍攝圖像中小目標荔枝的檢測,然而該方法存在誤檢和漏檢的情況[45]?;诟倪MFSSD的柚子目標檢測模型可有效改善綠葉被誤檢為膨大期柚子果實的情況[46]。

表2 基于單階段算法的果實目標識別研究成果Tab.2 Research on fruit target recognition based on one-stage algorithm

續表2
YOLO(You only look once)是REDMON等[79]在2015年提出的一種目標檢測算法,它是深度學習時期的第一個單階段目標檢測算法。YOLO將目標檢測任務看作單一的回歸問題,僅用單個網絡便可實現多個邊界框的位置和類別預測。YOLO檢測速度快,對背景的誤檢率較低,且泛化性能較好,然而,YOLO算法存在以下局限性:YOLO的每個網格只能有兩個預測框并預測一個類別,因此其對小目標的檢測性能較差;YOLO從大量的訓練數據中提取目標的特征,若測試數據中目標的長寬比與訓練數據有較大不同,則網絡檢測效果欠佳;損失函數無差別地處理大小邊界框的誤差,大邊界框的誤差和小邊界框的誤差對交并比(Intersection over union, IoU)的影響差異較大。
YOLOv2[80]在YOLO的基礎上對損失函數、骨干網絡等進行改進,同時引入了錨點框、批量歸一化、高分辨率分類器等結構,YOLOv2在檢測速度、準確率等方面均有較大提升?;赮OLOv2可實現綠色芒果的檢測,在圖像中包含的芒果數量較多或者光線較暗的情況下,其檢測效果不理想[47]。對于存在遮擋或重疊的目標,YOLOv2的檢測效果有待提高。采用帶密集連接的Tiny-yolo-dense作為YOLOv2的主干網絡,可提高YOLOv2芒果檢測模型在重疊遮擋場景下的性能,然而該方法需要復雜的前景區域標注過程[48]。
YOLOv3[81]引入了特征金字塔網絡(Feature pyramid network, FPN)[82]和ResNet[83]結構,同時采用DarkNet53作為骨干網絡,增加了多尺度預測結構,使網絡的檢測精度得到了提升。利用YOLOv3可實現復雜環境中草莓和荔枝的檢測,然而該方法的效果受到光照強度的影響。由于果實生長的自然環境較為復雜,枝葉和果實間的遮擋、復雜的光照情況等為果實目標的準確檢測帶來困難,針對復雜場景中的果實目標檢測以及小目標果實的檢測,YOLOv3的檢測性能尚需提高,對YOLOv3模型進行改進可以提高模型在復雜環境下的識別效果。利用YOLOv3-SE網絡模型可實現枝葉遮擋、果實密集重疊等復雜場景下的冬棗識別[51]。為實現柑橘采摘機器人的識別定位,在YOLOv3模型中增加最大池化層可增強模型對采摘場景的理解,提高柑橘目標識別的準確率[52]。如文獻[53-56],利用DenseNet、CSPNet和SPP模塊等對YOLOv3的骨干網絡進行改進,可提高其在夜間環境、遮擋目標和小目標等復雜場景下的檢測性能。由于DarkNet53的網絡層數過多,導致網絡的運算量較大,檢測速度較慢,對于一些場景較為簡單的果實目標檢測任務,可以通過簡化網絡層數以減小模型復雜度并提高檢測速度。如文獻[57-58],通過精簡YOLOv3的骨干網絡,可簡化目標檢測的特征圖尺度,實現模型的輕量化,且模型在檢測速度和準確率方面均有顯著提高。
YOLOv4的輸入端引入了Mosaic數據增強操作,其骨干網絡在DarkNet53的基礎上融合了CSPNet,采用SPP和FPN+路徑聚合網絡(Path aggregation network, PAN)作為瓶頸結構,并采用CIoU_loss作為預測端的損失函數[84],與YOLOv3相比,其檢測速度和準確率都有了較大提升。利用YOLOv4可實現自然場景下蘋果、油桃、黃杏、李子及香蕉串檢測[59-60]。為提高YOLOv4網絡在復雜場景下的果實識別效果,一些學者將顏色空間模型、殘差神經網絡、遞歸特征金字塔和視覺注意機制等與YOLOv4網絡相結合,在一定程度上提高了模型的檢測性能?;赮OLOv4+HSV的成熟番茄識別方法可解決遮擋和光照不均引起的番茄目標誤識別的問題[61]。一種融合殘差神經網絡和YOLOv4的番茄檢測方法可解決自然環境中光照變化、背景干擾和葉片遮擋等因素對番茄采摘機器人的檢測精度的影響[62]。一種基于特征遞歸融合YOLOv4網絡的FR-YOLOv4檢測模型可實現自然場景下密集分布的小目標春見柑橘的檢測和計數[63]。如文獻[64-66],將SE模塊、CBAM視覺注意機制等與YOLOv4模型相結合,可實現低質量蘋果幼果、不同顏色和品種的蘋果果實檢測。
YOLOv4-Tiny對YOLOv4的網絡結構進行了精簡,YOLOv4-Tiny采用CSPDarkNet53-Tiny作為骨干網絡,并將YOLOv4中的Mish激活函數修改為Leaky_ReLU激活函數。YOLOv4-Tiny模型的參數量更少,網絡結構更簡單,且檢測速度更快[67]。利用CBAM視覺注意機制對YOLOv4-Tiny模型進行改進,可實現復雜環境下番茄和藍莓果實的快速識別,并有效解決遮擋、逆光和小目標識別準確率低的問題[67-68]。通過減少YOLOv4-Tiny草莓檢測模型的骨干網絡中CSPNet模塊的數量和精簡CSPNet的網絡結構,可進一步簡化模型,提高模型的檢測速度[69]。另一種簡化YOLOv4模型的方法是進行通道剪枝,其本質是通過識別網絡的通道來消除不重要的通道及其相關的輸入和輸出關系[85],簡化后的模型可以減少需要存儲的參數數量,并且具有較低的硬件要求,使其更易于部署在嵌入式設備和移動終端等小型計算平臺上[86]。利用通道剪枝的YOLOv4可實現自然場景下的蘋果花朵實時準確檢測,剪枝后模型的檢測精度基本不變,但模型的參數量和尺寸得到大幅壓縮,且檢測速度有較高的提升[70]。
YOLOv5的輸入端引入了自適應錨框計算,以適應不同尺寸的目標,YOLOv5的骨干網絡中引入了切片操作,并將CSPNet同時應用于骨干網絡和瓶頸網絡,YOLOv5的輸出端采用了GIoU_loss損失函數。YOLOv5包含5種體系結構,分別為YOLOv5-nano、YOLOv5s、YOLOv5m、YOLOv5l和YOLOv5x,其主要區別在于特征提取模塊和卷積核在網絡特定位置的數量不同。與YOLOv4相比,YOLOv5的檢測速度和精度都有較大的性能提升。如文獻[71-73],利用YOLOv5s目標檢測模型可以實現自然場景下的柑橘、蘋果花朵、油茶果的準確快速檢測,模型具有較好的魯棒性,且模型的尺寸較小,適用于模型遷移。通過優化YOLOv5的損失函數,可有效提高模型對于遮擋番茄目標的識別準確率[74]。對YOLOv5模型的骨干網絡進行簡化或引入視覺注意機制模型,可在一定程度上減小模型的尺寸并提高其目標識別的效果。利用Transformer模塊對YOLOv5的骨干網絡進行改進,并利用BiPFN改進其Neck結構,可提高櫻桃果實的識別準確率[75]。利用Bottleneck模塊對YOLOv5m的骨干網絡進行改進,并引入SE視覺注意機制模塊,可提高模型對蘋果目標的檢測速度和精度[76]。
2.2.3無錨框目標檢測算法
自從RPN提出以來,基于錨框的目標檢測算法已經成為目標檢測模型的主流,且取得了較好的檢測效果。然而,基于錨框的檢測器存在以下的缺點和局限性:為實現高召回率,基于錨框的檢測器需要設計各種尺度和形狀的錨框,以覆蓋圖像中不同尺度和形狀的物體,這些冗余的錨框在訓練時大多會被標記為負樣本,導致訓練中的正負樣本不均衡;錨框的尺寸、長寬比、數量等參數設置決定了檢測器的性能,因此錨框的設計過程較為復雜,且訓練結果可能受到人為經驗的影響;大量的錨框會增加整個檢測過程的計算成本。
為了克服基于錨框的檢測器的缺點,基于無錨框檢測器的目標檢測算法逐漸興起,無錨框檢測器不需預先設定錨框,直接對圖像進行目標檢測。YOLOv1是目標檢測領域最早的無錨框模型,它將目標檢測視為一個空間分離的邊界框和相關概率回歸問題,可直接從圖像中預測邊界框的位置和分類概率。該方法運算速度較快,但其召回率較低,且檢測精度不理想。如圖5所示,無錨框檢測可大致分為兩類:基于錨點檢測和基于關鍵點檢測[87]。錨點檢測器通過將真實框編碼為錨點,錨點是特征圖上的像素點,其位置與特征相關聯,其代表算法有CenterNet[88]、FCOS[89]、FoveaBox[90]等。關鍵點檢測器通過預測包圍盒中的幾個關鍵點的位置,如角點、中心或極值點,將關鍵點解碼到預測框中,其代表算法有CornerNet[91]、ExtremeNet[92]等。

圖5 無錨框檢測器分類Fig.5 Classification of anchor-free detector
表3列出了無錨框目標檢測算法的果實目標識別研究成果。對FCOS的骨干網絡和損失函數進行改進實現自然場景下的蘋果果實檢測,可在提高檢測性能的同時降低正負樣本比例失衡帶來的誤差[93]。利用殘差特征金字塔網絡對FCOS的骨干網絡進行改進,可實現光照變化和陰影重疊條件下的綠色蘋果識別[94]。改進FoveaBox模型的骨干網絡和特征提取網絡可以提高模型對不同規模的綠色蘋果的召回率[95]。利用Tiny Hourglass-24網絡對CenterNet的骨干網絡進行改進可實現密集場景下的多蘋果目標的快速識別,然而該方法對于重度遮擋和果實表面亮度較高的情景存在個別目標漏檢的情況[96]。利用改進的MobileNetv3作為CenterNet模型的骨干網絡實現蘋果目標的識別,可以在保證檢測精度的前提下減小模型的尺寸并提高其檢測速度[97]。

表3 基于無錨框算法的果實目標識別研究成果Tab.3 Research on fruit target recognition based on anchor-free algorithm
YOLOX[101]是YOLO的無錨框版本,其沿用了YOLOv4的特征提取網絡CSPDarknet和YOLOv5的Mosaic增強技術,并創新了解耦檢測頭、無錨框和SimOTA標簽分配策略[102],YOLOX模型的設計簡單,且性能更具優勢。利用YOLOX可實現冬棗的高精度檢測和計數[98]。通過改進YOLOX-S的激活函數和損失函數,并轉移淺層特征,可實現小目標獼猴桃的檢測,該方法在減小了模型參數量的同時提高了模型的檢測精度[99]。利用加入CBAM的輕量級網絡ShuffleNetv2對YOLOX-Tiny的骨干網絡進行改進,可實現對蘋果果實的高精度和實時性檢測[100]。
2.3.1基于深度學習的語義分割模型
語義分割是將圖像的每個像素分配給預定義類別集合中的相應類別標簽的任務,其目的是對圖像中的每一個像素點進行分類。用于目標識別的CNN網絡通常由卷積層、池化層和全連接層組成。然而,全連接層會損失目標的位置信息,因此CNN無法完成目標的分割任務。全卷積網絡(Full convolutional networks, FCN)[103]是基于深度學習的語義分割模型的重要成果,通過將CNN網絡中的全連接層替換為卷積層,得到全部由卷積層構成的FCN,與CNN相比,FCN可同時保留目標的位置信息和語義信息,可在像素層次上進行分類,完成目標分割任務。
RONNEBERGER等[104]提出的U-Net網絡被廣泛地應用于語義分割任務,U-Net包括編碼器和解碼器結構,編碼器網絡利用池化層進行下采樣操作,其作用是進行特征提取,解碼器網絡利用反卷積進行上采樣操作,編碼器部分與解碼器部分近似對稱,整體網絡呈“U”形結構。在上采樣的過程中,利用跳躍連接操作可以將該級的特征圖與編碼器結構中其對應位置的特征圖進行融合,使得解碼器能夠獲取更多高分辨率特征,有利于提高分割精度。利用U-Net可實現蘋果目標的分割,結果表明,當果實可以通過顏色區分時,傳統分割算法的效果優于U-Net,當測試集數據與訓練集相似時,U-Net的分割效果較好[105]。
CHEN等[106]結合深度卷積網絡和概率圖模型(DenseCRFs),提出了DeepLab語義分割模型,DeepLab以VGG-16為基礎網絡進行改進,首先將VGG-16的全連接層替換為卷積層,并移除原網絡的最后兩個池化層,使用空洞卷積進行上采樣,在擴大了感受野的同時減小了參數量。DeepLabv2[107]對DeepLab進行了改進,DeepLabv2以ResNet101模型作為基礎網絡,并引入帶有空洞卷積的空間金字塔結構(Atrous spatial pyramid pooling, ASPP),在多個尺度上進行圖像分割,可以處理不同尺度的目標,與DeepLab相比,DeepLabv2的分割精度有所提升。SUN等[108]利用DeepLab-ResNet實現了蘋果花、梨花和桃花的目標分割,該模型的平均F1值為80.90%。DeepLabv3[109]分別利用ResNet101和Xception作為骨干網絡,并將深度可分離卷積應用于ASPP結構,在保持性能的同時有效降低了模型的計算復雜度。利用ResNet和DenseNet結構對DeepLabv3的骨干網絡進行改進,可實現荔枝花朵的分割[110]。KANG等[111]提出了一種用于蘋果語義分割的DasNet網絡,該模型嘗試分別利用ResNet-50、ResNet-101和輕量化網絡LW-net0作為骨干網絡,利用門控特征金字塔網絡進行多級特征的融合,并采用ASPP增強目標的多尺度特征提取。結果表明,以ResNet-101為骨干網絡的DasNet模型在語義分割和目標檢測任務中表現最好,其檢測蘋果目標的F1值為83.20%,其分割蘋果目標的F1值為87.60%。
2.3.2基于深度學習的實例分割模型
實例分割是將語義標簽和實例標簽分配給所有像素,以分割對象實例,實例分割可以提供比語義分割更詳細的圖像信息,例如檢測對象的位置和數量。 其中Mask-R CNN為果實目標實例分割中最具代表性的算法。表4列出了利用基于深度學習的實例分割算法進行果實目標識別的研究成果。

表4 基于深度學習的實例分割算法的果實目標識別研究成果Tab.4 Research on fruit target recognition based on deep learning instance segmentation algorithm
HE等[122]提出了一種用于實例分割的Mask R-CNN網絡,該網絡通過在Faster R-CNN中添加一個用于預測目標掩碼的并行分支實現。在非結構化環境中,Mask R-CNN不僅能準確識別目標類別并用邊界框標出目標區域,還能在像素級別上從背景中提取目標區域。Mask R-CNN由3個階段組成,首先利用ResNet骨干網絡從輸入圖像中提取特征圖;其次,特征圖被輸入到RPN用以生成候選區域;最后,這些候選區域被映射到原始圖像中像素點對應的位置,以在共享特征映射中提取相應的目標特征,然后分別輸出到全連接層和FCN,用于目標分類和實例分割。
如文獻[112-115],基于Mask R-CNN可實現草莓果實、蘋果果實、葡萄串和柑橘類果實的目標分割,且該方法在復雜場景下具有較好的魯棒性。對于部分農業場景中數據量不足的問題,如文獻[116],利用遷移學習預訓練的Mask R-CNN模型可提高對自然場景下番茄果實的分割精度。如文獻[117-118],利用ResNet、DenseNet等網絡對Mask R-CNN的原始骨干網絡進行改進,可實現重疊、遮擋等情況下蘋果目標的精確分割。通過融合RGB圖像、深度圖像、紅外圖像等多源信息,對圖像的顏色、形狀空間位置等特征進行深度挖掘,可提高Mask R-CNN分割目標的準確率和魯棒性。如文獻[119-120],融合深度圖像或紅外圖像等多源信息作為Mask R-CNN的輸入,可提高模型對番茄果實的定位精度并提高模型的魯棒性。
基于DasNet語義分割模型,在其FPN結構中添加實例分割的分支,開發一種用于進行蘋果果實實例分割的DasNet-v2網絡[121],該模型在田間實地測試中表現出優良的性能。
自然場景下的果實目標識別任務存在遮擋、光照不均等一系列挑戰。為提高果實目標識別任務的精度,基于深度學習的果實目標識別網絡在不斷加深,以適應越來越復雜的目標檢測任務。然而,隨著網絡深度的加深,模型的參數量和計算復雜度也在不斷上升,模型大小和計算成本的爆炸性增長為模型在嵌入式設備上的部署帶來了新的挑戰[123-124]。目前,研究人員致力于研究輕量化的目標檢測網絡,以兼顧模型的移植部署、檢測速度和檢測精度,以期為果園采摘機器人的發展提供技術支持。
依據網絡的結構層次,可以將網絡的輕量化劃分為模型的輕量化設計和模型壓縮兩大類,圖6列出了常用輕量化模型和模型壓縮的方法。

圖6 網絡輕量化的常用方法Fig.6 Common method of network lightweight
模型壓縮是在原有模型的基礎上進行修改,而輕量化模型則是在設計模型時就遵從輕量化的思想,例如采用深度可分離卷積、分組卷積等卷積方式,減少卷積的數量、增加網絡的并行度、減少網絡的碎片化程度等[125]。相比于模型壓縮,輕量化模型的設計能夠更大程度地減小模型的參數量和計算量,并提高模型的檢測速度,因此輕量化模型是未來目標檢測算法用于嵌入式設備移植和移動端的主要發展方向。如圖6所示,近年來表現優秀的輕量化網絡主要有SqueezeNet[126]、MobileNet系列、ShuffleNet系列、GhostNet[125]等。表5列出了基于輕量化模型的果實目標識別研究成果。

表5 基于輕量化模型的果實目標識別研究成果Tab.5 Research on fruit target recognition based on lightweight model
IANDOLA等[126]提出的SqueezeNet是最早的輕量化模型設計,SqueezeNet使用了新的網絡架構“Fire模塊”,整個SqueezeNet網絡由若干“Fire模塊”的堆疊組成。“Fire模塊”由壓縮層和擴展層組成,其中壓縮層僅由1×1的卷積核組成,擴展層由1×1和3×3的卷積核組成,Fire模塊的設計大大減少了模型的參數量和計算量,SqueezeNet的模型占用內存為0.5 MB。
HOWARD等[134]基于深度可分離卷積提出了MobileNet輕量化模型。該模型由深度可分離卷積與普通卷積模塊堆疊組成,深度可分離卷積是將普通卷積拆分為深度卷積和逐點卷積的操作,利用深度可分離卷積可大大降低網絡的計算量。以MobileNet模型分別替換YOLOv4和SSD的骨干網絡,可實現龍眼果實的檢測,其中MobileNet-YOLOv4模型具有更好的泛化性能[127]。MobileNetv2[135]網絡中引入了線性瓶頸結構和倒殘差結構,進一步壓縮了模型占用內存。利用MobileNetv2對YOLOv3檢測模型的骨干網絡進行改進,可實現釀酒葡萄和柑橘的檢測,與原始YOLOv3模型相比,該方法可在保證檢測精度的情況下大幅提升檢測速度并壓縮模型的尺寸[128-129]。MobileNetv3[130]在MobileNetv2的倒殘差結構的基礎上加入了SE注意力模塊和h-swish激活函數,并精簡了卷積層的結構,同時引入了NAS模塊搜索和NetAdapt層搜索結構進行網絡結構的優化,與MobileNetv2相比,其準確率更高且減少了延遲。利用MobileNetv3模型可實現香蕉、檸檬、柑橘等水果的檢測,其檢測精確率和檢測速度均優于Xception和DenseNet模型[130]。利用MobileNetv3對YOLOv4檢測模型的骨干網絡進行改進,開發一種YOLOv4-MobileNetv3輕量化模型,可實現火龍果、密集圣女果和蘋果果實的準確快速識別,該方法在檢測速度和模型尺寸方面具有顯著優勢[131-133]。
ZHANG等[137]提出了ShuffleNet輕量化模型,該模型提出了逐點組卷積和通道混洗操作,利用逐點組卷積降低模型的計算復雜度,并利用通道混洗操作解決組卷積造成的信息交互問題。對于一定的計算復雜度,ShuffleNet可以保證更多的特征映射信道,提高模型的性能。在此基礎上,ShuffleNetv2[138]模型引入了通道分裂(Channel split)操作,在保證模型準確率的同時進一步降低了模型復雜度,提升了模型運行速度。
HAN等[125]提出了GhostNet輕量化模型,其基礎模塊為“Ghost Module”,Ghost模塊可以通過生成“影子”特征圖來減少卷積操作,進而減小模型的計算量,GhostNet的準確率高于MobileNetv3,且其模型的計算復雜度小于MobileNetv3。且Ghost Module可用于替換許多經典目標檢測網絡中的普通卷積模塊,以減小模型的參數量和計算量,目前Ghost Module應用于簡化果實目標檢測模型的研究較少,該方法可為果實目標檢測模型的輕量化提供新的研究思路。
基于深度學習的果實目標識別研究取得了一定的研究成果,然而距離模型的實際應用仍存在以下難點:
(1)大規模數據集的獲取存在一定困難。為提高模型的準確率,果實目標識別任務中要求采集的數據樣本數量足夠大,為提高并驗證模型的魯棒性,數據集中的圖像還應該包含有無遮擋、枝干葉片遮擋和不同果實目標間的遮擋、不同的光照情況、圖像中包含單目標和多目標果實等情況。由于果實生長的自然環境復雜多變,存在許多人為不可控因素,且果實生長具有一定的周期性,必須在特定的時間段完成圖像采集任務,因此大規模數據的采集是目前果實目標識別任務的難點之一。
(2)提高模型在復雜場景下的穩定性、泛化性和魯棒性。由于采摘機器人作業的自然環境中存在各種復雜多變的情景,用于果實目標檢測的模型需要兼具較高的穩定性、泛化性和魯棒性,才能保證其穩定的作業效果和較高的作業效率。因此,在保證識別準確率的同時提高模型在復雜場景下的表現性能是目前目標識別領域的難題。
(3)提高模型的通用性。由于田間生長的果實目標在不同的生長階段具有不同的顏色和大小,因此研發通用性較高的果實目標識別模型有利于進行果實的生長監測和提高采摘機器人決策的準確性。
(1)由于數據采集和標注任務需耗費大量的時間和人力,且大規模的數據采集任務存在一定的困難,利用較少的樣本數據進行模型訓練并減小標簽數據的數量,對于降低人工成本和提高檢測的靈活性非常重要[28]。而目前對于小規模數據集的模型、半監督和無監督模型用于果實目標檢測的研究相對較少。因此,小規模數據模型和弱監督模型將是未來果實目標識別模型的發展方向。
(2)針對輕量化模型設計,部分學者已經進行相關研究并取得了一些進展,在保證識別精度的前提下,用于嵌入式設備的模型不僅要求較小的模型尺寸,還應該保證較快的檢測速度以實現實時檢測。因此,后續的研究應著重于提高輕量化模型在算力有限的嵌入式設備上的檢測速度,開發可用于邊緣設備進行實時準確檢測果實目標的模型。