高昂,盧傳兵,任龍龍,李玲,沈向,宋月鵬
(1. 山東農(nóng)業(yè)大學(xué)機(jī)械與電子工程學(xué)院,山東泰安,271018; 2. 山東省園藝機(jī)械與裝備重點(diǎn)實(shí)驗(yàn)室,山東泰安,271018; 3. 山東省煙臺(tái)市農(nóng)業(yè)技術(shù)推廣中心,山東煙臺(tái),264001;4. 山東農(nóng)業(yè)大學(xué)園藝科學(xué)與工程學(xué)院,山東泰安,271018)
蘋(píng)果是我國(guó)主要的大宗水果,在全國(guó)廣泛種植,目前無(wú)論是種植面積還是產(chǎn)量都居世界首位。隨著現(xiàn)代化果園的建立,對(duì)蘋(píng)果產(chǎn)生過(guò)程機(jī)械化和智能化提出了新的要求,其中在果樹(shù)管理中,開(kāi)花強(qiáng)度是決定疏花的關(guān)鍵因素[1],直接影響果實(shí)品質(zhì)。因此迫切需要實(shí)現(xiàn)蘋(píng)果花生長(zhǎng)狀態(tài)智能檢測(cè),代替?zhèn)鹘y(tǒng)人工識(shí)別,以增加檢測(cè)的客觀性和準(zhǔn)確率,從而提高蘋(píng)果園智能化作業(yè),提高經(jīng)濟(jì)效益。
隨著機(jī)器視覺(jué)技術(shù)的迅猛發(fā)展[1],國(guó)內(nèi)外學(xué)者運(yùn)用機(jī)器學(xué)習(xí)和圖像處理技術(shù)在蘋(píng)果花檢測(cè)中做了大量研究,陳國(guó)防等[2]研究了基于數(shù)據(jù)增強(qiáng)深度學(xué)習(xí)的蘋(píng)果花檢測(cè)方法,采用YOLO V4作為識(shí)別模型。楊其晟等[3]研究了改進(jìn)的YOLO V5蘋(píng)果花生長(zhǎng)狀態(tài)檢測(cè)方法,并對(duì)網(wǎng)絡(luò)進(jìn)行改進(jìn)以增加檢測(cè)精度。Sun等[4]對(duì)蘋(píng)果花、桃花和梨花輪廓進(jìn)行語(yǔ)義分割并確定當(dāng)前花瓣?duì)顟B(tài)。
以上研究采用深度學(xué)習(xí)技術(shù)對(duì)蘋(píng)果花生長(zhǎng)狀態(tài)進(jìn)行研究,但對(duì)于實(shí)際應(yīng)用領(lǐng)域輕量級(jí)識(shí)別模型適應(yīng)嵌入式設(shè)備的研究較少,因此需要解決輕量級(jí)網(wǎng)絡(luò)識(shí)別蘋(píng)果花的問(wèn)題。基于此,本文提出基于改進(jìn)的YOLOX 蘋(píng)果花生長(zhǎng)狀態(tài)檢測(cè)方法,在網(wǎng)絡(luò)中加入CBAM注意力機(jī)制模塊,采用EIOU作為模型的回歸函數(shù),在后處理階段引入Focal Loss損失函數(shù),在網(wǎng)絡(luò)模型參數(shù)較少的同時(shí)提高其識(shí)別精度,為實(shí)現(xiàn)蘋(píng)果花生長(zhǎng)狀態(tài)智能檢測(cè)提供技術(shù)支持。
本試驗(yàn)圖像數(shù)據(jù)采集點(diǎn)為山東農(nóng)業(yè)大學(xué)蘋(píng)果試驗(yàn)田(東經(jīng)117.122 96°,北緯36.200 713°),采集時(shí)間為2022年4月上旬,在白天的不同時(shí)間段采用榮耀20 s智能手機(jī)進(jìn)行蘋(píng)果花圖像采集,如圖1所示,該試驗(yàn)田蘋(píng)果品種為富士蘋(píng)果。同時(shí)為了方便后續(xù)的網(wǎng)絡(luò)模型訓(xùn)練,對(duì)采集后的蘋(píng)果花圖像進(jìn)行處理,首先統(tǒng)一縮放到608像素×608像素,并對(duì)圖像進(jìn)行數(shù)據(jù)增廣以增加圖像的廣泛性防止過(guò)擬合,最終得到蘋(píng)果花數(shù)據(jù)集為868張。
圖1 采集的蘋(píng)果花圖像
采用labelImg圖像標(biāo)注工具對(duì)圖像中的蘋(píng)果花進(jìn)行標(biāo)注[5],標(biāo)注后會(huì)生成蘋(píng)果花的分類(lèi)和坐標(biāo)信息并以文檔的形式存儲(chǔ),根據(jù)使用要求轉(zhuǎn)化成不同的格式。
YOLOX是一種典型的單階段目標(biāo)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu),相比雙階段目標(biāo)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu),單階段目標(biāo)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)檢測(cè)速度更快,檢測(cè)精度稍遜[6]。這為深度學(xué)習(xí)網(wǎng)絡(luò)的實(shí)際應(yīng)用提供了可能,YOLOV3使用全卷積網(wǎng)絡(luò)提取圖像特征,在網(wǎng)絡(luò)中大量使用了殘差結(jié)構(gòu),解決了梯度消失和梯度爆炸的問(wèn)題,同時(shí)YOLOV3采用了新的主干網(wǎng)絡(luò)DarkNet和新的優(yōu)化函數(shù)等,獲得了更快的檢測(cè)速度和檢測(cè)精度。
YOLOX目標(biāo)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)的出現(xiàn)進(jìn)一步提升該系列的檢測(cè)精度和速度。同樣,如圖2所示,YOLOX目標(biāo)檢測(cè)網(wǎng)絡(luò)也由四部分組成,分別為輸入、主干網(wǎng)絡(luò)、頸部和預(yù)測(cè)[7]。
圖2 YOLOX網(wǎng)絡(luò)結(jié)構(gòu)示意圖
輸入:在輸入階段YOLOX目標(biāo)檢測(cè)網(wǎng)絡(luò)采用了Mosaic和Mixup數(shù)據(jù)增強(qiáng)方法,兩種數(shù)據(jù)增強(qiáng)方法通過(guò)圖像隨機(jī)縮放、剪裁、自由拼接等操作有效提高數(shù)據(jù)的泛化能力。
主干網(wǎng)絡(luò):主干網(wǎng)絡(luò)是整個(gè)檢測(cè)模型的核心,負(fù)責(zé)將輸入的圖像進(jìn)行特征提取并輸出相應(yīng)的特征圖。YOLOX網(wǎng)絡(luò)使用CSPDarknet53網(wǎng)絡(luò),該網(wǎng)絡(luò)使用了Residual殘差網(wǎng)絡(luò),并在最后一層使用全連接層,具有很強(qiáng)的特征提取能力。
頸部:頸部是FPN特征金字塔的構(gòu)造,用于增強(qiáng)特征提取。FPN可以融合不同形狀的特征層,有助于提高模型的性能和小目標(biāo)的檢測(cè)能力[8]。
預(yù)測(cè):在預(yù)測(cè)階段YOLOX網(wǎng)絡(luò)使用解耦頭放棄了以往該系列使用的先驗(yàn)框,同時(shí)使用SimOTA策略,可以將正樣本動(dòng)態(tài)匹配到不同大小的對(duì)象。
1.3.1 添加Convolutional Block Attention Module(CBAM)注意力機(jī)制模塊
CBAM模塊是一種有效且輕量級(jí)的注意力模塊[9],在眾多的分類(lèi)網(wǎng)絡(luò)和目標(biāo)檢測(cè)網(wǎng)絡(luò)中表現(xiàn)優(yōu)異,在幾乎不影響網(wǎng)絡(luò)運(yùn)行速度的同時(shí)提升了分類(lèi)和檢測(cè)精度。CBAM模塊在給定中間特征圖的情況下沿著兩個(gè)獨(dú)立維度順序推導(dǎo)出注意力圖,然后將該圖與輸入特征圖相乘以進(jìn)行自適應(yīng)優(yōu)化[10],所以CBAM模塊結(jié)合了空間注意力模塊和通道注意力模塊,首先將特征圖導(dǎo)入通道注意力模塊,獲得相應(yīng)的注意力圖,輸入特征映射與注意力映射相乘,其輸出通過(guò)空間注意力模塊,在空間注意力模塊執(zhí)行通道注意力優(yōu)化后的特征映射與注意力映射相乘,最后輸出增加注意力的特征圖,表達(dá)式如式(1)和式(2)所示。
F′=Mc(F)×F
(1)
F″=Ms(F′)×F′
(2)
式中:F——輸入特征映射;
F′——通道注意力優(yōu)化后的特征映射;
Mc(F)—— 通道注意力輸出;
Ms(F′)—— 空間注意的輸出;
F″——注意力模塊的特征輸出。
在本文中使用預(yù)訓(xùn)練權(quán)重對(duì)模型訓(xùn)練能夠加快模型訓(xùn)練的速度,后期模型需要移植到嵌入式設(shè)備,因此對(duì)網(wǎng)絡(luò)結(jié)構(gòu)輸出的最后兩層輸出加入注意力機(jī)制,如圖3所示。
圖3 YOLOX加入注意力機(jī)制示意圖
1.3.2 優(yōu)化的損失函數(shù)
損失函數(shù)主要是評(píng)價(jià)網(wǎng)絡(luò)預(yù)測(cè)的準(zhǔn)確性和指導(dǎo)權(quán)重更新[11]。適合的損失函數(shù)能夠使得網(wǎng)絡(luò)訓(xùn)練收斂得更快,獲得的精度更高。YOLOX的損失函數(shù)主要由box_loss、obj_loss和cls_loss三部分組成,box_loss用來(lái)計(jì)算目標(biāo)框與真實(shí)框的位置信息差,obj_loss用來(lái)判斷目標(biāo)框中是否存在目標(biāo)物體,cls_loss用于監(jiān)督類(lèi)別分類(lèi),YOLOX的損失函數(shù)如式(3)所示。
Loss=box_loss+obj_loss+cls_loss
(3)
在YOLOX損失函數(shù)中,采用GIOU_Loss計(jì)算目標(biāo)框與真實(shí)框之間誤差的置信度損失,但是該函數(shù)具有一定的局限性,當(dāng)目標(biāo)框與真實(shí)框包含重合的時(shí)候,無(wú)法有效地檢測(cè)出重疊的目標(biāo)[12],由于蘋(píng)果花是聚集性的小目標(biāo),這對(duì)于蘋(píng)果花的檢測(cè)是不利的。因此,采用本文采用EIOU_Loss[13]提高檢測(cè)精度,該函數(shù)在CIOU的基礎(chǔ)上分別計(jì)算寬高的差異值取代了縱橫比,使得目標(biāo)框更接近真實(shí)框。
(4)
式中:EIOU_Loss——損失輸出;
IOU——重疊度;
b——預(yù)測(cè)框的中心點(diǎn);
bgt——預(yù)測(cè)框的中心點(diǎn);
c——預(yù)測(cè)框和真實(shí)框最小外接矩形對(duì)角線距離;
cw——覆蓋兩個(gè)框的最小外接矩形的寬度;
ch——覆蓋兩個(gè)框的最小外接矩形的長(zhǎng)度;
w——預(yù)測(cè)框的寬度;
wgt——預(yù)測(cè)框的長(zhǎng)度;
h——真實(shí)框的寬度;
hgt——真實(shí)框的長(zhǎng)度;
ρ——兩個(gè)中心點(diǎn)的歐氏距離。
本文蘋(píng)果花數(shù)據(jù)集,少部分圖像中由單個(gè)蘋(píng)果花組成在檢測(cè)中容易精確地檢出,大部分圖像中擁有多個(gè)擁簇的蘋(píng)果花組成增加了其檢測(cè)的難度,所以該數(shù)據(jù)集存在難易樣本不平衡的問(wèn)題。在YOLOX-s模型識(shí)別中應(yīng)該給予復(fù)雜蘋(píng)果花更多的關(guān)注度以增加模型的預(yù)測(cè)能力。為了解決此問(wèn)題,本文采用Focalloss代替YOLOX-s模型中分類(lèi)損失函數(shù),該函數(shù)計(jì)算公式如式(5)所示。
(5)
式中:Focalloss——分類(lèi)損失輸出;
p——模型的概率預(yù)測(cè);
α——平衡因子,用于平衡蘋(píng)果圖像正負(fù)樣本數(shù)量不均;
γ——縮放系數(shù),用于對(duì)單個(gè)蘋(píng)果花圖像樣本損失進(jìn)行縮放,使其更加關(guān)注擁簇蘋(píng)果花圖像樣本損失。
本試驗(yàn)在模型訓(xùn)練時(shí)候?qū)τ布筝^高,特別對(duì)GPU的使用能夠加速模型的訓(xùn)練,硬件試驗(yàn)環(huán)境處理平臺(tái)為聯(lián)想筆記本電腦,型號(hào)為Y9000p,處理器為Intel Pentium i5-12700H,主頻為3.5 GHz,GPU為GeForce GTX 3060 6G。軟件試驗(yàn)環(huán)境為Windows 10系統(tǒng),計(jì)算機(jī)編程語(yǔ)言為Python 3.8,機(jī)器學(xué)習(xí)庫(kù)為Pytorch 1.10.0,并行計(jì)算架構(gòu)為CUDA10.2。
在本文中,為了對(duì)訓(xùn)練的模型進(jìn)行性能分析和評(píng)價(jià),采用精確度(Precision),召回率(Recall),平均精度(Average Precision,AP)作為評(píng)價(jià)性指標(biāo),精確度、召回率和平均精度的計(jì)算公式如式(6)~式(8)所示。
(6)
(7)
(8)
式中:P——精確度;
R——召回率;
AP——平均精度;
TP——真陽(yáng)性,被正確預(yù)測(cè)為正樣本的數(shù)量;
TN——真陰性,負(fù)樣本被預(yù)測(cè)為負(fù)樣本的數(shù)量;
TP——假陽(yáng)性,負(fù)樣本被預(yù)測(cè)為正樣本的數(shù)量;
FN——假陰性,正樣本被預(yù)測(cè)為負(fù)樣本的數(shù)量。
2.3.1 蘋(píng)果花識(shí)別模型訓(xùn)練分析
通過(guò)對(duì)YOLOX-s增加注意力機(jī)制,對(duì)YOLOX-s的損失函數(shù)進(jìn)行優(yōu)化,模型識(shí)別蘋(píng)果花的精確度得到了提升。為了驗(yàn)證本文模型訓(xùn)練的有效性,對(duì)改進(jìn)后的損失值和平均精確度進(jìn)行可視化操作,繪制訓(xùn)練過(guò)程的損失曲線圖和mAP變化圖。圖4(a)為模型訓(xùn)練Loss損失圖,圖4(b)為模型訓(xùn)練mAP圖,由圖4(a)可知,經(jīng)過(guò)多輪次的模型訓(xùn)練,損失函數(shù)曲線呈下降趨勢(shì),在訓(xùn)練后期模型的損失值都小于0.002,并且趨于平緩,由圖4(b)可知,在訓(xùn)練初期模型的識(shí)別精度較低,在訓(xùn)練后期mAP值逐漸提高并趨于穩(wěn)定在0.9的附近證明模型訓(xùn)練是有效的。
(a) 模型訓(xùn)練Loss損失圖
2.3.2 不同模型驗(yàn)證分析
為對(duì)本文模型的性能進(jìn)行驗(yàn)證,采用Faster RCNN[14]、YOLO V3、YOLO V5[15]、YOLOX先進(jìn)目標(biāo)檢測(cè)模型對(duì)數(shù)據(jù)集進(jìn)行測(cè)試,在試驗(yàn)條件相同的情況下,將模型參數(shù)調(diào)至最優(yōu),試驗(yàn)結(jié)果如表1所示。
表1 不同模型試驗(yàn)結(jié)果Tab. 1 Different model test results
由表1可知,本文模型在蘋(píng)果花生長(zhǎng)狀態(tài)識(shí)別中各項(xiàng)指標(biāo)超過(guò)85%,通過(guò)對(duì)YOLOX模型改進(jìn)和優(yōu)化,相比YOLO模型精確度提高了0.5%,召回率提高了6.19%,平均精度提高了4.28%。通過(guò)與其他模型的對(duì)比,在測(cè)試中Faster RCNN的精確度最低為76%,召回率為87.16%,平均精度為85.79%,對(duì)比發(fā)現(xiàn)經(jīng)過(guò)單階目標(biāo)YOLO系列模型的發(fā)展檢測(cè)精度上已經(jīng)超越雙階段目標(biāo)檢測(cè),在對(duì)比YOLO V3、YOLO V5-s、YOLOX-s和本文模型,YOLOX-s模型在本文數(shù)據(jù)集的表現(xiàn)優(yōu)于YOLO V3、YOLO V5-s,在平均精度指標(biāo)中YOLOX-s相比YOLO V5-s提高1.42%。所以通過(guò)系列模型的對(duì)比充分證明改進(jìn)后模型的優(yōu)越性。
2.3.3 改進(jìn)模型驗(yàn)證分析
本文在檢測(cè)頭網(wǎng)絡(luò)結(jié)構(gòu)輸出的最后兩層特征圖輸出中加入注意力機(jī)制,為了驗(yàn)證加入注意力機(jī)制后模型的檢測(cè)性能,在不改變其它優(yōu)化參數(shù)的前提下對(duì)是否加入注意力機(jī)制的YOLOX-s模型進(jìn)行了比較,結(jié)果如表2所示。由表2可以看出,加入CBAM注意力模塊提高了模型的檢測(cè)性能,平均精度提升了1.66%。
表2 加入CBAM注意力模塊試驗(yàn)結(jié)果Tab. 2 Experimental results of adding CBAM attention module
不同數(shù)據(jù)集適用的損失函數(shù)不同,本文對(duì)比了GIOU、CIOU、EIOU不同激活函數(shù),不同置信度損失函數(shù)FocalLoss、VariFocalLoss對(duì)模型的影響,結(jié)果如表3所示。由表3可知,不同的損失函數(shù)表現(xiàn)力不同,其中表現(xiàn)最優(yōu)為EIOU+FocalLoss模型,最終平均精度為94.4%,相比表現(xiàn)最低的CIOU+Vari模型平均精度提高4.78%,在精確度指標(biāo)中表現(xiàn)最優(yōu)的是YOLOX-s-CIOU-Focal為93.32%,在召回率指標(biāo)中表現(xiàn)最優(yōu)的是YOLOX-s-GIOU-Vari為91.25%,說(shuō)明本文優(yōu)化后的回歸損失函數(shù)和置信度損失函數(shù)是有效的。
表3 不同損失函數(shù)模型試驗(yàn)結(jié)果Tab. 3 Model test results of different loss functions
2.3.4 可視化驗(yàn)證分析
采用相同的測(cè)試圖片對(duì)改進(jìn)前后的模型進(jìn)行測(cè)試并進(jìn)行可視化,如圖5所示。圖5(a)為YOLOX的檢測(cè)效果圖,圖5(b)為改后優(yōu)化后的本文模型檢測(cè)效果圖。由測(cè)試圖看出兩者都沒(méi)有出現(xiàn)漏檢的情況,改進(jìn)優(yōu)化后的模型在識(shí)別精度上有所提高,標(biāo)框位置更精確。在一張圖像中有多個(gè)蘋(píng)果花重疊的時(shí)候,改進(jìn)后的模型識(shí)別效果更好,識(shí)別精度更高,重疊的蘋(píng)果花檢出的正確率也更高。
(a) YOLOX-s測(cè)試圖
1) 本文基于蘋(píng)果園智能化疏花對(duì)蘋(píng)果花無(wú)損檢測(cè)的應(yīng)用場(chǎng)景,研究了基于改進(jìn)YOLO-s的蘋(píng)果花生長(zhǎng)狀態(tài)檢測(cè),使之能夠應(yīng)用到邊緣設(shè)備對(duì)蘋(píng)果園的蘋(píng)果花進(jìn)行檢測(cè)從而指導(dǎo)智能化疏花精準(zhǔn)決策。
2) 通過(guò)對(duì)蘋(píng)果花圖像進(jìn)行采集,劃分和擴(kuò)充建立了復(fù)雜背景下蘋(píng)果花生長(zhǎng)狀態(tài)數(shù)據(jù)集。并利用該數(shù)據(jù)集進(jìn)行基于YOLOX-s識(shí)別網(wǎng)絡(luò)模型訓(xùn)練,在網(wǎng)絡(luò)中加入CBAM注意力機(jī)制模塊能有效地提取蘋(píng)果花特征網(wǎng)絡(luò),優(yōu)化了模型的損失函數(shù)采用Focalloss作為YOLOX-s模型中分類(lèi)損失函數(shù),采用EIOU代替原模型的回歸函數(shù),提高模型的分類(lèi)精度和對(duì)擁簇蘋(píng)果花的檢測(cè)能力。改進(jìn)后的模型相比未進(jìn)行改進(jìn)的模型平均精度提升4.28%,結(jié)果證明基于改進(jìn)YOLOX-s模型的檢測(cè)精確度能夠滿足使用要求。
中國(guó)農(nóng)機(jī)化學(xué)報(bào)2023年8期