论文阅读《Fast-MVSNet: Sparse-to-Dense Multi-View StereoWith Learned Propagation and Gauss-Newton Refine》

论文地址:Fast-MVSNet: Sparse-to-Dense Multi-View StereoWith Learned Propagation and Gauss-Newton Refine

一、摘要

  以往的MVSNet都聚焦于提高精度,这篇文章从效率入手,提出了Fast-MVSNet。在重建过程中采用从稀疏到稠密,从粗糙到精细的策略。网络主要分为三个部分:

  1. 构造稀疏代价体来学习得到稀疏但高分辨率的深度图;
  2. 使用小型的CNN模块对局部区域内像素的深度依赖关系进行抽取,以此来稠密化深度图;
  3. 3.使用可微分的高斯牛顿层来处理得到亚像素精度的深度图。

二、网络结构

在这里插入图片描述

2.1 稀疏深度图生成

在这里插入图片描述

  第一步是针对参考视图 I 0 I_{0} I0 生成稀疏的高分辨率的深度图如图所示:
在这里好好图片描述
  一般的MVSNet方法使用分辨率的深度图进行训练需要将ground true图像下采样,下采样过程中会导致不对齐,丢失细节;下采样过程中,在视差不连续的区域会产生错误插值。
  和一般的做法一样,先是使用卷积神经网络提取图像特征,经过相机参数warp到参考视图构建代价体,得到 1 4 H × 1 4 W × N × F \frac{1}{4}H \times\frac{1}{4}W \times N\times F 41H×41W×N×F的稀疏代价体 ,其中 N N N 为深度范围, F F F 为特征通道数。由于稀疏的代价体的表现像空洞卷积,因此能拥有更大的感受野。最后使用一个3D U-Net来对稀疏代价体正则化,经过可微分的 argmax操作得到一个稀疏的初始深度图。

2.2 深度传播

在这里插入图片描述
  初始深度图估计得到了一个稀疏的初始深度图 D D D,在这一步需要将初始深度图经深度传播得到一个稠密的深度图 D ~ \tilde{D} D~ ,使用联合双边上采样,使用原始图像作引导信息如式1所示:
D ~ ( p ) = 1 z p ∑ q ∈ N ( p ) D ( q ) f ( ∥ p − q ∥ ) g ( ∥ I p − I q ∥ ) (1) \tilde{D}(p)=\frac{1}{z_{p}} \sum_{q \in N(p)} D(q) f(\|p-q\|) g\left(\left\|I_{p}-I_{q}\right\|\right)\tag{1} D~(p)=zp1qN(p)D(q)f(pq)g(IpIq)(1)
其中, f f f用于衡量两个像素之间的空间距离, g g g 用于衡量两个像素之间的特征相似性, N ( p ) N(p) N(p) k × k k\times k k×k的邻域像素, z p z_{p} zp是归一化项;使用一个简单的神经网网络来表示 f ( ∥ p − q ∥ ) g ( ∥ I p − I q ∥ ) f(\|p-q\|) g\left(\left\|I_{p}-I_{q}\right\|\right) f(pq)g(IpIq)如式2所示:
D ~ ( p ) = 1 z p ∑ q ∈ N ( p ) D ( q ) ⋅ w p , q (2) \tilde{D}(p)=\frac{1}{z_{p}} \sum_{q \in N(p)} D(q) \cdot w_{p, q}\tag{2} D~(p)=zp1qN(p)D(q)wp,q(2)
其中权重 w p , q w_{p,q} wp,q可以通过神经网络来学习到;

2.3 高斯牛顿层优化

在这里插入图片描述
  由于前面的步骤为了兼顾效率,因此得到的稠密深度图的精度需要进一步提升,为此使用可微分的高斯牛顿法来优化深度图,优化的目标是最小化一下的代价函数:
E ( p ) = ∑ i = 1 N ∥ F i ( p i ′ ) − F 0 ( p ) ∥ 2 (3) E(p)=\sum_{i=1}^{N}\left\|F_{i}\left(p_{i}^{\prime}\right)-F_{0}(p)\right\|_{2}\tag{3} E(p)=i=1NFi(pi)F0(p)2(3)
其中 F i F_{i} Fi F 0 F_{0} F0 分别表示源图像和参考图像提取得到的特征, p i ′ p_{i}^{\prime} pi 表示参考视图中的 p p p 点在第 i i i 个视图中的对应点, p i ′ p_{i}^{\prime} pi点计算公式如式4所示(先将p点反投影到到世界坐标系中,再投影到 i i i视角的图像坐标系中, D ~ ( p ) \tilde{D}(p) D~(p)为深度值):
p i ′ = K i ( R i R 0 − 1 ( D ~ ( p ) K 0 − 1 p − t 0 ) + t i ) (4) p_{i}^{\prime}=K_{i}\left(R_{i} R_{0}^{-1}\left(\tilde{D}(p) K_{0}^{-1} p-t_{0}\right)+t_{i}\right)\tag{4} pi=Ki(RiR01(D~(p)K01pt0)+ti)(4)
其中 { K i , R i , t i } i = 0 N \left\{K_{i}, R_{i}, t_{i}\right\}_{i=0}^{N} {Ki,Ri,ti}i=0N分别表示第 i i i 视图的相机内参,旋转矩阵和平移矩阵;
  使用高斯牛顿法来最小化代价函数 E p E_{p} Ep,对于每个残差 r i ( p ) r_{i}(p) ri(p),计算关于初始深度值 D ~ ( p ) \tilde{D}(p) D~(p)的一阶导数:
J i ( p ) = ∂ F i ( p i ′ ) ∂ p i ′ ⋅ ∂ p i ′ ∂ D ~ ( p ) (5) J_{i}(p)=\frac{\partial F_{i}\left(p_{i}^{\prime}\right)}{\partial p_{i}^{\prime}} \cdot \frac{\partial p_{i}^{\prime}}{\partial \widetilde{D}(p)}\tag{5} Ji(p)=piFi(pi)D (p)pi(5)
以此得到当前深度值的增量 δ \delta δ
δ = − ( J T J ) − 1 J T r (6) \delta=-\left(J^{T} J\right)^{-1} J^{T} r\tag{6} δ=(JTJ)1JTr(6)
式中, J J J为雅克比矩阵 { J i ( p ) } i = 1 N \{J_{i}(p)\}_{i=1}^{N} {Ji(p)}i=1N r r r 为残差向量 { r i ( p ) } i = 1 N \{r_{i}(p)\}_{i=1}^{N} {ri(p)}i=1N,更新后的深度值如式7所示:
D ~ ′ ( p ) = D ~ ( p ) + δ (7) \tilde{D}^{\prime}(p)=\tilde{D}(p)+\delta\tag{7} D~(p)=D~(p)+δ(7)

三、损失函数

损失函数如式8所示:
 Loss  = ∑ p ∈ p valid  ∥ D ~ ( p ) − D ^ ( p ) ∥ + λ ⋅ ∥ D ~ ′ ( p ) − D ^ ( p ) ∥ (8) \text { Loss }=\sum_{p \in \mathbf{p}_{\text {valid }}}\|\tilde{D}(p)-\hat{D}(p)\|+\lambda \cdot\left\|\tilde{D}^{\prime}(p)-\hat{D}(p)\right\|\tag{8}  Loss =ppvalid D~(p)D^(p)+λ D~(p)D^(p) (8)
其中 D ^ ( p ) \hat{D}(p) D^(p)为ground true深度图, p v a l u e p_{value} pvalue为有效的像素点集合;同时使用了优化前和优化后的深度图求损失;

四、实验结果

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

CV科研随想录

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

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

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

打赏作者

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

抵扣说明:

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

余额充值