樊銳博,景明利,李 嵐,魏玉峰
(1. 西安石油大學電子工程學院,陜西 西安 710065;2. 西安石油大學理學院,陜西 西安 710065)
隨著我國經濟發展,車輛數量不斷增加,導致交通擁堵現象在各大城市屢見不鮮,交通事故頻發,車輛管理問題日益突出。在智能交通系統方面,車輛識別[1,2]是模式識別領域的重要應用,對車輛管理問題有著重要的現實意義。
車牌識別法[3-5]在停車場、收費站等場合應用較廣,該算法是從車輛圖像定位并提取車牌部分,然后對車牌圖像進行預處理、特征提取,利用每個車輛有唯一對應的車牌信息實現車輛的識別,但車牌識別算法在套牌、車牌無損、車牌遮擋等情況下無法正常識別車輛。
除此之外,有學者提出了基于傳感器的車輛識別法[6,7],通過線圈、感應器等測量車輛的長寬、軸距、底盤高度等物理參數,利用這些物理參數對車輛進行識別,這種方法較為簡單,不需要復雜的算法設計,但需要大量的傳感器設備并進行定期檢修,增加了投入成本,而且實際使用場景較為有限。
隨著神經網絡的快速崛起,有學者將神經網絡應用到車輛識別的場景,文學志[8]等對基于Harr特征和AdaBoost分類器識別算法進行改進,提出了基于類Harr特征和改進AdaBoost分類器的車輛識別算法。2014年,Hu[9]等人基于DBM(Deep Boltzmann Machine,DBM)深度網絡框架,提出了應用深度學習完成特征表示方法。2016年,楊欣宇等[10]提出基于機器視覺的車輛識別方法,利用車輛的輪廓特征實現車禍車輛識別。2019年,馬永杰[11]等提取了車輛多層的CNN融合特征,用PCA(Principal Component Analysis,PCA)技術降低特征維度,最后用支撐向量機(Support Vector Machine,SVM)代替CNN輸出層實現車輛分類。
這些基于神經網絡的算法在提取特征和識別的過程中,輸入樣本存在大量的冗余信息,導致計算量浪費,同時包含的噪音特性信息會降低識別率。若想要獲得更高的識別率,就需要足夠多的訓練樣本,讓訓練模型充分學習樣本的特征信息。因此在小樣本訓練時,正確率與泛化能力均有待提高。

圖1 非稀疏樣本
針對以上問題,本文提出了一種基于RPCA(Robust Principal Component Analysis,RPCA)低秩模型的車輛識別方法,利用RPCA低秩模型對視頻圖像進行處理,將視頻圖像分離成低秩圖像與稀疏圖像,即背景圖像和目標圖像。將稀疏圖像作為輸入樣本,不僅降低樣本的冗余信息,避免計算量浪費,而且稀疏圖像包含的背景信息和噪聲更少,使得后續訓練樣本的樣本質量得到提升,訓練模型在訓練樣本較少的條件下就能達到較好的識別效果,減少了模型對樣本數量的依賴性。

圖2 稀疏樣本
RPCA模型[12]是低秩矩陣恢復理論中的一種基本模型,通過矩陣分解獲得矩陣的低秩部分和稀疏部分,主要應用于視頻監控、圖像對齊等領域。
在實際應用中,數據矩陣D∈m*n通常是低秩的或是近似低秩的,但干擾破壞了矩陣D的低秩結構,可以將數據矩陣D分解成一個低秩矩陣A和一個獨立同分布的高斯分布矩陣E,即D=A+E。這就是主成分分析方法ComponentAnalysis,PCA)模型[13],優化問題數學模型如下
min‖E‖Fs.t.D=A+E, rank (A)≤r
(1)
式(1)通過奇異值分解可獲得問題的最優解。在現實生活中,數據矩陣D往往受到非常大干擾,矩陣E則不再滿足獨立同分布的高斯分布,傳統的PCA算法就不再適用。此時,上述式(1)可重新表示為如下模型
minA,E(rank(A),‖E‖0) s.t.D=A+E
(2)
與式(1)相比,式(2)增加了一個優化目標,使得該問題變成了一個雙目標優化問題,針對這種情況引入一個權衡因子λ>0,對式(2)進行優化。優化問題數學模型如下
minA,Erank(A)+λ‖E‖0s.t.D=A+E
(3)

minA,E‖A‖*+λ‖E‖1s.t.D=A+E
(4)
式(4)被稱為RPCA模型,該優化問題常常使用非精確增廣拉格朗日乘子法[14](Inexact ALM Method,IALM)求解。
方向梯度直方圖[15-17](Histogram of Oriented Gradient,HOG)特征通過計算和統計目標物體的局緣區域的梯度大小形成直方圖來構成特征,基本思想是用局部梯度大小描述整個目標物體,本質是計算梯度大小。HOG特征提取是一種統計類的特征提取方法。HOG特征提取流程圖如圖3所示。

圖3 HOG特征提取算法流程圖
SVM[18,19]最早由Vapnik和Cortes提出,是一種對數據樣本進行二分類的廣義分類器,數學模型如式(5)所示

(5)
SVM的相關理論知識可參考文獻[19],算法流程圖如圖4所示

圖4 SVM算法流程圖
為了驗證所提算法的有效性,實驗中處理器為 AMD Ryzen 3 2200G CPU,主頻為3.50GHz,RAM大小為8.00GB;軟件環境為64位Windows 10的操作系統,R2016b版本的Matlab。若無特別說明,實驗環境不變。
本文實驗主要用準確率、召回率、F1值對模型進行評估,F1值是基于準確率和召回率的一種綜合評估指標。準確率記為P,召回率記為R,三種評估指標的計算方法如式(6)所示:

(6)
其中TP、FP、TN、FN分別表示是真正例、假正例、真反例、假反例。
整個實驗可分為三個過程,分別是稀疏圖像提取、提取稀疏圖像的HOG特征以及基于SVM的分類與識別。數據集選自作者用手機拍攝的車輛視頻以及CDnet 2014 Dataset[21]中部分具有復雜背景的監控視頻。
4.1.1 稀疏圖像提取
將視頻的每一幀圖像變換為一個列向量,并按列構成一個數據矩陣D,由于視頻背景不變,所以構成的數據矩陣 D可看成是近似低秩,進入視頻的目標視為稀疏項。此時,利用RPCA低秩模型對視頻圖像進行前背景分離得到前景圖像,即稀疏圖像。
分別取車輛視頻和行人視頻其中的一幀圖像的原圖、低秩圖像和稀疏圖像作為IALM算法圖像結果,如圖5、6所示。

圖5 車輛視頻圖像
從圖5、圖6中的稀疏圖像可以看出,經過視頻前背景分離后,獲得的稀疏圖像過濾掉了背景信息和噪聲信息,只包含目標物體信息。后續用稀疏圖像作為特征提取的輸入,其避免了計算量浪費以及背景和噪聲信息的干擾,提高了訓練樣本的質量,從而改善因目標物體包含較多背景信息和噪聲信息而導致識別率較低的問題。

圖6 行人視頻圖像
4.1.2 提取稀疏圖像的HOG特征
從分離的稀疏圖像數據集中,選取具有較為完整的車信息的幀圖像作為特征提取的樣本集。選擇更能體現目標物體外部輪廓的HOG特征提取算法,依次選取的特征樣本集進行特征提取得到特征向量,并將特征向量按行排列構成特征矩陣。在實驗中,選取16*16個像素構成一個Cell;2*2個Cell構成一個Block。
在編寫HOG特征提取算法程序時,應注意以下幾點問題:
1) 像素的梯度結果可能會出現nan、inf和-inf,需要利用if語句對這些結果進行處理,不然會影響歸一化;
2) 在Matlab中atan指令用于計算正切角,得到角度范圍為[-π/2,π/2],所以要將得到的結果轉化為[0,π];
3) 采用向上取整函數計算Cell的梯度直方圖,故要防止正切角為0。
SVM分類需要非車輛樣本特征信息作為負樣本,所以對車輛樣本、行人樣本都進行了相同的特征提取,兩類樣本的大小一樣,得到的特征向量大小相同,特征矩陣大小相同。
4.1.3 基于SVM的分類與識別
由于SVM穩定、對解決二分類問題具有很好的效果,因此選擇SVM進行分類與識別實驗。實驗直接調用Matlab自帶SVM工具箱中的fitcsvm、predict函數。
本次實驗中,從稀疏的樣本集中選取了946個車輛稀疏樣本、610個非車輛稀疏樣本,經過HOG特征提取獲得相應數量的特征樣本集。從兩類特征樣本集中分別抽取各自特征樣本集總數的30%作為測試集,從剩余的車輛、非車輛的兩類特征樣本抽取各自特征樣本總數的10%作為訓練集。然后以各自特征樣本總數的10%的增幅擴大訓練集,重新進行分類識別實驗,記錄分類器的準確率、召回率和F1值,直至將剩余的特征樣本全部用于訓練模型,整個實驗過程中測試集保持不變。以訓練集為橫軸、F1值為縱軸繪制實驗結果圖,如圖7所示。

圖7 簡單場景下的F1值
由圖7知,訓練樣本數為總樣本集的10%-30%之間,F1只有0.75左右;當訓練樣本數擴大至總樣本集的40%時,F1值達到了1.00,訓練集數量在經驗值上可選取總樣本集的40%。
定量實驗下的準確率、召回率、F1值結果如表1所示。

表1 簡單場景下的算法識別結果
從表1分析可知,本次實驗影響F1值只有召回率。經過視頻前背景分離過濾掉了背景信息和噪聲信息,使得在較少的訓練樣本條件下準確率達到了1.0000,但召回率并不顯著。隨著訓練集的數量的不斷增加,最終召回率達到1.0000。
通過以上實驗可得,提出的算法通過改善輸入樣本的質量減少了對模型對數量的依賴性,從而使得模型在小樣本訓練集下就可以達到很好的識別效果。
在4.1節中實驗場景相對簡單,圖像信息相對單一,每張圖像只有一輛完整的車輛或行人的信息。為驗證所提算法的優越性,本小節將在相對復雜場景下的車輛與行人作為識別目標進行實驗,如highway、backdoor和pedestrians,這些場景會出現光照變化、樹影等影響分離效果的情況。圖像信息的復雜度會有所提高,不僅會出現多輛車或多個行人,也考慮了車輛或行人之間遮擋的復雜情況,造成目標物體信息不完整,具體如圖8至圖10所示。

圖8 highway

圖9 backdoor

圖10 pedestrians
本次實驗提取的車輛稀疏樣本集為1301,行人稀疏樣本集為1205,實驗過程與4.1節相同,不再介紹具體的實驗過程,實驗結果如圖11所示。

圖11 復雜場景下的F1值
本次實驗中,訓練樣本數為總樣本集的10%時,F1值接近0.99;當訓練樣本數為總樣本集的20%時,F1值達到了1.00,故訓練樣本數經驗值可取總樣本集的20%。從表2分析可知,此次實驗影響F1值大小的主要因素是準確率。

表2 復雜場景下的算法識別結果
定量實驗下的準確率、召回率、F1值如表2所示。
雖然本次實驗的場景更為復雜、圖像信息的復雜度也有所增加,進而導致了準確率下降,但召回率在訓練樣本數為總樣本數的10%時達到了1.0000。隨著訓練樣本數的不斷增加,準確率逐漸提高,而召回率依舊保持不變,當訓練樣本數擴大至總樣本數的20%時,準確率、召回率均達到了1.0000。
由此可見,在復雜的場景下,提出的算法也能使得模型在小樣本訓練集下達到很好的識別效果。
對比實驗的識別目標為車輛與非車輛,選擇基于PCA+SVM識別算法和基于Harr+AdaBoost識別算法的兩種算法作為對比算法,正、負樣本總數各為1200,與本文算法樣本集大小接近,訓練集和測試集的分配與上述實驗相同,總樣本的30%作為測試集且固定不變,剩余樣本作為訓練集,訓練集的數量從總樣本數的10%依次增加,增幅為總樣本數的10%,直至訓練樣本為總樣本數的70%結束實驗。為便于記錄實驗結果,將PCA+SVM算法和Harr+AdaBoost算法分別簡記為P+S、H+Ada。
實驗中PCA算法的方差貢獻率為0.9,AdaBoost分類器訓練輪數為100,實驗結果如圖12所示。

圖12 三種對比算法的F1值
訓練樣本數為總樣本集的10%時,PCA+SVM、Harr+AdaBoost的F1值分別為0.7964、0.8107,本文算法的F1值為0.9896,比PCA+SVM、Harr+AdaBoost算法分別提高了0.1932、0.1789。當訓練樣本數為總樣本集的20%時,本文算法的F1值達到了1.00,而PCA+SVM、Harr+AdaBoost算法在訓練樣本數為總樣本集的70%也未達到0.90。
定量實驗下三種對比算法的準確率、召回率、F1值如表3所示。

表3 兩種對比算法的識別結果
與PCA+SVM算法相對比,兩種算法在一開始召回率就可以達到1.0000,但在訓練集樣本數只有總樣本集的10%時,PCA+SVM算法只有0.6617,本文算法的準確率達到了0.9794,比PCA+SVM提高了0.3177。隨著訓練集增加,本文算法在訓練集為總樣本集的20%時就可達到1.0000,而PCA+SVM在訓練樣本數增加至70%時也只有0.7877。
與Harr+AdaBoost算法相對比,Harr+AdaBoost算法的準確率、召回率均未有本文提出的算法高。在訓練集為總樣本集的20%時,Harr+AdaBoost算法準確率和召回率分別只有0.8408、0.8103,而本文算法準確率與召回率均達到了1.0000,比Harr+AdaBoost算法提高了0.1592、0.1897,并且Harr+AdaBoost在訓練樣本數增至總樣本集的70%時,準確率和召回率也未達到90%。
在七次實驗中,本文提出的算法不論是在準確率、召回率還是F1值的結果都要優于其它兩種算法。
針對樣本復雜的背景信息和噪聲信息導致識別率下降以及模型過度依賴數據樣本的問題,本文提出了一種基于RPCA低秩模型的車輛外形識別方法。該方法通過RPCA低秩模型對特征樣本進行預處理,然后進行HOG特征提取,最后利用SVM分類對車倆進行分類。在數值實驗部分,選取了10段視頻作為樣本集對本文提出的算法進行測試及定量分析,提出的算法在訓練樣本較少情況下,與PCA+SVM、Harr+AdaBoost兩種算法相比較,數據結果表明本文提出的算法在樣本集較少的條件有著較高的識別率、召回率和F1值。
致謝
感謝崔佳勛在網上提供Harr+AdaBoost算法程序,感謝馬毅教授在個人主頁分享RPCA相關算法程序。