【计算机视觉】Lecture 7:对应匹配
回忆:高斯滤波器的导数
观察和概括
高斯函数的导数:看起来像垂直的和水平的阶跃边缘
关键思想:带滤波器的卷积(和互相关cross correlation)可以被看作是将想要找到的内容与图像中的所有局部区域进行比较
观察和概括
关键思想:带滤波器的互相关cross correlation可以被看作是将想要找到的内容与图像中的所有局部区域进行比较
下图看起来像垂直边缘;右边较浅
最大响应(蓝色框):垂直边缘;右边较浅
最小响应(黄色框):垂直边缘;左边较浅
观察和概括
关键思想:带滤波器的互相关cross correlation可以被看作是将想要找到的内容与图像中的所有局部区域进行比较
因此,它有时被称为“匹配过滤”
事实上,你可以证明寻找图像块最佳的线性算子本质上是图像块本身
模板匹配
如果我们从图像中剪下一些小图片,然后尝试用相同或其他图片将它们卷积起来呢?
抱歉
我作弊了。
在做互相关之前,我从图像和模板中都减去了平均灰度值。
为什么?(我们稍后再讨论,但先考虑一下)
对应问题
像立体视觉和运动估计这样的视觉任务需要在两个或多个视图中找到相应的特征点。
对应问题
基本假设:
- 大多数场景点在两个图像中都可见
- 对应的图像区域相似
以下假设成立:
点到摄像机的距离远大于摄像机之间的距离
对应问题
这是一个”搜索“问题:
- 左图中给定一个元素,在右图中寻找对应的元素
- 我们通常需要几何约束来减小搜索空间的大小
我们必须选择:
- 需要匹配的元素
- 比较元素的一种相似性度量方法
对应问题
两类算法:
1. 基于相关性的算法
产生一组稠密的对应点
-
基于特征的算法
产生一组稀疏的对应点
基于相关性的算法
用来匹配的元素是固定大小的图像块
任务:第二张图片中对应的图像块是什么?
基于相关性的算法
任务:第二张图片中对应的图像块是什么?
- 需要一个外观相似度函数
- 需要一个搜索策略来找到相似度最高的位置。最简单的(但不太高效的)方法是穷举搜索(exhaustive search)
比较窗口
一些可行的度量方法:
相关性
如果我们对第二个图像中的所有图像块执行穷举搜索,这将是卷积模板核与图像进行互相关(cross-correlation)操作。我们之前就见过—imfilter (im, template, ‘corr’)。
例子
注意:这是NASA探测器的立体图像对。漫游者正在探索“El Capitan”编队。
例子:原始的互相关 (Cross-correlation)
例子:互相关 (Cross-correlation)
注意,评分图像看起来很像图像2的模糊版本
这就为我们引出了图像模板卷积核的直接相关性的问题。
原始图像模板的相关性问题
考虑模板与恒定灰度图像的相关性:
Result: v×(a+b+c+d+e+f+g+h+i)
原始图像模板的相关性问题
现在考虑一个亮度是两倍的恒定图像的相关性
Result: 2×v×(a+b+c+d+e+f+g+h+i) > v×(a+b+c+d+e+f+g+h+i)
无论模板卷积核是什么,评分更高了!
解决方法
减去模板卷积核的平均值。
用这种方法,只有当模板卷积核的较暗部分与图像的较暗部分重叠,并且模板卷积核的较亮部分与图像的较亮部分重叠时,相关性评分才更高。
相关性,零均值模板卷积核
更好了!但最高分仍然不是正确的匹配。
注:在正确匹配的局部邻域内评分最高。
“SSD”或“块匹配”(平方差之和)
- 最流行的匹配评分
- 我们在获取Harris角点时使用
- 比互相关(cross-correlation)方法要更好
SSD与相关性的关系
SSD
图像中的最佳(最高得分)匹配与本例中的正确匹配一致!
处理灰度变化
灰度变化:
- 拍摄第二幅图像的相机可能与拍摄第一幅图像的相机具有不同的灰度响应特性
- 场景中的光照可能会改变
- 相机可能设置了自动增益控制,因此它在场景中移动时的灰度响应会发生变化。
灰度归一化
当一个场景在不同的传感器上或者在不同的光照强度下成像时,对于表示场景中相同区域的窗口,SSD和Cfg都可以是比较大的!
一种解决方案是在比较窗口中的像素之前,通过减去图像块灰度的平均值并除以标准差对其进行归一化。
去均值化
归一化互相关(NCC)
归一化互相关
最高得分的匹配与正确匹配也是一致的
而且,看起来不太可能得到错误的匹配
归一化互相关
关于NCC的重点:
相关性得分从1(最佳匹配)到-1(完全反相关)
直觉:把归一化的图像块当作向量,我们看到它们是单位向量。因此,相关性成为单位向量的点积,因此必须介于-1和1之间。