热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

Apollo感知

转自Apollo阿波罗智能驾驶原文章地址:https:baijiahao.baidu.coms?id1619639699587335253&wfrspider&fo

转自  Apollo阿波罗智能驾驶 

原文章地址: https://baijiahao.baidu.com/s?id=1619639699587335253&wfr=spider&for=pc

在前面的课程里,我们提到了感知模块内的计算机视觉和深度学习,这节课我们来讲一讲感知任务中的分类、跟踪、语义分割和 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 使用激光雷达和雷达来检测障碍物,用于融合输出的主要算法为卡尔曼滤波。卡尔曼滤波有两个步骤,第一步为预测状态,第二部是更新测量结果。

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

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

 

同步更新示意

 

异步更新示意

 

 

 

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

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


推荐阅读
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • EST:西湖大学鞠峰组污水厂病原菌与土著反硝化细菌是多重抗生素耐药基因的活跃表达者...
    点击蓝字关注我们编译:祝新宇校稿:鞠峰、袁凌论文ID原名:PathogenicandIndigenousDenitrifyingBacte ... [详细]
  • 非计算机专业的朋友如何拿下多个Offer
    大家好,我是归辰。秋招结束后,我已顺利入职,并应公子龙的邀请,分享一些秋招面试的心得体会,希望能帮助到学弟学妹们,让他们在未来的面试中更加顺利。 ... [详细]
  • 深入解析国内AEB应用:摄像头和毫米波雷达融合技术的现状与前景
    本文作者程建伟,武汉极目智能技术有限公司CEO,入选武汉市“光谷3551人才计划”。文章详细探讨了国内自动紧急制动(AEB)系统中摄像头与毫米波雷达融合技术的现状及未来前景。通过分析当前技术的应用情况、存在的挑战以及潜在的解决方案,作者指出,随着传感器技术的不断进步和算法优化,AEB系统的性能将大幅提升,为交通安全带来显著改善。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 通过手机获取的GPS坐标在手机地图上存在约100-200米的偏差,但在Google Maps中搜索同一坐标时,定位非常精确。这种偏差可能出于安全或隐私考虑而被有意引入。此外,不同设备和环境下的GPS信号强度和精度也会影响最终的定位结果。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 应用链时代,详解 Avalanche 与 Cosmos 的差异 ... [详细]
  • Python 3 Scrapy 框架执行流程详解
    本文详细介绍了如何在 Python 3 环境下安装和使用 Scrapy 框架,包括常用命令和执行流程。Scrapy 是一个强大的 Web 抓取框架,适用于数据挖掘、监控和自动化测试等多种场景。 ... [详细]
  • 超分辨率技术的全球研究进展与应用现状综述
    本文综述了图像超分辨率(Super-Resolution, SR)技术在全球范围内的最新研究进展及其应用现状。超分辨率技术旨在从单幅或多幅低分辨率(Low-Resolution, LR)图像中恢复出高质量的高分辨率(High-Resolution, HR)图像。该技术在遥感、医疗成像、视频处理等多个领域展现出广泛的应用前景。文章详细分析了当前主流的超分辨率算法,包括基于传统方法和深度学习的方法,并探讨了其在实际应用中的优缺点及未来发展方向。 ... [详细]
author-avatar
书友36782274
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有