【LSS】Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D

【LSS】Lift, Splat, Shoot: Encoding Images from Arbitrary Camera Rigs by Implicitly Unprojecting to 3D

1 摘要

现有的自动驾驶车辆的主要目标是从多个传感器抽取语义信息,并将这些语义信息融合成一个 BEV 坐标系下的特征图,然后进行运动规划。本文作者提出了一个方法,该方法将任意多的相机数据转化成BEV下的特征;lift:首先将 Image 信息映射到截头体中,splat:然后将多个截头体进行栅格化,训练结果表明,该模型不仅能够实现对图片信息很好的表达,还能实现对多个图片很好的融合在一个单一的表达,而且对标定误差具有鲁棒性,shoot:当将目标运动的轨迹映射到我们的 BEV 视角下,能够发现我们的模型推断的表示能够实现可解释的运动规划。
在这里插入图片描述

2 介绍

在自动驾驶中将多个传感器作为输入,每个传感器都有自己的坐标系,最终需要统一到自车坐标系下进行运动规划:
在这里插入图片描述
对于多个相机生成的 Images,可以通过单个 Image 进行检测,然后再进行转换和平移大自车坐标系下,实现多自车的全景检测,并且单个 Image 检测具有平移不变性,转置不变性,自车自车框架下的等距,这三个有价值的性质,但是需要对数据进行后处理实现,而且这种后处理是不能够通过数据驱动的方式实现的。
作者提出了“lift-splat”方法保证了上述的三个对称性有点,但是能够实现端到端训练的模型。“lift” 是通过生成一个截面体,实现将 Images 映射到 3D 空间上;“splat” 是将所有的截面体映射到同一个平面上,方便下游实现运动规划;“shooting” 是将预测轨迹映射到参照平面,可以得到可解释的运动规划。

3 Method

作者提出了在 BEV 视角下对多个 images 数据进行融合,并且保存了上述的三个有点。作者使用相机的内参矩阵和外参矩阵实现对参照坐标(x, y, z)到像素坐标(h, w, d)的映射。

3.1 Lift: Latent Depth Distribution

在这里插入图片描述

作者首根据 image 生成一个截面体,并将截面体在depth方向上离散化成 |D| 个点,在这里插入图片描述
对于每一个voxel(h, w)在 image 上都能找到与之对应的特征 c ( c 是已经提取过的上下文特征),由于每个voxel(h, w)都有 |D| 个点与之对应,因此生成一个 |D| - 1 维向量 α,用于表示同一个voxel (h, w)中位置 d 的特征向量:
在这里插入图片描述

3.2 Splat: Pillar Pooling

首先使用内参和外参将 “lift” 得到的 3D 点转化成 BEV平面,然后再利用 pointpilliar 将转化后的 points 利用 sum pooling 转化成bev 下的 featuremap ,实现对离散的矩阵使用离散卷积。
在这里插入图片描述

4 实施

4.2 棱台池化累积和技巧

该技巧是基于本文方法用图像产生的点云形状是固定的,因此每个点可以预先分配一个区间(即BEV网格)索引,用于指示其属于哪一个区间。按照索引排序后,按下列方法操作:
在这里插入图片描述
可以通过计算该算法的解析梯度,而非使用自动梯度计算以加快训练。该方法被称为“棱台池化”。

5 实验与结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43915090/article/details/133769363