彭 炫 ,周建平 ※,許 燕 ,席光澤
(1. 新疆大學(xué)機(jī)械工程學(xué)院,烏魯木齊 830017;2. 新疆維吾爾自治區(qū)農(nóng)牧機(jī)器人及智能裝備工程研究中心,烏魯木齊 830017)
棉花是中國僅次于糧食的第二大作物,是關(guān)系到國計(jì)民生的重要資源。近年來,棉花種植主要依靠人工,勞動(dòng)力短缺、機(jī)械智能化生產(chǎn)程度低等問題仍需解決,因此中國的棉花產(chǎn)量仍有很大提升空間[1-5]。棉花打頂是棉田作業(yè)過程中的重要環(huán)節(jié),脫離人工打頂促進(jìn)智能機(jī)械化打頂是降低成本、提升棉花生產(chǎn)效率的重要手段。對(duì)于棉花打頂機(jī)器人的設(shè)計(jì),首要任務(wù)是解決復(fù)雜棉田環(huán)境中不損傷棉花蕾,精準(zhǔn)驅(qū)動(dòng)激光去除頂芽是其重中之重,因此精準(zhǔn)識(shí)別定位棉花頂芽是關(guān)鍵環(huán)節(jié)。
近年來,隨著Fast R-CNN、YOLO 系列等[6-9]經(jīng)典目標(biāo)檢測算法不斷迭代更新,其迅速在各個(gè)領(lǐng)域得到了廣泛應(yīng)用。國內(nèi)外研究學(xué)者針對(duì)目標(biāo)檢測技術(shù)在農(nóng)業(yè)領(lǐng)域的應(yīng)用進(jìn)行了廣泛的研究。KOIRALA 等[10]為驗(yàn)證芒果發(fā)育階段影響開花數(shù)量,使用YOLOv3 算法在芒果發(fā)育階段自動(dòng)檢測圓錐花序數(shù)量,但YOLOv3 檢測物體的實(shí)時(shí)性較慢。劉海濤等[11]為實(shí)現(xiàn)非接觸、低成本、精準(zhǔn)識(shí)別棉花頂芽,提出一種基于YOLOv4 模型的復(fù)雜環(huán)境下棉花頂芽識(shí)別方法,然而該設(shè)計(jì)對(duì)頂芽了解不夠全面,并沒有對(duì)頂芯進(jìn)行識(shí)別,造成頂芽識(shí)別率過低,打頂效果不佳。JIA 等[12-13]改進(jìn)了Mask RCNN 算法,提升了樹葉遮擋等復(fù)雜環(huán)境下蘋果識(shí)別的準(zhǔn)確度,但是Mask RCNN 模型為一階段檢測模型,較比YOLO 模型檢測效率較低。朱旭等[14]采用Fast R-CNN 模型算法在惡劣環(huán)境下對(duì)藍(lán)莓進(jìn)行識(shí)別,目標(biāo)檢測準(zhǔn)確率和效率明顯提高,但是Fast R-CNN 算法需要采集大量的數(shù)據(jù)訓(xùn)練模型,在樣本不足的時(shí)檢測準(zhǔn)確度明顯降低。李天華等[15-16]設(shè)計(jì)了一種基于YOLOv4 的改進(jìn)算法,實(shí)現(xiàn)了對(duì)復(fù)雜環(huán)境下的番茄識(shí)別定位,能夠有效解決果實(shí)遮擋、光照影響下番茄識(shí)別準(zhǔn)確率低的問題,但訓(xùn)練成本過大,檢測幀數(shù)過低,模型計(jì)算量過大,不便于模型輕量化運(yùn)行。CHEN等[17]為提升茶蕾識(shí)別定位精度,保證茶蕾采摘的完整率,設(shè)計(jì)了一種基于YOLOv3 的改進(jìn)茶蕾識(shí)別算法模型,該模型能在光照變化和部分遮擋等復(fù)雜環(huán)境下識(shí)別茶蕾并定位采摘點(diǎn)。茶蕾與棉花頂芽同樣是小目標(biāo)農(nóng)作物,但YOLOv3 檢測算法對(duì)小目標(biāo)提取效果并不理想,該算法識(shí)別的準(zhǔn)確率有待加強(qiáng)。薛月菊等[18]針對(duì)果園場景下光照的多樣性、背景的復(fù)雜性及芒果與樹葉顏色的高度相似性,特別是樹葉和枝干對(duì)果實(shí)遮擋及果實(shí)重疊等問題,提出了改進(jìn)YOLOv2 檢測方法,但由于YOLOv2 模型過大,識(shí)別效果和檢測速度不夠理想。樊湘鵬等[19]為建立高效、準(zhǔn)確的葡萄葉部病害檢測系統(tǒng),引入遷移學(xué)習(xí)機(jī)制,利用大型公開數(shù)據(jù)集對(duì)VGG16 模型預(yù)訓(xùn)練,保持模型前端13 個(gè)層等參數(shù)和權(quán)重不變,對(duì)全連接層和分類層改進(jìn)后利用新數(shù)據(jù)集微調(diào)訓(xùn)練模型,雖然能夠完成對(duì)葡萄葉部病蟲害識(shí)別,但訓(xùn)練成本過大,檢測速度較慢。
基于此,上述研究學(xué)者在目標(biāo)檢測技術(shù)存在小目標(biāo)檢測精度低、實(shí)時(shí)檢測慢、模型計(jì)算量大等問題,本文對(duì)復(fù)雜環(huán)境下對(duì)棉花頂芯識(shí)別為研究對(duì)象,本文選用YOLOv5s 模型,針對(duì)以上述問題進(jìn)行優(yōu)化,設(shè)計(jì)一種基于YOLOv5s 的改進(jìn)棉花頂芽識(shí)別模型,為棉花機(jī)械化打頂提供視覺識(shí)別研究基礎(chǔ)。
棉花頂芽數(shù)據(jù)采集地于新疆生產(chǎn)建設(shè)兵團(tuán)第八師143 團(tuán)棉花基地,品種為新路早50,采集設(shè)備為索尼A7M3 全高清攝像機(jī),為采集真實(shí)環(huán)境的復(fù)雜棉花頂芽數(shù)據(jù),不同光照和不同天氣條件下均分為單株頂芽、多株頂芽、遮擋頂芽3 種類別進(jìn)行拍攝,共采集到1 360張頂芽圖像,經(jīng)篩選后得到506 張清晰頂芽圖像(其中不同光照156 張,不同天氣150 張,不同遮擋頂芽面積200 張),經(jīng)數(shù)據(jù)增強(qiáng)(平移、翻轉(zhuǎn)、剪切、降噪、縮放比例、亮度增強(qiáng))擴(kuò)充到3 103 張圖像,隨機(jī)抽取2 663 張作為訓(xùn)練集,240 張作為驗(yàn)證集,200 張作為測試集,圖1 為棉花頂芽樣本數(shù)據(jù)。
使用YOLOv5s 目標(biāo)檢測算法對(duì)棉花頂芽數(shù)據(jù)集進(jìn)行訓(xùn)練,在復(fù)雜環(huán)境下棉花頂芽識(shí)別效果并不理想。隨著網(wǎng)絡(luò)層的加深,小目標(biāo)信息逐漸丟失,同時(shí)由于YOLOv5s 算法中原有3 個(gè)檢測頭,對(duì)多尺度目標(biāo)特征信息提取效果不佳,尤其對(duì)棉花頂芽小目標(biāo)檢測識(shí)別會(huì)出現(xiàn)錯(cuò)檢漏檢的問題。為了實(shí)現(xiàn)頂芽較好的檢測效果,以YOLOv5s 目標(biāo)檢測算法為基礎(chǔ),將主干網(wǎng)絡(luò)得第2 層引出第4 個(gè)目標(biāo)檢測頭,因淺層含有特征信息更加豐富,為避免隨著網(wǎng)絡(luò)加深信息丟失,將淺層與深層提取到的特征信息進(jìn)行融合,解決小目標(biāo)特征信息隨著網(wǎng)絡(luò)結(jié)構(gòu)加深信息丟失問題,避免特征提取不充分。由于在改進(jìn)的YOLOv5s 結(jié)構(gòu)中增加目標(biāo)檢測層會(huì)使模型的計(jì)算量加大,因此在原有目標(biāo)檢測網(wǎng)絡(luò)中,需要設(shè)計(jì)一種既能解決模型參數(shù)量問題又能解決對(duì)小目標(biāo)提取效果好的模塊來代替C3 模塊。經(jīng)試驗(yàn)分析,CPP-CBAM 注意力機(jī)制為最佳模塊,將CPP-CBAM 加入到第13 層得到棉花頂芽最佳目標(biāo)檢測模型,圖2 為YOLOv5-CPP 目標(biāo)檢測模型改進(jìn)結(jié)構(gòu)圖。
圖2 YOLOv5-CPP 模型結(jié)構(gòu)圖Fig.2 The YOLOv5-CPP model structure figure
CPP-CBAM 注意力機(jī)制模塊如圖3 所示,C3 卷積核結(jié)構(gòu)分為兩個(gè)分支,第一分支將特征圖先升維后降維然后與第二分支網(wǎng)絡(luò)進(jìn)行特征融合,特征融合后特征圖再進(jìn)入通道模塊,最大池化層Maxpool 以及平均池化層AvgPool 將特征圖變成兩個(gè)矩陣[C,1,1]的權(quán)重向量,兩個(gè)拼接的權(quán)重向量經(jīng)過MLP 網(wǎng)絡(luò)獲取到通道的權(quán)重值,增加原特征圖的特征通道數(shù),通道數(shù)得到兩個(gè)激活函數(shù),將兩個(gè)輸出結(jié)果的每個(gè)元素相加,再由Sigmoid 激活函數(shù)過濾掉冗余過多頂芽特征,按權(quán)重重要程度先進(jìn)行篩選特征圖,篩選出的特征圖在再經(jīng)過空間模塊Maxpool最大池化以及平均池化層AvgPool,形成一個(gè)[1,H,W]的權(quán)重向量,由于CBAM 模塊多數(shù)經(jīng)過1×1 卷積核、最大池化層以及平均池化層操作,能夠壓縮特征通道維度,將復(fù)雜的模型特征通道數(shù)大大減少,達(dá)到增加注意力機(jī)制后,目標(biāo)檢測模型參數(shù)也減少的目的。
圖3 注意力機(jī)制圖Fig.3 Attention mechanism figure
機(jī)械打頂作業(yè)過程中由于棉田環(huán)境復(fù)雜,棉花頂芽被葉片嚴(yán)重遮擋,給機(jī)器對(duì)頂芽識(shí)別帶來困難,為了使預(yù)測框回歸到真實(shí)框速度加快,因此考慮將CIOU[20]損失函數(shù)替換為SIOU[21]損失函數(shù)。GIOU[22]、DIOU[23]、CIOU 損失函數(shù)只考慮了預(yù)測框與真實(shí)框的寬高比,并沒有考慮到它們之間的方向,易退化成IOU 損失函數(shù),導(dǎo)致頂芽識(shí)別率精確度下降,式(1)SIOU 損失函數(shù)引入了真實(shí)框與預(yù)測框之間的向量角,其包含式(2)角度損失函數(shù)式、式(3)距離損失函數(shù)式、式(4)形狀損失函數(shù)。
式中 γ為賦予時(shí)間的距離值,ρx為真實(shí)框與預(yù)測框中心點(diǎn)和最小外接框?qū)挶戎档钠椒?,ρy為真實(shí)框與預(yù)測框中心點(diǎn)和最小外接框高比值的平方,式(3)θ為控制對(duì)形狀損失的關(guān)注程度,t、w、h代表真實(shí)框與預(yù)測框的寬與高,為預(yù)測框的寬與高,接近4 才能避免過度關(guān)注形狀損失函數(shù)。
試驗(yàn)運(yùn)行環(huán)境操作系統(tǒng)為 Windows 10(64 位),內(nèi)存為16 GB,顯卡驅(qū)動(dòng) RTX2060 SUPRER,搭載12 th Gen Intel(R) Core(TM) i5-9400F 2.90 GHz 處理器,編程平臺(tái)Anaconda 4.12.0,CUDA 11.6,開發(fā)環(huán)境 PyTorch,編程使用Python3.8,通過精確率(Precision,P),召回率(Recall,R)。
式中TP表示正樣本預(yù)測出來正確的框,F(xiàn)P表示負(fù)樣本預(yù)測出正樣本的框,F(xiàn)N表示從正樣本預(yù)測出負(fù)樣本的數(shù)量,TP+FP表示正樣本預(yù)測出來正確的框加上負(fù)樣本預(yù)測出正樣本的框,也就是表示預(yù)測框的個(gè)數(shù)。TP+FN表示正樣本預(yù)測出來正確的框加上正樣本預(yù)測出負(fù)樣本的數(shù)量也就是標(biāo)注框的個(gè)數(shù)。
為測試出YOLOv5s 模型的最佳內(nèi)部參數(shù),即不同批量大小對(duì)YOLOv5s 的影響,在訓(xùn)練時(shí)利用github 官網(wǎng)提供的 YOLOv5.pt 預(yù)訓(xùn)練權(quán)重,通過自制YOLO 格式棉花頂芽數(shù)據(jù)集,模型設(shè)置圖像大小為640×640 分辨率,訓(xùn)練輪次設(shè)置為150,以及初始學(xué)習(xí)率為0.01,采用Adam 優(yōu)化器,分別設(shè)置不同批量大小分別為10、12、15、17、20、25 進(jìn)行訓(xùn)練,試驗(yàn)結(jié)果如表1 所示。通過數(shù)據(jù)對(duì)比可以看出,在相同迭代周期內(nèi),批量Batch size 設(shè)置為20 時(shí)效果最好,即使平均準(zhǔn)確率mAP 達(dá)到了90.3%,圖片測試驗(yàn)證效果可看出,未改進(jìn)的目標(biāo)檢測模型仍有提升空間。
表1 內(nèi)部參數(shù)對(duì)模型的影響Table 1 Effect of batch size on model
為測試不同注意力機(jī)制對(duì)模型的影響,分別將不同注意力機(jī)制加入到Y(jié)OLOV5s 目標(biāo)檢測模型第13 層,將C3 模塊更換為SE、BotNet[24]、CotNet[25]、C2f、CCA、CCP-CBAM 6 種注意力機(jī)制模塊,YOLOv5-CPP 與其他5 種模型對(duì)比結(jié)果如表2 所示,YOLOv5-CPP 檢測平均準(zhǔn)確率mAP 上升2.5、1.6、1.7、0.8、1.4 個(gè)百分點(diǎn),而YOLOv5-SE、YOLOv5-BotNet、YOLOv5-CotNet、YOLOv5-CCA 這4 種模型檢測單株頂芽的平均精度值分別降低了1.1、0.1、0.3、0.4 個(gè)百分點(diǎn),說明在棉花頂芽數(shù)據(jù)集上SE、BotNet、CotNet、CCA 注意力機(jī)制抑制了棉花頂芽的通道特征,造成總體識(shí)別頂芽精度下降,相反YOLOv5-CPP 精度上升比例最大,進(jìn)一步說明了CPPCBAM 自注意力機(jī)制經(jīng)過空間模塊與通道模塊,對(duì)重要特征進(jìn)行數(shù)值編碼,強(qiáng)化了各特征之間的關(guān)系,降低了對(duì)全局注意力計(jì)算的結(jié)果,更加注重頂芽特征,因此CPP-CBAM 注意力機(jī)制在3 種樣本上效果均有所改善,尤其是對(duì)遮擋頂芽這種數(shù)量多的樣本改善效果更加明顯,因此得出CPP-CBAM 注意力機(jī)制既能夠解決在復(fù)雜情況下對(duì)小目標(biāo)在復(fù)雜環(huán)境下的特征提取任務(wù)。
表2 各個(gè)注意力機(jī)制模型對(duì)比Table 2 Comparison of attention mechanism models
為測試CPP-CBAM 注意力機(jī)制對(duì)模型的影響,本試驗(yàn)通過將注意力機(jī)制CPP-CBAM 插入到不同網(wǎng)絡(luò)層中,測試出模型的檢測速度與平均準(zhǔn)確率,試驗(yàn)效果見表3,第13 層分別加入CPP-CBAM 注意力機(jī)制之后,較比插入到1、3、5、9、20 層平均準(zhǔn)確率mAP 明顯有所提升,因?yàn)殡S著網(wǎng)絡(luò)加深,第13 層C3 模塊對(duì)特征圖處理效果較比CPP-CBAM 注意力機(jī)制特征提取能力較弱,淺層小目標(biāo)信息較為豐富,C3 模型尚且能夠?qū)π∧繕?biāo)信息特征進(jìn)行提取,但是隨著網(wǎng)絡(luò)加深小目標(biāo)信息丟失,C3 模塊逐漸對(duì)小目標(biāo)的特征提取效果不理想,因此可以推出第13 層插入CPP-CBAM 注意力機(jī)制效果最佳。
表3 不同層加入注意力機(jī)制對(duì)模型的影響Table 3 The effect of different layers adding attention mechanisms on the model
與其他模型對(duì)比結(jié)果見表4 所示,
表4 各個(gè)檢測模型對(duì)比Table 4 Comparison of each loss function
為驗(yàn)證YOLOv5-CPP 模型在棉花頂芽數(shù)據(jù)集上檢測效果,本文分將YOLOv3[26]、YOLOv5s、YOLOv6[27]、Fast-RCNN 這4 種網(wǎng)絡(luò)模型在棉花頂芽數(shù)據(jù)集上進(jìn)行訓(xùn)練,在相同迭代次數(shù)內(nèi),YOLOv3、YOLOv5s、YOLOv6、Fast-RCNN 這4 種網(wǎng)絡(luò)模型對(duì)數(shù)據(jù)集進(jìn)行提取特征的效果并不理想,進(jìn)一步說明網(wǎng)絡(luò)模型中模型對(duì)頂芽部分特征提取不到位,導(dǎo)致檢測精度不高。將CPP-CBAM 注意力機(jī)制加入到Y(jié)OLOv5s 模型中,并改進(jìn)邊界框回歸損失函數(shù),對(duì)比4 種網(wǎng)絡(luò)模型在棉花頂芽的訓(xùn)練情況,得出改進(jìn)YOLOv5s 的mAP 值比YOLOv3、YOLOv5s、YOLOv6s、Faster-RCNN-tiny 模型分別高出3.3、2、2.4、2.1 個(gè)百分點(diǎn),同時(shí)模型參數(shù)量分別減少57.3、3.5、34.1、26.3 MB,但檢測速度并未達(dá)到實(shí)時(shí)檢測棉花頂芽的幀率。
為測試YOLOv5-CPP 模型移植到試驗(yàn)樣機(jī)實(shí)時(shí)檢測頂芽的效果,將YOLOv5-CPP 與YOLOv5s、YOLOv5-CotNet、YOLOv5-BotNet 3 種模型進(jìn)行對(duì)比分析,4 種模型檢測棉田同一區(qū)域被遮擋頂芽,如圖4 所示。通過測試頂芽圖可以發(fā)現(xiàn),YOLOv5s、YOLOv5-BotNet、YOLOv5-CotNet 模型識(shí)別遮擋的頂芽分別漏檢頂芽個(gè)數(shù)為5、5、2,同時(shí)YOLOv5-BotNet 錯(cuò)檢1 個(gè)頂芽,YOLOv5-CPP 檢測模型(圖4d)較比 YOLOv5-CotNet檢測模型(圖4c)檢測遮擋的頂芽,平均準(zhǔn)確度mAP分別提升15、29 個(gè)百分點(diǎn),YOLOv5-CPP 模型魯棒性進(jìn)一步加強(qiáng),模型識(shí)別準(zhǔn)確度大幅度提升,同時(shí)在TensorRT 加速情況下檢測速度達(dá)到了52 幀/s,滿足實(shí)時(shí)檢測的效果,在遮擋情況下的頂芽基礎(chǔ)上識(shí)別率、模型的魯棒性進(jìn)一步提升,驗(yàn)證了對(duì)遮擋情況的下頂芽有提升的效果。
本文在復(fù)雜環(huán)境識(shí)別遮擋下的棉花頂芽,建立不同不同光照和不同天氣條件下的棉花頂芽樣本,通過增加小目標(biāo)檢測層提高淺層與深層的特征融合,提升檢測精度通過增加小目標(biāo)檢測層,并且添加注意力機(jī)制,同時(shí)改進(jìn)Focss Loss 損失函數(shù),提升棉花頂芽樣本識(shí)別率,并通過棉花打頂平臺(tái)驗(yàn)證不同檢測模型對(duì)棉花頂芽識(shí)別,得到以下幾個(gè)結(jié)論:
1)通過在模型特征提取層增加小目標(biāo)檢測層以及YOLOv5-CPP 并 與 YOLOv5-SE、YOLOv5-BotNet、YOLOv5-CotNet、YOLOv5-C2f、YOLOv5-CCA 5 種 模型進(jìn)行對(duì)比,平均準(zhǔn)確度mAP 分別提高了2.5、1.6、1.7、0.8、1.4 個(gè)百分點(diǎn),尤其在識(shí)別被遮擋頂芽平均精度AP分別提高了4.3、4.4、4.3、1.9、1.9 個(gè)百分點(diǎn),充分驗(yàn)證在模型特征提取層增加 CPP-CBAM 注意力機(jī)制能夠完成在復(fù)雜情況下的頂芽精確識(shí)別。
2)本文通過對(duì)YOLOv5 模型改進(jìn),YOLOv5-CPP 不均衡各類樣本 檢測精度mAP 達(dá)到了92.8%,比YOLOv5s模型提高了2 個(gè)百分點(diǎn),與YOLOv3、YOLOv6、Fast RCNN 相比,mAP 分別提高了3.3、2.4、2.1 個(gè)百分點(diǎn),分析得出YOLOv5-CPP 對(duì)復(fù)雜情況下樣本檢測優(yōu)勢明顯。
YOLOv5-CPP 模型在復(fù)雜背景下識(shí)別精度、魯棒性大幅度提升,模型的檢測速度雖然降低,但YOLOv5-CPP 模型通過 TensorRT 加速后經(jīng)過實(shí)地驗(yàn)證后可以滿足棉花打頂實(shí)時(shí)識(shí)別檢測要求,而且對(duì)于棉花打頂機(jī)而言,在保證識(shí)別準(zhǔn)確率的前提下,提升速度指標(biāo),是保障機(jī)械作業(yè)效率的前提,為模型在棉花打頂機(jī)械上的遷移部署提供技術(shù)支持。