劉 慧 姜建濱 沈 躍 賈衛(wèi)東 曾 瀟 莊珍珍
(1.江蘇大學電氣信息工程學院,鎮(zhèn)江 212013;2.江蘇大學農(nóng)業(yè)工程學院,鎮(zhèn)江 212013)
我國是果業(yè)大國,露天果園環(huán)境的病蟲害防治主要途徑是農(nóng)藥噴灑。隨著我國農(nóng)業(yè)機械化水平的提高和現(xiàn)代化果園的規(guī)模化種植,果園噴霧機器人成為林果園植保機械的重要研究內(nèi)容和發(fā)展方向[1-2]。果園噴霧機器人的噴霧決策離不開果園環(huán)境感知,尤其是靶標識別,目前常用的果園噴霧靶標探測技術(shù)包括超聲波探測、紅外線探測、激光雷達探測等[3-4]。紅外傳感器易受光照強度影響且只能探測靶標的有無,無法探測靶標的形態(tài)特征;超聲波探測精度低,范圍小,需多傳感器配合;激光雷達成本較高[5]。果園場景的實時感知和多目標分割,能夠為噴霧機器人的變量施藥和安全作業(yè)提供有效決策,是果園噴霧機器人精準作業(yè)的重要前提和保障[3]。近些年來,計算機視覺、圖像處理技術(shù)在農(nóng)業(yè)生產(chǎn)中得到了廣泛的應用[6-9]。基于深度學習的語義分割[10-13]和目標檢測[14-15]已成為大量學者的研究方向,果園噴霧機器人使用計算機視覺技術(shù)對周圍場景實時檢測,對靶標精準識別,可以提高農(nóng)藥利用率,從而減少農(nóng)藥污染。
近些年來,學者們提出了一系列基于深度學習的圖像語義分割方法[16],其中DeepLab V3+在PASCAL VOC 2012和Cityscapes數(shù)據(jù)集上分別達到89.0%和82.1%的測試集性能[17],其精度可以滿足在果園環(huán)境下分割達到較高準確率的要求。但其主干網(wǎng)絡Xception[18]計算量大,消耗大量顯存,且模型占用計算機內(nèi)存大,尚未滿足在機器人移動設備上部署的要求。
為了保證果園噴霧機器人精準作業(yè),本文旨在實現(xiàn)精準識別靶標,基于DeepLab V3+算法進行改進和優(yōu)化,采用MobileNet V2作為主干網(wǎng)絡,并對卷積進行改進,同時減少網(wǎng)絡計算量,設計更為輕量化的網(wǎng)絡結(jié)構(gòu),提高網(wǎng)絡的運行速度和分割精度,以滿足在移動端部署的要求,從而達到在復雜果園環(huán)境中,噴霧機器人進行精準噴霧和安全作業(yè)的目的。
DeepLab V3+是在DeepLab V3的基礎上進行了改進,它是一種新的編碼器-解碼器結(jié)構(gòu)。DeepLab V3作為其編碼器部分,添加了一個簡單有效的解碼器模塊,DeepLab V3+總體原理如圖1所示。

圖1 DeepLab V3+總體原理圖
編碼器使用空洞空間金字塔池化,以Xception網(wǎng)絡作為特征提取網(wǎng)絡,并引入深度可分離卷積進行改進應用到ASPP中,采用多網(wǎng)格法,3個卷積采用不同的擴張率,將得到的圖像級特征輸入256個濾波器的1×1卷積并進行批量歸一化處理。
Xception由具有殘差連接的深度可分離卷積線性堆疊,分為Entry flow、重復16次的Middle flow以及Exit flow。在經(jīng)過批量歸一化處理后進行1×1卷積,對通道降維以得到編碼器部分的輸出。
解碼器部分旨在連接低層次特征與高層次特征,解碼器部分同樣應用深度可分離卷積,將編碼器部分輸出(高層次特征,output_stride為16)經(jīng)過4倍雙線性上采樣得到的特征層與編碼器中對應著相同分辨率的特征層(低層次特征,output_stride為4)進行1×1卷積降維后融合,再經(jīng)過一個3×3卷積細化,最終再經(jīng)過4倍雙線性上采樣得到原圖分辨率的預測結(jié)果。
1.2.1改進DeepLab V3+主干網(wǎng)絡的輕量化設計
DeepLab V3+在語義分割方面已經(jīng)能達到較高精度,但其主干網(wǎng)絡Xception參數(shù)量龐大,消耗大量的顯存,在Xception組成部分中,雖然網(wǎng)絡層數(shù)最多的是Middle flow,但顯存消耗最大的卻是Entry flow,這是由于在Entry flow里的特征還未被充分下采樣,分辨率相當高,同時Entry flow里的通道數(shù)很多,這也是導致Xception計算量大的一個重要原因,因而需要耗費較長的時間。
農(nóng)業(yè)機器人需快速獲取周圍環(huán)境信息,形成決策并控制執(zhí)行器做出反應。為了在果園噴霧機器人上部署,引入輕量化網(wǎng)絡MobileNet V2[19],MobileNet系列網(wǎng)絡以深度可分離卷積[20](Depthwise separable convolution)來減少運算量及參數(shù)量,適合在移動設備上部署。將MobileNet V2作為基礎網(wǎng)絡,為了滿足精度與速度之間的平衡,且對于一般情況下的果園噴霧機器人而言,達到較為精準和快速的作業(yè)即可,故而在MobileNet V2的基礎上,將ASPP中的ReLU[21]激活函數(shù)替換成ClippedReLU[22]激活函數(shù),ClippedReLU激活函數(shù)是ReLU激活函數(shù)的變形,在ReLU的基礎上增加了上限z,即
f(x)=min(relu(x),z)=min(max(0,x),z)
(1)
式中f(x)——ClippedReLU激活函數(shù)的輸出
x——輸入特征值
z——ClippedReLU激活函數(shù)上限
令z=6,則得到ReLU6激活函數(shù),對于果園噴霧機器人移動設備部署,主要是對果樹進行識別,在果園噴霧存在誤差的低精度場景下,ReLU6較ReLU具有更好的魯棒性[14]。
1.2.2混合擴張卷積
自DeepLab V2起,空洞(擴張)卷積被運用在ASPP中,空洞卷積是在標準的卷積圖注入空洞,以此增加感受野,與標準的卷積相比,空洞卷積多了一個超參:擴張率,即卷積圖上卷積核之間的間隔數(shù)。在語義分割領域,將原始圖像輸入到卷積網(wǎng)絡中,傳統(tǒng)的方法會對圖像卷積后再做池化處理,降低圖像尺寸的同時增大感受野,但語義分割是像素級的預測,在最后會進行上采樣以得到與原圖圖像尺寸一樣的預測結(jié)果,但在先減小后增大尺寸的過程中,伴隨著信息的損失,而空洞卷積的引入一定程度上可解決這一問題,因空洞卷積在非池化操作卷積的情況下,增大了感受野。但空洞卷積存在網(wǎng)格效應問題,網(wǎng)格效應指多次疊加多個具有相同擴張率的卷積核會造成網(wǎng)格中有一些像素自始至終都沒有參與運算。當空洞卷積在高層使用的擴張率變大時,對輸入的采樣會變得很稀疏,不利于學習,因為一些局部信息完全丟失,而長距離上的一些信息可能并不相關;并且網(wǎng)格效應可能會打斷局部信息之間的連續(xù)性,雖然ASPP疊加擴張率不同的卷積,但這些擴張率并不互質(zhì),仍然會存在網(wǎng)格效應。
語義分割不同于目標檢測,不僅僅識別目標,還需了解像素分布,尤其是針對果園噴霧機器人,果樹形態(tài)分布對噴霧的控制決策十分重要,即果樹的特征信息很重要,而DeepLab V3+的ASPP采用的空洞卷積存在信息丟失問題。故本文針對空洞卷積網(wǎng)格效應的問題,引入混合擴張卷積[23],混合擴張卷積將卷積的擴張率設置為鋸齒狀,如[r1,r2,…,ri,…,rn],…,[r1,r2,…,ri,…,rn]的循環(huán)結(jié)構(gòu),并滿足
Mi=max(Mi+1-2ri,Mi+1-2(Mi+1-ri),ri)
(2)
其中
Mn=rn
式中Mi——第i層卷積最大擴張率
ri——第i層卷積的擴張率
式(2)應滿足M2≤K(卷積核大小為K×K),以此來保證至少能夠以擴張率1來彌補所有空洞,即至少以標準卷積計算。
在此基礎之上,將ASPP中的卷積擴張率設置為1、2、5、9,以此實現(xiàn)對不同像素占比大小目標的特征捕獲,大的擴張率對應像素占比大的目標,小擴張率對應像素占比小的目標。HDC的優(yōu)點是使用任意滿足式(2)的擴張率,可以在不增加額外模塊的情況下擴大網(wǎng)絡的感受野。
改進后的ASPP模塊如圖2所示,圖中DW表示深度卷積(Depthwise convolution),PW表示逐點卷積(Pointwise convolution),DW+PW則組成深度可分離卷積,BN表示批量歸一化(Batch normalization),Dilated表示該卷積為空洞(擴張)卷積。

圖2 改進后的ASPP模塊
1.2.3改進后的DeepLab V3+網(wǎng)絡結(jié)構(gòu)
將Mobilenet V2替代DeepLab V3+的Xception主干網(wǎng)絡,將HDC的思想應用到DeepLab V3+的ASPP模塊中,把ASPP模塊中的卷積擴張率設置成鋸齒狀結(jié)構(gòu),這些擴張率互質(zhì),改進后的網(wǎng)絡簡圖如圖3所示。

圖3 改進后的DeepLab V3+網(wǎng)絡
深度學習硬件平臺為一臺配有Intel(R)Core(TM)i9-10900K CPU 64 GB內(nèi)存、NVIDIA Quadro RTX 4000 GPU的計算機,安裝有CUDA10.0版本的并行計算框架和CUDNN7.0版本的深度神經(jīng)網(wǎng)絡加速庫。在Linux操作平臺基于Pytorch框架實現(xiàn)本文的DeepLab V3+語義分割模型并完成對模型的訓練、驗證及測試。
由于目前還有很多未包含多類別的果園場景公開數(shù)據(jù)集,所以本試驗中使用的是實景拍攝并制作的數(shù)據(jù)集。用車載Realsense D435型相機(圖4,相機距離地面1.34 m)在果園內(nèi)共拍攝了360幅RGB圖像,圖像分辨率為960像素×720像素。包含8類果園常見場景目標:天空、樹、人、路、車(農(nóng)用車)、建筑、地面及標志物(灌溉管、支撐桿和標志牌等)。

圖4 噴霧機器人試驗平臺
采用GamVid數(shù)據(jù)集格式[24],使用其官方標注工具InteractLabeler對每幅圖像進行像素級數(shù)據(jù)標注,得到真實框(Ground truth)用于訓練,將標注圖像保存為PNG格式,如圖5所示。除8類常見果園場景目標外,在對采集圖像進行標注時,像素占比小的目標標注較為困難且存在誤差,將其新增為一類:其他類,即未標注類。將數(shù)據(jù)集按照比例4∶1分為訓練集和測試集。

圖5 數(shù)據(jù)集圖像示意圖
為防止訓練過擬合、提高網(wǎng)絡準確率、減少圖像中光照影響,同時擴增圖像的數(shù)量,首先采用直方圖均衡化增強圖像的對比度,再通過隨機翻轉(zhuǎn)、隨機平移、隨機裁剪、隨機反射進行數(shù)據(jù)增強,圖像數(shù)量擴充為1 440幅,圖像分辨率為960像素×720像素,在訓練前將DeepLab V3+在GamVid數(shù)據(jù)集上的公開預訓練模型的參數(shù)值除分類層之外都賦給本文模型的初始化參數(shù),分類層采用均值為0、標準差為0.01的高斯分布隨機初始化。用于訓練的優(yōu)化算法是動量隨機梯度下降算法。損失函數(shù)L為交叉熵損失函數(shù);訓練迭代次數(shù)設為30 000,沖量設為0.9,學習率設為0.01,采用Poly策略,批量大小設為8,每100次迭代驗證一次并保存為最新訓練模型,最終選取保存精度最高的模型。計算式為
(3)
式中N——當前batch樣本量
M——類別
yic——指示變量,如果i類別和樣本c類別相同則為1,否則是0
pic——觀測樣本i屬于類別c的預測概率
分割評價的指標包括像素精度(Pixel accuray, PA)、平均像素精度(Mean pixel accuray, MPA)、交并比(Intersection over union, IoU)、平均交并比(Mean intersection over union, MIoU)。
分別對改進前后的模型進行測試,8類主要場景目標分割結(jié)果對比如表1所示。

表1 改進前后DeepLab V3+模型的8類果園場景目標分割結(jié)果對比
由表1可知,除車外,改進后模型各類別的分割精度和交并比均比改進前有不同程度的提高。由于在果園中,車出現(xiàn)的頻率較小,且在行間行走時,一般不會同時有多輛噴霧機器人同時作業(yè),所以對車類的識別不會影響噴霧機器人作業(yè)安全和效率。除了車以外,標志物也是出現(xiàn)頻率很低的目標,所以這兩者精度和平均交并比都較低,但對于果園噴霧機器人而言,果樹是主要的識別目標,改進后的模型對樹的PA比改進前提高1.31個百分點,IoU提高2.48個百分點,這說明改進后的模型更利于果園噴霧機器人的靶標識別,對精準噴霧具有指導決策的作用。
針對不同主干網(wǎng)絡,基于Pytorch分割結(jié)果如圖6所示。圖6c~6f分別為4種模型的分割結(jié)果,其中圖6e為改進前以Xception為主干網(wǎng)絡的DeepLab V3+分割結(jié)果,圖6f為本文DeepLab V3+分割結(jié)果。本文方法以MobileNet V2為主干網(wǎng)絡的DeepLab V3+模型總體優(yōu)于主干網(wǎng)絡為Xception、ResNet50以及ResNet101的模型,對像素占比大的目標,分割效果更為明顯;改進前以Xception為主干網(wǎng)絡的DeepLab V3+模型識別錯誤率相對較高(尤其是對天空出現(xiàn)大片的錯誤識別),本文改進的DeepLab V3+未出現(xiàn)大片的誤識別,說明改進的DeepLab V3+模型其分割準確率有了一定的提升。除天空外,4種模型對像素占比大的目標識別相差不大,但對距離較遠,像素占比小的目標識別卻有差別,如改進前以Xception為主干網(wǎng)絡的DeepLab V3+模型對遠處像素占比小的建筑并不敏感,并未識別出遠處像素占比小的建筑;對于灌溉管的識別,改進后的模型表現(xiàn)明顯優(yōu)于其他3種;對人的識別,改進前以Xception為主干網(wǎng)絡的DeepLab V3+模型表現(xiàn)也不如其他3種,改進后模型對人的識別,輪廓的分割更為清晰,更與標注貼近;改進前以Xception為主干網(wǎng)絡的DeepLab V3+模型對支撐桿并不敏感,雖然與樹干的顏色相近,但其他3種對支撐桿都有一定的識別。

圖6 不同模型的分割結(jié)果
使用不同主干網(wǎng)絡,不同模型的分割效果及模型參數(shù)量對比如表2所示。由表2可知,本文改進后的DeepLab V3+模型的像素精度達到91.84%,比改進前以Xception為主干網(wǎng)絡的DeepLab V3+模型提高2.75個百分點,高出以ResNet50為主干網(wǎng)絡的DeepLab V3+模型0.7個百分點,比以ResNet101為主干網(wǎng)絡的DeepLab V3+低0.26個百分點。本文改進后DeepLab V3+模型的MPA和MIoU分別達到62.81%和56.64%,比改進前以Xception為主干網(wǎng)絡的DeepLab V3+分別提升5.52個百分點和8.75個百分點,且單幅圖像分割時間也縮短0.09 s。MPA和MIoU略低于DeepLab V3+(ResNet50)和DeepLab V3+(ResNet101),但其分割速度快于DeepLab V3+(ResNet50)和DeepLab V3+(ResNet101),尤其是參數(shù)量較以ResNet50、ResNet101和Xception為主干網(wǎng)絡的模型分別壓縮83.73%、93.30%和88.67%。試驗結(jié)果表明改進后模型表現(xiàn)較好,且速度有一定的提升,更利于語義分割模型在果園農(nóng)業(yè)設備上的部署和應用。

表2 DeepLab V3+不同主干網(wǎng)絡的分割結(jié)果對比
(1)提出了改進的DeepLab V3+語義分割模型,并將其用于果園場景多類別的分割。引入MobileNet V2,替代原有Xception主干網(wǎng)絡,并在ASPP模塊中用ReLU6激活函數(shù)替代原有ReLU激活函數(shù),將HDC思想應用到DeepLab V3+的ASPP中,把ASPP中的卷積擴張率設置成鋸齒狀結(jié)構(gòu),且擴張率互質(zhì)。
(2)根據(jù)果園中常見的場景目標制作了數(shù)據(jù)集,包含果樹、行人、天空等8類常見場景目標,分別用于改進前后DeepLab V3+語義分割模型的訓練和測試。結(jié)果表明,改進后的Deeplab V3+模型具有較高的準確性和實時性,平均像素精度、平均交并比分別達到62.81%和56.64%,比改進前以Xception為主干網(wǎng)絡的DeepLab V3+模型分別提高5.52、8.75個百分點;尤其是對樹的識別在平均像素精度、平均交并比分別達到95.61%和89.61%,比改進前提高1.31、2.48個百分點;改進后模型參數(shù)量壓縮88.67%,單幅圖像分割時間為0.08 s。但改進前后模型共同存在的問題是對遠處像素占比小的目標,其識別分割效果一般,但對于果園內(nèi)行駛的噴霧機器人只需對近處的物體進行快速、準確識別和分割即可,從而實施精準噴霧作業(yè)。