劉建航 何鑒恒 陳海華 王曉政 翟海濱
(1.中國石油大學(xué)(華東)海洋與空間信息學(xué)院, 青島 266555; 2.中國科學(xué)院計算技術(shù)研究所, 北京 100094;3.國家計算機網(wǎng)絡(luò)應(yīng)急技術(shù)處理協(xié)調(diào)中心, 北京 100029)
我國農(nóng)作物采摘主要以手工為主,采摘工作季節(jié)性強、勞動強度大、成本高[1]。隨著人工智能和農(nóng)業(yè)機械相互結(jié)合,使農(nóng)作物采摘智能化成為可能,采摘機器人在提高采摘率、推動現(xiàn)代化農(nóng)業(yè)發(fā)展等方面具有重要意義[2]。
番茄作為中國種植的主要經(jīng)濟作物,其采收方式分為粒收與串收,串收有著較高的采摘效率,并且串收番茄更容易保存和運輸。快速且精確地采摘番茄串是目前串型番茄采摘機器人的重點研究內(nèi)容。番茄串檢測以及番茄莖定位主要通過計算機視覺實現(xiàn)。因此,視覺感知系統(tǒng)的性能直接影響番茄串的采摘率[3]。文獻[4]采用顏色分量運算和彩色空間轉(zhuǎn)換實現(xiàn)圖像閾值分割和目標(biāo)特征提取,同時對末端執(zhí)行器進行了設(shè)計,實現(xiàn)了串型番茄的采摘,但采摘時間較長,成熟番茄串果實識別成功率為90%。文獻[5]借鑒AdaBoost學(xué)習(xí)算法在人臉識別中的成功應(yīng)用[6-7],提出了基于Haar-like特征及其編碼和AdaBoost學(xué)習(xí)算法的番茄識別方法。實驗結(jié)果表明,單幅圖像的處理時間為15 s,正確識別率為93%。文獻[8]提出使用Mask R-CNN模型對果園中重疊綠色蘋果進行識別和分割,將殘差網(wǎng)絡(luò)與密集連接卷積網(wǎng)絡(luò)相結(jié)合作為骨干網(wǎng)絡(luò)提取特征,對120幅蘋果圖像進行檢測,結(jié)果表明,平均檢測準(zhǔn)確率為97.31%,但由于數(shù)據(jù)集太少,仍需增加樣本集和豐富樣本多樣性以更具說服力。文獻[9]使用雙目視覺技術(shù)對番茄進行識別,根據(jù)番茄顏色特征用擬合曲線對番茄分割,并通過雙目視覺測量原理計算出番茄的三維坐標(biāo),測量誤差低于4%,但仍有待進一步優(yōu)化提升檢測精度。文獻[10]提出一種番茄果實串采摘點識別方法,該方法對垂直向下的番茄果實串采摘點識別效果較好,但不能對其他姿態(tài)的番茄果實進行識別。文獻[11]提出了一種基于改進型YOLO的復(fù)雜環(huán)境下番茄果實快速識別方法,能夠提取多特征信息,模型對番茄檢測精度為97.13%。
綜上,國內(nèi)外研究人員針對番茄串的識別和定位問題提出的研究方法尚未達到理想的精度和工業(yè)級實時性的要求,對多樣的特征變化魯棒性不足。因此,難以滿足實際需求。為進一步提高農(nóng)作物的識別率和采摘率,本文以番茄為研究對象,提出一種視覺感知模型,模型包括檢測和語義分割2個模塊,即番茄串檢測和番茄莖分割。采用一種基于深度卷積結(jié)構(gòu)的主干網(wǎng)絡(luò),取代殘差塊結(jié)構(gòu)中的普通卷積運算,降低主干網(wǎng)絡(luò)的計算量,從而獲得更為緊湊的主干特征提取網(wǎng)絡(luò),通過K-means++聚類算法獲得先驗框,并改進DIoU距離計算公式,獲得更為緊湊的輕量級檢測模型(DC-YOLO v4),在實現(xiàn)模型參數(shù)稀疏性的同時提高識別精度。將MobileNetv2作為ICNet分割模型的主干網(wǎng)絡(luò),以有效減少計算量,達到實時分割效果。
番茄數(shù)據(jù)集、番茄莖數(shù)據(jù)集采集于黃河三角洲農(nóng)業(yè)高新技術(shù)示范園區(qū)的設(shè)施農(nóng)業(yè)測試驗證平臺(山東省廣饒縣)。通過Intel RealSense D435型深度相機采集番茄樣本,圖像分辨率為 4 032像素×3 024像素,如圖1a所示,相機安裝在末端執(zhí)行器上方5 cm處,通過圖1b所示的方式,在移動端遙控機器人進行番茄樣本采樣,模擬番茄采摘機器人的實際工作場景。
圖1 采摘機器人采集番茄樣本Fig.1 Picking robot collects tomato samples
采摘機器人的主要結(jié)構(gòu)如圖2所示,包括機械臂、可移動裝置、機器人控制系統(tǒng)、深度相機和末端執(zhí)行器5部分。默認(rèn)狀態(tài)下,末端執(zhí)行器的安裝位置距地面10 cm。
圖2 采摘機器人主要結(jié)構(gòu)Fig.2 Main structure of picking robot1.末端執(zhí)行器 2.深度相機 3.機械臂 4.機器人控制系統(tǒng) 5.可移動裝置
番茄植株種植在桁架上,行距約0.4 m,高約2 m,為保證數(shù)據(jù)集樣本的多樣性,分別采集不同光照強度、不同果實數(shù)量、不同拍攝角度的番茄串樣本共2 000幅,番茄莖樣本圖像1 000幅。采集的部分番茄樣本如圖3所示。
1.2.1YOLO目標(biāo)檢測網(wǎng)絡(luò)
番茄采摘機器人的視覺感知模型包括目標(biāo)檢測和語義分割兩部分[12]。針對番茄檢測模型,本文借鑒YOLO系列的模型結(jié)構(gòu)[13],其突出特點是快速和精確。與Two-Stage(如Faster R-CNN)使用Region proposal區(qū)域建議特征提取方式不同,YOLO的工作原理[14]如下:①對輸入圖像的全局區(qū)域進行訓(xùn)練。②利用主干特征提取網(wǎng)絡(luò)完成番茄樣本的特征初次提取。③融合加強特征提取網(wǎng)絡(luò),增大感受野的同時反復(fù)提取特征信息。④采用Bounding box預(yù)測方式,預(yù)測目標(biāo)類別、置信度和預(yù)測框。
YOLO系列網(wǎng)絡(luò)模型中,YOLO v1存在網(wǎng)絡(luò)模型檢測精度差、目標(biāo)定位不準(zhǔn)確等問題[15];YOLO v2中加入了錨框和批量歸一化,并通過更改網(wǎng)絡(luò)模型結(jié)構(gòu)等操作提升了訓(xùn)練模型性能,但不適用于檢測目標(biāo)重疊的情況[16];YOLO v3中引入了多尺度融合訓(xùn)練、殘差結(jié)構(gòu)、改變網(wǎng)絡(luò)模型結(jié)構(gòu)等操作,使得訓(xùn)練模型性能得到了極大提升,但其主干網(wǎng)絡(luò)深度達53層且采取了多尺度融合,導(dǎo)致檢測速度慢[17];YOLO v4本質(zhì)上繼承了YOLO v3的結(jié)構(gòu),主干網(wǎng)絡(luò)更改為CSPDarkNet53優(yōu)化特征提取性能,采用Mish激活函數(shù)使梯度下降過程更為平滑,相較于ReLU、Sigmod等激活函數(shù),Mish在處理負值時不會完全截斷,保證了特征信息流動[18],同時加入了更多目前流行的技巧(如Mosaic數(shù)據(jù)增強、標(biāo)簽平滑、CIOU等)。但實際上,在檢測精度和速度方面并沒有明顯提升,未達到工業(yè)級番茄檢測的要求。
1.2.2改進的YOLO v4網(wǎng)絡(luò)模型
在剖析YOLO v4網(wǎng)絡(luò)結(jié)構(gòu)的基礎(chǔ)上,設(shè)計了一個基于深度卷積結(jié)構(gòu)的主干網(wǎng)絡(luò),用于對番茄串圖像的初步特征提取。深度卷積結(jié)構(gòu)如圖4所示。
圖4 深度卷積結(jié)構(gòu)Fig.4 Depth convolution structure
番茄檢測模塊由DarkNetBN_Mish模塊、主干網(wǎng)絡(luò)、空間金字塔池化(Spatial pyramid pooling,SPP)、像素聚合網(wǎng)絡(luò)(Pixel aggregation network,PANet)和YOLO Head構(gòu)成。如圖5所示,將深度卷積結(jié)構(gòu)替換主干網(wǎng)絡(luò)中Resblock_body的普通卷積,降低主干網(wǎng)絡(luò)的計算量。
圖5 改進后的Resblock_bodyFig.5 Improved Resblock_body
基于深度卷積結(jié)構(gòu)的主干網(wǎng)絡(luò)提取輸入圖像的特征信息,并將特征信息通過卷積傳遞到DarkNetConv2D_BN_Mish模塊中,對輸入圖像進行歸一化和非線性操作,SPP和PANet負責(zé)對特征信息加強提取。深度卷積結(jié)構(gòu)處理3個通道的特征信息,最后,通過卷積核尺寸為1×1×3的卷積核將 3個通道的屬性進行融合,傳遞給加強特征提取網(wǎng)絡(luò)。相較于普通卷積,深度卷積結(jié)構(gòu)產(chǎn)生的網(wǎng)絡(luò)參數(shù)少,有效解決了深度學(xué)習(xí)網(wǎng)絡(luò)重復(fù)學(xué)習(xí)特征信息造成計算量大的問題,提高了運算速度。網(wǎng)絡(luò)模型的參數(shù)如表1所示??梢钥闯鯠C-YOLO v4在參數(shù)量、處理速度、模型內(nèi)存占用量等方面均優(yōu)于一些主流模型的主干網(wǎng)絡(luò)。
表1 不同網(wǎng)絡(luò)模型的主干網(wǎng)絡(luò)參數(shù)Tab.1 Backbone network parameters of different network models
YOLO v4使用K-means設(shè)計先驗框尺寸,但是它存在預(yù)先人為確定k個初始聚類中心的缺點,導(dǎo)致生成的先驗框不穩(wěn)定,難以反映真實框尺寸情況。之后提出的K-means++針對這一問題,進行了一系列改進,不再預(yù)先人為確定初始聚類中心,具體實現(xiàn)流程如圖6所示。
圖6 K-means++算法流程圖Fig.6 K-means++ algorithm flow chart
本文采用改進的交并比(GIoU)計算公式,通過引入檢測框?qū)捀叩谋壤蜃觱s,避免GIoU在某些情況下退化成IoU的問題,改進的GIoU表達式為
(1)
其中
(2)
式中wgt、hgt——真實框的寬、高
wbb、hbb——預(yù)測框的寬、高
C——兩框最小外接矩形的面積
A∪B——兩框并集的面積
并將式(1)作為K-means++的距離計算公式,提高了網(wǎng)絡(luò)預(yù)測精度。
在網(wǎng)絡(luò)訓(xùn)練前對數(shù)據(jù)集進行了聚類處理,共得到9種尺寸的Anchor box,如圖7所示,其尺寸分別為(18,20),(28,34),(40,45),(59,50),(45,69),(75,79),(126,55),(55,138),(266,295)。相較于K-means聚類結(jié)果,采用K-means++得到的錨框擬合程度更好,便于模型的訓(xùn)練。
圖7 9種尺寸的聚類中心分布圖Fig.7 Distribution of cluster centers of nine sizes
1.3.1ICNet語義分割網(wǎng)絡(luò)
番茄串檢測問題大部分采用傳統(tǒng)圖像處理與機器學(xué)習(xí)相結(jié)合的方式,會受到圖像本身噪聲等多種因素的制約,為了解決番茄串檢測中的局限性,本文將基于深度學(xué)習(xí)的語義分割算法應(yīng)用于番茄串分割領(lǐng)域。ICNet網(wǎng)絡(luò)模型[19]是基于高分辨率圖像的實時語義分割網(wǎng)絡(luò)。它利用處理低分辨率圖像的效率以及高分辨率圖像的高質(zhì)量。思路是使低分辨率圖像先通過全語義感知網(wǎng)絡(luò)來取得大概的語義預(yù)測圖,然后提出級聯(lián)特征融合單元和級聯(lián)標(biāo)簽指導(dǎo)策略整合中等和高分辨率特征,這逐漸提煉了粗糙的語義預(yù)測圖。ICNet的網(wǎng)絡(luò)架構(gòu)如圖8所示。它使用PSPNet的金字塔池化模塊融合多尺度上下文信息,并將網(wǎng)絡(luò)結(jié)構(gòu)劃分為3個分支,分別為低分辨率、中分辨率和高分辨率。配合ResNet50使用3個分支進行特征融合形式的訓(xùn)練,前2個分支增加輔助訓(xùn)練,增加模型收斂。對于每個輸出特征,在訓(xùn)練時會以真實標(biāo)簽的1/16、1/8、1/4來指導(dǎo)各分支訓(xùn)練,使得梯度優(yōu)化更加平滑,隨著每個分支學(xué)習(xí)能力的增強,預(yù)測沒有被某一分支主導(dǎo)。
圖8 ICNet網(wǎng)絡(luò)結(jié)構(gòu)Fig.8 ICNet network structure
分支1將原圖下采樣到1/4尺寸,然后經(jīng)過連續(xù)3次下采樣降維到原圖的1/32,使用空洞卷積層擴展感受野的同時不縮小尺寸,最終輸出1/32原圖的特征圖。分支1的卷積層數(shù)多但特征圖尺寸小,速度快,且第2個分支與第1個分支共享前3層卷積的權(quán)值。
分支2將1/2尺寸的原圖作為輸入,經(jīng)過卷積后降維到1/8原圖,得到1/16尺寸的特征圖,再將第1個分支中由低分辨率圖像提取出的特征圖通過級聯(lián)特征融合單元得到最終輸出。
分支3以原圖像為輸入,經(jīng)3次卷積后得到原圖1/8尺寸的特征圖,再將處理后的輸出和分支2的輸出通過CFF融合。分支3的圖像分辨率大,但卷積層數(shù)少,耗時較少。
ICNet的損失函數(shù)是通過構(gòu)建多分支loss實現(xiàn),損失函數(shù)表達式為
(3)
式中τ——分支數(shù)量,取3
xt、yt——分支的特征圖尺寸
n′——相關(guān)的真實標(biāo)簽
λt——每個分支的損失權(quán)重
通常,高分辨率分支權(quán)重λ3設(shè)置為1,中分辨率和低分辨率分支的權(quán)重λ2和λ1分別設(shè)置為0.4和0.16。
1.3.2改進的ICNet語義分割網(wǎng)絡(luò)
在一些經(jīng)典的深度學(xué)習(xí)語義分割算法中,主要采用VGG系列或者ResNet系列作為主干特征提取網(wǎng)絡(luò),雖然二者都能夠提取圖像的深層信息,但是對于部署到嵌入式設(shè)備上而言,其網(wǎng)絡(luò)模型的參數(shù)量過大,分割速度慢。因此,采用MobileNetv2替換ResNet,取消傳統(tǒng)的卷積計算,采用深度卷積以及1×1的逐點卷積來提取圖像特征,可以成倍減少卷積層的時間復(fù)雜度和空間復(fù)雜度。同時還引入了倒殘差結(jié)構(gòu),先升維后降維,增強梯度的傳播,顯著減少推理期所需的內(nèi)存占用量。倒殘差結(jié)構(gòu)如圖9所示。
圖9 倒殘差結(jié)構(gòu)Fig.9 Inverted residuals
在殘差結(jié)構(gòu)中,首先通過1×1卷積實現(xiàn)降維,再通過3×3卷積提取通道特征,最后使用1×1卷積實現(xiàn)升維。但在倒殘差結(jié)構(gòu)中,先通過1×1卷積實現(xiàn)升維,再通過3×3的逐通道卷積提取特征,最后使用1×1卷積實現(xiàn)降維。調(diào)換了降維和升維的順序,并將3×3的標(biāo)準(zhǔn)卷積換為逐通道卷積,呈兩頭小、中間大的菱形結(jié)構(gòu)。其次,改變了之前所采用的激活函數(shù)。殘差結(jié)構(gòu)中通常采用ReLU激活函數(shù),但是,在倒殘差結(jié)構(gòu)中,采用ReLU6 作為激活函數(shù),最后1個卷積使用的是線性激活函數(shù)。用ReLU6替換ReLU,目的是為了保證在嵌入式設(shè)備低精度也能保有很好的數(shù)值分辨率。如果對ReLU的輸出值不加限制,那么輸出范圍就是零到正無窮, 無法精確描述其數(shù)值,這將帶來精度損失。ReLU6激活函數(shù)如圖10所示。最后1個卷積使用線性激活,則是線性瓶頸結(jié)構(gòu)的內(nèi)容。瓶頸結(jié)構(gòu)是指將高維空間映射到低維空間,縮減通道數(shù);膨脹層則相反,其將低維空間映射到高維空間,增加通道數(shù)。沙漏型結(jié)構(gòu)和梭型結(jié)構(gòu),都可看做是1個膨脹層和1個瓶頸結(jié)構(gòu)的組合。瓶頸結(jié)構(gòu)和膨脹層本質(zhì)上體現(xiàn)的都是1×1卷積。線性瓶頸結(jié)構(gòu)是末層卷積使用線性激活的瓶頸結(jié)構(gòu)。ReLU容易導(dǎo)致逐通道卷積部分的卷積核失活,即卷積核內(nèi)數(shù)值大部分為零,這是因為在變換過程中,需要將低維信息映射到高維空間,再經(jīng)ReLU重新映射回低維空間。若輸出的維度相對較高,則變換過程中信息損失較小;若輸出的維度相對較低,則變換過程中信息損失很大。因此,末層采用線性激活來避免這一問題。
圖10 ReLU6激活函數(shù)Fig.10 ReLU6 activation function
主機操作系統(tǒng)為Ubuntu 16.04,中央處理器為Intel Core i9-10920X GPU@ 3.50 GHz,運行內(nèi)存32 GB,顯卡為Nvidia Quadro P2200(5 GB/戴爾)。神經(jīng)網(wǎng)絡(luò)在Anaconda 3虛擬環(huán)境下訓(xùn)練,采用Pytorch 1.2.0深度學(xué)習(xí)框架,配置安裝Python 3.8編程環(huán)境、GPU并行計算架構(gòu)Cuda 10.0和神經(jīng)網(wǎng)絡(luò)GPU加速庫Cudnn 10.0。
采用PASCAL VOC 2007數(shù)據(jù)集的預(yù)訓(xùn)練權(quán)重訓(xùn)練,訓(xùn)練圖像分辨率為416像素×416像素,每個批次處理8幅圖像,總迭代次數(shù)為1 000,前450次采用凍結(jié)訓(xùn)練加快訓(xùn)練速度,訓(xùn)練學(xué)習(xí)率為0.001,每迭代100次,學(xué)習(xí)率降低0.1,后550次的解凍訓(xùn)練學(xué)習(xí)率為0.000 1??梢钥闯銮?00次迭代中網(wǎng)絡(luò)快速擬合,200次迭代之后損失函數(shù)基本穩(wěn)定,番茄檢測網(wǎng)絡(luò)開始收斂。圖11反映了損失函數(shù)的變化趨勢。
圖11 目標(biāo)檢測模型訓(xùn)練曲線Fig.11 Target detection model training curves
采用PASCAL VOC 2007數(shù)據(jù)集的預(yù)訓(xùn)練權(quán)重訓(xùn)練,輸入圖像分辨率為512像素×512像素,格式為JPG,對應(yīng)的標(biāo)簽圖像格式為PNG,類別數(shù)為2,下采樣倍數(shù)為16,每個批次處理8幅圖像,總迭代次數(shù)為500,前100次為凍結(jié)訓(xùn)練,學(xué)習(xí)率為0.000 5,后400次的解凍訓(xùn)練學(xué)習(xí)率為0.000 005。由圖12可以分析出,在前100次迭代中網(wǎng)絡(luò)快速擬合,100次迭代后損失函數(shù)基本穩(wěn)定,番茄串語義分割檢測網(wǎng)絡(luò)開始收斂。
圖12 語義分割模型訓(xùn)練曲線Fig.12 Semantic segmentation model training curves
為了客觀分析DC-YOLO v4對番茄數(shù)據(jù)集以及ICNet模型對番茄串?dāng)?shù)據(jù)集的語義分割性能,本文引入平均交并比(mIoU)、準(zhǔn)確率(Precision)、召回率(Recall)、平均精度均值(mAP)、綜合評價指標(biāo)(F1值)、類別平均像素準(zhǔn)確率(mPA)和檢測時間(Time)等評價指標(biāo)。本文的目的是快速準(zhǔn)確識別番茄并分割番茄莖,因此把平均交并比、平均精度均值和檢測時間作為主要評價指標(biāo)。利用IoU閾值為0.5的平均精度來測定番茄識別模型的準(zhǔn)確性。此度量標(biāo)準(zhǔn)用于測量目標(biāo)檢測器的精度,因為它平衡了精度和召回率。
本文設(shè)計的檢測模塊借鑒了YOLO系列的架構(gòu),融合了深度卷積結(jié)構(gòu),因此有必要與傳統(tǒng)的YOLO系列算法的番茄識別性能進行對比分析。同時,使用批量為8、尺寸為416像素×416像素的圖像,對經(jīng)過訓(xùn)練的MobileNet-YOLO v4、YOLOX、YOLO v5-m、YOLO v6進行測試和比較,在測試模型中獲得的結(jié)果存在差異,測試結(jié)果如圖13所示。DC-YOLO v4模型對番茄和番茄串的識別正確率高于YOLO v4模型,YOLO v4模型深度圖中存在大量噪點,導(dǎo)致其識別精度不足,誤檢率高。MobileNet-YOLO v4檢測模型在實際應(yīng)用中,對番茄串的識別不敏感,且在深度圖中,DC-YOLO v4模型的番茄串輪廓更為光滑。YOLOX模型[20]是由曠視科技在2021年提出的全新檢測模型,DC-YOLO v4模型與YOLOX模型在實際測試中,并無明顯區(qū)別。YOLO v5-m模型的檢測速度快,但喪失了一定的識別準(zhǔn)確度,雖然能夠獲取圖像的高級特征,但這些特征具有平移不變性[21],不利于對目標(biāo)信息的區(qū)域采樣。
圖13 不同檢測模型測試效果Fig.13 Test results of different test models
為論證本研究提出的DC-YOLO v4模型的有效性,又與YOLO v5模型系列中最為主流的YOLO v5-m、YOLO v6以及CenterNet檢測模型比較。YOLO v6模型是美團視覺智能部研發(fā)的一款目標(biāo)檢測框架,致力于工業(yè)應(yīng)用。CenterNet模型[22]是無錨框目標(biāo)檢測器,由于沒有復(fù)雜的Anchor操作,檢測速度優(yōu)于Two-Stage及預(yù)錨框系列,算法性能良好,對小目標(biāo)檢測具有優(yōu)勢[23]。CenterNet模型只通過FCN(全卷積)的方法實現(xiàn)了對于目標(biāo)的檢測與分類,即使沒有Anchor與NMS等操作,它在高效的同時精度也較好??梢詫⑵浣Y(jié)構(gòu)進行簡單修改就可以應(yīng)用到農(nóng)業(yè)場景下的番茄目標(biāo)檢測之中。
表2展示了不同網(wǎng)絡(luò)模型對番茄串和番茄的檢測性能,DC-YOLO v4模型的mAP最大,對于番茄和番茄串的識別準(zhǔn)確率及召回率最高,單幅圖像預(yù)測時DC-YOLO v4模型比YOLO v4模型的mAP高2.04個百分點。比MobileNet v3-YOLO v4模型的mAP高1.08個百分點。原因是卷積層較多,計算量大,檢測速度偏慢,神經(jīng)網(wǎng)絡(luò)層數(shù)過深,因此檢測精度較低。與DC-YOLO v4模型相比,CenterNet模型難以對紋理特征進行有效提取,mAP低于DC-YOLO v4模型2.34個百分點,并且檢測時間差,不滿足工業(yè)條件下的實時性要求。
表2 不同識別模型性能比較Tab.2 Performance comparison of different recognition models
另外,DC-YOLO v4模型的召回率稍低于YOLO v5-m模型與YOLO v6模型,原因是YOLO v5-m模型的Backbone是基于CSPNet搭建的,而YOLO v6模型的Backbone則是引入了RepVGG結(jié)構(gòu)[24],二者的主干檢測網(wǎng)絡(luò)較為復(fù)雜,對于單番茄果實的特征提取能力強。相對于YOLOX模型,雖然DC-YOLO v4模型的檢測時間增加0.74 ms,實時性略低于YOLOX模型,但是檢測精度提高3.62個百分點??梢钥闯?DC-YOLO v4模型能同時兼顧實時性和準(zhǔn)確性,滿足工業(yè)條件下采摘機器人的需求。
為了更好地展現(xiàn)改進的ICNet模型性能提升的直觀效果,本研究還選取目前有代表性的主流語義分割網(wǎng)絡(luò)DeepLab_v3+[25]、U-Net[26]和PSPNet[27]進行實際測試實驗。對比實驗結(jié)果如 圖14 所示,相較于ICNet,改進后的ICNet能夠完整分割出番茄莖,較好地保存逐像素點含有的位置信息和語義信息,U-Net只能捕捉大致外形,且包含大量噪點,PSPNet缺少分割細節(jié),不能很好地表征目標(biāo)特征,DeepLab_v3+在實際測試中,效果與改進后的ICNet無明顯差異。根據(jù)本研究提出的量化指標(biāo),結(jié)合表3可以得出,改進的ICNet網(wǎng)絡(luò)與其他網(wǎng)絡(luò)相比分割性能有了一定的提高,本文提出的改進ICNet網(wǎng)絡(luò)mIoU和mPA分別為81.63%和91.87%,相較于ICNet模型,mIoU和mPA分別提升2.19個百分點和1.47個百分點;相較于DeepLab_v3+模型,mIoU和mPA分別提升7.04個百分點和3.51個百分點;相較于U-Net模型,mIoU和mPA分別提升7.74個百分點和4.88個百分點;相較于PSPNet模型,mIoU和mPA分別提升9.71個百分點和4.66個百分點。結(jié)果表明,改進ICNet網(wǎng)絡(luò)相較于其他網(wǎng)絡(luò)在番茄莖分割上更有優(yōu)勢。
表3 不同分割模型性能比較Tab.3 Performance comparison of different segmentation models
圖14 不同分割模型測試效果Fig.14 Test results of different segmentation models
為了驗證本文提出的農(nóng)作物采摘視覺感知模型在實際應(yīng)用場景下的性能,將模型部署到山東中科智能農(nóng)業(yè)機械裝備創(chuàng)新技術(shù)中心自主研發(fā)的番茄采摘機器人系統(tǒng)中進行采摘實驗。如圖15所示,采摘機器人核心組成部件包括眾為創(chuàng)造xARM型六軸機械臂、Intel RealSense D435型深度相機、可移動吊軌以及工控機。
圖15 吊軌采摘機器人Fig.15 Rail picking robot
在實際應(yīng)用中,當(dāng)完成檢測任務(wù)后,控制系統(tǒng)會給機械臂發(fā)送一個前移指令,末端執(zhí)行器帶動RealSense D435型深度相機向番茄莖大概方位移動,拉近感受視野,使ICNet能夠?qū)崟r分割出視頻流數(shù)據(jù)中的番茄莖。如圖16所示,彩色圖中的藍色掩膜為ICNet模型在視頻流中的分割效果,為了滿足工程級的實時性要求,采用霍夫變換將其轉(zhuǎn)換為二值圖進行處理,加快系統(tǒng)的處理速度。
圖16 實際場景中的分割效果Fig.16 Segmentation effect in real scene
本文共進行了80次采摘實驗,由于吊軌采摘機器人每次僅能采摘一串紅色番茄,故只統(tǒng)計了紅色番茄串的采摘成功率,最終的平均采摘成功率為84.8%。RealSense D435型深度相機檢測到番茄串后,會計算并返回感興趣區(qū)域的的中心點,控制系統(tǒng)驅(qū)動末端執(zhí)行器移動到中心點前的10 cm處,經(jīng)過ICNet模型處理后,得到分割番茄莖,末端執(zhí)行器會根據(jù)計算得到的采摘點進行采摘,最后將采摘的番茄串放入收納籃中,完成上述采摘流程平均用時6 s。影響工作時間的主要原因是番茄莖與背景顏色相近,對于番茄莖的形狀特征提取能力差,同時枝葉的遮擋也增加了番茄莖提取的難度。
(1)番茄和番茄串測試集上的實驗結(jié)果表明,檢測模塊對番茄的識別準(zhǔn)確率為98.86%,召回率為98.48%,F1值為99%,對番茄串的識別準(zhǔn)確率為97.56%,召回率為97.35%,F1值為97%,模型平均精度為99.31%,模型平均識別單幅圖像需要6.32 ms。相比于本研究中選用的一些目標(biāo)檢測對比模型,在性能上有明顯的提升,DC-YOLO v4模型的mAP相比于YOLO v4、MobileNet v3-YOLO v4、YOLOX、YOLO v5-m、CenterNet、YOLO v6模型提高2.04、1.08、3.62、1.28、2.34、0.34個百分點。
(2)番茄莖測試集上的實驗結(jié)果表明,改進的ICNet分割模型對番茄莖的平均召回率為91.87%,mIoU為81.63%,mPA為91.87%,模型平均分割單幅圖像需要8.21 ms,改進的ICNet模型的mPA相比于ICNet、DeepLab_v3+、U-Net和PSPNet分別提升1.47、3.51、4.88、4.66個百分點。
(3)將檢測模型部署到番茄采摘機器人上,在溫室環(huán)境下對番茄串進行采摘論證,與人工檢驗進行對比,結(jié)果表明,機器人的準(zhǔn)確采摘率為84.8%,平均完成一次采摘動作用時6 s。本文的研究結(jié)果可以為復(fù)雜溫室環(huán)境下的其他農(nóng)作物采摘提供技術(shù)支撐。