劉 麒,盛德慶**,孫萬龍,王 影*
(1.吉林化工學(xué)院 信息與控制工程學(xué)院,吉林 吉林 132022;2.博世汽車部件(長(zhǎng)春)有限公司,吉林 長(zhǎng)春 130000)
采摘機(jī)器人是21世紀(jì)現(xiàn)代農(nóng)業(yè)機(jī)械的重要裝備之一,是未來智慧農(nóng)業(yè)的發(fā)展方向。因其能夠有效地降低農(nóng)民勞動(dòng)強(qiáng)度、提高勞動(dòng)生產(chǎn)率、保證果蔬的適時(shí)采收,未來具有很大的發(fā)展?jié)摿1]。如何讓機(jī)器人在采摘過程中能夠準(zhǔn)確識(shí)別到果實(shí),已成為研究人員的研究熱點(diǎn)。近年來,隨著人工智能技術(shù)領(lǐng)域的蓬勃發(fā)展,很多學(xué)者使用基于深度學(xué)習(xí)的目標(biāo)檢測(cè)算法在果實(shí)檢測(cè)領(lǐng)域展開了研究。借助深度學(xué)習(xí)算法,從圖片信息中提取到更深層次的信息,通過卷積神經(jīng)網(wǎng)絡(luò)獲取到數(shù)據(jù)特征圖等數(shù)據(jù)的全部特征信息,再將這些特征信息通過特征圖進(jìn)行表示,從而提高模型的識(shí)別能力[2],最后由攝像頭識(shí)別目標(biāo)物體成為一種當(dāng)前應(yīng)用最多的方式,也是深度學(xué)習(xí)檢測(cè)目標(biāo)高效的解決方案。
2018年,熊俊濤等人團(tuán)隊(duì)利用Faster RCNN方法進(jìn)行樹上綠色柑橘的視覺檢測(cè),通過對(duì)學(xué)習(xí)速率和動(dòng)量等超參數(shù)進(jìn)行調(diào)優(yōu),最終訓(xùn)練模型在測(cè)試集上的平均精度(mAP)為85.49%[3]。2019年,楊長(zhǎng)輝等人團(tuán)隊(duì)對(duì)原始的 YOLOv3算法進(jìn)行了改進(jìn),使用改進(jìn)后的YOLOv3算法對(duì)柑橘果實(shí)進(jìn)行分類識(shí)別,同時(shí)該算法也能夠?qū)φ系K物進(jìn)行識(shí)別,其中對(duì)障礙物識(shí)別率為83.6%,對(duì)采摘的果實(shí)識(shí)別率為91.9%[4]。雖然上述提出的改進(jìn)算法能夠?qū)ψ匀粭l件下的果實(shí)圖像進(jìn)行分類,并且擁有較高的識(shí)別精度,但只能對(duì)一種果實(shí)進(jìn)行目標(biāo)識(shí)別。因此,提出一種基于YOLOv5s的改進(jìn)算法,對(duì)果實(shí)圖像進(jìn)行模型訓(xùn)練,實(shí)現(xiàn)對(duì)多種果實(shí)圖像的目標(biāo)與分類識(shí)別,來解決傳統(tǒng)果實(shí)圖像算法的處理過程煩瑣、運(yùn)算速度慢等問題。
YOLO(You Only Look Once)是Joseph Redmon和Ali Farhadi等人[5]于2015年提出的第一個(gè)基于單個(gè)神經(jīng)網(wǎng)絡(luò)的單階段目標(biāo)檢測(cè)算法。該算法摒棄了候選區(qū)域提取,只用一級(jí)網(wǎng)絡(luò)便可完成分類和回歸兩個(gè)任務(wù)。隨著計(jì)算機(jī)技術(shù)和算法網(wǎng)絡(luò)框架的不斷發(fā)展,在2020年發(fā)布了YOLOv5算法,該算法具有檢測(cè)精度高、運(yùn)行速度快的優(yōu)勢(shì),最高檢測(cè)速度可以達(dá)到每秒140幀。另外,YOLOv5的權(quán)重文件的內(nèi)存比上一代縮小了近90%,這使得該模型適合部署到嵌入式設(shè)備上用來對(duì)目標(biāo)進(jìn)行實(shí)時(shí)檢測(cè)。
YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)由輸入端、特征提取層、特征融合和預(yù)測(cè)4部分組成,其模型具體包含了4種架構(gòu)[6],它們主要的區(qū)別在于網(wǎng)絡(luò)的特定位置處所包含的特征提取模塊數(shù)量、卷積核數(shù)量、網(wǎng)絡(luò)模型的深度和寬度的差異,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)圖
輸入端采用Mosaic數(shù)據(jù)增強(qiáng)的方式,對(duì)數(shù)據(jù)集中的圖像進(jìn)行自適應(yīng)的圖片縮放、隨機(jī)裁剪、隨機(jī)排布的方式拼接,既可以豐富數(shù)據(jù)集,也能夠減少GPU的使用數(shù)量;特征提取層為網(wǎng)絡(luò)的主干部分,其主要作用是將提取到的圖像信息提供給后面的網(wǎng)絡(luò)進(jìn)行運(yùn)算;特征融合部分采用特征金字塔(FPN)與路徑聚合網(wǎng)絡(luò)(PAN)融合[7],將淺層與深層網(wǎng)絡(luò)特征進(jìn)行融合能夠提升檢測(cè)的性能效果;預(yù)測(cè)層部分包括檢測(cè)框損失函數(shù)和非極大值抑制處理,采用CIoU loss損失作為檢測(cè)框的損失函數(shù),通過非極大抑制可以消除多余的框,找到最佳的物體檢測(cè)位置。
由于本研究需要識(shí)別多類目標(biāo),且對(duì)模型的識(shí)別實(shí)時(shí)性與輕量化要求較高,經(jīng)綜合考慮后確定以YOLOv5s網(wǎng)絡(luò)為基礎(chǔ),改進(jìn)設(shè)計(jì)進(jìn)行目標(biāo)檢測(cè)研究。
YOLOv5的損失主要由三部分組成,分別為分類損失、置信度損失、回歸框預(yù)測(cè)損失。其計(jì)算公式如式(1)所示。
Loss=λ1Lcls+λ2Lobj+λ3Lloc,
(1)
其中,分類損失和置信度損失采用的是BCE loss,在原始的YOLOv5算法中,回歸框的預(yù)測(cè)損失采用的是CIoU loss函數(shù),其計(jì)算公式如式(2)~(4)所示[8]。
(2)
(3)
(4)
在上述公式中,(b,bgt)表示預(yù)測(cè)框和真實(shí)框的中心點(diǎn);ρ(b,bgt)表示兩個(gè)中心點(diǎn)之間的歐式距離;c表示預(yù)測(cè)框和真實(shí)框的對(duì)角線距離;wgt、hgt表示真實(shí)目標(biāo)框的寬和高;w、h表示預(yù)測(cè)框的寬和高。
雖然該損失函數(shù)考慮了邊界框回歸的重疊面積、中心點(diǎn)距離、縱橫比等問題,但只是通過其公式中反映的縱橫比的差異,而不是寬高分別與其置信度的真實(shí)差異,所以有時(shí)會(huì)阻礙模型有效的優(yōu)化相似性。因此,本研究將回歸框的損失函數(shù)替換成EIoU loss[9],其計(jì)算公式如式(5)所示。
(5)
其中,(b,bgt)表示預(yù)測(cè)框和真實(shí)框的中心點(diǎn);ρ(b,bgt)表示兩個(gè)中心點(diǎn)之間的歐式距離;cw、ch表示預(yù)測(cè)框和目標(biāo)框最小外界矩形的寬和高;ρ(w,wgt)表示預(yù)測(cè)框和目標(biāo)框?qū)挾鹊牟钪怠?/p>
由公式(5)可以看出,EIoU loss將縱橫比的影響因子拆開分別計(jì)算目標(biāo)框和錨框的長(zhǎng)和寬,該損失函數(shù)包含三個(gè)部分:重疊損失、中心距離損失和寬高損失,在重疊損失和中心距離損失上,延續(xù)了CIoU loss中使用的方法,但是寬高損失直接使目標(biāo)框與錨框的寬度和高度之差達(dá)到最小,因此收斂速度更快[10]。
由于果實(shí)的外形和顏色與圖像中的背景物相比具有一定的差異,因此為了提升果實(shí)的識(shí)別精度,將機(jī)器視覺中的注意力機(jī)制引入果實(shí)識(shí)別網(wǎng)絡(luò)的架構(gòu)中,以更好地提取不同果實(shí)圖像的特征。近年來,通過引入注意力機(jī)制,在性能改進(jìn)方面顯示出巨大潛力。其中代表性的方法是Squeeze Excitation Networks[11](SENet),SENet模塊主要包含squeeze和excitation兩大操作,它可以學(xué)習(xí)每個(gè)卷積塊的通道注意力,為各種深度CNN架構(gòu)帶來了明顯的性能提升。一些研究通過捕獲更復(fù)雜的通道依賴或結(jié)合額外的空間注意來改進(jìn)SE模塊,這些方法雖然取得了較高的精度,但往往帶來較高的模型復(fù)雜度和較大的計(jì)算負(fù)擔(dān)。為了避免降維對(duì)通道注意預(yù)測(cè)帶來的副作用,本文使用了一種高效通道注意模塊[12]Efficient Channel Attention(ECA-Net),該模塊避免了降維,可有效捕獲跨通道交互的信息。其網(wǎng)絡(luò)的示意圖如圖2所示。
圖2 ECA網(wǎng)絡(luò)示意圖
ECA模塊去除了SE模塊中的全連接層,因此在全局平均池化后的特征上通過一個(gè)一維卷積進(jìn)行學(xué)習(xí)。同時(shí),ECA模塊使用自適應(yīng)選擇一維卷積核大小的方法,通過K的快速一維卷積實(shí)現(xiàn),其中K表示局部跨通道交互的覆蓋范圍。為了避免手動(dòng)調(diào)整K值的情況,設(shè)計(jì)出一種自適應(yīng)方法確定K的系數(shù),其中跨通道信息交互作用的覆蓋范圍K與通道維數(shù)C應(yīng)該也是成正比例的[13]。換句話說,在K和C之間可能存在映射φ,計(jì)算公式如式(6)所示。
K=φ(C) 。
(6)
因此,本研究在Backbone網(wǎng)絡(luò)中的第2、4、6和8層分別嵌入ECA模塊,與BottleneckCSP模塊組合在一起,改進(jìn)后的YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)如圖3所示。
圖3 改進(jìn)后的YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)
訓(xùn)練平臺(tái)的硬件配置信息如表1所示,在參數(shù)配置上,采用隨機(jī)梯度下降法SGD,通過端到端的方式進(jìn)行訓(xùn)練,另外Batch Size設(shè)置為16,其他參數(shù)均為默認(rèn)設(shè)置。
表1 訓(xùn)練平臺(tái)配置信息
網(wǎng)絡(luò)訓(xùn)練的損失(loss)曲線如圖4所示,由圖可知,網(wǎng)絡(luò)在前50輪訓(xùn)練時(shí),loss值快速下降,訓(xùn)練150輪之后,loss值基本趨于穩(wěn)定。因此在訓(xùn)練平臺(tái)上,將訓(xùn)練200輪結(jié)束后輸出的模型權(quán)重確定為采摘機(jī)器人的水果目標(biāo)檢測(cè)識(shí)別模型。
訓(xùn)練次數(shù)/次圖4 網(wǎng)絡(luò)訓(xùn)練損失曲線
本文選擇了五種不同種類在自然環(huán)境下的水果,構(gòu)建出最終的數(shù)據(jù)集,每組水果的照片數(shù)量均為800張,共計(jì)4 000張圖片。選取每種水果的640張圖片用來作為神經(jīng)網(wǎng)絡(luò)的訓(xùn)練集部分,剩下的160張圖片被分配給測(cè)試集部分,并且訓(xùn)練集和測(cè)試集的圖片之間沒有重復(fù)照片的情況出現(xiàn)。使用 LabelImg 圖像數(shù)據(jù)標(biāo)注軟件對(duì)數(shù)據(jù)集內(nèi)的圖片中出現(xiàn)的果實(shí)進(jìn)行標(biāo)注工作,由于數(shù)據(jù)集圖片中避免不了出現(xiàn)例如距離比較遠(yuǎn)、果實(shí)信息模糊等問題出現(xiàn),為了避免對(duì)這些果實(shí)進(jìn)行識(shí)別,因此對(duì)這些果實(shí)不做標(biāo)注工作,最后,將標(biāo)注后所生成的文件保存為xml格式,通過對(duì)其解析歸一化最終寫入每一個(gè)txt文件中,用于后期訓(xùn)練使用。
基于改進(jìn)后的YOLOv5s算法的流程工作主要包括創(chuàng)建果實(shí)數(shù)據(jù)集及信息標(biāo)注、算法框架的改進(jìn)設(shè)計(jì)和數(shù)據(jù)集投入網(wǎng)絡(luò)訓(xùn)練等環(huán)節(jié),其訓(xùn)練流程如圖5所示。
圖5 訓(xùn)練流程圖
3.4.1 單類水果性能評(píng)價(jià)指標(biāo)
單類水果上,采用準(zhǔn)確率Precisioni(Pi),召回率Recalli(Ri)和APi(AveragePrecisioni)作為評(píng)判標(biāo)準(zhǔn)用來評(píng)估訓(xùn)練出的模型對(duì)單類水果的識(shí)別性能效果。其計(jì)算公式如式(7)~(9)所示。
(7)
(8)
(9)
公式中i的取值分別為1、2、3、4、5,分別對(duì)應(yīng)五種不同水果的目標(biāo)檢測(cè)。另外,TPi表示正確識(shí)別到單種果實(shí)目標(biāo);FPi表示錯(cuò)誤識(shí)別、將其他物體誤識(shí)別為單種果實(shí)目標(biāo)數(shù)量;FNi表示未識(shí)別到單種果實(shí)目標(biāo)。
3.4.2 模型總體性能評(píng)價(jià)指標(biāo)
模型總體上,采用準(zhǔn)確率Precision(P),召回率Recall(R)和mAP(meanAveragePrecision)作為評(píng)判標(biāo)準(zhǔn)來評(píng)估訓(xùn)練出的模型對(duì)總體的識(shí)別性能效果。其計(jì)算方法如式(10)~(12)所示。
(10)
(11)
(12)
其中,TP表示正確識(shí)別到目標(biāo)果實(shí)數(shù)量;FP表示錯(cuò)誤識(shí)別、將其他物體誤識(shí)別為目標(biāo)果實(shí)數(shù)量;FN表示未識(shí)別到目標(biāo)果實(shí)數(shù)量。
為了驗(yàn)證所提出的EIoU loss回歸框預(yù)測(cè)損失函數(shù)在實(shí)際訓(xùn)練過程中的有效性,將EIoU loss與原始算法中的CIoU loss進(jìn)行實(shí)驗(yàn)對(duì)比,其最終的訓(xùn)練結(jié)果數(shù)據(jù)比較如表2所示。
表2 損失函數(shù)訓(xùn)練結(jié)果比較
從表2中的數(shù)據(jù)可以看出,通過使用EIoU loss的預(yù)測(cè)損失,與CIoU loss的預(yù)測(cè)損失相比,在準(zhǔn)確率和召回率上,分別提高了1.6%、5.7%。雖然兩種算法的mAP相同,但從上述的數(shù)據(jù)可以看出,EIoU loss的效果優(yōu)于CIoU loss,可以提高網(wǎng)絡(luò)的使用性能。
為了評(píng)價(jià)在YOLOv5s網(wǎng)絡(luò)上添加注意力機(jī)制ECA提升效果的有效性,因此在原始的YOLOv5s網(wǎng)絡(luò)上分別加入SE、CBAM、ECA注意力機(jī)制,在損失函數(shù)上,均使用EIoU loss作為回歸框預(yù)測(cè)損失,然后對(duì)SE、CBAM、ECA三種注意力機(jī)制的性能進(jìn)行比較,其性能指標(biāo)如表3所示。
表3 注意力機(jī)制訓(xùn)練結(jié)果比較
從表3的數(shù)據(jù)中可以得出,與YOLOv5s+CBAM相比較,YOLOv5s+ECA的準(zhǔn)確率、召回率、mAP分別提高了3.3%、3.3%、1.7%,兩者的模型大小比較接近。與YOLOv5s+CBAM相比較,YOLOv5s+ECA的準(zhǔn)確率、召回率、mAP分別提高了0.4%、0.6%、0.3%。綜上可得,通過在骨干網(wǎng)絡(luò)中添加注意力機(jī)制可以對(duì)YOLOv5s有提升效果,但在訓(xùn)練結(jié)果上看出YOLOv5s+ECA組合的綜合性能提升效果較為明顯,更有助于在自然環(huán)境下對(duì)果實(shí)目標(biāo)的檢測(cè)。
為了驗(yàn)證所改進(jìn)的YOLOv5s算法的檢測(cè)性能,通過對(duì)訓(xùn)練集的圖片導(dǎo)入神經(jīng)網(wǎng)絡(luò)用于訓(xùn)練,再由測(cè)試集圖片進(jìn)行識(shí)別結(jié)果的輸出,與原始的YOLOv5s算法進(jìn)行了比較,得出的具體識(shí)別結(jié)果如表4所示。
表4 改進(jìn)前后YOLOv5s算法性能比較
從表4中數(shù)據(jù)可以看出,經(jīng)過改進(jìn)后的YOLOv5s,對(duì)五種水果的識(shí)別準(zhǔn)確率分別為84.4%、91.2%、93.6%、97.7%、88.8%,在原始算法上分別提高了0.8%、1.6%、2.1%、0.9%、2.9%;其召回率分別為89.6%、93.4%、93.4%、97.8%、95.2%,在原始算法上分別提高了1.1%、7.4%、4.1%、0.1%、0.3%;其平均精度分別為93.9%、94.8%、96.9%、99.2%、96.2%,在原始算法上分別提高了0.5%、0.3%、1.9%、0.6%、0.6%;總體上,改進(jìn)后的檢測(cè)網(wǎng)絡(luò)性能也有明顯的提高,從而驗(yàn)證了改進(jìn)的有效性,其檢測(cè)效果對(duì)比圖如圖6所示。
(a) 原始YOLOv5s算法
(b) 改進(jìn)YOLOv5s算法圖6 檢測(cè)效果對(duì)比圖
從圖6的檢測(cè)效果上來看,改進(jìn)后的算法可以識(shí)別出原始算法中沒有被識(shí)別出的部分,例如被遮擋的部分果實(shí)。有部分果實(shí)未能被成功識(shí)別出,是由于這些果實(shí)存在著重度遮擋、距離較遠(yuǎn)等情況。因此在識(shí)別目標(biāo)的效果上,經(jīng)過改進(jìn)后的YOLOv5s算法在目標(biāo)識(shí)別能力上有了進(jìn)一步提高。
為了進(jìn)一步評(píng)價(jià)改進(jìn)的YOLOv5s算法對(duì)果實(shí)目標(biāo)的檢測(cè)性能,將改進(jìn)的YOLOv5s與原YOLOv5s、YOLOv3、Faster RCNN目標(biāo)檢測(cè)算法分別對(duì)數(shù)據(jù)集中的果實(shí)圖像進(jìn)行訓(xùn)練,然后對(duì)上述4種檢測(cè)算法的性能進(jìn)行比較,實(shí)驗(yàn)結(jié)果如表5所示。
表5 不同目標(biāo)檢測(cè)算法性能比較
同時(shí),四種算法的訓(xùn)練精度曲線圖如圖7所示。
迭代次數(shù)/次圖7 訓(xùn)練精度曲線圖
從表5的目標(biāo)檢測(cè)算法的訓(xùn)練結(jié)果中可以看出,與YOLOv3相比較,改進(jìn)后的YOLOv5s在準(zhǔn)確率、召回率、mAP上分別提高了5.8%、3.8%、4.2%,其模型內(nèi)存大小為YOLOv3的10.8%;與Faster RCNN相比較,改進(jìn)后的YOLOv5s在準(zhǔn)確率、召回率、mAP上分別提高31.1%、28.1%、42.3%,其模型內(nèi)存大小為Faster RCNN的12.3%;與原始的YOLOv5s相比,改進(jìn)后的YOLOv5s在準(zhǔn)確率、召回率、mAP上分別提高了1.7%、2.5%、0.7%,模型權(quán)重也比原始的YOLOv5s訓(xùn)練生成后的內(nèi)存小了1.1MB。在圖7的曲線圖中也可以看出,改進(jìn)后的YOLOv5s的精度效果要優(yōu)于其他三種算法,由此驗(yàn)證了改進(jìn)后的目標(biāo)檢測(cè)算法在果實(shí)識(shí)別上具有更好的效果,能夠更好地識(shí)別到目標(biāo)果實(shí)。
(1)為了避免因縱橫比的差異阻礙模型有效的優(yōu)化相似性,因此將EIoU loss作為該模型的回歸框損失函數(shù)。通過將縱橫比的影響因子拆開分別計(jì)算目標(biāo)框和錨框的長(zhǎng)和寬,雖然部分延續(xù)了CIoU loss損失函數(shù)應(yīng)用的方法,但是在寬高損失上使目標(biāo)框與錨框的寬度和高度之差達(dá)到最小,使得收斂速度更快,其在性能效果上與CIoU loss相比,準(zhǔn)確率、召回率分別提高了1.6%、5.7%。
(2)對(duì)比添加SE、CBAM、ECA注意力機(jī)制應(yīng)用于YOLOv5s網(wǎng)絡(luò)性能的差異,其中ECA注意力機(jī)制的綜合性能效果較為明顯。將其與YOLOv5s網(wǎng)絡(luò)融合得到Y(jié)OLOv5s+ECA網(wǎng)絡(luò),與原始的YOLOv5s網(wǎng)絡(luò)相對(duì)比,其準(zhǔn)確率、召回率、mAP分別提高了1.7%、2.5%、0.7%,從而驗(yàn)證了改進(jìn)的有效性,在目標(biāo)識(shí)別效果上也有一定的提高。
(3)使用YOLOv5s+ECA+EIoU loss組合后的神經(jīng)網(wǎng)絡(luò)能夠在不影響模型效果的前提下,與其他三種神經(jīng)網(wǎng)絡(luò)模型訓(xùn)練相對(duì)比,僅用少量的模型權(quán)重內(nèi)存而明顯增加目標(biāo)檢測(cè)精度等指標(biāo),做到了模型權(quán)重的輕量化設(shè)計(jì),更有利于模型識(shí)別自然條件下的果實(shí)目標(biāo),可為水果目標(biāo)檢測(cè)研究提供必要的技術(shù)支持。