邱國樞,張 翔,劉 軍,王 蕾,田 青,郭建華
(1.江蘇省徐州市公路管理處,江蘇 徐州 221002;2.北方工業(yè)大學(xué)電子信息工程學(xué)院,北京 100144;3.東南大學(xué)智能運(yùn)輸系統(tǒng)研究中心,江蘇 南京 210096)
現(xiàn)階段,普遍應(yīng)用于道路交通領(lǐng)域進(jìn)行車輛檢測的技術(shù)大致分為利用計算機(jī)視覺的目標(biāo)檢測方法[1]、紅外檢測法[2]、微波檢測法和感應(yīng)線圈檢測法[3]等.用于視頻目標(biāo)的檢測算法主要有有光流法[4]、幀間差分法[5]、背景差分法[6]和高斯混合模型法[7-8]等.這些方法中存在的難點(diǎn)是檢測目標(biāo)所處場景的背景消除,并且當(dāng)攝像機(jī)自身處在抖動狀態(tài)、拍攝區(qū)域光照變化情況較大、檢測場景存在陰影時,均會對檢測結(jié)果產(chǎn)生很大的影響.相較于以上目標(biāo)檢測方法,基于機(jī)器學(xué)習(xí)[9]的HOG特征具備多個優(yōu)點(diǎn).由于HOG是在圖像的局部方格單元上進(jìn)行操作,因此對圖像幾何的變化和光學(xué)的形變都能保持較好的不變性,針對實際應(yīng)用時的檢測目標(biāo)角度變換、圖像異常噪聲等問題具有良好的適應(yīng)性.
在有效提取特征的基礎(chǔ)上,為了減少樣本中冗余樣本對檢測效果的影響,提高算法的魯棒性,筆者擬采用SVM算法計算出少量數(shù)目的支持向量,并結(jié)合從正、負(fù)樣本中提取出的HOG特征信息訓(xùn)練生成實際分類所需的分類器模板.基于HOG和SVM的車輛檢測系統(tǒng)[10-14],可充分利用視頻平臺現(xiàn)有的計算資源,無需額外拓展,通過提取車輛的輪廓特征,結(jié)合分類器進(jìn)行檢測目標(biāo)識別分類,可以實現(xiàn)高效、精準(zhǔn)、實時的車輛檢測效果.
圖1 SVM+HOG流程Fig. 1 SVM+HOG Process
HOG+SVM的車輛檢測系統(tǒng)主要分為2個階段,即學(xué)習(xí)階段和檢測階段,具體流程如圖1所示.
學(xué)習(xí)階段主要分為3個部分:首先是從交通部門收集大量的車輛樣本,組成一個龐大的正樣本集(即訓(xùn)練數(shù)據(jù)集),同時通過網(wǎng)絡(luò)抓取大量的負(fù)樣本,組成負(fù)樣本集;然后提取每一個正、負(fù)樣本的HOG特征向量;最后形成檢測時使用的SVM分類器模板.
檢測階段主要分為3個部分:首先對視頻中的每幀圖像進(jìn)行HOG特征提??;然后將提取出的特征向量送到訓(xùn)練好的分類器中,與模板作對比,對每幀圖像進(jìn)行車輛檢測;最后用矩形框標(biāo)注檢測出的車輛目標(biāo).
一般情況的道路交通檢測,攝像頭的位置和角度是固定的.隨著監(jiān)控視頻中車輛目標(biāo)的移動,車輛的形狀、角度和大小都會發(fā)生變化,所以要收集大量的不同角度、不同大小的車輛樣本(圖2a).另一方面,車型種類眾多,因此需要收集大客車、小客車、卡車和轎車等不同車型的樣本(圖2b).
圖2 車輛樣本示例Fig. 2 Samples of Vehicles of Different Types
為了檢測的準(zhǔn)確性,要求正、負(fù)樣本要達(dá)到一定的數(shù)量,且負(fù)樣本的數(shù)量要大于正樣本.本研究中用到正樣本10萬余張,負(fù)樣本25萬余張,部分樣本如圖3所示.
圖3 部分正、負(fù)樣本示例Fig. 3 Examples of Positive and Negative Samples
2.1.1 HOG特征 HOG特征是通過對圖像的邊緣特性和局部特性進(jìn)行檢測而得到的[15],主要是計算方向梯度直方圖.將視頻中的每幀圖像劃分為大小統(tǒng)一的小區(qū)域,每個小區(qū)域稱為細(xì)胞(cell),然后利用多個cell組成的塊(block)對梯度向量進(jìn)行歸一化處理,如圖4所示.歸一化可使結(jié)果擁有更好的魯棒性,得到一個能夠應(yīng)對不同的路況和環(huán)境的車輛檢測特征集.
圖4 HOG特征Fig. 4 HOG Feature
該向量模型還可以表示為
‖
通過許多一階微分的模板來計算梯度的近似值,計算結(jié)果表明模[-1,0,1]的效果最好.以該模板為例,計算實驗圖像中像素的梯度值和方向:
Gh(x,y)=f(x+1,y)-f(x-1,y) ?x,y,
Gv(x,y)=f(x,y+1)-f(x,y-1) ?x,y,
其中Gh(x,y)和Gv(x,y)分別為像素點(diǎn)的水平和垂直梯度值.再計算像素點(diǎn)的梯度值和梯度方向:
θ(x,y)=arctan (Gh(x,y)/Gv(x,y)).
在梯度方向范圍限定的情況下,采用無符號范圍,梯度方向可以表示為
2.1.3 特征提取 計算過每一個像素的梯度值后,需要計算cell.在每一個單元中,將其中包含的像素點(diǎn)的一維梯度在一定方向上進(jìn)行投影,cell的角度分成9個區(qū)域,可以獲得最優(yōu)的結(jié)果.得到9個方向的投影大小后,對一個cell里面所有像素點(diǎn)的投影結(jié)果進(jìn)行累加,得出一個cell單元,即一個cell在這9個方向上的9個特征值.
由于每個cell計算出的方向梯度直方圖會受到復(fù)雜環(huán)境下的光照和陰影的影響,使得相鄰的cell單元之間呈現(xiàn)較大的差異,因此需要進(jìn)行歸一化處理[16],即將cell組合為block.具體的單元格歸一化過程如下:
(ⅰ)根據(jù)小的cell的特征值,先求出大的區(qū)塊的特征值的和,得到的結(jié)果應(yīng)是9個方向塊的9個特征值.
(ⅱ)一個block內(nèi)的每一個cell的9個特征值都除以block的總特征值.當(dāng)檢測窗口對圖像進(jìn)行檢測時,block之間存有重疊,因此每一個cell被不同的block重疊使用.但是,歸一化處理是對不同的block而言的,由相同的cell計算出的歸一化后的值是不同的.
(ⅲ)將所有block的HOG特征結(jié)合為一個向量的形式,即HOG特征的結(jié)果,特征的維度為9*block*cell.
圖5 超平面的選擇Fig. 5 Superplane Selection
2.2.1 SVM介紹 在車輛檢測過程中需要找到一條超平面將正負(fù)樣本分開.能夠?qū)?種樣本分割開的超平面有無數(shù)條,如圖5所示.SVM分類器的功能是找到一個平面使得正、負(fù)樣本點(diǎn)到超平面的距離最大.本研究中SVM分類器采用的是軟間隔線性SVM分類器[17].
2.2.2 超平面選擇 一個特征空間上的訓(xùn)練數(shù)據(jù)集
T={(x1,y1),(x2,y2)…(xn,yn)},
其中xi為樣本,yi為樣本的標(biāo)記.當(dāng)xi是正樣本時,yi=1;當(dāng)xi是負(fù)樣本時,yi=-1.
對于給定的線性可分的訓(xùn)練數(shù)據(jù)集,通過間隔最大化得到的分離超平面為y(x)=wTφ(x)+b,相應(yīng)的分類決策函數(shù)為f(x)=sign(wTφ(x)+b).其中:w為法向量,它決定了超平面的方向;φ(x)為某個確定的特征空間轉(zhuǎn)換函數(shù),維度為n.n為樣本的數(shù)量,其作用是將x映射到更高的維度.
2.2.3 超平面求解 求解分離超平面,即求解如下凸二次規(guī)劃的問題:y(x)=wTφ(x)+b.其中b為位移項,決定了超平面與原點(diǎn)之間的距離.給定訓(xùn)練樣本集D={(x1,y1),(x2,y2),…(xi,yi)},yi∈{-1,+1}.假設(shè)超平面能將訓(xùn)練樣本正確分類,即對于(xi,yi)∈D,若yi=+1,則wTxi+b>0,若yi=-1,則wTxi+b>0.令
則yiy(xi)>0.
將樣本點(diǎn)到直線的距離和w及b等比例縮放,即
圖6 函數(shù)間隔與幾何間隔Fig. 6 Function Interval and Geometric Spacing
(1)
則目標(biāo)函數(shù)為
一般總是可以對(1)式的w通過等比例縮放,使得正負(fù)樣本點(diǎn)的函數(shù)值都滿足|y|≥1,如圖6所示.
(2)
(2)式是有n個約束條件的最值問題,可利用拉格朗日乘子法進(jìn)行求解:
(3)
(4)
將(3)式代入(4)式,求得最優(yōu)解
利用a*求解,得到
于是可求得分離超平面w*φ(x)+b*=0,及決策函數(shù)f(x)=sign(w*φ(x)+b*).
由以上的求解過程可以看出,線性SVM的原理就是要尋找一個有最大間隔長度的分界面.這個問題是一個凸二次規(guī)劃問題,利用拉格朗日函數(shù)可以解決[18].計算時,運(yùn)用對偶理論將這個問題變?yōu)榍蠼庾钚≈迪碌淖畲笾祮栴},但是該問題仍然是一個有約束條件的最優(yōu)化問題.
為了驗證車輛檢測系統(tǒng)的可行性、準(zhǔn)確性和有效性,筆者利用實際道路監(jiān)控視頻進(jìn)行車輛檢測系統(tǒng)測試.選用的道路為高速公路,采集的工況包括密集車流和稀疏車流,車輛類型包括轎車、面包車、公交車和卡車等,視頻分辨率為640*360,幀率為25幀/s.
(1)硬件環(huán)境.本系統(tǒng)采用的主機(jī)配置為英特爾 Core i7-6700HQ @ 2.60 GHz四核處理器,顯卡為Nvidia GeForce GTX 960M (4 GB).
(2)軟件環(huán)境.使用64位的Window10操作系統(tǒng),開發(fā)工具為Visual Studio 2013和OpenCV計算機(jī)視覺庫,開發(fā)語言為C++.
3.2.1 檢測流程 車輛檢測系統(tǒng)的測試流程如圖7所示,檢測結(jié)果如圖8所示.由圖8可見,視頻中每幀圖像的車輛目標(biāo)會通過矩形框標(biāo)注出來.
圖7 車輛檢測流程Fig. 7 Vehicle Detection Process
圖8 車輛檢測結(jié)果Fig. 8 Vehicle Detection Result
3.2.2 檢測正確率測試 選取監(jiān)控攝像機(jī)正對道路的場景,對檢測準(zhǔn)確率在不同時段進(jìn)行重復(fù)測試并取平均值,統(tǒng)計結(jié)果見表1.由表1可以看出,在準(zhǔn)確率上,本車輛檢測系統(tǒng)對真實場景下的檢測效果較理想,平均準(zhǔn)確率為99%.
表1 車輛檢測準(zhǔn)確率統(tǒng)計
3.2.3 檢測速率測試 利用3段不同路況的測試視頻進(jìn)行車輛檢測系統(tǒng)檢測速率的測試,統(tǒng)計結(jié)果見表2.其中平均每幀耗時是通過100幀的每幀耗時計算出的平均值,而不是通過最高每幀耗時和最低每幀耗時計算出的.由表2可以看出,每幀耗時在143 ms左右,可以達(dá)到實時檢測的效果.
表2 車輛檢測速率統(tǒng)計
通過分析SVM和HOG算法的原理,了解了HOG+SVM車輛檢測系統(tǒng)的優(yōu)勢.經(jīng)過代碼編寫和長時間的參數(shù)調(diào)試后,該檢測系統(tǒng)能完成真實路況中車輛的檢測,實現(xiàn)實時、高準(zhǔn)確率的檢測效果.以本檢測框架為主體,可以進(jìn)一步開展車型識別、行人與車輛的混合目標(biāo)識別等工作,這也是筆者下一步研究的方向.