- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《Segment-TreebasedCostAggregationforStereoMatching》读后感
前段时间整理博客发现,自己关于立体匹配部分的介绍太少了,这可是自己花了一个季度研究的东西啊!读了自认为大量的文章,基本上有源码的都自己跑了一遍,还改进了多个算法。不写写会留下遗憾的,所以打算在立体匹配这一块多谢谢博客,一来用于分享,二来用于请教,三来用于备忘。本文介绍的文章就是CVPR2013的《Segment-Tree based Cost Aggregation for Stereo Matching》一文,介绍它原因有以下几点:
1.它是NLCA的变种。
2.它是CVPR的文章。
本文还是从Segment-Tree的算法思想,算法核心,算法效果三方面进行分析,这篇文章的源代码链接是:/kc4271/STCostAggregation
(转载请注明:/wsj998689aa/article/details 作者:迷雾forest)
1. 算法思想
? ? ? ? Stereo Match是前段时间一直研究的问题,我将主要的精力都集中在了半全局算法上,或者带有全局性质的局部算法,如上一篇博客介绍的NLCA(non-local cost aggregation),本文介绍一下NLCA的衍生品,这样说没有冒犯作者的意思哈!但是ST(segment tree)确实是基于NLCA的改进版本,本文的算法思想是:基于图像分割,采用核NLCA同样的方法对每个分割求取子树,然后根据贪心算法,将各个分割对应的子树进行合并,算法核心是其复杂的合并流程。但是这个分割不是简单的图像分割,其还是利用了最小生成树(MST)的思想,对图像进行处理,在分割完毕的同时,每个分割的MST树结构也就出来了。然后将每个子树视为一个个节点,在节点的基础上继续做一个MST,因此作者号称ST是分层MST,还是比较贴切的!
? ? ? ?算法是基于NLCA的,那么ST和NLCA比较起来好在哪里?作者给出的解释是,NLCA只在一张图上面做一个MST,并且edge的权重只是简单的灰度差的衍生值,这点不够科学,比如说,当遇到纹理丰富的区域时,这种区域会导致MST的构造出现错误,其实想想看的确是这样,如果MST构造的不好,自然会导致视差值估计不准确。而ST考虑了一个分层的MST,有点“由粗到精”的意思在里面。有图说明:
a指的是原图,b指的是局部放大图,c指的是ST的权重图,d指的是NLCA的权重图,这个权重图指的是,周围点对红色点的贡献度,越亮代表权重越大。可以明显看到,在对细节的处理上,ST明显强于NLCA,例如ST中p1点,其位于低纹理区域,对高纹理区域的贡献很低很低,这更符合理想状态。但是MST却有瑕疵,p1点对其它点的贡献不具有区域性,绿色三角指向的地方就是瑕疵所在。
产生上述现象的原因是:ST在生成整幅图MST的同时,事实上也对各个区域生成了MST,便使得单点对其它点的权值,在所位于区域内比较大, 而在不同的区域上往往很小。至于ST是如何做到的,请看下一小节中的解释。
2. 算法核心
? ? ? 本文的核心部分就是其中的流程图,最让人费解的也是这个算法流程,所以本小节重点说一下我对这块的理解。它将流程分为三个部分,初始化-聚合-连接
其实,该算法流行直接采用了文献《Efficient graph based image segmentation》中提到的全局分割方法,文献在这里并没有进行过多的解释,只是一再强调可以去文献中查阅这篇文章。下面说一下各个步骤的含义。
1. 初始化很简单,边先暂且不考虑,将每个像素点形成一个集合T,集合内只有一个像素点。
2. 聚合比较复杂,需要将边根据权值由小到大排序,然后对所有的边进行遍历,与边相伴随的两个点要么合并,要么不合并,判断的准则就是边权值是否满足下述条件:
如果合并,那么就要将边不断的添加到集合E‘中,最终,E’中存放的都是小树中的边,由于后续还需将每个小树视作一个个节点,重新将小树连接成为一棵大树,所以需要将E‘从E中删除。
3.剩下的就是连接,正如上面所说,连接就是将每个小树视作节点,进一步形成一颗大树。采用的方法和上面的步骤很相似,对E中的边进行遍历,这个时候没有条件的限制,如果两个小树不同就得合并,直至E’中边的个数只比点的个数少1,因为树的边数就比节点数少1个,所以这里意味着全图对应的还是只有一颗MST,注意,这个E‘没有重新被清空。
流程就是上面说的这样,下面提几个问题:
1)流程图中合并的集合一直都是Vp,Vq,那么Vp,q是怎么处理的?
2)为什么聚合之后,就相当于对图像进行了分割?
3)终止条件有什么意义在里面?
4)边权值满足的阈值有什么意义?
以下部分是我的回答:
1). 要回答这个问题,我们不妨思考一下MST的创建过程,你就会发现,原来这个流程图和MS
文档评论(0)