论文阅读21 BEV感知系列-PETR
目录
本文是了解BEV感知系列的第八篇论文阅读,来自旷视,其主要针对DETR3D进行改进,优化其object query部分,通过Lift的方式编码3D的position encoding,进而联合object query共同学习目标信息。
简介
- 论文:《PETR: Position Embedding Transformation for Multi-View 3D Object Detection》
- 作者:Yingfei Liu, Tiancai Wang, Xiangyu Zhang, Jian Sun
- 机构:MEGVII Technology
- 论文水平:CVPR 2022
- 关键词:Perception && Position Embedding
- 论文链接:paper
摘要
本文提出了PETR,其在DETR3D基础上深入设计了位置编码模块,在DETR3D中,其通过一组object queries隐式从2D图像中学习3D框的特征,在decoder中使用的key和value均来自于图像特征,而在这个过程中是没有位置编码信息的,所以本文的目的就是给图像的特征加上三维的位置编码,以更好地实现与queries的交互。
讨论
对于DETR系列任务中的位置编码,原始的DETR中直接使用二维图像的位置编码,而DETR3D则是没有具体设计位置编码,是通过投影的方式将3D转到2D进而实现了3D query与2D来自图像的key和value的特征交互。而本文则是选择通过位置编码,将2D的特征转移到3D空间,进而让特征交互、query索引的操作均发生在3D空间中,这样特征的尺度是对齐的。
主要贡献
- 提出了一种简单优雅的框架,将2D图像特征编码成3D的位置信息,然后通过3D的object queries与3D位置编码做交互,直接学习3D的预测框
- 将liftsplat中的2D-3D的方法应用在transformer框架中,形成了新颖的3D位置编码方案
方法框架
pipeline
-
2D 主干网络
- 多相机的前景透视图像,通过ResNet网络提取每个相机的图像特征
-
3D Coordinates Generator
-
简单来说,就是LiftSplat中的2D-3D操作,先对每个像素预测D维的深度分布,然后构建ego周围的Voxel空间网格,将相机视角的像素投影到3D空间中,如下所示
个人理解,这里只是类似编码了ego周围的特征,通过划分voxel,以及内外参,将每个视角下的图像像素与voxel对应起来,但应该没有涉及到图像的特征信息。 此外,得到的3D坐标在各自xyz维度上均进行了归一化处理。
-
-
Position Encoder
- 图像特征用1x1卷积对齐维度
- 3D的voxel坐标通过全连接学习特征
- 将二者相加,然后做flatten操作,得到每个点的位置编码特征。
- 在实际使用中,应该是直接将3D的voxel坐标特征做key_pos,然后将img的特征经过1x1 conv做key和value,object query则是以0初始化,一起送到后续decoder中的。并没有提前使用这个add操作
-
Decoder
- 标准的DETR的decoder,包括了L层decoder layers
- 通过输入的3D PE以及2D img 特征,做cross atte,然后输出目标类别以及回归量。
- 每一层的decoder都会输出,包含独立的分类和回归,但是没有迭代地对xyz进行更新。
- query的初始化参考了Anchor DETR的操作,通过预先设置一组可学习的anchor points,其服从0-1均匀分布
- 这个anchor detr也是旷视大佬们的团队,其本质是通过预初始化一组queries来解决随机初始化queries导致的模型收敛慢的问题。随机初始化的值导致模型无法迅速定位到queries表达的显式的意义,比较难优化。所以anchor points的提出就是为了赋予queries显式意义,加快模型收敛。详情可以参考论文。