【论文阅读】PatchmatchNet

【论文阅读】PatchmatchNet

2022/06/07

论文:PatchmatchNet: Learned Multi-View Patchmatch Stereo(2020)

论文试图解决什么问题

由于3D CNN通常耗费时间和内存,因此一些方法在特征提取期间对输入进行下采样,并以低分辨率计算成本量和深度图。然而,以低分辨率提供深度图会损害准确性。本文将patchmatch的算法结合到cascade中,旨在减少高分辨率多视图立体的内存消耗和运行时间

论文解决方案关键点

应用了迭代的多尺度Patchmatch算法。对某个像素点A,找到其相邻像素点B, C, D, E,BCDE分别又有对应的深度值,则将这些深度值作为A的深度值候选,如果有cost更低的则采用。采用后再在该新深度值的附近取值,看是否有更加合适的深度值,迭代至结束。

adaptive propagation,neighbor的选取不再是固定的pattern,而是自适应尽可能选出同一表面上的点。

在evaluation时,也使用类似的自适应算法,而不是对整个cost volume进行3D regularization。

论文的主要贡献

在性能几乎不变的情况下,速度至少快了2.5倍,内存消耗至少小了2倍。

论文的数据集和开源代码

除了DTU和Tanks&Temples以外,还在ETH3D上进行测试。

背景

当给定一些图像以及对应的相机参数(包括内参和外参)时,multi-view stereo (MVS)主要用来把场景以点云或mesh的方式进行重建。在传统方法中,许多方法(譬如COLMAP、Gipuma、ACMM等)基于PatchMatch算法进行深度图的估计。PatchMatch算法主要包括三个步骤:

  • Initialization:每个像素随机初始化深度值;
  • Propagation:把每个像素的depth hypothesis传播到周围像素;
  • Evaluation:对每个像素,从所有的hypotheses中选取cost最小的作为估计值。

在Initialization以后,PatchMatch在Propagation和Evaluation之间循环,直至结果收敛。PatchMatch利用了深度图的空间相关性,通过随机初始化和传播过程避免了对所有可能的深度值进行验证,所以对memory要求比较低。

而目前,基于深度学习的方法在各个MVS benchmark上面有了很好的表现。MVSNet是一个十分具有代表性的方法,它在预先给定的深度范围内采样D个depth hypotheses,然后基于plane-sweeping stereo和differential warping构建cost volume,使用3D U-Net进行regularization得到probability volume,最后使用soft argmin(求期望)得到深度的估计。在后续的诸多工作中,由于3D convolution十分昂贵,一些方法(R-MVSNet、D2HC-RMVSNet等)通过使用RNN对cost volume进行sequentially regularization,对显存进行了很好的限制,但是增加了运行时间。另一些方法(CasMVSNet、UCS-Net、CVP-MVSNet等)使用cascade cost volume进行coarse-to-fine的估计,显存和时间都大幅缩减,并且有更好的表现。

整体网络结构

PatchmatchNet是一种以learning-based Patchmatch为主体的cascade结构,主要包含基于FPN的多尺度特征提取,嵌入在cascade结构中的learning-based Patchmarch以及spatial refinement模块(用来上采样至原图大小)。整体的网络流程如下图所示,大致包含三个步骤:

  1. 进行多尺度的特征提取;
  2. 先使用最低分辨率的特征图构建包含所有深度范围(0-192)的cost volume,进行代价聚合和深度回归得到初始深度图;
  3. 根据初始深度图,利用PatchMatch算法,构建一个包含较小的深度搜索范围的cost volume,以减少计算量和内存。

注:设原图的分辨率为[W, H],则在stage k,深度图的分辨率为 [ W 2 k , H 2 k ] [\dfrac{W}{2^k}, \dfrac{H}{2^k}] [

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值