Palmprint recognition using eigenpalms features

DIP课程中要求做个掌纹识别项目,于是找出老板2002年的一篇论文来读,捋了捋思路,补一下基础,欢迎批评指正。

目 录

1、 特征提取阶段理想步骤

2、 潜在的问题

3、 本文提出的解决方案

概述:
本文提出了一种基于特征空间技术的掌纹识别方法。利用Karhunen Loeve变换将原始掌纹图像转化为一个小的特征空间集合,称为特征掌纹,它是训练集的特征向量,可以很好地表示掌纹的主成分。然后,将一幅新的掌纹图像投影到由掌纹组成的子空间中,提取掌纹特征,并利用欧式距离分类器进行掌纹识别。实验结果表明了该方法在识别率方面的有效性。

1.特征提取阶段理想步骤:

1). 将所有训练样本转换成单列向量(M为样本数;将像素列顺序拼接,变成单列),使用所有训练集数据计算平均掌纹列向量μ。

Palmprint recognition using eigenpalms features(1)

2). 将每一个训练数据变成列向量,与平均掌纹求出差向量。乘以转置得到协方差矩阵,求出平均的协方差矩阵C。(有关协方差矩阵的知识

Palmprint recognition using eigenpalms features(2)

Palmprint recognition using eigenpalms features(3)

Palmprint recognition using eigenpalms features(4)

上式X∈(X∈N^2×M),表示所有训练样本的偏差组成的矩阵。

3). 对协方差矩阵C进行K-L变换,在变换矩阵主对角线上得到多个特征值。(有关K-L变换的知识

4). 取特征值前q大的,之后计算他们对应的特征向量。这些特征向量就作为掌纹空间的“基”。

2.潜在的问题

1)上面的C(C∈N^2×N^2),矩阵维度过大,不容易计算特征值,

3.本文提出的解决方案

1). 将X转置与X左右互换得到矩阵L。

Palmprint recognition using eigenpalms features(5)

2). 设ak和vk分别为特征值和特征向量。(通过K-L变换的变换矩阵可以直接计算出L的特征值ak和特征向量vk。个人理解为:对应每一个训练样本都贡献一个特征值和特征向量。)

3). 于是得到下式:

Palmprint recognition using eigenpalms features(6)

4). 对(6)的特征向量全部左乘X,得到(7),(7)等号左侧凑出了原矩阵C。

Palmprint recognition using eigenpalms features(7)

5).根据特征值以及特征向量的定义对于矩阵C有:

Palmprint recognition using eigenpalms features

对应(7)有

Palmprint recognition using eigenpalms features(8)

6). 于是我们通过上面方法计算,得到了“理想步骤”中矩阵C的特征向量,这些向量uk就作为原掌纹空间的“基”向量。

7). 对应矩阵大小,不难看出特征向量uk(uk∈N^2×1),接下来将它reshape回到N×N尺寸,将该图像作为从k号训练数据提取出的“特征手掌”(因为我们有M个训练样本,所以有M个列向量,对应着M特征向量。)

Palmprint recognition using eigenpalms features

8). 继续优化:根据主成分分析理论,认为不需要选择所有的训练样本的特征向量作为基向量,而是只需要那些与最大特征值对应的特征向量就可以很好地表示训练集的特征。于是,将矩阵列向量维度继续减少,再进行转置得到U’:

Palmprint recognition using eigenpalms features

(9)

U’尺寸: M’×N^2

9). 对于每一个新输入的“掌纹图片”先压缩为N^2×1的列向量;

再减去“平均掌纹”(去掉所有手掌都有的无用特征);

使用U’ 矩阵对它进行特征变换,得到该掌纹的“特征”fi ,

Palmprint recognition using eigenpalms features
Palmprint recognition using eigenpalms features
Palmprint recognition using eigenpalms features

至此已经将训练样本中的特征按照本文提出的方法提取完毕。