BEVStereo

主要工作:

  • 指出了MVS技术是解决基于相机的3D对象检测任务中深度感知不适定问题的一种有前途的方法,同时它也暴露了自动驾驶场景中的两个致命缺陷,即①内存成本占用较大的问题②自车静止或与他车相对静止时无法通过时序图像序列产生视差。
  • 引入了一种动态时序stereo技术(dynamic temporal stereo technique),它可以在构建cost volume时节省内存成本 。此外,还提出了一种迭代算法来处理对象的运动和噪声特征。
  • 提出了一种size-aware circle NMS approach 来筛选建议框。

方法:

多视角3D目标检测框架:

  • 通常由四个模块组成:特征编码器,深度生成模块,特征与深度点外积然后视图转换模块,鸟瞰图的检测模块

基于时序预测深度的立体方法:

  • 构建cost volume,然后预测每个候选深度的置信度。
  • 所谓的cost volume就是为了进行参考图像与源图像之间的特征匹配,可以采用点积,也可以采用方差,来构造匹配损失。

动态的时序立体分布:

  • BEVstereo在预测深度时不仅通过单一图像(mono depth)还通过temporal stereo (stereo depth),单目深度可以直接进行深度预测。

  • 而stereo depth:首先预测像素点的深度中心μ和深度范围σ,然后利用这两个值得到一个深度分布的搜索空间。此外,通过单目深度估计获得的源图像与参考图像的深度分布图送入weight net 获得一个weight map,用于辅助生成stereo depth。

mono depth 和stereo depth 被一起用来生成最终的depth分布。如图:

BEVStereo_第1张图片

深度模型(depth module):

  • 深度模型同时预测单目深度,μ,σ和context,利用EM方法进行迭代求解μ,σ,然后被用来生成最终的stereo depth。 过程如图,μ,σ代表着cost volume的深度分布中心和深度分布范围,而且是针对reference feature 得出的,根据此分布可以选择每个像素的候选位置并获得深度。然后这些侯选位置通过单应性变换映射到source feature,然后将映射得到特征与参考图像对应的特征进行点积(如果二者对应的是同一位置,则特征应该比较相近,点积值会比较大),构造cost volume。可参考公式如下:p表示点的坐标,D表示候选的深度,src表示源图,ref则是参考帧,则表示从参考帧到源图像的转换矩阵,K是内参矩阵,参考特征图和单应变换得来的source feature 共同构造cost volume 

 similarity net利用点积值用来预测候选层的深度分布

受到EM算法的启发,通过迭代来更新μ和σ,在迭代过程中尝试用μ的期望值来接近gt的深度,因为我们选择对μ附近的点作为候选得到了他们的置信度,然后我们要利用这些点来更新μ,即通过对这些点的期望作为新的μ,迭代过程如下图,更新公式:

 

 BEVStereo_第2张图片

di代表的是深度候选层,pi则是对应的置信度。当遇到自车静止,速度较低或者他车移动导致相对速度变小,参考图像和源图像之间的匹配变得困难,所有的候选概率都比较小,但是在求期望的过程中仍能保持相对的稳定。在其他场景中,μ将会在迭代的过程中接近真实值。

 在与单目图像一起进行训练时,μ值也被在单目深度上得到增强(有点疑惑)。

作为搜索范围的 σ也是很关键的值,其更新公式如下:

其中Pμ是μ的概率,置信度越大,就缩小范围,相反则扩大范围。

在整个迭代过程中没有需要学习的参数,为了防止迭代过程中μ远离真实值,文中设置了多个不同大小的搜索范围,分别进行迭代。

 当迭代完成,由下式生成depth map:

权重网络(weight net)

尽管temporal stereo已经能够较为准确的预测深度了,但不是所有特征都能够得到匹配,所以还要通过融合单目视觉深度估计进行补充,为此引入了权重网络。因此,我们采取了单应性变换来获得源图像的单目深度,然后利用变换而来的源图像的单目深度图与参考图像的单目深度图一起构造weight map。

Size-aware Circle NMS 

此处没看明白,留个坑

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