1 背景
团队:地平线
时间:2022
代码:https://github.com/linxuewu/Sparse4D
2 3D检测存在的问题
2.1 dense的问题
- Dense BEV太消耗算力
- BEV会限制感知距离
- 高度信息在BEV中难以体现height dimension is compressed
2.2 sparse的问题
现在sparse的效果不够好,赶不上BEV
2.3 Sparse4D的贡献
- 第一个 稀疏的 多视角的 融合时序信息的 3D检测算法。哪一个才是重点?
- 提出了一个模块:deformable aggregation。可以聚合多尺度、多视角、时序的信息。
- 还提出了一个显式估计深度的模块:depth reweight module。
3 具体方法
3.1 Image encoder
backbone + FPN
得到N个视角,S个尺度的特征feature maps
3.2 decoder / deformable 4d aggregation
3.2.1 输入输出
输入初始M组信息,每组包含一个特征向量+1个anchor box,anchor box包含位置、尺寸、方向、速度信息。
输出每个anchor的置信度classification confidence、优化后refined的特征和anchor box。
3.2.2 解码过程
解码过程由多个deformable 4d aggregation模块组成。消融实验证明:10-12个模块最优
- 3d keypoints generation
每个anchor都会生成KF个固定和KL个可学习的关键点keypoints。
a.消融实验证明,可学习的关键点可以提升mAP %0.43。
b.除了文中的方法,是否还有其他方法生成可学习的关键点
c.固定点在bbox中间和6个面中心点
上述过程只生成了3d关键点,接下来把关键点准确投影到之前帧上去。
a.采用障碍物恒速度模型,将关键点平移到上一时刻
b.采用自车模型,将关键点投影到上一时刻的自车坐标系下 - feature sampling
a.先通过相机的投影矩阵,将3D信息转为2D
b.双线性插值。应该是因为feature maps都是离散点,投影过去之后插值 - hierarchy fusion
这是最复杂的一步。
a.根据上一时刻的Fm,计算沿scale/view方向的权重,然后加权求和,得到沿t和keypoint维度的特征;
b.经过时序融合(本质是linear操作),得到keypoint维度的特征;
c.经过求和,融合keypoint维度,得到anchor的特征 - depth reweight module
因为这些特征可能深度估计不准,因此将其额外乘以一个深度概率。消融实验表明mAP提升0.43%。
截止目前为止,Fm更新完毕。 - regression head
regression回归当前anchor和真值的offset,并将其更新到anchor中。
截止目前为止,anchor更新完毕。
4 总结
这一篇论文里详细讲解了deformable aggregation,在后续的sparsedrive中也用到了这个模块。sparsedrive的思想和本文基本一致。