参考代码:None
1. 概述
介绍:这篇文章提出的方法是对LSS中深度估计部分进行改进,其改进的点是在深度估计部分引入立体匹配去估计周视相机下的深度信息,其中立体匹配使用前后视频帧进行构建(可以看作是时序信息的使用,只不过只有两帧信息)。此外,引入DORN中的深度采样策略(SID,Spacing-Increasing Discretization)使得近处的采样点不至于过度稀疏,为了弥补在无纹理下立体匹配失效的情况,同时保留原本LSS中的深度估计模块,将其立体匹配估计出的深度进行融合得到最后更准确地深度表达。不过存在需要知道准确帧间 [ R ∣ t ] [R|t] [R∣t]的问题,在实际工程化中是较难实现的。
对于从相机中恢复深度信息,其来源可以划分为如下几种情况:
- a)给定基线下的双目立体匹配。
- b)给定多个相机位姿关系的MVS算法。
- c)使用单个相机从运动中恢复深度,但是需要给出帧与帧之间的位姿变换关系。
- d)自动驾驶场景下将周视相机作为一个整体,使用类似运动中恢复深度的策略得到各个相机下的深度信息。
2. 方法设计
2.1 整体pipeline
由文章方法构建的BEV检测算法pipeline见下图所示:
从文中可以看到相比原本的LSS算法,其增加了使用之前帧构建立体匹配(STS,Surround-view Temporal Stereo)去估计深度信息,之后再与原本的深度估计模块结果进行融合。
2.2 STS构建
STS部分的处理流程见下图所示:
输入的周视图像会被backbone处理抽取图像特征 F i ∈ R C F ∗ H n ∗ W n F_i\in R^{C_F*\frac{H}{n}*\frac{W}{n}} Fi∈RCF∗nH∗nW,那么使用当前帧(reference) 和 之前帧(source) 的特征就可以在给定的深度划分( D D D) 上计算匹配特征了。但是在这之前需要完成当前帧到之前帧的warp操作(这里会计算source中),这里使用source中 j j j个相机到reference中第 i i i个相机的转换,记为 H i j H_{ij} Hij
H i j ( d ) = K j ⋅ R j ⋅ ( I − ( T i − T j ) ⋅ n 1 T d ) ⋅ R i T ⋅ K i − 1 H_{ij}(d)=K_j\cdot R_j\cdot (I-\frac{(T_i-T_j)\cdot n_{1}^T}{d})\cdot R_i^T\cdot K_i^{-1} Hij(d)=Kj