梁天驕, 鮑 泓, 潘衛(wèi)國, 潘 峰, 胡正坤
(1.北京聯(lián)合大學(xué) 北京市信息服務(wù)工程重點(diǎn)實(shí)驗室,北京 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)志牌檢測通常采用基于特征提取的方法,如顏色和形狀等特征。尺度不變特征變換和方向梯度直方圖常被應(yīng)用于支持向量機(jī)方法進(jìn)行交通標(biāo)志牌檢測。這類算法可以自動檢測和識別交通標(biāo)志,但因檢測時間長和檢測精度低等因素,無法滿足自動駕駛系統(tǒng)在實(shí)際交通場景下應(yīng)用的需求。
卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural networks,CNN)因其在計算機(jī)視覺領(lǐng)域具有突出的檢測精度和檢測速度,已成為目標(biāo)檢測任務(wù)的主流方法。與傳統(tǒng)的目標(biāo)檢測算法相比,基于CNN的目標(biāo)檢測算法具有強(qiáng)大的泛化能力,可以學(xué)習(xí)到目標(biāo)深層次的語義信息?;谏疃染矸e網(wǎng)絡(luò)的交通標(biāo)志牌檢測根據(jù)檢測任務(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]。兩階段和多階段方法需先通過算法生成一定比例的建議框,解決正負(fù)樣本不平衡的問題,具有檢測速度慢和精度高的特點(diǎn)。一階段目標(biāo)檢測方法將目標(biāo)框的識別和定位任務(wù)一次性預(yù)測完成,具有檢測速度快的特點(diǎn)。在保證速度符合自動駕駛實(shí)時性要求的同時提高一階段檢測方法的精度更有實(shí)際意義。
自AlexNet[10]提出以來,出現(xiàn)了大量的特征提取網(wǎng)絡(luò);受限于網(wǎng)絡(luò)深度和卷積核尺寸,該網(wǎng)絡(luò)的感受野比較小。VGGNet[11]簡化了網(wǎng)絡(luò)設(shè)計的工作流程,增加了網(wǎng)絡(luò)深度,通過疊加小卷積核取代大卷積核,在保持感受野不變的情況下,減少了參數(shù)的數(shù)量。 AlexNet和VGGNet都是直接堆疊的過濾器,這意味著每個特征層都有一個相對固定的接受域。Network In Network[12]使用全局平均池化(global average pooling)層代替部分全連接層以減少參數(shù)量和運(yùn)算量,并使用1×1卷積層學(xué)習(xí)特征圖通道的非線性組合。GoogLeNet[13]將不同大小的卷積核串聯(lián)提取圖像特征來增強(qiáng)多尺度檢測能力。但是,其大量的參數(shù)限制了網(wǎng)絡(luò)的計算能力。ResNet[14]在神經(jīng)網(wǎng)絡(luò)中引入了短連接,從而緩解了梯度消失問題,同時獲得了更深層次的網(wǎng)絡(luò)結(jié)構(gòu),使得網(wǎng)絡(luò)能夠獲得更深層次的特征。許多后續(xù)的特征提取網(wǎng)絡(luò)都受到了ResNet的啟發(fā),如ResNeXt[15]通過控制組卷積組的數(shù)量,可以使模型的參數(shù)量減少。
視覺系統(tǒng)傾向于注意圖像中的關(guān)鍵信息以輔助判斷,而忽略無關(guān)信息,這是注意力機(jī)制期望達(dá)到的目標(biāo)。BAM[16]使用空間特征提取模塊和通道特征提取模塊獲取空間注意力和通道注意力。PAN[17]引入了用于語義分割的像素級注意力,主要由特征金字塔注意力和全局注意力上采樣模塊組成。用于構(gòu)建金字塔,獲取全局底層特征信息。SENet[18]構(gòu)造SE(squeeze-and-excitation)塊向不同的通道分配不同的權(quán)值。GCNet[19]的貢獻(xiàn)在于將非局域化與SE塊相結(jié)合,減少了參數(shù)量與計算時間。
預(yù)測框的回歸是交通標(biāo)志定位問題的關(guān)鍵步驟。交并比(intersection-over-union,IoU)可以比較任意兩個圖形之間的重疊程度來確定相似度,定義如下
(1)
式中A為真實(shí)框,B為預(yù)測框。IoU具有尺度不變性,這意味著圖形的相似性不受尺度變換的影響;還具有非負(fù)性,對稱性,三角不等式等優(yōu)良特性。
邊界框損失函數(shù)一般采用IoU損失函數(shù)[20],定義如下
(2)
IoU損失直接通過計算梯度進(jìn)行回歸。缺點(diǎn)是當(dāng)兩個方框沒有交集時,IoU等于0,非常近的無交集框的輸出與非常遠(yuǎn)的無交集框的輸出相同,因此梯度方向丟失,不能進(jìn)行優(yōu)化。
GIoU[21]損失函數(shù)在IoU損失的基礎(chǔ)上增加了懲罰項。C為預(yù)測框B和真實(shí)框Bgt的最小包圍框。當(dāng)兩個框的距離越大,懲罰項越大。
(3)
雖然GIoU解決了IoU的距離問題,但由于其嚴(yán)重依賴IoU損失函數(shù),存在不穩(wěn)定、收斂速度慢等缺點(diǎn)。DIoU(distance-IoU)損失函數(shù)在IoU損失的基礎(chǔ)上增加了懲罰項,用來最小化兩個邊界框中心點(diǎn)之間的距離。DIoU由于同時考慮到了重疊面積和中心點(diǎn)距離,能夠用來計算NMS。基于兩個框的重疊面積、中心點(diǎn)距離和長寬比三個因素,后續(xù)提出的CIoU(complete IoU)[22]損失方法能夠使算法收斂速度更快,檢測效果更好。
YOLOF(you only look one-level feature)[23]從尋求特征金字塔網(wǎng)絡(luò)(feature pyramid networks,FPN)優(yōu)化問題的替代方案入手,只使用單層特征圖就可以獲得和有特征金字塔版本相當(dāng)?shù)木?同時檢測速度提高2.5倍,它使用Dilated Encoder 模塊代替FPN并解決了正樣本錨框分布不均勻問題。Dilated Encoder模塊輸入的是主干網(wǎng)絡(luò)獲取的特征,如圖1所示先利用兩種卷積核(1×1和3×3)將特征通道數(shù)減少到512,再通過4個連續(xù)的殘差單元提取特征。在每個殘差單元中,先利用1×1卷積降低特征圖維度,減少計算量,再使用空洞卷積(3×3)來增大感受野,最后通過1×1大小的卷積恢復(fù)處理后的特征圖的通道數(shù)。在4個殘差單元中,空洞卷積的膨脹系數(shù)為2,4,6,8。

圖1 Dilated Encoder組件
解碼器部分與RetinaNet[24]中的設(shè)置類似,主要的區(qū)別為:回歸分支與分類分支的層數(shù)不同,回歸分支中包含4個卷積操作,1個BN層與一個ReLU層,在分類分支中包含2個卷積操作,1個BN層與一個ReLU層;回歸分支中的每個預(yù)先設(shè)定的錨框都有一個可學(xué)習(xí)參數(shù)標(biāo)簽,最終的分類得分由分類分支的輸出乘以標(biāo)簽得到。
多尺度目標(biāo)檢測識別是計算機(jī)視覺和自動駕駛感知領(lǐng)域面臨的難題。特征金字塔網(wǎng)絡(luò)的引入解決了目標(biāo)檢測在處理多尺度變化問題時的不足,卻帶來了計算量增大,檢測速度下降,內(nèi)存消耗過大等問題。YOLOF只采用一級特征進(jìn)行檢測,在保持精度與FPN版本相當(dāng)?shù)那疤嵯?大幅度提高檢測速度。本文提出基于改進(jìn)單級特征圖方法的交通標(biāo)志檢測算法如圖2所示,主干網(wǎng)絡(luò)使用ResNeXt101提取圖片特征,并嵌入Coordinate注意力機(jī)制[25]增加模型對交通標(biāo)志牌的關(guān)注,使用CIoU Loss改進(jìn)模型的損失函數(shù),在訓(xùn)練階段使用數(shù)據(jù)增廣,模擬真實(shí)環(huán)境,增加模型在復(fù)雜環(huán)境下檢測的魯棒性。

圖2 改進(jìn)的YOLOF網(wǎng)絡(luò)結(jié)構(gòu)
本文使用ResNeXt特征提取網(wǎng)絡(luò)取代Resnet,它是Resnet和Inception的結(jié)合體如圖3所示,每一個分支都采用相同的拓?fù)浣Y(jié)構(gòu)。ResNeXt的本質(zhì)是分組卷積,通過變量基數(shù)來控制組的數(shù)量,從而達(dá)到減少參數(shù)量和運(yùn)算量的目的。

圖3 ResNeXt基本結(jié)構(gòu)
本文提出的改進(jìn)單級特征方法使用CIoU損失函數(shù)進(jìn)行邊界框回歸。能夠解決預(yù)測框和真實(shí)框不重疊的部分不能直接優(yōu)化的問題;將兩個框之間的距離、重疊率、尺度和懲罰項都被考慮在內(nèi),使目標(biāo)框回歸更加穩(wěn)定。這可以避免訓(xùn)練過程中IoU損失函數(shù)的發(fā)散問題的發(fā)生。CIoU是在DIoU的基礎(chǔ)上增加了兩個因子α和v,將預(yù)測框和目標(biāo)框的長寬比考慮在內(nèi)。
CIoU 損失函數(shù)可以定義為
(4)
式中α為權(quán)衡的參數(shù),v用來衡量長寬比一致性,ρ(·)為真實(shí)框與預(yù)測框中心點(diǎn)的距離,這里的ρ(·)為歐氏距離,最小真實(shí)框與預(yù)測框的矩形對角線長度為c。
本文所提出的方法使用的是Coordinate注意力機(jī)制,它使用兩個一維全局池化操作將垂直和水平方向的輸入特征聚合成兩個獨(dú)立方向的感知特征圖。再將融入方向信息的特征圖編碼成注意力圖,獲取的注意力圖能夠獲取到輸入特征圖沿空間方向的長距離依賴關(guān)系。位置信息可以保存在生成的注意力圖中,通過乘法將兩個注意力圖應(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ù)和檢測框損失函數(shù)的基礎(chǔ)上添加了IoU損失函數(shù)。模型的損失函數(shù)分為:分類損失,回歸損失和IoU損失三部分。
Lcls為分類損失函數(shù),用來區(qū)分圖像中存在的各個類別和背景
(5)

Lloc為檢測框回歸函數(shù),主要用來修正前景的錨點(diǎn)坐標(biāo),從而得到最佳的檢測框
(6)

最終的損失函數(shù)為
L=λcls·Lcls+λloc·Lloc+λciou·Lciou
(7)
式中Lcls為分類損失,Lloc為回歸損失,Lciou為IoU損失,λcls,λloc和λciou分別為各部分的調(diào)節(jié)因子。
本文使用的數(shù)據(jù)增廣方法用來模擬自動駕駛的復(fù)雜環(huán)境,使檢測模型更加穩(wěn)定。使用的數(shù)據(jù)增廣方法共有12種,如圖5所示,從天氣因素方面添加如模擬霧天、雪天、雨天等環(huán)境效果進(jìn)行數(shù)據(jù)增廣;從光照因素方面如對輸入圖片的亮度和對比度進(jìn)行調(diào)整,模擬不同光照強(qiáng)度下的交通標(biāo)志牌;自動駕駛環(huán)境中可能會出現(xiàn)不可預(yù)知的因素干擾,增加抖動、模糊、通道丟失、灰度化和部分信息丟失等干擾因素進(jìn)行增廣,提高模型在真實(shí)環(huán)境下的檢測精度與穩(wěn)定性。

圖5 數(shù)據(jù)增廣效果
本文實(shí)驗中使用的是BCTSDB(Beijing Union University Chinese Traffic Sign Detection Benchmark)數(shù)據(jù)集。該數(shù)據(jù)集包括15 690張圖片和25 243個標(biāo)注。圖6顯示了BCTSDB數(shù)據(jù)集的示例圖片。分類為禁止、強(qiáng)制、警告等。數(shù)據(jù)采集于中國的15個城市,涉及城市街道、高速公路和高架橋等多個應(yīng)用場景。本文將 BCTSDB數(shù)據(jù)集中隨機(jī)抽取14 591張圖像為訓(xùn)練集和余下的1 099張圖像為測試集。

圖6 BCTSDB數(shù)據(jù)集
實(shí)驗硬件環(huán)境包含兩個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個周期停止使用數(shù)據(jù)增廣,以便更好擬合數(shù)據(jù)集分布。其他超參數(shù)保持與YOLOF相同的設(shè)置。
本文先對所提出的注意力機(jī)制中不同的方向的方法和通道注意力方法進(jìn)行了實(shí)驗對比,證明了對于交通標(biāo)志檢測任務(wù),同時使用X與Y方向的注意力機(jī)制更有利于提升算法的效果。在實(shí)驗時,分別將SENet注意力機(jī)制,X方向注意力機(jī)制、Y方向注意力機(jī)制,和Coordinate注意力機(jī)制這4種方法用于YOLOF網(wǎng)絡(luò)之中,并且采用相同的訓(xùn)練和測試方法,與無注意力機(jī)制的YOLOF進(jìn)行對比,得到在BCTSDB數(shù)據(jù)集上檢測結(jié)果,如表1所示。

表1 不同注意力機(jī)制精度對比 %
從上表1可以看出,在融入注意力機(jī)制后,檢測模型能夠在檢測目標(biāo)時更關(guān)注目標(biāo)自身,檢測精度會提高,其中同時使用X與Y方向的注意力機(jī)制取得了最好的效果,模型AP50由90.9 %提升至92.3 %,AP75值由72.2 %提升至73.5 %。因此,本文選擇對檢測特征的X與Y方向同時進(jìn)行特征編碼,生成具有全局感受野并擁有精確位置信息的注意力圖,減少網(wǎng)絡(luò)的漏檢和誤檢情況的發(fā)生。
本文分別將YOLOF與本文所提方法的特征層通過熱圖的形式進(jìn)行可視化對比。添加注意力機(jī)制后的效果如圖7所示。YOLOF網(wǎng)絡(luò)的輸出特征如圖7(b)所示,除了在目標(biāo)區(qū)域有較高的激活外,其他區(qū)域的特征分布雜亂,而且個別區(qū)域含有較高的激活,很容易產(chǎn)生誤檢;本文所提方法的輸出特征如圖7(c)所示,明顯地只在目標(biāo)區(qū)域有較高的激活,其他區(qū)域的干擾特征能夠得到很好的抑制,且目標(biāo)區(qū)域的激活值相對YOLOF更高,可以說明,注意力機(jī)制能夠?qū)τ行卣髌鸬皆鰪?qiáng)和改善的作用。

圖7 注意力機(jī)制可視化效果
由此可見,本文使用融入注意力機(jī)制的方法能夠讓網(wǎng)絡(luò)更加關(guān)注有效區(qū)域信息的同時屏蔽其他復(fù)雜背景下的干擾信息,有效緩解漏檢誤檢問題的發(fā)生。
本文將不同的模型的運(yùn)算量與精度進(jìn)行對比試驗,如圖8所示,四個模型分別為RetinaNet,無特征金字塔的RetinaNet,YOLOF,以及本文提出的改進(jìn)方法,C表示模型的編碼器與解碼器所使用的通道數(shù),精度指標(biāo)用模型在BCTSDB上AP50表示,GFLOPs表示模型的運(yùn)算量,速度指標(biāo)使用FPS表示,前三種模型使用ResNet—50作為主干網(wǎng)絡(luò)。結(jié)果表明,本文所提方法在增加少量運(yùn)算的前提下,大幅提高檢測了精度,并且可以滿足自動駕駛實(shí)時性的需求。

圖8 不同模型運(yùn)算量與精度對比
本文對所提出的數(shù)據(jù)增廣、注意力機(jī)制和CIoU損失函數(shù)的改進(jìn)方法進(jìn)行有效性驗證。表2中消融實(shí)驗的結(jié)果證明了本文所提方法對檢測結(jié)果能夠起到正面效果。

表2 改進(jìn)YOLOF方法的消融實(shí)驗 %
由表2可以看出添加數(shù)據(jù)增廣后,模型AP50由95.4 %到96.1 %,添加注意力機(jī)制后,模型準(zhǔn)確率AP50達(dá)到97.3 %,添加CIoU損失函數(shù)后,模型準(zhǔn)確率AP50最終達(dá)到97.8 %。從這些實(shí)驗結(jié)果可以得出,本文提出的方法能夠提高網(wǎng)絡(luò)的檢測精度,避免出現(xiàn)漏檢和誤檢情況。
為了驗證本文所提方法的檢測效果,在測試集上運(yùn)行的檢測效果如圖9所示。圖的上半部分是原始輸入圖像,下半部分是檢測后結(jié)果,可以清楚地看出,本文改進(jìn)的方法可以有效地檢測交通標(biāo)志牌。

圖9 在BCTSDB上的檢測效果
本文將改進(jìn)方法與YOLOF,RetinaNet算法在準(zhǔn)確率與召回率角度進(jìn)行對比試驗,繪制P-R曲線。由圖10可以看出,本文所提方法的P-R曲線始終在外圍,這說明本文所提改進(jìn)方法對各個尺度物體的檢測都有不同程度地提高。

圖10 不同算法的P-R曲線
將本文提出的改進(jìn)方法與YOLO v3,RetinaNet,YOLOF算法進(jìn)行對比試驗,并采用不同主干網(wǎng)絡(luò)。由表3可以看出,本文提出方法的檢測精度在AP50和AP75上都有較大程度的提高。實(shí)驗結(jié)果證明了本文的改進(jìn)方法能夠提升檢測精度,同時由于YOLOF具有檢測速度快的特點(diǎn),能夠滿足自動駕駛中交通標(biāo)志牌檢測的需求。

表3 在BCTSDB上不同目標(biāo)檢測算法精度對比 %
本文提出了一種改進(jìn)YOLOF算法的交通標(biāo)志牌檢測網(wǎng)絡(luò),提升交通標(biāo)志牌檢測的準(zhǔn)確率。在 YOLOF 網(wǎng)絡(luò)的檢測分支上融入注意力機(jī)制并利用CIoU改進(jìn)損失函數(shù),提高網(wǎng)絡(luò)對交通標(biāo)志牌目標(biāo)的關(guān)注度,在訓(xùn)練階段使用數(shù)據(jù)增廣,模擬自動駕駛場景中的真實(shí)環(huán)境,提高檢測模型的魯棒性。通過消融實(shí)驗,驗證了所提出的改進(jìn)方法的有效性。通過BCTSDB上與YOLOF,RetinaNet和YOLO v3的對比,表明了本文的方法擁有高精度的交通標(biāo)志牌檢測能力,能夠滿足智能駕駛的需求。