写在前面:图像的点特征是许多计算机视觉算法的基础。在运动目标跟踪,物体识别,图像配准,全景图像拼接,三维重建等方面,都使用特征点来代表图像的内容。角点是其中一类重要的点特征。下面就什么是角点及常见的角点检测算法进行介绍。
一,角点的定义
角点(corner points):
1)局部窗口沿各方向移动,均产生明显变化的点;
2)图像局部曲线曲率突变点点。
不同类型的角点的示意图如图一。
二,角点检测算法
1.什么是好的角点检测算法?
1)检测出图像中“真实的”角点
2)准确的定位性能
3)很高的重复检测率(稳定性好)
4)具有对噪声的鲁棒性
典型的角点检测算法包括:Harris 角点检测 和 CSS 角点检测
2.Harris角点检测
2.1 基本思想
Harris角点检测的基本思想是从图像局部的小窗口观察图像特征。
也就是利用了角点的定义,窗口向任意方向的移动都导致图像灰度的明显变化。
对于平坦区域,窗口沿着任意方向移动,窗口内部的图像无灰度变化;
对于边缘区域,窗口沿着边缘方向移动,窗口内部的图像无灰度变化;
对于角点区域,窗口沿着任意方向移动,窗口内部的图像有明显的灰度变化。
Harris角点检测的算法是对角点响应函数R进行阈值处理。如果R > threshold,则该部分为要寻找的角点。
2.2 性质
1)旋转不变性:椭圆转过一定角度但是其形状保持不变,也就是特征值保持不变,因此角点响应函数R对于图像的旋转具有不变性。
2)对于图像灰度的仿射变化具有部分的不变性:对于灰度平移变化不变I->I+b;对于图像灰度的尺度变化:I -> aI
3)对于图像几何尺度的变化不具有不变性:随尺度变化,Harris角点检测的性能下降。
3.SIFT特征提取算法流程
3.1 基本思想
SIFT算法是在DoG尺度空间中提取极值点并进行优化从而获取特征点。
3.2 性质
1)不变性
对图像的旋转和尺度变化具有不变性;
对三维视角变化和光照变化具有很强的适应性;
局部特征,在遮挡和场景杂乱时仍保持不变性。
2)辨别力强
特征之间相互区分的能力强,有利于匹配
3)数量较多
一般500*500的图像能提取出约2000个特征点
4)扩展性强