图像特征提取是图像分析与图像识别的前提,它是将高维的图像数据进行简化表达最有效的方式,从一幅图像的M×N×3的数据矩阵中,我们看不出任何信息,所以我们必须根据这些数据提取出图像中的关键信息,一些基本元件以及它们的关系。
局部特征点是图像特征的局部表达,它只能反正图像上具有的局部特殊性,所以它只适合于对图像进行匹配,检索等应用。对于图像理解则不太适合。而后者更关心一些全局特征,如颜色分布,纹理特征,主要物体的形状等。全局特征容易受到环境的干扰,光照,旋转,噪声等不利因素都会影响全局特征。相比而言,局部特征点,往往对应着图像中的一些线条交叉,明暗变化的结构中,受到的干扰也少。
而斑点与角点是两类局部特征点。斑点通常是指与周围有着颜色和灰度差别的区域,如草原上的一棵树或一栋房子。它是一个区域,所以它比角点的噪能力要强,稳定性要好。而角点则是图像中一边物体的拐角或者线条之间的交叉部分。
无论是角点,斑点还是边缘的检测,说白了其实都是在检测极值点。如边缘检测,寻找的就是一阶微分的极值点,当然一阶微分的极值点当然是二阶微分的过零点,所以边缘检测有两种常用的方法:一是基于一阶微分的,寻找极值点,如Roberts,Canny,Prewitt等等;另一类是基于二阶微分的,寻找过零点,如LoG等。
-
斑点特征检测(Bold Detection)
斑点通常是指与周围有着颜色和灰度差别的区域。斑点通常和关键点(key point),兴趣点(intrest point)以及特征点(feature point)表示同一个概念。在实际的数字图像中存在着大量的斑点,如,从远处看,一棵树是一个斑点,一块草地是一个斑点,一栋房子也可以是一个斑点等等。与单纯的角点不同的是,斑点代表的是一个小的区域,因此,它的稳定性更好,抗噪声能力更强。
对于斑点检测,其实是找二阶微分的极值点,当然不同方法,其二阶微分算子不一样。常用的斑点检测算法有LoG,DoH以及Gilles等。这些算法中的操作一般都比较耗时,并且斑点检测一般只是预处理操作,完整的过程还包括斑点特征描述,特征匹配搜索等,所以,人们一直在探索斑点检测的快速算法。终于,Lowe在前人研究的基础上,提出了非常著名的里程碑式的SIFT算法,该算法将斑点检测,特征描述以及特征匹配搜索结合在一起优化,极大地提高了效率。在斑点检测中,Lowe提出了LoG的近似算法DoG,提高了斑点检测的效率。沿着Lowe的思路,Bay等人提出了SURF算法,对DoH进行了简化和近似。
1.1 一般斑点检测的步骤为:
(1)定义算子,对图像进行卷积运算
(2)搜索局部响应的峰值(极值) -
角点检测
角点可以从两个不同角度定义:角点是两个边缘的交点;角点是领域内具有两个主方向的特征点。角点所在的领域通常也是图像中稳定的,信息丰富的区域,这些领域可能具有某些特性,比如旋转不变性,尺度不变性,仿射不变性和光照亮度不变性。
角点检测的方法也是极多的,基于图像灰度的方法通过计算点的曲率以及梯度来检测角点,是目前研究的重点。角点检测的方法具有代表性的算法是Harris算法与FAST算法。