【理论恒叨】【立体匹配系列】经典PatchMatch: (3)后处理(一致性检查与视差填充)

理论恒叨系列

【理论恒叨】【立体匹配系列】经典PatchMatch: (1)Slanted support windows倾斜支持窗模型
【理论恒叨】【立体匹配系列】经典PatchMatch: (2)基于PatchMatch的视差估计
【理论恒叨】【立体匹配系列】经典PatchMatch: (3)后处理(一致性检查与视差填充)

PatchMatchStereo1是Michael Bleyer等在2011年发表于British Machine Vision Conference(BMVC)上的一篇双目立体匹配算法文章,非常经典,倾斜支持窗的思路打破传统固定窗口式局部匹配的思维桎梏,在Middlebury数据集上获得非常好的匹配效果,一段时间内高居排行榜第一名。更难能可贵的是,它和SGM一样数据泛化能力出色,对大部分数据都能取得不错的结果,所以也被很多商业软件所实现,是真正能够产品化的算法。

本系列博主将为大家介绍经典的PatchMatchStereo(PMS)算法原理,希望能够对同学们的立体匹配算法研究有所帮助。

上篇博客中,博主介绍了PMS的视差估计方法:基于PatchMatch的视差估计法。本篇则是介绍PMS的后处理部分,顺便给PMS概述专题收尾。

【理论恒叨】【立体匹配系列】经典PatchMatch: (3)后处理(一致性检查与视差填充))

    • PMS后处理
      • 一致性检查
      • 视差填充
    • 实验图

PMS后处理

同大多数立体匹配算法一样,PMS的后处理一是常规操作:一致性检查和视差填充

一致性检查

一致性检查的介绍自不必细说,还不太了解的请查看博主的另外两篇博客

【理论恒叨】【立体匹配系列】经典SGM:(4)视差计算、视差优化

【码上实战】【立体匹配系列】经典SGM:(5)视差优化

有一点特别的是,上篇博客提到PMS有一个视图传播,即左右视图同名点的视差平面的传播,这意味着如果执行视图传播,则右视图也需要和左视图一样执行一次随机+N次传播的步骤。我们执行右视图计算时,需要注意右视图的视差值依然等于左视图的列号减去右视图的列号,即 d = x l − x r d=x_l-x_r d=xlxr

所有迭代传播完成后,计算左视图像素点 p p p在右视图上的同名点 q = p − d p q=p-d_p q=pdp,判断 ∣ d p − d q ∣ < = 1 |d_p-d_q|<=1 dpdq<=1是否成立,若不成立,则不满足一致性约束,将 p p p点和 q q q点的视差都赋为无效值。

视差填充

PMS的视差填充策略和SGM不一样,想了解SGM的填充策略的请查看博主前面的博客:

【码上实战】【立体匹配系列】经典SGM:(6)视差填充

PMS的策略是:
(1)搜索无效像素 p p p左右最近的有效像素。记录它们的视差平面 f l f^l fl f r f^r fr
(2)将像素 p p p的坐标代入 f l f^l fl f r f^r fr,计算出视差,选择较小的那个视差作为 p p p的视差值。选较小的含义是遮挡像素往往是出现在背景。(背景总是被前景遮挡,前景流氓做的大啊,挨近相机就是有优势!)

以上两个步骤可以为像素 p p p填充一个视差值,但有个问题是这样做会产生水平线条纹,这个不难理解,此方法没考虑其他方向的视差,只考虑了水平方向的视差,肯定会有条纹效应(一般来说,只考虑单方向就会出现该单方向条纹,比如只考虑水平,就出现水平条纹)。

为了缓解这个问题,作者想了个办法,既然填充只考虑了单方向,那就再做个多方向滤波!

搞一个加权中值滤波!

中值滤波做图像处理的再熟悉不过了(不认识的面壁去吧!),加权中值滤波不过就是给窗口内每个格子一个权值,权值计算公式依旧是它:

【理论恒叨】【立体匹配系列】经典PatchMatch: (3)后处理(一致性检查与视差填充)_第1张图片

什么,没见过?请看下篇:

【理论恒叨】【立体匹配系列】经典PatchMatch: (1)Slanted support windows倾斜支持窗模型

γ γ γ选择和前面一样的值,中值滤波的窗口和匹配时的窗口大小一样。(如果是时序传播,那这里的窗口就是三维的)

实验图

首先我们看论文中最大的一张实验图:(右边是实验分析)

另外贴一下PMS加入时序传播的视频立体匹配实验结果:(有趣的时序传播,但好像很少见到实际应用的?)

【理论恒叨】【立体匹配系列】经典PatchMatch: (3)后处理(一致性检查与视差填充)_第2张图片

系列完结!大家有不懂的,可以留言给我。要代码的,等段时间,博主把代码教学篇奉上!

博主简介:
Ethan Li 李迎松
武汉大学 摄影测量与遥感专业博士

主方向立体匹配、三维重建

2019年获测绘科技进步一等奖(省部级)

爱三维,爱分享,爱开源
GitHub: https://github.com/ethan-li-coding
邮箱:[email protected]

个人微信:

欢迎交流!

喜欢博主的文章不妨关注一下博主的博客,感谢!
博客主页:https://blog.csdn.net/rs_lys


  1. Bleyer M , Rhemann C , Rother C . PatchMatch Stereo - Stereo Matching with Slanted Support Windows[C]// British Machine Vision Conference 2011. ↩︎

你可能感兴趣的:(#,立体匹配,三维重建,双目立体,立体匹配,PatchMatch,Stereo)