百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

PatchMatchStereo中的深度/视差传播策略

bigegpt 2025-02-10 11:27 6 浏览

1.引言

本文是PatchMatchStereo[1]第二篇拾遗,主要讲解PatchMatch的深度/视差传播策略,以及在其基础上,介绍几种基于PatchMatch的改进传播策略,分别是ETH的Gipuma[2]方法和华中科技大学的ACMM[3]。不同于SGM在极线纠正之后的影像上进行同名极线(核线)上搜索,PatchMatchStereo在整个视差空间内进行搜索,既保证全局搜索的准确性,又提升了算法的效率。但其本身的传播策略无法极尽GPU效能,以至于PMS的立体像对视差估计速度比较慢。直到Gipuma等方法提出新的传播策略后,才使得GPU加速和PatchMatch算法在多视图立体中应用成为可能,因此,本文主要介绍传统方法中的视差/深度传播策略,并简要介绍一个在传播方面的经典深度学习方法。

注1:文末附【立体视觉】交流群

注2:计算机视觉书籍汇总

注3:整理不易,请点赞支持!

作者:视觉企鹅 | 来源:3D视觉工坊微信公众号

2.PatchMatchStereo——串行传播策略



PMS虽然可以得到较为精确的视差估计结果,又因为随机算法的原理而使得算法本身可以以较低的显存消耗估计较大的分辨率的影像,但PMS的问题就是因为其串行传播(当前像素的传播视差必须来源于左右临近像素迭代的结果)而导致效率低下,因此,想要PatchMatch类型的算法达到秒级的深度图估计效率,需要提出一种新的传播策略。


3.Gipuma——棋盘格传播策略

PMS是按照对角线方向进行视差空间的串行传播,也就是每一个像素都受限于前一个像素,从而无法彻底利用GPU资源,ETH则提出一种可利用GPU多核结构的四周扩散传播策略。如图3所示,该方法将一张图中所有的像素,按照国际象棋格分割为红黑两组,主要思想是,每次仅更新单个组别,而且每一个像素更新的深度传播至来源于局部领域。如图3-b),标准的局部领域可以设计为20个局部邻域像素,从而利用更大的感受野来传播深度,以更快地算法收敛。图3-c)则是另一种加快传播地策略,进利用最近、最远的八个邻域像素对应的视差进行传播。


从图4可以看出,深度估计的精度均值会很快收敛,而完整度随着迭代次数的增加也不断提升。一般实验迭代八次可以得到很好的结果,到最后的迭代过程中,仅有一些边缘细节在改变。



Gipuma还有一个贡献是将PMS拓展到了多视图立体中,同时加上了多视图中的几何一致性检验,即通过共面单应变换来确定多视图的共视关系,因进行视角选择和匹配代价计算,本文不再赘述。开源代码为:
https://github.com/kysucix/fusibile

4.ACMM——自适应棋盘格采样

Gipuma提出的棋盘格策略不仅使得深度估计的效率不断提升,还将PatchMatch引入了多视图几何的算法之中,在其基础上,华中科技大学根据gipuma中棋盘格的固定采样问题提出了一种自适应棋盘格采样策略(图5右)。

首先,ACMM采用Gipuma中的思想对中的像素进行划分,并分为红黑两组。不同与使用固定的期盼,ACMM将扩散领域扩展成四个V形区域和四个长条区域(图5 右)。每个V形区域包含7个样本,而每个长条区域包含11个样本(注:图5右图仅为示意图),论文中数值和代码吻合。然后在这样的区域重随机采样,并进行视差对比。同时引入多视图的检测,这意味着一个拥有更小的多视图匹配代价的视差可以更好的表示三维平面。通过实验表明这样的策略可以加速算法的收敛,同时提升了算法的精度。



当然,ACMM方法中自适应传播策略仅仅是一个小改进,在深度传播之后,ACMM还进行了视角选择和多尺度、多视角的几何一致性检验,并以低分辨率下的深度图上采样后的结果,利用几何一致性指导高分辨率深度图的深度估计,文中利用前向-后向重投影误差来表示这个几何一致性,在优化后的结果,特别是弱纹理部分的完整度(图6-f)则大大增加。



5.深度学习方法——SPN

传统方法固然有其精度高的优势,但还需要提及深度学习方法,这里我们介绍一种经典的深度补全应用上的传统方法——空间传播网络(Spatial Propagation Network[4],以下简称为SPN)。SPN是通过监督学习方法,学习深度/分割结果在特征上的空间临近关系,进而指导稀疏图向稠密图的转换。

在该文中,SPN主要用于图像分割应用,方法与深度估计的原理一致,网络结构如图7所示,首先,利用RGB图通过一个神经网络学习在不同方向上的当前像素与临近像素的邻接关系(Affinity),图7中,guidance network输出了四个绿色的结果就表示四个传播方向的邻接关系图。然后输入一个粗略的分割掩膜,通过与四个传播方向的邻接关系卷积运算,再通过反卷积得到优化结果,本质上,是通过RGB或者高维特征,计算每个像素在邻域内与其他像素的邻接关系,从而来学习卷积核中的权重,越相似的特征,其学习到的权重越大。



文中一开始介绍了一种单路四向传播的策略(图8-a),为了传播效率和准确度,又介绍了三路四向传播的策略(图8-b)。对于单路四向传播,以从左向右传播为例(1式),







a)单路四向传播策略 b)三路四向传播策略


将预分割结果输入到三路四向SPN网络中,可以得到更为精确的结果,而且相比较基于深度学习的马尔可夫场方法效率更快且精度更高。


6.总结

本文主要回忆了PMS的传播方法,并介绍了在此基础上的一些改进方法,例如Gipuma和ACMM等多视图立体的传统方法,还有基于深度学习的SPN网络。可以看到,虽然本质上深度传播知识一种加快收敛的策略,但却能在弱纹理的空间上,极大地提升估计精度和分割精度。目前在ETH3D高分辨率数据集跑分上,领先的方法85%以上都是基于传播和PatchMatch改进的方法,在GPU加速下,可以估计出非常完整且高精度的场景和物体模型。下一篇文章,我们将介绍最新的CVPR2021的PatchMatchNet[5],这篇文章不仅将PMS的思想深度学习化,而且是少有的将传播策略使用在多视图立体中的方法,敬请期待。

参考文献

[1] Bleyer M, Rhemann C, Rother C. PatchMatch Stereo-Stereo Matching with Slanted Support Windows[C]//Bmvc. 2011, 11: 1-11.

[2] Galliani S, Lasinger K, Schindler K. Gipuma: Massively parallel multi-view stereo reconstruction[J]. Publikationen der Deutschen Gesellschaft für Photogrammetrie, Fernerkundung und Geoinformation e. V, 2016, 25(361-369): 2.

[3] Xu Q, Tao W. Multi-scale geometric consistency guided multi-view stereo[C]//Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. 2019: 5483-5492.

[4] Liu S, De Mello S, Gu J, et al. Learning affinity via spatial propagation networks[J]. arXiv preprint arXiv:1710.01020, 2017.

[5] Wang F, Galliani S, Vogel C, et al. PatchmatchNet: Learned Multi-View Patchmatch Stereo[J]. arXiv preprint arXiv:2012.01411, 2020.

备注:作者也是我们「3D视觉从入门到精通」特邀嘉宾:一个超干货的3D视觉学习社区

本文仅做学术分享,如有侵权,请联系删文。

3D视觉工坊-立体视觉交流群

已建立3D视觉工坊-立体视觉微信交流群!想要进立体视觉学习交流群的同学,可以直接加微信号:CV_LAB。加的时候备注一下:立体视觉+学校+昵称,即可。然后就可以拉你进群了。

强烈推荐大家关注3D视觉工坊知乎账号和3D视觉工坊微信公众号,可以快速了解到最新优质的3D视觉与SLAM论文。

相关推荐

php-fpm的配置和优化

目录概述php-fpm配置php-fpm进程优化配置慢日志查询配置php7进阶到架构师相关阅读概述这是关于php进阶到架构之php7核心技术与实战学习的系列课程:php-fpm的配置和优化学习目标:理...

成功安装 Magento2.4.3最新版教程「技术干货」

外贸独立站设计公司xingbell.com经过多次的反复实验,最新版的magento2.4.3在oneinstack的环境下的详细安装教程如下:一.vps系统:LinuxCentOS7.7.19...

十分钟让你学会LNMP架构负载均衡

业务架构、应用架构、数据架构和技术架构一、几个基本概念1、pv值pv值(pageviews):页面的浏览量概念:一个网站的所有页面,在一天内,被浏览的总次数。(大型网站通常是上千万的级别)2、u...

php从远程URL获取(mp4 mp3)音视频的流媒体数据

/***从远程URL中获取媒体(如mp4mp3)的内容*@parammixed$file_url*@parammixed$media_type...

Zabbix5.0安装部署

全盘展示运行状态,减轻运维人员的重复性工作量,提高系统排错速度,加速运维知识学习积累。1.png1、环境安装关闭SELinux并重启系统2.png安装httpd、mariadb、php运行yum-...

php 常见配置详解

以下是PHP常见的配置项及其含义:error_reporting:设置错误报告级别,可以控制PHP显示哪些错误。例如,设置为E_ALL将显示所有错误,而设置为0将禁止显示任何错误。displa...

实践分享|基于基石智算 DeepSeek API + WordPress 插件自动生成访客回复

基石智算举办的DeepSeek案例大赛汇集了不少基于CoresHubDeepSeekAPI服务或模型部署服务的精彩实践。本次我们将分享个人实践:通过DeepSeekAPI+Word...

如何在Eclipse中搭建Zabbix源码的调试和开发环境

Zabbix是一款非常优秀的企业级软件,被设计用于对数万台服务器、虚拟机和网络设备的数百万个监控项进行实时监控。Zabbix是开放源码和免费的,这就意味着当出现bug时,我们可以很方便地通过调试源码来...

MySQL自我保护参数

#头条创作挑战赛#之前(MySQL自我保护工具--pt-kill)提到用pt-kill工具来kill相关的会话,来达到保护数据库的目的,本文再通过修改数据库参数的方式达到阻断长时间运行的SQL的目...

Python闭包深度解析:掌握数据封装的高级技巧

闭包作为Python高级编程特性之一,为开发者提供了一种优雅的方式来实现数据封装和状态保持。这一概念源于函数式编程理论,在现代Python开发中发挥着重要作用。理解和掌握闭包的使用不仅能够提升代码的表...

Java服务网格故障注入与熔断实战

在分布式系统的高可用性挑战中,服务网格的故障注入与熔断机制是检验系统韧性的终极试金石。以下是10道逐步升级的"地狱关卡",每个关卡都对应真实生产环境中可能遇到的致命场景,并附具体场景示...

MySQL数据库性能优化全攻略:程序员必知的七大核心策略

作为程序员,我们每天都要与数据库打交道。当系统用户量突破百万级时,数据库往往成为性能瓶颈的首要怀疑对象。本文将深入探讨MySQL优化的七大核心策略,并提供可直接落地的优化方案,助您构建高效稳定的数据库...

如何在 Windows 11 上使用单个命令安装 XAMPP

XAMPP是一种广泛使用的软件,用于在Windows操作系统上快速运行LAMP服务器包,包括Windows11。尽管LAMP通常用于Linux系统,但XAMPP并不使用Li...

uTorrent怎样将bt种子转换为磁力

如何用uTorrent把BT种子转为磁力链接?以下方法希望能帮到你。1、在uTorrent窗口里,点击工具栏的按钮,所示。2、在打开窗口里,选取要转为磁力的种子文件,然后点击打开按钮,参照图示操作...

支持向量机SVM 分类和回归的实例

支持向量机(SupportVectorMachine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他...