引言
近年来,自动驾驶技术和应用已经成为了科技界和工业界非常火热的话题。全球每年因交通事故大约会造成相当于 6000 亿美金的经济损失,而自动驾驶技术可以提升安全系数,提高交通系统的效率,为用户带来更为安全和高效的驾驶体验。除了这些需求的推动,自动驾驶技术这些年的飞速发展也离不开另一项关键技术的成熟,那就是人工智能,再具体一些就是深度学习(Deep Learning)。自动驾驶是一项复杂的技术,其核心包括传感器感知、行为决策、高清地图、海量数据、高性能计算平台等等。深度学习首先在传感器感知方面取得了突破性的进展,并因此极大的推动了自动驾驶技术的发展。
深度学习是机器学习领域的一个分支。在机器学习领域,有一个不成文的法则:数据为王(Data is King)。没有一定规模的高质量数据,再好的模型也是巧妇难为无米之炊,但是究竟需要多少数据,这个对于研究者来说也是一个很难回答的问题。随着深度学习技术的崛起,我们对这个问题有了更为清晰的认识。回想一下,如果没有当年的 ImageNet 大规模图像数据库,没有以 ImageNet 为基础的图像识别竞赛,可能就不会有 AlexNet 算法的惊艳表现,也就不会有近些年深度神经网络在计算机视觉感知领域的统治性地位,更不会有现在人工智能应用的遍地开花。所以说,大规模高质量的数据对于目前的人工智能应用来说非常的重要。
那么,对于以人工智能为依托的自动驾驶技术来说,数据自然也是成功的核心因素之一。海量数据的收集和整理是一项浩大的工程,如果每个研究机构都建立自己的数据库,那势必会耗费大量的时间和资金,也不利于各种技术的横向和纵向对比。因此,构建一个公开的大规模数据集,并以此为基础进行标准化测试(benchmarking),也就成为了业界的共识。在这个背景下,作为自动驾驶领域领先者之一的 Waymo 公司,于 2020 年公开了一个大规模的自动驾驶数据库,也就是 Waymo Open Dataset。
Waymo 自动驾驶算法挑战赛
Waymo 数据库共有 1150 个场景,每个场景 20 秒钟,包含了同步的的激光雷达和可见光相机。这些场景来自不同城市的开放道路,具有非常好的多样性。更为重要的是,数据库提供了超过 1200 万个高质量的物体标注,这对于深度学习算法来说是非常宝贵的资源,也是构建数据库中最为费时费力的步骤。相比较于其它面向自动驾驶应用的数据库,Waymo 数据库无论是在数据的规模、质量,还是多样性上,都是首屈一指的。
除了数据库本身,Waymo 还组织了自动驾驶算法挑战赛,吸引了全世界顶尖的研究机构来进行挑战,并且与计算机视觉和机器学习领域的顶级国际会议 CVPR 合作,发布竞赛结果,介绍获胜的团队及其使用的算法。可以说,Waymo 的挑战赛已经成为了自动驾驶基于研究的风向标,该领域的工作者会对获胜的算法进行讨论、研究和实验,对其进行改进,以此推动整个行业的进一步发展。今年的 Waymo 挑战赛包含了动态预测、关联预测、实时 2D 检测及实时 3D 检测四个任务,其中实时 2D/3D 检测对应自动驾驶的底层感知任务。如图 1 所示,2D 检测任务是从图像中检测物体的二维边框,而 3D 检测任务是从激光雷达点云中检测物体的三维边框。
如前文所述,深度学习技术首先在计算机视觉领域取得了突破性的进展,从图像中检测二维物体的算法已经相对成熟,落地应用也很多。不同于二维图像,激光雷达可以精确的测量物体的距离及其三维形状,而且受天气和环境的影响较小。这对于自动驾驶来说是非常重要的性质,因此近几年来,学术界和工业界逐渐把目光转移到基于激光雷达的三维物体检测算法上。与图像的二维像素排列格式不同,激光雷达的数据是三维的点云,其密度随着距离的增加而减少。此外,二维图像采用的是透视坐标,而三维点云通常采用的是俯视坐标(Bird’s Eye View, BEV)。这些差别导致基于图像数据设计的深度神经网络无法直接应用到三维点云数据上。所以说,虽然激光雷达对于自动驾驶来说至关重要,其感知算法的设计目前还面临着巨大的挑战。


自从 2017 年 VoxelNet 发表以来,基于激光雷达点云的物体检测取得很大的进展,各大研究机构纷纷提出自己的算法,报告的检测率也不断提升。Waymo 组织的这个 3D 物体识别挑战赛给了这些算法一个公平对比的机会。尤其是今年的挑战赛,增加了对算法速度的评比,规定所有模型的执行时间必须要小于每帧 70ms 才能入围,对实时性的要求跟实际场景更接近,更接近落地应用。这也是为了鼓励参赛者在有效的利用计算资源方面下功夫。继 2020 年第一届比赛荣获 5 项挑战中的 4 项全球第一后,来自地平线公司的团队力压赛灵思、德克萨斯大学等公司和高校,再次摘得桂冠。一般来说,一个机器学习的竞赛在刚发布的前几年难度最高。随着参赛者对数据越来越熟悉,通过大量的参数调整可以使算法达到更好的效果,但这会导致算法在一定程度上出现过拟合现象。简单地说,就是算法在该数据库上表现很好,但是在处理该数据库以外的场景时会出现很大的性能下降。因此,在前两界比赛中均取得了第一名的成绩,说明地平线的团队在自动驾驶的感知算法方面有着既深刻又独到的理解。下面我们就来详分析一下这个获胜的算法究竟是如何运作的。
地平线实时 3D 检测算法详解
本次 Waymo 实时 3D 检测挑战赛同时在模型准确度和速度方面进行评比,只有执行时间低于每帧 70ms 的模型才可以入围。地平线团队以 2020 年参赛的算法为基础,在模型准确度和速度方面做了进一步优化,提交的两个模型一个在检测准确率方面排名第一(AFDetV2,73.12 mAPH/L2,每帧用时 60.06 毫秒),另一个在保证一定准确度的前提下取得了速度方面的第一名(AFDetV2-base 72.57mAPH/L2,每帧用时 55.86 毫秒),被冠以为 “最有效率的模型” 称号。

总的来说,在这次挑战赛中,地平线团队同时在模型、训练和硬件实现三个方面对算法进行了优化。模型方面采用目前主流的无锚点的检测算法(Anchor-Free),但是在是否使用两阶段网络(two-stage)上做了深入的分析。虽然目前业界大部分模型(包括 CenterPoint, PV-RCNN 等)大多采取两阶段网络,以获取更高精度,但地平线团队基于充分的对比,最终仍然选定单阶段网络 (Single-stage)。在这个单阶段网络的检测端(Head)部分,地平线团队创新性地加入了预测定位置信度的 IoU 分支,并用该分支的预测结果对分类器的得分做加权,有效地解决了分类与定位分支之间对不准(mis-align)的问题。基于这个改进,地平线团队的单阶段网络可以用更少的计算量达到两阶段网络的同等甚至更高精度,极大的提升了模型的效率。在此基础之上,地平线团队还在点云的三维特征提取,扩大神经网络的感受野,物体框质量预测分支以及关键点预测分支等方面做了改进。训练方面通过数据增强和随机权重平均来进一步改善。这些技术的综合运用大幅提升了原有模型的检测精度(大于 4APH/L2),而增加的计算量基本上可以忽略。在硬件实现方面,地平线团队利用 GPU 将三维点云的处理进行并行加速,将运行速度提升了超过 20%(运行时间降低了 17ms)。
模型优化
轻量级的点云特征提取
在任何一个物体检测模型中,特征提取对于模型最后的性能都是至关重要的,往往这一步也是计算量最大的。尤其对于激光雷达点云这样一种非结构化的数据来说,如何充分的利用卷积神经网络来有效的提取特征就变得更加关键。在地平线的方案中,点云数据被转换成固定范围,固定大小的三维网格(对应世界坐标系中的 X,Y,Z)。对于每个网格,将落到其中的点的反射强度进行平均,以作为该网格的特征值。需要注意的是,这个三维网格是非常稀疏的,很多格内并没有数据点。如果采用传统的三维卷积来进行特征提取,那将是非常低效的。因此,如图 3 所示,在地平线的模型中,稀疏的三维卷积(spConv)以及子流形稀疏卷积(subM)被用来进行多个阶段的特征提取。此外,地平线团队减少了前端残差模块(residual block)的数量,并且降低了 Z 方向上采样卷积数量,以此在准确度和速度上进行平衡。

扩大神经网络的感受野
感受野(receptive field)是衡量神经网络特征提取能力的一个重要指标。较大的空间感受野不仅可以覆盖不同大小的物体范围,也可以提取物体周边环境的上下文特征,而这种上下文语义信息对于检测部分遮挡或者远距离的物体来说非常有帮助。因此,在物体检测的主干网络中,地平线团队采用了一种自校准的卷积操作(Self-Calibrated Convolution,简称 SC-Conv)来扩大空间感受野,以及在空域和特征通道上引入注意力机制。如图 a 和 b 所示,标准主干网络中的卷积操作被替换成了自校准卷积。值得一提的是,通过巧妙的参数设置(如图 4c 所示),这些引入的额外操作并没有增加计算量,但是却提升了整个检测模型的准确度。

额外的预测分支
与去年相比,地平线团队在这次的模型中增加了两个预测分支:IoU 置信度预测和关键点预测。IoU 是 Intersection-over-Union 的缩写,用来衡量两个物体框的重合程度。当预测的物体框与实际的物体框重合度较高时,IoU 的值就较大,反之就较小。因此,IoU 通常被用来衡量预测物体框的质量。在标准的物体检测网络中,预测分支会输出物体的置信度以及相应的物体框,但是这个置信度仅仅代表当前位置出现某类别物体的概率,并不代表物体框的质量高低,这也是常说的分类和定位任务的不匹配问题。因此,增加一个对物体框置信度的预测,并用其对分类器的得分做加权,可以提高分类和定位任务的匹配度,从而同时提高两个任务的准确度。
在定位分支中,除了预测物体框的中心点以及长宽高,还增加了一个额外的分支用来预测关键点,比如物体框的角点。这样做可以使神经网络更好的学习物体的边缘信息,因为点云中看到的物体往往只有其部分表面,中心点并不在可见的点云中。增加了 3D 框的角点之后,能够引导模型更加贴合训练数据,从而提升定位的精度。

训练优化
训练方面,首先是用数据增强技术来增加训练样本的多样性,比如随机选择标注样本,随机反转 X,Y 坐标,整体的旋转和缩放等等。这些操作对于降低神经网络的过拟合,提高其泛化能力都是非常有帮助的。此外,地平线的训练方法中还包含了一个随机的权重平均操作(Stochastic Weights Averaging,SWA)。具体来说,在正常的模型训练结束后,将学习率降低为原来的 1/10,再多训练 5 轮(epoch)。将这 5 轮训练得到的 5 个模型进行平均,最后再训练一轮以确定 Batch Normalization 的参数。SWA 将模型整体性能提升了大约 0.2 mAPH/L2,在 “行人” 这一类提升大于 0.5 APH/L2,体现出其有效性。并且,SWA 之后的模型能再次降低过拟合的风险,具有更好的泛化性。这些优化训练并不增加在预测阶段的任何计算量,所以可以认为是 “免费的午餐”。
硬件实现优化
这个步骤对于模型速度的优化也是非常关键。如前文所述,为了将点云数据转化为三维网格数据,需要有一些额外的操作,比如计算每个点所属的网格以及计算网格内的多个点的平均特征值。在使用多帧点云的时候,还需要将点云进行坐标转换。这些操作是数据在送入神经网络前的必要处理操作,但之前由于缺乏并行处理的算法,成为了影响整个模型速度的瓶颈之一。观察到这一点,地平线团队改进了该处理的算法,并编写了专门的代码,用于将上述操作放在 GPU 内并行执行,极大的加速了点云前处理的速度。
地平线推动行业的原动力
开放道路场景下的实时物体检测,是自动驾驶的核心技术之一。目前,无论是学术界和工业界,实时 3D 物体检测的主流的算法都是采用单阶段、无锚点的策略。地平线对算法的各个方面进行了细致的优化,使其同时具有高精度和低延迟的特点。
高精度
地平线此次参赛的算法可以在开放路况下检测多种物体,包括车辆、行人和骑自行车的人,评测指标达到 73 mAPH/L2,并且算法在不需要大的改动的情况下可以很容易的推广到更多的物体类别。虽然说评测指标还距离满分的 100 还有一点距离,但是要知道,这个指标是在前后左右 75 米范围内统计所有的物体得到的。对于自动驾驶应用来说,很多时候并不需要检测场景内所有的物体,一般来说只需要稳定的检测出那些会对驾驶行为产生影响的物体即可。比如说,在汽车低速行驶时,50 米范围以外的行人,或者在车辆目前运动轨迹以外的行人,基本上对车辆的驾驶行为没有影响,因此可以不纳入评测指标。所以说,像 Waymo 挑战赛中使用的这种评测指标,其实难度实际是超过落地应用的。目前业界也有一些针对自动驾驶汽车安全性的测试方案,比如汽车界最具权威的安全认证机构 Euro-NCAP (欧盟新车认证程序 / 中心) 提出的的测试方案。这些方案定义了各种易引发交通事故的场景,针对这些场景在封闭路况下对自动驾驶车辆进行测试。以笔者的经验来看,地平线的算法在一般的开放场景下可以达到 73 mAPH/L2,通过 Euro-NCAP 的测试是没有问题的。
低延迟
地平线的算法在保证高精度的同时,可以达到小于 60ms 的低延迟。在没有经过产品级的算法优化之前,这个速度已经非常可观,可以满足自动驾驶应用对实时性的要求。此外,地平线 3D 物体检测算法的所有部分,从原始数据的前处理,到点云特征提取,再到主干网络和预测分支都可以在 GPU 中通过并行计算来进行加速,这就为之后将算法植入车载芯片奠定了良好的基础。
至此,关于技术的部分就说完了,但这为我们留下的一个思考,「推动自动驾驶行业的进步,解决方案公司应该怎么做?」
此前,市场对于地平线的认知是「一个 AI 芯片公司」,在自动驾驶领域似乎做硬件的和做软件的是具有天然分离性的,其实不然,地平线以自动驾驶芯片为切入口的同时还深耕算法能力,这也是地平线一直强调的,Ta 们要做的就是赋能主机厂,在软硬件技术方案全面赋能,帮助厂商实现智能化转型。
对于整个行业来说,有两个最大的价值:
一。可以为行业里的自动驾驶硬件公司,实践多元化的发展模式。
这个比较好理解,自动驾驶领域不允许公司有偏科,从 2014 年解决方案公司扎堆成立,到现在强者越强,有很大一部分原因是公司偏科,我们看到很多做硬件的厂商在算法上的不足会严重影响自身后续的发展。
而像地平线、华为、英伟达等这样的芯片公司,被误解最深的就是以为 Ta 们会在算法上欠缺,但事实确实这些企业在涉足这个领域是对于技术的策略就是「硬件 + 软件」同时发展,这也是为什么 Ta 们能保持持续竞争力。
二。真正赋能主机厂打造自动驾驶能力。
主机厂通过和地平线合作可以得到几个好处:一,快速建立辅助驾驶能力;二,主机厂逐渐掌握算法能力,在感知算法方面会更进一步;三,短期缩短主机厂的开发时间,长期建立算法能力。
因此,我们能够看到对于解决方案企业如何推动自动驾驶行业进步,地平线的答案是:「为行业践行掌握多元技术的对于自动驾驶领域公司的重要性,以掌握自动驾驶核心的底层技术来帮助车企智能化转型」。
总结
自从 2020 年举办第一届以来,Waymo 自动驾驶挑战赛持续的为各大研究机构提供公开公平的对比测试平台。今年的挑战赛增加了对系统速度的要求,更加贴近实用性和落地性。在这个背景下,地平线团队的算法连续两年取得 3D 物体检测任务的第一名,证明了其团队在 3D 物体检测这个赛道上世界领先的实力,以及强大的技术和工程能力。此外,地平线此次参赛的方案中融合了很多目前最前沿的物体检测技术,以及很多精巧的构思和设计,个人认为非常值得相关领域的研究者进行进一步的思考,也会对自动驾驶感知算法的研究起到非常大的推动作用。自动驾驶技术的研究以及应用还有很长的路要走,还有很多关键问题亟待解决,期望未来会有更多的研究机构参与其中,推出更加精准和高效的感知算法,以推动自动驾驶技术给人们的出行带来更多的安全和便捷。