薛之昕,鄭英豪,肖 建,魏玲玲
(1.南昌大學 信息工程學院,南昌 330029; 2.江西科技學院 信息工程學院,南昌 330029)
交通標志可以為司機提供重要的交通信息,同時還能大幅提高道路通行效率。通過使用人工智能(Artificial Intelligence,AI)算法高效、快速地檢測交通標志,并將檢測到的道路信息傳遞給無人車的控制系統(tǒng)進行決策,對提升自動駕駛的安全性具有重大意義[1]。由于角度變化、遮擋、運動模糊等因素都會給交通標志圖像帶來極大的變化,因此高精度交通標志識別是目前的研究熱點。
深度網(wǎng)絡模型具有不依賴于復雜的特征工程、可充分挖掘圖像的特征信息等特點,研究者將其應用于圖像識別領域取得了具有重大突破的科研成果,總體分為基于單級和基于兩級網(wǎng)絡2類[2]。目前基于單級網(wǎng)絡的研究成果有YOLO[3]、SSD[4]、YOLO9000[5]等圖像識別方法,此類方法利用整張圖像作為網(wǎng)絡的輸入,均勻地在圖片的不同位置進行密集抽樣,然后利用卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)提取特征后直接進行分類與回歸,整個過程只需要一步,優(yōu)勢在于速度快?;趦杉壘W(wǎng)絡的方法有R-CNN[6]系列算法,其設計思想是先通過選擇性搜索算法(Selective Search,SS)[7]或CNN產(chǎn)生一系列稀疏的候選框,然后對這些候選框進行分類與回歸,此類方法的優(yōu)勢在于準確度高。R-CNN[6]系列算法包括在R-CNN基礎上進行改進的Fast RCNN[8]、基于空間金字塔池化網(wǎng)絡的SPP-NET[9],以及在Faster RCNN[10]基礎上進行改進的Mask RCNN[11]等,這些方法能夠使圖像識別速度和準確率得到有效提升。
為實現(xiàn)高精度的交通標志識別,研究者提出多種基于卷積神經(jīng)網(wǎng)絡的方法。文獻[12]建立了多縱卷積神經(jīng)網(wǎng)絡模型,雖然提高了識別率,但同時也增加了識別和訓練時間,模型的實用性較差。文獻[13]提出了基于聯(lián)合卷積和遞歸神經(jīng)網(wǎng)絡的交通標志識別算法,雖然有效減少了訓練時長,但是算法識別率不理想。文獻[1]提出使用101層的殘差網(wǎng)絡[14]作為特征提取基礎網(wǎng)絡的方法,但訓練該網(wǎng)絡識別時間并不理想且識別率也未能超過基于多縱卷積神經(jīng)網(wǎng)絡的識別算法。文獻[15]通過綜合批量歸一化方法和逐層貪婪預訓練方法并將分類器替換為SVM,提出一種改進的識別算法,但其識別率也不理想。
上述道路標志識別算法均基于單尺度卷積神經(jīng)網(wǎng)絡,僅利用端層特征進行分類,從而導致提取特征不全面,不能滿足實際應用需求。文獻[16]從可視化的角度說明卷積神經(jīng)網(wǎng)絡不同層級的表征分別對應識別對象不同的特征屬性,如果充分利用這些具有多尺度的特征,將能有效提升模型識別效果以及特征的表達能力?;诖?文獻[17]提出多尺度卷積神經(jīng)網(wǎng)絡模型以改進單尺度卷積神經(jīng)網(wǎng)絡中特征提取的基網(wǎng)絡,取得了較高的識別率,但其未充分利用多尺度特征。
本文在單尺度卷積網(wǎng)絡的基礎上,通過構造多特征結構改進用于特征提取的基網(wǎng)絡,同時設計多尺度卷積神經(jīng)網(wǎng)絡以挖掘更多隱藏特征,從而在提高模型識別率的同時增強實用性。
單尺度卷積神經(jīng)網(wǎng)絡采用嚴格的前饋分層結構,每一層的輸出僅輸送到下一層,而本文所設計的多尺度卷積神經(jīng)網(wǎng)絡,除了將卷積神經(jīng)網(wǎng)絡最后一個卷積層提取出的特征輸出到分類器外,其他卷積層所提出的特征也會被分支并直接饋送到分類器。
將網(wǎng)絡不同層級所產(chǎn)生的特征融合成多尺度特征提供給分類器,其目的是向分類器提供具有不同尺度的感受域。因為更深的網(wǎng)絡結構往往能夠提取出更能代表全局的特征,而淺層的卷積網(wǎng)絡提取出的特征則能更好地代表局部的細節(jié)特征,所以,在本文模型中,第二階段提取出的特征是“全局”和不變的形狀和結構的,而第一階段提取出來的特征是具有更加精確細節(jié)的“局部”特征。其中,第一階段特征,是第一階段子采樣完成后輸出的特征。采用多尺度卷積神經(jīng)網(wǎng)絡可以得到包含圖像低層、更多局部特征的組合特征,因此能有效提升特征的表達能力及最終的模型識別效果。
圖1是本文所設計的多尺度卷積神經(jīng)網(wǎng)絡結構。定義S={F2∪F3}為由F2和F3融合形成的具有多尺度特征的向量集合。其中,集合S中的F2、F3分別代表圖1模型中第2個subsamping層和第3個subsamping層的輸出。subsamping層的輸出大小為n×c×h×w,其中,n為卷積核個數(shù),c為卷積核深度,h、w為卷積核大小。Fi函數(shù)表示為:對第i個subsamping層輸出的多維特征降維成n×(c×h×w)的形式。該網(wǎng)絡模型最后將F2和F3聯(lián)合成一個具有多尺度特征的向量集合S直接送入到分類器中進行分類操作。
圖1 多尺度卷積神經(jīng)網(wǎng)絡結構Fig.1 Multi-scale convolutional neural network structure
本文分別設計了7層和12層的卷積神經(jīng)網(wǎng)絡模型,均使用Relu激活函數(shù)[18]以及Softmax分類器進行分類操作。表1是本文采用的多尺度卷積神經(jīng)網(wǎng)絡的具體參數(shù)。此多尺度卷積神經(jīng)網(wǎng)絡共12層,其中包括1個輸入層、5個卷積層、3個全連接層和3個池化層。
表1 多尺度卷積神經(jīng)網(wǎng)絡參數(shù)Table 1 Multi-scale convolutional neural networkparameters
The German Traffic Sign Recognition Benchmark是IJCNN2011舉辦的一個圖像分類挑戰(zhàn)賽,其提供了GTSRB數(shù)據(jù)集,共包含43類交通標志。其中,訓練樣本39 209張,測試樣本12 630 張??紤]到采用邊緣方法的參賽者,該挑戰(zhàn)賽提供的樣本圖像中包含了標志區(qū)域及其周圍10%的區(qū)域,樣本圖像尺寸范圍為15像素×15像素~250像素×250像素,樣本的圖片不全為正方形。圖2展示了部分具有典型代表的樣本實例。該數(shù)據(jù)集的樣本數(shù)據(jù)均來自于歐洲,國內(nèi)大部分交通標志的研究者都是在該數(shù)據(jù)集上進行擴充處理。
圖2 訓練樣本
對于卷積神經(jīng)網(wǎng)絡模型訓練,網(wǎng)絡模型的層次越深,模型就越復雜,越具有表達力,但同時越容易失去解析測試數(shù)據(jù)的能力,從而專注于解析訓練數(shù)據(jù),造成過擬合現(xiàn)象。卷積神經(jīng)網(wǎng)絡相比傳統(tǒng)模型具有更強大的表達能力,因此,也需要更多的數(shù)據(jù)來避免過擬合現(xiàn)象的出現(xiàn)。同時,拍攝角度變化、照明條件(飽和度、低對比度)、運動模糊、陽光耀眼、顏色褪色等外部因素都會導致交通標志變形或失真。
為保證訓練集足夠大,訓練數(shù)據(jù)更真實,避免出現(xiàn)過擬合現(xiàn)象,主要的應對措施是數(shù)據(jù)增強。增強的方法主要是從原始數(shù)據(jù)集中隨機選取圖片,并應用仿射變換法。通過對圖像進行幾何變換等圖像處理手段來增加樣本數(shù)據(jù)量。此處數(shù)據(jù)增強主要是增加訓練集的大小以及調(diào)整類別分布(類別分布是不均衡的,因為測試集可能相較于訓練集有不同的分布,所以筆者希望在類別分布均衡的數(shù)據(jù)集上訓練,給予不同類別相同的權重,然后在不均衡的數(shù)據(jù)集上測試時可以有更好的效果)。數(shù)據(jù)增強后得到每個類別各有4 000張樣本數(shù)據(jù)的數(shù)據(jù)集。本文使用以下數(shù)據(jù)增強方法:
1)旋轉(zhuǎn)角度:旋轉(zhuǎn)角度范圍限制為-10°~10°,因為如果旋轉(zhuǎn)角度過大,有些交通標志的含義就會發(fā)生變化。
2)水平、垂直移動:移動范圍限制為-3像素~3像素。
3)伸縮變換:伸縮變換范圍限制為0.8~1.2。
由于數(shù)據(jù)集中的原始圖像每幅圖像只包含一個交通標志,而且有10%的冗余邊,每個圖像大小尺寸并不一樣,為提高識別率,需對其進行預處理,即先參考交通標志說明文件把圖片10%的冗余邊剪除,使交通標志充滿整個圖像;再將所有圖像下采樣或者上采樣成32像素×32像素的格式,并將所有的訓練樣本轉(zhuǎn)換成灰度圖。圖3展示了預處理后的樣本。
圖3 預處理后的樣本
本文實驗采用的計算機處理器為英特爾i5-4210H(2.90 GHz雙核),運行內(nèi)存為4 GB,使用GPU加速,GPU為英偉達GTX860M,顯存為2 GB。為驗證本文模型的性能,筆者在GTSRB數(shù)據(jù)集上進行了多次實驗,其中訓練樣本39 209張,測試樣本12 630 張,共包含43 類交通標志。同時通過數(shù)據(jù)增強的方式,分別將每類交通標志增強到3 000張和4 000張。本文實驗參數(shù)設置為:初始學習率為0.001,當epoch次數(shù)超過40后,學習率變?yōu)?.000 1。BatchSize為200,epoch總次數(shù)為150 次,動量參數(shù)0.9。在全連接層中使用dropout的keep_prob參數(shù)為0.5。
本文通過對模型進行不同設置,包括是否使用多尺度特征、卷積層層數(shù)、是否使用灰度圖、全連接層隱藏單元個數(shù)以及訓練集中每類交通標志增強后的數(shù)量等,來觀察其對實驗結果的影響,比較結果如表2所示。采用多尺度網(wǎng)絡結構并且卷積層數(shù)為2的模型(第2組實驗)將第1個卷積層輸出池化后的結果同第2個卷積層輸出池化后的結果聯(lián)合送入到分類器中進行分類,這兩個卷積層中均包含108個3×3的卷積核;在卷積層數(shù)為5的模型中(第2組實驗~第7組實驗),這5個卷積層的卷積核的個數(shù)分別為80、120、180、200、200。其中,除了第3個卷積層使用的是4×4大小的卷積核,其余4個卷積層均使用3×3的卷積核。在采用多尺度網(wǎng)絡結構的情況下,卷積層數(shù)為5的模型(第3組、第6組和第7組實驗)將第4個卷積層輸出池化后的結果同第5個卷積層輸出池化后的結果聯(lián)合送入到分類器中進行分類。所有實驗均采用GTSRB數(shù)據(jù)集,且默認將訓練集中各類交通標志樣本數(shù)量統(tǒng)一增強至4 000張。
表2 不同模型參數(shù)下的實驗結果比較Table 2 Experimental results comparison under different model parameters
通過單獨對比表2中第1組和第2組實驗以及單獨對比第4組和第7組實驗后發(fā)現(xiàn),多尺度卷積神經(jīng)網(wǎng)絡相比單尺度卷積神經(jīng)網(wǎng)絡,準確識別率分別提升了1.82%、0.08%。因為單尺度特征并不能充分表達特征的多屬性,所以單尺度卷積神經(jīng)網(wǎng)絡識別率不如多尺度卷積神經(jīng)網(wǎng)絡識別率高。因為多尺度卷積神經(jīng)網(wǎng)絡可以充分利用特征的多屬性,所以顯著提升了模型的識別率。相比使用2層卷積層的模型,使用5層卷積層的模型能更有效地利用多尺度特征,達到更好識別效果。通過將第1組、第2組實驗結果對比第3組~第7組實驗結果后發(fā)現(xiàn),使用2層卷積層的模型最高識別率為95.85%,而使用5層卷積層的模型最低識別率為98.25%,這表明使用5層卷積層的網(wǎng)絡要比僅使用2層卷積層的網(wǎng)絡識別率明顯要高。通過觀察第4組和第5組實驗結果可以發(fā)現(xiàn),使用灰度圖作為訓練樣本訓練出來的模型比使用RGB圖作為訓練樣本訓練出來的模型,識別率要高0.12%。通過第3組和第6組實驗可以發(fā)現(xiàn),全連接層使用100個隱藏單元,比使用50個隱藏單元的識別率高0.25%。
對比表2中的第6組和第7組實驗可以發(fā)現(xiàn),通過將每類交通標志樣本數(shù)量增加到2 000的訓練集訓練出的模型,反而比通過將每類交通標志樣本數(shù)量增加到4 000的訓練集訓練出來的模型識別率更高。數(shù)據(jù)增強至不同的數(shù)量對模型識別率的影響如表3所示,可以看出,在相同的模型下,將每類交通標志樣本數(shù)量增加到2 000個,比將每類交通標志樣本數(shù)量增加到3 000個、4 000個的識別率要分別高出0.36%、0.58%,這表明訓練數(shù)據(jù)并非增強得越多越好。
表3 數(shù)據(jù)增強至不同數(shù)量對實驗結果的影響
Table 3 Effect of data enhancement to different quantities on experimental results
方法準確識別率/%樣本數(shù)量增加至4 000個98.67樣本數(shù)量增加至3 000個98.89樣本數(shù)量增加至2 000個99.25
通過觀察表2的第4組和第5組實驗結果可以發(fā)現(xiàn),使用灰度圖可以提高模型的識別率。本文通過進一步實驗研究使用灰度圖對模型識別率的影響,結果如表4所示??梢钥闯?使用灰度圖比使用RGB圖模型識別率提升了0.12%,這表明使用灰度圖訓練模型可以有效提升模型的識別率。
表4 使用灰度圖對實驗結果的影響Table 4 Effect of using grey-scale map on experimental results
在GTSRB數(shù)據(jù)集下不同方法的性能比較如表5所示。其中,本文模型的實驗結果是在本文實驗平臺下得到的,其他方法的實驗結果均是參考相關文獻,但這些文獻均使用了與本文相同的數(shù)據(jù)集。由表5可見,本文方法優(yōu)于人類表現(xiàn),而在優(yōu)于人類表現(xiàn)的3個方法中,本文方法的性能在文獻[17]方法98.89%識別率的基礎上提升到99.25%,而略低于文獻[12]模型99.46%的識別率。隨機森林、SVM、ANN等算法,雖然訓練時間短,但是識別率不是很高。而文獻[13]提出的基于聯(lián)合卷積和遞歸神經(jīng)網(wǎng)絡的方法、文獻[15]提出的基于優(yōu)化卷積神經(jīng)網(wǎng)絡方法和文獻[19]提出的基于CNN多層特征和ELM的方法,識別率均沒有達到人類的表現(xiàn),并且在模型訓練的時耗方面也不占優(yōu)勢。
表5 不同模型的準確識別率對比Table 5 Accurate recognition rates comparison ofdifferent models
表6展示了3個不同模型在本實驗平臺下的訓練時間與識別時間??梢钥闯?在識別時間幾乎相同的情況下,本文所設計模型的識別率達到99.25%,超過了文獻[17]模型的98.89%。盡管文獻[12]所設計的多縱卷積神經(jīng)網(wǎng)絡模型的識別率最高,但存在識別時間過長,在需要大量預處理的情況下,還需要151 h才能完成模型的訓練任務的問題。因此,文獻[12]提出的多縱卷積神經(jīng)網(wǎng)絡模型存在實用性不強的問題。而本文模型無需需要很多工程技巧的全局變量訓練,僅花費7 h就完成了模型的訓練任務。同時,在識別率僅比多縱卷積神經(jīng)網(wǎng)絡低0.21%的情況下,本文模型的識別和訓練時間的縮幅均超過90%。因此,從實用性的角度出發(fā),本文模型更具優(yōu)勢。
表6 3種模型的訓練時間與識別時間Table 6 Training time and recognition time of three models
本文運用多尺度思想,設計一個基于多尺度卷積神經(jīng)網(wǎng)絡的交通標志識別模型。該網(wǎng)絡模型包含1個輸入層、5個卷積層、3個全連接層和3個池化層,結構簡單,網(wǎng)絡規(guī)模較小,其使用Relu激活函數(shù),并采用Softmax分類器進行分類操作,能夠綜合網(wǎng)絡多層特征并充分利用這些具有多尺度的特征,在保證高精度識別的同時具有速度快和實用性強的優(yōu)點。與多縱卷積神經(jīng)網(wǎng)絡模型相比,本文模型在保證99.25%高識別率的同時,識別和訓練時間的降幅均超過90%。下一步將在更復雜的背景中準確檢測出交通標志后再進行識別,以實現(xiàn)交通標志的實時檢測與識別。