【论文精读】MVSNet系列(2018-2022)总结

news2024/11/15 23:36:46

MVSNet系列总结

      • 1.MVSNet ECCV2018
      • 2.RMVSNet CVPR2019
      • 3.P-MVSNet ICCV2019
      • 4.MVSCRF ICCV2019
      • 5.PointMVSNet ICCV2019
        • 2019年的这四篇文章各有特点,其中RMVSNet、PointMVSNet更是打开了可以继续沿着往下做的思路:
      • 6.cascade MVSNet CVPR2020
      • 7.UCSNet CVPR2020
      • 8.CVP-MVSNet CVPR2020
      • 9.Fast-MVSNet CVPR2020
      • 10.CIDER AAAI2020
      • 11.PVA-MVSNet ECCV2020
      • 12.D2HC-RMVSNet ECCV2020 Spotlight
        • 2020年涌现了很多优化的方法,整体来看有几篇文章的共同点有几个:
      • 13.Epp-mvsnet CVPR2021
      • 14.AA-RMVSNet ICCV2021
      • 15.Patchmatchnet CVPR2021
      • 17.RC-MVSNet ECCV2022
      • 18.Transmvsnet CVPR2022
      • 19.CDFSNet CVPR2022
      • 20.NP-CVP-MVSNet CVPR2022
      • 21.Vis-MVSNet IJCV2022

论文特点DTU(acc/com/overall)越低越好Tanks’mean(inter/advanced)越高越好
MVSNet(2018)开山之作0.396/0.527/0.46243.48
RMVSNet(2019)引入RNN,主打减少内存消耗(但时间增加)0.383/0.452/0.41748.40/24.91
PointMVSNet(2019)直接操作点云,同样减少内存消耗,时间增加不明显0.361/0.421/0.39148.27
P-MVSNet(2019)对卷积核做文章,使用特殊卷积核更好地在2D像素点周围、3D深度方向聚合信息0.406/0.434/0.42055.62
MVSCRF(2019)引入条件随机场来对深度图做平滑优化0.371/0.426/0.39845.73
cascade MVSNet(2020)使用2D UNet的多尺度图像特征,迭代更新深度推断的精度和尺寸0.325/0.385/0.35556.42/31.12
UCSNet (2020)使用2D UNet的多尺度图像特征,迭代更新深度推断的精度和尺寸(与UCSNet区别在使用不确定性图来决定下一次深度取值范围)0.338/0.349/0.34454.83
CVP-MVSNet(2020)使用图像金字塔,构建局部代价体,用类似PointMVSNet推断深度的残差累加到上一次迭代推断出的深度图上0.296/0.406/0.35154.03
Fast-MVSNet (2020)利用数学高斯牛顿迭代法来优化(待补充0.336/0.403/0.37047.39
CIDER (2020)不用方差构建代价体,而是引入特征图分组、内积计算相似度方法减小计算量和内存消耗0.417/0.437/0.42749.60/23.12
PVA-MVSNet(2020)使用2D UNet的多尺度图像特征,在方差法构建代价体时引入自适应视角聚合模块来考虑部分视图下对应特征被遮挡的情况(降低该特征图下该特征的权重)0.379/.0336/0.35754.46
D2HC-RMVSNet(2020)待补充0.395/0.378/0.38659.20
AA-RMVSNet(2021)使用可变形卷积核,同时也用PVA的策略考虑遮挡权重问题0.376/0.339/0.35761.51
PatchmatchNet(2021)多尺度由粗到细优化、组关联度、考虑视图间遮挡因素、可变卷积等,并且引入传播的概念来让各点试探周围同物体表面的深度值0.427/0.227/0.35253.15/32.31
RC-MVSNet (2022)待补充0.369/0.295/0.34555.04
Transmvsnet(2022)待补充0.321/0.289/0.30563.52
CDFSNet(2022)待补充0.352/0.280/0.31661.58
NP-CVP-MVSNet (2022)待补充0.356/0.275/0.31559.64
Vis-MVSNet(2022)待补充0.369/0.361/0.36560.03

1.MVSNet ECCV2018

在这里插入图片描述
作者Yao Yao,MVSNet系列的开山之作.

  • 构建了使用多张图像推断深度的MVSNet Pipeline:
    特征提取 - 单应变换 - 特征体 - 代价体 - 正则化 - 深度推断 - 后处理
  • 与传统方法相比:精度不如,但完整度更高
  • (截止2022年基于学习方法的精度还都比不上传统方法,但完整度上普遍较高)

2.RMVSNet CVPR2019

在这里插入图片描述

Yao Yao续作,将RNN引入MVSNet系列,开启用时间换空间的优化方向。

  • 在Pipline的正则化、深度推断、后处理三个部分做了优化:
    1.正则化:引入循环神经网络GRU模块在深度方向上逐步正则化(相当于时间方向)
    2.深度推断:看作多分类任务而非深度回归任务来处理
    3.细分优化深度图:解决多分类导致的阶梯现象(sub-pixel accuracy)
  • 相比MVSNet提高精度和完整度同时减少了内存消耗,相应的训练时长剧增。

3.P-MVSNet ICCV2019

在这里插入图片描述
在正则化部分做优化,主要特点在使用“向异性”的卷积核在空间上下文、深度方向上聚合信息,而不是单纯使用UNet来做。

  • 在Pipline的正则化部分做了优化:
    分别以patch和pixel为单位,引入各向异性的卷积核(即mxn型卷积核,如7x1,各向同性的为nxn型,如3x3),分别在空间上下文(2D周围方向,如用3x3x1卷积核)、深度(3D深度方向,如用1x1x7卷积核)聚合信息,优化原始的代价体以推断更准确的深度图
  • 相比MVSNet完整度损失降低,但精度损失略高,overall(精度、完整度损失之和的均值)更低

4.MVSCRF ICCV2019

在这里插入图片描述

待补充

5.PointMVSNet ICCV2019

在这里插入图片描述
在这里插入图片描述
为了避免在构建代价体部分所付出的巨大内存代价,选择直接在点云上进行操作
引入迭代多轮次优化深度推断的思想,使用“深度残差”思路,寻找各点预测深度与真实深度之间的差值并不断优化深度图。

  • 使用Pipline的基础上做了较大改动,引入了迭代优化的思想,并在点云上进行处理
    1.一个简单的MVSNet Pipline
    2.基于粗略推断的深度图构建出原始点云,并基于原始点云构建增强点云(以原始点云中各3D点为中心,沿深度方向前后各取一些假设点,即真实点可能在的位置),随后找到增强点云上3D点对应图片位置上的2D特征,构建各点的2D-3D混合特征;
    3.将2D-3D特征输入PointFlow模块,根据点云的局部结构特征对点云进行操作,最终输出的是深度残差图,即各点相对于原始推断深度的差值
    4.原始深度图+残差深度图获取新深度图,随后迭代2.3步骤
  • 相比MVSNet完整度、精度损失都有降低,且在内存消耗上减少,时间上略有增加

2019年的这四篇文章各有特点,其中RMVSNet、PointMVSNet更是打开了可以继续沿着往下做的思路:

论文特点DTU(acc/com/overall)越低越好Tanks(mean)越高越好
MVSNet开山之作0.396/0.527/0.46243.48
RMVSNet引入RNN,主打减少内存消耗(但时间增加)0.383/0.452/0.41748.40
PointMVSNet直接操作点云,同样减少内存消耗,时间增加不明显0.361/0.421/0.39148.27
P-MVSNet对卷积核做文章,使用特殊卷积核更好地在2D像素点周围、3D深度方向聚合信息0.406/0.434/0.42055.62
MVSCRF引入条件随机场来对深度图做平滑优化0.371/0.426/0.39845.73

6.cascade MVSNet CVPR2020

在这里插入图片描述

  • 在Pipline的特征提取、单应变换部分做了优化,并使用迭代优化思想:
    1.特征提取:使用2D Unet来提取不同尺度的特征供不同迭代轮次使用
    2.单应变换:在不同的迭代轮次,分别使用上一轮的深度推断图,基于各点的上一轮预测深度来更新本轮的深度采样区间,继续按pipline的方法构建代价体、推断深度图,从而使各点深度推断越来越精确
  • 相比MVSNet完整度、精度损失都有降低,且在内存消耗上减少,时间上略有增加

7.UCSNet CVPR2020

在这里插入图片描述

  • 在Pipline的特征提取、单应变换部分做了优化,并使用迭代优化思想:
    1.特征提取:使用2D Unet来提取不同尺度的特征供不同迭代轮次使用
    2.单应变换:在不同的迭代轮次,分别使用上一轮的深度推断图,基于各点的上一轮预测深度来更新本轮的深度采样区间(具体区间大小选择基于“不确定性估计”,即在上一轮次概率体推断深度图过程中,对每个像素点沿深度方向求方差,方差越小则确定性越高,下一轮次的深度区间选择可以越小),随后继续按pipline的方法构建代价体、推断深度图,从而使各点深度推断越来越精确
  • ps: 与同年的cascade MVSNet非常相似,对比来看cascade MVSNet在DTU上精度高,但完整度和overall低;cascade MVSNet在Tanks上mean更高,都没有完全超越对方所以都发表了。

8.CVP-MVSNet CVPR2020

在这里插入图片描述

  • 在Pipline的特征提取、代价体构建部分做了优化,并使用迭代优化思想:
    1.特征提取:使用特征金字塔来提取不同尺度的特征供不同迭代轮次使用
    2.代价体构建:在不同的迭代轮次,基于各点的上一轮预测深度获取对应初始3D点位置,并以该位置为中心,沿深度方向前后选取一些假设3D点(像素对应的真实3D点可能是初始的、也可能是我们选的这些存在Δd的假设点);
    将这些点深度值作为深度采样值,选取这些深度下的对应2D图像特征计算方差以构建局部代价体,随后通过正则化来得到各点的深度残差值(与上一轮深度图上各点深度的Δd)
  • ps: 与PointMVSNet的思想类似,都是推断残差深度;与cascade MVSNet类似之处在于都在不同迭代轮次使用不同的深度采样值,不同处在于cascade MVSNet每一轮使用pipline(在深度区间上直接均匀采样假设深度值)来推断完整深度图,而CVP-MVSNet是构建局部代价体(使用初始推断3D点深度方向附近的假设点来选取深度假设)进行推断残差深度图
  • 相比19年几篇在完整度、精度损失都有降低,输出深度图尺寸最大且时间消耗是最低,内存消耗相对也较少

9.Fast-MVSNet CVPR2020

在这里插入图片描述

10.CIDER AAAI2020

在这里插入图片描述

在Pipline的代价体构建、正则化部分做了优化:
1.代价体构建:单应变换之后不使用方差法,而是将特征图按通道分组,与参考视图对应通道做内积来计算相似度图构建代价体,减小了计算量和内存消耗
2.在正则化部分使用ResNet模块、两个3D Unet来进行正则化(论文指出该分组方法内存消耗小所以可以使用两个Unet,而之前的模型则不行)

在DTU数据集上表现一般(相比同2020年的几篇CVPR),但在Tanks上均值高且内存和时间消耗相对少

11.PVA-MVSNet ECCV2020

在这里插入图片描述

  • 在Pipline的特征提取、代价体构建部分做了优化:
    1.特征提取:使用2D Unet来提取特征
    2.代价体构建:使用了一个叫做自适应视角聚合(self-adaptive view aggregation)的模块来构建代价体:即在不同视图的特征体聚合为代价体时不是直接取平均值,而是根据各视图下各像素点特征与参考视图对应点特征相似程度来赋予权重(相似度高说明该像素点在两视图下均可见,因此该点的代价匹配权重应该高一些)

完整度损失明显下降,在tanks上表现也不错

12.D2HC-RMVSNet ECCV2020 Spotlight

在这里插入图片描述


2020年涌现了很多优化的方法,整体来看有几篇文章的共同点有几个:

  • 使用迭代优化思想,逐步提高推断深度图的尺寸和精度,以减少内存和时间消耗
  • 使用图像金字塔来提取并利用不同层次的深度图像特征、或是用可变形卷积核获取更有代表性的特征
  • 构建代价体时不是单纯的使用平均方差,而考虑用组内积衡量相似度、或是考虑遮挡情况下有些特征在某视角下不可见的情况(赋予不同权重)

13.Epp-mvsnet CVPR2021

14.AA-RMVSNet ICCV2021

在这里插入图片描述

  • 在Pipline的特征提取、代价体构建、正则化部分做了优化:
    1.特征提取:使用inter-view adaptive aggregation模块,使用可变形卷积核
    2.代价体构建:类似PVA-MVSNet的思想,使用intro-view adaptive aggregation
    3.正则化部分使用3D Unet与LSTM的混合正则化网络

完整度相比20年的文章又有提升,overall略不如;在tanks上提高较大

15.Patchmatchnet CVPR2021

在这里插入图片描述
在这里插入图片描述

  • PatchmatchNet使用了之前MVSNet中多种优化的技巧(多尺度由粗到细优化、组关联度、考虑视图间遮挡因素、可变卷积等),并且引入传播的概念来让各点试探周围同物体表面的深度值,详细见连接

精度不高,但完整度一下子提升很多;在tanks的高级数据集上也能进行并确定好结果。


待更新…

17.RC-MVSNet ECCV2022

18.Transmvsnet CVPR2022

19.CDFSNet CVPR2022

20.NP-CVP-MVSNet CVPR2022

21.Vis-MVSNet IJCV2022

在这里插入图片描述

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

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

相关文章

初识go变量,使用var和:=来声明变量,声明变量的三种方式

初识go变量,使用var和:来声明变量,声明变量的三种方式 Go语言的变量名由字母、数字、下划线组成,其中首个字符不能为数字。 tip:(Go语言中的变量的规范,也和其他高级语言相同) 声明变量的一般形式是使用 var 关键字: var 变量…

SpringCloud源码探析(二)-Nacos注册中心

1.概述 Nacos是Spring Cloud Alibaba中的核心组件之一,它提供了服务发现、服务配置和服务管理等功能,可以作为注册中心和配置中心使用。注册中心是微服务架构体系中的核心组件之一,Nacos比Eureka有着更强大的功能,它们都能提供服…

Java多线程系列-- ForkJoin框架,分治的艺术

前言 本篇是多线程系列中的一篇,我们在先前的一篇文章中回顾了线程池的主要知识 Java多线程基础–线程的创建与线程池管理 过去了很长时间,我们简单提要一下: 设计目的:简化线程的使用,管理与复用,避免…

Windows 远程桌面安全吗?电脑远程桌面的安全如何保障?

远程桌面会话在加密通道上运行,防止任何人通过监听网络来查看您的会话。 但是,在早期版本的 RDP 中用于加密会话的方法存在漏洞。 此漏洞可能允许使用中间人攻击 (link is external) 未经授权访问您的会话。 我们可以在 Windows 10、Windows 11 和 Wind…

学好数据结构与算法其实一点也不难

一. 初识算法 1.1 什么是算法? 定义 在数学和计算机科学领域,算法是一系列有限的严谨指令,通常用于解决一类特定问题或执行计算 In mathematics and computer science, an algorithm (/ˈlɡərɪəm/) is a finite sequence of rigorous …

MSVCP140.dll下载及安装教程,dll修复方法

MSVCP140.dll是Windows操作系统中的一个DLL文件,许多程序依赖于它来正常运行。如果您尝试运行某个程序时,发现缺少MSVCP140.dll文件,那么您需要下载并安装它才能解决问题。本文将介绍如何MSVCP140.dll下载和安装MSVCP140.dll。 第一步&#x…

解决树莓派 bullseye (11) 系统无法通过 xrdp 远程连接的问题

我手上有一台树莓派 4B,使用官方镜像烧录器烧录老版本操作系统 buster (10) 时可以正常通过 Windows 远程桌面连接上,但换成最新的 bullseye (11) 系统后却无法正常连接远程桌面。 问题复现: 使用官方镜像烧录器烧录,配置用户名为…

CSDN 竞赛 32 期

CSDN 竞赛 32 期1、题目名称:传奇霸业2、题目名称:严查枪火3、题目名称:蚂蚁家族4、题目名称:运输石油小结1、题目名称:传奇霸业 传奇霸业,是兄弟就来干。 小春(HP a)遇到了一只黄金哥布林(HP x)。 小春每…

20个让你效率更高的CSS代码技巧

在本文中,我们想与您分享一个由各大css网站总结推荐的20个有用的规则和实践经验集合。有一些是面向CSS初学者的,有一些知识点是进阶型的。希望每个人通过这篇文章都能学到对自己有用的知识。好了,我们开始。1.注意外边距折叠与其他大多数属性…

从工地转行软件测试,拿下13k+年终奖是种什么体验?

最近,一则名为《我:毕业五年,存款5000。她:中传硕士,火锅店保洁》的视频走红网络,两位名校毕业生看似高开低走的就业经历,引起了很多人的共鸣。她们所传达的并不是所谓的躺平、摆烂,而是希望更多…

spark性能调优(一):Shuffle

Shuffle 一、配置项调优二、减少shuffle数据量三、避免shuffle何为shuffle? 集群中跨进程、跨节点的数据分发(Map的输出文件写到本地磁盘,Reducer把Map的输出文件拉到本地)为什么要shuffle? 准确的说,shuffle是刚需(业务场景决定的),分布式环境中,不同节点不能进行内存交换,只…

加快发展先进制造业势在必行!

众所周知,我国是制造大国,但并非制造强国。而我们在持续发展制造业的进程中也面临着诸多实际问题,如产业发展后续乏力,环境制约异常突出,技术创新能力薄弱,结构调整任务艰巨等等。故而要实现由制造大国向制…

数据结构与算法之二叉树大全

目录二叉树的定义二叉树的性质(特性)满二叉树与完全二叉树链式存储的二叉树顺序存储的二叉树线索二叉树(Threaded BinaryTree)二叉排序树(Binary Sort Tree)平衡二叉树( Balanced Binary Tree)为什么使用平衡二叉树?如…

Vue中如何利用websocket实现实时通讯

首先我们可以先做一个简单的例子来学习一下简单的websocket模拟聊天对话的功能 原理很简单,有点像VUE中的EventBus,用emit和on传来传去 首先我们可以先去自己去用node搭建一个本地服务器 步骤如下 1.新建一个app.js,然后创建pagejson.js文…

最简单的代码生成器,netcore平台,EF架构,smartsofthelp

1.dbhelper 原生SQL操作类2.Model 实体层3.EF dbfirst 生成entites 实体操作类4.EF实体接口增删改查操作方法成员5.UI 展示层SQL数据脚本Model/// <summary>/// Model实体层 /// </summary>namespace Smart.Model{/// <summary>/// 数据实体层 T_Eventsmart …

珠海数据智能监控器+SaaS平台 轻松实现SMT生产管控

数据智能监控器 兼容市面上99%的SMT设备 直接读取设备生产数据与状态&#xff0c;如&#xff1a;计划产出、实际产出、累计产出、停机、节拍、线利用率、直通率、停产时间、工单状态、OEE…… 产品功能价值 ◎ OEE不达标报警&#xff0c;一手掌握生产效能 ◎ 首检/巡检/成…

研发人员最希望项目经理和PMO能够做什么?看完不要惊讶

作为项目经理和PMO你考虑过自己在其他人眼中的形象么&#xff1f;知道各个环节最希望你做什么吗&#xff1f;对于最常打交道的研发人员&#xff0c;你知道他们最希望你做什么吗&#xff1f; 如果不能了解其他环节对你的期望&#xff0c;你往往很难获得认同&#xff0c;为此&am…

Golang实现RabbitMQ中死信队列各个情况

下面这段教程针对是你已经有一些基本的MQ的知识&#xff0c;比如说能够很清楚的理解queue、exchange等概念&#xff0c;如果你还不是很理解&#xff0c;我建议你先访问官网查看基本的教程。 文章目录1、造成死信队列的主要原因2、操作逻辑图3、代码实战3.1 针对原因1&#xff1…

win10下Vue环境搭建(脚手架初始化+项目启动)教程(详解多图)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、下载安装node.js二、node.js环境配置三、下载安装vue脚手架前言 初学Vue 搭环境快把我整死了QAQ 差点入门即入土 一、下载安装node.js ①下载地址&#x…

bug的创建和等级

1.如何合理的创建一个bug 创建bug的要素 &#xff1a;问题的版本&#xff0c;发现问题的环境&#xff0c;发现问题的步骤&#xff0c;预取结果&#xff0c;实际结果。 eg&#xff1a; 1.问题的版本&#xff1a;谷歌浏览器108版本 2.发现问题的环境&#xff1a;windows11家庭版…