廖璐明,張 偉,王亞剛
(上海理工大學 光電信息與計算機工程學院,上海 200093)
E-mail:wzhang@usst.edu.cn
無論是在自動駕駛方面還是在高級駕駛輔助系統(Advanced Driving Assistance System,ADAS)方面,道路交通標志信息的獲取都是必不可少的一部分.近年來隨著我國車輛不斷增加和道路交通系統不斷完善,智能交通系統發展迅速,它在交通信號檢測、車輛監測等方面廣泛應用.交通標志識別作為核心技術之一,可以準確、實時的識別交通標志并做出提醒或決策,避免交通事故發生,實現安全駕駛[1].
2012年開始,深度學習蓬勃發展,以卷積神經網絡的為基礎單元的深度學習模型,在計算機視覺,自然語言處理和語音等方面相對于傳統的機器學習方法有著更好的實時性和準確性.應用卷積神經網絡進行交通標志識別一直是研究熱點.
傳統的機器學習方法識別交通標志分為兩步,先對數據進行特征提取,然后進行識別,Ayoub Ellahyani[2]等使用圖像的方向梯度直方圖和HIS數字圖像模型來提取特征,分類器采用隨機森林和支持向量機.在德國交通標識數據集得到了較好的結果.文獻[3]使用交通標志的二值模式特征進行訓練,采用AdaBoost[4]分類器,但是該算法只能在少數類別交通標志上使用.基于神經網絡的算法相對于人工提取圖像特征的方法取得更好的結果,文獻[5]基于InceptionV3的遷移學習[6]方法在微量數據集上取得96%的結果;文獻[7]通過加權極限學習機和AdaBoost融合優化,通過加權最優表決得到最優分類器,在德國交通標志數據集上識別率達到99.12%;文獻[8]融合圖片的多尺度特征,增加低層特征的利用率,識別率達到99.25%;文獻[9]通過對特征進行深度重構和權重分配,識別率達99.32%.
傳統的圖像特征提取加機器學習的方法,存在識別率低,特征設計復雜等缺點[10].雖然基于卷積神經網絡的方法可以實現端到端的交通標志識別,但是目前的算法存在模型參數多,網絡復雜的問題,識別率也有待提高.針對上述問題,本文結合空間變換網絡(Spatial Transformer network,STN)[11]和注意力機制提出一種結構簡單,參數量少的卷積神經網絡模型,該模型在德國交通標志數據集上的識別率達到99.80%.與現有算法相比在識別率和識別時間上達到最優.
空間變換網絡可以增加圖像處理模型的魯棒性,使模型具有空間不變性.當目標發生諸如旋轉、偏移等轉化后,模型依然能給出正確的結果.當交通標志發生放大、旋轉、平移等變化后,模型仍然能夠對其正確分類,卷積神經網絡中的池化機制使得神經網絡具備很少的尺度不變性,但僅依靠池化操作無法滿足某些情況下模型對于較大的不變性的需求.

圖1 空間變換網絡Fig.1 Spatial transformer network

(1)
采樣器利用采樣網格和特征圖U作為輸入.采樣器保證了空間變換網絡自適應變換后輸出圖像的準確性,建立輸出與輸入上所有像素點灰度值聯系[9].采樣公式表示為:
(2)

人工神經網絡的設計靈感來源于生物的神經網絡行為特征,注意力機制是人工神經網絡模仿生物神經網絡的經典案例.神經網絡中的注意力機制指在全局信息中重點關注對當前任務有益的區域,如通過局部信息鳥喙分辨一只鳥.在視覺任務中SENet[12]是注意力機制的代表.SENet模塊創造性地關注通道之間的關系,在神經網絡訓練過程中自動學習到不同通道特征的重要程度,對特征圖每個通道施加不同的權重,關注重要的通道特征.
CBAM(Convolutional Block Attention Module)[13]結合了空間(spatial)和通道(channel)注意力機制模塊,可以輕松嵌入到已有的卷積神經網絡結構中進行端到端的訓練.CBAM結構改進了SENet的通道注意力機制,并且增加空間注意力機制.CBAM結構如圖2所示,從圖中可以看出通道和空間注意力模塊是獨立的,結構簡單,但功能強大,網絡中加入CBAM結構實際上是對特征圖在通道和空間層面做微調.

圖2 卷積模塊的注意力機制模塊Fig.2 Convolutional block attention module
CBAM中的通道注意力模塊對比SENet增加全局平均池化分支提取特征信息,結構如圖3所示,對輸入的特征圖F,對每個特征圖做全局平均值池化和全局最大值池化,分別經過全連接神經網絡(多層感知機),全連接層的輸出維度和特征圖F的通道數相同,接著對兩個輸出執行elementwise加操作,sigmoid激活函數將值壓縮到0和1之間.得到通道層面的注意力特征圖Mc.將Mc和特征圖F做elementwise乘法操作,得到經過通道注意力機制微調后的特征圖.

圖3 通道注意力模塊Fig.3 Channel attention module
CBAM中的空間注意力模塊結構如圖4所示,輸入為通道注意力模塊輸出的特征圖F′,首先對特征圖F′做基于通道的全局最大值池化和全局平均值池化,得到兩個和特征圖F′相同寬高,通道數為1的特征圖,如圖4所示,將這兩個特征圖在通道維度疊加.經過卷積操作,降維為1個通道.再經過sigmoid將值壓縮到0和1之間,生成空間層面的注意力特征圖Ms.Ms和特征圖F′做乘法,得到最終的特征圖.

圖4 空間注意力模塊Fig.4 Spatial attention module
多分類問題對類別向量進行獨熱編碼(one-hot vector),對于長度為n的數組只有一個值為1其余都為0,1所在位置代表物體的類別.獨熱編碼使得模型容易過擬合,模型過于相信預測的類別.為了解決這個問題,文獻[14]提出了標簽平滑(Label Smoothing Regularization)對數據集的標簽進行優化.將類別概率很小一部分分給其他類別,對分類正確做了懲罰.標簽平滑公式如下:
y′=(1-)×y+×u
(3)
其中,y′為標簽平滑后數據標簽,y為數據one-hot標簽,為平滑因子,u是人為引入的一個固定分布.
(1)總吸能E(Total energy absorption),定義為結構密實化前載荷-位移曲線下的面積,見式(1),式中,δ為壓潰位移:
本文提出的基于注意力機制的交通標志識別模型由空間變換網絡、卷積層、池化層和改進的注意力機制模塊組成.圖5為改進的注意力機制模塊.改進后的注意力機制模塊將通道注意力模塊和空間注意力模塊分開.其中,通道注意力模塊和空間注意力模塊的細節可以從圖3和圖4中了解.

圖5 改進的注意力機制模塊Fig.5 Improved attention mechanism module
整個網絡模型輸入為統一大小的交通標志圖片,首先經過空間變換網絡,圖片經過伸縮,旋轉和平移等變換,獲得空間不變性,接著卷積層和池化層交替出現,提取圖片特征和降維,在網絡中加入通道注意力模塊和空間注意力模塊,輸出對應43個類別的交通標志.整體網絡結構簡單明了.空間轉換網絡和兩個注意力機制模塊以模塊化的方式嵌入到網絡中,在模型訓練過程中實現自學習.

表1 網絡參數表Table 1 Network parameter table
本文設計的網絡模型共764945個參數.網絡參數如表1所示.定義網絡模型除去空間變換網絡和注意力機制模塊的網絡為Backbone.從表1中看出,本文模型的Backbone包括4個卷積層,3個池化層,1個全局平均池化代替全連接層,減少模型參數.為了防止過擬合和加快訓練,在每個池化層后面加入Batch Normalization和Dropout.網絡最后接Softmax分類器用于多分類.
實驗使用Ubuntu18.04,64位操作系統,CPU為Inter Corei7,2.6GHz,內存16G.顯卡為英偉達GTX 1660 Ti,顯存6G.Pytorch深度學習框架.Miniconda集成開發環境,Python3編程語言.
實驗整體流程如圖6所示,首先將數據集劃分為訓練集、驗證集和測試集,統一交通標志圖片尺寸,數據預處理還包括數據增強,模型建立完成后,設置初始超參數,在訓練集訓練網絡權重,驗證集調整超參數,測試集驗證模型泛化能力.

圖6 實驗流程圖Fig.6 Experiment flow chart
本次實驗使用德國交通標志數據集,包括35339張訓練圖片,3870張驗證圖片,12630張測試圖片,每張圖片包含一個交通標志.共43類交通標志,圖片大小從15×15到250×250不等,類別分布不均勻.圖片尺寸統一為43×43×3.部分交通標志圖片如圖7所示.

圖7 德國交通標志數據集Fig.7 German traffic sign recognition benchmark
在實驗中對訓練數據使用數據增強,它可以增強模型的泛化能力,減小過擬合.實驗對訓練集進行亮度、對比度、飽和度、翻轉、平移、旋轉、隨機裁剪等數據增強.擴充訓練集到原訓練集的10倍.
本文實驗超參數設置為:初始學習率為0.001,總損失在5個epoch后不再減小則學習率減半.BatchSize為64,epoch總次數為50次.Dropout為0.5.使用LeakyReLU激活函數.優化器為Ranger,Ranger由RAdam[15]和LookAhead[16]組合而成,被認為是當前最好的深度學習優化器之一.
為了解空間轉換網絡,數據增強,標簽平滑和注意力機制對模型識別率的影響,進行多次消融實驗.實驗結果如表2所示.從表2可以看出,模型Backbone識別率為99.18%,超過了文獻[7]和文獻[17]的結果,說明本文算法Backbone的有效性,但是識別率存在提升的空間;加入空間變換網絡后模型識別率達到99.44%,識別率提高了0.26%,表明空間不變性在交通標志識別任務方面非常重要;進一步使用數據增強之后識別率進一步提高,達到99.56%,數據增強對識別率的提高不大,這可能是數據增強中的幾何變換(旋轉,平移等)帶來的效果和空間變換網絡對模型的效果存在部分重疊;標簽平滑對模型的識別率提高較小,但實驗中證明對模型識別率是有積極影響的;加入改進的注意力機制模塊后識別率提高了0.18%,效果明顯,最終識別率達到99.80%.

表2 不同方法對模型識別率影響Table 2 Influence of different methods on model recognition rate
將本文算法和其它算法在德國交通標志數據集上的識別率進行比較,比較結果如表3所示.從表中看出,本文算法99.80%的識別率,比其他算法的識別率高3%以上,遠遠高于人類98.84%的表現.Committee of CNNs算法不僅識別率不如本文算法,而且該模型復雜,參數多,訓練時間長.STN+ 重構 CNN 特征的算法也用了空間變換網絡,還有復雜的特征重構網絡,但識別率比本文算法低4.8個百分比.

表3 不同模型識別率對比Table 3 Comparison of recognition rates of different models

表4 不同模型識別時間對比Table 4 Comparison of recognition time of different models
表4列出了本文算法和其他算法在單幅交通標志平均識別時間的對比.本文算法在測試集上Batch Size設置為4,單幅交通標志圖片的平均識別時間為0.29ms.遠少于其他算法,在實時性方面明顯優于其他算法.滿足自動駕駛等場景實際需求.
本文提出了一種基于注意力機制的交通標志識別算法,該算法結構簡單,參數少,結合STN,數據增強,標簽平滑和改進的注意力機制等方法,在德國交通標志數據集上實驗,識別率達到99.80%,單幅交通標志圖片識別時間為0.29ms,在識別率和識別速度方面對比其他算法有明顯提高.本文探討了多種方法對識別模型的影響,可以對其他識別任務提供參考.下一步可以在模型融合、識別錯誤樣本針對性數據預處理等方面進行研究,進一步提高算法識別率.