SC-DepthV3:Robust Self-supervised Monocular Depth Estimation for Dynamic Scenes——论文笔记

Posted m_buddy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SC-DepthV3:Robust Self-supervised Monocular Depth Estimation for Dynamic Scenes——论文笔记相关的知识,希望对你有一定的参考价值。

参考代码:sc_depth_pl

1. 概述

介绍:基于运动恢复的自监督深度估计算法中会假设所处的场景是静止的,但是实际中这样的假设是不现实的,因而运动的物体和遮挡就会违反之前的场景先验假设,从而导致对应区域上出现深度预测异常。对于物体的运动和遮挡情况,在之前的工作中有采用直接预测运动场、分割方法标注、光流场、几何先验等方法进行补救,但是作用范围也是有限的。同时,由于物体边界的模糊性也会导致深度估计的边缘模糊。对此文章提出了一种使用伪深度(pseudo-depth)作为深度引导(这个伪深度其实是由一个深度估计模型预测输出的,虽然不准确但是能提供基本的轮廓和远近信息),从而提升自监督深度估计方法的预测能力。

将文章的输出结果(第三排)与自监督深度估计方法的结果(第二排)进行对比,见下图:

从图中可以明确看到文章的方法输出结果更加准确,同时细节也更多。不过文章的方法是在加入pseudo-depth下才能得到巨大提升的,而对应的深度估计模型也是需要数据进行训练的,也会存在各种各样的corner-case,只能说这样的方法对大部分场景能较好处理。

2. 方法设计

2.1 方法设计

文章的方法见下图所示:

从图中可以看到在自监督方法基础上添加了pseudo-depth约束:DRR和LSR。对于自监督部分中对于运动情况的处理采用的是之前(版本为V1~V2)中使用到的深度一致性假设,记当前帧和前一帧的预测深度图表示为 D a , D b D_a,D_b Da,Db,则使用估计出的pose信息进行变换之后两者的神对差异应该比较小,因而可以建立约束损失函数:
L G = 1 ∣ V ∣ ∑ p ∈ V D d i f f ( p ) L_G=\\frac1|V|\\sum_p\\in VD_diff(p) LG=V1pVDdiff(p)
使用深度一致性去加权光度重构误差部分的损失,其得到的权重掩膜为:
M s = 1 − D d i f f M_s=1-D_diff Ms=1Ddiff
这个掩膜会在后面计算场景中运动目标掩膜时用到。

2.2 Dynamic Region Refinement(DDR)

在上一节中使用深度一致性约束得到光度重构误差加权掩膜,则一定程度上上述掩膜反映了场景中的运动目标,也就是权重越小是移动目标的可能性越大。对此文章选择上述权重中最20%最小的像素组成运动物体 M m o v e _ o b j e c t M_move\\_object Mmove_object

对于运动目标的深度估计文章采用了structure-ranking loss损失,但需要针对文章所处场景选择对应采样策略。文中指出在 M m o v e _ o b j e c t M_move\\_object Mmove_object中的像素会在静态区域中选择与之匹配的像素对,还会增加全局随机采样作为进一步整图约束。

文章使用的是pseudo-depth作为引导,而这些引导在深度存在差异的时候才是置信的(文中给出的观察结论),因而那些靠得近的采样点置信度就较低了。对此,选择不计算那些被判定为近似匹配点的pair对,只计算那些深度差异明显的(这里设置 τ = 0.15 \\tau=0.15 τ=0.15从而增加对比容忍度):
ϕ ( p 0 , p 1 ) = l o g ( 1 + e x p ( − l ( p 0 − p 1 ) ) ) \\phi(p_0,p_1)=log(1+exp(-\\mathcall(p_0-p_1))) ϕ(p0,p1)=log(1+exp(l(p0p1)))
则这部分的深度相似性损失为:
L C D R = 1 ∣ Ω ∣ ∑ p ∈ Ω ϕ ( p ) L_CDR=\\frac1|\\Omega|\\sum_p\\in\\Omega\\phi(p) LCDR=∣Ω∣1pΩϕ(p)
这里提出的采样点方式与其它一些采样方式不同带来的性能差异:

2.3 Local Structure Refinement(LSR)

为了优化深度在边缘处的表达,也借鉴structure-ranking loss中对于深度边缘的采样策略,在深度的边缘处采样pair图像点,并提取采样点处的表面法线表达 n n n从而建立起约束关系:
L E R N = 1 N ∑ i = 1 N ∣ ∣ n A i ⋅ n B i − n A i ∗ ⋅ n B i ∗ ∣ ∣ 1 L_ERN=\\frac1N\\sum_i=1^N||n_A_i\\cdot n_B_i-n_A_i^*\\cdot n_B_i^*||_1 LERN=N1i=1N∣∣nAinBinAinBi1
深度边缘约束带来的性能差异比较:

3. 实验结果

DDAD数据集上的性能表现:

在pesudo-depth与添加自监督深度估计耦合之后带来的性能变化:

以上是关于SC-DepthV3:Robust Self-supervised Monocular Depth Estimation for Dynamic Scenes——论文笔记的主要内容,如果未能解决你的问题,请参考以下文章

Introspective Distillation for Robust Question Answering 论文笔记

美团热修复Robust-源码篇

Matlab鲁棒控制工具箱(Robust Control Toolbox)

OpenCV中的SURF(Speeded-Up Robust Features 加速鲁棒特征)

美团热修复Robust的踩坑之旅-使用篇

R语言泊松回归(poisson)模型案例:基于robust包的Breslow癫痫数据集