本文主要内容:
1、从Harris角点检测到LoG算子再到DoG算子的过渡过程
2、对如何通过Harris矩阵判断角点的理解
3、归一化LoG算子
4、为什么边缘明明对应二阶导的零点,而在sift的算法中找的是极值点
Harris角点
下面这篇博客介绍了:
https://blog.csdn.net/lwzkiller/article/details/54633670
1、何为角点
2.、角点检测算法基本思想是什么?
3、如何用数学方法去刻画角点特征?
4、如何用构造的数学模型来判断角点响应?
我要补充的一点是:为什么M矩阵的特征值可以反映边缘的梯度大小(数学没有特别好,更多主观理解,少公式推导)
1、M矩阵为
权重矩阵不看,主要看矩阵:
需先了解的知识:矩阵对角化的几何意义是什么:
将矩阵理解为一个向量(/几个向量)在某一基坐标系下的坐标
而对角化就是换一组基坐标系,此基坐标系与向量方向一致,如下图所示:
对于矩阵
对角化就是将某一方向的投影即IxIy整为零,(而IxIy可以理解为均值为零的协方差,协方差为零,即梯度最大的方向和最小的方向)那我们就得到了相互正交的两个方向上的梯度,反映了边缘的梯度大小,对角化后的值即为特征值,这就是为什么特征值可以反映边缘梯度大小的原因。
几何上的表达如下所示:
对角化后得到特征值即对应上图中梯度变化最快和最慢的方向
(理解的也不是很清楚,可能有很多问题,欢迎指正,同时欢迎大家找我交流,一起进步)
以上也可以查:为什么矩阵的特征值代表了椭圆的长轴和短轴,都是矩阵相关的知识。
LoG算子
用一阶导求边缘存在几个问题:
- 噪声的影响,在噪声点处一阶导数也会取极大值
- 求解极大值的复杂性
因此,有了使用二阶导数的方法。这里主要考虑LoG算子,即高斯-拉普拉斯算子。
1、高斯算子克服了噪声的影响
2、用二阶导的零点来判断边缘
即先对图像进行高斯模糊,然后再求二阶导数,二阶导数等于0处对应的像素就是图像的边缘。
这里有一个当初困扰我很久的问题
为什么边缘明明对应二阶导的零点,而在sift的算法中找的是极值点。
请看另一篇博客:
https://blog.csdn.net/qq_42014026/article/details/109557062
尺度归一化LoG算子:
如下两张图片拍摄的尺度不同,不理解尺度的请先百度尺度的概念,直观就是一个对象离近拍和离远拍,如下图:
以上两张图由于尺度原因算出的LoG算子大小没有可比性,就无法将两个点匹配到一起,因此提出尺度归一化LoG算子
公式为:
为什么乘了sigma因子就有了可比性?
下图为Gaussian滤波曲线一阶导数:
此处参考:https://www.cnblogs.com/YiXiaoZhou/p/5892083.html
这篇真的写的很透彻,贼好嘞
DoG算子
DoG可以近似LoG的推导:
二维高斯函数都知道吧,这一步就很好推
因为k-1是常量不影响函数极值点,所以检测归一化的LoG在尺度空间的极值,即近似于检测DoG空间的极值。