從零開始的無人駕駛
1. ROI
一個比較簡單的做法是利用computer vision技術從攝像頭視角獲取道路資訊。然後是選取 ROI(Region of Interest) , 基本上就是選顏色 + 選區域。
選顏色比較接近直覺, 路上的線也就兩種顏色,要麼白線,要麼黃線。 白線其實比較好找

但是黃線的話就不能直接用原圖了。要先把原圖分成RGB三層

而黃色的線在藍色那層是看不到的

(因為是互補色)

除了選顏色,選區域也是可以直接利用CV解決的問題。
從車頭視角向前看,大部分畫素都是沒有用的。尤其是天空的部分。對於自動駕駛來說差不多等價於干擾訊號,基本上可以直接過濾掉


2. Canny Edge Detection
下一步是使用邊緣檢測演算法尋找邊線。如果我們把檢視當成一張灰度圖來看待,那麼每一條邊其實都在明暗塊交替的位置

通過計算亮度的變化,可以把原圖轉化成一張梯度圖

然後再將結果銳化,得到亮度數值變化最大的畫素點

實際上,在做Canny演算法之前,要對影象做 高斯平滑(Gaussian smoothing / Gaussian Blur) ,消除噪聲和偽梯度點
3.直線檢測
Hough Transform是影象變化中的經典演算法,主要用來尋找影象中符合某種特徵的集合,說白了就是檢測直線、圓、橢圓。

Hough變化要將笛卡爾座標下的點變化到霍夫極座標系,原來的點共線問題會由此轉化計算成曲面在極座標下的共點,效果上就是該演算法對邊緣間斷不敏感。大致上是這個意思,實際操作的時候是統計累加空間裡的區域性最大值(峰值),以該峰值作為結果(所以說抗噪能力還是很強的)。

總結一下就是:
原圖 -> 灰度圖 -> 邊緣檢測 -> 直線檢測 -> 過濾掉斜率過低的直線 -> 將最後結果疊加回原圖



行為克隆
使用神經網路進行無人駕駛的理論基礎來源於Imitation Learning (模仿學習)。Behavior Cloning算是Imitation Learning的一種。思路倒是很簡單,將人類駕駛作為基礎資料全部收集下來,然後讓神經網路去擬合數據。
這類端到端的解決方案基本上是一個路子,優點:簡單且有效,缺點:受限於收集的資料。因為訓練集總是有限的,如果出現了神經網路之前沒見過的資料,那麼效果就會很差。
一個比較經典的條件是天氣,下雨天的路面跟晴天的路面不一樣,有霧的天氣下道路能見度也會對攝像頭收集的資料有很大影響。