PatchMatch Stereo - Stereo Matching with Slanted Support Windows
Tips
MVS: Multi-View Stereo
Abstract
- 思路:一般的局部立体方法是一个具有整形数值视察(disparity)的支持镜头进行匹配,其中有一个隐藏的假设:再支持区域的像素中具有恒定的视差。这个假设在倾斜的表面是不成立的。
- 每个像素有一个单独的3D平面。
- 除了PatchMatch的空间传播方法外,还有
- 在立体中左右视图传播的图传播。
- 时间传播,从视频的前和连续帧中传播平面。
- 倾斜支持窗口可以用来计算全球立体方法的代价,允许明确的遮挡处理,可以处理大的非纹理区域。
- 重构了高度倾斜的表面,并以亚像素精度实现了视差细节。
Introduction
原来局部立体匹配中,恒定时差不太可能发生的原因有二:
- 支持的窗口包含与中心像素位于不同表面的像素。
- 窗口捕捉到倾斜的表面,不是fronto-parallel。
- [ ] ??? 这篇论文提出了一种基于PatchMatch的算法,有效地解决了在每个像素点找到一个“好的”倾斜支持平面的问题。与其他局部算法相比,算法没有构建完整的cost-volume,这在本论文算法中是不可能的,因为标签空间包含了无限个3D平面。相反,算法巧妙地遍历了其中的一部分。这使得一次优化成为可能,平面以及分配给平面的像素能够联合估计,这有效地绕过了错失正确平面的问题。PatchMatch本身就是一个近似稠密的最近邻算法。这篇论文利用随机搜索和传播的PatchMatch思想来寻找平面极线上的最近邻。这使得能够处理倾斜的表面和亚像素精度。
Algorithm
对于两张图像中的每个像素\(p\), 寻找一个平面\(f_p\),视差公式:
\[ d_p = a_{f_p}p_x+b_{f_p}p_y+c_{f_p} (1) \]
总的优化函数如下:
\[ f_p = argmin_{f\in\xi}m(p,f)(2) \]
其中\(\xi\)表示所有可能的平面,它的大小是无限的。
代价公式如下:
\[ m(p,f)=\sum_{q\in W_p}w(p,q)\rho(q, q-d_p) \]
其中\(W_p\)表示以像素\(p\)作为中心的方形窗口。但是与现有方法不同,\(W_p\)不再是2D的,而是3D的。权重函数\(w(p,q)\)用来解决边缘育肥问题,并且实施自适应支持权重的思想,它通过像素之间的颜色来计算他们之间的相似性:
\[ w(p,q) = e^{-||I_p-I_q||} \]
其中,\(||I_p-I_q||\)计算像素\(p\)和\(q\)在RGB空间的L1距离。
现在来关注\(\rho(q,q')\)部分,首先根据平面\(f\)计算像素\(q\)的视差,并且从\(q\)的x坐标减去这个视差得到在另一张图上的匹配点\(q'\),函数\(\rho(q,q')\)用来计算像素\(q\)和\(q'\)之间的不相似性:
\[ \rho(q,q')=(1-\alpha)min(||I_q-I_{q'}||,\tau_{col})+\alpha min(||-||,\tau_{grad}) \]
2.2 PatchMatch计算视差
随机初始化
给两张图像的一个像素的一个随即平面。
- Somehow,得到一个随机平面的一个点\(P(x_0, y_0, z_0)\)。
- 然后计算平面法向量\(n=(n_x, n_y, n_z)\)
- \(a_f=-n_x/n_z\)
- \(b_f=-n_y/n_z\)
- \(c_f=(n_xx_0 + n_yy_0+n_zz_0)/n_z\)
迭代和传播
四种步骤。(1). spatial propagation, (2). view propagation, (3). temporal propagation, (4). plane refinement。
首先处理左图的所有像素,然后处理右图的所有像素。
- 在奇数次迭代中,从左上角的像素开始,逐行遍历。
- 在偶数次迭代中,颠倒顺序。
Search
简单三步骤
- 初始化:两张图A和B,将A图中的每一个像素,随机赋予一个偏移量,在B图中找到一个与之对应。
- 传播:每个像素检查来自相邻块的便宜是否提供了更好的匹配,如果是则采用邻居的偏移量。
- 搜索:每一个像素点在以现在的偏移量位中心的同心圆内部,找到一个更加匹配的偏移量。
搜索的半径以图片为尺寸,然后以1/2的收敛速度减少,直到半径为1.
转载于:https://www.cnblogs.com/tweed/p/10891103.html
PatchMatch Stereo - Stereo Matching with Slanted Support Windows相关推荐
- 论文阅读《PatchMatch Stereo - Stereo Matching with Slanted Support Windows》(PMS-双目立体匹配)
论文地址:PatchMatch Stereo - Stereo Matching with Slanted Support Windows 问题提出 局部匹配方法在计算匹配代价中是基于Fronto ...
- 论文阅读笔记:《PatchMatch Stereo - Stereo Matching with Slanted Support Windows》
论文下载: PatchMatch Stereo - Stereo Matching with Slanted Support Windows 摘要 1.1 思路 像素区域可以用近似的平面来模拟. ( ...
- 【论文阅读】12-PatchMatch Stereo - Stereo Matching with Slanted Support Windows
[论文阅读]12-PatchMatch Stereo - Stereo Matching with Slanted Support Windows 0 basic information 1 aims ...
- 《PatchMatch Stereo - Stereo Matching with Slanted Support Windows》
1. 研究问题 普通的局部立体匹配方法假设支持窗口内视差一致,存在正面平行的偏向,导致倾斜表面重建出现较大偏差. 2. 研究方法 基于PatchMatch,提出PatchMatch Stereo算法, ...
- 论文阅读笔记《PatchMatch Stereo - Stereo Matching with Slanted Support Windows》
摘要 介绍 算法 1 模型 2 通过PatchMatch方法来计算视差 3 后处理 4 为全局方法建立一个数据项 实验结果 摘要 一般的局部立体方法是在一个具有整型数值视差的支持窗口中进行匹配.其中隐 ...
- (PatchMatch )PatchMatch Stereo - Stereo Matching with Slanted Support Windows中关于fronto-parallel的理解
读这篇文章的时候,没有理解fronto-parallel是什么,无意中发现这篇博客,阐述的很好 后续我会把我整理的比较经典的双目匹配论文及相关代码发布出来
- 【理论恒叨】【立体匹配系列】经典PatchMatch: (1)Slanted support windows倾斜支持窗模型
一枝独秀不是春 理论恒叨系列 [理论恒叨][立体匹配系列]经典PatchMatch: (1)Slanted support windows倾斜支持窗模型 [理论恒叨][立体匹配系列]经典PatchMa ...
- 基于Patachmatch的stereo matching笔记(一):《PatchMatch Stereo》
Patchmatch Stereo 论文:PatchMatch Stereo - Stereo Matching with Slanted Support Windows(2011) Patchmat ...
- PatchMatch Stereo(一)Slunted Windows
前言 PatchMatch 算法可以见前篇博文PatchMatch算法, 而PatchMatch Stereo主要利用PatchMatch算法来做Stereo Match. 涉及到的论文: <P ...
最新文章
- 图片管理之获取图片列表数据
- centos/Debian/Ubuntu上安装PyCryptodome/Crypto
- java导出excel(easypoi)
- Android中使用xml处理图片,Android布局 – 在xml中偏移背景图像
- 《强化学习周刊》第4期:强化学习应用之智慧交通
- DL之NN:利用(本地数据集50000张数据集)调用自定义神经网络network.py实现手写数字图片识别94%准确率
- 允许跨域访问_PHP设置多域名允许跨域访问
- C 标准库 - string.h
- 计算客 (人人都有极客精神)爆力
- js 中实现 汉字按拼音排序
- Python+Tensorflow+CNN实现车牌识别
- 计算机仿真软件在医疗应用,医学虚拟仿真应用介绍
- 正从服务器获取安装包消息 荣耀9,华为荣耀9 root教程 华为荣耀9获取root权限的方法...
- ‘The INSERT statement conflicted with the FOREIGN KEY constraint “FK_TourismReservation_Users“. The
- echarts 横向条形图 对比
- mac环境 java找不到或无法加载主类
- 从零开始学WEB前端——JavaScript数据类型
- 机器人教育与编程教育的区别到底是什么?
- 查看linux系统CPU内存
- 配置linux开发板ssh登录