圖片來源:辨識出公路上的道路標線
昨天講到了利用影像做車道辨識的流程,其中一個環節是從邊緣找出一條線性的方程式。
最常看到的找線性方程式的方法是最小二乘法、RANSAC、霍夫轉換,今天就把三者做個比較,因為我自己有實際拿同樣的數據跑過這三者的結果。目前還沒有時間做表格化整理,未來有機會的話再補上,目前就先以文字敘述。
先簡述三者:
又稱最小平方法(least squares method),目標是在一群點之中,找出一條直線,這一條直線與每點的直線距離平方和可以是最小的。除了找直線也可以找曲線、圓形等等。
隨機抽樣一致算法(RANdom SAmple Consensus、RANSAC),以迭代的方式隨機抽取部份的點作目標模型(線)匹配的測試,如果符合誤差內的話就被歸類為「內群點」(inlier),反之為「離群點」(outlier)。
圖片中的紅點是RANSAC完後它判斷為「離群點」、藍點是為「內群點」。
這個模型可以是任何形狀或圖片等等,可作為特徵提取的演算法。
Hough transform,也是一種特徵提取的技術,採在參數空間中執行投票來決定物體的形狀,常見用於找直線或圓,原理是每條線都會有一個公式表達
斜截式
法線式
那一個點能被很多條線通過,我們把所有通過某點的線之參數(參數空間)or記錄下來,經過最多點的線之組參數空間,就是我們要的方程式。
通常會用是因為斜率的表示會有線為垂直時斜率無限大的情況發生。
除了線和圓,也可以找平面~我做過!!!
這幾個方法都可以找出車道標線,不過最小二乘法不考慮「離群點(雜點)」的情況,誤差會比較大。RANSAC是改善了最小二乘法,如果給的模型夠精準,可以找出我們想要的那『一條線』。霍夫轉換的話可以一次找出『多條線』符合的線,但要注意在線有固定數量的情況下,要小心局部最大值的部份。