黃彤鑌,黃河清,李震,3,4,呂石磊,3,4,薛秀云,代秋芳,溫威
1.華南農(nóng)業(yè)大學(xué)電子工程學(xué)院(人工智能學(xué)院),廣州 510642;2.國家柑橘產(chǎn)業(yè)技術(shù)體系機械化研究室,廣州 510642;3.廣東省農(nóng)情信息監(jiān)測工程技術(shù)研究中心,廣州 510642;4.人工智能與數(shù)字經(jīng)濟廣東省實驗室(廣州),廣州 510330;5.華南農(nóng)業(yè)大學(xué)工程基礎(chǔ)教學(xué)與訓(xùn)練中心,廣州 510642
隨著智慧農(nóng)業(yè)的快速普及,我國柑橘產(chǎn)業(yè)智能化正快速發(fā)展,果園產(chǎn)量預(yù)測和機器人自動采摘[1-2]等成為研究熱點??焖倬_識別柑橘果實目標對實現(xiàn)果園柑橘自動采摘、柑橘產(chǎn)量預(yù)測以及柑橘產(chǎn)業(yè)智能化管理具有重要意義。只有當柑橘果實識別效果達到一定精度,機器人采摘才能優(yōu)于手動采摘,因此,提高檢測精度至關(guān)重要。
近年來,針對柑橘果實識別問題,國內(nèi)外相關(guān)文獻基于傳統(tǒng)機器學(xué)習(xí)算法提出許多解決方法。熊俊濤等[3]利用K-means聚類算法實現(xiàn)柑橘果實分割,該方法復(fù)雜情況下識別效果較差。盧軍等[4]提出分層輪廓分析算法檢測樹上綠色柑橘,其算法時間效率不高。畢松等[5]利用多重分割法提出了柑橘視覺識別模型,模型平均準確率為86.6%,復(fù)雜情況下檢測效果較差。鄒繼欣等[6]、周洪剛等[7]利用色差分析實現(xiàn)柑橘分割,其算法受噪聲影響較大。
傳統(tǒng)機器視覺算法在復(fù)雜場景下魯棒性差,很難滿足實際工作需要。近年來,越來越多研究人員將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于農(nóng)業(yè)檢測領(lǐng)域,體現(xiàn)出巨大的 算 法 優(yōu) 勢 ,標 志 性 算 法 有 RCNN[8]、Faster-RCNN[9]、SSD[10]、YOLO[11]等。顧偉等[12]利用改進SSD模型對群體棉籽進行識別,提高了對尺寸較小物體的檢測精度。楊萬里等[13]運用SegNet和Faster-RCNN對盆栽水稻稻穗進行分割與計數(shù)。薛月菊等[14]提出基于改進 YOLOv2[15]的未成熟芒果識別方法。唐熔釵等[16]針對識別果園百香果提出改進YOLOv3網(wǎng)絡(luò)模型[17],識別精度達到97.5%。呂石磊等[18]提出基于改進YOLOv3-Lite輕量型柑橘識別方法,提高模型識別精度,增強算法的魯棒性。陳文康等[19]提出改進YOLOv4[20]的柑橘檢測方法,但該方法模型較大,檢測速度較慢。
為解決上述模型存在的檢測速度較慢、檢測條件要求較高等問題,本研究通過改進YOLOv5網(wǎng)絡(luò)模型,融入CBAM(convolutional block attention module,卷積注意力模塊)注意力機制模塊[21]增強網(wǎng)絡(luò)提取圖像特征的能力,并引入α-IoU[22]損失函數(shù),提出一種改進YOLOv5神經(jīng)網(wǎng)絡(luò)的柑橘果實識別方法,旨在為快速精確識別柑橘果實目標提供新的思路。
柑橘圖像的采集地為湖南省郴州市宜章縣柑橘種植園,使用數(shù)碼相機、高清手機等設(shè)備在自然光照下拍攝柑橘樹冠圖像,并采集樹冠下方含陰影的果實。為獲得不同距離下的柑橘圖像,分別在距離果樹0.5、1.0、2.0 m地方對每棵果樹進行拍攝,共采集889張柑橘原始圖片,圖片中柑橘目標均為成熟果實。圖片包括陰天、晴天,涵蓋順光、逆光等所有光照情況。
為防止訓(xùn)練數(shù)據(jù)量過少發(fā)生過擬合現(xiàn)象,本研究利用Matlab工具對原始數(shù)據(jù)集進行數(shù)據(jù)擴增,通過采用隨機翻轉(zhuǎn)、局部裁剪、長寬縮放、限制對比度自適應(yīng)直方圖均衡化、中值濾波、加入高斯噪聲、加入伽馬噪聲等方法進行數(shù)據(jù)增強。每張原始圖像都生成5張新圖片,總共得到4 445張。經(jīng)過數(shù)據(jù)增強會導(dǎo)致部分圖片質(zhì)量變化較為嚴重,需進行人工篩選,挑選出符合條件的數(shù)據(jù)作為最終數(shù)據(jù)集,去除質(zhì)量較差圖片560張,最終數(shù)據(jù)集為3 885張。
由于攝像機與柑橘目標距離遠近的不同,拍攝到的柑橘圖像中柑橘大小不同,本研究根據(jù)微軟公開數(shù)據(jù)集MS COCO標準,將圖片中分辨率小于32像素×32像素的柑橘目標定義為小目標。
通過Labelimg數(shù)據(jù)標注工具對每張圖片進行標注,并將數(shù)據(jù)集按照70%、20%、10%的比例劃分為訓(xùn)練集、測試集和驗證集,圖片數(shù)量分別為2 721、776、388張。將最后數(shù)據(jù)按照PASCAL VOC數(shù)據(jù)集的格式存儲,再將測試集分為兩部分:測試集A包含目標平均遮擋程度小于30%的圖片以及小目標物體,共492張圖片;測試集B包含目標平均遮擋程度大于30%的圖片以及大目標物體,共284張圖片。其中,測試集A包含標注樣本2 751個,測試集B包含標注樣本3 635個。
數(shù)據(jù)集樣本圖片基本涵蓋在自然場景下進行目標檢測易出現(xiàn)問題的情況,數(shù)據(jù)集部分樣本圖片示例如圖1所示。
圖1 部分樣本圖片示例Fig.1 Some sample image examples
1)YOLOv5模型改進。YOLOv5主要由Backbone和Head兩部分組成,主要用于提取圖像特征的模塊為C3模塊,在Backbone部分,C3模塊包含的位置信息、細節(jié)信息較多,但語義信息較少。而Head部分,C3模塊主要進行紋理特征提取,包含的位置信息、細節(jié)信息較少,而語義信息較多。小目標特征信息在經(jīng)過多個C3模塊處理后,位置信息粗糙,特征信息易丟失,從而引起網(wǎng)絡(luò)模型對小目標的誤檢和漏檢。為提高原始模型對柑橘小目標果實的檢測精度,本研究提出改進YOLOv5網(wǎng)絡(luò)模型,具體結(jié)構(gòu)如圖2所示。在Backbone中增加CBAM注意力機制模塊,置于C3模塊之后,CBAM模塊通過通道和空間注意力模塊能在網(wǎng)絡(luò)訓(xùn)練過程中加強對小目標果實的點特征、線特征等特征信息的學(xué)習(xí)。
圖2 改進YOLOv5網(wǎng)絡(luò)總體框圖Fig.2 Improve the overall block diagram of the YOLOv5 network
2)注意力機制。在柑橘目標檢測任務(wù)中,因小目標柑橘占據(jù)像素數(shù)較少,其特征信息極易在深層網(wǎng)絡(luò)中丟失,出現(xiàn)漏檢、錯檢。而CBAM注意力機制模塊通過通道注意力模塊和空間注意力模塊可有效增大小目標在整張?zhí)卣鲌D中的權(quán)重,促使小目標信息更易被網(wǎng)絡(luò)學(xué)習(xí)。CBAM注意力機制模塊結(jié)構(gòu)如圖3所示。
圖3 CBAM總體結(jié)構(gòu)圖Fig.3 CBAM overall structure diagram
CBAM模塊同時關(guān)注空間和通道信息,在通道注意力模塊上分別經(jīng)過最大值池化和平均池化將尺寸為C×H×W的特征圖變成C×1×1,經(jīng)過MLP轉(zhuǎn)換,壓縮通道數(shù),再通過加和操作進行合并結(jié)果,并進行sigmoid歸一化,使得提取到的高層特征更全面更豐富。
將通道注意力模塊的輸出當作輸入進入空間注意力模塊,同樣經(jīng)過最大值池化和平均池化,再通過Concat操作將兩者堆疊,只壓縮通道維度而不壓縮空間維度。關(guān)注重點在目標的位置信息,并專注于有用的目標對象。
3)損失函數(shù)。YOLOv5原始模型中采用LossGIoU做bbox的損失函數(shù),LossGIoU存在一種問題:如圖4所示實線矩形框為目標框,虛線框為預(yù)測框,圖4中所示3種情況為預(yù)測框在目標框內(nèi)部,該狀態(tài)下GIoU值是相同的,但其預(yù)測框位置是不同的,無法區(qū)分相對位置關(guān)系。因此,無法精確定位到效果最佳的預(yù)測框。
圖4 預(yù)測框位于目標框內(nèi)部Fig.4 The prediction box is inside the target box
為解決LossGIoU存在的問題,本研究引入Lossα-IoU用以改進,Lossα-IoU保留原損失函數(shù)全部性質(zhì),同時更加關(guān)注高IoU目標,并為優(yōu)化所有層次的目標創(chuàng)造了更多空間,實現(xiàn)不同水平的檢測框回歸精度。
Lossα-IoU在原有的LossIoU上增加一個包含α的冪化指標,其定義如公式(1)所示。
通過對公式中α取值進行調(diào)制,可以得到現(xiàn)有的大多數(shù)IoU損失函數(shù),更容易用于改進檢測器的效果,同時不會引入額外的參數(shù),也不增加訓(xùn)練時間。
本研究中采用目前常用效果最好的LossCIoU,改進為Lossα-IoU,其定義如公式(2)所示。
公式(2)中,c代表的是能夠同時包含預(yù)測框和真實框的最小閉包區(qū)域的對角線距離,而v衡量長寬比的一致性,其定義如公式(3);β是一個正的權(quán)衡參數(shù),其值如公式(4),ρ2α(b,bgt)分別代表了預(yù)測框和真實框的中心點的歐式距離。
本研究訓(xùn)練使用的操作系統(tǒng)為Ubuntu 18.04。CPU型號為Intel(R)Core I7-10700F,GPU型號為Nvidia GeForce RTX2060。測試的框架為Pytorch1.9.0,并使用CUDA10.1版本并行計算框架配合CUDNN7.6.5.32版本的深度神經(jīng)網(wǎng)絡(luò)加速庫。
本研究所有結(jié)果利用推理速度作為模型推理速度的評價指標,推理速度指對單張柑橘果實圖像的檢測時間。采用平均精度PA(average precision)、準確率P(precision)、召回率R(recall)和權(quán)重大小等角度衡量檢測效果,具體計算如式(5)~(7)所示。
公式(5)~(6)中,TP為真實的正樣本數(shù)量,F(xiàn)P為虛假的正樣本數(shù)量,F(xiàn)N為虛假的負樣本數(shù)量。
網(wǎng)絡(luò)模型訓(xùn)練階段,迭代批量大小為16,總迭代次數(shù)設(shè)置為300次。初始學(xué)習(xí)率設(shè)置為0.001。從圖5可以看出,當?shù)螖?shù)接近100次時,模型開始逐漸收斂;相較YOLOv5模型,改進的YOLOv5模型收斂更加快速,最終精度較高。
圖5 YOLOv5與本研究模型mAP@0.5值比較Fig.5 Comparison of mAP@0.5 value between YOLOv5 and this model
將CBAM模塊融合到網(wǎng)絡(luò)模塊的不同位置,并對檢測結(jié)果展開研究。在YOLOv5的Backbone與Head兩個區(qū)域分別融入CBAM注意力模塊,生成2種基于YOLOv5算法的新網(wǎng)絡(luò)模型:CBAM-YOLOv5-BackBone、CBAM-YOLOv5-Head。圖6展示了2種CBAM注意力模塊融合網(wǎng)絡(luò)的具體位置。檢測試驗結(jié)果如表1所示,將CBAM模塊融合于Backbone的檢測效果較好,我們認為YOLOv5中提取特征的關(guān)鍵網(wǎng)絡(luò)在Backbone,在Backbone中隱含著易被網(wǎng)絡(luò)忽視的小目標特征信息,CBAM注意力機制模塊對這部分特征信息進行注意力重構(gòu),突出重要信息。而在網(wǎng)絡(luò)更深的Head部分,小目標的特征信息被淹沒,語義信息較為粗糙,注意力模塊難以區(qū)分空間特征和通道特征。
圖6 2種融合CBAM模塊的YOLOv5模型Fig.6Two YOLOv5 models incorporating CBAM modules
表1 CBAM模塊融合結(jié)果對比Table 1 Comparison of CBAM module fusion results %
為驗證本研究提出的關(guān)于YOLOv5的2種改進策略,在數(shù)據(jù)集上展開消融試驗,以判斷每個改進點的有效性,依次在原有模型基礎(chǔ)上加上CBAM與α-IoU損失函數(shù),使用改進用“√”表示,未使用改進用“-”表示。訓(xùn)練過程使用相同的參數(shù)配置,結(jié)果如表2所示。
表2 YOLOv5消融試驗Table 2 YOLOv5 ablation experiment %
引入CBAM之后可以看出,召回率提高了1.8個百分點。同時,平均精度提高了1.3個百分點,而在引入α-IoU損失函數(shù)的提升表現(xiàn)較弱。分析認為引入注意力機制增強了骨干網(wǎng)絡(luò)對特征提取的能力,關(guān)注到許多易被淹沒的語義信息,表現(xiàn)在檢測精度上的提升較為明顯,而α-IoU損失函數(shù)降低了預(yù)測框的回歸損失,提高了回歸精度,因此僅有小幅提高。
為了驗證本研究提出的方法具有更好的效果,選擇Faster-RCNN、YOLOv4、YOLOv4-tiny 3種網(wǎng)絡(luò)模型在相同的配置環(huán)境下利用相同的數(shù)據(jù)集,進行對比試驗。試驗結(jié)果如表3所示。本研究的模型減少了許多額外算力與內(nèi)存開銷,保持了較高的識別精度和較快的檢測速率,同時占用內(nèi)存資源也較少,適合部署于可移動嵌入式設(shè)備平臺,相比其他3種網(wǎng)絡(luò)有較為明顯的優(yōu)勢。
表3 不同網(wǎng)絡(luò)模型檢測能力對比Table 3 Comparison of different networks
將改進前后2個模型進行精度測試,結(jié)果如表4所示。YOLOv5模型識別測試集B與數(shù)據(jù)集A+B的平均精度分別為75.9%和89.7%。改進的YOLOv5模型檢測平均精度相比原模型分別提高了4.5個百分點和1.6個百分點。根據(jù)試驗結(jié)果可知,本研究提出的改進模型在環(huán)境較為復(fù)雜的情況下,模型精度提高效果較為明顯。
表4 不同遮擋程度數(shù)據(jù)集檢測結(jié)果對比Table 4 Comparison of detection results of different occlusion degree datasets
為了更加直觀比較改進前后模型檢測效果的差異,將測試集分別通過YOLOv5以及改進后YOLOv5算法檢測輸出,部分檢測結(jié)果如圖7所示。其中分為小目標檢測、遮擋目標檢測以及強曝光目標檢測3種檢測效果對比。圖7A、C、E為YOLOv5模型的檢測結(jié)果,圖7B、D、F為改進YOLOv5模型的檢測結(jié)果。針對3種特殊目標的檢測,YOLOv5模型均存在漏檢的情況,而改進的YOLOv5模型則有明顯改善。
圖7 不同場景下模型部分檢測結(jié)果對比Fig.7 Comparison of partial detection results of models in different scenarios
本研究針對柑橘果實檢測任務(wù),提出一種基于YOLOv5改進模型的柑橘檢測方法。將注意力機制CBAM與原始YOLOv5融合,提高模型網(wǎng)絡(luò)對特征信息的提取能力;使用α-IoU損失函數(shù)替換原始LossGIoU,降低了損失函數(shù)的回歸損失,提高了回歸精度,改善了多遮擋等復(fù)雜情況下漏檢以及小目標物體識別效果差的問題。本研究通過拍攝與數(shù)據(jù)增強制作了自然場景下的柑橘圖像數(shù)據(jù)集,用于模型的訓(xùn)練和測試。試驗結(jié)果表明,在自然環(huán)境下,改進模型檢測的平均精度達到91.6%,對單張柑橘果實圖像的檢測時間為16.7 ms,模型大小為14.5 Mb。為了驗證本研究模型的優(yōu)越性,以檢測精度、檢測速度等為判斷依據(jù),與原始模型進行對比試驗,其檢測平均精度比原始模型高出1.6個百分點,而在重疊遮擋較多以及小目標較多的情況下,檢測的平均精度提高了4.5個百分點。同時在遠景小目標、重疊遮擋以及強曝光等情況下的柑橘目標預(yù)測,本研究提出的改進型YOLOv5算法模型對原始模型出現(xiàn)的漏檢情況有明顯改進。
柑橘果實檢測對自然環(huán)境下的柑橘機械化、智能化操作具有一定指導(dǎo)性,由于柑橘主要種植于復(fù)雜的山地果園環(huán)境,生長過程較難控制,產(chǎn)量預(yù)測、機械化自動采摘都離不開快速準確的柑橘目標檢測。本研究方法改進的模型較為輕量,適合移植到各種便攜式的可移動平臺,滿足復(fù)雜環(huán)境下的戶外作業(yè)。在今后的研究中可以綜合考慮不同大小、不同顏色的柑橘果實特征建立算法模型,以實現(xiàn)更精確的檢測效果。