计算视觉——NCC视差匹配

一、立体匹配

1.1 原理

找出两张图像的对应关系,根据三角测量原理,得到视差图;在获得了视差信息后,根据投影模型可以得到原始图像的深度信息和三维信息。

1.2 步骤

  • 匹配代价计算: 一般是通过计算左右两图对应像素3个通道的灰度值差来决定匹配代价的,常用的就是基于像素点匹配代价计算,一般有AD, SD,TAD,基于区域的匹配代价计算一般有SAD,SSD, STAD。匹配代价计算会生成一个disparity space image,也就是DSI。这个DSI是一个三维的空间,也就是每一个视差,得到一张代价图。假如视差范围是0~16,则会得到17幅代价图。视差搜索范围就是MiddleBurry网站上的stereo pair值,也就是说在视差范围内(比如0-16)搜索匹配代价,得到17张匹配代价图,然后找到匹配代价最小的对应的视差值就是此像素对应的视差。

  • **代价聚合:**其实就是一个滤波的过程,对每一幅代价图进行聚合,最简单的就是采用boxfilter。第一步代价计算只是得到了图像上所有孤立像素的视差值,但是这些时差值都是孤立的,引入了过多噪声,比如一片区域的视差值都是10,可是引入噪声后就会导致这一片的视差值都不一样,那么就需要一个滤波的过程,也就是我们所说的局部立体匹配方法,即采用窗口卷积达到局部滤波的目的。

  • 计算视差:常用的方法就是WTA算法(局部),对于图像中的同一个点,选出17幅代价图中匹配代价最小的那张图,该幅图对应的视差值就选取为最终的视差。或者在全局立体匹配中采用能量函数的方法,分为数据项和平滑项,数据项其实就是代价计算,平滑项就是代价聚合,只不过窗口大小是整幅图像,也可以试试如果把平滑项前面的系数lamda设为0,那么得到的结果和单纯代价计算的局部立体匹配是一样的。

  • 视差精化:对得到的视差进行优化的过程,如:左右一致性检测、区域投票等;这步就是做如遮挡处理,中值滤波,左右一致性检测等,都能使最后的是视差图提升1%左右,立体匹配最关键的步骤仍然是代价计算和代价聚合步骤。

二、NCC视差匹配

2.1 原理

对于原始的图像内任意一个像素点 ( p x , p y ) ( p x , p y ) ( p x ​ , p y ) (p_x,p_y) (p_x,p_y)(p_x​ ,p_y) (px,py)(px,py)(px,py)构建一个 n × n n×n n×n的邻域作为匹配窗口。然后对于目标相素位置 ( p x + d , p y ) ( p x + d , p y ) ( p x + d , p y ) (p_x+d,p_y) (p_x+d, p_y)(p_x+d,p_y) (px+d,py)(px+d,py)

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值