近日,特斯拉中国在线下与媒体分享了其采用纯视觉方案的思路与研究进展。
坚持视觉感知 用AI神经网络技术提升辅助驾驶能力
如图1所示,AndRej说:我们希望能够打造一个类似动物视觉皮层的神经网络连接,模拟大脑信息输入和输出的过程。就像光线进入到视网膜当中,我们希望通过摄像头来模拟这个过程。
多任务学习神经网络架构HydRaNets,通过一个主干网络处理8个摄像头传入进来的原始数据,利用RegNet残差网络和BIFPN算法模型统一处理,得出不同精度下的各类型图像特征,供给不同需求类型的神经网络任务所用。
不过由于该结构处理的是单个摄像头的单帧图片画面,在实际应用时候遇到很多瓶颈;于是在次结构之上加入了TRansfoRMeR神经网络结构,使得原本提取的二维的图像特征,变为了多个摄像头拼合起来的三维向量空间的特征,从而大大提升了识别率和精准度。
还没完,由于仍是单帧的画面,所以还需要时间维度和空间维度,以让车辆拥有特征”记忆”功能,用于应对”遮挡”、”路牌”等多种场景,最终实现以视频流的形式,将行驶环境的特征提取出来,形成向量空间,让车辆能够精准、低延迟地判断周围环境,形成4D向量空间,这些视频形式特征的数据库为训练自动驾驶所用。
不过由于城市自动驾驶与高速自动驾驶不同,车辆规划模块有两大难题,其一是行车方案不一定有最优解,其局部最优解会很多,也就意味着同样的驾驶环境,自动驾驶可以选择很多种可能的解决方案,并且都是好的方案;其二是维度较高,车辆不仅需要做出当下的反应,还需要为接下来的一段时间做好规划,估算出位置空间、速度、加速度等诸多信息。
所以特斯拉选择两个途径解决规划模块这两大难题,一个是用离散搜索方式解决局部最优解的”答案”,以每1.5毫秒2500次搜索的超高效率执行;另一个是用连续函数优化来解决高维度问题。通过离散搜索方式先得出一个全局最优解,然后利用连续函数优化来平衡多个维度的诉求,例如舒适型、平顺性等,得出最终的规划路径。
此外,除了要为自己做规划,还要”估算”和猜测其他物体的规划,即用同样的方式,基于对其他物体的识别以及基础的速度、加速度等参数,然后替其他车辆规划路径,并以此应对。
不过全球各地的道路状况千变万化,非常复杂,如果采用离散搜索的方式会消耗大量资源,并且使得决策时间过长,所以选择了深度神经网络结合蒙地卡罗搜索树的方式,大大提高的决策效率,几乎是数量级的差距。
最终规划模块的整体架构如图5,先基于纯视觉方案的架构将数据处理为4D向量空间,然后基于之前得到的物体识别以及共享的特征数据,再利用深度神经网络寻找全局最优解,最终规划结果交给执行机构执行。
当然,再好的神经网络架构和处理办法,都离不开一个有效且庞大的数据库。在数据从2D向3D、4D转换过程中,约1000多人的人工标注团队也在与时俱进在4D空间上进行标注,并且仅需在向量空间中标注后,会自动映射入不同摄像头的具体单个画面中,大大增加的数据标注量,但这些还远远不够,人工标注的数据量远远喂不饱自动驾驶所需的训练量。
由于人更擅长语义识别,而计算机更加擅长与几何、三角化、跟踪、重建等,所以特斯拉想要创造一个人和计算机”和谐分工”共同标注的模式。
特斯拉搭建了一个庞大的自动标注流水线,用45秒-1分的视频,包括大量传感器数据,交给神经网络离线学习,然后利用大量机器和人工智能算法生成可以用于训练网络的标注数据集。
对与可行驶区域例如道路、道线、十字路口等的识别,特斯拉使用了NeRF”神经辐射场”,即一种2D向3D转化的图像处理算法,给出既定的XY坐标点数据,让神经网络预测地面的高度,由此生成无数的XYZ坐标点,以及各种语义,例如路边、车道线、路面等,形成大量的信息点,并反向投射到摄像头画面中;然后将其道路数据和之前神经网络识别出来的画面分割结果进行比较,并整体优化所有摄像头的图像;同时结合时间维度和空间维度,创建出较为完善的重建场景。
利用此技术将不同车辆经过同一地点所重建的道路信息,进行交叉比对,他们必须在所有位置点信息一致对的上,才为预测正确,这样共同作用下,形成了一种有效的道路表面的标注方法。
这与高精地图完全不一样,所有的视频片段所产生的标注信息只要越来越精确精准,标注信息和视频里实际道路情况相符,就不必再维护这些数据。
同时利用这些技术,还可以对静态的物体进行识别和重建,并且有纹理、没纹理都可以根据这些3D信息点做出标注;这些标注点对于摄像头识别任意障碍物都非常有用。
采用离线处理这些数据和标注的另一个好处是,单车网络每次只能对其他运动事物进行预测,而离线由于数据既定行,可以通晓过去和未来,就能依照确定的数据,忽视遮挡与否,对所有的物体的速度、加速度进行预测和校准优化,并标注,训练网络后来更准确判断其他运动事物,便于规划模块进行规划。
然后将这些结合起来,就形成了对视频数据中,所有道路相关、静动态物体的识别、预判和重建,并对其动力学数据标注。
这样的视频数据标注将成为训练自动驾驶神经网络的核心部分。其中一个项目就是在3个月内,利用这些数据训练网络,成功实现了毫米波雷达所有功能并且更加准确,所以去掉了毫米波雷达。
验证了这种方式的高度有效,那么就需要海量的视频数据来训练。所以同时,特斯拉还开发了”仿真场景技术”,可以模拟现实中不太常见的”边缘场景”用于自动驾驶培训。
特斯拉利用仿真模式训练网络,已经用了3亿张图像和50亿个标注来训练网络,接下来还会利用该模式继续解决更多的难题。
综上,如果要更快速提升自动驾驶网络的能力,需要处理海量的视频片段以及运算。举个简单的例子,为了拿掉毫米波雷达,就处理了250万个视频片段,生成了超过100亿个标注;而这些,让硬件越来越成为发展速度的瓶颈。
之前特斯拉使用的是一组约3000块GPU、稍低于20000个CPU的训练硬件,并为了仿真还加入了2000多台FSD计算机;后来发展到10000块GPU组成的世界排名第五的超级计算机,但是即便如此,还是远远不够。
所以特斯拉决定自己研制超级计算机。
“工程学的创举”—D1芯片与Dojo超级计算机
当下,随着所需处理的数据开始指数级增长,特斯拉也在提高训练神经网络的算力,因此,便有了特斯拉Dojo超级计算机。
特斯拉的目标是实现人工智能训练的超高算力,处理大型复杂的神经网络模式、同时还要扩展带宽、减少延迟、节省成本。这就要求Dojo超级计算机的布局,要实现空间和时间的最佳平衡。
如图所示,组成Dojo超级计算机的关键单元是特斯拉自主研发的神经网络训练芯片—D1芯片。D1芯片采用分布式结构和7纳米工艺,搭载500亿个晶体管、354个训练节点,仅内部的电路就长达17.7公里,实现了超强算力和超高带宽。
如图所示,Dojo超级计算机的单个训练模块由25个D1芯片组成。由于每个D1芯片之间都是无缝连接在一起,相邻芯片之间的延迟极低,训练模块最大程度上实现了带宽的保留,配合特斯拉自创的高带宽、低延迟的连接器;在不到1立方英尺的体积下,算力高达9PFLOPs(9千万亿次),I/O带宽高达36TB/s。
得益于训练模块的独立运行能力和无限链接能力,由其组成的Dojo超级计算机的性能拓展在理论上无上限,是个不折不扣的”性能野兽”。如图9所示,实际应用中,特斯拉将以120个训练模块组装成ExaPOD,它是世界上首屈一指的人工智能训练计算机。与业内其他产品相比,同成本下它的性能提升4倍,同能耗下性能提高1.3倍,占用空间节省5倍。
与强大硬件相匹配的,是特斯拉针对性开发的分布式系统—DPU(Dojo PRoceSSing UnIT)。DPU是一个可视化交互软件,可以随时根据要求调整规模,高效地处理和计算,进行数据建模、存储分配、优化布局、分区拓展等任务。
不久后,特斯拉即将开始Dojo超级计算机的首批组装,并从整个超级计算机到芯片、系统,进行更进一步的完善。对于人工智能技术,马斯克显然还有更远大的追求。这种追求,寄托在他开场白中”我们遭遇了一点技术问题,希望以后可以用AI来解决”的调侃,更在于活动结尾时他许下的”我们会进一步在整个人类世界里畅游”的承诺。