文章转载自:http://blog.csdn.net/luoshixian099/article/details/49174869
PCA-SIFT是对传统SIFT算法的改进,由Yan Ke等人在《PCA-SIFT: A More Distinctive Representation for Local Image Descriptors》中提出,论文中采用PCA(Principal Component Analysis)把SIFT特征描述子从128维降到了20维,优化了描述子占用的内存,同时提高了匹配的准确性。
复习SIFT原理步骤:
1.构造DOG尺度空间 2.在各尺度上定位关键点 3.为关键点分配方向角 4.形成特征描述子 。
由于PCA-SIFT仅与SIFT第四步不同,1,2,3步骤详细过程请参考之前的文章SIFT原理。
步骤4:首先根据特征点所在尺度,确定一个特征点邻域(邻域大小与特征点所在尺度有关),分成4×4个子区域并旋转到主方向的位置,在每一子区域上统计梯度方向直方图(幅值采用采用高斯加权函数 ,360度范围被等分成8个方向),这样联合4×4个子区域统计信息就构成了一个特征描述子,特征描述子信息为4×4×8=128维。
—–PCA-SIFT原理步骤———————————————————————————————————–
1,2,3步骤与SIFT原理的相同,第四步(PCA):
(1)对特征点确定一个大小为41×41的邻域,旋转这个邻域到主方向;
(2)计算邻域内像素点的水平梯度与垂直梯度,这样每个特征点确定了一个大小为39×39×2=3042维的特征描述子;
(3)原论文中对同一类图像集中采集了21000个特征点,这样够成了一个原始特征矩阵M,矩阵大小3042×21000,计算矩阵的协方差矩阵N;
(4)计算协方差矩阵N的特征向量,根据特征根的大小排序,选择对应的前n个特征向量(论文中采用n=20),构成投影矩阵T;
(5)对新的特征描述子向量,乘以投影矩阵T,得到3042维降到n维的特征向量;
实际上,步骤(3),(4)是在之前计算好,即投影矩阵是通过同一类图像集采用PCA原理提前计算出。从图像中特征点计算得到3042维的特征描述子时,只需要与投影矩阵相乘,即可达到降维。关于投影矩阵的n的选择,可以根据需要固定n的值,也可根据协方差矩阵的特征值能量值百分比,自动确定n的大小。论文中采用n=20效果最佳。
.—————————————————————————————————————————————–
补充知识:
PCA(Principal Component Analysis)即主成分分析,也被称为KL变换或者Hotelling变换,数据的变换可以达到分类或者压缩数据的作用,PCA-SIFT是对SIFT描述子数据进行了压缩。首先收集数据所有特征(成分),通过变换的数据,观察数据的重要成分进行分类,也可以抛弃不重要的成分,减少或者压缩数据。如同,想表达某一种物体,而物体有很多个属性,通过变换数据,可以观察到每个属性的重要性,从而可以选择几种重要的属性去描述这一种物体,就到达了压缩数据的作用。
1 . 假如我们取到了有m个样本,每个样本有n个属性(行向量表示),则组成的数据矩阵
MY=(Y1,Y2,Y3,...Ym)
,其中
Y1
=(y1,1,y1,2,y1,3,...y1,n)T
;
则数据矩阵
MY
的每一列表示某一种属性的m个测量值;
用随机变量
Xi
表示矩阵的列向量,定义
X=(X1,X2,X3,....Xn)T
;
2 . 计算协方差矩阵:即每两个随机变量之间的协方差构成的矩阵
CY
;
其中 ci,j=cov(Xi,Xj)=E[(xi−ui)(xj−uj)] , ui,uj 表示随机变量 Xi,Xj 的期望.
写成矩阵的形式: CX=1m[(X−E(X))T(X−E(X)]
协方差矩阵元素值表示两个随机变量的线性相关性,通过计算协方差可以确定两个数据集合之间是否有关系。协方差值的取值范围从0开始,0表示线性无关到反应依赖关系强烈的正值或者负值。注意,协方差只能衡量随机变量之间的线性关系,这也PCA的局限性。通过观察为0的值可以突出有利于分类的不相关特征。由协方差矩阵的定义,可知协方差矩阵是对称矩阵,而且对角线元素表示对应特征的方差。
3 . 计算协方差矩阵的特征值与特征向量
PCA通过即找到变换矩阵
W
(也称为投影矩阵),使得
Z=XWT
,即原数据矩阵
X
通过投影到矩阵
Z
中,同时矩阵
Z
的协方差矩阵
CZ
为对角阵,即除了对角线元素外其他元素都为0,在这种情况下,特征之间不相关。
根据协方差矩阵的定义:
CZ=1m[(Z−E(Z))T(Z−E(Z)]
,替换
Z=XWT
和
ZT=WXT
=1m[W(X−E(X))T(X−E(x))W]
=WCXWT
即变换矩阵W由矩阵X的特征向量作为行向量构成;即求解矩阵X的对角化过程。
先求得矩阵X的特征值,特征值按大小排序,并求得特征值对应的特征向量构成变换矩阵W.
4 . 较大的特征值,表明此特征范围较大,方差也越大,容易区分。通常在压缩数据中,采用前几个较大的特征值对应的特征向量,构成变换矩阵。通过 Z=XWT 获得新特征,以缩减新特征对应的维数,且新特征是线性无关的。
5 . 有时为了从压缩后的数据重构原数据,被称为逆变换, X=ZW ,可以重构回原始数据特征。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
参考:
PCA-SIFT: A More Distinctive Representation for Local Image Descriptors
http://blog.csdn.net/songzitea/article/details/18270457
http://www.360doc.com/content/14/0526/06/15831056_380900310.shtml