论文下载: PatchMatch Stereo - Stereo Matching with Slanted Support Windows

摘要

1.1 思路

 像素区域可以用近似的平面来模拟。

(a) 平面图形具有恒定的视差值。(b) 实际不可能是平面,本文估计每个像素上的单独3D平面。
主要难点: 在所有可能无限数量的平面中找到一个像素的最优 3D 平面
解决方法: PatchMatch算法 (空间传播) + 拓展 (图传播,时间传播)

1.2 亚像素精度计算视差图

法一: 通常,亚像素信息是通过在后处理中将 cost volumn 拟合成一条抛物线而得到的。
法二: 在匹配中直接考虑亚像素精度更复杂(本文采用)。除了全值的视差之外,还考虑了一些分数视差值 (一半或四分之一像素)。

算法

2.1 模型

 对于两张图像中的每个像素 p,都寻找一个平面 fp 。 一旦平面 fp 被找到,就可以计算像素 p 处的视差 dp
dp=afppx+bfppy+cfp(1)d_{p}=a_{f_{p}} p_{x}+b_{f_{p}} p_{y}+c_{f_{p}} \qquad (1) dp​=afp​​px​+bfp​​py​+cfp​​(1)
 其中,afp、bfp、cfp 为平面 fp 的参数。像素 p 的坐标为(px , py)。目标函数为寻找聚合代价最小的平面 fp :
fp=argmin⁡f∈Fm(p,f)(2)f_{p}=\underset{f \in \mathscr{F}}{\operatorname{argmin}} m(p, f) \qquad (2) fp​=f∈Fargmin​m(p,f)(2)
 其中,F\mathscr{F}F表示所有可能的平面。与平面 f 对应的匹配像素 p 的聚合代价为:
m(p,f)=∑q∈Wpw(p,q)⋅ρ(q,q−(afqx+bfqy+cf))(3)m(p, f)=\sum_{q \in W_{p}} w(p, q) \cdot \rho\left(q, q-\left(a_{f} q_{x}+b_{f} q_{y}+c_{f}\right)\right) \qquad (3) m(p,f)=q∈Wp​∑​w(p,q)⋅ρ(q,q−(af​qx​+bf​qy​+cf​))(3)
 其中,Wp 表示一个以像素p 为中心的3D方形窗口。权重函数 w(p,q) 用来解决边缘肥胖问题,并且实施自适应支持权重的思想,它根据像素之间的颜色信息计算它们之间的相似性。ρ(q,q′) 部分计算像素 q 和 对应匹配点 q′ 之间的不相似性。(q′ 根据平面 f 计算像素 q 处的视差得到)
w(p,q)=e−∥Ip−Iq∥γ(4)w(p, q)=e^{-\frac{\left\|I_{p}-I_{q}\right\|}{\gamma}}\qquad (4) w(p,q)=e−γ∥Ip​−Iq​∥​(4)
 其中,γ\gammaγ 是用户定义的参数,∥Ip−Iq∥\left\|I_{p}-I_{q}\right\|∥Ip​−Iq​∥ 计算像素p 和 q 在 RGB 空间中的 L1 距离。
ρ(q,q′)=(1−α)⋅min⁡(∥Iq−Iq′∥,τcol)+α⋅min⁡(∥∇Iq−∇Iq′∥,τgrad)(5)\rho\left(q, q^{\prime}\right)=(1-\alpha) \cdot \min \left(\left\|I_{q}-I_{q^{\prime}}\right\|, \tau_{c o l}\right)+\alpha \cdot \min \left(\left\|\nabla I_{q}-\nabla I_{q^{\prime}}\right\|, \tau_{g r a d}\right)\qquad (5) ρ(q,q′)=(1−α)⋅min(∥Iq​−Iq′​∥,τcol​)+α⋅min(∥∇Iq​−∇Iq′​∥,τgrad​)(5)
 其中,∥∇Iq−∇Iq′∥\left\|\nabla I_{q}-\nabla I_{q^{\prime}}\right\|∥∇Iq​−∇Iq′​∥ 表示像素 p 和 q 之间灰度值的梯度之差的绝对值。由于像素 q′ 的 x 坐标在连续区域内,通过线性插值来找到它的颜色和梯度值。用户定义的参数 α 用来平衡颜色和梯度项的影响,参数 τcol\tau_{c o l}τcol​、τgrad\tau_{g r a d}τgrad​ 截断代价,使得结果在遮挡区域也适用。

2.2 PatchMatch应用

(1) 随机初始化

 给两张图像的每个像素初始化一个随机平面 ( 目标是寻找最优的拟合3D平面 ) 。初始化后一个区域内至少有一个像素的平面接近正确的平面 (保证了空间传播能够进行,空间相邻像素进行传播)。
  给像素 (x0,y0) 计算一个随机平面,首先选择一个在所允许的连续视差值之间的随机的视差 z0 ,这样就给出随机平面中的一个点 P(x0,y0,z0)。然后计算这个平面的法向量为一个随机的单位向量 n⃗=(nx,ny,nz)\vec{n}=\left(n_{x}, n_{y}, n_{z}\right)n=(nx​,ny​,nz​) 则平面参数为 af:=−nxnza_{f} :=-\frac{n_{x}}{n_{z}}af​:=−nz​nx​​ bf:=−nynzb_{f} :=-\frac{n_{y}}{n_{z}}bf​:=−nz​ny​​ cf:=nxx0+nyy0+nzz0nzc_{f} :=\frac{n_{x} x_{0}+n_{y} y_{0}+n_{z} z_{0}}{n_{z}}cf​:=nz​nx​x0​+ny​y0​+nz​z0​​

(2) 迭代

  先处理左图中的所有像素,然后处理右图所有像素。在奇数次迭代中,从左上角的像素开始,逐行遍历像素,直到到达右下角的像素。在偶数次迭代中,从右下角的像素开始,然后在左上方停止。

step1 空间传播

  空间上相邻的像素很有可能具有相似的平面。 p 表示当前像素,fp 是它的平面。评估是否将 p 空间邻居 q 的平面 fq 分配给它。 若 m(p,fq)<m(p,fp)m\left(p, f_{q}\right)<m\left(p, f_{p}\right)m(p,fq​)<m(p,fp​) 则将平面 fq 作为像素 p 的新平面, 更新 fp:=fqf_{p} :=f_{q}fp​:=fq​。在奇数次循环中,考虑左边和上方邻居,在偶数次循环中,考虑右边和下方的邻居。

step2 图传播

  左右视差图之间具有强相干性 (左图像素和它在右图中的匹配点很可能有相似的平面) 。取像素 p 点对应匹配点 p′ ,若 m(p,fp′)<m(p,fp)m\left(p, f_{p^{\prime}}\right)<m\left(p, f_{p}\right)m(p,fp′​)<m(p,fp​) 则将平面fp′f_{p^{\prime}}fp′​ 作为像素 p 的新平面, 更新 fp:=fp′f_{p} :=f_{p^{\prime}}fp​:=fp′​

step3 时间传播

  用在立体视频序列中 (双目匹配不需要这一步) 。当前视频帧中的像素 p 和前面帧或后面帧图像中相同坐标上的像素 p′ 可能具有相似的平面。若 m(p,fp′)<m(p,fp)m\left(p, f_{p^{\prime}}\right)<m\left(p, f_{p}\right)m(p,fp′​)<m(p,fp​) 则将平面fp′f_{p^{\prime}}fp′​ 作为像素 p 的新平面, 更新 fp:=fp′f_{p} :=f_{p^{\prime}}fp​:=fp′​

step4 平面细化

  Δz0max⁡\Delta_{z 0}^{\max }Δz0max​ : 3D 点的 z 坐标 z0 的最大允许变化, Δnmax⁡\Delta_{n}^{\max }Δnmax​ : 限制了法向量的分量变化范围
 估计 Δz0\Delta_{z 0}Δz0​ 在区间 [−Δz0max⁡,Δz0max⁡]\left[-\Delta_{z_{0}}^{\max }, \Delta_{z_{0}}^{\max }\right][−Δz0​max​,Δz0​max​] 的一个随机值,并计算 z0′:=z0+Δz0z_{0}^{\prime} :=z_{0}+\Delta_{z_{0}}z0′​:=z0​+Δz0​​,从而得到新的3D点 P′=(x0,y0,z0′)P^{\prime}=\left(x_{0}, y_{0}, z_{0}^{\prime}\right)P′=(x0​,y0​,z0′​)。
  类似,估计三个随机值的区间 [−Δnmax⁡,Δnmax⁡]\left[-\Delta_{n}^{\max }, \Delta_{n}^{\max }\right][−Δnmax​,Δnmax​], 形成新矢量 Δ⃗n\vec{\Delta}_{n}Δn​。并计算修正后的法向量为 n′→:=u(n⃗+Δ⃗n)\overrightarrow{n^{\prime}} :=u\left(\vec{n}+\vec{\Delta}_{n}\right)n′:=u(n+Δn​),其中 u () 计算单位向量。
  我们将由 p′ 和 n⃗′\vec{n}^{\prime}n′ 定义的平面转换为方程 (1) 的表示形式,得到了修改后的平面 fp′f_{p^{\prime}}fp′​。若 m(p,fp′)<m(p,fp)m\left(p, f_{p^{\prime}}\right)<m\left(p, f_{p}\right)m(p,fp′​)<m(p,fp​) 则将平面fp′f_{p^{\prime}}fp′​ 作为像素 p 的新平面, 更新 fp:=fp′f_{p} :=f_{p^{\prime}}fp​:=fp′​
  细化过程迭代进行,初始化: Δz0max⁡:=max⁡disp⁡/2\Delta_{z 0}^{\max } :=\max \operatorname{disp} / 2Δz0max​:=maxdisp/2 , ∇nmax⁡:=1\nabla_{n}^{\max } :=1∇nmax​:=1 每次细化结束更新: Δz0max⁡:=Δz0max⁡/2\Delta_{z_{0}}^{\max } :=\Delta_{z_{0}}^{\max } / 2Δz0​max​:=Δz0​max​/2 , Δnmax⁡:=Δnmax⁡/2\Delta_{n}^{\max } :=\Delta_{n}^{\max } / 2Δnmax​:=Δnmax​/2, 当 Δz0max⁡<0.1\Delta_{z_{0}}^{\max } < 0.1Δz0​max​<0.1 的时候停。

2.3 后处理

  通过一致性检验处理遮挡像素和不匹配的像素。对于每个像素 p,在另一个图像中计算它的匹配点 p’,若条件dp−dp′≤1d_{p}-d_{p^{\prime}} \leq 1dp​−dp′​≤1不成立,则像素点 p 无效。
  无效像素填充有效视差,向左和向右搜索它最接近的有效像素,记录两个点的平面flf^{l}fl,frf^{r}fr 根据(1)式计算视差,选择较小的视差作为 p 的填充视差。但是这种策略在视差图中产生水平条纹,应用加权中值滤波来处理填充的不均匀性(所用参数和匹配时一致)。

2.4 为全局方法构建一个数据项

  基于窗口的匹配使得全局算法可以像自适应支持权重方法一样精确捕获不连续的深度,但视图是一个平面时引入了误差。这个问题在以像素为基础计算匹配度量的标准全局数据术语中不存在。
  构造一个 cost volume ,可以存储所有是整值视差像素点的代价,但缺点是视差太过离散。计算固定视差 d 情况下所有匹配点的视差代价。设置 mindisp:=d−0.5\text { mindisp} :=d-0.5 mindisp:=d−0.5 , maxdisp:=d+0.5−eps\text {maxdisp} :=d+0.5-epsmaxdisp:=d+0.5−eps。然后按照2.2计算。将此数据项融入代价公式,结合参考文献方法进行处理。

实验分析

3.1 局部方法

 设置窗口大小35*35,{γ,α,τcol,τgrad}:={10,0.9,10,2}\left\{\gamma, \alpha, \tau_{c o l}, \tau_{g r a d}\right\} :=\{10,0.9,10,2\}{γ,α,τcol​,τgrad​}:={10,0.9,10,2}
(1) fronto-parallel窗口在整值视差上匹配
 之前的方法采用特殊的自适应支持权重函数确保运行时不依赖匹配窗口大小,本文保留了对窗口大小的依赖关系,但是删除了对视差搜索范围的依赖关系。
(2) fronto-parallel窗口在连续亚像素位置上匹配
 解决了亚像素匹配需要将视差进行量化的问题
(3) 倾斜的窗口

定性分析: (1) 的问题通过不同的前向平行视差段重建一个倾斜的表面,如图倾斜平面看起来像一个楼梯。(2) 允许亚像素匹配只是削弱的这种影响。(3) 成功显示平面,并且在重建圆形表面上是有效的 (例如杯柄)。

  nocc: unoccluded regions无遮挡区域 \qquad all: 全部图像 \qquad disc: 视差不连续图像
定量分析: 本文方法在误差阈值为1时在大约 110 种算法中排名第 11,是该排名中性能最好的局部方法。注意 Teddy 图像集,从无遮挡区域的错误率来看,本文斜窗方法是性能最好的方法,这是因为大多数其他算法在重构斜地平面时都会遇到问题。误差阈值0.5时,本文方法在表中排名第 2,在复杂的 Teddy 和 cone 图像集上表现最好。
 同时也可处理高分辨率 (1024 * 576) 立体视频,设置3D立体窗 71 * 71 * 3,只需要在内存中保存当前平面参数和对应的每个像素的聚合成本。

3.2 全局方法

  用 Teddy 图像集评估第 2.4 节中描述的数据项。首先利用式 (5) 测度,通过像素级相关 (不执行聚合) 构造 cost volume ,(像素相关是标准全局方法通常做的事情)

 图 6a 显示,在使用这个数据术语时,不能很好地保存视差边界。图 6b 显示使用自适应支持权重窗口构建成本卷,但只允许fronto-parallel窗口。视差边界的结果得到了改善,但是算法没有捕捉到倾斜的地面。图 6c 构造的数据项与倾斜窗口正确地重建对象边界和倾斜的地面。
  一般意见。局部自适应支持权重方法在 Middlebury 上的表现开始优于全局方法。全局方法无法比较 (图像集几乎没有无纹理的区域,比较丰富,适合局部方法) 。全局方法仍然有意义,因为它允许在匹配过程中直接处理遮挡,并且可以处理较大的无纹理区域。举个例子,我们生成了包含大量无纹理区域的 Middlebury 塑料材质图集。从图 6d 中可以看出,我们的局部方法失效,而全局方法 (使用倾斜的窗口数据项) 可以正确地重构视差 (图 6e)。

结论

  本文提出了一种局部算法,在每个像素上计算一个三维平面预测支持区域。算法思路来源是PatchMatch。得到好的亚像素的结果,并在Middlebury基准中排名靠前。同时展示了倾斜的窗户可为全局方法的数据术语发挥作用。在之后工作中,我们将把这个算法扩展到计算中光流和 GPU 实现,可能会实现实时性能。

论文阅读笔记:《PatchMatch Stereo - Stereo Matching with Slanted Support Windows》相关推荐

  1. 《Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs》论文阅读笔记

    <Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs>论文阅读笔记 主要挑战贡献: KG上的推理挑战主要 ...

  2. 论文阅读 | NIPS‘20 | Beta Embeddings for Multi-Hop Logical Reasoning in Knowledge Graphs

    很有意思的一篇paper.在众多Knowledge Graph Embedding (KGE) 的论文中通过问题设计和有意思的解决方式脱颖而出. 首先来看看问题设计. 一般的KGE model都是利用 ...

  3. Beta Distribution Guided Aspect-aware Graph for Aspect Category Sentiment Analysis论文阅读笔记(EMNLP2021)

    目录 标题翻译:基于Beta分布引导方面感知图的方面类别情感分析 原文链接:https://aclanthology.org/2021.emnlp-main.19.pdf 摘要: 1 引言 2 相关工 ...

  4. Phrase-BERT: Improved Phrase Embeddings from BERT with an Application to Corpus Exploration论文阅读笔记

    问题: 因为bert是在长文本(512token长度)预训练的,因此,如果没有特定于任务的微调,BERT在短语和句子上的表现通常比简单基线(如GLoVe的平均池化)更差.且字节2020在EMNLP上的 ...

  5. DeepWeak: Reasoning Common Software Weaknesses via Knowledge Graph Embedding 阅读笔记

    DeepWeak: Reasoning Common Software Weaknesses via Knowledge Graph Embedding 阅读笔记 Article Background ...

  6. [论文阅读笔记] Are Meta-Paths Necessary, Revisiting Heterogeneous Graph Embeddings

    [论文阅读笔记] Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings 购物返利 www.cpa5.cn 本文结构 解 ...

  7. 论文阅读笔记—Reasoning on Knowledge Graphs with Debate Dynamics(AAAI,2020)

    这是一篇非常有趣的工作,看完会觉得眼前一亮. 论文标题:Reasoning on Knowledge Graphs with Debate Dynamics 发表于AAAI,2020 动机  很多机器 ...

  8. 论文阅读笔记——《a simple but tough-to-beat baseline for sentence embeddings》

    <a simple but tough-to-beat baseline for sentence embeddings>published at ICLR 2017. ICLR会议的论文 ...

  9. Learning Hierarchy-Aware Knowledge Graph Embeddings for Link Prediction论文阅读笔记

    我的博客链接 0. 前言 1. 作者试图解决什么问题? 作者想在KGE中对语义层级(semantic hierarchies)进行建模. 2. 这篇论文的关键元素是什么? semantic hiera ...

  10. 斯坦福图机器学习CS224W笔记自用: Reasoning in Knowledge Graphs using Embeddings

    1. 基于嵌入的知识图推理 目标:如何对知识图进行多跳推理? 知识图推理: 回答多跳查询 路径查询 连接查询 Query2box 示例:生物医学图 知识图谱上的预测查询 我们是否可以进行多跳推理,即在 ...

最新文章

  1. 如何理解写文档这件事情 ?
  2. 37个我爱Ruby的理由
  3. linux nfs 权限设置,Linux NFS server 配置
  4. C语言 socket listen()函数(socket()函数创建的socket(套接字描述符)默认是一个主动类型的,listen函数将socket变为被动类型的,等待客户的连接请求)
  5. php禁止代理ip访问_php禁止某ip或ip地址段访问的方法(转载)
  6. Socket通信客户端设计(Java)
  7. mysql出现error 2003_mysql启动时出现ERROR 2003 (HY000)问题的解决方法
  8. USB2.0学习笔记连载(四):安装Cypress官网套件
  9. VLFeat工具箱配置
  10. cad卸载工具_如何彻底卸载CAD?
  11. 单片机学习入门一 学习概述
  12. usb摄像头android录像软件,USB摄像头app
  13. W5500开发笔记 | 01- W5500 Socket API的说明
  14. vue-pdf插件import引入时报错
  15. Ubuntu测试使用速腾RS-Lidar-16
  16. Python怎么进行时区的转换
  17. 怪物猎人世界服务器小程序,坚守的猎人的最后礼物? 腾讯推出《怪物猎人世界》官方小程序...
  18. 项目Ⅱ-注册页面的完成
  19. Java 窗口透明化(无边框)
  20. 【毕业设计】基于stm32的迷你示波器 - 单片机 嵌入式 物联网

热门文章

  1. 计算机辅助小学英语阅读,独家原创:浅谈计算机辅助教学在小学英语教学中的优势...
  2. 用友U8 +13.0 总账模块登陆提示'此账套的行业性质与科目设置中的科目分类不符',特殊行业.医院科目,百度一般处理方式不行.
  3. adb工具的安装过程及华为手机配置
  4. 如何在局域网中屏蔽AnyDesk?
  5. 人社部:新职业人才缺口近千万,云计算人才缺口近150万、90 后最担心失业
  6. Day33 MySQL
  7. oracle constraint: foreign key
  8. python模块commands执行系统命令
  9. 使用CloudCompare评估ICL-NUIM数据集
  10. R语言按某一列分类求均值+绘图总结