秦曉輝 ,黃啟東 ,常燈祥 ,劉建 ,胡滿江 ,2,徐彪 ,2,謝國濤 ,2
(1.湖南大學(xué) 機(jī)械與運(yùn)載工程學(xué)院,湖南 長沙 410082;2.湖南大學(xué)無錫智能控制研究院,江蘇 無錫 214072;3.濰柴智能科技有限公司,山東 濰坊 261000)
礦產(chǎn)資源是工業(yè)發(fā)展的基礎(chǔ),而采礦業(yè)目前面臨著成本高、效率低和風(fēng)險(xiǎn)大的問題.2019年中國國際礦業(yè)大會(huì)在《全球礦業(yè)發(fā)展報(bào)告2019》中指出,科技創(chuàng)新正在引領(lǐng)傳統(tǒng)礦業(yè)轉(zhuǎn)型升級(jí),加速向綠色、安全、智能、高效方向發(fā)展[1].除了國內(nèi)正在加速發(fā)展智慧礦山,國外也在穩(wěn)步發(fā)展.2021 年起,世界第二大采礦業(yè)集團(tuán)力拓公司計(jì)劃在皮爾巴拉的Koodaideri鐵礦山耗資26 億美元打造第一個(gè)智慧礦山[2].在智慧礦山技術(shù)的組成中,自動(dòng)駕駛是不可或缺的部分,但是目前針對智慧礦山自動(dòng)駕駛的研究仍不成熟.
自動(dòng)駕駛感知傳感器主要包括毫米波雷達(dá)、激光雷達(dá)和相機(jī).毫米波雷達(dá)分辨率低,易引發(fā)目標(biāo)漏檢.激光雷達(dá)在較遠(yuǎn)處點(diǎn)云稀疏,無法有效識(shí)別障礙物并判斷類型,同時(shí)由于激光點(diǎn)云無法穿透揚(yáng)塵,在揚(yáng)塵環(huán)境下易產(chǎn)生誤識(shí)別.而圖像具有分辨率高和像素信息豐富的特點(diǎn),可兼顧遠(yuǎn)處目標(biāo)和揚(yáng)塵的識(shí)別.同時(shí),隨著GPU 硬件的飛速發(fā)展,基于深度學(xué)習(xí)視覺目標(biāo)檢測已經(jīng)得到了廣泛應(yīng)用[3-4].
基于深度學(xué)習(xí)的方法,其檢測模型需要大量的應(yīng)用場景數(shù)據(jù).但智慧礦山提出以來,露天礦山方面的目標(biāo)檢測數(shù)據(jù)集依然比較少,針對這方面研究更是不多.齊凡[5]在露天礦山中采集了916 張圖像,在這些圖像中礦卡目標(biāo)共有786 個(gè),行人目標(biāo)共有263個(gè),此數(shù)據(jù)集樣本較少,訓(xùn)練的模型泛化能力不足.齊凡[5]基于Mask R-CNN 模型修改主干網(wǎng)絡(luò)ResNet50 的C5 層,將C5 層的3×3 卷積全部替換為空洞率為2 的空洞卷積.此方法提高了該層卷積的感受野,且礦山中的目標(biāo)大多數(shù)為大中目標(biāo),因此利用此方法有效提高了檢測精度.Improved Tiny-Yolov3[6]在主干網(wǎng)絡(luò)的部分層中加入類似于ResNet的Bottleneck 和殘差結(jié)構(gòu),以提高模型的學(xué)習(xí)能力,減少特征在傳遞時(shí)的丟失,在增加很少檢測時(shí)間下提高模型的檢測精度.
雖然以上學(xué)者在精度上有了一定的提升,但上述方法最快速度只有23FPS,在速度上無法滿足自動(dòng)駕駛30FPS 的實(shí)時(shí)性需求.目前,基于深度學(xué)習(xí)的實(shí)時(shí)目標(biāo)檢測已經(jīng)有了很大的發(fā)展.在實(shí)際應(yīng)用中使用較多的是YOLOv3[7]、YOLOv4[8]和YOLOv5[9],以上都是先通過主干網(wǎng)絡(luò)直接提取不同層級(jí)高級(jí)特征,然后使用多級(jí)融合網(wǎng)絡(luò)將位置信息和高級(jí)語義信息充分融合,最后利用回歸的方法實(shí)現(xiàn)目標(biāo)檢測.但是,YOLO系列的模型對數(shù)據(jù)集中的小目標(biāo)的檢出率與大中型目標(biāo)相差較大.因此,有很多學(xué)者針對該問題提出了多種解決辦法,大致可以分為三種.第一種方法是從模型的檢測尺度出發(fā),模型中上層特征包含了許多細(xì)節(jié)信息,所以該方法通過額外增加淺層檢測尺度達(dá)到提高小目標(biāo)檢測精度的目的[10-12].第二種方法是增加網(wǎng)絡(luò)的感受野,一般使用空洞卷積來實(shí)現(xiàn)[13-14].第三種方法是通過注意力機(jī)制引導(dǎo)網(wǎng)絡(luò)關(guān)注小目標(biāo)的信息[15-17].然而這些改進(jìn)方法忽略了下采樣對模型檢測精度的影響.
近年來一些工作對卷積網(wǎng)絡(luò)中的下采樣進(jìn)行了優(yōu)化,比如文獻(xiàn)[18]認(rèn)為池化下采樣和步長為2 的卷積下采樣會(huì)減弱卷積的平移不變性并且會(huì)產(chǎn)生嚴(yán)重的鋸齒,不符合Nyquist-Shannon 采樣定理.因此提出先使用步長為1,卷積核大小為3×3 的卷積來保證平移不變性,再使用固定的模糊核實(shí)現(xiàn)抗鋸齒.論文最后發(fā)現(xiàn)采樣該方法有更好的特征提取能力,且對噪聲和翻轉(zhuǎn)等有較好的適應(yīng).TResNet[19]也采用這種方法,但其在具體實(shí)現(xiàn)上采用PyTorch 預(yù)編譯的方法加速GPU 計(jì)算,顯著降低了計(jì)算成本.雖然,這些方法可以提高網(wǎng)絡(luò)的特征提取能力,但是在礦山目標(biāo)檢測上并不能很好地適應(yīng),而且他們都沒考慮到特征圖每個(gè)點(diǎn)的利用率.
同時(shí),這些學(xué)者在模型訓(xùn)練中的分類損失函數(shù)使用交叉熵(Cross-Entropy,CE)損失或二值交叉熵(Binary Cross-Entropy,BCE),定位損失函數(shù)采用smooth L1 范數(shù)損失或IoU(Intersection-over-Union)損失[20-21].采用解耦方式,分別對兩個(gè)任務(wù)進(jìn)行優(yōu)化,但目標(biāo)檢測的最終結(jié)果由分類和定位共同決定.因此,本文以YOLOv5S 為基礎(chǔ)網(wǎng)絡(luò)架構(gòu),改進(jìn)下采樣,解耦Head 和優(yōu)化損失函數(shù),以得到高精度的實(shí)時(shí)檢測模型.
本文主要貢獻(xiàn)如下:
在露天礦山場景下采集并標(biāo)注了包含乘用車輛、工程車輛、礦區(qū)運(yùn)載卡車和行人的露天礦山自動(dòng)駕駛數(shù)據(jù)集.
分析現(xiàn)有下采樣方式對特征利用不平衡的原因,并使用不同的填充方式改進(jìn)下采樣.此外,引入attention機(jī)制使得兩種特征更好地融合.
將預(yù)測Head 解耦成三個(gè)獨(dú)立的分支,分別預(yù)測box、cls和obj.
探究當(dāng)前損失函數(shù)的弊端并加以改進(jìn),提出使用定位與分類相互耦合的方式進(jìn)行損失計(jì)算.
實(shí)際工程應(yīng)用中網(wǎng)絡(luò)模型所部署的計(jì)算設(shè)備算力較低,為權(quán)衡速度和精度,本文基于YOLOv5 的架構(gòu),根據(jù)現(xiàn)有目標(biāo)檢測算法的缺陷以及露天礦山環(huán)境的特點(diǎn),提出了如圖1 所示的目標(biāo)檢測算法框架.該框架共由四個(gè)部分組成,分別是主干網(wǎng)絡(luò)(Back?bone)、瓶頸網(wǎng)絡(luò)(Neck)、頭部網(wǎng)絡(luò)(Head)和訓(xùn)練推理.1)為解決YOLOv5 及其他算法中的下采樣對特征利用不平衡的問題,優(yōu)化主干網(wǎng)絡(luò)的卷積下采樣結(jié)構(gòu),避免特征丟失,同時(shí)實(shí)現(xiàn)特征的平衡利用.因此本文使用模型的主干網(wǎng)絡(luò)是CDDPP-CSPResNet,其在YOLOv5S 的CSPResNet[22]的基礎(chǔ)上改進(jìn)P2-P5層的卷積下采樣層,具體結(jié)構(gòu)將在下一小節(jié)分析.2)為充分融合高層特征和低層特征,瓶頸網(wǎng)絡(luò)部分使用PANet[23]的特征融合方式.頭部網(wǎng)絡(luò)部分使用三個(gè)獨(dú)立的分支(Trident Head,TH),這使得每個(gè)分支都可以關(guān)注自己的任務(wù).3)多任務(wù)共享頭部網(wǎng)絡(luò)是大多數(shù)算法的選擇,但由于不同任務(wù)對頭部網(wǎng)絡(luò)有不同的需求,因此本文提出了解耦的頭部網(wǎng)絡(luò),即每個(gè)任務(wù)都有獨(dú)立的頭部網(wǎng)絡(luò).同時(shí)為了降低Head部分的卷積計(jì)算量和參數(shù)量,本文使用Bottleneck 結(jié)構(gòu)減少中間層的通道數(shù),并且利用參數(shù)R控制縮減程度,本文中R=2.
圖1 模型結(jié)構(gòu)Fig.1 Model structure
下采樣是卷積神經(jīng)網(wǎng)絡(luò)在處理圖像時(shí)常用的步驟.實(shí)現(xiàn)這個(gè)步驟一般有兩種方法,分別是池化和卷積.
例如ResNet 采用池化核大小為3×3、步長為2 的池化,以及卷積核大小為3×3、步長為2 的卷積進(jìn)行下采樣.但這兩種方法都存在對特征點(diǎn)利用不平衡的問題.為便于解釋這一問題,本文使用一維向量作為示例.在圖2 中,輸入向量長度為8,為了得到下采樣后長度為4 的輸出向量,需要在輸入向量的邊緣進(jìn)行零填充.由公式(1)計(jì)算可知,卷積核大小為3×3、步長為2 的卷積需要的padding 為1.而padding一般填充在輸入向量的左邊,即a 位置.如圖3 所示,左側(cè)填充導(dǎo)致對輸入向量每個(gè)位置的利用次數(shù)不一致.引發(fā)該結(jié)果的原因是下采樣填充位置的選擇,如果把填充位置改為輸入向量的右邊,即b 位置,那么結(jié)果恰好相反.
圖2 不同填充方法的卷積下采樣Fig.2 Convolutional downsampling with different padding methods
圖3 左右填充位置的特征元素使用統(tǒng)計(jì)Fig.3 Feature element usage statistics of left and right padding positions
式中:in 是特征圖輸入大??;padding 是填充大小;k是卷積核大小;S是步長;out是特征圖輸出大小.
YOLOv5使用有缺陷的下采樣方式,會(huì)使得下采樣時(shí)對每個(gè)點(diǎn)的利用率不同.并且在礦山這一場景下,目標(biāo)尺度相差很大,行人類小目標(biāo)易丟失大量信息,導(dǎo)致網(wǎng)絡(luò)無法同時(shí)兼顧大目標(biāo)和小目標(biāo)特征提取.為了保證特征圖每個(gè)點(diǎn)都能得到同樣的利用次數(shù),可以使用不同的填充位置進(jìn)行下采樣,然后將多組結(jié)果進(jìn)行整合.
本文提出使用兩個(gè)分支實(shí)現(xiàn)下采樣,如圖4 所示.首先,每個(gè)分支經(jīng)過卷積核大小為3、步長為2、padding為1的卷積下采樣得到xds.
圖4 不同填充位置的卷積下采樣(CDDPP)結(jié)構(gòu)Fig.4 Convolutional downsampling structure with different padding positions(CDDPP)
第一個(gè)填充位置是二維特征圖的上面與左邊,第二個(gè)分支的填充位置是二維特征圖的下面和右邊.xds由公式(2)計(jì)算得到.
式中:輸入張量x∈RC×H×W;*表示卷積操作;卷積權(quán)重W∈R3×3×C×C;BN 和σ分別是Batch Normalization以及SiLU激活函數(shù).
其次,由于兩個(gè)分支選擇不同的填充位置,下采樣后會(huì)產(chǎn)生特征偏移,所以本文采用空間注意力機(jī)制計(jì)算每個(gè)分支特征圖上各點(diǎn)的權(quán)重.特征圖上每個(gè)空間位置的權(quán)重可由公式(3)和公式(4)計(jì)算得到.
式中:Concat是在通道上的拼接操作.
將各分支權(quán)重和對應(yīng)的卷積結(jié)果相乘,并將相乘結(jié)果各元素相加,獲取式(5)所示的下采樣結(jié)果:
在YOLO 系列模型中,預(yù)測cls 和box 的損失計(jì)算只針對正樣本,即優(yōu)化對象是一致的,但采用解耦方式分別獨(dú)立計(jì)算損失.從圖5 中可以看出,圖中的紅色預(yù)測框中大部分是礦區(qū)運(yùn)載卡車,少部分是工程車輛.若按照以前的損失計(jì)算,則認(rèn)為這個(gè)預(yù)測框類別是礦區(qū)運(yùn)載卡車,即礦區(qū)運(yùn)載卡車概率P=1,這顯然是不合理的.本文參考Focal Loss[24]給不同難度樣本加權(quán)的思想,提出使用IoU 對cls 損失進(jìn)行加權(quán).其中IoU 是通過預(yù)測box 與真值box 之間計(jì)算得到的.分類cls的BCE損失計(jì)算公式如式(6):
圖5 預(yù)測框中有不同的目標(biāo)Fig.5 There are different objects in the prediction
式中:類別真值y∈{0,1};模型正確預(yù)測概率p∈[0,1].
權(quán)值可由公式(7)計(jì)算得到,IoU 與權(quán)重的對應(yīng)關(guān)系如圖6所示.
圖6 IoU和權(quán)重對應(yīng)關(guān)系Fig.6 Correspondence between IoU and weight
公式(7)中的IoU 采用α-CIoU[25]計(jì)算,計(jì)算公式為:
式中:ρ(b,bgt)是兩個(gè)框中心點(diǎn)的歐氏距離;c是兩個(gè)框最小閉包矩形的對角線距離.
最后,分類cls 的加權(quán)損失(α-CIoU Weighted BCE Loss,WBL)如式(11):
本文采集了礦區(qū)運(yùn)載卡車的前視角相機(jī)在露天礦山的RGB 圖像,圖像分辨率為1 280×720.數(shù)據(jù)集共有12 012 張圖像,包含4 個(gè)類別,分別是乘用車輛(Car)、工程車輛(Engineering Vehicle,EV)、礦區(qū)運(yùn)載卡車(Mining Truck,MT)和行人(Pedestrian).圖7展示了4 個(gè)類別的示例.該數(shù)據(jù)集共有32 476 個(gè)矩形框,每個(gè)類別的矩形框的統(tǒng)計(jì)如圖8 所示.與其他自動(dòng)駕駛數(shù)據(jù)集一樣,為豐富數(shù)據(jù)集多樣性,本文采集了白天和晚上兩個(gè)不同光照強(qiáng)度的場景.
圖7 不同類別的示例Fig.7 Examples of categories
圖8 數(shù)據(jù)集不同類別的實(shí)例分布Fig.8 Instance distribution of different categories
本文將數(shù)據(jù)集按照7∶1∶2 比例劃分為訓(xùn)練集、驗(yàn)證集和測試集.模型訓(xùn)練設(shè)備的GPU 是NVIDIA Geforce Titan X×4,CUDA 10.1,Pytorch 1.7,部署設(shè)備GPU是NVIDIA Geforce 1050Ti.
在所有的試驗(yàn)中,模型的輸入分辨率為640×640,使用Warm Up 和余弦退火的學(xué)習(xí)率衰減,初 始學(xué)習(xí)率為0.01,優(yōu)化器為SGD(Stochastic Gradient Descent).試驗(yàn)中還使用了mosaic、隨機(jī)水平翻轉(zhuǎn)、隨機(jī)縮放平移和色彩抖動(dòng)的數(shù)據(jù)增強(qiáng)方法.
在第1 節(jié)中本文對YOLOv5 所使用的定位損失函數(shù)和分類損失函數(shù)分別進(jìn)行了替換和改進(jìn).除此之外,本文還提出了基于YOLOv5S 的改進(jìn)結(jié)構(gòu),包括對下采樣和Head 的算法結(jié)構(gòu)改進(jìn).為此,本文開展了下列試驗(yàn),以驗(yàn)證所提出的改進(jìn)方法對模型性能的影響.
3.2.1 損失函數(shù)
從表1 中可以看出,在YOLOv5S 基礎(chǔ)上將原來的CIoU 替換成α-CIoU,可以增加0.9%AP 和1%AP50,且在推理成本上無任何的額外增長.同時(shí),把原來的BCE分類損失替換成WBL,AP還可以增加6.5%,AP50增加4%.
表1 不同改進(jìn)方法的檢測精度Tab.1 Accuracy of different improved methods
3.2.2 下采樣
本文把YOLOv5S 主干網(wǎng)絡(luò)中的4 個(gè)下采樣模塊替換成CDDPP,替換后模型的計(jì)算量相對于YO?LOv5S 增加了1.65G MACs,參數(shù)量增加了1.53 M.表1 的試驗(yàn)結(jié)果表明,模型使用CDDPP 替換下采樣后,AP 進(jìn)一步提升1%,AP50提升0.4%.為了繼續(xù)驗(yàn)證CDDPP結(jié)構(gòu)的有效性,本文還做了對照試驗(yàn).對照試驗(yàn)保持CDDPP 的結(jié)構(gòu),只修改兩個(gè)分支的填充方式,保證有相同的填充方式.從表2 中可以看出,對照試驗(yàn)對原模型也有一定的提升,且在此基礎(chǔ)上使用不用填充方式可再提升0.5%AP.
表2 CDDPP消融實(shí)驗(yàn)Tab.2 Ablation experiment of CDDPP
從表3 可以看出,行人(Pedestrian)類小目標(biāo)相較于沒有CDDPP 結(jié)構(gòu)的模型提升了1.8%,其他類目標(biāo)都有小幅度提升.
表3 不同類別的檢測精度Tab.3 Accuracy of different categories
3.2.3 檢測速度
表4 展示了改進(jìn)后的模型在部署設(shè)備上的計(jì)算速度是40FPS,依然可以達(dá)到實(shí)時(shí)的檢測速度.同時(shí),與YOLOv5的大模型L相比,速度提升約4.5倍.
表4 不同模型的檢測速度Tab.4 Inference speed of different models
本文將所有改進(jìn)點(diǎn)集成到同一模型上,得到了增強(qiáng)型實(shí)時(shí)檢測模型,并命名為YOLOv5s-Enhanced.表5 是該模型與目前的先進(jìn)模型的對比,可以看出在精度和速度上,YOLOv5s-Enhanced 依然具有明顯的優(yōu)勢.
表5 YOLOv5s-Enhanced與先進(jìn)模型的對比Tab.5 Comparison between YOLOv5s-Enhanced and ad?vanced models
針對當(dāng)前礦山無人駕駛落地方案中難以識(shí)別障礙物類型以及準(zhǔn)確識(shí)別遠(yuǎn)距離障礙物的問題,本文提出了基于深度學(xué)習(xí)的視覺目標(biāo)檢測方法.并針對礦山場景下目標(biāo)尺度跨度大的特殊性,提出了CDDPP 下采樣方法,它使用不同的填充方法和空間注意力模塊解決傳統(tǒng)下采樣丟失特征的問題.同時(shí),改進(jìn)預(yù)測Head,讓每個(gè)分支專注自身任務(wù).并且優(yōu)化分類和定位損失計(jì)算方法,耦合定位和分類任務(wù).試驗(yàn)結(jié)果表明,本文的方法在精度方面優(yōu)于YO?LOv5S 和YOLOv5L 模型,且速度依然滿足實(shí)際應(yīng)用需求.雖然,本文提出的方法可以顯著提高模型檢測精度,且在部署設(shè)備上實(shí)現(xiàn)實(shí)時(shí)檢測.但當(dāng)前的工作仍不完善,后續(xù)將在惡劣天氣下的露天礦山中繼續(xù)測試和優(yōu)化.