田 強,賈小寧
(長春理工大學(xué) 理學(xué)院,長春 130022)
車標(biāo)作為車輛品牌的獨特標(biāo)記,在智能運輸系統(tǒng)車輛識別中具有輔助作用. 正確識別出車標(biāo)已成為智能交通研究中的熱門課題. Psyllos等[1]提出了一種基于增強型尺度不變特征變換(SIFT)的特征匹配方法,利用數(shù)據(jù)庫特征的多種不同視圖描述檢測到的特征,使識別過程更準(zhǔn)確;Llorca等[2]提出了一種基于梯度直方圖和支持向量機的車標(biāo)識別框架,并采用多數(shù)投票方法代替車標(biāo)的精準(zhǔn)定位;Yang等[3]提出了一種從粗到精的車標(biāo)識別算法,首先對車標(biāo)進(jìn)行粗略定位,然后通過模糊檢測等實現(xiàn)車標(biāo)的精細(xì)定位,并最終輸入支持向量機分類;耿慶田等[4]提出了利用SIFT進(jìn)行特征提取,然后利用BP神經(jīng)網(wǎng)絡(luò)進(jìn)行車標(biāo)分類的方法; Xia等[5]將卷積神經(jīng)網(wǎng)絡(luò)和多任務(wù)學(xué)習(xí)相結(jié)合識別車標(biāo),應(yīng)用自適應(yīng)權(quán)重訓(xùn)練策略加速多任務(wù)模型的收斂,并達(dá)到了很高的車標(biāo)識別準(zhǔn)確率; Soon等[6]使用粒子群算法自動確定卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)和超參數(shù),不需要超參數(shù)的調(diào)整過程,因此減少了總訓(xùn)練時間,且該方法還降低了計算成本; 陳全等[7]提出了一種基于卷積神經(jīng)網(wǎng)絡(luò)(CNN)的車標(biāo)識別算法,先對圖像進(jìn)行二值化等預(yù)處理,然后輸入到卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練和測試. 除車標(biāo)識別外,神經(jīng)網(wǎng)絡(luò)在其他識別任務(wù)中也被廣泛應(yīng)用[8-11]. 本文提出一種改進(jìn)的殘差網(wǎng)絡(luò)車標(biāo)識別模型. 首先,使用改進(jìn)的線性修正單元Leaky ReLU作為模型的激活函數(shù);其次,調(diào)整傳統(tǒng)的殘差網(wǎng)絡(luò)結(jié)構(gòu),并通過減少卷積核的數(shù)量加速模型訓(xùn)練. 實驗結(jié)果表明,改進(jìn)后的殘差網(wǎng)絡(luò)模型對車標(biāo)的識別準(zhǔn)確率較高.
殘差網(wǎng)絡(luò)[12]解決了普通卷積神經(jīng)網(wǎng)絡(luò)隨著網(wǎng)絡(luò)深度的增加而出現(xiàn)性能退化的問題,即隨著網(wǎng)絡(luò)深度的增加,普通卷積神經(jīng)網(wǎng)絡(luò)會出現(xiàn)訓(xùn)練不收斂的情況. 殘差網(wǎng)絡(luò)在普通卷積神經(jīng)網(wǎng)絡(luò)的基礎(chǔ)上增加了恒等映射,當(dāng)網(wǎng)絡(luò)達(dá)到最優(yōu)狀態(tài)時,殘差網(wǎng)絡(luò)中的殘差映射變?yōu)?,此時只剩下恒等映射,使網(wǎng)絡(luò)一直處于最優(yōu)狀態(tài). 根據(jù)網(wǎng)絡(luò)深度的不同,殘差網(wǎng)絡(luò)模型可分為18層、34層、50層、101層和152層,本文參考18層的殘差網(wǎng)絡(luò),并在其基礎(chǔ)上進(jìn)行改進(jìn). ResNet-18模型如圖1所示.
圖1 ResNet-18模型示意圖Fig.1 Schematic diagram of ResNet-18 model
殘差塊由批量標(biāo)準(zhǔn)化、激活函數(shù)和卷積層組成,并且不同深度的殘差網(wǎng)絡(luò)中殘差塊略有不同. 由圖1可見,ResNet-18模型的所有殘差塊均類似,圖2為該模型的一個殘差塊.
圖2 殘差塊結(jié)構(gòu)示意圖Fig.2 Schematic diagram of residual block structure
殘差塊包含兩種映射,一種是恒等映射(圖2中曲線部分);另一種是殘差映射(除曲線外部分). 假設(shè)要求的最優(yōu)解為H(x)=x,殘差映射是指映射H(x)和x的差值,用F(x)表示,即F(x)=H(x)-x. 當(dāng)F(x)無限接近于0時,網(wǎng)絡(luò)達(dá)到最佳狀態(tài),繼續(xù)加深網(wǎng)絡(luò)深度,網(wǎng)絡(luò)也將一直處于最優(yōu)狀態(tài). 當(dāng)殘差塊的輸入為xn時,可得計算后的輸出為
xn+1=f(xn+F(xn,Wn)),
(1)
其中F(·)為殘差映射,Wn為相應(yīng)的權(quán)重參數(shù),f(·)為激活函數(shù). 由圖1可見,不同殘差塊之間可能存在維度不匹配的情況,此時只需對恒等映射xn做一個線性變換Ws即可:
xn+1=f(Wsxn+F(xn,Wn)),
(2)
其中Ws為權(quán)重參數(shù).
傳統(tǒng)殘差網(wǎng)絡(luò)用線性修正單元ReLU[13]作為激活函數(shù). ReLU激活函數(shù)相對于S型激活函數(shù)有以下優(yōu)點:1) 降低計算量;2) 解決梯度消失問題;3) 緩解過擬合. ReLU激活函數(shù)公式為
(3)
其中x為上一層的輸出. 由式(3)可見,ReLU激活函數(shù)較簡單,只需判別輸入是否大于0即可. 當(dāng)輸入大于0時,保持不變;當(dāng)輸入小于0時,直接將梯度變?yōu)?. 即當(dāng)輸入小于0時,某些神經(jīng)元的梯度變?yōu)?,并且有可能不再被任何數(shù)據(jù)激活,這些神經(jīng)元將一直處于“死亡”狀態(tài). 此外,研究表明,當(dāng)設(shè)置較大的學(xué)習(xí)率時,也會導(dǎo)致大量神經(jīng)元“死亡”.
為解決ReLU激活函數(shù)存在的問題,本文使用Leaky ReLU函數(shù)作為網(wǎng)絡(luò)的激活函數(shù). Leaky ReLU激活函數(shù)公式為
(4)
其中x為上一層的輸出,a為一個較小的常數(shù). 由式(4)可見:當(dāng)輸入大于0時,Leaky ReLU激活函數(shù)和ReLU激活函數(shù)作用相同,使輸入保持不變;當(dāng)輸入小于0時,由于已給定一個較小的常數(shù)a,Leaky ReLU激活函數(shù)可保證在輸入小于0時信息不會丟失,梯度也可以正常傳播,ReLU激活函數(shù)和Leaky ReLU激活函數(shù)圖像如圖3所示.
圖3 ReLU激活函數(shù)和Leaky ReLU激活函數(shù)圖像Fig.3 Graphs of ReLU activation function and Leaky ReLU activation function
傳統(tǒng)殘差網(wǎng)絡(luò)首先經(jīng)過卷積層,然后經(jīng)過批量標(biāo)準(zhǔn)化,最后經(jīng)過激活函數(shù). 本文對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行調(diào)整,將批量標(biāo)準(zhǔn)化和激活函數(shù)放在卷積層前,使輸入首先經(jīng)過批量標(biāo)準(zhǔn)化,然后經(jīng)過激活函數(shù),最后經(jīng)過卷積層,這樣可以加強模型的正則化,減少過擬合的影響. 此外,通過減少卷積核的數(shù)量以減少網(wǎng)絡(luò)中的冗余參數(shù),從而加快網(wǎng)絡(luò)訓(xùn)練速度. 實驗結(jié)果表明,減少參數(shù)后的網(wǎng)絡(luò)對識別準(zhǔn)確率無影響. 圖4為傳統(tǒng)殘差網(wǎng)絡(luò)結(jié)構(gòu)和改進(jìn)后的殘差網(wǎng)絡(luò)結(jié)構(gòu)示意圖.
圖4 殘差網(wǎng)絡(luò)結(jié)構(gòu)示意圖Fig.4 Schematic diagram of residual network structure
調(diào)整后的網(wǎng)絡(luò)各層參數(shù)如下:
1) 輸入層,圖像尺寸為32×32;
2) 卷積層,卷積核尺寸為7×7,卷積核個數(shù)為64個,卷積步長為2;
3) 第一個殘差塊,卷積核尺寸為3×3,卷積核個數(shù)為64個,卷積步長為2;
4) 第二個殘差塊,卷積核尺寸為3×3,卷積核個數(shù)為64個,卷積步長為2;
5) 第三個殘差塊,卷積核尺寸為3×3,卷積核個數(shù)為128個,卷積步長為2;
6) 第四個殘差塊,卷積核尺寸為3×3,卷積核個數(shù)為256個,卷積步長為2;
7) Softmax層,分為10類.
實驗所用數(shù)據(jù)均為人工收集,共收集1 968張圖像,包含10類車標(biāo),如圖5所示. 通過旋轉(zhuǎn)加噪聲等方式擴(kuò)充數(shù)據(jù)集以滿足實驗要求,擴(kuò)充后的數(shù)據(jù)集共含有訓(xùn)練圖像15 452張,測試圖像500張. 在訓(xùn)練前,對圖像進(jìn)行預(yù)處理,參考CIFAR-10數(shù)據(jù)集,裁剪訓(xùn)練和測試的圖像尺寸為32×32. 本文的模型在操作系統(tǒng)為Windows10,CPU為Xeon(至強)E5-2620八核,32 GB內(nèi)存上運行的TensorFlow環(huán)境中進(jìn)行.
圖5 部分車標(biāo)Fig.5 Part of vehicle logo
從所有數(shù)據(jù)集中隨機抽取50張圖像作為測試集,并確保測試集不在訓(xùn)練集中. 圖6為4種不同改進(jìn)算法的訓(xùn)練損失. 由圖6可見,在相同迭代次數(shù)下,改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)已達(dá)到了穩(wěn)定,而未改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)還在收斂中,說明改進(jìn)的網(wǎng)絡(luò)結(jié)構(gòu)速度更快,更具有實用意義. 圖7為4種不同改進(jìn)算法的識別準(zhǔn)確率. 由圖7可見,在相同迭代次數(shù)下,改進(jìn)的網(wǎng)絡(luò)更快達(dá)到了較高的識別準(zhǔn)確率,而相對于只改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)的算法,同時改進(jìn)網(wǎng)絡(luò)結(jié)構(gòu)和Leaky ReLU激活函數(shù)的算法不僅快速達(dá)到了較高的識別準(zhǔn)確率,并且更快地進(jìn)入穩(wěn)定狀態(tài).
對收集的車標(biāo)數(shù)據(jù)集進(jìn)行測試,測試結(jié)果分別列于表1和表2. 其中表1是本文算法在不同改進(jìn)下的測試結(jié)果,表2為本文算法與文獻(xiàn)[4]和文獻(xiàn)[7]的測試結(jié)果. 由表1和表2可見,本文算法與3種不同改進(jìn)算法和其他主流算法相比,識別準(zhǔn)確率最高.
表1 4種不同改進(jìn)算法的測試結(jié)果
表2 不同算法的測試結(jié)果
為驗證本文算法的有效性,用本文算法對兩種標(biāo)準(zhǔn)測試集CIFAR-10數(shù)據(jù)集和MNIST數(shù)據(jù)集進(jìn)行測試,測試結(jié)果為:CIFAR-10數(shù)據(jù)集的測試準(zhǔn)確率為90.0%;MNIST數(shù)據(jù)集的測試準(zhǔn)確率為98.6%. 由測試結(jié)果可見,本文提出的模型不僅對人工收集的車標(biāo)數(shù)據(jù)有較高的識別準(zhǔn)確率,而且對標(biāo)準(zhǔn)數(shù)據(jù)集的識別也有較高的準(zhǔn)確率,尤其是對MNIST數(shù)據(jù)集,準(zhǔn)確率達(dá)98.6%,因此,本文算法具有很強的實用價值.
圖6 4種不同改進(jìn)算法的訓(xùn)練損失Fig.6 Training losses of four different improved algorithms
圖7 4種不同改進(jìn)算法的識別準(zhǔn)確率Fig.7 Recognition accuracy of four different improved algorithms
綜上所述,針對車標(biāo)識別準(zhǔn)確率的問題,本文基于傳統(tǒng)的殘差網(wǎng)絡(luò)模型ResNet-18,提出了一種改進(jìn)的殘差網(wǎng)絡(luò)車標(biāo)識別模型. 首先,對激活函數(shù)進(jìn)行改進(jìn),使用改進(jìn)的線性修正單元Leaky ReLU作為模型的激活函數(shù);其次,對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行調(diào)整,將批量標(biāo)準(zhǔn)化和激活函數(shù)放在卷積層前,并通過減少參數(shù)降低計算成本. 這兩種方法的結(jié)合使得模型具有更強的識別能力. 實驗結(jié)果表明,改進(jìn)后的殘差網(wǎng)絡(luò)模型對車標(biāo)的識別準(zhǔn)確率達(dá)99.8%,表明本文算法具有很強的實用價值.