張小雪 黃巍
(武漢工程大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院,湖北 武漢 430205)
交通標(biāo)志識(shí)別系統(tǒng)是搭載在行駛的車輛上用來識(shí)別前方道路中的交通標(biāo)志目標(biāo),將識(shí)別到的信息反饋給駕駛員,幫助駕駛員及時(shí)做出判斷,輔助駕駛,避免因?yàn)轳{駛員注意力不集中,忽略交通標(biāo)志等帶來的問題,減少事故的發(fā)生。設(shè)計(jì)一個(gè)識(shí)別準(zhǔn)確率高和識(shí)別速度快的交通標(biāo)志識(shí)別模型是當(dāng)下研究的熱點(diǎn),識(shí)別的準(zhǔn)確率高可以避免識(shí)別到錯(cuò)誤的信息而引發(fā)交通安全事故。由于車輛是高速行駛,需要及時(shí)地將交通標(biāo)志信息提供給駕駛員,所以識(shí)別速度要快。
交通標(biāo)志識(shí)別方法主要分為傳統(tǒng)的識(shí)別方法和基于卷積神經(jīng)網(wǎng)絡(luò)的方法[1],傳統(tǒng)的識(shí)別方法先提取手工設(shè)計(jì)的特征,然后訓(xùn)練分類器對(duì)交通標(biāo)志目標(biāo)進(jìn)行分類,例如:吳迪等人[2]提出基于HOGv-CLBP特征融合和ELM的交通標(biāo)志識(shí)別方法,該方法使用HOG特征提取圖像的邊緣信息,使用LBP特征提取圖像的內(nèi)部紋理信息,然后將提取到的兩種信息進(jìn)行特征融合,最后使用ELM分類器對(duì)交通標(biāo)志進(jìn)行分類,在GTSRB數(shù)據(jù)集上進(jìn)行測(cè)試,識(shí)別準(zhǔn)確率為92.88%,識(shí)別每張圖片的時(shí)間為7.2ms。Andrzej Ruta等人[3]使用HOG特征提取圖像中交通標(biāo)志的特征,然后使用SVM分類器進(jìn)行交通標(biāo)志訓(xùn)練和分類,在GTSRB數(shù)據(jù)集上進(jìn)行測(cè)試,識(shí)別準(zhǔn)確率為95.68%,識(shí)別每張圖片的時(shí)間為176ms。傳統(tǒng)的交通標(biāo)志識(shí)別方法需要手工設(shè)計(jì)特征,手工設(shè)計(jì)的特征對(duì)復(fù)雜場(chǎng)景的適應(yīng)性不強(qiáng),并且手工設(shè)計(jì)的特征需要大量的先驗(yàn)知識(shí),相比手工設(shè)計(jì)特征,在訓(xùn)練過程中卷積神經(jīng)網(wǎng)絡(luò)可以自主學(xué)習(xí)和調(diào)整來提取特征和識(shí)別[4],可以在識(shí)別任務(wù)中得到更高的準(zhǔn)確率,具有更好的魯棒性?;诰矸e神經(jīng)網(wǎng)絡(luò)的方法,例如:孔月瑤等人[5]使用非對(duì)稱雙通道卷積神經(jīng)網(wǎng)絡(luò)來識(shí)別交通標(biāo)志,在GTSRB數(shù)據(jù)集上的準(zhǔn)確率達(dá)到97.89%,識(shí)別每張圖片的時(shí)間為14ms。伍錫如等人[6]結(jié)合Single-linkage和CNN來對(duì)交通標(biāo)志進(jìn)行識(shí)別,在GTSRB數(shù)據(jù)庫上的準(zhǔn)確率為98.51%,識(shí)別每張圖片的時(shí)間為20ms。Girasan等人[7]將多個(gè)CNN并列在一起,構(gòu)造多列深度CNN,在GTSRB數(shù)據(jù)庫上實(shí)現(xiàn)了很好的分類效果,準(zhǔn)確率達(dá)到了99.46%,但是識(shí)別速度不滿足實(shí)際應(yīng)用需求,識(shí)別每張圖片需要690ms。隨著交通標(biāo)志識(shí)別的準(zhǔn)確率越來越高,模型也越來越復(fù)雜,識(shí)別速度也越來越慢,為了既達(dá)到較高的識(shí)別準(zhǔn)確率又達(dá)到較快的識(shí)別速度,本文設(shè)計(jì)一種簡單高效的識(shí)別模型用于交通標(biāo)志識(shí)別。該模型使用了改進(jìn)的Inception模塊以及多尺度特征融合方式增強(qiáng)網(wǎng)絡(luò)的特征提取能力,使用全局平均池化代替全連接層減小模型的參數(shù)量,簡化模型的結(jié)構(gòu),采用批量歸一化對(duì)數(shù)據(jù)進(jìn)行歸一化處理,加速網(wǎng)絡(luò)的訓(xùn)練。
自從卷積神經(jīng)網(wǎng)絡(luò)廣泛應(yīng)用于圖像分類領(lǐng)域,并取得了很多成果后,人們經(jīng)常構(gòu)造更深層的網(wǎng)絡(luò)去提高模型的準(zhǔn)確率,比如VGG16網(wǎng)絡(luò)。但是隨著卷積神經(jīng)網(wǎng)絡(luò)深度的加深,模型的性能可能退化,并且需要龐大的計(jì)算量,這會(huì)導(dǎo)致網(wǎng)絡(luò)識(shí)別速度下降。針對(duì)以上問題,Inception模塊被提出,它通過增加網(wǎng)絡(luò)的寬度來提高網(wǎng)絡(luò)的識(shí)別性能,Inception V1模塊如圖1所示。它對(duì)輸入特征圖做不同大小的卷積運(yùn)算,然后拼接運(yùn)算結(jié)果,使得網(wǎng)絡(luò)對(duì)尺度的適應(yīng)性增強(qiáng)了,每層的信息變得更加豐富。一般數(shù)據(jù)集中目標(biāo)對(duì)象的尺寸或多或少會(huì)存在差異,而在多個(gè)分支上采用不同大小的卷積核則可以很好地適應(yīng)這種差異。在構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)時(shí),Inception模塊的多分支結(jié)構(gòu)可以避免簡單地堆疊卷積層,引入更多的非線性,減小網(wǎng)絡(luò)過深帶來的過擬合風(fēng)險(xiǎn)。
圖1 Inception V1
為了進(jìn)一步減少網(wǎng)絡(luò)的參數(shù)量,Inception V3模塊在Inception V1的基礎(chǔ)上被提出,如圖2所示。將卷積核分解成非對(duì)稱卷積,比如將3×3大小的卷積核分解成1×3和3×1的兩個(gè)非對(duì)稱的串聯(lián)卷積核,采用非對(duì)稱卷積核的參數(shù)量只為分解前的參數(shù)量的2/3倍,將節(jié)省大約33%的參數(shù)量,并且網(wǎng)絡(luò)的層數(shù)也加深了,增強(qiáng)了網(wǎng)絡(luò)學(xué)習(xí)特征的能力。
圖2 Inception V3
本文在設(shè)計(jì)識(shí)別模型時(shí)會(huì)借鑒Inception V1和Inception V3的思想,使用不同尺寸的卷積核對(duì)輸入特征圖提取特征,然后拼接所有的運(yùn)算結(jié)果,使得網(wǎng)絡(luò)的適應(yīng)性更強(qiáng)以及每層的特征信息更豐富。因?yàn)樵O(shè)計(jì)的識(shí)別模型的層數(shù)相對(duì)較少,所以本文設(shè)計(jì)的Inception模塊不會(huì)采用1×1大小的卷積核對(duì)通道數(shù)進(jìn)行壓縮來使模型的參數(shù)量減小,但是會(huì)通過非對(duì)稱卷積減小模型的參數(shù)量。本文在構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)識(shí)別模型時(shí)使用的Inception模塊如圖3所示。
圖3 改進(jìn)后的Inception模塊
在卷積神經(jīng)網(wǎng)絡(luò)中使用多尺度特征融合可以增強(qiáng)特征的表達(dá)能力,提高網(wǎng)絡(luò)模型的識(shí)別性能。當(dāng)在卷積神經(jīng)網(wǎng)絡(luò)中不使用多尺度特征融合時(shí),高層網(wǎng)絡(luò)提取到的特征對(duì)目標(biāo)細(xì)節(jié)的表達(dá)能力不強(qiáng),這會(huì)導(dǎo)致識(shí)別精度不高。通過多尺度特征融合方式,卷積神經(jīng)網(wǎng)絡(luò)可以結(jié)合底層特征和高層特征的多方面特征信息,使得融合后的高層特征圖里既有位置等細(xì)節(jié)信息又有語義等高級(jí)信息,使得網(wǎng)絡(luò)表達(dá)特征的能力增強(qiáng),可以提高網(wǎng)絡(luò)的識(shí)別精度。圖4是卷積神經(jīng)網(wǎng)絡(luò)中的多尺度特征融合示意圖。
圖4 多尺度特征融合
本文在設(shè)計(jì)識(shí)別模型時(shí)會(huì)使用多尺度特征融合,為了避免識(shí)別目標(biāo)經(jīng)過多次下采樣后導(dǎo)致特征丟失,通過下采樣拼接融合底層特征與高層特征,使得高層特征對(duì)目標(biāo)的表達(dá)能力增強(qiáng),提高模型的識(shí)別精度。
在卷積神經(jīng)網(wǎng)絡(luò)中往往會(huì)使用多個(gè)全連接層,如果輸入圖像的尺寸很大,即使經(jīng)過多個(gè)卷積層和池化層后,在與全連接層進(jìn)行連接時(shí)也會(huì)使得全連接層有過多的參數(shù),網(wǎng)絡(luò)不容易訓(xùn)練,也會(huì)出現(xiàn)過擬合現(xiàn)象。為了解決這些問題,可以使用全局平均池化代替全連接層,它的運(yùn)算過程如圖5所示,設(shè)置池化核的長和寬與輸入特征圖相等,然后對(duì)特征圖的所有像素點(diǎn)求平均值后輸出,這樣會(huì)使得輸入特征圖被降采樣到1×1×C,從而達(dá)到減小模型參數(shù)量的目的。
圖5 全局平均池化
本文設(shè)計(jì)識(shí)別模型時(shí)會(huì)使用全局平均池化代替卷積神經(jīng)網(wǎng)絡(luò)中的全連接層,簡化模型的結(jié)構(gòu),減少網(wǎng)絡(luò)的參數(shù)量。
卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練時(shí)會(huì)通過反向傳播更新每一層網(wǎng)絡(luò)的參數(shù),這將導(dǎo)致每一層網(wǎng)絡(luò)的數(shù)據(jù)分布會(huì)一直發(fā)生變化,這會(huì)降低網(wǎng)絡(luò)的訓(xùn)練速度。針對(duì)該現(xiàn)象,本文采用批量歸一化對(duì)識(shí)別模型進(jìn)行優(yōu)化處理。批量歸一化(Batch Normalization,BN)方法可以統(tǒng)一分散的數(shù)據(jù),在卷積神經(jīng)網(wǎng)絡(luò)中激活函數(shù)之前使用批量歸一化方法可以規(guī)整每一層的計(jì)算結(jié)果到統(tǒng)一區(qū)間,避免數(shù)據(jù)發(fā)散,使得網(wǎng)絡(luò)能夠快速收斂,網(wǎng)絡(luò)訓(xùn)練過程更加穩(wěn)定,避免出現(xiàn)梯度消失或者梯度爆炸的問題。BN算法在每層輸入時(shí)加上批量歸一化層,使其每一層均值為0,標(biāo)準(zhǔn)差為1,保證數(shù)據(jù)穩(wěn)定分布。BN算法步驟如下:
(1)輸入:一個(gè)批量的樣本:B={x1,x2,…xm}
(2)輸出:yi=BNγ,β()xi,具體步驟:
a)計(jì)算批量B的均值:μB=
d)進(jìn)行縮放和平移:yi=
本章在設(shè)計(jì)識(shí)別模型時(shí)使用BN算法,將BN層添加在每一個(gè)激活函數(shù)之前,加快模型的收斂速度。
本文借鑒Inception模塊,多尺度特征融合,全局平均池化的思想,設(shè)計(jì)了如圖6所示的識(shí)別模型。并且在識(shí)別模型中采用BN算法來加速訓(xùn)練,使用relu激活函數(shù)。
圖6 識(shí)別模型的整體結(jié)構(gòu)
識(shí)別模型一共有9層,包括4個(gè)卷積層、3個(gè)最大池化層、1個(gè)全局平均池化層以及1個(gè)全連接層(使用softmax進(jìn)行分類),具體說明如下:
(1)第一層和第七層:卷積層,卷積核大小為3×3,卷積核的個(gè)數(shù)分別為64、256;
(2)第二、四、六層:最大池化層,池化核的大小為2×2,步長為2,對(duì)輸入特征圖進(jìn)行下采樣;
(3)第三層和第五層:改進(jìn)后的Inception模塊,它由四部分組成,第一部分是卷積層,卷積核大小為1×1;第二部分是非對(duì)稱卷積,卷積核大小分別為1×3、3×1;第三部分是非對(duì)稱卷積,卷積核大小分別為1×5、5×1;第四部分先是平均池化層,池化核大小為3×3,然后是卷積層,卷積核大小為1×1。第三層和第五層輸出的特征圖數(shù)目分別為128、256;
(4)第八層是全局平均池化層,代替全連接層減少模型的參數(shù)量;
(5)第九層是全連接層,使用softmax激活函數(shù)進(jìn)行分類;
(6)特征融合:使用平均池化對(duì)第四層最大池化層輸出的特征圖進(jìn)行下采樣,然后使用特征拼接的方式將其與第六層最大池化層輸出的特征圖進(jìn)行特征融合,增強(qiáng)網(wǎng)絡(luò)表達(dá)特征的能力。
德國交通標(biāo)志識(shí)別數(shù)據(jù)集(GTSRB)廣泛應(yīng)用于交通標(biāo)志識(shí)別研究中,它包含43類交通標(biāo)志,數(shù)據(jù)集中一共有51839張圖片,其中有39309張訓(xùn)練集圖片和12630張測(cè)試集圖片。
本次實(shí)驗(yàn)在服務(wù)器上訓(xùn)練,服務(wù)器采用的操作系統(tǒng)為Ubuntu系統(tǒng),版本為16.04,服務(wù)器上有4個(gè)型號(hào)為NVIDIA 1080Ti的GPU。識(shí)別模型算法由Keras深度學(xué)習(xí)框架和TensorFlow開源庫實(shí)現(xiàn),編程語言為python3.8。模型的訓(xùn)練參數(shù)設(shè)置如表1所示。
表1 模型訓(xùn)練參數(shù)設(shè)置
識(shí)別模型在GTSRB數(shù)據(jù)集上訓(xùn)練時(shí)的準(zhǔn)確率和損失變化曲線如圖7所示。由圖7可知,在訓(xùn)練的前幾輪中模型的損失不斷下降,準(zhǔn)確率逐步提升,隨著訓(xùn)練輪數(shù)的增加,模型的準(zhǔn)確率趨近于1,模型的損失趨向于0。
圖7 準(zhǔn)確率和損失變化曲線
將訓(xùn)練好的模型對(duì)GTSRB數(shù)據(jù)集中的12630張測(cè)試集圖片進(jìn)行測(cè)試,得到模型的識(shí)別準(zhǔn)確率為99.6%,識(shí)別完所有的測(cè)試圖片需要2.8s,識(shí)別每張圖片所需的時(shí)間大約為0.22ms。實(shí)驗(yàn)結(jié)果表明,本文設(shè)計(jì)的識(shí)別模型的識(shí)別準(zhǔn)確率高,識(shí)別速度快。
為了驗(yàn)證識(shí)別模型的結(jié)構(gòu)優(yōu)勢(shì),進(jìn)行自對(duì)比實(shí)驗(yàn)。即在原識(shí)別模型的基礎(chǔ)上分別去掉改進(jìn)的Inception模塊、多尺度特征融合結(jié)構(gòu)、全局平均池化以及BN層形成新的對(duì)比模型,在GTSRB數(shù)據(jù)集上保持訓(xùn)練參數(shù)不變并且在同樣的實(shí)驗(yàn)環(huán)境下進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果如表2所示。
從實(shí)驗(yàn)結(jié)果可知,識(shí)別模型在去掉Inception模塊時(shí),識(shí)別準(zhǔn)確率下降了1.43%,去掉Inception模塊會(huì)使得識(shí)別模型的深度和寬度都減少,此時(shí)模型提取目標(biāo)特征的能力下降,識(shí)別準(zhǔn)確率會(huì)降低。識(shí)別模型在去掉多尺度特征融合后,識(shí)別準(zhǔn)確率下降了0.53%,不使用多尺度特征融合時(shí),識(shí)別目標(biāo)經(jīng)過多次下采樣后會(huì)丟失特征,使得高層特征對(duì)目標(biāo)細(xì)節(jié)信息的表達(dá)能力不強(qiáng),識(shí)別準(zhǔn)確率會(huì)有所下降。BN層主要用來將每一層網(wǎng)絡(luò)的數(shù)據(jù)分布規(guī)整到統(tǒng)一區(qū)間,加快網(wǎng)絡(luò)的收斂速度,去掉BN層后對(duì)網(wǎng)絡(luò)識(shí)別準(zhǔn)確率的影響不大,識(shí)別準(zhǔn)確率只下降了0.35%。識(shí)別模型在去掉全局平均池化層后,識(shí)別準(zhǔn)確率下降了0.28%,使用全局平均池化層主要是為了減小模型的參數(shù)量,因此去掉該層后模型的識(shí)別準(zhǔn)確率下降最少。
由表2可知改進(jìn)的Inception模塊、多尺度特征融合、全局平均池化以及BN層均能不同程度地提升識(shí)別模型的準(zhǔn)確率,其中改進(jìn)的Inception模塊對(duì)模型的準(zhǔn)確率的提升貢獻(xiàn)最大。
為了驗(yàn)證識(shí)別模型的識(shí)別分類性能,在GTSRB數(shù)據(jù)集上與其他交通標(biāo)志識(shí)別方法進(jìn)行識(shí)別準(zhǔn)確率和識(shí)別時(shí)間的比較,各個(gè)模型的識(shí)別準(zhǔn)確率和識(shí)別時(shí)間的對(duì)比如表3所示。
由表3可知其他的交通標(biāo)志識(shí)別算法雖然使用一些方法對(duì)模型進(jìn)行了優(yōu)化并且取得了一些進(jìn)展,但是不能保持識(shí)別準(zhǔn)確率高和識(shí)別速度快的平衡,比如,文獻(xiàn)[7]模型的識(shí)別準(zhǔn)確率高,但是識(shí)別速度慢,文獻(xiàn)[8]模型的識(shí)別速度快,但是識(shí)別準(zhǔn)確率不高。本文設(shè)計(jì)的算法可以很好地兼顧識(shí)別準(zhǔn)確率高和識(shí)別速度快的要求,在識(shí)別準(zhǔn)確率和識(shí)別速度方面都達(dá)到了最優(yōu)。
表3 GTSRB數(shù)據(jù)集上不同算法的識(shí)別性能比較
交通標(biāo)志識(shí)別是交通標(biāo)志識(shí)別系統(tǒng)的重要組成部分。為了提高交通標(biāo)志的識(shí)別準(zhǔn)確率和識(shí)別速度,提出了基于卷積神經(jīng)網(wǎng)絡(luò)的交通標(biāo)志識(shí)別算法,設(shè)計(jì)了一個(gè)識(shí)別率高、識(shí)別速度快的識(shí)別模型。使用了改進(jìn)的Inception模塊、多尺度特征融合以及全局平均池化來構(gòu)建識(shí)別模型,采用BN算法進(jìn)行數(shù)據(jù)歸一化處理,加速模型訓(xùn)練。與其他交通標(biāo)志識(shí)別算法的對(duì)比實(shí)驗(yàn)驗(yàn)證了本文設(shè)計(jì)的識(shí)別模型的優(yōu)越性,它識(shí)別交通標(biāo)志的準(zhǔn)確率高、速度快,是一個(gè)高效的卷積神經(jīng)網(wǎng)絡(luò)識(shí)別模型。自對(duì)比實(shí)驗(yàn)驗(yàn)證了識(shí)別模型的結(jié)構(gòu)優(yōu)勢(shì),其中改進(jìn)的Inception模塊對(duì)于模型準(zhǔn)確率的提升貢獻(xiàn)最大,而改進(jìn)的Inception模塊是以增加網(wǎng)絡(luò)的寬度來提升網(wǎng)絡(luò)的性能的,在后續(xù)的研究中將嘗試增加網(wǎng)絡(luò)的深度來提升網(wǎng)絡(luò)的識(shí)別性能,在識(shí)別模型中嘗試使用Residual模塊、CSPNet模塊來增加網(wǎng)絡(luò)的深度,進(jìn)一步提升模型的識(shí)別效果。