張曉青, 馬牧燕, 燕必希, 朱立夫
(北京信息科技大學(xué) 儀器科學(xué)與光電工程學(xué)院,北京 100192)
隨著車輛普及,交通系統(tǒng)中車輛的檢測和跟蹤已經(jīng)成為交通系統(tǒng)的研究重點[1]。目前道路信息的采集傳感器主要有激光雷達、紅外線和視覺傳感器等[2],而視覺傳感器由于其價格低廉、方法簡單和信息接收量豐富等優(yōu)勢,廣泛應(yīng)用于交通安全保障系統(tǒng)[3]。
基于視覺的車輛檢測方法主要有基于特征的車輛檢測[4]、基于運動的車輛檢測[5]、基于模型的車輛檢測[6]和基于機器學(xué)習(xí)的車輛檢測[7]等方法。而基于機器學(xué)習(xí)的車輛檢測方法魯棒性好,可以實現(xiàn)遮擋和背景干擾較大情況下的車輛檢測,因此受到廣泛的關(guān)注并且取得很好的成果。李子彥等[8]利用局部HOG特征對運動車輛進行檢測,該方法檢測效率較高、靈敏度好,但檢測的實時性較差,并且對距離較遠的車輛較難檢測。Roxana等[9]利用一類支持向量機(OC-SVM)分類來檢測運動車輛,該方法首先利用自適應(yīng)混合高斯模型檢測車輛區(qū)域,提取幾何特征并利用卡爾曼估計進行跟蹤,同樣該方法實時性差,檢測效果一般。Daniel等[10]基于Haar-like、LBP和HOG特征聯(lián)合的圖像分類器方法,利用立體模型對運動車輛進行檢測,但該方法算法復(fù)雜、檢測效率較差,僅適用于特定環(huán)境。Shaif等[11]利用Haar特征的分類器對車輛進檢測,該方法實時性好,但檢測效率一般。朱彬等[12]利用Haar特征和LBP特征分區(qū)域多分類器法對車輛進行檢測,該方法檢測效果好、實時性較強,但穩(wěn)定性一般。余小角等[13]利用Haar特征和AdaBoost算法對車輛進行檢測,可以有效檢測車輛,但檢測效率低。
本文提出一種改進Haar特征結(jié)合CamShift算法的特定車輛檢測跟蹤方法,利用傾斜45°特征與像素和的商計算Haar特征值,其次利用AdaBoost算法訓(xùn)練樣本得到分類器,并構(gòu)建特征樣本級聯(lián)分類器,利用獲得的特征級聯(lián)分類器對視頻圖像進行檢測,最后將檢測結(jié)果中的特定車輛外切矩形作為CamShift算法的初始窗口,并對該跟蹤窗口進行檢測,提高了車輛的檢測效率和實時性。
Haar-like分類器檢測目標是利用已知訓(xùn)練樣本的特征,與未知圖像的特征進行對比,實現(xiàn)目標的檢測。該方法經(jīng)典應(yīng)用是人臉檢測,一般使用兩個矩形特征,將白色與黑色區(qū)域像素和做差就可滿足檢測要求。
傳統(tǒng)Haar-like特征值有3種類型,即水平、垂直、對角線等特征,而對于車輛等目標具有隨機性、灰度圖像差值較大、背景灰度差值較小的目標,做差的方法造成弱分類器的檢測性能較差,使得強分類器在級聯(lián)時需要大量的弱分類器。因此,提出利用擴展之后的45°特征,并將黑白區(qū)域的像素和做除法,求得改進Haar特征,利用該特征來進行檢測,增強弱分類器檢測性能。擴展后特征如圖1所示。

圖1 擴展之后的特征
圖像中Haar-like特征值數(shù)量遠超過像素的數(shù)量,因此,可利用積分圖計算Haar-like特征值,提高圖像信號特征的計算效率。車輛的特征可以由一些簡單的矩形特征和傾斜45°邊緣特征進行描述,如圖2所示。車輛的花色區(qū)域比純色區(qū)域顏色深,因此可以利用傾斜45°邊緣特征檢測識別車輛。





圖2 車輛Harr-Like特征圖
積分圖只需要對圖像遍歷一次就可以求出圖像中任意坐標點(x,y)左上角所有像素和,
(1)
式中:ii(x,y)表示積分圖;i(x′,y′)為原始圖像的灰度值。其積分圖的計算模型如圖3所示。圖中:A(x,y)表示點(x,y)的積分圖;s(x,y)表示點(x,y)的y方向所有原始圖像像素之和。其表達式如式:
s(x,y)=s(x,y-1)+i(x,y)
(2)
ii(x,y)=ii(x-1,y)+s(x,y)
(3)
點(x,y)的積分圖是圖3中陰影部分所有元素和的數(shù)組,因此對于陰影區(qū)域像素和的計算,僅僅作4次數(shù)組計算檢索,就可以得到圖像像素和。

圖3 點坐標的積分圖
對于任意區(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)
對于兩個區(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ū)域進行45°旋轉(zhuǎn)得到傾斜45°矩形特征,如圖6所示。


圖6 傾斜45°邊緣特征
對于積分圖像內(nèi)一點(x,y),旋轉(zhuǎn)積分圖像
對于任意旋轉(zhuǎn)矩陣B(x,y,h,w,45°),假設(shè)區(qū)域的邊緣長度為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)
可以看到,通過對矩形端點積分圖的運算,就可求得車輛傾斜45°圖像信號的特征值。
AdaBoost算法本身能夠?qū)W(xué)習(xí)獲得的弱分類器進行自適應(yīng)調(diào)整[14],按照一定的權(quán)重組合構(gòu)成最終檢測的強分類器。AdaBoost算法主要有兩部分[15]:①弱學(xué)習(xí)算法,該算法的識別效果僅僅略高于隨機識別的效果;②強學(xué)習(xí)算法,該算法可以實現(xiàn)理想的識別效果,并能夠在預(yù)期時間內(nèi)完成。該算法利用訓(xùn)練集中樣本分類的準確度和整體分類的準確度確定權(quán)重,增加或減少分類的樣本權(quán)重,可以準確劃分最終分類結(jié)果。AdaBoost算法原理如圖7所示,利用AdaBoost算法將白色和黑色進行分類。

(a)

(b)

(c)

(d)

(e)

(f)
圖7 AdaBoost分類原理
在圖7(a)中存在錯誤的分類樣本,因此,必須增加錯誤分類中小球的權(quán)重,如圖7(b)所示;再次分類時,主要針對權(quán)重較大的小球類進行分類,如圖7(c)所示;同理,圖7(d)為增加圖7(c)中錯誤分類小球權(quán)重的分類圖,圖7(e)為重新分類的結(jié)果,圖7(f)為圖7(a)、圖7(c)和圖7(e)3個弱分類器訓(xùn)練之后的最終的強分類器。
在車輛檢測過程中,一般用多尺度的檢測窗口進行遍歷檢測圖像,而現(xiàn)實中檢測的大部分窗口都是非車輛,造成檢測耗時,因此通過級聯(lián)分類器使得檢測窗口盡量包含車輛檢測區(qū)域,提高檢測效率。級聯(lián)分類器就是將若干強分類器按照復(fù)雜度排列成順序結(jié)構(gòu),對其中某一個分類器后續(xù)的訓(xùn)練樣本,通過和其之前所有分類器分類的樣本進行比較,最后形成級聯(lián)分類器。車輛級聯(lián)分類器的級聯(lián)過程如圖8所示。
圖8中,強分類器1~N體現(xiàn)了級聯(lián)分類器的結(jié)構(gòu),提取所有檢測窗口,對每層強分類進行比較,當(dāng)滿足參數(shù)要求即為檢測目標并進行下一步檢測;如果不滿足則為負樣本,通過調(diào)節(jié)樣本的檢測度參數(shù),使其對車輛具有較高的檢測精度,同時確保正樣本車輛繼續(xù)到下一級分類器中繼續(xù)判斷。最后經(jīng)過設(shè)定層數(shù),判斷每層強分類器,最終確定被檢測車輛。

圖8 車輛分類器級聯(lián)過程
根據(jù)分類器方法檢測到運動車輛,由于實際檢測中車輛數(shù)目和位置的不同,檢測圖像清晰度和窗口大小的不同,導(dǎo)致分類器跟蹤算法難以對特定車輛進行跟蹤,并且窗口太大,對視頻圖像信號的跟蹤難以達到實時性要求。利用CamShift算法和上述分類器結(jié)合的方法,將分類器檢測到的車輛信號作為CamShift算法的初始窗口,然后對后續(xù)圖像窗口進行跟蹤,實現(xiàn)了CamShift自主選擇窗口的效果,并在下次分類器檢測時只針對此跟蹤窗口進行檢測,大大提高檢測效率。
車輛檢測跟蹤過程中,隨著天氣和車輛位置的變化,使得運動車輛在圖像中的顏色受到影響,導(dǎo)致檢測與跟蹤受到嚴重干擾。RGB顏色空間容易受到環(huán)境的影響,因此,將其轉(zhuǎn)換為HSV顏色空間,該空間中利用單通道對圖像進行處理將不會受到光照等造成的影響,其中h為色調(diào)、s為飽和度、v為明度。其轉(zhuǎn)換公式如下:
v=max
根據(jù)HSV顏色模型,對檢測到車輛的h分量作直方圖,統(tǒng)計不同h分量值像素的概率,并利用其替換像素的值,最終得到顏色概率分布圖實現(xiàn)反向投影。
MeanShift算法通過計算目標區(qū)和候選區(qū)內(nèi)像素的特征值概率得到目標模型和候選模型;其次利用初始幀模型和當(dāng)前幀模型的相似性,進行迭代;最終收斂到真實位置,實現(xiàn)目標跟蹤。
MeanShift算法于車輛的跟蹤分為4個步驟:
(1) 根據(jù)被檢測到的車輛確定顏色概率分布圖,選定車輛的搜索窗口。
(2) 計算該窗口的零階距
一階矩
搜索窗口的質(zhì)心
xc=M10/M00,yc=M01/M00
(4) 移動搜索窗口的位置到質(zhì)心的位置,如果移動距離大于設(shè)定的閾值距離,重復(fù)上述操作;如果移動距離小于設(shè)定的閾值距離,則停止計算。
由于MeanShift算法在跟蹤過程中搜索窗口不能調(diào)整大小,無法跟蹤形變的目標,而CamShift算法是對該算法的一種改進,可以隨時改變搜索窗口的大小,實現(xiàn)對目標的跟蹤,CamShift算法的具體過程如下:
當(dāng)MeanShift算法計算第(2)和第(3)步的同時,通過計算二階矩可求得目標長短軸和方向角:
(9)
令:
則圖像目標的長短軸和方向角為:
(10)
式中:l為長軸;w為短軸;θ為方向角。如果第(4)步移動窗口距離小于閾值,則得到目標區(qū)域大小(w,l),即為當(dāng)前幀的位置和大小,并返回第(1)步再次重復(fù)搜索。
實驗基于VS2010和OpenCV2.4.9實現(xiàn)車輛正、負樣本訓(xùn)練集的獲取分割、級聯(lián)分類器的訓(xùn)練和最終的檢測試驗,實驗流程圖如圖9所示。圖中,左邊虛線框為離線處理,利用相機采集正樣本車輛和負樣本公路圖像做訓(xùn)練集,然后訓(xùn)練獲得分類器;右邊虛線框為實時在線處理,利用相機實時獲得圖像,并進行相同處理,并與離線處理分類器作對比來檢測車輛。

圖9 車輛檢測實驗流程圖
檢測車輛樣本獲取:Haar特征訓(xùn)練集的制作中,正負樣本比例為1∶3,根據(jù)車輛在公路和街區(qū)中的行駛環(huán)境,拍攝車輛圖片1 500張,部分圖片如圖10所示。










圖10 車輛部分圖
根據(jù)拍攝車輛圖像構(gòu)建正樣本訓(xùn)練集,并對樣本進行歸一化處理,調(diào)整大小為20×20像素,處理后圖像如圖11所示。









負樣本中,利用不存在正樣本的任何圖像都可以進行訓(xùn)練集的建立,然而,由于車輛的行駛環(huán)境,利用環(huán)境背景能更好地體現(xiàn)出訓(xùn)練集的魯棒性。因此,采用公路和街區(qū)環(huán)境作為負樣本,負樣本部分圖像如圖12所示,尺寸不小于正樣本尺寸,數(shù)量不低于正樣本的3倍,最后進行歸一化處理。













圖12 負樣本部分圖
負樣本數(shù)量是4 500張不包含正樣本的環(huán)境背景圖,歸一化為20×20像素大小的訓(xùn)練樣本,完成負樣本訓(xùn)練集的建立。
用車輛正負樣本集對標準Haar-like分類器算法和改進的Haar-like分類器算法分別進行實驗。為了驗證改進的Haar-like算法的有效性,對同一識別場景中,早晨、中午和傍晚3種不同環(huán)境的交通視頻進行檢測測試,然后對其實驗結(jié)果進行對比,對比結(jié)果如圖13所示。

圖13 檢測對比圖
圖13中,第1行為標準Haar-like分類器算法,第2行為改進的Haar-like分類器算法。從圖中可以看到,相對于標準Haar-like分類器算法,使用改進的Haar-like分類器算法能更好地檢測運動車輛,并且每天3個時刻,改進后的算法檢測具有良好的檢測效果。
為了對實驗結(jié)果中識別率和誤識別率進行對比,采用識別率TR(True Rate)和誤識別率FR(False Rate)對檢測結(jié)果進行評價,
(11)
式中:TD表示正確檢測到車輛的個數(shù);FD表示將非車輛檢測為車輛的個數(shù);FN表示未檢測到的車輛個數(shù)。對生活場景中1 000幅960×720的像素車輛圖像進行檢,每幅圖像檢測時間約為24 ms,并對標準Haar分類器法和改進Haar分類器法的檢測率進行對比,對比結(jié)果如表1所示。
由表1可見,早晨和中午時,車輛檢測效率較高,傍晚時刻由于光照等條件的影響,檢測效率略低。與標準的Haar-like分類器算法相比,改進的Haar-like分類器算法正確檢測車輛數(shù)目更多,而且對于不同時間的檢測,本文提出的算法識別效果也更為出色。
其次在檢測到的車輛窗口中,選擇目標車輛作為初始窗口,然后利用CamShift算法對該車輛進行跟蹤,并在后續(xù)跟蹤窗口對車輛進行檢測,其跟蹤檢測效果如圖14所示。

表1 車輛檢測識別率和誤識別率檢測對比 %

圖14 改進Haar-like分類器聯(lián)合CamShift算法車輛跟蹤圖
圖14中,首先利用改進Haar-like分類器對視頻中車輛進行識別,當(dāng)在視頻第274幀時,選擇其中的某一特定車輛作為被跟蹤對象,如圖中第288幀所示。然后對該車輛利用CamShift算法進行后續(xù)跟蹤,最后對跟蹤窗口進行車輛檢測,如圖中第323幀、第338幀和第354幀所示,直到車輛繼續(xù)前行到達第372幀,目標距離較遠時,依然能夠繼續(xù)跟蹤車輛,并且檢測時間只有15 ms,大大提高檢測效率。
因此,利用信號的改進Haar-like特征和AdaBoost算法,能夠?qū)囕v進行有效檢測;利用CamShift算法跟蹤車輛,對后續(xù)跟蹤窗口進行車輛檢測,可以有效地減少車輛檢測搜索窗口,提高檢測效率。
首先利用車輛信號改進的Haar-like特征和AdaBoost算法,對交通車輛進行檢測并與標準Haar-like分類器算法進行對比,結(jié)果表明改進算法對車輛在早晨、中午和傍晚的識別率分別為91.77%、91.99%和87.93%,體現(xiàn)出算法對車輛檢測的優(yōu)越性。最后利用CamShift算法對特定車輛進行跟蹤,并對后續(xù)圖像中CamShift算法跟蹤窗口進行檢測,實現(xiàn)特定車輛檢測與跟蹤,體現(xiàn)了Haar-like分類器算法結(jié)合CamShift算法的實時性,證明了研究方法的正確性。