智能驾驶入门4——感知
计算机视觉
四个感知世界的核心任务
- 检测:找出物体在环境中的位置
- 分类:明确对象是什么
- 跟踪:随时间推移观察移动物体
- 语义分割:将图像中的每个像素与语义类别进行匹配
分类器的运行步骤
- 接收输入(一系列)图像
- 预处理:对图像进行标准化处理(调整图像大小、旋转图像、转换色彩空间)
- 提取特征
- 将特征输入到分类模型
摄像头图像
最常见计算机视觉数据
计算机如何判断图像:
- 数字图像图像转化为图像矩阵,每个矩阵中包含该网格的像素值
- 可以通过改变矩阵中的像素值来改变图像亮度(添加一个标量整数)、向右移动每个像素值等操作
- 数字网格是图像处理技术的基础
- 二维灰度像素值图像:包含宽度和高度
- 彩色图像:三位立方体,包含高度、宽度、深度;深度为颜色通道数量,大多为3(红绿蓝RGB);深度可以被认为是三重叠加的二维色层
LiDAR图像
激光雷达传感器(发射光脉冲)创建环境的点云表征,提供了物体的距离和亮度信息。
主要借助光线(激光)测量光束来回的时间以测量距离。
通过对点的聚类和分析,提供足够的对象检测、跟踪、分类信息。
机器学习
模型:存储计算机从数据中学习得到的结果的数据结构,用于理解和预测世界
真值Ground-truth:
Ground-truth在机器学习中表示有监督学习的训练集的分类准确性,用于证明或者推翻某个假设。有监督的机器学习会对训练数据打标记,将那些正确打标记的数据成为Ground truth。Ground truth就是参考标准,一般用来做误差量化,最终用于验证分类算法的准确性。真值标定的输入一般是视频文件。真值标定既可以手动一帧一帧地标定,也可以半自动化标定后再手工修正,最终可以将结果保存成真值数据库。
机器学习的四种形式(使用数据和相关真值标记进行模型训练):
- 监督学习:给图像打标签之后让计算机学习如何区分
- 无监督学习:不给图像打标签,计算机根据图片的相似性自行学习区分
- 半监督学习:用少量标记数据和大量未标记数据进行模型训练
- 强化学习:模型通过不同的方法解决问题,通过衡量(如正确则给予奖励机制)哪种方法最为成功就选择哪种方法。即计算机从经验中总结学习
神经(元)网络
人工神经(元)网络:由大量人工神经元组成,神经元负责传递和处理信息。
训练神经元:将大量的图片送入神经网络中,进行对特征的提取识别分类训练(各个特征分配合理权重值给单个神经元),大量神经元整合成最终输出,最终计算机就能识别图像并且分类。
反向传播算法
训练的三步循环(一个训练周期)
- 前馈:随机分配初始权重(人工神经元的值),神经网络馈送每个图像产生输出值
- 误差测定:真值标记与前馈过程输出之间的偏差
- 反向传播:神经网络反向发送误差,单个神经元对自身的值进行微调,以达到误差最小化
训练网络需要进行上千次训练周期的循环
卷积神经网络CNN
标准神经网络的缺陷:二维图像被展开成一维像素阵列(每一行都被拆下来连接成一列),破坏了图像的空间信息。
卷积神经网络:CNN通过过滤器连续滑过图像搜集信息,保持其空间信息不被破坏,只对图片的一小部分进行检测。每一层卷积层都包含上一层的信息。
检测与分类
- 检测定位障碍物(包括位置和速度、加速度)
- 对检测到的障碍物进行分类
检测与分类使用的算法:
- 检测CNN查找图像中对象的位置,定位后将图像发给另一个CNN进行分类
- 使用有若干个不同“头”缀连在末端的单一CNN体系结构,每个“头”有不同的任务
- R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD
跟踪
什么是追踪:对每个帧中的对象进行检测并用边界框对每个对象进行标记。
为什么要进行跨帧追踪:
- 当对象被遮挡时,检测算法可能会失败,追踪可以解决这一问题
- 追踪可以保留身份。检测输出包含对象的边界框标记,使下一帧对象能在当前帧中找到对应的对象。
追踪步骤:
1.确认身份:将前帧中检测到的所有对象与当前帧检测到的对象进行匹配,查找特征相似度最高的对象。计算机通过计算机视觉算法(局部二值模式、方向梯度直方图)计算复杂的图像特征。
2.快速找到匹配对象的位置:连续视频帧中,两个障碍物之间的位置和速度通常没有很大的变化,所以能较快地找到匹配对象的位置。
3.结合预测算法,估计下一个时间步对象的速度和位置,帮助识别下一帧的对象。
分割
语义分割:对图像的每个像素进行分类
FCN(全卷积网络)与传统CNN的区别:传统CNN末端是平坦层,FCN末端还是卷积层
FCN提供可以在原始输入图像之上叠加的逐像素输出(?),但造成输出图像尺寸远小于输入图像,所以要进行上采样处理。
编码器:对输入对象的特征进行提取和编码
解码器:对特征进行解码,原尺寸输出
Apollo感知
- 检测三维对象:1.在高精度地图上使用感兴趣区域ROI重点关注相关对象,ROI过滤器扫描点云和图像数据缩小搜索范围,加快感知。2.检测网络馈送已过滤的点云,输出用于构建围绕对象的三维边界框。3.跟踪算法跨时间步识别单个对象,保留在每个时间步要跟踪的对象列表,然后在下一个时间步中找到每一个对象的最佳匹配。
- 检测交通信号灯:1.高精度地图确认前方是否有交通信号灯。2.如果有,高精度地图返回位置缩小摄像头搜索范围,搜索到图像后检测网络进行定位,并将图像分给分类网络确定信号灯颜色。3.若有多个信号灯,则需判断哪些灯与当前车道有关。
YOLO网络:
Apollo使用YOLO网络来检测车道线和动态物体。(待补充)
传感器数据比较
|
感知融合策略
Apollo使用激光雷达和雷达来检测障碍物。
传感器融合提高感知性能。
卡尔曼滤波用于融合输出。
卡尔曼滤波的两个步骤(循环往复):
- 预测
- 更新测量结果
测量结果更新的两个步骤:
- 同步融合:同时更新来自不同传感器的测量结果。
- 异步融合:逐步更新传感器所收到的传感器测量结果。