预则立不预则废,本命年要注意,真男人不回头。

apollo的感知分为以下几个方面:lidar、ladar、camera、fusion。

1. Camera感知

Apollo视觉检测,地址在:Apollo/modules/perception/camera/lib/obstacle ; 主要是用了YOLOv3的检测方法,一方面我们需要对多个类别进行识别:车辆、卡车、骑车人和行人等;另一方面一个网络识别一个类别精度更高,但是也需要考虑性能问题。所以在Apollo中采用折中方案:训练了两个不同的网络:一个是针对目标进行识别的网络:车辆、卡车、骑车人和行人等;一个是针对车道线、道路边沿、栏杆等。

在Apollo中物体分为静态物体和动态物体,所以针对不同的对象会有不同的属性,例如对于运动物体,需要2D-to-3D的模块,这里就不展开了;另外物体追踪也是提高精度的方法,追踪采用Kalman滤波。跟踪必须是轻量化,必须速度要快,计算两帧之间检测到的目标的相似性的方法定义在 Apollo/modules/perception/camera/lib/obstacle/tracker/common/similar.h 文件中,主要是根据bbox的IOU(交并比)计算。

apollo摄像头的感知部分主要资料都在apollo自己的文档中,我也没有详细的梳理代码,大家可以多参考apollo自的文档:https://github.com/ApolloAuto/apollo/blob/r5.0.0/docs/specs/perception_apollo_3.0_cn.md

2. Lidar感知

Lidar的感知步骤很清晰:分割、分类、跟踪

1.  ROI分割,结合HDmap和自身定位,选取ROI 区域,一般的就是选道路里面的区域,如图:,处理在ROI之外的激光雷达点,去除背景对象,如路边建筑物和树木等,剩余的点云留待后续处理。

2.  目标分类,继续细分如下步骤:

(1). 在2d俯视图上划分网格,边长一般取0.25米。

(2). 在划分好的每个网格中,统计以下变量作为网格的属性:单元格中点的最大高度、单元格中最高点的强度、单元格中点的平均高度、单元格中点的平均强度、单元格中的点数、单元格中心相对于原点的角度、单元格中心与原点之间的距离、二进制值标示单元格是空还是被占用(单元格内是否有点)。

(3). 把上一步得到的多维矩阵作为输入,通过卷积神经网络预测可以得到关于单元格的12个特征:1. 是否是物体的预测值;2. 向中心偏移预测;3. 为前景物体概率;4.多个类别的预测:行人,汽车,自行车等;5. 物体高度预测;

(4). 上一步得到每个网格的多维属性,但是需要聚类为几个独立的障碍物,这里主要是用到向中心偏移,通过方向聚合障碍物,如图a最终得到b:俯视图:

(5). 后期处理,Apollo首先对所涉及的单元格的积极性和物体高度值,平均计算每个候选群体的检测置信度分数和物体高度。 然后,Apollo去除相对于预测物体高度太高的点,并收集每个候选集中的有效单元格的点。 最后,Apollo删除具有非常低的可信度分数或小点数的候选聚类,以输出最终的障碍物集。

3. 目标跟踪,分为两部分:目标匹配和运动跟踪;

(1). 目标匹配又很多方法,例如匈牙利匹配和交并比(IOU),apollo特别的在外形的匹配基础上加入多个维度计算相似性:

,在以上维度的基础上采用匈牙利匹配进行匹配。

(2). 运动跟踪主要是使用卡尔曼滤波来track ,再剔除异常数据,特别的对物体的速度描述如下:锚点移位速度、边界框中心偏移速度 和 边界框角点位移速度,选出与之前观测速度偏差最小的速度为最终的观测值。根据最近3次的速度观测值,计算出加速度,之后利用卡尔曼滤波来不断收敛物体的位置。

3. Ladar

在Apollo中Radar感知的流程与Lidar感知相比简化了一些,主要分为:预处理工作、高精地图ROI过滤器、物体检测、物体跟踪

1. 第一步预处理工作主要是矫正雷达数据的时间戳、获取雷达到世界坐标系的变换矩阵。

2. 这部分其实与激光雷达Lidar感知的高精地图ROI过滤器比较类似,在激光雷达中查询的范围是60m,而在雷达感知中查询的范围为120m,计算当前时刻车辆的速度,之所以要计算,是因为要差值出雷达感知的时刻对应的车辆速度,这也要求在记录不同传感器的数据时,必须同步记录好对应的时间。

3. 雷达Radar感知相对于激光雷达Lidar感知更加简单,是因为Apollo使用Radar就可以分辨出自行车、行人等类别。而激光雷达Lidar需要手动去CNN分割识别障碍物,MiniBox构建标定框等;同时Radar也可以自行完成跟踪,不需要使用匈牙利算法对Object进行匹配等。

4. 最后Radar的检测结果将会以自定义的共享数据类型发布,发布的结果其实与Lidar感知相似。障碍物的尺寸、方向、速度等信息。

4. Fusion

传感器的数据融合有两部分内容比较重要,即 数据关联 和 动态预估。

1. 数据关联用的是基于几何距离的HM匈牙利算法。

2. 动态预估用的是:使用了非简化的估计误差协方差矩阵更新公式:   1. 标准卡尔曼滤波: 2. 修改后的Apollo公式为:

5. 总结

自动驾驶(八十一)---------Apollo之感知模块相关推荐

  1. 自动驾驶:2022 apollo day 观后感(二)

    自动驾驶:2022 apollo day 观后感(二) TOPIC TWO:自动驾驶地图:Apollo的实践和思考(黄际洲) 地图需求升级 自动驾驶规划方向 轻成本,重体验 轻成本 重体验 安全: 舒 ...

  2. 5G网络实现自动驾驶车联网——第一篇:5G模块介绍实现上网功能

    5G网络实现自动驾驶车联网--第一篇:5G模块介绍实现上网功能 大家好我是Jones,写博客记录一下工作的痕迹,同时也对工作做一个总结,才疏学浅,难免会有很多纰漏,还请大家批评指正,创业初期,欢迎技术 ...

  3. Apollo自动驾驶入门课程第⑤讲 — 感知(下)

    目录 1. 卷积神经网络 2. 检测与分类 3. 跟踪 4. 分割 5. Apollo感知 6. 传感器数据比较 7. 感知融合策略 本文转自微信公众号:Apollo开发者社区 原创: 阿波君 Apo ...

  4. Apollo自动驾驶入门课程第④讲 — 感知(上)

    目录 1. 感知的概述 2. 计算机视觉 3. 摄像头图像 4. LiDAR图像 5. 机器学习 6. 神经网络 7. 反向滤波法 本文转自微信公众号:Apollo开发者社区 原创: 阿波君 Apol ...

  5. apollo自动驾驶进阶学习之:canbus模块代码分析

    文章目录 封面 代码架构 内容结构 封面 apollo自动驾驶:canbus模块代码讲解及测试(1)引言 apollo自动驾驶:canbus模块代码讲解及测试(2)框架讲解 代码架构 但是apollo ...

  6. 【自动驾驶】13. Apollo交通信号灯感知

    Apollo交通信号灯感知 本文档详细的介绍了Apollo2.0中交通信号感知模块的工作原理. 简介 交通信号灯感知模块通过使用摄像头提供精确全面的路面交通信号灯状态. 通常情况下,交通信号灯有3种状 ...

  7. 李彦宏亲测“自动驾驶汽车”,Apollo(阿波罗)坐镇

    今天百度AI开发者大会又掀起一个小高潮.百度董事会副主席.集团总裁兼首席运营官现场连线正赶来主题演讲的百度创始人.董事长兼首席执行官李彦宏,李彦宏正坐在一辆自动驾驶汽车的副驾,主驾好似坐了一位&quo ...

  8. 自动驾驶学习过程(Apollo)

    文章目录 前言 一.自动驾驶基础概念 1. 自动驾驶等级 2. 无人驾驶车的核心 3. 自动驾驶的研发流程 4. 自动驾驶汽车的硬件系统 4.1 核心传感器: 4.2 传感器单元(Sensor box ...

  9. 基于Unity的自动驾驶模拟总结(Apollo)

    什么是Apollo平台 阿波罗是百度的全栈开放开源的自动驾驶软件平台. 上图是Apollo 3.5版本的架构图,我们可以看到阿波罗是从下往上的全栈式的平台,从硬件到各种感知器,到我们自主开发的Cybe ...

最新文章

  1. 通信专业学python有用吗-通信算法工程师需要学python吗
  2. 最全面的 python 字符串拼接总结(带注释版)
  3. nginx+keepalived互为主主高可用配置
  4. ECCV 2020 Spotlight | 多标签长尾识别前沿进展
  5. java lambda max_在Java中使用Lambda表达式查找Max
  6. Problem H: 今年第几天?
  7. 开发模式遵循的规则_研究每个软件开发人员应遵循的10条规则
  8. rose顺序图转换为协作图_如何用GX Developer编程软件编写SFC顺序功能图?
  9. 当碰到非ARC写的文件时在ARC环境下运行报错时解决办法
  10. 丰田chr内外循环怎么区分_雨季车窗起雾怎么办?空调内外循环别错用
  11. 修改键盘映射、交换按键
  12. docker-compose 启动顺序的问题depends_on
  13. 高精度定位赋能行业创新,Petal Maps Platform 创新地图平台能力
  14. 2022JK工作室第二次招新赛题解
  15. 阿里云海外云服务器5折起,新老用户均可选购(免备案)
  16. 蓝桥杯 印章Java
  17. 日常随笔——m1 macbook安装和配置qt
  18. 在iPhone上使用3D Touch
  19. 软件设计的概念与原则
  20. HTMl页面加入落叶下雨动画,HTML5和Webkit实现树叶飘落动画

热门文章

  1. 第15节-热区Hot Spots | 剑雨Axure RP9系列【基础】
  2. LocalDate 和LocalDateTime
  3. bim webgl 模型 轻量化_WebGL轻量化BIM引擎如何加载大体量BIM模型
  4. Java EE(进阶版)
  5. vue大文件下载(下载进度展示)
  6. Cannot autogenerate id of type java.lang.Integer for entity
  7. TPS和事务响应时间的关系、计算公式
  8. 用计算机画函数图象的软件,信息技术应用 用计算机画函数图象优秀教案
  9. R语言作图好看的秘籍:RColorBrewer调色板详解
  10. CSS/HTML 5简洁带图标的input日期选择器