劉 輝,劉鑫滿,劉大東
1.重慶郵電大學(xué)通信與信息工程學(xué)院,重慶400065
2.重慶郵電大學(xué)數(shù)智技術(shù)應(yīng)用研究中心,重慶400065
隨著經(jīng)濟(jì)社會(huì)的發(fā)展,汽車在出行方面給民眾帶來了極大便利,但隨著汽車數(shù)量的增多也帶來了一系列的問題,例如交通事故頻發(fā)、道路擁堵嚴(yán)重等。自動(dòng)駕駛技術(shù)已成為解決這些交通問題的關(guān)鍵性技術(shù),并持續(xù)受到眾多國家和企業(yè)的廣泛關(guān)注。
自動(dòng)駕駛汽車在行駛過程中,需要持續(xù)地感知瞬息萬變的周邊道路環(huán)境,并在必要時(shí)根據(jù)感知到的信息采取相應(yīng)的措施。目標(biāo)檢測是自動(dòng)駕駛汽車環(huán)境感知系統(tǒng)的重要組成部分,其通過檢測車輛前方或周圍的障礙物目標(biāo),使決策系統(tǒng)接收到道路信息進(jìn)行決策從而保證駕駛的安全性。自動(dòng)駕駛領(lǐng)域的目標(biāo)檢測方法多樣,包括基于三維點(diǎn)云、基于雙目視覺、基于單目視覺等不同數(shù)據(jù)形式的檢測方法。其中,基于單目視覺的方法以其設(shè)備部署簡單、數(shù)據(jù)形式易于組織分析且對(duì)硬件負(fù)擔(dān)較小等優(yōu)點(diǎn),成為了自動(dòng)駕駛感知系統(tǒng)研究的熱點(diǎn)[1-3]。
單目視覺目標(biāo)檢測的傳統(tǒng)方法對(duì)道路目標(biāo)的檢測需要手工設(shè)計(jì)合適的特征提取器,如尺度不變特征變換(scale-invariant feature transform,SIFT)[4]、方向梯度直方圖(histogram of oriented gradient,HOG)[5]等,這些方法不僅設(shè)計(jì)工作量大且泛化能力與魯棒性較差,難以應(yīng)用于身處復(fù)雜道路環(huán)境的自動(dòng)駕駛汽車上。基于深度學(xué)習(xí)的方法以其檢測精度高、泛化性能強(qiáng)等優(yōu)勢(shì),開始廣泛進(jìn)入自動(dòng)駕駛領(lǐng)域目標(biāo)檢測的研究者們的視野[6-7]。曹磊等[8]基于Faster RCNN 方法進(jìn)行車輛檢測,精度良好但實(shí)時(shí)性較弱。Faster RCNN 屬于二階段目標(biāo)檢測算法,這類算法在檢測速度上不如單階段算法,且由于其框架限制導(dǎo)致檢測速度難以滿足要求,而單階段算法盡管精度稍低但更容易改進(jìn)。Yin等[9]基于SSD單階段檢測算法,改進(jìn)了特征融合網(wǎng)絡(luò)并引入空洞卷積提升特征圖的感受野,提升了對(duì)于多尺度目標(biāo)的檢測效果,權(quán)衡了模型的檢測精度和速度。郁強(qiáng)等[10]基于多尺度特征圖的YOLOv3算法提高了道路小目標(biāo)的檢測精度,一定程度上改善了檢測效果。
自動(dòng)駕駛汽車面臨復(fù)雜的道路環(huán)境,存在眾多尺寸較小且存在遮擋的難檢測目標(biāo),常規(guī)檢測算法對(duì)此表現(xiàn)一般,要獲得較好的檢測效果往往需要對(duì)其進(jìn)行針對(duì)性改進(jìn)。單階段目標(biāo)檢測算法YOLO自面世以來,就受到業(yè)界學(xué)者的廣泛關(guān)注,近年來,YOLO算法不斷優(yōu)化、更新版本,到了YOLOv5版本,算法在滿足實(shí)時(shí)性的同時(shí),還具備了較高的檢測精度和較為輕量化的網(wǎng)絡(luò)結(jié)構(gòu),適合運(yùn)用于對(duì)自動(dòng)駕駛場景中目標(biāo)的檢測進(jìn)行針對(duì)性改進(jìn)[11-14]。Wang 等[15]基于YOLOv5 增加淺層檢測層來提高道路小目標(biāo)的檢測精度,但使得模型提取的有效特征被過度分散而不利于常規(guī)目標(biāo)的檢測導(dǎo)致整體精度提升不明顯。鄭玉珩等[16]通過采用BiFPN 的特征融合結(jié)構(gòu)改進(jìn)YOLOv5 算法來提升網(wǎng)絡(luò)的特征復(fù)用和組合能力增強(qiáng)了特征表達(dá)的多樣性,從而改善遮擋目標(biāo)易漏檢誤檢的問題,但其大量增加的跨層連接導(dǎo)致了模型推理速度下降,這對(duì)算法的實(shí)時(shí)性影響較大。
針對(duì)常規(guī)算法對(duì)于道路小目標(biāo)和遮擋目標(biāo)易漏檢、誤檢的問題,本文基于YOLOv5s 模型進(jìn)行改進(jìn)研究:(1)針對(duì)由于道路目標(biāo)尺寸分布的不平衡導(dǎo)致現(xiàn)有聚類算法效果不佳問題,改進(jìn)現(xiàn)有的K-means++算法,并采用改進(jìn)算法重新聚類預(yù)設(shè)錨框,縮短邊界框的收斂路徑;(2)為提升對(duì)道路小目標(biāo)的檢測性能,設(shè)計(jì)了一種融入了注意力機(jī)制的多梯度流殘差結(jié)構(gòu)的路徑聚合型特征增強(qiáng)模塊PAA(path aggregation with attention),替換骨干網(wǎng)絡(luò)中的C3 模塊,增強(qiáng)模型對(duì)小目標(biāo)的檢測能力;(3)通過引入EIoU(effective intersection-over-union)loss來增強(qiáng)模型對(duì)于目標(biāo)邊界框的定位精度,提高算法對(duì)于遮擋目標(biāo)的檢測能力。通過上述網(wǎng)絡(luò)結(jié)構(gòu)調(diào)整、預(yù)設(shè)邊界框及損失函數(shù)改進(jìn),使算法能夠更好地適用于復(fù)雜道路場景的目標(biāo)檢測,獲得優(yōu)良的檢測效果。
YOLOv5s模型是YOLOv5五種規(guī)模的模型(YOLOv5n、YOLOv5s、YOLOv5m、YOLOv5l 和YOLOv5x,由前往后規(guī)模不斷提升)中權(quán)重文件大小和檢測性能較為均衡的一個(gè)模型,其權(quán)重文件的大小只有14 MB且可勝任常規(guī)場景的檢測任務(wù)。YOLOv5s 的6.0 版本的網(wǎng)絡(luò)結(jié)構(gòu)包括輸入端(input)、骨干網(wǎng)絡(luò)(backbone)、特征融合網(wǎng)絡(luò)(neck)和預(yù)測端(prediction)4 個(gè)部分,各部分具體結(jié)構(gòu)如圖1所示。
圖1 YOLOv5s 6.0版本的網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure of YOLOv5s of version 6.0
由圖1 可知,backbone 的第1 層是包含卷積核尺寸為6×6的大卷積核的Conv模塊,與之前版本的Focus模塊有所不同,作為一種有參數(shù)可訓(xùn)練的模塊,Conv可以更具針對(duì)性地下采樣,有選擇性地保留道路目標(biāo)的重要細(xì)節(jié)信息。backbone第3層是C3模塊,其作為殘差學(xué)習(xí)的主要模塊,能夠有效增強(qiáng)下采樣得到的道路目標(biāo)特征圖的同時(shí)防止網(wǎng)絡(luò)退化。backbone 第10 層是SPPF 模塊,可以將不同尺寸的輸入圖像統(tǒng)一為相同尺寸的特征圖,以提高算法的靈活性。YOLOv5s 的neck 部分為特征融合層,采用FPN(feature pyramid network)+PAN(path aggravation network)的框架,將具象的紋理細(xì)節(jié)信息豐富的淺層特征圖與抽象的語義信息豐富的深層特征圖進(jìn)行多維融合。Prediction部分即特征檢測層設(shè)置了3 個(gè)獨(dú)立并行的檢測器,對(duì)特征融合層輸出的3 組分辨率不同的特征圖進(jìn)行卷積,得到對(duì)應(yīng)的預(yù)測邊界框及預(yù)測類別,實(shí)現(xiàn)對(duì)復(fù)雜道路場景中各類目標(biāo)的檢測。
YOLOv5作為基于錨框的目標(biāo)檢測算法,與無錨框類算法相比,對(duì)于初始錨框的設(shè)置具有相對(duì)較高的依賴性??紤]到原算法給定的初始錨框?yàn)閷?duì)大型通用數(shù)據(jù)集ImageNet[17]使用聚類算法生成,而ImageNet中目標(biāo)與道路目標(biāo)的尺寸相差較大,為了獲得更適合檢測道路目標(biāo)的錨框,本文對(duì)道路目標(biāo)數(shù)據(jù)集進(jìn)行重新聚類。
K-means聚類算法[18]是一個(gè)經(jīng)典的聚類算法,其主要做法為:(1)從數(shù)據(jù)集中隨機(jī)選取K個(gè)樣本作為初始聚類中心C={}c1,c2,…,ck;(2)針對(duì)數(shù)據(jù)集中每個(gè)樣本點(diǎn),使其加入距離最近的聚類中心所在的類中;(3)針對(duì)每個(gè)類別Ci,選擇Ci中每個(gè)樣本xj到Ci中Ni個(gè)樣本的距離之和最小的樣本作為新的聚類中心;(4)重復(fù)(2)、(3)直到聚類中心不再發(fā)生變化。
由于K-means 算法采用完全隨機(jī)的方式選取初始聚類中心,因此穩(wěn)定性較差,不同的隨機(jī)結(jié)果會(huì)較大程度影響最終的聚類結(jié)果,容易導(dǎo)致其陷入局部最優(yōu)情況。K-means++算法[19]對(duì)此進(jìn)行改進(jìn)的思想是約束算法選取初始聚類中心的隨機(jī)性,對(duì)于不同的樣本點(diǎn)被選取到的概率進(jìn)行規(guī)定,使得與當(dāng)前已有聚類中心的距離之和越遠(yuǎn)的樣本越容易被選擇,從而使得選取的K個(gè)初始聚類中心盡可能分散。
盡管K-means++在常規(guī)情況下比K-means做得更好,但對(duì)于分布不均的數(shù)據(jù)樣本,簡單地使初始聚類中心設(shè)置得足夠遠(yuǎn)可能效果并不好。而道路目標(biāo)檢測的數(shù)據(jù)集就屬于這種分布極度不均的情況,尺寸較小的行人目標(biāo)分布密集且與其他各種尺寸目標(biāo)并存,圖2展示了自動(dòng)駕駛領(lǐng)域的KITTI[20]和Udacity[21]數(shù)據(jù)集的目標(biāo)尺寸分布。
圖2 KITTI和Udacity數(shù)據(jù)集目標(biāo)尺寸分布Fig.2 Distribution of target size of KITTI and Udacity
由圖2 可知,KITTI 數(shù)據(jù)集中尺寸在50×50 以下的目標(biāo)極為密集,而在寬度230以上、高度125以上的目標(biāo)又過于稀疏,Udacity數(shù)據(jù)集存在類似的現(xiàn)象,即目標(biāo)尺寸分布極度不均。在此情況下,K-means++選出的初始聚類中心會(huì)趨向于較為分散的邊緣區(qū)域樣本點(diǎn),但這些樣本點(diǎn)大部分屬于特例樣本點(diǎn),難以很好地代表全局分布。
因此,本文基于K-means++算法并對(duì)其進(jìn)行改進(jìn),使得初始聚類中心的確定額外基于樣本點(diǎn)的密度,其他步驟不變,名為K-means+D,其選擇初始聚類中心的四個(gè)步驟詳述如下:
(1)從數(shù)據(jù)集中隨機(jī)選擇1個(gè)樣本作為初始聚類中心之一c1。
(2)計(jì)算出每個(gè)樣本與最近一個(gè)已有聚類中心的距離D(x)以及每個(gè)樣本的密度因子dx,這里距離D(x)通過交并比(intersection over union,IoU)來表示,密度因子dx用于衡量當(dāng)前樣本點(diǎn)x周圍一定范圍區(qū)域樣本點(diǎn)的稠密程度,計(jì)算方式如式(1)所示:
式(1)中,Rx表示當(dāng)前樣本點(diǎn)x周圍一定區(qū)域樣本點(diǎn)的集合,Ω表示全體樣本點(diǎn)的集合。
(3)設(shè)定每個(gè)樣本x被選的概率px,并按照輪盤法選出下一聚類中心,px的計(jì)算方式如式(2)所示:
(4)重復(fù)步驟(2)、步驟(3)K-1 次即可確定出全部的K個(gè)初始聚類中心。
K-means+D 算法在確定初始聚類中心時(shí),同時(shí)考慮聚類中心之間的距離和每個(gè)聚類中心周圍區(qū)域樣本點(diǎn)的密度,使得確定的初始聚類中心可以更好地接近數(shù)據(jù)的全局分布情況以提升后續(xù)聚類效果。
總體來說,K-means、K-means++及本文提出的Kmeans+D 三種聚類算法的不同實(shí)現(xiàn)方法決定了它們具有不同的適用場景。K-means采用完全隨機(jī)的方式來確定其K個(gè)初始聚類中心,容易在不同的選擇下陷入不同的局部最優(yōu),具有不穩(wěn)定的缺點(diǎn);K-means++針對(duì)K-means算法的不穩(wěn)定性進(jìn)行改進(jìn),采用距離決定被選概率的機(jī)制來確定初始聚類中心,使得初始聚類中心盡可能分散,考慮了樣本集合的全局特征,但對(duì)于分布不均的樣本,所選的聚類中心只具有距離上的全局性而缺乏密度上的全局性,因此其只適用于分布較為均勻的樣本集合;K-means+D 算法在K-means++算法的基礎(chǔ)上進(jìn)行改進(jìn),在選擇初始聚類中心時(shí)加入樣本密度因子,考慮了樣本分布密集程度,因此其更加適用于尺寸分布不均的道路目標(biāo)樣本集。
YOLOv5s 的backbone 主要由Conv 模塊和C3 模塊組成。Conv 模塊實(shí)現(xiàn)對(duì)特征圖的下采樣及非線性變換,而C3 模塊則穿插布局于Conv 模塊之間,實(shí)現(xiàn)對(duì)特征信息的增強(qiáng)處理,并采用殘差結(jié)構(gòu)緩解深層神經(jīng)網(wǎng)絡(luò)的退化問題。在復(fù)雜道路場景下,除常規(guī)大中目標(biāo)外還存在一些不易檢測的小目標(biāo),小目標(biāo)的難檢測問題是無人駕駛安全性的巨大隱患之一??紤]到當(dāng)前算法對(duì)于小目標(biāo)的檢測效果一般,本文對(duì)特征提取網(wǎng)絡(luò)中的C3模塊進(jìn)行改進(jìn),使用多梯度流殘差結(jié)構(gòu)進(jìn)行特征增強(qiáng)實(shí)現(xiàn)對(duì)語義特征和定位特征的和諧處理,同時(shí)融入注意力機(jī)制實(shí)現(xiàn)高效的特征選擇,將改進(jìn)后的模塊命名為PAA模塊,其體系結(jié)構(gòu)如圖3所示。
圖3 PAA模塊結(jié)構(gòu)Fig.3 PAA module structure
PAA模塊結(jié)構(gòu)的設(shè)計(jì)靈感主要來源于Vovnet[22],其使用多個(gè)卷積塊的堆疊作為特征提取網(wǎng)絡(luò)的統(tǒng)一結(jié)構(gòu),來提升網(wǎng)絡(luò)捕捉細(xì)節(jié)的能力。PAA 模塊首先對(duì)輸入特征圖做恒等卷積,實(shí)現(xiàn)特征圖的通道壓縮以提升待聚合特征圖的信息密度。接著對(duì)待聚合特征圖使用兩次卷積層加工,生成具有不同感受野和不同層次語義信息的特征圖,再對(duì)前幾部分深淺度各異的特征圖進(jìn)行拼接融合以得到含復(fù)雜梯度流特征的特征圖。最后通過ECA[23](effective coordinate attention)模塊提取注意力信息篩選重要特征,并將得到的篩后特征圖與輸入特征圖相加形成殘差結(jié)構(gòu),以防止網(wǎng)絡(luò)退化,ECA 模塊結(jié)構(gòu)如圖4所示。
圖4 ECA模塊結(jié)構(gòu)Fig.4 ECA module structure
ECA模塊是一種高效的通道注意力模塊,其采用非全連接不降維的注意力權(quán)值生成方式,既能防止降維造成的信息損失又降低了通道連接的冗余度。
PAA 模塊與ECA 注意力模塊相結(jié)合,重要細(xì)節(jié)信息可以選擇性通過多梯度流結(jié)構(gòu)和殘差連接向深層傳遞,豐富的語義信息也在其中得到強(qiáng)化,因此既能提升模型對(duì)道路小目標(biāo)的檢測性能,又可保持對(duì)于道路常規(guī)目標(biāo)的檢測能力。同時(shí)與原C3 模塊相比,PAA 中包含了2個(gè)3×3卷積,因此參數(shù)量會(huì)有少量的提升,但減少了2 個(gè)恒等卷積,GPU 的并行運(yùn)算能力可以得到充分發(fā)揮,這可以加速模型的推理。
在YOLOv5s的6.0版本中,算法采用CIoU(complete IoU)函數(shù)[24]作為邊界框的損失函數(shù)。與之前版本采用的GIoU(General IoU)函數(shù)不同,CIoU 的計(jì)算如式(3)所示,其中的υ和α分別如式(4)和式(5)所示,而GIoU的計(jì)算公式如式(6)所示:
式(3)中,IoU表示預(yù)測框和真實(shí)框的交并比,ρ表示兩框中心點(diǎn)的歐氏距離,c表示兩框最小外接矩形的對(duì)角線距離。式(4)中,wgt、hgt分別表示真實(shí)框?qū)挕⒏?,w、h分別表示預(yù)測框?qū)?、高。式?)中,Ac表示預(yù)測框和真實(shí)框最小外接矩形的面積,u表示兩框的并集面積。GIoU雖然解決了預(yù)測框和真實(shí)框無交集時(shí)無法收斂的問題,但其收斂速度較慢,GIoU 公式中的項(xiàng)與CIoU公式中的項(xiàng)變化趨勢(shì)相似,都隨兩框中心點(diǎn)距離減小而減小,但后者在兩框出現(xiàn)交集后變化更迅速的特點(diǎn)有利于加快收斂,此外CIoU 函數(shù)計(jì)算時(shí)涉及的因素更多,包括交并比、中心點(diǎn)距離及寬高比,這樣做的好處是使預(yù)測框的收斂方向更準(zhǔn)確,從而進(jìn)一步加快收斂。然而,CIoU 計(jì)算式中的寬高比因子υ對(duì)w和h求梯度時(shí),會(huì)發(fā)現(xiàn)二者梯度方向相反,如式(7)和式(8)所示:
這會(huì)使得神經(jīng)網(wǎng)絡(luò)在通過隨機(jī)梯度下降算法更新參數(shù)時(shí)令w和h每次都向相反的方向變化,而這并不合理。圖5展示了CIoU loss作為損失函數(shù)的邊界框收斂過程和理想收斂過程的對(duì)比。
圖5 收斂過程對(duì)比Fig.5 Comparison of convergence process
圖5(a)、(b)中左下角的藍(lán)色矩形為真實(shí)邊界框,右上角黑色矩形為初始預(yù)測邊界框,從左到右每幅圖中間的紅色或綠色矩形展示了動(dòng)態(tài)收斂過程??梢钥吹剑跏碱A(yù)測框與真實(shí)框?qū)挾冉咏叨认嗖钶^多時(shí),若如圖5(b)理想收斂過程所示,使高度不斷朝著接近真實(shí)框高度的方向更新,兩框可以很快重合,而圖5(a)展示的使用CIoU的收斂過程由于預(yù)測框?qū)捀咴诟聲r(shí)相互制約,導(dǎo)致收斂過程變得緩慢。因此引入EIoU[25]函數(shù)作為損失函數(shù),其計(jì)算如式(9)所示:
式(9)中,wc、hc分別表示預(yù)測框和真實(shí)框的最小外接矩形的寬、高,ρw、ρh分別表示兩框?qū)挷钪?、高差值。EIoU對(duì)寬、高獨(dú)立計(jì)算損失,因此可以實(shí)現(xiàn)如圖5(b)所示理想收斂情況以提高定位精度。
定位精度的提高可以有效提升算法對(duì)遮擋目標(biāo)的檢測能力。在YOLOv5中,為提高檢測精度對(duì)于同一個(gè)目標(biāo)以多個(gè)網(wǎng)格為中心來生成更多預(yù)測框,最終對(duì)初步預(yù)測結(jié)果采用非極大值抑制(non-maximal suppression,NMS)方法去除相同目標(biāo)的重復(fù)預(yù)測框。NMS 通過計(jì)算不同框之間的交集判斷是否來自同一目標(biāo),而相互遮擋的目標(biāo)由于同樣存在交集,若預(yù)測框定位不準(zhǔn),則可能被NMS當(dāng)作相同目標(biāo)的重復(fù)預(yù)測框?yàn)V除。因此對(duì)于遮擋目標(biāo)的檢測而言,邊界框定位精度極大程度影響了其被漏檢的可能性。
對(duì)比幾種損失函數(shù)對(duì)定位精度的影響,CIoU 對(duì)邊界框與預(yù)測框的寬高比進(jìn)行計(jì)算,可以使得預(yù)測框在保持形狀與真實(shí)框相似的條件下進(jìn)行收斂,防止在收斂過程中因?yàn)樾螤钭兓欢ǘy以實(shí)現(xiàn)與真實(shí)框重合,這使得采用CIoU的模型邊界框定位精度比GIoU高,因而對(duì)遮擋目標(biāo)具有更強(qiáng)的檢測能力;EIoU解決了CIoU在形狀收斂任務(wù)中存在的寬高制約問題,優(yōu)化了形狀收斂效果,這進(jìn)一步提升了邊界框的定位精度,可以更加有效地防止遮擋目標(biāo)被NMS誤濾除。
在復(fù)雜道路場景中,自動(dòng)駕駛汽車視角下的遮擋目標(biāo)眾多,引入EIOU loss 作為算法的邊界框損失函數(shù),可以有效降低道路遮擋目標(biāo)的漏檢率。
為提升對(duì)復(fù)雜道路目標(biāo)的檢測性能,結(jié)合上述章節(jié)改進(jìn)內(nèi)容,得到改進(jìn)后的模型DPE-YOLO(YOLO withK-means+D,PAA and EIoU),模型結(jié)構(gòu)如圖6所示。
圖6 DPE-YOLO網(wǎng)絡(luò)結(jié)構(gòu)Fig.6 DPE-YOLO network structure
由圖6可知,DPE-YOLO中骨干網(wǎng)絡(luò)采用PAA模塊代替原C3模塊,其余網(wǎng)絡(luò)結(jié)構(gòu)與YOLOv5s相同。與此同時(shí),模型訓(xùn)練的預(yù)設(shè)錨框由K-means+D 聚類算法對(duì)道路目標(biāo)數(shù)據(jù)集進(jìn)行重新聚類生成,使用的定位損失函數(shù)由CIoU loss改進(jìn)為EIoU loss。
為驗(yàn)證本文提出的DPE-YOLO 道路目標(biāo)檢測模型的性能,使用自動(dòng)駕駛領(lǐng)域的經(jīng)典數(shù)據(jù)集KITTI 和Udacity 來進(jìn)行測試。其中,KITTI 數(shù)據(jù)集包含市區(qū)、鄉(xiāng)村和高速公路等場景下采集的真實(shí)圖像數(shù)據(jù)共7 481張,每張圖像中最多達(dá)15 輛車和30 個(gè)行人,小目標(biāo)較多,且存在各種程度的遮擋。Udacity 數(shù)據(jù)集是一個(gè)用于自動(dòng)駕駛汽車算法比賽的數(shù)據(jù)集,共15 000張城市道路采集圖像,這些圖像在具有較多汽車和行人目標(biāo)的同時(shí),光照條件變化更加劇烈,進(jìn)一步增加了檢測難度。使用KITTI和Udacity數(shù)據(jù)集可較為全面地檢驗(yàn)改進(jìn)算法對(duì)于小目標(biāo)和遮擋目標(biāo)的檢測效果。
對(duì)于KITTI 數(shù)據(jù)集,將其隨機(jī)劃分出6 732 張作為訓(xùn)練集,749張作為驗(yàn)證集。同時(shí),對(duì)所有標(biāo)簽數(shù)據(jù)做如下處理:合并Truck、Van、Tram到Car類,合并Person_sitting到Pedestrian 類,并忽略非常規(guī)目標(biāo)的DontCare 和Misc類,最終剩下Car、Pedestrian和Cyclist三個(gè)類別的標(biāo)簽。對(duì)Udacity 數(shù)據(jù)集對(duì)其進(jìn)行以下處理:去除Trafficlight類標(biāo)簽,合并Truck 到Car 類,剩下有標(biāo)簽圖像12 996張,其中9 098 張作為訓(xùn)練集,3 898 張作為驗(yàn)證集。由于數(shù)據(jù)集的規(guī)模差異,根據(jù)模型精度收斂曲線,對(duì)采用KITTI 和Udacity 的實(shí)驗(yàn),其訓(xùn)練輪次(epoch)分別設(shè)置為200和120。
本文所有實(shí)驗(yàn)的環(huán)境配置如表1所示,超參數(shù)的設(shè)置除epoch外均為YOLOv5s的6.0版本默認(rèn)。
表1 實(shí)驗(yàn)環(huán)境配置Table 1 Experimental environment configuration
為定量評(píng)估目標(biāo)檢測器性能,采用模型尺寸指標(biāo)、精度性能指標(biāo)和速度性能指標(biāo)。模型尺寸指標(biāo)為模型參數(shù)量(parameters),精度性能評(píng)價(jià)指標(biāo)為mAP,具體包含:mAP@0.5、mAP@0.5:0.95,二者區(qū)別在于IoU 閾值不同,mAP@0.5:0.95表示IoU閾值為0.5到0.95的mAP均值;速度性能評(píng)價(jià)指標(biāo)FPS表示每秒可檢測的圖像數(shù)量。其中,mAP計(jì)算如式(10)所示:式
(10)中,N為檢測目標(biāo)的類別數(shù),APi為類別i的平均準(zhǔn)確度,其計(jì)算公式如式(11)所示:
式(11)中,n表示召回率區(qū)間的數(shù)量,Pi(Rj)表示對(duì)i類目標(biāo)檢測的結(jié)果中,第j個(gè)召回率(Recall)區(qū)間下準(zhǔn)確率(Precision)的最大值,P和R的計(jì)算方式分別如式(12)和式(13)所示:式(12)和式(13)中,TP表示被正確識(shí)別的正樣本數(shù)量,F(xiàn)P表示被錯(cuò)誤識(shí)別成正樣本數(shù)量的負(fù)樣本數(shù)量,F(xiàn)N表示被錯(cuò)誤識(shí)別成負(fù)樣本的正樣本數(shù)量。
此外,為定量評(píng)估聚類算法的全局表達(dá)能力,針對(duì)矩形框,采用平均交并比(mean intersection over union,MIoU)為評(píng)價(jià)指標(biāo),其計(jì)算如式(14)所示:
式(14)中,N表示數(shù)據(jù)集所包含目標(biāo)框的數(shù)量,Bi、分別表示第i個(gè)樣本目標(biāo)框和其所屬聚類的聚類中心樣本框。
為了驗(yàn)證提出的K-means+D 聚類算法的實(shí)際效果,本實(shí)驗(yàn)對(duì)K-means、K-means++及K-means+D的聚類效果進(jìn)行比較。為說明K-means+D聚類算法在自動(dòng)駕駛數(shù)據(jù)集中的普適性,本實(shí)驗(yàn)在KITTI 和Udacity 兩個(gè)數(shù)據(jù)集上進(jìn)行,對(duì)三種聚類算法的直接聚類效果及對(duì)檢測性能的影響進(jìn)行實(shí)驗(yàn)對(duì)比,結(jié)果如表2所示。
表2 幾種聚類算法的MIoU及對(duì)模型檢測效果影響的比較Table 2 Comparison of MIoU and influence on model detection effect of several cluster algorithms單位:%
由表2可知,由于道路目標(biāo)尺寸分布的不均衡,Kmeans++算法在這種情況下的聚類效果甚至不如Kmeans 算法。在KITTI 數(shù)據(jù)集上,在MIoU 指標(biāo)上Kmeans+D相比K-means++提升了3.5個(gè)百分點(diǎn),相比Kmeans 提升了2.1 個(gè)百分點(diǎn),相比原算法提升了9.1 個(gè)百分點(diǎn),同時(shí)K-means+D 所生成錨框使得檢測指標(biāo)mAP@0.5提升了1.1個(gè)百分點(diǎn),在Udacity數(shù)據(jù)集上,以上幾種指標(biāo)也均有一定的提升。實(shí)驗(yàn)結(jié)果說明,相比另外兩種聚類算法,K-means+D 對(duì)模型檢測性能的提升更加明顯。
為進(jìn)一步探究K-means、K-means++與K-means+D三種算法的聚類差異,以KITTI數(shù)據(jù)集為例,圖7進(jìn)一步展示了幾種聚類算法的可視化結(jié)果。
圖7 幾種聚類算法的可視化展示Fig.7 Visualization of several algorithms
由圖7可知,K-means的初始聚類中心主要分布在樣本點(diǎn)較多的小目標(biāo)區(qū)域,約有5/6 區(qū)域的樣本點(diǎn)都未被選擇,這是因?yàn)榇藚^(qū)域的樣本較多因此在隨機(jī)選擇中更容易被選到。盡管如此,其初始聚類中心相比Kmeans++更具有密度上的全局性,因此聚類的MIoU 比K-means++更高。K-means++與K-means+D的初始聚類中心分布都較為分散,但后者在樣本密集區(qū)域的樣本點(diǎn)更多,選出的初始聚類中心更好地代表了樣本的分布情況,因此K-means+D 的聚類效果更好。且由于Kmeans+D 同時(shí)考慮了樣本距離和區(qū)域樣本密度上的全局性,因此聚類的MIoU最高。
以上實(shí)驗(yàn)結(jié)果一致說明了K-means+D聚類算法的有效性,其對(duì)于分布不均的樣本可以生成更符合全局分布的聚類中心,從而聚類出更優(yōu)的錨框以有效改善模型對(duì)各種尺寸的道路目標(biāo)的檢測性能,盡管其相比原算法在生成初始聚類中心時(shí)增加了一定計(jì)算量,但由于計(jì)算量的增加是在模型訓(xùn)練前,因此并不影響模型的檢測速度。
為了驗(yàn)證在PAA 模塊中加入注意力機(jī)制對(duì)模型的影響,本實(shí)驗(yàn)以KITTI 數(shù)據(jù)集作為實(shí)驗(yàn)對(duì)象,將PAA 模塊結(jié)合不同注意力機(jī)制后得到的幾種模型的檢測效果進(jìn)行了對(duì)比,實(shí)驗(yàn)結(jié)果如表3所示。
表3 融合不同注意力機(jī)制的PAA模塊的對(duì)比Table 3 Comparison between several PAA modules fused with different attention mechanism
表3中,PAA_noAtt 表示包含無注意力機(jī)制的PAA模塊的模型,表3 中PAA_SE、PAA_CA、PAA_CBAM 和PAA_ECA分別表示包含加入SE、CA、CBAM和ECA的PAA模塊的模型。由表3可知,相比其他幾種注意力模塊,結(jié)合了ECA 模塊的PAA 模塊使得模型對(duì)于道路目標(biāo)的識(shí)別效果最優(yōu),同時(shí)幾乎不增加參數(shù)量,且對(duì)于檢測速度的影響最小。這說明了ECA注意力機(jī)制可以在包含復(fù)雜梯度流的特征圖中更好地挖掘出重要特征信息以提升檢測效果。
為了說明不同損失函數(shù)對(duì)于模型檢測性能的影響,本實(shí)驗(yàn)以KITTI數(shù)據(jù)集為實(shí)驗(yàn)對(duì)象,將分別使用GIoU、CIoU(原算法)和EIoU幾種邊界框損失函數(shù)模型的檢測性能進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果如圖8所示。
圖8 不同邊界框損失函數(shù)對(duì)檢測結(jié)果的影響Fig.8 Influence of different bounding box loss functions on detection results
由圖8 可知,相比使用GIoU 和CIoU,使用EIoU 作為邊界框損失函數(shù)后mAP@0.5分別提升1.5個(gè)百分點(diǎn)、1.3 個(gè)百分點(diǎn),同時(shí)mAP@0.5:0.95 分別提升了1.4 個(gè)百分點(diǎn)、1.1 個(gè)百分點(diǎn),實(shí)驗(yàn)結(jié)果驗(yàn)證了EIoU 損失函數(shù)對(duì)模型整體檢測效果的提升。
為說明不同損失函數(shù)對(duì)遮擋目標(biāo)檢測的影響,圖9進(jìn)一步展示了不同損失函數(shù)對(duì)應(yīng)模型對(duì)于遮擋目標(biāo)實(shí)例檢測效果的可視化對(duì)比。由圖9 的局部放大部分對(duì)比可知,由于兩輛車的高度重疊后面的車被嚴(yán)重遮擋,使用GIoU 和CIoU 損失函數(shù)的模型邊界框定位誤差較大,導(dǎo)致被NMS 濾除了一個(gè)預(yù)測框,均只檢測到一輛車,而使用EIoU的模型以其更優(yōu)的邊界框定位能力,避免了漏檢。實(shí)驗(yàn)結(jié)果驗(yàn)證了使用EIoU損失函數(shù)訓(xùn)練模型的更高邊界框回歸準(zhǔn)確度,使其可以更好地處理遮擋目標(biāo)的檢測,以提高檢測精度。
圖9 不同邊界框損失函數(shù)對(duì)遮擋目標(biāo)實(shí)例檢測效果對(duì)比Fig.9 Comparison of different bounding box loss functions on occlusion target instances
為了驗(yàn)證K-means+D、PAA模塊和EIOU loss對(duì)模型性能的提升效果,本實(shí)驗(yàn)對(duì)DPE-YOLO 進(jìn)行消融研究。實(shí)驗(yàn)在KITTI數(shù)據(jù)集上進(jìn)行,實(shí)驗(yàn)結(jié)果如表4所示,由其中信息可得如下結(jié)論:
表4 不同優(yōu)化方式對(duì)模型性能的影響Table 4 Impact of different optimization methods on model performance
(1)K-means+D 的有效性。由表4 可知,在原算法基礎(chǔ)上使用了K-means+D 后mAP@0.5、mAP@0.5:0.9分別提升了1.1 個(gè)百分點(diǎn)、0.8 個(gè)百分點(diǎn),且FPS 相同。說明使用K-means+D聚類算法生成的錨框可有效提升模型檢測性能,且不影響檢測速度。
(2)PAA 模塊的有效性。由表4 可知,在原算法基礎(chǔ)上加入PAA 模塊后模型在增加了少量參數(shù)量的情況下,mAP@0.5、mAP@0.5:0.9分別提升了1.4個(gè)百分點(diǎn)、2.2 個(gè)百分點(diǎn),且從FPS 指標(biāo)可知使用基于PAA 的模型檢測速度更快。
(3)EIoU loss 的有效性。由表4 可知,在原算法基礎(chǔ)上使用EIoU loss 使mAP@0.5、mAP@0.5:0.95 分別提升了1.3 個(gè)百分點(diǎn)、1.1 個(gè)百分點(diǎn),F(xiàn)PS 指標(biāo)也說明由于其不增加額外計(jì)算量而不影響檢測速度。
(4)以上優(yōu)化方式的耦合性較好。從表4 可以看出,在任何一個(gè)已優(yōu)化過的模型上加入新的優(yōu)化方法后,檢測精度均可得到提高,且不會(huì)降低檢測速度,說明采用的幾種優(yōu)化方式的耦合性良好。
為了驗(yàn)證本文所提出的模型的有效性,本實(shí)驗(yàn)將在KITTI和Udacity兩個(gè)數(shù)據(jù)集上進(jìn)行,將其與當(dāng)前主流的算法模型的檢測結(jié)果進(jìn)行對(duì)比分析。
表5展示了不同模型在KITTI 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果,主要對(duì)Faster-RCNN、SSD、YOLOv3、YOLOv4、YOLOv5s、YOLOv5m及DPE-YOLO模型進(jìn)行了檢測精度和檢測速度兩方面的比較。實(shí)驗(yàn)表明,所提出的DPE-YOLO 相較于基線模型YOLOv5s,檢測精度得到了較大提升,mAP@0.5、mAP@0.5:0.9 分別提升了2.8個(gè)百分點(diǎn)、2.7個(gè)百分點(diǎn),mAP@0.5與FPS均超越其他主流模型,相比原算法每秒可多檢測5張圖像。
表5 KITTI數(shù)據(jù)集對(duì)比實(shí)驗(yàn)Table 5 KITTI dataset comparison experiment
為進(jìn)一步檢驗(yàn)?zāi)P蛯?duì)不同目標(biāo)的檢測效果,圖10對(duì)YOLOv5s和改進(jìn)模型DPE-YOLO對(duì)各類目標(biāo)的檢測精度進(jìn)行了可視化對(duì)比展示。數(shù)據(jù)顯示,改進(jìn)模型在3個(gè)類別上檢測精度都高于YOLOv5s,其中類別Pedestrian的檢測效果提升最明顯,與YOLOv5s 相比,mAP@0.5、mAP@0.5:0.95分別提升了5.3個(gè)百分點(diǎn)、3.2個(gè)百分點(diǎn),且在所有道路目標(biāo)中,Pedestrian類別的目標(biāo)通常較小,實(shí)驗(yàn)結(jié)果驗(yàn)證了DPE-YOLO模型對(duì)于常規(guī)道路目標(biāo)檢測能力的提升及對(duì)道路小目標(biāo)檢測能力的顯著提升。
圖10 兩種模型對(duì)各類別檢測精度的對(duì)比Fig.10 Comparison of detection precision of each classes between two models
最后,為驗(yàn)證模型的泛化性能,繼續(xù)在Udacity數(shù)據(jù)集上進(jìn)行對(duì)比實(shí)驗(yàn)。結(jié)果見表6,與其他主流模型相比,改進(jìn)算法在mAP@0.5 與FPS 指標(biāo)上同樣處于優(yōu)勢(shì),且相比原算法mAP@0.5、mAP@0.5:0.9分別提高了1.6個(gè)百分點(diǎn)、2.9個(gè)百分點(diǎn)。
表6 Udacity數(shù)據(jù)集對(duì)比實(shí)驗(yàn)Table 6 Udacity dataset comparison experiment
在KITTI 和Udacity 數(shù)據(jù)集上,改進(jìn)算法有不同的效果提升,并且其在KITTI數(shù)據(jù)集的提升更明顯。這是因?yàn)閁dacity 數(shù)據(jù)集的圖像光線變化更劇烈,其一定程度上限制了模型處理細(xì)節(jié)信息地能力的發(fā)揮,但效果提升仍然是可觀的,這也說明DPE-YOLO 在復(fù)雜光線條件中相比原算法仍然具有更強(qiáng)的檢測能力。
圖11、圖12 分別展示了算法改進(jìn)前后對(duì)KITTI 數(shù)據(jù)集、Udacity數(shù)據(jù)集部分圖像的檢測效果的對(duì)比,兩圖左、右均對(duì)應(yīng)YOLOv5s 和改進(jìn)后的DPE-YOLO 模型效果。在圖11的放大圖b和圖12的放大圖a中,改進(jìn)算法成功檢測到原算法未檢測出的行人小目標(biāo),這體現(xiàn)了改進(jìn)后的算法對(duì)小目標(biāo)檢測能力更強(qiáng)的優(yōu)勢(shì);在圖11 的放大圖a 中,行駛的車輛由于互相遮擋,而被YOLOv5s漏檢,DPE-YOLO以其更優(yōu)越的邊界框回歸能力避免了遮擋目標(biāo)的漏檢,體現(xiàn)出其對(duì)遮擋目標(biāo)檢測能力的提升;此外,從圖12 的放大圖b 中可以看到改進(jìn)算法正常檢測到原算法未識(shí)別出的被草叢遮擋的汽車,說明其聚焦關(guān)鍵信息的能力更強(qiáng)。
圖11 KITTI數(shù)據(jù)集檢測效果對(duì)比Fig.11 Comparison of detection effect on KITTI dataset
圖12 Udacity數(shù)據(jù)集的檢測效果對(duì)比Fig.12 Comparison of detection effect on Udacity dataset
針對(duì)目前的目標(biāo)檢測算法對(duì)復(fù)雜道路場景中的小目標(biāo)、遮擋目標(biāo)存在嚴(yán)重的漏檢誤檢問題,造成整體檢測率不高的情況,本文提出了基于YOLOv5s 的改進(jìn)算法DPE-YOLO。針對(duì)原算法的預(yù)設(shè)錨框不符合道路目標(biāo)尺寸特點(diǎn),且道路目標(biāo)尺寸分布不平衡問題導(dǎo)致現(xiàn)有聚類算法效果不佳,提出了K-means+D 聚類算法生成更適合道路目標(biāo)檢測的預(yù)設(shè)錨框,縮短目標(biāo)邊界框回歸路徑,使得不同尺度的目標(biāo)都更容易找到正確的收斂方向以提升各類目標(biāo)的檢測精度;針對(duì)道路中小目標(biāo)容易漏檢誤檢的問題,提出了PAA模塊,其多梯度流與注意力機(jī)制的融合結(jié)構(gòu)使得模型可以更高效、靈活地提取小目標(biāo)的重要細(xì)節(jié)特征,提升小目標(biāo)的檢測精度;針對(duì)道路中遮擋目標(biāo)容易漏檢誤檢的問題,引入了EIoU loss作為算法的邊界框損失函數(shù),提高邊界框定位精度,降低遮擋目標(biāo)被NMS 誤濾除的概率,使遮擋目標(biāo)的檢測精度得到提升。
實(shí)驗(yàn)結(jié)果表明,改進(jìn)算法在自動(dòng)駕駛數(shù)據(jù)集KITTI和Udacity 上表現(xiàn)良好,在付出少量參數(shù)量成本的情況下,不僅降低了小目標(biāo)和遮擋目標(biāo)的漏檢誤檢率,實(shí)現(xiàn)了更高的檢測精度,還提升了檢測速度。后續(xù)的工作中,將繼續(xù)從以下兩個(gè)方面優(yōu)化算法:一方面在提升模型魯棒性的方向上進(jìn)行研究,實(shí)現(xiàn)更強(qiáng)的抗干擾性能以繼續(xù)提升檢測精度;另一方面,在保持精度的同時(shí),對(duì)模型進(jìn)行剪枝,降低模型的參數(shù)量以減輕自動(dòng)駕駛的硬件系統(tǒng)負(fù)擔(dān)。