[已解决] census变换立体匹配

[复制链接]
苹苹1215 发表于 2014-8-21 17:54:21
有做立体匹配用census变换的吗?本人初学,想请教一些问题(1)census变换立体匹配是不是也是提取了特征之后进行匹配 ,特征点作为窗口的中心元素(2)在匹配之前是不是需要对左右图像进行校正,因为我两个相机的放置成一定的角度(3)是不是完成匹配之后再计算得到视差图,视差图的物理意义是什么。拜托了!!!

最佳答案


荒草 发表于 2014-8-29 12:27:50
苹苹1215 发表于 2014-8-29 09:24
我匹配时基于特征的匹配  之前的算法效果不好  所以在看其他的   单纯的匹配不需要找视差图是吧   视差图 ...

立体匹配就4个步骤:匹配代价计算,代价聚合,计算视差,视差精化。你先弄明白这四个步骤分别是在做什么,然后按照这个步骤来做就是了。代价计算常用的就是基于像素点匹配代价计算,一般有AD, SD,TAD什么的,基于区域的匹配代价计算一般有SAD,SSD, STAD之类的。匹配代价计算会生成一个disparity space image,也就是DSI。这个DSI是一个三维的空间,也就是每一个视差,得到一张代价图。假如视差范围是0~16,则会得到17幅代价图。接着就进行代价聚合,其实就是一个滤波的过程,对每一幅代价图进行聚合,最简单的就是采用boxfilter。接着就是计算视差了。常用的方法就是WTA算法,对于图像中的同一个点,选出17幅代价图中匹配代价最小的那张图,该幅图对应的视差值就选取为最终的视差。上面的方法是基于局部的匹配。基于全局的算法有些区别。不过基本步骤都差不多。有些时候,基于局部的算法,第一步和第二步是合并在一起进行的,基于全局的算法,会跳过第二步。具体多看看论文吧。至于视差范围跟两个摄像头的位置有关吧,一般都是预估一下就可以了。

12 条回复


OlaBaby 发表于 2014-8-25 11:51:03
1,提取特征再匹配
2,如果你有两个方向都有视差,并打算求二维视差,那么就不需要校正。一般都会校正,只保留一维方向视差
3,视差图的物理意义就是视差

苹苹1215 发表于 2014-8-28 17:22:44
OlaBaby 发表于 2014-8-25 11:51
1,提取特征再匹配
2,如果你有两个方向都有视差,并打算求二维视差,那么就不需要校正。一般都会校正,只 ...

我提取到了特征点  图像的纹理比较单一  全部是方形网格  我提取到的是网格交点  这写特征点可以作为窗口中心元素吗  系统是双目的    校正一般用什么方法  请问您有没有这方面的资料啊  谢谢了

OlaBaby 发表于 2014-8-28 18:26:57
苹苹1215 发表于 2014-8-28 17:22
我提取到了特征点  图像的纹理比较单一  全部是方形网格  我提取到的是网格交点  这写特征点可以作为窗口 ...

建议你找文献读哦

荒草 发表于 2014-8-28 21:05:17
如果是要得到一张完整的视差图,为啥要去找特征点?应该把左图像的每个点,按照视差范围在右图像中挨个匹配的,从中找到最相似点作为最后的匹配点,然后计算这对匹配点的位置之差就是视差了。
如果仅仅是计算某几个特征点的三维坐标,根本就不需要这么做。

苹苹1215 发表于 2014-8-29 09:24:26
荒草 发表于 2014-8-28 21:05
如果是要得到一张完整的视差图,为啥要去找特征点?应该把左图像的每个点,按照视差范围在右图像中挨个匹配 ...

我匹配时基于特征的匹配  之前的算法效果不好  所以在看其他的   单纯的匹配不需要找视差图是吧   视差图是匹配好之后再计算的吗   那这个视差范围怎么确定的

苹苹1215 发表于 2014-8-29 09:30:08
荒草 发表于 2014-8-28 21:05
如果是要得到一张完整的视差图,为啥要去找特征点?应该把左图像的每个点,按照视差范围在右图像中挨个匹配 ...

我是提取了图像中的某些点进行匹配  你的意思是单纯的匹配只要确定视差范围和匹配代价就可以了?完成匹配之后才计算视差吗

荒草 发表于 2014-8-29 12:27:50
苹苹1215 发表于 2014-8-29 09:24
我匹配时基于特征的匹配  之前的算法效果不好  所以在看其他的   单纯的匹配不需要找视差图是吧   视差图 ...

立体匹配就4个步骤:匹配代价计算,代价聚合,计算视差,视差精化。你先弄明白这四个步骤分别是在做什么,然后按照这个步骤来做就是了。代价计算常用的就是基于像素点匹配代价计算,一般有AD, SD,TAD什么的,基于区域的匹配代价计算一般有SAD,SSD, STAD之类的。匹配代价计算会生成一个disparity space image,也就是DSI。这个DSI是一个三维的空间,也就是每一个视差,得到一张代价图。假如视差范围是0~16,则会得到17幅代价图。接着就进行代价聚合,其实就是一个滤波的过程,对每一幅代价图进行聚合,最简单的就是采用boxfilter。接着就是计算视差了。常用的方法就是WTA算法,对于图像中的同一个点,选出17幅代价图中匹配代价最小的那张图,该幅图对应的视差值就选取为最终的视差。上面的方法是基于局部的匹配。基于全局的算法有些区别。不过基本步骤都差不多。有些时候,基于局部的算法,第一步和第二步是合并在一起进行的,基于全局的算法,会跳过第二步。具体多看看论文吧。至于视差范围跟两个摄像头的位置有关吧,一般都是预估一下就可以了。
回复此楼

花开盛夏 发表于 2015-3-2 10:58:58
苹苹1215 发表于 2014-8-28 17:22
我提取到了特征点  图像的纹理比较单一  全部是方形网格  我提取到的是网格交点  这写特征点可以作为窗口 ...

我想问一下特征点的选取有什么要求吗?应该如何选取

苹苹1215 发表于 2015-3-2 16:48:42
花开盛夏 发表于 2015-3-2 10:58
我想问一下特征点的选取有什么要求吗?应该如何选取

我这个是选取期望的标记点作为特征   不是自然场景的哪一类图像   所以没有什么特别的要求  你按具体情况选取

苹苹1215 发表于 2015-3-2 16:58:03
荒草 发表于 2014-8-28 21:05
如果是要得到一张完整的视差图,为啥要去找特征点?应该把左图像的每个点,按照视差范围在右图像中挨个匹配 ...

我是在左右图像中选取了某些标记点  比如个10个标记点作为匹配点   完成匹配  但是在有视差的情况下   匹配效果并不好   再想请教一下   

苹苹1215 发表于 2015-3-2 17:05:13
荒草 发表于 2014-8-28 21:05
如果是要得到一张完整的视差图,为啥要去找特征点?应该把左图像的每个点,按照视差范围在右图像中挨个匹配 ...

我这里说的特征点就是我在左右图像中选取了某些标记点  比如10个, 通过匹配和相机标定的参数来计算这10个点所对应的空间坐标,匹配效果并不是很好   左右图像也有视差   这类点的匹配有什么比较好的方法  再请教一下

zbz001 发表于 2018-4-24 11:09:27
lz有代码吗?网上只有两个付费网址
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表