【论文简述】DPSNet End-to-end Deep Plane Sweep Stereo(ICLR 2019)

news2025/1/16 0:23:44

一、论文简述 

1. 第一作者:Sunghoon Im

2. 发表年份:2019

3. 发表期刊:ICLR

4. 关键词:MVS、深度学习、端到端、代价体、代价聚合

5. 探索动机:双目立体匹配无法扩展到多视图,平面扫描方法无法进行端到端学习。

  • Recently, convolutional neural networks (CNNs) have demonstrated some capacity to address this issue by leveraging semantic information inferred from the scene. The most promising of these methods employ a traditional stereo matching pipeline, which involves computation of matching cost volumes, cost aggregation, and disparity estimation. Some are designed for binocular stereo  and cannot readily be extended to multiple views.
  • The CNN-based techniques for multiview processing both follow the plane-sweep approach, but require plane-sweep volumes as input to their networks.As a result, they are not end-to-end systems that can be trained from input images to disparity maps.

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

7. 核心思想:提出了深度平面扫描网络(DPSNet),用于鲁棒的MVS的端到端CNN框架。和同期的MVSNet的工作的区别如下:

we would like to refer the reader to the concurrent work by Yao et al. (2018) that also adopts differential warping to construct a multi-scale cost volume, then refined an initial depth map guided by a reference image feature. Our work is independent of this concurrent effort. Moreover, we make distinct contributions: (1) We focus on dense depth estimation for a reference image in an end-to-end learning manner, different from Yao et al. (2018) which reconstructs the full 3D of objects. (2) Our cost volume is constructed by concatenating input feature maps, which enables inference of accurate depth maps even with only two-view matching. (3) Our work refines every cost slice by applying context features of a reference image, which is beneficial for alleviating coarsely scattered unreliable matches such as for large textureless regions.

8. 实验结果:在几个标准数据集上获得了最先进的结果。消融研究表明,每一项技术贡献都能显著提高重建精度。

9. 论文下载:

https://arxiv.org/pdf/1905.00538.pdf

二、实现过程

1. DPSNet概述

深度平面扫描网络(DPSNet)由四个部分组成:特征提取、代价体构建、代价聚合和深度图回归。

2. 多尺度特征提取

首先将参考图像和目标图像输入7个卷积层(第一层7×7滤波器,其它层3 × 3滤波器)进行编码,并使用空间金字塔池化(SPP)模块从这些图像中提取多层次的上下文信息,有四个固定大小的平均池化块(16×16;8×8;4×4:2×2)。将多层次的上下文信息上采样到与原始特征图相同的大小后,将所有特征图连接起来,并输入2D卷积层,为所有输入图像生成32通道特征表示,用于构建代价体。

3. 使用非结构化双视图图像生成代价体

使用传统的平面扫描立体来生成图像对的代价体。为了减少图像噪声的影响,可以通过平均其他图像对的代价体来利用多个图像。首先设置垂直于参考视点z轴的虚拟平面的数量,并在逆深度空间均匀采样,如下所示:

其中L是深度标签的总数,dmin是用户指定的最小场景深度。

通过连接所有深度的参考图像特征和形变图像的特征,获得了一个4D体(W×H×2C×L),连接特征比特征的绝对差值更能提高性能。

给定4D体,DPSNet通过在连接的特征上使用一系列3D卷积来学习大小为W × H × L的代价体。所有的卷积层由3 × 3 × 3滤波器和残差块组成。在训练步骤中,只使用一个配对图像(另一个是参考图像)来获得代价体。在测试中,可以通过平均所有的代价体来使用任意数量的配对图像(N≥1)。

4. 代价聚合

代价聚合的关键思想是通过保留边缘的滤波在支持窗口内正则化噪声的代价体。在端到端学习过程中引入了一种上下文感知的代价聚合方法。上下文网络获取的代价体的每个切片和从上一步提取参考图像的特征,然后输出经过改进的代价切片。我们对所有代价切片执行相同的流程。将初始体和残差体相加得到最终的代价体。

具体,在上下文网络中使用空洞卷积进行代价聚合,以更好地利用上下文信息。上下文网络由7个带有3 × 3滤波器的卷积层组成,其中每一层都有不同的感受野(1,2,4,8,16,1和1)。使用上下文网络的共享权重来处理所有的代价切片。然后,通过双线性插值将代价体(其大小等于特征大小)上采样到图像的原始大小。

5. 深度回归

通过softmax运算σ(·)从预测代价cl计算每个标签概率。通过加权和计算预测标签值。深度由标签数量L和最小场景深度dmin计算,L和dmin分别设为64和0.5,如下所示:

6. 训练损失

设θ为网络中所有可学习参数的集合,包括特征提取、代价体生成和代价聚合(平面扫描和深度回归没有可学习参数)。让d^,d~分别为初始代价体和改进代价体的预测深度,设dgt为相应的监督信号。训练损失的公式为:

其中j·jH为Huber范数,在PyTorch中称为SmoothL1Loss。λ设置为0.7。

7. 实验

7.1. 数据集

MVS,SUN3D, RGBD,Scenes11,ETH3D

7.2. 实现

从头开始训练模型需要进行1200K次迭代。使用ADAM优化器,批大小为16,PyTorch,四个NVIDIA 1080Ti GPU,通常需要4天。网络2视图匹配前向传递大约需要0.5秒,每匹配一个新帧(640 × 480图像分辨率)需要额外的0.25秒。

6.3. 结果

SOTA

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

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

相关文章

基于python pyotrch开发的垃圾分类程序,含数据集,基于深度学习的垃圾分类程序

基于python的垃圾分类程序,提供数据集(pytorch开发) 完整代码下载地址:基于python pyotrch开发的垃圾分类程序,含数据集 垃圾分类是目前社会的一个热点,分类的任务是计算机视觉任务中的基础任务&#xf…

Qt进度条详解以及format显示格式

进度条的步进值 设置好进度条的最大值和最小值,进度条将会显示完成的步进值占总的步进值的百分比,百分比的计算公式为:百分比 (value() - minimum()) / (maximum() - minimum()) 部分函数含义 QProgressBar:横向或纵向显示进度的…

前端必备:五大css自动化生成网站(稀有级别!)

粉丝朋友们大家好,我是你们的 csdn的博主:lqj_本人 哔哩哔哩:小淼前端 另外,大家也可以关注我的哔哩哔哩账号,我会不定时的发布一些有关于全栈云开发以及前端开发的详解视频源码 1.微信小程序腾讯云开发之学生端收集数…

8.3K Star,这才是我们苦苦寻找的PDF阅读器。。。

程序员宝藏库:https://gitee.com/sharetech_lee/CS-Books-Store 无论是在大学期间,还是工作之后都很难绕开PDF软件。 比如看个论文、课件、演示文档…经常会用到PDF。 大学期间我是一个特别爱折腾各种各样电子产品、数码、软件、操作系统,曾…

囿于数据少?泛化性差?PaddleDetection少样本迁移学习助你一键突围!

目标检测是非常基础和重要的计算机视觉任务,在各行业有非常广泛的应用。然而,在很多领域的实际落地过程中,由于样本稀缺、标注成本高或业务冷启动等困难,难以训练出可靠的模型。 在目标检测这类较为复杂的学习任务上,样…

2023年跨境电商依然是风口,如何做好跨境电商

2023年1月1日,《区域全面经济伙伴关系协定》(RCEP)正式签署生效一周年,(rcep)于2023年1月2日起,RCEP对印度尼西亚正式生效,至此,我国已与其他14个rcep成员中的13个相互实施协定。这预示着,东南亚市场必将成…

下拉控件无法选中

本文迁移自本人网易博客,写于2012年1月9日,二维多段线绘制 - lysygyy的日志 - 网易博客 (163.com)做符号化过程中,一开始发现控件下拉后导致死机,原来是资源切换的问题,使用CAcModuleResourceOverride resOverride;即可…

Cadence PCB仿真使用Allegro PCB SI配置电压地网络电压的方法图文教程

⏪《上一篇》   🏡《总目录》   ⏩《下一篇》 目录 1,概述2,配置方法3,总结1,概述 本文简单介绍使用Allegro PCB SI软件配置电压地网络电压的方法。 2,配置方法 第1步:打开待仿真的PCB文件,并确认软件为Allegro PCB SI 如果,打开软件不是Allegro PCB SI则可这样…

C++连接mysql数据库并读取数据

1、需要包含mysql API的头文件 如果需要连接都本地的mysql数据库&#xff0c;前提是本地要已经安装了mysql数据库。这里要用到一些mysql的API&#xff0c;比如连接数据库、执行查询语句等操作&#xff0c;这些接口都包含在下面的头文件中&#xff1a; #include <mysql/mys…

kubernetes部署nacos集群(防坑)

kubernetes部署nacos集群&#xff08;防坑&#xff09; 官方nacos集群yaml文档参考&#xff1a; https://github.com/nacos-group/nacos-k8s.git 一、nacos 概览 Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集&#xff0c;帮助您快速实现动态…

VUE3中,使用Axios

axios是前后端数据交互的重要桥梁&#xff0c;理论和概念这里不再叙述了。可以看看官网。 axios中文文档|axios中文网 | axios 本例子&#xff0c;从简单到难。 目录 一、简单的使用 二、查询数据时出现等待窗体 一、简单的使用 1.废话少说&#xff0c;先使用HBuilder X建…

【测试】软件测试基本概念

努力经营当下&#xff0c;直至未来明朗&#xff01; 文章目录1. 什么是需求2.什么是测试用例&#xff1f;3. 软件错误Bug的概念:sparkles:小结普通小孩也要热爱生活&#xff01; 1. 什么是需求 【注】一旦提及“区别”&#xff0c;一定要回答 相同点不同点。 在企业中&#x…

算法刷题打卡第57天:合并两个有序链表

合并两个有序链表 难度&#xff1a;简单 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 示例 1&#xff1a; 输入&#xff1a;l1 [1,2,4], l2 [1,3,4] 输出&#xff1a;[1,1,2,3,4,4]示例 2&#xff1a; 输入&#x…

liunx中搭建python3.7环境和安装pycharm并搭建Django

首先第一步我们先安装python3.7的环境在liunx中&#xff0c;先去下面这个网站然后找到Gzipped source tarball https://www.python.org/downloads/release/python-377/ 下拉到最底下选择它然后下载 如果python中已经安装就跳过这一步 用python --version 检查后如果已经装好pyt…

【2022年终总结】期待下一个365天

2022结束啦&#xff01;&#xff01;&#xff01;日出万物生&#xff0c;日落满天星&#xff0c;期待下一个365天&#xff01;&#xff01;&#xff01; 不知不觉在CSDN断断续续写文章已经四个月了&#xff0c;回想这段日子&#xff0c;还是很有必要纪念一下的&#xff0c;本期…

ArcGIS基础实验操作100例--实验61数据框投影变换

本实验专栏参考自汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 高级编辑篇--实验61 数据框投影变换 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&am…

JavaScript 模块化 —— 从概念到原理

走过路过发现 bug 请指出&#xff0c;拯救一个辣鸡&#xff08;但很帅&#xff09;的少年就靠您啦&#xff01;&#xff01;&#xff01; 1. 为什么需要 Javascipt 模块化&#xff1f; 1.解决命名冲突。将所有变量都挂载在到全局 global 会引用命名冲突的问题。模块化可以把变…

人工智能与python

人工智能的话题在近几年可谓是相当火热&#xff0c;前几天看快本时其中有一个环节就是关于人工智能的&#xff0c;智能家电、智能机器人、智能工具等等&#xff0c;在我的印象里&#xff0c;提到人工智能就会出现 Python&#xff0c;然后我便在网上查找了相关信息&#xff0c;并…

(第三章)OpenGL超级宝典学习:认识渲染管线

OpGL超级宝典学习&#xff1a;认识渲染管线 前言 本章作为OpenGL学习的第三章节 在本章节我们将认识OpenGL的渲染管线 对管线内各个过程有一个初步的认识 ★提高阅读体验★ &#x1f449; ♠一级标题 &#x1f448; &#x1f449; ♥二级标题 &#x1f448; &#x1…

【KG】TransE 及其实现

原文&#xff1a;https://yubincloud.github.io/notebook/pages/paper/kg/TransE/ TransE 及其实现 1. What is TransE? TransE (Translating Embedding), an energy-based model for learning low-dimensional embeddings of entities. 核心思想&#xff1a;将 relationship …