动机:匹配问题
像立体视觉和运动估计这样的视觉任务需要在两个或多个视图中找到相应的特征点。
动机:块匹配
要匹配的元素是固定大小的图像块
任务:在第二个图像中找到最佳(最相似的)图像块
不是所有创造的图像块都是等价的!
直觉感受:因为它非常唯一独特(第二帧中只有一个图像块看起来相似),所以这是一个很好的匹配图像块。
不是所有创造的图像块都是等价的!
直觉感受:因为它不是非常唯一独特(在第二帧中有许多相似的图像块),所以这不是一个好的匹配图像块
什么是角点?
直觉地,轮廓的连接处
一般来说,更稳定的特征点不会受到观察点改变的影响
直觉地,像素点附近在各个方向上都存在大的变化
这样,它们就是用来作为匹配的很好的特征点!
角点:基本思想
我们应该通过观察一个小窗口内的灰度值来很容易地识别出这一点
向任何方向移动窗口都会使外观发生很大变化
一个图像块附近的外观变化
Harris角点检测算子:基本思想
“平坦flat”区域:在各个方向上都没有变化
“边缘edge”:沿着边缘方向没有变化
“角点corner”:在各个方向都有显著的变化
Harris角点检测算子给出了一种确定哪种情况成立的数学方法。
Harris检测算子:数学描述
移动[u, v]这个像素值,来改变灰度值:
Harris检测算子:直观感受
移动[u, v]这个像素值,来改变灰度值:
上图蓝色圈圈部分:
对于灰度值几乎为常数的匹配块,这将接近于0。
对于非常独特唯一的匹配块,这将会是更大的。
因此,我们需要 E(u,v) 的值比较大的匹配块。
二元函数的泰勒级数
一阶偏导数:
二阶偏导数:
三阶偏导数:
一阶近似值:
Harris角点推导
Harris检测算子:数学描述
针对小的移动[u, v],我们有双线性近似法:
其中M是通过计算图像导数获得的一个2*2矩阵
w(x, y)为窗口函数——计算加权和(最简单的情况,w=1)
注:IxIy 这些是梯度分量Ix, Iy的乘积
理解Harris的直观方法
将梯度向量视为一组(dx,dy)点,重心定义为(0,0)
通过散点矩阵将椭圆拟合到该点集
分析不同情况下的椭圆参数…
例子:案例和二元导数
将导数绘制为二维点
三种图像块类型中,关于x和y偏导数的分布是非常不同的
将椭圆拟合到每个点集
关于x和y偏导数的分布可以参数化为椭圆的形状和大小
通过特征值分类
使用矩阵M的特征值将图像像素点进行分类
角点响应测定
角点响应的测定:
K是一个经验值常数,一般是0.04-0.06
角点响应图
角点响应图
R 仅仅依赖于矩阵M的特征值
角点: R 很大且为正
边缘:R为大数值负数
平坦区域:|R| 很小
角点响应例子
Sobel算子计算Ix, Iy。窗口函数 w = 高斯函数,sigma = 1
阈值:R < -10000 (边缘edges)
阈值:R > 10000 (角点corners)
阈值:-10000 < R < 10000(既不是边缘edges也不是角点corners)
总结:Harris角点检测算法
-
计算图像关于x和y的偏导数(通过高斯导数算子):
-
计算每个像素偏导数的乘积:
-
计算每个像素偏导数乘积的和(高斯平滑滤波):
-
定义对应每个像素的矩阵:
-
计算每个像素的检测算子响应值:
-
对R值设定阈值;计算非极大值抑制