写点什么

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

      评论

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

      中国大学MOOC Android 客户端开发提效之页面信息

      有道技术团队

      android 服务端 客户端

      Tubacle挖矿系统APP开发搭建

      蜜蜂圈软件开发|蜜蜂圈APP系统开发

      缘起短视频APP系统开发介绍

      分布式图计算引擎

      6979阿强

      分布式计算 图计算

      MongoDB磁盘清理那些事儿

      循环智能

      mongodb 集群 主从 GridFS 磁盘清理

      百度关于微前端架构EMP的探索:落地生产可用的微前端架构

      百度开发者中心

      百度 大前端

      火艺极速版短视频系统APP开发搭建

      腾云视界APP开发|腾云视界软件系统开发

      BTQQ挖矿/比特全球/BT全球系统APP开发简介

      DOLLAR CAT/Dcat币挖矿系统开发

      阿凡达公链AC系统APP开发

      ☕️【Java技术之旅】【ConcurrentHashMap】深入浅出核心源码分析(JDK1.8版本)

      洛神灬殇

      Java 源码分析 ConcurrentHashMap 6月日更

      Redis入门七:分布式锁

      打工人!

      redis 分布式锁 redis分布式锁

      区块链的正确应用方式与前景

      CECBC

      Bi Token质押挖矿软件系统开发方案

      「腾讯面试题」兔子试毒

      Java架构师迁哥

      Ipfs矿机收入如何?IPFS矿机一天收益多少?

      区块链 数字货币 IPFS

      前几年写的自己团队管理内容,如果你想做研发管理,可以看一下

      安宇|Way

      管理 考核 团队 文化 价值观

      革故鼎新:企业数字化转型繁荣互联网生态建设,驱动ICT设施升级

      科技热闻

      企业资产数据大屏,打破固有管理思维僵局,杜绝资产无效流失

      一只数据鲸鱼

      数据可视化 资产管理 金融资产 金融大屏

      看CarbonData如何用四招助力Apache Spark

      华为云开发者联盟

      spark Apache Spark ACID CarbonData 分布式集群计算框架

      在C++中,你真的会用new吗?

      华为云开发者联盟

      c++ 内存 new new operator operator new

      你不知道的 Linux 使用技巧

      学神来啦

      Redis入门六:集群

      打工人!

      redis 缓存穿透 缓存击穿 缓存雪崩 redis集群

      大佬讲【暴力破解】漏洞的原理、利用和防范

      网络安全学海

      网络安全 安全 信息安全 漏洞 漏洞修复

      INS视频怎么保存 (2021最新图文教程)

      资源君

      方法 经验分享 教程 资源分享 Instagram

      覆盖80%以上Java性能调优场景,三年开发经验以下慎入

      Java架构师迁哥

      话题王者第三季,舍我其谁~

      InfoQ写作社区官方

      话题讨论 热门活动

      工程师必知的代码重构指南

      百度开发者中心

      代码重构

      CloudQuery 使用教程之 No.3 数据查询(中)

      BinTools图尔兹

      云计算 dba 开发运维 数据库管控工具 国产数据控

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