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