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