菅博瑞 王怡素



摘要:針對智能交通車輛圖像特征識別問題,本文對深度網絡和車輛圖像特征提取方法進行研究,構建一種車輛特征檢測網絡結構。實驗表明通過對車輛圖像變換拉伸等數據增強操作,并在結構中引入隨機清零,在保證識別率的前提下有效抑制了模型過擬合現象。最后運用特征提取結合自己設計的分類層訓練出模型,該模型對車輛前后端圖像特征有較高的識別率。
關鍵詞:深度學習;數據增強;圖像識別;過擬合
中圖分類號:TP31 ? ? 文獻標識碼:A ? ?文章編號:1009-3044(2019)14-0147-04
1 引言
隨著智慧城市、物聯網前沿技術的迅速發展,智能時代已經到來,車輛圖像識別和特征檢測成為智能交通的熱點問題[1]。新風潮下,圖像識別技術在車輛違章監管應用中顯得愈發常見。在傳統的交通監督機制中,僅依靠警力監管車輛違章行為,浪費了人力資源的同時也不能保證實時監督,在一定程度上存在較大的弊端。為了改善交通道路車輛運行效率,完善自動化管理,對車輛圖像識別方法的研究顯得日益迫切。該技術在交通監管、治安巡防、嫌疑車輛跟蹤等領域有著重要應用,在實時性和準確性方面要求極高[2]。車輛違章逆行現象常發生在單向行駛道路,對往來行人和車輛造成了很大的安全隱患,大大降低了道路交通的運行效率。基于圖像處理的違章逆行識別技術能夠及時檢測并識別違章逆行,保障了行人和車輛的交通安全。利用傳統抓拍監控融合深度網絡模型,對車輛前后端進行識別檢測來判斷其是否處于逆行狀態,在此基礎上結合圖像處理技術進行牌照字符識別[3],能夠節省警力和硬件資源。
目前國內外對該方法的研究大致分為3個方向,其中基于外觀特征的車輛圖像識別技術主要通過目標檢測、車輛分割、車輛的特征提取以及分類這幾個主要步驟來完成。傳統識別圖像的方法包括統計模式識別[4]、支持向量機[5]、模板匹配[6]技術以及新興的神經網絡[7],早期特征提取是人工設計的,存在識別準確率低和檢測速度慢等缺陷。
目前,深度網絡學習算法在圖像分類和目標物檢測識別等方面取得了很好的效果,可以使用訓練數據來適應不同的網絡構建特征[8]。卷積運算能夠自動提取并學習車輛圖像特征,而且權值共享等算法的創新使得網絡結構參數數量級驟減[9],增強了網絡泛化能力。針對上述問題,本文通過研究基于深度學習的圖像識別方法,對車輛局部特征進行檢測識別探討。
2 深度卷積神經網絡
2.1 神經網絡原理
1)神經網絡的構成依賴于神經元這一基本單元,神經元的基本模型用表達式表示為:
其中f()表示激活函數,本文使用的激活函數為relu和sigmoid,后者是一種擠壓函數,它可以把很大的值域范圍壓縮為0~1之間,[yk]值的計算是由輸入數據與其對應的權值進行線性計算并求和,結果加上偏置值[bk],然后通過激活函數f()計算獲得。
2)網絡模型在訓練的過程中,就是利用梯度下降算法來對每層網絡的權重參數進行重新調整的過程,通過把輸出信號和期望信號得到誤差進行比較,利用鏈式求導法則將誤差逐層向前傳播從而獲取各層誤差,其中調整各層權重以及相關參數的依據就是這些誤差信號。輸入層通常是不經過神經元進行計算的,因此輸入層的輸出與輸入是相等的。而對于隱藏層和輸出層的輸出,需要結合與單元j相連的單元,單元j的輸入計算表示為:
網絡模型終止訓練時的信號可以開發人員設定,也可以是網絡收斂到一定的程度自己終止。選取終止信號的條件相當重要,如果是人為設定迭代次數,那么次數過多,網絡模型可能會出現過度擬合問題,次數太少,網絡訓練時誤差降低的程度會過低。
2.2 卷積神經網絡在圖像識別上的優勢
近年來,隨著計算機視覺領域的不斷發展,深度學習技術日趨成熟,其中,卷積神經網絡在圖像識別中扮演著非常重要的角色,提高了運算效率并且實現了對圖像高精度的識別。
1)降低了網絡總參數量的數量級
卷積實際上就是使用兩個大小不同的矩陣進行的一種數學運算,并且較于傳統神經網絡,卷積層使用局部連接和權值共享方法大大減少了網絡總參數量的數量級,能更好地抽取出車輛的局部特征和邊緣信息。
2)圖像視覺上擁有良好不變性規則
本文用于實驗研究拍攝的圖像數據集有限,需要進行旋轉平移、參數縮放等圖像變化進行數據集擴充,而且圖像受相機拍攝的角度、距離、天氣環境、光照等因素的影響較大。卷積神經網絡能較好避免因為車輛外觀變形帶來的不利影響,即待辨識的物體在圖像中的形狀、姿勢、位置、明暗度都不會影響分類結果。
3)多通道卷積
多通道卷積層允許網絡輸入原始彩色圖像,較于灰度圖,最大程度上保留了圖像的特征,能夠有效地利用圖像顏色信息。
3 深度學習算法對車輛前后端圖像識別
3.1車輛圖像數據加工預處理
本文采用的車輛圖像數據均來自移動端設備拍攝采集的,大部分是晴天拍攝,少量圖像是雨雪天拍攝的。首先就是把拍攝的圖片進行分類,分別存放到三個文件夾中,訓練路徑、校驗路徑、測試路徑,其中每個文件夾中又分成兩個子文件,分別為behind和front,用來存放車的后端和前端圖像,在一定圖像數量基礎上進行模型的訓練和測試。由于數據集中的原始數據并沒有按照規格大小統一處理,對于不同的圖片,其規格尺寸都不盡相同,因此數據在輸入網絡之前需要對數據集進行處理,把數據集剪裁成既定的尺寸,由于硬件設備算力有限,這里在保證車輛圖像不失真的情況下把圖像剪裁為150*150像素的,然后輸入網絡中對模型進行訓練。
3.2網絡結構設計
本文構建網絡結構使用的深度學習框架是keras,網絡的輸入層用來接收圖像的三維矩陣數據,網絡結構最后是分類層,對車輛前后端進行分類。文中使用的彩色圖像決定了矩陣是三維的,因此網絡結構需要使用三通道卷積核。文中網絡1結構的構建共有10層,具有四個卷積運算層、四個池化操作層和兩個全連接層,卷積層和池化層的結合方式是相互交替進行的,文中數據像素點具有三個分量,數據形式為150*150*3。在四個卷積層中,卷積核形式為3*3*3,在進行卷積運算時,卷積核移動步長為1,運算結束后,輸出的特征圖通道數與上一層卷積核的數量一致。在該網絡結構中,卷積運算輸出的特征圖傳入到池化層進行特征的強化,提取的特征圖經過最后一層池化層下采樣,得到形式為128*7*7的特征圖,最有用flatten層把特征圖轉化為一維矩陣,作為從卷積層到全連接層的過渡,本文的網絡結構參數設置如下:
通過分析網絡層的卷積核數量和大小,以及輸入網絡的圖像大小可以粗略了解網絡中的參數數量級,激活函數層和池化層是沒有參數的,不需要學習,它們只是提供了一種非線性的變換。視覺類網絡組件中帶參數的層主要有卷積層和全連接層,而且粗略估計參數量時一般不考慮偏執項的參數量,因為不會影響總參數量的數量級。
文中池化層主要是對卷積層的卷積結果進行下采樣操作,作用是降低緯度并保留有效信息,緩解過擬合現象。文中采用的采樣策略是最大值區域采樣,由于網絡需要對車輛圖像進行二分類,所以最后一層只有一個神經元,最后文中通過全連接層把以前的局部特征重新通過權值矩陣組裝成完整的圖。
3.3 圖像批量輸入和像素規格化處理
對圖像進行規格化處理就是把像素點的值除以255,使之在0到1之間,然后指定圖像數據集路徑,批量讀入圖像。網絡結構中參數batch_size=20,分批次往內存輸入圖片,每次讀取20張,keras框架中封裝了批量讀取圖像的類Generator,然后結合循環語句讀取。因為數據集中只包含車輛前后端兩類,本文使用參數class_mode為讀取的圖像分別賦值為0和1,用來作為模型訓練時的標簽值,對訓練集中每張圖像進行標注,是模型學習提取車輛特征的重要環節。文中用來實驗的數據共有1000張圖像,由于在構造網絡時batch_size=20,因此參數steps_per_epoch的值設置為50,保證1000張圖像全部輸入到網絡中。
3.4 特征圖可視化
這里通過對卷積層和池化層的輸出特征圖進行可視化,來展示卷積神經網絡連續的層是如何對輸入的圖像數據進行特征提取的。本文用視覺化的方式展示部分網絡層抽取圖片信息的方式,圖1表明,隨著層數的加深,特征層變得越來越抽象,難以用視覺信息進行直觀解釋,但是可以明顯感受到特征圖確實已經開始在表征高層次的視覺概念,提取的特征越來越抽象。
4實驗研究
為了評估優化后的深度卷積網絡模型對車輛前后端識別的準確率,在數據集上進行研究分析,實驗測試如下。
4.1 實驗環境
目前可供選擇深度學習框架環境有Keras、Caffe和Tensorflow等。選擇Keras框架環境是因為Keras比較適合在初期學習探索深度學習階段快速地嘗試各種網絡結構,框架中組件是可插拔的模塊,可以很方便的將卷積層、激活函數等銜接起來。實驗環境如表2所示。
實驗初期,本文首先構造了一個能初步判別車輛前后端的網絡模型,該深度網絡結構目前沒有使用任何優化方法,但圖2表明,模型在訓練數據和驗證數據上的平均識別率能達到90%以上,第一張圖表明模型對訓練集的識別率在不斷提升,不過用驗證數據進行測試網絡模型時,迭代次數過少會出現準確率變化浮動劇烈的現象,迭代次數在22以后,識別率開始穩定。第二張圖表明,模型在訓練集上的表現良好,損失值呈下降趨勢且維持在較低水平,但是模型在驗證集上的損失值在迭代次數為20時反而開始明顯上升,表明模型出現了一定程度過擬合現象,這種情況下如果只是加大模型的訓練強度,過擬合現象并不能有效解決。人工智能是依靠于大數據的基礎上,才能從圖像中抽取廣泛而通用的特征規律,因此該模型訓練受到一個嚴重的制約因素,那就是數據量過少帶來的問題。
4.2 數據增強和隨機清零緩解過擬合
1)對于解決過擬合的辦法就是提供大量數據集,讓模型在更可能多的數據上進行擬合,不斷修正權重參數,然而收集無限多數據是不現實的,因此本文通過數據增強的方法調整已有的數據,通過添加噪聲和銳化、旋轉、拉伸、壓縮、明暗度調整等方法擴充車輛圖像數量。
2)文中引入隨機清零,即使用Dropout在網絡結構中,這是一種有效緩解過擬合現象的方法,這樣在訓練模型時每次按50%的幾率關閉或者忽略某些層的神經元節點,使得模型在使用同樣的數據進行訓練時相當于從不同的結構中隨機選擇一個進行訓練。
圖4表明,圖像的變換和隨機清零這兩種操作可以對過擬合產生很好的抑制作用。模型在訓練和校驗集上對車輛前后端識別正確率逐漸上升,且平均識別率能達到85%以上,第二張圖反映了模型在數據集上的損失表現,兩種損失變化趨勢基本處于同步狀態,說明過擬合現象得到了緩解,但是文中使用的數據增強變換后的圖像與原圖像相關性太強,本質上網絡獲取到的有效信息不多,因此網絡2識別效果改進不明顯,尤其是在識別準確率上,雖然也能接近90%,但是較于網絡1反而有所下降。
4.3 用Finetuning微調復用VGG網絡提升模型識別準確率
在深度網絡結構中,隨著層數加深,網絡對車輛圖像的特征提取粒度會變得越來越細。一般深度學習模型的最后幾層是全連接層,用來對圖像進行分類,因此可以將其替換成本文所需要的結構對車輛前后端進行分類識別。卷積神經網絡前幾層學到的是通用特征,后面幾層學到的是與類別相關的特征,而具體分類的特征層放在最后。
本文首先對VGG模型進行修改,該模型最初是用來對上千個類別進行判定識別的,這里是需要對車輛前后端圖像進行識別,本文在VGG模型基礎上添加一層連接層,然后對輸出通道參數重新設置為1,接著通過Finetuning對深度模型的權重參數進行重新訓練調整。VGG模型訓練集規模遠大于文中提供的數據量,所以原始網絡層權重參數需保持不變,這里通過設置trainable參數保證部分網絡層參數在訓練過程中保持原始值。
模型重新訓練完成后,存儲下來用于觀察在驗證集上的表現。這里存儲的模型是進行Finetuning后訓練的模型,用驗證集判定后其平均識別準確率可以達到93.13%,并且第二張圖表明,模型在訓練集與驗證集上的損失值變化規律高度吻合,很好地緩解了過擬合現象。
通過對表3分析得出,在不產生過擬合的情況下,網絡3識別準確率較網絡1提升了近7個百分點,較網絡2提升了近11個百分點。
5 結束語
本文對車輛前后端圖像分類識別方法進行分析研究,針對傳統圖像識別方法提取低像素圖像特征復雜的問題,利用Keras深度學習框架構造了一個基于深度卷積神經網絡的圖像識別模型,通過Finetuning復用VGG部分卷積層的基礎上結合本文構造的分類層,重新訓練存儲一個深度網絡模型。該模型在有效抑制過擬合現象的基礎上,有效提高了模型在測試集上的識別準確率,對該方法的研究在車輛違章逆行監管方面,有一定的應用和理論參考價值。
參考文獻:
[1] 張若偉,王猛.基于多特征的車輛檢測方法的研究[J].電腦知識與技術,2018(7).
[2] 趙振東. 基于圖像處理的車輛違章逆行識別.Internet Security,2018.
[3] 宋馳, 沈國江, 楊永耀等.車牌自動識別技術概述[A].第七屆中國智能交通年會優秀論文集——智能交通應用[C].2012.
[4] 張旭東,錢瑋,高雋,等.基于稀疏貝葉斯分類器的汽車車型識別[J].小型微型計算機系統,2005(8).
[5] 陳愛斌.基于支持向量機的車型識別[D].湖南:中南大學,2004.
[6] Wei W, Zhang Q, Wang M. A Method of Vehicle Classification using Models and Neural Networks[C]// Vehicular Technology Conference. IEEE, 2001.
[7] 袁公萍,湯一平.基于深度卷積神經網絡的車型識別方法[J].浙江大學學報,2018(7).
[8] 石磊,王亞敏,曹仰杰等.基于深度卷積神經網絡的車型識別[J].計算機科學,2018(13).
[9] 盧雅文.基于人工神經網絡的圖像識別[J].電子技術與軟件工程,2016(12):103.
【通聯編輯:梁書】