双目立体匹配算法:Patch Match Stereo

介绍PMS算法,一种创新的立体匹配方法,通过估计视差平面而非直接估计视差,利用PatchMatch思想在无限多的视差平面中找到最优解。能够处理倾斜表面和曲面,直接计算亚像素视差。

一、简介

  我们知道,现有立体匹配算法一般被分类为局部算法、全局算法和半全局算法,其中局部算法和半全局算法是应用最为广泛的。在局部算法中,一个最简单的做法就是采用某种像素相似性度量,比如像素灰度差的绝对值AD,给定左图中的一个点p,在右图中的对应行上(假设输入是已经校正好的图像)搜索与其AD值最小的点q,这样得到的点q就是p在右图中对应的匹配点,p、q的水平坐标差称作视差。然而这种做法所得到的视差图中会包含大量的噪声,即错误的匹配对,原因可能是多方面的,如传感器噪声,左右相机的采集性能差异,图像中存在大面积无纹理、弱纹理或重复纹理,左右相机接收的光照差异(室外环境)等。
  一个更好的做法是不直接匹配单个像素,而是匹配像素点所在的区域,这个区域叫做支撑窗口(support window),支撑窗口的尺寸可以是固定的,也可以是自适应变化的。如下式所示,由于支撑窗口内的像素提供了更多的信息,因此可以有效降低匹配歧义。
在这里插入图片描述
  然而使用支撑窗口的做法是存在问题的,实际上它隐性的遵从了一个假定,即窗口内的所有像素具有相同的视差。然而这个假定在很多情况下并不成立,比如:
  A. 窗口内的像素与中心像素位于不同的表面;
  B. 窗口所捕获的是一个倾斜表面或曲面,即非平行表面(这个平行指的应该是与相机成像平面平行)。
如下图(a)所示,Q点实际上位于一个亚像素的视差平面上,R位于倾斜平面上,S位于一个弧形表面上:
在这里插入图片描述
  许多研究人员主要关注的是A中所描述的情况,为了解决这种问题,一个比较有效的做法是对窗口内的像素采用自适应权重进行匹配,如下式所示,这样的方法可以很好的避免edge fattening(边缘平滑)问题:
在这里插入图片描述
权重计算所使用的方法可以是类似双边滤波的核函数:
在这里插入图片描述
也可以是基于测地线距离的核函数:
在这里插入图片描述
  那么如何解决B中的问题呢?我们知道空间中任意一点都可以认为是在一个唯一的平面上,如下式所示,该平面的参数为(((π\piπ1,_{1},1,π\piπ2,_{2},2,π\piπ3,_{3},3,π\piπ4)_{4})4) ∈\in R4\mathbb{R}^{4}R4
在这里插入图片描述
当我们知道相机的基线距离BBB和标定内参(u=fX/Zu = fX/Zu=fX/Z, v=fY/Zv = fY /Zv=fY/Z, d=fB/Zd = fB/Zd=fB/Z),那么上面的方程就可以变换为下式,其中π′=(π1′,π2′,π3′)π^{'} = (π_{1}^{'}, π_{2}^{'}, π_{3}^{'})π=(π1,π2,π3)R3\mathbb{R}^{3}R3为视差空间的平面参数。
在这里插入图片描述
  基于上面的想法,2011年Michael Bleyer 提出了一个相当新颖的立体匹配算法叫做PMS,该算法的主要思想是对每一个像素计算一个独立的最优3D视差空间平面,如果该像素位于一个曲面上,那么该平面代表曲面在该像素点处的切面,在这个基础上,用于匹配的支撑窗口就是not fronto-parallel support window,简称slanted support window。这样一来问题的挑战就转移到了如何为每一个像素点在所有可能的视差空间平面中挑选出最优的视差平面。
  显然视差平面的数量是无限多的,因此通过遍历所有的视差平面来寻找最优平面是不可能的。Michael Bleyer 找到了一个巧妙的方法解决这个问题,那就是采用Patch Match的思想,Patch Match本身是一个高效求解近似最近邻场(Nearest neighbor filed)的方法,主要包括初始化、空间传播、随机搜索三个步骤。除了Patch Match中的空间传播外,作者还另外提出了视图传播和帧间传播(用于连续的视频帧)能够更好的帮助算法收敛。如下图所示,利用PMS不仅可以直接估计亚像素视差, 还能够精确的重建倾斜表面,甚至能够重建圆形的曲面。
在这里插入图片描述

二、算法

1.模型

  算法的目标是计算每一个像素所在的视差平面fpf_{p}fp,一旦得到了fpf_{p}fp,该像素的视差就可以按照下式来计算,其中afpa_{fp}afp, bfpb_{fp}bfpcfpc_{fp}cfp是平面fpf_{p}fp的参数,pxp_{x}pxpyp_{y}py是像素pppxxx坐标和yyy坐标。
在这里插入图片描述
待求解的视差平面fpf_{p}fp是在所有可能的平面中使得聚合匹配代价m(p,f)m(p,f)m(p,f)最小的那一个平面:
在这里插入图片描述<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值