曾 俊 ,陳仁凡 ,鄒騰躍
(福建農林大學機電工程學院,福建 福州 350002)
桃子是一種生活中常見的水果,具有較高的營養(yǎng)價值和經濟價值。據(jù)統(tǒng)計,2019 年我國桃種植面積和產量分別為89.0 萬hm2和1 599.3 萬t,均居世界第一位[1]。但當前桃子采摘主要依賴人工來完成,效率低,成本高,引入智能化的農業(yè)機械裝備用于果實采摘十分必要,果實采摘機器人成為農業(yè)發(fā)展的重要方向[2]。因此,作為果實采摘機器人的關鍵技術,設計一種高準確率的自然環(huán)境下桃子果實成熟度快速檢測系統(tǒng)對實現(xiàn)桃子自動采摘具有重大意義。
傳統(tǒng)的果實目標識別方法主要基于顏色、幾何形狀等特征進行檢測和分類[3]。Liu 等[4]使用橢圓邊界模型的機器視覺算法對柚子果實成熟度進行檢測研究,將圖像從RGB 空間轉換至Y’CbCr 空間,達到了93.5%的準確率,但該研究對于未成熟的柚子果實的檢測效果較差。Lin 等[5]提出了一種Hough 變換方法,對輕度遮擋的目標能夠識別,但對于遮擋嚴重的目標仍然無法準確識別。
上述的傳統(tǒng)機器視覺方法依賴人工提取特征,魯棒性和泛化能力差。近年來,深度學習發(fā)展迅速,在果實識別定位中發(fā)揮著越來越重要的作用[6]。崔瀟等[7]提出一種以MTCNN 為主干的桃子檢測模型,該模型對成熟桃子具有89.3%的檢測準確率。Liu 等[8]在YOLOv3 中引入一種密集架構并將矩形邊界框替換為圓形邊界框,識別遮擋等條件下的番茄,精度達到96.4%。王立舒等[9]基于YOLOv4-Tiny 結合卷積注意力模塊構建藍莓成熟度目標檢測模型。
總之,深度學習在果實目標檢測中具有較大優(yōu)勢。但基于深度學習的網絡模型通常比較大,檢測速度不夠快,不能滿足果實采摘機器人的實際作業(yè)需求?;谝陨蠁栴},課題組提出一種基于YOLOv5s的自然環(huán)境下快速檢測桃子成熟度的輕量級網絡,以期為桃子采摘機器人的視覺識別系統(tǒng)提供技術支持。
本研究所用的圖像采集于湖北省黃岡市一處桃子種植園,桃子品種為“胭脂桃”。共采集自然條件下桃子果實原始圖像1 860幅。使用LabelImg軟件對原始圖像進行標注,將桃子果實標注為未成熟、半成熟以及成熟,并按照比例8∶1∶1 劃分訓練集、驗證集和測試集。
訓練神經網絡需要的數(shù)據(jù)量較大,較大的數(shù)據(jù)集訓練得到的模型泛化能力和魯棒性也相對較好,因此對采集到的原始圖像進行了數(shù)據(jù)增強。本研究采用圖像翻轉、修改對比度、圖像縮放、添加噪聲的方法對數(shù)據(jù)集進行了增強,最終得到3 638 幅圖像用于訓練模型。
YOLOv5s 目標檢測算法是YOLO 系列的最新版本之一,整體結構主要由Backbone、Neck、Head 三個部分組成,其主干網絡使用了CSPNet 結構,通過CSPNet 的交叉連接和信息整合使得網絡能夠更好地傳遞和融合不同階段的特征,提高了模型的特征表示能力。頸部使用了路徑聚合網絡結構PANet,生成具有多尺度信息的特征圖。頭部使用了CIOU_Loss 和非極大值抑制(NMS),完成目標檢測結果的輸出。
1.3.1 FasterNet
本研究使用FasterNet[10]重新搭建了YOLOv5s的主干特征提取網絡。FasterNet 提出一種新穎的PConv(Partial Conv),可以同時減少計算冗余和內存訪問,提升模型的檢測速度。它利用了特征圖中的冗余,并系統(tǒng)性地僅在一部分輸入通道上應用常規(guī)卷積(Conv),而不影響其余通道。對于連續(xù)或者常規(guī)的內存訪問,PConv 將第一個或者最后一個連續(xù)的通道視為整個特征圖的代表進行計算,在不失一般性的情況下認為輸入和輸出特征圖具有相同的數(shù)量。
FasterNet 基本結構BasicStage 的結構如圖1 所示,它由PConv 和兩個逐點卷積(PWConv)構成,并使用殘差連接緩解梯度消失問題。由于使用了PConv 和PWConv,BasicStage 模塊的參數(shù)量和浮點運算量大幅降低。
圖1 BasicStage結構
1.3.2 CBAM 卷積注意力機制模塊
在深度學習模型中增加注意力機制可以增強模型對于輸入數(shù)據(jù)中有意義部分的關注,優(yōu)化模型的表現(xiàn)。Woo 等[11]于2018 年提出 CBAM 卷積注意力模塊(Convolutional Block Attention Module),其結構如圖2 所示,該模塊包含兩個主要組成部分:通道注意力模塊(CAM)和空間注意力模塊(SAM)。在CAM 中,輸入特征圖F 經過池化并通過全連接層進行通道數(shù)壓縮以及激活函數(shù)(ReLU)處理,生成兩個激活后的特征圖并經過加和以及sigmoid 操作得到輸入特征的每個通道的權重MC。將這些權重與輸入特征的對應元素相乘得到SAM 輸入特征圖F’。在SAM中,F(xiàn)’經過池化操作得到2 個二維向量,然后將其進行拼接和卷積操作并經過sigmoid 得到輸入特征的每一通道的權重MS,最后將權重MS 與輸入特征對應元素相乘得到最終的特征圖。
本研究在主干和頸部之間增加了串聯(lián)的CBAM注意力模塊和常規(guī)卷積塊,增強了模型對圖像中重要特征的捕捉和表達,同時增強了主干和頸部之間的有效信息交流和特征融合。其結構如圖3 所示。
圖3 頸部增強模塊結構
1.3.3 SIoU
目標檢測的有效性在很大程度上取決于損失函數(shù)的定義,傳統(tǒng)的目標檢測損失函數(shù)是交并比損失(Intersection over Union, IoU),通過比較預測框(A)和真實框(B)的交集面積和并集面積來度量它們之間的重疊程度。
YOLO 使用的IoU 損失函數(shù)為CIoU,忽略了預測框和真實框之間不匹配的方向,從而導致模型訓練效率不高。SIoU[12](SCYLLA-IoU)進一步考慮兩框之間的向量角度,重新定義了相關損失,分別為角度損失、距離損失、形狀損失和IoU 損失,并重新設計了損失函數(shù)的懲罰項,考慮了預測框與真實框之間不匹配的方向,提高了模型的訓練效率。
綜上所述,本研究提出的自然環(huán)境下桃子成熟度檢測模型YOLO-Faster 結構如圖4 所示。在YOLOv5s 的基礎上,將主干特征提取網絡替換為FasterNet 使網絡輕量化,同時在主干和頸部之間增加串聯(lián)的CBAM 卷積注意力模塊和常規(guī)卷積塊,增強模型對重要特征的提取以及主干和頸部之間的有效信息交流和特征融合,最后引入SIoU作為模型的損失函數(shù)緩解預測框與真實框之間方向不匹配的問題。
圖4 YOLO-Faster 網絡結構
模型所用的評價指標為精確率(Precision,P)、召回率(Recall,R)、平均精度均值(mean Average Precision,mAP)、模型權重大小、參數(shù)量、浮點運算量(FLOPs)以及推理速度。有關計算公式如下:
其中,TP為正確將目標預測為正樣本的數(shù)量,F(xiàn)P為錯誤將非目標預測為正樣本的數(shù)量,F(xiàn)N為漏檢實際目標的數(shù)量,n為檢測對象類別,AP為每一種類別的平均精度值,mAP為所有類別的平均精度值。
本研究所進行的實驗的軟硬件環(huán)境如下:CPU 為Intel?core? i5-12490KF,GPU 為NVIDIA GeForce RTX 3060,操作系統(tǒng)為Windows 10,使用的軟件平臺為PyCharm,學習框架為Pytorch。采用AdamW 優(yōu)化器進行優(yōu)化,Batchsize 設置為16,初始學習率為0.01,使用以上參數(shù)訓練100輪次。
本研究的模型部署于Jetson Nano平臺,Jetson Nano是一款由NVIDIA推出的嵌入式人工智能計算平臺,采用高性能的GPU架構,具備出色的并行計算能力。
用改進后的YOLO-Faster 和原始網絡在桃子數(shù)據(jù)集上分別進行4 組試驗,以便更好地分析改進后模型的效果,消融試驗結果如表1 所示。
試驗1 是原始的YOLOv5s 算法。試驗2 采用FasterNet 為主干特征提取網絡,浮點運算量相比基線網絡下降了7.1 G,權重文件減少了5.42 Mb,模型實現(xiàn)輕量化,但同時mAP也稍有下降;試驗3 在試驗2 的基礎上,在主干和頸部之間串聯(lián)了卷積注意力模塊CBAM,模型的準確率上升了2.8 個百分點,mAP上升了0.4 個百分點;試驗4 在試驗3 的基礎上使用SIoU 損失函數(shù),進一步提升了模型的準確率和mAP,分別達到了84.3%和88.6%。結果表明,改進后的模型不僅分別將準確率和mAP提升3.7 和1 個百分點,還大幅度地減少了浮點運算量和權重文件大小。
為了探究不同注意力機制對該模型的影響,本研究在消融實驗4 的基礎上使用四種注意力機制替換頸部增強模塊中的CBAM 注意力機制,結果如表2 所示??梢钥闯觯i部增強模塊使用CBAM 注意力機制時,模型擁有最好的綜合性能。
表2 不同注意力機制對比結果
將改進的模型與Y O L O v 4、Y O L O v 5 s、YOLOv7-tiny、YOLOv8s 進行對比,結果如表3 所示。改進后的模型的mAP為88.6%,高于其他模型,同時浮點運算量、參數(shù)量和權重大小明顯低于其他模型。YOLO-Faster 在GPU 和CPU 上的檢測時間分別為7.6 ms 和96.5 ms,在所有模型中檢測時間均最短,相比YOLOv5s 分別快了1.1 ms 和30.5 ms。此外,本研究還將表中所列5 種模型部署到嵌入式設備Jetson Nano 上,對比它們的檢測速度,YOLOFaster 的檢測時間為145.8 ms,表現(xiàn)明顯優(yōu)于其他模型。
表3 不同模型的檢測性能對比
為了驗證YOLO-Faster 在自然環(huán)境下對桃子成熟度的檢測效果,分別選取了遮擋、重疊等自然環(huán)境下的圖像進行檢測。圖5 為模型在6 種不同的自然條件下的檢測效果圖。從圖5 中可以看出,面對桃子生長所處的復雜的自然環(huán)境,模型仍能夠對不同成熟度的桃子做出準確的識別。
針對自然環(huán)境下桃子成熟度的快速檢測問題,本研究在YOLOv5s 算法的基礎上進行改進,提出了YOLO-Faster 桃子成熟度檢測模型,并將其部署到嵌入式設備Jetson Nano 上。YOLO-Faster 在自建的數(shù)據(jù)集上訓練后mAP為88.6%,浮點運算量為8.8 G,參數(shù)量為4.1×106,權重大小為8.3 Mb,在GPU、CPU 上的單幅圖片檢測時間分別為7.6 ms、96.5 ms,相較于YOLOv5s,mAP提升了1 個百分點,浮點運算量、參數(shù)量、權重大小和在GPU、CPU上的單幅圖片檢測時間分別降低了44.3%、41.4%、39.4%、12.6%和24%,在嵌入式設備上的檢測時間降低了30.4%。結果表明,改進后的YOLO-Faster 不僅mAP超越了YOLOv5s,還大幅度地減小了模型的參數(shù)量、浮點運算量等,提升了檢測速度,并且在嵌入式設備上也有著更好的綜合性能,可以為桃子采摘機器人的視覺識別系統(tǒng)提供技術支持。