PatchmatchNet

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

1.Introduction

出发点: 由于 3D CNN 通常耗费时间和内存,因此一些方法在特征提取期间对输入进行下采样,并以低分辨率计算成本量和深度图。然而,以低分辨率提供深度图会损害准确性

主要工作: 提出了 PatchmatchNet,将patchmatch的算法思想结合到cascade当中,旨在减少高分辨率多视图立体的内存消耗和运行时间


cascade方法简介
这种方法的优点是减少计算量和内存。首先进行多尺度特征提取,然后先使用最低分辨率的特征构建包含所有视差范围(0-192)的cost volume,进行代价聚合和视差回归得到初始视差图;然后在下一阶段中只需要根据初始视差图构建一个包含较小视差范围的cost volume,从而减少计算量和内存。

cascade方法相关论文:
(1)Cascade Cost Volume for High-Resolution Multi-View Stereo and Stereo Matching
(2)CFNet: Cascade and Fused Cost Volume for Robust Stereo Matching


Patchmatch算法简介
PatchMatch相关知识:Patchmatch-笔记_粟悟饭&龟波功的博客-CSDN博客


2. Method

PatchmatchNet 的结构如下图所示。它由多尺度特征提取、包含在从粗到细的框架中的基于学习的 Patchmatch模块和空间细化模块组成。

2.1 Multi-scale Feature Extraction

金字塔多尺度特征提取

2.2 Learning-based Patchmatch

设计的patchmatch模块具体结构如下图所示,左边是通过多尺度特征提取得到的各个视图的特征图,右边的的输出是深度图。首先介绍每个模块的功能。

2.2.1 Initialization and Local Perturbation

在 Patchmatch 的第一次迭代中,以随机方式执行初始化以促进多样化。基于预定义的深度范围 [dmin, dmax],在逆深度范围内对每个像素的 Df 深度假设进行采样,对应于图像空间中的均匀采样。为了确均匀地覆盖深度范围,将(逆)范围划分为 Df 区间,并确保每个区间都被一个假设覆盖。

对于阶段 k 的后续迭代,为每个像素生成一个随机扰动N,来进行随机搜索,随机搜索的范围逐渐减小。

2.2.2 Adaptive Propagation

传统的传播只在邻域内传播,如图(b)所示,存在的问题是因为深度值的空间一致性一般只存在于来自同一物体表面的像素,所以不同物体表面的传播没有太大的作用。因此,作者使用的是自适应传播,自适应传播的示意图如下图(c)所示,其传播的像素来自于同一个物体表面。

自适应传播的实现(基于Deformable Convolution Networks的思想):简单的说就是在原来的基础上加上一个偏置offest,假设当前像素的坐标为(x,y),则其上方像素坐标为(x,y+1),传统的传播就直接使用这个坐标来传播,自适应传播则要加上一个偏置,即传播的像素不是(x,y+1)而是(x+offestx,y+offesty)。这些偏置是使用2D卷积从参考图中学习到的,每个像素都有其不同的偏置,通过这些偏置,窗口就不再限定于正方形了。

2.2.3 Adaptive Evaluation

自适应评估模块执行以下步骤:可微扭曲、匹配成本计算、自适应空间成本聚合和深度回归。

Differentiable Warping
warping的公式如下,K是相机的内参矩阵,R是旋转,t是平移。

Matching Cost Computation
相似性的计算公式如下图所示,i是视图索引,j是视差,C是通道数,F0F_0{}F0​是参考图的特征, FiF_i{}Fi​是视图的特征。公式的意思是将特征在通道维度上分成G组,然后点乘,每个组取均值,即类似于GWC-Net构建cost colume的方法。

计算完成后SiS_iSi​的维度为Si∈RW×H×D×GS_i{}\in R^{W\times H\times D\times G}Si​∈RW×H×D×G。

每个视图的SiS_iSi​最终要加起来得到最后的相似性矩阵SSS,相加之前要乘上一个权重。本文的权重网络是由具有 1×1×1 内核和 sigmoid 非线性的 3D 卷积层组成,初始相似度SiS_iSi​经过权重网络后得到Pi∈PW×H×DP_i{}\in P^{W\times H\times D}Pi​∈PW×H×D,最终的权重wi(p)w_i(p)wi​(p)由下式得到:

然后将各个视图得到的SiS_iSi​相加得到Sˉ\bar{S}Sˉ:

Sˉ\bar{S}Sˉ的维度为Sˉ∈RW×H×D×G\bar{S}\in R^{W\times H\times D\times G}Sˉ∈RW×H×D×G,通过 3D 卷积后得到cost volume C,C的维度为C∈RW×H×DC\in R^{W\times H\times D}C∈RW×H×D。

Adaptive Spatial Cost Aggregation
这里的做法其实和自适应传播相似。传统的局部代价聚合通常在正方形窗口的邻域内进行,本文使用自适应的窗口,和自适应传播一样,通过从参考图中学习偏置offest来实现,最终代价聚合的公式为:

其中 wk 和 dk 是基于特征和深度相似性对成本 C 权重(详细见原文的补充材料)。C~\tilde{C}C~的维度为C~∈RW×H×D\tilde{C}\in R^{W\times H\times D}C~∈RW×H×D。

Depth Regression
聚合成本C~\tilde{C}C~通过softmax后得到概率矩阵P,最后通过加权和得到初始深度估计:

2.3 Depth Map Refinement

补充原图信息和特征信息进行卷积,学习到一个深度残差,加到初始深度估计上,得到最终的深度图。


总体步骤说明

前面说明了网络的各个模块的功能与大体实现思想,下面总结一下整体的步骤。
步骤: 每一层的patchmatch模块都需要迭代多次。在第一层的第一次迭代中,首先为每个像素随机初始化一个深度,然后通过传播和随机扰动得到更好的深度值,通过自适应评估模块得到下一次迭代的深度值,迭代一定次数后将深度图上采样输出给下一层,作为初始的深度值。这样经过三个patchmatch模块后得到初始的深度图,经过上采样和细化得到最终的深度图。


3 Conclusion

PatchmatchNet是一种基于学习的 Patchmatch 模块的的新型cascade网络,增加了基于深度特征的学习自适应传播和评估模块。 PatchmatchNet 具有低内存要求,独立于视差范围,与大多数基于学习的方法不同,PatchmatchNet 不依赖于 3D 成本量正则化。嵌入到cascade中,PatchmatchNet 进一步显示出高处理速度。尽管结构简单,但在 DTU、Tanks & Temples 和 ETH3D 上的大量实验表明,与最先进的技术相比,它具有非常低的计算时间、低内存消耗、良好的泛化特性和有竞争力的性能。 PatchmatchNet 使基于学习的 MVS 更高效,更适用于内存受限设备或时间关键应用程序。

基于Patachmatch的stereo matching笔记(三):《PatchmatchNet》相关推荐

  1. 基于Patachmatch的stereo matching笔记(二):《DeepPruner》

    DeepPruner 论文:DeepPruner: Learning Efficient Stereo Matching via Differentiable PatchMatch(2019) 1. ...

  2. 基于Patachmatch的stereo matching笔记(一):《PatchMatch Stereo》

    Patchmatch Stereo 论文:PatchMatch Stereo - Stereo Matching with Slanted Support Windows(2011) Patchmat ...

  3. 基于聚类的推荐算法笔记——以豆瓣电影为例(三)(附源代码)

    基于聚类的推荐算法笔记--以豆瓣电影为例(三)(附源代码) 第一章 聚类算法介绍 基于聚类的推荐算法笔记一 第二章 数据介绍 基于聚类的推荐算法笔记二 第三章 实现推荐算法 基于聚类的推荐算法笔记三 ...

  4. 基于聚类的推荐算法笔记——以豆瓣电影为例(二)(附源代码)

    基于聚类的推荐算法笔记--以豆瓣电影为例(二)(附源代码) 第一章 聚类算法介绍 基于聚类的推荐算法笔记一 第二章 数据介绍 基于聚类的推荐算法笔记二 第三章 实现推荐算法 基于聚类的推荐算法笔记三 ...

  5. 论文笔记 - RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching

    这篇博客是对论文RAFT-Stereo: Multilevel Recurrent Field Transforms for Stereo Matching的阅读笔记. 论文地址位于paper,代码已 ...

  6. 学习《Hardware-Efficient Bilateral Filtering for Stereo Matching》一文笔记。

    个人收藏了很多香港大学.香港科技大学以及香港中文大学里专门搞图像研究一些博士的个人网站,一般会不定期的浏览他们的作品,最近在看杨庆雄的网点时,发现他又写了一篇双边滤波的文章,并且配有源代码,于是下载下 ...

  7. Stereo Matching文献笔记之(六):浅谈置信度传播算法(Belief-Propagation)在立体匹配中的应用~

    这是我一个纠结过的问题,曾经反反复复的看相关的知识,Belief-Propagation是一个伴随着"马尔科夫随机场"提出的优化算法,我对优化算法情有独钟,一直觉得搞定了各种优化, ...

  8. 论文阅读笔记:《PatchMatch Stereo - Stereo Matching with Slanted Support Windows》

    论文下载: PatchMatch Stereo - Stereo Matching with Slanted Support Windows 摘要 1.1 思路  像素区域可以用近似的平面来模拟. ( ...

  9. Stereo Matching 立体匹配学习资料

    Middlebury Stereo Evaluation Camera Calibration and 3D Reconstruction OpenCV学习笔记(18)双目测距与三维重建的OpenCV ...

最新文章

  1. CVPR单目深度估计竞赛结果出炉,腾讯光影研究室优势夺冠,成果落地应用
  2. 图灵11月书讯:大约在冬季
  3. DB2 数据库清表语句
  4. svg mysql_SVG介绍
  5. 王益:分布式机器学习的故事
  6. 为静态Checkbox动态地添加checked属性
  7. Server.MapPath()用法
  8. python 爬虫例子及总结(详细理解注释)
  9. Android studio 导入项目运行
  10. Android 打包AAB+PAD(java篇)
  11. 基于MATLAB的运动目标检测系统
  12. 直播预告 | 猪齿鱼V1.1发布,线上新功能详解邀您参加
  13. Kubernetes 调整 nodePort 端口范围
  14. docker 常用命令合集
  15. android studio设置安卓版本,android studio怎么设置android版本?
  16. 大数据毕业论文:基于大数据的金融量化分析2021-07
  17. 【JPress】Template
  18. 加油站都需要什么手续_开一个加油站需要什么手续,需要多少启动资金?
  19. tekton TriggerBinding资源
  20. 13.3 跳格子游戏

热门文章

  1. 优信php面试流程_php面试的的时候你被提过哪些问题?
  2. 【2018年11月12日】其他化学制品行业的股票估值
  3. java课程设计 考试系统,java课程设计考试系统.
  4. 互联网人群画像和你所不知道的真相
  5. VMware虚拟机不能识别U盘 的解决方法
  6. 绕过SSL双向校验抓取Soul App的数据包
  7. scala windows搭建开发环境
  8. 使用openpyxl 对Excel的简单操作
  9. 关于物联网,互联网我们用到的通信
  10. 笔记本开机前插入耳机再开机有声音,开机后插入耳机后没声音