AAAI 2023MOVEDepth:基于单目线索和速度指导的自监督多帧深度估计

news2024/11/17 11:33:41

文章目录

    • 解决的问题
    • 实施细节
    • 总结

image-20230108111847901

会议/期刊:2023 AAAI

论文题目:《Crafting Monocular Cues and Velocity Guidance for Self-Supervised Multi-Frame Depth Learning》

论文链接:[JeffWang987/MOVEDepth: AAAI 2023]Crafting Monocular Cues and Velocity Guidance for Self-Supervised Multi-Frame Depth Learning (github.com)

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

解决的问题

MOVEDepth不再使用MonoDepth的decoder直接从cost volume中解码出深度,而是follow MVS领域的范式,从cost volume中回归得到深度,MOVEDepth认为显示利用cost volume能够最大程度保留几何信息,得到更准确的深度估计结果。然而如ManyDepth和DepthFormer中提到的,直接从cost volume回归出深度结果并不理想,这是因为在单目多帧深度估计领域,有很多“不确定因素”,例如相机静止(static frame),弱纹理、反光区域,动态场景等

为了解决这些问题,MOVEDepth利用单帧深度先验以及预测的车身速度等信息,构建了一个轻量的cost volume以解码深度。

实施细节

image-20230108112007844

  • Pose branch利用posenet估计相机外参,这部分和之前的工作一致。

  • Monocular branch利用单目深度估计网络预测出“粗糙”的先验深度,其中DepthNet可以是现在的任意一款单目模型,作者在实验部分给出了MonoDepth2和PackNet两种模型。

  • MVS branch遵循了传统的MVSNet范式,唯一不同点在于在Homo-warp阶段,MOVEDepth不在再全局采样深度,而是在单目先验深度(monocular priority)附近进行采样,如下图所示。(注意到ManyDepth和DepthFormer分别使用了96和128个先验深度,而MOVEDepth由于有了先验深度,所以仅采样了16个depth candidates)

  • Velocity guidance sampling,上文提到了MOVEDepth在深度先验附近采样16个深度点,但是并没有约束深度采样的范围。与ManyDepth不同的是,MOVEDepth不再使用学习的方案学习出要采样的范围,而是根据预测的车身速度(posenet估计得到)动态调整深度搜索范围。其Motivation是:如果相机移动速度大,那么前后两帧的stereo baseline就较大,这样比较符合MVS的triangulation prior,可以得到更准确的深度,也就是说MVS会更加的可靠,所以本文增加深度搜索范围。相反,如果相机移动速度较慢,甚至是静止的,那么前后两帧拍摄的场景并没有变化,也没有MVS的几何关联。所以MVS在此时并不可靠,我们要缩小深度搜索范围,让MVS的输出接近单目深度估计的结果,具体的深度搜索范围公式如下(值得一提的是,作者在附录部分给出了具体的几何推导,推导出前后两帧stereo basleine和相机运动速度是线性相关的):
    d min ⁡ = D Mono  ( 1 − β T ( v ) ) d max ⁡ = D Mono  ( 1 + β T ( v ) ) \begin{aligned} d_{\min } & =D_{\text {Mono }}(1-\beta \mathcal{T}(v)) \\ d_{\max } & =D_{\text {Mono }}(1+\beta \mathcal{T}(v)) \end{aligned} dmindmax=DMono (1βT(v))=DMono (1+βT(v))
    v = α ∥ T ∥ 2 v=\alpha\|\mathbf{T}\|_{2} v=αT2,T是由posenet估计的相机平移矩阵,α是相机帧速率, β是超参数,T(·)是将v转换为真实世界中的尺度函数

  • 为了解决动态场景等问题,MOVEDepth提出了Uncertainty-Based Depth Fusing,具体来说,从cost volume的熵函数中学习出MVS局部区域的可靠程度,然后作为权重将单帧深度先验和多帧深度进行融合:
    U ( p ) = θ u ( ∑ j = 0 D − 1 − p j log ⁡ p j ) D Fuse  = U ⊙ D Mono  + ( 1 − U ) ⊙ D M V S \begin{array}{c} \mathbf{U}(\mathbf{p})=\theta_{\mathrm{u}}\left(\sum_{j=0}^{D-1}-\mathbf{p}_{j} \log \mathbf{p}_{j}\right) \\ D_{\text {Fuse }}=\mathbf{U} \odot D_{\text {Mono }}+(\mathbf{1}-\mathbf{U}) \odot D_{\mathrm{MVS}} \end{array} U(p)=θu(j=0D1pjlogpj)DFuse =UDMono +(1U)DMVS
    从可视化可以看出,深度融合部分的网络从cost volume中学到的不确定区域在动态的车辆、行人上,这有助于缓解动态场景对多帧深度估计带来的问题:

    image-20230109112453694

    右边的图像是学习到的不确定性地图(白色:确定,黑色:不确定)

总结

MOVEDepth利用单目深度先验和预测的车速信息,动态构建cost volume并按照MVS领域的范式回归出深度,并探究了如何更好的结合单帧深度估计和多帧深度估计得到更精准的预测结果。但MOVEDepth可能存在的问题有:

  • 虽然在MVS部分只采用了16个深度假设点,但是依旧需要单目先验网络,这无疑增加了学习负担。
    pth可能存在的问题有:

  • 虽然在MVS部分只采用了16个深度假设点,但是依旧需要单目先验网络,这无疑增加了学习负担。

  • 在处理动态部分,依旧是“曲线救国”,从cost volume的熵函数入手,学习动态物体带来的不可信区域,并不是直接处理动态物体,所以性能还有待提升。(值得一提的是,目前的处理动态物体的方法除了类似于这种“曲线救国”的方案,就是利用预训练的分割网络,并不“美观”,效果也不经验,所以如何elegent地处理动态物体将会是一个open problem)

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

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

相关文章

Flutter TextField 交互实例 —— 新手礼包

大家好,我是 17。 新手礼包一共 3 篇文章,每篇都是描述尽量详细,实例讲解,包会! Flutter Row 实例 —— 新手礼包Flutter TextField UI 实例 —— 新手礼包Flutter TextField 交互实例 —— 新手礼包 本篇包含所有常…

Unity打包WebGL: 导入Vue

Unity打包WebGL: 导入Vue 1. 介绍 1.1 任务 记录将Unity项目打包成WebGL,并集成到Vue项目中的过程。 1.2 环境 Unity:2021.3Vue: 2 2. Unity项目 2.1 UI界面 2.2 添加插件 构建WebGL项目需要添加一个.jslib文件,用于Unity脚本函数与JavaScript函数…

【FocalNet】学习笔记

1. 介绍 “FocalNet是map-based还是token-based模型呢?” FocalNet是token-based模型,与常见的【基于 feature map 的CNN】不同; 2. 模型代码 2.1 环境配置 [DINO | FocalNet-DINO] 2.1.1 配置CUDA11.1 Summary Driver: Not Selected…

FreeRTOS 时间管理

文章目录 一、FreeRTOS 延时函数1. 函数 vTaskDelay()2. 函数 prvAddCurrentTaskToDelayedList()3. 函数 vTaskDelayUntil() 二、FreeRTOS 系统时钟节拍 一、FreeRTOS 延时函数 1. 函数 vTaskDelay() 在 FreeRTOS 中延时函数也有相对模式和绝对模式,不过在 FreeRT…

epoll进阶

epoll除了提供select/poll那种IO事件的电平触发(Level Triggered)外,还提供了边沿触发(Edge Triggered),这就使得用户空间程序有可能缓存IO状态,减少epoll_wait/epoll_pwait的调用,提…

经典文献阅读之--Orbeez-SLAM(单目稠密点云建图)

0. 简介 对于现在的VSLAM而言,现在越来越多的工作开始聚焦于如何将深度学习结合到VSLAM当中,而最近的这个工作就给出了一个比较合适的方法。《Orbeez-SLAM: A Real-time Monocular Visual SLAM with ORB Features and NeRF-realized Mapping》这篇文章&…

如何将模块加载到linux内核

一 顺利的情况 假设存在一个文件叫mymq.c,下该文件相同目录下的makefile如下语句: obj-y mymq.o 然后编译:编译完成了以后,mymq.c文件中,有个函数叫mymq_open,搜索这个函数在不在System.map文件中,如果在&#xff…

大屏使用echart开发省市地图数据,并点击省获取市地图数据

1. 本文在基础上进行改进,后端使用若依后端 IofTV-Screen: 🔥一个基于 vue、datav、Echart 框架的物联网可视化(大屏展示)模板,提供数据动态刷新渲染、屏幕适应、数据滚动配置,内部图表自由替换、Mixins注入…

CDN与网络安全

DDoS攻击的影响远不止眼前所见。这些攻击不仅会造成巨大的经济损失,还会对受害公司或组织的声誉和形象产生严重影响。研究表明,受害公司至少需要10个小时才能开始解决攻击,而解除还需要4.5个小时。甚至在检测到攻击之前平均数小时&#xff0c…

一文详解Spring事务传播机制

背景 我们在使用Spring管理数据库事务的时候很方便,只需要在代理对象中引入注解Transactional 就可以开启事务了。在使用Transactional时,一般主要关心两个方面,一个是异常回滚的定义(设置rollbackFor),另…

Python统计学:如何理解单样本t检验?

单样本的t检验 指样本的均值是否某个值存在差异。 比如一包薯片标的克重为50g,但每包不一定都是50g,那么我们可以对薯片进行随机抽样,检验它与50g是否有差异。 1 提出假设: 原假设:薯片的平均重量是50g; …

模板方法设计模式解读

目录 豆浆制作问题 模板方法模式基本介绍 基本介绍 模板方法模式的原理类图 模板方法模式解决豆浆制作问题 应用实例要求 思路分析和图解(类图) 模板方法模式的钩子方法 模板方法模式的注意事项和细节 豆浆制作问题 编写制作豆浆的程序,说明如下: 1) 制作豆…

Adobe认证是什么?

Adobe认证又称为Adobe国际认证(英文:Adobe Certified Professional)是Adobe公司CEO签发的权威国际认证体系,旨在为用户提供Adobe软件的专业认证。 Adobe认证包括产品技能认证和职业技能认证多个级别,从初学者到专业人士都可以参加。 Adobe认证覆盖了各…

ORA-27090故障,关于AIO-MAX-NR

在给某银行进行巡检时发现asm中的alert一直报ORA-27090错误。 通过巡检脚本,整理错误发生时间如下: 信息收集: 发生类似的错误,先收集alert日志的信息,操心系统的message日志。 Errors in file /u01/app/grid/diag/…

适合小白学习预处理与程序环境,这篇文章就够了

目录 一. 前言 二. 正文 2.1 “冷知识”:程序环境 2.21 翻译环境——程序从无到有:程序编译 链接 2.22 运行环境——程序开跑 2.3 那些鲜为人知:预定义符号 2.4 预处理指令 #define 2. 41 #和## —— 2.42 宏和函数优劣对比 2.…

阿里全新推出:微服务突击手册,把所有操作都写出来了

今天给大家带来的这份微服务是由阿里巴巴高级技术专家整理,针对Spring Cloud在国内的使用情况,结合国内上百家企业使用Spring Cloud落地微服务架构时遇到的问题和相应的解决方案结合成了这份电子版教程。(文末有免费的获取方式) …

火伞云APP盾,您身边的DDoS攻击安全保护专家

近年来全球各地区DDoS攻击的比例和次数在逐年增加,严重影响到网络信息安全。 主要有以下原因: 攻击成本低,攻击无壁垒。进行DDoS攻击成本很低,最低甚至只需要几百元就可以轻松发起一次攻击,然而被攻击的对象可能动辄…

3自由度并联绘图机器人实现写字功能(一)

1. 功能说明 本文示例将实现R305样机3自由度并联绘图机器人写字的功能。 2. 电子硬件 在这个示例中,采用了以下硬件,请大家参考: 主控板 Basra主控板(兼容Arduino Uno) 扩展板Bigfish2.1扩展板电池7.4V锂电池 3. 功能…

九种 OOM 常见原因及解决方案(IT枫斗者)

九种 OOM 常见原因及解决方案(IT枫斗者) 什么是OOM? OOM,全称“Out Of Memory”,翻译成中文就是“内存用完了”,来源于java.lang.OutOfMemoryError。看下关于的官方说明:Thrown when the Java Virtual Machine canno…

使用 Amazon SageMaker 构建文本摘要应用

背景介绍 文本摘要,就是对给定的单个或者多个文档进行梗概,即在保证能够反映原文档的重要内容的情况下,尽可能地保持简明扼要。质量良好的文摘能够在信息检索过程中发挥重要的作用,比如利用文摘代替原文档参与索引,可…