楊傳江,曹景勝,袁增千,范博文
(遼寧工業(yè)大學(xué) 汽車與交通工程學(xué)院, 遼寧 錦州 121001)
近年來(lái),迅猛發(fā)展的汽車工業(yè)給人們生活增添了諸多便捷,但隨之而來(lái)的道路交通問(wèn)題也日漸凸顯,傳統(tǒng)機(jī)動(dòng)車行駛過(guò)程中出現(xiàn)超速、酒駕等問(wèn)題屢見不鮮,給人們出行安全帶來(lái)巨大隱患[1-3]。隨著人工智能領(lǐng)域的快速發(fā)展,解決汽車駕駛主動(dòng)安全問(wèn)題、有效減少交通事故的無(wú)人駕駛和智能網(wǎng)聯(lián)汽車成為了該領(lǐng)域內(nèi)最有可能落地化和產(chǎn)業(yè)化的分支。在智能網(wǎng)聯(lián)汽車眾多關(guān)鍵技術(shù)中,道路前方車輛識(shí)別與跟蹤技術(shù)是其中研究熱點(diǎn)之一[4-6]。傳統(tǒng)的車輛檢測(cè)和識(shí)別方法主要有:基于毫米波雷達(dá)、超聲波雷達(dá)的聲波測(cè)距技術(shù);基于車載激光雷達(dá)掃描的光傳感定位技術(shù);將雷達(dá)數(shù)據(jù)融合進(jìn)行環(huán)境感知和精確測(cè)距的方法等,但是激光雷達(dá)成本極高,實(shí)際應(yīng)用困難;毫米波雷達(dá)對(duì)行人識(shí)別率低,并且開發(fā)周期長(zhǎng);超聲波雷達(dá)作用范圍有限,易受外界環(huán)境影響。
隨著圖像識(shí)別算法的深入發(fā)展和計(jì)算機(jī)數(shù)據(jù)處理速度提高,機(jī)器視覺(jué)開始在車輛檢測(cè)和識(shí)別方面表現(xiàn)出優(yōu)勢(shì)。隨著硬件水平的提高和計(jì)算機(jī)算力的支持,越來(lái)越多的人探討深度學(xué)習(xí)算法的應(yīng)用,主要包括一階段的YOLO系列和SSD算法,以及兩階段的R-CNN算法,程泊靜等[7]使用單目攝像頭基于YOLOv3實(shí)現(xiàn)前車實(shí)時(shí)檢測(cè)跟蹤。但是,深度學(xué)習(xí)算法需要極高的硬件成本和大量數(shù)據(jù)集進(jìn)行訓(xùn)練,對(duì)于部分研究者來(lái)說(shuō)較為困難,因此,基于特征提取的統(tǒng)計(jì)學(xué)習(xí)方法依然有其優(yōu)勢(shì)。曹景勝等[8]對(duì)類Haar特征提取并基于AdaBoost算法進(jìn)行訓(xùn)練和級(jí)聯(lián),滿足多場(chǎng)景、多工況下的前車識(shí)別;徐鵬等[9]基于支持向量機(jī)(SVM)進(jìn)行樣本分類,實(shí)現(xiàn)低能見度下車輛樣本分類。
正常行駛在道路上的汽車,其尾部與周圍環(huán)境相比,具有明顯的視覺(jué)形態(tài),因此本文使用局部二值模式(local binary pattern,LBP)特征提取方法,改進(jìn)算子提取方式,對(duì)提取到的特征值化、區(qū)域分塊、排序處理,然后結(jié)合支持向量機(jī)(support vector machine,SVM)分類方法,實(shí)現(xiàn)對(duì)前方車輛的識(shí)別與跟蹤。
在汽車上安裝攝像頭,用以替代駕駛員的視覺(jué)效果,是較早提出的一種駕駛輔助方案[10-12]。計(jì)算機(jī)視覺(jué)技術(shù)利用視頻采集設(shè)備(如CMOS或CDD攝像機(jī))代替人的眼睛,將獲取到的信息傳遞給計(jì)算機(jī),計(jì)算機(jī)代替人的大腦對(duì)“看到”的圖像進(jìn)行分析處理,然后做出相應(yīng)的反應(yīng)。將計(jì)算機(jī)視覺(jué)技術(shù)應(yīng)用到汽車安全系統(tǒng)中,能夠大大提高行駛的安全性[13-15]。
本文研究LBP特征提取算法應(yīng)用于前車識(shí)別,進(jìn)行圖像局部特征提取。LBP算法在人臉識(shí)別中應(yīng)用廣泛、識(shí)別率高、成熟可靠。而一般汽車尾部設(shè)計(jì)與人臉類似,尾燈想象為人的眼睛,車牌類似于人的鼻子,后保險(xiǎn)杠凹凸不平,看作人的嘴。因此采用LBP算法來(lái)識(shí)別前方車輛的車尾[16]。主要步驟為:
1) 由車載圖像獲取設(shè)備(攝像頭)進(jìn)行前方道路車輛圖像采集,將原始圖像預(yù)處理后,提取圖像上劃分點(diǎn)的LBP特征值,將特征值統(tǒng)計(jì)為直方圖,進(jìn)而歸一化為特征向量;
2) 將正負(fù)汽車樣本,經(jīng)過(guò)以上步驟轉(zhuǎn)化,對(duì)SVM分類器進(jìn)行訓(xùn)練,將步驟1)中的結(jié)果導(dǎo)入訓(xùn)練后的分類器,從而識(shí)別出前方車輛。前車識(shí)別原理如圖1所示。
圖1 前車識(shí)別原理框圖
一般拍攝設(shè)備獲取圖像時(shí),周圍環(huán)境因素會(huì)對(duì)其產(chǎn)生影響,尤其是多云、傍晚、雨雪天氣等光照變化劇烈的情況。為了提高特征提取準(zhǔn)確率,降低光照影響,將圖像感光區(qū)域進(jìn)行修正(歸一化處理),為:
(1)
式中:IMGn(i,j)為圖像經(jīng)過(guò)修正后的(i,j)處的像素值;IMG(i,j)為錄入圖像在(i,j)處的像素值;Vave為圖片區(qū)域內(nèi)像素的平均值;M為像素點(diǎn)數(shù)目;xk為圖片區(qū)域內(nèi)第k個(gè)點(diǎn)的像素值。
特征提取是基于灰度化的圖像,將彩色圖像進(jìn)行灰度化處理,基于了紅、綠、藍(lán)三原色的加權(quán)平均值法,為:
Gray=R×0.299+G×0.587+B×0.144
(2)
這種方法處理后的圖像能基本體現(xiàn)原圖像特征,更符合人眼成像。
LBP算子在描述圖像局部特征方面的主要優(yōu)點(diǎn)是:受光照影響較小,具有非0即1的局部二值特征,關(guān)于灰度變化魯棒性好;圖像信息旋轉(zhuǎn)不變特性,提取圖像特征更充分,在描述局部紋理特征方面更為準(zhǔn)確。另外,LBP特征為整數(shù)特征,計(jì)算簡(jiǎn)單,圖像分析速度快。隨著技術(shù)的進(jìn)步,原始LBP算子不斷被改進(jìn),以應(yīng)用于各種干擾強(qiáng)和情況復(fù)雜場(chǎng)景。白靈鴿等[17]介紹了原始LBP算法改進(jìn)為圓形模式、旋轉(zhuǎn)不變模式過(guò)程,李旭輝[18]應(yīng)用等價(jià)模式方法減少運(yùn)算數(shù)據(jù),宋艷萍等[19]應(yīng)用MB-LBP算法提高特征提取的準(zhǔn)確率。本文詳細(xì)介紹了LBP算法的改進(jìn)歷程,并在最終選擇等價(jià)模式方法和MB-LBP算法相結(jié)合的特征提取方式,提高識(shí)別的速度和穩(wěn)定性。
2.2.1原始LBP算子及公式
原始LBP算子首先選定一個(gè)3×3的鄰域,計(jì)算中心點(diǎn)和周圍8個(gè)點(diǎn)的灰度值,鄰域點(diǎn)分別與中心點(diǎn)比較,若鄰域點(diǎn)大記為1;若中心點(diǎn)大,則鄰域點(diǎn)記為0。這樣周圍像素點(diǎn)的值會(huì)產(chǎn)生一組8位二進(jìn)制數(shù),利用這組數(shù)表示中心點(diǎn)的像素。這8位數(shù)按照一定順序排列,共有256種可能。圖2是一種示例。
圖2 原始LBP算子示例
其推導(dǎo)公式為:
(3)
式中:(xc,yc)表示中心像素點(diǎn)位置;p是第p個(gè)點(diǎn)的像素;ic是區(qū)域中心點(diǎn)(xc,yc)的灰度值;ip為鄰域點(diǎn)按一定順序排列的第p個(gè)點(diǎn)的灰度值;s(x)是記錄比較結(jié)果的符號(hào)函數(shù)。
2.2.2圓形LBP算子
原始的LBP算子只是獲取周圍鄰域內(nèi)的像素值,尺寸范圍較小,頻率也無(wú)法滿足。隨后有學(xué)者提出圓形LBP算子,這種算子可以將3×3鄰域擴(kuò)展,不再局限于正方形區(qū)域,紋理特征適應(yīng)性增強(qiáng),并且?guī)?lái)旋轉(zhuǎn)不變特性。圓形LBP算子半徑為R,在以半徑畫圓的鄰域上取N個(gè)點(diǎn),同樣判斷大小,取值為0或1,采樣點(diǎn)數(shù)量可變。原理如圖3所示。
圖3 圓形LBP算子示例
給定中心點(diǎn)(xc,yc),可以確定周圍鄰域內(nèi)的采樣點(diǎn)位置分別為p(xp,yp),計(jì)算方法如下:
(4)
式中:R表示采樣取值的半徑范圍;p表示采樣點(diǎn)所在位置,表示第p個(gè)采樣點(diǎn);P表示采樣點(diǎn)總的個(gè)數(shù)。但計(jì)算結(jié)果不一定為整數(shù),因此選取雙線性插值方法,計(jì)算公式為:
(5)
通過(guò)式(3)和式(4)獲得采樣點(diǎn)坐標(biāo),就可以找到該點(diǎn)灰度值,然后代入到式(2),求得基于圓形LBP特征的值。
2.2.3旋轉(zhuǎn)不變LBP特征
原始LBP算子轉(zhuǎn)換為圓形LBP算子后,灰度依然不變,計(jì)算精度大大增加,但當(dāng)旋轉(zhuǎn)圖像后,LBP值跟著發(fā)生變化,為了避免重復(fù),規(guī)定選取所有值中的最小數(shù)作為中心點(diǎn)的LBP值,如圖4所示。
圖4 旋轉(zhuǎn)不變LBP算子示例
2.2.4等價(jià)模式LBP特征
圓形LBP特征計(jì)算像素點(diǎn)值具有隨著采樣點(diǎn)數(shù)目增加,LBP算子模式指數(shù)級(jí)增加的缺點(diǎn)。將其應(yīng)用于紋理特征提取、識(shí)別、分類時(shí),大量數(shù)據(jù)不利于運(yùn)行處理,想到對(duì)LBP模式的一種降維方法。
Ojala提出一種“等價(jià)模式(Uniform Pattern)”對(duì)二進(jìn)制數(shù)組進(jìn)行處理。規(guī)定二進(jìn)制數(shù)組中由0到1或者由1到0視為一次跳變,當(dāng)LBP特征數(shù)組有少于等于2次跳變時(shí),稱這種數(shù)組為等價(jià)模式類。選取具有等價(jià)特征的LBP值作為計(jì)算值,總數(shù)就會(huì)減少為P(P-1)+2種,大大降低運(yùn)算數(shù)據(jù)量,并且圖像信息不會(huì)丟失,可以保證識(shí)別的準(zhǔn)確率。
2.2.5MB-LBP特征
一般情況下,基于等價(jià)模式LBP特征可以很好地實(shí)現(xiàn)對(duì)特征的提取,但對(duì)于準(zhǔn)確率的更高追求使中國(guó)中科院學(xué)者提出更進(jìn)一步的方法——MB-LBP,全稱為Multiscale Block LBP。原理如圖5所示。
圖5 MB-LBP算子示例
類似于HOG特征算法中cell的劃分方式,先將正方形大區(qū)域劃分為9個(gè)小區(qū)域,每個(gè)小區(qū)域中劃分3×3的區(qū)塊,取9個(gè)小區(qū)塊的平均灰度值作為一個(gè)小區(qū)域的灰度值,在整個(gè)大區(qū)域內(nèi)使用等價(jià)模式LBP算法,就可以提取大區(qū)域中心點(diǎn)(小區(qū)域9號(hào))的特征值。使用這種方法,在小區(qū)域內(nèi)求平均值而不是直接計(jì)算LBP特征灰度值,可以大大減少運(yùn)算時(shí)間。
在原始LBP特征提取的基礎(chǔ)上,使用MB-LBP方法原理提取到圖像特征灰度值,按照等價(jià)模式原理最終獲取中心點(diǎn)的特征值,這種方法使得特征提取更加準(zhǔn)確、清晰。原圖和特征提取如圖6和圖7所示。
圖6 拍攝原圖
圖7 特征提取結(jié)果示例
圖片處理及特征提取步驟如下:
1) 輸入256×256維像素的圖像,進(jìn)行灰度化處理,然后搜索圖中每個(gè)像素點(diǎn),得到對(duì)應(yīng)像素點(diǎn)的灰度值;
2) 使用MB-LBP方法和等價(jià)模式原理提取每個(gè)區(qū)域中心點(diǎn)的特征值;
3) 將LBP特征圖像劃分為8×8共64區(qū)域,分別統(tǒng)計(jì)每個(gè)區(qū)域的特征直方圖;
4) 將特征直方圖歸一化,按照上一步分塊直方圖各自的空間順序依次排列特征值,組合為整張圖片的LBP特征值圖譜;
5) 最后,就可以將得到的特征圖譜導(dǎo)入SVM分類器進(jìn)行訓(xùn)練或識(shí)別了。
支持向量機(jī)(SVM)[20]是利用監(jiān)督學(xué)習(xí)方式,通過(guò)計(jì)算將數(shù)據(jù)按特征分為2種類型,是定義在空間上的一種間隔最大特征分類器,是統(tǒng)計(jì)學(xué)習(xí)理論的延伸應(yīng)用。當(dāng)給定一個(gè)訓(xùn)練樣本集:
D={(x1,y1),(x2,y2),…,(xm,ym)},
yi∈{-1,+1}
SVM分類學(xué)習(xí)的思想是用超平面將樣本空間劃分,使得樣本盡可能被區(qū)分開??梢哉业皆S多符合要求的超平面(如圖8),但紅線距離兩側(cè)數(shù)據(jù)間隔最大,可以盡量避免樣本訓(xùn)練集數(shù)據(jù)的噪聲,同時(shí)對(duì)樣本局限性抗干擾能力較強(qiáng),所以中間那一條紅線抗“擾動(dòng)”性最好。
圖8 SVM分類原理示意圖
將正負(fù)樣本導(dǎo)入SVM分類器中,分類器會(huì)自動(dòng)識(shí)別并且找到一個(gè)超平面,使得抗擾動(dòng)性最好,這決定了識(shí)別的成功率。在樣本空間中,如下線性方程是劃分超平面最好的分界:
ωTx+b=f(x)
(6)
式中:ω=(ω1,ω2,…,ωd)為法向量;b為位移。
由式(6)可得樣本所在空間中,任何一點(diǎn)x到超平面(ω,b)的間距為:
(7)
假設(shè)分類器能夠正確分類樣本,則:
(8)
使式(8)等號(hào)成立的采樣點(diǎn)稱為“支持向量”,若2個(gè)采樣點(diǎn)分屬超平面兩側(cè),被稱為“異類支持向量”,2個(gè)異類支持向量到超平面距離之和為:
(9)
稱為間隔。
找到“最大的間隔”,即式(9)中γ最大值,就能夠精確分類,即:
(10)
s.t.yi(ωTxi+b)≥1,i=1,2,…,m表示最大間隔之外的部分。
顯然,當(dāng)間隔最大時(shí)||ω||最小,式(10)可以寫為:
(11)
這就是支持向量機(jī)的基本型。
目標(biāo)函數(shù)的約束條件是不等式,在數(shù)學(xué)角度變?yōu)榍蠼舛我?guī)劃問(wèn)題,選用KKT(karush-kuhn-tucker)條件得到原來(lái)問(wèn)題的對(duì)偶問(wèn)題。
將拉格朗日乘子αi≥0加入到每個(gè)約束條件中,即得到:
(12)
最終目標(biāo)函數(shù)表示為:
(13)
對(duì)式(13)中ω,b求最小值,在對(duì)α求最大值,就能求得SVM的最優(yōu)超平面。
本文中SVM分類器的主要作用是訓(xùn)練汽車圖片正負(fù)樣本,因此其準(zhǔn)確率與樣本集中的支持向量有關(guān),差異越大,最優(yōu)超平面的分類越準(zhǔn)確。
對(duì)研究的內(nèi)容進(jìn)行測(cè)試和分析,選用的硬件平臺(tái)為CPU:Intel CORE i7-4790K處理器,內(nèi)存:16G;軟件平臺(tái)為:在Ubuntu 14.04 操作系統(tǒng)之上運(yùn)行QT5.5和OpenCV 3.1版本的計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù)。在訓(xùn)練分類器時(shí),選用5 358張不同種類和外形的汽車后視圖片,作為正樣本輸入;同時(shí)選用5 260張非汽車圖片,作為負(fù)樣本輸入。
針對(duì)樣本集,輸入256×256維像素的圖像,然后用原始LBP算子、MB-LBP和等價(jià)模式算子分別提取特征,并對(duì)整張圖像進(jìn)行分塊處理,采取3種方案:即劃分成32×32的區(qū)域,得到8×8像素的樣本窗口;劃分為16×16的區(qū)域,得到16×16像素的樣本窗口;劃分為8×8的區(qū)域,得到32×32像素的樣本窗口,然后分別選用8×8、16×16、32×32等不同的樣本窗口大小進(jìn)行測(cè)試,測(cè)試結(jié)果如表1所示。
表1 不同樣本窗口大小下識(shí)別率
通過(guò)測(cè)試可以分析出,本實(shí)驗(yàn)輸入原始256×256維像素的圖像,選用窗口大小為32×32像素,并且使用MB-LBP和等價(jià)模式算子提取特征,得到的識(shí)別效果最好。
基于在京沈高速錄取的實(shí)時(shí)行車視頻,截取車速為70、90、110 km/h時(shí)的原始圖像,進(jìn)行算法測(cè)試,得到的結(jié)果如圖9—11所示。
圖9 70 km/h工況下的前車識(shí)別圖像
圖10 90 km/h工況下的前車識(shí)別圖像
圖11 110 km/h工況下的前車識(shí)別圖像
圖9—11為截取的不同車速下前車識(shí)別圖像,分析實(shí)驗(yàn)結(jié)果,得知:在右側(cè)車道行駛時(shí),由于車速最低、圖像清晰、與前車距離近,因此識(shí)別效率高、識(shí)別時(shí)間短;在中間車道較高速行駛時(shí),識(shí)別時(shí)間增加,距離較遠(yuǎn)的車輛圖像模糊無(wú)法識(shí)別;在左側(cè)車道最高速行駛時(shí),識(shí)別時(shí)間最長(zhǎng),甚至出現(xiàn)識(shí)別遺漏現(xiàn)象。
針對(duì)上述表現(xiàn),統(tǒng)計(jì)了不同車速下的識(shí)別的平均準(zhǔn)確率,即:某一大致車速下,前車圖像正確識(shí)別的幀數(shù)之和與整段視頻總幀數(shù)的比。不同車速下平均準(zhǔn)確率如表2所示。
表2 不同車速下平均準(zhǔn)確率
通過(guò)對(duì)比不同車速下算法識(shí)別的準(zhǔn)確率和識(shí)別時(shí)間,其結(jié)果與理論預(yù)測(cè)相符合,在不同車速工況下,均可以實(shí)現(xiàn)較好的檢測(cè)結(jié)果。
前車識(shí)別方法種類繁多,一般情況下,YOLO系列算法識(shí)別速度快,傳統(tǒng)特征提取算法準(zhǔn)確率高。將本文方法與YOLOv3方法(利用開源代碼,自己訓(xùn)練,得到檢測(cè)識(shí)別結(jié)果)、類Haar特征+Adaboost[8]方法識(shí)別結(jié)果進(jìn)行對(duì)比,對(duì)比參數(shù)主要包括2個(gè)方面:每秒幀數(shù)(frames per second, FPS)表示計(jì)算機(jī)每秒處理圖像的幀數(shù);平均精度(average precision,AP)表示根據(jù)不同車速,以10 km/h為一個(gè)區(qū)間,分別計(jì)算汽車在60~120 km/h車速內(nèi),每個(gè)區(qū)間的圖像識(shí)別的平均準(zhǔn)確率,然后所有區(qū)間內(nèi)的平均準(zhǔn)確率加和求均值,稱為平均精度。不同檢測(cè)方法識(shí)別結(jié)果如表3所示。
表3 不同檢測(cè)方法識(shí)別結(jié)果
通過(guò)對(duì)比可以看到,YOLOv3算法識(shí)別圖像用時(shí)短,可以實(shí)現(xiàn)實(shí)時(shí)識(shí)別,但識(shí)別率不高,本文研究的方法每秒運(yùn)行幀數(shù)未達(dá)到實(shí)時(shí)識(shí)別標(biāo)準(zhǔn),但平均精度和效率,較類Haar特征+Adaboost算法都有所提高,基本滿足不同速度下的前車識(shí)別。
汽車智能化是科技進(jìn)步的高端產(chǎn)物,前車識(shí)別技術(shù)則是智能汽車實(shí)現(xiàn)自動(dòng)行走的眼睛。當(dāng)前前車識(shí)別主要依賴于機(jī)器視覺(jué)算法,而基于神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)目標(biāo)檢測(cè)方法引起熱潮,其檢測(cè)的速度和精度是建立于大量目標(biāo)數(shù)據(jù)集和較高硬件配置的基礎(chǔ)之上,應(yīng)用相對(duì)困難,而基于特征的統(tǒng)計(jì)分類方法,對(duì)軟硬件要求低,且能夠達(dá)到實(shí)時(shí)檢測(cè)的目的,實(shí)用性強(qiáng)。另外,本文使用的LBP算法對(duì)光照有很強(qiáng)的魯棒性,因此只考慮了不同車速情況的平均識(shí)別精度,沒(méi)有考慮天氣、光照的影響。實(shí)驗(yàn)測(cè)試結(jié)果表明,本文提出的方法滿足前車識(shí)別的基本需求。另外,進(jìn)一步研究晴天、多云、雨雪、深夜路燈等不同光照環(huán)境下的識(shí)別結(jié)果具有廣闊應(yīng)用前景。