掌握图像的SIFT特征检测原理
关键点的表示
在DoG空间中已经找到并细化出若干关键点,那么这些关键点该怎么表示呢?
可以使用三元组表示关键点,其中三个值分别表示关键点的位置、尺度和方向。为什么要计算特征点的方向呢?这是为了使特征描述子具有旋转不变特性
样本点的方向定义(其实就是对应尺度图像上对应位置的梯度):
是对应尺度的尺度图像。
而关键点的方向是由他周围区域内样本点决定的,比如区域内的所有样本点计算梯度值和方向,将方向分为若干个bins,然后使用高斯函数加权将周围样本点统计出方向直方图,比如论文中将一周360°分成36个bins,那么我们统计方向落在每个bins中样本,将该样本梯度值乘以高斯权重后加入这个bins中,就得到了长度为36的方向直方图。在这个方向直方图中,最大峰值对应的bins就是关键点的方向。如果存在多个峰值或者存在大于0.8倍最大峰值的bins,那么就在该点创建多个关键点,这些关键点的位置、尺度一致
局部图象描述子
找到了图像在不同尺度的关键点,我们还希望刻画关键点周围的特征,以利于后续的分类或者匹配等操作。
局部特征肯定离不开关键点周围的区域了,将关键点附近半径为的邻域(论文中选取边长为16的正方形邻域)划分为的子区域(论文中推荐),在每个子区域统计长度为的方向直方图(论文中直方图长度为8),每个直方图被称为一个种子点,这样一个关键点的特征描述子就是一个长度为的向量。
其中中间的点是检测到的关键点,蓝色的点表示该尺度图像中的像素点,红色方格表示划分出的子区域,在每个子区域统计方向直方图得到种子点。这里我们只是示意,具体的区域大小接下来详细讨论。我们还注意到关键点发出的一条橙黄色箭头,这表示关键点的方向。
描述子旋转不变性
现在再来看图像,图像是规则的矩形区域,我们在统计方向直方图是也是有固定的规则的,矩形区域的选择一般都是平行于图像边缘的,所以为了去除旋转的影响,可以,将每个关键的方向固定到相同方向,那么相同区域经过固定规则检测出来的结果就非常相近,这就避免了旋转角度的影响。一般可以将图像旋转,使关键点的方向统一对齐到图像x轴的方向,然后再对旋转后的图像划分子区域统计方向直方图。
坐标旋转后的值
这里的是关键点方向和x轴方向的夹角,顺时针旋转该角度为负值,逆时针为正值。
方向直方图统计网格点处的值时,在方向o上增量为
去除光照影响
为了去除光照影响,一般将关键点生成的特征向量归一化。
是方差。
描述子向量门限。 非线性光照,相机饱和度变化会造成某些方向的梯度值过大,而对方向的鉴别性微弱。因此一般归一化后,取0.2截断较大的梯度值,然后再次进行归一化,提高特征的鉴别性。