姚國愉,張 昭,李雪純,張佳樂
(西安郵電大學 通信與信息工程學院,陜西 西安710121)
車輛識別[1]在智能交通系統、刑事偵查、執法等方面發揮著重要作用,其任務是識別目標車輛的類型、顏色和車牌。顏色作為車輛最顯著的特征之一,能為快速執法提供視覺線索。然而,由于光照、天氣條件、噪聲和圖像捕獲質量等因素的影響,使得車輛顏色識別成為一項具有挑戰性的任務。
為了應對這些挑戰,車輛顏色識別方法已經從最初基于人工提取特征+分類器[2-3]發展到基于深度學習[4-6]。為了在性能和計算復雜度之間實現良好的折衷,本文提出一種改進的卷積神經網絡架構,該網絡共有八層,包括五個卷積層,兩個1x1 卷積層和一個全局平均池化層(Global average pooling,GAP)。
本文網絡的總體框架如圖1 所示。該網絡共有八層,包含五個卷積層、兩個1x1 卷積層和一個全連接層。下面將詳細介紹本文所用的網絡框架結構,其中2.2.1-2.2.4小節內容遵循網絡結構順序。
本文所提出的改進型卷積神經網絡是以AlexNet 網絡為基礎的,所以首先介紹AlexNet 網絡。
AlexNet 網絡是2012年由Alex Krizhevsky 等人提出的,該網絡由五個卷積層,三個全連接層組成,其中使用ReLU 激活函數加快網絡的收斂速度,并且有效防止梯度消失等問題;在全連接層使用“Dropout”技術避免過擬合現象;為了避免網絡模型參數在訓練過程中不斷更新導致每個后續層的輸入數據分布發生變化,在第二卷積層和第三卷積層之前,對輸入數據進行LRN 操作。該網絡的總參數量為5800 多萬,表1 顯示了不同層的特征尺寸和參數數量。
表1 中網絡參數量的計算公式為:

其中,K 為卷積核的大小,KC為卷積核通道數,F0C為輸出特征圖的通道數。從表1 可以看出,網絡的參數主要集中在全連接層,容易造成過擬合現象。

圖1 車輛顏色識別網絡框架

表1 AlexNet 網絡參數設置

表2 所提網絡參數設置
本文設計的卷積神經網絡結構如圖1 所示。網絡共包含八層,輸入是3 通道RGB 彩色圖像,其分辨率為227×227×3。第一卷積層使用尺寸為11×11 步幅為4 的卷積核,第二卷積層使用尺寸為5×5 步幅為2 的卷積核,第三層、第四層和第五層均使用尺寸為3×3 步幅為1 的卷積核,第六層和第七層均使用尺寸為1x1 步幅為1 的卷積核。我們對所有卷積層進行ReLU 激活,并且在第二卷積層、第三卷積層、第四卷積層、第五卷積層之前進行批歸一化處理。在第一卷積層、第二卷積層和第五卷積層之后均使用尺寸為3×3 步幅為2 的卷積核進行最大重疊池化操作,GAP 層的內核大小設置為3×3,輸出層的神經元數量為8。在本文的方法中,將卷積神經網絡架構視為特征提取器,經過若干的卷積層和池化層,最終將所提取的特征向量輸入SoftMax 中用于車輛顏色識別。該網絡的總參數量為840 多萬,表2 顯示了不同層的特征尺寸和參數數量。
2.2.1 卷積層
卷積層作為CNN 不可或缺的一部分,其主要作用是從不同的卷積核中提取多個圖像特征。由于卷積神經網絡的非線性操作是通過激活函數實現的,因此激活函數的選擇對最終識別性能產生巨大的影響。深度學習中的常見激活函數包括Sigmoid、Tanh 和ReLU。本文采用ReLU 函數作為激活神經元的激活函數,其函數表達式為:

由函數表達式可知:在輸入x>0 時梯度保持不變,從而有效緩解了梯度消失的問題;在輸入x<0 時梯度為0,此時神經元不被激活。神經網絡的這種稀疏性使其變得不僅高效而且計算簡單。
2.2.2 歸一化層
網絡模型在訓練過程中參數不斷更新迭代,導致后續各層的輸入數據分布發生變化,使得訓練深層神經網絡變得復雜;另外,如果每批訓練數據的分布各不相同,那么網絡每次迭代都要去學習適應不同的數據分布,這樣大大降低了網絡的訓練速度。為了克服輸入數據分布對識別性能的影響,本文在第二卷積層、第三卷積層、第四卷積層和第五卷積層之前,對數據進行歸一化處理。實驗結果表明,與使用LRN 層的AlexNet 網絡模型相比較,使用BN 層的AlexNet 網絡模型的識別精度提高了1.8%。BN 層傳播的計算公式如下:

表3 每種顏色圖像數量

其中,μB表示小批量的均值表示小批量方差,xi表示輸入,yi表示輸出,β 和γ 為需要學習的參數,增加線性變換,提升網絡表達能力。
2.2.3 重疊池化層
池化(pooling)在卷積神經網絡中能夠降低特征圖的維度、加快網絡收斂速度和降低模型計算量。本文分別在第一卷積層、第二卷積層和第五卷積層之后使用池化尺寸為3,步幅為2 的重疊池化,有助于獲得更豐富的特征信息,從而提高識別精度。
2.2.4 損失函數
損失函數(Loss Function)的實質是計算真實輸出與理想輸出之間的差異,所以損失函數的選擇直接決定了網絡學習分類模型的性能。常見的損失函數包括回歸問題中使用的歐幾里德損失函數、人臉識別中使用的三聯體損失函數和單標簽識別中使用的SoftMax 損失函數。因為車輛顏色識別屬于單標簽樣本分類,故本文采用SoftMax 函數作為損失函數,其函數表達式為:

其中P 是輸入樣本x(i)屬于第j 類的概率,θ 是網絡層的參數。
傳統的卷積神經網絡通常使用全連接層作為網絡的輸出層,但是全連接層會破壞圖像的空間結構,因此本文使用兩個1×1 的卷積層和全局平均池化層來“代替”全連接層。1×1 卷積核與普通的卷積核相比,其作用是相同的,不同的是它的尺寸大小是1×1,而且也不考慮與前一層局部信息之間的關系;除此之外,1×1 的卷積核還能進行卷積核通道數的升維和降維。本文在第一個1×1 卷積層處使用2048個1×1 的卷積核對上一層池化結果(3×3×256)進行卷積操作,得到的特征圖尺寸為3×3×2048;在第二個1×1 卷積層處,使用2048個1×1 的卷積核對上一層的輸出結果進行卷積操作,得到的特征圖尺寸為3×3×2048。
通常卷積層之后連接多個全連接層,而全連接層通常具有太多的參數,容易導致過擬合現象(例如,AlexNet包含三個全連接層)。針對這個問題,本文提出使用GAP層代替全連接層,即對第七卷積層的特征圖進行平均池化操作,將所得的結果直接輸入到SoftMax 分類器中進行分類。這樣做不僅使得特征圖與分類任務相關聯,還不會引入新的模型參數,從而大大減少參數數量,故本文在第七卷積層和最終輸出層之間使用GAP 層,得到1×1×2048 維的特征圖,形成特征點,再將這些特征點組成的特征向量送入SoftMax 中進行分類。改進前網絡FC1 層的參數量為:6×6×256×4096=37748736,FC2 層的參數量為:1×1×4096×4096=16777216,FC3 層的參數量為:1×1×4096×8=32768;改進后網絡第六卷積層參數量為:1×1×256×2048=524228,第七卷積層的參數量為:1×1×2048×2048=4194304,最終輸出層的參數量為:1×1×2048×8=16384。大幅度減少網絡參數的數量,避免過擬合的風險。
數據集:本文采用CHEN 等人[2]提供的公共車輛顏色數據集進行實驗驗證和比較。該數據集共包含15,602 張圖像,表3 顯示了數據集顏色種類以及每種顏色的圖像數量,其中白色圖像數量最多,有4743 張,而青色圖像數量最少,有282 張。
數據集中所有圖像均來自道路監控系統捕獲的前方圖像,此外,每個圖像中僅包含一輛車。車輛顏色數據集的一些樣本示例如圖2 所示,數據集中包含多種類型的車輛,如小轎車、卡車和公交車等,這對車輛顏色識別帶來了很大的挑戰。在實驗中,使用留出法處理數據集,即使用一半數據集用于訓練,另外一半沒有使用過的數據用于測試。
實驗環境:為了驗證本文所提出的車輛顏色識別方法的有效性,我們在CHEN 等人[2]提供的公共車輛顏色數據集上進行了比對實驗。將實驗結果與現存最優的車輛顏色識別方法進行比較,實驗過程中所有的網絡結構都是在TensorFlow2.0 平臺上構建的,語言環境為Python 語言,對比實驗平臺設置如下:2.7-GHz 8 核CPU,16GBRAM,GTX-1060-6G GPU 和win1064 位操作系統。

圖2 車輛顏色數據集
其它設置:在訓練和測試過程中,使用交叉熵作為損失函數,采用Adam 優化算法迭代訓練網絡參數,其中,初始學習率大小設置為0.0001,批尺寸設置為16,循環迭代40 次。
為了更直觀的理解卷積神經網絡如何提取車輛顏色信息,圖3 顯示了本文第一卷積層的96個卷積核可視化的結果。從圖中可以看出,第一卷積層可以從輸入圖像提取豐富的顏色特征,并且數據集中的所有車輛顏色變化都顯示在卷積核中,因此,本文所提出的網絡可以提取豐富的顏色特征信息,從而有效地用于車輛顏色識別。

圖3 第一卷積層的96個卷積核可視化結果
為了驗證本文提出的卷積神經網絡的識別性能,將該網絡與其它兩種網絡進行了對比實驗,包括原始的AlexNet 網絡和去掉BN 層的改進型網絡。應該注意的是,為了比較結果的公平性,我們使用相同的方法訓練三個網絡,圖4 顯示了實驗結果。
從圖4 中可以看出,本文所使用的改進網絡識別精度最高,達94.8%,與采用相同訓練方法的原始AlexNet模型相比,識別精度提高了0.33%,且參數量降低了86%,節省了大量的時間;為了進一步驗證BN 層對網絡識別精度的影響,將改進模型與去BN 層的改進模型進行了比較,實驗結果表明,去BN 層的改進模型模型識別精度為93%,比改進模型識別精度低1.8%。因此,本文的網絡性能明顯優于其它兩個網絡。

圖4 識別精度比較結果
本文提出了一種基于卷積神經網絡的道路監控系統下車輛顏色識別方法。與經典AlexNet 方法相比,本文提出的方法具有兩個優點:第一,設計一種特殊的卷積神經網絡用于車輛顏色識別任務,即使用兩個1x1 卷積層和全局平均池化層代替傳統網絡中的全連接層,減少網絡參數的數量,降低網絡中計算和存儲資源的需求;第二,使用BN 層代替經典網絡中的LRN 層,加快了網絡的收斂速度,并在一定程度上防止了過擬合現象。在未來的工作中,我們將在ImageNet、COCO 等更大規模的數據集上進行測試來增加網絡的泛化能力。