本文轉自個人公衆號:https://mp.weixin.qq.com/s/mwg6PU22avf64kNb5bVQtA
本篇爲《智能網聯汽車先進駕駛輔助系統關鍵技術》讀書筆記,簡單粗暴的介紹相關概念後,以盲區預警作爲usecase結尾。
1、環境感知技術在網聯汽車的應用示意圖
2、視覺傳感器的類型及功能
按攝像頭的工作方式,可以將其分爲單目、雙目、三目、環視;
攝像頭又分爲紅外攝像頭和普通攝像頭;
根據需求的不同,選擇不同的攝像頭和鏡頭。
3、視覺傳感器的功能
視覺傳感器的功能主要有:
車道線識別;
障礙物識別;
交通標誌和地面標誌識別;
交通信號燈識別;
可行駛區域識別;
周圍車輛感知;
交通狀況感知;
道路狀況感知;
車輛本身狀態感知。
…………
4、環境感知流程
環境感知流程大體上如下:
圖像採集-->預處理-->特徵提取-->圖像識別及分析-->輸出
其中,
預處理部分根據需求的不同,可以包括:灰度、二值化、圖像壓縮、增強、復原、去噪濾波、resize()、直方圖均衡化等等(這裏推薦一本聖經級別的書--岡薩雷斯的 《數字圖像處理》)。當然,如果需求爲交通信號燈識別,那麼肯定是不能進行二值化的。
特徵提取部分,是爲了更好的進行圖像識別與分析,同樣,根據待檢測目標的不同,選用不同的特徵,最簡單的有顏色特徵、形狀特徵、邊緣特徵等等。
5、視覺傳感器在網聯汽車上的應用
usecase:
我們以盲區監測算法爲例
基於視覺傳感器的盲區監測算法流程:
圖像採集-->圖像預處理-->目標(車輛)檢測-->輸出
其中 ,圖像預處理包括:
a.灰度處理,因爲人眼對綠色敏感度最高,對藍色敏感度最低,取灰度值爲:
I=0.3R+0.59G+0.11B-----------I爲灰度化之後的灰度值,RGB分別代表紅、綠、藍顏色分量。
b.濾波處理,該步驟是爲了去除環境產生的噪聲,比如車輛抖動、光學噪聲、圖像採集過程帶來的量化誤差等等。最常用的濾波有均值濾波,中值濾波,高斯濾波……
以一維高斯濾波爲例
double *getGuassionArray(int size, double sigma)
{
double sum = 0.0;
int kerR = size / 2;
double *arr = new double[size];
for (int i = 0; i < size; i++)
{
arr[i] = exp(-((i - kerR)*(i - kerR)) / (2 * sigma*sigma));
sum += arr[i];
}
for (int i = 0; i < size; i++)
{
arr[i] /= sum;
}
return arr;
}
c.目標(車輛)檢測
此步驟中,有學者利用車在行進過程中產生的陰影做爲車的特徵來識別車輛;還有學者將車身的剛體特徵作爲鮮明的特徵;另外還有車窗、保險槓等作爲特徵……
可以用傳統的特徵檢測算法進行目標檢測,比如:Cascade + HOG/DPM + Haar/SVM,不過精度和穩定性不是特別高;
也可以用深度學習,通過訓練特徵進行目標檢測,如:R-CNN(Selective Search + CNN + SVM)、SPP-net(ROI Pooling)、Fast R-CNN(Selective Search + CNN + ROI)、Faster R-CNN(RPN + CNN + ROI)、SSD、YOLO系列……方法。