当前位置: 首页 > news >正文

【论文简述】PVSNet: Pixelwise Visibility-Aware Multi-ViewStereo Network(arxiv 2020)

一、论文简述

1. 第一作者:Qingshan Xu

2. 发表年份:2020

3. 发表期刊:arxiv

4. 关键词:MVS、3D重建、可见性、代价体、训练策略

5. 探索动机:ETH3D基准测试提供的图像包含强烈的视图变化,这就要求MVS方法考虑不同相邻图像的像素可见性信息。现有的基于学习的方法是针对连续视图变化的视频序列定制的。由于他们假设存在与参考图像具有较强可见性关联的相邻图像,通常从全局视图选择的角度选择这些图像作为输入,并对这些图像一视同仁,构建不加区分的多视图聚合代价体。因此,可见性估计在这些网络中被完全忽略。但是,同等对待每个相邻图像会使代价体容易受到不相关的相邻图像噪声的影响。

  1. Unlike the Tanks and Temples dataset, the images provided by ETH3D high-res benchmark contain strong variations in viewpoint, resulting in complicated visibility association. This requires MVS methods to consider the pixelwise visibility information of different neighboring images.
  2. The existing learning-based methods are tailored for video sequences with continuous viewpoint changes. Since they assume that there exist neighboring images that have strong visibility association with the reference image, they usually select these images as input from the perspective of global view selection and treat these images equally to construct an indiscriminate multi-view aggregated cost volume. Therefore, visibility estimation is totally ignored in these networks. However, treating each neighboring image equally will make the cost volume susceptible to the noise from unrelated neighboring images. This greatly limits the performance of learning-based methods on datasets like ETH3D high-res benchmark with strong variations in viewpoint.

6. 工作目标:学习深度网络中相邻图像的像素可见性信息是一个迫切需要解决的问题。

In real-world scenarios, especially in large-scale 3D reconstruction, the viewpoint of input images usually changes greatly. Therefore, to make learning-based methods truly feasible in practice, it is an urgent problem to learn the pixelwise visibility information of neighboring images in deep networks.

7. 核心思想:

  1. We propose Pixelwise Visibility-aware multiview Stereo Network (PVSNet) for robust multi view depth estimation. To the best of our knowledge, PVSNet is the first deep learning framework that is able to capture the visibility information of neighboring images and can be truly applied to datasets with strong viewpoint changes.
  2. We propose a way to regress 2D visibility maps from two-view cost volumes. The visibility maps can reflect the influence of occlusion, illumination, and unstructured viewing geometry. This allows good views to occupy more weights in the final cost volume representation.
  3. We present a new training strategy that introduces disturbing views to improve the robustness of our pixelwise visibility network.

8. 实验结果:

  1. the visibility estimation, which is validated in our subsequent experiments, is not only necessary for the datasets with strong viewpoint changes like the ETH3D high-res benchmark, but also crucial for the datasets with video sequences as input like the Tanks and Temples dataset.
  2. Extensive experiments have been conducted to elaborate on the superiority of our proposed pixelwise visibility-aware multi-view similarity measure. We demonstrate our novel PVSNet achieves state-of-the-art performance on various datasets.

9.论文下载:

https://arxiv.org/pdf/2007.07714.pdf

二、实现过程

1. PVSNet概述

PVSNet的总体结构如下图所示。给定参考图像Iref,源图像Isrc,首先对所有输入图像使用共享的特征提取模块提取多尺度图像特征。然后通过单应性变化经构造每个源图像与参考图像之间的两视图代价体。与大多数现有方法直接对多个双视图代价体进行均值运算或方差计算相比,该方法的关键新颖之处在于在计算聚合的代价体之前估计不同源图像的像素可见性信息(中红框)。基于可见性信息,将两个视图的代价体聚合为一个加权的代价体。最后,通过代价体滤波和深度推理来预测参考图像的深度图。

2. 多尺度特征提取

使用一个八层二D CNN将原始图像大小(3×H×W)降采样到F×H/4×W/4,F=32为特征通道数。

3. 像素可见性代价体构建

首先在每个源图像和参考图像之间构造两视图代价体。根据每个代价体回归每个源图像的可见性图。通过这些可见性图,多个双视图代价体被进一步聚合为统一的代价体。

两视图代价体构建基于多个采样深度假设,将每个源图像提取的深度特征变化为参考图像的相机坐标,通过组相关[27]计算出变化后的源图像特征与参考图像特征之间的多通道相似性图。构建两视图代价体。然后根据D个采样深度假设,计算D个相似图。将这些相似图进行打包,构造大小为G×H/4×W/4×D的两视图代价体,其中G=8为通道数。

像素可见性代价体聚合。在获得两视图代价体后,利用它来回归源图像的可见性图,因为两视图代价体编码了不同采样深度的置信度由于两视图代价体的分布通常不具有区别性,因此首先应用3D U-Net来调制,其中U-Net使用三尺度编码器-解码器结构来增加感受野。除了最后一个卷积层产生一个通道特征,然后是sigmoid激活函数,其他卷积层后面是BN层和一ReLU。源图像的可见性图Vi定义为:

P(j,p)为像素P在第j个采样深度值处的概率估计。为了进一步消除不相关源图像的影响,去除可见概率低于一定阈值的图像。然后,将每个源图像的可见性图修改为:

其中τ=0.05是控制源图像激活的阈值。上面的方程类似于ReLU,整个网络可以通过反向传播进行端到端训练。最终聚合的代价体由:

4. 代价体滤波和深度推理

为了进一步聚合空间域和深度域的上下文,应用具有堆叠正则化模块的3D CNN,用于过滤聚合代价体。过滤模块由一个3D ResNet和两个3D U-Net组成。为了适应大规模场景重建,实现亚像素深度估计,采用逆深度回归得到深度预测:

P(j,p)为沿深度方向经softmax操作归一化后的概率体。对于三个正则化模块,网络产生三个深度预测,Dpred0, Dpred1Dpred2。采用L1损失函数来训练我们的网络。低分辨率预测的损失函数定义为:

5. 高分辨率估计的延伸

利用低分辨率可见性估计来帮助薄代价体的构建。具体而言,在获得某一阶段的预测序数和概率体后,采用中基于方差的不确定性估计来计算下一阶段的深度采样范围。前一阶段的可见性图直接上采样到当前阶段,以计算可见性敏感的薄代价体。然后利用简单的3D U-Net得到概率体,利用逆深度回归来推断深度图。重复同样的过程,直到深度图达到原始图像分辨率。高分辨率预测的训练损失定义为:

Dpred3和Dpred4是第二阶段和第三阶段的预测深度图。

6. 抗噪声训练策略

之前所有基于学习的方法[遵循MVSNet,通过全局视图来选择最好的两个相邻视图进行模型训练。然而,这两个选择的视图有如此强的可见性关联,只有少量可见性信息负样本参与模型训练的参考图像。正负之间的极端不平衡阻止了该方法充分利用像素可见性网络的潜力。为了缓解这一问题,提出引入干扰视图的抗噪声训练策略(AN)。具体来说,采用MVSNet中的方法来计算全局视图选择得分。然后,选择最好的两个视图和最差的两个视图来训练我们的模型。这种训练策略引入了更多的负样本,使我们的网络对不相关的视图更加鲁棒。

7. 实验

7.1. 数据集和评估指标

DTU dataset, Tanks and Temples dataset,ETH3D high-res benchmark is a dataset with strong viewpoint variations.

7.2. 实现细节

全局视图选择包括20个相邻视图。网络是使用PyTorch实现的。使用RMSprop优化器在两个NVIDIA GTX 1080Ti GPU上训练网络。初始学习率设置为0:001。

7.3. 与先进技术的比较

相关文章:

【论文简述】PVSNet: Pixelwise Visibility-Aware Multi-ViewStereo Network(arxiv 2020)

一、论文简述 1. 第一作者:Qingshan Xu 2. 发表年份:2020 3. 发表期刊:arxiv 4. 关键词:MVS、3D重建、可见性、代价体、训练策略 5. 探索动机:ETH3D基准测试提供的图像包含强烈的视图变化,这就要求MVS…...

CSS隐藏元素的几种方式以及display、visibility、opacity的区别

CSS隐藏元素的方式首先最通用且最易想到的方法肯定是display、visibility和opacity这三种了display:none设置元素不可见并且连盒模型也不生成,一般用于不占空间的隐藏元素。display属性规定元素应该生成的框的类型,当其值为“none”时可以规定元素不生成…...

【Java|golang】1487. 保证文件名唯一---golang中string方法的坑

给你一个长度为 n 的字符串数组 names 。你将会在文件系统中创建 n 个文件夹:在第 i 分钟,新建名为 names[i] 的文件夹。 由于两个文件 不能 共享相同的文件名,因此如果新建文件夹使用的文件名已经被占用,系统会以 (k) 的形式为新…...

flstudio21水果language选项中文设置方法教程

编曲是通过DAW(数字音频工作站软件)完成的,也就是我们常说的宿主软件。现在有很多优秀的宿主软件,例如Cubase、Studio One、FL Studio等。 FL Studio是一款功能强大的音乐制作软件,也被称为FruityLoops。目前已经推出…...

Ubuntu中安装StaMPS

Ubuntu中安装StaMPS0 StaMPS简介1 首先安装好MATLAB,安装一些依赖工具包2 安装StaMPS2.1 下载StaMPS安装包2.2 安装2.3 配置环境2.4 matlab中的路径设置0 StaMPS简介 官网:https://homepages.see.leeds.ac.uk/~earahoo/stamps/ A software package to e…...

Spring Security 实现自定义登录和认证(1)

1 SpringSecurity 1.1 导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId> </dependency>1.2 编写配置类 在spring最新版中禁用了WebSecurityConfigurerAdapter…...

Linux 进程:辨析wait与waitpid

目录一、wait二、waitpid(1)参数&#xff1a;pid(2)参数&#xff1a;status(3)参数&#xff1a;options(4)返回值wait 与 waitpid 这两个函数的作用是&#xff1a;等待子进程退出&#xff0c;在子进程退出后释放子进程资源&#xff0c;防止子进程变成僵尸进程。但准确的说&…...

移除元素(每日一题)

目录 一、题目描述 二、题目分析 2.1 方法一 2.1.1 思路 2.1.2 代码 2.2 方法二 2.2.1 思路 2.2.2 代码 一、题目描述 题目链接&#xff1a;27. 移除元素 - 力扣&#xff08;LeetCode&#xff09; 给你一个数组 nums 和一个值 val&#xff0c;你需要 原地 移除所有数…...

打印名片-课后程序(Python程序开发案例教程-黑马程序员编著-第一章-课后作业)

实例2&#xff1a;打印名片 名片是标示姓名及其所属组织、公司单位和联系方法的纸片&#xff0c;也是新朋友互相认识、自我介绍的快速有效的方法。本实例要求编写程序&#xff0c;模拟输出效果如图1所示的名片。 图1 名片样式 实例目标 掌握print()函数的用法 实例分析 名片…...

为啥预编译SQL能够防止SQL注入

前言之前我一个搞网络安全的朋友问了我一个的问题&#xff0c;为啥用 PreparedStatement 预编译的 SQL 就不会有被 SQL 注入的风险&#xff1f;第一时间我联想到的是八股文中关于 Mybatis 的脚本 ${} 和 #{} 的问题&#xff0c;不过再想想&#xff0c;为啥 ${} 会有 SQL 注入的…...

IGKBoard(imx6ull)-SPI接口编程-回环测试

文章目录1- 使能imx6ull开发板SPI驱动2- 回环测试imx6ull开发板物理连接3- 编程SPI回环测试4- 代码重难点分析&#xff08;1&#xff09;spi_device结构体&#xff08;2&#xff09;spi_ioc_transfer结构体&#xff08;3&#xff09;ioctl函数对于SIP不了解的可以参考这篇文章&…...

Python基础学习10——类

基本概念 面向对象编程是最有效的软件编写方法之一。理解面向对象编程可以让你像程序员那样从一个更加宏观的角度去理解代码&#xff0c;并大大提高程序员之间的合作效率。面向对象编程的两个核心概念是对象和类 **对象&#xff1a;**对象是能帮助我们解决问题的具体东西。比如…...

项目实战典型案例14——代码结构混乱 逻辑边界不清晰 页面美观设计不足

代码结构混乱 逻辑边界不清晰 页面美观设计不足一&#xff1a;背景介绍问题1 代码可读性差&#xff0c;代码结构混乱问题2 逻辑边界不清晰&#xff0c;封装意识缺乏示例3.展示效果上的美观设计二&#xff1a;思路&方案问题一&#xff0c;代码可读性差&#xff0c;代码结构混…...

SpringBoot 读取自定义Properties参数

目录 1. 概述 2. 实现方式 2.1 Value方式 2.2 PropertySource与ConfigurationProperties相结合 3. 结束 1. 概述 最近想尝试写一个定时任务管理&#xff0c;相关参数不想在Spring的配置文件Application.yml或者Application.properties获取。想自己新建一个properties文件。顺…...

机器学习100天(三十七):037 朴素贝叶斯-挑个好西瓜!

《机器学习100天》完整目录:目录 机器学习100天,今天讲的是:朴素贝叶斯-挑个好西瓜! 红色石头已经了解了贝叶斯定理和朴素贝叶斯法,接下来已经可以很自信地去买瓜了。买瓜之前,还有一件事情要做,就是搜集样本数据。红色石头通过网上资料和查阅,获得了一组包含 10 组样…...

c#遍历窗口,根据标题获取handle并显示窗口

using System.Runtime.InteropServices;using System.Text;//1&#xff0c;定义//[DllImport("User32.dll", EntryPoint "FindWindow")]//public extern static IntPtr FindWindow(string lpClassName, string lpWindowName);[DllImport("user32.dll…...

MyBatis高频面试专题

一、介绍下MyBatis中的工作原理 1。介绍MyBatis的基本情况&#xff1a;ORM 2。原理&#xff1a; MyBatis框架的初始化操作处理SQL请求的流程 1.系统启动的时候会加载解析全局配置文件和对应映射文件。加载解析的相关信息存储在 Configuration 对象 Testpublic void test1(…...

曹云金郭德纲关系迎曙光,新剧《猎黑行动》被德云社弟子齐点赞

话说天下大势&#xff0c;分久必合&#xff0c;合久必分。这句话经过了历史的证明&#xff0c;如今依然感觉非常实用。 就拿郭德纲和曹云金来说&#xff0c;曾经后者是前者的得门生&#xff0c;两个人不但情同父子&#xff0c;曹云金还是郭德纲默认接班人。然而随着时间的流逝&…...

如何在 OpenEuler 系统中安装 Docker

Docker 是一种流行的开源容器化平台&#xff0c;它能够将应用程序与其依赖项打包成可移植的容器&#xff0c;从而简化了应用程序的部署和管理。本文将介绍在 OpenEuler 系统中安装 Docker 并使用 Docker 容器控制 5G 模块的具体步骤。 安装 Docker 安装 Docker 的具体步骤如下…...

MySQL日志管理

日志管理在数据库保存数据时&#xff0c;有时候不可避免会出现数据丢失或者被破坏&#xff0c;这种时候&#xff0c;我们必须保证数据的安全性和完整性&#xff0c;就需要使用日志来查看或者恢复数据了数据库中数据丢失或被破坏可能原因&#xff1a;误删除数据库数据库工作时&a…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

Python如何给视频添加音频和字幕

在Python中&#xff0c;给视频添加音频和字幕可以使用电影文件处理库MoviePy和字幕处理库Subtitles。下面将详细介绍如何使用这些库来实现视频的音频和字幕添加&#xff0c;包括必要的代码示例和详细解释。 环境准备 在开始之前&#xff0c;需要安装以下Python库&#xff1a;…...

基于matlab策略迭代和值迭代法的动态规划

经典的基于策略迭代和值迭代法的动态规划matlab代码&#xff0c;实现机器人的最优运输 Dynamic-Programming-master/Environment.pdf , 104724 Dynamic-Programming-master/README.md , 506 Dynamic-Programming-master/generalizedPolicyIteration.m , 1970 Dynamic-Programm…...

Java编程之桥接模式

定义 桥接模式&#xff08;Bridge Pattern&#xff09;属于结构型设计模式&#xff0c;它的核心意图是将抽象部分与实现部分分离&#xff0c;使它们可以独立地变化。这种模式通过组合关系来替代继承关系&#xff0c;从而降低了抽象和实现这两个可变维度之间的耦合度。 用例子…...

鸿蒙(HarmonyOS5)实现跳一跳小游戏

下面我将介绍如何使用鸿蒙的ArkUI框架&#xff0c;实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...

Matlab实现任意伪彩色图像可视化显示

Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中&#xff0c;如何展示好看的实验结果图像非常重要&#xff01;&#xff01;&#xff01; 1、灰度原始图像 灰度图像每个像素点只有一个数值&#xff0c;代表该点的​​亮度&#xff08;或…...

密码学基础——SM4算法

博客主页&#xff1a;christine-rr-CSDN博客 ​​​​专栏主页&#xff1a;密码学 &#x1f4cc; 【今日更新】&#x1f4cc; 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 ​编辑…...

高分辨率图像合成归一化流扩展

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 1 摘要 我们提出了STARFlow&#xff0c;一种基于归一化流的可扩展生成模型&#xff0c;它在高分辨率图像合成方面取得了强大的性能。STARFlow的主要构建块是Transformer自回归流&#xff08;TARFlow&am…...

从零手写Java版本的LSM Tree (一):LSM Tree 概述

&#x1f525; 推荐一个高质量的Java LSM Tree开源项目&#xff01; https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree&#xff0c;专为高并发写入场景设计。 核心亮点&#xff1a; ⚡ 极致性能&#xff1a;写入速度超…...

高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。

2024 年&#xff0c;高端封装市场规模为 80 亿美元&#xff0c;预计到 2030 年将超过 280 亿美元&#xff0c;2024-2030 年复合年增长率为 23%。 细分到各个终端市场&#xff0c;最大的高端性能封装市场是“电信和基础设施”&#xff0c;2024 年该市场创造了超过 67% 的收入。…...