智能驾驶入门4——感知

计算机视觉

四个感知世界的核心任务

  1. 检测:找出物体在环境中的位置
  2. 分类:明确对象是什么
  3. 跟踪:随时间推移观察移动物体
  4. 语义分割:将图像中的每个像素与语义类别进行匹配

分类器的运行步骤

  1. 接收输入(一系列)图像
  2. 预处理:对图像进行标准化处理(调整图像大小、旋转图像、转换色彩空间)
  3. 提取特征
  4. 将特征输入到分类模型

摄像头图像

最常见计算机视觉数据
计算机如何判断图像

  • 数字图像图像转化为图像矩阵,每个矩阵中包含该网格的像素值
  • 可以通过改变矩阵中的像素值来改变图像亮度(添加一个标量整数)、向右移动每个像素值等操作
  • 数字网格是图像处理技术的基础
  • 二维灰度像素值图像:包含宽度和高度
  • 彩色图像:三位立方体,包含高度、宽度、深度;深度为颜色通道数量,大多为3(红绿蓝RGB);深度可以被认为是三重叠加的二维色层

LiDAR图像

激光雷达传感器(发射光脉冲)创建环境的点云表征,提供了物体的距离和亮度信息。
主要借助光线(激光)测量光束来回的时间以测量距离。
通过对点的聚类分析,提供足够的对象检测、跟踪、分类信息。
在这里插入图片描述

机器学习

模型:存储计算机从数据中学习得到的结果的数据结构,用于理解和预测世界

真值Ground-truth
Ground-truth在机器学习中表示有监督学习的训练集的分类准确性,用于证明或者推翻某个假设。有监督的机器学习会对训练数据打标记,将那些正确打标记的数据成为Ground truth。Ground truth就是参考标准,一般用来做误差量化,最终用于验证分类算法的准确性。真值标定的输入一般是视频文件。真值标定既可以手动一帧一帧地标定,也可以半自动化标定后再手工修正,最终可以将结果保存成真值数据库。

机器学习的四种形式(使用数据和相关真值标记进行模型训练):

  • 监督学习:给图像打标签之后让计算机学习如何区分
  • 无监督学习:给图像打标签,计算机根据图片的相似性自行学习区分
  • 半监督学习:用少量标记数据和大量未标记数据进行模型训练
  • 强化学习:模型通过不同的方法解决问题,通过衡量(如正确则给予奖励机制)哪种方法最为成功就选择哪种方法。即计算机从经验中总结学习

神经(元)网络

人工神经(元)网络:由大量人工神经元组成,神经元负责传递处理信息。
训练神经元:将大量的图片送入神经网络中,进行对特征的提取识别分类训练(各个特征分配合理权重值给单个神经元),大量神经元整合成最终输出,最终计算机就能识别图像并且分类。

反向传播算法

训练的三步循环(一个训练周期)

  1. 前馈:随机分配初始权重(人工神经元的值),神经网络馈送每个图像产生输出值前馈
  2. 误差测定:真值标记与前馈过程输出之间的偏差
  3. 反向传播:神经网络反向发送误差,单个神经元对自身的值进行微调,以达到误差最小化
    反向传播
    训练网络需要进行上千次训练周期的循环

卷积神经网络CNN

标准神经网络的缺陷:二维图像被展开成一维像素阵列(每一行都被拆下来连接成一列),破坏了图像的空间信息。标准神经网络

卷积神经网络:CNN通过过滤器连续滑过图像搜集信息,保持其空间信息不被破坏,只对图片的一小部分进行检测。每一层卷积层都包含上一层的信息。
CNN

检测与分类

  • 检测定位障碍物(包括位置和速度、加速度)
  • 对检测到的障碍物进行分类

检测与分类使用的算法:

  • 检测CNN查找图像中对象的位置,定位后将图像发给另一个CNN进行分类
  • 使用有若干个不同“头”缀连在末端的单一CNN体系结构,每个“头”有不同的任务
  • R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD

跟踪

什么是追踪:对每个帧中的对象进行检测并用边界框对每个对象进行标记

为什么要进行跨帧追踪:

  1. 当对象被遮挡时,检测算法可能会失败,追踪可以解决这一问题
  2. 追踪可以保留身份。检测输出包含对象的边界框标记,使下一帧对象能在当前帧中找到对应的对象。

追踪步骤:

1.确认身份:将前帧中检测到的所有对象与当前帧检测到的对象进行匹配,查找特征相似度最高的对象。计算机通过计算机视觉算法(局部二值模式、方向梯度直方图)计算复杂的图像特征。
2.快速找到匹配对象的位置:连续视频帧中,两个障碍物之间的位置和速度通常没有很大的变化,所以能较快地找到匹配对象的位置。
3.结合预测算法,估计下一个时间步对象的速度和位置,帮助识别下一帧的对象。

分割

语义分割:对图像的每个像素进行分类
FCN(全卷积网络)与传统CNN的区别:传统CNN末端是平坦层,FCN末端还是卷积层
FCN提供可以在原始输入图像之上叠加的逐像素输出(?),但造成输出图像尺寸远小于输入图像,所以要进行上采样处理。

编码器:对输入对象的特征进行提取和编码
解码器:对特征进行解码,原尺寸输出

Apollo感知

  • 检测三维对象:1.在高精度地图上使用感兴趣区域ROI重点关注相关对象,ROI过滤器扫描点云和图像数据缩小搜索范围,加快感知。2.检测网络馈送已过滤的点云,输出用于构建围绕对象的三维边界框。3.跟踪算法跨时间步识别单个对象,保留在每个时间步要跟踪的对象列表,然后在下一个时间步中找到每一个对象的最佳匹配。
  • 检测交通信号灯:1.高精度地图确认前方是否有交通信号灯。2.如果有,高精度地图返回位置缩小摄像头搜索范围,搜索到图像后检测网络进行定位,并将图像分给分类网络确定信号灯颜色。3.若有多个信号灯,则需判断哪些灯与当前车道有关。

YOLO网络:
Apollo使用YOLO网络来检测车道线和动态物体。(待补充)

传感器数据比较

|在这里插入图片描述

感知融合策略

Apollo使用激光雷达和雷达来检测障碍物。
传感器融合提高感知性能。
卡尔曼滤波用于融合输出。

卡尔曼滤波的两个步骤(循环往复):

  1. 预测
  2. 更新测量结果

测量结果更新的两个步骤:

  • 同步融合:同时更新来自不同传感器的测量结果。
  • 异步融合:逐步更新传感器所收到的传感器测量结果。

猜你喜欢

转载自blog.csdn.net/z_vanilla/article/details/107387102