写点什么

L4 自动驾驶中感知系统遇到的挑战及解决方案

  • 2019-05-17
  • 本文字数:2794 字

    阅读完需:约 9 分钟

L4自动驾驶中感知系统遇到的挑战及解决方案

本次分享的大纲


  • Perception Introduction

  • Sensor Setup & Sensor Fusion

  • Perception Onboard System

  • Perception Technical Challenges

1. Perception Introduction

Perception 系统是以多种 sensor 的数据,以及高精度地图的信息作为输入,经过一系列的计算及处理,对自动驾驶车的周围的环境精确感知。能够为下游模块提供丰富的信息,包括障碍物的位置、形状、类别及速度信息,也包括对一些特殊场景的语义理解(包括施工区域,交通信号灯及交通路牌等)。


Perception 系统包括多个方面及子系统:


  1. 传感器:传感器的安装,视场角,探测距离,数据吞吐、标定精度,时间同步。因为用到的传感器比较多,时间同步的解决方案这里会起到非常重要的作用。

  2. 目标检测及分类:为了保证车辆百分百的安全,能够达到近似百分之百的召回率及非常高的准确率;这里会涉及到深度学习方面的工作,包括 3D 点云及 2D Image 上的物体检测及多传感器融合方面等。

  3. 多目标追踪:跟进多帧的信息计算并预测障碍物的运动轨迹。

  4. 场景理解,包括交通信号灯,路牌,施工区域,以及特殊类别,比如校车,警车。

  5. 机器学习分布式训练基础架构及相关的 Evaluation 评价系统。

  6. 数据:大量的标注数据,这里包括 3D 点云数据及 2D 的图片数据等。


目前传感器主要分为 3 个类别:


  1. Lidar 激光雷达;

  2. Camera 相机;

  3. Radar 毫米波雷达。




这张图相当于 Perception 物体检测的输出,能够检测车辆周围的障碍物,包括车辆、行人、自行车等,同时结合高精度地图,会对周边的 Background 信息进行输出。


图中绿颜色的是一辆车,橙色的是一辆摩托车,黄颜色的是一个行人,灰颜色是一些背景如植被信息。



结合多帧的信息,对运动的行人和车辆的速度,方向,进行精确的输出。

2. Sensor Setup & Sensor Fusion

以上是 Perception 系统从输入到输出的一个大概介绍。接下来总体介绍 Pony.ai 第三代车辆的传感器安装方案以及传感器融合的解决方案。


目前我们的整个传感器安装的解决方案,是能够覆盖 360 度,范围 200 米的感知距离。从不同传感器的安装,不同角度来看,首先用到了 3 个激光雷达,顶部和两侧。激光雷达有 100 米的感知距离。同时通过 4 个广角的摄像头来覆盖相机 360 度的视野。远处的视野通过前向的毫米波雷达以及长焦的相机,将感知距离扩到 200 米的范围。这套传感器配置能保证我们的自动驾驶车辆在居民区、商业区、工业区这样的场景进行自动驾驶。



18 年 9 月份世界人工智能大会上推出的第 3 代的传感器配置方案。



前边的相机两个广角,一个长焦。使得可以看到更远距离的信号灯的信息,两百米内红绿灯的状态。


上面介绍了整个传感器的安装方案。下面主要介绍下多传感器融合的解决方案。


第一个要解决的问题是把不同的传感器的数据标定到同一个坐标系里。包括相机的内参标定,Lidar 到相机的外参标定,雷达到 GPS 的外参标定。


传感器融合重要的前提是要能把标定精度提高到非常高的一个精度,不管是做结果层面的传感器融合,还是元数据层面的传感器融合,是一个必要的基础。



这张图可以看到,我们将 3D 的激光点云投射到影像上,可以看到传感器标定的精度还是挺高的。


整个标定的工作基本上已经做到完全自动化的方式。不同传感器标定的方案:



首先是相机内参的标定,内参的标定平台对每一个相机能够在两到三分钟之内做到传感器的标定。



这个图是相机到激光雷达的外参标定,激光雷达是 360 度旋转的方式,每旋转一周是 100 毫秒。相机是某一瞬时曝光的问题,所以涉及到时间同步的一个方式,通过 Lidar 来触发相机曝光。比如说我们有 4 个相机,能够通过激光雷达去保证时间同步。


3D 和 2D 彼此互补,二者更好的融合能够对感知会有更精确的输出。




下面是整个的一个 demo,大家可以看下:


00:00 / 00:00
    1.0x
    • 3.0x
    • 2.5x
    • 2.0x
    • 1.5x
    • 1.25x
    • 1.0x
    • 0.75x
    • 0.5x
    网页全屏
    全屏
    00:00


    Raw Sensor-fused Output

    3. Perception Onboard

    上面大概介绍了整个 perception 的 sensor 的 setup,以及 sensor fusion 做法。接下来介绍车载的 Perception Onboard 的架构是什么样的,以及解决方案是什么。



    这是整个 Perception Onboard 的架构。首先用 LiDAR,Camera,Radar 三种 sensor 数据通过时间同步,所有的时间误差控制在 50 毫秒以内。结合 sensor 的数据,进行 frame wise 的 detection 及 classification 等计算,最后利用多 frame 信息进行多目标跟踪,最后将相关结果输出。这里涉及到 Sensor Fusion, Deep Learning 相关的技术细节,这里不做过多的讨论。


    整个 Perception 系统的解决方案要保证这 5 点:


    1. 首先是安全,保证近乎百分之百的 detection 的 recall

    2. Precision 要求非常高,如果低于某个阈值,造成 False Positive,车辆在自动驾驶状态下会非常不舒适

    3. 尽量输出所有对行车有帮助的信息,包括路牌,交通信号灯及其它场景理解的信息

    4. 保证高效的运行,能够近实时的处理大量的 sensor 的数据

    5. scalability 可扩展性也很重要,deep learning 依赖大量数据,整个模型的泛化能力如何都是非常重要的。能够让我们的 model 和一些新的算法能够去适配更多的城市和更多的国家。

    4. Perception Technical Challenges

    下面分享有挑战性的一些场景:


    第一部分:precision 和 recall 的 balance;


    第二部分:长尾场景。



    这是晚高峰的十字路口的繁忙场景,有大量行人摩托车穿过十字路口。



    通过 3D 点云数据能够看到的对应的原始数据。



    这是目前我们 Perception 的输出,正确的 segmentation 结果和类别。


    00:00 / 00:00
      1.0x
      • 3.0x
      • 2.5x
      • 2.0x
      • 1.5x
      • 1.25x
      • 1.0x
      • 0.75x
      • 0.5x
      网页全屏
      全屏
      00:00


      雨天的问题。自动驾驶系统在一些特殊的或者恶劣的天气条件下,处理是非常难的。


      比如,激光雷达是能打到水花的。图中白色的是对水花的 filter。如果不能对水花进行准确的识别和过滤,会对自动驾驶车辆造成麻烦。这里看到我们目前系统的处理结果,结合 Lidar & Camera 的数据,对水花有很高的识别率。


      长尾的问题



      这个是我们在路测时,遇到的两种洒水车。左边是向上喷的雾炮,右边是向两侧喷的洒水车。人类司机可以很容易超过洒水车,但是对于感知系统来说,需要花很多的时间去处理和识别这类场景和车辆,最后让自动驾驶车辆在遇到类似场景获得更好的体感。


      小物体的检测



      意想不到的事件,路测时比如流浪的小猫小狗的突然出现,我们期望感知系统能够对小物体能够有准确的召回。



      对红绿灯来说会更有挑战。会一直遇到新的场景。因为在不同的城市或国家会遇到各种各样的红绿灯。



      逆光的问题,或者突然从桥洞下边出来相机曝光的问题。通过动态的去调整相机曝光等方式去解决。



      这个也是红绿灯的场景,红绿灯上有倒计时,我们需要识别出倒计时,能够让自动驾驶车辆遇到黄灯时,乘车体验更好。



      雨天摄像头的防水问题,也是处理极端气候条件下所必须具备的。



      红绿灯进进度条的识别,绿等快变黄要减速。


      图中部分图片来自互联网,只用做交流学习,若涉及侵权,请联系 DataFun 删除。

      作者介绍:


      李阳光,Pony.ai Tech lead,中科院计算机研究所硕士,此前就职于百度广告搜索部和自动驾驶事业部,任感知系统工程架构负责人,目前在 Pony.ai 负责自动驾驶感知技术研发。


      本文来自 李阳光 在 DataFun 社区的演讲,由 DataFun 编辑整理。


      2019-05-17 08:006500

      评论

      发布
      暂无评论
      发现更多内容

      阿里大师口述:让你可以在简历上写精通SpringBoot

      编程 架构 springboot

      融云即时通讯SDK集成 -- 定制UI(二) ——添加自定义表情库

      融云 RongCloud

      京东数科面试真题:常见的 IO 模型有哪些?Java 中的 BIO、NIO、AIO 有啥区别?

      Java 架构 面试

      项目延期了,怎么办?

      石云升

      项目管理 28天写作 职场经验 管理经验 3月日更

      算命、运气和其他「Day 24」

      道伟

      28天写作

      融云清空历史消息 Android 端

      融云 RongCloud

      sdk

      美丽的数学学习笔记(1)

      方勇(gopher)

      产品训练营 第四周作业

      万顷湖天碧

      Hamcrest

      insight

      单元测试 3月日更

      yum安装Nginx全流程指南

      happlyfox

      28天写作 3月日更

      融云 IM SDK 集成 --- 刷新会话界面和会话列表界面

      融云 RongCloud

      IM

      金三银四跳槽阿里必备:分布式/高并发/Redis,不看我真的怕你后悔

      比伯

      Java 编程 架构 面试 程序人生

      算法攻关-climbing-stairs(O(n))_70

      小诚信驿站

      刘晓成 小诚信驿站 28天写作 算法攻关

      Nginx配置静态文件服务从入门到精通

      happlyfox

      28天写作 3月日更

      Android 端如何添加自定义表情

      融云 RongCloud

      IM

      融云即时通讯SDK集成 -- 通知检查

      融云 RongCloud

      即时通讯

      markdown如何插入图片、音频、视频?

      xiezhr

      markdown markdown语法 音频

      像这样操作 Python 列表,能让你的代码更优雅 | pythonic 小技巧

      AlwaysBeta

      Python

      唠一唠融云的消息扩展功能

      融云 RongCloud

      sdk

      LeetCode题解:91. 解码方法,动态规划(优化),JavaScript,详细注释

      Lee Chen

      算法 大前端 LeetCode

      一卷河图赋太虚:HMS Core CG kit与移动游戏新可能

      脑极体

      短网址服务设计整理

      程序员架构进阶

      架构 设计实践 28天写作 实操案例 3月日更

      假期无聊冰河开发了一款国民级游戏!

      冰河

      Java 游戏

      大作业

      LouisN

      产品经理训练营 - 大作业

      joelhy

      产品经理训练营

      5 分钟部署一个 OIDC 服务并对接 nightingale

      冯骐

      CAS Nightingale 认证授权 OIDC Apereo

      诊所数字化:医疗机构常见的系统整理

      boshi

      医院 医疗 七日更

      Wireshark 数据包分析学习笔记 Day13

      穿过生命散发芬芳

      Wireshark 数据包分析 3月日更

      php的一些漏洞梳理

      依旧廖凯

      28天写作 3月日更

      融云 IMkit 拦截或监听所有发送消息

      融云 RongCloud

      sdk

      容器or虚拟机?

      xcbeyond

      Docker 容器 3月日更 专业术语

      L4自动驾驶中感知系统遇到的挑战及解决方案_AI&大模型_DataFunTalk_InfoQ精选文章