目录
计算机视觉任务
视觉图像
lidar图像
深度学习
卷积神经网络
检测与分类
tracking跟踪
segmentation 语义分割
Apollo感知:
传感器比较:
雷达与激光雷达:
感知融合
卡尔曼滤波
硬件平台
作为人类可以自动识别图像中的物体,甚至可以推断这些物体之间的关系。但是 对于计算机而言,图像只是红色、绿色和蓝色值的集合。如何将这些颜色值翻译为解读有意义的图像内容并不明显。
无人驾驶车有四个感知世界的核心任务。
是一个视觉任务。分为图像采集,图像预处理,特征提取,使用分类器分类。
摄像头图像:就是传统数字图像:
是向周围发射激光脉冲,进而获得环境的点云表征
红色是人,绿色是车,
CNN 通过维持输入像素之间的空间关系来解决这个问题。具体来说 CNN 通过将过滤器连续滑过图像来收集信息,每次收集信息时,只对整个图像的一小部分区域进行分析,这被称为 “卷积”。
当我们在整个输入图像上对一个过滤器进行“卷积”时,我们将该信息与下一个卷积层相关联。例如 CNN 可以识别第一个卷积层中的基本边缘和颜色信息,然后 通过在第一层上卷积新过滤器,CNN 可以使用边缘和颜色信息,来归纳更复杂的结构 如车轮、车门和挡风玻璃。而另一个卷积可使用车轮、车门和挡风玻璃识别整个车辆。最后 神经网络可使用这一高阶信息对车辆进行分类。人们通常不太清楚 CNN 如何解读图像,CNN 有时会侧重于图像中令人惊讶的部分,但这也是深度学习的神奇之处。CNN 根据其任务查找真正需要的特征,任务可能是图像检测、分类、分割或其他类型的目标。
计算机首先需要知道这些障碍物的位置,然后对它们进行分类。在路中行驶的无人驾驶车可能会探测到许多不同的物体,汽车根据所感知的物体类型,来确定路径和速度。如果感知到前方有一辆自行车,汽车可能会决定减速和变道 以便安全驶过自行车。但是 如果感知到前方有另一辆车,并预测到前方车辆也将以接近限速的速度行驶。无人驾驶车可能会保持其速度和车道。
该任务对人类来说很简单 但对汽车来说很困难。
追踪的第一步为确认身份,通过查找特征相似度最高的对象,我们将在之前的帧中检测到的所有对象与在当前的帧中检测到的对象进行匹配。对象具有各种特征,有些特征可能基于颜色 而另一些特征可能基于形状,计算机视觉算法可以计算出复杂的图像特征,如局部二值模式和方向梯度直方图。
当然 我们也需要考虑连续视频帧中,两个障碍物之间的位置和速度。由于两个帧之间的对象位置和速度没有太大变化,该信息也可以帮助我们快速找到匹配的对象。
在确定身份后 我们可以使用对象的位置,并结合预测算法以估计在下一个时间步的速度和位置,该预测可帮助我们识别下一帧中的相应对象。
语义分割涉及对图像的每个像素进行分类。它用于尽可能详细地了解环境,并确定车辆可驾驶区域。
语义分割依赖于一种特殊类型的 CNN,它被称为全卷积网络 或 FCN。FCN 用卷积层来替代传统 CNN 体系结构末端的平坦层。现在 网络中的每一层都是卷积层,因此其名称为“全卷积网络”。
首先进行下采样进行特征提取(编码)
然后是上采样得到像素类别(解码)
Apollo 将 ROI 过滤器应用于点云和图像数据,以缩小搜索范围并加快感知。然后 通过检测网络馈送已过滤的点云,输出用于构建围绕对象的三维边界框,最后 我们使用被称为 检测跟踪关联 的算法来跨时间步识别单个对象。
感知通常依赖于摄像头、激光雷达和雷达。该图显示了这三种传感器的优缺点,绿色代表性能良好,黄色代表混合性能,红色代表性能不佳。
雷达已经在汽车上使用很多年,在各种系统中都需要雷达,如自适应巡航控制、盲点警告、碰撞浸膏和碰撞预防系统等。尽管雷达技术已经成熟,它仍在不断进步,作用不断提升。其他传感器测量速度的方法是计算两次读数之间的差距,而雷达则通过多普勒效应来直接测量速度。多普勒效应根据对象在远离还是接近你,测量出雷达的频率变化。就像消防车警报器一样,当车辆正在远离你和驶向你时,听起来声是不一样的。多普勒效应对传感器融合至关重要。因为它可以把速度作为独立的测量参数,从而提升了融合算法的收敛速度。雷达还可以生成环境的雷达地图,进而实现定位。因为雷达波在坚硬表面会回弹。因此,它可以直接测量对象距离,无需在视线范围内也可以。雷达可以看到其他车辆底部。并发现可能会被阻挡的建筑物和对象。在车上的所有传感器中,雷达是至不容易受雨雾影响的。而且视野宽阔,可达 150 度,距离可达200 多米。与激光雷达和摄像头相比,雷达分辨率较低,尤其是在垂直方向,分辨率非常有限。分辨率低意味着来自静态物体的反射可能产生问题。例如,街道上检修孔盖或汽水罐,可能产生很高的雷达反射率,但他们并不大。我们将其称为雷达杂波。因此,当前的车载雷达通常会忽视静态物体。
激光雷达是激光探测与测量的简称,而雷达则谁无线电探测与测量的简称。雷达使用无线电波,而激光雷达则使用红激光束来确定传感器和附近对象的距离。
目前的激光雷达大多使用 900 纳米光波长度的光源。但部分激光雷达使用的光波长度更长,在雨雾中性能更好。当前的激光雷达使用旋转座架发射激光,扫描周边环境。激光室脉冲式的,脉冲被对象反射,然后返回一个点云,来代表这些物体。
激光雷达的空间分辨率远远高于雷达。因为激光束越聚焦,垂直方向的扫描层数量就越多,因此每层的激光雷达的密度也越高。目前,激光雷达还不能直接测量对象的速度,必须使用两次或多次扫描之间的位置差来确定。激光雷达受天气和传感器清洁程度影响也很大,因此需要保持清洁。它们块头也比其他传感器更大,因此也很难安装,除非你只想在车顶安装一个大的激光扫描器。
Apollo 使用激光雷达和雷达来检测障碍物。用于融合输出的主要算法为卡尔曼滤波。
卡尔曼滤波有两个步骤。第一步为预测状态(predict state),第二步是更新测量结果(update measurement)。
设想我们正在跟踪一名行人,这里的状态表示行人的位置和速度,从已经掌握的行人状态开始。我们使用这些信息来执行卡尔曼滤波的第一步,即预测行人在将来的状态。
下一步为误差结果更新,我们使用新的传感器来更新我们所认为的行人状态,卡尔曼滤波算法是预测和更新步骤的无限循环
实际上有两种测量结果更新步骤:同步和异步。同步融合同时更新来自不同传感器的测量结果,而异步融合则逐个更新所收到的传感器测量结果。传感器融合可提高感知性能 因为各传感器相辅相成,融合也可以减少跟踪误差,所以我们可以更加确信,对道路上其他物体位置的预测。
Apollo感知二