郭克友,王藝偉,郭曉麗
(北京工商大學(xué)材料與機(jī)械工程學(xué)院,北京 100048)
結(jié)合卡爾曼濾波器噪聲分析的車道線檢測(cè)跟蹤算法
郭克友,王藝偉,郭曉麗
(北京工商大學(xué)材料與機(jī)械工程學(xué)院,北京100048)
使用卡爾曼濾波對(duì)視頻序列圖像中的具體信息進(jìn)行跟蹤的研究目前是跟蹤方向的一個(gè)熱點(diǎn);但是在處理卡爾曼濾波跟蹤過程中的過程噪聲和測(cè)量噪聲,大部分研究普遍采用的是初始賦值;通過不斷的調(diào)整參數(shù),達(dá)到較好的跟蹤效果;但是這樣做不但沒有遵循原始數(shù)據(jù)的規(guī)律,同時(shí)調(diào)整參數(shù)是一項(xiàng)耗時(shí)的工作;基于這個(gè)原因,提出了一種對(duì)卡爾曼濾波的過程噪聲和測(cè)量噪聲進(jìn)行預(yù)估計(jì)的方法并將其應(yīng)用到車道線跟蹤過程中;通過對(duì)一部分離線數(shù)據(jù)進(jìn)行處理,可以基本估計(jì)出系統(tǒng)的噪聲參數(shù);最后采用車道線跟蹤算法對(duì)論文中的方法進(jìn)行驗(yàn)證,實(shí)驗(yàn)證明,提出的參數(shù)估計(jì)方法在車道線的跟蹤過程中達(dá)到很好的效果,同時(shí)處理每幀的時(shí)間為50 ms左右,滿足了實(shí)時(shí)性的要求。
卡爾曼濾波;噪聲分析;車道線檢測(cè);B曲線;控制點(diǎn)
視頻圖像序列中目標(biāo)的檢測(cè)跟蹤是智能視覺監(jiān)控的重要課題,也是后續(xù)更高級(jí)處理的基礎(chǔ)??柭鼮V波以其對(duì)有限觀測(cè)數(shù)據(jù)的需要和通過遞推完成跟蹤的優(yōu)點(diǎn)得到了很多學(xué)者的青睞。其中也不乏有很多研究使用卡爾曼濾波進(jìn)行車道線檢測(cè)與跟蹤。但是大部分對(duì)卡爾曼濾波進(jìn)行應(yīng)用時(shí),噪聲的處理或者沒有明確的給出,或者是在跟蹤之前設(shè)定一個(gè)初始值,然后通過不斷的對(duì)參數(shù)進(jìn)行調(diào)整,以達(dá)到更好的跟蹤效果。武漢大學(xué)彭紅的論文《基于擴(kuò)展卡爾曼濾波器的車道線檢測(cè)算法》[1]中僅對(duì)噪聲做了簡(jiǎn)要的介紹,并沒有對(duì)具體的賦值進(jìn)行介紹。電子科技大學(xué)的馬超在其論文《基于單目視覺的車道偏離預(yù)警系統(tǒng)設(shè)計(jì)》[2]中提到了卡爾曼濾波過程中參數(shù)的賦值問題,但是僅僅是賦值,沒有實(shí)際的分析所賦的數(shù)值是如何通過分析得到的。文章提出一種結(jié)合卡爾曼濾波跟蹤過程中噪聲分析的車道線檢測(cè)跟蹤方法。能夠預(yù)先為跟蹤過程設(shè)定合理的跟蹤參數(shù)。
通過對(duì)采集的視頻進(jìn)行圖像預(yù)處理得到邊緣圖像后,設(shè)置四部分感興趣區(qū)域,在每個(gè)感興趣區(qū)域內(nèi)使用Hough變換檢測(cè)到直線[3],通過簡(jiǎn)化的CHEVP算法[4]找到擬合左右車道線的控制點(diǎn),同時(shí)使用卡爾曼濾波跟蹤對(duì)控制點(diǎn)進(jìn)行濾波[5],保證擬合的穩(wěn)定性,最后使用B曲線擬合并繪制車道線[6]。
1.1圖像預(yù)處理
對(duì)采集到的視頻幀首先進(jìn)行灰度化處理,采用大小為3× 3的核對(duì)灰度化后的圖像進(jìn)行雙向?yàn)V波去除圖像中的部分噪聲,對(duì)濾波后的圖像進(jìn)行閾值分割,得到二值化的圖像,由于圖像中會(huì)存在類似“毛刺”的部分,所以對(duì)二值化的圖像進(jìn)行腐蝕去除“毛刺”的干擾[7]。然后用canny算子檢測(cè)圖像中的邊緣[8],雖然邊緣檢測(cè)算子可以根據(jù)像素間的差異檢測(cè)出輪廓邊界的像素,但是并沒有將輪廓作為一個(gè)整體。OpenCV中cvFind Contours()函數(shù)將這些邊緣像素組裝成輪廓,更方便之后的直線檢測(cè)。
1.2尋找控制點(diǎn)
將預(yù)處理之后的邊緣圖像分為4個(gè)部分(如圖1所示),從上到下依次編號(hào)為1、2、3、4。由于第1區(qū)域的直線不容易檢測(cè),因此只對(duì)2、3、4三個(gè)區(qū)域做處理。在每個(gè)區(qū)域內(nèi)采用霍夫變換檢測(cè)其中的直線。從圖中可以看出,由于車道線存在一定的寬度,因此在使用霍夫變換檢測(cè)車道線時(shí)在同一水平方向上會(huì)有兩條直線,為了之后算法的方便,車道線近似的以內(nèi)側(cè)檢測(cè)到的直線代替,并延長(zhǎng)該直線至其所在區(qū)域的邊界。以第4區(qū)域?yàn)槔鐖D2所示,在視頻序列中找到左右兩邊的車道線對(duì)應(yīng)的直線(圖中所示的虛線)的交點(diǎn),即消失點(diǎn);連接兩條車道線的末端點(diǎn)并取其中點(diǎn)設(shè)為control[0];連接消失點(diǎn)與中點(diǎn)得到的直線與4區(qū)域上邊界交于一點(diǎn),設(shè)為control[1]。令左右兩側(cè)直線的末端的端點(diǎn)為擬合車道線的第一個(gè)控制點(diǎn),分別為leftControl[0]和rightControl[0]。令左右兩條虛線與4區(qū)域上邊界交點(diǎn)之間的距離為d,則兩側(cè)車道線擬合所需的第二個(gè)控制點(diǎn)的橫坐標(biāo)分別Leftcontrol[1].x=Control[1].x-d/2;rightcontrol[1].x=Control[1].x+d/2;縱坐標(biāo)是4區(qū)域上邊界的值。這樣就分別得到了左右兩側(cè)車道線的兩個(gè)控制點(diǎn)。然后在3區(qū)域中按照上述的方法分別尋找第3個(gè)控制點(diǎn)。需要注意的是,如果第一步在4區(qū)域中沒有同時(shí)檢測(cè)到左右兩側(cè)的車道線,則檢測(cè)3區(qū)域中,leftControl[0]和rightControl[0]按照上述求解leftcontrol[1]和rightcontrol[1]的方法求解。擬合左右兩側(cè)車道線的最后一個(gè)控制點(diǎn)按照4區(qū)域消隱點(diǎn)—3區(qū)域消隱點(diǎn)--2區(qū)域消隱點(diǎn)的順序選取。目的是既可以避免控制點(diǎn)選取的遺漏,同時(shí)也盡可能將擬合效果做到最好。所有的控制點(diǎn)選取完畢之后,采用B曲線分別對(duì)左右兩側(cè)的車道線進(jìn)行擬合。擬合效果見圖3。
圖1 邊緣圖像劃分為4個(gè)區(qū)域
圖2 控制點(diǎn)選取原理圖
圖3 控制點(diǎn)選取效果圖
卡爾曼濾波是一種對(duì)動(dòng)態(tài)系統(tǒng)的狀態(tài)序列進(jìn)行線性最小方差估計(jì)的算法。通過狀態(tài)方程和觀測(cè)方程來描述一個(gè)動(dòng)態(tài)系統(tǒng)[9]。它的一個(gè)典型實(shí)例是從一組有限的,包含物體位置和噪聲的觀察序列中預(yù)測(cè)出物體的坐標(biāo)位置及速度。
2.1卡爾曼濾波原理介紹
卡爾曼濾波估計(jì)是將系統(tǒng)的運(yùn)行看作狀態(tài)變換的過程,將狀態(tài)空間的理論利用數(shù)學(xué)方法進(jìn)行模型建立,利用一個(gè)n維的向量表示系統(tǒng)狀態(tài),系統(tǒng)通過狀態(tài)轉(zhuǎn)移量和輸入,控制狀態(tài)向量的變換。
卡爾曼濾波跟蹤主要分為兩個(gè)部分,預(yù)測(cè)和更新[10]。在預(yù)測(cè)階段,首先需要為系統(tǒng)賦上用于測(cè)量的系統(tǒng)初始狀態(tài)的值,為了能實(shí)現(xiàn)更好的跟蹤效果,論文采用前十幀圖像為系統(tǒng)初始狀態(tài)循環(huán)賦值,以期達(dá)到最好的初態(tài)效果。初始狀態(tài)賦值完成之后,采用式(1)和式(2)完成系統(tǒng)的預(yù)測(cè)。
其中:X-k表示k時(shí)刻系統(tǒng)通過對(duì)k-1時(shí)刻的狀態(tài)分析所做的先驗(yàn)估計(jì)。F是狀態(tài)轉(zhuǎn)移矩陣,其隱含指示了n-1時(shí)刻的狀態(tài)會(huì)影響到n時(shí)刻的狀態(tài)。B是控制輸入矩陣,其隱含指示了n時(shí)刻給的驅(qū)動(dòng)如何影響n時(shí)刻的狀態(tài)。u(k-1)是外界控制量。wk是過程噪聲。Q(k-1)是過程噪聲的協(xié)方差矩陣。
在更新階段,首先使用式(3)計(jì)算新信息相對(duì)已知信息的權(quán)重,得到權(quán)重之后就可以通過式(4)和式(5)計(jì)算最優(yōu)更新值。
其中:Hk是觀測(cè)矢量。通常情況下是單位矩陣,但不一定是方陣。Zk即測(cè)量值。Rk是測(cè)量噪聲的協(xié)方差矩陣。
2.2過程建模
論文采用的是最基本的卡爾曼濾波器,因此被估計(jì)的信號(hào),即論文中八組控制點(diǎn)的橫坐標(biāo)的建模采用的是線性模型,則其過程可以描述為如下模型。
xk=A xk-1+B uk-1+wk-1(6)
其中:增益矩陣A將上衣時(shí)刻的狀態(tài)線性的映射到當(dāng)前K時(shí)刻狀態(tài)。矩陣B代表可選的控制輸入u的增益,論文中沒有控制輸入,因此B矩陣為0。wk-1為過程激勵(lì)噪聲。
同時(shí),定義測(cè)量方程為
zk=Hxk+vk(7)
其中:矩陣H表示狀態(tài)向量xk對(duì)測(cè)量變量zk的增益,在論文中為單位矩陣。vk為觀測(cè)噪聲。
2.3噪聲分析
對(duì)于論文中系統(tǒng)的狀態(tài)向量為左右車道線一共8個(gè)控制點(diǎn)的橫坐標(biāo),是一個(gè)8×1的向量。沒有對(duì)縱坐標(biāo)進(jìn)行預(yù)測(cè)是因?yàn)檎撐闹袡z測(cè)到的直線都被延長(zhǎng)至相應(yīng)區(qū)域的邊界處,所以縱坐標(biāo)的值都是固定的。卡爾曼濾波要求過程噪聲和測(cè)量噪聲滿足高斯分布[11],在這里將視頻圖像處理中真實(shí)值默認(rèn)是測(cè)量值。過程噪聲的獲得借鑒了參考文獻(xiàn)[12]中的方法。即從視頻序列中找到三幅連續(xù)的圖像,編號(hào)為n,n+1,n+2,則對(duì)應(yīng)于這三幀圖像任意一個(gè)控制點(diǎn)的橫坐標(biāo)為xn,xn+1,xn+ 2,這樣橫坐標(biāo)在第
n+1幅圖像中的導(dǎo)數(shù)為
x′n+1=(xn+1-xn)/ΔT(8)
這里ΔT代表相鄰兩幅圖像的時(shí)間間隔,然后估計(jì)第n+2幅圖像的參數(shù)
^xn+2=xn+1+x′n+1ΔT(9)
則估計(jì)值和真實(shí)值之間的誤差即為
error=xn+2-^xn+2(10)
通過對(duì)八組數(shù)據(jù)進(jìn)行數(shù)據(jù)分析,得到其分布如圖4所示。同時(shí)用matlab的cftool工具對(duì)這些誤差值進(jìn)行高斯分布擬合,得到其參數(shù)值如表1所示。
表1 過程噪聲高斯分布參數(shù)表
圖4 過程噪聲高斯分布圖
圖5 測(cè)量噪聲分布圖
由表1可得,高斯分布的均值基本在0附近,標(biāo)準(zhǔn)差基本在1.5左右附近,為了算法實(shí)時(shí)性的要求,對(duì)這八組噪聲做獨(dú)立同分布處理,即其高斯分布的均值為0,標(biāo)準(zhǔn)差為1.5。對(duì)于測(cè)量噪聲,將公式(7)做一下變形,即vk=zk-Hxk(11)
將測(cè)量值減去每一次的預(yù)測(cè)值即得到了觀測(cè)噪聲,如圖5所示。從圖中可以看到測(cè)量噪聲很小,且在0值附近波動(dòng)。因此為測(cè)量噪聲賦值為0均值同時(shí)標(biāo)準(zhǔn)差較小的高斯分布。
2.4控制點(diǎn)選取
由于卡爾曼濾波依賴于前一幀的檢測(cè)狀態(tài),因此前一幀結(jié)果的準(zhǔn)確與否直接影響了下一幀的結(jié)果。所以在使用測(cè)量值對(duì)更新值進(jìn)行計(jì)算時(shí),測(cè)量值的選取遵循以下原則:如果上一幀中的預(yù)測(cè)值和由2.2節(jié)中得到的測(cè)量值做差值在一定范圍內(nèi)(論文中該范圍為20像素),則使用測(cè)量值做更新計(jì)算。如果超出給定的范圍則使用預(yù)測(cè)值做更新計(jì)算,這樣避免了測(cè)量值的不準(zhǔn)確造成的跟蹤失敗。
實(shí)驗(yàn)對(duì)直道、前方存在路標(biāo)干擾以及有遮擋分別進(jìn)行了測(cè)試。實(shí)驗(yàn)結(jié)果如圖6所示。同時(shí)與僅使用CHEVP算法的效果進(jìn)行對(duì)比。單一采用CHEVP算法時(shí),在檢測(cè)的過程當(dāng)中如遇到地表提示性符號(hào)的干擾,車道線的識(shí)別就會(huì)出現(xiàn)如圖6(c)所示的問題。論文中采用卡爾曼濾波器對(duì)控制點(diǎn)的坐標(biāo)進(jìn)行跟蹤,從圖中可以看出,當(dāng)?shù)缆飞洗嬖诘能嚇?biāo)噪聲使得控制點(diǎn)選取錯(cuò)誤時(shí),或者前方有車輛遮擋了車道線的識(shí)別,使用卡爾曼跟蹤進(jìn)行預(yù)測(cè)仍然可以得到車道線的準(zhǔn)確模型,保證了檢測(cè)的準(zhǔn)確性。
文章提出一種結(jié)合卡爾曼濾波噪聲分析同時(shí)采用B曲線和卡爾曼濾波跟蹤相結(jié)合的車道線檢測(cè)算法,不僅可以適應(yīng)直線車道同時(shí)由于采用了卡爾曼濾波算法,很大程度上提升了算法對(duì)于路標(biāo)干擾以及前方車輛的遮擋的魯棒性。在實(shí)時(shí)性方面,算法處理的每幀的大小為480×320像素大小,每秒處理的幀數(shù)為20幀,滿足了實(shí)時(shí)性的要求。相對(duì)于已有的算法,客觀的分析了卡爾曼濾波的噪聲分布,合理的給出了噪聲分布的參數(shù)值,同時(shí)將B曲線擬合與卡爾曼濾波結(jié)合,提升了車道線檢測(cè)的準(zhǔn)確性。
[1]彭紅,肖進(jìn)勝,程顯,等.基于擴(kuò)展卡爾曼濾波器的車道線檢測(cè)算法[J].光電子·激光,2015,03:567-574.
[2]馬超.基于單目視覺的車道偏離預(yù)警系統(tǒng)設(shè)計(jì)[D].成都:電子科技大學(xué),2011.
[3]王雷.一種基于雙曲線模型的車道線跟蹤檢測(cè)算法設(shè)計(jì)與實(shí)現(xiàn)[D].長(zhǎng)春:吉林大學(xué),2014.
[4]Yue Wang,Eam Khwang Teoh,Dinggang Shen.Lane detection and tracking using B-Snake[J].Image and Vision Computing,2003,224.
[5]胡會(huì)珍,黃晉英.卡爾曼濾波器模型的建立及其對(duì)車道線的跟蹤[J].機(jī)械工程與自動(dòng)化,2008 (3):52-53.
[6]耿靜靜.基于單目視覺的車道線檢測(cè)與識(shí)別[D].哈爾濱:哈爾濱工業(yè)大學(xué),2007.
[7]孫曉軍,李華.基于Facet模型的一種車道線提取方法[A].中國(guó)智能交通協(xié)會(huì).第八屆中國(guó)智能交通年會(huì)論文集[C].中國(guó)智能交通協(xié)會(huì),2013.
[8]王全.一種改進(jìn) Hough變換的車道線檢測(cè)算法[J].計(jì)算機(jī)與數(shù)字工程,2014,11:2164-2167.
[9]杜超,劉偉寧,劉戀.一種基于卡爾曼濾波及粒子濾波的目標(biāo)跟蹤算法[J].液晶與顯示,2011 (3):384-389.
[10]王煒.基于卡爾曼濾波的多區(qū)域關(guān)聯(lián)視頻目標(biāo)跟蹤研究[D].南京:南京理工大學(xué),2013.
[11]于宏嘯,段建民.關(guān)于車道線圖像識(shí)別軌跡規(guī)劃跟蹤仿真 [J].計(jì)算機(jī)仿真,2015(4):144-148.
[12]劉國(guó)榮.基于圖像的車道線檢測(cè)與跟蹤算法研究[D].長(zhǎng)沙:湖南大學(xué),2014.
Lane Detecting and Tracking Algorithm with Noise Analysis of Kalman Filter
Guo Keyou,Wang Yiwei,Guo Xiaoli
(School of Material Science and Mechanical Engineering,Beijing Technology and Business University,Beijing100048,China)
Research of using Kalman filter to do specific information track in video image sequences is a hot topic in the tracking direction currently.But most researches processed the noise of Kalman filter by assigning a specific value in the initial step.By constantly tuning the parameters the algorithm can achieve better tracking results.However,working in this way not only did not follow the rules of the original data,but also adjusting parameters is a time-consuming job.For this reason,the paper proposes a Kalman filter process noise and measurement noise assignment algorithm which is used in lane detection.By processing part of the offline data,the algorithm can estimate the basic parameters of the noise.Use lane tracking to validate the algorithm in this article and experiments show that the proposed methods achieve good detection results while the time of processing each frame is about 50 ms which meet the real-time requirements.
Kalman filter;noise analysis;lane detection;B spline curve;control points
1671-4598(2016)05-0216-04
10.16526/j.cnki.11-4762/tp.2016.05.061
TP751
A
2015-11-12;
2015-12-07。
交通運(yùn)輸部信息化科技項(xiàng)目(2012-364-835-110);北京工商大學(xué)2015年研究生科研能力提升計(jì)劃項(xiàng)目。
郭克友(1975-),男,博士后,副教授,碩士生導(dǎo)師,主要從事汽車安全駕駛方向的研究。