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

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.mzph.cn/news/179333.shtml

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

相关文章

轻巧高效的剃须好工具,DOCO黑刃电动剃须刀上手

剃须刀大家都用过,我比较喜欢电动剃须刀,尤其是多刀头的悬浮剃须刀,感觉用起来很方便,剃须效率也很高。最近我在用一款DOCO小蔻的黑刃电动剃须刀,这款剃须刀轻巧易用,而且性价比超高。 相比于同类产品&…

Keil5 debug

目录 debug调试功能 基本功能: 程序复位:Reset 运行:Run 停止:Stop 断点调试(Breakpoint Debugging) 单步调试: 单步调试:Step 单步跳过调试:Step Over: 单步返…

Nginx-进程

Nginx-相关问题_01 Windows关闭所有nginx服务 windows 系统下开发调试时不用每次频繁的 启动->任务管理器->查找进程->结束进程! 查看nginx的进程占用情况 tasklist | find /i "nginx.exe" || exit关闭nginx的所有进程 taskkill /im nginx.…

09. 智慧商城——订单结算、订单管理

01. 订单结算台 所谓的 “立即结算”&#xff0c;本质就是跳转到订单结算台&#xff0c;并且跳转的同时&#xff0c;需要携带上对应的订单参数。 而具体需要哪些参数&#xff0c;就需要基于 【订单结算台】 的需求来定。 (1) 静态布局 准备静态页面 <template><di…

2023-11-25 LeetCode每日一题(二叉树中的伪回文路径)

2023-11-25每日一题 一、题目编号 1457.二叉树中的伪回文路径二、题目链接 点击跳转到题目位置 三、题目描述 给你一棵二叉树&#xff0c;每个节点的值为 1 到 9 。我们称二叉树中的一条路径是 「伪回文」的&#xff0c;当它满足&#xff1a;路径经过的所有节点值的排列中…

scipy 笔记:scipy.spatial.distance

1 pdist 计算n维空间中观测点之间的成对距离。 scipy.spatial.distance.pdist(X, metriceuclidean, *, outNone, **kwargs) 1.1 主要参数 X一个m行n列的数组&#xff0c;表示n维空间中的m个原始观测点metric使用的距离度量out输出数组。如果非空&#xff0c;压缩的距离矩阵…

微信小程序获取定位显示在百度地图上位置出现偏差

项目场景&#xff1a; 背景&#xff1a; 微信小程序端获取手机定位坐标&#xff0c;以及正确展示位置通过详细地址解析为定位坐标显示在小程序端以及PC后台小程序获取的地理坐标与百度地图坐标相互转化 相关知识 目前国内主要有以下三种坐标系&#xff1a; WGS84&#xff1a…

【无标题】发生

直接定值法 hash 函数 hash(key)a*keyb; 数字分析法&#xff1a; 取模法&#xff08;除留余数法&#xff09; hash(key)key%p 1001最大质数 p<m (表长&#xff09; 平方取中法

SpringCloud之服务网关Gateway组件使用——详解

目录 一、网关介绍 1.什么是服务网关 2. 为什么需要网关 3.网关组件在微服务中架构 二、服务网关组件 1. zuul 1.x 2.x(netflix 组件) 1.1 zuul版本说明 2. gateway (spring) 2.1 特性 2.2 开发网关动态路由 2.2.1.创建项目引入网关依赖 2.2.2 快捷方式配置路由 2.2…

Java面向对象第5天

精华笔记&#xff1a; package&#xff1a;声明包 作用&#xff1a;避免类的命名冲突 同包中的类不能同名&#xff0c;但不同包中的类可以同名 类的全称&#xff1a;包名.类名&#xff0c;常常有层次结构 建议&#xff1a;包名所有字母都小写 import&#xff1a;导入类、引入…

Vue3挂载完毕后,隐藏dom再重新加载组件的方法

组件原本是在PC端使用的&#xff0c;现在需要把组件再封装一次&#xff0c;供app调用&#xff0c;但是在app上会显示tag栏&#xff0c;有占位影响空间&#xff0c;所以需求去掉头部tag&#xff0c;只显示下方组件。 实现方法&#xff0c;以前是直接引用的组件&#xff0c;现在改…

简介vue

目录 一、介绍 渐进式框架​ 单文件组件​ 选项式 API (Options API)​ 组合式 API (Composition API)​ 该选哪一个&#xff1f;​ 创建一个 Vue 应用 应用实例​ 根组件​ DOM 中的根组件模板 应用配置​ 多个应用实例​ 一、介绍 Vue (发音为 /vjuː/&#xff…

.NET生成微信小程序推广二维码

前言 对于小程序大家可能都非常熟悉了&#xff0c;随着小程序的不断普及越来越多的公司都开始推广使用起来了。今天接到一个需求就是生成小程序码&#xff0c;并且与运营给的推广图片合并在一起做成一张漂亮美观的推广二维码&#xff0c;扫码这种二维码就可以进入小程序。为了…

【开源】基于Vue.js的大学计算机课程管理平台的设计和实现

项目编号&#xff1a; S 028 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S028&#xff0c;文末获取源码。} 项目编号&#xff1a;S028&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 实验课程档案模块2.2 实验资源模块2…

vue项目实现生成一个简单二维码

vue项目中实现的 一个简单的二维码生成例子 首先安装一下插件 npm install qrcodejs2 --save然后尝试走通下面的业务 <template><div class"qrcode"><h1>生成二维码</h1><label for"text">请输入要转换为二维码的内容&…

前端环境变量释义process.env与import.meta.env

视频教程 彻底搞懂前端环境变量使用和原理&#xff0c;超清楚_哔哩哔哩_bilibili 添加命令行参数 --modexxxxx 新建.env.xxxx文件,其中.env文件会在所有环境下生效 以VITE_开头&#xff0c;字符串无需加双引号 使用import.meta.env.VITE_xxxxx进行调用

C++Primer(中文版)(第五版)【读书笔记 + 思考总结】

CPrimer&#xff08;中文版&#xff09;&#xff08;第五版&#xff09;【读书笔记 思考总结】 第7章 类什么是数据抽象&#xff1f;什么是封装&#xff1f;什么是抽象数据类型&#xff1f;一个设计良好的类应该提供什么&#xff1f;什么是inline函数&#xff1f;inline函数有…

【数据结构】树与二叉树(廿四):树搜索指定数据域的结点(算法FindTarget)

文章目录 5.3.1 树的存储结构5. 左儿子右兄弟链接结构 5.3.2 获取结点的算法1. 获取大儿子、大兄弟结点2. 搜索给定结点的父亲3. 搜索指定数据域的结点a. 算法FindTargetb. 算法解析c. 代码实现a. 使用指向指针的指针b. 直接返回找到的节点 4. 代码整合 5.3.1 树的存储结构 5.…

C++之模版初阶(简单使用模版)

前言 在学习C的模版之前&#xff0c;咱们先来说一说模版的概念&#xff0c;模版在我们的日常生活中非常常见&#xff0c;比如我们要做一个ppt&#xff0c;我们会去在WPS找个ppt的模版&#xff0c;我们只需要写入内容即可&#xff1b;比如我们的数学公式&#xff0c;给公式套值&…

计算机人机界面

人机界面是指入与机器之间相互交流和影响的区域。人机界面包括对数据和信息的输入和输出方法&#xff0c;以及人们对机器的操作和控制。早期&#xff0c;人机交互界面是控制合&#xff0c;随后通过键盘进行操作&#xff0c;目前为鼠标和键盘操作&#xff0c;而智能手机采用触摸…