DeepPruner

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

1. Introduction

目标是显着加快当前最先进的深度立体算法的运行时间,以实现实时推理。首先利用一种新颖的可微 PatchMatch 算法来获得成本量的稀疏表示。 然后利用这种表示来学习每个像素要修剪的范围。 最后,利用图像引导细化模块进一步提高性能。 由于所有组件都是可微的,因此可以以端到端的方式训练整个网络。 通过逐步减少搜索空间并有效传播此类信息,能够有效地计算高似然假设的成本量,并显着降低内存消耗和计算成本。


2. Related work

Classical Stereo Matching
立体匹配已经研究了几十年。 算法通常包括以下三个步骤:计算像素级特征表示、构建成本量和最终的后处理。 由于像素表示在该过程中起着关键作用,研究人员利用了各种表示,从周围像素的最简单的 RGB 值到更具辨别力的局部描述符,如 CENSUS、SIFT 和 Brief。 连同精心设计的后处理技术,例如成本聚合、半全局匹配和马尔可夫随机场,它们能够在相对简单的场景中取得良好的性能。
Deep Stereo Matching
为了进一步处理更复杂的现实世界场景,尤其是无纹理区域或反射表面,现代方法利用 CNN 来提取鲁棒特征并进行匹配。虽然这些技术在基准测试中表现出出色的性能,但仍然需要耗时的后处理。考虑到这一点,研究人员建议直接从给定的立体图像中回归子像素差异。通过将完整的传统立体管道实现为神经网络层,这些模型可以以端到端的方式进行训练,并且能够完全在 GPU 上进行推理,从而大大提高了效率。不幸的是,由于成本量和聚合的规模很大,内存消耗和所需的计算仍然非常高,使得模型不切实际。
PatchMatch
PatchMatch相关知识:Patchmatch-笔记_粟悟饭&龟波功的博客-CSDN博客
Real-time Stereo
除了本文的工作之外,还有一些努力推动了基于实时深度学习的立体估计。 本文的工作与他们的不同,因为本文的方法是自适应地修剪了每个区域的搜索空间。 相比之下,他们采用固定的、从粗到细的程序来迭代地找到匹配项(Cascade的方法)。


3. Method

3.1 Feature Extraction

金字塔特征提取

3.2 Pruning Through Differentiable PatchMatch

基于广义patchmatch的思想设计一个可微的patchmatch模块,该模块能够预测每个像素的视差度范围,并构建一个需要更少操作的稀疏成本量。

1. Differentiable PatchMatch
将广义 PatchMatch 展开为循环神经网络,其中每个展开步骤等效于算法的每次迭代。具体包括以下三个层:
(1)粒子采样层(随机初始化):对于每个像素 i,从预测/预定义搜索空间上的均匀分布中随机生成 k 个视差值;(这里的粒子指的就是视差)
(2)传播层:来自相邻像素的粒子通过卷积进行传播
(3)评估层:对于每个像素 i,通过取左特征和右特征之间的内积计算匹配分数。对于所有候选 j,每个像素的最佳 k 个视差值被带到下一次迭代。

具体过程:
首先通过随机初始化层为每个像素生成k个可能的视差值,然后在传播层中,将当前像素的k个视差与邻域像素的视差(经过卷积后)concat起来,得到 j 个视差。通过评估层,得到每个视差的置信度,然后取出k个置信度最高的视差作为新的视差。这就是一次迭代过程。

2. Confidence range prediction
所有像素的原始搜索空间是相同的。 然而,实际上,对于每个像素,极有可能的视差位于一个狭窄的区域内。使用从 PatchMatch 阶段估计的小视差子集,有足够的信息来预测真实视差所在的范围。
因此,利用置信范围预测网络来调整每个像素的搜索空间。 该网络具有卷积编码器-解码器结构。 它将来自可微 PatchMatch 的稀疏视差估计、左图像和扭曲的右图像(根据稀疏视差估计扭曲)作为输入,并为每个像素 i 输出置信范围 Ri = [li, ui]。

3.3 Cost Aggregation and Refinement

Cost aggregation

基于修剪模块中的预测范围,构建 3D 成本量估计器并进行空间聚合。 按照惯例,将左图像、扭曲的右图像和相应的视差作为输入,并在大小为 B × R × H × W 的视差范围内输出成本,其中R是每个像素的视差数。 与PSMNet相比,本文的R小了10倍以上,这使得这个模块非常高效。

Refinement

利用轻量级的全卷积细化网络来进一步提高性能。 网络从特征网络的第二个残差块中获取左图像卷积特征和当前的视差估计 ycost 作为输入,然后输出微调的视差预测 yrefine。 低级特征信息可作为减少噪声和提高最终视差图质量的指导,尤其是在尖锐边界上。


4. Experiments

对于一对全尺寸 KITTI 立体图像,PSM-Net 在计算过程中占用高达 4351 MB 的内存。 相比之下,DeepPruner-Best 和 DeepPruner-Fast 分别仅消耗 1161 MB 和 805 MB 内存。 存储需求不到PSMNet的四分之一,显示了集成到移动计算平台的潜力。

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

  1. 基于Patachmatch的stereo matching笔记(三):《PatchmatchNet》

    PatchmatchNet 论文:PatchmatchNet: Learned Multi-View Patchmatch Stereo(2020) 1.Introduction 出发点: 由于 3D ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  9. 图像处理 基于Visual C++编程 学习笔记 (3)显示灰度图像和二值化图像

    灰度图imggray 有了上面的基础,灰度图就相当简单了 彩色图转灰度方法: 1.浮点算法:Gray=R*0.3+G*0.59+B*0.11  2.整数方法:Gray=(R*30+G*59+B*11) ...

最新文章

  1. RabbitMQ学习总结 第一篇:理论篇
  2. SQL查询语句[0]
  3. 公司使用360安全产品造成的CRM系统故障!
  4. springbot集成finereport后在web中使用iframe引用报表
  5. 《零基础看得懂的C++入门教程 》——(3)表达式花样挺多鸭
  6. 神经网络与深度学习——TensorFlow2.0实战(笔记)(二)(Anaconda软件使用)
  7. C++:fseek( FILE *stream, long offset, int origin )
  8. tensorflow基础(2)-tf.argmax和axis
  9. WebStorm学习笔记004---Webstorm的一些常用快捷键
  10. 丢失所有凭据后如何重新连接到SQL Server实例
  11. 对中文版“Siri”打个招呼吧!
  12. hbase java客户端_【HBase教程】(八)HBase JAVA 客户端API使用
  13. 原理图与 PCB 绘制备忘
  14. H5py数据集的制作
  15. 如何禁止搜索引擎收录WordPress站点某个分类的文章?
  16. html5清新文艺,清新文艺句子
  17. vue 视频上传组件
  18. git之bitbucket
  19. 2021.11.17
  20. 4.1Reduction模型

热门文章

  1. 通过 iptables 禁止 ping
  2. CBLUE-阿里天池中文医疗NLP打榜
  3. 读书有益——》生僻字、可能念错的字
  4. matlab如何求传递函数的幅值_MATLAB通过传递函数求截止频率
  5. notepad++ JSON Viewer插件手动安装失败解决方案
  6. vmware虚拟机不能识别u盘/移动硬盘原因之一
  7. coap 返回版本信息_CoAP协议详解
  8. 生产环境和开发环境_环境部署:开发、测试和线上环境的区别
  9. spring aop分析(一)
  10. C语⾔核⼼基础知识之printf