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