田 晟,宋 霖
(華南理工大學(xué) 土木與交通學(xué)院,廣東 廣州 510641)
近年來(lái),自動(dòng)駕駛領(lǐng)域的研究迅速發(fā)展,交通標(biāo)志識(shí)別作為智能交通系統(tǒng)的重要研究方向之一,其準(zhǔn)確性對(duì)于自動(dòng)駕駛的安全性至關(guān)重要,對(duì)交通標(biāo)志進(jìn)行特征提取并通過(guò)分類器識(shí)別可以進(jìn)一步提高行車安全。交通標(biāo)志早期的主要識(shí)別方法有模板匹配法——Alam等[1]通過(guò)傳統(tǒng)的模板匹配法簡(jiǎn)單快速實(shí)現(xiàn)交通標(biāo)志識(shí)別,通過(guò)模板在圖像像素點(diǎn)上進(jìn)行搜索匹配?;跈C(jī)器學(xué)習(xí)的方法在圖像識(shí)別領(lǐng)域也取得了較大進(jìn)展,主要采用人工進(jìn)行特征提取和機(jī)器學(xué)習(xí)相結(jié)合的方法。交通標(biāo)志特征主要有SIFT(scale-invariant feature transform)、HOG(histogram of oriented gradient)、LBP(local binary patterns)等[2],人工實(shí)現(xiàn)特征提取用于去除無(wú)用信息,并將這些特征輸入分類器進(jìn)行識(shí)別,如支持向量機(jī)、K近鄰(KNearest Neighbor)、隨機(jī)森林、Adaboost(adaptive boosting)等[3-8]基于機(jī)器學(xué)習(xí)的算法。韓習(xí)習(xí)等[9]提出一種多特征融合并利用支持向量機(jī)分類的方法,Da Silva等[10]的隨機(jī)森林法,Xu等[11]的Adaboost方法均取得了較好的識(shí)別效果,但都需一定的經(jīng)驗(yàn)知識(shí)。
深度學(xué)習(xí)無(wú)需較多人工處理,網(wǎng)絡(luò)提取的深度特征可以更全面適應(yīng)于交通標(biāo)志,識(shí)別準(zhǔn)確率高,近些年在目標(biāo)分割、目標(biāo)檢測(cè)、目標(biāo)分類[12-15]等領(lǐng)域發(fā)展較為迅速。Li等[16]利用一種多層特征融合的方法,將全局特征和局部特征進(jìn)行融合,以此改進(jìn)Lenet網(wǎng)絡(luò),準(zhǔn)確率相比未改進(jìn)Lenet提高了3.03%;Stallkamp等[17]在德國(guó)交通標(biāo)志數(shù)據(jù)庫(kù)GTSRB(German traffic sign benchmarks)中提出的卷積神經(jīng)網(wǎng)絡(luò)(CNN)較人眼識(shí)別率提高了0.24%;Zhang等[18]從預(yù)測(cè)精度和時(shí)間出發(fā),提出輕量級(jí)深度學(xué)習(xí)模型教師網(wǎng)絡(luò)和學(xué)生網(wǎng)絡(luò),且可應(yīng)用于移動(dòng)嵌入式設(shè)備;Zhou等[19]在GTSRB數(shù)據(jù)集上,在卷積層后增加池化和Dropout機(jī)制以改善單個(gè)VGG模型;He等[20]提出ResNet模型以用于解決模型訓(xùn)練過(guò)程中隨著網(wǎng)絡(luò)層數(shù)加深導(dǎo)致的預(yù)測(cè)效果退化現(xiàn)象;鄧文軒等[21]引入注意力機(jī)制提出圖像分類降維方法;Gámez Serna等[22]匯總了歐洲多國(guó)的交通標(biāo)志數(shù)據(jù)集,在此數(shù)據(jù)集的基礎(chǔ)上比較LeNet5、IDSIA、URV等5種卷積神經(jīng)網(wǎng)絡(luò)架構(gòu)的分類性能;Xu等[23]用直方圖均衡化方法增強(qiáng)圖像細(xì)節(jié),并利用卷積神經(jīng)網(wǎng)絡(luò)實(shí)現(xiàn)交通標(biāo)志識(shí)別;Sapijaszko等[24]利用DWT和DCT 2種變換實(shí)現(xiàn)特征提取,利用多層感知機(jī)在TSRD(traffic sign recogntion database)數(shù)據(jù)集上的最優(yōu)準(zhǔn)確率達(dá)到94.90%。公開(kāi)模型通過(guò)大量實(shí)驗(yàn)得到,對(duì)數(shù)據(jù)進(jìn)行特征提取進(jìn)而完成相應(yīng)的任務(wù),目前單個(gè)模型的預(yù)測(cè)已較為成熟,對(duì)模型集成的方法還有待進(jìn)一步深入。
集成學(xué)習(xí)可以實(shí)現(xiàn)分類器結(jié)合,從而提升分類效果,主要存在串行和并行集成2類,串行的代表算法是Boosting系列算法,并行的主要代表是Bagging和隨機(jī)森林(random forest),都具有較好的數(shù)據(jù)適應(yīng)性。鄺先驗(yàn)等[25]基于Adaboost算法實(shí)現(xiàn)混合交通道路上車輛的識(shí)別;Tong等[26]采取的CNN-SVM方法速度快,準(zhǔn)確率較高;張功國(guó)等[27]利用SVM分類器代替Softmax,將改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)與SVM分類器集成,實(shí)現(xiàn)單幅交通標(biāo)志測(cè)試時(shí)間僅1.32 ms;屈治華等[28]利用CapsNet作為基分類器構(gòu)建Bagging集成框架,以提升算法的整體預(yù)測(cè)精度;Palak等[29]對(duì)目前存在的主要方法進(jìn)行總結(jié),并指出還存在更多模型方法可進(jìn)行實(shí)驗(yàn)嘗試,在部分小批量數(shù)據(jù)集上遷移學(xué)習(xí)效果并不比其他模型的效果更好。為進(jìn)一步改善類別預(yù)測(cè)精度,本文將改進(jìn)的卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用于交通標(biāo)志特征提取,利用Bagging集成分類器實(shí)現(xiàn)交通標(biāo)志分類,得到一個(gè)用于道路交通標(biāo)志識(shí)別較新的參考方案。
卷積神經(jīng)網(wǎng)絡(luò)是通過(guò)模擬生物神經(jīng)系統(tǒng)進(jìn)行特殊設(shè)計(jì)的一種網(wǎng)絡(luò)模型,主要包含輸入層、卷積層、池化層、全連接層以及輸出層,在圖像特征提取過(guò)程中不需要人工思考具體特征,可直接用于二維圖像處理,可作用于原始輸入數(shù)據(jù),例如圖像的像素值。卷積神經(jīng)網(wǎng)絡(luò)與其他神經(jīng)網(wǎng)絡(luò)最大的區(qū)別是在整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)中引入卷積層,可以作為中間隱層的特征輸入,在圖像分類問(wèn)題中,一般輸入主要是圖像尺寸和通道數(shù)的乘積,輸出層神經(jīng)元的節(jié)點(diǎn)個(gè)數(shù)是根據(jù)具體任務(wù)設(shè)計(jì)的,輸出層可以是單個(gè)或多個(gè)分類器的集成。
在機(jī)器學(xué)習(xí)領(lǐng)域,大部分任務(wù)都存在一定的相關(guān)性,因此通過(guò)某種方式將已有模型的參數(shù)載入新模型,優(yōu)化模型學(xué)習(xí)效率,實(shí)現(xiàn)相應(yīng)項(xiàng)目需求存在一定的參考價(jià)值。在交通標(biāo)志識(shí)別任務(wù)中,考慮加載大型數(shù)據(jù)集ImageNet上訓(xùn)練好的特征參數(shù),將已有參數(shù)作為初始訓(xùn)練權(quán)重,并將圖像數(shù)據(jù)歸一化至[0,1],消除部分樣本數(shù)據(jù)的影響,進(jìn)而訓(xùn)練整個(gè)模型,實(shí)現(xiàn)交通標(biāo)志識(shí)別領(lǐng)域的遷移學(xué)習(xí)。本文采用VGG16和ResNet50進(jìn)行遷移學(xué)習(xí)對(duì)比。
為準(zhǔn)確估計(jì)交通標(biāo)志類別,通過(guò)將淺層網(wǎng)絡(luò)處采用2層卷積層,利用最大池化進(jìn)行下采樣,添加Dropout隨機(jī)失活某些神經(jīng)元節(jié)點(diǎn),以改進(jìn)最早提出的卷積神經(jīng)網(wǎng)絡(luò)Lenet模型。為尋求應(yīng)用于中小型數(shù)據(jù)集較好的網(wǎng)絡(luò)模型。改進(jìn)的網(wǎng)絡(luò)模型設(shè)計(jì)共包含4層卷積層、2層最大池化層、1層flatten展平層、2層全連接層、1層Softmax分類層,采用交叉熵?fù)p失函數(shù)和Adam優(yōu)化器用于模型訓(xùn)練。為實(shí)現(xiàn)不同分類器的分類效果對(duì)比測(cè)試,可提取全連接層的特征用于其他分類器測(cè)試,提出的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。
圖1 卷積神經(jīng)網(wǎng)絡(luò)基本結(jié)構(gòu)
集成學(xué)習(xí)通過(guò)某種策略結(jié)合多個(gè)個(gè)體學(xué)習(xí)器提高整體的泛化性能以完成學(xué)習(xí)任務(wù)。在機(jī)器學(xué)習(xí)分類任務(wù)中,常用的集成學(xué)習(xí)方法主要有串行和并行2種方式,目前較流行的集成方法有Boosting、Bagging、Stacking等。串行的Boosting提升算法主要有通過(guò)更改每一次迭代過(guò)程中實(shí)例的權(quán)重實(shí)現(xiàn)更好地?cái)M合,和使用新的分類器去擬合之前分類器預(yù)測(cè)殘差的方法2類;由于在測(cè)試過(guò)程中多數(shù)模型過(guò)擬合,為降低數(shù)據(jù)噪聲的影響,本文采用裝袋法(Bagging),即在CNN網(wǎng)絡(luò)提取的特征條件下,采用軟投票機(jī)制,將分類器估算的類別概率在所有單個(gè)分類器上求平均得出概率最高的類別,以聚合不同的分類器進(jìn)行類別預(yù)測(cè)。
集成學(xué)習(xí)的預(yù)測(cè)結(jié)果一般優(yōu)于單個(gè)預(yù)測(cè)器,常用的集成方式是訓(xùn)練一組單個(gè)決策樹(shù)分類器并通過(guò)投票機(jī)制得到最終預(yù)測(cè)結(jié)果。集成的個(gè)體分類器可以是同種類型的,也可以集成不同類型的學(xué)習(xí)器。為進(jìn)一步探索有效方案,設(shè)計(jì)一種異質(zhì)集成方法,訓(xùn)練集樣本采取交通標(biāo)志的圖像數(shù)據(jù),每輪利用有放回抽樣方式從樣本中選取數(shù)據(jù),分別對(duì)單個(gè)分類器進(jìn)行訓(xùn)練,且采用并行集成方式實(shí)現(xiàn)最終類別概率預(yù)測(cè)。并行集成結(jié)構(gòu)如圖2所示。
圖2 Bagging集成基本結(jié)構(gòu)
Bagging集成用于不同種類的分類器上,利用有樣本放回的采樣方式對(duì)樣本特征數(shù)據(jù)實(shí)現(xiàn)多次采樣,通過(guò)模型聚合以降低單個(gè)分類器較高的方差,獲得比單個(gè)分類器更好的類別預(yù)測(cè)性能。
Logistic回歸模型在二分類及多分類問(wèn)題上目前已經(jīng)得到十分廣泛的應(yīng)用,具有計(jì)算速度快、實(shí)現(xiàn)簡(jiǎn)單、穩(wěn)健性良好的特點(diǎn),對(duì)數(shù)據(jù)條件要求較低,但較容易欠擬合。該模型主要是利用最大似然估計(jì)法對(duì)模型參數(shù)進(jìn)行估計(jì),通過(guò)修改Logistic損失函數(shù)以得到Logistic回歸的多分類版本,回歸模型可以表示為
(1)
式中:Z=β0+β1X1+ …+βnXn;β0表示常數(shù)項(xiàng),β1,β2, …,βn表示回歸系數(shù),X1,X2, …,Xn表示特征變量。
K近鄰算法根據(jù)距離待預(yù)測(cè)樣本最近的K個(gè)鄰居樣本的類別,獲取待預(yù)測(cè)樣本類別的最大概率值。首先通過(guò)歐式距離公式計(jì)算出K個(gè)鄰居樣本與待預(yù)測(cè)樣本A的距離,計(jì)算公式可以表示為
(2)
式中:p是樣本特征向量的維度;x和y是2個(gè)不同的特征向量。然后取距離樣本最近K個(gè)點(diǎn)記為B,最終計(jì)算B中樣本的類別預(yù)測(cè)數(shù)量,取預(yù)測(cè)類別概率最大的作為樣本A的類別預(yù)測(cè)結(jié)果。該分類算法的理論較為成熟,具有對(duì)異常值不敏感的優(yōu)點(diǎn),但其計(jì)算復(fù)雜性高,空間復(fù)雜度較高。
1995年,Vapnik最早提出支持向量機(jī)(SVM),通過(guò)劃分超平面以區(qū)分樣本類別,具有良好的泛化能力。在提出的方法中,CNN全連接層的Softmax激活函數(shù)改用SVM作為最終分類器之一。非線性SVM將CNN層輸出的特征數(shù)據(jù)作為輸入,構(gòu)建最大軟間隔分離超平面,在高維特征空間里完成最終的交通標(biāo)志分類,優(yōu)化目標(biāo)的數(shù)學(xué)模型為:
(3)
式中:C為引入的懲罰參數(shù),ξi為松弛變量,xi為第i個(gè)樣本點(diǎn)的坐標(biāo),yi為第i個(gè)樣本點(diǎn)的類別,w和b為待求解的參數(shù),N為樣本點(diǎn)的總數(shù)。K(xi,xj)=Φ(xi)×Φ(xj)為核函數(shù),以替換線性支持向量機(jī)對(duì)偶問(wèn)題形式中的內(nèi)積,將線性支持向量機(jī)擴(kuò)展到非線性支持向量機(jī),得到對(duì)偶問(wèn)題是
(4)
式中:α為拉格朗日乘子。首先通過(guò)偏導(dǎo)求解對(duì)偶問(wèn)題得到最優(yōu)參數(shù)α*,然后求原始問(wèn)題最優(yōu)解w*和b*,并通過(guò)使用高斯徑向基核函數(shù)K(xi,xj)=exp(-‖xi-xj‖2/2σ2)替代內(nèi)積,以分類決策函數(shù)判別樣本x的類別,構(gòu)建的分類決策函數(shù)為
(5)
本文提出一種基于CNN網(wǎng)絡(luò)和Bagging模型融合的交通標(biāo)志識(shí)別算法。該算法面向?qū)嶋H工程應(yīng)用,通過(guò)盡量減少神經(jīng)網(wǎng)絡(luò)中卷積層的數(shù)量提高運(yùn)行速度,利用CNN網(wǎng)絡(luò)提取特征,構(gòu)建基于Bagging的集成學(xué)習(xí)模型,所有進(jìn)行實(shí)驗(yàn)的模型均采用交叉熵函數(shù)作為損失函數(shù)。
在經(jīng)過(guò)預(yù)處理的交通標(biāo)志圖像數(shù)據(jù)集上,通過(guò)卷積神經(jīng)網(wǎng)絡(luò)提取特征,以Bagging方式集成多項(xiàng)Logistic、K近鄰和SVM分類器實(shí)現(xiàn)對(duì)交通標(biāo)志的識(shí)別,利用不同分類模型各自優(yōu)勢(shì),對(duì)多個(gè)分類器實(shí)現(xiàn)投票表決,保存各模型的參數(shù)和預(yù)測(cè)結(jié)果,實(shí)現(xiàn)對(duì)模型的效果評(píng)估,實(shí)驗(yàn)表明利用提取的特征進(jìn)行多模型集成分類時(shí)在驗(yàn)證集和測(cè)試集上有較好的效果,其中交通標(biāo)志識(shí)別算法的流程見(jiàn)圖3。
圖3 基于CNN-Bagging的交通標(biāo)志識(shí)別算法流程
為了確定模型不同時(shí)期的效果,采用類別預(yù)測(cè)的準(zhǔn)確率(Accuracy)、損失值(Loss)和調(diào)和平均數(shù)(F1-Score)作為評(píng)價(jià)指標(biāo)。
1)準(zhǔn)確率的計(jì)算公式可以表示為
(6)
式中:NTP指預(yù)測(cè)標(biāo)簽和真實(shí)標(biāo)簽都為正例;NTN指預(yù)測(cè)標(biāo)簽和真實(shí)標(biāo)簽都為反例;NFN是指預(yù)測(cè)的是反例而實(shí)際是正例;NFP是指預(yù)測(cè)是正例而實(shí)際是反例。
2)損失值函數(shù)主要是將真實(shí)類別做獨(dú)熱編碼,并與預(yù)測(cè)類別概率的對(duì)數(shù)值相乘,對(duì)每個(gè)類別求和后取相反值,具體計(jì)算公式為
(7)
式中:i是第i個(gè)樣本;j是第j個(gè)類;t是真實(shí)標(biāo)簽;p是卷積神經(jīng)網(wǎng)絡(luò)分類層求出的第j個(gè)類的預(yù)測(cè)值。
3)F1-Score為預(yù)測(cè)準(zhǔn)確率和召回率的調(diào)和平均值,范圍是0~1,數(shù)值越大表明模型效果越好,具體計(jì)算公式為
(8)
式中:ηPrecision為預(yù)測(cè)準(zhǔn)確率,指模型預(yù)測(cè)為正樣本的結(jié)果中,實(shí)際標(biāo)簽是正樣本所占的百分比;ηRecall指召回率,指所有實(shí)際標(biāo)簽為正樣本的結(jié)果中,預(yù)測(cè)為正樣本所占的百分比。
本文采用公開(kāi)的國(guó)內(nèi)交通標(biāo)志數(shù)據(jù)庫(kù)CTSD(Chinese traffic sign database)中用于交通標(biāo)志識(shí)別的數(shù)據(jù)集TSRD(traffic sign recogntion database),該數(shù)據(jù)庫(kù)共包含6 164幅交通標(biāo)志圖像,其中,訓(xùn)練數(shù)據(jù)庫(kù)包含4 170張不同種類的交通標(biāo)志圖像,測(cè)試集交通標(biāo)志圖像共1 994張。該數(shù)據(jù)集主要由警告標(biāo)志、指示標(biāo)志及禁令標(biāo)志組成,各標(biāo)志的尺寸大小不一致,數(shù)據(jù)庫(kù)中所有圖像都標(biāo)注了符號(hào)和類別信息。利用Python隨機(jī)選取數(shù)據(jù)庫(kù)中24張圖像,顯示出此數(shù)據(jù)庫(kù)的部分交通標(biāo)志見(jiàn)圖4。
圖4 TSRD部分交通標(biāo)志
TSRD交通標(biāo)志數(shù)據(jù)庫(kù)共有58個(gè)類別,具體每個(gè)類別的交通標(biāo)志種類數(shù)見(jiàn)圖5。圖5中橫軸是指交通標(biāo)志類別所對(duì)應(yīng)的編號(hào)種類,如編號(hào)數(shù)0指限速5 km/h,編號(hào)數(shù)30是指自行車道,編號(hào)數(shù)50是指有人看守鐵路道口交通標(biāo)志,縱軸是指每個(gè)類別交通標(biāo)志的圖像數(shù)量,可以看出訓(xùn)練集中第9類、第25類和第53類的圖像數(shù)量較少,第28個(gè)類別機(jī)動(dòng)車道指示牌數(shù)據(jù)量最多,其他類別的標(biāo)志數(shù)量明顯少于該類,故需對(duì)部分圖像數(shù)據(jù)進(jìn)行擴(kuò)充處理,得到更加大的數(shù)據(jù)庫(kù)用于模型訓(xùn)練。
圖5 TSRD訓(xùn)練集交通標(biāo)志種類分布
圖6是測(cè)試集的交通標(biāo)志種類分布圖,測(cè)試集的交通標(biāo)志圖像分布于訓(xùn)練集大致相同,總測(cè)試集數(shù)量約為訓(xùn)練集的1/2,訓(xùn)練集和測(cè)試集的比例分布存在一定優(yōu)化空間,在圖像預(yù)處理時(shí)需要加強(qiáng)訓(xùn)練集,以實(shí)現(xiàn)網(wǎng)絡(luò)提取適用于最終測(cè)試集評(píng)估的特征。
圖6 TSRD測(cè)試集交通標(biāo)志種類分布
由于交通標(biāo)志的類別數(shù)不均衡,測(cè)試集中部分類別的交通標(biāo)志數(shù)據(jù)集樣本較少,為獲取更多圖像數(shù)據(jù),防止模型過(guò)擬合,通過(guò)網(wǎng)絡(luò)爬蟲技術(shù)爬取對(duì)應(yīng)數(shù)量較少的交通標(biāo)志以實(shí)現(xiàn)數(shù)據(jù)集的擴(kuò)充。首先設(shè)置初始URL(uniform resource locator),并修改請(qǐng)求的headers偽裝成瀏覽器訪問(wèn),正則解析以匹配圖像的具體內(nèi)容,利用Requests模塊獲取圖像保存至文件夾,最終通過(guò)人工方式篩選所需圖像,爬取網(wǎng)絡(luò)交通標(biāo)志圖像的流程如圖7所示。
圖7 交通標(biāo)志圖像爬蟲流程
在嘗試使用圖像增強(qiáng)如圖像偏移、隨機(jī)縮放圖像范圍、設(shè)置剪切角、隨機(jī)旋轉(zhuǎn)操作對(duì)訓(xùn)練集進(jìn)行擴(kuò)充之后,將其應(yīng)用在模型訓(xùn)練過(guò)程中反而出現(xiàn)預(yù)測(cè)效果變差的現(xiàn)象,為了不丟失圖像顏色信息,以及防止翻轉(zhuǎn)圖像產(chǎn)生一些不必要的錯(cuò)誤信息,主要對(duì)圖像進(jìn)行縮放變換以進(jìn)一步擴(kuò)充數(shù)據(jù)集,實(shí)現(xiàn)交通標(biāo)志圖像數(shù)據(jù)集的增強(qiáng),以改善圖像的樣本多樣性,同時(shí)經(jīng)過(guò)數(shù)據(jù)集歸一化處理可以適應(yīng)于神經(jīng)網(wǎng)絡(luò)訓(xùn)練,通過(guò)Python語(yǔ)言隨機(jī)選取一些圖像進(jìn)行展示,其中部分圖片的處理效果如圖8所示。
圖8 圖像縮放變換
在進(jìn)行遷移學(xué)習(xí)時(shí)需適當(dāng)調(diào)節(jié)輸入特征尺寸以滿足模型訓(xùn)練條件,根據(jù)keras官方網(wǎng)站上的說(shuō)明,VGG16和ResNet50模型的圖像輸入尺寸不小于32×32,為保證公平性,將所有模型的輸入圖像大小設(shè)置為32×32,實(shí)驗(yàn)時(shí)將圖像的尺寸縮放為遷移學(xué)習(xí)模型的網(wǎng)絡(luò)輸入標(biāo)準(zhǔn)尺寸,在數(shù)據(jù)輸入之前,還需要對(duì)圖像數(shù)據(jù)進(jìn)行歸一化處理,將所有的像素值縮放到同一個(gè)尺度,以使圖像在經(jīng)過(guò)相同參數(shù)的歸一化處理后變?yōu)橄嗤问綐?biāo)準(zhǔn)圖像,卷積神經(jīng)網(wǎng)絡(luò)得以提取更加穩(wěn)定的圖像特征。
總之,通過(guò)網(wǎng)絡(luò)爬蟲對(duì)不均勻的TSRD數(shù)據(jù)集進(jìn)行擴(kuò)充,主要爬取部分?jǐn)?shù)量特別少的標(biāo)志類別,然后調(diào)用keras.preprocessing.image模塊中的ImageDataGenerator類,以圖像縮放變換為主要方法實(shí)現(xiàn)數(shù)據(jù)集的進(jìn)一步擴(kuò)充,防止模型訓(xùn)練可能產(chǎn)生的擬合不足現(xiàn)象,數(shù)據(jù)擴(kuò)充后具體訓(xùn)練部分每個(gè)類別的交通標(biāo)志如圖9所示。
圖9 TSRD擴(kuò)充訓(xùn)練集交通標(biāo)志種類分布
本實(shí)驗(yàn)使用基于Python語(yǔ)言的Keras深度學(xué)習(xí)框架,硬件環(huán)境CPU為 Intel(R)Core(TM)i5-9400F@2.90 GHz,GPU為 NVIDIA GeForce GTX 1050 Ti顯卡,操作系統(tǒng)為Windows10,Python 版本為3.8.3,利用Pycharm集成開(kāi)發(fā)環(huán)境進(jìn)行編譯,實(shí)驗(yàn)結(jié)果曲線采用matplotlib模塊可視化。
為了減少網(wǎng)絡(luò)訓(xùn)練所用時(shí)間,將CNN圖像輸入尺寸大小利用resize函數(shù)統(tǒng)一為32×32×3的RGB(red-green-blue)3通道彩色圖像,用卷積層提取特征作為基分類器的輸入,通過(guò)調(diào)用機(jī)器學(xué)習(xí)庫(kù)中sklearn模塊對(duì)數(shù)據(jù)集劃分,在擴(kuò)充訓(xùn)練集上將80%的數(shù)據(jù)集用于模型訓(xùn)練,20%作為驗(yàn)證。為保障訓(xùn)練的模型性能,數(shù)據(jù)劃分過(guò)程中將數(shù)據(jù)集隨機(jī)打亂,其中特征數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)為數(shù)組形式,同時(shí)將標(biāo)簽進(jìn)行One-Hot編碼以適應(yīng)模型訓(xùn)練結(jié)構(gòu)。
CNN網(wǎng)絡(luò)模型設(shè)計(jì)的各層參數(shù)見(jiàn)表1,調(diào)用Keras深度學(xué)習(xí)框架下的函數(shù)構(gòu)建模型,通過(guò)callbacks回調(diào)函數(shù)保存訓(xùn)練過(guò)程中每一個(gè)訓(xùn)練時(shí)期的模型參數(shù)文件用于測(cè)試集的測(cè)試,同時(shí)為防止模型過(guò)擬合,通過(guò)網(wǎng)絡(luò)正則化,采用Dropout方式隨機(jī)失活網(wǎng)絡(luò)模型中的部分神經(jīng)元,設(shè)置卷積層的隨機(jī)丟棄概率值為0.25,密集連接層為0.5,為減少運(yùn)行內(nèi)存消耗,將單次訓(xùn)練批次大小設(shè)置為32,另外訓(xùn)練次數(shù)epoch設(shè)置為50。
表1 CNN網(wǎng)絡(luò)模型各層參數(shù)描述
模型訓(xùn)練過(guò)程中,將卷積神經(jīng)網(wǎng)絡(luò)最后一層卷積層提取的512維特征向量作為多項(xiàng)Logistic、K近鄰和SVM的輸入,通過(guò)Bagging集成方式以提高單個(gè)模型的泛化能力,但此種措施訓(xùn)練時(shí)間較長(zhǎng),因此改用最后一層全連接層未經(jīng)Softmax激活的輸出特征,作為最終用于分類器投票集成的特征輸入。通過(guò)在訓(xùn)練集上對(duì)不同分類器集成的大量對(duì)比實(shí)驗(yàn),最終選取3個(gè)基分類器進(jìn)行裝袋法的模型融合實(shí)現(xiàn)各分類器優(yōu)點(diǎn)的充分利用;另外,用于對(duì)比的網(wǎng)絡(luò)模型VGG16和ResNet50輸入圖像大小均為32×32×3,VGG16所有卷積核大小都是一致的,相對(duì)于Alexnet增加了網(wǎng)絡(luò)深度用以提升預(yù)測(cè)性能,網(wǎng)絡(luò)層級(jí)共16層,ResNet50是一個(gè)共50層的殘差卷積網(wǎng)絡(luò),最主要的改進(jìn)是殘差塊設(shè)計(jì),通過(guò)設(shè)置卷積步長(zhǎng)實(shí)現(xiàn)特征矩陣的大小變換,以1×1卷積核實(shí)現(xiàn)特征矩陣的維度變換。由于TSRD數(shù)據(jù)集的樣本量較小,采取已有的在ImageNet數(shù)據(jù)集上訓(xùn)練得到的模型,根據(jù)類別數(shù)量修改最后一層參數(shù),并對(duì)整個(gè)網(wǎng)絡(luò)進(jìn)行訓(xùn)練是一種高效的學(xué)習(xí)方式。本文將基于卷積神經(jīng)網(wǎng)絡(luò)的Bagging融合模型和分別以VGG16、ResNet50網(wǎng)絡(luò)作為基礎(chǔ)架構(gòu)的經(jīng)典模型進(jìn)行比較,用以驗(yàn)證該模型的性能。
為比較基于卷積神經(jīng)網(wǎng)絡(luò)的Bagging融合模型與其他網(wǎng)絡(luò)的性能,在Win10環(huán)境下訓(xùn)練4個(gè)網(wǎng)絡(luò)模型。不同模型訓(xùn)練過(guò)程中驗(yàn)證集訓(xùn)練準(zhǔn)確率和損失值如圖10和圖11所示??梢钥闯?,隨著訓(xùn)練次數(shù)不斷增加,模型在訓(xùn)練過(guò)程驗(yàn)證集上的預(yù)測(cè)準(zhǔn)確率總體上呈現(xiàn)上升趨勢(shì),交叉熵?fù)p失值在前30個(gè)時(shí)期下降后大部分?jǐn)?shù)值都趨于0,故可得出各模型在交通標(biāo)志數(shù)據(jù)集上的訓(xùn)練過(guò)程中均取得了較好的擬合效果。
圖10 訓(xùn)練過(guò)程驗(yàn)證集準(zhǔn)確率
圖11 訓(xùn)練過(guò)程驗(yàn)證集損失值
本文提出的方法主要根據(jù)多次不同實(shí)驗(yàn)得到預(yù)測(cè)結(jié)果,通過(guò)保留預(yù)測(cè)結(jié)果較好的分類器模型,實(shí)現(xiàn)對(duì)多個(gè)分類器中的參數(shù)選取,其中,多項(xiàng)Logistic回歸模型的優(yōu)化算法采取liblinear,隨機(jī)種子數(shù)設(shè)置為42,作為分類器1用于類別預(yù)測(cè);K近鄰方法作為分類器2,方法中的參數(shù)K值根據(jù)人工探索設(shè)定為5;SVM分類器作為分類器3,核函數(shù)采用默認(rèn)的高斯徑向基函數(shù),該函數(shù)可將數(shù)據(jù)映射至高維空間,在高維空間中解決在低維空間中出現(xiàn)的線性不可分問(wèn)題。在分類器確定的條件下,最終通過(guò)Voting Classifier機(jī)制,設(shè)置分類器的權(quán)重比為2∶1∶1,以實(shí)現(xiàn)分類器的最終輸出結(jié)果融合,圖12和圖13為4個(gè)網(wǎng)絡(luò)模型在測(cè)試集上的準(zhǔn)確率和交叉熵?fù)p失值對(duì)比。
圖13 測(cè)試集預(yù)測(cè)損失值
從圖12可以看出,在曲線相對(duì)穩(wěn)定后測(cè)試集上的準(zhǔn)確率低于驗(yàn)證集,出現(xiàn)明顯的過(guò)擬合現(xiàn)象,CNN網(wǎng)絡(luò)和CNN-Bagging集成網(wǎng)絡(luò)在前期的預(yù)測(cè)效果相對(duì)較低,但隨著迭代次數(shù)的增加,預(yù)測(cè)準(zhǔn)確率不斷上升。與其他基礎(chǔ)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)相比,所提出的CNN-Bagging集成模型對(duì)交通標(biāo)志圖像的識(shí)別準(zhǔn)確率最高,更適用于小型交通標(biāo)志數(shù)據(jù)集的學(xué)習(xí)。
圖12 測(cè)試集預(yù)測(cè)準(zhǔn)確率
從圖13可以看出,測(cè)試集預(yù)測(cè)損失值隨著迭代次數(shù)的不斷增加,損失值開(kāi)始逐漸下降,具有更好的擬合效果。圖14是測(cè)試集的F1-Score曲線,與準(zhǔn)確率曲線的走勢(shì)大致相同,同樣發(fā)現(xiàn)CNN-Bagging集成模型的效果優(yōu)于其他模型,實(shí)驗(yàn)通過(guò)已保存的預(yù)測(cè)效果最優(yōu)模型,得到了最優(yōu)模型下的準(zhǔn)確率和損失值,并以最優(yōu)的模型預(yù)測(cè)結(jié)果作為交通標(biāo)志分類任務(wù)的評(píng)價(jià)指標(biāo),各模型的具體結(jié)果見(jiàn)表2。
圖14 測(cè)試集F1-Score值
表2 模型最優(yōu)解
從表2可以看出,基于改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)和Bagging模型融合相對(duì)經(jīng)典的神經(jīng)網(wǎng)絡(luò)模型VGG16和ResNet50在較小的交通標(biāo)志數(shù)據(jù)集上有較大的性能提升,改進(jìn)的模型、未改進(jìn)的CNN模型、ResNet和VGGNet遷移學(xué)習(xí)的預(yù)測(cè)準(zhǔn)確率分別為93.00%、81.01%、82.55%和61.45%。本文提出的融合模型在TSRD交通標(biāo)志數(shù)據(jù)庫(kù)的效果比VGG16和ResNet50更好的原因?yàn)椋?)改進(jìn)的網(wǎng)絡(luò)融合模型結(jié)合了平面卷積神經(jīng)網(wǎng)絡(luò)和機(jī)器學(xué)習(xí)分類器及集成模型的優(yōu)點(diǎn),具有結(jié)構(gòu)簡(jiǎn)單且預(yù)測(cè)結(jié)果較準(zhǔn)確的特點(diǎn)。2)經(jīng)典VGG16和ResNet50網(wǎng)絡(luò)是用于實(shí)現(xiàn)大型數(shù)據(jù)庫(kù)的相應(yīng)任務(wù),其網(wǎng)絡(luò)結(jié)構(gòu)一般較復(fù)雜而且較深,在對(duì)大多數(shù)中小型數(shù)據(jù)庫(kù)進(jìn)行實(shí)驗(yàn)時(shí),通常會(huì)出現(xiàn)過(guò)擬合現(xiàn)象,導(dǎo)致在測(cè)試集上的分類預(yù)測(cè)效果較低。另外,此數(shù)據(jù)集的優(yōu)化還存在進(jìn)一步需要改進(jìn)的地方,后續(xù)將嘗試用裁剪方式或者較流行的算法弱化數(shù)據(jù)集的背景部分,強(qiáng)化圖像數(shù)據(jù)的前景部分。模型還存在一定的改進(jìn)空間,特別是用于提取特征的基礎(chǔ)模型,在后續(xù)研究中需要進(jìn)一步提升模型性能,以提升整體預(yù)測(cè)準(zhǔn)確率。
交通標(biāo)志的識(shí)別準(zhǔn)確率受到多種因素影響,不同的交通標(biāo)志數(shù)據(jù)集對(duì)模型訓(xùn)練的效果存在較大影響,為進(jìn)一步提升識(shí)別準(zhǔn)確率,防止模型過(guò)擬合,利用網(wǎng)絡(luò)爬蟲和圖像增強(qiáng)方式對(duì)原始數(shù)據(jù)集進(jìn)行擴(kuò)充,通過(guò)添加Dropout層隨機(jī)失活部分神經(jīng)元,使用Relu激活函數(shù)代替Sigmoid以解決可能的梯度消失問(wèn)題,減少整個(gè)模型的計(jì)算量。本文利用改進(jìn)卷積神經(jīng)網(wǎng)絡(luò)的方法實(shí)現(xiàn)高質(zhì)量圖像特征自動(dòng)提取,并通過(guò)Bagging模型融合對(duì)公開(kāi)的交通標(biāo)志數(shù)據(jù)庫(kù)進(jìn)行分類識(shí)別,以便為自動(dòng)駕駛交通標(biāo)志識(shí)別提供一定的可參考方案。在Win10環(huán)境下實(shí)驗(yàn)發(fā)現(xiàn),與經(jīng)典神經(jīng)網(wǎng)絡(luò)相比,改進(jìn)的方法在交通標(biāo)志識(shí)別數(shù)據(jù)庫(kù)上取得較好效果,測(cè)試集準(zhǔn)確率達(dá)到了93.00%,相對(duì)于未改進(jìn)的卷積模型提升了11.99個(gè)百分點(diǎn),說(shuō)明改進(jìn)的方法有助于進(jìn)一步提升類別的識(shí)別準(zhǔn)確率。
由于交通標(biāo)志數(shù)據(jù)庫(kù)中一些圖片存在雨霧等自然天氣及其他意外損壞情況,在訓(xùn)練時(shí)未對(duì)特定圖像進(jìn)行去霧等預(yù)處理操作,采取的是較為原始的圖像數(shù)據(jù),故對(duì)預(yù)測(cè)精度存在一定影響,后續(xù)將考慮進(jìn)一步加強(qiáng)前期數(shù)據(jù)預(yù)處理的工作。國(guó)內(nèi)外學(xué)者在實(shí)時(shí)交通圖像方面的研究較少,對(duì)于如何實(shí)現(xiàn)快速定位和實(shí)時(shí)分類以實(shí)現(xiàn)自動(dòng)駕駛的需求還存在一定挑戰(zhàn),研究方法種類眾多,在實(shí)時(shí)道路的環(huán)境中實(shí)現(xiàn)快速分類任務(wù)也是未來(lái)重要研究方向之一。