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

news2024/9/22 1:15:37

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

文章目录

    • 解决的问题
    • 基本流程
    • 实施细节
      • 动态物体解耦(DOMD)
      • 遮挡感知成本量
      • 训练细节
    • 总结
    • 参考资料

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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/132930.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

老王linux面试题汇总

1.统计一个网站的访问量,统计网站访问次数最多的前几名的IP地址。 2.取两个文件的相同和不同行 3.分别创建10个账号(user1-user10) 5.独立磁盘冗余阵列RAID O,1,5,6,10,01级别区别 5.1磁盘利用率 5.2最少几盘磁盘实现 5.3容错性,…

(十二)大白话对于VARCHAR这种变长字段,在磁盘上到底是如何存储的?

文章目录 1、一行数据在磁盘上存储的时候,包含哪些东西?2、变长字段在磁盘中是怎么存储的?3、存储在磁盘文件里的变长字段,为什么难以读取?4、引入变长字段的长度列表,解决一行数据的读取问题5、引入变长字段长度列表后,如何解决变长字段的读取问题?6、如果有多个变长字…

蒙特卡洛积分、重要性采样、低差异序列

渲染公式 渲染的目标在于计算周围环境的光线有多少从表面像素点反射到相机视口中。要计算总的反射光,每个入射方向的贡献,必须将他们在半球上相加: 为入射光线 与法线 的夹角,为方便计算可以使用法线向量和入射向量(单位化&…

Linux|科普扫盲帖|配置网络软件源---阿里云镜像仓库服务使用(centos,Ubuntu)

前言: 部署搭建各种环境,例如,集群环境,编译环境,测试环境,桌面环境,lnmp环境等等以及修复各种各样的漏洞,基本是使用本地仓库就可以完成的,但本地仓库有一个比较致命的…

深入理解TDNN(Time Delay Neural Network)——兼谈x-vector网络结构

概述 TDNN(Time Delay Neural Network,时延神经网络)是用于处理序列数据的,比如:一段语音、一段文本将TDNN和统计池化(Statistics Pooling)结合起来,正如x-vector的网络结构&#x…

x86_64架构的VINS-fusion-GPU部署

x86_64架构的VINS-fusion-GPU部署 1. 环境配置(Ubuntu 18.04) (0)CUDA 10.2 安装 由于笔记本的GPU太老(GeForce 840M),只能使用较低版本的 CUDA,但是也能有个好处就是能够同时兼顾…

Linux TCP 拥塞正反馈 bad case

前置知识,TCP thin stream,参见: 该文档中搜索 tcp_thin_linear_timeoutsTCP-thin-stream 看图说话: 参见 tcp_retransmit_timer 函数,着重看下面段落: if (sk->sk_state TCP_ESTABLISHED &&am…

视觉SLAM学习路线

导师让我了解SLAM,SLAM原本是比较小众的方向,最近自动驾驶火起来,做这个SLAM的人也多了,反过来也会推动机器人感知的发展。希望未来学成的时候,能赶上机器人大规模普及,就业一片蓝海。学SLAM方向跟motion p…

RabbitMQ延迟列队的使用

目录 1. 延迟队列使用场景 2. RabbitMQ中的延迟队列实现思路 3. 实现示例 3。运行项目测试 1. 延迟队列使用场景 延迟队列一般可用于具有时间限制的任务,例如:限时优惠,超时的订单处理等。 对于这种场景,传统的处理方式是任…

Ceph: ceph基础知识

ceph基础知识 一、基础概念 ceph官方文档 http://docs.ceph.org.cn/ ceph中文开源社区 http://ceph.org.cn/ 1、概述 Ceph是可靠的、可扩展的、统一的、开源分布式的存储系统。 Ceph是一个统一的分布式存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。 C…

Python基础知识(一)

目录 输入输出函数 输入函数:input() 输出函数:print() 算术运算符 关系运算符 逻辑运算符 变量 1.命名规则 2.变量类型 3.动态类型特性 输入输出函数 输入函数:input() name input("请输入:") print(nam…

第二证券|北向资金全年净买入约900亿元 哪些行业和个股成“香饽饽”

2022年A股收官。回顾这一年,面临复杂严峻的国内外环境,A股商场推动完善多元融资支撑机制,加大了对实体经济的金融支撑力度,为中国经济V形复苏做出了奉献。这一年,A股IPO融资规划创出历史新高,存量上市公司打…

驱动的并发和竞争

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、什么是并发?并发并行并发并行模式二、什么是竞争三、如何解决竞争1、原子操作整形原子操作:原子位操作2.自旋锁3.信号量4.互斥锁5.如…

mysql批量更新方法

mysql批量更新方法 实验mysql版本为5.7.20 隔离级别为rr,加锁场景的问题在mysql8.0.18中为复现 方法一 replace into 批量更新 原理:replace into table (col1,col2) values (x1,x2), 操作本质是对重复的记录先delete 后insert 缺点:1、如…

特斯拉Model S及Model X 2023上半年交付,1月6日公布售价

特斯拉Model S及Model X终于快要交付了。 2022年12月30日,广州国际车展盛大开幕。众多车企带来了旗舰车型,让观众直呼太过瘾,其中,人流量爆火的莫过于特斯拉展台。此次,特斯拉携旗下S3XY家族重磅出击,全新车…

【C++基础】08:模板

模板 OVERVIEW模板一、函数模板1.func template基本使用:2.func template案例:数组排序3.函数与函数模板的区别&调用规则:4.func template的局限性:二、类模板1.类模板基本使用:2.类模板与函数模板的区别&#xff…

AOA估计中的MUSIC算法(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 随着阵列信号处理技术的不断发展,到达角估计(Angle Of Arrival)的研究在移动通信系统中具有重要意义。通过分析经典MUSIC算法,…

golang 自定义命令行flag包简单使用

一、为什么需要使用golang自定义命令行 不恰当的比喻,当我们写了一个服务代码后,按照简单的思维,我们会在业务代码中将要连接的数据库 用户名、主机名、端口号、密码写死。 那么也就意味着我们启动该服务后都只能固定连接某一个数据库&#x…

etcd快速入门

etcd是什么 etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。 etcd内部采用raft协议作为一致性算法,etcd基于Go语言实现。 etcd作为服务发现系统,有以下的特点: 1.简单&#…

分享67个PHP源码,总有一款适合您

链接:https://pan.baidu.com/s/1MzKN0bLDRv0i290R2erMHQ?pwdbo2i 提取码:bo2i PHP源码 分享67个PHP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下...,大家下载…