目前,自动驾驶技术已经走出实验室,进入量产落地的阶段,也成为了各大车企,零部件供应商,高科技公司争相进入的领域,竞争空前激烈。 自动驾驶驾驶技术这一轮的爆发,很大程度上取决于两点:
目前,基于英伟达、高通、Mobileye、地平线、华为的自动驾驶芯片,做多芯片集成开发出来的计算平台整体算力最高已经达到上千 Tops,这为高阶自动驾驶提供了算力保障。 但在算法和算力之间,技术既深度耦合又相互促进,安霸半导体中国区总经理冯羽涛说过:
在 1 月 27 日,中金发布了一份名为《人工智能十年展望(三):AI 视角下的自动驾驶行业全解析》的研究报告。报告指出, 「深度学习是自动驾驶技术发展的分水岭及底层推动力,算法是各厂商接下来应该重点布局的核心能力,同时,数据是决定自动驾驶量产能力的胜负手」。 也就是说,算力性能已经到了阶段性的平稳发展期,「算法能力 + 数据能力」会成为自动驾驶领域里的各个公司之间竞争谁能胜出的关键。 01 处理多层神经网络的技术趋势 视觉感知的技术突破,进一步推动了其他传感器(比如激光雷达和毫米波雷达)的感知算法以及多传感器融合算法的进步。另一方面,深度学习中的强化学习算法也在决策系统中起到了非常重要的作用。 对于深度学习算法来说,除了算法本身的能力以外,高质量,大规模的训练数据也是算法取得成功的关键因素。因此, 如何高效地采集和标注数据对于每一家自动驾驶公司来说都是非常现实的课题。 在数据采集方面,面向量产的公司有着先天的优势。路面上行驶的数十万,甚至上百万的车辆,每一辆都可以源源不断地提供丰富的路况数据,加在一起就是一个海量的自动驾驶数据库。 相比之下,面向 L4 级别的公司只能依靠有限的测试车辆来采集数据。目前路测规模最大的 Waymo 也只有几百辆测试车,数据采集的规模自然不可同日而语。 有了海量数据是不是问题就解决了呢? 显然没有那么简单。 虽然说深度神经网络依赖于大数据,但是不同网络结构学习海量数据的能力还是有很大差别的。最早出现的多层感知机结构网络只有几层,只需要很少的数据就可以使网络的学习能力达到饱和。 近些年来提出的卷积神经网络(CNN),深度从十几层增加到上百层,甚至上千层,这时就需要大规模的训练数据来保证网络训练的质量。 但是简单的堆积层数也是行不通的,这时深度学习领域一个非常关键的技术 ResNet(深度残差网络)出现了,它提出通过增加额外的连接,使得信息可以从浅层直接传输到深层,减少信息在网络层之间传输时的损失。通过这个技术,卷积神经网络才能拥有更深的结构,从而更好地利用大规模数据。 虽然有了 ResNet 技术,深度卷积神经网络在数据规模增加到一定程度之后,其性能的提升也变得非常有限,也就是说存在饱和的趋势,这说明神经网络的学习能力还是存在着一定的瓶颈。 大约从 2017 年开始,一种新型的神经网络结构开始引起研究人员的广泛关注,那就是大名鼎鼎的基于注意力机制的 Transformer 网络。 Transformer 首先被应用在自然语言处理领域(NLP),用来处理序列文本数据。 谷歌团队提出的用于生成词向量的 BERT 算法在 NLP 的 11 项任务中均取得了大幅的效果提升,而 BERT 算法中最重要的部分便是 Transformer。 在自然语言处理领域取得广泛应用后,Transformer 也被成功移植到了很多视觉任务上,比如「图像分类,物体检测」等,并同样取得了不错的效果。Transformer 在海量数据上可以获得更大的性能提升,也就是说学习能力的饱和区间更大。 有研究表明,当训练数据集增大到包含 1 亿张图像时,Transformer 的性能开始超过 CNN。而当图像数量增加到 10 亿张时,两者的性能差距变得更大。 上面是 ResNet(CNN)和 ViT(Transformer)在不同大小训练集上达到的图像分类正确率。数据量为 1000 万时,Transformer 的正确率远低于 CNN,但是当数据量增加到 1 亿时,Transformer 就开始超过 CNN。 此外,CNN 网络在数据量超过 1 亿以后呈现饱和趋势,而 Transformer 的准确率还在继续增加。 简单理解就是, Transformer 在海量数据的处理能力上具有巨大冗余优势。 正是因为看到了这一点, 面向量产的自动驾驶公司在拥有数据收集优势的情况下,自然就会倾向于选择 Transformer 作为其感知算法的主体。 2021 年夏天,特斯拉的自动驾驶技术负责人 Andrej Karpathy 博士在 AI Day 上,公开了 FSD 自动驾驶系统中采用的算法,而 Transformer 则是其中最核心的模块之一。在国内方面,毫末智行也同样提出将 Transformer 神经网络与海量数据进行有效的融合。 在 2021 年底,毫末智行 CEO 顾维灏在毫末 AI Day 上介绍了 MANA(雪湖)数据智能体系。除了视觉数据以外, MANA 系统还包含了激光雷达数据。 并基于 Transformer 神经网络模型来进行空间、时间、传感器三个维度的融合,从而去提升感知算法的准确率。 了解了目前自动驾驶技术发展的趋势以后,文章接下来的部分会首先简单介绍一下 Transformer 的设计动机和工作机制,然后详细解读特斯拉和毫末智行的技术方案。 02 Transformer 神经网络 在说 Transformer 之前,要先理解一个概念: 「机器翻译、注意力机制」。 机器翻译 机器翻译可以粗暴理解成 「由现代化计算机模拟人类的智能活动,自动进行语言之间的翻译」。 说起翻译,不得不提自然语言处理(NLP)领域的机器翻译应用,简单说就是「输入一句话,输出另一句话」,后者可以是前者的其他语种表达,如「自行车翻译为 Bicycle」;也可以是前者的同语种关键词表达,如「骑行的两轮车」。 而工程师把「翻译」的过程,用数学函数设计了一套模型, 这个模型就是大家通常意义上理解的「神经网络」。 在 Transformer 到来之前,大家一般都是使用基于循环神经网络 RNN 的「编码器-解码器」结构来完成序列翻译。 所谓序列翻译,「就是输入一个序列,输出另一个序列」。例如,汉英翻译即输入的序列是汉语表示的一句话,而输出的序列即为对应的英语表达。 基于 RNN 的架构有一个明显弊端就是,RNN 属于序列模型,需要以一个接一个的序列化方式进行信息处理,注意力权重需要等待序列全部输入模型之后才能确定,简单理解就是,需要 RNN 对序列「从头看到尾」。 例如:
这种架构无论是在训练环节还是推理环节,都具有大量的时间开销,并且难以实现并行处理。而这个时候,工程师又想到了一个方案,就是在标准的 RNN 模型中加入一个「注意力机制」。 什么是注意力机制?
加入注意力机制的模型会一次性的「看见」所有输入的词汇,利用注意力机制将距离不同的单词进行结合,为序列中每个元素提供全局的上下文。 谷歌团队赋予新模型一个大名鼎鼎的名字: 「Transformer」。 Transformer 与处理序列数据常用的循环神经网络(RNN)不同,Transformer 中的注意力机制并不会按照顺序来处理数据,也就是说, 每个元素和序列中的所有元素都会产生联系,这样就保证了不管在时序上相距多远,元素之间的相关性都可以被很好地保留。 而这种长时相关性对于自然语言处理的任务来说通常都是非常重要。比如下图中,句子中的「it」所指的是「The animal」,但是这两个元素之间相距较远,如果用 RNN 来顺序处理的话很难建立起两者之间的联系。 一个句子中各个单词之间的相关性 Transformer 并不关心顺序,在计算相关性时,每个元素的重要性是根据数据本身的语义信息计算出来的。因此,可以轻松地提取任意距离元素之间的相关性。 为什么要说这些? 因为在视觉任务图像分类和物体检测上,通过带有注意力机制的 Transformer 模型其结果出乎意料的好。 为什么源自自然语言领域的算法,在视觉上同样适用呢? 原因主要有两点:
Transformer 在图像分类中的应用 在图 3 的例子中,Transformer 被用来进行图像分类的任务。图像被均匀地分成若干小块,按照空间排列的顺序组成了一个图像块的序列。每个图像块的像素值(或者其他特征)组成了该图像块的特征向量,经过 Transformer 编码在进行拼接后就得到整幅图像的特征。 上图的右侧,给出了编码器的具体结构,其关键部分是一个 「多头注意力模块」。 简单来说,多头注意力其实就是多个注意力机制模块的集成,这些模块各自独立的进行编码,提取不同方面的特征,在增加编码能力的同时,也可以非常高效的在计算芯片上实现并行处理。 综上所述,这也就是中金《人工智能十年展望(三):AI 视角下的自动驾驶行业全解析》这份报告里说的:
03 特斯拉的 FSD 系统解读 Andrej 博士在特斯拉 AI Day 上首先提到,五年前 Tesla 的视觉系统是先获得单张图像上的检测结果,然后将其映射到向量空间(Vector Space)。 这个「向量空间」则是 AI Day 中的核心概念之一。 其实,它就是环境中的各种目标,在世界坐标系中的表示空间。 比如,「 对于物体检测任务,目标在 3D 空间中的位置、大小、朝向、速度等描述特性组成了一个向量,所有目标的描述向量组成的空间就是向量空间。」 视觉感知系统的任务就是,将图像空间中的信息转化为向量空间中的信息。 一般可以通过两种方法来实现:
Andrej 举了两个例子,说明为什么第一种方法是不合适的。 一,由于透视投影,图像中看起来不错的感知结果在向量空间中精度很差,尤其是远距离的区域。如下图所示,车道线(蓝色)和道路边缘(红色)在投影到向量空间后位置非常不准,无法用支持自动驾驶的应用。 图像空间的感知结果(上)及其在向量空间中的投影(下) 二,在多目系统中,由于视野的限制,单个摄像头可能无法看到完整的目标。比如,在下图的例子中,一辆大货车出现在了一些摄像头的视野中,但是很多摄像头都只看到了目标的一部分,因此无法根据残缺的信息做出正确的检测,后续的融合效果也就无法保证。这其实是多传感器决策层融合的一个一般性问题。 单摄像头受限的视野 综合以上分析, 图像空间感知 + 决策层融合并不是一个很好的方案。 进而直接在向量空间中完成融合和感知可以有效地解决以上问题,这也是 FSD 感知系统的核心思路。 为了实现这个思路,需要解决两个重要的问题: 一,如何将特征从图像空间变换到向量空间;二,如何得到向量空间中的标注数据。 特征的空间变换 对于特征的空间变换问题,一般性的做法就是: 「利用摄像头的标定信息将图像像素映射到世界坐标系」。 但这有一些条件上的问题,需要有一定的约束,自动驾驶应用中通常采用的是地平面约束,也就是目标位于地面,而且地面是水平的,这个约束太强了,在很多场景下无法满足。 Tesla 的解决方案,核心有三点:
图像空间感知(左下) vs. 向量空间感知(右下) 通过以上这些算法上的改进,FSD 在向量空间中的输出质量有了很大的提升。在下面的对比图中,下方左侧是来自图像空间感知+决策层融合方案的输出,而下方右侧上述特征空间变换 + 向量空间感知融合的方案。 向量空间中的标注 既然是深度学习算法,那么数据和标注自然就是关键环节,图像空间中的标注非常直观,但是系统最终需要的是在向量空间中的标注。 Tesla 的做法是利用来自多个摄像头的图像重建 3D 场景,并在 3D 场景下进行标注,标注者只需要在 3D 场景中进行一次标注,就可以实时地看到标注结果在各个图像中的映射,从而进行相应的调整。 3D 空间中的标注 人工标注只是整个标注系统的一部分,为了更快更好地获得标注,还需要借助自动标注和模拟器。 自动标注系统首先基于单摄像头的图像生成标注结果,然后通过各种空间和时间的线索将这些结果整合起来。形象点说就是 「各个摄像头凑在一起讨论出一个一致的标注结果」。 除了多个摄像头的配合,在路上行驶的多台 Tesla 车辆也可以对同一个场景的标注进行融合改进。当然这里还需要 GPS 和 IMU 传感器来获得车辆的位置和姿态,从而将不同车辆的输出结果进行空间对齐。 自动标注可以解决标注的效率问题,但是对于一些罕见的场景,比如,中金《人工智能十年展望(三):AI 视角下的自动驾驶行业全解析》报告中所演示的在高速公路上奔跑的行人,还需要借助模拟器来生成虚拟数据。 以上所有这些技术组合起来,才构成了 Tesla 完整的深度学习网络、数据收集和标注系统。 04 毫末智行的 MANA 系统解读 依托长城汽车,毫末智行可以获得海量的真实路测数据,对于数据的处理问题,毫末智行也提出将 Transformer 引入到其数据智能体系 MANA 中,并逐步应用到实际的道路感知问题,比如障碍物检测、车道线检测、可行驶区域分割、交通标志检测等等。 从这一点上就可以看出,量产车企在有了超大数据集作为支撑以后,其技术路线正在走向趋同。 在自动驾驶技术百花齐放的时代,选择一条正确的赛道,确立自身技术的优势,无论对于特斯拉还是毫末智行来说,都是极其重要的。 在自动驾驶技术的发展中,一直就对采用何种传感器存在争论。目前争论的焦点在于是走纯视觉路线还是激光雷达路线。 特斯拉采用纯视觉方案,这也是基于其百万量级的车队和百亿公里级别的真实路况数据做出的选择。 而采用激光雷达,主要有两方面的考虑:
在这种背景下,谁能够既拥有海量数据,又能同时支持视觉和激光雷达两种传感器,那么无疑会在竞争中占据先发的优势。显然,毫末智行在这个方向上已经占据了先机。 根据毫末智行 CEO 顾维灏的在 AI Day 上的介绍,MANA 系统采用 Transformer 在底层融合视觉和激光雷达数据,进而实现空间、时间、传感器三位一体的深层次感知。 下面我就来详细解读一下 MANA 系统,尤其是与特斯拉 FSD 的差异之处。 视觉感知模块 相机获取原始数据之后,要经过 ISP(Image Signal Process)数字处理过程后,才能提供给后端的神经网络使用。 ISP 的功能一般来说是为了获得更好的视觉效果,但是神经网络其实并不需要真正的「看到」数据,视觉效果只是为人类设计的。 因此,将 ISP 作为神经网络的一层,让神经网络根据后端的任务来决定 ISP 的参数并对相机进行校准,这有利于最大程度上保留原始的图像信息,也保证采集到的图像与神经网络的训练图像在参数上尽可能的一致。 处理过后的图像数据被送入主干网络 Backbone,毫末采用的 DarkNet 类似于多层的卷积残差网络(ResNet),这也是业界最常用的主干网络结构。 主干网络输出的特征再送到不同的头(Head)来完成不同的任务。 这里的任务分为三大类: 全局任务(Global Task)、道路任务(Road Tasks)和目标任务(Object Tasks)。 不同的任务共用主干网络的特征,每个任务自己拥有独立的 Neck 网络,用来提取针对不同任务的特征。这与特斯拉 HydraNet 的思路是基本一致的。 但是 MANA 感知系统的特点在于 「为全局任务设计了一个提取全局信息的 Neck 网络」。 这一点其实是非常重要的, 因为全局任务(比如可行驶道路的检测)非常依赖于对场景的理解,而对场景的理解又依赖于全局信息的提取。 MANA 系统的视觉和激光雷达感知模块 激光雷达感知模块 激光雷达感知采用的是 PointPillar 算法,这也是业界常用的一个基于点云的三维物体检测算法。这个算法的特点在于: 「将三维信息投影到二维(俯视视图),在二维数据上进行类似于视觉任务中的特征提取和物体检测」。 这种做法的优点在于避免了计算量非常大的三维卷积操作,因此,算法的整体速度非常快。PointPillar 也是在点云物体检测领域第一个能够达到实时处理要求的算法。 在 MANA 之前的版本中,视觉数据和激光雷达数据是分别处理的,融合过程在各自输出结果的层面上完成,也就是自动驾驶领域常说的 「后融合」。 这样做可以尽可能地保证两个系统之间的独立性,并为彼此提供安全冗余。 但后融合也导致神经网络无法充分利用两个异构传感器之间数据的互补性,来学习最有价值的特征。 融合感知模块 前面提到了一个三位一体融合的概念,这也是 MANA 感知系统区别于其他感知系统的关键之处。正如毫末智行 CEO 顾维灏在 AI Day 上所说: 目前大部分的感知系统都存在「时间上的感知不连续、空间上的感知碎片化」的问题。 MANA 系统的融合感知模块 时间上的不连续:是由于系统按照帧为单位进行处理,而两帧之间的时间间隔可能会有几十毫秒,系统更多地关注单帧的处理结果,将时间上的融合作为后处理的步骤。 比如,采用单独的物体跟踪模块将单帧的物体检测结果串联起来,这也是一种后融合策略,因此无法充分利用时序上的有用信息。 空间上的碎片化: 是由多个同构或异构传感器所在的不同空间坐标系导致的。 对于同构传感器(比如多个摄像头)来说,由于安装位置和角度不同,导致其可视范围(FOV)也不尽相同。每个传感器的 FOV 都是有限的,需要把多个传感器的数据融合在一起,才可以得到车身周围 360 度的感知能力,这对于 L2 以上级别的自动驾驶系统来说是非常重要的。 对于异构传感器(比如摄像头和激光雷达)来说,由于数据采集的方式不同,不同传感器得到的数据信息和形式都有很大差别。 摄像头采集到的是图像数据,具有丰富的纹理和语义信息,适合用于物体分类和场景理解;而激光雷达采集到的是点云数据,其空间位置信息非常精确,适合用于感知物体的三维信息和检测障碍物。 如果系统对每个传感器进行单独处理,并在处理结果上进行后融合,那么就无法利用多个传感器的数据中包含的互补信息。 如何解决这两个问题呢? 答案是: 用 Transformer 做空间和时间上的前融合。 先说空间的前融合 与 Transformer 在一般的视觉任务(比如图像分类和物体检测)中扮演的角色不同,Transformer 在空间前融合中的主要作用并不是提取特征, 而是进行坐标系的变换。 这与特斯拉所采用的技术有异曲同工之处,但是毫末进一步增加了激光雷达,进行多传感器(跨模态)的前融合,也就是图 8 中的 Cross-Domain Association 模块。 上面介绍了 Transformer 的基本工作原理,简单来说就是 「计算输入数据各个元素之间的相关性,利用该相关性进行特征提取」。 坐标系转换也可以形式化为类似的流程。 比如,将来自多个摄像头的图像转换到与激光雷达点云一致的三维空间坐标系,那么系统需要做的是找到三维坐标系中每个点与图像像素的对应关系。传统的基于几何变换的方法会将三维坐标系中的一个点映射到图像坐标系中的一个点,并利用该图像点周围一个小的邻域(比如 3x3 像素)来计算三维点的像素值。 而 Transformer 则会建立三维点到每个图像点的联系,并通过自注意力机制,也就是相关性计算来决定哪些图像点会被用来进行三维点的像素值。 如图 9 所示,Transformer 首先编码图像特征,然后将其解码到三维空间,而坐标系变换已经被嵌入到了自注意力的计算过程中。 这种思路打破的传统方法中对邻域的约束,算法可以看到场景中更大的范围,通过对场景的理解来进行坐标变换。同时,坐标变换的过程在神经网络中进行,可以由后端所接的具体任务来自动调整变换的参数。 采用 Transformer 进行图像坐标系到三维空间坐标系的转换 因此,这个变换过程是完全由数据驱动的,也是任务相关的。在拥有超大数据集的前提下,基于 Transformer 来进行空间坐标系变换是完全可行的。 再说时间上的前融合 这个比空间上的前融合更容易理解一些,因为 Transformer 在设计之初就是为了处理时序数据的。 图 8 中的 Feature Queue 就是空间融合模块在时序上的输出,可以理解为一个句子中的多个单词,这样就可以自然的采用 Transformer 来提取时序特征。相比特斯拉采用 RNN 来进行时序融合的方案,Transformer 的方案特征提取能力更强,但是在运行效率上会低一些。 毫末的方案中也提到了 RNN,相信目前也在进行两种方案的对比,甚至是进行某种程度的结合,以充分利用两者的优势。 除此之外,由于激光雷达的加持,毫末采用了 SLAM 跟踪以及光流算法,可以快速的完成自身定位和场景感知,更好的保证时序上的连贯性。 认知模块 除了感知模块以外,毫末在认知模块,也就是路径规划部分也有一些特别的设计。 顾维灏在 AI Day 上介绍到,认知模块与感知模块最大的不同在于,认知模块没有确定的「尺子」来衡量其性能的优劣,而且认知模块需要考虑的因素比较多,比如安全,舒适和高效,这无疑也增加了认知模块设计的难度。 针对这些问题,毫末的解决方案是场景数字化和大规模强化学习。 场景数字化,就是将行驶道路上的不同场景进行参数化的表示。参数化的好处在于可以对场景进行有效地分类,从而进行差异化的处理。 按照不同的粒度,场景参数分为宏观和微观两种:宏观的场景参数包括天气,光照,路况等;微观的场景参数则刻画了自车的行驶速度,与周围障碍物的关系等。 MANA 系统中的宏观场景聚类 MANA 系统中的微观场景(例子是跟车场景) 在将各种场景数字化了以后,就可以采用人工智能的算法来进行学习。一般情况下,强化学习是完成这个任务的一个比较好的选择。 强化学习就是著名的 AlphaGo 中采用的方法,但是与围棋不同,自动驾驶任务的评价标准不是输和赢,而是驾驶的合理性和安全性。 如何对每一次的驾驶行为进行正确地评价,是认知系统中强化学习算法设计的关键。毫末采取的策略是模拟人类司机的行为,这也是最快速有效的方法。 当然,只有几个司机的数据是远远不够的,采用这种策略的基础也是海量的人工驾驶数据,而这恰恰又是毫末的优势所在,这就是基于长城汽车,毫末在智能驾驶系统上的交付能力会远远领先其他对手,而这背后的核心则是数据的收集能力,基于海量的数据,毫末可以快速迭代算法交付覆盖更多场景的自动驾驶系统。 写在最后 随着自动驾驶技术的快速发展和落地,越来越多的量产车型上开始搭载支持不同级别自动驾驶系统的软件和硬件。在逐渐向商业化迈进的同时,量产车型的规模效应也可以为自动驾驶系统的迭代提供海量的数据支持。这也是业界普遍认可的通向高阶自动驾驶的必经之路。 在这种背景下,拥有潜在数据优势的量产车的企业该如何切入,特斯拉和依托长城汽车的毫末智行率先给出了方案。两者的方案既有宏观的神似之处,也有很多具体策略上的差异,既体现了共识,也展现了个性。 共识之处在于,两家公司都采用了 Transformer 神经网络结构来提升在超大数据集上的学习能力,同时两家公司也都认为数据的采集和自动标注是整个算法迭代的重要环节,并为此进行了巨大的投入。 个性方面,特斯拉采用纯视觉的方案,而毫末采用视觉加激光雷达的方案。在激光雷达量产成本不断降低的背景下,毫末的方案是具有发展潜力的。此外,毫末在 Transformer 的应用上更加深入。 除了融合空间信息以外,Transformer 在 MANA 系统中还被用来融合时序和多模态信息,将系统采集的各种离散数据统一起来,形成连贯的数据流,以更好地支持后端的不同应用。 不管采用何种实现方案,特斯拉和毫末智行在海量数据上进行的尝试对于自动驾驶技术的发展和最终落地实现都是意义重大的。 也希望未来会有更多的企业加入进来,尝试更多不同的可能性,互通有无,互相学习,甚至共享技术和数据,让自动驾驶能够更好更快地为大众服务。 更多阅读 特斯拉连续 7 季度盈利:自动驾驶加快雷达退出向纯视觉切换 特斯拉 Model S Plaid:迄今为止的最快量产车型? 小鹏 P5 发布,有城市 NGP、配激光雷达,18 万会卖爆吗? 焉知新能源汽车 | 一句话点评 未经允许请勿转载到 其他公众号 本文来源【焉知新能源汽车】版权归原作者所有 |