[paper] Lift,Splat,Shoot论文浅析

目录

基本信息

创新点

Method

Lift(Latent Depth Distribution):潜在深度分布

Splat:柱体池化


基本信息

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

ECCV 2020

paper:https://arxiv.org/abs/2008.05711

GitHub:https://github.com/nv-tlabs/lift-splat-shoot

当前BEV感知方法大致分为两个技术流派:隐式深度模型,使用Transformer网络架构将深度信息构造进模型中隐式预测深度信息;显式深度估计模型,构造深度信息表示并且将其投影到BEV视角下作为BEV图像特征的组成部分,本文属于显式深度估计的开创者。

创新点

Lift: 提取图像的特征和图像特征的每一个像素可能的深度的表示,将具有像素深度信息的特征表示为图像特征和图像深度特征的外积,生成截锥体形状的图像特征点云;
Splat: 将截锥体形状的图像特征点云通过外参和内参转换成BEV坐标系下的特征,使用累积求和池化的方式加速运算,之后使用Resnet提取特征作为BEV坐标系下的特征。

Method

Lift(Latent Depth Distribution):潜在深度分布

作用:找到每一个像素在3D空间中可能的深度值表示,构造包含深度信息的图像特征。

使用backbone提取每一个相机的图像的特征,图像特征的维度设置为C+D,C为图像的特征值维度,设置为64,D为设定的每个特征点的可能的距离(深度)的数量,设置为41,现在的每一个特征图中的像素都有41个深度信息,但是并不能确定每一个像素的深度值到底是多少,这里使用外积操作,将image-feature (HxWxC)和depth-feature(HxWxD)相乘,形成新的特征图HxWxDxC,最后生成的特征图为24 (batch)x 64 x 41 x 8 x 22。论文中给出的公式为:

其中:c是像素的上下文特征(64 x 8 x 22), �� \alpha _{d} 是像素的深度信息特征。

最后生成的是一个截锥体形状的图像点云特征。

Splat:柱体池化


目前已经得到了像素的2D像素坐标以及深度值,再加上相机的内参和外参,即可计算得出像素对应的在车身坐标系中的3D坐标。
将多个相机中的像素点投影在同一张俯视图中,需要先过滤掉感兴趣域(以车身为中心200*200范围)外的点。但是投影时会发现在俯视图中同一个坐标可能存在多个特征,这里有两个原因:

  1. 单张2D图像不同的像素点可能投影在俯视图中的同一个位置;
  2. 不同相机图像中的不同像素点投影在俯视图中的同一个位置,例如不同相机画面中的同一个目标(本论文中使用6个相机)。

借鉴了pointPillars中的做法,把Lift步骤得到的图像点云转换到BEV视角下,BEV空间下分成了很多的gird,图像点云就会转换到这些grid中,对grid中的特征进行求和池化,得到一个C × H × W 张量,再对该张量进行特征提取(resnet18作为backbone)得到BEV视角下的特征图。"lift-splat"框架在Figure 2:

[paper] Lift,Splat,Shoot论文浅析_第1张图片

视锥体池化累积求和技巧
该模型使用的是Pillar的累积求和池化,该技巧是基于本文方法用图像产生的点云形状是固定的,因此每个点可以预先分配一个区间(即BEV网格)索引,用于指示其属于哪一个区间。按照索引排序后将所有的feature基于坐标位置进行排序,过程示意图Fig 3:

[paper] Lift,Splat,Shoot论文浅析_第2张图片

源码分析:

请移步知乎吧[paper] Lift,Splat,Shoot论文浅析 - 知乎

你可能感兴趣的:(paper,深度学习,人工智能)