Lift, Splat, Shoot

2022/10/15 PaperNotes 共 897 字,约 3 分钟

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

ECCV2020,通过估计图像深度将投影到BEV canvas。

multi-camera天生存在多参考系转换问题(每个相机对应单独的相机坐标系),粗暴的方法是使用单视图检测器训练所有视图的样本,推理时根据相机内外参后处理。这样的问题是模型无法区分不同特征的坐标系来源。

Lift:Latent Depth Distribution

X 代表单视图图像,X.shape = [3,H,W]

E 代表相机外参,E.shape = [3,4]

I 代表相机内参,I.shape = [3,3]

  • 构造伪点云空间 [C,H,W,D],将3D feature map映射到4D feature map
    • C是image backbone + neck得到的特征dim
    • 对于特征图上每个(c,h,w),预测一个D维的向量,表示每个点的深度α(深度是离散空间 categorical distribution,需要softmax)
    • 对于单个相机,得到了max深度值后,就可以通过内外参计算3D坐标(车辆坐标系)

Splat:Pillar Pooling

投影到BEV视角(取200mx200m的canvas),最终得到的 BEV_feature.shape = [200,200,C]

  • 对于不同相机的不同像素点投影在 BEV 的同一个位置的情况,采用 sum-pooling
    • 视锥池化(frustum pooling),无需依赖 autograd,采用cumsum加快训练。具体实现可见大佬的代码笔记: https://zhuanlan.zhihu.com/p/527388204
    • 后续有一系列工作改进 pillar pooling

Shoot:Motion Planning

Lift-Splat 得到的BEV feature可以直接用来做 motion planning,类似得到一个BEV视角下每个grid的置信度

实验设置在5.6节

实验 5.4:Zero-shot camera rig transfer

用4相机视角训练,6相机视角测试,会有在分割任务上涨点

文档信息

Search

    Table of Contents