田 強,賈小寧
(長春理工大學 理學院,長春 130022)
車標作為車輛品牌的獨特標記,在智能運輸系統車輛識別中具有輔助作用. 正確識別出車標已成為智能交通研究中的熱門課題. Psyllos等[1]提出了一種基于增強型尺度不變特征變換(SIFT)的特征匹配方法,利用數據庫特征的多種不同視圖描述檢測到的特征,使識別過程更準確;Llorca等[2]提出了一種基于梯度直方圖和支持向量機的車標識別框架,并采用多數投票方法代替車標的精準定位;Yang等[3]提出了一種從粗到精的車標識別算法,首先對車標進行粗略定位,然后通過模糊檢測等實現車標的精細定位,并最終輸入支持向量機分類;耿慶田等[4]提出了利用SIFT進行特征提取,然后利用BP神經網絡進行車標分類的方法; Xia等[5]將卷積神經網絡和多任務學習相結合識別車標,應用自適應權重訓練策略加速多任務模型的收斂,并達到了很高的車標識別準確率; Soon等[6]使用粒子群算法自動確定卷積神經網絡的結構和超參數,不需要超參數的調整過程,因此減少了總訓練時間,且該方法還降低了計算成本; 陳全等[7]提出了一種基于卷積神經網絡(CNN)的車標識別算法,先對圖像進行二值化等預處理,然后輸入到卷積神經網絡中進行訓練和測試. 除車標識別外,神經網絡在其他識別任務中也被廣泛應用[8-11]. 本文提出一種改進的殘差網絡車標識別模型. 首先,使用改進的線性修正單元Leaky ReLU作為模型的激活函數;其次,調整傳統的殘差網絡結構,并通過減少卷積核的數量加速模型訓練. 實驗結果表明,改進后的殘差網絡模型對車標的識別準確率較高.
殘差網絡[12]解決了普通卷積神經網絡隨著網絡深度的增加而出現性能退化的問題,即隨著網絡深度的增加,普通卷積神經網絡會出現訓練不收斂的情況. 殘差網絡在普通卷積神經網絡的基礎上增加了恒等映射,當網絡達到最優狀態時,殘差網絡中的殘差映射變為0,此時只剩下恒等映射,使網絡一直處于最優狀態. 根據網絡深度的不同,殘差網絡模型可分為18層、34層、50層、101層和152層,本文參考18層的殘差網絡,并在其基礎上進行改進. ResNet-18模型如圖1所示.

圖1 ResNet-18模型示意圖Fig.1 Schematic diagram of ResNet-18 model
殘差塊由批量標準化、激活函數和卷積層組成,并且不同深度的殘差網絡中殘差塊略有不同. 由圖1可見,ResNet-18模型的所有殘差塊均類似,圖2為該模型的一個殘差塊.

圖2 殘差塊結構示意圖Fig.2 Schematic diagram of residual block structure
殘差塊包含兩種映射,一種是恒等映射(圖2中曲線部分);另一種是殘差映射(除曲線外部分). 假設要求的最優解為H(x)=x,殘差映射是指映射H(x)和x的差值,用F(x)表示,即F(x)=H(x)-x. 當F(x)無限接近于0時,網絡達到最佳狀態,繼續加深網絡深度,網絡也將一直處于最優狀態. 當殘差塊的輸入為xn時,可得計算后的輸出為
xn+1=f(xn+F(xn,Wn)),
(1)
其中F(·)為殘差映射,Wn為相應的權重參數,f(·)為激活函數. 由圖1可見,不同殘差塊之間可能存在維度不匹配的情況,此時只需對恒等映射xn做一個線性變換Ws即可:
xn+1=f(Wsxn+F(xn,Wn)),
(2)
其中Ws為權重參數.
傳統殘差網絡用線性修正單元ReLU[13]作為激活函數. ReLU激活函數相對于S型激活函數有以下優點:1) 降低計算量;2) 解決梯度消失問題;3) 緩解過擬合. ReLU激活函數公式為

(3)
其中x為上一層的輸出. 由式(3)可見,ReLU激活函數較簡單,只需判別輸入是否大于0即可. 當輸入大于0時,保持不變;當輸入小于0時,直接將梯度變為0. 即當輸入小于0時,某些神經元的梯度變為0,并且有可能不再被任何數據激活,這些神經元將一直處于“死亡”狀態. 此外,研究表明,當設置較大的學習率時,也會導致大量神經元“死亡”.
為解決ReLU激活函數存在的問題,本文使用Leaky ReLU函數作為網絡的激活函數. Leaky ReLU激活函數公式為

(4)
其中x為上一層的輸出,a為一個較小的常數. 由式(4)可見:當輸入大于0時,Leaky ReLU激活函數和ReLU激活函數作用相同,使輸入保持不變;當輸入小于0時,由于已給定一個較小的常數a,Leaky ReLU激活函數可保證在輸入小于0時信息不會丟失,梯度也可以正常傳播,ReLU激活函數和Leaky ReLU激活函數圖像如圖3所示.

圖3 ReLU激活函數和Leaky ReLU激活函數圖像Fig.3 Graphs of ReLU activation function and Leaky ReLU activation function
傳統殘差網絡首先經過卷積層,然后經過批量標準化,最后經過激活函數. 本文對網絡結構進行調整,將批量標準化和激活函數放在卷積層前,使輸入首先經過批量標準化,然后經過激活函數,最后經過卷積層,這樣可以加強模型的正則化,減少過擬合的影響. 此外,通過減少卷積核的數量以減少網絡中的冗余參數,從而加快網絡訓練速度. 實驗結果表明,減少參數后的網絡對識別準確率無影響. 圖4為傳統殘差網絡結構和改進后的殘差網絡結構示意圖.

圖4 殘差網絡結構示意圖Fig.4 Schematic diagram of residual network structure
調整后的網絡各層參數如下:
1) 輸入層,圖像尺寸為32×32;
2) 卷積層,卷積核尺寸為7×7,卷積核個數為64個,卷積步長為2;
3) 第一個殘差塊,卷積核尺寸為3×3,卷積核個數為64個,卷積步長為2;
4) 第二個殘差塊,卷積核尺寸為3×3,卷積核個數為64個,卷積步長為2;
5) 第三個殘差塊,卷積核尺寸為3×3,卷積核個數為128個,卷積步長為2;
6) 第四個殘差塊,卷積核尺寸為3×3,卷積核個數為256個,卷積步長為2;
7) Softmax層,分為10類.
實驗所用數據均為人工收集,共收集1 968張圖像,包含10類車標,如圖5所示. 通過旋轉加噪聲等方式擴充數據集以滿足實驗要求,擴充后的數據集共含有訓練圖像15 452張,測試圖像500張. 在訓練前,對圖像進行預處理,參考CIFAR-10數據集,裁剪訓練和測試的圖像尺寸為32×32. 本文的模型在操作系統為Windows10,CPU為Xeon(至強)E5-2620八核,32 GB內存上運行的TensorFlow環境中進行.

圖5 部分車標Fig.5 Part of vehicle logo
從所有數據集中隨機抽取50張圖像作為測試集,并確保測試集不在訓練集中. 圖6為4種不同改進算法的訓練損失. 由圖6可見,在相同迭代次數下,改進的網絡結構已達到了穩定,而未改進的網絡結構還在收斂中,說明改進的網絡結構速度更快,更具有實用意義. 圖7為4種不同改進算法的識別準確率. 由圖7可見,在相同迭代次數下,改進的網絡更快達到了較高的識別準確率,而相對于只改進網絡結構的算法,同時改進網絡結構和Leaky ReLU激活函數的算法不僅快速達到了較高的識別準確率,并且更快地進入穩定狀態.
對收集的車標數據集進行測試,測試結果分別列于表1和表2. 其中表1是本文算法在不同改進下的測試結果,表2為本文算法與文獻[4]和文獻[7]的測試結果. 由表1和表2可見,本文算法與3種不同改進算法和其他主流算法相比,識別準確率最高.

表1 4種不同改進算法的測試結果

表2 不同算法的測試結果
為驗證本文算法的有效性,用本文算法對兩種標準測試集CIFAR-10數據集和MNIST數據集進行測試,測試結果為:CIFAR-10數據集的測試準確率為90.0%;MNIST數據集的測試準確率為98.6%. 由測試結果可見,本文提出的模型不僅對人工收集的車標數據有較高的識別準確率,而且對標準數據集的識別也有較高的準確率,尤其是對MNIST數據集,準確率達98.6%,因此,本文算法具有很強的實用價值.

圖6 4種不同改進算法的訓練損失Fig.6 Training losses of four different improved algorithms

圖7 4種不同改進算法的識別準確率Fig.7 Recognition accuracy of four different improved algorithms
綜上所述,針對車標識別準確率的問題,本文基于傳統的殘差網絡模型ResNet-18,提出了一種改進的殘差網絡車標識別模型. 首先,對激活函數進行改進,使用改進的線性修正單元Leaky ReLU作為模型的激活函數;其次,對網絡結構進行調整,將批量標準化和激活函數放在卷積層前,并通過減少參數降低計算成本. 這兩種方法的結合使得模型具有更強的識別能力. 實驗結果表明,改進后的殘差網絡模型對車標的識別準確率達99.8%,表明本文算法具有很強的實用價值.