【论文简述】DSC-MVSNet: attention aware cost volume regularization based ondepthwise separable(CIS 2023)-程序员宅基地

技术标签: 3D重建  MVS  通道注意力  深度可分离卷积  

一、论文简述

1. 第一作者:Song Zhang

2. 发表年份:2023

3. 发表期刊:Complex & Intelligent Systems

4. 关键词:MVS、三维重建、深度可分离卷积、通道注意力

5. 探索动机:基于深度学习的MVS方法很难平衡效率和有效性。

6. 工作目标:如何在保持效果的情况下显著减少计算量是研究的主要问题。

7. 核心思想:We propose the DSCMVSNet, a novel coarse-to-fine and end-to-end framework for more efficient and more accurate depth estimation in MVS.

  1. We propose a 3D UNet-shape network and firstly use the depthwise separable convolution for 3D cost volume regularization, which can effectively improve the model efficiency with performance maintained.
  2. We propose a 3D-Attention module to enhance the ability in cost volume regularization to fully aggregate the valuable information of cost volume and alleviate the problem of feature mismatching.
  3. We proposed an effective and efficient feature transfer module to upsample the LR depth map to obtain the HR depth map to achieve higher quality reconstruction.

8. 实验结果:

The proposed method outperforms the state-of-the-art method in dynamic areas with a significant error reduction of 21.3% while retaining its superiority in overall performance on KITTI. It also achieves the best generalization ability on the DDAD dataset in dynamic areas than the competing methods.

9.论文下载:

https://link.springer.com/content/pdf/10.1007/s40747-023-01106-3.pdf?pdf=button

https://github.com/zs670980918/DSC-MVSNet

二、实现过程

1. 总述

  1. 使用信息特征提取网络来提取相应的特征;
  2. 使用DSC-Attention 3D UNet来正则化粗糙代价体C×D×1/8H×1/8W;
  3. 使用特征转移模块来将LR深度图Ds∈1×1/8H×1/8W上采样到HR深度图Dd∈1×1/4H×1/4W;
  4. 利用输入图像和HR深度图,通过高斯牛顿网络层,得到改进后的深度图Dr∈1×1/4H×1/4W;
  5. 最后将改进后的深度图进行融合,得到点云。

2. 三维深度可分离卷积(3D-DSC)

将3D CNN分为3D depthwise卷积(depthwise是深度维度,可以对深度维度的代价体信息进行代价聚合)和3D pointwise卷积(pointwise是空间维度,在空间维度对代价体信息进行代价聚合)。 

3D depthwise convolution。在每个通道的代价体上独立进行3D深度卷积,得到与通道无关的中间特征图,定义如式:

式中W1表示三维深度卷积的权值,V∈C×D×H×W表示代价体,i, j, u表示位置索引,K, L, M表示卷积的核大小。

3D pointwise convolution。3D逐点卷积作用于这些与通道无关的特征图,以聚合通道相关的信息,如定义:

 式中,W2表示三维点向卷积的权值,V∈C×D×H×W表示中间特征图,N表示卷积的核大小。

这两个卷积依次执行,形成一个完整的卷积。其数学表达式定义为式:

本文将3D-DSC正则化方案与其他主流正则化方案进行了理论比较,证明了该方案的有效性。用青色表示体素的感受野。水平是深度尺寸,垂直是通道尺寸。H和W分别表示高度和宽度。在这个图中,设H和W为一维。

 (a)空间正则化(spatial Regularization, SR),它过滤了不同深度的代价体。然而,由于感受野较小,SR的正则化结果受到很大影响;(b) 3D CNN正则化(3D-CNN),利用3D CNN获得更大的感受野进行代价体正则化。但它带来了更多的计算成本;(c)递归正则化是一种基于RNN的方法,提出了顺序处理,将代价体划分为与深度无关的代价图,以降低计算成本;(d)3D-DSC正则化是一种基于DSC的方法,将代价体分割成中间特征图,然后应用逐点卷积来建立这些中间特征图之间的关系,以保持模型的性能。与SR相比,我们的方法可以获得更大的接受野,而3D CNN正则化可以获得更好的性能,但也会带来更高的计算成本。然后比较了3D-DSC和3DCNN的效率。

3. 3D注意力模块(3DA)

3D-DSC虽然可以有效地聚合代价体信息,但仍然存在影响代价体质量的特征不匹配问题。当不同关键点的特征被错误匹配时,就会出现特征不匹配问题,这将导致代价体在不同深度处有相似置信度,最终导致深度估计不准确。具体而言,如图3下图所示,一个参考特征在不同深度匹配两个相似的源特征(佛像的两只手),不同深度的置信度在代价体上相似。这些相似的置信度将影响深度图的质量。并利用3DA来缓解这一问题。红色体素表示相似置信度;淡红色表示置信度减弱。

由于注意力机制可以通过计算不同的权重来突出重要信息,因此使用注意力机制来解决特征不匹配问题。3D注意力由两个模块组成,通过利用整个代价体的信息计算注意力权重来增强或削弱不同深度的相似的置信度,从而缓解了这一问题。

通道注意力块。通道注意力块对通道信息执行注意力。它由一个多层感知器(MLP)构造,作用于代价体V∈C×D×H×W的通道,以获得通道注意力增强权值Wˆ。将通道权值W与代价体V相乘,得到通道改进的代价体V‘∈C×D×H×W。通道注意力块定义为:

其中Max Pool为最大池化,AvgPool为平均池化。W∈C为通道注意力增强权值,两部分均共享MLP的权值。

空间深度注意力块。与普通注意力使用全感知(不区分空间和深度)不同,空间深度注意力块根据代价体的构成从两个不同维度感知代价信息,如:空间和深度。首先,使用核大小为1×7×7(相同深度的不同位置)的面向空间的各向异性卷积沿空间方向过滤代价体,以在保持相同深度的有用匹配信息的同时降低噪声。它为下一次面向深度的卷积提供了更准确的空间信息。然后用核大小为7×1×1(同一位置不同深度)的面向深度的各向异性卷积作用于深度维度,有效增强或减弱同一空间位置不同深度的匹配信息。最后,使用核大小为7×7×7的各向同性卷积,作用于多维(空间,深度),以充分聚合上述过程的信息。空间深度注意块的公式定义为:

式中σ为激活函数;W ̄∈1×D×H×W为空间深度权重;f1×7×7是空间向卷积,f7×1×1是深度向卷积,f7×7×7是整体卷积。 

将这两个模块级联形成一个3D注意力模块,公式定义如下:

正则化后,在深度方向上使用softmax操作对[0,1]之间的所有值进行回归,形成深度估计的概率体P。最后,将不同深度假设平面值与概率体P相乘,得到LR深度图D~s。公式为:

4. 特征传输模块

上采样获得的高分辨率深度图直接影响点云结果的质量。为了获得高分辨率和精确的深度图,提出了一种用于低分辨率(LR)深度图上采样的特征传输模块(FTM)。

FTM的输入是一个三通道的参考图像I0∈3×H×W和单通道LR深度图Ds∈1×1/8H×1/8W。为了统一输入的尺度,首先使用双三次插值算法对LR深度图Ds进行上采样,得到更大尺度的深度图D~s∈1×1/4H×1/4W。将参考图像下采样为16通道图像I0∈16×1/4H×1/4W。在统一之后,提出了一个共同的偏移量和权重提取主干来获得参考图像和深度图的偏移量。该主干包含一个七层卷积特征提取网络、一个偏移卷积、一个权重卷积和一个sigmoid层。该主干定义为:

式中,fFE表示提取网络,foc表示偏移卷积,fwc表示权卷积,sigmoid表示sigmoid层。 

然后使用OWC Block来计算权重∈k2/16×1/4H×1/4W和偏移∈k2/8×1/4H×1/4W,用于引导深度图上采样,其中k是一个超参数,设置k=12。具体来说,将相应的偏移量和权重相乘,然后通过PixelShuffle传递结果来获得目标偏移量和权重。然后利用偏移量引导特征采样,并将采样的特征与权值相乘得到最终结果。最后,通过残差相加块得到HR深度图。将上述过程的方程定义为:

其中fps表示PyTorch的的PixelShuffle操作,fgs表示grid_sample函数,Dres表示深度残差。

5. 信息特征提取网络

之前的方法很多仅使用顺序卷积操作从输入图像{Ii}i提取特征映射,这些图像只包含高级语义信息。低层次空间信息的丢失会影响重建结果的质量。因此,提出了一种利用跳跃连接传播低层次空间信息来聚合多层次特征信息的信息特征提取网络。这个网络有三个组件(Encoder, Decoder, Adjuster),架构如下表所示。每个卷积层代表一个卷积块、批归一化(BN)和ReLU。“sp”表示跳跃连接。

6. 代价体构建

定义为:

Vi是所有特征体的平均体。

7. 深度图改进

前一步得到的深度图质量不足,需要进一步改进。而在Fast-MVSNet中,高斯牛顿网络层是一种有效且高效的深度图改进模块。因此,使用高斯网络层对深度图改进图D∈1×1/4H×1/4W,用于MVS重建。

8. 训练损失

计算预测深度图与真实深度图之间的平均绝对值误差作为训练损失,如:

式中,D~d为HR深度图,D~r为改进后的深度图,D~为真实深度图,pvalid为真实深度图的有效点集,λ用于平衡loss1(p)和loss2(p)。在训练过程中,通常将λ设置为1.0。

9. 实验

9.1. 实现细节

设置RMSProp优化器,初始学习率设置为0.0008,每个epoch的衰减权值设为0.002。批大小设置为16,并在6个NVIDIA GTX 2080ti GPU设备上进行训练。

9.2. 与先进技术的比较

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_43307074/article/details/132101021

智能推荐

Docker使用(三) — Docker部署安装Nginx_docker安装nginx-程序员宅基地

文章浏览阅读2.4w次,点赞9次,收藏79次。Docker部署安装Nginx_docker安装nginx

c语言编写显示一行字程序,C语言文件操作——读一行和写一行-程序员宅基地

文章浏览阅读1.2k次。文件读写其实说简单也简单,会用即可,说复杂也复杂,操作系统文件系统有很多东西需要学习。在此简单介绍一种写日志与读日志的方法——写一行&读一行。1.写一行代码:#include void writeLogLine(const char *fileName,const char *content)//参数:文件全名,写入内容{FILE *fp;//定义文件指针if ((fp=fopen(fil..._c写文件循环一次写一行

315M发射电路原理以及315M无线模块怎么使用_315m 放大电路-程序员宅基地

文章浏览阅读1.4k次,点赞26次,收藏24次。315M发射电路原理以及315M无线模块怎么使用_315m 放大电路

记账系统推荐金蝶精斗云_金蝶精斗云是免费会计记账软件吗?-程序员宅基地

文章浏览阅读1.5k次。金蝶精斗云旗下的财务软件有很多款,其中有一款云报销的产品有免费版,不过金蝶精斗云的云报销虽然是永久免费的,但是功能和权限相对也会更少一些,所以不一定适合你公司。金蝶精斗云旗下产品针对不同的行业、企业的不同规模,产品各有侧重点,可以根据你公司的实际需要挑选,每一款产品根据功能的多寡,价格也是不一样的。金蝶精斗云财务软件是按年收费的。金蝶精斗云旗下的产品包括云会计(财务管理工具),云进销存(采购、销售..._精斗云永久免费

MyBatis批量插入数据_批量提交insrt-程序员宅基地

文章浏览阅读396次。mybatis批量插入数据_批量提交insrt

拥抱.NET Core系列:MemoryCache 初识 (转载)-程序员宅基地

文章浏览阅读52次。阅读目录MSCache能做什么?从IMemoryCache说起开发者的体验写在最后 Cache是一个绝大多数项目会用到的一个技术,说起到缓存可能就联想到 Set、Add、Get、Remove、Clear 这几个方法。那么在.NET Core中微软给我们带来了什么样的缓存体验呢?今天我们就来介绍下”Microsoft.Extensions.Caching.Memory...__memorycache.getorcreate absoluteexpirationrelativetonow 需要与set一起使用嘛

随便推点

@FeignClient url读取配置文件,为空时使用服务名-程序员宅基地

文章浏览阅读8k次,点赞4次,收藏2次。FeignClient url_@feignclient url

Shader Graph 笔记,持续更新..._shader graph 毛刺效果-程序员宅基地

文章浏览阅读4.8k次,点赞17次,收藏81次。第一次接触Shader Graph 是在18年7月份Shader Graph最佳实践 (Best practices for Shader Graph - Unite 2018 洛杉矶)Unity着色器Procedural绘图简介(非Node/代码逻辑)原解读Unity2018中 ShaderGraph 示例: Procedural[Shader Graph备忘录1]扫描线..._shader graph 毛刺效果

性能测试实战(四):Jmeter的使用_jmeter默认保存路径-程序员宅基地

文章浏览阅读9.1k次,点赞2次,收藏9次。一、初识Jmeter1、Jmeter的文件结构:(1)binjmeter的启动文件以及配置文件。jmeter的默认保存文件路径,也是在jmeter的bin文件夹里;读取文件,默认也是该文件夹。(2)docs文档,开发人员看的接口api文档,如果你要对jmeter进行二次开发,需要阅读此文档。(3)printable_docs文档,这是Jmeter的使用帮助文档(离线帮助)。(4)liblibrary库,存放jmeter源码打成的jar包,以及第三方人员开发的扩展功能jar_jmeter默认保存路径

The FactorySoft OPC Server _组态王fsserver-程序员宅基地

文章浏览阅读2.4k次。The FactorySoft OPC Server 最近在看opc的东西,一开始看的是潘爱民的《COM原理与应用》,这本书买了老早了,几年前领导想在在组态王6.03里面添加我们公司的设备的驱动,到北京组态王的总部去了一趟,没接触过怎么做组态王的驱动,请教了接待我们的MM经理,她说很简单,用到了COM和C++,下午就去了书店买了回来,后来安装上开发包研究了下,书也没看就把驱动写完了,一直放到现在。 后来做工控的上位,西门子的PLC使用的最多,所以_组态王fsserver

Linux:字符串数组和字符串指针的定义赋值操作_linux字符串赋值-程序员宅基地

文章浏览阅读514次。【代码】Linux:字符串数组和字符串指针的定义赋值操作。_linux字符串赋值

python实战案例_定义一个movie_score()类,包含封装change_movie()类和get_score()-程序员宅基地

文章浏览阅读1.4w次,点赞6次,收藏14次。博主介绍 个人主页:苏州程序大白 个人社区:CSDN全国各地程序猿作者介绍:中国DBA联盟(ACDU)成员,CSDN全国各地程序猿(媛)聚集地管理员。目前从事工业自动化软件开发工作。擅长C#、Java、机器视觉、底层算法等语言。2019年成立柒月软件工作室,2021年注册苏州凯捷智能科技有限公司 有任何问题欢迎私信,看到会及时回复 微信号:stbsl6,微信公众号:苏州程序大白 如果文章对你有帮助,欢迎关注、点赞、收藏(一键三连) 想加入技术交流群的可以_定义一个movie_score()类,包含封装change_movie()类和get_score()类,并接收用户的

推荐文章

热门文章

相关标签