PCA-SIFT特征分析(提升篇)

PCA-SIFT算法在描述子构建上作了创新,主要是将统计学中的主成分分析(PCA)应用于对描述子向量的降维,以提高匹配效率。PCA 的原理是:一般有效信号的方差大,噪声的方差小;通过PCA可以通过降维滤除噪声,保留信号。

算法描述

该算法的前期步骤(检测特征点、修正、计算主方向)与传统SIFT相同,区别在于描述子的构建。步骤如下:

  1. 构建描述子的区域选定为以特征点为中心的41X41矩形(已与特征点主方向对齐);
  2. 计算(39x9)39X39  (PS: 谢谢,博主hj741968971 )矩形内每个像素对水平、垂直两个方向的偏导数(最外层像素不计算偏导数)。得到一个39x39x2=3042维的向量,对其归一化。
  3. 假设有N个特征点,那么所有特征点描述子向量构成一个Nx3042的矩阵。对这N个向量计算NxN协方差矩阵。
  4. 计算协方差矩阵的前k个最大特征值所对应的特征向量,这k个向量组成一个3042xk的投影矩阵。
  5. 将Nx3042的描述子矩阵与3042xk的投影矩阵相乘,得到Nxk的矩阵,即降维描述子向量组成的矩阵。此时N个特征点的描述子向量均为k维。文中作者经过实验,取k=36。
该算法的创新之处在于降低描述子维度的同时滤除了部分描述子向量中的干扰信息,有较好的鲁棒性。同时该算法为后人研究描述子打开了一个方向,例如GLOH算法在描述特征点时也是用PCA将16*17维的向量降为40维,但GLOH算法构建描述子的方法不同,它是基于对数极坐标来构建的。

结果比较

PCA-SIFT所得的描述子在旋转、尺度变换,透视变换,添加噪声匹配的情形下,匹配均大幅领先于SIFT;在亮度变换时,与传统SIFT不相上下。在匹配时所得的正确点对也多于传统SIFT。可见PCA-SIFT生成的描述子质量很高。SIFT和PCA-SIFT的比较。在运行时间方面,PCA-SIFT在特征点提取、描述子计算中略快于SIFT;但在后续的描述子匹配过程中,PCA-SIFT的速度大大超过SIFT的速度。


关于Image Engineering & Computer Vision的更多讨论与交流,敬请关注本博客和新浪微博songzi_tea.


你可能感兴趣的:(计算机视觉,图像分析,PCA-SIFT)