本發(fā)明涉及一種交通場景下的運(yùn)動(dòng)車輛跟蹤方法。
背景技術(shù):
隨著城市化進(jìn)程不斷加快,交通運(yùn)輸產(chǎn)業(yè)的發(fā)展和汽車保有量的增加給人們工作出行帶來了極大的便利。但是問題也接踵而來,城市道路建設(shè)嚴(yán)重滯后,城市交通管理經(jīng)驗(yàn)不足,道路網(wǎng)的通過能力無法滿足交通量增長的需求。交通阻塞日趨嚴(yán)重、交通事故頻繁發(fā)生,儼然已經(jīng)成為世界各國所面臨的普遍難題。
為了解決城市交通中存在的種種問題,滿足不斷增長的交通需求,傳統(tǒng)的解決方案是通過不斷修建更多道路,加強(qiáng)城市交通基礎(chǔ)設(shè)施建設(shè)。這雖然在一定程度上緩解了問題的發(fā)生,保障了城市交通順利通暢,但畢竟可供擴(kuò)建的道路資源是有限的,這種做法很難從本質(zhì)上解決目前遇到的問題,各類交通事故仍在不斷發(fā)生。隨著科學(xué)技術(shù)的不斷發(fā)展和創(chuàng)新,人們開始考慮利用計(jì)算機(jī)視覺等技術(shù)來改善現(xiàn)有的城市道路交通,構(gòu)建起更加便捷、高效、安全、暢通的交通管理系統(tǒng),從而顯著提高了交通網(wǎng)絡(luò)的運(yùn)輸和管理能力。智能交通系統(tǒng)便是在這種形勢下發(fā)展起來的。
智能交通系統(tǒng)(IntelligentTransportationSystem-ITS)是當(dāng)今世界交通運(yùn)輸發(fā)展的熱點(diǎn)和前沿。智能交通領(lǐng)域的研究主要包括車輛檢測、車輛跟蹤、車輛信息提取以及車輛行為分析等幾大方面,而車輛檢測與跟蹤作為智能交通系統(tǒng)的核心環(huán)節(jié),為后續(xù)的車輛信息提取以及行為分析提供了重要保證。
車輛檢測與跟蹤技術(shù)的主要目的就是準(zhǔn)確提取視頻圖像中的車輛目標(biāo),利用車輛的特征信息來實(shí)現(xiàn)匹配,確定目標(biāo)在每一幀圖像中的位置,并提供運(yùn)動(dòng)軌跡作為車輛行為分析的依據(jù)。然而,實(shí)際交通場景十分復(fù)雜,普遍存在著人車混雜、交通阻塞、光線變化等多種干擾因素,這給車輛檢測與跟蹤帶來了極大的困難。車輛檢測與跟蹤的主要難點(diǎn)在于以下幾個(gè)方面:
1.人車混雜。在市中心、小區(qū)等人流較多的路段,來往行人會(huì)對車輛的檢測與跟蹤造成很大干擾,尤其在上下班高峰期,紅綠燈路口經(jīng)常會(huì)出現(xiàn)人車混雜的現(xiàn)象。如何有效地區(qū)分行人與車輛、避免人流干擾是目前面臨的主要問題之一。
2.車輛遮擋。高速公路上的車流速度較快,車與車間距較大,因此車輛檢測與跟蹤相對容易。但是在市區(qū)路段車速普遍較慢,尤其在車流高峰期,很容易出現(xiàn)交通阻塞的情況,這時(shí)車輛之間會(huì)存在明顯的遮擋現(xiàn)象,這給車輛檢測與跟蹤帶來很大挑戰(zhàn)。
3.光照變化。交通場景下的光照條件隨時(shí)間變化顯著,由于光照變化而產(chǎn)生的車輛陰影會(huì)對檢測產(chǎn)生較大的影響,尤其在白天、夜晚不同光照條件下車輛的特征信息差異明顯。有效地解決光線變化的問題,實(shí)現(xiàn)全天候地穩(wěn)定工作,是對交通場景下車輛檢測與跟蹤的基本要求。
4.算法復(fù)雜度。實(shí)際應(yīng)用中電子警察系統(tǒng)對算法的實(shí)時(shí)性要求較高,算法不能過于復(fù)雜。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題是提供一種交通場景下的運(yùn)動(dòng)車輛跟蹤方法。
交通場景下的運(yùn)動(dòng)車輛跟蹤方法,包括以下步驟:
S1:通過攝像頭進(jìn)行前端視頻圖像采集,對圖像進(jìn)行預(yù)處理,并對運(yùn)動(dòng)車輛進(jìn)行目標(biāo)檢測作為跟蹤對象;
S2:利用Kalman濾波器對跟蹤目標(biāo)進(jìn)行運(yùn)動(dòng)估計(jì),通過建立運(yùn)動(dòng)狀態(tài)模型,根據(jù)被跟蹤目標(biāo)的歷史運(yùn)動(dòng)信息,預(yù)測其在當(dāng)前幀中的位置;
S3:Camshift目標(biāo)跟蹤,根據(jù)跟蹤目標(biāo)在前一幀中保存的顏色直方圖,在Kalman濾波器給出的預(yù)測范圍內(nèi)計(jì)算反向投影,利用Camshift算法搜索運(yùn)動(dòng)目標(biāo);
S4:標(biāo)記出運(yùn)動(dòng)目標(biāo)后,判斷目標(biāo)位置是否發(fā)生重合,如果存在目標(biāo)遮擋的現(xiàn)象則僅更新目標(biāo)的位置信息,不更新直方圖,如果沒有遮擋情況則同時(shí)更新運(yùn)動(dòng)狀態(tài)和相應(yīng)直方圖;
S5:將更新后的目標(biāo)作為下一幀的跟蹤對象,重復(fù)執(zhí)行上述過程。
進(jìn)一步的,所述運(yùn)動(dòng)車輛目標(biāo)檢測具體方法如下:
S1-1:從視頻圖像中提取大量的車輛圖像作為正樣本,非車輛圖像作為負(fù)樣本,從訓(xùn)練樣本中提取Haar-like矩形特征作為訓(xùn)練的特征集;
S1-2:假設(shè)樣本空間為X,樣本表示為Y={0,1},其中0表示非車輛,1表示車輛。假設(shè)Haar-like特征總數(shù)為N,wt,j代表第t輪循環(huán)時(shí)第i個(gè)樣本的權(quán)重;
S1-3:強(qiáng)分類器的訓(xùn)練方法如下:
(1)對一系列訓(xùn)練樣本(x1,y1),(x2,y2),...,(xn,yn),假設(shè)樣本庫中n個(gè)樣本為均勻分布,則樣本權(quán)重wt,j=1/n;
(2)Fort=1toT:
1)歸一化樣本權(quán)重分布,
2)對每個(gè)特征j,在給定的權(quán)重wt,j下訓(xùn)練弱分類器ht,j(x),計(jì)算分類錯(cuò)誤率:
3)從中選擇最優(yōu)的弱分類器ht(x):令則ht(x)=ft,k(x),且對樣本集的分類錯(cuò)誤率為εt=εt,k;
4)根據(jù)上一輪的分類錯(cuò)誤率更新樣本權(quán)重:
其中,ei=0代表分類正確,而ei=1代表分類錯(cuò)誤,最終得到的強(qiáng)分類器為:其中,
S1-4:對待檢測圖像進(jìn)行不同尺度窗口的掃描,最終輸出所有檢測到的車輛目標(biāo)。
進(jìn)一步的,利用Kalman濾波器對跟蹤目標(biāo)進(jìn)行運(yùn)動(dòng)估計(jì)的具體方法如下:
S2-1:Kalman濾波算法模型包括狀態(tài)方程和觀測方程:
S(n)=A(n)S(n-1)+W(n-1),
X(n)=C(n)S(n)+V(n),
其中,S(n)與X(n)分別是n時(shí)刻的狀態(tài)向量和觀測向量,A(n)是狀態(tài)轉(zhuǎn)移矩陣,C(n)是觀測矩陣,W(n)和V(n)是狀態(tài)噪聲以及觀測噪聲,它們都是互不相關(guān)且均值為0的高斯白噪聲;
S2-2:將車輛目標(biāo)矩形的中心點(diǎn)作為預(yù)測對象,建立運(yùn)動(dòng)目標(biāo)中心點(diǎn)的運(yùn)動(dòng)狀態(tài)向量Xx和Xy:
其中,sx,sy,vx,vy,ax,ay分別代表車輛目標(biāo)在水平和垂直方向上的位置、速度與加速度;
S2-3:則水平方向上跟蹤目標(biāo)的中心的運(yùn)動(dòng)方程為:
其中,sx(n),vx(n),ax(n)表示n時(shí)刻目標(biāo)中心點(diǎn)的位置、速度和加速度,ox(n-1)是白噪聲;
把上式改寫為矩陣形式:
能夠觀測到的運(yùn)動(dòng)狀態(tài)分量只有運(yùn)動(dòng)目標(biāo)的位置:
S2-4:對比式S2-1中公式Kalman濾波器的狀態(tài)方程和觀測方程,可以得到跟蹤目標(biāo)中心點(diǎn)的狀態(tài)方程和觀測方程分別為:
其中,C(n)=[1 0 0]。
進(jìn)一步的,Camshift算法的具體流程如下:
S3-1:初始化搜索窗口,使需要跟蹤的目標(biāo)處于搜索窗口內(nèi);
S3-2:在HSV空間上提取窗口對應(yīng)位置的H分量,得到H分量直方圖,根據(jù)H分量直方圖計(jì)算整個(gè)跟蹤區(qū)域的顏色概率分布圖,即反向投影圖;
S3-3:在反向投影圖中選取大小與初始窗口相同的搜索窗口;
S3-4:根據(jù)搜索窗口中像素總和S調(diào)整窗口的大小,并將窗口中心移動(dòng)到質(zhì)心的位置;
S3-5:判斷是否收斂,如果收斂則輸出質(zhì)心(x,y),否則重復(fù)步驟S3-3和S3-4直到收斂或達(dá)到最大迭代次數(shù);
S3-6:將最終得到的搜索窗口的位置和大小為下一幀的初始窗口,繼續(xù)執(zhí)行循環(huán)。
本發(fā)明的有益效果是:
1)本發(fā)明的基于Haar-like特征和Adaboost分類器的車輛檢測算法可以通過豐富訓(xùn)練樣本得到一個(gè)可靠的車輛分類器,較好地適應(yīng)了交通場景中的復(fù)雜變化,具有極高的檢測率以及較低的虛警率,可以滿足電子警察系統(tǒng)的實(shí)際工作要求;
2)本發(fā)明采用了將基于目標(biāo)顏色信息的Camshift跟蹤方法與基于運(yùn)動(dòng)信息預(yù)測的Kalman跟蹤方法相結(jié)合的思路來實(shí)現(xiàn)車輛目標(biāo)的跟蹤,具有較好的跟蹤效果。
具體實(shí)施方式
以下具體實(shí)施例對本發(fā)明作進(jìn)一步闡述,但不作為對本發(fā)明的限定。
交通場景下的運(yùn)動(dòng)車輛跟蹤方法,包括以下步驟:
S1:通過攝像頭進(jìn)行前端視頻圖像采集,對圖像進(jìn)行預(yù)處理,并對運(yùn)動(dòng)車輛進(jìn)行目標(biāo)檢測作為跟蹤對象;
S2:利用Kalman濾波器對跟蹤目標(biāo)進(jìn)行運(yùn)動(dòng)估計(jì),通過建立運(yùn)動(dòng)狀態(tài)模型,根據(jù)被跟蹤目標(biāo)的歷史運(yùn)動(dòng)信息,預(yù)測其在當(dāng)前幀中的位置;
S3:Camshift目標(biāo)跟蹤,根據(jù)跟蹤目標(biāo)在前一幀中保存的顏色直方圖,在Kalman濾波器給出的預(yù)測范圍內(nèi)計(jì)算反向投影,利用Camshift算法搜索運(yùn)動(dòng)目標(biāo);
S4:標(biāo)記出運(yùn)動(dòng)目標(biāo)后,判斷目標(biāo)位置是否發(fā)生重合,如果存在目標(biāo)遮擋的現(xiàn)象則僅更新目標(biāo)的位置信息,不更新直方圖,如果沒有遮擋情況則同時(shí)更新運(yùn)動(dòng)狀態(tài)和相應(yīng)直方圖;
S5:將更新后的目標(biāo)作為下一幀的跟蹤對象,重復(fù)執(zhí)行上述過程。
所述運(yùn)動(dòng)車輛目標(biāo)檢測具體方法如下:
S1-1:從視頻圖像中提取大量的車輛圖像作為正樣本,非車輛圖像作為負(fù)樣本,從訓(xùn)練樣本中提取Haar-like矩形特征作為訓(xùn)練的特征集;
S1-2:假設(shè)樣本空間為X,樣本表示為Y={0,1},其中0表示非車輛,1表示車輛。假設(shè)Haar-like特征總數(shù)為N,wt,j代表第t輪循環(huán)時(shí)第i個(gè)樣本的權(quán)重;
S1-3:強(qiáng)分類器的訓(xùn)練方法如下:
(1)對一系列訓(xùn)練樣本(x1,y1),(x2,y2),...,(xn,yn),假設(shè)樣本庫中n個(gè)樣本為均勻分布,則樣本權(quán)重wt,j=1/n;
(2)Fort=1toT:
1)歸一化樣本權(quán)重分布,
2)對每個(gè)特征j,在給定的權(quán)重wt,j下訓(xùn)練弱分類器ht,j(x),計(jì)算分類錯(cuò)誤率:
3)從中選擇最優(yōu)的弱分類器ht(x):令則ht(x)=ft,k(x),且對樣本集的分類錯(cuò)誤率為εt=εt,k;
4)根據(jù)上一輪的分類錯(cuò)誤率更新樣本權(quán)重:
其中,ei=0代表分類正確,而ei=1代表分類錯(cuò)誤,最終得到的強(qiáng)分類器為:其中,
S1-4:對待檢測圖像進(jìn)行不同尺度窗口的掃描,最終輸出所有檢測到的車輛目標(biāo)。
利用Kalman濾波器對跟蹤目標(biāo)進(jìn)行運(yùn)動(dòng)估計(jì)的具體方法如下:
S2-1:Kalman濾波算法模型包括狀態(tài)方程和觀測方程:
S(n)=A(n)S(n-1)+W(n-1),
X(n)=C(n)S(n)+V(n),
其中,S(n)與X(n)分別是n時(shí)刻的狀態(tài)向量和觀測向量,A(n)是狀態(tài)轉(zhuǎn)移矩陣,C(n)是觀測矩陣,W(n)和V(n)是狀態(tài)噪聲以及觀測噪聲,它們都是互不相關(guān)且均值為0的高斯白噪聲;
S2-2:將車輛目標(biāo)矩形的中心點(diǎn)作為預(yù)測對象,建立運(yùn)動(dòng)目標(biāo)中心點(diǎn)的運(yùn)動(dòng)狀態(tài)向量Xx和Xy:
其中,sx,sy,vx,vy,ax,ay分別代表車輛目標(biāo)在水平和垂直方向上的位置、速度與加速度;
S2-3:則水平方向上跟蹤目標(biāo)的中心的運(yùn)動(dòng)方程為:
其中,sx(n),vx(n),ax(n)表示n時(shí)刻目標(biāo)中心點(diǎn)的位置、速度和加速度,ox(n-1)是白噪聲;
把上式改寫為矩陣形式:
能夠觀測到的運(yùn)動(dòng)狀態(tài)分量只有運(yùn)動(dòng)目標(biāo)的位置:
S2-4:對比式S2-1中公式Kalman濾波器的狀態(tài)方程和觀測方程,可以得到跟蹤目標(biāo)中心點(diǎn)的狀態(tài)方程和觀測方程分別為:
其中,C(n)=[1 0 0]。
Camshift算法的具體流程如下:
S3-1:初始化搜索窗口,使需要跟蹤的目標(biāo)處于搜索窗口內(nèi);
S3-2:在HSV空間上提取窗口對應(yīng)位置的H分量,得到H分量直方圖,根據(jù)H分量直方圖計(jì)算整個(gè)跟蹤區(qū)域的顏色概率分布圖,即反向投影圖;
S3-3:在反向投影圖中選取大小與初始窗口相同的搜索窗口;
S3-4:根據(jù)搜索窗口中像素總和S調(diào)整窗口的大小,并將窗口中心移動(dòng)到質(zhì)心的位置;
S3-5:判斷是否收斂,如果收斂則輸出質(zhì)心(x,y),否則重復(fù)步驟S3-3和S3-4直到收斂或達(dá)到最大迭代次數(shù);
S3-6:將最終得到的搜索窗口的位置和大小為下一幀的初始窗口,繼續(xù)執(zhí)行循環(huán)。