王曉斌,黃金杰,劉文舉
(1.哈爾濱理工大學(xué) 自動(dòng)化學(xué)院,哈爾濱 150080; 2.中國(guó)科學(xué)院 自動(dòng)化研究所,北京 100190)
(*通信作者電子郵箱lwj@nlpr.ia.ac.cn)
基于優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的交通標(biāo)志識(shí)別
王曉斌1,黃金杰1,劉文舉2*
(1.哈爾濱理工大學(xué) 自動(dòng)化學(xué)院,哈爾濱 150080; 2.中國(guó)科學(xué)院 自動(dòng)化研究所,北京 100190)
(*通信作者電子郵箱lwj@nlpr.ia.ac.cn)
現(xiàn)有算法對(duì)交通標(biāo)志進(jìn)行識(shí)別時(shí),存在訓(xùn)練時(shí)間短但識(shí)別率低,或識(shí)別率高但訓(xùn)練時(shí)間長(zhǎng)的問題。為此,綜合批量歸一化(BN)方法、逐層貪婪預(yù)訓(xùn)練(GLP)方法,以及把分類器換成支持向量機(jī)(SVM)這三種方法對(duì)卷積神經(jīng)網(wǎng)絡(luò)(CNN)結(jié)構(gòu)進(jìn)行優(yōu)化,提出基于優(yōu)化CNN結(jié)構(gòu)的交通標(biāo)志識(shí)別算法。其中:BN方法可以用來(lái)改變中間層的數(shù)據(jù)分布情況,把卷積層輸出數(shù)據(jù)歸一化為均值為0、方差為1,從而提高訓(xùn)練收斂速度,減少訓(xùn)練時(shí)間;GLP方法則是先訓(xùn)練第一層卷積網(wǎng)絡(luò),訓(xùn)練完把參數(shù)保留,繼續(xù)訓(xùn)練第二層,保留參數(shù),直到把所有卷積層訓(xùn)練完畢,這樣可以有效提高卷積網(wǎng)絡(luò)識(shí)別率;SVM分類器只專注于那些分類錯(cuò)誤的樣本,對(duì)已經(jīng)分類正確的樣本不再處理,從而提高了訓(xùn)練速度。使用德國(guó)交通標(biāo)志識(shí)別數(shù)據(jù)庫(kù)進(jìn)行訓(xùn)練和識(shí)別,新算法的訓(xùn)練時(shí)間相對(duì)于傳統(tǒng)CNN訓(xùn)練時(shí)間減少了20.67%,其識(shí)別率達(dá)到了98.24%。所提算法通過對(duì)傳統(tǒng)CNN結(jié)構(gòu)進(jìn)行優(yōu)化,極大地縮短了訓(xùn)練時(shí)間,并具有較高的識(shí)別率。
卷積神經(jīng)網(wǎng)絡(luò); 批量歸一化;貪婪預(yù)訓(xùn)練; 支持向量機(jī)
隨著我國(guó)經(jīng)濟(jì)的發(fā)展,交通越來(lái)越發(fā)達(dá),同時(shí)隨著私家車的增多,交通事故頻發(fā),安全駕駛問題越來(lái)越突出,于是智能交通系統(tǒng)應(yīng)運(yùn)而生。交通標(biāo)志識(shí)別是智能交通系統(tǒng)的重要組成部分,在交通安全運(yùn)行方面具有重大的現(xiàn)實(shí)意義,它能夠減少駕駛員的駕駛疲勞,更好地保證出行安全。在汽車運(yùn)行過程中,交通標(biāo)志識(shí)別往往是在復(fù)雜的室外交通環(huán)境下進(jìn)行的,比一般靜止的事物識(shí)別更難,主要體現(xiàn)在:復(fù)雜多變的光照條件;背景環(huán)境干擾;交通標(biāo)志遮擋;交通標(biāo)志位置傾斜[1]。受干擾圖例如圖1所示。為了解決這些問題,大量的復(fù)雜算法被提出,造成識(shí)別率高但訓(xùn)練速度過慢,或者訓(xùn)練速度快但識(shí)別率低的問題,因此交通標(biāo)志快速訓(xùn)練與準(zhǔn)確識(shí)別是迫切需要解決的問題。
目前已經(jīng)有很多傳統(tǒng)分類器,包括支持向量機(jī)(Support Vector Machine, SVM)[2]、貝葉斯分類器[3]、隨機(jī)森林分類器等被用于交通標(biāo)志識(shí)別。這些方法均先利用典型的特征描述方法如尺度不變特征變換(Scale-Invariant Feature Transform, SIFT)[4]、加速魯棒特征(Speeded Up Robust Feature, SURF)[5]、方向梯度直方圖(Histogram of Oriented Gradient, HOG)[6]等對(duì)訓(xùn)練樣本進(jìn)行低層次特征提取,包含角點(diǎn)、邊緣、紋理等,然后對(duì)這些特征進(jìn)行訓(xùn)練分類操作。這些特征描述方法主要是由人工設(shè)計(jì)的,設(shè)計(jì)它們需要大量的時(shí)間,盡管這些算法訓(xùn)練時(shí)間很短,但是識(shí)別率很低,不能實(shí)現(xiàn)準(zhǔn)確應(yīng)用。
深度學(xué)習(xí)是目前在目標(biāo)識(shí)別方面應(yīng)用最多的方法。深度學(xué)習(xí)的實(shí)質(zhì)是通過構(gòu)建具有很多隱層的機(jī)器學(xué)習(xí)模型和訓(xùn)練數(shù)據(jù),自發(fā)地學(xué)習(xí)更高層次的特征,從而最終提升分類或預(yù)測(cè)的準(zhǔn)確性。和傳統(tǒng)的學(xué)習(xí)方法相比,深度學(xué)習(xí)更能夠刻畫數(shù)據(jù)豐富的內(nèi)在信息。本文主要使用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network, CNN)[7]方法。

圖1 受干擾圖例
CNN是受生物的視覺系統(tǒng)啟發(fā)而形成的,是一個(gè)多層的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),每個(gè)卷積層由一個(gè)濾波器層、一個(gè)非線性層、一個(gè)空間采樣層組成。CNN的主要優(yōu)點(diǎn)就是可以將數(shù)據(jù)直接輸入CNN模型而不進(jìn)行任何處理,它可以自動(dòng)學(xué)習(xí)圖像特征,并且具有很強(qiáng)的魯棒性。Ciresan等[8]提出了多列卷積神經(jīng)網(wǎng)絡(luò)算法,一共有25個(gè)卷積網(wǎng)絡(luò)結(jié)構(gòu),每個(gè)卷積網(wǎng)絡(luò)用不同的方法進(jìn)行訓(xùn)練,結(jié)果取25個(gè)網(wǎng)絡(luò)的平均值,之后用這個(gè)模型對(duì)測(cè)試集進(jìn)行測(cè)試;Sermanet等[9]提出了多規(guī)模卷積網(wǎng)絡(luò),把卷積網(wǎng)絡(luò)的第二層特征和第三層特征聯(lián)合送入全連接層進(jìn)行分類;Krizhevsky等[10]提出用深度卷積神經(jīng)網(wǎng)絡(luò)對(duì)圖片進(jìn)行分類。在圖像數(shù)據(jù)庫(kù)比賽中,這些算法都獲得了比較高的識(shí)別率;但是這些算法的共同缺點(diǎn)是訓(xùn)練時(shí)間過長(zhǎng),需要大量的計(jì)算資源,其中Ciresan等[8]提出的方法訓(xùn)練時(shí)間達(dá)到37 h,浪費(fèi)了大量資源。
針對(duì)上述方法的缺點(diǎn),本文對(duì)CNN結(jié)構(gòu)進(jìn)行了優(yōu)化,包括加入批量歸一化(Batch-Normalization, BN)[11]層,使用逐層貪婪預(yù)訓(xùn)練(Greedy Layer-wise Pretraining, GLP) 方法[12]進(jìn)行訓(xùn)練,同時(shí)在最后的分類層使用支持向量機(jī)(SVM)進(jìn)行分類。其中GLP能夠提高識(shí)別率,BN和SVM能夠加速深度學(xué)習(xí)訓(xùn)練過程。
1.1 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
CNN的兩大優(yōu)點(diǎn)就是局部感受野和權(quán)值共享。在傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中,一般都是全連接,導(dǎo)致參數(shù)非常巨大,訓(xùn)練困難,速度很慢。比如一幅n×n像素圖像輸入全連接網(wǎng)絡(luò),如果第一層神經(jīng)元個(gè)數(shù)是m個(gè),因?yàn)槭侨B接,每個(gè)像素與每個(gè)神經(jīng)元全連接,就會(huì)有n×n×m個(gè)參數(shù),導(dǎo)致參數(shù)災(zāi)難,訓(xùn)練會(huì)非常困難,因此必須想辦法減少參數(shù)。對(duì)于CNN來(lái)說(shuō),一幅1 000×1 000像素的圖像,如果局部感受野范圍是50×50,那么僅僅會(huì)有50×50個(gè)參數(shù),這是一種特征,如果要識(shí)別一種圖像,可以設(shè)計(jì)100個(gè)濾波器,參數(shù)也僅僅是50×50×100,所以參數(shù)大幅減少,訓(xùn)練速度也會(huì)大大加快。
CNN結(jié)構(gòu)由輸入層、卷積層和采樣層組成。圖2所示是交通標(biāo)志識(shí)別CNN結(jié)構(gòu),在圖中,輸入的是交通標(biāo)志的圖像,先經(jīng)過第一層卷積C1,濾波器個(gè)數(shù)是8個(gè)大小為5×5,形成8個(gè)特征映射圖,每個(gè)特征映射圖大小為44;然后再經(jīng)過采樣層S2,使用的采樣核大小為2×2,得到8個(gè)特征圖,特征圖大小是22;第二卷積層C3產(chǎn)生14個(gè)特征圖,卷積核大小3×3,產(chǎn)生14個(gè)特征圖大小是20;再經(jīng)過采樣,采樣核大小是2×2,產(chǎn)生14個(gè)特征圖,每個(gè)特征圖大小是10,把14個(gè)特征圖壓縮成一維連接起來(lái)與C5層120個(gè)神經(jīng)元全連接;最后一層是分類器,采用全連接方式進(jìn)行分類輸出。這就是一個(gè)完整的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。

圖2 卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
1.2 卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練
CNN的訓(xùn)練過程主要采用的是反向傳播算法,首先輸入數(shù)據(jù),進(jìn)行前向計(jì)算,然后再反向計(jì)算誤差,并對(duì)誤差求各個(gè)權(quán)值和偏置的偏導(dǎo)數(shù),依靠這個(gè)偏導(dǎo)數(shù)調(diào)整各個(gè)權(quán)值和偏差。在開始訓(xùn)練前,所有的權(quán)值都應(yīng)該用不同的隨機(jī)數(shù)進(jìn)行初始化。選取的隨機(jī)數(shù)應(yīng)較小,以保證網(wǎng)絡(luò)不會(huì)因權(quán)值過大而進(jìn)入飽和狀態(tài),從而導(dǎo)致訓(xùn)練失敗;“不同”則用來(lái)保證網(wǎng)絡(luò)可以正常地學(xué)習(xí)。下面是用交通標(biāo)志訓(xùn)練CNN的過程:
第一階段,向前傳播階段:
1)從交通標(biāo)志樣本中選取一部分標(biāo)志輸入網(wǎng)絡(luò);
2)通過前向算法計(jì)算相應(yīng)的實(shí)際輸出標(biāo)志類別。
第二階段,向后傳播階段:
1)把前面計(jì)算的實(shí)際類別與真實(shí)交通標(biāo)志類別進(jìn)行比較,求偏差;
2)按極小化誤差的方法反向傳播調(diào)整權(quán)矩陣。
下面是具體的公式推導(dǎo):
1)卷積層。


b)殘差計(jì)算。卷積層的下一層是下采樣層,采用的是一對(duì)一非重疊采樣,故殘差計(jì)算更為簡(jiǎn)單。第l層第j個(gè)特征圖的殘差計(jì)算公式如下:
其中:第l層為卷積層,第l+1層為下采樣層,下采樣層與卷積層是一一對(duì)應(yīng)的;up(x)是將第l+1層的大小擴(kuò)展為和第l層大小一樣;下采樣層中的權(quán)重全都等于β(一個(gè)常量);f′(·)表示激活函數(shù)f(·)的偏導(dǎo)數(shù);“°”表示每個(gè)元素相乘。
c)梯度計(jì)算。偏置參數(shù)b的導(dǎo)數(shù)為:
參數(shù)k的導(dǎo)數(shù)為:

2)采樣層。
a)卷積計(jì)算。設(shè)第l層為下采樣層,第l-1層為卷積層,由于是一對(duì)一采樣,假設(shè)采樣大小為2×2,故計(jì)算公式為:

其中:down(x)是將x中2×2的大小中像素值進(jìn)行求和。計(jì)算過程為對(duì)上一層卷積層2×2大小進(jìn)行求和然后乘以權(quán)重w,再加上一個(gè)偏置,再求取激活函數(shù)。
b)殘差計(jì)算。在計(jì)算下采樣層梯度時(shí),需要找到殘差圖中給定像素對(duì)應(yīng)于上一層的殘差圖中哪個(gè)區(qū)域塊,這樣才可以將殘差反向傳播回來(lái)。另外,需要乘以輸入?yún)^(qū)域塊和輸出像素之間連接的權(quán)值,這個(gè)權(quán)值實(shí)際上就是卷積核的權(quán)值。上述過程可以使用下面的Matlab函數(shù)公式實(shí)現(xiàn):
其中:第l層為下采樣層,第l+1層為卷積層。
c)梯度計(jì)算。偏置b的導(dǎo)數(shù),其公式的推導(dǎo)過程與卷積層一樣。權(quán)重β的導(dǎo)數(shù)計(jì)算公式如下:
2.1 加速訓(xùn)練模塊——批量歸一化方法
交通標(biāo)志識(shí)別主要使用CNN方法,CNN學(xué)習(xí)過程本質(zhì)就是為了學(xué)習(xí)數(shù)據(jù)分布,深度卷積網(wǎng)絡(luò)的訓(xùn)練是一個(gè)復(fù)雜的過程,只要網(wǎng)絡(luò)的前面幾層發(fā)生微小的改變,后面幾層就會(huì)被累積放大下去。一旦網(wǎng)絡(luò)某一層的輸入數(shù)據(jù)的分布發(fā)生改變,那么這一層網(wǎng)絡(luò)就需要學(xué)習(xí)這個(gè)新的數(shù)據(jù)分布。訓(xùn)練過程中,訓(xùn)練數(shù)據(jù)的每一層分布一直在發(fā)生變化,并且每一層所需要的學(xué)習(xí)率不一樣,通常需要使用最小的那個(gè)學(xué)習(xí)率才能保證損失函數(shù)有效下降,因此將會(huì)影響網(wǎng)絡(luò)的訓(xùn)練速度。而BN算法就是要解決在訓(xùn)練過程中,中間層數(shù)據(jù)分布發(fā)生變化的情況,BN算法使每一層的數(shù)據(jù)都?xì)w一化為均值為0、標(biāo)準(zhǔn)差為1,使數(shù)據(jù)穩(wěn)定,因此可以使用較大的學(xué)習(xí)率進(jìn)行訓(xùn)練,使網(wǎng)絡(luò)加快收斂,提高訓(xùn)練速度。BN算法主要使用如下公式進(jìn)行歸一化:
(1)
其中E[x(k)]指的是每一批訓(xùn)練數(shù)據(jù)x(k)的平均值;分母就是每一批數(shù)據(jù)x(k)的一個(gè)標(biāo)準(zhǔn)差。后面的處理也將利用式(1)對(duì)某一個(gè)層網(wǎng)絡(luò)的輸入數(shù)據(jù)作歸一化處理。需要注意的是,訓(xùn)練過程中采用批量隨機(jī)梯度下降方法。


2.2 識(shí)別率模塊——逐層貪婪訓(xùn)練
逐層貪婪預(yù)訓(xùn)練是一個(gè)層網(wǎng)絡(luò)預(yù)訓(xùn)練結(jié)構(gòu),逐層貪婪算法的主要思路是每次只訓(xùn)練網(wǎng)絡(luò)中的一層,即首先訓(xùn)練一個(gè)只含一個(gè)卷積層的網(wǎng)絡(luò),僅當(dāng)這層網(wǎng)絡(luò)訓(xùn)練結(jié)束之后才開始訓(xùn)練一個(gè)有兩個(gè)卷積層的網(wǎng)絡(luò),以此類推。在每一步中,把已經(jīng)訓(xùn)練好的前k-1層固定,然后增加第k層(也就是將已經(jīng)訓(xùn)練好的前k-1的輸出作為輸入)。每一層的訓(xùn)練是有監(jiān)督的(例如,將每一步的分類誤差作為目標(biāo)函數(shù)),這些各層單獨(dú)訓(xùn)練所得到的權(quán)重被用來(lái)初始化最終的深度網(wǎng)絡(luò)的權(quán)重,然后對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行“微調(diào)”(即把所有層放在一起來(lái)優(yōu)化有標(biāo)簽訓(xùn)練集上的訓(xùn)練誤差),這就是一個(gè)完整的逐層貪婪預(yù)訓(xùn)練(GLP)過程。
本次實(shí)驗(yàn)所用的計(jì)算機(jī)配置是CPUXeon2.60GHz,centos6.5操作系統(tǒng),同時(shí)還使用了K40c顯卡內(nèi)存12GB來(lái)加速訓(xùn)練。
3.1 數(shù)據(jù)準(zhǔn)備
本次實(shí)驗(yàn)使用德國(guó)交通標(biāo)志數(shù)據(jù)集(GermanTrafficSignRecognitionBenchmark,GTSRB)[13],該數(shù)據(jù)集包含43類從德國(guó)真實(shí)交通環(huán)境中采集的交通標(biāo)志,整個(gè)數(shù)據(jù)集共51 839幅交通標(biāo)志圖像,其中訓(xùn)練集39 209幅,測(cè)試集12 630幅,每幅圖像只包含一個(gè)交通標(biāo)志;且數(shù)據(jù)集中包括大量低分辨率、不同光照強(qiáng)度、局部遮擋、視角傾斜、運(yùn)動(dòng)模糊等各種不利條件下的圖像,能夠較全面地反映現(xiàn)實(shí)情況,以及算法的應(yīng)用能力。GTSRB數(shù)據(jù)集包括六個(gè)大類:限速標(biāo)志、其他禁令標(biāo)志、解除禁令標(biāo)志、指示標(biāo)志、警告標(biāo)志、其他標(biāo)志。
由于數(shù)據(jù)集中的原始圖像每幅圖像只包含一個(gè)交通標(biāo)志,而且有10%的冗余邊,每個(gè)圖像大小尺寸并不一樣,為了提高識(shí)別率,需對(duì)其進(jìn)行預(yù)處理。即先參考交通標(biāo)志說(shuō)明文件把圖片中10%的冗余邊剪除,使交通標(biāo)志充滿整個(gè)圖像;然后將圖像進(jìn)行旋轉(zhuǎn)、平移和綻放,旋轉(zhuǎn)角度為-5°和5°,左、右各平移4個(gè)像素,縮放因子為0.9和1.1,擴(kuò)展成155 517張圖片。這樣更有利于訓(xùn)練過程,同時(shí)對(duì)測(cè)試集進(jìn)行更好的預(yù)測(cè)。接著將RGB圖像轉(zhuǎn)化成灰度圖像。筆者進(jìn)行了相關(guān)實(shí)驗(yàn),發(fā)現(xiàn)RGB圖像識(shí)別率和灰度圖像識(shí)別率大體一致,因此為了提高計(jì)算速度,使用灰度圖像進(jìn)行實(shí)驗(yàn)。由于本文使用的是卷積神經(jīng)網(wǎng)絡(luò)方法,所有的圖像都必須大小一致,所以按照以往的經(jīng)驗(yàn)把所有的圖像都轉(zhuǎn)化成48×48大小。卷積神經(jīng)網(wǎng)絡(luò)方法具有很強(qiáng)的魯棒性,因此并沒有使用具體的去噪方法進(jìn)行去噪。
3.2 網(wǎng)絡(luò)結(jié)構(gòu)選擇
在進(jìn)行實(shí)驗(yàn)之前需要了解多少層卷積結(jié)構(gòu)才能使識(shí)別率最高,因?yàn)閷?duì)于深度學(xué)習(xí)而言,隨著層數(shù)增加,結(jié)構(gòu)能力越強(qiáng),將會(huì)導(dǎo)致數(shù)據(jù)過擬合;但如果層數(shù)太少,結(jié)構(gòu)能力太弱,又會(huì)導(dǎo)致數(shù)據(jù)欠擬合。這兩者都會(huì)導(dǎo)致訓(xùn)練錯(cuò)誤率和測(cè)試錯(cuò)誤率升高。為了選擇卷積層數(shù),使用逐層增加的方法,直到隨著層數(shù)增加,識(shí)別率不再明顯變化,就可以確定最優(yōu)層數(shù)。這里使用的數(shù)據(jù)還是德國(guó)交通標(biāo)志數(shù)據(jù)庫(kù),分為訓(xùn)練集和測(cè)試集。在選擇之前,每一層濾波器都是使用108個(gè),濾波器隨機(jī)初始化,實(shí)驗(yàn)結(jié)果如圖3所示。從圖3中可以看出,隨著層數(shù)增加識(shí)別率逐漸增加,隨后不變或者下降。因此關(guān)于卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)選擇三層最為合適,識(shí)別率也最高。
而關(guān)于濾波器個(gè)數(shù)選擇,同樣也是先參考文獻(xiàn)[9-10],選擇默認(rèn)卷積層數(shù)為3層,然后在這個(gè)基礎(chǔ)上再進(jìn)行實(shí)驗(yàn),結(jié)果如表1所示。從表1可以看出,盡管濾波器越多正確率越高,但是如果選擇90- 108- 108結(jié)構(gòu),會(huì)因?yàn)闉V波器過多而使得計(jì)算復(fù)雜,訓(xùn)練時(shí)間過長(zhǎng)。綜合考慮,選擇90- 108- 108,其中90代表第一層濾波器個(gè)數(shù),以此類推。

圖3 識(shí)別率隨層數(shù)變化曲線
表1 濾波器個(gè)數(shù)與正確率的關(guān)系
Tab.1Relationshipbetweenthenumberoffiltersandcorrectrate

尺寸正確率/%尺寸正確率/%50?90?13095.83108?130?15096.4190?108?10896.22130?160?19096.57
在選擇好層數(shù)和濾波器個(gè)數(shù)后,在本次實(shí)驗(yàn)中使用隱層層數(shù)為1;參考文獻(xiàn)[14],本次實(shí)驗(yàn)使用隱層神經(jīng)元個(gè)數(shù)為500。
3.3 訓(xùn)練速度對(duì)比
本次實(shí)驗(yàn)設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)是三層卷積神經(jīng)網(wǎng)絡(luò)、一個(gè)隱層和一個(gè)分類層,分類層分別使用softmax和SVM分類器,網(wǎng)絡(luò)訓(xùn)練時(shí)間分別是830.38min和664.91min。可以看出,使用SVM訓(xùn)練時(shí)間明顯比softmax訓(xùn)練時(shí)間短,因?yàn)閷?duì)于softmax來(lái)說(shuō),當(dāng)某類的概率已經(jīng)大于0.9時(shí),這就意味著分類正確,然而損失函數(shù)會(huì)繼續(xù)計(jì)算,直到概率接近1,這樣會(huì)造成計(jì)算資源的浪費(fèi);而SVM分類器只專注于那些分類錯(cuò)誤的樣本,對(duì)已經(jīng)分類正確的樣本不再處理,從而能大幅提高訓(xùn)練速度,同時(shí)還能提高模型的泛化能力,提高識(shí)別率。因此后續(xù)實(shí)驗(yàn)中的分類層采用SVM分類器。
接下來(lái)實(shí)驗(yàn)使用的網(wǎng)絡(luò)結(jié)構(gòu)包括三個(gè)卷積層、兩個(gè)隱層和一個(gè)分類層;而對(duì)比結(jié)構(gòu)也是三層卷積網(wǎng)絡(luò)結(jié)構(gòu),只是每一層卷積后都使用BN算法,然后是兩個(gè)隱層和一個(gè)分類層,其他參數(shù)兩個(gè)網(wǎng)絡(luò)結(jié)構(gòu)完全相同。結(jié)果顯示:使用BN算法前的訓(xùn)練時(shí)間為716.74min,而使用BN算法后的訓(xùn)練時(shí)間為568.6min。可以看出,在網(wǎng)絡(luò)結(jié)構(gòu)中加入BN層后,訓(xùn)練時(shí)間變短,原因在于:1)BN算法對(duì)卷積后的輸出數(shù)據(jù)進(jìn)行了歸一化操作,使它們的均值為0、方差為1,因此不必像以前那樣遷就維度規(guī)模,可以使用大的學(xué)習(xí)率對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行訓(xùn)練,收斂加快,達(dá)到最優(yōu)的訓(xùn)練時(shí)間也就變短;2)歸一化后使得更多的權(quán)重分界面落在了數(shù)據(jù)中,降低了過度擬合的可能性,因此一些防止過擬合但會(huì)降低速度的方法,例如dropout和權(quán)重衰減就可以不使用或者降低其權(quán)重,從而提高訓(xùn)練速度。
3.4 識(shí)別率對(duì)比
為了驗(yàn)證加入逐層貪婪預(yù)訓(xùn)練 (GLP) 方法后比優(yōu)化前的三層卷積網(wǎng)絡(luò)更優(yōu),設(shè)計(jì)兩個(gè)結(jié)構(gòu)完全一致的網(wǎng)絡(luò),均包括三層卷積、一個(gè)隱層和一個(gè)分類層,只是在訓(xùn)練方法上不同。結(jié)果顯示:優(yōu)化前的識(shí)別率為97.36%,優(yōu)化后的識(shí)別率為98.03%。可以看出,使用GLP方法的識(shí)別率比優(yōu)化前的三層卷積識(shí)別率要高。在訓(xùn)練深層網(wǎng)絡(luò)時(shí),經(jīng)常會(huì)遇到局部極值問題或者梯度彌散問題,當(dāng)使用反向傳播方法計(jì)算導(dǎo)數(shù)時(shí),隨著網(wǎng)絡(luò)深度的增加,反向傳播的梯度(從輸出層到網(wǎng)絡(luò)的最初幾層)的幅度值會(huì)急劇地減小,結(jié)果就造成了整體的損失函數(shù)相對(duì)于最初幾層的權(quán)重的導(dǎo)數(shù)非常小。這樣,當(dāng)使用梯度下降法時(shí),最初幾層的權(quán)重變化非常緩慢,以至于它們不能夠從樣本中進(jìn)行有效的學(xué)習(xí)。因此,當(dāng)使用貪婪預(yù)訓(xùn)練方法時(shí),相比隨機(jī)初始化而言,各層初始權(quán)重會(huì)位于參數(shù)空間中較好的位置上,然后可以從這些位置出發(fā)進(jìn)一步微調(diào)權(quán)重。從經(jīng)驗(yàn)上來(lái)說(shuō),以這些位置為起點(diǎn)開始梯度下降更有可能收斂到比較好的局部極值點(diǎn),從而使用逐層貪婪訓(xùn)練方法能夠更好地訓(xùn)練網(wǎng)絡(luò),使網(wǎng)絡(luò)達(dá)到最優(yōu)。
盡管本文算法還沒有達(dá)到官網(wǎng)公布的最優(yōu)識(shí)別率,但是該算法對(duì)原始卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行了優(yōu)化,用逐層貪婪方法預(yù)訓(xùn)練網(wǎng)絡(luò),使網(wǎng)絡(luò)跳出局部極值;而且在卷積網(wǎng)絡(luò)中加入BN層,把原來(lái)的softmax分類器換成了SVM分類器,極大地縮減了訓(xùn)練時(shí)間,能快速收斂到最優(yōu)值。
圖4是本次實(shí)驗(yàn)訓(xùn)練測(cè)試曲線,可以看出,網(wǎng)絡(luò)在測(cè)試之前參數(shù)已經(jīng)訓(xùn)練到穩(wěn)定狀態(tài),證明結(jié)論是可信的。雖然Ciresan等[8]提出的CommitteeofCNNs算法有很高的識(shí)別率,然而該網(wǎng)絡(luò)需要用4塊GPU訓(xùn)練37h,訓(xùn)練前需進(jìn)行大量的預(yù)處理,操作復(fù)雜;而RandomForests算法、ANN算法、SVM算法盡管訓(xùn)練時(shí)間短,但識(shí)別率并不是很高(各算法的識(shí)別率對(duì)比如表2所示)。因此本文算法解決了識(shí)別率低、訓(xùn)練時(shí)間長(zhǎng)的問題。交通標(biāo)志識(shí)別錯(cuò)誤部分,主要是由自然條件比較差、分辨率太低造成的,今后應(yīng)該加強(qiáng)數(shù)據(jù)預(yù)處理,使數(shù)據(jù)更加清晰,易于識(shí)別。

圖4 訓(xùn)練測(cè)試曲線
表2 各算法識(shí)別率對(duì)比 %

Tab.2 Comparison of recognition rates of different algorithms %
本文提出了基于優(yōu)化卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的交通標(biāo)志識(shí)別算法,并在德國(guó)交通標(biāo)志識(shí)別數(shù)據(jù)庫(kù)上進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果表明該算法可以提高交通標(biāo)志的訓(xùn)練速度,同時(shí)提高識(shí)別率。本文算法主要對(duì)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了三部分的優(yōu)化:第一,在每一層卷積后面加入了批量歸一化層;第二使用逐層貪婪預(yù)訓(xùn)練方法對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行訓(xùn)練;第三使用支持向量機(jī)進(jìn)行分類。下一步工作的目標(biāo)是在更復(fù)雜的背景中,首先準(zhǔn)確地檢測(cè)出交通標(biāo)志,然后再識(shí)別出交通標(biāo)志,真正實(shí)現(xiàn)交通標(biāo)志的實(shí)時(shí)檢測(cè)與識(shí)別。
)
[1] 楊心.基于卷積神經(jīng)網(wǎng)絡(luò)的交通標(biāo)識(shí)識(shí)別研究與應(yīng)用 [D].大連: 大連理工大學(xué), 2014:3-4.(YANGX.Researchandapplicationoftrafficsignrecognitionbasedonconvolutionalneuralnetwork[D].Dalian:DalianUniversityofTechnology, 2014:3-4.)
[2]GREENHALGHJ,MIRMEHDIM.Real-timedetectionandrecognitionofroadtrafficsigns[J].IEEETransactionsonIntelligentTransportationSystems, 2012, 13(4): 1498-1506.
[3]MEUTERM,NUNNYC,GORMERSM,etal.Adecisionfusionandreasoningmoduleforatrafficsignrecognitionsystem[J].IEEETransactionsonIntelligentTransportationSystems, 2011, 12(4): 1126-1134
[4]LOWEDG.Distinctiveimagefeaturesfromscale-invariantkeypoints[J].InternationalJournalofComputerVision, 2004, 60(2): 91-110.
[5]BAYH,TUYTELAARST,VANGOOLL.SURF:SpeededUpRobustFeatures[C]//ECCV2006:Proceedingsofthe9thEuropeanConferenceonComputerVision,LNCS3951.Berlin:Springer-Verlag, 2006: 404-417.
[6]DALALN,TRIGGSB.Histogramsoforientedgradientsforhumandetection[C]//CVPR’05:Proceedingsofthe2005IEEEComputerSocietyConferenceonComputerVisionandPatternRecognition.Washington,DC:IEEEComputerSociety, 2005, 1: 886-893.
[7]MATSUGUM,MORIK,MITARIY,etal.Subjectindependentfacialexpressionrecognitionwithrobustfacedetectionusingaconvolutionalneuralnetwork[J].NeuralNetworks— 2003Specialissue:AdvancesinNeuralNetworksResearch—IJCNN’03, 2003, 16(5/6): 555-559.
[8]CIREAND,MEIERU,MASCIJ,etal.Multi-columndeepneuralnetworkfortrafficsignclassification[J].NeuralNetworks, 2012, 32: 333-338.
[9]SERMANETP,LeCUNY.Trafficsignrecognitionwithmulti-scaleconvolutionalnetworks[C]//IJCNN2011:Proceedingsofthe2011InternationalJointConferenceonNeuralNetworks.Piscataway,NJ:IEEE, 2011: 2809-2813.
[10]KRIZHEVSKYA,SUTSKEVERI,HINTONGE.ImageNetclassificationwithdeepconvolutionalneuralnetworks[J].AdvancesinNeuralInformationProcessingSystems, 2012, 25(2): 1097-1105.
[11]IOFFES,SZEGEDYC.Batchnormalization:acceleratingdeepnetworktrainingbyreducinginternalcovariateshift[C]//ICML2015:ProceedingsofThe32ndInternationalConferenceonMachineLearning.NewYork:ACM, 2015: 448-456.
[12]BENGIOY,LAMBLINP,POPOVICID,etal.Greedylayer-wisetrainingofdeepnetworks[C]//NIPS’06:Proceedingsofthe19thInternationalConferenceonAdvancesinNeuralInformationProcessingSystems.Cambridge,MA:MITPress, 2007: 153-160.
[13]HOUBENS,STALLKAMPJ,SALMENJ,etal.Detectionoftrafficsignsinreal-worldimages:theGermantrafficsigndetectionbenchmark[C]//IJCNN2013:Proceedingsofthe2013InternationalJointConferenceonNeuralNetworks.Washington,DC:IEEEComputerSociety, 2013: 715-722.
[14]QIANR,ZHANGB,YUEY,etal.Robustchinesetrafficsigndetectionandrecognitionwithdeepconvolutionalneuralnetwork[C]//ICNC2015:Proceedingsofthe2015InternationalConferenceonNaturalComputation.Washington,DC:IEEEComputerSociety, 2015: 791-796.
ThisworkispartiallysupportedbytheNationalNaturalScienceFoundationofChina(61573357,61503382,61403370, 61273267).
WANG Xiaobin, born in 1990, M.S.candidate.His research interests include image recognition, object detection.
HUANG Jinjie, born in 1967, Ph.D., professor.His research interests include intelligent modeling, optimization control, pattern recognition.
LIU Wenju, born in 1960, Ph.D., professor.His research interests include machine learning, speech enhancement, speech recognition, sound source localization, sound event detection, image recognition.
Traffic sign recognition based on optimized convolutional neural network architecture
WANG Xiaobin1, HUANG Jinjie1, LIU Wenju2*
(1.SchoolofAutomation,HarbinUniversityofScienceandTechnology,HarbinHeilongjiang150080,China;2.InstituteofAutomation,ChineseAcademyofSciences,Beijing100190,China)
In the existing algorithms for traffic sign recognition, sometimes the training time is short but the recognition rate is low, and other times the recognition rate is high but the training time is long.To resolve these problems, the Convolutional Neural Network (CNN) architecture was optimized by using Batch Normalization (BN) method, Greedy Layer-Wise Pretraining (GLP) method and replacing classifier with Support Vector Machine (SVM), and a new traffic sign recognition algorithm based on optimized CNN architecture was proposed.BN method was used to change the data distribution of the middle layer, and the output data of convolutional layer was normalized to the mean value of 0 and the variance value of 1, thus accelerating the training convergence and reducing the training time.By using the GLP method, the first layer of convolutional network was trained with its parameters preserved when the training was over, then the second layer was also trained with the parameters preserved until all the convolution layers were trained completely.The GLP method can effectively improve the recognition rate of the convolutional network.The SVM classifier only focused on the samples with error classification and no longer processed the correct samples, thus speeding up the training.The experiments were conducted on Germany traffic sign recognition benchmark, the results showed that compared with the traditional CNN, the training time of the new algorithm was reduced by 20.67%, and the recognition rate of the new algorithm reached 98.24%.The experimental results prove that the new algorithm greatly shortens the training time and reached a high recognition rate by optimizing the structure of the traditional CNN.
Convolutional Neural Network (CNN); batch normalization; Greedy Layer-wise Pretraining (GLP); Support Vector Machine (SVM)
2016- 07- 28;
2016- 09- 21。 基金項(xiàng)目:國(guó)家自然科學(xué)基金資助項(xiàng)目(61573357, 61503382, 61403370, 61273267)。
王曉斌(1990—),男,山東濰坊人,碩士研究生,主要研究方向:圖像識(shí)別、目標(biāo)檢測(cè); 黃金杰(1967—),男,山東萊陽(yáng)人,教授,博士,主要研究方向:智能建模、優(yōu)化控制、模式識(shí)別; 劉文舉(1960—),男,北京人,教授,博士,主要研究方向:機(jī)器學(xué)習(xí)、語(yǔ)音增強(qiáng)、語(yǔ)音識(shí)別、聲源定位、聲音事件檢測(cè)、圖像識(shí)別。
1001- 9081(2017)02- 0530- 05
10.11772/j.issn.1001- 9081.2017.02.0530
TP391.41
A