【多视角立体视觉】MVSNet论文、评价指标介绍

本文主要对基于学习的多视角立体视觉中的第一篇深度学习方法:MVSNet进行翻译和解读,以及添加一些个人的理解,并且在文章中介绍MVSNet两个评价指标的原理(distance metric、percentage metric)

摘要

提出一种端到端的深度学习体系结构:从多视图图像,推断深度图。

网络:

  1. 提取深度视觉图像特征
  2. 通过可微单应变形,在ref视椎体(ref camera frustum)上,构建三维损失立方
  3. 应用3D卷积,对初始深度图,进行正则化和回归;然后使用参考图像,对初始深度图,进行细化,以生成最终的输出

创新点:

使用基于方差的损失度量,灵活地适应任意N视图的输入,这个度量将多个特征映射为一个损失特征

在DTU上训练,在Tanks and Temples上评估。

通过后处理,生成点云,与之前的技术相比,方法更好、速度更快。

泛化性强,不通过微调也可以有较好的效果

1. Introduction

Review

MVS:从重叠图像,估计出稠密的表示

MVS传统方法:

使用手工制作的相似性度量和工程正则化,计算密集的对应关系,恢复3D点。

局限:场景的 低纹理、镜面反射 区域,导致重建不完整。

最近的算法:

accuracy较好,但completeness需要提高

基于CNN的方法:

基于学习,引入全局语义信息(如:镜面反射的先验)

【立体匹配】适合使用CNN方法:图像对已经预先校正,问题变成水平像素方向的【视差估计】,不需要考虑相机参数。

【MVS】与立体匹配不同,输入图像是任意相机几何体,给学习方法的使用带来很大问题

SurfaceNet:提前构建彩色体素立方体(Colored Voxel Cubes),将所有图像像素颜色和相机信息,组合到单个的volume中,作为网络输入

LSM,Learned Stereo Machine:直接利用,可微的 投影/非投影,实现端到端的训练/推理。

这两种方法:都利用 regular grids 的体积表示,因为3D体积巨大的内存消耗,导致网络难以扩展。

LSM:仅处理【低体积分辨率】的合成对象;

SurfaceNet:采用启发式分治策略,大规模重建需要很长时间。

本文方法:

每次计算一个深度图,而不是一次计算整个3D场景。

  1. 【一个ref图像】和【多个src图像】作为输入,推断ref的深度图。

  2. key insight:可微单应变形 (differentiable homography warping )

该操作隐式编码网络中的相机几何,从二维图像特征,构建三维损失立方,支持端到端训练。

相机几何(camera geometry):应该指的是相机与物体之间的几何关系。

  1. 提出一种基于方差的度量

可以适应输入中任意数量的src

该度量:将多个特征,映射为volume中的一个损失特征。

  1. 将损失立方(Cost Volume)进行多尺度3D卷积,回归初始深度图。

  2. 利用ref图像,对深度图进行细化,提高边界区域的accuracy。

与SurfaceNet和LSM的不同:

  1. 为了进行深度图推断,本文的3D Cost Volume建立在 camera frustum 上,而不是regular Euclidean space。

    下面是一个相机椎体的示意图。

在这里插入图片描述

  1. 本文方法:将MVS重建问题,解耦为。更小的逐视图深度图估计问题,使大规模重建成为可能。

实验:

在DTU上训练和评估

经过简单的后处理,completeness和overall 与之前的相比最优。

在Tanks and Temples上验证泛化能力

不需要精调

运行时间比之前的技术更快

2. Related Work

MVS Reconstruction

MVS方法分为:

1)直接点云重建:直接操作3D点,依靠传播策略逐渐加密重建,传播顺序进行,难以并行化,处理时间较长

2)体积重建:将三维空间,划分为规则的网格,估计每个体素是否附着在曲面上,空间离散化错误,高内存消耗

3)深度图重建:最灵活,将复杂的MVS问题解耦为相对较小的逐视图深度图估计问题,每次只关注一个参考和几个源图像

Learned Stereo

深度学习技术:用来更好地匹配 成对的patch

在立体匹配(Stereo Matching)中,一般都会构建 Cost Volume,来计算视差图,根据视差图生成深度图

Cost Volume

https://www.zhihu.com/question/366970399/answer/1340892604

cost volume 表示 pixel-wise matching cost

x : ref img 中的一个 pixel

X_i : 在ref的拍摄方向上,给定深度 d_i 处,对应的三维点

x_i :X_i 投影到 matching img 上的位置

cost volume记录的就是x和x_i的matching cost或相似程度
在这里插入图片描述
ref img 和 matching img 都已知相对位姿,ref img 中的一个pixel 沿着拍摄方向确定 search space,投影到matching img上形成epipolar line。

ref img上的一个pixel只能对应于matching img中epipolar line上的pixel。

在Search Space中取不同深度,得到不同的点 (d_1, d_2, …, d_9),分别对应epipolar line上的点 (x_1, x_2, …, x_9)

对于每一个x_i和x,根据其邻域信息,计算matching cost,得到x_i与x的匹配程度
在这里插入图片描述
以上面的 (x_1, x_2, …, x_9)为例,可以得到9个matching cost,可以构成一个vector。

这个vector表示: x点在matching img上关于(d_1, d_2, …, d_9)的matching cost
在这里插入图片描述
ref img上的每个pixel形成一个vector,组合在一起形成一个三维的tensor,就是cost volume(损失立方)

Learned MVS

SurfaceNet

LSM

3. MVSNet

在这里插入图片描述
主要过程:

  1. Image Feature Extract:N input image --> deep feature
  2. Differentiable Homography:deep feature --> feature volumes
  3. Cost Metric:feature volumes --> cost volumes
  4. Cost Volume Regularization:cost volume --> probability volume
  5. Initial Estimation:probability volume --> depth map
  6. Depth Map Refinement:depth map --> refined depth map

3.1 Image Feature

MVSNet第一步:提取N个输入图像 { I i } i = 1 N \{I_i\}^N_{i=1} { Ii}i=1N的深度特征 { F i } i = 1 N \{F_i\}^N_{i=1} { Fi}i=1N

使用:八层的2D卷积网络

在第三层和第六层,步长为2,将特征进行下采样,尺寸缩减为原来的一半。特征塔划分为三个scales。

每个scale内部,使用两个卷积层,提取更高级别的图像表示。

除了最后一个绿色的卷积,其余每个层都是Conv+batch-normalization+ReLU。

与常见的匹配任务类似,在所有的特征塔之间,参数共享,实现高效学习。

一个特征塔内部的结构:(输入图像为WxH)

Content Kernel Size Filter Number Stride Output
Conv+BN+ReLU 3 x 3 8 1 8 x W x H
Conv+BN+ReLU 3 x 3 8 1 8 x W x H
Conv+BN+ReLU 5 x 5 16 2 16 x W/2 x H/2
Conv+BN+ReLU 3 x 3 16 1 16 x W/2 x H/2
Conv+BN+ReLU 3 x 3 16 1 16 x W/2 x H/2
Conv+BN+ReLU 5 x 5 32 2 32 x W/4 x H/4
Conv+BN+ReLU 3 x 3 32 1 32 x W/4 x H/4
Conv 3 x 3 32 1 32 x W/4 x H/4

整个2D网络的输出,共32个通道,每个通道的特征尺寸降低至 W/4 x H/4

通道的增加,弥补了尺寸的减小

同时,每个图像都提取这样的一个32 x W/4 x H/4 的特征

3.2 Cost Volume

第二步:从提取的特征和输入相机中,构建3D cost volume。

在reference camera frustum 上构建损失立方。

I 1 I_1 I1:ref

{ I i } i = 2 N \{I_i\}^N_{i=2} { Ii}i=2N:src

{ K i , R i , t i } i = 1 N \{K_i,R_i,t_i\}^N_{i=1} { Ki,Ri,t

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KyrieLiu52

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值