当前位置: 首页 > news >正文

建设厅官方网站下载专区优化设计官方电子版

建设厅官方网站下载专区,优化设计官方电子版,豪华跑车网站建设,建设银行宁波分行网站目录 前言 原理解析 1.倾斜支持窗口(Slanted Support Windows) 什么是视差平面? 为什么视差和像素坐标点之间的关系可以解释为平面方程? 视差平面的通用参数方程和点加法向量方程 什么是倾斜支持窗口? 2.基于倾…

目录

前言

原理解析

1.倾斜支持窗口(Slanted Support Windows)

什么是视差平面?

为什么视差和像素坐标点之间的关系可以解释为平面方程?

视差平面的通用参数方程和点加法向量方程

什么是倾斜支持窗口?

2.基于倾斜窗口的代价计算

3.视差平面的随机初始化

4.基于PatchMatch的迭代传播方法

4.1.空间传播

4.2.视图传播

4.3.时间传播

4.4.平面细化

5.后处理

5.1.一致性检查

5.2.视差填充

PatchMatch相关开源代码

总结


前言

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

Bleyer M, Rhemann C, Rother C. Patchmatch stereo-stereo matching with slanted support windows[C]//Bmvc. 2011, 11: 1-11.

区别于SGM(半全局算法),PatchMatchStereo本身是一种局部算法,可以估计出每个像素上的视差及其所在的3D视差平面,更适用于倾斜表面的视差估计。倾斜窗口的代价可以作为全局方法(比如,Graph Cut)构建代价空间的数据项,从而可以更加鲁棒地恢复出遮挡和大面积无纹理区域的视差。

局部:SAD、SSD、NCC\ZNCC、Census-Transform、Mutual Information、PatchMatch 全局:Graph Cut、Belief Propagation、Dynamic Programming 半全局:SGM、SGBM 参考博文:视觉立体匹配江湖记_扫地机 双目立体匹配_李迎松~的博客-CSDN博客

下图是SGM和PatchMatch的效果对比。基于连续空间的视差平面方法,在精度和效果上有明显的优势。尤其是在边界和细小结构的恢复上,离散空间带来的不精确性以及SGM的代价聚合模型对边界的处理并不清晰(或者说并不精确),使得SGM和PatchMatch差距明显

原理解析

 

1.倾斜支持窗口(Slanted Support Windows)

想要了解倾斜支持窗口,先得知道什么是视差平面。

什么是视差平面?

 

为什么视差和像素坐标点之间的关系可以解释为平面方程?

我们构建针孔相机、成像平面和真实物体表面三者的几何关系如下图所示:

 

 

 

 

视差平面的通用参数方程和点加法向量方程

 

什么是倾斜支持窗口?

 

 

2.基于倾斜窗口的代价计算

 

 

综上,PatchMatch在计算局部窗口的代价的时候,对于窗口内每个像素点会按照独立的视差去计算代价,并且加入自适应支持权重,提高了位于同一平面的匹配点的代价贡献度。  

下面就是PatchMatch的优化方法,其方法最开始是来源于PatchMatch图像融合方法。

最底层的想法是,图像中存在很多区域,在每个区域内,像素之间的视差平面是非常接近的。那么,如果通过随机初始化之后,每个区域至少会有一个像素点具有接近正确视差平面的初始值的话,哪怕只有一个“good”,我们就可以通过迭代传播的方式将这个平面传递到该区域的其他像素上。

3.视差平面的随机初始化

4.基于PatchMatch的迭代传播方法

 

4.1.空间传播

 

  

4.2.视图传播

 

 

4.3.时间传播

4.4.平面细化

这个想法是允许在第一次迭代中进行较大的更改(如果当前视差平面完全错误,那么就非常有意义,相当于遗传算法里面的基因突变)。

在之后的迭代中,我们进行更加精细的采样,这就能允许捕捉到视差细节(比如,圆形表面)。

 

5.后处理

5.1.一致性检查

 

5.2.视差填充

 

 

PatchMatch相关开源代码

[1] GitHub - ethan-li-coding/PatchMatchStereo: PatchMatchStereo,倾斜窗口经典,效果极佳,OpenMVS&Colmap稠密匹配算法。完整实现,代码规范,注释清晰,博客教学,欢迎star!

[2] GitHub - nebula-beta/PatchMatch: PathMatch is the state-of-the-art stereo match algorithm framework.

[3] GitHub - nebula-beta/PatchMatchCuda: The PatchMatch stereo match algorithm implemented by CUDA.

[4] GitHub - cdcseacave/openMVS: open Multi-View Stereo reconstruction library

[1]代码的作者是李迎松,结合他写的博文,可很快地学习和掌握到整个PatchMatch计算过程以及具体实现方法。

[2]和[3]代码的作者是ZhengMao Gong,实现了CPU版本和GPU版本,GPU版本是基于CUDA开发的。

[4]是常用的OpenMVS,可以估计出极线校正前视图的深度,而不需要做极线校正,同样的也有CPU版本和GPU版本。

总结

SGM和PatchMatch本质上都是在求解能够使得代价最小化的视差最优解,最主要的区别是代价计算、优化方法和视差平滑

  • 代价计算:SGM所构建的代价空间中的每一个代价是来源于一个基于整像素视差的Fronto-parallel窗口(默认该窗口内所有像素都具有恒定视差),而PatchMatch的代价是来源于基于子像素视差的Slanted support窗口(即,窗口内每个像素点的视差是不一样的),再加上自适应支持权重,使得从局部窗口的代价本身就能反映出不同倾斜表面的细微差别,保证计算的代价具有足够的几何精度。而SGM因为采用的是Fronto-parallel窗口计算代价,不可避免会有视差精度损失的问题。

  • 优化方法:SGM采用的是半全局的动态规划方法来近似解决全局代价最小化问题,而PatchMatch是多种方式组合的随机传播方法(空间传播、视图传播、平面细化、时间传播)来近似解决全局代价最小化问题,有点类似遗传算法或者粒子群算法。

  • 视差平滑:SGM采用的是添加代价聚合的平滑项和亚像素插值的方式,而PatchMatch是通过空间传播视差平面的方式。

在上述区别中,代价计算的区别使得PatchMatch可以比SGM在精度和效果上有明显的优势,尤其是在边界和细小结构的恢复上。但是优化方法的区别使得PatchMatch的迭代优化次数比SGM高出至少一个数量级,所以在实际运用中多采用棋盘格传播替换原始的串行传播方式,并采用GPU多线程加速计算。

http://www.jinmujx.cn/news/80152.html

相关文章:

  • 营销型网站的定义微信小程序开发文档
  • 南昌县建设局网站软文推送
  • 如何做一个商城类型的网站网推怎么做最有效
  • 建设地方新闻网站的意义二次感染即将大爆发
  • 阜阳微商城网站建设外链网盘源码
  • 优秀企业网站建设哪家服务好seo需要培训才能找到工作吗
  • 做网站的策划书五合一网站建设
  • 电子商务网站开发课题简介网站推广软件免费版大全
  • 网站建设后台管理常用的网络营销方法
  • 中企网络科技建站怎么创建网站
  • 大型网站开发方案凡科建站怎么导出网页
  • 海南房地产网站建设重庆网页优化seo
  • 对网站建设的评价语个人推广平台
  • h5链接制作平台百度seo原理
  • 武汉网站建设027best郑州好的seo外包公司
  • vs2010网站开发太原seo计费管理
  • 小程序怎样制作seo课堂
  • 徐州网站开发多少钱外贸平台哪个网站最好
  • 去哪里找做网站的人深圳sem竞价托管
  • 怎么建设自己产品网站关键词搜索排名查询
  • 安卓软件开发需要学什么百家号seo
  • 厦门自主建站模板seo查询外链
  • 足球网站怎么做关键词优化报价推荐
  • 网站如何识别移动端网络营销服务外包
  • 学校网站建设情况网络推广外包怎么接单
  • 门户网站建设运营今晚比赛预测比分
  • 手机作网站服务器线下推广方法有哪些
  • 广州做网站哪家好重庆seo
  • 欧美做同志网站有哪些信息如何优化上百度首页公司
  • 做搜狗手机网站优化软竞价推广开户电话