姚兆驍 鄭堯成 陳 洋
(上海工程技術(shù)大學(xué) 上海 201620)
交通標(biāo)志本質(zhì)是提供有用信息的視覺語言[1]。在智能交通系統(tǒng)(ITS)中,交通標(biāo)志識別是先進(jìn)駕駛員輔助系統(tǒng)(ADAS)的重要組成部分,它提供駕駛員警告和指導(dǎo)信息,它是無人駕駛車輛中最重要的領(lǐng)域之一,保持車輛的有序和安全。交通標(biāo)志識別系統(tǒng)分為交通標(biāo)志檢測和交通標(biāo)志識別。檢測階段是定位興趣區(qū)域,分類階段是識別候選者或拒絕候選者。
檢測階段,傳統(tǒng)的檢測方法包括顏色分割、形狀匹配。這些方法簡單直接,但對光照、遮擋等因素較為敏感。相比較單一地使用交通標(biāo)志較為淺層次的顏色或形狀特性,也有不少學(xué)者將兩種方法進(jìn)行結(jié)合[2]。但這些傳統(tǒng)結(jié)合的檢測方法極其耗時且不變性差,同樣無法滿足本文研究對象檢測相關(guān)指標(biāo)。
目前,最常用的方法是利用機器學(xué)習(xí)進(jìn)行檢測。尤其,具有優(yōu)秀的自適應(yīng)學(xué)習(xí)能力卷積神經(jīng)網(wǎng)絡(luò)在交通標(biāo)志檢測領(lǐng)域大顯身手[3~4],并解決了人工定義特征的缺陷[5]。2014年,Girshic等最早將R-CNN(regions with CNN)引入目標(biāo)檢測領(lǐng)域算法,從而實現(xiàn)目標(biāo)檢測的端對端訓(xùn)練,提升了速度和精度。FPN算法[6]引入特征金字塔,為多尺度檢測帶來福音。YOLO系列算法[7~9]進(jìn)一步簡化檢測問題。SSD算法[10]實時性表現(xiàn)優(yōu)秀,但因其高分辨率特征有損,仍不能夠滿足交通標(biāo)志多尺度檢測要求。
分類識別階段,傳統(tǒng)方法包括手工制作的功能和常規(guī)分類器。通常,設(shè)計合適的手工制作功能具有挑戰(zhàn)性且耗時。研究表明,CNN提取的特征更加穩(wěn)健,這在德國交通標(biāo)志識別基準(zhǔn)(GTSRB)[11]上得以證明。Jin J[12]等以整體方式提出了一個三階段CNN模型。Cire?an D[13]等通過平均幾個深CNN模型的輸出來呈現(xiàn)MCDNN。Zeng Y[14~15]等使用CNN提取深層特征和ELM進(jìn)行分類。Razavian A S[16]等使用CNN模型提取的特征,并通過線性SVM在許多數(shù)據(jù)集上實現(xiàn)了良好的性能。以上所有這些都表明CNN比傳統(tǒng)方法表現(xiàn)更好。
然而復(fù)雜自然環(huán)境中多尺度的檢測以及快速準(zhǔn)確的識別依然是交通標(biāo)識避不開的技術(shù)難題。因此,本文提出一種多尺度交通標(biāo)志檢測和快速識別的改進(jìn)方法。首先,提出了一種基于多通道融合的原圖預(yù)處理方式;然后,研究了一種注意力機制與多尺度特征相結(jié)合的交通標(biāo)志檢測算法;最后,構(gòu)建了一個多輔支卷積神經(jīng)網(wǎng)絡(luò),如圖1所示。
圖1 交通標(biāo)志識別流程整體框架圖
多通道融合是在傳統(tǒng)意義圖像通道上的一種衍生,進(jìn)一步挖掘像素值信息與原始邊緣信息,從而大大減少了在復(fù)雜環(huán)境中錯檢現(xiàn)象。
1)第一個通道:YUV顏色空間變換后的128×64Y通道圖像。
2)第二通道:YUV空間的三個通道64×32圖像串聯(lián),并且空白處填零(64×32的全0矩陣組成)獲得。
3)第三個通道:YUV三個通道經(jīng)過Sobel邊緣檢測器計算水平和垂直邊緣的大小形成的邊緣圖為前三個block,前三個邊緣圖中最大值為第四個block,四個大小相等的block組成第三個通道。多通道融合,如圖2所示。
圖2 多通道融合
為解決多尺度,尤其是小尺度交通標(biāo)志的錯檢、漏檢問題,本文在Faster RCNN算法的基礎(chǔ)上提出一種改進(jìn)算法。本論文引入特征金字塔(FPN)算法,使RPN獲得自己相應(yīng)的多個尺度特征并生成目標(biāo)候選區(qū)域,從而獲得目標(biāo)的多尺度特征;同時為提升目標(biāo)特征的判別能力,論文引入候選區(qū)域注意力模塊,通過分析注意力模塊中目標(biāo)鄰域特征提取上下文信息,最后交給分類器進(jìn)行交通標(biāo)志的檢測的就不僅有多尺度特征,兼有上下文信息。其總體結(jié)構(gòu)如圖3所示。
圖3 本文檢測算法的總體結(jié)構(gòu)
3.1.1 特征金字塔FPN(Feature Pyramid Network)
特征金字塔網(wǎng)絡(luò)分為自下而上路徑,前饋計算,逐層增加特征尺度并逐漸分配強語義,直到達(dá)特征金字塔的底部,該路徑特征映射目標(biāo)定位能力強,但語義信息有限。論文中計算步長為2,卷積層5層,并提取得到各自特征圖,特征圖與輸入圖像的尺度比例分別為{4,8,16,32,64}。自上向下的路徑作用為提高分辨率、豐富語義信息,該路徑特征映射目標(biāo)定位能力有限但其具有豐富的語義信息。橫向連接主要起橋梁連接作用,合并自下而上路徑與自上向下的路徑中空間尺度等同的特征映射,從而增強特征表現(xiàn)力。最終融合后的特征圖為{P2,P3,P4,P5,P6},其空間分辨率對應(yīng)之前的{C2,C3,C4,C5,C6}。
3.1.2 基于FPN的RPN網(wǎng)絡(luò)
常規(guī)的RPN由于落后的特征圖感受野,無法滿足實際環(huán)境中多尺度目標(biāo)檢測。為此,論文提出一個基于FPN的RPN網(wǎng)絡(luò)。該網(wǎng)絡(luò)中,金字塔每層的特征圖上都分別增設(shè)一個RPN網(wǎng)絡(luò),這樣RPN的輸入不單單只來自于conv4卷積層,每層的RPN輸入分別來自于對應(yīng)卷積層處理得到特征圖。不同層的RPN將生成不同尺度的錨框,擴大感受野,覆蓋更多檢測目標(biāo)。通過IOU(intersec?tion-over-Union)與設(shè)定的閾值Th比較,分出正負(fù)樣本。錨框由大到小進(jìn)行排序后,非極大抑制運算篩選出一定數(shù)量的候選目標(biāo)。
3.1.3 RoIAlign
常見的RoIPool算法操作會使特征圖與真實圖存在一定單位的像素差。對于大尺寸交通標(biāo)志而言可能實際影響較小,但是對于一些小尺寸交通標(biāo)志,其造成的影響是很大的。論文采用一種改進(jìn)的候選RoI池化算法:RoIAlign,其主要思想就是取消了RoIPool中所采用的量化操作,從而避免RoIPool中量化帶來的損失誤差。
針對交通標(biāo)志檢測時,建筑、樹枝等復(fù)雜背景的遮擋,都會造成很大程度的錯檢、漏檢現(xiàn)象,論文引入了注意力模塊。注意力模塊本質(zhì)上是引進(jìn)一種空間位置軟注意力機制,該機制中的上下文信息可以用于判斷目標(biāo)在圖像中是否出現(xiàn),并且從復(fù)雜背景中區(qū)分出交通標(biāo)志。目標(biāo)和背景區(qū)域的卷積特征,經(jīng)過RoIAlign池化操作后,獲得最終的融合上下文信息的多尺度特征。
卷積神經(jīng)網(wǎng)絡(luò)的全連接層后面通常接的是softmax分類器,softmax分類器是多類線性分類器。所以卷積神經(jīng)網(wǎng)絡(luò)(CNN)可以將原始的圖像空間轉(zhuǎn)移到線性可分離空間。同時,我們發(fā)現(xiàn)有些交通標(biāo)志利用CNN提取低層特征就可以被分離出去,而并不用遍歷整個卷積神經(jīng)網(wǎng)絡(luò)一直到最后才被分離出來。圖4顯示了CNN模型中從不同層提取的特征的分布。我們很容易發(fā)現(xiàn)矩形角形和三角形標(biāo)志在前一層被隔離,而速度限制標(biāo)志在后一層被隔離。符合認(rèn)知,很容易識別形狀(矩形,圓形和三角形),而識別限速標(biāo)志較為困難。
根據(jù)這個發(fā)現(xiàn),我們構(gòu)建了一個多輔支卷積神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)使部分交通標(biāo)志在較淺層即被分離出來,在保持精度情況下,大大加快了交通標(biāo)志的識別速度,如圖5所示。
圖4 CNN不同層特征提取分布圖
圖5 多輔支卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)圖
在卷積神經(jīng)網(wǎng)絡(luò)中通過端到端方式訓(xùn)練soft?max分類器,在此不做過多贅述。
實驗告訴我們提高識別速度并不是簡簡單單在卷積神經(jīng)網(wǎng)絡(luò)的每一層添加輔支。比如,一個很難識別的樣本,需要到很深的層才能識別,如果每一層都添加輔支,那么這個樣本通過前面每一層的輔支將消耗大量時間,這違背我們構(gòu)建這個快速識別網(wǎng)絡(luò)的本意。所以,這要求我們尋求最佳輔支組合策略:
Ci(i=0,1,2,…,n,n+1)表示第i層所添加的輔支。如果Ci=1,則意味著Li層添加輔支,如果Ci=0,則意味著Li層不添加輔支;ti(i=0,1,2,…,n,n+1)表示一個樣本通過Ci輔支平均消耗時間;Si(i=0,1,2,…,n,n+1)表示樣本集通過Ci輔支被分離出來所消耗時間;|S|表示樣本集S中元素的數(shù)量。
這是一個組合優(yōu)化問題,我們很容易通過遺傳算法優(yōu)化該問題。
為簡化網(wǎng)絡(luò),論文采用交替訓(xùn)練方式,共享ResNet卷積特征提取網(wǎng)絡(luò),分兩個階段迭代。
首先,直接選用預(yù)訓(xùn)練模型參數(shù)來初始化兩個網(wǎng)絡(luò)中卷積層的參數(shù),其次,訓(xùn)練候選區(qū)域生成網(wǎng)絡(luò)時,共享卷積層參數(shù)由候選區(qū)域分類網(wǎng)絡(luò)中卷積層的參數(shù)來初始化,并微調(diào)不共享的卷積層以及其他層參數(shù)。訓(xùn)練候選區(qū)域分類網(wǎng)絡(luò)時,固定共享卷積層參數(shù),非共享卷積層的相應(yīng)參數(shù)做微調(diào),至網(wǎng)絡(luò)收斂時,網(wǎng)絡(luò)訓(xùn)練結(jié)束。
論文實現(xiàn)了交通標(biāo)志檢測與識別的端到端訓(xùn)練,所以總損失包含兩部分:檢測階段的損失Lp,識別階段的損失Lc。
第i個錨框預(yù)測為目標(biāo)的概率值為pi,則為真值,預(yù)測邊界框的坐標(biāo)用gi表示,則為坐標(biāo)真值。計算Lreg時僅考慮正樣本的邊界框坐標(biāo)。Lc為各輔支累計損失之和的最小值。最終網(wǎng)絡(luò)模型參數(shù)通過最小化損失函數(shù)來優(yōu)化,并實現(xiàn)其效果。
本文實驗的數(shù)據(jù)集來源于兩個公開數(shù)據(jù)集:德國交通標(biāo)志檢測數(shù)據(jù)集(GTSDB)和德國交通標(biāo)志識別數(shù)據(jù)集(GTSRB)。GTSDB數(shù)據(jù)集包含了900幅圖像,其中600幅用來訓(xùn)練,300幅用來測試。數(shù)據(jù)集中不同種類的交通標(biāo)志樣本數(shù)量不等,論文采用平移、旋轉(zhuǎn)以及灰度變換等數(shù)據(jù)增廣方法擴展數(shù)據(jù)集為3848張,3078張圖像建立訓(xùn)練集,其余圖像建立測試集。從而減輕訓(xùn)練模型的過擬合。GTSRB數(shù)據(jù)集總共包含51839張不同種類的交通標(biāo)志圖片,它包括43類不同種類的交通標(biāo)志,并且都是在自然采集條件下獲取的交通標(biāo)志圖片,其26640張圖片用來訓(xùn)練,其余圖像建立測試集。
本文算法在深度學(xué)習(xí)框架Caffe下利用Python語言實現(xiàn),操作系統(tǒng)為Linux Ubuntu 16.04,實驗硬件平臺為Intel Xeon E5-1630 v3@3.7GHz四核處理器,Nvidia GTX 1080Ti 11GB GPU顯卡,16GB內(nèi)存。算法在兩個數(shù)據(jù)集上測試的平均速度為4f/s。
檢測階段,主要任務(wù)是準(zhǔn)確、高效提取目標(biāo)候選域。目前,主流的提取目標(biāo)候選區(qū)域的方法有Faster R-CNN,YOLOV2,YOLOV3,SSD,R-FCN等。上述主流方法對于大尺度目標(biāo)有較好的檢測效果,然而對于小尺度目標(biāo)的檢測效果并不理想?,F(xiàn)實交通標(biāo)志檢測過程中,因拍攝距離的遠(yuǎn)近等因素導(dǎo)致尺度大小不一,所以交通標(biāo)志在圖像中所占據(jù)的比例大小也不盡相同。因此,根據(jù)交通標(biāo)志在圖像中所占據(jù)像素大小劃分為三個區(qū)間:小型交通標(biāo)志(0<面積<48像素×48像素),中型交通標(biāo)志(48像素×48像素<面積<128像素×128像素),大型交通標(biāo)志(面積>128像素×128像素)。在三個區(qū)間尺度下,本文方法與四種主流算法做了三組實驗,圖6為實驗結(jié)果,圖7和圖8為不同場景下五種算法的檢測效果對比圖。
圖6 本文方法與四種主流算法對多尺度交通標(biāo)志檢測的PR曲線
基于GTSRB數(shù)據(jù)集,我們選擇AdaBoost算法、ZFNet卷積神經(jīng)網(wǎng)絡(luò)和VGG-16卷積神經(jīng)網(wǎng)絡(luò)三種經(jīng)典識別算法與本文算法進(jìn)行實驗對比,從而驗證本文所提出的識別算法是否具有高效性。我們做了兩組實驗,分別測試了四種不同算法對于四類交通標(biāo)志的分類效果和實時性,實驗結(jié)果如表1,表2所示。
圖7 五種算法在場景一的檢測效果對比圖
圖8 五種算法在場景二的檢測效果對比圖
表1 四種算法中四種交通標(biāo)志的分類準(zhǔn)確率
表2 四種算法中四種交通標(biāo)志的識別時間(ms/幀)
表中實驗數(shù)據(jù)顯示,在準(zhǔn)確率方面,四種算法中,本文算法是最高的。這是因為我們增加了多通道融合的預(yù)處理過程,同時也離不開檢查階段優(yōu)秀的目標(biāo)候選區(qū)域提取。
表中實驗數(shù)據(jù)表明,在從實時性來說,本文的算法相比其它三種算法也是最快的,可以達(dá)到平均90ms/幀。這是因為識別階段的多輔支網(wǎng)絡(luò)結(jié)構(gòu)的快速識別性能以及共享卷積網(wǎng)絡(luò)使得整個網(wǎng)絡(luò)的參數(shù)大大減少。
本文首先采用多通道融合預(yù)處理方法。同時,提出了一種注意力機制與多尺度特征相結(jié)合的交通標(biāo)志檢測算法,該方法顯著提高了對多尺度,尤其小尺寸的交通標(biāo)志檢測效果。最后,構(gòu)建了一個多輔支卷積神經(jīng)網(wǎng)絡(luò),在保持精度情況下大大提升了識別速度。通過在GTSDB和GTSRB數(shù)據(jù)集上訓(xùn)練測試,表明了本文算法對交通標(biāo)志的尺度、形態(tài)變化以及復(fù)雜場景等影響因素具有良好的魯棒性,可以更好地滿足交通標(biāo)識的實際需求。如何在提高多尺度交通標(biāo)識召回率的情況下,進(jìn)一步提高檢測準(zhǔn)確性和識別速度將作為下一步的研究內(nèi)容。