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.
後面如果轉成極座標空間更佳,會換過來。
相關文章
- Qt5&OpenCV3.2 Canny邊緣檢測+Hough變換QTOpenCV
- Lane-Detection 近期車道線檢測論文閱讀總結
- 【OpenCV】影像變換(四-1)-霍夫變換線段檢測OpenCV
- 運動目標檢測演算法相關概念演算法
- 04 矩陣乘法與線性變換複合矩陣
- 自動駕駛系列(三)——環境感知之車道線檢測技術自動駕駛
- 【OpenCV】影像變換(四-2)霍夫變換圓檢測OpenCV
- 結合模板匹配與測量的剃鬚刀缺陷檢測
- 無線入侵檢測讓無線安全檢測變得簡單
- Halcon · 曲線寬度檢測演算法總結演算法
- 3. OpenCV-Python——影像梯度演算法、邊緣檢測、影像金字塔與輪廓檢測、直方圖與傅立葉變換OpenCVPython梯度演算法直方圖
- 用霍夫變換&SCNN碼一個車道追蹤器CNN
- 資料結構與演算法 | 迴文連結串列檢測資料結構演算法
- Shoka車鈴讓愛車變智慧 與無線音響相似
- OpenCV計算機視覺學習(3)——影像灰度線性變換與非線性變換(對數變換,伽馬變換)OpenCV計算機視覺
- OpenGL模型檢視變換、投影變換、視口變換模型
- 【OpenCV】影像的變換(三)-Canny邊緣檢測OpenCV
- JavaScript變數型別檢測總結JavaScript變數型別
- 無人駕駛之車輛檢測與跟蹤
- OpenCV-Python教程(9)(10)(11): 使用霍夫變換檢測直線 直方圖均衡化 輪廓檢測OpenCVPython直方圖
- 帶你讀AI論文丨LaneNet基於實體分割的端到端車道線檢測AI
- aix變數的設定與檢測AI變數
- Oracle查詢轉換(三)外連線檢視合併Oracle
- halcon——缺陷檢測常用方法總結(測量擬合)
- 異常點檢測演算法小結演算法
- 微信小程式變現駛入快車道微信小程式
- 小波變換檢測訊號突變點的MATLAB實現Matlab
- 資料結構與演算法面試題80道資料結構演算法面試題
- 霍夫變換圓檢測原理及 OpenCV API 應用OpenCVAPI
- 基於深度學習的停車場車輛檢測演算法matlab模擬深度學習演算法Matlab
- Laravel 圖床與顏值檢測結晶Laravel圖床
- 中國網路資訊保安“國家隊”正在變道超車
- javascript資料結構與演算法---檢索演算法JavaScript資料結構演算法
- 預測區塊鏈與司法的結合區塊鏈
- SIFT演算法與SURF演算法特徵檢測效率對比演算法特徵
- 演算法-Z字形變換演算法
- OpenGL 使用矩陣變換改變檢視矩陣
- 課程設計-車牌檢測