环球车讯网|FSD Rewrite:特斯拉的模仿游戏( 三 )


3D + 时间轴 , 这就是马斯克在自动驾驶日上说的「4D 视觉」 。
Andrej 表示写「Occupency Tracker」代码的过程中要对拼接部分设定大量机器学习网络的 Hyperparameter(超参数)而且存在大量的 error-prone code(易变代码) , 其工作非常复杂繁琐 , 开发难度很大 。
所以软件团队希望用别的方式来替代「Occupency Tracker」做探测环境建模的事情 。
Software 2.0
Autopilot 软件栈中存在 1.0 代码和 2.0 代码 , 它们所组成的软件栈负责处理各类传感器输入的信号 , 包括摄像头、毫米波雷达、超声波雷达和 IMU 惯性测量单元的数据 , 这些原始的传感器数据经过软件的处理最后输出为车辆的加减速以及转向等驾驶决策 , 你可以简单地将软件理解为自动驾驶系统的「脑」 。
其中 1.0 部分为人类程序员用 C++ 语言创建且有确定功能的代码 , 前面提到的「Occupency Tracker」就属于 1.0 代码 。 官方的介绍中 , 这部分都是「死代码」 。
2.0 部分就完全不一样了 , Andrej 表示 2.0 部分如同一个编译器 , 它能消化输入的数据集并输出神经网络代码 。 而且你可以把 1.0 软件的代码库放到 2.0 软件的代码库下运行 , 所以随着 2.0 软件不断「吞并吸收」1.0 软件 , 1.0 软件越来越多的「死代码」逐渐被神经网络所取代 。
而具备深度学习能力的神经网络把原有 1.0 软件「死代码」做的工作 , 做得更上了不止一层楼 。
环球车讯网|FSD Rewrite:特斯拉的模仿游戏
本文图片
以 4D 视觉为例 , 神经网络结构下的感知已然今非昔比 。
环球车讯网|FSD Rewrite:特斯拉的模仿游戏
本文图片
系统依然调用 5 个方向的摄像头图像 , 之后素材依然要经过特征提取部分 , 但与之前不同的是 , 2D 到 4D 环境的拼接建模工作不再由「Occupency Tracker」来完成 , 取而代之的是一套神经网络融合层 。
融合层把摄像头之间的 2D 图像拼接成 4D 并转化至「bird's eye view」 , 完成粗建模 。 然后再经「Temporal module」进行平滑处理 , 优化为精建模 。
精建模素材再经「BEV(Bird's Eye View) Net」解码 , 构造出最终用于驾驶决策并显示于中控上的环境特征 。
像道路轮廓探测 , 原始素材经层层处理 , 最终产出一个道路环境自上而下的 Z+ 向投影图 。 而基于这个投影图来做的环境预测 , 其效果提升堪称肉眼可见的 。
环球车讯网|FSD Rewrite:特斯拉的模仿游戏
本文图片
上图是特斯拉车辆在一个路口捕捉到的不同摄像头画面 , 其下半部几张不同来源的路口轮廓图 , 图中小蓝点即为车辆所在位置 。
其中左下角图片为路口的实际轮廓 , 而右下角这张为 2D 视觉下构建出的路口轮廓 , 可以看出来车辆周围的环境轮廓还勉强有那么几分相似 , 但远一点的地方预测几乎完全失真 , 用「高度近视」来形容一点也不为过 。
Andrej 直言不讳地表示这种效果的环境预测数据就是垃圾 , 毫无价值 。 而对于这种结果 , Andrej 也道出了其中缘由:
2D 视觉中的景深识别是基于像素的 , 其精度覆盖范围很小 , 近车端精度还行 , 但是远一点的区域尤其是画面中地平线附近的像素 , 一丁点的计算不准可能导致数米的道路预测偏差 。
言外之意 , 这是 2D 像素景深识别的「先天残疾」 。
中间这张与实际路口轮廓匹配度很高的轮廓图你应该也猜到了 , 它是由改进后的 4D 视觉构建而成 。 而从 2D 到 4D , 中间的 3D 是治好近视的关键 。
景深测算曲线救国
刚才有说过景深测算是 2D 视觉的一个硬伤 , 对此业界的常规做法是将景测算交由其他传感器 , 比如激光雷达来做 , 再将感知数据融合 。


推荐阅读