車道線曲線擬合方法


車道線曲線擬合方法

一.車道線擬合算法

背景技術:在車輛行駛過程中,為了更好的了解並預測周圍的環境信息,對車道線的曲線擬合是必要的。將采集來的車道線數據進行曲線擬合可以很好的估計車道線的參數信息,得知偏移量、傾斜角、曲率半徑等信息,從而預測車道線的走向,為駕駛員或車輛自動控制系統提供幫助。現有的主流算法是將采集的車道線數據投影到鳥瞰圖后直接用最小二乘法做三次曲線的擬合。這樣做的優點是簡單快捷,但缺點包括:視頻中同一條車道線在連續幾幀的圖像中擬合的結果有較大的差別,結果不穩定,遠端有擺動的情況。

經典擬合算法
一種車道線曲線擬合方法。本方法的步驟主要包括五步:

第一步從視頻中獲取當前幀和前2‑5幀圖像中各條車道線的像素坐標,並將它們投影到鳥瞰圖上;

第二步對於每條車道線,利用當前幀和前2‑5幀的鳥瞰圖坐標用最小二乘法進行三次曲線擬合;

第三步對於每條車道線,保留第二步中結果的一部分參數以及計算時用到的系數矩陣;

第四步在第二步中保留的參數的基礎上,聯立所有幀中的所有車道線,用最小二乘法做最終的擬合,其中計算所需的矩陣由第三步中保留的參數和矩陣直接得到;

第五步通過第四步的計算結果,得到當前幀各條車道線的最終擬合結果。本發明用於車道線曲線擬合。

車道線檢測實驗筆記

二. 基於Catmull_Rom樣條曲線的車道線檢測

1. 樣條曲線模型引入

Catmull_Rom樣條曲線擬合是曲線插值技術的一種,該插值技術能經過所給的所有控制點。BY THE WAY,很多插值技術可以參考Catmull_Rom樣條曲線擬合方法需要至少四個控制點,公式如下:

 

 

 其中,t屬於[0,1](也就是0-1中每個t值可能對應所求曲線中的某點,其取值越多,曲線越密)。實際上,四個控制點,曲線只會經過其中兩個控制點,如現在有控制點A,B,C,D,則最后的曲線擬合結果將如下:

 

 得到的事BC之間的擬合曲線。那么若要得到ABCD的擬合曲線應該怎么辦呢。實際上,引入兩個新的控制點A',D'即可,A'由AB計算而得,D'由CD計算而得,例如,A'計算如下:

                   A'.x = A.x + (A.x - B.x)

                   A'.y = A.y + (A.y - B.y)

B'點計算類似。於是,由A'ABC可以得到AB曲線,由ABCD可以得到BC曲線,由BCDD'可以得到CD曲線,經過三次計算,可以得到ABCD曲線。

在一張空白圖上,計算經過(50,50),(90,120),(70,200)三點的Catmull_Rom樣條曲線。

貝塞爾曲線只會穿過首尾兩個控制點而不過中間的控制點,在某些場合希望曲線穿過所有控制點的話可以使用catmull-rom spline(簡稱CR-Spline)

CR-Spline需要至少4個控制點,首尾兩個控制點為輔助點,曲線不會穿過,其余控制點在t=[0,1]之間曲線會穿過(我喊作路徑點),t=0時值等於第2個頂點,而t=1時值等於倒數第2個頂點

 

 為了接口友好,通常都會約定傳遞給插值函數的參數為曲線所經過的路徑點而不包含輔助點,兩個輔助點可以根據已有的路徑點計算出來。

一般情況計算兩個輔助點只需要分別在首尾方向作延伸就行了:p0=p1+(p1-p2),pN+1=pN+(pN-pN-1)

如果傳入的控制點首尾相等形成閉合環,那么不用計算,直接取值p0=pN-1,pN=p1就行

2. 基於Catmull_Rom樣條曲線的車道線檢測

2.1. 基本思路

有了Catmull_Rom樣條曲線的基礎,那么車道線檢測實際上就是找到合適的控制點!

給出基於Catmull_Rom樣條曲線的車道線檢測的基本方法(除去預處理過程):

1)Hough變換直線檢測,將兩條主車道線檢測出來,直線記為L1,L2;

2)判斷是車道線是直線還是曲線;

3)若車道線是曲線,找到三個控制點P1,P2,P3;

4)通過三個控制點,擬合Catmull_Rom樣條曲線,得到結果

2.2.  實驗示例

按照此特性,若從上往下檢測(即從(x = 0,y = 0)開始 x++,y++到(x = w,y = h)),直線的Hough檢測結果將會基本吻合實際結果,即在檢測結果點的周圍,都將有實際點的存在;而曲線的Hough檢測結果,將會先出現檢測結果周圍沒有實際點,檢測結果點周圍才會有實際點存在。

定義:檢測結果點吻合:若檢測點周圍八領域內存在實際點,則代表檢測點結果吻合

於是該問題轉化為:從圖頂向下搜索,能否找到P3點,使得P3點上部分一段區域(給定一個長度閾值alph1)檢測結果點都不吻合(引入容錯因子,防止噪聲theta),P3點下部分一段區域(同樣給定一個長度閾值alph2)檢測結果點吻合。若能找到P3點,則該車道線是曲線,否則,該車道線是直線!

找到控制點P1,P2,P3:

P3控制點:實際上,步驟(2)中已經找到了其中一個控制點P3,P3點可以作為直線部分和曲線部分的分界點,P3以上部分擬合曲線,P3一下部分保留Hough變換的直線檢測結果;

P1控制點:我們注意到,可以取遠端兩車道的消失點作為控制點P1。

 

 具體搜索方法:

1>找到Hough變換得到的兩直線的交點O。

2>從O點所在行向下搜索,找到P1。(從左往右搜索,第一個遇到的點即為P1點)

P2控制點:得到了P1,P3兩點,則取P1,P3中間的一行搜索兩車道的P2點!
經過三個控制點P1,2,3,使用Catmull_Rom樣條曲線擬合得到結果:

 

 

 

  

 

 結論:

1)從結果上來看,能得到曲線,擬合效果並不是很好,但是提升空間很大,比如增多控制點會讓曲線擬合更為精准!

2)控制點尋找的方法仍需要斟酌,因為道路的情況及其復雜,所以需要針對可想的所有情況進行模擬!

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM