【论文简述】Long-range Attention Network for Multi-View Stereo(WACV 2021)

news2024/11/26 23:40:50

 一、论文简述

1. 第一作者:Xudong Zhang

2. 发表年份:2021

3. 发表期刊:WACV

4. 关键词:MVS、注意力、级联、监督回归

5. 探索动机:先前的方法忽略了像素之间的依赖关系,并且期望回归的方式效率不高。

  • However, this pixel-wise operation ignores the interdependence among pixels, since its calculation of matching degree for each pixel pair is produced independently from the other pixel pairs. As a result, the constructed cost volume computed from image features could be noise-contaminated and inconsistent, which is often not conducive to the dense matching on occluded or texture-less regions.
  • previous methods predict depth maps from the expectation of probability volume distributions which express the possibility of different depth hypotheses. However, existing volume learning methods are driven by the depth regression, which are implicit and not very efficient, considering that different probability distributions might share the same expectation. Also, the optimal distribution should be a Gaussian distribution, which has the highest probability at the true depth. As illustrated in Fig. 1, for those falsely matched pixels, their probability distributions are far from optimal, since they might be not effectively supervised by the intermediate layer. Therefore, it becomes essential to explicitly supervise the probability volume distribution.

6. 工作目标:解决上述问题

7. 核心思想:注意力机制,ASPP正则化,高斯中间监督

  • We introduce a long-range attention network for MVS to selectively aggregate reference features to each position to capture the interdependence among pixels. Our method instinctively facilitates propagating more guiding information to measure the similarity between reference and other source images.
  • We introduce a new loss to supervise the distribution of probability volumes reasonably centered at the true depth, which can enhance robustness of the network to reconstruct new objects.

8. 实验结果:SOTA

We achieve the best overall performance on the DTU and Tanks & Temples benchmarks, largely surpassing the state-of-the-art methods by up to 3.7% for the overall scores.

 9.论文下载:

https://openaccess.thecvf.com/content/WACV2021/papers/Zhang_Long-Range_Attention_Network_for_Multi-View_Stereo_WACV_2021_paper.pdf

二、实现方法

1. LANet概述

LANet采用从粗到细的结构,逐步预测更精细的深度图。假设有一个参考图像I1和N−1个源图像{In}。

  1. 利用特征金字塔网络(FPN)提取3个分辨率的多尺度深度图像特征{fln};
  2. 将每对深度特征{fln}输入到所提出的远程注意模块(LAM)中,得到注意力金字塔特征;
  3. 基于前一阶段预测的自适应深度假设,构建3D代价体;
  4. 利用3D卷积网络和ASPP对代价体进行正则化,预测深度概率分布,回归得到深度图;
  5. 此外,还利用一种新的概率体损失作为中间监督,将中间概率体约束为高斯分布,并结合深度回归损失来监督网络训练;

​2. 长距离的注意力

注意力金字塔特征提取器如下。首先利用特征金字塔网络(FPN)来提取多尺度特征,然后将它们输入到长距离注意力模块(LAM)中。LAM主要分为两个步骤。第一步通过基于注意力的二阶池化将参考f1的关键特征收集到全局描述符Gl,将整个特征空间嵌入到一个信息紧凑包中。第二步通过自适应选择这些具有信息的参考描述符Gl到输入特征的每个位置{fn} 来聚合相互依赖性,得到注意力输出{Zn}

参考全局描述符。给定参考特征f1C×H×W,首先利用不同的卷积层将其分别嵌入到两个新的特征映射A, B∈C×H×W。然后重塑为C×(HW),其中HW是像素的数量。为了便于解释,重写A = [a1,…,ahw]和B= [b1,,bc],其中aic维的列向量,bjhw维的列向量。全局描述符G = [g1,,gc]∈C×C可以通过基于注意力的二阶池化将整个特征空间嵌入到一个紧凑包中来计算,通过加权bj合并局部特征{ai}hw得到基元gj是:

 其中应用softmax函数将bj归一化为单位和的函数,接着进行二阶注意力池化过程,bj,i表示bj的第i个元素。这一步提供了一种获得参考信息特征的有效方法。例如,如果所有位置都密集的注意到bj,可以获得纹理和光照特征。相反,如果bj在特定区域上稀疏的注意到,我们可以获得语义特征,例如一个物体。

依赖聚合。聚合具有丰富信息的参考描述符和所有输入特征{fn}N N =1的每个位置之间的相互依赖关系。为了方便起见,我们详细描述了一个输入特征f的依赖聚合过程,这样的操作可以是并行应用于其他输入特征。首先应用卷积层将输入特征f嵌入到新特征映射VC×H×W中。重写V = [v1 vhw],其中vi表示局部输入特征的c维列向量。在需要局部特征vi的条件下,自适应地选择输入f的每个位置i的具有丰富信息的参考描述符{gj}c来聚合相互依赖性,得到注意力输出,表示为[z1, zhw]C×(HW)。对于每个位置i,zi可以计算为:

 其中vi,j表示vi的第j个元素,通过softmax进行归一化得到vi,j。结果表明,这种软注意力操作具有较好的收敛性。

注意力金字塔特征。为了回归有细密纹理的深度图,采用了一个类似金字塔的结构来捕获不同尺度上的多层次相互依赖关系,以逐步构建更高分辨率的代价体。应用于不同层次的LAM模块会生成多个包含不同相互依赖程度的注意力特征{Zl}3,高层级信息有助于重建反射或遮挡区域,低层级信息有助于精确定位像素。

3. 深度预测

获得注意力的特征后,如MVSNet一样构建3D代价体。与U-Net相比,用ASPP模块取代了编码器架构的最后两层,用于正则化代价体。ASPP模块使网络能够有效地扩大感受野,以融合远距离上下文。其中ASPP在三个阶段的结构是相同的,但不共享权重,分别处理多尺度代价体。卷积网络的最后一层是深度的softmax,用于预测像素深度概率体P。对于给定的l级,假设像素x处的深度假设为dl(x),范围从d1dK,其中K表示深度平面的数量,PK(x)表示像素x处深度为dlK的可能性。利用沿深度方向的期望值计算第l级上每个像素x的估计深度:

4. 组合损失函数

先前工作用L1深度损失来训练网络。然而,它忽略了概率体作为中间层被间接监督,这使得它的分布较少受到约束。为了解决这个问题,提出了一种新的概率体损失,结合深度损失来有效地训练网络。

概率体损失。假设像素x的深度假设的范围从d1dK,真实深度为。概率体Pk(x)是像素x深度为dk的概率。因此,预测的概率体在深度′的概率最大,且随着离真实深度越远概率逐渐减小。这个性质要求概率分布在真实概率体中每个位置的真实深度处达到峰值,服从期望为的类高斯分布。像素x真实概率体定义为:

其中cˆk(x)表示深度假设dk(x)与真深度之间的归一化距离,σ是控制真实深度附近峰值锐度的方差。不同的像素应有不同的锐度。例如,那些确定匹配的像素应该有一个尖锐的峰值,而那些不确定的像素则有一个相对平坦的峰值。

为了为概率体建立更合理的标签,利用置信度分数图s[0,1]H×W自适应地预测每个像素的σ。大分数s表示更匹配自信,小分数表示匹配不明确。因此,可以用概率分布的单峰来测量估计的置信度。那么,生成真实值的分布的σ计算为:

其中α是反映σ对置信度s变化敏感性的比例因子,β定义了σ的下界,避免了除0的数值问题。像素x处,得到了估计的概率体Pk(x)和真实Pˆk(x)。概率体损失可以通过交叉熵来定义:

其中Ω表示有效的真实像素集。

深度损失。与MVSNet类似,利用L1测量真实深度D与估计深度D之间的绝对差,定义损失为:

组合损失。用损失函数来监督所有三个阶段,阶段权值为{γl}3。在每阶段,综合损失是深度损失Ll d和概率体损失Ll p的加权和。总损失定义为:

其中λ为损失权重,以平衡深度损失和概率体损失。

5. 实验

5.1. 数据集

DTU Dataset、Tanks and Temples

5.2. 实现

通过PyTorch实现,使用DTU数据集训练。 对于DTU,图像分辨率为640 × 512,输入图像的数量N = 3。由Adam优化器端到端训练,批大小为16,在8个NVIDIA GTX 1080Ti GPU上训练。

5.3. 基准结果

DTU数据集基准:SOTA

Tanks & Temples:SOTA 

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

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

相关文章

Kettle(10):switch/case组件

1 机智的体育老师——条件判断 有一天,体育老师要让班上的男女同学分别排成两队。但这个班上还有几名同学,很特殊——他们是蜘蛛!!所以,机智的体育老师需要把他们排成三队,男同学一队,女同学一队,蜘蛛一队。 体育老师要做一件非常重要的事情:判断学生是男孩还是女孩、…

联想E14 开机黑屏报错2102:Detection error on HDD0 (Main HDD)

环境: 联想E14 Win10专业版 问题描述: 联想E14 开机黑屏报错2102:Detection error on HDD0 (Main HDD) 解决方案: 1.关机重启 2.尝试拆解,拔出硬盘数据线,重新安装

Scanpy 单细胞基因分析

参考:https://www.bilibili.com/video/BV1sq4y1C7Qx/ https://scanpy-tutorials.readthedocs.io/en/latest/pbmc3k.html 代码下载:scanpy分析scRNA-seq数据基本流程(含scanpy seurat两大工具对比) 链接: https://pan.baidu.com/s…

华为机试 HJ33 整数与IP地址间的转换

华为机试题 HJ33 整数与IP地址间的转换 一、题目描述 描述原理:ip地址的每段可以看成是一个0-255的整数,把每段拆分成一个二进制形式组合起来,然后把这个二进制数转变成一个长整数。举例:一个ip地址为10.0.3.193每段数字 …

C# - JSON Schema validation

C# - JSON Schema validation引言如何生成 C# 类 JSON Schema利用在线工具利用 Visual Studio利用 NJsonSchema验证 JSON Schema针对 JSON Schema 字符串针对 C# 类 Schema引言 针对 API 测试,我们需要验证 Response 中的一些字段类型,是否缺省等&#…

Linux操作系统精讲之高级IO

代码在: https://github.com/sjmshsh/System-Call-Learn 通过阅读本篇文章,你可以收获: 理解五种IO模型的基本概念,重点是IO多路转接掌握select,poll,epoll系统调用接口并实现简易的TCP服务器理解epoll的…

10、创建不同类型的工程

文章目录10、创建不同类型的模块10.1 创建Java模块10.2 创建Java Web模块1 IDEA中配置Tomcat2 创建Web工程3 配置Web工程并运行4 乱码的解决10.3 创建Maven Java模块1 Maven的介绍2 Maven的配置3 Maven Java工程的创建4 编写代码及测试10.4 创建Maven Web模块1 创建Maven的Web模…

java基础语法——断点调试与数据加密(基础语法练习学习)

目录 Eclipse的断点调试 基础语法的练习 Eclipse的断点调试 作用:查看程序执行流程和调试程序 断点: 就是一个标记,就是我们经常用到的debug(检查程序错误,我们用到的是debug as) A–哪里加?—— 在实际的程序行号…

Knowledge-based-BERT(二)

多种预训练任务解决NLP处理SMILES的多种弊端,代码:Knowledge-based-BERT,原文:Knowledge-based BERT: a method to extract molecular features like computational chemists,代码解析继续K_BERT_WCL_pretrain。模型框…

Java多线程 - 线程安全和线程同步解决线程安全问题

文章目录线程安全问题线程同步方式一: 同步代码块方式二: 同步方法方式三: Lock锁线程安全问题 线程安全问题指的是: 多个线程同时操作同一个共享资源的时候可能会出现业务安全问题,称为线程安全问题。 举例: 取钱模型演示 需求:小明和小红是一对夫妻&am…

建单向链表-C语言实现

任务描述 本关需要你建立一个带头结点的单向链表。 相关知识 什么是链表?链表和二叉树是C语言数据结构的基础和核心。 链表有多种形式,它可以是单链接的或者双链接的,可以是已排序的或未排序的,可以是循环的或非循环的。 本关让我们来学习单链表。 单链表 单向链表(单…

XC-16 SpringSecurity Oauth2 JWT

SpringSecurityOauth2用户认证需求分析用户认证与授权单点登录需求第三方认证需求用户认证技术方案单点登录技术方案Oauth2认证Oauth2认证流程2.2.2Oauth2在本项目中的应用SpringSecurity Oauth2认证解决方案SpringSecurityOauth2研目标搭建认证服务器导入基础工程创建数据库Oa…

一起自学SLAM算法:9.2 LSD-SLAM算法

连载文章,长期更新,欢迎关注: 下面将从原理分析、源码解读和安装与运行这3个方面展开讲解LSD-SLAM算法。 9.2.1 LSD-SLAM原理分析 前面已经说过,LSD-SLAM算法是直接法的典型代表。因此在下面的分析中,首先介绍一下直…

学习笔记:Java 并发编程④

若文章内容或图片失效,请留言反馈。 部分素材来自网络,若不小心影响到您的利益,请联系博主删除。 视频链接:https://www.bilibili.com/video/av81461839配套资料:https://pan.baidu.com/s/1lSDty6-hzCWTXFYuqThRPw&am…

CSS语法格式与三种引入方式

文章目录第一章——CSS简介1.1 CSS语法格式1.2 CSS 位置1.3 CSS引入方式1.3.1.行内样式表(内联样式表)1.3.2 外部样式表1.3.3 内部样式表第一章——CSS简介 1.1 CSS语法格式 CSS 规则由两个主要的部分构成:选择器以及一条或多条声明。 选择…

C语言全局变量和局部变量

局部变量定义在函数内部的变量称为局部变量(Local Variable),它的作用域仅限于函数内部, 离开该函数后就是无效的,再使用就会报错。例如:intf1(int a){ int b,c;//a,b,c仅在函数f1()内有效 return abc; } i…

各种CV领域 Attention (原理+代码大全)

人类在处理信息时,天然会过滤掉不太关注的信息,着重于感兴趣信息,于是将这种处理信息的机制称为注意力机制。 注意力机制分类:软注意力机制(全局注意)、硬注意力机制(局部注意)、和…

打工人必知必会(三)——经济补偿金和赔偿金的那些事

目录 参考 一、经济补偿金&赔偿金-用人单位承担赔偿责任 1、月平均工资是税前还是税后工资? 3、经济补偿金是否要交个人所得税?如何交? 二、劳动者承担赔偿责任 三、劳动者需要特别注意 参考 《HR全程法律顾问:企业人力资…

Day12 XML配置AOP

1 前言前文我们已经介绍了AOP概念Day11 AOP介绍&#xff0c;并将其总结如下&#xff1a;2 AOP 标签和expression表达式学习<?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.springframework.org/schema/beans"xmlns:x…

3.4只读存储器ROM

文章目录一、引子二、介绍1.MROM2.PROM3.EPROM4.Flash Memory5.SSD三、运行过程四、回顾一、引子 这一小节&#xff0c;我们学习只读存储器ROM。 上一小节&#xff0c;学习了两种RAM芯片&#xff0c;分别是SRAM和DRAM。详情请戳&#xff1a;3.3Sram和Dram RAM芯片可以支持随…