【论文简述】PatchmatchNet: Learned Multi-View Patchmatch Stereo(CVPR 2021)

news2024/11/23 3:36:29

一、论文简述 

1. 第一作者:Fangjinhua Wang

2. 发表年份:2021

3. 发表期刊:CVPR

4. 关键词:MVS、深度学习、Patchmatch、自适应、迭代优化

5. 探索动机:可扩展性、时间、内存占用等效率问题依然没有解决。

While being successful at the benchmark level, most of them do only pay limited attention to scalability, memory and run-time.

6. 工作目标:Patchmatch是一种很好的提高效率的解决方案,是否可以与深度学习方式相结合?

Several traditional MVS methods abandon the idea of holding a structured cost volume completely and instead are based on the seminal Patchmatch algorithm. Patchmatch adopts a randomized, iterative algorithm for approximate nearest neighbor field computation. In particular, the inherent spatial coherence of depth maps is exploited to quickly find a good solution without the need to look through all possibilities. Low memory requirements – independent of the disparity range – and an implicit smoothing effect make this method very attractive for our deep learning based MVS setup.

7. 核心思想:PatchmatchNet是一种基于学习的Patchmatch新的级联方式,目的是降低高分辨率MVS的内存消耗和运行时间。它继承了经典Patchmatch在效率上的优势,同时通过深度学习的优势来提高性能。

  • 将Patchmatch思想引入到基于MVS的端到端可训练的从粗到细的深度学习框架中,以加快计算速度。
  • 用可学习的、自适应的模块来增强Patchmatch的传统传播和代价评估步骤,以提高准确性,该模块建立在深度特征的基础上。此外,提出了一种鲁棒训练策略,将随机性引入到训练中,以提高可见性估计和泛化的鲁棒性。

8. 实验结果:在DTU、Tanks & Temples和ETH3D数据集上,与大多数基于学习的方法相比,PatchmatchNet实现了具有竞争力的性能和广泛性,效率比所有现有最好的模型都要好,比最先进的方法快至少2.5倍,内存使用量少两倍。下图中,误差、GPU内存和运行时长之间的关系,图像大小为1152×864。

9. 论文和代码下载:

https://openaccess.thecvf.com/content/CVPR2021/papers/Wang_PatchmatchNet_Learned_Multi-View_Patchmatch_Stereo_CVPR_2021_paper.pdf

https://openaccess.thecvf.com/content/CVPR2021/papers/Wang_PatchmatchNet_Learned_Multi-View_Patchmatch_Stereo_CVPR_2021_paper.pdf

二、实现过程

1. PatchmatchNet概述

PatchmatchNet的结构,由多尺度特征提取、基于学习的Patchmatch(从粗到细的迭代框架)和空间改进模块组成。Patchmatch用于多个阶段的进行多次迭代,以从粗到细的方式预测深度图。改进模块使用输入来指导最终深度图的上采样。输入图像大小为W×H,在阶段k,深度图的分辨率为W/k2×H/k2。

因为手残,写了一天的帖子没了......csdn的撤回真的很不智能,大家慎用!

这篇写的很好,直接看:MVSNet系列论文详解-PatchmatchNet

总体感受,这篇文章用词高级,逻辑清晰,每个部分开头都会讲清楚设计缘由,值得反复学习。

6. 实验

6.1. 数据集

DTU Dataset、Tanks and Temples Benchmark、ETH3D

The DTU dataset [1] is an indoor multi-view stereo dataset with 124 different scenes where all scenes share the same camera trajectory.

6.2. Robust Training Strategy

第一次见这样的训练方式

Many learning-based methods [7,16,26,36,38,39] select two best source views based on view selection scores [39] to train models on DTU [1]. However, the selected source views have a strong visibility correlation with the reference view, which may affect the training of the pixel-wise view weight network. Instead, we propose a robust training strategy based on PVSNet [37].For each reference view, we randomly choose four from the ten best source views for training. This strategy increases the diversity at training time and augments the dataset on the fly, which improves the generalization performance. In addition, training on those random source views with weak visibility correlation generates further robustness for our visibility estimation.

6.3. 实现

训练:通过PyTorch实现,使用DTU数据集训练。深度图尺寸为160×128。输入视图数N=5,图像大小裁剪到640 × 512,输入图像的总数设置为N = 5。将阶段3,2,1上的Patchmatch迭代次数设置为2,2。批大小为4,并在2个Nvidia GTX 1080Ti gpu上进行训练。深度估计后重建点云,类似于MVSNet的方法。

6.4. 结果

DTU数据集基准:输入原始大小的图像(1600×1200),设置视图数N为5,效果很好。

内存和运行时长比较。使用DTU的数据集,GPU内存、运行时长与输入分辨率的关系。原图像分辨率为1600×1200(100%)。在较高的分辨率下,其他方法无法在Nvidia RTX 2080 GPU评估。

Tanks & Temples输入图像大小为1920×1056,视图数N为7。在计算过程中,深度图的GPU内存和运行时间分别为2887MB和0.505s。通过OpenMVG得到相机参数和稀疏点云。对于更复杂的高级数据集,该方法在所有方法中表现最好。

ETH3D。输入图像大小为2688 × 1792。由于在ETH3D中有很强的视图变化,我们也使用N = 7个视图以利用更多的多视图信息。相机参数和稀疏点云通过COLMAP得到。

ETH3D的场景中像素级视图权重的可视化。源图像和参考图像中用方框标记的区域是共可见的。右边:相应的像素级视图权重,颜色鲜艳(大值)表示共同可见的。像素附近深度不连续处比周围区域略暗。像素级视图权重确实能够确定参考视图和源视图之间的共同可见区域。

6.5. 消融实验

  • Adaptive Propagation (AP) & Adaptive Evaluation(AE)
  • Number of Iterations of Patchmatch
  • Pixel-wise View Weight (VW) & Robust Training Strategy (RT)
  • Number of Views

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

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

相关文章

【电气安全】关于医疗专用隔离电源系统在医院配电系统中的应用

【摘要】 根据医疗场所分类说明医院尤其是 2 类 医疗场所的接地方案,分析医疗场所自动切断电源措 施,提出校验医疗 IT 系统配出回路长度;说明 RCD、RCM、IMD、IFLS 等的用途和范围;就应急医 院 2 类场所的配电方案进行探讨。 【…

JavaScript刷LeetCode拿offer-双指针技巧(上)

一、前言 一般情况下,遍历数组(或者字符串)操作,都是采用单指针从前往后或者从后往前依次访问数组(或者字符串)中的元素。 而对于以下情况,只采用单指针处理,则会徒增时间复杂度和…

统计学习方法 | 概论

一.简介 统计学习是关于计算机基于数据构建概率统计模型并运用模型对数据进行预测与分析的一门学科 1.统计学习方法的步骤 ①得到一个有限的训练数据集合 ②确定学习模型的集合(模型) ③确定模型选择的准则(策略) ④实现求解…

Python的安装与配置(图文教程)

安装Python 想要进行Python开发,首先需要下载和配置Python解释器。 下载Python 访问Python官网: https://www.python.org/点击downloads按钮,在下拉框中选择系统类型(windows/Mac OS/Linux等)选择下载最新版本的Python安装Python 双击下载好的Python…

五款几乎没人知道的小众软件,按需下载

分享是一种神奇的东西,它使快乐增大,它使悲伤减小,坚持分享一些好用的软件给大家。 1.开源分享工具——ShareX ShareX 是一款 Windows 上开源的截图、文件共享和生产力工具,它是一款功能非常强大的分享工具,只要是免…

【算法】可解释机器学习-ZFNet(Datawhale)

可解释机器学习-ZFNetZFNet算法介绍:AlexNet的提出使得大型卷积网络开始变得流行起来,但是人们对于CNN网络究竟为什么能表现这么好,以及怎么样能变得更好尚不清楚。 因此为了解决上述两个问题,ZFNet提出了一种可视化技术&#xff…

如何治理谐波问题?——有源滤波器

安科瑞 华楠 一、谐波的定义 任何一种周期性非正弦波形都可以看成是由若干种频率不同的正弦波合成的,其中频率为工频的波形我们称为基波,大于1 整数倍基波频率的正弦波分量称为谐波。 总谐波畸变由不同频率的分次谐波合成,各次谐波频率与基…

asp写的百度ocr识别文字-通用文字识别(高精度版)源码下载

今天接到一个客户需求,需要用ASP写一个百度OCR文字识别代码,他的程序都是用ASP写的,所以我们也需要用ASP给他实现百度OCR文字识别,我们在百度AI网站上启用了通用文字识别高精度版,利用高精度板来实现它的业务需求。在上…

【C++】泛型编程 _函数模板和类模板的基本使用

1.泛型编程 如何实现一个通用的交换函数?这在C语言中是无法实现的,但是C却可以。 C语言一次只能实现一个类型的交换: void Swap(int& left, int& right) {int temp left;left right;right temp; } void Swap(double& left, …

计算机毕设Python+Vue学生信息管理系统 (程序+LW+部署)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

关于小程序订单中心页设置的公告

为进一步规范小程序交易生态、提升用户购物体验、满足用户在有交易的小程序中便捷查看订单信息的诉求,自2022年12月31日起,对于有“选择商品/服务-下单-支付”功能的小程序,需按照平台制定的规范,在小程序内设置订单中心页。 开发…

创建DataFrame()对象--Pandas

1. DataFrame DateFrame对象是Pandas最常用的数据结构,是由不同类型的列组成的二维数据表结构,类似于EXCEL表,语法格式如下: pandas.DataFrame(dataNone, indexNone, columnsNone, dtypeNone, copyNone)1.1 函数参数:data 参数…

计算机操作系统笔记总结:Part2 进程与线程

文章目录1 进程1.1 进程的概念、组成与特征1.2 进程的状态与转换1.3 进程的组织1.4 进程控制1.5 进程通信2 线程与多线程模型2.1 线程的概念2.2 线程的实现方式2.3 多线程模型2.4 线程的状态与转换3 处理机调度3.1 调度的三个层次3.2 进程的挂起态与七状态模型3.3 进程调度3.3.…

[附源码]Nodejs计算机毕业设计健身房预约平台Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

【浙工商期末报告】研一Python期末作业B题(思路分享+源代码分享+原报告分享)

目录:研一Python期末作业B题(思路分享)一、题目介绍1.1 A题1.2 B题二、B题思路讲解2.1 问题的引入2.2 不平衡数据集2.2.1 不平衡数据的实例2.2.2 不平衡数据集导致的问题2.2.3 不平衡数据集的主要处理方法2.2.4 不平衡(均衡&#…

数据结构实验大作业(将之前预测ACM获奖的模型搬到Vue和django上)

目录 前言 成品展示(UI写的确实有点糊弄,太懒了不想弄了) Vue部分 App.vue(中间感觉还行,不算难看) result组件: 路由: Django部分 view functionset(自己建的&am…

Java岗最全面试攻略,吃透这些技术栈Offer拿到手软

前言 我分享的这份 Java 后端开发面试总结包含了 JavaOOP、Java 集合容器、Java 异常、并发编程、Java 反射、Java 序列化、JVM、Redis、Spring MVC、MyBatis、MySQL 数据库、消息中间件 MQ、Dubbo、Linux、ZooKeeper、 分布式 &数据结构与算法等 25 个专题技术点&#xff…

重学React之高阶函数(Higher Order Function)

高阶函数(Higher Order Function) “把函数传给一个函数,返回另一个函数”,就是高阶函数。 高阶函数是一个常见的函数,它接受其他函数作为参数,然后返回一个函数。听起来很绕,但是这是个很常见的模式,比如有一个ajax函数,可以传一个callback作为处理函数,然后调用的地…

设计模式原则 - 里氏替换原则(四)

一 背景: 里氏替换原则是针对继承的。介绍前先聊聊继承性的特点 继承优势 提高代码的复用性(每个子类有拥有父类的属性和方法)提高代码的可扩展性 继承劣势 继承是侵入性的(只要继承,就必须拥有父类的属性和方法&…

Linux中的Chrony时间同步服务

目录 一、时间同步 1.概念 2.时间同步在运维工作中的作用 3.时间同步完成方法 (1)NTP时间服务(centos 6 ) (2)Chrony时间服务 二、Chrony时间服务 1.Chrony介绍 2.Chrony的优点 三、Chrony安装 …