侯遠韶
(河南工業貿易職業學院機電工程系,鄭州451191)
車輛在快速移動時背景不斷變化,同時受制于計算機硬件、環境和天氣等因素,使得采集的車輛信息難以對車型進行全面的描述,進而導致車型信息有限、魯棒性差,對后期的車型識別和數據維護都存在較大挑戰[1]。針對這一情況,主要通過提升硬件參數和改進軟件算法兩個方面來提升車型的識別率:提升硬件參數可以精確得到車輛的有效信息,在一定程度上提高識別率,但是當硬件參數達到一定數值時,每增加一個數量級都需要付出巨大的成本,同時環境和天氣等外部因素以及后期維護成本都是需要考慮的因素;傳統的機器學習和車型識別算法過于依賴提取特征的全面性以及識別算法的準確性,且只有當特征之間存在巨大差異時才會有較好的識別效果,不具有普適性;基于改進卷積神經網絡的多層深度特征融合算法,通過含有多個隱層的深層網絡獲取圖像的初始特征,然后通過特征融合策略對多個特征進行融合,得到更具有代表性的車型信息,從而提高車型識別效率,同時避免了位置變化以及背景多變帶來的影響[2]。
圖像的低層特征如何與高層語義聯系起來是圖像處理的難點。源于人工神經網絡的深度學習,模擬人腦進行學習分析,可以將原始數據通過一系列簡單的、非線性映射轉變為高層次抽象的表達[3]。典型的深度學習主要有雙向分層遞歸神經網絡(RNN)、受限玻爾茲曼機(DBN)、卷積神經網絡(CNN)等,通過構建含有多個隱層的模型(通常在5層以上),對原始數據進行訓練,進而得到具有圖像代表性信息的特征[4]。深度學習利用分層原理逐層進行特征提取將提取到的低層特征,反饋給高層,也就是說將m層的輸出作為m+1層的輸入,用數學原理表示為,如果存在多維復雜函數log(cos(exp(sin(x)))),深度學習則可以將多維復雜函數分解為低維簡單函數x,sin(x),ex,cos(x),log(x),深度學習利用分層原理網絡模型如圖1所示。

圖1 深度學習利用分層原理網絡模型
卷積神經網絡主要由卷積層、池化層和全連接層構成,權值共享、局部連接、池化是卷積神經網絡所具有的典型特征,可以將復雜抽象的網絡結構類似成生物神經網絡,在減少網絡參數的同時保持網絡的深層結構,進而提高系統的穩定性[5]。卷積神經網絡不需要對原始數據進行復雜的變換從而直接輸入網絡,避免復雜的特征提取和數據重建,同時針對復雜多變的外部環境,卷積神經網絡具有高度不變性,在面對圖像數據傾斜、平移、比例縮放時仍然具有穩定性[6]。
卷積神經網絡計算包括前向傳導、反向傳導以及卷積和降采樣過程[7]。傳統的圖像處理算法,在面對一個1 000×1 000像素的圖像時,需要將圖像表示成一個1 000 000的向量進行描述,同時每個神經元都需要面對所有輸入層像素,那么由圖像處理算法可知隱層的參數規模將達到1 000 000×1 000 000為1012個,在面對如此規模的參數時,對計算機硬件和處理算法都是一個巨大的挑戰[8]。針對這種情況,通過對局部數據進行特征感知的卷積神經網絡,在進行卷積操作時可以減少參數數量,同時具有相同特征值的神經元可以進行權值共享,進一步提升網絡流暢性,緩解數據的類不平衡,卷積神經網絡原理如圖2所示。

圖2 卷積神經網絡基本結構
不同等級的特征具有不同的特點,深度學習利用分層原理逐層進行特征提取將提取到的低層特征,反饋給高層,而如何在不丟失低層結構特征的同時保留高層特征的語義信息是研究的重點[9]。低層圖像信息完整地保留了數據的結構和彼此間的關聯性,具有分辨率高圖像清晰的特點,但用于檢測圖像內在語義信息不足;高層特征語義信息豐富可以很好地表達圖像的內在語義信息,但由于經過多次卷積和變換,圖像原始的結構信息丟失進而導致對圖像的細節感知不足[10]。將低層特征和高層特征以一定的規則進行互補融合,從而最大程度提升識別效果,是多特征深度融合的關鍵。具體做法就是將低層特征的結構信息融合到高層特征,高層特征的語義信息融合到低層特征,實現優勢互補進而得到一個聯合高低級特征的深度卷積神經網絡圖像識別算法[11]。
建立多層深度特征融合模型,需要討論特征融合的可行性。中低分辨率車型的識別,首先需要選擇具有代表性的特征,但由于其分辨率較低在低層特征上缺少語義信息,同時深度學習模型需要大規模的數據集,故對系統硬件提出了更高的要求。其次,深度網絡含有多個隱層(一般大于5個),導致局部特征維度大于全連接層特征向量維度,因此建立多層深度特征融合模型必須解決這些問題,才能實現算法的整體提升[12]。
多層深度特征融合模型具體操作為:通過卷積下采樣運算將低層特征降維進而達到相同的尺寸,具體流程為將圖像低層特征與深度為Ⅰ而維數不同的卷積核進行卷積運算,使得低層特征的維度下降但深度不變,卷積神經網絡下的采樣為池化,池化可以看作以p范數為卷積核的卷積運算,數學表示式為

式(1)中,x為n維向量,xi(i=1,2,……,n)為向量元素。當p接近無窮大時為最大池化,p=1時則為平均池化,傳統的池化操作可能會丟失圖像部分信息,而針對中低分辨率的車型信息時,任何信息的丟失都可能造成識別的誤差,因此需要通過卷積操作避免數據的丟失。如果低層特征維度為(m×m),深度為n,卷積運算結果為

式(2)中,第l層的特征映射用l表示,a=(1,2,……,u),b=(1,2,……,u),為卷積核在像素區域對應的位置,為像素區域,為像素區域(a,b)第i個卷積核的值。那么在像素區域(a,b)處的多層深度特征融合Y,可以通過對低層特征卷積運算與激活函數f、偏置函數以及加權函數Wl求和得到

多層深度特征融合算法,在構建融合模型的基礎上,需要進行訓練過程和特征組合方式的研究,算法通過對深度特征1和2進行融合得到特征融合層,然后特征融合層再與深度特征3融合,以此類推得到全連接層網絡,繼而利用不同深度特征間存在的結構信息,實現低層特征和高層特征的優勢互補融合,最大程度提升識別效果。全連接層網絡節點決定了算法的有效性,k層網絡的節點Z數學表示為

式(4)中,xk-1表示k層網絡的前一層。算法在去除冗余特征的同時,有效避免了特征融合帶來的維數災難,同時可以得到不同特征間的相關信息,進而通過融合特征得到魯棒性好、識別能力強的特征,增加車型的識別效率。多層深度特征融合算法具體流程如圖3所示。

圖3 多層深度特征融合算法流程
像素區域的多層深度特征融合結果,受偏置函數、加權函數以及激活函數的影響,同時中低分辨率的車型圖像對外界環境變化敏感,而深度學習只有通過大量的訓練數據集才能得出數據特征,因此為了防止過擬合現象的發生,需要對多層深度特征融合網絡進行優化,具體方法有數據加強技術和Dropout技術?;贒ropout的防過擬合,為了減少參數數量需要對神經元進行選擇,每個神經元的選擇概率相等,如果某個神經元的傳遞函數為

假設原網絡的激活函數為a(h),采用Dropout技術后隱藏部分神經元,得到一個不可靠的網絡結構,避免過擬合現象的發生,融合后網絡的激活函數為

那么,基于Dropout的防過擬合輸出結果為

式(7)中,D=(x1,x2……xdh)為伯努利分量。基于Dropout的網絡優化,在降低計算復雜度的同時,可以很好地防止過擬合現象的發生,同時降低了樣本訓練時間,提升了算法的時效性。
試驗平臺采用64位PC機,Windows7操作系統,CPU為Intel i7處理器,96GB RAM,圖像處理器(GPU)采用NVIDIA,編程環境為Python3.8。試驗數據集采用Stanford cars數據庫,Stanford cars將汽車類別按型號、年份、生產商進行分類由斯坦福大學發布,該數據集包含分辨率為575pixel×310pixel的16 185張汽車數據,共197個車型。為了驗證算法的普適性,采用數據集16 185張汽車數據中的8 144張作為深度學習的訓練樣本,8 041張圖片作為測試樣本,通過對比不同算法對測試樣本的識別準確度、特征敏感度來驗證算法的性能。不同算法實驗對比分析結果見表1。

表1 不同算法實驗對比分析
通過表1可知,本文算法不管是在準確度上還是對特征的敏感度上都明顯優于其他算法,具有良好的識別效果,體現了高維和低維特征融合的優越性,同時在保持較高精確度的同時避免了過擬合現象的出現。但是,由于Stanford cars數據庫沒有顯現出低分辨率以及復雜背景下融合算法的優越性,因此,為了體現算法的普遍適應性特別是在中低分辨率情況下的效果,通過對數據集圖像人為進行加噪處理,使得數據集分辨率降為原始圖像分辨率的80%、60%和40%,來驗證本文算法在中低分辨率情況下對車型識別的效果。不同算法在不同圖像分辨率下的實驗結果見表2。

表2 不同算法在不同圖像分辨率下實驗結果
通過表2可知,不同分辨率情況下基于多層深度特征融合的車型識別算法可以充分融合高維低維的特征信息,將低層特征的結構信息融合到高層特征,高層特征的語義信息融合到低層特征,進而實現高低維特征間的優勢互補,相對于其他算法具有一定的優勢和普遍適用性。
本文首先分析了典型的深度學習方法,以及卷積神經網絡的基本結構和操作,在此基礎上提出了多層深度特征融合算法以及優化策略。為了提高車型識別效率,同時降低計算復雜度,建立多層深度特征融合模型,將高層特征的語義信息和低層特征的結構信息進行優勢互補,為了避免過擬合現象的出現采用Dropout技術對融合網絡進行優化。最后通過實驗仿真,驗證本文算法在不同分辨率情況下的準確度以及對特征的敏感度,實驗表明本文算法相對于傳統算法具有一定的識別精確度和普遍適用性。