QBlog 02|观六路听八方——轻舟智航无人驾驶感知模块技术理念解析
轻舟智航致力于打造适应城市复杂交通环境的L4级别自动驾驶方案,已推出「Driven-by-QCraft」L4自动驾驶方案。目前,基于该方案的城市公开道路无人小巴场景已在国内启动示范应用,后续将迅速扩展至智慧城市的多个无人驾驶移动空间场景。
在无人驾驶的多个技术栈中,感知模块负责解析和理解周围环境,在帮助无人车安全穿行于复杂城市公开道路场景、实现L4无人驾驶上起着重要的作用。在路上,无人驾驶车辆不仅要感知到远处高速行驶的机动车,也要感知到近处的不明障碍物(Debris),借助失效模式彼此正交的多种传感器,结合数据与规则驱动算法,高并行的融合/处理传感器数据,为安全、高效、成本可控的无人驾驶方案保驾护航。
但目前,自动驾驶的感知系统仍存在一些根本问题值得进一步探索,例如长尾问题无法即时处理、多步多模块系统还是端到端的人工智能算法、激光雷达为主还是“camera only”,传感器前融合还是后融合等等。本文将分享轻舟智航团队对于感知模块的几点理解和思考,与各位读者探讨。
不放弃解释任何数据点
无人驾驶特点之一是安全关键(safety critical),一个产品级的无人驾驶方案需要能够准确掌握自车周边全视角不同尺度大小的物体信息。感知系统借助覆盖无死角的传感器布局,可以拿到周围的环境信息。其中最主要的传感器——激光雷达、相机和毫米波雷达以大于等于10Hz的频率将激光雷达点云、高分辨率图像以及雷达跟踪对象等信息源源不断地发布给感知模块。业内有许多种不同的方式来实时处理这些信息,不同的处理方式,往往体现了不同的团队对于感知模块,甚至无人驾驶系统的理解。
传统的方式将对于感知输入信息的处理定义为信息检索问题(Information Retrieval Problem),即把这些输入的数据当作信息源,通过感知模块将兴趣区域(Region Of Interest)检索出,对其进行处理并发布给下游模块。时下非常流行的目标物检测(Object Detection),就是信息检索这种方法论的一种应用。其是指在一个激光雷达点或者图像像素集合中,找到若干个子集,用2D或者3D定向/非定向方框(oriented/axis-aligned bounding box)的形式表示其范围。
物体检测示例
通过检索,系统可以很快的找到数据中的感兴趣区域,并顺带拿到一些属性。其中就包括作为动态交通参与者(Road Agents)的车/人/骑行者和作为交通控制单元(Traffic Controllers)的锥桶/红绿灯/交通标志等等。由于其自身的重要性,以及在实际道路数据中的丰富性,这些物体成为需要检索的目标信息。这些信息足够帮助无人车驾驭现实场景中80%的情况。
但作为一款产品,无人驾驶汽车还需要有效处理另外20%的边界化难题(corner cases),也就是业内所提到的长尾问题(Long-tail problem)。由于其自身的多样性和稀疏性,长尾问题很难用兴趣区域的方式稳定地进行信息检索。例如以下这些情景中,无人车在路上可能会遇到动物、掉在地上的杂物、飘落的落叶等等。现实中,总会有一些情况是没有预料到的、或者已经预见到但却没有足够的数据的来解决的。这导致感知系统存在较大的安全风险。
无人驾驶的感知系统可能会遇上大量corner cases,例如过马路的小狗、掉落在路上的伞、特殊姿势的行人、路上的野鸭子等等
轻舟智航的感知团队更倾向于将无人驾驶感知方案中的对于感知输入信息的处理理解为一个统计分类问题(Statistical Classification Problem),即解释分类当前系统中拿到的每一个数据点。这些数据点包括了线上传感器发布的激光雷达点、图像像素点、雷达数据点,以及通过V2X接收的路端/车联网信息等,也包括了“线下传感器”发布的高精地图底图(imagery)、语义地图(semantic map)、环境语义历史(semantic history)等先验信息。在得到当前帧的传感器数据后,感知模块将对于得到的每一个数据点进行理解分类,进而进行交叉验证(cross validation)。
对于长尾问题,轻舟智航的感知系统假设至少有一个或多个模态(modality)可以提供一些信息,也就是如果在任意几个模态经过交叉验证后依然在某些区域出现较高的不确定性,那就发布信息促使无人车行为发生改变,比如避让或是谨慎驾驶。
不放过对任何数据点的解释,可以尽可能的发掘利用已知信息,避免遗漏,提升感知能力,降低安全风险。轻舟智航团队通过对于感知模块更高层次理解的定义,加深了自身对于安全关键的认识,从而更好的打造适应城市复杂公开道路场景的L4无人驾驶方案。
数据驱动与规则驱动相结合
以感知为主的无人驾驶技术随着2012年Alex Krizhevsky等先行者带来的人工智能革命而有了长足的进步。无论是感知前端的检测聚类,还是后端的跟踪分类,都到达了稳定可用的状态。在未来,人工智能必将作为核心技术帮助人们实现智慧出行。
目前,机器学习,作为目前人工智能技术主要的分支,在感知乃至无人驾驶整体上都有着不少的应用。一些研究学者在此基础上,正在逐步实现更深和更广的方向扩展,例如更加精确高效的点云物体检测(最新Waymo Open Dataset Challenge),或是更加端到端的无人驾驶系统(Waymo research team and Raquel Urtasun教授所领导的Uber AI Lab)。随着学术界的兴趣从传统2D图像视频转向3D点云以及多模态融合,越来越多激动人心的前沿研究正不断推动自动驾驶产业的发展。
然而,目前研发一款自动驾驶产品,对比于有一些团队倡导的端到端算法解决无人驾驶问题,我们认为仅仅依赖以机器学习为核心的数据驱动型算法(Data Driven Algorithms / Learning Based Algorithms)还不够。作为一个机器人领域的系统工程应用,自动驾驶系统应“海纳百川”,把新近的学习型算法和传统的启发式算法(Heuristic Based Algorithms)相结合,提高整体系统效果。
Learning based算法依靠其强大的表达能力,在大量数据训练的情况下,可以在训练集所在的领域(domain)得到较好的效果。而传统的Heuristic based算法,在有足够严谨数学表达或先验知识,或是数据不够充分(比如说长尾问题)的情况下,会有更好的效果。只要不同方法的失效模式(failure mode)彼此不重合,甚至正交,结合起来应用便可提升整体效果,增加系统冗余,提升系统鲁棒性。
方法A和方法B各自能力不同,但系统性的融合,会令系统整体对于问题的覆盖范围有很大的提升。
轻舟智航团队在顶层设计时力图设计一套可扩展性强的框架,方便快速试验/部署不同类型的算法,并在不同层次进行融合、交叉验证。让框架成为“生态”,不同的算法在快速开发迭代过程中自然演化、不断迭代。进而从系统层面“学习”出一套适应当前产品形态与需求的算法。在其中,不同类型的算法都会被尝试运用,一方面,积极探索学习型算法的新边界,另一方面,结合计算机视觉/机器人学/计算机图形学的传统算法理论,尝试演化出一套精确高效的感知问题解决方案。
问题导向的多传感器融合
多传感器融合在自动驾驶应用中扮演着举足轻重的角色。自动驾驶因其问题复杂度高、安全关键(safety critical)等特性,需要依靠多种传感器(例如相机/激光雷达/毫米波雷达)数据的相互融合来提高感知效果。
不同的传感器都有其自身的优势和劣势:相机提供的图像数据信息密度大,拥有丰富的颜色/纹理信息,但动态范围(dynamic range)较低以及其本身被动感光的特性,在弱光(low-light)及高对比度光线条件场景下很难捕捉足够的视觉信息;激光雷达生成的3D点云可以提供精确的3D信息,但点云较为稀疏,同时在雾气/雨滴/雪花/汽车尾气/反射等场景下容易形成虚假点(mist/reflection points);毫米波雷达有效射程较远,有能力直接观测物体速度,对环境噪音比较鲁棒,但信息稀疏且存在反射性过强和多普勒歧义问题,使得在通过隧道、大桥等场景下雷达探测可信性降低。
不同的传感器特性不同,失效模式(failure mode)相对彼此正交,因此结合利用会增加冗余度,有助于提高系统鲁棒性和可靠性。
点云在废气上形成的虚假点
相机在太阳直射的情况下由于动态范围较低因此无法看清前方物体
将多传感器信息融合在一起的方式有多种,例如前融合和后融合。前融合是将传感器原始信息直接融合到一起进行处理,这种方法使得算法在开始就能拿到最全面的数据,但同时对于传感器标定与同步的敏感性更高——如果一个传感器出现问题,会造成感知模块失效。后融合是将各个传感器信息单独处理,各自在各自的处理通道上拿到接近最终形态的结果,之后再融合在一起。这种方法使得不同传感器彼此更加独立,即便个别传感器失效,或者标定同步有些许偏差,也对最终的结果影响不大。但主要的算力却会集中在只有片面信息的单传感器处理通道内,造成效果瓶颈。
多传感器前融合
多传感器后融合
轻舟智航团队倡导的思路是跳出“在哪里融合”这个角度来重新审视问题。感知其实有若干个子问题,例如虚假点过滤(Mist/Reflection Point Filtering)、行人姿势估计等,所以以问题为导向去思考多传感器融合其实是一个更优的思路。为了解决问题A,可能需要拿到激光雷达点云以及图像数据。为了解决问题B,可能需要拿到地图先验信息、雷达跟踪信息。不同问题之间也会有依赖,某一个问题的最终结果或者中间结果会成为另一个问题的输入。
所以只要将框架设计得足够灵活可扩展,不同的传感器数据源,可以和不同的感知子问题一起,构成一个有向无环图(Directed Acyclic Graph)。而图中的任意节点,无论是原始数据源还是子模块,都可以当作融合的对象。需要哪些就融合哪些,以问题为导向进行融合,提供足够的灵活度与冗余度。
问题导向的多传感器融合
高度并行化/硬件平台定制化的感知系统
由于要处理不同传感器的原始信息,感知系统在无人驾驶系统中是算力消耗较大和延迟较高的模块之一。在自动驾驶产品级的成本控制下,针对硬件平台的定制化以及高度并行化是提升感知效果的必由之路。不同的硬件平台有各自不同的配置,因此也有不同资源的相对多少。根据相对的资源多寡来调整系统,可以更好地利用平台资源,实现更高效的资源利用、更好的性能。
并行化除了利用GPU的并行计算之外(即将可移植的处理逻辑移植到GPU或GPU原生算法),还包括CPU的并行化,既多线程。无人驾驶系统之中,存在着较多需要串行执行,有较长推理链的逻辑。这些逻辑由于其自身的复杂性没有办法很好的在GPU的单个核中实现,而CPU中每一个核都有更为复杂的指令集,可以很好的处理长推理链的逻辑,从而实现并行。轻舟智航团队利用不同的多线程并行策略,例如生产线模式,循环并行化等方法,在车上最大限度发挥有限算力。同时,利用有些传感器(例如激光雷达)流式发送数据的特点,高并行流式处理数据,并将不同算法适配到有不同特征的专用硬件,从而利用硬件特性最大化硬件软件效用,减少整体延迟。
以上为轻舟智航对于感知模块的一些理念与思考。无人驾驶产品需要安全优先,高性能并且成本可控,轻舟智航借助多种传感器,结合多种算法,高并行的融合/处理环境数据,力图将无人驾驶技术在城市复杂公开道路场景下落地。
QBlog编辑附言:
文章作者为轻舟智航感知总监张雨,计算机视觉、机器人学、机器学习专家,负责轻舟智航感知模块算法研发工作。曾任Waymo Research研发工程师,发表过多篇高影响力论文,毕业于卡内基梅隆大学。
轻舟智航(QCraft)成立于美国硅谷,是世界前沿的无人驾驶公司,致力于打造适应城市复杂交通环境的“老司机”,将无人驾驶带进现实。基于大规模智能仿真系统、可自主学习决策规划框架和多传感器融合和时序融合方案等核心技术,轻舟智航推出了「Driven-by-QCraft」L4自动驾驶方案。
「Driven-by-QCraft」 是专注城市复杂交通场景的自动驾驶方案,早期聚焦于固定路线的中低速场景,目前基于该方案部署的城市公开道路无人小巴已在国内启动示范运营,接下来将迅速扩展至智慧城市的多个无人驾驶移动空间场景。
其核心团队成员来自Waymo、特斯拉、Uber、福特、英伟达等世界顶级公司,实现了无人驾驶关键技术模块的全栈覆盖。目前,轻舟智航在美国硅谷、中国苏州、北京、深圳等地都设有办公室,多个社招及校招岗位正面向全球持续热招中。