ECCV 2022|DynamicDepth:动态场景下的多帧自监督深度估计

🏆前言:本文别名DynamicDepth (github),如本文的名字所示,本文着重处理的就是动态场景下的多帧自监督深度估计问题。因为MVS在动态场景下会失效,所以在动态区域的多帧深度并不可靠。现在的已有方法例如ManyDepth,利用teacher-student网络结构,让多帧部分的网络在不可信区域向单帧部分的网络学习,但是所谓不可信区域的判断准则仅仅是依靠多帧深度和单帧深度的差异来计算的,不一定准确。所以DynamicDepth提出的核心论点就是显示地构建动态区域的优化


image-20221231202059745

会议/期刊:2022ECCV

论文题目:《Disentangling Object Motion and Occlusion for Unsupervised Multi-frame Monocular Depth》

论文链接:Disentangling Object Motion and Occlusion for Unsupervised Multi-frame Monocular Depth

开源代码:AutoAILab/DynamicDepth(github.com)

YouTube:[ECCV 2022] Disentangling Object Motion and Occlusion for Unsupervised Multi-frame Monocular Depth - YouTube

解决的问题

先前的工作都是存在以下缺陷:

  • 针对运动物体,都是在损失函数水平上解决不匹配问题,而不能利用运动物体的帧间关系推导出几何关系
  • 并未解决物体运动引起的遮挡问题
  • 运动方向估计网络(我认为是指光流法)增加模型复杂性,不适用于柔性目标

image-20221231204405241

基本流程

image-20230101161326716

  1. 首先使用一个深度先验估计网络(Depth Prior Net)输出深度图 D t p r D^{pr}_{t} Dtpr,姿态估计网络(Pose Net)输出帧间运动关系
  2. 将2个结果输入DOMD模块中,解决物体运动引起的不匹配问题,得到运动物体被解耦的帧 I t − 1 d I^{d}_{t-1} It1d
  3. I t − 1 d I^d_{t-1} It1d I t I_t It 会进入到遮挡感知模块,用于解决遮挡问题,得到预测出的深度图 D t D_t Dt
  4. 在训练的时候,动态物体周期一致损失将使得深度图先验 D t D_t Dt 和深度图预测结果 D t p r D^{pr}_{t} Dtpr 互相提高

实施细节

动态物体解耦(DOMD)

首先我们来回顾一下动态场景会对多帧深度学习造成什么样的影响?

如下图所示,在MVS的静态假设下,我们认为被拍摄的物体没有移动。从 t 时刻和 t−1 时刻观察该物体,他们的位置都在 W ′ W^′ W(两条线相交于一点),因此他们在图象上的对应区域是 C t C_t Ct C t − 1 C_{t−1} Ct1 。但是在实际场景中,物体已经从 W t − 1 W_{t−1} Wt1 移动到 W t W_t Wt ,在图像上匹配的区域应该是 C t − 1 d C_{t−1}^d Ct1d C t C_t Ct

image-20221231204453667

用动画来表示:

chrome-capture-2023-2-1

为了避免这种匹配错误,本文提出的DOMD模块先利用预训练的分割网络分割出人,车等动态区域,得到分割掩码 ( S t − 1 , S t ) (S_{t−1}, S_t) (St1,St),和两帧图片 ( I t − 1 , I t ) (I_{t−1}, I_t) (It1,It) 作为输入,生成解耦后的图片 I t − 1 d I_{t-1}^d It1d
M o : ( I t , I t − 1 , S t − 1 , S t ) ↦ I t − 1 d \mathrm{M}_{\mathrm{o}}:\left(I_{t}, I_{t-1}, S_{t-1}, S_{t}\right) \mapsto I_{t-1}^{d} Mo:(It,It1,St1,St)It1d
具体来说,我们首先使用单帧深度先验网络 θ D P N θ_{DPN} θDPN 来预测初始深度先验 D t p r D^{pr}_t Dtpr D t p r D^{pr}_t Dtpr用于将 C t C_t Ct 重投影到 C t − 1 d C^{d}_{t-1} Ct1d C t − 1 d C^{d}_{t-1} Ct1d表示 t-1 时刻相机看 W t W_t Wt点的像素块。最后,得到 I t − 1 d I_{t-1}^d It1d。该过程用公式可以表达如下, p i t − 1 pi_{t-1} pit1 表示映射关系:
C a = I a ⋅ S a , C t − 1 d = π t − 1 ( π t − 1 ( C t , D t p r ) ) , I t − 1 d = I t − 1 ( C t − 1 → C t − 1 d ) C_{a}=I_{a} \cdot S_{a}, \quad C_{t-1}^{d}=\pi_{t-1}\left(\pi_{t}^{-1}\left(C_{t}, D_{t}^{p r}\right)\right), \quad I_{t-1}^{d}=I_{t-1}\left(C_{t-1} \rightarrow C_{t-1}^{d}\right) Ca=IaSa,Ct1d=πt1(πt1(Ct,Dtpr)),It1d=It1(Ct1Ct1d)
这个过程有点像crop-粘贴的操作,其结果是,t时刻帧不再有动态物体

该过程如下所示:

chrome-capture-2023-3-1

遮挡感知成本量

image-20221231204528104

在DOMD进行crop-粘贴的操作之后,图片中已不存在动态物体,但是新的问题又出现了,那就是遮挡区域,如下图的输入部分,我们可以看到crop后的部分区域是黑色的,因为该部分实际被遮挡了,因此本文在构建cost volume的时候需要考虑到被遮挡的情况。如上图所示,被遮挡部分的特征被临近部分的数据所填充,这样可以促进训练的梯度流向附近的non-occluded区域。

cost values的公式计算:
C V i = ∣ F t − F i w ∣ 1 , F i w = π t ( π t − 1 − 1 ( F t − 1 d , p i ) ) C V_{i}=\left|F_{t}-F_{i}^{w}\right|_{1}, \quad F_{i}^{w}=\pi_{t}\left(\pi_{t-1}^{-1}\left(F_{t-1}^{d}, p_{i}\right)\right) CVi=FtFiw1,Fiw=πt(πt11(Ft1d,pi))

训练细节

我们使用帧 i t − 1 , i t , i t + 1 {i_{t−1},i_t,i_{t+1}} it1itit+1 进行训练,使用 i t − 1 , i t {i_{t−1},i_t} it1it 进行测试。本文的所有动态对象都是由预训练好的语义分割模型EffcientPS得到

总结

image-20221231204549429

由上图可知,DynamicDepth相比于之前的工作,其深度预测更准确,特别是在Cityscapes上,原因是该数据集包含更多动态对象。

具体来说,其贡献可以总结为以下几点:

  • 提出了一种新的动态物体运动解耦(DOMD)模块,该模块利用初始深度先验和分割网络来解决最终深度预测中的物体运动不匹配问题
  • 设计了一种针对运动物体周期性的训练方案(Dynamic Object Cycle Consistent training scheme),相辅相成提高先验深度估计和最终深度估计
  • 我们设计了一个遮挡感知损失缓解DOMD解耦后运动目标的遮挡问题

但Dynamic依然存在的问题是:利用了预训练的分割网络,导致预测的深度结果和分割网络的性能密切相关

参考资料

单目多帧自监督深度估计(2021-2022)研究进展 - 知乎 (zhihu.com)

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

落叶随峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值