【论文精读】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.mzph.cn/news/139952.shtml

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

相关文章

图书网站信息采集

首先,你需要安装Haskell的HTTP库,比如http-conduit。你可以使用cabal包管理器来安装它。 然后,你需要定义一个函数来处理HTTP请求。这个函数需要接受一个URL和一个代理服务器的地址作为参数。 import Network.HTTP.ConduitgetURL :: String…

【Devchat 插件】创建一个GUI应用程序,使用Python进行加密和解密

VSCode 插件 DevChat——国内开源的 AI 编程! 写在最前面DevChat是什么?什么是以提示为中心的软件开发 (PCSD)?为什么选择DevChat?功能概述情境构建添加到上下文生成提交消息提示扩展 KOL粉丝专属福利介绍D…

QT QStackedWidget

QStackedWidget是一个特殊的布局容器&#xff0c;它可以管理多个页面&#xff0c;并且只能显示其中一个页面。这些页面是QWidget或其派生类的实例&#xff0c;并通过调用addWidget()函数添加到堆栈中。 例如&#xff1a; #include <QWidgets> #include <QStackedWid…

ElasticSearch学习和使用 (使用head软件可视化es数据)

使用步骤 直接使用 Elasticsearch的安装和使用 下载Elasticsearch6.2.2的zip包&#xff0c;并解压到指定目录&#xff0c;下载地址&#xff1a;https://www.elastic.co/cn/downloads/past-releases/elasticsearch-6-2-2运行bin目录下的elasticsearch.bat启动Elasticsearch安…

CCNA课程实验-13-PPPoE

目录 实验条件网络拓朴需求 配置实现基础配置模拟运营商ISP配置ISP的DNS配置出口路由器OR基础配置PC1基础配置 出口路由器OR配置PPPOE拨号创建NAT(PAT端口复用) PC1测试结果 实验条件 网络拓朴 需求 OR使用PPPoE的方式向ISP发送拨号的用户名和密码&#xff0c;用户名&#xf…

四种常见分布式限流算法实现!

转载&#xff1a;四种常见分布式限流算法实现&#xff01; - 知乎 大家好&#xff0c;我是老三&#xff0c;最近公司在搞年终大促&#xff0c;随着各种营销活动“组合拳”打出&#xff0c;进站流量时不时会有一个小波峰&#xff0c;一般情况下&#xff0c;当然是流量越多越好&…

flutter逆向 ACTF native app

前言 算了一下好长时间没打过CTF了,前两天看到ACTF逆向有道flutter逆向题就过来玩玩啦,花了一个下午做完了.说来也巧,我给DASCTF十月赛出的逆向题其中一道也是flutter,不过那题我难度降的相当之低啦,不知道有多少人做出来了呢~ 还原函数名 flutter逆向的一大难点就是不知道l…

删除杀软回调 bypass EDR 研究

01 — 杀软或EDR内核回调简介 Windows x64 系统中&#xff0c;由于 PatchGuard 的限制&#xff0c;杀软或EDR正常情况下&#xff0c;几乎不能通过 hook 的方式&#xff0c;完成其对恶意软件的监控和查杀。那怎么办呢&#xff1f;别急&#xff0c;微软为我们提供了其他的方法&a…

如何从零开始手写一个消息中间件(从宏观角度理解消息中间件的技术原理)

如何从零开始手写一个消息中间件&#xff08;从宏观角度理解消息中间件的技术原理&#xff09; 什么是消息中间件消息中间件的作用逐一拆解消息中间件的核心技术消息中间件核心技术总览IOBIONIOIO多路复用AIOIO多路复用详细分析selectpollepoll Java中的IO多路复用 协议序列化消…

FD-Align论文阅读

FD-Align: Feature Discrimination Alignment for Fine-tuning Pre-Trained Models in Few-Shot Learning&#xff08;NeurIPS 2023&#xff09; 主要工作是针对微调的和之前的prompt tuining&#xff0c;adapter系列对比 Motivation&#xff1a; 通过模型对虚假关联性的鲁棒…

Python 的 datetime 模块

目录 简介 一、date类 &#xff08;一&#xff09;date 类属性 &#xff08;二&#xff09;date 类方法 &#xff08;三&#xff09;实例属性 &#xff08;四&#xff09;实例的方法 二、time类 &#xff08;一&#xff09;time 类属性 &#xff08;二&#xff09;tim…

JavaScript_动态表格_删除功能

1、动态表格_删除功能 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>动态表格_添加和删除功能</title><style>table{border: 1px solid;margin: auto;width: 100%;}td,th{text-align: …

图像相似度对比方法

1.哈希方法&#xff0c;其中包括均值哈希、插值哈希、感知哈希方法。计算出图片的哈希值&#xff0c;一般使用汉明 距离计算两个图片间的差距。 2.直方图算法&#xff0c;其中包括灰度直方图算法&#xff0c;RGB直方图算法&#xff0c; 3.灰度图算法&#xff1a;MSE、SSIM、…

ELK之Logstash解析时间相差8h的问题

一、问题描述 服务器当前时间为&#xff1a;2022年 06月 28日 星期二 11:24:22 CST 而logstash解析的时间为2022-06-28T03:15:25.545Z与实际时间相差8h 一、解决办法&#xff1a; 需改logstash的配置文件&#xff1a; 原理就是&#xff1a;定义一个中间变量timestamp&…

第十三章《搞懂算法:神经网络是怎么回事》笔记

目前神经网络技术受到追捧&#xff0c;一方面是由于数据传感设备、数据通信技术和数据存储技术 的成熟与完善&#xff0c;使得低成本采集和存储海量数据得以成为现实;另一方面则是由于计算能力的大幅提升&#xff0c;如图形处理器(Graphics Processing Unit&#xff0c;GPU)在神…

【数据结构】拓扑序列求法

概念不多说了&#xff0c;有疑问的搜一下&#xff0c;这里直接放求法&#xff1a; 找到入度为0的节点输出并删除该节点&#xff0c;并删除与该点链接的边重复第一步 例子 输出a&#xff0c;删除a输出b&#xff0c;删除b输出c&#xff0c;删除c 最终结果为abcdef 注意 拓扑排…

实战Leetcode(四)

Practice makes perfect&#xff01; 实战一&#xff1a; 这个题由于我们不知道两个链表的长度我们也不知道它是否有相交的节点&#xff0c;所以我们的方法是先求出两个链表的长度&#xff0c;长度长的先走相差的步数&#xff0c;使得两个链表处于同一起点&#xff0c;两个链…

杂记 | 使用FRP搭建内网穿透服务(新版toml配置文件,搭配反向代理食用)

文章目录 01 需求与回顾02 下载程序包03 编辑.toml文件3.1 编辑frps.toml3.2 编辑frpc.toml 04 启动服务4.1 启动服务端4.2 启动客户端 05 配置反向代理&#xff08;可选&#xff09;06 windows设置为默认启动&#xff08;可选&#xff09;6.1 创建启动脚本6.2 设置为开机自启 …

Liunx命令汇总

一.用户相关命令 1.1账号管理 创建用户&#xff1a; useradd &#xff08;选项&#xff09; 用户名用户口令&#xff1a; passwd &#xff08;选项&#xff09; 用户名修改用户&#xff1a; usermod 选项 用户名删除用户&#xff1a; userdel &#xff08;选项&#xff09; 用…

加班把数据库重构完毕

加班把数据库重构完毕 本文的数据库重构是基于 clickhouse 时序非关系型的数据库。该数据库适合存储股票数据&#xff0c;速度快&#xff0c;一般查询都是 ms 级别&#xff0c;不需要异步查询更新界面 ui。 达到目标效果&#xff1a;数据表随便删除&#xff0c;重新拉数据以及指…