陳立潮,鄭佳敏,曹建芳,2*,潘理虎,張 睿
(1. 太原科技大學計算機科學與技術學院,太原030024; 2. 忻州師范學院計算機系,山西忻州034000)
(?通信作者電子郵箱kcxdj122@126.com)
交通標志識別是先進駕駛員輔助系統和無人駕駛系統重要組成部分。由于車輛在各種環境、光照條件、速度和地理位置下行駛,深度學習算法必須始終保持魯棒性和可靠性。交通標志識別領域面臨的主要問題有:環境、天氣的影響;圖像采集角度的問題;遮擋物影響;實時性問題。目前交通標志識別常用的算法有方向梯度直方圖[1]、支持向量機[2]、卷積神經網絡(Convolutional Neural Network,CNN)等,在正常行駛環境下,基于卷積神經網絡的AlexNet[3]、LeNet-5[4]對于特殊場景識別精度和適應性存在不足。
傳統的圖像識別算法對于環境的適應性較差,識別速度緩慢,已經無法滿足高精度實時性的要求。膠囊網絡(Capsule Network,CapsNet)[5]是一種新型卷積神經網絡模型,使用向量神經元克服了CNN 對物體之間的空間辨識度差及物體大幅度旋轉之后識別能力低下的兩個缺陷,有效地彌補了CNN 模型的不足;動態路由算法的快速收斂及簡單的網絡結構,不僅保證了較高的識別精度,而且收斂速度得到了極大的提升。
針對目前交通標志識別存在的問題,本文提出了一種基于膠囊網絡的智能交通標志識別方法。膠囊網絡本身對圖像旋轉的適應性很好地解決了圖像采集角度問題,通過超深度卷積模型改進了膠囊網絡結構中的特征提取部分,并在主膠囊層引入池化層,以及采用移動指數平均法改進動態路由算法,提高了膠囊網絡在交通標志識別領域的識別精度,并降低了運算負荷,實現了比原結構更優越的性能。
膠囊網絡是一個非常淺的卷積神經網絡,其結構如圖1所示,基本結構為:輸入層、卷積層、主膠囊層和數字膠囊層。卷積層采用9 × 9 步長為1 的卷積核進行特征提取,特征提取不完全,因此在交通標志識別上精度較低。

圖1 膠囊網絡基本結構Fig. 1 Basic structure of capsule network
主膠囊層是膠囊網絡的核心之一,實現了標量到向量的轉化,原膠囊網絡主膠囊層的輸入維度為20 × 20 × 256 的特征圖,通過8 組9 × 9 × 32步長為2 的卷積核卷積得到8 組6 ×6 × 32 的特征圖,然后將8 組特征圖對應位置線性組合,得到1 152個膠囊,具體過程如圖2所示。

圖2 主膠囊層Fig. 2 Main capsule layer
圖3 為動態路由算法向量運算的形象表示,特征分量加權之后相加,得到預測向量sj,采用非線性激活函數得到vj:


圖3 動態路由算法Fig. 3 Dynamic routing algorithm
用vj與特征分量的向量點積表示高層膠囊vj與低層膠囊vj-1的相關程度,調整特征分量的權重,使特征分量的加權求和結果越來越接近真實向量。
本文所提出的網絡結構如圖4 所示,圖中Conv3-128 表示128 個3× 3 的卷積核,首先采用深度特征提取結構提取深度特征,然后通過引入最大池化層(MaxPool)的主膠囊層實現標量神經元到向量神經元的轉換,最后用自適應路由算法實現膠囊間的參數更新,由數字膠囊層(Digital Capsule Layer,DigitCaps)得到識別結果。

圖4 深度特征提取網絡Fig. 4 Depth feature extraction network
深度卷積網絡有助于提取圖像深層特征,從而提高識別精度[6]。超深度卷積神經網絡由牛津大學計算機視覺組(Visual Geometry Group,VGG)與Google DeepMind 公司共同研發,該網絡結構說明了深度有益于提高分類的正確率,通過在傳統的卷積網絡框架中使用更深的層能夠在同樣的數據集上取得優異的結果[7]。VGG 通過使用大量3× 3 的小卷積核進行堆疊,穩步增加網絡深度,用更少的參數實現了與大卷積核相同的感受野,不但減少了網絡參數,而且提高了訓練速度。因此,本文基于VGG 模型改進膠囊網絡特征提取部分,實現深度特征提取,達到提高識別精度的目的。
如圖5 所示,本文采用多個3× 3 卷積核改進原結構,在基于VGG 結構上,提出三種深度特征提取結構,特征提取層數分別為2層、3層、5層。訓練時,輸入圖片均調整為28× 28的灰度圖,激活函數選取線性整流函數(Rectified Linear Unit,ReLU)[8],采用最大池化層進行數據降維,得到14 ×14 × 256的特征圖。

圖5 三種深度特征提取結構Fig. 5 Three depth feature extraction structures
傳統卷積神經網絡的最大創新就是共享卷積參數與池化壓縮參數,提高網絡表達能力,減小過擬合風險[9]。Hinton 認為CNN 中的池化操作是一個災難,因為池化過程在一定程度上弱化了神經網絡結構對于位置信息的準確把握,并不能精準地學習到不同物體的位置關聯[10]。但是數據降維獲得抽象特征是每一個卷積神經網絡的重點,膠囊網絡也不例外,主膠囊層為了數據降維,原膠囊網絡采用步長為2 的卷積操作,這種方式必定會丟失特征信息,盡管最大池化也丟失特征信息,但是有選擇地保留了主要特征[11]。
如圖6 所示,如果使用步長為1 的卷積核加最大池化操作,將會得到4 × 4 區域中最顯著的特征,如果采用步長為2的卷積操作,將會受圖片中數字位置的影響,得到四個卷積結果的其中之一,影響識別精度,因此,通過引入池化層實現數據降維可以提高模型性能[12]。

圖6 池化層的作用Fig. 6 Role of pooling layer
本文深度特征提取得到的特征圖為14 × 14 × 256,根據上述分析,主膠囊層采用8組3× 3× 32步長為1的卷積核,對比實驗采用8 組3× 3× 32 步長為2 的卷積核,用VALID 方式填充,進行對比實驗,驗證池化層引入的效果。
許多多糖對病毒通過多糖大分子機械性和化學性競爭病毒與細胞結合位點起抑制作用,從而抑制病毒吸附細胞。EOP對天性免疫缺陷性病毒細胞的吸附與增殖有抑制作用,因此EOP具有防治艾滋病感染的作用,且無副作用[14]。辛曉明等[17]考察EOP的抗腫瘤活性,表明EOP對腫瘤S-180細胞有明顯的抑制作用,且能提高動物脾臟和胸腺指數,還能增加外周血白細胞和骨髓有核細胞數量。
主膠囊層通過引入池化層實現了數據降維,但是訓練后期無法穩定收斂,精度出現2%的上下浮動,分析發現,原動態路由算法更新參數bij時直接使用誤差更新,未設置學習率,無法適應深度特征提取網絡的訓練過程,為了解決這個問題,本文采用隨機優化方法Adam(Adaptive moment estimation)[13],對膠囊之間的誤差進行移動指數平均,實現自適應矩估計,動態調整路由算法的學習率,使其平穩收斂。

硬件環境:i7-8700k,GTX 1060-6G,16 GB內存。
軟件環境:Windows 10,Python 3.6.5,TensorFlow-GPU 1.11.0,CUDA-9.2,cuDNN-v7.5.0
本文實驗數據集采用德國交通標志數據,該數據集包括43 類交通標志,訓練集39 209 張,測試集12 630 張,其中有大量模糊不清的圖像,部分遮擋、傾斜、運動模糊等不利條件下的圖像,基本可以達到實際情況下的識別難度。部分交通標志如圖7所示。

圖7 數據集示例Fig. 7 Dataset examples
本文網絡訓練測試均采用灰度圖,網絡訓練參數定義如下:每批128 張,路由更新次數為3,一階矩修正指數a 為0.9,二階矩修正指數b為0.999,穩定常數ε為10-8,迭代50次。
3.2.1 確定特征提取深度
用圖5 給出的三種深度特征提取結構進行對比實驗,確定特征提取的深度。表1 中A-CapsNet、B-CapsNet、C-CapsNet分別采用2、3、5 層卷積層進行特征提取,之后與膠囊網絡原結構進行對比。

表1 原結構模型與深度特征提取模型的精度對比Tab. 1 Accuracy comparison of original structure model and depth feature extraction models
表1 顯示,原膠囊網絡的識別精度為93.17%,三種深度特征提取模型精度均比原模型高,因此深度特征提取結構很好地提高了模型性能。從表1 可以看出:深度特征提取參數層為3層時精度達到最高;A結構深度較淺,特征提取不完全,導致精度較低;C 結構可能在訓練后期出現梯度消失問題,導致精度無法再提高。另外池化層的對比顯示,主膠囊層引入池化層可以一定程度上提高精度,因為池化層所選擇的是局部主要特征,而步長為2 的卷積操作得到的特征會受到圖像拍攝角度的影響,而交通標志識別算法適應車輛行駛過程中的拍攝角度是非常重要的,因此主膠囊層引入池化層提高了網絡性能,而步長為2 的卷積操作嚴重影響網絡性能。本文接下來的對比實驗均采用在主膠囊層引入池化層的BCapsNet結構。
3.2.2 驗證動態路由算法改進效果
圖8 是采用自適應路由算法與動態路由算法的損失對比,是訓練批次達到6 000 以后的損失變化情況,黑色線條為本文算法損失變化,灰色線條為采用動態路由算法的損失變化,此時網絡已經基本收斂。從圖8 可以看出,灰色線條的波動程度遠大于黑色線條,原動態路由算法在訓練后期損失振蕩嚴重,不利于網絡收斂,而改進后的波動程度很小,更加穩定。這是因為使用移動指數平均法會使近幾次的損失占更大的比重。訓練初期損失較大,所以參數更新速度很快,訓練后期損失較小,即使某一次損失較大,也會因為近幾次的平均而減弱波動程度,因此不會出現太大的震蕩,既保證了訓練前期的快速更新,又保證了訓練后期的平穩收斂。

圖8 本文算法與動態路由算法的損失對比Fig. 8 Loss comparison of the proposed algorithm and dynamic routing algorithm
3.2.3 本文算法性能驗證
為了驗證本文改進后的膠囊網絡的性能,本文將43 類交通標志的分類結果分為三大類以方便展示:禁令標志(紅色圓形)、警告標志(紅色三角形)和指示標志(藍色圓形)。分別計算三大類的識別精度及總精度,評價模型性能,實驗結果如表2所示。

表2 本文算法性能評價Tab. 2 Performance evaluation of the proposed algorithm
從表2 可看出,禁令標志的識別效果最好,警告標志識別效果最差,這是因為警告標志為紅色三角形,其中有多種相似的圖案,區分度較弱,在識別過程中有較大的難度,因此識別效果較差。
為了驗證本文算法在特殊場景中的識別效果,采用3.2.1節中的B-CapsNet訓練得到的模型和訓練好的AlexNet、Let5-Net 模型,并從原數據集中挑選圖像模糊、變形和缺失等難以識別的圖片,測試三個模型,以驗證本文算法在特殊場景下的識別效果,測試結果如圖9 所示。為了直觀地表示識別結果,采用清晰的能夠代表類別的圖片表示識別結果。

圖9 特殊場景識別部分結果Fig.9 Some results of special scene recognition
圖9 中待測的交通標志圖片模糊、變形和缺失非常嚴重,在這種極難識別的場景中本文算法仍然能夠正確識別2 張,而另外兩種算法均無法正確識別,可見本文算法識別特殊場景中的交通標志擁有一定的優勢。根據待測圖片的場景分析,本文算法與經典的交通標志識別算法在光線暗淡場景下的識別錯誤率都比較高,圖像采樣的低分辨率或攝像機運動而產生的圖像模糊場景下識別率也比較低,可見無法提取到圖像特征是識別錯誤的根本原因。表3 是本次實驗的精度及識別耗時的數據記錄。

表3 不同算法性能對比結果Tab. 3 Performance comparison of different algorithms
從表3 結果可以看出,本文算法能夠取得很好的分類結果,在特殊場景下,識別精度比AlexNet 提升了10.02 個百分點,比Let5-Net提升了12.68個百分點。這是因為膠囊網絡采用向量神經元,保留圖像特征的位置信息,因此對整體同變性有非常好的魯棒性,能夠正確識別不同拍攝角度下的交通標志;而基于卷積神經網絡的經典圖像識別算法使用標量神經元,沒有保留特征的位置信息,對于圖像旋轉的魯棒性較差,不能很好地解決拍攝角度問題,因此經典的CNN 算法相對本文算法精度較低。本文算法對單張圖片的識別時間相對AlexNet縮短了2.09 ms,相對Let5-Net縮短了0.42 ms,效率提升不明顯。雖然本文算法的網絡復雜度低于另外兩種算法,但是動態路由算法部分運算復雜,占用了總識別時間的80%。經測試,訓練過程主要耗時也在動態路由算法部分,因此動態路由算法是膠囊網絡識別效率提升不明顯的主要原因。
本文提出的結構改進的膠囊網絡,首先采用VGG 深層特征提取思想進行深度特征提取,為主膠囊層提取圖片的深層特征;然后在主膠囊層引入池化層,較低數據維度,并保留顯著特征;最后用移動指數平均法改進動態路由算法,使學習率可以自適應調節,以適應深度特征提取網絡的訓練,使模型能夠快速平穩地收斂,最終實現了比原結構更好的性能。結構改進的膠囊網絡提高了交通標志識別的精度,解決了基于卷積神經網絡的經典結構在復雜場景下識別率低的問題。通過對識別效率和誤報圖像的分析,本文所提出的模型采用的動態路由算法復雜度較高,識別場景受光線影響較大,下一步將針對動態路由算法進行優化,提高識別效率,并完善網絡結構,提高對光線強弱的適應性,進一步提高識別精度,使其能夠更加高效、準確地進行交通標志識別。