【论文精读2】R-MVSNet

news2024/11/26 22:52:49

R-MVSNet【递归多视图立体网络】,论文全名:“Recurrent MVSNet for High-resolution Multi-view Stereo Depth Inference”,CVPR 2019(CCF A)
在MVSNet的基础上做了一些改进,主要解决的问题是代价体正则化(Cost Volume Regulazation)过程当中对内存过大的问题,主要做了三点改动:
(1)在代价体正则化步骤,使用序列化GRU【门控递归单元】来代替3D CNN
(2)将soft argmin 替换为Softmax,并将原始的回归问题改为多分类问题计算交叉熵损失
(3)为产生具有亚像素精度的深度估计,对初始网络得到的深度图进行变分深度图细化(Variational Depth Map Refinement)

MVSNet是该系列论文的基础,建议先理解后再看这些优化的模型,详见【论文精读1】MVSNet系列论文详解-MVSNet。

一、问题引入

基于代价体的MVS重建方法主要限制之一是可扩展性,即代价体正则化的内存消耗成本使学习MVS很难应用于高分辨率场景。

MVS(Multi-View Stereo)指的是在多个具有重叠特征的图像、且内外参数已知的情况下对三维物体或场景进行重建。
在该类问题当中,通常会根据多个图像的匹配特征来构建代价体,并将其正则化为概率体以推断深度图。而无论是传统方法,还是使用基于神经网络的学习方法,在正则化时若将整个代价体作为输入,都会遇到内存消耗随尺度增加而立方级增加的情况,针对于此,传统方法和基于学习的方法都做了一些尝试:

就是一次性全局正则化成本体积C的替代方案

成本体积C可以被视为是D张成本图在深度方向上的映射

传统方法通常隐式的调整代价体,如:

局部深度传播迭代细化深度图/点云
使用简单平面扫描顺序正则化代价体
具有深度赢家通吃的2D空间成本聚集

而基于学习的方法做了两种尝试:

如OctNet和O-CNN利用3D数据的稀疏性将八叉树结构引入到3D CNN中,但仍限于分辨率的重建。
Surface Net和Deep MVS等将工程化的分而治之策略应用于MVS重建,但面临全局上下文信息丢失和速度减慢的问题。

二、模型结构

在这里插入图片描述

本文的核心思想是利用GRU(RNN神经网络变种),将普通正则化一次性在多个深度上进行的过程,转为逐个深度进行、并利用了上一个深度的输出(即将深度尺度看作循环神经网络的时间尺度),从而将原来D个深度样本时需要的内存T减小到了T/D(该数值仅为方便理解)。

所提出的网络建立在MVSNet架构的基础上,但使用卷积门控递归单元(GRU)而不是3D CNN以顺序方式正则化成本量。通过顺序处理,算法的在线内存需求从三次减少到二次。
其实就是从原本CNN需要正则化3D成本体积-》通过门控递归单元(GRU)沿着深度方向顺序正则化2D成本图
显著减少了内存消耗,并使高分辨率重建变得可行

1.特征提取

给定参考图像I1【1张】及其相邻源图像的集合【 { I i } i = 2 N \left\{ I _ { i } \right\} _ { i = 2 } ^ { N } {Ii}i=2N】MVSNet提出了一种端到端的深度神经网络来推断参考深度图D。在其网络中,深度图像特征{Fi}Ni=1首先通过2D网络从输入图像中提取。然后,这些2D图像特征将通过可微分单应性被扭曲到参考相机截头体中,以构建3D空间中的 { V i } i = 1 N \left\{ V _ { i } \right\} _ { i = 1 } ^ { N } {Vi}i=1N个特征体积。

为了处理任意N视图图像输入,提出了一种基于方差的代价度量,将N个特征体映射到一个代价体C。

与其他立体和MVS算法类似,MVSNet使用多尺度3D cnn对代价体进行正则化,并通过softargmin回归计算参考深度图D。

2.特征体正则化

2.1 特征图->特征体

在这里插入图片描述

即图中圆圈M的过程。它将N张源图像和参考图通过特征提取网络得到了N个特征图,通过深度D0对应的单应矩阵H进行变换得到N个特征体,并对这N本书(特征体)的每页(每个特征通道)上的每个特征点计算方差值,最终得到一本由方差值组成的书(代价体,即图中C0)。

该部分不理解的详见MVSNet,这是MVSNet的核心内容即可微单应变换。

2.2 特征体正则化

在这里插入图片描述

在正则化部分主要使用的网络结构在图中已经画出,首先是一个橙色的卷积网络来将通道数由32变为16,随后通过3层【 为了进一步增强正则化能力,堆叠三层GRU单元以形成更深的网络 】叠加的GRU分别将通道数变为16,4,1,最终输出的是一张正则化后的代价图(Cost Map)

个人理解其实这时候代价图上各点的值代表了该点属于当前深度的概率值。
随后,重复2.1的过程深度计算出深度为D1时的代价体,同样输入该网络进行正则化,需要注意的是这时候在GRU层的输入不仅是该深度下的代价体,同时还利用了上一个深度D0时各GRU层的输出,即循环神经网络【RNN】的思想。

这部分是降低代价体正则化内存消耗的核心步骤,实现原因在于每次网络只对一个深度的代价体进行正则化,而非像MVSNet一样一次性对所有深度的代价体正则化,如下图所示,右边的RNN结构等同于左边,本文模型同理,即每次的内存消耗只是左边图上的一次神经网络训练消耗。

在这里插入图片描述

2.3 正则化代价图 -> 概率体

该部分是对MVSNet的第二个改动点,与其Soft argmin(沿深度方向求 概率*当前深度 的期望值)不同,直接将各个深度正则化后的代价图(个人理解图上各点值代表该点属于当前深度的概率值)聚合成一个概率体P,并在这当中沿P的深度方向使用了Softmax,即此时各点的值沿P深度方向和为1的概率。

3.计算损失

将概率体P与真实图像所得的真实概率体Q计算交叉熵损失,即第三个改动点,将原始求概率期望的回归问题变成了一个多分类的问题。

将回归问题-》转化为分类问题

  • 回归:估计一个连续值
  • 分类:预测一个离散类别

真实概率体Q是由真实的深度图得到,具体来说深度图上各像素点都对应了一个深度值,将该深度图复制D份(深度样本数),各像素点在真实深度的那层取1,其他层取0,即一个深度方向上的One-Hot操作。

【补充】

One-Hot编码是一种常用的数据表示方法。One-Hot操作是将分类变量转换为二进制向量的过程,其中每个元素表示变量的一个特定类别。这通常用于处理分类任务,其中模型需要接受分类信息作为输入。

具体来说,One-Hot编码将一个包含有限个可能取值的分类变量映射到一个由0和1组成的向量,其中每个元素对应一个类别,如果观察值属于该类别,则对应元素的值为1,否则为0。

随后,对概率体P来说,深度图上的每一个点在深度方向上有D个Softmax后的概率值,即属于深度d这一“类”的概率;而真实概率体Q则相当于给出了该点所在深度“类”的标签,因此即转换为一个求交叉熵损失的多分类问题,公式如下:

在这里插入图片描述

【补充】

  • Softmax回归是一个多类分类模型
  • 使用Softmax操作子得到每个类的预测置信度
  • 使用交叉熵来衡量预测和真实概率之间的的区别

三、变分深度图细化(Variational Depth Map Refinement)

该部分据论文表述是:One concern about the classification formulation is the discretized depth map output. To achieve subpixel accuracy, a variational depth map refinement algorithm is proposed in Sec. 4.2 to further refine the depth map output.,即分类方法的一个关注点是离散化的深度图输出,而为了达到亚像素精度,提出了一种变分深度图细化算法。
其实对于这个“亚像素精度”的理解还是有点模糊,是指图像亚像素点也具有对应的深度值吗?

该步骤的输入是网络得到的初始深度图,具体来讲,是对各像素点取深度值,深度值的来源是在各正则化后的Cost Map沿深度方向上观察,取概率最大的那个深度作为该点深度,进行得到一张完整的深度图。

这就是论文中所说的利用argmax的Winner-take-all(赢家通吃)策略,即直接取最有可能的那一个,而不是沿深度方向求期望等。
这也是论文提到的,在训练过程中需要计算出概率体P,但在测试时只需得到各深度下正则化后的Cost Map并使用该策略即可获取深度图。(In addition, while we need to compute the whole probability volume during training, for testing, the depth map can be sequentially retrieved from the regularized cost maps using the winner-take-all selection)

变分深度图细化的过程,其实可以看做一个对像素点不断重投影并计算、迭代减小一个特定重投影误差Error的过程,表述如下:
Given the reference image I1, the reference depth map D1 and one source image Ii, we project Iito I1 through D1 to form the reprojected image Ii→1. The image reprojection error between I1 and Ii→1 at pixel p is defined as:

给定参考图像I1、参考深度图D1和一个源图像Ii,将原图Ii按照推测深度图D1映射到参考图I1上以得到重投影图像Ii→1。重投影图像和参考图之间的误差被定义为

在这里插入图片描述

其中Ei photo 是两个像素之间的光度误差,Ei smooth 是保证深度图平滑度的正则化项。
论文用零均值归一化互相关 (ZNCC) 来测量光一致性 C(·),并使用 p 与其邻居 p’ ∈ N § 之间的双边深度平方差 S(·) 来获得平滑度。
在细化过程中,不断迭代地最小化参考图像和所有源图像之间、所有像素点的总的图像重投影误差。

在这里插入图片描述

通过该过程获得了两个效果:
(1)图(g)->图(f)消除了阶梯效应(stair effect),平滑项起了作用
(2)对小范围内的深度值进行微调,达到亚像素级的深度精度

【补充】

亚像素级别的深度通常是指在图像处理中,通过软件技术对图像进行更精细的处理,以提高图像的分辨率和精度12。在相机成像的过程中,获得的图像数据是将图像进行了离散化的处理,由于感光元件本身的能力限制,到成像面上每个像素只代表附近的颜色。例如两个感官原件上的像素之间有4.5um的间距,宏观上它们是连在一起的,微观上它们之间还有无数微小的东西存在,这些存在于两个实际物理像素之间的像素,就被称为“亚像素”12。

四、总结

这篇R-MVSNet是Yao Yao等原班人马针对MVSNet在内存消耗上的一个改进,所以基本思想没变,主要是利用不同视角图像特征变换至同一假设深度下,通过差分来判断某特征点属于当前深度的可能性,主要是在差分后代价体正则化步骤用了RNN序列化来做,是用时间换内存空间思想的一种应用。

五、讨论

1.论文针对不同的正则化方法给出了一个描述图:

在这里插入图片描述

该图描述即除一次性全局正则化代价体外,几种通过深度方向顺序处理代价体的优化思路:

图(a)是最简单的顺序方法,即赢家通吃的平面扫描立体声,它粗略地用更好的深度值替换像素级深度值,因此会受到噪声的影响。

图(b)改进的代价聚合方法,在不同深度过滤匹配成本 C(d),以便为每个成本估计收集空间上下文信息。

图©是本项工作遵循顺序处理的思想,提出的基于卷积 GRU的更强大的循环正则化方案,能够在深度方向上收集空间以及单向上下文信息,这实现了与全空间 3D CNN相当的正则化结果,但在运行时内存中效率更高。

图a就是上文中提到过的winner-take-all原则,即在深度方向上逐个点计算,取最可能的深度值来用
图b主要增加了空间“上下文”信息,这里上下文有点歧义,其实是指空间邻域信息,而且论文中所说的“在不同深度过滤匹配成本C(d)”感觉也不对,不应该是不同深度,原文是这样的 cost aggregation methods filter the matching cost C(d) at different depths (Fig. 1 (b)) so as to gather spatial context information for each cost estimation.
图c则是本文的,逐深度来做能够考虑在深度方向、以及空间上下文的信息,并且由于每次只做一个深度层,内存消耗也是一个HxW.
图d是MVSNet为代表的直接使用3D CNN的方法,虽然直接考虑全局但由于同时操作多个深度内存消耗变为HxWxD[D是图的数量].

2.此外,论文中还提到了一个选取深度样本数D的策略——Inverse Depth,但并没有详细展开讲,之说在supplementary material里详细讲但并没有找到…
这个应该还挺重要的,因为论文中说:
Most deep stereo/MVS networks regress the disparity/depth outputs using the soft argmin operation, which can be interpreted as the expectation value along the depth direction [30]. The expectation formulation is valid if depth values are uniformly sampled within the depth range. However, in recurrent MVSNet, we apply the inverse depth to sample the depth values in order to efficiently handle reconstructions with wide depth ranges.
即沿深度求期望是当深度样本值在[Dmin,Dmax]均匀采样时才有效,但RMVSNet为了高效处理更广深度范围的重建而是用这个inverse depth设置,很明显不是均匀采样的,也就是关乎着单应变换时对应的具体的深度值取值的问题。

3.在训练时,论文指出
to prevent depth maps from being biased on the GRU regularization order, each training sample is passed to the network with forward GRU regularization from dmin to dmax as well as the backward regularization from dmax to dmin,
即为了防止GRU在按深度采样由小到大有偏差问题,会由大到小再训练一遍。

4.论文指出
The memory requirement of R-MVSNet is independent to the depth sample number D, which enables the network to infer depth maps with large depth range that is unable to be recovered by previous learning-based MVS methods.
即该方法的内存消耗与深度的采样数无关,这就是逐深度优化正则体的好处,但其实也就是用时间换空间。

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

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

相关文章

大语言模型概述|亚马逊这些互联网公司为什么花巨资训练自己的模型?

2023年可谓是大语言模型元年,OpenAI、亚马逊、谷歌等互联网公司争先恐后推出了自己的大语言模型:GPT-4、Titan、PaLM 2,还有亚马逊即将推出的第二个大语言模型Olympus等等。这一革命性技术如今已经在全球范围内引发了广泛的讨论和关注&#x…

用于部署汽车AI项目的全面自动化数据流程

如何创建、优化和扩展汽车 AI 的数据流程 想到汽车行业的人工智能 (AI) 时,脑海中可能会立即浮现未来的道路上遍布自动驾驶汽车的情景。虽然这一切尚未实现,但汽车行业已在 AI 方面取得诸多进步,不仅安全性提高,车内体验也得到改…

餐饮展示小程序的作用是什么

餐饮是市场重要的组成部分,尤其是我国八大菜系,各类细分菜数量非常多,并分布在全国,各类大小品牌餐饮商家数量也非常庞大,每个城市的商业街都是一个接一个餐厅,酒类、酒店多样。 餐饮行业经营痛点比较明显…

C++入门,详解类和对象(1)

类和对象 一,前言二,类的介绍2.1类的引入2.2类的定义 三,类访问限定符及其分装3.1访问限定符说明 四,类的作用域五,类的实例化六,类对象模型6.1类的存储方式6.2类的大小计算 七,this指针7.1this…

Java_static 继承

static static修饰成员变量 static修饰成员变量的应用场景 static修饰成员方法 static修饰成员方法的应用场景 static的注意事项 static的应用知识:代码块 static的应用知识:单例设计模式 饿汉式单例模式 懒汉式单例模式 面向对象三大特征之二:继承 什么是继承 继承的好处 继…

永磁材料测试系统主要应用

1. 产品特征 永磁材料测试系统装置具有独立的电参量校准功能。采用慢速减幅方式对样品退磁。超宽范围的电流连续稳定调节。磁通计的积分器零漂和霍尔探头的非线性误差影响小。系统配置连续可调双极性磁化电源,方便样品的磁化与退磁。测量B或J:采用B或J线…

【开源】基于JAVA的生活废品回收系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容三、界面展示3.1 登录注册3.2 资源类型&资源品类模块3.3 回收机构模块3.4 资源求购/出售/交易单模块3.5 客服咨询模块 四、免责说明 一、摘要 1.1 项目介绍 生活废品回收系统是可持续发展的解决方案,旨在鼓…

使用 MATLAB HDL Coder 和 FPGA 快速实现自动白平衡(AWB)

使用 MATLAB HDL Coder 和 FPGA 快速实现自动白平衡(AWB) 在此项目中,我们将使用 MATLAB Simulink 和 HDL 编码器创建自定义 IP -- AWB。 MATLAB 设计 自动白平衡模块的设计是使用 HDL Coder 在 MATLAB 和 Simulink 中创建的。HDL Coder能够生…

Vim + YCM + clangd

目录 1. Vim的安装 1.1 Vim安装vim-plug2. 安装YCM3. 进行语言补全配置 3.1 测试效果 1. 目的:让 Vim 像 C/C IDE 一样具备自动补全代码等功能 2. YCM:YouCompleteMe GitHub - ycm-core/YouCompleteMe: A code-completion engine for Vi…

[数据结构]—带头双向循环链表——超详解

💓作者简介🎉:在校大二迷茫大学生 💖个人主页🎉:小李很执着 💗系列专栏🎉:数据结构 每日分享✨:旅行是为了迷路,迷路是为了遇上美好❣️❣️❣️ …

2年博士后|心外医生赴美国耶鲁大学开展研究

G医生决定放弃申报CSC,改为自费出国,并在美国密歇根大学安娜堡分校和耶鲁大学两所名校中选择了更为出名的后者。因为不是CSC出资,G医生得以通过签证,顺利出国,实现了在世界知名高校从事2年博士后的个人职业规划目标。 …

11月15日星期三今日早报简报微语报早读

1、2023胡润女企业家榜出炉:郭得胜夫人邝肖卿首次成为中国女首富,龙湖吴亚军蝉联中国白手起家女首富; 2、叶剑英元帅夫人吴博逝世,享年106岁; 3、外交部:所谓“联合国军”是冷战产物,于法无据…

低代码JNPF,发挥软件定制的威力

目录 1.介绍 2.可视化逻辑编排工具 提供自动化的解决方案 3.功能特色展示 4.结语 近几年,随着低代码与无代码相关话题的火热,逻辑编排作为其重要构成部分也备受关注,集团内外不乏优秀的实践。之前在做技术调研时发现了不少业内逻辑编排相关的…

智能导诊的开发技术有哪些?

智能导诊源码 智能导诊是医疗领域中一项重要的应用,它可以帮助医生和患者更快速、更准确地诊断疾病,提高医疗效率和精度。以下是智能导诊开发技术的几个方面: 1.数据收集整合 智能导诊系统需要收集大量的医疗数据,包括患者症状、病史、检查结…

jenkins+centos7上传发布net6+gitlab

工作中实践了一下jenkins的操作,所以记录一下这次经验 首先安装好jenkins并注册自己的jenkins账号 因为我们的项目代码管理使用的是gitlab,在开始之前先在jenkins上安装gitlab的插件,安装之后应该是要重启jenkins的服务,后续jen…

python+django+mysql个人博客项目部署(VMware部署)

目录 一、Vmware新建win7虚拟机 二、组件/软件安装 2.1 安装python3 2.2 更新pip 2.3 安装pycharm 2.4 安装django 2.5 win安装mysql 三、配置数据库 3.1 安装sqlite客户端 3.2 db.sqlite3导出为myblog.sql 3.3 Heidisql连接本地sql 四、部署项目 4.1 安装模块 4.2 尝试运行 …

python之 flask 框架(2)项目拆分的 执行逻辑

项目的结构图 app.py # 导入__init__.py 比较特殊 from APP import create_appapp create_app() if __name__ __main__:app.run(debugTrue)init.py # __inti__.py # 初始化文件,创建Flask应用 from flask import Flask from .views import bluedef create_ap…

OpenAI 上线新功能力捧 RAG,开发者真的不需要向量数据库了?

近期, OpenAI 的开发者大会迅速成为各大媒体及开发者的热议焦点,有人甚至发出疑问“向量数据库是不是失宠了?” 这并非空穴来风。的确,OpenAI 在现场频频放出大招,宣布推出 GPT-4 Turbo 模型、全新 Assistants API 和一…

初试 jmeter做压力测试

一.前言 压力测试是每一个Web应用程序上线之前都需要做的一个测试,他可以帮助我们发现系统中的瓶颈问题,减少发布到生产环境后出问题的几率;预估系统的承载能力,使我们能根据其做出一些应对措施。所以压力测试是一个非常重要的步…

【遗传算法】Genetic algorithms (GAs) 遗传算法原理入门与应用代码

目录 1 遗传算法 2 遗传算法的基本步骤 3 Python示例 4 遗传算法解决TSP(旅行商问题) 1 遗传算法 遗传算法是一种优化搜索算法,模拟自然选择和遗传机制来寻找问题的最优解。这种算法的设计灵感来自于达尔文的进化论和遗…