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