智能网联汽车|基于视觉的环境感知-读书笔记

本文转自个人公众号: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系列……方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章