【论文简述】WT-MVSNet: Window-based Transformers forMulti-view Stereo(arxiv 2023)

news2024/11/19 7:23:38

一、论文简述

1. 第一作者:Jinli Liao、Yikang Ding

2. 发表年份:2023

3. 发表期刊:arxiv

4. 关键词:MVS、3D重建、Transformer、极线、几何约束

5. 探索动机:然而,在没有极几何约束的情况下匹配参考图像和源图像中的每个像素会导致匹配冗余。最近一项沿着源图像的极线(MVS2D)进行基于注意力的匹配的努力,受到相机姿势和校准不准确的敏感性的影响,从而导致错误的匹配。虽然学习的MVS方法旨在从多视图特征一致性中估计深度假设的似然,但它们在没有几何一致性监督的情况下计算地面真值与预测深度期望之间的绝对误差。

1. However, matching each pixel in reference and source images without epipolar geometry constraints incurs matching redundancy. A recent effort to perform attention-based matching along the epipolar lines of source images(MVS2D), suffers instead from sensitivity to inaccurate camera pose and calibration, which can in turn results to erroneous matching.

2. While learned MVS methods aim to estimate the likelihood of depth hypotheses from multi-view feature consistency, they calculate the absolute error between ground truth and predicted depth expectation without geometrical consistency supervision.

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

7. 核心思想:The proposed MVSTR takes full advantages of Transformer to enable features to be extracted under the guidance of global context and 3D geometry, which brings significant improvement on reconstruction results.

  1. We introduce a Window-based Epipolar Transformer (WET) for enhancing patch-to-patch matching between the reference feature and corresponding windows near epipolar lines in source features.
  2. We propose a window-based Cost Transformer (CT) to better aggregate global information within the cost volume and improve smoothness.
  3. We design a novel geometric consistency loss (Geo Loss) to supervise the estimated depth map with geometric multi-view consistency.

8. 实验结果:

Extensive experiments show that our method achieves state-of-the-art performance on
multiple datasets. It ranks 1st on the online Tanks and Temples benchmark

9.论文下载:

https://arxiv.org/pdf/2112.00336.pdf

二、实现过程

1. WT-MVSNet概述

总体架构如下图。给定参考图像I0,源图像Ii,对应的相机外部矩阵Ti,相机内部矩阵Ki,深度范围[dmin, dmax]。基于CasMVSNet,第一步即通过特征金字塔网络(Feature Pyramid Network, FPN)提取1/4、1/2和全图像分辨率下的多尺度特征Fi。为了加强多视图图像内部和跨视图的全局特征交互,提出了一种基于窗口的的极线转换器(WET),对提取的特征进行内部注意力和跨注意力交替进行。然后将转换后的源特征warp到参考视图,用于构建H×W×C×D的3D代价体V,其中D为候选深度。然后,用提出的代价转换器(CT)对V进行正则化,生成H×W×D的概率体P,该概率体P聚合了全局代价信息,用于生成估计深度。最后,利用交叉熵损失(CE loss)来监督概率体,并提出了几何一致性损失(Geo loss)来对几何一致性不满足的区域进行惩罚。

2. 基于窗口的极线Transformer

现有基于学习的MVS方法大多直接通过warp提取的特征来构建代价体,导致缺乏全局上下文信息,并且点对线匹配对于错误相机校准很敏感。为了解决这个问题,引入了一个基于窗口的极线Transformer(WET),它通过使用极线约束来减少匹配冗余,并在极线窗口附近匹配。

2.1. 初步准备

注意力机制。Swin Transformer提出了一种计算复杂度仅为线性的分层特征表示。Swin Transformer块包含基于窗口的多头自注意力(W-MSA)和可移动的基于窗口的多头自注意力(SW-MSA),可以表示为:

其中LN和MLP表示LayerNorm和Multilayer Perception。^zl和zl是第l块的(S)W -MSA和的MLP的输出。Swin Transformer将特征分为不重叠的窗口和组,作为查询Q、键K和值v,通过每个v对应的Q和K的点积计算提取的特征的相似度,定义为:

其中d表示查询和键的维度。B是相对位置偏差。

内部注意力和跨注意力。当Q和K从同一特征图中提取时,注意力层会获得给定特征图中的相关信息。相反,当Q和K取自不同的特征图时,注意力层会增强不同视图之间的上下文交互。

2.2. 基于窗口的极线跨注意力

遵循TransMVS- Net,在F0和每个Fi之间进行相互注意力,只更新Fi。具体来说,计算F0和每个Fi相应沿极线的块像素之间的跨注意力。第一步,将F0划分为M个大小相同的不重叠窗口W0,具有同样大小的hwin×Wwin,通过可微单应性变化将W0j的中心点pj变化到Fi。第i个源视图变化后的中心点是pij。为了实现跨注意力,在每个pji周围用相同大小hwin×Wwin划分一个窗口Wij,源特征中pji的极线经过这个窗口。因此,跨注意力能够加强参考特征窗口与源特征极线附近窗口之间的长距离的全局上下文信息交互。

2.3. WET结构

WET的体系结构如下图。WET主要由内部注意力和跨注意力模块组成。在内部注意力模块中,提取的特征Fi被划分为不重叠的窗口。将每个窗口展平,并依次将其输入至W-MSA和SW-MSA。由于只在每个划分的窗口中执行内部注意力,W-MSA无法捕获整个输入特征的全局上下文。为了解决这一问题,利用SW-MSA和移位窗口划分策略来增强不同窗口之间的信息交互,获得全局上下文。为了减少匹配冗余,并避免错误的相机位姿和校准,在参考和源视图之间执行基于窗口的极线跨注意力。在跨注意力模块中,将F0划分成非重叠窗口,并将每个中心点warp,以在源特征中划分相应的窗口。将划分的窗口展平后,计算F0中每个窗口和每个Fi中对应的窗口之间的跨注意力, 来变换和更新Fi。

3. 代价Transformer

作者进一步探讨了不同正则化的影响,并发现全局感受野对最终性能有显著影响,提出了一种新的基于窗口的代价Transformer(CT)来聚合代价体内的全局信息。如下图所示,随着感受野的扩展,深度维上概率最高的概率体素变得更平滑、更完整,置信度也更高(黄色区域表示更高的概率,相当于更高的置信度)。与3D CNN和非正则化相比,CT生成的概率体具有更高的质量。

3D 注意力。为了在代价体正则化中利用全局感受野,将W-MSA和SW-MSA扩展到3D,为此在空间和深度维度上将3D体flatten。后续操作类似于2D注意力。

CT结构。如下图所示,包括编码器、解码器和跳跃连接。给定一个输入代价体V,编码器首先将V分为非重叠的3D块,每个3D块从2×4×4×C展平为32C。此外,采用线性嵌入层将通道维度32C投影到C`中,产生嵌入后的代价体V`。之后,进一步将V`划分为不重叠的3D窗口,并将每个3D窗口从dwin×hwin×wwin×C`平展到dwinwinwin×C`。然后将平展后的窗口输入至N个3D注意力块中,每个注意力块由3DW-Intra-Att、3DSW-Intra-Att和块合并层组成。和块合并层负责空间下采样和通道维数的增加。在解码器中,利用反卷积来恢复分辨率。为了减少和块合并层产生的空间信息的丢失,将浅层特征和深层特征连接在一起,即通过跳跃连接将编码器和解码器的多尺度特征融合在一起。再加上线性嵌入层和补丁扩展层,变换后的V`与V维度保持一致。最后,利用具有1×1×1核的三维卷积,得到最终的概率体P。

 4. 损失函数

几何一致性损失。一般情况下,深度估计只在参考视图中进行监督,而不使用多视图一致性,在推理阶段通常使用多视图一致性来过滤离群值。本文将多视角一致性运用到训练阶段,并提出了一种新的几何一致性损失(Geo loss)来对几何一致性不符合的区域进行惩罚。首先,对参考视图的估计深度图D0中的每个像素p进行warp,得到相邻源视图中对应的像素p`i。其中D0(p)表示像素p的深度值。反过来,我们对p`i进行反向投影进入三维空间,然后将其重投影到参考视图p``:

式中Dgt i(p`i)表示p`i的真实深度值。定义两个重投影误差为:

因此,最终的Geo Loss LGeo可以写成: 

其中Φ为Sigmoid函数,用于对带有超参数γ的组合重投影误差进行归一化。pv表示由有效掩码图获得的一组有效空间坐标,pg是重投影误差在给定阈值内的所有像素的集合,例如:ξp < τ1和
ξd < τ2,其中τ1和τ2为超参数,随级数的增加而减小。

总损失。综上所述,损失函数由交叉熵损失(cross entropy loss, CE loss)和Geo loss组成:

5. 实验

5.1. 实现细节

基于Pytorch实现,在DTU训练集上训练。与CasMVSNet的1/4、1/2和全图像分辨率3个阶段相似,对应的深度间隔从阶段1到阶段3分别衰减0.25和0.5,每个阶段的深度假设为48个、32个和8个。在DTU上进行训练时,设置图像个数为N = 5,图像分辨率为512×640。使用Adam进行了16个epoch的训练,学习率为0.001,分别在6、8、12个epoch后衰减0.5倍。设组合系数γ = 100.0,损失权重λ1 = 2.0和λ2 = 1.0,重投影误差在3个分辨率阈值τ1为3.0、2.0、1.0,τ2为0.1,0.05,0.01。在8个Tesla V100 GPU上将批大小设置为1来训练模型,通常需要15个小时,占用每个GPU的13GB内存。

5.2. 与先进技术的比较

5.3. 限制

在跨注意力模块中,固定地从参考特征中选warp后的点,不考虑中心点的重要性。此外,Transformer的引入不可避免地会在训练阶段产生较高的内存成本,并降低推理速度。

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

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

相关文章

【Java数据结构】二叉树

二叉树 树型结构概念树中的概念树的表现形式 二叉树两种特殊的二叉树二叉树的性质二叉树的存储二叉树基本操作 树型结构 概念 树是一种非线性的数据结构&#xff0c;它是由n&#xff08;n>0&#xff09;个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像…

读论文--Token Merging for Fast Stable Diffusion(用于快速Diffusion模型的tome技术)

摘要 The landscape of image generation has been forever changed by open vocabulary diffusion models. However, at their core these models use transformers, which makes generation slow. Better implementations to increase the throughput of these transformers …

JMeter的使用(一)

JMeter的使用 参考黑马视频 下载工具 一、准备工作 1、准备文件sql SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS 0;-- ---------------------------- -- Table structure for sys_follow_user -- ---------------------------- DROP TABLE IF EXISTS sys_follow_user; CR…

Html5惯性小鸟游戏制作与分享(怀旧小游戏)

当年电子词典中的经典游戏&#xff0c;后来出了无数变种的玩法。这里还原了最初的玩法与操作。实现了这一款有点难度“的怀旧经典游戏。 玩法也很简单&#xff0c;不用碰到任何东西、持续下去。。。 可以进行试玩&#xff0c;手机玩起来效果会更好些。 点击试玩 还有很多变种的…

网络安全SQL注入

1.何为Sql注入&#xff1f; 所谓SQL注入&#xff0c;就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串&#xff0c;最终达到欺骗服务器执行恶意的SQL命令。具体来说&#xff0c;它是利用现有应用程序&#xff0c;将&#xff08;恶意的&#xff09;SQL命令注…

发送结构化的网络消息数据

server.cpp #define WIN32_LEAN_AND_MEAN //尽力减少一些其他依赖库的引用 #define _WINSOCK_DEPRECATED_NO_WARNINGS#include<windows.h> #include<WinSock2.h> #include<stdio.h> //#pragma comment(lib,"ws2_32.lib")struct DataPackage {int …

HTTP Keep-Alive模式

故事发生在10月份的一次面试经历中&#xff0c;本来我不想说出来丢人显眼&#xff0c;但是为了警醒自己和告诫后人&#xff0c;我决定写成博文发出来。因为在面试过程中&#xff0c;我讲在2009年写过QQ农场助手&#xff0c;在这期间深入学习了HTTP协议&#xff0c;而且在2010-0…

盐湖钛系提锂吸附剂

#盐湖钛系提锂吸附剂 盐湖钛系提锂吸附剂HPL900是一种高选择性高容量锂离子筛吸附剂。其通过纳米杂化、锂离子印迹等技术制备而成。该吸附剂活性纳米晶粒子对锂离子具有高效吸附性能&#xff08;其对锂的吸附容量大于10.0g Li/L&#xff09;&#xff0c;同时吸附位点对锂离子具…

哈希表(底层结构剖析-- 上)

文章目录 哈希表底层结构剖析哈希概念哈希冲突哈希函数 哈希冲突解决办法闭散列( 线性探测 二次探测)开散列 哈希表闭散列方法的模拟实现基本框架有关哈希数据的类插入函数删除函数查找函数增加仿函数将所有数据类型转换为整型 哈希表开散列方法的模拟实现(增加仿函数版) 哈希…

Visual Studio的安装注意

本文目前包含的内容&#xff1a; Visual Studio版本选择工作负载组建的选择安装后的环境配置 目录 1. 安装前1. 安装过程中2. 安装后注意 1. 安装前 安装版本选择&#xff1a; 一定不要选最新的版本&#xff0c;选3-5年前的稳定版本&#xff01;新版本会出很多bug。 1. 安装过…

银行数字化转型导师坚鹏:银行数字化转型创新与应用前沿

银行数字化转型创新与应用前沿 ——金融科技如何赋能银行数字化转型 课程背景&#xff1a; 数字化背景下&#xff0c;很多银行存在以下问题&#xff1a; 不清楚5G如何赋能银行数字化转型&#xff1f; 不清楚最新金融科技如何赋能银行数字化转型&#xff1f; 不了解银行…

自动驾驶落地如何降本?这家头部公司有自己的独特之处

一直以来&#xff0c;商用车智能化与乘用车有很多差异化&#xff0c;比如&#xff0c;B端客户对于规模车队的采购成本&#xff0c;智能化应用场景的适配性以及对自动驾驶更为务实的认知。 4月18日&#xff0c;2023上海车展&#xff0c;作为场景化新能源的自动驾驶全球领导者&am…

直播软件app开发:如何开发一个可以免费打扑克的直播应用?

作为一个技术开发人员&#xff0c;我深知直播软件app开发的重要性。在这个数字化时代&#xff0c;越来越多的人选择使用直播软件来分享自己的生活和与朋友互动。而随着技术的发展&#xff0c;直播软件也不断更新和改进&#xff0c;为用户提供更好的体验和功能。 对于开发者来说…

git merge、git pull和git fetch

git merge 合并分支&#xff0c;将目标分支合并到当前分支git fetch 更新远端分支&#xff0c;但不会merge到本地git pull 更新远端分支并merge到本地git pull git fecth git merge merge的意思为“合并”&#xff0c;git merge命令是用于将分支合并在一起的操作&#xff…

kafka_2.13-2.8.1环境搭建

本次kafka环境主要针对kafka2.x版本&#xff0c;运行kafka服务之前&#xff0c;需要先搭建zookeeper服务&#xff0c;因为kafka服务依赖zookeeper&#xff0c;kafka3.x版本后可以不需要手动搭建zookeeper了。 本文主要是介绍怎样搭建kafka2.8.1&#xff0c;关于kafka的操作&am…

matlab求解整数规划

一、整数规划 定义&#xff1a;数学规划中的变量&#xff08;部分或全部&#xff09;限制为整数时&#xff0c;称为整数规划。 若在线性规划模型中&#xff0c;变量限制为整数&#xff0c;则称为整数线性规划。 分类&#xff1a;&#xff08;1&#xff09;变量全部限制为整数时…

JUC多并发编程 内存模型

计算机硬件存储系统 因为有多级的缓存(CPU 和 物理主内存的速度不一致的)&#xff0c; CPU 的运行并不是直接操作内存耳饰先把内存里边的数据读到缓存&#xff0c;而内存的读和写操作的时候就会造成不一致的问题JVM 规范中试图定义一种 Java 内存模型(Java Memory Model, 简称…

【UE】倒计时归零时结束游戏

上一篇博客&#xff08;【UE】一个简易的游戏计时器&#xff09;完成了游戏时间每秒1的功能&#xff0c;本篇博客在此基础上完成倒计归零时结束游戏的功能 效果 步骤 1. 打开“ThirdPersonGameMode”&#xff0c;将剩余的秒数和分钟数的默认值分别设置为1和59 在事件图表中添…

全球首款车规级彩色激光大灯,这家中国供应商引领下一代显示交互

随着汽车智能化进程进入深水区&#xff0c;基于显示、照明的新技术正在成为新的聚焦点。无论是AR HUD&#xff0c;还是舱内多模态人机交互都在成为新的增量。而汽车独有的智能移动终端以及第三生活空间的未来属性&#xff0c;也在创造新的市场机会。 4月18日&#xff0c;全球领…

法规标准-ISO 16787标准解读

ISO 16787是做什么的&#xff1f; ISO 16787全称为智能运输系统-辅助泊车系统&#xff08;APS&#xff09;-性能要求和测试程序&#xff0c;其中主要描述了对APS系统的功能要求及测试规范 APS类型 根据目标停车位类型将APS系统分为两类&#xff1a; 1&#xff09;APS类型I&a…