胡均平, 黃 強(qiáng), 張洪偉, 向思平, 宋菲菲
(中南大學(xué) 機(jī)電工程學(xué)院, 湖南 長(zhǎng)沙 410083)
當(dāng)前對(duì)道路坑洼進(jìn)行檢測(cè)的研究較少,在車(chē)輛行駛中進(jìn)行坑洼檢測(cè)仍處于不成熟階段,提高車(chē)輛前方坑洼檢測(cè)的定位精度對(duì)于自動(dòng)駕駛車(chē)輛避開(kāi)坑洼具有重要意義[1]。
目前,基于卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)的端到端目標(biāo)檢測(cè)技術(shù)已經(jīng)在各種目標(biāo)檢測(cè)數(shù)據(jù)集上,實(shí)現(xiàn)了極高的檢測(cè)精度和檢測(cè)速度。使用深度學(xué)習(xí)算法檢測(cè)道路坑洼的研究[2~5]中可以看出,深度學(xué)習(xí)具有成本低、對(duì)外部環(huán)境的依賴性低、魯棒性高和檢測(cè)速度快的特點(diǎn)。但在對(duì)復(fù)雜背景下的坑洼進(jìn)行檢測(cè)時(shí),仍存在一些不足:1)道路陰影和積水等圖像噪聲容易影響檢測(cè)精度;2)定位精度低;3)檢測(cè)設(shè)備昂貴、檢測(cè)成本高。
本文基于目標(biāo)檢測(cè)模型YOLOv3,通過(guò)改進(jìn)檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)、調(diào)整激活函數(shù)、學(xué)習(xí)率調(diào)節(jié)策略和采用K-Means方法對(duì)坑洼數(shù)據(jù)集邊界框尺寸進(jìn)行聚類等技術(shù),提出了坑洼檢測(cè)模型YOLOv3-Pt。結(jié)果表明,YOLOv3-Pt在檢測(cè)精度方面與YOLOv3相比具有明顯提升,能夠滿足坑洼檢測(cè)精度的需要。
為了實(shí)現(xiàn)多尺度檢測(cè),YOLOv3提出了特征提取網(wǎng)絡(luò)Darknet-53。Darknet-53由一系列的1×1和3×3的卷積層組成,無(wú)池化層和全連接層,張量的尺寸變換是通過(guò)改變卷積核的步長(zhǎng)來(lái)實(shí)現(xiàn)的。具體的網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。其中,CBL、Res_unit、Resn結(jié)構(gòu)如圖2~圖4所示。
圖1 Darknet—53網(wǎng)絡(luò)結(jié)構(gòu)
圖2 CBL結(jié)構(gòu)
圖3 Res_unit結(jié)構(gòu)
圖4 Resn結(jié)構(gòu)
復(fù)雜背景下的道路坑洼紋理與良好路面紋理在灰度、紋理等方面相近,該特性是引起漏檢率較高和檢測(cè)精度較低的主要原因之一。因此,特征提取階段使用的激活函數(shù)在梯度變化方面應(yīng)比較平緩,梯度值無(wú)突變。針對(duì)上述問(wèn)題,在YOLOv3-Pt 模型的特征提取階段引入了Mish激活函數(shù)。
Mish激活函數(shù)的數(shù)學(xué)表達(dá)式如式(1)所示
Mish(xi)=xi×tanh(ln(1+exi)
(1)
式中xi為Mish激活函數(shù)的輸入。
2.2.1 YOLOv3-Pt網(wǎng)絡(luò)結(jié)構(gòu)
在YOLOv3模型中,通過(guò)上采樣融合低級(jí)特征和高級(jí)特征,然后在大、中、小3個(gè)特征圖上進(jìn)行檢測(cè),可以檢測(cè)出尺寸變化范圍較大的物體。
路面坑洼的尺寸變化范圍較小,采用多尺度檢測(cè)策略進(jìn)行訓(xùn)練時(shí),某個(gè)尺度的損失函數(shù)可能無(wú)法下降,產(chǎn)生特征無(wú)法提取的問(wèn)題。針對(duì)該問(wèn)題,YOLOv3-Pt在YOLOv3的基礎(chǔ)上對(duì)檢測(cè)網(wǎng)絡(luò)的輸出進(jìn)行了改進(jìn),將3個(gè)尺度的輸出進(jìn)行融合獲得單尺度的輸出。
首先,對(duì)YOLOv3中輸出尺度為52×52的特征圖采用大小為3×3的卷積核進(jìn)行卷積,其中,Stride為2,Paddig為1,獲得大小為26×26的特征圖;接著,對(duì)輸出尺度為26×26的特征圖按行和按列進(jìn)行間隔采樣后與輸出尺度為13×13的特征圖進(jìn)行拼接,獲得特征圖大小也為26×26;其次,對(duì)獲得的2個(gè)大小為26×26的特征圖沿著通道數(shù)方向進(jìn)行拼接,獲得尺度為26×26×36的特征圖;最后,對(duì)該特征圖進(jìn)行2次卷積,分別為卷積核大小為3×3,Stride為2,Paddig為1的尺度縮放卷積和卷積核大小為1×1,卷積核數(shù)量為18的卷積,最終獲得大小為13×13×18的輸出特征圖。YOLOv3-Pt的網(wǎng)絡(luò)結(jié)構(gòu),如圖5所示。其中,CUC代表卷積塊,具體結(jié)構(gòu)如圖6所示。
圖5 YOLOv3-Pt網(wǎng)絡(luò)結(jié)構(gòu)
圖6 CUC結(jié)構(gòu)
2.2.2 YOLOv3-Pt模型特征圖劃分
在訓(xùn)練過(guò)程中,本文使用的輸入圖像的大小為544×544×3。由于坑洼大多數(shù)位于道路中央,為了使最終的預(yù)測(cè)框靠近特征圖中間,設(shè)置輸出大小為奇數(shù)。本文取縮放尺度為32,因此輸出大小為17×17×18。圖7為縮放尺度為32時(shí)對(duì)應(yīng)的網(wǎng)格劃分示意。
圖7 YOLOv3-Pt輸出特征圖網(wǎng)格劃分
2.2.3 坑洼邊界框尺寸聚類
在環(huán)境復(fù)雜的路面進(jìn)行坑洼檢測(cè)時(shí),往往容易造成漏檢或者誤檢,對(duì)此,本文使用K-Means方法對(duì)坑洼邊界框尺寸進(jìn)行聚類,獲得合適的預(yù)設(shè)框尺寸,具體步驟如下:1)對(duì)每一張坑洼圖片的坑洼進(jìn)行標(biāo)注,獲得包含標(biāo)記框位置和類別的文本文件,每行的格式為:(xi,yi,wi,hi),i∈[1,N],分別表示標(biāo)記框相對(duì)原圖的中心坐標(biāo)和寬、高,N表示所有標(biāo)記框的數(shù)量;2)隨機(jī)選擇K個(gè)聚類中心點(diǎn)(wi,hi),i∈[1,K],中心點(diǎn)坐標(biāo)表示預(yù)設(shè)框的寬和高;3)計(jì)算每個(gè)標(biāo)記框和每個(gè)聚類中心點(diǎn)的距離d。距離定義為d=1-IoU,將標(biāo)記框分配給距離最近的聚類中心;4)所有標(biāo)記框分配結(jié)束后,對(duì)每個(gè)簇重新按式(2)計(jì)算聚類中心;5)重復(fù)步驟(3)、步驟(4),直到聚類中心不再變化,所得標(biāo)記框即為所求預(yù)設(shè)框的尺寸。式(2)如下
(2)
對(duì)YOLOv3-Pt模型,每個(gè)網(wǎng)格單元預(yù)測(cè)3個(gè)邊界框,即K設(shè)置為3,然后在坑洼數(shù)據(jù)集上使用K-Means聚類技術(shù)生成對(duì)應(yīng)的預(yù)設(shè)框尺寸,具體的尺寸如表1所示。
表1 預(yù)設(shè)框尺寸
通常,希望在訓(xùn)練初期學(xué)習(xí)率大一些,使得網(wǎng)絡(luò)收斂迅速,在訓(xùn)練后期學(xué)習(xí)率小一些,使得網(wǎng)絡(luò)更好地收斂到最優(yōu)解。YOLOv3模型使用的多步長(zhǎng)學(xué)習(xí)率策略便是基于該理念提出的。該學(xué)習(xí)率調(diào)整策略離散且簡(jiǎn)單,十分高效,但是也存在不同學(xué)習(xí)率的迭代次數(shù)不均勻的問(wèn)題。對(duì)于復(fù)雜環(huán)境下的坑洼檢測(cè),該策略使得模型更加專注于局部最優(yōu),而不是全局最優(yōu),達(dá)不到需要的檢測(cè)精度。
余弦退火策略使得學(xué)習(xí)率按照余弦函數(shù)周期性變化,并在每個(gè)周期最大值時(shí)重新設(shè)置學(xué)習(xí)率[6]。以初始學(xué)習(xí)率為最大學(xué)習(xí)率,隨著epoch的增加,學(xué)習(xí)率先急速下降,再陡然提升,然后不斷重復(fù)這個(gè)過(guò)程。學(xué)習(xí)率的急劇變化,可以使得梯度下降不會(huì)卡在任何局部最小值,并且可能以其向全局最小值的方式“跳出”局部最小值。
針對(duì)此問(wèn)題,在YOLOv3-Pt 模型中使用標(biāo)簽平滑技術(shù)[7]。對(duì)于分類問(wèn)題,尤其是多類別分類問(wèn)題中,常常把類別向量做成One-hot向量。對(duì)于損失函數(shù),需要用預(yù)測(cè)概率去擬合真實(shí)概率,而擬合One-hot的真實(shí)概率函數(shù)帶來(lái)了兩個(gè)問(wèn)題。首先,無(wú)法保證模型的泛化能力,容易造成過(guò)擬合;其次,全概率和0概率鼓勵(lì)所屬類別和其他類別之間的差距盡可能加大,會(huì)造成模型過(guò)于相信預(yù)測(cè)的類別。標(biāo)簽平滑技術(shù)通過(guò)降低標(biāo)簽的絕對(duì)化,為最終的激活產(chǎn)生了更緊密的聚類和更大的類別間的間隔,從而提高泛化能力和檢測(cè)精度。
在訓(xùn)練的過(guò)程中采用了Mixup數(shù)據(jù)增強(qiáng)技術(shù)[8]。Mixup是Zhang H Y等人提出的一種簡(jiǎn)單且數(shù)據(jù)無(wú)關(guān)的數(shù)據(jù)增強(qiáng)方式,它以線性插值的方式來(lái)構(gòu)建新的訓(xùn)練樣本和標(biāo)簽,可以改進(jìn)當(dāng)前最先進(jìn)的神經(jīng)網(wǎng)絡(luò)架構(gòu)的泛化能力。構(gòu)建虛擬的訓(xùn)練樣本的公式為
y=λyi+(1-λ)yj,x=λxi+(1-λ)xj
(3)
式中 (xi,yi),(xj,yj)為訓(xùn)練集中兩個(gè)樣本,λ為一個(gè)服從B分布的參數(shù),λ~Beta(α,α),α∈[0,∞]。
在對(duì)YOLOv3-Pt模型訓(xùn)練前,利用式(3)隨機(jī)對(duì)坑洼數(shù)據(jù)集Pothole-set中的2張圖片進(jìn)行處理,將所有處理后的圖片用于后續(xù)的模型訓(xùn)練。
本文為了獲得足夠數(shù)量的坑洼數(shù)據(jù)集,采取如下方式:1)在各大圖片庫(kù)上搜索坑洼圖片,比如Google Images,百度圖庫(kù);2)使用百度街景瀏覽某個(gè)城市的道路,將道路上的坑洼保存成為圖片;3)駕駛固定安裝有雙目攝像頭的轎車(chē),緩慢行駛在坑洼路面上,拍攝坑洼圖片。通過(guò)這3種方式獲得的坑洼數(shù)據(jù)遍布了真實(shí)世界的各種場(chǎng)景,比如隨機(jī)凹凸坑,各種形狀和大小的坑洼,充滿光斑或者陰影的坑洼以及積水的坑洼等??油輬D像的陰影噪聲極有可能會(huì)被誤識(shí)別坑洼,因此,需要對(duì)坑洼圖片進(jìn)行去除陰影操作。
提出灰度補(bǔ)償模型,對(duì)陰影部分進(jìn)行灰度補(bǔ)償,可以有效去除陰影。
假設(shè)圖片中陰影區(qū)域?yàn)镸,非陰影區(qū)域?yàn)镹,I(i,j)為圖像中位置(i,j)處的灰度值,S為灰度補(bǔ)償后結(jié)果圖像,AM,AN分別為陰影區(qū)域和非陰影區(qū)域的灰度均值,則建立的灰度補(bǔ)償模型如式(4)所示[9],使用該模型去除陰影的效果如圖8所示。式(4)如下
圖8 去除陰影效果
(4)
隨后,使用該灰度補(bǔ)償模型對(duì)坑洼數(shù)據(jù)集中的陰影進(jìn)行去除,同時(shí)使用如隨機(jī)水平翻轉(zhuǎn)、隨機(jī)修剪、隨機(jī)仿射等數(shù)據(jù)增強(qiáng)手段,最終獲得坑洼數(shù)據(jù)集Pothole-set。Pothole-set有1 800張圖像,每張圖像包含1~3個(gè)坑洞,其中,1 296張用作訓(xùn)練集,324張用作驗(yàn)證集,180張用作測(cè)試集。對(duì)于每幅圖像,使用標(biāo)注軟件對(duì)圖片中的每個(gè)坑洼進(jìn)行大小和位置標(biāo)記。
本文分別對(duì)YOLOv3模型和YOLOv3-Pt模型進(jìn)行訓(xùn)練。對(duì)于YOLOv3模型,采用的是AlexeyAB在github上開(kāi)源的YOLOv3模型。在訓(xùn)練過(guò)程中,本文僅對(duì)該模型的輸入輸出進(jìn)行了更改,其余參數(shù)均沒(méi)有改變。YOLOv3-Pt模型采用與YOLOv3模型相同的輸入。整個(gè)訓(xùn)練過(guò)程在具有11 GB RAM 的GeForce GTX 1080Ti 顯卡上進(jìn)行,模型的輸入均為544×544×3。
山西體育中心體育館工程是山西省重點(diǎn)工程,位于太原市晉源區(qū),是一個(gè)能滿足籃球、排球、乒乓球、羽毛球、體操、摔跤等國(guó)際單項(xiàng)比賽的大型場(chǎng)館,建筑面積37 220 m2,總投資3.1億元,可容納觀眾8 102人。該工程是一項(xiàng)多功能、多設(shè)備、多專業(yè)、組織協(xié)調(diào)要求高、技術(shù)難度大的復(fù)雜工程,在兩年多的施工中采用了許多新技術(shù)、新工藝和新材料,克服了施工過(guò)程中的許多難點(diǎn),獲得了市優(yōu)良工程、省優(yōu)良工程、太行杯和汾水杯獎(jiǎng)等稱號(hào)。
對(duì)于YOLOv3模型,采用多尺度訓(xùn)練,輸出分別為68×68×18,34×34×18,17×17×18,對(duì)應(yīng)的檢測(cè)小坑洼、中等坑洼和大坑洼。模型的初始權(quán)重采用的是AlexeyAB提供的預(yù)訓(xùn)練權(quán)重Darknet53_448.weights。
對(duì)于YOLOv3-Pt模型,則采用單尺度輸出,模型的初始權(quán)重分為2部分。第一部分為YOLOv3-Pt中與YOLOv3網(wǎng)絡(luò)結(jié)構(gòu)相同的部分,該部分采用和YOLOv3網(wǎng)絡(luò)相同的初始權(quán)重Darknet53_448.weights。第二部分為YOLOv3-Pt模型的輸出部分,該部分使用隨機(jī)初始化權(quán)重的方式進(jìn)行初始化。
兩類模型的動(dòng)量設(shè)置為0.9,初始學(xué)習(xí)率均設(shè)置為0.000 01,最后階段的學(xué)習(xí)率為0.000 001。對(duì)于YOLOv3,本文訓(xùn)練2 000次,采用多步長(zhǎng)學(xué)習(xí)率策略,在500次和800次時(shí)學(xué)習(xí)率分別除以10,訓(xùn)練過(guò)程中平均損失如圖9(a)所示。對(duì)于YOLOv3-Pt,同樣訓(xùn)練2 000次,訓(xùn)練過(guò)程中的平均損失如圖9(b)所示。
圖9 2種模型的平均損失
從圖9(a)中可以看出,YOLOv3模型的平均損失在訓(xùn)練過(guò)程中下降緩慢,同時(shí)伴隨著劇烈震蕩的情況,雖然隨著訓(xùn)練的進(jìn)行震蕩減弱,但在訓(xùn)練結(jié)束時(shí)平均損失仍然處于2.0~3.0。對(duì)于YOLOv3-Pt模型,由圖9(b)可以發(fā)現(xiàn),平均損失下降迅速,同時(shí)下降曲線非常平緩,最終訓(xùn)練結(jié)束時(shí)平均損失為0.4左右,只有YOLOv3模型1/7左右。由此可見(jiàn),引入余弦退火學(xué)習(xí)率策略、標(biāo)簽平滑、Mixup等技術(shù),YOLOv3-Pt對(duì)坑洼檢測(cè)具有明顯的提升。
本文使用平均精度(AP)和召回率(Recall)指標(biāo)
(5)
式中 TP,FP,FN 分別為T(mén)rue Positive,False Positive和 False Negative,N為測(cè)試集的圖片數(shù)量,這里取N=180。
完成對(duì)YOLOv3模型訓(xùn)練后,采用控制變量的思想,單獨(dú)改進(jìn)某一項(xiàng)或多項(xiàng)訓(xùn)練技術(shù)后獲得新的檢測(cè)模型。對(duì)該類模型采用同樣的訓(xùn)練方式進(jìn)行訓(xùn)練,獲得模型1、模型2、模型3、模型4以及模型5,各個(gè)模型的具體改進(jìn)如表2所示。
表2 改進(jìn)部分對(duì)精度的提升測(cè)試結(jié)果 %
從表2中可以看出,YOLOv3模型的mAP為80.73 %,Recall為91.96 %。在YOLOv3模型的基礎(chǔ)上,將激活函數(shù)改為Mish可以增加8.72 %;將學(xué)習(xí)率策略從多步長(zhǎng)學(xué)習(xí)率改為余弦退火策略可以增加11.75 %。為此,在增加二者的基礎(chǔ)上,增加標(biāo)簽平滑技術(shù)和Mixup技術(shù),從表中可以看出:分別增加了0.89 %,0.26 %。當(dāng)將輸出由多尺度檢測(cè)改為單尺度檢測(cè)時(shí),mAP和recall在前面的基礎(chǔ)上分別增加了0.84 %和1.22 %。采用該類技術(shù)的 YOLOv3-Pt模型的mAP為94.72 %。與YOLOv3模型相比,YOLOv3-Pt模型的mAP提升了13.99 %,這表明,該模型在復(fù)雜環(huán)境下進(jìn)行坑洼檢測(cè)的精度具有顯著提升。
選取了路面帶有積水、陰影的2個(gè)場(chǎng)景,在每個(gè)場(chǎng)景下比較2個(gè)模型的檢測(cè)性能,檢測(cè)結(jié)果如圖10所示。在陰影場(chǎng)景中,在路面陰影面積遠(yuǎn)大于坑洼尺寸的情況下,YOLOv3-Pt和YOLOv3均沒(méi)有出現(xiàn)誤檢的情況,但YOLOv3-Pt在檢測(cè)數(shù)量上優(yōu)于YOLOv3。在積水場(chǎng)景中,可以明顯看到,在坑洼檢測(cè)數(shù)量和小尺寸坑洼的檢測(cè)性能方面,YOLOv3-Pt模型優(yōu)于YOLOv3。
圖10 陰影和積水場(chǎng)景下檢測(cè)結(jié)果(左:YOLOv3-Pt右:YOLOv3)
本文對(duì)復(fù)雜環(huán)境下路面坑洼進(jìn)行檢測(cè),基于YOLOv3檢測(cè)模型,根據(jù)坑洼的尺寸特點(diǎn),通過(guò)改進(jìn)特征提取網(wǎng)絡(luò)、檢測(cè)網(wǎng)絡(luò),并對(duì)制作的坑洼數(shù)據(jù)集采用K-Means算法進(jìn)行聚類,同時(shí),針對(duì)坑洼的幾何特征,引入Mish激活函數(shù)、余弦退火學(xué)習(xí)率策略、標(biāo)簽平滑和Mixup技術(shù),提出了坑洼檢測(cè)模型YOLOv3-Pt。與YOLOv3相比,YOLOv3-Pt在坑洼數(shù)據(jù)集Pothole-set上的檢測(cè)精度提升了13.99 %,在有積水、陰影等復(fù)雜環(huán)境下的檢測(cè)精度明顯提升。