王新彥,呂峰,易政洋
(江蘇科技大學機械工程學院,江蘇鎮(zhèn)江,212100)
近年來隨著草坪綠化水平越來越受重視[1],對草坪割草設(shè)備的要求也越來越高。而坐騎式割草機翻滾對駕駛員帶來的損傷使得割草機器人的研發(fā)勢在必行[2],而本項目的視覺感知技術(shù)研究是實現(xiàn)割草機器人智能化的前提。
計算機視覺技術(shù)發(fā)展至今已為生產(chǎn)發(fā)展提供了諸多解決方案[3-7],在樹木檢測方法研究中,也涌現(xiàn)出了大量研究成果。馬繼東等[8]利用HALCON軟件對標定的樹木進行幾何參數(shù)測量,但該方法智能化程度低,檢測時需要人工對單張圖片進行標定,無法實現(xiàn)自動測量,且無法在嵌入式設(shè)備上運行。馮運發(fā)等[9]采用基于顏色空間和動態(tài)閾值分割的方法,生成外接矩形來實現(xiàn)樹干的檢測,但該方法無法在單張圖片中實現(xiàn)多種類樹木檢測。張燁等[10]基于Hough變化和Sobel算子提出了輸電線路下的樹木檢測方法,但該方法通過導線定位感興趣的區(qū)域(Region of Interest, ROI),無法實現(xiàn)無參照定位,且該方法中圖片背景單一,不適用于背景復雜的草坪環(huán)境。葉陽等[11]提出了一種基于主動輪廓演變模型的遙感影像單棵樹木檢測方法,該方法不足之處在于無法實現(xiàn)多目標多種類樹木檢測。
上述研究推動了樹木檢測技術(shù)的發(fā)展,具有重要的指導意義,但是現(xiàn)有的方法大多都是針對一般環(huán)境下的樹木特征,草坪樹木不同于一般的樹木,其形狀與紋理特征有其特殊性。已有的樹木檢測方法智能化、輕量化程度較低。一方面無法實現(xiàn)多種類、多目標的樹木檢測,另一方面計算依賴于個人電腦與特有的軟件,難以部署在算力有限的嵌入式割草機器人上。為了解決這一問題,本文實地制作了草坪樹木數(shù)據(jù)集;基于YOLO(You Only Look Once)系列算法[12-15]思想,提出了基于優(yōu)化Tiny YOLOV4算法的草坪樹木檢測算法,從而解決了草坪樹木數(shù)據(jù)集缺失、樹木檢測方法智能化程度低與YOLO系列算法輕量化程度低的問題,為草坪環(huán)境樹木檢測提供了一種新的思路。
由于缺乏公共的草坪樹木數(shù)據(jù)集,通過智能手機在草坪環(huán)境實地采集了具有代表性的兩類樹木特征,樹干(Trunk)和球狀樹木(Spherical Tree),如圖1所示。
(a) 樹干樣本
(b) 球狀樹木樣本圖1 數(shù)據(jù)集中草坪樹木類別Fig. 1 Classes of lawn trees in the dataset
樹干和球狀樹木樣本總數(shù)為8 489張,按照3∶1的比例劃分為訓練集和測試集,且相互獨立,并標注成YOLO格式的文本文檔。其中每個類別包含的樣本數(shù)量如表1所示。在數(shù)據(jù)集上使用kmeans++算法聚類出6類先驗框(Anchor Box),尺寸分別為(10×43),(22×88),(38×174),(91×102),(68×323)和(111×338)。
表1 樣本情況統(tǒng)計表Tab. 1 Sample situation Statistical table
原Tiny YOLOV4網(wǎng)絡(luò)整體結(jié)構(gòu)如圖2所示。虛線框內(nèi)為網(wǎng)絡(luò)特征提取的骨干部分,在網(wǎng)絡(luò)淺層通過步長為2的3×3卷積對輸入圖像進行下采樣和特征提取。通過縮放模塊將輸入特征圖分成兩組,對其中一組進行卷積操作,在降低計算量的情況下提取特征信息;最后通過拼接操作,進行通道擴張。對骨干網(wǎng)絡(luò)的輸出采用一系列卷積操作,最終對13×13的特征圖進行樹木目標檢測。通過對13×13的特征圖上采樣與網(wǎng)絡(luò)前部的26×26的特征圖拼接進行分辨率的擴張,最終對26×26的特征圖進行目標檢測。
圖2 原Tiny YOLOV4網(wǎng)絡(luò)結(jié)構(gòu)Fig. 2 Original Tiny YOLOV4 network structure
原算法采用大量3×3的卷積層提取特征,卷積運算原理如圖3所示,卷積核在通道數(shù)為N的輸入特征圖上由左上角沿橫向和縱向滑動至右下角的過程中,卷積核與特征圖重合部分每個像素值對應相乘并對乘積求和得到輸出特征圖像素值,通過M個卷積核的共同作用,形成通道數(shù)為M的輸出特征圖。其中,卷積核通道數(shù)和輸入特征圖通道數(shù)相等,卷積核個數(shù)與輸出特征圖通道數(shù)相等。
圖3 卷積運算原理Fig. 3 Convolution operation theory
一個N通道的輸入張量與K×K的卷積核進行卷積運算,輸出M通道張量,卷積所需要的參數(shù)量
c=K2NM
(1)
式中:c——卷積所需要的參數(shù)數(shù)量;
K2——卷積核尺寸;
N——輸入張量通道數(shù);
M——輸出張量通道數(shù)。
因此,卷積參數(shù)數(shù)量與卷積核尺寸、輸入特征圖通道數(shù)和輸出特征圖通道數(shù)有關(guān)。在神經(jīng)網(wǎng)絡(luò)中,卷積參數(shù)即為網(wǎng)絡(luò)學習的參數(shù),因此卷積參數(shù)數(shù)量對神經(jīng)網(wǎng)絡(luò)的訓練時長、運算速度和輕量化程度有著重大影響。
增強模塊與輕量模塊的設(shè)計如圖4所示。
圖4 增強模塊與輕量模塊結(jié)構(gòu)Fig. 4 Enhanced module and lightweight module structure
為了增強網(wǎng)絡(luò)的特征提取能力,進行通道多尺度變化,將原網(wǎng)絡(luò)的縮放模塊2和縮放模塊3的第一層卷積層在通道拆分之前,經(jīng)過一個1×1的點卷積層進行通道像素之間的線性組合和通道壓縮;再經(jīng)過一個3×3的卷積層增強網(wǎng)絡(luò)對特征信息的提取能力,同時將通道數(shù)擴張至原值形成增強模塊。為了降低網(wǎng)絡(luò)卷積運算的參數(shù)數(shù)量,根據(jù)式(1)對縮放模塊1進行輕量化處理,將縮放模塊1的第一層卷積層替換為1×1和3×3的卷積層,即由原3×3、輸出通道為2b的卷積層替換為先經(jīng)過1×1、將通道數(shù)壓縮至b的點卷積層,再經(jīng)過3×3、將通道由b擴張為2b的卷積層進行特征提取的方式形成輕量模塊,降低卷積運算的參數(shù)量。通過通道多尺度變化,原縮放模塊可優(yōu)化為具備更強學習能力的增強模塊,也可優(yōu)化為具備更少計算參數(shù)的輕量模塊。
一方面,增強模塊通過增加1×1和3×3的卷積層,提高了網(wǎng)絡(luò)的特征提取能力,同時也增加了卷積運算的參數(shù)量;另一方面,輸入圖像經(jīng)過一系列卷積層和池化層之后,分辨率越來越小,深層的卷積層提取到高度抽象的特征信息,由于淺層的卷積層通常對目標的局部或者小目標較為敏感[16],因此,原Tiny YOLOV4網(wǎng)絡(luò)缺乏與網(wǎng)絡(luò)淺層信息的融合,對小目標的檢測能力不足。為了解決上述問題,同時提高網(wǎng)絡(luò)淺層信息的利用率,采用多分辨率融合的設(shè)計方案。多分辨率融合模塊設(shè)計如圖5所示。將最大池化層2輸出的分辨率為26×26的特征圖經(jīng)過步長為2的3×3卷積層進行下采樣,得到13×13分辨率的特征圖;將該特征圖與最大池化層3輸出的13×13的特征圖拼接,形成分辨率為13×13,通道數(shù)為640的特征圖,替換原Tiny YOLOV4骨干網(wǎng)絡(luò)中卷積層3,即計算量和參數(shù)數(shù)量最多的卷積層,形成多分辨率融合模塊,降低整體網(wǎng)絡(luò)的卷積參數(shù)數(shù)量,提高網(wǎng)絡(luò)的輕量化程度和多分辨率融合能力,進而提高網(wǎng)絡(luò)對較小目標的檢測能力。
圖5 多分辨率融合設(shè)計Fig. 5 Multi-resolution fusion design
優(yōu)化后的Tiny YOLOV4網(wǎng)絡(luò)總體結(jié)構(gòu)如圖6所示。虛線框內(nèi)為骨干網(wǎng)絡(luò),其余部分與原Tiny YOLOV4網(wǎng)絡(luò)相同。將輸入圖像經(jīng)過兩層步長為2的3×3卷積層,降低尺寸,擴張通道,快速學習特征信息。用輕量模塊替換縮放模塊1,增強模塊1和增強模塊2分別替換縮放模塊2和縮放模塊3。輕量模塊用于降低3×3卷積的計算量和計算參數(shù),增強模塊用于強化優(yōu)化Tiny YOLOV4骨干網(wǎng)絡(luò)的特征提取能力。最大池化層用于快速降低特征圖的分辨率,多分辨率融合模塊一方面用來抵消增強模塊增加的參數(shù)和計算量,另一方面用于加強網(wǎng)絡(luò)深層對淺層高分辨率信息的融合能力,提高骨干網(wǎng)絡(luò)對局部特征和較小目標的檢測精度。
圖6 優(yōu)化Tiny YOLOV4網(wǎng)絡(luò)結(jié)構(gòu)Fig. 6 Optimized Tiny YOLOV4 network structure
為定性評價本文提出的草坪樹木檢測算法的檢測效果,用訓練集對本文算法進行訓練。操作系統(tǒng)為 Windows10;CPU為Intel i7-9700KF,3.4 GHz;內(nèi)存大小為16 G;GPU為NVIDIA GEFORCE RTX 2070 Super 8 GB顯卡;深度學習框架為AlexeyAB-Darknet;編譯環(huán)境為 Visual Studio 2015 C/C++語言。
網(wǎng)絡(luò)訓練參數(shù)與原Tiny YOLOV4一致。隨機從測試集圖像中選取草坪樹木圖像進行檢測,檢測效果如圖7所示。
(a) 草坪樹木原圖1
(b) 草坪樹木檢測效果1
(c) 草坪樹木原圖2
(d) 草坪樹木檢測效果2
(e) 草坪樹木原圖3
(f) 草坪樹木檢測效果3圖7 本文算法草坪樹木檢測Fig. 7 Lawn trees detection based on this algorithm
圖7(b)表明,本文提出的基于優(yōu)化Tiny YOLOV4算法的草坪樹木檢測算法較好地完成了草坪環(huán)境圖像中樹木的檢測,并且檢測框與樹木主體輪廓基本一致,且可以檢測出邊緣處較小的目標特征。圖7(d)表明,本文算法可以檢測出擁擠且有遮擋的球狀樹木和分支較多的樹干特征。圖7(f)表明,本文算法可以檢測出擁擠且目標較小的無分支樹干,證明了本算法的有效性。
為定量評價本文提出的草坪樹木檢測算法的檢測準確率,將本文算法與Tiny YOLOV3、原Tiny YOLOV4算法輕量化和精度的各項指標在測試集上進行對比,單類別檢測精度的衡量指標為平均精度AP,總體檢測精度的衡量指標為平均精度均值mAP,對比結(jié)果如表2所示。
表2 草坪樹木檢測結(jié)果統(tǒng)計表Tab. 2 Lawn Tree Detection Results Statistics Table
從表2可以看出,本文提出的優(yōu)化Tiny YOLOV4草坪樹木檢測算法精度的各項指標均優(yōu)于其余兩種算法。與Tiny YOLOV3和Tiny YOLOV4相比,mAP值分別提高了6.18%和0.61%,樹干的AP值分別提高了2.33%和0.22%,球狀樹木的AP值分別提高了10.04%和1.00%。模型大小為16.19 MB,輕量化程度分別提高了51.10%和27.85%。
為實現(xiàn)割草機器人在草坪環(huán)境下的樹木檢測,本文提出了一種基于優(yōu)化Tiny YOLOV4算法的草坪樹木檢測算法。
1) 根據(jù)割草機器人的應用場景,在草坪環(huán)境用手機實地拍攝制作了包含樹干和球狀樹木的草坪樹木數(shù)據(jù)集。對原Tiny YOLOV4算法進行了輕量化改進,通過通道多尺度變換設(shè)計了增強模塊與輕量模塊,用來增強網(wǎng)絡(luò)的特征提取能力;提出了多分辨率融合模塊,用以提高網(wǎng)絡(luò)的輕量化程度。將數(shù)據(jù)集中的訓練集用于訓練優(yōu)化Tiny YOLOV4算法,在測試集上進行了試驗,試驗結(jié)果表明本文的樹木檢測算法平均精度均值為80.59%,模型大小為16.19 MB。
2) 本文算法與Tiny YOLOV3、原Tiny YOLOV4算法在測試集上的對比試驗結(jié)果表明,本文的優(yōu)化Tiny YOLOV4算法樹干和球狀樹木的mAP值分別提高了6.18%和0.61%,樹干的AP值分別提高了2.33%和0.22%,球狀樹木的AP值分別提高了10.04%和1.00%,輕量化程度分別提高了51.10%和27.85%,在嵌入式設(shè)備上具備較高的可移植性。