毛騰躍,宋陽,鄭祿
(中南民族大學(xué) 計算機科學(xué)學(xué)院& 湖北省制造企業(yè)智能管理工程技術(shù)研究中心,武漢 430074)
在蘋果產(chǎn)業(yè)中,蘋果采摘機器人在解決人工采摘效率低、采摘成本高以及勞動力短缺等問題時發(fā)揮著重要作用.視覺系統(tǒng)是采摘機器人高效完成采摘任務(wù)的關(guān)鍵因素,然而自然環(huán)境下生長的果實,受果實重疊、枝葉遮擋、光照等諸多因素的干擾,增加了采摘機器人視覺系統(tǒng)的識別難度,降低了采摘的成功率[1-2].因此要實現(xiàn)果實的自動化采摘,首要的任務(wù)是解決自然環(huán)境下果實目標(biāo)的精準(zhǔn)檢測.
目前國內(nèi)外在蘋果目標(biāo)檢測方面的研究已取得一定進(jìn)展[3-5].JI 等[6]提出一種基于顏色和形狀特征的支持向量機果實識別算法,識別準(zhǔn)確率為89%,識別一幅圖像的時間是352 ms.但針對葉片遮擋的情況,識別的平均錯誤率較高.王丹丹等[7]針對無遮擋的蘋果目標(biāo)采用K-means 聚類算法和Normalized Cut(Ncut)算法進(jìn)行目標(biāo)輪廓的提取,而對于雙果重疊導(dǎo)致的蘋果輪廓信息不完整的問題,則采用Spline 插值算法進(jìn)行輪廓重建,平均分割誤差和平均分割重合度分別可以達(dá)到5.24% 和93.81%.孫颯爽等[8]針對枝條遮擋下的單個蘋果目標(biāo),在Lab 顏色空間下,采用K-means 聚類算法分割圖像中的蘋果目標(biāo),然后采用數(shù)學(xué)形態(tài)學(xué)方法提取果實的輪廓信息,再依次進(jìn)行空洞填充、偽輪廓去除等操作,最后采用輪廓的曲率特征對蘋果目標(biāo)進(jìn)行重建,重建的準(zhǔn)確率在84%以上.劉曉洋等[9]針對自然環(huán)境下著色不均勻的蘋果目標(biāo),提出一種基于超像素特征的果實分割方法,首先采用SLIC 簡單線性迭代聚類算法將圖像進(jìn)行超像素的分割,然后提取每個超像素的顏色和紋理特征,最后采用SVM 支持向量機對其進(jìn)行分類.上述方法主要利用果實的顏色、形狀與紋理特征等信息人工提取特征,然后通過分類器得到預(yù)測結(jié)果,算法的局限性大,表達(dá)能力有限,魯棒性差,難以滿足采摘機器人在自然環(huán)境下工作的需求.
近年來,隨著深度學(xué)習(xí)的興起與發(fā)展,許多研究者將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用到農(nóng)業(yè)領(lǐng)域中,取得了顯著的成果.BARGOTI 等[10]提出基于數(shù)據(jù)增廣技術(shù)的Faster R-CNN[11]檢測算法,驗證了數(shù)據(jù)增廣技術(shù)對于水果檢測的有效性.MAI 等[12]提出將一個多分類器融入到Faster R-CNN 網(wǎng)絡(luò)中,用于小水果的檢測.王丹丹等[13]提出基于ResNet-44 的R-FCN(Region-Based Fully Convolutional Network)用于識別疏果前的蘋果目標(biāo),識別精度和速度均有提高.TIAN 等[14]提出YOLOv3-Dense 算法用于檢測果園中不同生長階段的蘋果.岳有軍等[15]提出在Mask RCNN 的網(wǎng)絡(luò)中添加邊界加權(quán)損失函數(shù)對蘋果目標(biāo)進(jìn)行檢測.相比傳統(tǒng)的機器學(xué)習(xí)方法,上述方法避免了人工設(shè)計特征的不足,檢測算法性能明顯提升.但是面對復(fù)雜的自然環(huán)境,當(dāng)前算法的檢測精度仍達(dá)不到實際應(yīng)用的要求.針對以上研究工作存在的問題,本文在YOLOv3 的基礎(chǔ)上,提出一種基于多尺度與混合注意力機制的目標(biāo)檢測模型PM-YOLOv3.首先,為了提高模型的多尺度特征表達(dá)能力,引入多尺度卷積對標(biāo)準(zhǔn)卷積進(jìn)行優(yōu)化,重新構(gòu)建YOLOv3 的特征提取網(wǎng)絡(luò);然后,在卷積模塊間引入注意力模塊,增強重要特征的表達(dá)能力;最后采用K-means 算法對先驗框重新進(jìn)行聚類,獲取最優(yōu)的先驗框尺寸.本文所提出的PM-YOLOv3 檢測模型不僅能夠提高檢測性能,對于復(fù)雜環(huán)境下的蘋果目標(biāo)檢測也更具魯棒性.
YOLOv3 是單階段的端到端目標(biāo)檢測算法,它的核心思想是將整張圖片直接輸入網(wǎng)絡(luò),然后提取圖片中的特征信息來預(yù)測目標(biāo)的位置和類別.YOLOv3 主要由特征提取網(wǎng)絡(luò)、多尺度預(yù)測層兩部分組成,其網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.
圖1 YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 YOLOv3 network structure
YOLOv3 的特征提取網(wǎng)絡(luò)DarkNet-53[16]借鑒殘差網(wǎng)絡(luò)ResNet[17]的思想,在網(wǎng)絡(luò)中使用大量的殘差結(jié)構(gòu),避免神經(jīng)網(wǎng)絡(luò)在網(wǎng)絡(luò)層數(shù)過深時發(fā)生梯度彌散.DarkNet-53 是一個具有53 個卷積層的全卷積神經(jīng)網(wǎng)絡(luò),網(wǎng)絡(luò)結(jié)構(gòu)中主要使用3×3 和1×1 的卷積構(gòu)建殘差模塊,去除了池化層,特征圖的降采樣采用步長為2 的卷積進(jìn)行替換,在每個卷積層后分別使用批量歸一化和激活函數(shù),加快算法的收斂速度,同時防止模型出現(xiàn)過擬合的現(xiàn)象.
YOLOv3 的預(yù)測層為了解決小目標(biāo)檢測不敏感的問題,采用3 個不同尺度進(jìn)行目標(biāo)檢測.3 個尺度分別是13×13、26×26、52×52,其中最小的13×13 特征圖感受野較大,用于檢測圖像中較大的目標(biāo),而較大的52×52 的特征圖由于其具有較小的感受野,因此用于檢測圖像中較小的目標(biāo).
注意力機制是深度學(xué)習(xí)領(lǐng)域中一個重要的概念,學(xué)者們在不同的應(yīng)用領(lǐng)域?qū)ζ溥M(jìn)行了充分的研究.它的作用是讓算法將注意力更多地集中在重點區(qū)域,獲得該區(qū)域更多的細(xì)節(jié)信息,抑制無用的信息.CBAM[18]是一種由空間注意力機制和通道注意力機制兩個部分組成的注意力模型,對于卷積神經(jīng)網(wǎng)絡(luò)中生成的特征圖,可以在通道與空間兩個維度,依次進(jìn)行推導(dǎo),分別得到兩個權(quán)重系數(shù),然后將權(quán)重系數(shù)與輸入的特征圖相乘,得到最終的特征圖.由于CBAM 是一個輕量級的注意力模塊,可以在各種神經(jīng)網(wǎng)絡(luò)中添加,并進(jìn)行訓(xùn)練,在保持開銷較小的同時提高神經(jīng)網(wǎng)絡(luò)的性能.注意力模塊結(jié)構(gòu)如圖2所示.
圖2 CBAM注意力機制模塊Fig.2 CBAM attention mechanism module
YOLOv3使用的特征提取網(wǎng)絡(luò)是DarkNet-53,網(wǎng)絡(luò)中大量采用3×3 和1×1 的常規(guī)卷積,而常規(guī)卷積在進(jìn)行運算時,直接對輸入的特征圖進(jìn)行卷積,得到輸出特征圖,獲取到的特征信息有限.而且采摘機器人進(jìn)行采摘任務(wù)時其視覺系統(tǒng)獲取的圖像中往往存在多個尺度的目標(biāo),距離攝像頭較近的目標(biāo)尺寸偏大,而距離較遠(yuǎn)的則尺寸較小,因此,如果仍然采用常規(guī)卷積進(jìn)行特征的提取,會導(dǎo)致提取到的部分特征信息丟失,出現(xiàn)漏檢的情況.
針對上述問題,本文在YOLOv3 網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ) 上,引 入 多 尺 度 卷 積PSConv[19](Poly-Scale Convolution),替換特征提取網(wǎng)絡(luò)中的常規(guī)卷積,以更精細(xì)的粒度進(jìn)行多尺度特征融合,增強神經(jīng)網(wǎng)絡(luò)對尺度變化的魯棒性.多尺度卷積針對單個的卷積層,使用多種不同的擴(kuò)張率,并將它們均勻地分配到每個濾波器的單個卷積核中.這些擴(kuò)張率沿著濾波器的輸入和輸出通道軸周期地進(jìn)行變化,集成多尺度特征.在神經(jīng)網(wǎng)絡(luò)中采用多尺度卷積替換常規(guī)卷積,可以在不增加計算復(fù)雜度的情況下,進(jìn)行更細(xì)粒度的多尺度特征學(xué)習(xí),獲得圖像的重要特征,提高算法的特征提取能力.
對于多尺度卷積,設(shè)F∈RCin×H×W表示輸入的特征圖,在卷積濾波器G∈RCout×K×K的不同卷積核中,采用不同的擴(kuò)張率,然后與輸入張量進(jìn)行卷積,得到輸出特征圖H∈RCout×H×W,其中D∈RCout×Cin是由兩個正交維護(hù)中的通道方向和濾波器方向的擴(kuò)張率組成的矩陣,元素D(c,k)與濾波器中的特定通道相關(guān)聯(lián),其詳細(xì)計算過程如公式(1)所示:
改進(jìn)后的特征提取網(wǎng)絡(luò)結(jié)構(gòu)如圖3 所示,保留原網(wǎng)絡(luò)中輸出尺寸為208×208 和104×104 的兩個殘差模塊,將輸出尺寸為52×52、26×26 和13×13 的三個殘差模塊中的3×3 卷積采用多尺度卷積替換,提高算法的多尺度特征提取能力.
圖3 改進(jìn)的YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)Fig.3 Improved YOLOv3 network structure
將普通卷積替換為多尺度卷積后,雖然能夠不增加計算的復(fù)雜度,但是過深的網(wǎng)絡(luò)層數(shù),仍然會存在大量的參數(shù).因此,繼續(xù)對網(wǎng)絡(luò)的層數(shù)進(jìn)行削減,將輸出尺寸為52×52、26×26 的兩個殘差模塊的數(shù)量由原來的8 個減少為6 個,構(gòu)建了45 層的特征提取網(wǎng)絡(luò),在提高檢測準(zhǔn)確性的同時,保證了檢測速度.
自然環(huán)境下生長的果實,受樹葉遮擋、枝條遮擋等干擾因素的影響,導(dǎo)致蘋果采摘機器人采集到的圖像,背景信息復(fù)雜多變,給果實的識別與定位帶來了困難.因此本文借鑒注意力機制的特點,在YOLOv3 網(wǎng)絡(luò)中,添加CBAM 注意力模塊以加強算法在復(fù)雜的背景中獲取更多的豐富的特征信息,提高算法檢測的準(zhǔn)確率.
YOLOv3 的多尺度預(yù)測層,采用了類似FPN[20](Feature Pyramid Networks)的結(jié)構(gòu),將特征提取網(wǎng)絡(luò)中提取到的特征信息,在3個不同尺度上進(jìn)行融合,然后進(jìn)行目標(biāo)檢測.因此本文在YOLOv3 特征提取網(wǎng)絡(luò)的基礎(chǔ)上,對多尺度預(yù)測層中的每個分支中分別添加一個CBAM 模塊,將特征提取網(wǎng)絡(luò)中獲取到的特征信息,在通道和空間兩個維度上使用注意力機制,進(jìn)行權(quán)重的自適應(yīng)學(xué)習(xí),以較小的開銷提升算法的檢測性能.
先驗框是一組預(yù)先定義好的具有不同尺寸的固定的參考框.在進(jìn)行目標(biāo)檢測時,首先將先驗框作為初始預(yù)測,然后進(jìn)行回歸調(diào)整.采用與數(shù)據(jù)集相匹配的先驗框,不僅可以加快模型的收斂速度,而且可以進(jìn)一步提升目標(biāo)檢測的精度.YOLOv3 中采用的9 個先驗框是在COCO 數(shù)據(jù)集上采用K-means 聚類算法得到的,比較適合多個類別目標(biāo)的檢測.
從表1可以得到,重慶地區(qū)的機插水稻面積2007年是2006年的21.4倍,2008年相對于2007年水稻機插面積增加90%;機插水稻與傳統(tǒng)手工種植水稻的方法相比較,增產(chǎn)率在10%以上;機插水稻每年的產(chǎn)量,也在以13.3%以上的速率增長,因此機插水稻的使用技術(shù)也在不斷成熟。
由于自建的蘋果數(shù)據(jù)集與COCO 數(shù)據(jù)集中目標(biāo)尺寸不同,如果仍采用原始算法中的先驗框進(jìn)行蘋果目標(biāo)的檢測,則會影響算法對果實的識別與定位精度.因此,采用K-means聚類算法,以1-IOU的值來計算樣本點到聚類中心的距離,對自建的數(shù)據(jù)集,重新進(jìn)行聚類,得到9 種不同尺寸的先驗框,如表1所示.
表1 先驗框尺寸Tab.1 The size of the prior box
本文采用的數(shù)據(jù)集由兩部分組成:一部分來源于文獻(xiàn)[10]中的圖片,另一部分是從網(wǎng)上下載的高質(zhì)量圖片,共收集1600張圖片,然后進(jìn)行人工篩選,將重復(fù)的圖像去除,最終獲得1400 張圖片,并將圖片統(tǒng)一按比例縮放為500×375 像素.由于該數(shù)據(jù)集的數(shù)量不足,為了防止算法訓(xùn)練過程中出現(xiàn)過擬合的現(xiàn)象,采用數(shù)據(jù)增廣技術(shù)擴(kuò)充數(shù)據(jù)集,分別對圖片進(jìn)行水平翻轉(zhuǎn)、垂直翻轉(zhuǎn)、正逆時針旋轉(zhuǎn)以及添加噪聲等操作,如圖4 所示,共得到2400 張圖片.然后采用LabelImg 圖像標(biāo)注工具對數(shù)據(jù)集進(jìn)行標(biāo)注(蘋果被遮擋面積≥50%,不進(jìn)行標(biāo)注).
圖4 數(shù)據(jù)增廣操作Fig.4 Data augmentation operations
本實驗基于Linux 平臺通過Python 語言實現(xiàn),采用Ubuntu 20.04 的操作系統(tǒng),硬件配置為Intel(R)Xeon(R)CPU E5-2630 v4 @ 2.20 GHz,顯卡為NVIDIA GeForce GTX1060,采用Pytorch 深度學(xué)習(xí)框架.
算法訓(xùn)練時,隨機選取數(shù)據(jù)集中1920張作為訓(xùn)練集,100張作為驗證集,380張作為測試集.網(wǎng)絡(luò)中輸入圖像的尺寸設(shè)置為416×416,批處理的大小為16,動量系數(shù)為0.9,權(quán)重衰減正則系數(shù)設(shè)為0.0005,學(xué)習(xí)率的初始值設(shè)置為0.001.
在訓(xùn)練過程中采用Adam 優(yōu)化器自動調(diào)整學(xué)習(xí)率.模型進(jìn)行訓(xùn)練的過程中,損失函數(shù)曲線見圖5,可以看出,在前50個epoch時,損失下降得比較快,訓(xùn)練100 個epoch 后,損失函數(shù)下降較慢,訓(xùn)練450 個epoch時逐漸趨于平穩(wěn),算法已經(jīng)達(dá)到了收斂.
圖5 損失函數(shù)曲線Fig.5 Loss function curve
為了更好地評估本文改進(jìn)算法的有效性,采用精確率(Precision)、召回率(Recall)、F1分?jǐn)?shù)(F1-score)3 個指標(biāo)來對算法的泛化性能進(jìn)行評估.F1 分?jǐn)?shù)是精確率P與召回率R的調(diào)和平均(Harmonic Mean),是一個同時考慮精確率與召回率的評價指標(biāo),避免精確率或召回率的單一極大值,用于綜合反映整體的指標(biāo).計算公式為:
其中TP表示樣本為正預(yù)測的結(jié)果為正;FP表示樣本為負(fù)預(yù)測的結(jié)果為正;FN表示樣本為正預(yù)測的結(jié)果為負(fù).
為了驗證本文改進(jìn)方法的有效性,設(shè)計了消融實驗對算法的檢測性能進(jìn)行評估.其中實驗Ⅰ采用原始的YOLOv3算法,由特征提取網(wǎng)絡(luò)DarkNet53和多尺度預(yù)測層組成.實驗Ⅱ則采用改進(jìn)后的特征提取網(wǎng)絡(luò)DarkNet45,預(yù)測層仍使用原算法中的預(yù)測網(wǎng)絡(luò).實驗Ⅲ采用DarkNet53 作為特征提取網(wǎng)絡(luò),在預(yù)測層的3個分支中添加注意力模塊CBAM.實驗Ⅳ采用本文提出的改進(jìn)算法PM-YOLOv3 進(jìn)行目標(biāo)檢測.實驗結(jié)果如表2所示.
表2 不同改進(jìn)策略的檢測性能對比Tab.2 Comparison of detection performance of different improvement strategies
對比實驗Ⅰ和實驗Ⅱ可以看出,本文對特征提取網(wǎng)絡(luò)的改進(jìn)是可行的,精確率P、召回率R、F1 值均有顯著的提升,優(yōu)于原始的YOLOv3算法,說明在特征提取網(wǎng)絡(luò)中融入多尺度卷積,能夠有效地融合不同尺度間的內(nèi)在關(guān)系,實現(xiàn)上下文信息的多尺度提取,提升算法的特征表達(dá)能力.
結(jié)合實驗Ⅰ和實驗Ⅲ的結(jié)果來看,添加注意力機制后,檢測性能也有小幅度的提升,其中F1 值為91.6%.表明注意力機制模塊,可以將特征提取網(wǎng)絡(luò)中提取到的特征信息,按照重要程度,進(jìn)行權(quán)重的自適應(yīng)分配,使得關(guān)鍵的信息分配較大的權(quán)重,對于一些無用的信息則分配較小的權(quán)重,讓算法能夠?qū)⒆⒁饬杏谥攸c的區(qū)域,從而提升算法的檢測性能.
綜合所有實驗結(jié)果可以看出,改進(jìn)后的算法明顯優(yōu)于原算法,并且將多尺度卷積和注意力機制進(jìn)行融合的實驗效果是高于單獨引入其中一個模塊的,其中精確率P為92.7%,召回率R為94.6%,F(xiàn)1值為93.6%,均有明顯的提升,表明本文的改進(jìn)算法,有利于多尺度目標(biāo)和密集目標(biāo)的檢測,減少了漏檢的情況,有效地提高了檢測精度.
3.4.2 不同場景下檢測效果對比
為了驗證本文對自然環(huán)境下蘋果目標(biāo)檢測的有效性,隨機選取6 張圖片,即包含稀疏完整、重疊遮擋兩種不同情況,采用YOLOv3 和PM-YOLOv3 進(jìn)行目標(biāo)檢測.其中YOLOv3 算法檢測結(jié)果用綠色標(biāo)注,PM-YOLOv3 檢測結(jié)果用棕色標(biāo)注.檢測結(jié)果見圖6.
圖6 不同場景下的檢測效果對比Fig.6 Comparison of detection effects in different scenarios
從圖6可知,稀疏完整的蘋果目標(biāo),因為沒有枝葉、枝條遮擋等干擾因素存在,改進(jìn)前后的算法均能準(zhǔn)確地識別出果實.而對于重疊遮擋的蘋果目標(biāo),受遮擋因素的影響,YOLOv3 會存在漏檢的情況,而本文提出的PM-YOLOv3 算法,檢測效果優(yōu)于YOLOv3,能夠準(zhǔn)確地檢測出遮擋情況下的果實.因此,本文的改進(jìn)算法能夠適應(yīng)自然環(huán)境下的蘋果目標(biāo)檢測,具有較強的泛化能力.
針對上述兩種情況,采用改進(jìn)前后的算法在測試集上分別進(jìn)行驗證實驗,結(jié)果如表3所示.
從表3 中可以看出,對于處于不同場景下的蘋果果實,改進(jìn)后算法的檢測精度均高于YOLOv3,而且在重疊遮擋的情況下,本文提出的改進(jìn)方法精確率可以達(dá)到90.3%,召回率為92.5%.結(jié)果表明本文所提的改進(jìn)策略是可行的,針對不同場景下果實目標(biāo)的檢測具有較好的檢測效果.
表3 不同場景下的檢測性能Tab.3 Detection performance in different scenarios
3.4.3 改進(jìn)后的算法與其他目標(biāo)檢測算法對比
為了進(jìn)一步驗證本文所提出算法的有效性,將本文的算法PM-YOLOv3 與目標(biāo)檢測中廣泛使用的其他算法進(jìn)行對比實驗,包括YOLOv3、Faster R-CNN、YOLOv4[21],實驗結(jié)果如表4.
表4 改進(jìn)后算法與其他目標(biāo)檢測算法對比Tab.4 Comparison between the improved algorithm and other target detection algorithms
從表4可以看出,與其他目標(biāo)檢測算法相比,本文的算法具有更高的檢測精度,F(xiàn)1 值可以達(dá)到93.6%.與Faster R-CNN 算法相比,精確率和召回率分 別 提 高6.5% 和6.2%,F(xiàn)1 值 提 高6.3%. 而 與YOLOv4 相比,也有小幅度的提升,驗證了本文提出的改進(jìn)策略的有效性,能適用于自然環(huán)境下蘋果目標(biāo)的檢測.
本文針對自然環(huán)境下蘋果目標(biāo)受環(huán)境影響導(dǎo)致蘋果采摘機器人識別與定位不準(zhǔn)確的問題,提出了一種基于多尺度與混合注意力機制的蘋果目標(biāo)檢測模型.首先,采用多尺度卷積替換常規(guī)卷積,聚合圖像中的多尺度信息,削減網(wǎng)絡(luò)層數(shù),在保證算法檢測速度的同時,提高算法的檢測精度;然后,在網(wǎng)絡(luò)的卷積層間添加注意力機制模塊,增強特征的表達(dá)能力;最后,使用K-means 聚類算法重新聚類先驗框.實驗結(jié)果表明:本文的方法可以顯著提高算法的檢測性能,在測試集上的F1 值可以達(dá)到93.6%,對自然環(huán)境下的蘋果目標(biāo)檢測具有較強的魯棒性,可以為蘋果的自動化采摘提供技術(shù)支持.