对于特征的空间变换问题,专栏之前在3D感知的文章中也做了介绍,一般性的做法就是利用摄像头的标定信息将图像像素映射到世界坐标系。但这是个病态问题,需要有一定的约束,自动驾驶应用中通常采用的是地平面约束,也就是目标位于地面,而且地面是水平的。这个约束太强了,在很多场景下无法满足。Tesla的解决方案中核心的有三点。首先,通过Transformer和Self-Attention的方式建立图像空间到向量空间的对应关系,这里向量空间的位置编码起到了很重要的作用。具体实现细节这里就不展开说了,以后有时间再单开一篇文章详细的介绍。简单来理解的话,向量空间中每一个位置的特征都可以看作图像所有位置特征的加权组合,当然对应位置的权重肯定大一些。但是这个加权组合的过程通过Self-Attention和空间编码来自动的实现,不需要手工设计,完全根据需要完成的任务来进行端对端的学习。其次,在量产应用中,每一辆车上摄像头的标定信息都不尽相同,导致输入数据与预训练的模型不一致。因此这些标定信息需要作为额外的输入提供给神经网络。简单的做法可以将每个摄像头的标定信息拼接起来,通过MLP编码后再输入给神经网络。但是,一个更好的做法是将来自不同摄像头的图像通过标定信息进行校正,使不同车辆上对应的摄像头都输出一致的图像。最后,视频(多帧)输入被用来提取时序信息,以增加输出结果的稳定性,更好的处理遮挡场景,并且预测目标的运动。这部分还有一个额外的输入就是车辆自身的运动信息(可以通过IMU获得),以支持神经网络对齐不同时间点的特征图。时序信息的处理可以采用3D卷积,Transformer或者RNN。FSD的方案中采用的是RNN,以我个人的经验来看,这确实也是目前在准确度和计算量之间平衡度最好的方案。通过以上这些算法上的改进,FSD在向量空间中的输出质量有了很大的提升。在下面的对比图中,下方左侧是来自图像空间感知+决策层融合方案的输出,而下方右侧上述特征空间变换+向量空间感知融合的方案。
图像空间感知(左下) vs. 向量空间感知(右下)4.2 向量空间中的标注