提高SIFT特征匹配效率的方法研究
SIFT(scale invariant feature transform,即尺度不变特征变换)是David Lowe[1]在2004年提出的一种特征点提取方法。这种特征对图像的尺度变化、图像缩放、旋转甚至仿射变换是不变量,而且对光照的变化和图像变形具有较强的适应性。它的这些特点,使得传统图像配准中的许多诸如前面提到的共性问题得到了很大程度的改善。基于SIFT特征算子的匹配方法被成功地应用到了很多领域,如全景图拼接[2]、遥感图像配准[3]等。
SIFT算法虽然具有以上的优点,但是其算法复杂、计算时间长,导致图像匹配的速度较慢,很难满足实时性要求。国内外对SIFT特征匹配算法的研究比较少,刘立[4]等以基于圆形窗口的12维向量代替128维向量的方法提高实时性,削弱了原算法邻域方向性信息联合的思想,算法抗噪声能力变弱。骞森[5]等采用自适应采样窗口步长计算邻域梯度和双向匹配方法改进算法,算法整体平均时间可减少20%左右。Yan Ke和Rahul[6]对此算法进行了改进,提出了基于PCA的SIFT描述子算法。该算法通过对大量特征点的邻域梯度进行统计分析,生成一个低维的特征空间;然后把特征点的邻域梯度向量映射到这个低维空间中,生成一个低维的描述向量,从而提高了匹配速度。但是由于PCA要求样本数据是椭圆分布的,而且建立的是线性模型,对于非线性的高维数据,效果不好,准确性较SIFT差。
笔者以街区距离和棋盘距离的线性组合作为匹配的相似性度量,逐步减少计算过程中所涉及的特征数目,在不影响算法鲁棒性的情况下提高算法的效率,节约了50%的时间。
1 SIFT特征向量的生成
SIFT特征向量的生成包括4个步骤[1]:检测尺度空间极值、精炼特征点位置、设置特征点方向和生成特征描述符。
1·1 尺度空间极值检测
检测尺度空间极值的目的是确定特征点位置和所在尺度组。具体过程如下:先使用高斯过滤器对原始图像进行若干次连续滤波建立第一个尺度组,再把图像减小到原来的一半,进行同样的高斯滤波形成第二个尺度组;重复操作直到图像小于某一给定阈值为止,形成多个尺度组;接下来对每个尺度组中的高斯图像进行差分,形成高斯差分尺度组(DoG尺度图像)。DoG尺度空间中间层(最底层和最顶层除外)的每个像素点需要跟同层的相邻8个像素点以及它上一层和下一层的各9个相邻像素点(共26个)进行比较,以确保在尺度空间和二维图像空间都检测到局部极值。原始图像的DoG空间极值点检测如图1所示,在每一个DoG层(这里为3层)检测到的极值点用“+”表示。
1·2 精炼特征点位置
DoG算子会产生较强的边缘响应,并且对噪声比较敏感,对局部极值点还要经过进一步的检验才能精确定位为特征点。一般通过二阶Taylor展开式计算极值点的偏移量,获得亚像素定位精度,同时通过阈值设置剔除差异小的点,并用Hessian矩阵技术剔除不稳定的边缘响应点。最终保留下来的点称为特征点,特征点的检测是在尺度空间中进行的,特征点保持为尺度不变量。
相关文章
- 2023-05-27Ω型密封圈非标准温度的渗透检测
- 2023-02-07PLG-10高频疲劳试验机的微机控制
- 2023-05-15一种新型光纤干涉测量系统
- 2023-08-31谐波分布参数的数值解法
- 2024-01-24净浆标准稠度与凝结时间测定仪示值相对误差测量不确定度评定
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。