李 哲, 張慧慧, 鄧軍勇
(西安郵電大學(xué) 電子工程學(xué)院, 陜西 西安 710121)
近年來(lái),隨著全球汽車數(shù)量的逐漸增加,高級(jí)輔助駕駛系統(tǒng)(Advanced Driver Assistance System,ADAS)迎來(lái)了新的發(fā)展機(jī)遇。道路交通標(biāo)志檢測(cè)與識(shí)別[1]作為ADAS的關(guān)鍵技術(shù),可以指導(dǎo)輔助駕駛員做出相應(yīng)駕駛決策,減少交通事故的發(fā)生。因此,真實(shí)路況下及時(shí)并準(zhǔn)確地檢測(cè)出交通標(biāo)志,對(duì)輔助駕駛、無(wú)人駕駛具有重要的現(xiàn)實(shí)意義。
傳統(tǒng)的交通標(biāo)志檢測(cè)方法主要有RGB[2]、HSV[3]顏色空間、形狀特征匹配法[4]、Hough變換法[5]等,都能夠取得較好的檢測(cè)結(jié)果。但這些方法極易受到標(biāo)志破損、圖像傾斜扭曲、光照變化等因素的干擾,造成錯(cuò)誤檢測(cè)。另外,陳龍等人[6]首先提取交通標(biāo)志的局部二值化(LBP)和梯度方向直方圖(HOG)特征,然后使用支持向量機(jī)SVM[7]、AdaBoost[8]等特定的分類算法實(shí)現(xiàn)交通標(biāo)志的分類檢測(cè)。雖然這種方法魯棒性較強(qiáng),但泛化能力薄弱,檢測(cè)時(shí)間長(zhǎng),無(wú)法滿足實(shí)時(shí)性的要求。近年來(lái),基于深度學(xué)習(xí)[9]的交通標(biāo)志檢測(cè)算法[10]以其優(yōu)異的性能逐漸取代了傳統(tǒng)的多類別目標(biāo)檢測(cè)方法。Girshick等人首先提出了一種基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)R-CNN[11]。隨后,又提出了Fast R-CNN[12]和Faster R-CNN[13]算法。Faster R-CNN采用區(qū)域建議網(wǎng)絡(luò)(RPN)結(jié)構(gòu)替代選擇性搜索獲取目標(biāo)候選區(qū)域[14],然后送入Fast R-CNN網(wǎng)絡(luò)識(shí)別目標(biāo)類別,在檢測(cè)速度和精度上都有明顯提升。此外,王超等人[15]提出基于You Only Look Once(YOLO)的交通標(biāo)志檢測(cè)算法,將特征圖等分為n×n個(gè)網(wǎng)格,然后預(yù)測(cè)每個(gè)網(wǎng)格區(qū)域內(nèi)的目標(biāo)。宋青松等人[16]運(yùn)用一種聚類殘差Single Shot multiBox Detector(SSD)算法實(shí)現(xiàn)交通標(biāo)志檢測(cè),在提取多個(gè)候選窗口的基礎(chǔ)上,增加了K均值聚類的思想。這兩種單階段目標(biāo)檢測(cè)方法雖然在檢測(cè)速度上有所突破,但在檢測(cè)精度上并不優(yōu)于Faster R-CNN。尤其是對(duì)于復(fù)雜場(chǎng)景下的小目標(biāo)檢測(cè)問(wèn)題,仍然存在較大的缺失和錯(cuò)誤檢測(cè)。
本文綜合考慮交通標(biāo)志小目標(biāo)的敏感性和檢測(cè)速度,選取Faster R-CNN為基本檢測(cè)模型并加以改進(jìn),實(shí)現(xiàn)自然場(chǎng)景道路下交通標(biāo)志的精準(zhǔn)檢測(cè)。將原始Faster R-CNN模型中的基礎(chǔ)網(wǎng)絡(luò)替換為深度殘差網(wǎng)絡(luò)ResNet50[17]來(lái)提取交通標(biāo)志的特征;設(shè)計(jì)了多尺度區(qū)域建議網(wǎng)絡(luò)(Multi Scale Region Proposal Network,MS-RPN)結(jié)構(gòu)生成目標(biāo)建議區(qū)域;并在殘差單元中嵌入輕量級(jí)注意力機(jī)制模塊[18](Convolutional Block Attention Module,CBAM),在不顯著增加參數(shù)量和計(jì)算量的同時(shí),大幅提升了交通標(biāo)志的檢測(cè)效果。
由于自然交通場(chǎng)景圖像中,交通標(biāo)志目標(biāo)尺寸差異較大,導(dǎo)致原始Faster R-CNN檢測(cè)算法效果不佳,產(chǎn)生漏檢和誤檢的現(xiàn)象。改進(jìn)后的Faster R-CNN檢測(cè)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。采用50層深度殘差網(wǎng)絡(luò)作為交通標(biāo)志圖像的特征提取器,雖然加深了網(wǎng)絡(luò)的深度,但是算法復(fù)雜度較低,且更大程度地提取和保留了圖像中的細(xì)小特征。另外,殘差網(wǎng)絡(luò)采用“shortcut”的連接方式構(gòu)建了一個(gè)恒等映射,有效地避免了模型出現(xiàn)過(guò)擬合和梯度消失的問(wèn)題。CBAM模塊嵌入在對(duì)檢測(cè)結(jié)果影響較大的卷積層組ResNet_2、ResNet_3和ResNet_4后。分別在網(wǎng)絡(luò)的第3個(gè)卷積層組ResNet_3和第4個(gè)卷積層組ResNet_4后接入MS-RPN結(jié)構(gòu),生成不同尺寸交通標(biāo)志目標(biāo)的初始建議區(qū)域。隨后經(jīng)過(guò)興趣區(qū)域池化網(wǎng)絡(luò)(ROI Pooling)層將特征圖分塊池化為固定尺寸大小,并送入到第5個(gè)卷積組ResNet_5作為目標(biāo)檢測(cè)的全連接層,最終判別出目標(biāo)建議區(qū)域?qū)儆诮煌?biāo)志還是背景。
圖1 改進(jìn)后的Faster R-CNN網(wǎng)絡(luò)結(jié)構(gòu)圖Fig.1 Improved Faster R-CNN network structure
全景道路圖像中包含多個(gè)不同尺度的交通標(biāo)志目標(biāo),原始RPN僅在特征圖的最后一個(gè)卷積層上,用3×3大小的滑動(dòng)窗口進(jìn)行卷積操作獲得目標(biāo)初始建議區(qū)域。如果直接使用該算法,會(huì)限制模型的感受野,丟失許多小目標(biāo)特征,從而導(dǎo)致算法性能下降。文獻(xiàn)[19]提出了一種多尺度深度卷積神經(jīng)網(wǎng)絡(luò)(Multi Scale Deep Convolutional Neural Network,MS-CNN)用于快速檢測(cè)多尺度目標(biāo)。該方法包括目標(biāo)建議網(wǎng)絡(luò)和精確檢測(cè)網(wǎng)絡(luò)兩個(gè)子網(wǎng)絡(luò)。在目標(biāo)建議子網(wǎng)絡(luò)中,分別用卷積層conv3、conv5來(lái)檢測(cè)小目標(biāo)物體和大目標(biāo)物體,實(shí)現(xiàn)了很高的檢測(cè)率。與該文獻(xiàn)方法思路類似,本文設(shè)計(jì)的MS-RPN結(jié)構(gòu)如圖2所示。
圖2 MS-RPN結(jié)構(gòu)圖Fig.2 Structure diagram of MS-RPN
對(duì)于不同尺度的交通標(biāo)志目標(biāo),采用在ResNet_3和ResNet_4兩個(gè)卷積組的最后一層上設(shè)置多個(gè)滑動(dòng)窗口的策略生成目標(biāo)建議區(qū)域。在ResNet_3d上添加大小分別為1×1、3×3和 5×5的滑動(dòng)窗口,并作為特征映射圖用于檢測(cè)中小尺寸的交通標(biāo)志。在ResNet_4f上添加大小為5×5、7×7、9×9的滑動(dòng)窗口,并作為特征映射圖用于提取中大尺度的標(biāo)志目標(biāo)。
自然道路場(chǎng)景中,交通標(biāo)志與樹(shù)木、電線桿、廣告牌等諸多復(fù)雜背景內(nèi)容疊加在一起,導(dǎo)致算法檢測(cè)精確率不高。為了提升模型對(duì)交通標(biāo)志目標(biāo)與其他背景內(nèi)容的區(qū)分能力,在殘差網(wǎng)絡(luò)的基礎(chǔ)上,引入了CBAM模塊。CBAM模塊可根據(jù)特征圖內(nèi)不同區(qū)域?qū)Σ煌繕?biāo)的貢獻(xiàn)率不同,舍棄對(duì)關(guān)鍵目標(biāo)貢獻(xiàn)率低的特征,保留關(guān)鍵目標(biāo)的重要特征信息。結(jié)合殘差結(jié)構(gòu)的CBAM結(jié)構(gòu)如圖3所示。
圖3 結(jié)合殘差結(jié)構(gòu)的CBAM結(jié)構(gòu)圖Fig.3 Structure diagram of CBAM combined with residual structure
CBAM模塊加在卷積塊后,由通道注意力機(jī)制(Channel Attention,CA)和空間注意力機(jī)制(Spatial Attention,SA)兩個(gè)模塊級(jí)聯(lián)構(gòu)成。給定一個(gè)中間特征輸入圖F∈RH×W×D(H、W、D分別表示特征圖的高度、寬度和通道數(shù)),依次經(jīng)過(guò)通道注意力模塊和空間注意力模塊,生成一維通道注意力圖譜MC∈R1×1×D和二維空間注意力圖譜MS∈RH×W×1,得到最后的輸出。具體操作可用公式表示為
F′=(MC(F)+1)?F
(1)
F″=(MS(F′)+1)?F′
(2)
式中:?是逐像素相乘運(yùn)算符,F(xiàn)′和F″分別代表經(jīng)過(guò)通道注意力優(yōu)化和空間注意力優(yōu)化后的特征圖。每個(gè)注意力圖乘以輸入特征圖之前均有加1操作,是為了避免網(wǎng)絡(luò)模型因加入注意力模塊而導(dǎo)致特征提取性能下降的問(wèn)題。注意力機(jī)制模塊能夠快速地從大量特征信息圖中篩選定位出高價(jià)值的目標(biāo)信息,可有效改善交通標(biāo)志誤檢和漏檢現(xiàn)象。
2.3.1 通道注意力子模塊
中間特征圖的每一個(gè)通道都可以被視為特征檢測(cè)器,且不同的通道特征對(duì)目標(biāo)關(guān)鍵信息的貢獻(xiàn)率不同[20]。而通道注意力模塊能夠通過(guò)給特征圖賦權(quán)的方式篩選出貢獻(xiàn)率大的卷積通道,舍棄無(wú)效卷積通道,如圖4所示。
圖4 通道注意力結(jié)構(gòu)圖Fig.4 Structure diagram of channel attention
(3)
式中:σ表示Sigmoid 激活函數(shù),W0和W1是MLP的權(quán)重參數(shù),在W0后使用了Relu非線性激活函數(shù)。
2.3.2 空間注意力子模塊
相比于通道注意力,空間注意力模塊的作用是篩選出所有位置特征中對(duì)關(guān)鍵目標(biāo)貢獻(xiàn)率大的空間特征信息。例如對(duì)于擺放在廣告牌旁邊的交通標(biāo)志,交通標(biāo)志是主要目標(biāo)對(duì)象,廣告牌是其他背景信息??臻g注意力機(jī)制能夠有效關(guān)注到交通標(biāo)志的位置信息而抑制廣告牌信息,從而提高檢測(cè)精度。
圖5 空間注意力結(jié)構(gòu)圖Fig.5 Structure diagram of spatial attention
(4)
式中:σ表示Sigmoid 激活函數(shù),f7×7表示卷積核大小為7×7的卷積層。
實(shí)驗(yàn)所使用的計(jì)算機(jī)硬件配置為NVIDIA GTX 1080TI GPU。軟件環(huán)境為Ubuntu16.04操作系統(tǒng)、Caffe深度學(xué)習(xí)框架和Python編程環(huán)境。整個(gè)網(wǎng)絡(luò)的訓(xùn)練損失函數(shù)繼續(xù)沿用原Faster R-CNN中的分類損失和回歸損失函數(shù)公式。網(wǎng)絡(luò)訓(xùn)練的初始學(xué)習(xí)率設(shè)為0.001,動(dòng)量(Momentum) 和權(quán)重衰減系數(shù)(Weight decay)分別設(shè)為0.9和0.000 5,用隨機(jī)梯度下降(SGD)算法優(yōu)化進(jìn)行端到端的訓(xùn)練。
選取公開(kāi)的中國(guó)交通標(biāo)志檢測(cè)數(shù)據(jù)集TSDD[21]作為網(wǎng)絡(luò)改進(jìn)前后對(duì)比實(shí)驗(yàn)的基準(zhǔn)數(shù)據(jù)集。該數(shù)據(jù)集來(lái)自北京交通大學(xué)重點(diǎn)實(shí)驗(yàn)室,由10 000張自然交通場(chǎng)景圖像組成,每張圖像的尺寸在640pixel×420pixel到3 096pixel×4 128pixel之間,圖中每個(gè)交通標(biāo)志的尺寸在16pixel×18pixel到188pixel×192pixel之間。它們是在不同的地區(qū)、時(shí)間、天氣光照以及運(yùn)動(dòng)模糊條件下拍攝所的,更符合我國(guó)實(shí)際交通任務(wù)的需要,部分樣本如圖6所示。實(shí)驗(yàn)選取其中4 600張作為訓(xùn)練樣本、2 000張作為測(cè)試樣本,并把交通標(biāo)志按照指示標(biāo)志(Direction)、警告標(biāo)志(Caution)、禁止標(biāo)志(Prohibition)分為3大類別。
圖6 數(shù)據(jù)集樣本圖Fig.6 Sample dataset
實(shí)驗(yàn)采用的模型評(píng)價(jià)指標(biāo)mAP為3類交通標(biāo)志的平均精度(Average Precision,AP)均值。平均精度是精確率(Precision,P)和召回率(Recall,R)所構(gòu)成的P-R曲線與橫縱坐標(biāo)軸所圍成的面積,積分表達(dá)式為:
(5)
精確率P為檢測(cè)出的所有交通標(biāo)志中,檢測(cè)正確的正樣本(交通標(biāo)志)所占的比例,表達(dá)式為:
(6)
召回率R為樣本中的所有交通標(biāo)志中,檢測(cè)正確的正樣本所占的比例,表達(dá)式為:
(7)
式中:XTP表示交通標(biāo)志被檢測(cè)為正樣本,XFP表示負(fù)樣本(背景)被檢測(cè)為正樣本,XFN表示交通標(biāo)志被檢測(cè)為負(fù)樣本。網(wǎng)絡(luò)檢測(cè)速率的評(píng)價(jià)指標(biāo)為檢測(cè)每幅圖像所需的時(shí)間。當(dāng)檢測(cè)到的交通標(biāo)志邊框與真實(shí)邊框的IOU(交并比)閾值大于0.7時(shí),將檢測(cè)結(jié)果記為正樣本;當(dāng)檢測(cè)到的交通標(biāo)志邊框與真實(shí)邊框的IOU閾值小于0.3時(shí),將檢測(cè)結(jié)果記為負(fù)樣本。
算法改進(jìn)前后所得的P-R曲線結(jié)果如圖7所示??梢钥闯?改進(jìn)后的算法曲線下所包圍的面積大于原Faster R-CNN算法曲線下所包圍的面積。即改進(jìn)后的模型檢測(cè)精確率高于原Faster R-CNN方法。分別對(duì)MS-RPN結(jié)構(gòu)和CBAM模塊在3類交通標(biāo)志上進(jìn)行實(shí)驗(yàn),檢測(cè)性能結(jié)果對(duì)比如表1所示。
圖7 算法改進(jìn)前后的P-R曲線對(duì)比圖Fig.7 P-R curve comparison before and after algorithm improvement
由表1可知,與原始Faster R-CNN相比,采用深度殘差ResNet50作為交通標(biāo)志的基本檢測(cè)網(wǎng)絡(luò)和MS-RPN結(jié)構(gòu)的設(shè)置,平均檢測(cè)精度提升了3.82%。由此可知,加深網(wǎng)絡(luò)的深度,在不同層級(jí)上設(shè)置不同大小的滑動(dòng)窗口獲得了更精準(zhǔn)的候選區(qū)域,能夠提升網(wǎng)絡(luò)對(duì)不同尺寸交通標(biāo)志目標(biāo)的檢測(cè)能力,且檢測(cè)每幅圖像所需的時(shí)間減少了0.014 s。CBAM模塊的引入優(yōu)化了網(wǎng)絡(luò)模型,促進(jìn)了特征圖之間的信息流動(dòng),在沒(méi)有額外增加檢測(cè)時(shí)間的基礎(chǔ)上,平均檢測(cè)精度提升了2.34%。
表1 檢測(cè)性能結(jié)果對(duì)比表Tab.1 Comparison of test performance results
為了驗(yàn)證改進(jìn)算法的先進(jìn)性,選取3張具有代表性的測(cè)試集圖片進(jìn)行交通標(biāo)志檢測(cè)。檢測(cè)結(jié)果如圖8所示。由圖8(a)、(b)、(c)可知,當(dāng)交通標(biāo)志目標(biāo)較小時(shí),原Faster R-CNN算法存在嚴(yán)重的漏檢現(xiàn)象,而改進(jìn)后的方法可以精確地檢測(cè)出小目標(biāo)交通標(biāo)志。由圖8(d)、(e)、(f)可以看出,原Faster R-CNN方法沒(méi)有把存在遮擋情況的交通標(biāo)志正確檢測(cè)出來(lái),而改進(jìn)后的Faster R-CNN方法可以精確檢測(cè)出存在遮擋現(xiàn)象的交通標(biāo)志目標(biāo)。由圖8(g)、(h)、(i)可知,面對(duì)夜晚光線較暗的情況,原Faster R-CNN方法、本文方法均能檢測(cè)到交通標(biāo)志,但原Faster R-CNN方法的檢測(cè)精確率為91.6%,且誤把車牌檢測(cè)為交通標(biāo)志,而本文改進(jìn)后的方法檢測(cè)精確率為99.5%。
圖8 部分樣本檢測(cè)結(jié)果對(duì)比圖Fig.8 Comparison of test results of some samples
除了驗(yàn)證網(wǎng)絡(luò)結(jié)構(gòu)細(xì)節(jié)上的提升,本文也與其他方法開(kāi)展橫向?qū)嶒?yàn)對(duì)比,如LBP+SVM方法,SSD模型和YOLOv3模型,實(shí)驗(yàn)結(jié)果如表2所示。根據(jù)表2,首先提取交通標(biāo)志的LBP特征,然后使用SVM實(shí)現(xiàn)交通標(biāo)志分類檢測(cè)方法的平均檢測(cè)精度為88.67%,檢測(cè)每幅圖像的時(shí)間為0.13 s,遠(yuǎn)遠(yuǎn)慢于其他方法。對(duì)于單階段檢測(cè)網(wǎng)絡(luò)模型SSD和YOLOv3,由于采用默認(rèn)窗口機(jī)制,不依賴于候選區(qū)域,所以檢測(cè)速度較快,但檢測(cè)精度仍然低于本文方法。本文方法在測(cè)試集上的平均檢測(cè)精度為98.52%,檢測(cè)速度為0.042 s/幅,依然達(dá)到實(shí)時(shí)檢測(cè)的范圍。所以,本文提出的基于改進(jìn)Faster R-CNN的網(wǎng)絡(luò)方法在交通標(biāo)志檢測(cè)任務(wù)上是可行可靠的。各種方法的檢測(cè)結(jié)果如圖9所示。
表2 各實(shí)驗(yàn)方法檢測(cè)結(jié)果對(duì)比表Tab.2 Comparison table of test results of each experimental method
圖9 各方法檢測(cè)結(jié)果圖Fig.9 Test result diagram of each method
針對(duì)復(fù)雜背景條件下的中國(guó)交通場(chǎng)景圖像,本文改進(jìn)了原Faster R-CNN目標(biāo)檢測(cè)算法。使用結(jié)合注意力機(jī)制的殘差ResNet50作為交通標(biāo)志的特征提取器,提升了小目標(biāo)交通標(biāo)志的特征表征能力。另外,設(shè)計(jì)了在兩個(gè)不同層級(jí)上采用合理尺度滑動(dòng)窗口的策略,獲取了不同尺度目標(biāo)的精準(zhǔn)候選區(qū)域,改善了多尺度交通標(biāo)志的檢測(cè)能力。通過(guò)實(shí)驗(yàn)證明,本文改進(jìn)后的方法使得Faster R-CNN檢測(cè)網(wǎng)絡(luò)對(duì)交通標(biāo)志的檢測(cè)性能有了明顯的提升,平均檢測(cè)精確率由92.36%提高到了98.52%。能夠較好地適應(yīng)真實(shí)道路環(huán)境下的交通標(biāo)志目標(biāo)檢測(cè)任務(wù)。