【论文简述】Attention-Aware Multi-View Stereo(CVPR 2020)

news2024/11/28 0:32:00

 一、论文简述

1. 第一作者:Keyang Luo

2. 发表年份:2020

3. 发表期刊:CVPR

4. 关键词:MVS、代价体、注意力机制、正则化

5. 探索动机:

  1. However, the feature matching results from different channels are usually not of the same importance since the captured scenes could be significantly different across channels.
  2. Another major problem faced by learning-based MVS methods is how to effectively aggregate and regularize the matching confidence volume into a latent depth probability volume (LPV), from which the depth/disparity map then can be inferred via some regression or multi-class classification techniques.
  3. The multi-view ground-truth depth maps introduced in MVSNet for training MVS networks have been widely used, but they still contain quite many wrongly labeled pixels, which could potentially cause some undesired effects on training and validation.

6. 工作目标:结合注意力机制的优势,解决上述问题。

7. 核心思想:

  1. We design an attention-enhanced matching confidence volume, which takes account of both perceptual information and contextual information of the local scene to improve the matching robustness.
  2. We propose a novel attention-guided regularization module for hierarchically aggregating and regularizing the matching confidence volume in the topdown/bottom-up manner.
  3. We develop a simple but effective filtering strategy to improve the quality of multi-view ground-truth depth maps for network training.

8. 实验结果:

Our method achieves the best overall performance on the DTU benchmark and the intermediate sequences of Tanks & Temples benchmark over many state-of-theart MVS approaches.

9.论文下载:

https://openaccess.thecvf.com/content_CVPR_2020/papers/Luo_Attention-Aware_Multi-View_Stereo_CVPR_2020_paper.pdf

二、实现过程

1. AttMVS结构

  1. 首先使用编码器网络从输入图像中提取感知特征;
  2. 使用特征构建注意力增强匹配置信体实现鲁棒和准确匹配;
  3. 通过注意力引导的分层正则化模块RFMs)对匹配置信度进行分层聚合和正则化
  4. 使用3D卷积从正则化置信体估计深度图;
  5. 表示信道相乘,表示单应性变化和原始像素置信度匹配,R’iRi分别为第i级上的非正则化和正则化匹配置信体。

2. 特征提取器

使用修改后的P-mvsnet的特征提取器提取参考图像I0和N张大小为H × W的源图像的感知特征,用于学习多视图光度一致性。特征提取网络必须具有足够的容量,对于获得精确和鲁棒的特征表示进行像素级匹配至关重要,因此增加了通道数和层数(10)。输出维度[1/4H, 1/4W, 16],使用Instance Normalization, LeakyReLU。

3. 注意力增强匹配置信度

目前基于学习的MVS方法中,仅使用像素的局部感知特征构建匹配置信体。因此,整体场景的上下文信息往往被忽略。而本文将光度一致性信息与来自参考图像和相应源图像特征图的上下文线索结合起来,构建了一个注意力增强匹配置信体。

通过全局average pooling把每个特征体压缩到单通道vi​(individual channel,个人是这么理解的)

首先,通过全局平均池化将所有提取的图像特征映射压缩为各自的通道描述符{vi}N中,接着计算局部场景的上下文通道统计Wv,如下所示:

其中v是{vi}N的通道平均值。接下来Wv通过squeeze-and-excitation块计算注意力通道加权向量Wv为:

其中f1(··)f2(··)是两个线性变换,s1s2表示对应的变换参数。最后,得到第j个采样假设深度平面上的注意力增强匹配置信度图M*j为:

对于j = 0,1····,Z-1,其中Z是采样假设深度平面的总数,表示通道乘法,Mj表示基于单应性变化的特征图的中生成的原始像素置信度图。图中学习权重的例子可以看出:i)不同的场景在一些通道拥有不同的权重,而在另一些通道拥有相似的权重;(2)对于每个场景,不同的通道拥有不同的权重。

计算完所有的注意力增强匹配置信度图后,沿着深度方向堆叠,产生注意力增强匹配置信体M*,送入正则化模块。

特征图的维度16,核心要做的事情是给特征图16维度增加不同的权重,体现了每个维度不一样的重要性,因为代码没有开源,讲的不太清晰。

4. 注意力引导的层次正则化

首先,M*通过两个步幅分别为12的卷积块被编码为两个非正则匹配的置信体R'0和R'1,接着下采样生成R'2和R'3,因此得到四层非正则匹配置信体{R'i}

接下来,使用简单的RFM处理3级的R'3,多射线融合模块RFMs用于0级、1级和2级。其结构如下,由前上下文理解模块、射线注意力模块(RAM)和后上下文理解模块组成。

两个上下文理解模块都由三个3D卷积块组成,其中前上下文模块中的第二个块对匹配置信体进行下采样并增加通道,后上下文模块中的第二个块进行反向操作。 l -1层(l=1,2,3)的RAM可以表述为:

其中,Re l-1是由R'l-1提供的前上下文理解模块的输出,Rllevel l上正则化的匹配置信体,表示逐元素相加,射线加权图wr*由wr =|Re-1-R|用与式(2)相同。然后,通过后上下文理解模块对R*l-1进行进一步处理,得到正则化匹配置信度Rl-1。

简单RFM是通过从RFM中删除RAM和上采样和下采样操作来创建的,但保持从第二层到第五层的c残差连接。注意,它只在第3级用于正则化R′3为R3,可以避免训练样本和评价样本的过度裁剪。

5. 深度回归和损失函数

得到正则化的R0后,首先应用三维卷积层将其编码为深度概率体V。然后使用[深度回归方法来推断深度图。每个采样深度d的概率由V通过Softmax运算σ(·)计算。每个标签的像素的预测深度d的计算为:

其中DminDmax分别表示估计的最小深度和最大深度。结合相对深度损失Ldepth和梯度间正则化损失Lgrad来共同优化:

其中λ > 0为加权系数。相对深度损失函数定义为

其中Nd表示真实像素的总数(i, j)δ = (Dmax-Dmin)/(Z-1)是假设深度平面之间采样间隔的长度,d是真实深度。为了保证预测深度图与真实深度图之间深度梯度的一致性,定义梯度间正则化损失为:

其中Nx表示真实像素的数量,这些像素在x方向上的相邻像素也被标记,ϕx为对应的在x方向上的深度导数,Nyϕy表示在y方向上类似的信息。

6. 点云重建

在获得所有深度图后,使用深度图滤波和融合方法来重建完整的三维点云。另一方面,对于深度范围较大的高分辨率场景,由于GPU内存的限制,可能无法采样足够多的假设平面,以获得令人满意的精度来估计深度图。为缓解这个问题,建议通过最大化像素级视图选择的多视图光度一致性来进一步改进生成的深度图。

7. 实验

7.1. 实现

论文对DTU数据集生成的深度图进行了改进。

先计算单应性变化。We also notice that all scanned scenes share the same set of camera parameters and the adjacent relationships between the cameras are also fixed. Therefore, we pre-calculate all possible homography transformations in advance and directly use them during training of the network, which reduces the training time of each minibatch from around 1.8s to 1.2s (saves about one-third of the training time).

7.2. 基准结果及泛化性

Tanks & Temples数据集重叠度很大,点云融合时采用了更严格的阈值,抑制异常值。在advanced中的效果没有intermediate好,是由于深度范围特别大,这也是深度方法普遍的限制。

The performance of our method on the advanced sequences is still competitive but is worse than that on the intermediate sequences when compared with some conventional MVS methods. We think the main reason is that for great majority part of images in the advanced sequences, the interested depth ranges are very large, but due to the GPU memory limitation, our method could not sample sufficient hypothesized depth planes to assure the
quality of predicted depth maps even though the depth map refinement has been used. Thus, our method suits better to reconstruct the scenes with the interested depth range of the captured images being concentrated, which is also the common restriction of current learning-based MVS algorithms.
 

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

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

相关文章

仿写Dubbo-MyRpc

基础 在仿写Dubbo之前,需要了解一些技术,像Java反射,Java代理,Java Socket以及Dubbo相关概念。 项目结构 项目gitee地址:https://gitee.com/AGi_R/framework my-common 整个项目的公共资源库。存放一些公共的注解&…

拦截器、过滤器、监听器

目录一、拦截器1. 拦截器是什么?2. 设置拦截器a. 定义拦截器b. 配置加载拦截器c. 新建页面二、过滤器1. 使用原因2. Filter概念图3. Filter编程三、监听器一、拦截器 拦截器:必须保证页面有访问controller的操作,否则拦截不了 1. 拦截器是什么? 概念…

OpenWrt软路由空间扩容

文章目录预备知识OpenWrt系统固件分类EXT4固件扩容方式新建分区扩容操作步骤直接扩容操作步骤SQUASHFS固件扩容方式新建分区扩容直接扩容EFI引导固件的额外操作参考预备知识 OpenWrt系统固件分类 EXT4固件 固件包名称中包含有ext4关键字,可以参考固件分类关键字示意…

设计模式 - 创建型模式_建造者模式

文章目录创建型模式概述Case模拟工程Bad ImplBetter Impl (建造者模式重构代码)小结创建型模式 创建型模式提供创建对象的机制, 能够提升已有代码的灵活性和可复⽤性。 类型实现要点工厂方法定义⼀个创建对象的接⼝,让其⼦类⾃⼰…

编写用户注册用表单

<!-- 需求&#xff1a; 用户注册&#xff1a;用户名、密码、确认密码、性别、兴趣爱好、学历、简介 --> <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>编写用户注册用表单<…

【Linux】Linux和Window下\r与\n的区别、git命令行的使用

作者&#xff1a;小卢 专栏&#xff1a;《Linux》、《Git》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 目录 1. 回车换行符在Window下和在Linux下的区别&#xff1a; 1.1回车换行符&#xff1a;…

用友U8和旺店通企业版淘宝奇门单据接口集成

用友U8和旺店通企业奇门单据接口集成对接系统&#xff1a;旺店通企业奇门慧策最先以旺店通ERP切入商家核心管理痛点——订单管理&#xff0c;之后围绕电商经营管理中的核心管理诉求&#xff0c;先后布局流量获取、会员管理、仓库管理等其他重要经营模块。慧策的产品线从旺店通E…

实现宏offsetof()

本期介绍&#x1f356; 主要介绍&#xff1a;什么是offsetof()&#xff0c;offsetof()的用法&#xff0c;如何自己实现这个宏&#x1f440;。 offsetof其实是一个宏&#xff0c;作用是&#xff1a;能够求出指定成员相对于结构体起始地址的偏移量&#xff08;单位&#xff1a;字…

(考研湖科大教书匠计算机网络)第三章数据链路层-第一节:数据链路层概述

文章目录一&#xff1a;数据链路层概述&#xff08;1&#xff09;为什么要有数据链路层&#xff08;2&#xff09;数据链路层定义&#xff08;3&#xff09;点对点信道和广播信道二&#xff1a;数据链路层需要解决的一些问题&#xff08;1&#xff09;三个最基本问题①&#xf…

深入理解Promise之一步步教你手写Promise构造函数

目录前言一&#xff0c;手写教学1.1 基本结构1.2 resolve与reject结构搭建1.3 resolve与reject代码实现1.4 throw抛出异常改变状态1.5 promise对象状态只能转换一次1.6 then方法进行回调1.7 异步任务的回调执行1.8 执行多个回调的实现1.9 同步修改状态then方法结果返回1.10 异步…

【手写 Promise 源码】第四篇 - 翻译并理解 Promise A+ 规范

一&#xff0c;前言 上一篇&#xff0c;根据对 Promise 的分析和了解&#xff0c;实现了一个简版 Promise&#xff0c;主要涉及以下内容&#xff1a; Promise 的实现思路&#xff1b;Promise A 规范&#xff08;简版&#xff09;&#xff1b;Promise 简版实现和功能测试&…

KVM虚拟化之小型虚拟机kvmtool的使用记录

根据 kvmtool github仓库文档的描述&#xff0c;类似于QEMU&#xff0c;kvmtool是一个承载KVM Guest OS的 host os用户态虚拟机&#xff0c;作为一个纯的完全虚拟化的工具&#xff0c;它不需要修改guest os即可运行, 不过&#xff0c;由于KVM基于CPU的硬件虚拟化支持&#xff0…

读《哲学的故事》

文章目录读《哲学的故事》&#x1f6a9; 遇见&#x1f33b; 简述&#x1f33e; 部分摘抄读《哲学的故事》 一本书读过后&#xff0c;我有种脑子里又被塞进了很多新东西的感觉&#xff0c;也有种想要自我抒发、宣泄的欲望。可真到要说的时候&#xff0c;又好像无话可说。总归勉…

Java转换流(InputStreamReader/OutputStreamWriter)

文章目录概述为什么会有转换流&#xff1f;InputStreamReaderOutputStreamWriter概述 转换流是字节流到字符流的桥梁&#xff0c;在转换的过程中&#xff0c;可以指定编码。转换流也是一种处理流&#xff0c;它提供了字节流和字符流之间的转换。 转换流的两个类 InputStreamR…

1.设计模式的前奏

哪些维度评判代码质量的好坏&#xff1f; 常用的评价标准 可维护性&#xff08;maintainability&#xff09;:维护代码的成本可读性&#xff08;readability&#xff09;可扩展性&#xff08;extensibility&#xff09;&#xff1a;码应对未来需求变化的能力灵活性&#xff0…

【keepass】密码管理软件-推荐插件和相关工具合集-keepass工作流分析(自动填充、美化界面、快速添加记录、安全增强、软件和数据库维护类)

Keepass有很多已经开源的插件&#xff0c;生态良好&#xff0c;在官网有专门的插件推荐区。安装插件的方法很简单&#xff0c;直接把下载好的插件文件放在plugins文件夹内&#xff0c;重启软件即可。下面我以几大功能推荐一些keepass插件或搭配使用的浏览器扩展&#xff0c;以求…

Coolify系列-手把手教学解决局域网局域网中的其他主机访问虚拟机以及docker服务

背景 我在windows电脑安装了一个VM&#xff0c;使用VM开启了Linux服务器&#xff0c;运行docker&#xff0c;下载服务镜像&#xff0c;然后运行服务,然后遇到了主机无法访问服务的问题。 问题排查 STEP1:首先要开启防火墙端口&#xff0c;这个我的Coolify系列其他文章有详细…

【c++】设置控制台窗口字体颜色和背景色(system和SetConsoleTextAttribute函数 )(内含超好玩的c++游戏链接)

目录 游戏推荐 研究初步 SetConsoleTextAttribute函数 原型 参数 举个栗子 最后 题外话 一篇游戏笔记。。。 游戏推荐 最近&#xff0c;在玩&#xff08;完&#xff09;一个c的控制台游戏。 啊&#xff0c;真的非常好玩。虽然是一个文字游戏&#xff0c;但有很多隐…

分享137个ASP源码,总有一款适合您

ASP源码 分享137个ASP源码&#xff0c;总有一款适合您 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&#xff0c; 137个ASP源码下载链接&#xff1a;https://pan.baidu.com/s/13nF0yADJhSBonIFUIoymPQ?pwdmsl8 提取码&#x…

【C++】位图、布隆过滤器概念与模拟实现

目录 一、位图 1.1 位图的概念 1.2 位图的使用 1.3 位图的实现 1.4 位图的应用 二、布隆过滤器 2.1 布隆过滤器 2.2 布隆过滤器的实现 2.3 布隆过滤器练习题 一、位图 1.1 位图的概念 所谓位图&#xff0c;就是用每一位来存放某种状态&#xff0c;适用于海量数据&am…