【论文精读】DMVSNet

今天读的是一篇发表在ICCV 2023上的文章,作者来自华中科技大学。
文章地址:点击前往
项目地址:Github

文章目录

  • Abstract
  • 1 Introduction
  • 2 Relative Work
  • 3 Motivation
    • 3.1 Estimated bias and interpolated bias
    • 3.2 One-sided V.S. Saddle-shaped
  • 4 Dual-Depth Prediction
    • 4.1 Review of learning-based MVS
    • 4.2 Dual-Depth
    • 4.3 Cascade Dual-Depths
    • 4.4 DMVSNet
  • 5 Experiments
  • 6 Ablation Study
  • 7 Conclusion

Abstract

现有方法忽略了一个事实,即合适的深度几何形状在 MVS 中也至关重要。 在本文中,我们证明了即使使用相同的深度预测误差,不同的深度几何形状也具有显着的性能差距。 因此,我们引入了由鞍形细胞组成的理想深度几何形状,其预测深度图围绕真实表面向上和向下振荡,而不是保持连续且平滑的深度平面。 为了实现这一目标,我们开发了一个名为 Dual-MVSNet (DMVSNet) 的从粗到细的框架,它可以产生一个振荡的深度平面。 从技术上讲,我们预测每个像素的两个深度值(双深度),并提出一种新颖的损失函数和棋盘形选择策略来约束预测的深度几何形状。 与现有方法相比,DMVSNet在DTU基准测试中取得了较高的排名,并在Tanks and Temples等具有挑战性的场景中获得了顶尖的性能,展示了其强大的性能和泛化能力。 我们的方法还指出了在MVS中考虑深度几何的新研究方向。

1 Introduction

在这项工作中,我们引入了在 MVS 中考虑深度几何的新视角。 我们首次提出了鞍形单元的深度几何结构,并证明了其对于 MVS 重建任务的重要性。 技术上,我们提出了双深度方法来实现鞍形单元,并设计了相应的网络框架DMVSNet。 借助双深度方法,DMVSNet 在 DTU 数据集上实现了顶级性能,在 Tanks 和 Temple 数据集上实现了 SOTA 性能。

2 Relative Work

介绍了传统和基于学习的MVS。

3 Motivation

3.1 Estimated bias and interpolated bias

在这里插入图片描述
在图2所示的fusion过程中,参考视图中的像素使用估计的深度图投影到空间中的 3D 点上。 然后使用各自的相机参数将该 3D 点重新投影到其他视图中的子像素上,并使用相应的深度图来获取新的 3D 点。 最终的 3D 重建结果由参考视图中像素的深度差和其他视图中子像素的估计深度(例如,通过平均)确定。 因此,3D重建结果的准确性不仅受到估计深度图的准确性的影响,而且还受到子像素插值深度的准确性的影响。 子像素深度是通过线性插值相邻像素的深度来估计的,其准确性受到估计偏差和深度单元†的影响。 图4显示,在相同的估计偏差和插值位置下,由于不同的深度单元,插值深度的精度会有所不同。 因此,考虑不同单元的深度几何形状对 MVS 的影响非常重要。
在这里插入图片描述

3.2 One-sided V.S. Saddle-shaped

在这里插入图片描述
为了简要说明深度单元的差异,我们在图3中提出了两个假设的深度单元: a)One-sided; b) Saddle-shaped。 我们假设具有相同绝对估计偏差“1”的插值位置是均匀分布的。 深度平面(黄色)和GT平面(蓝色)之间的spatial volume可以被视为预期的absolute interpolation error。 从数学上讲,““one-sided cell”的预期绝对插值误差是“saddle-shaped cell”的4倍。

为了定量证明不同单元的深度几何形状对 3D 点重建性能的影响,我们进行了验证实验。 在每个像素的绝对估计偏差相同的假设下,我们使用真实深度翻转估计的深度值,使它们按照图3所示的两个单元分布。表1中的实验结果表明,depth geometries with different cells对 3D 点重建的质量有显着影响,包括准确性和完整性,即使准确性差异超过 60%(表 1 中的第二行和第三行)。 这表明鞍形单元的深度几何结构是提高 MVS 性能的可行方法。
在这里插入图片描述
在这里插入图片描述
现有的大多数MVS方法都没有对深度单元施加约束,因此它们的深度图分布在由单边单元和鞍形单元组成的几何图形之间,这决定了3D点重建的精度介于由两种理想几何图形组成的性能之间 奇异细胞(如表1第一行所示)。 此外,在没有深度单元限制的情况下,尽管深度预测性能更好,但可能会获得较差的 3D 度量(表 2)。 我们如何约束网络生成具有更多鞍形单元的深度图? 在上面的实验中,使用groundtruth翻转估计深度的方法是一个先有鸡还是先有蛋的问题,在实际推理中是不可行的。 在下一节中,我们将引入双深度预测来解决这个困境。

4 Dual-Depth Prediction

4.1 Review of learning-based MVS

4.2 Dual-Depth

针对具有更多鞍形单元的振荡深度几何形状,我们选择预测每个像素的两个深度值。 如果双深度分布在真实深度的任一侧,启发式选择策略可以实现目标几何形状。

具体来说,我们为每个像素生成两个概率分布,并使用它们生成两个相应的深度D(参见等式(3))。 为了确保独立预测的双深度的准确性,我们采用 L1 损失来监督它们的预测值,如之前的工作一样。 直观上,如果不增加对偶深度联合分布的约束,得到的预测分布是无序的。 因此,我们提出了另一种新颖的损失来限制两个深度在地面实况周围对称分布:
在这里插入图片描述
其中 ∣ ⋅ ∣ |·| 表示绝对距离, m a x ( ⋅ ) max(·) max() m i n ( ⋅ ) min(·) min()取沿第一维的最大值和最小值,例如 m a x ( D ) = m a x ( D [ 1 , : , : ] , D [ 2 , : , : ] ) max (D) = max (D[1, :, :], D[2, :, :]) max(D)=max(D[1,:,:],D[2,:,:]) L i n t L_{int} Lint 鼓励估计偏差不大于 ∣ m a x ( D ) − m i n ( D ) ∣ |max(D) − min(D)| max(D)min(D),使得间隔随着估计偏差的增加而增加,这保证了双深度分布在真实深度的两侧。 如果 m a x ( D ) = m i n ( D ) = D g max(D) = min(D) = D_{g} max(D)=min(D)=Dg L i n t L_{int} Lint 达到最小值,表明深度估计是无偏的,与 L e s t L_{est} Lest 的目标一致。

当真实深度值位于预测的双深度之间时,我们提出一种棋盘选择策略来为每个像素选择合适的深度预测值。 具体来说,我们交替选择最大和最小预测深度值,创建类似于棋盘的分布。 如图5(a)所示,像素(x,y)的深度由下式确定:
在这里插入图片描述
它生成振荡深度图 D c D_{c} Dc 。 如图6所示,通过双深度方法获得的深度图实现了由鞍形单元组成的几何形状。 框内的深度图是平滑的,表明预测值接近真实值。 同时,其对应的深度几何形状呈现出马鞍形的形态,这与我们的预期是一致的。
在这里插入图片描述
在这里插入图片描述
然而,当 ( x , y ) (x,y) (xy)处的真实深度值不在 m i n ( D ) ( x , y ) min(D)(x,y) min(D)(xy) m a x ( D ) ( x , y ) max(D)(x,y) max(D)(xy)范围内时,上述方法可能会带来增加深度预测误差的潜在风险 。 为了解决这个问题,我们建议使用Cascade Dual-Depths。

4.3 Cascade Dual-Depths

这里主要讲了怎么改进confidence map来适配dual depth。
在这里插入图片描述
在这里插入图片描述

4.4 DMVSNet

在这里插入图片描述

5 Experiments

实验结果还不错,但并不是文章所说的SOTA,发表的时候无论是同样中了ICCV 2023的ET-MVSNet(甚至作者同样也来自华科)还是之前CVPR 2023的GeoMVSNet都表现更好。
在这里插入图片描述
在这里插入图片描述

6 Ablation Study

7 Conclusion

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android修行手册-POI操作Excel实现超链接并且变为蓝色

点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例点击跳转>软考全系列 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&…

黑洞路由的几种应用场景

第一种在内网中产生环路: 这种核心交换机上肯定写一条默认路由 0.0.0.0 0 10.0.0.1 出口路由要写一条192.168.0.0 16 10.0.0.2 如果出口路由访问一条不存在的内网网段,又或者访问的那台终端停机了,那就会产生三层环路,数据包在…

如何导出PPT画的图为高清图片?插入到world后不压缩图像的设置方法?

期刊投稿的时候,需要图片保持一定的清晰度数,那么我们怎么才能从PPT中导出符合要求的图片呢? 对于矢量图绘图软件所画的图,直接导出即可。 而PPT导出的图片清晰度在60pi,就很模糊。 整体思路: PPT绘图——…

初识-Servlet (第一个 Servlet 程序详解)

Servlet 是什么? Servlet 是一种实现动态页面的技术. 是一组 Tomcat 提供给程序员的 API, 帮助程序员简单高效的开发一个 web app. 静态页面就只是单纯的 html 动态页面则是 html 数据 第一个 Servlet 程序 我们写一个 hello world 预期写一个 Servlet 程序, 部署到 Tomca…

基于SpringBoot+Vue的在线学习平台系统

基于SpringBootVue的在线学习平台系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 用户界面 登录界面 管理员界面 摘要 本文设计并实现了一套基于Spri…

计算机毕业设计选题推荐-校园交流平台微信小程序/安卓APP-项目实战

✨作者主页:IT研究室✨ 个人简介:曾从事计算机专业培训教学,擅长Java、Python、微信小程序、Golang、安卓Android等项目实战。接项目定制开发、代码讲解、答辩教学、文档编写、降重等。 ☑文末获取源码☑ 精彩专栏推荐⬇⬇⬇ Java项目 Python…

什么是代理IP池?如何判断IP池优劣?

代理池充当多个代理服务器的存储库,提供在线安全和匿名层。代理池允许用户抓取数据、访问受限制的内容以及执行其他在线任务,而无需担心被检测或阻止的风险。代理池为各种在线活动(例如网页抓取、安全浏览等)提高后勤保障。 读完…

ubuntu下tensorrt环境配置

文章目录 一、Ubuntu18.04环境配置1.1 安装工具链和opencv1.2 安装Nvidia相关库1.2.1 安装Nvidia显卡驱动1.2.2 安装 cuda11.31.2.3 安装 cudnn8.21.2.4 下载 tensorrt8.4.2.4 二、编写CMakeLists.txt三、TensorRT系列教程 一、Ubuntu18.04环境配置 教程同样适用与ubuntu22.04…

2023.11.13 hive数据仓库之分区表与分桶表操作,与复杂类型的运用

目录 0.hadoop hive的文档 1.一级分区表 2.一级分区表练习2 3.创建多级分区表 4.分区表操作 5.分桶表 6. 分桶表进行排序 7.分桶的原理 8.hive的复杂类型 9.array类型: 又叫数组类型,存储同类型的单数据的集合 10.struct类型: 又叫结构类型,可以存储不同类型单数据的集合…

按键编程 pal库和标准库

按钮的电路设计 电路的搭建 原理与编程 创建了两个变量 用来捕捉按键的状态 先让两个变量都为1 previous和current都为1 (按键没按下) 然后让current去捕捉按键的状态通过读gpioA的pin0 如果为0就是按键按下 如果为1就是按键没按下 然后赋值给current …

asp.net core weapi 结合identity完成登录/注册/角色/权限分配

1.安装所需要的nuget包 <PackageReference Include"Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version"6.0.24" /><PackageReference Include"Microsoft.EntityFrameworkCore" Version"6.0.24" /><PackageR…

layui 表格(table)合计 取整数

第一步 开启合计行 是否开启合计行区域 table.render({elem: #myTable, url: ../baidui/, page: true, cellMinWidth: 100,totalRow:true,cols: [[ //表头//{ type: checkbox },{ type: checkbox,totalRowText: "合计" },//合计行区域{ field: id, align: center,…

改进YOLO系列 | YOLOv5/v7 引入Super Token Sampling ViT | 《CVPR 2023 最新论文》

论文地址:https://arxiv.org/abs/2211.11167 代码地址:https://github.com/hhb072/STViT 视觉变换器已经在许多视觉任务中取得了令人印象深刻的性能。然而,它在捕捉浅层的局部特征时可能会受到高度冗余的影响。因此,引入了局部自注意力或早期卷积,这些方法牺牲了捕捉长距…

js案例:打地鼠游戏(打灰太狼)

效果预览图 游戏规则 当灰太狼出现的时候鼠标左键点击灰太狼加10分&#xff0c;小灰灰出现的时候鼠标左键点小灰灰击减10分&#xff0c;不点击不减分不加分。 整体思路 1.把获取背景图片中每个地洞的位置&#xff0c;把所有位置放到一个数组中。 2.封装随机数函数&#xff0c;随…

CnosDB 在最近新发布的 2.4.0 版本中增加对时空函数的支持。

CnosDB 在最近新发布的 2.4.0 版本中增加对时空函数的支持。 概述 时空函数是一种用于描述时空结构和演化的函数。它在物理学、数学和计算机科学等领域中都有广泛的应用。时空函数可以描述物体在时空中的位置、速度、加速度以及其他相关属性。 用法 CnosDB 将使用一种全新的…

【ATTCK】MITRE Caldera - 测试数据泄露技巧

CALDERA是一个由python语言编写的红蓝对抗工具&#xff08;攻击模拟工具&#xff09;。它是MITRE公司发起的一个研究项目&#xff0c;该工具的攻击流程是建立在ATT&CK攻击行为模型和知识库之上的&#xff0c;能够较真实地APT攻击行为模式。 通过CALDERA工具&#xff0c;安全…

几种解决mfc140.dll文件缺失的方法,电脑提示mfc140.dll怎么办

电脑提示mfc140.dll缺失&#xff0c;如果你不去处理的话&#xff0c;那么你的程序游戏什么都是启动不了的&#xff0c;如果你想知道有什么方法可以解决那么可以参考这篇文章进行解决&#xff0c;今天给大家几种解决mfc140.dll文件缺失的方法。电脑提示mfc140.dll也不用担心解决…

Redis Java 开发简单示例

文章目录 一、概述二、Jedis 开发示例2.1 导入 maven 依赖2.2 使用连接池读写2.3 使用集群读写2.4 完整示例代码2.5 测试集群的搭建 三、Lettuce 开发示例3.1 导入 maven 依赖3.2 读写数据 四、Spring Boot Redis 开发示例4.1 导入 maven 依赖4.2 配置Redis服务地址4.3 基于 Re…

智慧城市数据中台建设方案:PPT全文51页,附下载

关键词&#xff1a;智慧城市解决方案&#xff0c;数据中台解决方案&#xff0c;智慧城市建设&#xff0c;数据中台技术架构&#xff0c;数据中台建设 一、智慧城市数据中台建设背景 智慧城市数据中台是在城市数字化转型和智能化升级的背景下提出的&#xff0c;旨在实现城市数…

WebSocket网络协议

二十六、WebSocket 26.1 介绍 WebSocket是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工通信&#xff0c;浏览器和服务器只需要完成一次握手&#xff0c;两者之间就可以创建持久性的连接&#xff0c;并进行双向数据传输。 HHTP协议和WebSocket协议对比&#xff…