陳立潮,鄭佳敏,曹建芳,2*,潘理虎,張 睿
(1. 太原科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,太原030024; 2. 忻州師范學(xué)院計(jì)算機(jī)系,山西忻州034000)
(?通信作者電子郵箱kcxdj122@126.com)
交通標(biāo)志識(shí)別是先進(jìn)駕駛員輔助系統(tǒng)和無(wú)人駕駛系統(tǒng)重要組成部分。由于車輛在各種環(huán)境、光照條件、速度和地理位置下行駛,深度學(xué)習(xí)算法必須始終保持魯棒性和可靠性。交通標(biāo)志識(shí)別領(lǐng)域面臨的主要問題有:環(huán)境、天氣的影響;圖像采集角度的問題;遮擋物影響;實(shí)時(shí)性問題。目前交通標(biāo)志識(shí)別常用的算法有方向梯度直方圖[1]、支持向量機(jī)[2]、卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)等,在正常行駛環(huán)境下,基于卷積神經(jīng)網(wǎng)絡(luò)的AlexNet[3]、LeNet-5[4]對(duì)于特殊場(chǎng)景識(shí)別精度和適應(yīng)性存在不足。
傳統(tǒng)的圖像識(shí)別算法對(duì)于環(huán)境的適應(yīng)性較差,識(shí)別速度緩慢,已經(jīng)無(wú)法滿足高精度實(shí)時(shí)性的要求。膠囊網(wǎng)絡(luò)(Capsule Network,CapsNet)[5]是一種新型卷積神經(jīng)網(wǎng)絡(luò)模型,使用向量神經(jīng)元克服了CNN 對(duì)物體之間的空間辨識(shí)度差及物體大幅度旋轉(zhuǎn)之后識(shí)別能力低下的兩個(gè)缺陷,有效地彌補(bǔ)了CNN 模型的不足;動(dòng)態(tài)路由算法的快速收斂及簡(jiǎn)單的網(wǎng)絡(luò)結(jié)構(gòu),不僅保證了較高的識(shí)別精度,而且收斂速度得到了極大的提升。
針對(duì)目前交通標(biāo)志識(shí)別存在的問題,本文提出了一種基于膠囊網(wǎng)絡(luò)的智能交通標(biāo)志識(shí)別方法。膠囊網(wǎng)絡(luò)本身對(duì)圖像旋轉(zhuǎn)的適應(yīng)性很好地解決了圖像采集角度問題,通過超深度卷積模型改進(jìn)了膠囊網(wǎng)絡(luò)結(jié)構(gòu)中的特征提取部分,并在主膠囊層引入池化層,以及采用移動(dòng)指數(shù)平均法改進(jìn)動(dòng)態(tài)路由算法,提高了膠囊網(wǎng)絡(luò)在交通標(biāo)志識(shí)別領(lǐng)域的識(shí)別精度,并降低了運(yùn)算負(fù)荷,實(shí)現(xiàn)了比原結(jié)構(gòu)更優(yōu)越的性能。
膠囊網(wǎng)絡(luò)是一個(gè)非常淺的卷積神經(jīng)網(wǎng)絡(luò),其結(jié)構(gòu)如圖1所示,基本結(jié)構(gòu)為:輸入層、卷積層、主膠囊層和數(shù)字膠囊層。卷積層采用9 × 9 步長(zhǎng)為1 的卷積核進(jìn)行特征提取,特征提取不完全,因此在交通標(biāo)志識(shí)別上精度較低。
圖1 膠囊網(wǎng)絡(luò)基本結(jié)構(gòu)Fig. 1 Basic structure of capsule network
主膠囊層是膠囊網(wǎng)絡(luò)的核心之一,實(shí)現(xiàn)了標(biāo)量到向量的轉(zhuǎn)化,原膠囊網(wǎng)絡(luò)主膠囊層的輸入維度為20 × 20 × 256 的特征圖,通過8 組9 × 9 × 32步長(zhǎng)為2 的卷積核卷積得到8 組6 ×6 × 32 的特征圖,然后將8 組特征圖對(duì)應(yīng)位置線性組合,得到1 152個(gè)膠囊,具體過程如圖2所示。
圖2 主膠囊層Fig. 2 Main capsule layer
圖3 為動(dòng)態(tài)路由算法向量運(yùn)算的形象表示,特征分量加權(quán)之后相加,得到預(yù)測(cè)向量sj,采用非線性激活函數(shù)得到vj:
圖3 動(dòng)態(tài)路由算法Fig. 3 Dynamic routing algorithm
用vj與特征分量的向量點(diǎn)積表示高層膠囊vj與低層膠囊vj-1的相關(guān)程度,調(diào)整特征分量的權(quán)重,使特征分量的加權(quán)求和結(jié)果越來(lái)越接近真實(shí)向量。
本文所提出的網(wǎng)絡(luò)結(jié)構(gòu)如圖4 所示,圖中Conv3-128 表示128 個(gè)3× 3 的卷積核,首先采用深度特征提取結(jié)構(gòu)提取深度特征,然后通過引入最大池化層(MaxPool)的主膠囊層實(shí)現(xiàn)標(biāo)量神經(jīng)元到向量神經(jīng)元的轉(zhuǎn)換,最后用自適應(yīng)路由算法實(shí)現(xiàn)膠囊間的參數(shù)更新,由數(shù)字膠囊層(Digital Capsule Layer,DigitCaps)得到識(shí)別結(jié)果。
圖4 深度特征提取網(wǎng)絡(luò)Fig. 4 Depth feature extraction network
深度卷積網(wǎng)絡(luò)有助于提取圖像深層特征,從而提高識(shí)別精度[6]。超深度卷積神經(jīng)網(wǎng)絡(luò)由牛津大學(xué)計(jì)算機(jī)視覺組(Visual Geometry Group,VGG)與Google DeepMind 公司共同研發(fā),該網(wǎng)絡(luò)結(jié)構(gòu)說明了深度有益于提高分類的正確率,通過在傳統(tǒng)的卷積網(wǎng)絡(luò)框架中使用更深的層能夠在同樣的數(shù)據(jù)集上取得優(yōu)異的結(jié)果[7]。VGG 通過使用大量3× 3 的小卷積核進(jìn)行堆疊,穩(wěn)步增加網(wǎng)絡(luò)深度,用更少的參數(shù)實(shí)現(xiàn)了與大卷積核相同的感受野,不但減少了網(wǎng)絡(luò)參數(shù),而且提高了訓(xùn)練速度。因此,本文基于VGG 模型改進(jìn)膠囊網(wǎng)絡(luò)特征提取部分,實(shí)現(xiàn)深度特征提取,達(dá)到提高識(shí)別精度的目的。
如圖5 所示,本文采用多個(gè)3× 3 卷積核改進(jìn)原結(jié)構(gòu),在基于VGG 結(jié)構(gòu)上,提出三種深度特征提取結(jié)構(gòu),特征提取層數(shù)分別為2層、3層、5層。訓(xùn)練時(shí),輸入圖片均調(diào)整為28× 28的灰度圖,激活函數(shù)選取線性整流函數(shù)(Rectified Linear Unit,ReLU)[8],采用最大池化層進(jìn)行數(shù)據(jù)降維,得到14 ×14 × 256的特征圖。
圖5 三種深度特征提取結(jié)構(gòu)Fig. 5 Three depth feature extraction structures
傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)的最大創(chuàng)新就是共享卷積參數(shù)與池化壓縮參數(shù),提高網(wǎng)絡(luò)表達(dá)能力,減小過擬合風(fēng)險(xiǎn)[9]。Hinton 認(rèn)為CNN 中的池化操作是一個(gè)災(zāi)難,因?yàn)槌鼗^程在一定程度上弱化了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)對(duì)于位置信息的準(zhǔn)確把握,并不能精準(zhǔn)地學(xué)習(xí)到不同物體的位置關(guān)聯(lián)[10]。但是數(shù)據(jù)降維獲得抽象特征是每一個(gè)卷積神經(jīng)網(wǎng)絡(luò)的重點(diǎn),膠囊網(wǎng)絡(luò)也不例外,主膠囊層為了數(shù)據(jù)降維,原膠囊網(wǎng)絡(luò)采用步長(zhǎng)為2 的卷積操作,這種方式必定會(huì)丟失特征信息,盡管最大池化也丟失特征信息,但是有選擇地保留了主要特征[11]。
如圖6 所示,如果使用步長(zhǎng)為1 的卷積核加最大池化操作,將會(huì)得到4 × 4 區(qū)域中最顯著的特征,如果采用步長(zhǎng)為2的卷積操作,將會(huì)受圖片中數(shù)字位置的影響,得到四個(gè)卷積結(jié)果的其中之一,影響識(shí)別精度,因此,通過引入池化層實(shí)現(xiàn)數(shù)據(jù)降維可以提高模型性能[12]。
圖6 池化層的作用Fig. 6 Role of pooling layer
本文深度特征提取得到的特征圖為14 × 14 × 256,根據(jù)上述分析,主膠囊層采用8組3× 3× 32步長(zhǎng)為1的卷積核,對(duì)比實(shí)驗(yàn)采用8 組3× 3× 32 步長(zhǎng)為2 的卷積核,用VALID 方式填充,進(jìn)行對(duì)比實(shí)驗(yàn),驗(yàn)證池化層引入的效果。
許多多糖對(duì)病毒通過多糖大分子機(jī)械性和化學(xué)性競(jìng)爭(zhēng)病毒與細(xì)胞結(jié)合位點(diǎn)起抑制作用,從而抑制病毒吸附細(xì)胞。EOP對(duì)天性免疫缺陷性病毒細(xì)胞的吸附與增殖有抑制作用,因此EOP具有防治艾滋病感染的作用,且無(wú)副作用[14]。辛?xí)悦鞯萚17]考察EOP的抗腫瘤活性,表明EOP對(duì)腫瘤S-180細(xì)胞有明顯的抑制作用,且能提高動(dòng)物脾臟和胸腺指數(shù),還能增加外周血白細(xì)胞和骨髓有核細(xì)胞數(shù)量。
主膠囊層通過引入池化層實(shí)現(xiàn)了數(shù)據(jù)降維,但是訓(xùn)練后期無(wú)法穩(wěn)定收斂,精度出現(xiàn)2%的上下浮動(dòng),分析發(fā)現(xiàn),原動(dòng)態(tài)路由算法更新參數(shù)bij時(shí)直接使用誤差更新,未設(shè)置學(xué)習(xí)率,無(wú)法適應(yīng)深度特征提取網(wǎng)絡(luò)的訓(xùn)練過程,為了解決這個(gè)問題,本文采用隨機(jī)優(yōu)化方法Adam(Adaptive moment estimation)[13],對(duì)膠囊之間的誤差進(jìn)行移動(dòng)指數(shù)平均,實(shí)現(xiàn)自適應(yīng)矩估計(jì),動(dòng)態(tài)調(diào)整路由算法的學(xué)習(xí)率,使其平穩(wěn)收斂。
硬件環(huán)境:i7-8700k,GTX 1060-6G,16 GB內(nèi)存。
軟件環(huán)境:Windows 10,Python 3.6.5,TensorFlow-GPU 1.11.0,CUDA-9.2,cuDNN-v7.5.0
本文實(shí)驗(yàn)數(shù)據(jù)集采用德國(guó)交通標(biāo)志數(shù)據(jù),該數(shù)據(jù)集包括43 類交通標(biāo)志,訓(xùn)練集39 209 張,測(cè)試集12 630 張,其中有大量模糊不清的圖像,部分遮擋、傾斜、運(yùn)動(dòng)模糊等不利條件下的圖像,基本可以達(dá)到實(shí)際情況下的識(shí)別難度。部分交通標(biāo)志如圖7所示。
圖7 數(shù)據(jù)集示例Fig. 7 Dataset examples
本文網(wǎng)絡(luò)訓(xùn)練測(cè)試均采用灰度圖,網(wǎng)絡(luò)訓(xùn)練參數(shù)定義如下:每批128 張,路由更新次數(shù)為3,一階矩修正指數(shù)a 為0.9,二階矩修正指數(shù)b為0.999,穩(wěn)定常數(shù)ε為10-8,迭代50次。
3.2.1 確定特征提取深度
用圖5 給出的三種深度特征提取結(jié)構(gòu)進(jìn)行對(duì)比實(shí)驗(yàn),確定特征提取的深度。表1 中A-CapsNet、B-CapsNet、C-CapsNet分別采用2、3、5 層卷積層進(jìn)行特征提取,之后與膠囊網(wǎng)絡(luò)原結(jié)構(gòu)進(jìn)行對(duì)比。
表1 原結(jié)構(gòu)模型與深度特征提取模型的精度對(duì)比Tab. 1 Accuracy comparison of original structure model and depth feature extraction models
表1 顯示,原膠囊網(wǎng)絡(luò)的識(shí)別精度為93.17%,三種深度特征提取模型精度均比原模型高,因此深度特征提取結(jié)構(gòu)很好地提高了模型性能。從表1 可以看出:深度特征提取參數(shù)層為3層時(shí)精度達(dá)到最高;A結(jié)構(gòu)深度較淺,特征提取不完全,導(dǎo)致精度較低;C 結(jié)構(gòu)可能在訓(xùn)練后期出現(xiàn)梯度消失問題,導(dǎo)致精度無(wú)法再提高。另外池化層的對(duì)比顯示,主膠囊層引入池化層可以一定程度上提高精度,因?yàn)槌鼗瘜铀x擇的是局部主要特征,而步長(zhǎng)為2 的卷積操作得到的特征會(huì)受到圖像拍攝角度的影響,而交通標(biāo)志識(shí)別算法適應(yīng)車輛行駛過程中的拍攝角度是非常重要的,因此主膠囊層引入池化層提高了網(wǎng)絡(luò)性能,而步長(zhǎng)為2 的卷積操作嚴(yán)重影響網(wǎng)絡(luò)性能。本文接下來(lái)的對(duì)比實(shí)驗(yàn)均采用在主膠囊層引入池化層的BCapsNet結(jié)構(gòu)。
3.2.2 驗(yàn)證動(dòng)態(tài)路由算法改進(jìn)效果
圖8 是采用自適應(yīng)路由算法與動(dòng)態(tài)路由算法的損失對(duì)比,是訓(xùn)練批次達(dá)到6 000 以后的損失變化情況,黑色線條為本文算法損失變化,灰色線條為采用動(dòng)態(tài)路由算法的損失變化,此時(shí)網(wǎng)絡(luò)已經(jīng)基本收斂。從圖8 可以看出,灰色線條的波動(dòng)程度遠(yuǎn)大于黑色線條,原動(dòng)態(tài)路由算法在訓(xùn)練后期損失振蕩嚴(yán)重,不利于網(wǎng)絡(luò)收斂,而改進(jìn)后的波動(dòng)程度很小,更加穩(wěn)定。這是因?yàn)槭褂靡苿?dòng)指數(shù)平均法會(huì)使近幾次的損失占更大的比重。訓(xùn)練初期損失較大,所以參數(shù)更新速度很快,訓(xùn)練后期損失較小,即使某一次損失較大,也會(huì)因?yàn)榻鼛状蔚钠骄鴾p弱波動(dòng)程度,因此不會(huì)出現(xiàn)太大的震蕩,既保證了訓(xùn)練前期的快速更新,又保證了訓(xùn)練后期的平穩(wěn)收斂。
圖8 本文算法與動(dòng)態(tài)路由算法的損失對(duì)比Fig. 8 Loss comparison of the proposed algorithm and dynamic routing algorithm
3.2.3 本文算法性能驗(yàn)證
為了驗(yàn)證本文改進(jìn)后的膠囊網(wǎng)絡(luò)的性能,本文將43 類交通標(biāo)志的分類結(jié)果分為三大類以方便展示:禁令標(biāo)志(紅色圓形)、警告標(biāo)志(紅色三角形)和指示標(biāo)志(藍(lán)色圓形)。分別計(jì)算三大類的識(shí)別精度及總精度,評(píng)價(jià)模型性能,實(shí)驗(yàn)結(jié)果如表2所示。
表2 本文算法性能評(píng)價(jià)Tab. 2 Performance evaluation of the proposed algorithm
從表2 可看出,禁令標(biāo)志的識(shí)別效果最好,警告標(biāo)志識(shí)別效果最差,這是因?yàn)榫鏄?biāo)志為紅色三角形,其中有多種相似的圖案,區(qū)分度較弱,在識(shí)別過程中有較大的難度,因此識(shí)別效果較差。
為了驗(yàn)證本文算法在特殊場(chǎng)景中的識(shí)別效果,采用3.2.1節(jié)中的B-CapsNet訓(xùn)練得到的模型和訓(xùn)練好的AlexNet、Let5-Net 模型,并從原數(shù)據(jù)集中挑選圖像模糊、變形和缺失等難以識(shí)別的圖片,測(cè)試三個(gè)模型,以驗(yàn)證本文算法在特殊場(chǎng)景下的識(shí)別效果,測(cè)試結(jié)果如圖9 所示。為了直觀地表示識(shí)別結(jié)果,采用清晰的能夠代表類別的圖片表示識(shí)別結(jié)果。
圖9 特殊場(chǎng)景識(shí)別部分結(jié)果Fig.9 Some results of special scene recognition
圖9 中待測(cè)的交通標(biāo)志圖片模糊、變形和缺失非常嚴(yán)重,在這種極難識(shí)別的場(chǎng)景中本文算法仍然能夠正確識(shí)別2 張,而另外兩種算法均無(wú)法正確識(shí)別,可見本文算法識(shí)別特殊場(chǎng)景中的交通標(biāo)志擁有一定的優(yōu)勢(shì)。根據(jù)待測(cè)圖片的場(chǎng)景分析,本文算法與經(jīng)典的交通標(biāo)志識(shí)別算法在光線暗淡場(chǎng)景下的識(shí)別錯(cuò)誤率都比較高,圖像采樣的低分辨率或攝像機(jī)運(yùn)動(dòng)而產(chǎn)生的圖像模糊場(chǎng)景下識(shí)別率也比較低,可見無(wú)法提取到圖像特征是識(shí)別錯(cuò)誤的根本原因。表3 是本次實(shí)驗(yàn)的精度及識(shí)別耗時(shí)的數(shù)據(jù)記錄。
表3 不同算法性能對(duì)比結(jié)果Tab. 3 Performance comparison of different algorithms
從表3 結(jié)果可以看出,本文算法能夠取得很好的分類結(jié)果,在特殊場(chǎng)景下,識(shí)別精度比AlexNet 提升了10.02 個(gè)百分點(diǎn),比Let5-Net提升了12.68個(gè)百分點(diǎn)。這是因?yàn)槟z囊網(wǎng)絡(luò)采用向量神經(jīng)元,保留圖像特征的位置信息,因此對(duì)整體同變性有非常好的魯棒性,能夠正確識(shí)別不同拍攝角度下的交通標(biāo)志;而基于卷積神經(jīng)網(wǎng)絡(luò)的經(jīng)典圖像識(shí)別算法使用標(biāo)量神經(jīng)元,沒有保留特征的位置信息,對(duì)于圖像旋轉(zhuǎn)的魯棒性較差,不能很好地解決拍攝角度問題,因此經(jīng)典的CNN 算法相對(duì)本文算法精度較低。本文算法對(duì)單張圖片的識(shí)別時(shí)間相對(duì)AlexNet縮短了2.09 ms,相對(duì)Let5-Net縮短了0.42 ms,效率提升不明顯。雖然本文算法的網(wǎng)絡(luò)復(fù)雜度低于另外兩種算法,但是動(dòng)態(tài)路由算法部分運(yùn)算復(fù)雜,占用了總識(shí)別時(shí)間的80%。經(jīng)測(cè)試,訓(xùn)練過程主要耗時(shí)也在動(dòng)態(tài)路由算法部分,因此動(dòng)態(tài)路由算法是膠囊網(wǎng)絡(luò)識(shí)別效率提升不明顯的主要原因。
本文提出的結(jié)構(gòu)改進(jìn)的膠囊網(wǎng)絡(luò),首先采用VGG 深層特征提取思想進(jìn)行深度特征提取,為主膠囊層提取圖片的深層特征;然后在主膠囊層引入池化層,較低數(shù)據(jù)維度,并保留顯著特征;最后用移動(dòng)指數(shù)平均法改進(jìn)動(dòng)態(tài)路由算法,使學(xué)習(xí)率可以自適應(yīng)調(diào)節(jié),以適應(yīng)深度特征提取網(wǎng)絡(luò)的訓(xùn)練,使模型能夠快速平穩(wěn)地收斂,最終實(shí)現(xiàn)了比原結(jié)構(gòu)更好的性能。結(jié)構(gòu)改進(jìn)的膠囊網(wǎng)絡(luò)提高了交通標(biāo)志識(shí)別的精度,解決了基于卷積神經(jīng)網(wǎng)絡(luò)的經(jīng)典結(jié)構(gòu)在復(fù)雜場(chǎng)景下識(shí)別率低的問題。通過對(duì)識(shí)別效率和誤報(bào)圖像的分析,本文所提出的模型采用的動(dòng)態(tài)路由算法復(fù)雜度較高,識(shí)別場(chǎng)景受光線影響較大,下一步將針對(duì)動(dòng)態(tài)路由算法進(jìn)行優(yōu)化,提高識(shí)別效率,并完善網(wǎng)絡(luò)結(jié)構(gòu),提高對(duì)光線強(qiáng)弱的適應(yīng)性,進(jìn)一步提高識(shí)別精度,使其能夠更加高效、準(zhǔn)確地進(jìn)行交通標(biāo)志識(shí)別。