Hough變換與FCM演算法相結合檢測車道線
https://blog.csdn.net/u010712012/article/details/87477554
之前一小段時間分析的三大塊,車輛檢測,車道線檢測,車輛壓線判別。
主要分析了一下車道線檢測的優化問題,經過影像處理,canny邊緣檢測,Hough變換檢測出的圖如第二幅
因為車道是具有雙邊緣的,所以根據之前的車道線檢測演算法檢測出來的直線會有不止一條,如果能夠用一種演算法把多條直線能夠合併成一條車道線,能夠對後面的違章壓線變道判決減少很多干擾。
根據Hough變換的原理 https://blog.csdn.net/u010712012/article/details/86104053 ,原圖座標的直線在k,b空間就是點,把這些點反映到下面這個座標
可以看出,一條車道線的多條檢測出來的直線的斜率和截距差距一般不是很大,所以是否能夠把這些代表直線的點聚類為一點,那麼聚類結果的各點,就代表具體的那根車道線。
https://blog.csdn.net/u010712012/article/details/87952752
這篇文章描述了模糊C均值聚類演算法,這個聚類演算法通過計算隸屬度矩陣U和類別中心C,得到最終的聚類中心,從而可以在這個場景下使用。
只需要把我們想要最終聚類出的車道線的條數明確,確定迭代次數,就能得到結果。
但是這裡有一個明顯的問題就是,FCM演算法需要手動設定需要聚類出來的類數,假設一條道路有6條車道線,那麼K=6,不同的場景車道線數量不同。這讓人想到了無監督學習中的Kmeans演算法,他的缺點也是需要人工先確定K值,且該值和真實的資料分佈未必吻合,也易受到噪聲點的影響,容易陷入區域性最值,並不能有力地求到全域性最優。所以個人感覺只適合於道路清晰的高速公路上,一旦有多輛車在內做干擾,或者路面老舊導致車道線不清晰,FCM並不能算是一個非常魯棒的演算法。
但是不可否認的是,FCM聚類演算法使用的邊緣去重和結構化過濾方法還是很有借鑑意義,可以起到穩固車道線的作用,從而對後續的車輛壓線判別模型奠定了基礎。
而且我們得到的(k,b)座標軸,可以看出,在原影像座標中的斜率為正的直線,都集中在右下角的點,很密集。而斜率負的很大的直線則分散在左上角而且距離比較大,按照聚類(物以類聚)的思想,應該是離得越遠的點越沒可能是一類。
可以考慮把斜率的,這裡的角度在斜率比較小的時候差距不大,但是有可能在斜率很大的時候,多條線之間的角度差距也不大
因為每條線的theta都有具體的值,每一條線的相減,如果角度差距超過設定的一個閾值的話,就代表不是一類,如果角度小於一類的,就看成是一類。就要看怎麼和聚類的演算法進行融合了
然後思考一下能不能把k,b座標軸轉變成極座標空間,然後看FCM聚類演算法是否能夠解決上述的角度截距的問題。
得到聚類結果的斜率和截距(這裡還是k,b),可以根據兩點座標把各車道線繪製出來如下:
這裡繪圖車道線的結果是貫穿整個圖片的,最後融合起來。
這裡效果還行吧。。。
3.
4.
後面如果轉成極座標空間更佳,會換過來。
相關文章
- 詳解 Hough 變換(基本原理與直線檢測)
- Hough變換
- Qt5&OpenCV3.2 Canny邊緣檢測+Hough變換QTOpenCV
- 一文搞懂基於透視變換的車道線擬合
- Lane-Detection 近期車道線檢測論文閱讀總結
- 04 矩陣乘法與線性變換複合矩陣
- 霍夫變換檢測圓
- Halcon · 曲線寬度檢測演算法總結演算法
- 結合模板匹配與測量的剃鬚刀缺陷檢測
- 3. OpenCV-Python——影像梯度演算法、邊緣檢測、影像金字塔與輪廓檢測、直方圖與傅立葉變換OpenCVPython梯度演算法直方圖
- 資料結構與演算法 | 迴文連結串列檢測資料結構演算法
- 自動駕駛系列(三)——環境感知之車道線檢測技術自動駕駛
- 《逃出生天》製作人:我更在乎敘事如何與玩法相結合
- 演算法相關演算法
- JavaScript變數型別檢測總結JavaScript變數型別
- OpenCV計算機視覺學習(3)——影像灰度線性變換與非線性變換(對數變換,伽馬變換)OpenCV計算機視覺
- 用霍夫變換&SCNN碼一個車道追蹤器CNN
- 離崗檢測影片分析閘道器AI智慧分析在崗離崗檢測演算法的原理與應用AI演算法
- halcon——缺陷檢測常用方法總結(測量擬合)
- 異常點檢測演算法小結演算法
- 小波變換檢測訊號突變點的MATLAB實現Matlab
- hough T
- 霍夫變換圓檢測原理及 OpenCV API 應用OpenCVAPI
- 帶你讀AI論文丨LaneNet基於實體分割的端到端車道線檢測AI
- [20190506]檢視巢狀與繫結變數.txt巢狀變數
- 佛說法相,即非法相,是名法相
- halcon——缺陷檢測常用方法總結(頻域空間域結合)
- OpenGL 使用矩陣變換改變檢視矩陣
- 演算法-Z字形變換演算法
- JavaScript字串中URL的檢測並轉換為連結JavaScript字串
- 無人駕駛之車輛檢測與跟蹤
- 資料結構與演算法之線性結構資料結構演算法
- SpringBoot與單元測試JUnit的結合Spring Boot
- 預測區塊鏈與司法的結合區塊鏈
- 基於深度學習的停車場車輛檢測演算法matlab模擬深度學習演算法Matlab
- 排序檢測演算法排序演算法
- Rabbit加密演算法:效能與安全的完美結合加密演算法
- AI智慧檢測影片分析閘道器有限空間作業監護演算法築造安全新防線AI演算法