景 亮,鮑致遠(yuǎn)
(江蘇大學(xué) 電氣信息工程學(xué)院,江蘇 鎮(zhèn)江 212013)
農(nóng)業(yè)是國(guó)民經(jīng)濟(jì)的基礎(chǔ),現(xiàn)代農(nóng)業(yè)裝備是現(xiàn)代農(nóng)業(yè)的重要支撐。近年來(lái),隨著我國(guó)老齡化程度逐漸加重,勞動(dòng)力出現(xiàn)短缺,導(dǎo)致果園運(yùn)營(yíng)成本直線上升。因此,果園機(jī)器人成為替代繁重體力勞動(dòng)、改善生產(chǎn)條件、提高生產(chǎn)效率、降低生產(chǎn)成本的關(guān)鍵裝備。
無(wú)人農(nóng)機(jī)在果園的實(shí)際作業(yè)中存在一些障礙物,并且經(jīng)常會(huì)出現(xiàn)人與無(wú)人農(nóng)機(jī)協(xié)同作業(yè)的情況。為了確保無(wú)人農(nóng)機(jī)作業(yè)時(shí)的安全性與可靠性,設(shè)計(jì)一個(gè)準(zhǔn)確、實(shí)時(shí)的障礙物檢測(cè)算法十分必要。
目前,障礙物檢測(cè)包含激光傳感器檢測(cè)[1]、超聲波傳感器檢測(cè)[2]和圖像傳感器檢測(cè)[3]方法。在果園作業(yè)環(huán)境中,圖像傳感器具備價(jià)格低廉、不易受干擾、響應(yīng)迅速等特點(diǎn)[4]。采用圖像傳感器檢測(cè)果園障礙物屬于目標(biāo)檢測(cè)的子任務(wù),隨著近年來(lái)計(jì)算機(jī)計(jì)算能力的飛速增長(zhǎng),深度學(xué)習(xí)方法已成為目標(biāo)檢測(cè)領(lǐng)域的主流,主要分為:先候選區(qū)域再分類(lèi)的兩階段檢測(cè)算法,例如R-CNN[5]、Fast RCNN[6]、Faster-RCNN[7];直接回歸物體位置與類(lèi)別的單階段檢測(cè)算法,例如YOLO[8-10]系列算法和SSD[11-12]算法。其中,單階段檢測(cè)算法精準(zhǔn)度較低,但檢測(cè)速度快、計(jì)算需求資源小。
目前,陳成坤等[13]將YOLOv4 算法應(yīng)用到嵌入式設(shè)備中,但存在實(shí)時(shí)性較差的問(wèn)題。陳斌等[14]提出一種改進(jìn)的YOLOv3-tiny 算法,通過(guò)融合淺層特征并引入殘差模塊,但存在模型參數(shù)量較大的問(wèn)題。魏建勝等[15]提出一種改進(jìn)的YOLOv3 算法,將損失函數(shù)改進(jìn)為DIoU,但存在精確度較低的問(wèn)題。
針對(duì)上述問(wèn)題,本文提出Ghost-CA-YOLOv4 網(wǎng)絡(luò),采用GhostNet[16]作為主干特征提取網(wǎng)絡(luò),并在GhostNet 中引入注意力機(jī)制進(jìn)一步增強(qiáng)主干網(wǎng)絡(luò)對(duì)障礙物特征的關(guān)注。同時(shí),將傳統(tǒng)YOLOv4 的DIoU-NMS 改進(jìn)為Soft-CIoUNMS,以降低誤檢概率。
YOLOv4 的網(wǎng)絡(luò)結(jié)構(gòu)分為Backbone、SPP、PANet 和Head。其中,Backbone 由一個(gè)CBM 模塊和多個(gè)Resblock_body 疊加塊組成,進(jìn)行初步的提取特征任務(wù);SPP 在原有特征基礎(chǔ)上增加13×13、9×9、5×5 的感受野,能更好地處理上下文特征;PANet 將Backbone、SPP 中提取到的特征進(jìn)行不同尺度的融合,以強(qiáng)化Backbone 的特征提取能力;Head 通過(guò)卷積操作輸出物體坐標(biāo)與概率。YOLOv4 的網(wǎng)絡(luò)結(jié)構(gòu)與模塊組成如圖1所示。
Fig.1 YOLOv4 network structure and module composition圖1 YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)和模塊組成
1.2.1 GhostNet
2020 年,輕量化網(wǎng)絡(luò)GhostNet 被提出,主要對(duì)常規(guī)卷積進(jìn)行優(yōu)化。由于常規(guī)卷積操作會(huì)生成大量冗余特征圖,而Ghost Module 利用線性變換生成指定比例的冗余特征圖,在計(jì)算精度幾乎相同的情況下,消耗的計(jì)算資源更少。
Ghost Module 的具體實(shí)現(xiàn)、常規(guī)卷積與Ghost Module的區(qū)別如圖2 所示。首先,Primary Conv 使用1×1 卷積獲取必要的濃縮特征,Cheap Operation 使用3×3的深度可分離卷積獲取相似特征圖;然后將兩者進(jìn)行拼接。
Fig.2 Difference between conventional convolution and Ghost Module and the specific implementation of Ghost Module圖2 常規(guī)卷積與Ghost Module區(qū)別與Ghost Module的具體實(shí)現(xiàn)
在線性變換和普通卷積的卷積核大小一樣的情況下,假設(shè)輸入矩陣為A×B×C,輸出矩陣為A′×B′×C′,普通卷積的卷積核為K×K,Ghost Module 中總卷積與常規(guī)卷積的比例為M,通常M?C。常規(guī)卷積與Ghost Module 的計(jì)算量的比值如式(1)所示。
常規(guī)卷積與Ghost Module 的參數(shù)量比值如式(2)所示。
Ghost Bottleneck 的結(jié)構(gòu)如圖3 所示。當(dāng)步長(zhǎng)(Stride)為1 時(shí),由兩個(gè)Ghost Module 和一個(gè)殘差邊組成Ghost Bottleneck。第一個(gè)Ghost Module 擴(kuò)展輸入矩陣的通道數(shù),第二個(gè)Ghost Module 縮減通道數(shù)。當(dāng)步長(zhǎng)為2 時(shí),在兩個(gè)Ghost Module 間添加[2×2]的深度可分離卷積完成寬高壓縮操作,其他部分不變。Ghostnet 由多個(gè)Ghost Bottleneck疊加塊組成,結(jié)構(gòu)如表1所示。
Table 1 Ghostnet structure表1 Ghostnet結(jié)構(gòu)
Fig.3 Ghost Bottleneck structure圖3 Ghost Bottleneck結(jié)構(gòu)
1.2.2 注意力機(jī)制
注意力機(jī)制(Coordinate Attention,CA)[17]結(jié)合了通道維度信息和空間位置信息,首先進(jìn)行Coordinate 信息嵌入,然后進(jìn)行Coordinate Attention 生成,具體結(jié)構(gòu)如圖4所示。
Fig.4 Structure of coordinate attention mechanism圖4 CA注意力機(jī)制結(jié)構(gòu)
Coordinate 信息嵌入描述如下:沿著輸入矩陣的水平(X)軸和垂直(Y)軸分別進(jìn)行全局池化得到兩個(gè)不同的空間方向特征。其中,水平(X)軸使用H×1 的卷積核進(jìn)行全局池化,將輸入矩陣C×H×W轉(zhuǎn)換為C×H×1 的矩陣。
垂直(Y)軸使用1 ×W的卷積核進(jìn)行全局池化,將輸入矩陣C×H×W轉(zhuǎn)換為C×1 ×W的矩陣。
Coordinate Attention 描述如下:將兩個(gè)空間方向特征先進(jìn)行特征融合,然后進(jìn)行1×1 卷積,最后通過(guò)非線性激活函數(shù)變換,得到中間特征映射f。
式中:[]為特征融合操作;δ為非線性激活函數(shù);F1為1×1卷積變換函數(shù)。
對(duì)中間特征映射f進(jìn)行空間維度分解,經(jīng)過(guò)1×1 卷積和Sigmoid 函數(shù)得到特征gh、gw。
式中:σ為Sigmoid 函數(shù);Fh、Fw為1×1卷積變換函數(shù)。
將輸入矩陣的殘差與gh、gw相乘得到最后的輸出矩陣。
式中:yc為最后的輸出矩陣;xc為輸入矩陣的殘差。
本文對(duì)Ghost Bottleneck 進(jìn)行改進(jìn)以提升檢測(cè)精度。當(dāng)步長(zhǎng)為1 時(shí),在兩個(gè)Ghost Module 間引入CA 注意力機(jī)制;當(dāng)步長(zhǎng)為2 時(shí),在深度可分離卷積后引入CA 注意力機(jī)制。改進(jìn)后的Ghost Bottleneck 如圖5所示。
Fig.5 Improved Ghost Bottleneck圖5 改進(jìn)Ghost Bottleneck
1.2.3 改進(jìn)后的網(wǎng)絡(luò)
改進(jìn)后的網(wǎng)絡(luò)Ghost-CA-YOLOv4 結(jié)構(gòu)如圖6 所示,采用Ghostnet 作為主干特征提取網(wǎng)絡(luò),并在Ghostnet 中引入CA 注意力機(jī)制。
Fig.6 Improved Ghost-CA-YOLOv4 network structure圖6 改進(jìn)Ghost-CA-YOLOv4網(wǎng)絡(luò)結(jié)構(gòu)
1.2.4 Soft-CIOU-NMS
YOLOv4 使用的DIoU-NMS 算法計(jì)算其余預(yù)測(cè)框與置信度最高檢測(cè)框重疊的程度,僅保留低于閾值的框。由于果園環(huán)境中存在檢測(cè)目標(biāo)相互遮蔽的情況,DIoU-NMS 存在漏檢誤檢的問(wèn)題[18]。為此,本文提出Soft-CIoU-NMS 算法,首先保留高于閾值的檢測(cè)框,然后根據(jù)重疊程度對(duì)其置信度進(jìn)行調(diào)整,重疊程度采用CIoU 計(jì)算。Soft-CIoUNMS的計(jì)算公式如式(9)—式(11)所示。
式中:Si為當(dāng)前預(yù)測(cè)框的置信度得分;RCIoU表示CIoU損失函數(shù)的懲罰項(xiàng);Bi為當(dāng)前類(lèi)別中全部的預(yù)測(cè)框;μ為置信度最高的預(yù)測(cè)框;ε為預(yù)先設(shè)定的閾值;b為預(yù)測(cè)框的中心點(diǎn);bgt為真實(shí)框的中心點(diǎn);ρ為兩個(gè)框中心點(diǎn)的歐式距離;C為兩個(gè)預(yù)測(cè)框的外接框的對(duì)角線像素長(zhǎng)度;α為權(quán)重函數(shù);ν為度量寬高比一致性的量化指標(biāo);wgt為真實(shí)框?qū)挾?;hgt為真實(shí)框高度;w為預(yù)測(cè)框?qū)挾?;h表示預(yù)測(cè)框高度。
由此可見(jiàn),Soft-CIoU-MNS 相較于DIoU-NMS 雖然增加了一部分計(jì)算,但僅占整體計(jì)算量的小部分,并不影響檢測(cè)速度。
本文數(shù)據(jù)集為在江蘇大學(xué)拍攝的1 600 張圖片,通過(guò)Labelimg 標(biāo)注工具對(duì)拍攝圖片進(jìn)行真實(shí)框標(biāo)注,標(biāo)注格式為PASCAL VOC,數(shù)據(jù)集包括樹(shù)(Tree)、人(People)、桿(Pole)3 種障礙物,其中人的姿態(tài)主要有站立、坐和蹲,按照8∶1∶1 的比例將數(shù)據(jù)集劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集,如圖7所示。
Fig.7 Self-made dataset圖7 自制數(shù)據(jù)集
為了進(jìn)一步提升模型的泛化能力,在訓(xùn)練前對(duì)數(shù)據(jù)集進(jìn)行數(shù)據(jù)增強(qiáng)操作。本文實(shí)驗(yàn)采用的數(shù)據(jù)增強(qiáng)方法包括隨機(jī)翻轉(zhuǎn)、裁剪、對(duì)比度調(diào)整、顏色變換,使得數(shù)據(jù)集圖片數(shù)量增加到3 200張。
計(jì)算機(jī)硬件為Inter(R)Core i7-10870H CPU、NVIDIA RTX 3070 Laptop GPU、運(yùn)行內(nèi)存16 GB;訓(xùn)練框架為Pytorch 1.7.1 和Cuda 11.2;編程語(yǔ)言版本為Python 3.8.5,操作系統(tǒng)為Windows 10。本文具體訓(xùn)練參數(shù)如下:圖像輸入尺寸為416×416,優(yōu)化器SGD 的批尺寸為8、動(dòng)量為0.94、權(quán)重衰減系數(shù)為0.001,初始學(xué)習(xí)率為0.001,衰減率為0.95。
本文使用準(zhǔn)確率(Precision,P)、召回率(Recall,R)、類(lèi)別平均精度(mAP),模型參數(shù)大?。▎挝粸镸B)和每秒傳輸幀數(shù)(FPS)對(duì)模型進(jìn)行評(píng)價(jià),如式(12)—式(14)所示。
式中:TP代表被正確分類(lèi)的正樣本;FP代表被錯(cuò)誤分類(lèi)的負(fù)樣本,F(xiàn)N 代表被錯(cuò)誤分類(lèi)的正樣本;AP代表某個(gè)類(lèi)別的平均精度;NoC代表數(shù)據(jù)集中待檢測(cè)目標(biāo)總類(lèi)別數(shù)。AP計(jì)算公式如式(15)所示:
為了驗(yàn)證改進(jìn)模型的效果,對(duì)YOLOv4、YOLOv4-Tiny、MobileNetv3-YOLOV4 和Ghost-CA-YOLOv4 進(jìn)行比較,每個(gè)模型均在自制數(shù)據(jù)集上訓(xùn)練200 個(gè)周期(Epoch),各性能指標(biāo)如表2所示。
Table 2 Comparison of detection indicators of different models表2 不同模型檢測(cè)指標(biāo)比較
由表2 可知,Ghost-CA-YOLOv4 模型相較于YOLOv4,在精準(zhǔn)率、召回率、mAP 方面分別提升0.78%、0.55%、0.87%;相較于YOLOv4-Tiny 分別提升9.88%、12.77%、13.61%;相較于MobileNetv3-YOLOV4 分別提升1.71%、3.39%、3.63%。在模型大小方面,Ghost-CA-YOLOv4 相較于YOLOv4 縮小82%;相較于YOLOv4-Tiny 增大97%,相較于MobileNetv3-YOLOV4 縮小17%。Ghost-CA-YOLOv4 的FPS 在4種模型中僅次于YOLOv4-Tiny。綜合而言,Ghost-CA-YOLOv4 在檢測(cè)精度和速度方面性能更好。具體檢測(cè)效果如圖8、圖9所示。
Fig.8 Detection effect image1圖8 檢測(cè)效果圖1
Fig.9 Detection effect image2圖9 檢測(cè)效果圖2
由圖9 可見(jiàn),在面對(duì)目標(biāo)重疊或密集的情況下,Soft-CIoU-NMS 算法、Ghost-CA-YOLOv4 依然能保證檢測(cè)的準(zhǔn)確性,YOLOv4、YOLOv4-Tiny、MobileNetv3-YOLOV4 存在漏檢或檢測(cè)精度較低的現(xiàn)象。
為了驗(yàn)證Ghostnet、CA 注意力機(jī)制和Soft-CIoU-NMS提升YOLOv4 性能的有效性,在訓(xùn)練集和驗(yàn)證集相同的情況下設(shè)計(jì)消融實(shí)驗(yàn),如表3 所示。由此可見(jiàn),替換主干網(wǎng)絡(luò)導(dǎo)致模型的mAP 下降3.32%,模型大小縮減82.44%;引入CA 注意力機(jī)制后mAP 提升3.48%,模型大小小幅增加,表明CA 注意力機(jī)制可有效提升模型的特征提取能力;加入Soft-CIoU-NMS 后模型的mAP 提升0.81%,表明該部分能降低誤檢概率,進(jìn)一步提升模型性能。
Table 3 Results of ablation experiment表3 消融實(shí)驗(yàn)結(jié)果
本文提出一種基于Ghost-CA-YOLOv4 的果園障礙物檢測(cè)算法,將Ghostnet 作為主干網(wǎng)絡(luò)對(duì)模型進(jìn)行輕量化操作,并在Ghostnet 中結(jié)合CA 注意力機(jī)制,以提升模型對(duì)位置信息和通道信息的關(guān)注程度。在后處理部分,將DIoUNMS 改進(jìn)為Soft-CIoU-NMS 以增強(qiáng)模型在目標(biāo)重疊或密集時(shí)的檢測(cè)能力。
實(shí)驗(yàn)表明,Ghost-CA-YOLOv4 模型檢測(cè)精度更高、檢測(cè)速度快且模型較小,能更好地滿(mǎn)足果園機(jī)器人的作業(yè)需求。未來(lái)可通過(guò)通道剪枝技術(shù)獲得最佳輕量化模型,使其能在嵌入式設(shè)備上有具有更快的檢測(cè)速度和更高的檢測(cè)精度。同時(shí),由于在實(shí)際果園場(chǎng)景中會(huì)出現(xiàn)大量噴霧的情況,后續(xù)工作也可研究去霧算法,將其與現(xiàn)有目標(biāo)檢測(cè)算法結(jié)合,在實(shí)際作業(yè)中更好的完成避障感知任務(wù)。