梁天驕, 鮑 泓, 潘衛(wèi)國(guó), 潘 峰, 胡正坤
(1.北京聯(lián)合大學(xué) 北京市信息服務(wù)工程重點(diǎn)實(shí)驗(yàn)室,北京 100101;2.北京聯(lián)合大學(xué) 機(jī)器人學(xué)院,北京 100027; 3.北京聯(lián)合大學(xué) 應(yīng)用科技學(xué)院,北京 100012)
在深度神經(jīng)網(wǎng)絡(luò)出現(xiàn)之前,交通標(biāo)志牌檢測(cè)通常采用基于特征提取的方法,如顏色和形狀等特征。尺度不變特征變換和方向梯度直方圖常被應(yīng)用于支持向量機(jī)方法進(jìn)行交通標(biāo)志牌檢測(cè)。這類算法可以自動(dòng)檢測(cè)和識(shí)別交通標(biāo)志,但因檢測(cè)時(shí)間長(zhǎng)和檢測(cè)精度低等因素,無(wú)法滿足自動(dòng)駕駛系統(tǒng)在實(shí)際交通場(chǎng)景下應(yīng)用的需求。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)因其在計(jì)算機(jī)視覺(jué)領(lǐng)域具有突出的檢測(cè)精度和檢測(cè)速度,已成為目標(biāo)檢測(cè)任務(wù)的主流方法。與傳統(tǒng)的目標(biāo)檢測(cè)算法相比,基于CNN的目標(biāo)檢測(cè)算法具有強(qiáng)大的泛化能力,可以學(xué)習(xí)到目標(biāo)深層次的語(yǔ)義信息?;谏疃染矸e網(wǎng)絡(luò)的交通標(biāo)志牌檢測(cè)根據(jù)檢測(cè)任務(wù)的階段數(shù)可以分為以下三種方式:一階段方法,如YOLO v3[1,2]和SSD[3,4];兩階段方法,如Region-based CNN系列(R-CNN[5]、Fast R-CNN[6]、Faster R-CNN[7]等);和多階段方法,如 Cascade R-CNN[8,9]。兩階段和多階段方法需先通過(guò)算法生成一定比例的建議框,解決正負(fù)樣本不平衡的問(wèn)題,具有檢測(cè)速度慢和精度高的特點(diǎn)。一階段目標(biāo)檢測(cè)方法將目標(biāo)框的識(shí)別和定位任務(wù)一次性預(yù)測(cè)完成,具有檢測(cè)速度快的特點(diǎn)。在保證速度符合自動(dòng)駕駛實(shí)時(shí)性要求的同時(shí)提高一階段檢測(cè)方法的精度更有實(shí)際意義。
自AlexNet[10]提出以來(lái),出現(xiàn)了大量的特征提取網(wǎng)絡(luò);受限于網(wǎng)絡(luò)深度和卷積核尺寸,該網(wǎng)絡(luò)的感受野比較小。VGGNet[11]簡(jiǎn)化了網(wǎng)絡(luò)設(shè)計(jì)的工作流程,增加了網(wǎng)絡(luò)深度,通過(guò)疊加小卷積核取代大卷積核,在保持感受野不變的情況下,減少了參數(shù)的數(shù)量。 AlexNet和VGGNet都是直接堆疊的過(guò)濾器,這意味著每個(gè)特征層都有一個(gè)相對(duì)固定的接受域。Network In Network[12]使用全局平均池化(global average pooling)層代替部分全連接層以減少參數(shù)量和運(yùn)算量,并使用1×1卷積層學(xué)習(xí)特征圖通道的非線性組合。GoogLeNet[13]將不同大小的卷積核串聯(lián)提取圖像特征來(lái)增強(qiáng)多尺度檢測(cè)能力。但是,其大量的參數(shù)限制了網(wǎng)絡(luò)的計(jì)算能力。ResNet[14]在神經(jīng)網(wǎng)絡(luò)中引入了短連接,從而緩解了梯度消失問(wèn)題,同時(shí)獲得了更深層次的網(wǎng)絡(luò)結(jié)構(gòu),使得網(wǎng)絡(luò)能夠獲得更深層次的特征。許多后續(xù)的特征提取網(wǎng)絡(luò)都受到了ResNet的啟發(fā),如ResNeXt[15]通過(guò)控制組卷積組的數(shù)量,可以使模型的參數(shù)量減少。
視覺(jué)系統(tǒng)傾向于注意圖像中的關(guān)鍵信息以輔助判斷,而忽略無(wú)關(guān)信息,這是注意力機(jī)制期望達(dá)到的目標(biāo)。BAM[16]使用空間特征提取模塊和通道特征提取模塊獲取空間注意力和通道注意力。PAN[17]引入了用于語(yǔ)義分割的像素級(jí)注意力,主要由特征金字塔注意力和全局注意力上采樣模塊組成。用于構(gòu)建金字塔,獲取全局底層特征信息。SENet[18]構(gòu)造SE(squeeze-and-excitation)塊向不同的通道分配不同的權(quán)值。GCNet[19]的貢獻(xiàn)在于將非局域化與SE塊相結(jié)合,減少了參數(shù)量與計(jì)算時(shí)間。
預(yù)測(cè)框的回歸是交通標(biāo)志定位問(wèn)題的關(guān)鍵步驟。交并比(intersection-over-union,IoU)可以比較任意兩個(gè)圖形之間的重疊程度來(lái)確定相似度,定義如下
(1)
式中A為真實(shí)框,B為預(yù)測(cè)框。IoU具有尺度不變性,這意味著圖形的相似性不受尺度變換的影響;還具有非負(fù)性,對(duì)稱性,三角不等式等優(yōu)良特性。
邊界框損失函數(shù)一般采用IoU損失函數(shù)[20],定義如下
(2)
IoU損失直接通過(guò)計(jì)算梯度進(jìn)行回歸。缺點(diǎn)是當(dāng)兩個(gè)方框沒(méi)有交集時(shí),IoU等于0,非常近的無(wú)交集框的輸出與非常遠(yuǎn)的無(wú)交集框的輸出相同,因此梯度方向丟失,不能進(jìn)行優(yōu)化。
GIoU[21]損失函數(shù)在IoU損失的基礎(chǔ)上增加了懲罰項(xiàng)。C為預(yù)測(cè)框B和真實(shí)框Bgt的最小包圍框。當(dāng)兩個(gè)框的距離越大,懲罰項(xiàng)越大。
(3)
雖然GIoU解決了IoU的距離問(wèn)題,但由于其嚴(yán)重依賴IoU損失函數(shù),存在不穩(wěn)定、收斂速度慢等缺點(diǎn)。DIoU(distance-IoU)損失函數(shù)在IoU損失的基礎(chǔ)上增加了懲罰項(xiàng),用來(lái)最小化兩個(gè)邊界框中心點(diǎn)之間的距離。DIoU由于同時(shí)考慮到了重疊面積和中心點(diǎn)距離,能夠用來(lái)計(jì)算NMS?;趦蓚€(gè)框的重疊面積、中心點(diǎn)距離和長(zhǎng)寬比三個(gè)因素,后續(xù)提出的CIoU(complete IoU)[22]損失方法能夠使算法收斂速度更快,檢測(cè)效果更好。
YOLOF(you only look one-level feature)[23]從尋求特征金字塔網(wǎng)絡(luò)(feature pyramid networks,FPN)優(yōu)化問(wèn)題的替代方案入手,只使用單層特征圖就可以獲得和有特征金字塔版本相當(dāng)?shù)木?同時(shí)檢測(cè)速度提高2.5倍,它使用Dilated Encoder 模塊代替FPN并解決了正樣本錨框分布不均勻問(wèn)題。Dilated Encoder模塊輸入的是主干網(wǎng)絡(luò)獲取的特征,如圖1所示先利用兩種卷積核(1×1和3×3)將特征通道數(shù)減少到512,再通過(guò)4個(gè)連續(xù)的殘差單元提取特征。在每個(gè)殘差單元中,先利用1×1卷積降低特征圖維度,減少計(jì)算量,再使用空洞卷積(3×3)來(lái)增大感受野,最后通過(guò)1×1大小的卷積恢復(fù)處理后的特征圖的通道數(shù)。在4個(gè)殘差單元中,空洞卷積的膨脹系數(shù)為2,4,6,8。
圖1 Dilated Encoder組件
解碼器部分與RetinaNet[24]中的設(shè)置類似,主要的區(qū)別為:回歸分支與分類分支的層數(shù)不同,回歸分支中包含4個(gè)卷積操作,1個(gè)BN層與一個(gè)ReLU層,在分類分支中包含2個(gè)卷積操作,1個(gè)BN層與一個(gè)ReLU層;回歸分支中的每個(gè)預(yù)先設(shè)定的錨框都有一個(gè)可學(xué)習(xí)參數(shù)標(biāo)簽,最終的分類得分由分類分支的輸出乘以標(biāo)簽得到。
多尺度目標(biāo)檢測(cè)識(shí)別是計(jì)算機(jī)視覺(jué)和自動(dòng)駕駛感知領(lǐng)域面臨的難題。特征金字塔網(wǎng)絡(luò)的引入解決了目標(biāo)檢測(cè)在處理多尺度變化問(wèn)題時(shí)的不足,卻帶來(lái)了計(jì)算量增大,檢測(cè)速度下降,內(nèi)存消耗過(guò)大等問(wèn)題。YOLOF只采用一級(jí)特征進(jìn)行檢測(cè),在保持精度與FPN版本相當(dāng)?shù)那疤嵯?大幅度提高檢測(cè)速度。本文提出基于改進(jìn)單級(jí)特征圖方法的交通標(biāo)志檢測(cè)算法如圖2所示,主干網(wǎng)絡(luò)使用ResNeXt101提取圖片特征,并嵌入Coordinate注意力機(jī)制[25]增加模型對(duì)交通標(biāo)志牌的關(guān)注,使用CIoU Loss改進(jìn)模型的損失函數(shù),在訓(xùn)練階段使用數(shù)據(jù)增廣,模擬真實(shí)環(huán)境,增加模型在復(fù)雜環(huán)境下檢測(cè)的魯棒性。
圖2 改進(jìn)的YOLOF網(wǎng)絡(luò)結(jié)構(gòu)
本文使用ResNeXt特征提取網(wǎng)絡(luò)取代Resnet,它是Resnet和Inception的結(jié)合體如圖3所示,每一個(gè)分支都采用相同的拓?fù)浣Y(jié)構(gòu)。ResNeXt的本質(zhì)是分組卷積,通過(guò)變量基數(shù)來(lái)控制組的數(shù)量,從而達(dá)到減少參數(shù)量和運(yùn)算量的目的。
圖3 ResNeXt基本結(jié)構(gòu)
本文提出的改進(jìn)單級(jí)特征方法使用CIoU損失函數(shù)進(jìn)行邊界框回歸。能夠解決預(yù)測(cè)框和真實(shí)框不重疊的部分不能直接優(yōu)化的問(wèn)題;將兩個(gè)框之間的距離、重疊率、尺度和懲罰項(xiàng)都被考慮在內(nèi),使目標(biāo)框回歸更加穩(wěn)定。這可以避免訓(xùn)練過(guò)程中IoU損失函數(shù)的發(fā)散問(wèn)題的發(fā)生。CIoU是在DIoU的基礎(chǔ)上增加了兩個(gè)因子α和v,將預(yù)測(cè)框和目標(biāo)框的長(zhǎng)寬比考慮在內(nèi)。
CIoU 損失函數(shù)可以定義為
(4)
式中α為權(quán)衡的參數(shù),v用來(lái)衡量長(zhǎng)寬比一致性,ρ(·)為真實(shí)框與預(yù)測(cè)框中心點(diǎn)的距離,這里的ρ(·)為歐氏距離,最小真實(shí)框與預(yù)測(cè)框的矩形對(duì)角線長(zhǎng)度為c。
本文所提出的方法使用的是Coordinate注意力機(jī)制,它使用兩個(gè)一維全局池化操作將垂直和水平方向的輸入特征聚合成兩個(gè)獨(dú)立方向的感知特征圖。再將融入方向信息的特征圖編碼成注意力圖,獲取的注意力圖能夠獲取到輸入特征圖沿空間方向的長(zhǎng)距離依賴關(guān)系。位置信息可以保存在生成的注意力圖中,通過(guò)乘法將兩個(gè)注意力圖應(yīng)用于輸入特征圖以強(qiáng)調(diào)注意力區(qū)域的表示,具體結(jié)構(gòu)如圖4所示。
圖4 Coordinate注意力機(jī)制結(jié)構(gòu)
為實(shí)現(xiàn)網(wǎng)絡(luò)多任務(wù)功能,本文在分類損失函數(shù)和檢測(cè)框損失函數(shù)的基礎(chǔ)上添加了IoU損失函數(shù)。模型的損失函數(shù)分為:分類損失,回歸損失和IoU損失三部分。
Lcls為分類損失函數(shù),用來(lái)區(qū)分圖像中存在的各個(gè)類別和背景
(5)
Lloc為檢測(cè)框回歸函數(shù),主要用來(lái)修正前景的錨點(diǎn)坐標(biāo),從而得到最佳的檢測(cè)框
(6)
最終的損失函數(shù)為
L=λcls·Lcls+λloc·Lloc+λciou·Lciou
(7)
式中Lcls為分類損失,Lloc為回歸損失,Lciou為IoU損失,λcls,λloc和λciou分別為各部分的調(diào)節(jié)因子。
本文使用的數(shù)據(jù)增廣方法用來(lái)模擬自動(dòng)駕駛的復(fù)雜環(huán)境,使檢測(cè)模型更加穩(wěn)定。使用的數(shù)據(jù)增廣方法共有12種,如圖5所示,從天氣因素方面添加如模擬霧天、雪天、雨天等環(huán)境效果進(jìn)行數(shù)據(jù)增廣;從光照因素方面如對(duì)輸入圖片的亮度和對(duì)比度進(jìn)行調(diào)整,模擬不同光照強(qiáng)度下的交通標(biāo)志牌;自動(dòng)駕駛環(huán)境中可能會(huì)出現(xiàn)不可預(yù)知的因素干擾,增加抖動(dòng)、模糊、通道丟失、灰度化和部分信息丟失等干擾因素進(jìn)行增廣,提高模型在真實(shí)環(huán)境下的檢測(cè)精度與穩(wěn)定性。
圖5 數(shù)據(jù)增廣效果
本文實(shí)驗(yàn)中使用的是BCTSDB(Beijing Union University Chinese Traffic Sign Detection Benchmark)數(shù)據(jù)集。該數(shù)據(jù)集包括15 690張圖片和25 243個(gè)標(biāo)注。圖6顯示了BCTSDB數(shù)據(jù)集的示例圖片。分類為禁止、強(qiáng)制、警告等。數(shù)據(jù)采集于中國(guó)的15個(gè)城市,涉及城市街道、高速公路和高架橋等多個(gè)應(yīng)用場(chǎng)景。本文將 BCTSDB數(shù)據(jù)集中隨機(jī)抽取14 591張圖像為訓(xùn)練集和余下的1 099張圖像為測(cè)試集。
圖6 BCTSDB數(shù)據(jù)集
實(shí)驗(yàn)硬件環(huán)境包含兩個(gè)NVIDIA TITAN V顯卡共24 GB顯存,使用Pytorch深度學(xué)習(xí)框架構(gòu)建網(wǎng)絡(luò)模型。在訓(xùn)練階段,使用隨機(jī)梯度下降優(yōu)化算法更新網(wǎng)絡(luò)參數(shù),初始學(xué)習(xí)率0.12,Momentum為0.9,權(quán)重衰減為1×10-4。在訓(xùn)練結(jié)束前的15個(gè)周期停止使用數(shù)據(jù)增廣,以便更好擬合數(shù)據(jù)集分布。其他超參數(shù)保持與YOLOF相同的設(shè)置。
本文先對(duì)所提出的注意力機(jī)制中不同的方向的方法和通道注意力方法進(jìn)行了實(shí)驗(yàn)對(duì)比,證明了對(duì)于交通標(biāo)志檢測(cè)任務(wù),同時(shí)使用X與Y方向的注意力機(jī)制更有利于提升算法的效果。在實(shí)驗(yàn)時(shí),分別將SENet注意力機(jī)制,X方向注意力機(jī)制、Y方向注意力機(jī)制,和Coordinate注意力機(jī)制這4種方法用于YOLOF網(wǎng)絡(luò)之中,并且采用相同的訓(xùn)練和測(cè)試方法,與無(wú)注意力機(jī)制的YOLOF進(jìn)行對(duì)比,得到在BCTSDB數(shù)據(jù)集上檢測(cè)結(jié)果,如表1所示。
表1 不同注意力機(jī)制精度對(duì)比 %
從上表1可以看出,在融入注意力機(jī)制后,檢測(cè)模型能夠在檢測(cè)目標(biāo)時(shí)更關(guān)注目標(biāo)自身,檢測(cè)精度會(huì)提高,其中同時(shí)使用X與Y方向的注意力機(jī)制取得了最好的效果,模型AP50由90.9 %提升至92.3 %,AP75值由72.2 %提升至73.5 %。因此,本文選擇對(duì)檢測(cè)特征的X與Y方向同時(shí)進(jìn)行特征編碼,生成具有全局感受野并擁有精確位置信息的注意力圖,減少網(wǎng)絡(luò)的漏檢和誤檢情況的發(fā)生。
本文分別將YOLOF與本文所提方法的特征層通過(guò)熱圖的形式進(jìn)行可視化對(duì)比。添加注意力機(jī)制后的效果如圖7所示。YOLOF網(wǎng)絡(luò)的輸出特征如圖7(b)所示,除了在目標(biāo)區(qū)域有較高的激活外,其他區(qū)域的特征分布雜亂,而且個(gè)別區(qū)域含有較高的激活,很容易產(chǎn)生誤檢;本文所提方法的輸出特征如圖7(c)所示,明顯地只在目標(biāo)區(qū)域有較高的激活,其他區(qū)域的干擾特征能夠得到很好的抑制,且目標(biāo)區(qū)域的激活值相對(duì)YOLOF更高,可以說(shuō)明,注意力機(jī)制能夠?qū)τ行卣髌鸬皆鰪?qiáng)和改善的作用。
圖7 注意力機(jī)制可視化效果
由此可見(jiàn),本文使用融入注意力機(jī)制的方法能夠讓網(wǎng)絡(luò)更加關(guān)注有效區(qū)域信息的同時(shí)屏蔽其他復(fù)雜背景下的干擾信息,有效緩解漏檢誤檢問(wèn)題的發(fā)生。
本文將不同的模型的運(yùn)算量與精度進(jìn)行對(duì)比試驗(yàn),如圖8所示,四個(gè)模型分別為RetinaNet,無(wú)特征金字塔的RetinaNet,YOLOF,以及本文提出的改進(jìn)方法,C表示模型的編碼器與解碼器所使用的通道數(shù),精度指標(biāo)用模型在BCTSDB上AP50表示,GFLOPs表示模型的運(yùn)算量,速度指標(biāo)使用FPS表示,前三種模型使用ResNet—50作為主干網(wǎng)絡(luò)。結(jié)果表明,本文所提方法在增加少量運(yùn)算的前提下,大幅提高檢測(cè)了精度,并且可以滿足自動(dòng)駕駛實(shí)時(shí)性的需求。
圖8 不同模型運(yùn)算量與精度對(duì)比
本文對(duì)所提出的數(shù)據(jù)增廣、注意力機(jī)制和CIoU損失函數(shù)的改進(jìn)方法進(jìn)行有效性驗(yàn)證。表2中消融實(shí)驗(yàn)的結(jié)果證明了本文所提方法對(duì)檢測(cè)結(jié)果能夠起到正面效果。
表2 改進(jìn)YOLOF方法的消融實(shí)驗(yàn) %
由表2可以看出添加數(shù)據(jù)增廣后,模型AP50由95.4 %到96.1 %,添加注意力機(jī)制后,模型準(zhǔn)確率AP50達(dá)到97.3 %,添加CIoU損失函數(shù)后,模型準(zhǔn)確率AP50最終達(dá)到97.8 %。從這些實(shí)驗(yàn)結(jié)果可以得出,本文提出的方法能夠提高網(wǎng)絡(luò)的檢測(cè)精度,避免出現(xiàn)漏檢和誤檢情況。
為了驗(yàn)證本文所提方法的檢測(cè)效果,在測(cè)試集上運(yùn)行的檢測(cè)效果如圖9所示。圖的上半部分是原始輸入圖像,下半部分是檢測(cè)后結(jié)果,可以清楚地看出,本文改進(jìn)的方法可以有效地檢測(cè)交通標(biāo)志牌。
圖9 在BCTSDB上的檢測(cè)效果
本文將改進(jìn)方法與YOLOF,RetinaNet算法在準(zhǔn)確率與召回率角度進(jìn)行對(duì)比試驗(yàn),繪制P-R曲線。由圖10可以看出,本文所提方法的P-R曲線始終在外圍,這說(shuō)明本文所提改進(jìn)方法對(duì)各個(gè)尺度物體的檢測(cè)都有不同程度地提高。
圖10 不同算法的P-R曲線
將本文提出的改進(jìn)方法與YOLO v3,RetinaNet,YOLOF算法進(jìn)行對(duì)比試驗(yàn),并采用不同主干網(wǎng)絡(luò)。由表3可以看出,本文提出方法的檢測(cè)精度在AP50和AP75上都有較大程度的提高。實(shí)驗(yàn)結(jié)果證明了本文的改進(jìn)方法能夠提升檢測(cè)精度,同時(shí)由于YOLOF具有檢測(cè)速度快的特點(diǎn),能夠滿足自動(dòng)駕駛中交通標(biāo)志牌檢測(cè)的需求。
表3 在BCTSDB上不同目標(biāo)檢測(cè)算法精度對(duì)比 %
本文提出了一種改進(jìn)YOLOF算法的交通標(biāo)志牌檢測(cè)網(wǎng)絡(luò),提升交通標(biāo)志牌檢測(cè)的準(zhǔn)確率。在 YOLOF 網(wǎng)絡(luò)的檢測(cè)分支上融入注意力機(jī)制并利用CIoU改進(jìn)損失函數(shù),提高網(wǎng)絡(luò)對(duì)交通標(biāo)志牌目標(biāo)的關(guān)注度,在訓(xùn)練階段使用數(shù)據(jù)增廣,模擬自動(dòng)駕駛場(chǎng)景中的真實(shí)環(huán)境,提高檢測(cè)模型的魯棒性。通過(guò)消融實(shí)驗(yàn),驗(yàn)證了所提出的改進(jìn)方法的有效性。通過(guò)BCTSDB上與YOLOF,RetinaNet和YOLO v3的對(duì)比,表明了本文的方法擁有高精度的交通標(biāo)志牌檢測(cè)能力,能夠滿足智能駕駛的需求。