趙文博,周德強,2,鄧干然,何馮光,朱琦,韋麗嬌,牛釗君
1.江南大學(xué)機械工程學(xué)院,無錫 214122; 2.江蘇省食品先進制造裝備技術(shù)重點實驗室,無錫 214122;3.中國熱帶農(nóng)業(yè)科學(xué)院農(nóng)業(yè)機械研究所,湛江 524088;4.農(nóng)業(yè)農(nóng)村部熱帶作物農(nóng)業(yè)裝備重點實驗室,湛江 524091
目前我國甘蔗產(chǎn)業(yè)僅在機耕、培土等環(huán)節(jié)實現(xiàn)了機械化,但機械種植、機械收獲方面仍未普及,導(dǎo)致產(chǎn)業(yè)整體機械化程度低。甘蔗的機械種植主要采用預(yù)切種式甘蔗種植機,依據(jù)農(nóng)藝要求提前對優(yōu)質(zhì)甘蔗進行切種,并完成曬種、浸種和殺菌等農(nóng)藝流程[1]。由于人工切種效率低下,目前已開發(fā)出防傷芽智能切種方法,能夠有效識別莖節(jié)位置。但隨著切種工作的進行,會產(chǎn)生大量碎屑、雜葉等污垢造成圖像采集區(qū)域背景污染,導(dǎo)致算法識別精度下降,甚至失效。因此,亟需開發(fā)防傷芽的智能切種方法,能夠在雜亂背景中精確識別莖節(jié)位置,提高莖節(jié)識別精度,以實現(xiàn)高效的防傷芽切種。
近年來,針對甘蔗莖節(jié)識別定位問題,國內(nèi)外開展了廣泛的研究,通過傳統(tǒng)的機器視覺方法實現(xiàn)了甘蔗莖節(jié)檢測。Zhou等[2]獲取甘蔗圖像的感興趣區(qū)域,利用Sobel算子提取邊緣特征并采用構(gòu)造的矩形檢測算子積分運算得到特征描述向量,通過檢測描述向量的峰值來識別莖節(jié),識別準(zhǔn)確率為93%。Chen等[3]提出一種基于垂直投影函數(shù)最小點和局部像素的方法來定位甘蔗莖節(jié),雙莖節(jié)識別率98.5%。Yang等[4]通過Sobel算子計算甘蔗圖像在水平方面的梯度信息,利用平均梯度和方差梯度特征識別甘蔗莖節(jié),識別準(zhǔn)確率為96.89%。Nare等[5]利用Sobel算子識別甘蔗邊緣,通過調(diào)節(jié)閾值去除噪音,用識別邊緣的附加閾值和邊緣總數(shù)識別甘蔗芽。張圓圓等[6]根據(jù)甘蔗莖節(jié)處具有拐點和灰度值不連續(xù)的特性,在邊緣擬合法和灰度值擬合法基礎(chǔ)上采用中值決策識別甘蔗莖節(jié),識別正確率達到94.7%。以上基于傳統(tǒng)機器視覺的檢測方法魯棒性較差,當(dāng)甘蔗品種更換或背景環(huán)境復(fù)雜時識別能力會大幅降低,無法按要求完成防傷芽切種工作。隨著深度學(xué)習(xí)越來越廣泛地應(yīng)用于農(nóng)業(yè)領(lǐng)域,目前已取得諸多成果。如李尚平等[7]通過改變輸出特征圖尺寸和減少an?chors的方法改進YOLOv3,實現(xiàn)甘蔗切種裝置對莖節(jié)特征的連續(xù)、動態(tài)的智能識別,識別準(zhǔn)確率96.89%。黃彤鑌等[8]通過引入CBAM注意力機制提高特征提取能力,并采用α-IoU損失函數(shù)增強邊界框定位精度的方法改進YOLOv5,實現(xiàn)了在自然環(huán)境下快速準(zhǔn)確的識別柑橘果實。趙德安等[9]通過替換骨干網(wǎng)絡(luò)的方法改進YOLOv3,在保證效率和準(zhǔn)確率的前提下實現(xiàn)了復(fù)雜環(huán)境下蘋果的檢測。顧偉等[10]利用ResNet 50網(wǎng)絡(luò)改進SSD算法的主干結(jié)構(gòu),提高群體棉籽圖像特征提取效率,實現(xiàn)了對群體棉籽的破損檢測。
基于傳統(tǒng)的機器視覺算法雖然準(zhǔn)確率較高,但魯棒性差,而基于深度學(xué)習(xí)的算法能增強魯棒性,但由于模型尺寸較大,需要高昂的計算成本才能完成。為解決上述問題,本研究提出了一種基于改進YO?LOv5的甘蔗莖節(jié)識別定位方法,以期為甘蔗預(yù)切種機在雜亂背景下工作提供算法支持。
甘蔗樣本采集于廣東省湛江市中國熱帶科學(xué)院農(nóng)業(yè)機械研究所試驗田,采集設(shè)備型號為工業(yè)相機MER-2000-5GM/C、鏡 頭HN-0826-20M-C1/1X??紤]到不同品種甘蔗直徑、莖節(jié)形狀、顏色以及灰度值變化都會有所不同,選取貴糖49號、新臺糖22號2種甘蔗作為樣本,人工砍收后統(tǒng)一在研究所試驗基地拍攝。由于農(nóng)業(yè)機械工況惡劣,隨著切種工作不斷進行,切種機內(nèi)部圖像采集區(qū)域會因各種污染造成背景雜亂,如甘蔗切割碎屑、泥土碎屑、切割時飛濺出的蔗糖汁黏液造成的枝葉黏附等。在樣本采集時為模擬切種機內(nèi)部背景雜亂的場景,根據(jù)真實內(nèi)部環(huán)境產(chǎn)生的背景污染,分析其干擾原因后在拍攝背景中隨機加入碎屑模擬,其中包含因鋸片造成的細小碎屑、甘蔗根部黏附的泥土顆粒以及枯葉。模擬環(huán)境中加入的干擾元素包含了真實環(huán)境中的各類污染,故二者較為相似。拍攝完成后按照背景雜亂程度依次分為干凈背景樣本、輕度雜亂背景樣本、重度雜亂背景樣本。最終采集貴糖49號510張、新臺糖22號500張,莖節(jié)數(shù)量共10 094個。采集的單張圖片大小為57.7 Mb,分辨率為5 496×3 672,存儲格式為bmp格式。采用圖片標(biāo)注工具LabelImg將圖片標(biāo)注成VOC格式的xml文件,之后將其轉(zhuǎn)換為yolo格式的txt文件并按照7︰2︰1的比例劃分訓(xùn)練集,測試集和驗證集。數(shù)據(jù)集部分樣本如圖1所示。
圖1 部分樣本圖片F(xiàn)ig.1 Some sample pictures
隨著目標(biāo)檢測算法的不斷改進與迭代,YO?LOv5較YOLOv4在精度、速度和模型大小上均有較大程度的優(yōu)化,更適合部署在嵌入式設(shè)備上用于工程實踐。YOLOv5s是YOLOv5模型系列中尺寸最小的版本,其大小僅14.50 Mb,但在復(fù)雜背景環(huán)境下容易受到干擾,造成錯檢、精度不能滿足要求等問題。YOLOv5s的主要結(jié)構(gòu)由Input輸入端、Backbone骨干網(wǎng)絡(luò)、Neck網(wǎng)絡(luò)層和Head檢測端4個部分組成,如圖2所示。Input輸入端通過Mosaic數(shù)據(jù)增強豐富數(shù)據(jù)集,采用K-means自適應(yīng)錨框算法計算獲取最佳錨框尺寸并自適應(yīng)縮放圖片大小以減少計算量。Mosaic數(shù)據(jù)增強算法[11]從同一批次的BatchSize個樣本中隨機抽取4張圖片并進行裁剪、縮放,合并為1張圖片后輸入網(wǎng)絡(luò),不僅可以豐富數(shù)據(jù)集,而且能夠提升網(wǎng)絡(luò)的訓(xùn)練速度。Backbone骨干網(wǎng)絡(luò)包含C3模塊以及SPPF模塊,經(jīng)改進后的C3模塊由于使用了殘差結(jié)構(gòu),改善了反向傳播過程中梯度爆炸和梯度消息問題。Neck網(wǎng)絡(luò)主要對骨干網(wǎng)絡(luò)提取到的特征信息進行融合,共包括FPN特征金字塔[12]和PAN路徑聚合網(wǎng)絡(luò)結(jié)構(gòu)[13]中的2部分信息。Head檢測頭將Neck網(wǎng)絡(luò)輸出的不同尺度的特征圖進行解析,并通過損失函數(shù)和NMS非極大值抑制進行訓(xùn)練或預(yù)測。
圖2 YOLOv5s網(wǎng)絡(luò)結(jié)構(gòu)Fig.2 YOLOv5s network structure
1) 改進Neck網(wǎng)絡(luò)層。YOLOv5s網(wǎng)絡(luò)的頸部結(jié)構(gòu)設(shè)計采用FPN+PAN的結(jié)構(gòu),F(xiàn)PN結(jié)構(gòu)利用骨干網(wǎng)絡(luò)最后1層輸出特征圖進行2次上采樣,在3個尺度上構(gòu)建出高級語義特征圖。由于連續(xù)上采樣會造成淺層信息大量丟失,影響甘蔗莖節(jié)識別定位。為實現(xiàn)莖節(jié)位置的精確定位,減少雜亂背景帶來的干擾,需充分利用主干網(wǎng)絡(luò)提取到的淺層信息,增強網(wǎng)絡(luò)對定位框的回歸能力。因此,基于BiFPN[14]提出了跨層加權(quán)連接的Neck結(jié)構(gòu),將頸部和骨干網(wǎng)絡(luò)同一尺度的特征信息相融合,在不大幅增加計算成本的情況下,將淺層語義信息如邊緣、輪廓等融入到PAN結(jié)構(gòu)中,使模型對甘蔗莖節(jié)定位的邊界框回歸更加精確。在信息融合過程中,一般采用將不同層級的特征圖直接相加的方法,但實際上不同特征層對最終結(jié)果產(chǎn)生的影響不同,因此,引入可學(xué)習(xí)的方式,在迭代過程中不斷調(diào)整和學(xué)習(xí)不同的輸入特征層權(quán)重。
特征融合有多種方式,如采用concat操作將通道疊加進行特征融合、在通道數(shù)不變的情況下直接將2張?zhí)卣鲌D數(shù)值相加的add操作以及采用全連接操作進行融合等。因全連接融合方式導(dǎo)致參數(shù)量大幅增加,故這里不進行考慮。對add和concat操作分析如下:
其中,outconcat和outadd分別為不同方法融合后的特征圖;xi和yi分別為不同通道的輸入;ki表示第i個卷積核。
由式(1)可知,在進行concat拼接時對于不同的特征層采用不同的卷積核運算,模型經(jīng)過concat融合操作后提取到不同的語義信息,并增加了通道數(shù)。由式(2)可知,add操作只是簡單地進行像素疊加,會導(dǎo)致信息損失,但共享卷積核參數(shù)使參數(shù)量較concat操作減少一半,二者均有不同的優(yōu)勢。改進后的Neck結(jié)構(gòu)如圖3所示,其中虛線條代表添加可學(xué)習(xí)權(quán)重的特征融合。
圖3 改進后Neck結(jié)構(gòu)Fig.3 Improved Neck structure
2) 損失函數(shù)改進。損失函數(shù)主要用來評估真實值與預(yù)測值之間的差異程度,YOLOv5s的損失函數(shù)分別由目標(biāo)置信度損失、邊框定位損失和分類損失3部分構(gòu)成。改進后的損失函數(shù)采用Focal loss 計算目標(biāo)置信度損失,并采用EIoU loss[15]計算邊界框定位損失。
①采用焦點損失函數(shù)Focal loss[16]替換交叉熵損失函數(shù)計算目標(biāo)置信度損失。YOLOv5s的目標(biāo)置信度損失采用交叉熵損失,如公式(3)。對于二分類問題,總的損失函數(shù)如公式(4)。當(dāng)樣本分布不均勻時,損失函數(shù)會更加偏重樣本數(shù)多的類別,即當(dāng)m>>n時,模型會朝著與預(yù)期不同的方向優(yōu)化。在檢測甘蔗圖片時,模型會生成大量候選框,雖然YOLOv5s利用跨鄰域網(wǎng)格匹配策略增大了正樣本的數(shù)量,但是負樣本仍占較大比例,使損失函數(shù)更關(guān)注負樣本,因此,本研究引入焦點損失函數(shù)Focal loss,在一定程度上降低正負樣本比例失衡所帶來的影響,有效減少背景帶來的干擾。
其中,p為預(yù)測概率大小,樣本總數(shù)N=m+n。
Focal loss的具體形式如公式(5)所示,將公式(6)代入公式(5)可得到公式(7)。
由式(3)和式(7)可知,F(xiàn)ocal loss其本質(zhì)在于加入了調(diào)制因子(1-pt)γ和平衡因子αt,其中平衡因子αt糾正正負樣本對總損失的影響,反映了分類的難易程度,pt越大說明目標(biāo)置信度越高、樣本易于分類;pt越小則相反。引入Focal loss從特征識別難易角度和樣本分布角度出發(fā),解決了樣本不均衡帶來的模型優(yōu)化問題。
②采用EIoU[17]損失函數(shù)計算邊框定位損失。YOLOv5s原采用CIoU損失函數(shù)計算邊框回歸定位損失,計算方法如式(8)。
其中,ρ2(b,bgt)代表兩框中心點的歐式距離,c代表能同時覆蓋兩框的最小閉包區(qū)域的對角線距離。
CIoU損失函數(shù)從邊界框回歸的重疊面積、中心點距離、縱橫比三方面進行回歸使定位更精確。由公式(10)可得,對預(yù)測框形狀回歸時CIoU損失函數(shù)對長寬比進行懲罰,當(dāng)w=kwgt、h=khgt時,CIoU損失函數(shù)中對長寬比的懲罰項會退化為0,導(dǎo)致懲罰失效,最終預(yù)測框無法擬合真實框。對公式(10)求偏導(dǎo)可得:
由式(11)和(12)可知,在回歸過程中,h和w的變化相反,無法使二者同時變小?;诖饲闆r,引入EIoU損失函數(shù)改進定位回歸損失。EIoU損失函數(shù)在CIoU損失函數(shù)的基礎(chǔ)上將對寬高比的懲罰改為采用對目標(biāo)框和預(yù)測框的寬高之差分別懲罰,解決了形狀相似時懲罰項退化和無法同時最小化的問題,提高了邊界框的回歸精度。其定義如公式(13)所示。
其中,Cw、Ch分別代表能同時覆蓋兩框的最小閉包區(qū)域的高和寬。
3) 引入Ghost模塊。經(jīng)上述方法改進后,較原YOLOv5s模型識別準(zhǔn)確率提高,但同時增加了參數(shù)量。在原始模型中使用了大量的卷積核去完成采樣、融合等操作,普通卷積輸出的特征圖中包含了很多冗余特征[18],為減少模型參數(shù)量,使模型能夠部署在計算資源有限的硬件設(shè)備上,引入Ghost模塊替換Neck中原始普通卷積。Ghost模塊將卷積分為2部分,一部分利用常規(guī)卷積生成一定數(shù)量的特征圖,另一部分通過線性運算補全缺失的特征圖,從減少冗余特征的角度出發(fā),在不改變輸出特征圖大小的情況下降低參數(shù)量和計算復(fù)雜度,結(jié)構(gòu)如圖4所示。雖然改進后模型實現(xiàn)了輕量化,但由于去除冗余特征圖導(dǎo)致精度下降,推理速度變慢等,因此,后續(xù)針對模型精度、參數(shù)量、推理速度進行消融試驗。改進后的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計如圖5所示。
圖4 常規(guī)卷積層和Ghost模塊Fig.4 Regular convolutional layer and Ghost module
圖5 改進后的YOLOv5s結(jié)構(gòu)圖Fig.5 Improved YOLOv5s structure diagram
采用Windows10操作系統(tǒng),計算機內(nèi)存為64 G,處理器型號為Intel(R) Core(TM) i9-10900K CPU @ 3.70GHz 3.70 GHz,顯卡型號為 GPU NVIDIA GeFore RTX3060,深度學(xué)習(xí)框架使用Pytorch 1.10.0,CUDA 10.2,CUDNN 8.3.3。初始化學(xué)習(xí)率為0.01,動量參數(shù)為0.937,最終學(xué)習(xí)率為0.001,批處理大小BatchSize為32,總迭代次數(shù)epoch為300次,并采用epoch為3、動量參數(shù)為0.8的warm-up方法預(yù)熱學(xué)習(xí)率。具體試驗流程如圖6所示。步驟1,利用工業(yè)相機采集甘蔗圖像后進行分類、標(biāo)注處理,并按比例劃分好訓(xùn)練集、測試集和驗證集;步驟2,采用Python編程語言,利用Pytorch深度學(xué)習(xí)框架構(gòu)建并改進YOLOv5s模型;步驟3,選取合適的超參數(shù)初始化模型并對模型進行訓(xùn)練;步驟4,利用訓(xùn)練好的權(quán)重文件在測試集上測試模型效果;步驟5,將最終模型與其他模型進行多組橫向?qū)Ρ仍囼灐?/p>
圖6 試驗流程圖Fig.6 Experiment flow chart
為系統(tǒng)且客觀地評價改進后模型與原模型及其他模型的性能,試驗采用準(zhǔn)確率(precision,P)、召回率(recall,R)、平均精度(average precision,PA)、參數(shù)量、計算量(GFLOPs)、模型大小、推理速度(speed)作為模型的評價標(biāo)準(zhǔn)。其中,推理速度(speed)指對單張甘蔗圖像的檢測時間。具體計算公式如下:
其中,TP為真實正樣本,F(xiàn)P為虛假正樣本,F(xiàn)N為虛假負樣本。
從表1可知,采用add操作實現(xiàn)的特征融合手段改進Neck結(jié)構(gòu)使模型準(zhǔn)確率P下降了0.2個百分點,召回率R、平均精度PA均提高了1.3個百分點;采用concat操作實現(xiàn)的特征融合改進Neck結(jié)構(gòu)使得模型準(zhǔn)確率P、召回率R和平均精度PA分別提高了0.9、1.3、1.4個百分點。因此,無論用哪種手段實現(xiàn)的跨層加權(quán)連接均能使模型平均精度得到提升,但二者使模型的參數(shù)量和復(fù)雜度有不同程度的增加,add操作實現(xiàn)的特征融合相比于concat操作在模型參數(shù)量上高出0.09 Mb,通過分析模型構(gòu)建過程可以解釋這種現(xiàn)象。在模型構(gòu)建時,需要將第12層、16層、22層進行特征融合,由于add操作需要保證不同層級特征圖通道數(shù)相同,所以融合之前需加入1×1卷積調(diào)整通道數(shù),使得本應(yīng)參數(shù)量較小的add操作比concat操作實現(xiàn)的特征融合多出一部分參數(shù)量。綜合考慮精度和參數(shù)量等因素,采用concat操作實現(xiàn)可學(xué)習(xí)的跨層級連接改進Neck結(jié)構(gòu)。
表1 不同融合手段的試驗結(jié)果Table 1 Comparison experiments of fusion means
為驗證上述改進后模型在復(fù)雜背景下甘蔗莖節(jié)識別過程中的優(yōu)化效果,進行了一系列消融試驗。首先通過添加學(xué)習(xí)權(quán)重的跨層連接改進頸部結(jié)構(gòu),然后將YOLOv5s的目標(biāo)置信度損失和邊框定位損失分別替換為Focal loss和EIoU損失函數(shù)。訓(xùn)練過程采用同樣的超參數(shù),試驗結(jié)果見表2。將頸部改進后,使網(wǎng)絡(luò)將淺層的邊緣信息進一步與提取后的深層語義信息相結(jié)合,模型對莖節(jié)的檢測也更加準(zhǔn)確,準(zhǔn)確率P提高0.9個百分點,平均精度PA提升1.4個百分點,參數(shù)量僅增加0.06 Mb。引入EIoU損失函數(shù)計算邊界回歸的損失函數(shù),改變了對預(yù)測框長和寬的懲罰方法,提高了模型邊界框的定位精度,在不增加參數(shù)量的情況下,較原模型準(zhǔn)確率P提高1.2個百分點,平均精度PA提高1.4個百分點。此外,引入Focal loss焦點損失函數(shù)后,解決正負樣本分布不均勻問題,使準(zhǔn)確率P提高了0.8個百分點。由表2可知,由于幾種改進措施都均未大幅增加模型參數(shù)和復(fù)雜度,故單張圖片推理時間幾乎沒有改變。
表2 YOLOv5s消融試驗Table 2 YOLOv5s ablation experiment
將改進后的YOLOv5s模型采用Ghost模塊替換不同位置的卷積進行訓(xùn)練并測試,對比不同參數(shù)量下的模型精度,評估模型性能,結(jié)果如表3所示,其中Baseline為經(jīng)過表2中的序列1、2、3分別改進后的YOLOv5s模型。經(jīng)比較可以看出,不論采用Ghost改進骨干網(wǎng)絡(luò)還是改進頸部,或者全部改進,均會使模型參數(shù)量和模型大小減小,但會導(dǎo)致模型的平均精度值有不同程度的降低。其中,對頸部替換的參數(shù)量較原模型減少1.34 Mb,模型大小減小3.1 Mb,準(zhǔn)確率P提高1.3個百分點,平均精度PA增長了1.4個百分點。雖然單張推理時間增加了2.9 ms,但仍滿足切種工作對于圖像處理時間的要求。因此,采用Ghost模塊對頸部Neck進行輕量化改進,能夠很好地兼顧檢測精度和模型參數(shù)量大小。
表3 Ghost模塊替換結(jié)果比較Table 3 Comparison of Ghost module replacement results
采用同一甘蔗數(shù)據(jù)集在同等硬件資源下對Fast?er R-CNN、YOLOv4-tiny、YOLOv3進行對比試驗。由表4可知,相比于YOLOv3和YOLOv4-tiny,雙階段算法Faster R-CNN在平均精度上性能優(yōu)于YO?LOv3和YOLOv4-tiny,但單張推理時間遠遠大于單階段算法YOLO。改進后的YOLOv5s模型相較于YOLOv3和YOLOv4-tiny,模型尺寸更小,平均精度更高,更適宜部署在計算資源有限的嵌入式硬件上。相比于原模型YOLOv5s,由于提升了網(wǎng)絡(luò)特征提取能力以及改進了損失函數(shù),使得改進后模型在雜亂背景下表現(xiàn)更好,平均精度更高。
表4 不同模型檢測結(jié)果對比Table 4 Comparison of detection results of different models
圖7為改進前后YOLOv5s在不同雜亂程度背景下莖節(jié)識別的效果圖,其中圖7A為改進前識別效果,圖7B為改進后識別效果。從圖7A可以看出,當(dāng)背景逐漸變得雜亂,未改進前模型存在著錯檢等問題。改進后YOLOv5s模型不但對干凈背景下莖節(jié)檢測效果準(zhǔn)確率提高,而且隨著背景逐漸雜亂,對莖節(jié)的檢測效果仍較好。
圖7 不同程度雜亂背景下檢測效果圖Fig.7 Detection effect under different degrees of clutter background
本研究針對甘蔗智能切種機作業(yè)過程中背景雜亂導(dǎo)致莖節(jié)識別困難等問題,提出了一種基于改進YOLOv5模型的莖節(jié)識別方法,通過將主干網(wǎng)絡(luò)與頸部同尺寸特征圖跨層加權(quán)連接提高特征提取能力,減少雜亂背景造成的精度下降;引入Focal loss替換交叉熵損失函數(shù)解決正負樣本比例失衡問題,并采用EIoU損失函數(shù)計算預(yù)測框回歸損失提高定位精度,最終結(jié)合Ghost模塊在保證模型精度的同時對模型進行輕量化改進。改進后的模型在甘蔗數(shù)據(jù)集上的準(zhǔn)確率達97.1%,較原模型提高了1.3個百分點,平均精度為97.80%,模型大小僅11.40 Mb,單張推理時間為16.9 ms。試驗結(jié)果表明,在雜亂背景下,改進后的算法能夠在兼顧模型大小的同時保證較高精度,為復(fù)雜工況下的防傷芽切種工作提供精確的定位信息。由于物距較大導(dǎo)致單個相機無法較好地完成整根甘蔗圖像的清晰采集,后續(xù)考慮減小物距并增加多組相機進行拍攝,通過圖像拼接得到整根甘蔗圖像,并進一步將模型部署在嵌入式設(shè)備上,最終完成真實環(huán)境下的切割任務(wù)。