热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

apollo3.0感知模块分析(官方开发文档)

本文章来自:github——apollo官网原创:阿波君感知Apollo3.0June27,2018简介Apollo3.0主要针对采用低成本传感

本文章来自:github——apollo官网    原创:阿波君         

感知

Apollo 3.0 June 27, 2018

简介

Apollo 3.0 主要针对采用低成本传感器的L2级别自动驾驶车辆。在车道中的自动驾驶车辆通过一个前置摄像头前置雷达要与关键车辆(在路径上最近的车辆)保持一定的距离。Apollo 3.0 支持在高速公路上不依赖地图的高速自动驾驶。深度网路学习处理图像数据,随着搜集更多的数据,深度网络的性能随着时间的推移将得到改善。

安全警告

Apollo 3.0 不支持没有包含本地道路和说明标示的急转弯道路。感知模块是基于采用深度网络并结合有限数据的可视化检测技术。因此,在我们发布更好的网络之前,驾驶员应该小心驾驶并控制好车辆方向而不能依赖与自动驾驶。请在安全和限制区域进行试驾。

  • 推荐道路

    • 道路两侧有清晰的白色车道线
  • 禁止

    • 急转弯道路
    • 没有车道线标记的道路
    • 路口
    • 对接点或虚线车道线
    • 公共道路


 


感知模块

每个模块的流程图如下所示。

 

                                                                           图 1: Apollo 3.0的流程图

深度网络

深度网络摄取图像并为Apollo 3.0提供两个检测输出,车道线对象

在 Apollo 3.0, YOLO [1][2] 被用作对象车道线检测基础网络。该对象具有车辆、卡车、骑车人和行人类别,并由表示成具有方向信息的2-D边界框。

通过使用具有一些修改的相同网络进行分段来检测车道线。对于整条车道线,我们有一个单独的网络,以提供更长的车道线,无论是车道线是离散的还是连续的。

 

物体识别/跟踪是指什么?

在交通场景中,有两类物体: 静态物体动态物体

静态物体包括车道线、交通信号灯以及数以千计的以各种语言写成的交通标示。除了驾驶之外,道路上还有多个地标,主要用于视觉定位,包括路灯,障碍物,道路上的桥梁或任何天际线。对于静态物体,Apollo 3.0将仅检测车道线.

动态物体中,Apollo在路上关心乘用车,卡车,骑自行车者,行人或任何其他物体,包括动物或身体部位。Apollo还可以根据物体所在的车道对物体进行分类最重要的物体是CIPV(路径中最近的物体)。下一个重要对象将是相邻车道中的物体。

 

2D-to-3D 边界框

给定一个2D盒子,其3D大小和相机方向,该模块搜索相机坐标系统中的3D位置,并使用该2D盒子的宽度,高度或2D区域估计精确的3D距离。该模块可在没有准确的外部相机参数的情况下工作。

 

对象跟踪

对象跟踪模块利用多种信息,例如3D位置,2D图像补丁,2D框或深度学习ROI特征。 跟踪问题通过有效地组合线索来表达为多个假设数据关联,以提供路径和检测到的对象之间的最正确关联,从而获得每个对象的正确ID关联。

 

车道检测/追踪

在静态对象中,我们在Apollo 3.0中将仅处理通道线。该车道用于纵向和横向控制。车道本身引导横向控制,并且在车道内的对象引导纵向控制。

车道线

我们有两种类型的车道线,车道标记段和整个车道线。车道标记段用于视觉定位,整个车道线用于使车辆保持在车道内。 该通道可以由多组折线表示,例如下一个左侧车道线,左侧线,右侧线和下一个右侧线。给定来自深度网络的车道线热图,通过阈值化生成分段的二进制图像。该方法首先找到连接的组件并检测内部轮廓。然后,它基于自我车辆坐标系的地面空间中的轮廓边缘生成车道标记点。之后,它将这些车道标记与具有相应的相对空间(例如,左(L0),右(R0),下左(L1),下(右)(L2)等)标签的若干车道线对象相关联。

 

CIPV (最近路径车辆)

CIPV是当前车道中最接近的车辆。对象由3D边界框表示,其从上到下视图的2D投影将对象定位在地面上。然后,检查每个对象是否在当前车道中。在当前车道的对象中,最接近的一个将被选为CIPV。

 

跟车

跟车是跟随前车的一种策略。从跟踪对象和当前车辆运动中,估计对象的轨迹。该轨迹将指导对象如何在道路上作为一组移动并且可以预测未来的轨迹。有两种跟车尾随,一种是跟随特定车辆的纯尾随,另一种是CIPV引导的尾随,当检测到无车道线时,当前车辆遵循CIPV的轨迹。

输出可视化的快照如图2所示。 

图 2: Apollo 3.0中感知输出的可视化。左上角是基于图像的输出。左下角显示了对象的3D边界框。右图显示了车道线和物体的三维俯视图。CIPV标有红色边框。黄线表示每辆车的轨迹

 

雷达 + 摄像头融合

给定多个传感器,它们的输出应以协同方式组合。

1、Apollo 3.0,介绍了一套带雷达和摄像头的传感器。对于此过程,需要校准两个传感器。每个传感器都将使用Apollo 2.0中介绍的相同方法进行校准

2、校准后,输出将以3-D世界坐标表示,每个输出将通过它们在位置,大小,时间和每个传感器的效用方面的相似性进行融合

3、在学习了每个传感器的效用函数后,摄像机对横向距离的贡献更大,雷达对纵向距离测量的贡献更大。异步传感器融合算法也作为选项提供。

世界坐标是3D中的当前车辆坐标,其中后中心轴是原点。

 

伪车道

所有车道检测结果将在空间上临时组合以诱导伪车道,该车道将被反馈到规划和控制模块。某些车道线在某帧中不正确或缺失。为了提供平滑的车道线输出,使用车辆里程测量的历史车道线。当车辆移动时,保存每个帧的里程表,并且先前帧中的车道线也将保存在历史缓冲器中。检测到的与历史车道线不匹配的车道线将被移除,历史输出将替换车道线并提供给规划模块。

 

超声波传感器

Apollo 3.0支持超声波传感器。每个超声波传感器通过CAN总线提供被检测对象的距离。来自每个超声波传感器的测量数据被收集并作为ROS主题广播。将来,在融合超声波传感器后,物体和边界的地图将作为ROS的输出发布。

 

感知输出

PnC的输入将与之前基于激光雷达的系统的输入完全不同。

  • 车道线输出

    • 折线和/或多项式曲线
    • 车道类型按位置:L1(左下车道线),L0(左车道线),R0(右车道线),R1(右下车道线
  • 对象输出

    • 3D长方体
    • 相对速度和方向
    • 类型:CIPV,PIHP,其他
    • 分类:汽车,卡车,自行车,行人
    • Drops:物体的轨迹

世界坐标是3D中的当前车辆坐标,其中后中心轴是原点。

参考

[1] J Redmon, S Divvala, R Girshick, A Farhadi, "你只看一次:统一的实时物体检测" CVPR 2016

[2] J Redmon, A Farhadi, "YOLO9000: 更好, 更快, 更强," arXiv preprint

 

希望对你有帮助。

     


推荐阅读
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 【论文】ICLR 2020 九篇满分论文!!!
    点击上方,选择星标或置顶,每天给你送干货!阅读大概需要11分钟跟随小博主,每天进步一丢丢来自:深度学习技术前沿 ... [详细]
  • 人工智能推理能力与假设检验
    最近Google的Deepmind开始研究如何让AI做数学题。这个问题的提出非常有启发,逻辑推理,发现新知识的能力应该是强人工智能出现自我意识之前最需要发展的能力。深度学习目前可以 ... [详细]
  • 论文阅读:《Bag of Tricks for LongTailed Visual Recognition with Deep Convolutional Neural Networks》
    基于深度卷积神经网络的长尾视觉识别技巧包摘要近年来,挑战性长尾分布上的视觉识别技术取得了很大的进展,主要基于各种复杂的范式(如元学习)。除了这些复杂 ... [详细]
  • 深度学习与神经网络——邱锡鹏
    深度学习与神经网络——邱锡鹏-一、绪论人工智能的一个子领域神经网络:一种以(人工))神经元为基本单元的模型深度学习:一类机器学习问题,主要解决贡献度分配问题知识结构:路线图:顶 ... [详细]
  • 65位高校教师接龙晒工资!给打算入高校的研究生们参考!
    本文转载自:募格学术|来源:麦可思研究综合整理自小木虫论坛前有清华教授被骗千万,后有某重点高校青年教师晒出月薪900的工资条, ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 深度学习中的Vision Transformer (ViT)详解
    本文详细介绍了深度学习中的Vision Transformer (ViT)方法。首先介绍了相关工作和ViT的基本原理,包括图像块嵌入、可学习的嵌入、位置嵌入和Transformer编码器等。接着讨论了ViT的张量维度变化、归纳偏置与混合架构、微调及更高分辨率等方面。最后给出了实验结果和相关代码的链接。本文的研究表明,对于CV任务,直接应用纯Transformer架构于图像块序列是可行的,无需依赖于卷积网络。 ... [详细]
  • 5G新空口关键技术之信道编码
    信道编码概念  信道编码过程包括添加循环冗余校验码(CRC,CyclicRedundancyCheck)、码块分割(Code ... [详细]
  • 干货 | 携程AI推理性能的自动化优化实践
    作者简介携程度假AI研发团队致力于为携程旅游事业部提供丰富的AI技术产品,其中性能优化组为AI模型提供全方位的优化方案,提升推理性能降低成本࿰ ... [详细]
  • SLAM优秀开源工程最全汇总
    https:zhuanlan.zhihu.comp145750808 1、CartographerCartographer是一个系统,可跨多个平台和传感器配置以2D和3D形式提供实 ... [详细]
  • Go语言实现堆排序的详细教程
    本文主要介绍了Go语言实现堆排序的详细教程,包括大根堆的定义和完全二叉树的概念。通过图解和算法描述,详细介绍了堆排序的实现过程。堆排序是一种效率很高的排序算法,时间复杂度为O(nlgn)。阅读本文大约需要15分钟。 ... [详细]
author-avatar
mobiledu2502927743
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有