写点什么

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:007294

      评论

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

      Apache Pulsar 与 Apache Kafka 在金融场景下的性能对比分析

      Apache Pulsar

      大数据 kafka 架构 云原生 Apache Pulsar

      模块四:如何设计业务高性能高可用存储架构?-- 学习总结

      小鹿

      hw4-千万级存储方案

      WWH

      架构实战营

      公司给我股份,有什么需要注意的吗?

      石云升

      创业公司 11月日更

      第四模块总结

      张靖

      架构训练营

      模块四作业 千万级学生管理系统的考试试卷存储方案

      小朱

      架构实战营

      spring的事务隔离级别是何许人也

      卢卡多多

      Spring Framework 隔离级别 11月日更

      在线等比数列求和计算器

      入门小站

      工具

      Go语言学习查缺补漏ing Day3

      Regan Yue

      Go 语言 11月日更

      微服务治理之自适应降载

      万俊峰Kevin

      微服务 微服务架构 服务治理 go-zero Go 语言

      21 K8S之容器存储接口CSI

      穿过生命散发芬芳

      k8s 11月日更

      [Pulsar] 一个消息的生命历程(一)

      Zike Yang

      Apache Pulsar 11月日更

      字节跳动面试官:SpringBoot统一接口返回和全局异常处理怎么玩?

      热爱java的分享家

      Java 架构 程序人生 编程语言 经验分享

      css布局之全屏布局

      Augus

      CSS 11月日更

      元宇宙:区块链时代的新名字

      CECBC

      区块链和人工智能是否可以保护森林不再被砍伐?

      CECBC

      考试试卷存储架构

      AHUI

      「架构实战营」

      区块链技术革命才刚刚开始

      CECBC

      linux之拖拽上传文件

      入门小站

      Linux

      Lua-Table

      Changing Lin

      11月日更

      Golang Gin 框架上传介绍(四)

      liuzhen007

      11月日更

      主客体建模法

      少个分号

      极客时间算法训练营Week01

      jjn0703

      算法训练营

      flutter中的列表的性能优化前奏

      坚果

      flutter 11月日更

      模块4作业

      忘记喝水的猫

      架构训练营

      架构实战营模块四作业

      孙志强

      架构实战营

      Python Qt GUI设计:QPushButton、QRadioButton和QCheckBox按钮类(基础篇—12)

      不脱发的程序猿

      GUI设计 Python Qt QPushButton QRadioButton QCheckBox

      堪称数据库的天花板,极致经典的字节内部MySQL宝典意外流出!

      热爱java的分享家

      Java 面试 程序人生 编程语言 经验分享

      千万级考试试卷存储方案

      张靖

      #架构实战营

      用AI走出“沙丘”

      白洞计划

      模块四

      侠客行

      架构实战营 「架构实战营」

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