劉 艷,王樂樂
(長春大學(xué) 計(jì)算機(jī)科學(xué)技術(shù)學(xué)院,長春 130022)
交通標(biāo)志分類是交通標(biāo)志識別中繼交通標(biāo)志檢測之后的一個子任務(wù)。交通標(biāo)志識別是輔助駕駛系統(tǒng)以及自動駕駛中重要且具有挑戰(zhàn)性的問題。困難主要體現(xiàn)在真實(shí)的路況下,交通標(biāo)志不一定都能非常清晰、垂直拍攝得到,可能會遇到汽車轉(zhuǎn)彎、障礙物遮擋、霧霾天氣、光線不足等情況造成采集到的交通標(biāo)志圖像存在一定角度、局部圖案、畫面模糊、亮度不夠等情況,但是即使這樣,在智能交通中也希望能對這些質(zhì)量不高的圖像快速地進(jìn)行分類,及早準(zhǔn)確地對交通作出指示和判斷。
隨著深度學(xué)習(xí)在大數(shù)據(jù)集上的表現(xiàn)大放異彩,很多學(xué)者也將深度學(xué)習(xí)用于交通標(biāo)志分類與檢測。文獻(xiàn)[1]利用CNN網(wǎng)絡(luò)提取交通標(biāo)志圖像的特征,該網(wǎng)絡(luò)包括3個卷積層、3個池化層和1個全連接層,使用極限學(xué)習(xí)機(jī)分類器對交通標(biāo)志進(jìn)行分類。文獻(xiàn)[2]提出使用結(jié)合鉸鏈損失函數(shù)的隨機(jī)梯度下降法訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)由3個卷積層、3個最大池化層、2個全連接層等17層組成,在GTSRB數(shù)據(jù)集上的識別率達(dá)到99.65%。文獻(xiàn)[3]提出一個具有權(quán)重的多CNN的并行網(wǎng)絡(luò)結(jié)構(gòu),具體包括2~3個Inception層、2個卷積層和2個全連接層,充分利用Inception模塊通過不同大小的卷積核提取不同尺寸特征的特性,專門針對GTSRB數(shù)據(jù)集進(jìn)行訓(xùn)練得到分類模型,識別率較高,達(dá)到99.59%。文獻(xiàn)[4]和[5]使用Gabor小波(核或者濾波器)結(jié)合卷積神經(jīng)網(wǎng)絡(luò)模型解決實(shí)時交通標(biāo)志檢測和識別問題。目前已有模型雖然在特定數(shù)據(jù)集上的識別率都很高,但是泛化性和實(shí)時性有待提高。使用數(shù)據(jù)增廣得到更接近真實(shí)路況的數(shù)據(jù),利用遷移學(xué)習(xí)解決深層次網(wǎng)絡(luò)訓(xùn)練數(shù)據(jù)不充足的問題,通過實(shí)驗(yàn)對比主流模型的性能,從中選取更適合交通標(biāo)志分類的模型。
為了防止過擬合,深度學(xué)習(xí)需要數(shù)以萬計(jì)的樣本數(shù)據(jù)對網(wǎng)絡(luò)進(jìn)行訓(xùn)練。比利時交通標(biāo)志數(shù)據(jù)集中的訓(xùn)練集只有4 572張圖像。數(shù)據(jù)增廣可以在不改變樣本標(biāo)簽的情況下,利用先驗(yàn)知識增加樣本的數(shù)量,采用數(shù)據(jù)增廣(data augmentation)策略來增加訓(xùn)練集中圖像的數(shù)量。
數(shù)據(jù)增廣常用的方法有旋轉(zhuǎn)(ratation)、縮放(zoom)、平移(shift)、剪切(shear)、尺度變換(reacale)和遮擋(erasing)等,這些數(shù)據(jù)增廣方法如果運(yùn)用合理的話,在一定程度上能夠提高模型的分類性能。
運(yùn)用Keras中內(nèi)置的類ImageDataGenerator以及其成員函數(shù)flow()對交通標(biāo)志圖像使用了旋轉(zhuǎn)角度(參數(shù)為30)、水平或垂直平移(參數(shù)為0.1)、剪切(參數(shù)為0.2)、亮度增強(qiáng)(參數(shù)為(0.5,0.9))、尺寸縮放(參數(shù)為[0.5, 1.1])、水平翻轉(zhuǎn)等操作來生成更多的圖像。生成的訓(xùn)練數(shù)據(jù)更貼近真實(shí)情況,增大了數(shù)據(jù)量,防止模型過擬合。得到的增廣數(shù)據(jù)保存在磁盤中,為后續(xù)實(shí)驗(yàn)做準(zhǔn)備。數(shù)據(jù)增廣效果對比如圖1、圖2所示。
圖1 原始訓(xùn)練集
圖2 數(shù)據(jù)增廣后的訓(xùn)練集
增廣后的數(shù)據(jù)還是不足以從頭訓(xùn)練一個深層網(wǎng)絡(luò),遷移學(xué)習(xí)可以將源數(shù)據(jù)集學(xué)習(xí)到的知識(權(quán)重)應(yīng)用于目標(biāo)數(shù)據(jù)集,緩解目標(biāo)數(shù)據(jù)集數(shù)據(jù)量不足的問題,所以采用遷移學(xué)習(xí)來解決交通標(biāo)志分類問題。
Keras框架中內(nèi)置了目前主流的模型,這些模型在ImageNet數(shù)據(jù)集上經(jīng)過多GPU長時間訓(xùn)練得到,具有較優(yōu)的權(quán)重。ImageNet數(shù)據(jù)集和交通標(biāo)志均為自然圖像,具有一定的相似性,可以通過凍結(jié)模型的某些層,微調(diào)其余層的方式來訓(xùn)練新模型。對于比利時交通標(biāo)志圖像分類模型采用兩種極端的方式訓(xùn)練:
(1)凍結(jié)模型前面的所有層,只微調(diào)最后的全連接層。
(2)使用模型的權(quán)重作為初始值,微調(diào)模型的所有層(包括最后的全連接層)。
采用遷移學(xué)習(xí)的好處是不但節(jié)省了訓(xùn)練時間以及硬件資源,而且容易得到較高的分類準(zhǔn)確率?;谶w移學(xué)習(xí)的交通標(biāo)志分類流程圖如圖3所示。
圖3 基于遷移學(xué)習(xí)的交通標(biāo)志分類流程圖
實(shí)驗(yàn)選取比利時交通標(biāo)志數(shù)據(jù)集BelgiumTS for Classification(https://btsd.ethz.ch/shareddata/),訓(xùn)練集train包含4 572張圖像,測試集test包含2 520張圖像。對訓(xùn)練集中的圖像進(jìn)行數(shù)據(jù)增廣,每張圖像增廣得到5張圖像,將增廣得到的圖像加入訓(xùn)練集,則訓(xùn)練集共包含26 437張圖像。對于增廣后的訓(xùn)練集,按照80%和20%的比例,將其拆分成訓(xùn)練集和驗(yàn)證集,用于本小節(jié)交通標(biāo)志的分類實(shí)驗(yàn),但未對測試集進(jìn)行數(shù)據(jù)增廣。
實(shí)驗(yàn)的操作系統(tǒng)為Windows 10,GPU為RTX 2080Ti(1塊),顯存11G,內(nèi)存12G,CPU為i5-7代/4核,深度學(xué)習(xí)框架為Keras,開發(fā)環(huán)境為python 3.6.7。
實(shí)驗(yàn)對Xception[6]、Inception-v3[7]、ResNet50[8]、VGG16[9]、VGG19[9]、DenseNet121[10]和DenseNet169[10]7種主流模型進(jìn)行了遷移學(xué)習(xí)實(shí)驗(yàn),每種模型分別對兩種情況進(jìn)行了微調(diào):只微調(diào)模型的最后一層和微調(diào)模型的所有層。
模型Xception的參數(shù)inputshape的最小值為71,所以使用該模型進(jìn)行訓(xùn)練時,將圖像的尺寸調(diào)整為71×71像素,而模型Inception-v3的參數(shù)inputshape的最小值為139,所以在使用Inception-v3模型進(jìn)行實(shí)驗(yàn)時,將圖像的尺寸調(diào)整為139×139像素,訓(xùn)練其他模型時,為了公平起見,將圖像的尺寸均調(diào)整為71×71像素。
模型訓(xùn)練時結(jié)合驗(yàn)證集的準(zhǔn)確率val_acc曲線,當(dāng)val_acc曲線持續(xù)下行時,調(diào)整學(xué)習(xí)率繼續(xù)訓(xùn)練,采用學(xué)習(xí)率lr=[0.001, 0.000 5, 0.000 25, 0.000 125, ……],批處理的大小設(shè)置為32,根據(jù)經(jīng)驗(yàn)?zāi)P陀?xùn)練40輪停止。各模型微調(diào)后的交通標(biāo)志分類效果如表1所示。
從表1中可以看出,對于7種主流模型中的任何一種,微調(diào)模型所有層的效果均優(yōu)于僅微調(diào)模型最后一層。對于只微調(diào)模型最后一層的情況,VGG16和VGG19表現(xiàn)較好,分類準(zhǔn)確率能達(dá)到85%以上,這是因?yàn)閂GG16和VGG19較其他模型層數(shù)較淺,分別為20層和23層,只微調(diào)模型的最后一層也會對總體產(chǎn)生較大影響。Xception、Inception-v3、DenseNet121以及DenseNet169能達(dá)到50%左右。ResNet50表現(xiàn)最差,這應(yīng)該與殘差網(wǎng)絡(luò)的快捷連接結(jié)構(gòu)有關(guān)。
表1 主流模型交通標(biāo)志分類效果對比表
對于微調(diào)模型所有層的情況,7種主流模型都能達(dá)到96%以上的分類準(zhǔn)確率,其中,Xception模型表現(xiàn)最佳,達(dá)到98.678%。Inception-v3模型和DenseNet121模型的分類準(zhǔn)確率也都達(dá)到98%以上,但是這兩種模型分別為312層和428層,相比較Xception模型只有133層,這兩種模型占用內(nèi)存較多、加載速度慢,所以Xception模型用于交通標(biāo)志分類無論從參數(shù)數(shù)目、執(zhí)行速度、對服務(wù)器配置的要求上都具有絕對優(yōu)勢。Xception模型在訓(xùn)練過程中損失值和準(zhǔn)確率變化情況如圖4所示。
圖4 Xception模型進(jìn)行交通標(biāo)志分類的損失值和準(zhǔn)確率
從圖4可以看出,Xception模型對于交通標(biāo)志分類訓(xùn)練能夠很好地收斂。該模型在訓(xùn)練過程中,學(xué)習(xí)率經(jīng)歷了4次衰減,分別是epcoh為16、23、33和38時,學(xué)習(xí)率從最初的0.001依次衰減為:0.000 5,0.000 25,0.000 125,0.000 062 5,每次衰減后驗(yàn)證集的準(zhǔn)確率均產(chǎn)生小幅上升,直至最后沒有上升空間為止。
使用數(shù)據(jù)增廣一方面產(chǎn)生了大量數(shù)據(jù),解決了模型訓(xùn)練數(shù)據(jù)量不足的問題,另一方面模擬了真實(shí)的情況,增強(qiáng)了模型的泛化能力。通過遷移學(xué)習(xí)實(shí)驗(yàn)對比發(fā)現(xiàn),目前主流模型中的Xception模型在交通標(biāo)志圖像數(shù)據(jù)集的分類中表現(xiàn)優(yōu)于其他模型,不僅分類準(zhǔn)確率較高,而且模型層數(shù)相對較少,內(nèi)存加載速度快,所以該模型在實(shí)時性方面具有一定優(yōu)勢。針對交通標(biāo)識數(shù)據(jù)集遷移學(xué)習(xí)時凍結(jié)其他層的情況以及其在不同設(shè)備上的實(shí)時表現(xiàn),仍是下一步研究的重點(diǎn)。