【论文笔记】FIERY: Future Instance Prediction in Bird’s-Eye View from Surround Monocular Cameras
1. 引言
未来状态的预测是自动驾驶运动规划的关键。目前基于图像的预测模型或在透视视图坐标系下进行,或依赖HD地图生成BEV表达。本文期望在无需辅助系统的情况下生成BEV场景表达。
本文提出FIERY,直接从图像数据端到端地预测道路智能体的多模态未来状态(多个可能轨迹)。FIERY通过在BEV下预测未来的实例分割和运动;使用概率模型预测可能的多模态未来动态环境。
3. 模型结构

3.1 将相机特征提升到3D
本文使用LSS的方法提升和融合图像特征,得到BEV特征图。具体来说,使用编码器E获取待提升特征和离散概率分布。记O_t=\{I^1_t,\cdots,I^n_t\}为t时刻的n个视图图像,则e^k_t=E(I_t^k)\in\mathbb R^{(C+D)\times H_e\times W_e},其中D为D_{\min}和D_{\max}之间均匀分布的特征区间数,区间大小为D_\text{size}。将e^k_t分为两部分e^k_t=(e^k_{t,C},e^k_{t,D}),其中e^k_{t,C}\in\mathbb R^{C\times H_e\times W_e},e^k_{t,D}\in\mathbb R^{D\times H_e\times W_e}。通过外积,可得张量u_t^k \in\mathbb R^{C\times D\times H_e\times W_e}:
u_t^k=e_{t,C}^k\otimes e_{t,D}^k
深度概率类似自注意力的形式调整3D特征。根据相机内外参,可将(u_t^1,\cdots,u_t^n)变换到自车坐标系下。
3.2 投影到BEV下
本文将BEV划分为网格,然后对落入每个网格中的3D特征进行求和池化,得到BEV特征图x_t\in\mathbb R^{C\times H\times W}。
3.3 学习时间表达
将过去的BEV特征(x_1,\cdots,x_{t-1})根据自车运动(a_1,\cdots,a_{t-1})(其中a_{i}\in SE(3)为自车从i时刻到i+1时刻的运动(即旋转和平移))变换到当前帧的自车坐标系下。可使用空间变换模块S实现:
x_i^t=S(x_i;a_{t-1}\cdot a_{t-2}\cdot ... \cdot a_i)
并对得到的特征进行空间广播。
然后,使用时间模型T处理空间对齐的特征,输出时空状态s_t:
s_t=T(x_1^t,x_2^t,\cdots,x_t^t)
其中x_t^t=x_t。T为3D卷积网络,包含局部时空卷积,全局3D池化和跳跃连接。
3.4 当前和未来分布
本文使用条件变分方法建模未来预测的随机性。引入两个分布:当前分布P(仅利用当前时空状态s_t)和未来分布F(可额外获取未来标签(y_{t+1},\cdots,y_{t+H}),其中H为未来预测的时间范围;标签对应未来的中心性、偏移量、分割和流)。
本文将两个分布参数化为对角高斯,其均值\mu\in\mathbb R^L,方差\sigma^2\in\mathbb R^L,其中L为隐维度。训练时,使用未来分布的样本\eta_t\sim\mathcal N(\mu_{t,\text{future}},\sigma^2_{t,\text{future}})强制预测与观测到的未来一致,并使用KL散度损失使当前分布覆盖未来观测到的未来:
L_\text{prob}=D_{KL}(F(\cdot|s_t,y_{t+1},\cdots,y_{t+H})||P(\cdot|s_t))
推断时,从当前分布中采样样本\eta_t\sim\mathcal N(\mu_{t,\text{present}},\sigma^2_{t,\text{present}}),其中每个样本编码了可能的未来。
3.5 BEV下的未来预测
未来预测模块是卷积门控循环单元网络,以当前状态s_t和来自F(训练时)或P(推断时)样本\eta_t为输入,递归地输出未来状态的预测(\hat s_{t+1},\cdots,\hat s_{t+H})。
3.6 未来实例分割和运动
得到的特征会输入BEV解码器D,预测语义分割、实例中心性、实例偏移量和未来实例流。对j\in\{0,\cdots,H\},有
\hat y_{t+j}=D(\hat s_{t+j})
其中\hat s_t=s_t。
对于未来时刻t+j,实例中心性(下图左1)指示了找到实例中心的概率,可通过NMS找到一组实例中心。偏移量(下图左3)是指向实例中心的向量,可与语义分割图(下图左2)一起用于分配邻域像素到最近的实例中心,得到BEV下的实例分割(下图左5)。未来流(下图左4)为动态智能体的位移向量场,通过比较t+j+1时刻的被检测实例中心和t+j时刻的流位移实例中心并通过匈牙利算法匹配,可连续跟踪实例。

3.7 损失
考虑到大部分均为背景,语义分割使用top-k交叉熵损失,仅反向传播最困难的k个样本。中心性损失为l_2距离,偏移量和流损失为l_1距离。随着未来时间j的增加,损失的权重逐渐减小。
4. 实验设置
4.1 数据集
使用nuScenes数据集。所有标签(y_t,\cdots, y_{t+H})均为3D边界框向BEV的投影,生成BEV占用网格,且均变换到当前帧的坐标系下。
4.2 指标
未来视频全景质量 :同时考虑识别质量(实例的时间一致性)和分割质量(实例分割精度)。
使用视频全景质量(VPQ):
\text{VPQ}=\sum_{t=0}^H\frac{\sum_{(p_t,q_t)\in TP_t}\text{IoU}(p_t,q_t)}{|TP_t|+\frac12|FP_t|+\frac12|FN_t|}
其中TP与相应ID的真值(正确跟踪)IoU大于阈值(正确检测)。
广义能量距离 :D_\text{GED}。
5. 结果
5.1 与文献比较
由于无可直接比较的方法,本文首先比较语义分割任务。将FIERY接收的过去帧和预测的未来帧均设置为0(称为FIERY Static)后与其余语义分割方法比较,可知FIERY Static有更高的性能。使用过去帧输入后,IoU能进一步提高,这说明时间信息的积累有效。与未来语义分割预测的FishingNet相比,FIERY能超过基于激光雷达的与基于图像的FishingNet。
5.2 未来实例预测
设置两种基准方案:静态模型 (预测当前帧的结果,未来帧结果与之相同)和外推模型 (为每个过去帧预测结果,然后根据匈牙利匹配结果外推到未来时刻)。
此外,还进行了无时间上下文 (仅使用当前帧特征)、无变换 (不将过去帧特征空间对齐到当前帧)、无未来流 (不预测未来流)、无展开 (不递归预测下一时刻的状态,而是直接从s_t预测所有时刻的状态)、均匀深度 (使用OFT方法提升特征,即深度均匀分别)和确定性 (不进行概率建模)情况下的消融实验。
5.3 分析
实验表明,FIERY能大幅超越基准方案的性能,且上述不同的消融均会降低性能。
时间模型 :无时间上下文的模型与静态模型的性能接近。因为其无过去信息,难以进行运动推断。
变换到当前帧坐标系下 :当不进行变换时,性能大幅下降。因为移除自车运动的影响能使模型更容易学习动态物体的对应关系。
预测未来状态 :无展开变体的性能低于本文方法,因为顺序约束(当前时刻的预测应该基于上一时刻的预测)很重要。
未来运动 :预测未来运动可以使得模型根据预测流比较实例中心,从而识别实例。无未来流时,时间一致性难以保证,性能有大幅下降。
将特征提升到3D :均匀深度模型的性能更低。
当前和未来分布 :确定性模型难以在不确定的未来下进行预测。本文的概率模型使得FIERY可以预测准确而多样的未来。
5.4 概率建模
与其余概率模型相比,本文的概率未来预测模型能产生更精确和多样的预测。
补充材料
A. 额外结果
A.3 概率建模
广义能量距离 :令(\hat Y,\hat Y')为模型预测未来的样本,(Y,Y')为真实未来的样本,d为距离度量。广义能量距离D_\text{GED}为
D_\text{GED}=2\mathbb E[d(\hat Y,Y)]-\mathbb E[d(\hat Y,\hat Y')]-\mathbb E[d(Y,Y')]
其中d(x,y)=1-\text{VPQ}(x,y)。由于只能获取唯一的未来样本Y,上式简化为
D_\text{GED}=2\mathbb E[d(\hat Y,Y)]-\mathbb E[d(\hat Y,\hat Y')]
基准方案 :
- M-Head :使用M个头输出M个不同的未来。训练时,性能最好的头会以1-\epsilon的权重反向传播,而其余头的权重为\frac{\epsilon}{M-1}。
- 贝叶斯dropout :在时间模型的3D时间卷积中、以及解码器中插入dropout层。
- 经典VAE :使用中心单元高斯进行概率分布的约束。推断时,隐编码从\mathcal N(0,I_L)中采样。
A.4 学到的状态的可视化
对状态s_t使用主成分分析,并使用高斯混合算法聚类。可视化输入和簇的预测发现,同一簇中的样本对应相似的场景。这解释了为何模型能从确定性数据集中学习到多样的未来。
A.5 未来预测的时间范围
增大时间范围,预测的性能下降并趋于稳定。因为在长时间范围下,不确定性大幅增加,且会出现过去帧不可见的智能体。
B. 模型和数据集
B.1 模型描述
BEV编码器 :使用EfficientNet-B4主干提取图像特征和深度分布。
时间模型 :3D卷积时间模型使用的3D卷积核大小为(k_t,k_s,k_s),其中k_t对应时间维度,k_s对应空间维度。
输出状态s_t\in\mathbb R^{C_\text{out}\times H\times W}。
当前和未来分布 :除了输入通道数外,当前和未来分布的模型完全一致。当前分布的输入为s_t(维度为C_p=C_\text{out}),未来分布的输入为(s_t,y_{t+1},\cdots,y_{t+H})的拼接,维度为C_f=C_p+C_y\cdot H。模型由残差块、空间均值池化层和1\times1 2D卷积组成,输出分布的均值和对数标准差(\mu,\sigma)\in\mathbb{R}^L\times\mathbb R^L。
未来预测 :模型由卷积门控循环单元和残差块组成。
未来实例分割和运动解码器 :解码器由共享主干和多任务头组成。
B.2 标注生成
将中心性标签表达为以实例中心为中心的2D高斯,以指示像素为实例中心的概率(大小为\mathbb R^{1\times H\times W})。对实例的所有像素,计算其指向实例中心的偏移量标签(大小为\mathbb R^{2\times H\times W})。未来流标签(大小为\mathbb R^{2\times H\times W})则通过比较相邻帧同一实例中心得到。
考虑所有可观测的汽车类别。
