RC-MVSNet:无监督的多视角立体视觉与神经渲染--论文笔记(2022年)

RC-MVSNet:无监督的多视角立体视觉与神经渲染--论文笔记(2022年)

    • 摘要
    • 1 引言
    • 2 相关工作
      • 2.1 基于监督的MVS
      • 2.2 无监督和自监督MVS
      • 2.3 多视图神经渲染
    • 3 实现方法
      • 3.1 无监督的MVS网络

Chang, D. et al. (2022). RC-MVSNet: Unsupervised Multi-View Stereo with Neural Rendering. In: Avidan, S., Brostow, G., Cissé, M., Farinella, G.M., Hassner, T. (eds) Computer Vision – ECCV 2022. ECCV 2022. Lecture Notes in Computer Science, vol 13691. Springer, Cham. https://doi.org/10.1007/978-3-031-19821-2_38
Source Code Link

摘要

(问题–方法–效果)
问题】在不同的视图之间找到准确的对应关系是无监督的多视图立体声音响(MVS)的致命弱点。现有的方法建立在相应像素具有相似光度特征的假设上。然而,在真实场景中,多视图图像观察到非兰伯表面和遭遇遮挡。【方法】在2022年8月,我们提出了一种新的神经渲染方法(RC-MVSNet)来解决这种视图间对应的模糊性问题。具体地说,我们施加深度渲染一致性损失来约束靠近对象表面的几何特征,以减少遮挡。同时,我们引入了一个参考视图合成损失,以产生一致的监督,即使对非兰伯表面。【效果】在DTU和坦克和寺庙数据集上进行的大量实验表明,我们的RC-MVSNet方法在无监督的MVS框架上取得了最先进的性能,并且与许多监督方法相比具有一定的竞争力。

1 引言

多视图立体视觉(Multi-View Stereo,MVS)是三维计算机视觉中一项长期存在的基本任务。MVS的目标是从多视点图像和相应的校准摄像机中恢复真实场景的三维点云。近年来,深度学习的广泛应用导致了端到端MVS深度估计网络的出现。一种流行的基于学习的方法MVSNet将来自不同摄像机视图的RGB信息编码为一个代价体,并预测用于点云重建的深度图。后续的全监督方法进一步改进了神经网络架构,降低了内存使用,并在几个基准测试集上具有最突出的深度估计性能。但那些方法严重依赖于监督真实的深度,这需要一个深度传感器来收集训练数据。它将这些方法限制在有限的数据集和主要的室内场景中。为了使MVS在更一般的现实场景中实用,考虑基于无监督学习的替代方法是至关重要的,这些方法可以提供与有监督的方法相比具有竞争力的精度,而不需要任何真实深度。

现有的无监督MVS方法基于光度一致性假设,该假设即属于同一三维点的像素在不同视图方向下具有相同的颜色属性。然而,在现实世界的环境中,如图2所示,遮挡,反射,非兰伯特面、不同的相机曝光和其它变量会使这种假设无效。因此,不准确匹配的点会导致错误的几何重建。虽然有学者提出使用语义线索来消除立体匹配中的歧义,但由于其高度依赖于预先训练的语义特征提取模型(带监督)的准确性,改进非常有限。为了消除与监督的不一致,在本文中,我们建议使用神经渲染来解决在视图依赖的光度效应和遮挡的情况下的模糊性

在这里插入图片描述
最近,人们对新的视图合成越来越感兴趣,特别是随着神经辐射场的引入,它可以模拟依赖的光度效应的基于可微体素渲染的视图。虽然最初关注的是使用输入密集采样视图对每个场景优化,但后续方法建议使用二维CNN编码器,即使用很少的输入图像预测新的视图。除了视图依赖辐射来定义沿视图光线的颜色外,这些方法还学习体积密度,当合成光线时,体积密度可以解释为深度。值得注意的是,深度是以一种纯粹的无监督的方式来学习的。然而,由于主要目标是新的视图合成,从体积密度获得的深度往往是不准确的。在我们的方法中,我们提出体素渲染方法构建新的损失函数,可以解决视图依赖效应和遮挡,同时沿用MVS方法中使用的深度表示,以确保局部准确和平滑的深度预测。

为此,我们引入了RC-MVSNet,一种新的端到端可微分的无监督多视图立体视觉网络。结合视图依赖渲染和结构化深度表示的优点,我们的方法在竞争激烈的DTU数据集中实现了最先进的深度预测结果,并在坦克和寺庙数据集的超范围样本上展现了鲁棒性能。综上所述,我们的贡献如下:

  • 我们提出了一种基于神经体素渲染的参考视图合成损失,以生成RGB监督,能够解释视图依赖的光度效应。
  • 我们引入高斯-均匀混合采样来学习接近物体表面的几何特征,以克服现有的无监督MVS方法中存在的遮挡伪影。
  • 我们引入了一种深度渲染一致性损失,通过深度先验来细化初始深度图,并确保预测的鲁棒性和平滑性。

2 相关工作

2.1 基于监督的MVS

许多监督方法已经提出使用CNN网络来预测RGB输入的深度图和深度图过滤来重建点云。大多数最先进的方法采用3D代价体。MVSNet作为一项具有代表性的工作,通过单应性变换将相机参数和特征编码为代价体,并通过三维CNN对体积进行正则化,以生成深度预测。之后有一些工作通过引入多阶段架构和从粗到细的方式学习深度预测,提高了MVSNet的性能和降低了内存消耗。此外,还有用卷积循环的GRU或LSTM单元代替了密集的三维卷积。然而,对真实深度的依赖限制了它们在特定数据集的应用,因此,探索无监督的方法是有必要的。

2.2 无监督和自监督MVS

端到端无监督和基于伪标签的多阶段自监督学习在三维视觉中起着关键的作用,特别是在多视图重建系统中。光度一致性的基本假设为无监督的MVS提供了可行性。例如,Unsupvised MVS提出了第一个基于端到端学习的无监督MVS框架:相邻视图用于测得深度反向变换成参考视图,并强制执行光度一致性和结构相似性(the structured similarity of image,SSIM)来最小化参考图像和变换后的图像之间的差异。JDACS提取的语义特征的交叉视图一致性,并通过非负矩阵分解对分割图进行监督。然而,它仍然需要一个预先训练的语义特征提取主干,且交叉视图语义一致性的收敛不稳定,无法提供可靠的监督。U-MVSNet采用流深一致性损失来解决有歧义的监督问题。利用密集的二维光流对应关系来生成具有不确定性感知一致性的伪标签,在一定程度上提高了监督能力。然而,这种方法不能以端到端的方式进行训练,因为它需要复杂的预训练和微调。Self-supervised CVP-MVSNet也提出通过无监督预训练出深度伪标签,然后进行迭代自监督训练来细化伪标签;但它仍然受到有歧义的监督影响。此外,这些无监督和自监督的方法缺乏一个遮挡感知模块学习来自的不同方向的特征,导致点云重建不完整。

相反,我们的简单但有效的模型通过参考视图合成损失直接学习场景的几何特征。这大大降低了训练的复杂性,并减轻了有歧义的光度监督。它还通过类似于NeRF的渲染,避免了由遮挡引起的问题。

2.3 多视图神经渲染

近年来,各种神经渲染方法被提出,主要集中于新视图合成的任务。特别是,神经辐射场用一个具有位置和方向的连续隐式函数表示场景用于高质量的视图合成;一些后续工作,提高了其效率和性能。NeRF也有一些扩展,它们引入了多视图信息,以增强视图合成的泛化能力。MVSNeRF提出利用平面扫描代价体,已广泛应用于多视图立体视觉和几何感知场景理解,并将其与体素渲染相结合,用于神经辐射场重建;然而,它不能在无监督的情况下产生高质量的深度预测NerfingMVS使用SfM的稀疏深度点来学习完整的深度来指导NeRF的优化过程我们的方法利用了精确的神经渲染和代价体的有效泛化能力,并提供了基于端到端无监督学习的精确深度估计,这超过了以往所有的无监督多视角立体视觉方法,并演示了室内对象和超范围的室外场景的精确重建。

3 实现方法

在本节中,我们描述了RC-MVSNet。给定N个图像作为输入,以及它们相应的相机的内参K和外参(R,T),我们的方法预测了在参考相机视图中的深度图。整个流程图如图3所示。
在这里插入图片描述

它由一个主干分支和一个辅助分支组成。主干建立在Cascade MVSNet基础上,它以从粗到细的方式预测深度图 。辅助分支建立在神经辐射场基础之上,除了几何图形之外,它也建模了与视图相关的场景外观。使用体素渲染,合成参考视图,并与输入图像进行比较,即使在视图依赖效应的情况下,也能产生准确的监督。为了保证网络分支之间的几何一致性,在引入了额外的深度渲染一致性损失,即使在遮挡的情况下也能获得更完整和准确的深度预测。请注意,在训练过程中,这两个分支同时进行优化,相互提供监督。在推理过程中,只使用主干网来进行深度预测。

3.1 无监督的MVS网络

主干网络密切遵循Cascade MVSNet架构。输入图像 ( I j ) j = 1 N (I_j) _{j=1}^N (Ij)j=1N最初使用一个共享的2D U-Net进行编码,从而生成像素级特征。然后,在参考相机的坐标系中构造了一个特征代价体。利用摄像机的内参和外参将每个代价体的体素位置投影到每个输入图像中,并通过双线性插值法查询像素特征。变换后的特征体 ( V j ) j = 1 N (V_j) _{j=1}^N (Vj)j=1N,通过计算特征方差,它们被跨视图融合成一个特征体C:
C = Var ⁡ ( V 1 , ⋯ , V N ) = ∑ j = 1 N ( V j − V ˉ j ) 2 N ( 1 ) C=\operatorname{Var}\left(V_1, \cdots, V_N\right)=\frac{\sum_{j=1}^N\left(V_j-\bar{V}_j\right)^2}{N}~~~~(1) C=Var(V1,,VN)=Nj=1N(VjVˉj)2    (1)
使用3D U-Net进一步细化了特征代价体C,最后以从粗到细的方式在参考视图中输出一个深度图。

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

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

相关文章

帮管客CRM SQL注入漏洞复现

0x01 产品简介 帮管客CRM是一款集客户档案、销售记录、业务往来等功能于一体的客户管理系统。帮管客CRM客户管理系统,客户管理,从未如此简单,一个平台满足企业全方位的销售跟进、智能化服务管理、高效的沟通协同、图表化数据分析帮管客颠覆传…

【深度学习实验】图像处理(二):PIL 和 PyTorch(transforms)中的图像处理与随机图片增强

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入需要的工具包1. PIL图像处理a. 生成绿色和蓝色图像b. 缩放和合成图像c 在合成图像上添加文字d. 展示并保存图像 2. PIL随机图像增强a. 定义随机图像增强函数b. 实验结果展示 3. PyTorch&…

redis实现消息延迟队列

业务场景 在很多软件系统功能中都会出现定时任务的业务场景,比如提前点单,比如定时发布动态,文章等而出现这样的的定时的任务为延迟队任务 代码模块 任务的持久化一般都需要建立一个任务表和任务日志表,避免宕机导致任务失效,先新建立一个数据库,创建基本的任务表和任务日志表…

【MOJO】Modular语言安装和测试

目录 一、Mojo介绍 Linux​ Mac 二、安装Mojo SDK 三、mojo代码测试 3.1、在 REPL 中运行代码​ 3.2、构建并运行 Mojo 源文件​ 运行mojo文件​ 构建可执行二进制文件​ 四、VSCode安装 一、Mojo介绍 在学习Rust语言的过程中无意发现了Modular语言,语言…

nginx基础篇学习

一、nginx编译安装 1、前往nginx官网获取安装包 下载安装包 2、解压 3、安装 进入安装包 安装准备:nginx的rewrite module重写模块依赖于pcre、pcre-devel、zlib和zlib-devel库,要先安装这些库 安装: 编译: 启动&#xff…

web前端之vue和echarts的堆叠柱状图顶部显示总数、鼠标悬浮工具提示、设置图例的显示与隐藏、label、legend、tooltip

MENU 效果图htmlJavaScripstyle解析 效果图 html <template><div><div><div id"idStackedColumnChart" style"width: 100%; height: 680px"></div></div></div> </template>JavaScrip export default {…

python-opencv轮廓检测(外轮廓检测和全部轮廓检测,计算轮廓面积和周长)

python-opencv轮廓检测&#xff08;外轮廓检测和全部轮廓检测&#xff0c;计算轮廓面积和周长&#xff09; 通过cv2.findContours&#xff0c;我们可以进行轮廓检测&#xff0c;当然也有很多检测模式&#xff0c;我们可以通过选择检测模式&#xff0c;进行外轮廓检测&#xff…

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(二)

通过ros系统中websocket中发送sensor_msgs::Image数据给web端显示(二) mp4媒体流数据 #include <ros/ros.h> #include <signal.h> #include <sensor_msgs/Image.h> #include <message_filters/subscriber.h> #include <message_filters/synchroniz…

从零开始学习管道:管道程序的优化和文件描述符继承问题

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;Linux &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 本博客主要内容管道后续的完善&#xff0c;以及解决管道继承多个文件描…

【Amazon】基于Amazon提供的托管式EKS通过eksctl命令部署Kubernetes集群

文章目录 一、使用CloudFormation创建堡垒机二、安装AWS CLI命令行工具三、安装eksctl命令行工具四、创建集群角色4.1 集群服务角色创建4.2 集群节点组角色创建 五、创建 EKS集群六、登录EKS控制台七、参考链接 一、使用CloudFormation创建堡垒机 导航至CloudFormation&#xf…

python类和对象

1.使用对象组织数据 class Student:nameNone #记录名字 stu1Student() #创建对象 stu1.name"abc" #为对象属性赋值2.类的定义和使用 2.1成员方法的定义语法 传参的时候self是透明的&#xff0c;不用管 class Stu:nameNonedef sayHi(self):print(f"你好&#x…

【数据中台】开源项目(1)-LarkMidTable

LarkMidTable 是一站式开源的数据中台&#xff0c;实现中台的 基础建设&#xff0c;数据治理&#xff0c;数据开发&#xff0c;监控告警&#xff0c;数据服务&#xff0c;数据的可视化&#xff0c;实现高效赋能数据前台并提供数据服务的产品。 系统演示地址 &#xff1a; www.l…

Windows 7隐藏用户测试

请注意Window 7是在虚拟机上安装的&#xff0c;ip是192.168.0.108。 下边都是在虚拟机Window 7上操作&#xff0c;直到最后远程连接才在自己本机Windows 11上操作。 需要同时按下Windowsr,然后输入cmd&#xff0c;再点击确定。 在命令上里边输入net user可以显示一下用户。 …

C语言学习笔记之函数篇

与数学意义上的函数不同&#xff0c;C语言中的函数又称为过程&#xff0c;接口&#xff0c;具有极其重要的作用。教科书上将其定义为&#xff1a;程序中的子程序。 在计算机科学中&#xff0c;子程序&#xff08;英语&#xff1a;Subroutine, procedure, function, routine, me…

React 入门使用 (官方文档向 Part2)

文章目录 用 State 响应输入声明式地考虑 UI步骤 1&#xff1a;定位组件中不同的视图状态步骤 2&#xff1a;确定是什么触发了这些状态的改变步骤 3&#xff1a;通过 useState 表示内存中的 state步骤 4&#xff1a;删除任何不必要的 state 变量步骤 5&#xff1a;连接事件处理…

059-第三代软件开发-巧用工控板LED指示灯引脚

第三代软件开发-巧用工控板LED指示灯引脚 文章目录 第三代软件开发-巧用工控板LED指示灯引脚项目介绍巧用工控板LED指示灯引脚第一种方式第二种方式 总结 关键字&#xff1a; Qt、 Qml、 Power、 继电器、 IO 项目介绍 欢迎来到我们的 QML & C 项目&#xff01;这个项…

video标签在h5中被劫持问题

将video的视频链接转为blob export const encryptionVideo (options: URL) > {return new Promise((resolve, reject) > {window.URL window.URL || window.webkitURL;var xhr new XMLHttpRequest();xhr.open(GET, options.url, true);xhr.responseType blob;xhr.onl…

圆通速递单号查询入口,以表格的形式导出详细物流信息

批量查询圆通速递单号的物流信息&#xff0c;并以表格的形式导出单号的详细物流信息。 所需工具&#xff1a; 一个【快递批量查询高手】软件 圆通速递单号若干 操作步骤&#xff1a; 步骤1&#xff1a;运行【快递批量查询高手】软件&#xff0c;第一次使用的伙伴记得先注册&…

C++初识类和对象

前言 上一期我们介绍了一些C入门的基础知识&#xff0c;本期我们来介绍面向对象。初步认识一下面向对象和面向过程、类、以及封装&#xff01; 本期内容介绍 面向过程和面向对象 类的引入 类的定义 类的访问限定符和封装 类的作用域 类的实例化 类对象模型 this指针 一、面向…

基本数据结构二叉树(1)

目录 1.树概念及结构 1.1树的概念 1.2 树的相关概念 1.3 树的表示 1.4 树在实际中的运用&#xff08;表示文件系统的目录树结构&#xff09; 2.二叉树概念及结构 2.1概念 2.2现实中的二叉树&#xff1a; 2.3 特殊的二叉树&#xff1a; 2.5 二叉树的存储结构 2. 链式存…