車道線檢測學習總結

2021-08-25 17:28:06 字數 2292 閱讀 6371

之前學習了乙個非常酷炫的車道線檢測專案:advanced lane finding project

現在寫乙個學習筆記,備註一下,方便以後複習:

專案總體流程如下:

第一步,採用棋盤對相機進行校正:

第二步,對影象進行擷取,由於獲取到的影象中一半為天空及背景:基於這個先驗知識,預先對影象進行擷取,可以為後面更準確定位車道線奠定基礎。

第三步,基於影象的梯度和顏色特徵,定位車道線所在位置

1)梯度資訊:使用了sobelx,sobely,sobelxy,direction四個資訊,保留影象中四個資訊同時滿足:

(35, 100), (30, 255), (30, 255), (0.7, 1.3)的畫素;
2)顏色資訊:先將影象轉換成hls通道,然後判斷影象畫素值資訊及三個通道資訊,保留影象中四個資訊同時滿足:

(180, 255), (10, 100), (0, 60), (85, 255)的畫素:

3)將兩種資訊直接疊加組合起來,就是最終的車道線對應畫素所在位置:

第四步,使用仿射變換,將二值影象轉換成鳥瞰圖(感覺就是從上往下看的俯檢視),這樣做是為了將影象進行拉伸,方便後面的滑窗多項式擬合來對車道線進行精確定位:

第五步,精確定位車道線所在位置

1)定位滑窗左右兩條車道線的搜尋起始點:首先,劃分搜素區域,按照x軸方向將影象一分為二,劃分為左右兩個部分;然後,對二值影象兩個部分在x方向做直方圖統計,定位峰值作為左右兩條車道線的搜尋起點

2)搜尋過程:首先,設定搜尋視窗大小(width和height);然後,以搜尋起始點作為當前搜尋的基點,並以當前基點為中心,做乙個網格化搜尋,其實就是由初始位置x,width為手工設定,height為大小除以設定搜尋視窗數目計算得到,這裡假設視窗數目為4;其次,對每個搜尋視窗分別做水平和垂直方向直方圖統計(實際實現更加簡單,這裡這樣描述主要是為了方便理解),統計在搜尋框區域內非零畫素個數,並過濾掉非零畫素數目小於50的框;最後,計算非零畫素座標的均值作為當前搜尋框的中心,並對這些中心點做乙個二階的多項式擬合,得到當前搜尋對應的車道線曲線引數。

3)更新搜尋基點:步驟2)中,二階多項式逼近後,會得到乙個曲線方程:

4)優化:如果已經得到10個曲線方程(十個步長中均存在曲線),可以利用之前的引數方程來做乙個平滑處理,具體過程——首先,10個曲線方程中斷開(每三個曲線選取其中兩個);然後,將曲線方程離散化後的座標點取均值,再做二階多項式逼近。

這裡補充一下,什麼叫曲線方程離散化:例如,已知方程為

補充:作者說,直接對顏色資訊和梯度資訊疊加,會出現檢測結果漂移,因為梯度資訊存在裂縫狀態,導致融合後,檢測得到車道線結果偏離了真實位置:

因此,在計算過程中,對梯度資訊和顏色資訊採取加權平均方式,梯度資訊的權重為0.2,顏色資訊的權重為0.8,這樣就可以得到乙個比較好的結果:

最後,計算車道線曲率及將結果反投影會原圖展示效果就不說了,到這裡,基本就是理解這個工程的全部核心內容了。

表演結束enjoy!!!

車道線檢測之3D車道線檢測

可參考文獻 有相機座標系ccamera和道路座標系croad,作者假定兩個座標系的roll和yaw一致,僅存pitch的差異,那麼,兩座標係之間的轉換關係tc2r將由h cam和camera pitch確定,其中,h cam和camera pitch由模型 輸入為相機採集的影象,輸出分為2部分,第一...

matlab車道線檢測 車道線檢測簡易版

第一次接觸式車道線檢測時嘗試的實現,整理上傳下 1 提取原圖邊緣,可以看出車輛前方的車道線在整個影象下方的梯形區域,提取這個roi 2 在roi區域進行輪廓查詢,按照輪廓周長和面積過濾掉干擾項,最後應該剩下兩條分布在影象中線左右兩側的兩條車道線 3 對左右兩條車道線點集做直線擬合,最後得出兩條車道線...

opencv車道線檢測

二值化 先變化為灰度圖,然後設定閾值直接變成二值化影象。形態學濾波 對二值化影象進行腐蝕,去除噪點,然後對影象進行膨脹,彌補對車道線的腐蝕。邊緣檢測 canny變化 sobel變化和laplacian變化中選擇了效果比較好的canny變化,三者在 中均可以使用,canny變化效果稍微好一點。按鍵控制...