Harris Corner

Harris Corner网上已经有很多的资料了,但它也是我读研究生后读的第一篇论文,对我有一种特别的意义。

这篇文章我想从几个方面来讲解Harris Corner,一是Harris Corner的思想,二是Harris Corner重要公式的推导,三是从图像的层面直观的观察每一个公式的结果。本人能力有限,如有纰漏,万望指正。Any advice and suggestions will be greatly appreciated。

我们的目的是在图像上找到角点。那我们在图像上设置一个小窗,然后我们将小窗再多个方向进行微小的移动,比对朝每个方向移动后的小窗与原始小窗中的数据,可能产生以下三种情况:

1.原始小窗在一个平面上,则小窗无论朝哪个方向进行移动后,改变的数值都很小;

2.原始小窗在一条边缘上,则小窗朝边缘的线性方向移动时,改变很小,但朝别的方向进行移动时,改变很大;

3.原始小窗在一个角点上,则无论它朝任何方向进行移动,都会有较大的改变

我们用数学公式对这个思想进行描述:

Harris Corner

这是一个自相关函数,x,y代表的是小窗中原始图像的位置,detaX和detaY表示偏移量,w是一个平滑函数

中括号内部的函数表示对原始小窗和移动后的小窗进行距离的计算,对多个方向的小窗进行有一个高斯加权求和,得到一个响应值

对这个公式进行推导。

Harris Corner

引入二元泰勒展开式,则

Harris Corner

带入自相关函数

Harris Corner

只观察大括号内

Harris Corner

再带入自相关函数

Harris Corner

考虑α,β为M矩阵的两个特征值:

如果两个特征值都很小,则说明窗口再各个方向变换都不大,说明它在平面内;

如果其中一个特征值很大,而另一个很小,则说明窗口在一个方向变化小,而另一个方向变换较大,说明窗口在边缘上

如果两个特征值都比较大,而且近似,那么说明这个窗口无论朝什么方向移动都比较大,说明窗口在角点上

可以知道矩阵的迹和矩阵的行列式可由下式算出

Harris Corner

为了简化计算我们计算

Harris Corner

当R大于设定阀值时,我们就认为当前点是角点。

考虑:

Harris Corner

X,Y我们可以理解为图像在x和y方向上的一阶导,对于图像,我们可以用卷积模板进行卷积操作来实现

Harris Corner

针对原始图像

Harris Corner

对应的偏导图像X,Y分别为

Harris Corner

这是一个简单的边缘检测。

针对自先关函数进行变形可得到

Harris Corner

其中,

Harris Corner

A,B,C对应M矩阵中的A,B,C

Harris CornerHarris Corner

接着对图像M矩阵进行运算

Harris Corner

得到相应图片

Harris Corner

Harris计算特征值来判别角点,因此对方向有自适应性,所以能够具有旋转不变性。

但是针对不同尺度的角点,Harris由于并没有改变图片和模板大小,所以不能检测到别的尺度的角点。

Harris Corner

还有一点,阀值R对图片亮度的变化不敏感,改变阀值能够很大程度的影响检测到的角点数目。

Harris Corner