M3VSNET:无监督多度量多视图立体视觉网络(2021年)

news2024/11/19 8:29:02

M3VSNET:无监督多度量多视图立体视觉网络(2021年)

    • 摘要
    • 1 引言
    • 2 相关工作
    • 3 实现方法
      • 3.1 网络架构

B. Huang, H. Yi, C. Huang, Y. He, J. Liu and X. Liu, “M3VSNET: Unsupervised Multi-Metric Multi-View Stereo Network,” 2021 IEEE International Conference on Image Processing (ICIP), Anchorage, AK, USA, 2021, pp. 3163-3167, doi: 10.1109/ICIP42928.2021.9506469.
The code is available at https://github.com/whubaichuan/M3VSNet

摘要

与传统的MVS方法相比,目前采用的基于监督学习的网络的多视图立体匹配(MVS)方法具有显著的性能。然而,用于训练的真实深度图很难获得,而且是在有限的情况下。在本文中,我们提出了一种新的无监督多度量MVS网络,名为M3VSNet,用于没有任何监督的密集点云重建。为了提高点云重构的鲁棒性和完整性,我们提出了一种新的多度量损失函数,该函数结合了像素级和特征级损失函数,从匹配对应的不同角度学习固有的约束条件。此外,我们还在三维点云格式中加入了正常深度的一致性,以提高估计深度图的准确性和连续性。实验结果表明,M3VSNet建立了最先进的无监督方法,在DTU数据集上取得了比以前的监督MVSNet更好的性能,并在坦克和寺庙数据集上证明了强大的泛化能力和有效的改进。

1 引言

多视图立体视觉(MVS)旨在从多视图图像中重建三维密集点云,在增强现实、虚拟现实和机器人技术等领域有多种应用。传统方法通过手工特征(如NCC)计算匹配对应取得了很大的进展。然而,MVS在大规模环境中的有效和鲁棒的方法仍然是具有挑战性的任务。最近,深度学习被引入来缓解这一限制。基于监督学习的MVS方法取得了显著进展,特别是提高了密集点云重建的效率和完整性。这些基于学习的方法通过学习和推断信息来处理立体视觉对应难以获得的匹配歧义性。然而**,这些基于监督学习的方法强烈地依赖于具有真实深度图的训练数据集。它们的场景种类有限,也不容易获得。因此,这是一个很大的障碍,可能导致在不同复杂场景下的泛化能力差**。此外,密集点云重建的鲁棒性和完整性仍有很大的改进空间。基于学习的方法主要基于像素级水平,这会导致不正确的匹配对应,且的鲁棒性较低。因为对于两个相同的图像,只要从像素水平的角度进行像素偏移,差异可能会很大。然而,从特征水平等感知的角度来看,它们几乎是相同的。因此,本文旨在研究基于学习的MVS的数据独立性、鲁棒性和完整性。在本文中,我们提出了一种新的无监督多度量MVS网络,名为M3VSNet,如图1所示,即使在非理想环境下,它也可以推断出密集点云重建的深度图。最重要的是,我们提出了一种新的多度量损失函数,即像素级和特征级损失函数。关键的见解是,人类的视觉系统通过物体的特征来感知周围的世界。在损失函数方面,可以很好地保证光度和几何匹配的一致性。
在这里插入图片描述

具体来说,我们引入了来自预先训练过的VGG16网络的多尺度特征图,作为特征级丢失的重要线索。低级特征表示学习更多的纹理细节,而高级特征学习具有较大的接受域的语义信息。不同层次的特征是对不同的感受域的表现。此外,为了提高深度图的精度和连续性,我们在世界坐标空间中加入法线-深度一致性来约束估计深度图得到的局部表面切线与计算的法线正交。因此,在无纹理、镜面反射或反射和纹理重复区等具有挑战性的场景中,网络可以很好地提高匹配对应的鲁棒性和准确性。

2 相关工作

该领域提出了许多传统的方法,如基于体素的方法[8]、特征点扩散[3]和估计深度图[9]的融合。估计深度图的融合可以将重建解耦为深度估计和融合。单目的视频和双目成对图像的深度估计与多视点立体视觉有许多相似之处。单目视频缺乏实际深度的真实尺度,双目成对图像总是需要对并行的两幅图像进行校正。与单眼视频和双目成对图像相比,多视图遮挡和一致性等障碍提高了多视图立体视觉深度估计的难度。自从Yao Yao在2018年提出MVSNet以来,已经提出了许多基于MVSNet的监督网络。更重要的是,获得真实的深度图非常繁琐。Dai以对称的方式同时预测所有视图的深度图,这消耗了大量的GPU内存。此外,Tejas提出了简化的网络和传统的损失指定,但结果不令人满意。

3 实现方法

3.1 网络架构

M3VSNet的基本架构由三个部分组成,即金字塔特征聚合、基于方差的成本量生成和3D U-Net正则化,如图1所示。
在这里插入图片描述

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

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

相关文章

02-Java集合之双列集合,如HashMap,Hashtable,Properties,TreeMap的底层结构

双列集合 添加/获取/删除键值对原理 哈希表/散列表是一种将数组和单向链表融合在一起的数据结构 数组在查询方面效率很高,单向链表在随机增删方面效率较高,哈希表将以上的两种数据结构融合在一起后充分发挥它们各自的优点 双列集合以key和value这种键值对方式存储数据: key…

【算法】七大经典排序(插入,选择,冒泡,希尔,堆,快速,归并)(含可视化算法动图,清晰易懂,零基础入门)

​ 目录 一、排序的概念及其运用1.1 排序的概念1.2 排序的应用1.3 常见的排序算法 二、常见排序算法的实现2.1 插入排序2.1.1 直接插入排序2.1.2 希尔排序2.1.3 直接插入排序和希尔排序的性能对比 2.2 选择排序2.2.1 直接选择排序2.2.2 堆排序2.2.3 直接选择排序和堆排序的性能…

会声会影2024旗舰版系统配置要求及格式支持

会声会影2024旗舰版是一款广受欢迎的视频编辑软件,它的最新版本,会声会影2023,已经发布。在这篇文章中,我们将探讨会声会影2024旗舰版系统配置要求及格式支持 会声会影2024是一款专业的视频剪辑软件,能够帮助用户制作高…

写一个宏,交换整数二进制位的奇数位和偶数位,并打印这个新的数

我们已经学过了C语言的宏&#xff0c;我们今天应用宏来交换一个整数的二进制的奇数位和偶数位&#xff0c;并得到这个被交换过的数&#xff0c;我们开始吧&#xff01; 1.问题分析 解题方法&#xff1a;& 和<< 和>>操作符 问题解析&#xff1a;我们这里假设一个…

医保移动支付程序开发

作为公司最苦命的开发&#xff0c;年初接到任务开发医保移动支付程序&#xff08;微信小程序和支付宝小程序&#xff09;&#xff0c;为医疗机构提供线上医保结算。好家伙&#xff0c;我一看解压后资料大于一个G&#xff0c;内心无比的惊慌。 一、技术流程图 图太大了显示不全需…

入门必读:Figma软件的功能和用途一览!

1、Figma软件是做什么的 Figma软件奠定了在线设计工具的形式&#xff0c;产品UI设计功能非常强大&#xff0c;Figma软件基于web操作&#xff0c;无论是macos、windows可以使用这个软件&#xff0c;即使有电脑、浏览器、网络&#xff0c;甚至软件也不需要下载&#xff0c;节省了…

C语言枚举的作用是什么?

我在知乎上看到这个问题&#xff0c;一开始&#xff0c;也有一些疑惑&#xff0c;后面查了一些资料&#xff0c;对于这个问题&#xff0c;简单的说一下我的看法。 枚举有多大 枚举类型到底有多大&#xff0c;占多少空间呢&#xff1f;这个要具体情况具体分析&#xff0c;编译器…

基于ssm框架的公寓租房系统设计与实现

基于ssm框架的公寓租房系统的设计与实现 摘要&#xff1a;在互联网技术的不断发展壮大的背景下,人们生活水平及经济水平也随之得到提上&#xff0c;许多商家都纷纷吧自己的业务重心偏移到网络这个大蛋糕上&#xff0c;为了迎合时代的发展&#xff0c;房屋的出租业务也应该将重…

将测试速度提升数倍!RunnerGo测试平台——您的UI自动化测试利器!

RunnerGo提供从API管理到API性能再到可视化的API自动化、UI自动化测试功能模块&#xff0c;覆盖了整个产品测试周期。 RunnerGo UI自动化基于Selenium浏览器自动化方案构建&#xff0c;内嵌高度可复用的测试脚本&#xff0c;测试团队无需复杂的代码编写即可开展低代码的自动化…

Windows下Linkis1.5DSS1.1.2本地调试

1 Linkis: 参考&#xff1a; 单机部署 | Apache Linkis技术分享 | 在本地开发调试Linkis的源码 (qq.com)DataSphere Studio1.0本地调试开发指南 - 掘金 (juejin.cn) 1.1 后端编译 参考【后端编译 | Apache Linkis】】 修改linkis模块下pom.xml,将mysql.connetor.scope修改…

LeetCode Hot100 84.柱状图中最大的矩形

题目&#xff1a; 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。 求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 方法&#xff1a; 代码&#xff1a; class Solution {public int largestRectang…

vue项目中通过vuex管理数据

目录 1.前言&#xff1a; 2.vuex的基础用法&#xff1a; 1.构建与挂载vue 基础模板渲染 构建仓库 2.mutations的使用 1.介绍 ​编辑 2.案列&#xff1a; 3.传参 4.辅助函数mapMutations&#xff1a; 3.module分对象的写法 介绍 建立模块&#xff1a; 访问数据的方…

SPSS生存分析:寿命表分析

前言&#xff1a; 本专栏参考教材为《SPSS22.0从入门到精通》&#xff0c;由于软件版本原因&#xff0c;部分内容有所改变&#xff0c;为适应软件版本的变化&#xff0c;特此创作此专栏便于大家学习。本专栏使用软件为&#xff1a;SPSS25.0 本专栏所有的数据文件请点击此链接下…

PostgreSQL | EXTRACT | 获取时间的年月日字串

EXTRACT EXTRACT 函数是 PostgreSQL 中用于从日期和时间类型中提取特定部分&#xff08;如年、月、日、小时等&#xff09;的函数。 格式 EXTRACT(field FROM source) -- field 参数是要提取的部分&#xff0c;例如 YEAR、MONTH、DAY、HOUR 等。 -- source 参数是包含日期或…

计算机网络高频面试八股文

目录&#xff1a; 网络分层结构三次握手两次握手可以吗&#xff1f;四次挥手第四次挥手为什么要等待2MSL&#xff1f;为什么是四次挥手&#xff1f;TCP有哪些特点&#xff1f;说说TCP报文首部有哪些字段&#xff0c;其作用又分别是什么&#xff1f;TCP和UDP的区别&#xff1f;…

Unity 关于生命周期函数的一些认识

Unity 生命周期函数主要有以下一些&#xff1a; Awake(): 在脚本被加载时调用。用于初始化对象的状态和引用。 OnEnable(): 在脚本组件被启用时调用。在脚本组件被激活时执行一次&#xff0c;以及在脚本组件被重新激活时执行。 Reset(): 在脚本组件被重置时调用。用于重置脚本…

11.27二叉查找树,遍历二叉树,层序(判断是不是完全二叉树),根据遍历序列重构二叉树,递归输入建树(树的定义,结构体细节,typedef)

如果left<right&#xff0c;就表明其之间还有元素&#xff0c;即左右指针重合&#xff0c;区间只有一个元素也被包含其中&#xff1b; left<right,就表明递归过程中&#xff0c;只允许区间有两个及以上的元素&#xff0c;不允许区间只有一个元素&#xff0c;那么对应地&…

Python数据预处理详解

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com 数据预处理是数据科学中至关重要的步骤&#xff0c;它包括清洗、转换、归一化等操作&#xff0c;以使数据适合于机器学习模型的使用。Python提供了多种强大的库和工具&#xff0c;能够帮助进行数据预处理。本文将…

中间件安全:JBoss 反序列化命令执行漏洞.(CVE-2017-7504)

中间件安全&#xff1a;JBoss 反序列化命令执行漏洞.&#xff08;CVE-2017-7504&#xff09; JBoss 反序列化漏洞&#xff0c;该漏洞位于 JBoss 的 HttpInvoker 组件中的 ReadOnlyAccessFilter 过滤器中&#xff0c;其 doFilter 方法在没有进行任何安全检查和限制的情况下尝试…

小程序如何进行一键修复

在使用小程序过程中&#xff0c;难免会遇到一些问题&#xff0c;比如程序崩溃、功能异常等等。这时&#xff0c;版本一键修复就显得尤为重要了。下面&#xff0c;我们就来介绍一下小程序如何进行版本一键修复。 一、什么是版本一键修复&#xff1f; 版本一键修复是指在小程序…