倪朋朋,顧海全,董鋒格,王文斌
(常州星宇車燈股份有限公司,江蘇常州 213000)
車輛檢測是計(jì)算機(jī)視覺領(lǐng)域廣泛研究的熱點(diǎn)之一,研究車輛檢測對于智能駕駛、道路交通安全建設(shè)有著重要意義。通過車載攝像頭,車輛可以實(shí)時(shí)檢測道路上的車輛,從而為駕駛員提供駕駛輔助信息,降低交通事故率。
目前較常用的車輛檢測方法是通過環(huán)形磁感線圈、超聲波、微波雷達(dá)、紅外線、氣動(dòng)導(dǎo)管、光電式傳感器等設(shè)備儀器進(jìn)行檢測,目前比較流行的是基于視頻分析的車輛檢測方法[1]。視頻檢測是計(jì)算機(jī)圖形處理領(lǐng)域的分支,機(jī)器視覺具有信息來源廣、信息量大、屬于非接觸測量等優(yōu)點(diǎn)[2]。而實(shí)現(xiàn)高精度的圖像檢測重點(diǎn)是選取目標(biāo)特征和設(shè)計(jì)分類算法。目前主要使用的方法是根據(jù)車輛陰影、邊緣特征進(jìn)行的車輛檢測[3]。光流法主要通過路面中車輛與攝像頭相對運(yùn)動(dòng)速度實(shí)現(xiàn)[4],但該方法受光線響較大且計(jì)算復(fù)雜。VIOLA等[5]提出實(shí)時(shí)性強(qiáng)、檢測速率快、準(zhǔn)確率高的Haar-like人臉檢測算法。隨后,甘玲、劉曉克等[6-7]以Haar-like算法為基礎(chǔ)進(jìn)行深入研究,提出了基于旋轉(zhuǎn)Haar-like的算法。
本文作者在上述研究人員提出的Haar-like算法的基礎(chǔ)上提出新的Haar-like特征提取算法,并且通過多通道的級聯(lián)分類器分別檢測畫面中不同狀態(tài)的車輛,然后合并各個(gè)通道提取的特征信息,提高車輛識(shí)別的準(zhǔn)確性。
Haar-like是一種經(jīng)典的圖像特征提取算法。它最早是由Papageorigiou等用于人臉描述[8]?;贖aar-like特征的Adaboost算法能夠有效識(shí)別圖像中的物體,判斷是否存在車輛。首先通過訓(xùn)練樣本進(jìn)行特征提取,然后計(jì)算特征值并建立弱分類器,最后通過加權(quán)投票的方式將其構(gòu)造成為強(qiáng)分類器。目前常用的Haar-like特征可以分為4類:邊緣特征、線性特征、點(diǎn)特征(中心特征)、對角線特征,如圖1所示。
這些特征方塊的大小不固定,但其中的黑色和白色矩陣的比例總是固定的,將白色區(qū)域和黑色區(qū)域內(nèi)部所有像素灰度值之和的差值作為特征值,通過積分圖[9]能夠快速獲得區(qū)域中的像素和。為了提高檢測率,本文作者采用Haar-like特征和擴(kuò)展Haar-like特征(新特征)來表示車輛的特征結(jié)構(gòu),如圖2所示。
圖1 Haar-like特征
圖2 新特征與Haar-like特征
如圖3所示,在車輛正面的匹配過程中,尤其是在兩個(gè)車燈之間的區(qū)域,新特征一不僅可以很好反映灰度特征的變化,還可以將弱分類器訓(xùn)練得更強(qiáng)。在車輛局部小范圍灰度變化中,新特征具有較高的精度。車燈區(qū)域灰度比車燈之間區(qū)域灰度更淺,通過這種新的Haar-like特征能夠?qū)囕v分離較開的區(qū)域進(jìn)行差異判斷。新特征二能夠更好地描述單個(gè)車燈與車燈周圍灰度變化特征,能夠顯著地將車輛檢測的準(zhǔn)確度提高。Haar-like特征傾斜60°時(shí)可以反映車輛A柱(車前后擋風(fēng)玻璃邊框)范圍內(nèi)的邊緣信息。通過采用這種新的特征矩形,還能減少弱分類器的數(shù)目。
圖3 車輛矩形特征
本文作者使用的訓(xùn)練樣本圖片統(tǒng)一歸一化為20像素×20像素,邊緣特征能夠在該樣本圖片中生成21 000個(gè)特征,線性特征能夠生成13 230個(gè)特征,中心特征能夠生成8 464個(gè)特征,對角線特征則能夠生成20 736個(gè)特征。因此,普通Haar-like特征在樣本圖片中就能產(chǎn)生97 660個(gè)特征。新特征一由于是一種離散的特征,如果不加以約束,則計(jì)算較難并且特征數(shù)量會(huì)很龐大,因此限定新特征一的3個(gè)矩陣大小相同,長寬均為3像素,步長為1。限定后,新特征一生成的特征數(shù)量為778 688個(gè)。新特征二類似于對角線特征,產(chǎn)生的特征數(shù)量仍然為20 736個(gè)。本文作者也用到旋轉(zhuǎn)60°的邊緣特征,如圖4所示。
圖4 旋轉(zhuǎn)60°的Haar-like特征計(jì)算示意
該特征可以由一個(gè)五元組r(x,y,h,w,α)表示,其中(x,y)表示矩形左上頂點(diǎn),w為矩形的長度,h為矩形的寬度,α為矩形的旋轉(zhuǎn)角度,假設(shè)圖片樣本尺寸大小為W×H,旋轉(zhuǎn)矩形的長為a,寬為b,令X為W/w是沿x方向上的縮放系數(shù),Y為H/h是y方向上縮放系數(shù),公式(1)是計(jì)算該特征個(gè)數(shù)的方法:
(1)
傾斜60°邊緣特征生成的特征數(shù)量為20 540個(gè)。由上述可得,通過擴(kuò)展Haar-like特征,雖然可以提高檢測的準(zhǔn)確度,但是會(huì)使數(shù)據(jù)的運(yùn)算量增加很多,導(dǎo)致訓(xùn)練時(shí)間變得更長。
為了快速算出Haar-like特征在樣本中的特征值,VIOLA提出一種利用積分圖像法快速計(jì)算Haar-like特征的方法[2],通過構(gòu)造一張積分圖(Integral Image),然后任何一個(gè)Haar-like特征的特征值都可以通過類似查表的方式和有限次簡單運(yùn)算得到。對于圖像中的一點(diǎn)A(x,y),該點(diǎn)灰度值為I(x,y),I(x′,y′)表示輸入圖像上相關(guān)位置的灰度值,其積分圖ii(x,y)的計(jì)算方法為
(2)
圖5為基于Haar-like特征積分圖的描述,i(x,y)為輸入特征圖像的某點(diǎn)(x,y)的像素值,s(x,y)為點(diǎn)(x,y)所在行的像素值的和,則計(jì)算積分圖可以通過以下的遞歸方式:
s(x,y)=s(x,y-1)+i(x,y)
(3)
ii(x,y)=ii(x-1,y)+s(x,y)
(4)
圖5 積分圖描述
當(dāng)點(diǎn)(x,y)處于一個(gè)初始狀態(tài)時(shí),即s(x,-1)、s(-1,y)時(shí),像素和是0。在圖5中點(diǎn)2的積分圖值為A+B,點(diǎn)3的積分圖值為A+C,點(diǎn)4的積分圖值為ii5+ii1-(ii2+ii4),通過積分圖,程序讀取一次圖像的灰度值就能夠獲得該Haar-like特征的特征值,而且它的計(jì)算時(shí)間也是一個(gè)常量。
本文作者給出的新特征一的計(jì)算公式為
[ii1+ii4-ii2-ii3]+[ii9+ii12-ii10-ii11]-[ii5+ii8-ii6-ii7]
(5)
新特征二的計(jì)算公式為
2×(ii2-ii5+ii4)-ii3+ii9-ii7-ii1
(6)
Adaboost 算法是一種簡單、學(xué)習(xí)精度高的分類器算法,1995年由Yoav FREUND和Robert SCHAPIRE提出。Adaboost算法將許多分類能力一般的弱分類器組合成一個(gè)分類能力強(qiáng)的強(qiáng)分類器,再串聯(lián)起多個(gè)強(qiáng)分類器完成圖像中物體的檢測,檢測系統(tǒng)對錯(cuò)誤率和識(shí)別速率的要求是級聯(lián)級數(shù)的重要依據(jù)。
弱分類器分類的準(zhǔn)確性一般大于50%,因?yàn)樗歉鶕?jù)一些粗略的經(jīng)驗(yàn)來分類的分類器,因此每一個(gè)Haar特征都對應(yīng)了一個(gè)弱分類器,所有的弱分類器定義都是依據(jù)它所對應(yīng)的Haar特征的參數(shù)。弱分類器定義如下:
(7)
其中:hj(x)為一個(gè)Haar-like特征的分類器值;x為待測子窗口;fj(x)為特征值;θj為閾值;pj為符號因子。
多個(gè)弱分類器構(gòu)成強(qiáng)分類器,強(qiáng)分類器能夠更好地處理對象,通過對訓(xùn)練出的多個(gè)強(qiáng)分類器進(jìn)行級聯(lián),可以加快對圖像中車輛進(jìn)行分類檢測的速度,排除大部分非車輛樣本。強(qiáng)分類器訓(xùn)練過程如下:
(1)對已知的N個(gè)訓(xùn)練樣本(x1,y1)、(x2,y2)、......、(xn,yn)的弱分類器權(quán)重進(jìn)行初始化,N個(gè)樣本中有M個(gè)為非車輛樣本,L個(gè)為車輛樣本,對于yi=0的樣本w1~M=1/(2M),對于yi=1的樣本w1~L=1/(2L)。
(2)進(jìn)行t次迭代
①歸一化權(quán)重:
(8)
②計(jì)算每個(gè)Haar-like特征所對應(yīng)的弱分類器hj(x)的加權(quán)錯(cuò)誤率:
(9)
③選取具有最小錯(cuò)誤率的弱分類器hj(x)加入到強(qiáng)分類器中:
(10)
④加大錯(cuò)誤率大的弱分類器權(quán)重,減小錯(cuò)誤率小的弱分類器權(quán)重:
(11)
式中:如果輸入特征被正確分類,那么e=0,否則e=1。
⑤經(jīng)過t次迭代弱分類器級聯(lián)成強(qiáng)分類器:
(12)
通過以上訓(xùn)練可以實(shí)現(xiàn)對已知樣本的正確分類,通過T次重新劃分樣本權(quán)重,強(qiáng)化了對錯(cuò)誤樣本的訓(xùn)練,最后,將所有的弱分類器通過權(quán)重組合形成強(qiáng)分類器。
將大量的Haar特征弱分類器通過級聯(lián)的策略組成一系列的強(qiáng)分類器。為了迅速除去數(shù)量較多的非車輛樣本,每層弱分類器都要去除許多反例樣本,同時(shí)正例樣本必須要逐級通過所有層次的驗(yàn)證。訓(xùn)練層次越深,車輛和非車輛的樣本就越難識(shí)別,通過增加每一層弱分類器數(shù)量以排除非車輛樣本。因?yàn)楹芏喾擒囕v子窗口在前期分類器層已經(jīng)被排除掉,所以即使弱分類器不斷被添加,該方法也不會(huì)因此而降低檢測速度。為提高實(shí)時(shí)檢測路面上各種車輛的魯棒性,本文作者提出多通道分類器方式。多通道指的是對車輛正面、背面以及側(cè)面樣本分別訓(xùn)練出的強(qiáng)分類器,將不同的分類器檢測結(jié)果合并,最后輸出到圖像中的所有車輛位置,如圖6所示。多通道強(qiáng)分類器方法實(shí)現(xiàn)上比較簡單,但可能會(huì)導(dǎo)致檢測速度變慢。
圖6 多通道分類器檢測
訓(xùn)練時(shí)采用的是歸一化為20像素×20像素的車輛樣本,正樣本來自MIT CBCL數(shù)據(jù)庫以及作者所采集的圖像共6 000張,主要包括車輛前后視圖以及側(cè)面視圖。負(fù)樣本主要為不包含車輛信息但是具有與車輛日常行駛環(huán)境相關(guān)信息的圖片,負(fù)樣本共12 350張,尺寸大小為60像素×60像素到128像素×96像素之間。圖7為部分樣本訓(xùn)練集,為了提高分類器的檢測率,所選正樣本包含了有一定傾斜度的車輛圖像。
文中使用OpenCV開源計(jì)算機(jī)視覺庫實(shí)現(xiàn)Adaboost算法對上述樣本的訓(xùn)練。訓(xùn)練環(huán)境與測試環(huán)境為Intel Core i5、4G內(nèi)存,訓(xùn)練時(shí)單個(gè)階段分類器最小命中率設(shè)定為0.985,每個(gè)階段的虛警率為0.5,訓(xùn)練層數(shù)為35層。
測試樣本是從MIT Car Database、 INRIA Car Dataset車輛圖像庫以及網(wǎng)絡(luò)中搜尋的,共516張,樣本大小介于128像素×128像素和512像素×409像素之間。首先對測試樣本進(jìn)行灰度化,然后進(jìn)行直方圖均衡化,對該樣本庫進(jìn)行測試,正確率達(dá)到91.5%,而且每張圖片的處理時(shí)間可以達(dá)到22 ms,如表1所示。
圖7 正負(fù)訓(xùn)練樣本
表1 車輛檢測結(jié)果
本文作者組建了車輛運(yùn)行的視頻庫用來測試分類器的實(shí)時(shí)性,對于30 幀/s、480 dpi×320 dpi的視頻,處理1幀時(shí)間為50 ms。在整個(gè)行車視頻試驗(yàn)中,車輛檢測率能夠達(dá)到87%以上,在一定程度上能夠滿足實(shí)時(shí)檢測路面車輛的要求。圖8為各種狀況下的車輛實(shí)時(shí)檢測結(jié)果示例。
圖8 車輛不同狀態(tài)下實(shí)時(shí)檢測結(jié)果
在Haar-like特征的基礎(chǔ)上,提出了新的特征集以及其特征計(jì)算公式,使用新的特征集訓(xùn)練出更優(yōu)的分類器,提高了檢測精度。通過Adaboost算法訓(xùn)練出不同車輛姿態(tài)所對應(yīng)的分類器,合并各個(gè)分類器的檢測結(jié)果,實(shí)現(xiàn)多通道級聯(lián)分類器。實(shí)驗(yàn)結(jié)果表明:新增加Haar-like 特征可以使Adaboost訓(xùn)練過程中的弱分類器精確度得到提高,特別在檢測同一圖像中出現(xiàn)各種狀態(tài)的車輛時(shí)具有較高的魯棒性。訓(xùn)練出的強(qiáng)分類器較原始Haar-like特征分類器檢測率得到明顯提高,并且也能滿足實(shí)時(shí)檢測的要求。