【论文简述】CostFormer:Cost Transformer for Cost Aggregation in Multi-view Stereo(IJCAI 2023)

一、论文简述

1. 第一作者:Weitao Chen,Hongbin Xu

2. 发表年份:2023

3. 发表期刊:IJCAI

4. 关键词:MVS、三维重建、代价体、Transformer

5. 探索动机:现有方法处理代价体,要么使用人工处理的技术,对严重变形不可知,要么由于CNN的局限性,例如有限的感受野,无法区分局部一致的错误匹配。虽然Transformer的良好性能已经在许多应用中得到了证明,但是传统自注意力模块中键和查询点积交互的时间和内存复杂度随着输入的空间分辨率呈二次增长。因此,用Transformer替换3D CNN可能会导致意想不到的额外内存占用和推理延迟。

对应估计问题框架:No matter which task this correspondence estimation problem is applied to, the matching task can be boiled down to a classical matching pipeline: (1) feature extraction, and (2) cost aggregation.

特征提取的变化:In learning-based MVS methods, the transition from traditional hand-crafted features to CNN-based features inherently solves the former step of the classical matching pipeline via providing powerful feature representation learned from large-scale data.

原始代价体的问题:handling the cost aggregation step by matching similarities between features without any prior usually suffers from the challenges due to ambiguities generated by repetitive patterns or background clutters.

6. 工作目标:利用高效的Transformer提升代价聚合的精度。

7. 核心思想:In this work, we focus on the cost aggregation step of cost volume and propose a novel cost aggregation Transformer(CostFormer) to tackle the issues above. We further introduce the Transformer architecture into an iterative multi-scale learnable PatchMatch pipeline.

  1. We propose a novel Transformer-based cost aggregation network called CostFormer, which can be plugged into learning-based MVS methods to improve cost volume effectively.
  2. CostFormer applies an efficient Residual Depth-Aware Cost Transformer to cost volume, extending 2D spatial attention to 3D depth and spatial attention.
  3. CostFormer applies an efficient Residual Regression Transformer between cost aggregation and depth regression, keeping spatial attention.

8. 实验结果:

The proposed CostFormer brings benefits to learning-based MVS methods when evaluating
DTU, Tanks & Temples、ETH3D and BlendedMVS datasets.

9.论文下载:

https://arxiv.org/pdf/2305.10320.pdf

二、实现过程

1. 综述

如下图所示,基于PatchMatchNet的CostFormer从多视图图像中提取特征图,并进行初始化和传播,将源视图中的特征图warp到参考视图。然后通过组相关构建代价体,然后用逐像素的视图权重wi(p)对视图进行聚合。

代价聚合模块首先利用一个小的1×1×1核的三维卷积网络,以获得一个单一的代价,C∈H×W×D。对于Ke个像素的空间窗口,可以组织成一个网格,每个像素的额外偏移量∆pk可以学习用于空间自适应。聚合的空间代价C~(p,j)定义为:

其中,wk和dk基于特征和深度相似度对代价C进行加权。给定采样位置(p+pk+∆pk)Ke=1,通过双线性插值提取F0对应的特征。然后,在每个采样位置的特征和p之间应用组相关。结果被连接到一个体中,其中具有1×1×1核和sigmoid非线性的3D卷积层被应用于输出归一化权重{wk}。收集每个采样点与像素p在第j个假设下的逆深度的绝对差值。然后对逆差值应用s型函数,得到{dk}。

值得注意的是,这种代价聚合不可避免地受到重复模式或背景混乱所产生的模糊性挑战。模糊的局部机制存在于许多操作中,如局部传播和通过可学习的小偏移进行空间自适应。CostFormer通过RDACT和RRT缓解了这些问题。

RRT后,应用soft argmin回归深度。最后,设计了深度改进模块对深度回归进行改进。对于CascadeMVS和其他级联结构,CostFormer可以类似地插入。

2. 融合的潜在好处

残差深度感知代价Transformer(RDACT)由两部分组成。第一部分是深度感知Transformer层(DATL)和深度感知位移变压器层(DASTL)的堆叠,用于处理代价体以充分探索它们之间的关系。第二部分是重嵌入代价层(REC),从第一部分中恢复代价体。

给定一个代价体C0∈H×W×D×G,临时中间代价体C1,C2,…,CL 2∈H×W×D×G分别先用DATL和DASTL交替提取:

其中DATLk是具有常规窗口的第k个深度感知Transformer层,DASTLk是第k个具有移位窗口的深度感知Transformer层,E为DATLk和DASTLk的嵌入维数。

然后对最后一个Ck应用重嵌入代价层,即CL,从E中恢复G。RDACT的输出公式为:

REC是重嵌入代价层,它是具有G个输出通道的三维卷积。若E=G,则Cout可简单表示为:

这种残差连接允许不同层级的代价体聚合;然后由原始聚合网络对Cout而不是C0进行聚合。

在介绍DATL和DASTL的构造之前,先介绍称为深度感知多头自注意力(DA-MSA)和深度感知转移多头自注意力(DAS-MSA)的核心构成的细节,DA-MSA和DAS-MSA均基于深度感知自注意力机制。为了解释深度感知自注意力机制,提供有关的知识深度感知块嵌入和深度感知窗口作为预备工作。

深度感知块嵌入:显然,就GPU内存使用而言,直接在像素级上应用特征图的注意力机制是相当昂贵的。为了解决这个问题,提出了一种深度感知的块嵌入,以降低高内存代价并获得额外的正则化。具体而言,在聚合C∈H×W×D×G之前给组代价体,首先对C应用深度感知块嵌入以获得token
。它由一个核大小为h×w×d的3D卷积和一个层归一化组成。为了下采样代价体的空间大小并保持深度假设,设置h和w大于1,d为1。因此,采样率自适应内存成本和运行时间。在卷积之前,代价体会被填充以适应空间大小和下采样比。在层归一化(LN)之后,这些嵌入的块被深度感知窗口进一步分割。

深度感知窗口:除了非线性和线性的全局自注意力之外,窗口内的局部自注意力已被证明是更有效和高效的。以二维窗口为例,Swin Transformer直接在非重叠的二维窗口上应用多头自注意力机制,以避免全局token的巨大计算复杂度。从二维空间窗口扩展,有深度信息的嵌入后的代价体块∈H×W×D×G被分割成不重叠3D窗口。然后将这些局部窗口转置并重塑为局部代价token。假设这些窗口的大小为hs×ws×ds,则token的总数为:

这些局部token由多头自注意力机制进一步处理。

深度感知自注意力机制:对于局部窗口token∈hs×ws×ds×G,查询、键和值矩阵Q、K和V ∈hs×ws×ds×G计算如下:

其中PQ, PK和PV∈G×G是跨不同窗口共享的投影矩阵。对于每个头通过引入深度和空间感知相对位置偏差B1 ∈(hs×hs)×(ws×ws)×(ds×ds),则三维局部窗口内的深度感知自我注意力(DA-SA1)矩阵计算为:

其中Q1、K1和V1∈hswsds×G是由Q、K和V∈hs×ws×ds×G。用DATL的过程LayerNorm(LN)和当前层的多头DA-SA1表示为:

 

对于每个头,通过引入深度感知相对位置偏差B2∈ds×ds,深度感知自注意力(DASA2)矩阵沿深度维度是DATL的替代模块,因此计算为:

Q2、K2和V2重塑为hsws×ds×G。B1和B2沿深度维度,在[-ds+1,ds-1]范围内。沿高、宽维度,B1在[-hs+1,hs-1]和[-ws+1,ws-1]。在实现中,从B1中参数化一个较小尺寸的偏置矩阵B1~∈(2hs−1)×(2ws−1)×(2ds−1),并并行执行f次注意力函数,然后将深度感知多头自注意力(DA-MSA)输出连接起来。在当前层采用层归一化(LN),多头的数据处理过程DA-SA1和DA-SA2,并表示为:

然后,使用具有两个全连接层且层间具有GELU非线性的MLP模块进行进一步的特征变换:

与全局注意力相比,局部注意力使高分辨率计算成为可能。

但是,具有固定分区的局部窗口之间没有连接。因此,常规和移位窗口分区交替使用,以实现跨窗口连接。因此在下一层,窗口分区配置沿着高度、宽度和深度轴移动(hs/2, ws/2, ds/2)。深度感知自注意力将在这些移位窗口(DAS-MSA)中计算;整个过程DASTL可表述为:

DAS-MSA1和DAS-MSA2在一个移位的窗口内分别对应多头注意力1和注意力2。假设阶段数是n,有n个RDACT块在CostFormer。

3. 残差回归Transformer

聚合后,代价体C∈HXWXD进行深度回归。为了进一步探索一定深度下的空间关系,在softmax之前对C应用了Transformer块。受RDACT启发,全程残差回归Transformer(RRT)可表示为:

其中,RTk为具有固定窗口的第k个回归Transformer层,RSTk为具有移位窗口的第k个回归Transformer层,RER为从CL中恢复深度维数的重嵌入层,它可以是具有D个输出通道的2D卷积。

RRT还计算局部窗口中的自注意力。与RDACT相比,RRT更注重空间关系。与常规Swin Transformer块相比,RRT将深度视为一个通道,通道数实际上是1,并且该通道在RRT之前就被压缩。设置嵌入参数以适应不同迭代的代价聚合。若嵌入维数为D,则Cout可简单表示为:

由于一个阶段可能会在不同的深度假设下迭代多次,因此RRT块的数量应该设置为与迭代次数相同。

4. 损失函数

最终损失是所有阶段的所有迭代的损失以及最终改进模块的损失相结合:

其中Lk为第k阶段第i次迭代的回归或统一损失。Lref是改进模块的回归或统一损失。如果改进模块不存在,则Lref损失设置为零。

5. 实验

5.1. 实现细节

Nvidia GTX V100 GPU

5.2. 与先进技术的比较

DTU:2693MB和0.231秒

猜你喜欢

转载自blog.csdn.net/qq_43307074/article/details/132100988