余江浩+王林
摘要:提出改進(jìn)的Camshift算法結(jié)合Kalman濾波來檢測跟蹤交通擁擠情況下的車輛。Camshift是基于顏色的目標(biāo)跟蹤,當(dāng)相同顏色車輛并排行駛時,Camshift算法容易丟失目標(biāo), Camshift結(jié)合kalman濾波的目標(biāo)跟蹤運(yùn)用在道路交通檢測也因?yàn)闉楸尘安粩喔露y以定位車輛。本文提出用改進(jìn)自適應(yīng)多高斯模型來對背景進(jìn)行更新,進(jìn)而再結(jié)合kalman濾波對運(yùn)動目標(biāo)估計(jì)預(yù)測來提高Camshift跟蹤定位。實(shí)驗(yàn)結(jié)果表明改進(jìn)后的算法跟蹤定位車輛效果更好。
關(guān)鍵詞:OpenCV;車輛跟蹤;Camshift算法;kalman濾波
中圖分類號:TP18 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)08-0162-02
隨著大數(shù)據(jù)、互聯(lián)網(wǎng)快速發(fā)展,產(chǎn)生了海量的數(shù)據(jù),越來越多城市道路、高速公路上的網(wǎng)絡(luò)攝像頭視頻數(shù)據(jù)越來越多。越來越多研究學(xué)者投入對道路交通車輛跟蹤識別。Yilmaz等學(xué)者[1]、Wang[2]和Wu等學(xué)者[3]從單網(wǎng)絡(luò)探頭和多攝像機(jī)跟蹤方面對目標(biāo)跟蹤算法進(jìn)行較為詳細(xì)的研究,Huang等學(xué)者[4]、Andr-eopoulos等學(xué)者[5]、Zhang等人[6]對圖像中的目標(biāo)分類識別算法進(jìn)行了研究。通過對道路上車輛的速度研究,從相似車輛快速行駛到擁擠狀態(tài)下的緩慢行駛。提出一種對數(shù)型加權(quán)方法來改進(jìn)kalman濾波算法對目標(biāo)的預(yù)測,提高對目標(biāo)位置預(yù)測的準(zhǔn)確率,進(jìn)而改進(jìn)修正Camshift預(yù)測目標(biāo)的位置,得到更好的車輛跟蹤效果。
1 傳統(tǒng)的車輛跟蹤算法
目前的車輛跟蹤算法大都是改進(jìn)的Kalman算法、粒子算法、均值漂移(Me-anshift)算法,本文采用改進(jìn)后的Camshift結(jié)合kalman算法,能提高對運(yùn)動車輛的實(shí)時跟蹤,對速度時快時慢、車輛相似顏色和復(fù)雜背景下都能很好地進(jìn)行車輛跟蹤。
1.1 Kalman濾波
Kalman濾波是一種線性濾波與估計(jì)預(yù)測方法。Kalman濾波分為2個步驟[7],預(yù)測(predict)和修正(correct)。預(yù)測是基于上一時刻狀態(tài)對下一時刻估計(jì)當(dāng)前時刻狀態(tài),而修正則是綜合當(dāng)前時刻的估計(jì)狀態(tài)與實(shí)際觀測狀態(tài),估計(jì)出最優(yōu)的狀態(tài)。預(yù)測與修正的過程如下:
預(yù)測:
2 Camshift算法
Camshift算法[8]實(shí)際是自適應(yīng)MeanShift的算法。它首次由Gary提出和應(yīng)用在人臉識別。由于它是利用顏色的概率信息進(jìn)行的跟蹤,使得它的運(yùn)行效率比較高。Camshift算法的過程由下面步驟組成[15]:
(1)根據(jù)搜索車輛確定初始車輛及其區(qū)域;
(2)計(jì)算零矩陣,x和y的一階矩陣:
(3)確定車輛中心:(x0,y0);
(4)設(shè)定搜索區(qū)域顏色概率分布值,迭代搜索,直到其收斂或達(dá)到最大迭代次數(shù)。并保存零次矩;重復(fù)以上步驟。
3 基于非線性加權(quán)的Kalman濾波結(jié)合Camshift的車輛跟蹤
車輛跟蹤時,目標(biāo)車輛與其他車輛沒有形成大連通域,即使有噪聲干擾,Camshift算法也能較好地對車輛進(jìn)行實(shí)時跟蹤定位,但是當(dāng)交通擁堵形成大連通域后再分開或者相同顏色的車同時擁擠通過時,此算法不能準(zhǔn)確地分辨待跟蹤的車輛,本文首先使用混合高斯模型進(jìn)行動態(tài)背景更新,同時引入具有計(jì)算量小、可實(shí)時計(jì)算特點(diǎn)的kalman濾波,利用非線性加權(quán)的二維Kalman濾波算法預(yù)測目標(biāo)中心位置,進(jìn)而不斷修正Camshift的預(yù)測目標(biāo)質(zhì)心。下面是本文提出的一種線性加權(quán),權(quán)值是非線性表達(dá)式。
4 實(shí)驗(yàn)結(jié)果及分析
實(shí)驗(yàn)表明,其他車輛目標(biāo)干擾情況下,特別是當(dāng)目標(biāo)車輛顏色相近超車時,只用Cam-shift算法跟蹤失敗,引入改進(jìn)的Kalman濾波算法后,增強(qiáng)了跟蹤的穩(wěn)定性。圖2和圖3是引入改進(jìn)Kalman濾波結(jié)合Camshift算法前后的對比實(shí)驗(yàn)效果,從用矩形框鎖定跟蹤的目標(biāo)可以看出,采用Camshift算法時搜索窗口較大,車輛較多時形成連通域后再分開時,目標(biāo)車輛跟蹤容易失敗,跟蹤窗口容易跳動。本文對算法的改進(jìn)后,成功實(shí)現(xiàn)了車輛跟蹤,排除了其他車道的干擾,且搜索窗口比較小,丟失后能二次搜索或者擴(kuò)大區(qū)域搜索。
文中以Camshift算法輸出的質(zhì)心位置為測量信號,采用Kalman濾波算法校正目標(biāo)中心位置,克服了Camshift算法的缺陷。改進(jìn)后的Camshift算法結(jié)合Kalman 濾波能實(shí)時、準(zhǔn)確地跟蹤車輛,能有效地處理干擾和目標(biāo)部分被遮擋等問題,為下一步的行為分析作基礎(chǔ)。本文介紹了OpenCV函數(shù)庫,搭建VS2013+OpenCV2.4.9開發(fā)平臺。 提取單幀視頻圖像或者攝像頭實(shí)時圖像,采用各種算法對其進(jìn)行圖像預(yù)處理,并對處理效果進(jìn)行分析比較;綜合比較背景檢測幾種常用的方法,使用一種自適應(yīng)混合高斯模型背景檢測算法,在閉值選擇方面使用OTSU閉值算法,得到較為精確的運(yùn)動目標(biāo)背景。但是對于背景復(fù)雜或者目標(biāo)色度值很低的時候會出現(xiàn)跟丟的情況。由于研究時間和所學(xué)知識所限,我對本領(lǐng)域的相當(dāng)一些內(nèi)容了解還不夠透徹,仍有很多難題需要解決,如陰影的去除,目標(biāo)的重疊,以及目標(biāo)與背景色彩相近時的辨別,以及程序移植到嵌入式系統(tǒng)中的問題,同時程序本身也需要進(jìn)一步地修改完善。
參考文獻(xiàn):
[1] Kishore K, Mubarak K. Identification of 50 human action network video[J]. Computer vision and applications, 2013(5).
[2] 詹群峰. 基于OpenCV的視頻道路車輛檢測與跟蹤[D].福建:廈門大學(xué),2009.
[3] 黃凱奇,陳曉棠,康運(yùn)鋒,等.智能視頻監(jiān)控技術(shù)綜述[J].計(jì)算機(jī)學(xué)報,2015(6).
[4] 陳曉棠.非重疊場景下的跨攝像機(jī)目標(biāo)跟蹤研究[D].中國科學(xué)院,2013.
[5] Wang Heng, Cordelia Schmid, Liu Chenglin. Dense motion trajectory and moving boundary descriptor for motion recognition. International Journal of computer vision,2013(1).