特斯拉自动驾驶发展史
“我们设定的目标都实现了,只是有时会晚一些。”这是特斯拉创始人埃隆·马斯克曾经说过的一句话,也贯穿着特斯拉Autopilot技术发展的整个历程。自2013年起,特斯拉就开始了对自动驾驶技术的探索与实践,追求着让驾驶变得更加安全、便捷的梦想。然而,这一路并不平坦,Autopilot的发展历程充满了挑战与奋斗,每一步的进展都是团队不懈努力的成果。让我们一起回顾特斯拉Autopilot的发展历程,以及如何演变到端到端的自动驾驶,见证这一项技术从概念到现实的华丽蜕变。
在2013年,特斯拉的车型还仅限于一款豪华车型Model S。马斯克早在这个时候就已经开始思考将自动驾驶技术应用于汽车之中。当时,他曾与Google探讨过联合开发一套高速公路自动驾驶系统的可能性。然而,由于Google在2013年推出的半自动驾驶系统AutoPilot的测试受挫,双方未能合作。Google停止测试的原因在于一名员工在自动驾驶车辆上睡着,这引发了安全方面的担忧。尽管如此,特斯拉仍然坚定地走上了自动驾驶技术的开发之路,开始了Autopilot项目的探索和实践。
2014年10月,特斯拉发布了Autopilot Hardware 1.0(简称HW 1.0),这一里程碑标志着公司在自动驾驶技术领域的重要进展。令人惊叹的是,从概念到实际发布,仅用了不到一年的时间。HW 1.0的发布标志着特斯拉将自动驾驶技术带入了汽车行业的新纪元。Autopilot Hardware 1.0套件所使用的传感器和计算平台包括:1个前置单目摄像头、1个毫米波雷达、12个超声波传感器、Mobileye EyeQ3计算平台。特斯拉的Autopilot和Google的Firefly都是早期阶段的自动驾驶项目,但它们的传感器配置和技术路线存在显著差异。最大的区别在于特斯拉没有使用激光雷达,而Google Firefly则采用了Velodyne 64线激光雷达。这一差异主要源于成本和技术路线的考量。这要来自于马斯克所推崇的“第一性原理”,他认为人类能够通过眼睛和大脑驾驶汽车,因此给汽车配置视觉设备和运算系统就能实现自动驾驶。
2016年初,特斯拉在内部启动了全自动驾驶计算平台FSD(Full Self-Driving)的研发工作。这个计算平台是无人驾驶硬件系统的重要组成部分,其作用是接收来自硬件传感器的环境信息,并将数据导入计算平台,由不同的芯片进行运算。这些芯片可以被看作是无人驾驶系统的核心,相当于其大脑,需要满足高算力、高稳定性、高安全性、低功耗等相互之间很难平衡的特性要求。2016年10月,特斯拉推出了Autopilot Hardware 2.0(简称HW 2.0),这标志着Autopilot 2.0(简称AP 2.0)正式开始量产。相较于HW 1.0,HW 2.0经历了重大升级。最明显的改进是在传感器方面:HW 1.0仅使用了一个前置摄像头和一个后视摄像头,而HW 2.0配备了8个摄像头,实现了车辆周围360度全视野探测,这种改进使系统能更好地了解车辆周围的环境和情况。实际上,在HW 2.0推出后,特斯拉已经宣称HW 2.0硬件系统足以支撑完全无人驾驶,同时也表明了特斯拉的自动驾驶路线图:计算机视觉感知派。
2019 年 3 月,HW 3.0率先在Model S 和 Model X上实现量产,一个月后又在 Model 3 上量产,Autopilot 硬件正式进入3.0时代,其中最大的亮点是特斯拉采用了自研的 FSD 芯片。2019年4月22日,Tesla举行了“自动驾驶AI Day”活动,推出搭载特斯拉自主研发的FSD芯片的全自动驾驶计算平台,旨在为车辆提供更强大的计算能力,从而支持更复杂的自动驾驶功能。同时介绍了特斯拉在视觉神经网络和数据搜集体系上的建设成果,致力于提高车辆对周围环境的感知能力,并优化自动驾驶算法的性能。
特斯拉在完成硬件准备工作之后,便着手对自动驾驶算法进行史诗级重构,2020年对于特斯拉来说是璀璨与厚积薄发的一年,2020年8月,马斯克在推特上透露,特斯拉的Autopilot团队正在对软件底层代码进行重写,并进行深度神经网络的重构。同时,他们还在开发全新的训练计算机Dojo,当然最为引人注目的还是引入的 BEV+Transfomer 架构,从此,特斯拉自动驾驶进入大模型时代。
特斯拉认为,依赖于"2D图像+CNN"的方式来实现全自动驾驶并不可行,因为摄像头采集的数据是2D图像,而自动驾驶需要应对的是三维真实世界。在这种情况下,将二维数据解决三维问题是不切实际的。特斯拉认为,最佳的解决方案是通过使用鸟瞰图(BEV)将2D图像"升维"到3D,以更好地理解和处理车辆周围的环境。关于BEV的内容,可以看一下《一文了解什么是BEV感知?》。
2023年8月28日,埃隆·马斯克进行了直播,试驾了特斯拉FSD V12版本。这个版本被称为FSD Beta V12,是有史以来特斯拉推出的第一个端到端AI自动驾驶系统,这一里程碑标志着特斯拉在自动驾驶技术上迈出了一大步,向着实现完全自动驾驶的愿景迈进了一步。
02
特斯拉端到端自动驾驶介绍
特斯拉的端到端智能驾驶系统,是一种创新的自动驾驶解决方案,与传统分模块方案有显著区别。在传统的自动驾驶系统设计中,感知模块负责通过各类传感器(如摄像头、雷达、激光雷达等)收集环境信息,识别道路、车辆、行人、交通标志等元素;规划模块基于感知模块提供的信息进行路径规划和决策制定;控制模块则依据规划结果执行具体动作,如调整车速、转向等。
而特斯拉的端到端大模型,则打破了这种模块化的界限,构建了一个统一的神经网络架构,直接从原始传感器数据输入开始,经过深度学习算法处理后,一步到位输出对车辆的操控指令,包括转向角度、制动力以及加速力度等。这样做的好处在于减少了各模块间的信息传递延迟和误差累积,使得自动驾驶系统的反应更加敏捷、准确,同时也简化了系统结构,便于整体优化和训练。但同时,端到端的学习模式也带来了系统解释性相对较弱、问题定位相对困难等问题,这是技术发展中需要持续关注并解决的挑战。
2.1
端到端自动驾驶工作原理
2.1.1、视觉感知层
计算机视觉中物体检测任务的架构通常包含以下组成部分:
(1)Input: 输入是一幅或多幅图像,可能经过预处理以适应模型的需求,例如归一化、缩放等。
(2)Backbone:特征提取网络的核心部分,负责从输入图像中提取高层次的特征。它通常基于经典的卷积神经网络(CNN)结构,比如AlexNet、VGGNet、ResNet,这些网络通过一系列卷积层和池化层逐层抽象并压缩信息。
(3)Neck:在主干网络之后,这部分网络对不同层级的特征进行整合与优化,有时称为“中间层”或“特征融合层”。
(4)Detection Head:此部分用于预测最终的物体位置和类别。在特征提取(骨干)之后,提供输入的特征图表示。
(5)Output:输出通常是物体检测的结果,包括每个对象的类别标签、置信度分数以及精确的边界框坐标。
2021年,特斯拉创建HydraNet自动驾驶网络,用于视觉感知任务,这是一种多任务学习神经网络架构,通过一个统一的神经网络模型来并行处理多种不同的感知任务。在自动驾驶场景下,车辆需要同时完成多个复杂环境下的理解任务,涵盖目标检测(如识别其他车辆、行人、交通标志等)、车道线检测、可行驶区域分割以及深度估计等。
在HydraNet中,为了同时完成多种感知任务,例如车道线检测、车辆和行人检测与追踪、交通信号灯识别等,设计了多个并行的“任务头”(task-specific heads)。每个任务头都连接到共享的基础特征提取层(backbone),从而可以从同一份输入数据中抽取不同层次的语义信息,并分别对特定任务进行处理。其构建了这样一个流程:
(1)图像预处理与特征提取:通过类似于ResNet的神经网络结构对环绕车身的8个摄像头拍摄的图像进行初步处理。
(2)多机位融合:使用Transformer-like架构将来自不同视角和位置的8幅图像信息进行深度融合,生成一个综合了多个视图信息的“超级图像”以消除单个相机视野受限带来的问题。
(3)时间融合:将时间维度纳入考虑范围,将连续时间段内的“超级图像”序列进行融合以增强感知模型对动态环境的理解。
(4)任务导向输出:最后,融合后的时空特征会被送入多个任务导向的输出层(HEADS),每个HEAD专门负责一个特定的感知任务,比如车道线检测、车辆/行人检测与追踪、交通信号识别等。
2.1.2、路径规划层
特斯拉的Occupancy Network通过处理摄像头捕捉到的多视图图像数据,来预测三维空间中每个点被物体占据的概率。这一网络模型旨在实现对车辆周围环境的精确建模,从而帮助车辆在没有使用超声波传感器或雷达的情况下(纯视觉方案),也能有效地理解道路场景和进行路径规划。
在特斯拉端到端的自动驾驶系统规划模块中,引入占据网络(Occupancy Network)后,系统的感知和规划决策过程可以概述如下:
感知阶段:
第 1 步:视觉测量—特斯拉车辆利用其8个摄像头收集环境数据,包括车道线、静态和动态物体的位置以及空间中的占用率信息。占用网络负责处理这些图像数据,以生成三维空间的占用概率图,即预测环境中哪些区域可能被其他车辆、行人或其他障碍物占据。
轨迹生成与评估阶段:
第 2-3 步:候选目标和轨迹生成—根据占用率网络和其他感知模块(如车道检测)的输出,规划器会生成一系列潜在驾驶轨迹,每个轨迹对应一个不同的行驶决策或目标。
第 4-5 步:选择评估—对于每一个生成的轨迹,规划器会进行规则驱动的选择评估,例如考虑“行人让行”与“获取行驶权”的情况,以及“右侧来车让行”等交通规则。每条轨迹都会根据一套人工设计的成本函数进行打分,该函数综合考虑碰撞概率、舒适度(比如加速度变化)、是否需要人为干预的可能性以及行为模式与人类驾驶员的相似程度等因素。
决策阶段:
成本优化—在生成的多条轨迹中,规划器会选择成本最低的那一条作为最优解决方案,以决定车辆接下来的行驶动作,输出规划行驶轨迹。
2.2
端到端自动驾驶的优点
(1)更高的技术潜力:端到端结构允许模型从原始输入直接推导出最终控制输出,能够通过联合优化各个部分来提升整体性能,从而可能达到比模块化系统更高的技术上限。
(2)数据驱动解决复杂问题:该方法依赖于大数据集进行训练,使得系统在处理各种复杂的边缘情况(corner case)时表现更佳。大量数据有助于模型学习并适应不同环境下的驾驶场景,增强系统的鲁棒性和适应性。
(3)减少累积误差:由于全栈神经网络结构将感知、决策和控制等环节紧密地结合在一起,信息无需经过多个独立模块间的转换,因此减少了因模块间信息传递导致的累积误差,提高了决策与执行的一致性和准确性。
2.3
端到端自动驾驶的缺点
(1)可解释性较差:端到端模型的内部机制往往过于复杂,难以直观理解和解释其决策过程,这给调试、改进和法规合规带来了一定挑战。
(2)对海量高质量数据的高度依赖:端到端自动驾驶需要极其庞大的高质量数据支持,包括多样化的道路场景、天气条件以及交通行为样本。获取、标注和清洗这些数据需要巨大的资源投入,同时训练这样的大型神经网络也需要高性能计算设备和大量的算力支持。