参考代码:BEVDepth
1. 概述
介绍:这篇文章对LSS方法中的瓶颈项进行分析,分别指出其中显存占用问题源自于“lift”操作生成的高维度特征,运行耗时是由于“splat”操作的求和操作,对此文章从矩阵变换的角度对原版的LSS方法进行改进,得到高效BEV特征生成方法MatrixVT。从FOV到BEV的变换是可被描述为一个矩阵变换的,但是直接去学习这样的矩阵变换是很难的,对此文中将以相机为原点的BEV特征进行正交分解得到:与相机的距离矩阵(对应文中的ring matrix)和与相机视线方向矩阵(对应文中的ray matrix),从而通过引入先验几何编码降低了整体学习的难度。此外,对图像深度信息在特征图 W H WH WH两个维度的丰富程度进行分析,得出 W W W这个维度包含的信息更多,则对应提出Prime Extraction Module消除 H H H维度的特征,这样便可进一步降低计算量。文中给出文章的方法相比之前的LSS能快2~8倍,显存消耗减小97%。
对于原本的LSS方法其流程可概括为下图所示:
上图中“lift”和“splat”操作都是相当消耗资源的,对此首先是对图像特征在 H H H维度进行压缩,之后通过ring matrix和ray matrix实现几何信息编码,同时通过计算等效转换还可进一步减少计算资源消耗,其结构见下图所示:
将这篇文章提到的方法与其它方法在耗时与显存消耗上的比较与分析:
2. 方法设计
2.1 方法pipeline
文章提出的BEV特征生成pipeline见下图所示:
结合上图可将生成BEV特征的的流程划分为:
- 1)图像特征在 H H H维度聚合(prime extraction module),源自与 W W W维度比 H H H维度有更丰富的特征表达,因此可将特征在 H H H维度上聚合从而消减掉一个维度,从而减少计算开销。
- 2) H H H维度聚合之后图像上下文特征和深度特征(可有监督或是无监督)通过外积的形式组合起来,之后用矩阵变换的形式实现FOV到BEV的转换,这里转换矩阵显著使用了空间几何信息(构建了与距离和方向相关联的ring matrix和ray matrix)。
2.2 Prime Extraction Module
基于LSS的方法往往会生成两个特征: F ∈ R N c ∗ H I ∗ W I ∗ C F\in R^{N_c*H_I*W_I*C} F∈RNc∗HI∗WI∗C和 D ∈ R N c ∗ H I ∗ W I ∗ N d D\in R^{N_c*H_I*W_I*N_d} D∈R