劉忠意, 魏登峰, 李 萌, 周紹發(fā), 魯 力, 董雨雪
(長江大學(xué)計算機科學(xué)學(xué)院,湖北荊州 434000)
橙子是中國高產(chǎn)量的水果之一,具有巨大的經(jīng)濟效應(yīng)。然而,隨著人工采摘成本不斷增加,傳統(tǒng)水果采摘的方式已經(jīng)不太適用,開發(fā)自動化水果采摘機器人是當(dāng)前的必然趨勢[1]。如何精確識別目標果實是當(dāng)前研發(fā)水果采摘機器人的重要難題。傳統(tǒng)計算機視覺圖像識別方法主要依靠形狀、紋理和色差單個特征或多個特征的組合來識別?;趥鹘y(tǒng)方法,Hussin等使用圓形霍夫變換方法檢測芒果類物體[2];Payne等采用RGB以及基于相鄰像素可變性的紋理分割,從背景中分割芒果[3];孫建桐等提出一種基于Canny邊緣檢測番茄分割方法[4]。這些方法只能在簡單的場景中識別單一類型的水果,在復(fù)雜的自然環(huán)境下,它們很難適應(yīng)枝葉遮擋、相鄰果實重疊等情況,無法準確識別目標水果。當(dāng)前基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)算法已廣泛應(yīng)用于水果檢測中。與傳統(tǒng)的圖像檢測方法相比,深度學(xué)習(xí)是以數(shù)據(jù)為驅(qū)動,以大量數(shù)據(jù)為基礎(chǔ)進行自我學(xué)習(xí)的方法。在深度學(xué)習(xí)方法中,Parvathi等使用Faster R-CNN網(wǎng)絡(luò)用于檢測復(fù)雜背景下椰子的2個重要成熟階段[5];Tian等將改進YOLO v3網(wǎng)絡(luò)用于檢測不同階段的蘋果[6];Chen等將改進YOLO v4網(wǎng)絡(luò)用于檢測密集狀態(tài)橘子[7]。這些方法雖然能夠?qū)崿F(xiàn)準確的檢測,但使用網(wǎng)絡(luò)結(jié)構(gòu)太大,計算復(fù)雜度高,不適合部署在用于檢測的嵌入式設(shè)備中。為了能夠在復(fù)雜自然環(huán)境下實現(xiàn)對橙子的精準檢測,本研究以YOLO v5網(wǎng)絡(luò)為基礎(chǔ)進行改進,能夠在保證較高準確度的情況下,同時最大限度地降低復(fù)雜度。改進的網(wǎng)絡(luò)首先在主干結(jié)構(gòu)中使用RepVGG模塊以提高特征提取能力;隨后應(yīng)用鬼影混洗卷積降低模型參數(shù)量;然后加入ECA注意力的模塊準確定位目標信息;最后改進損失函數(shù),加快邊界框的回歸。
本研究使用數(shù)碼相機和智能手機采集橙子圖片,拍攝時間為2022年的9—12月,拍攝地點為中國橙子密集種植區(qū)域,分別為湖北省宜昌市和江西省贛州市,拍攝時按照不同距離和多種不同角度進行拍攝,共采集1 500多張未經(jīng)任何處理的橙子圖片,圖片格式為JPG。為了增加樣本數(shù)量,又通過網(wǎng)絡(luò)獲取300多張自然環(huán)境下的橙子圖片。在收集的圖片中,包括不同果實數(shù)量、不同生長階段、不同背景、不同遮擋程度的圖片。每張圖片都包含橙子目標水果(圖1)。
為了增強模型泛化能力,防止過擬合,對數(shù)據(jù)集進行數(shù)據(jù)增強。增強方式包括對圖片進行等比例縮放、隨機平移、使用不同亮度和垂直翻轉(zhuǎn)等。數(shù)據(jù)增強后得到3 661張橙子圖片,使用LabelImg標注工具對圖片中橙子目標進行標注,在人工標注圖片過程中,將所有完全暴露橙子的目標進行標注,對遮擋或有果實重疊的目標進行部分標注。圖像中枝葉遮擋程度超過80%沒有標注,2個果實重疊程度超過80%采用同一矩形框進行標注。再將標注好的圖片進行劃分,分成訓(xùn)練集2 439張、驗證集611張、測試集611張(圖2)。
1.3.1 YOLO v5網(wǎng)絡(luò)結(jié)構(gòu) YOLO v5網(wǎng)絡(luò)結(jié)構(gòu)主要由主干網(wǎng)絡(luò)、頸部網(wǎng)絡(luò)、預(yù)測頭3個部分組成。
主干網(wǎng)絡(luò)主要由C3、Conv、SPPF和其他特征模塊組成,主要作用是提取輸入圖像的特征信息。
頸部網(wǎng)絡(luò)主要由FPN(feature pyramid network)和PAN(path augmentation network)2個部分組成,其中FPN部分是將Backbone輸出的多個特征層由上到下通過橫向連接的方式進行融合,增加低分辨特征的語義信息;PAN是對FPN結(jié)構(gòu)的補充,將低分辨特征與高分辨特征進一步融合,提高目標定位方面的能力,從而提高檢測的準確率。
預(yù)測頭主要由3個用于檢測不同尺寸目標的檢測層組成,每個檢測層對輸入的圖像特征進行預(yù)測,生成目標邊界框并判斷類別。YOLO v5總體結(jié)構(gòu)見圖3。
1.3.2 模型改進
1.3.2.1 主干網(wǎng)絡(luò)的改進 原始的YOLO v5模型采用CSPDarkNet53作為主干特征提取網(wǎng)絡(luò)[8],在非密集和不存在遮擋目標的情況下對特征提取能力表現(xiàn)優(yōu)異,但對于密集且存在果實重疊和枝葉遮擋的復(fù)雜自然環(huán)境下,模型對橙子特征的提取能力有限。RepVGG是一個簡單且計算效率高的卷積神經(jīng)網(wǎng)絡(luò)模塊[9]。RepVGG模塊主要由3×3卷積分支、1×1卷積殘差分支和恒等連接殘差分支組成。該模塊在訓(xùn)練和推理階段使用不同的網(wǎng)絡(luò)結(jié)構(gòu)。模型在訓(xùn)練階段更加關(guān)注模型精度,其采用3×3卷積作為主分支結(jié)構(gòu),同時在3×3主分支的基礎(chǔ)上引入1×1卷積的殘差分支和恒等映射殘差分支。多分支結(jié)構(gòu)的使用給網(wǎng)絡(luò)增加多條梯度流動的路徑,可以提供更多有效的特征信息,增加模型的表征能力。另外,多分支的殘差結(jié)構(gòu)也能保證不會在網(wǎng)絡(luò)訓(xùn)練過程中出現(xiàn)因模型加深而出現(xiàn)梯度退化和消失的問題。在推理階段,模型更加關(guān)注速度,通過使用重參數(shù)融合的策略將所有網(wǎng)絡(luò)層等價轉(zhuǎn)化為以3×3卷積為主分支的網(wǎng)絡(luò)結(jié)構(gòu),保證模型擁有強大的特征提取能力,且能夠?qū)崿F(xiàn)高效的推理(圖4)。
本研究使用RepVGG模塊來替代CSPDarkNet53主干網(wǎng)絡(luò)中的C3模塊,加強主干網(wǎng)絡(luò)對這些難以獲取的目標進行特征獲取。
1.3.2.2 鬼影混洗卷積改進 在網(wǎng)絡(luò)推理過程中,模型的運行速度和檢測精度同等重要。相對于傳統(tǒng)卷積操作,采用深度可分離卷積可明顯降低模型運算參數(shù)量[10]。但對于多個屬性的提取和融合,深度可分離卷積并不是很強。為了平衡二者的作用,引入鬼影混洗卷積[11],它能夠在保證精度的前提下,降低模型的運算參數(shù)量。
由圖5可知鬼影混洗卷積的原理:先將輸入通道數(shù)為C1的特征圖通過傳統(tǒng)標準卷積得到輸出通道數(shù)一半,即C2/2通道的特征圖,然后經(jīng)過深度可分離卷積得到另一個通道數(shù)相同的特征圖,把2個特征圖在通道數(shù)進行拼接,最后通過通道混洗操作將產(chǎn)生的信息滲透到特征圖的每一個部分,得到最終的特征圖[12]。
輸入的圖像在主干網(wǎng)絡(luò)提取特征過程中空間信息逐步向通道傳輸,且每次特征圖的寬度和高度壓縮和通道擴展都會導(dǎo)致語義信息部分丟失,而在頸部網(wǎng)絡(luò)階段空間信息基本完全轉(zhuǎn)化為通道信息,此時通道維度達到最大,寬度維度達到最小,不需要進行空間信息轉(zhuǎn)換。所以,本研究在網(wǎng)絡(luò)的頸部網(wǎng)絡(luò)階段使用鬼影混洗卷積替代標準卷積,能夠避免丟失特征信息。
1.3.2.3 ECA注意力改進 注意力機制是一種仿生物視覺機制。通過快速掃描全局圖像,篩選出感興趣的區(qū)域,投入更多的注意力資源,并抑制其他無用信息,從而提高視覺信息處理的效率與準確性[13]。
橙子在檢測過程中很容易受到背景環(huán)境等因素的影響,導(dǎo)致原始的YOLO v5網(wǎng)絡(luò)在推理過程中容易丟失目標的表征信息,從而導(dǎo)致檢測精度差。本研究將ECA注意力嵌入到模型的輸出端,增強網(wǎng)絡(luò)對橙子的關(guān)注度,降低自然背景等其他因素的影響,提高網(wǎng)絡(luò)的識別精度[14]。
ECA注意力和SE注意力見圖6,其中G表示全局平均池化,σ表示激活函數(shù),o表示逐元素相乘,r表示通道壓縮率。ECA注意力在SE注意力的基礎(chǔ)上,去掉SE注意力中的全連接層,因為2個全連接層直接使用進行通道降維,會影響通道注意力的準確性[15]。ECA注意力在全局平均池化過程后使用一個可以權(quán)重共享的卷積核進行特征學(xué)習(xí),在降低模型計算復(fù)雜度的同時,可以避免通道維度縮減對預(yù)測網(wǎng)絡(luò)的準確性產(chǎn)生影響。
圖6-b中的K表示跨通道信息交互作用的覆蓋范圍。K和通道C之間的關(guān)系見公式(1)。
(1)
1.3.2.4 EIOU損失函數(shù)改進 在自然環(huán)境中檢測尺度較小的橙子目標時,預(yù)測框的少量偏移和縮放會對檢測精度產(chǎn)生重大影響。原始的YOLO v5網(wǎng)絡(luò)采用CIOU作為位置回歸損失函數(shù),其計算公式為
(2)
式中:IOU(intersection over union)表示模型預(yù)測的目標框和實際真實目標框重疊區(qū)域與并集區(qū)域的比值;p2(b,bgt) 表示模型預(yù)測目標框和實際真實框的中心點距離;c表示能同時包含模型預(yù)測目標框和實際真實框最小閉包區(qū)域的對角線距離;a表示平衡比例的參數(shù);v表示模型預(yù)測的目標框和實際真實框的長寬比的一致性。其中,a和v的公式分別為
(3)
(4)
CIOU的缺點是預(yù)測框和真實框的寬和高呈現(xiàn)線性比例時, 會導(dǎo)致預(yù)測框的寬和高不能同時增大或減少,這樣會阻礙網(wǎng)絡(luò)快速和準確收斂。EIOU改進了CIOU的缺點,將反映縱橫比之間差異的影響因子v拆分為預(yù)測的寬高與最小外接框?qū)捀叩牟钪?從而可以更快地使目標框與預(yù)測框收斂,并提高邊界框的回歸精度[16]。EIOU的公式為
(5)
式中:p2(w,wgt)、p2(h,hgt)分別表示預(yù)測框的寬和高與真實框的中心點的寬和高的距離;c、Cw、Ch分別表示真實框和預(yù)測框最小外接矩形的對角線、邊寬、邊長。
CIOU和EIOU損失函數(shù)在預(yù)測框回歸過程的迭代示意見圖7??梢钥闯鯡IOU在回歸過程中解決了CIOU的寬和高不能同時增大或減少的問題。
1.3.2.5 改進后的整體網(wǎng)絡(luò)結(jié)構(gòu) 改進后整體的網(wǎng)絡(luò)結(jié)構(gòu)見表1。參數(shù)設(shè)置是當(dāng)前層模塊所需要的參數(shù)信息,參數(shù)設(shè)置包括輸入通道數(shù)、輸出通道數(shù)、卷積核大小、步長信息以及填充大小。
表1 改進的YOLO v5網(wǎng)絡(luò)結(jié)構(gòu)
試驗的搭建、訓(xùn)練以及測試都是使用同一平臺。試驗環(huán)境:CPU為Intel? Xeon? Platinum 8358P CPU @ 2.60 GHz,運行內(nèi)存為80 G,GPU為GeForce RTX 3080, 操作系統(tǒng)為Linux, 深度學(xué)習(xí)框架為PyTorch,CUDA版本為11.1。試驗時間為2022年12月至2023年2月,試驗地點為長江大學(xué)計算機科學(xué)學(xué)院。
本研究在改進的YOLO v5試驗中使用表2的超參數(shù)。
表2 改進的YOLO v5模型超參數(shù)
本研究采用精準率(precision,P)、召回率(recall,R)、平均精度(mean average precision,mAP)、計算量(GFLOPs)和參數(shù)量(params)作為評價指標。其中,平均精度表示loU閾值為0.5時的平均檢測精度,GFLOPs表示10億次/s的浮點運算數(shù)。精準率、召回率、平均精度的具體公式分別為
(6)
(7)
(8)
(9)
式中:TP(true postives)表示網(wǎng)絡(luò)預(yù)測為正類、實際也為正類的樣本數(shù)量;FP(false postives)表示網(wǎng)絡(luò)預(yù)測為正類、實際為負類的樣本數(shù)量;FN(false negatives)表示網(wǎng)絡(luò)預(yù)測為負類、實際為正類的樣本數(shù)量。
為了更好地驗證本研究所提出的改進方法具有有效性,對所提出的改進方法進行一系列的消融試驗,在試驗中使用相同的數(shù)據(jù)集進行測試,試驗結(jié)果見表3。
表3 消融試驗
由表3可知,在加入每一種改進方法后,網(wǎng)絡(luò)平均精度都會有一定提升,表明本研究改進方法有效。
2.5.1 注意力對比試驗 為了驗證ECA注意力機制的有效性,本研究將ECA注意力與其他熱門注意力模塊進行對比試驗,將ECA注意力模塊與BoTNet(bottleneck transformers)注意力模塊、CBAM(convolutional block attention module)注意力模塊、SimAM(simple attention module)注意力模塊進行對比,發(fā)現(xiàn)ECA注意力的檢測精度更高(表4)。
表4 不同注意力對比試驗結(jié)果
2.5.2 不同模型對比試驗 為了體現(xiàn)所提出網(wǎng)絡(luò)的優(yōu)越性,本研究選取目前熱門的深度學(xué)習(xí)目標檢測算法作為對比,選用的對比網(wǎng)絡(luò)分別是CenterNet、YOLO v3、YOLO v4。試驗中采取相同數(shù)據(jù)集劃分策略(表5)。
表5 不同網(wǎng)絡(luò)模型對比試驗結(jié)果
由表5可知,與CenterNet、YOLO v3、YOLO v4和原始YOLO v5網(wǎng)絡(luò)相比,改進的YOLO v5具有最高平均精度。改進的YOLO v5網(wǎng)絡(luò)在模型權(quán)重大小、計算量和參數(shù)量上略大于改進前,但遠遠小于其他網(wǎng)絡(luò)。改進后網(wǎng)絡(luò)權(quán)重大小為18.6 MB, 計算量為23.1 GFLOPs,參數(shù)量為9.6 M。與上述4種網(wǎng)絡(luò)相比,改進的YOLO v5在平均精度上分別提升4.4%、6.4%、6.3%、0.9%。綜上,改進后的YOLO v5不僅擁有良好的檢測精度,且相比其他網(wǎng)絡(luò)在模型權(quán)重大小、計算量和參數(shù)量方面均有減小。
選取不同環(huán)境下的橙子圖片,使用改進后的YOLO v5網(wǎng)絡(luò)進行測試,檢測結(jié)果見圖8。
由圖8可知,改進的YOLO v5在無遮擋、果實重疊、枝葉遮擋和密集小目標4種情況下,對于絕大部分橙子目標都能夠較準確地檢測出來。表明改進的網(wǎng)絡(luò)對不同環(huán)境下的橙子檢測具有較好的泛化性。
為了直觀驗證改進后的YOLO v5網(wǎng)絡(luò)的檢測效果,選用不同網(wǎng)絡(luò)模型進行對比測試,檢測結(jié)果見圖9。
由圖9可知,5種網(wǎng)絡(luò)對沒有枝葉遮擋、果實重疊且正常大小目標基本都能夠正確地檢測出來,但對存在枝葉遮擋和果實遮擋的條件下,網(wǎng)絡(luò)表現(xiàn)差異明顯。其中,CenterNet、YOLO v3和YOLO v4在檢測存在枝葉遮擋和果實遮擋目標時,出現(xiàn)大部分漏檢情況。原始的 YOLO v5和改進的YOLO v5在檢測遮擋目標時,雖然也存在少量漏檢,但相比其他網(wǎng)絡(luò)表現(xiàn),漏檢數(shù)目較少,且改進的YOLO v5網(wǎng)絡(luò)在檢測目標時平均置信度較高。綜合分析可知,改進的YOLO v5網(wǎng)絡(luò)對遮擋和重疊的橙子目標檢測效果更好,更適合在復(fù)雜的自然環(huán)境下進行檢測。
針對自然條件下的橙子檢測任務(wù),本研究提出一種改進的YOLO v5檢測方法,首先,在主干網(wǎng)絡(luò)結(jié)構(gòu)中使用RepVGG模塊,提高對橙子目標特征的提取能力;其次,應(yīng)用鬼影混洗卷積降低模型參數(shù)量;再次,加入ECA注意力模塊,其能夠更加準確定位目標信息;最后,改進損失函數(shù),提升位置邊界框的回歸精度。改進的網(wǎng)絡(luò)在自然環(huán)境的橙子檢測中平均精度達到90.1%,相比于目前熱門的檢測網(wǎng)絡(luò)CenterNet、YOLO v3和YOLO v4,改進的YOLO v5網(wǎng)絡(luò)在枝葉遮擋、相鄰果實重疊等復(fù)雜情況下,橙子識別效果可以得到一定的提升。后續(xù),將會繼續(xù)優(yōu)化網(wǎng)絡(luò),并將使用現(xiàn)有模型應(yīng)用于果園計數(shù)和產(chǎn)量預(yù)測等任務(wù)中。