張曉青, 馬牧燕, 燕必希, 朱立夫
(北京信息科技大學(xué) 儀器科學(xué)與光電工程學(xué)院,北京 100192)
隨著車輛普及,交通系統(tǒng)中車輛的檢測(cè)和跟蹤已經(jīng)成為交通系統(tǒng)的研究重點(diǎn)[1]。目前道路信息的采集傳感器主要有激光雷達(dá)、紅外線和視覺傳感器等[2],而視覺傳感器由于其價(jià)格低廉、方法簡(jiǎn)單和信息接收量豐富等優(yōu)勢(shì),廣泛應(yīng)用于交通安全保障系統(tǒng)[3]。
基于視覺的車輛檢測(cè)方法主要有基于特征的車輛檢測(cè)[4]、基于運(yùn)動(dòng)的車輛檢測(cè)[5]、基于模型的車輛檢測(cè)[6]和基于機(jī)器學(xué)習(xí)的車輛檢測(cè)[7]等方法。而基于機(jī)器學(xué)習(xí)的車輛檢測(cè)方法魯棒性好,可以實(shí)現(xiàn)遮擋和背景干擾較大情況下的車輛檢測(cè),因此受到廣泛的關(guān)注并且取得很好的成果。李子彥等[8]利用局部HOG特征對(duì)運(yùn)動(dòng)車輛進(jìn)行檢測(cè),該方法檢測(cè)效率較高、靈敏度好,但檢測(cè)的實(shí)時(shí)性較差,并且對(duì)距離較遠(yuǎn)的車輛較難檢測(cè)。Roxana等[9]利用一類支持向量機(jī)(OC-SVM)分類來檢測(cè)運(yùn)動(dòng)車輛,該方法首先利用自適應(yīng)混合高斯模型檢測(cè)車輛區(qū)域,提取幾何特征并利用卡爾曼估計(jì)進(jìn)行跟蹤,同樣該方法實(shí)時(shí)性差,檢測(cè)效果一般。Daniel等[10]基于Haar-like、LBP和HOG特征聯(lián)合的圖像分類器方法,利用立體模型對(duì)運(yùn)動(dòng)車輛進(jìn)行檢測(cè),但該方法算法復(fù)雜、檢測(cè)效率較差,僅適用于特定環(huán)境。Shaif等[11]利用Haar特征的分類器對(duì)車輛進(jìn)檢測(cè),該方法實(shí)時(shí)性好,但檢測(cè)效率一般。朱彬等[12]利用Haar特征和LBP特征分區(qū)域多分類器法對(duì)車輛進(jìn)行檢測(cè),該方法檢測(cè)效果好、實(shí)時(shí)性較強(qiáng),但穩(wěn)定性一般。余小角等[13]利用Haar特征和AdaBoost算法對(duì)車輛進(jìn)行檢測(cè),可以有效檢測(cè)車輛,但檢測(cè)效率低。
本文提出一種改進(jìn)Haar特征結(jié)合CamShift算法的特定車輛檢測(cè)跟蹤方法,利用傾斜45°特征與像素和的商計(jì)算Haar特征值,其次利用AdaBoost算法訓(xùn)練樣本得到分類器,并構(gòu)建特征樣本級(jí)聯(lián)分類器,利用獲得的特征級(jí)聯(lián)分類器對(duì)視頻圖像進(jìn)行檢測(cè),最后將檢測(cè)結(jié)果中的特定車輛外切矩形作為CamShift算法的初始窗口,并對(duì)該跟蹤窗口進(jìn)行檢測(cè),提高了車輛的檢測(cè)效率和實(shí)時(shí)性。
Haar-like分類器檢測(cè)目標(biāo)是利用已知訓(xùn)練樣本的特征,與未知圖像的特征進(jìn)行對(duì)比,實(shí)現(xiàn)目標(biāo)的檢測(cè)。該方法經(jīng)典應(yīng)用是人臉檢測(cè),一般使用兩個(gè)矩形特征,將白色與黑色區(qū)域像素和做差就可滿足檢測(cè)要求。
傳統(tǒng)Haar-like特征值有3種類型,即水平、垂直、對(duì)角線等特征,而對(duì)于車輛等目標(biāo)具有隨機(jī)性、灰度圖像差值較大、背景灰度差值較小的目標(biāo),做差的方法造成弱分類器的檢測(cè)性能較差,使得強(qiáng)分類器在級(jí)聯(lián)時(shí)需要大量的弱分類器。因此,提出利用擴(kuò)展之后的45°特征,并將黑白區(qū)域的像素和做除法,求得改進(jìn)Haar特征,利用該特征來進(jìn)行檢測(cè),增強(qiáng)弱分類器檢測(cè)性能。擴(kuò)展后特征如圖1所示。
圖1 擴(kuò)展之后的特征
圖像中Haar-like特征值數(shù)量遠(yuǎn)超過像素的數(shù)量,因此,可利用積分圖計(jì)算Haar-like特征值,提高圖像信號(hào)特征的計(jì)算效率。車輛的特征可以由一些簡(jiǎn)單的矩形特征和傾斜45°邊緣特征進(jìn)行描述,如圖2所示。車輛的花色區(qū)域比純色區(qū)域顏色深,因此可以利用傾斜45°邊緣特征檢測(cè)識(shí)別車輛。
圖2 車輛Harr-Like特征圖
積分圖只需要對(duì)圖像遍歷一次就可以求出圖像中任意坐標(biāo)點(diǎn)(x,y)左上角所有像素和,
(1)
式中:ii(x,y)表示積分圖;i(x′,y′)為原始圖像的灰度值。其積分圖的計(jì)算模型如圖3所示。圖中:A(x,y)表示點(diǎn)(x,y)的積分圖;s(x,y)表示點(diǎn)(x,y)的y方向所有原始圖像像素之和。其表達(dá)式如式:
s(x,y)=s(x,y-1)+i(x,y)
(2)
ii(x,y)=ii(x-1,y)+s(x,y)
(3)
點(diǎn)(x,y)的積分圖是圖3中陰影部分所有元素和的數(shù)組,因此對(duì)于陰影區(qū)域像素和的計(jì)算,僅僅作4次數(shù)組計(jì)算檢索,就可以得到圖像像素和。
圖3 點(diǎn)坐標(biāo)的積分圖
對(duì)于任意區(qū)域D的像素和的積分圖模型如圖4所示。圖中:A區(qū)域的像素和表示為ii(1);A+B區(qū)域的像素和表示為ii(2);A+C區(qū)域的像素和表示為ii(3);A+B+C+D區(qū)域的像素和表示為ii(4)。則得到區(qū)域D的像素和為
D=ii(4)-ii(3)-ii(2)+ii(1)
(4)
對(duì)于兩個(gè)區(qū)域像素和的差,其矩形特征如圖5所示。圖中,矩形特征的特征值為A、B區(qū)域像素和的差,
A-B=[ii(5)-ii(4)-ii(2)+ii(1)]-
[ii(6)-ii(5)-ii(3)+ii(2)]
(5)
圖4 積分圖模型
圖5 矩形區(qū)域特征值
將A、B區(qū)域進(jìn)行45°旋轉(zhuǎn)得到傾斜45°矩形特征,如圖6所示。
圖6 傾斜45°邊緣特征
對(duì)于積分圖像內(nèi)一點(diǎn)(x,y),旋轉(zhuǎn)積分圖像
對(duì)于任意旋轉(zhuǎn)矩陣B(x,y,h,w,45°),假設(shè)區(qū)域的邊緣長(zhǎng)度為w,寬度為h,則B內(nèi)的像素值之和
sum(B)=Rii(x+w,y+w)+Rii(x-h,y+h)-
Rii(x,y)-Rii(x+w-h,y+w+h)
(6)
則傾斜45°特征的像素和的差值
A-B=sum(A)-sum(B)
(7)
傾斜45°特征的像素和的商
A/B=sum(A)/sum(B)
(8)
可以看到,通過對(duì)矩形端點(diǎn)積分圖的運(yùn)算,就可求得車輛傾斜45°圖像信號(hào)的特征值。
AdaBoost算法本身能夠?qū)W(xué)習(xí)獲得的弱分類器進(jìn)行自適應(yīng)調(diào)整[14],按照一定的權(quán)重組合構(gòu)成最終檢測(cè)的強(qiáng)分類器。AdaBoost算法主要有兩部分[15]:①弱學(xué)習(xí)算法,該算法的識(shí)別效果僅僅略高于隨機(jī)識(shí)別的效果;②強(qiáng)學(xué)習(xí)算法,該算法可以實(shí)現(xiàn)理想的識(shí)別效果,并能夠在預(yù)期時(shí)間內(nèi)完成。該算法利用訓(xùn)練集中樣本分類的準(zhǔn)確度和整體分類的準(zhǔn)確度確定權(quán)重,增加或減少分類的樣本權(quán)重,可以準(zhǔn)確劃分最終分類結(jié)果。AdaBoost算法原理如圖7所示,利用AdaBoost算法將白色和黑色進(jìn)行分類。
(a)
(b)
(c)
(d)
(e)
(f)
圖7 AdaBoost分類原理
在圖7(a)中存在錯(cuò)誤的分類樣本,因此,必須增加錯(cuò)誤分類中小球的權(quán)重,如圖7(b)所示;再次分類時(shí),主要針對(duì)權(quán)重較大的小球類進(jìn)行分類,如圖7(c)所示;同理,圖7(d)為增加圖7(c)中錯(cuò)誤分類小球權(quán)重的分類圖,圖7(e)為重新分類的結(jié)果,圖7(f)為圖7(a)、圖7(c)和圖7(e)3個(gè)弱分類器訓(xùn)練之后的最終的強(qiáng)分類器。
在車輛檢測(cè)過程中,一般用多尺度的檢測(cè)窗口進(jìn)行遍歷檢測(cè)圖像,而現(xiàn)實(shí)中檢測(cè)的大部分窗口都是非車輛,造成檢測(cè)耗時(shí),因此通過級(jí)聯(lián)分類器使得檢測(cè)窗口盡量包含車輛檢測(cè)區(qū)域,提高檢測(cè)效率。級(jí)聯(lián)分類器就是將若干強(qiáng)分類器按照復(fù)雜度排列成順序結(jié)構(gòu),對(duì)其中某一個(gè)分類器后續(xù)的訓(xùn)練樣本,通過和其之前所有分類器分類的樣本進(jìn)行比較,最后形成級(jí)聯(lián)分類器。車輛級(jí)聯(lián)分類器的級(jí)聯(lián)過程如圖8所示。
圖8中,強(qiáng)分類器1~N體現(xiàn)了級(jí)聯(lián)分類器的結(jié)構(gòu),提取所有檢測(cè)窗口,對(duì)每層強(qiáng)分類進(jìn)行比較,當(dāng)滿足參數(shù)要求即為檢測(cè)目標(biāo)并進(jìn)行下一步檢測(cè);如果不滿足則為負(fù)樣本,通過調(diào)節(jié)樣本的檢測(cè)度參數(shù),使其對(duì)車輛具有較高的檢測(cè)精度,同時(shí)確保正樣本車輛繼續(xù)到下一級(jí)分類器中繼續(xù)判斷。最后經(jīng)過設(shè)定層數(shù),判斷每層強(qiáng)分類器,最終確定被檢測(cè)車輛。
圖8 車輛分類器級(jí)聯(lián)過程
根據(jù)分類器方法檢測(cè)到運(yùn)動(dòng)車輛,由于實(shí)際檢測(cè)中車輛數(shù)目和位置的不同,檢測(cè)圖像清晰度和窗口大小的不同,導(dǎo)致分類器跟蹤算法難以對(duì)特定車輛進(jìn)行跟蹤,并且窗口太大,對(duì)視頻圖像信號(hào)的跟蹤難以達(dá)到實(shí)時(shí)性要求。利用CamShift算法和上述分類器結(jié)合的方法,將分類器檢測(cè)到的車輛信號(hào)作為CamShift算法的初始窗口,然后對(duì)后續(xù)圖像窗口進(jìn)行跟蹤,實(shí)現(xiàn)了CamShift自主選擇窗口的效果,并在下次分類器檢測(cè)時(shí)只針對(duì)此跟蹤窗口進(jìn)行檢測(cè),大大提高檢測(cè)效率。
車輛檢測(cè)跟蹤過程中,隨著天氣和車輛位置的變化,使得運(yùn)動(dòng)車輛在圖像中的顏色受到影響,導(dǎo)致檢測(cè)與跟蹤受到嚴(yán)重干擾。RGB顏色空間容易受到環(huán)境的影響,因此,將其轉(zhuǎn)換為HSV顏色空間,該空間中利用單通道對(duì)圖像進(jìn)行處理將不會(huì)受到光照等造成的影響,其中h為色調(diào)、s為飽和度、v為明度。其轉(zhuǎn)換公式如下:
v=max
根據(jù)HSV顏色模型,對(duì)檢測(cè)到車輛的h分量作直方圖,統(tǒng)計(jì)不同h分量值像素的概率,并利用其替換像素的值,最終得到顏色概率分布圖實(shí)現(xiàn)反向投影。
MeanShift算法通過計(jì)算目標(biāo)區(qū)和候選區(qū)內(nèi)像素的特征值概率得到目標(biāo)模型和候選模型;其次利用初始幀模型和當(dāng)前幀模型的相似性,進(jìn)行迭代;最終收斂到真實(shí)位置,實(shí)現(xiàn)目標(biāo)跟蹤。
MeanShift算法于車輛的跟蹤分為4個(gè)步驟:
(1) 根據(jù)被檢測(cè)到的車輛確定顏色概率分布圖,選定車輛的搜索窗口。
(2) 計(jì)算該窗口的零階距
一階矩
搜索窗口的質(zhì)心
xc=M10/M00,yc=M01/M00
(4) 移動(dòng)搜索窗口的位置到質(zhì)心的位置,如果移動(dòng)距離大于設(shè)定的閾值距離,重復(fù)上述操作;如果移動(dòng)距離小于設(shè)定的閾值距離,則停止計(jì)算。
由于MeanShift算法在跟蹤過程中搜索窗口不能調(diào)整大小,無法跟蹤形變的目標(biāo),而CamShift算法是對(duì)該算法的一種改進(jìn),可以隨時(shí)改變搜索窗口的大小,實(shí)現(xiàn)對(duì)目標(biāo)的跟蹤,CamShift算法的具體過程如下:
當(dāng)MeanShift算法計(jì)算第(2)和第(3)步的同時(shí),通過計(jì)算二階矩可求得目標(biāo)長(zhǎng)短軸和方向角:
(9)
令:
則圖像目標(biāo)的長(zhǎng)短軸和方向角為:
(10)
式中:l為長(zhǎng)軸;w為短軸;θ為方向角。如果第(4)步移動(dòng)窗口距離小于閾值,則得到目標(biāo)區(qū)域大小(w,l),即為當(dāng)前幀的位置和大小,并返回第(1)步再次重復(fù)搜索。
實(shí)驗(yàn)基于VS2010和OpenCV2.4.9實(shí)現(xiàn)車輛正、負(fù)樣本訓(xùn)練集的獲取分割、級(jí)聯(lián)分類器的訓(xùn)練和最終的檢測(cè)試驗(yàn),實(shí)驗(yàn)流程圖如圖9所示。圖中,左邊虛線框?yàn)殡x線處理,利用相機(jī)采集正樣本車輛和負(fù)樣本公路圖像做訓(xùn)練集,然后訓(xùn)練獲得分類器;右邊虛線框?yàn)閷?shí)時(shí)在線處理,利用相機(jī)實(shí)時(shí)獲得圖像,并進(jìn)行相同處理,并與離線處理分類器作對(duì)比來檢測(cè)車輛。
圖9 車輛檢測(cè)實(shí)驗(yàn)流程圖
檢測(cè)車輛樣本獲取:Haar特征訓(xùn)練集的制作中,正負(fù)樣本比例為1∶3,根據(jù)車輛在公路和街區(qū)中的行駛環(huán)境,拍攝車輛圖片1 500張,部分圖片如圖10所示。
圖10 車輛部分圖
根據(jù)拍攝車輛圖像構(gòu)建正樣本訓(xùn)練集,并對(duì)樣本進(jìn)行歸一化處理,調(diào)整大小為20×20像素,處理后圖像如圖11所示。
負(fù)樣本中,利用不存在正樣本的任何圖像都可以進(jìn)行訓(xùn)練集的建立,然而,由于車輛的行駛環(huán)境,利用環(huán)境背景能更好地體現(xiàn)出訓(xùn)練集的魯棒性。因此,采用公路和街區(qū)環(huán)境作為負(fù)樣本,負(fù)樣本部分圖像如圖12所示,尺寸不小于正樣本尺寸,數(shù)量不低于正樣本的3倍,最后進(jìn)行歸一化處理。
圖12 負(fù)樣本部分圖
負(fù)樣本數(shù)量是4 500張不包含正樣本的環(huán)境背景圖,歸一化為20×20像素大小的訓(xùn)練樣本,完成負(fù)樣本訓(xùn)練集的建立。
用車輛正負(fù)樣本集對(duì)標(biāo)準(zhǔn)Haar-like分類器算法和改進(jìn)的Haar-like分類器算法分別進(jìn)行實(shí)驗(yàn)。為了驗(yàn)證改進(jìn)的Haar-like算法的有效性,對(duì)同一識(shí)別場(chǎng)景中,早晨、中午和傍晚3種不同環(huán)境的交通視頻進(jìn)行檢測(cè)測(cè)試,然后對(duì)其實(shí)驗(yàn)結(jié)果進(jìn)行對(duì)比,對(duì)比結(jié)果如圖13所示。
圖13 檢測(cè)對(duì)比圖
圖13中,第1行為標(biāo)準(zhǔn)Haar-like分類器算法,第2行為改進(jìn)的Haar-like分類器算法。從圖中可以看到,相對(duì)于標(biāo)準(zhǔn)Haar-like分類器算法,使用改進(jìn)的Haar-like分類器算法能更好地檢測(cè)運(yùn)動(dòng)車輛,并且每天3個(gè)時(shí)刻,改進(jìn)后的算法檢測(cè)具有良好的檢測(cè)效果。
為了對(duì)實(shí)驗(yàn)結(jié)果中識(shí)別率和誤識(shí)別率進(jìn)行對(duì)比,采用識(shí)別率TR(True Rate)和誤識(shí)別率FR(False Rate)對(duì)檢測(cè)結(jié)果進(jìn)行評(píng)價(jià),
(11)
式中:TD表示正確檢測(cè)到車輛的個(gè)數(shù);FD表示將非車輛檢測(cè)為車輛的個(gè)數(shù);FN表示未檢測(cè)到的車輛個(gè)數(shù)。對(duì)生活場(chǎng)景中1 000幅960×720的像素車輛圖像進(jìn)行檢,每幅圖像檢測(cè)時(shí)間約為24 ms,并對(duì)標(biāo)準(zhǔn)Haar分類器法和改進(jìn)Haar分類器法的檢測(cè)率進(jìn)行對(duì)比,對(duì)比結(jié)果如表1所示。
由表1可見,早晨和中午時(shí),車輛檢測(cè)效率較高,傍晚時(shí)刻由于光照等條件的影響,檢測(cè)效率略低。與標(biāo)準(zhǔn)的Haar-like分類器算法相比,改進(jìn)的Haar-like分類器算法正確檢測(cè)車輛數(shù)目更多,而且對(duì)于不同時(shí)間的檢測(cè),本文提出的算法識(shí)別效果也更為出色。
其次在檢測(cè)到的車輛窗口中,選擇目標(biāo)車輛作為初始窗口,然后利用CamShift算法對(duì)該車輛進(jìn)行跟蹤,并在后續(xù)跟蹤窗口對(duì)車輛進(jìn)行檢測(cè),其跟蹤檢測(cè)效果如圖14所示。
表1 車輛檢測(cè)識(shí)別率和誤識(shí)別率檢測(cè)對(duì)比 %
圖14 改進(jìn)Haar-like分類器聯(lián)合CamShift算法車輛跟蹤圖
圖14中,首先利用改進(jìn)Haar-like分類器對(duì)視頻中車輛進(jìn)行識(shí)別,當(dāng)在視頻第274幀時(shí),選擇其中的某一特定車輛作為被跟蹤對(duì)象,如圖中第288幀所示。然后對(duì)該車輛利用CamShift算法進(jìn)行后續(xù)跟蹤,最后對(duì)跟蹤窗口進(jìn)行車輛檢測(cè),如圖中第323幀、第338幀和第354幀所示,直到車輛繼續(xù)前行到達(dá)第372幀,目標(biāo)距離較遠(yuǎn)時(shí),依然能夠繼續(xù)跟蹤車輛,并且檢測(cè)時(shí)間只有15 ms,大大提高檢測(cè)效率。
因此,利用信號(hào)的改進(jìn)Haar-like特征和AdaBoost算法,能夠?qū)囕v進(jìn)行有效檢測(cè);利用CamShift算法跟蹤車輛,對(duì)后續(xù)跟蹤窗口進(jìn)行車輛檢測(cè),可以有效地減少車輛檢測(cè)搜索窗口,提高檢測(cè)效率。
首先利用車輛信號(hào)改進(jìn)的Haar-like特征和AdaBoost算法,對(duì)交通車輛進(jìn)行檢測(cè)并與標(biāo)準(zhǔn)Haar-like分類器算法進(jìn)行對(duì)比,結(jié)果表明改進(jìn)算法對(duì)車輛在早晨、中午和傍晚的識(shí)別率分別為91.77%、91.99%和87.93%,體現(xiàn)出算法對(duì)車輛檢測(cè)的優(yōu)越性。最后利用CamShift算法對(duì)特定車輛進(jìn)行跟蹤,并對(duì)后續(xù)圖像中CamShift算法跟蹤窗口進(jìn)行檢測(cè),實(shí)現(xiàn)特定車輛檢測(cè)與跟蹤,體現(xiàn)了Haar-like分類器算法結(jié)合CamShift算法的實(shí)時(shí)性,證明了研究方法的正確性。