专栏首页人人都是极客无人驾驶技术课——感知(3)

无人驾驶技术课——感知(3)

在前面的课程里,我们提到了感知模块内的计算机视觉和深度学习,这节课我们来讲一讲感知任务中的分类、跟踪、语义分割和 Apollo 感知相关的内容。

在驾驶过程中无人车会遇到许多障碍物,静态障碍物包括墙壁、树木、杆子、建筑物;动态障碍物包括行人、自行车和各种汽车 ,计算机首先要知道这些障碍物的位置,进而障碍物进行分类。

检测与分类

在行驶过程中无人车会探测到许多不同的物体,汽车根据所感知的物体类型来确定路径和速度。

  • 如果感知到前方有一辆自行车,汽车可能会决定减速或变道,以便安全驶过自行车;但是,如果感知到前方是一辆汽车,并预测到前方车辆也将以接近限速的速度行驶,无人车可能会保持其速度与车道。
  • 当无人车前方出现交通信号灯时候,首先计算机视觉会对图像中的交通信号灯进行定位,进而根据交通信号灯显示的颜色对其进行分类。

那么,无人车是用什么算法来对障碍物进行检测和分类的?

首先,我们可以使用检测 CNN 来查找图像中对象的位置,在对图像中的对象进行定位后,我们将图像发送给另一个 CNN 进行分类;我们也可以使用单一 CNN 体系结构对对象进行检测和分类,此时通常的做法是在单个网络体系结构的末端附加几个不同的“头”,一个头可能执行检测,另一个则可能执行分类。

一个经典的体系结构为 R-CNN 及其变体 Fast R-CNN 和 Faster R-CNN,YOLO 和 SSD 是具有类似形式的不同体系结构。

跟踪

在检测完对象后,我们要对检测到的对象进行追踪,进而我们需要知道:

  • 追踪的意义是什么?
  • 如果我们对每个帧中的每个对象进行检测,并用边界框对每个对象进行标识,那么跨帧追踪对象会有什么好处?

首先,追踪可以解决遮挡问题。如果在运行检测算法时,对象被其他对象遮挡了一部分,则检测算法可能会失败,所以追踪在检测失败时至关重要。

目标对象被遮挡后,检测算法可能会失败

追踪可以解决目标对象被遮挡的问题

同时,追踪可以保留身份。障碍物检测的输出为包含对象的边界框,但是,对象没有与任何身份关联,单独使用对象检测时,计算机不知道一个帧中的哪些对象与下一个帧中的哪些对象相对应。该任务对人类来说很简单,但对汽车来说很困难。

没有身份关联时,计算机无法分辨每一帧中相对的对象

通过追踪保留身份

追踪的第一步为确认身份。通过查找特征相似度最高的对象,我们将在之前的帧中检测到的所有对象,与当前的帧中检测到的对象进行匹配,对象具有各种特征,有些特征可能基于颜色,而另一些特征可能基于形状,计算机视觉算法可以计算出复杂的图像特征,如局部二值模式和方向梯度直方图。

我们也需要考虑连续视频帧中两个障碍物之间的位置和速度,由于两个帧之间的对象位置和速度没有太大变化,该信息也可以帮助我们快速找到匹配的对象,在确定身份后,我们可以使用对象的位置并结合预测算法,以估计其在下一个时间步的速度和位置,该预测可帮助我们识别下一帧中的相应对象。

根据两个帧之间对象的位置和速度确认身份

语义分割

语义分割涉及对图像每个像素进行分类,它用于尽可能详细地了解环境,并确定车辆可驾驶区域。语义分割依赖于一种特殊类型的 CNN,它被称为全卷积网络或 FCN,FCN 用卷积层来代替传统 CNN 体系结构末端的平坦层。现在,网络中的每一层都是卷积层,因此其名称为“全卷积网络”。

FCN 提供了可在原始输入图像之上叠加的逐像素输出, 但我们必须考虑的一个复杂因素是大小。在典型的 CNN 中,经过多次卷积之后所产生的输出比原始输入图像小得多,然而,为了分割像素,输入尺寸必须与原始图像的尺寸相匹配。

为了达到该目的,我们可以对中间输出进行上采样处理,直到最终输出的大小与原始输出图像的大小相匹配。网络的前半部分通常被称为“编码器”,因为这部分网络对输入图像的特征进行了提取和编码。网络的后半部分通常被称为“解码器”,因为它对这些特征进行了解码,并将其应用于输出。

Apollo 的感知算法

Apollo 开放式软件栈可感知障碍物、交通信号灯和车道,对于三维对象检测,Apollo 在高精度地图上使用感兴趣区域(ROI)来重点关注相关对象,Apollo 将 ROI 过滤器应用于点云和图像数据,以缩小搜索范围并加快感知。

然后,通过检测网络馈送已过滤的点云,输出用于构建围绕对象的三维边界框

最后,我们使用被称为检测跟踪关联的算法来跨时间步识别单个对象。该算法先保留在每个时间步要跟踪的对象列表,然后在下一个时间步中找到每个对象的最佳匹配。

当无人车前方出现交通信号灯时,Apollo 先使用高精度地图来确定前方是否存在交通信号灯。如果前方有交通信号灯,则高精度地图会返回灯的位置,这侧重于摄像头搜索范围。

在摄像头捕获到交通信号灯图像后,Apollo 使用检测网络对图像中的灯进行定位,然后 Apollo 从较大的图像中提取交通信号灯,Apollo 将裁剪的交通灯图像提供给分类网络,以确定灯颜色,如果有许多灯,则系统需要选择哪些灯与其车道相关。

Apollo 使用 YOLO 网络来检测车道线和动态物体,其中包括汽车、骑自行车的人和行人。在经过 YOLO 网络检测后,在线检测模块会并入来自其他传感器的数据,对车道线预测进行调整,车道线最终被并入名为“虚拟车道”的单一数据结构中。同样也通过其他传感器的数据对 YOLO 网络所检测到的动态对象进行调整,以获得每个对象的类型、位置、速度和前进方向、虚拟通道和动态对象,均被传递到规划和控制模块。

Apollo的感知融合策略

感知通常依赖于摄像头、激光雷达和雷达,该图显示了三种传感器的优缺点

由上图可知:

  • 摄像头非常适用于分类,在 Apollo 中摄像头主要用于交通信号灯分类以及车道检测;
  • 激光雷达的优势在于障碍物检测,即使在夜间没有自然光的情况下, 激光雷达仍能准确地检测障碍物;
  • 雷达在探测范围和应对恶劣天气方面占优势。

通过融合这三种传感器的数据,实现最佳聚合性能被称为传感器融合。Apollo 使用激光雷达和雷达来检测障碍物,用于融合输出的主要算法为卡尔曼滤波。卡尔曼滤波有两个步骤,第一步为预测状态,第二部是更新测量结果。

设想我们正在跟踪一名行人,这里的状态表示行人的位置和速度,从已经掌握的行人状态开始,我们使用这些信息来执行卡尔曼滤波的第一步,即预测行人在未来的状态,下一步为误差结果更新,我们使用新的传感器来更新我们所认为的行人状态。

卡尔曼滤波的算法是预测和更新步骤的无限循环,实际上有两种测量结果更新步骤,同步和异步。同步融合同时更新来自不同传感器的测量结果,而异步融合则逐个更新所收到的传感器测量结果,传感器融合可提高感知性能,因为各传感器相辅相成,融合也可以减少跟踪误差,所以我们可以更加确信对道路上其他物体位置的预测。

同步更新示意

异步更新示意

在最近的三节课中,介绍了无人车的感知运作方式,涉及了不同的方法和传感器, 了解了主要的感知任务,包括检测、分类、跟踪和分割,这些应用中的大部分都依赖于卷积神经网络,最后我们探讨了传感器融合,以及如何使用预测更新周期来过滤传感器数据。正是有了这些工具,无人驾驶才可以使用自身的传感器来感知世界。

如果您对无人车的“感知”模块还有疑问,请在文末留言,我们会为您依次解答。接下来我们将开启新的章节——自动驾驶的“预测”模块。

【转自Apollo阿波罗智能驾驶】

本文分享自微信公众号 - 人人都是极客(rrgeek)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-12-12

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Apollo的数据开放平台介绍

    前段时间百度自动驾驶事业部杨凡对Apollo数据开放平台进行了介绍,介绍内容大纲如下: Apoll能力开放简介 Apoll的“云+端”研发迭代新模式 数据开放平...

    刘盼
  • 深度剖析Apollo自动驾驶平台

    自百度宣布开放 Apollo 自动驾驶平台以来,很多开发者非常期待可以深入了解 Apollo 平台的开放内容,以便更充分高效的利用这个自动驾驶平台,研究并落地自...

    刘盼
  • 干货 | 目标检测入门,看这篇就够了(上)

    作者 | 李家丞( 同济大学数学系本科在读,现格灵深瞳算法部实习生) 近年来,深度学习模型逐渐取代传统机器视觉方法而成为目标检测领域的主流算法,本系列文章将回顾...

    刘盼
  • 【马云】IoT时代的芯片是中国机会;【刘庆峰】人机交互将走向人机耦合

    新智元
  • 视频流媒体Onvif协议是如何保证安防网络产品进行互通的?

    熟悉我们的小伙伴都知道,当我们的RTSP/Onvif流媒体服务器与摄像头可以进行网络连接时,通过RTSP/Onvif流媒体服务器自带的Onvif探测即可实现On...

    EasyNVR
  • 拿下人脸识别“世界杯”冠军!松下-NUS 和美国东北大学实战分享

    【新智元导读】被业界称为人脸识别“世界杯”的微软百万名人识别竞赛 MS-Celeb-1M 冠军团队技术分享。Panasonic-NUS 合作团队认为,竞赛最大的...

    新智元
  • 如何设计优雅的类结构

    注:正文中的引用是直接引用作者作者的话,两条横线中间的段落的是我自己的观点,其他大约都可以算是笔记了。 「Clean Code」这本书从这一章开始文风有些变化,...

    用户1667431
  • MPEG进展-第120次会议总结

    2017年10月27日,MPEG第120次会议在中国澳门落幕,这次会议讨论的内容主要包括了以下几个主题: 点云压缩——MPEG评价了对于CfP(call for...

    用户1324186
  • 图像超分辨率进ASC19超算大赛,PyTorch+GAN受关注

    来自全球200余所高校的300多支大学生队伍,将在长达两个月的初赛阶段,尝试挑战一项当前热门的人工智能技术——单张图像超分辨率(Single Image Sup...

    量子位
  • c语言基础学习08_关于内存管理的复习

    ============================================================================= 对于...

    黑泽君

扫码关注云+社区

领取腾讯云代金券