多种掌纹识别算法对比
摘要:在本研究中,我探索了一种非深度学习的方法来解决掌纹识别问题,灵感来源于《CO3Net: Coordinate-Aware Contrastive Competitive Neural Network for Palmprint Recognition》一文。本研究的核心在于实现有效的多尺度纹理特征提取,利用传统图像处理技术,并结合多种特征提取方法,如离散余弦变换(DCT)、局部二值模式(LBP)和Gabor滤波,来模拟深度学习模型中的复杂处理。我首先对掌纹图像进行了一系列预处理步骤,包括使用图像金字塔技术来模拟多尺度特征提取,并应用中值滤波和CLAHE技术优化图像质量。接着,我利用Gabor滤波器提取纹理特征,并结合DCT和LBP技术增强特征表示。通过这些方法, 我能够有效地捕捉掌纹图像的关键信息。在特征提取后, 我采用了特征融合和支持向量机(SVM)分类器进行掌纹识别。特别地, 我发现通过调整Gabor滤波器的参数(如滤波器数量和角度分布)和选择合适的SVM核函数(线性核相较于RBF核更有效),可以显著提升识别性能。本研究的实验结果表明,即便在不使用深度学习模型的情况下,通过精心设计的特征提取策略和参数优化,也能在掌纹识别任务中达到令人满意的效果。这一发现为资源受限或对深度学习模型应用存在限制的环境下的掌纹识别提供了一种有效的解决方案。通过本研究, 我不仅增强了对传统图像处理技术的理解,也展示了在解决复杂识别任务时,创新性地融合多种技术的重要性。
关键词:pca, DCT, 局部二值模式(LBP), GBabor滤波, 特征融合
0 引 言
掌纹识别作为一种生物特征识别技术,近年来在安全认证和个人身份验证领域获得了广泛的关注。由于其独特性和稳定性,掌纹识别被认为是一种高效且可靠的身份识别方法。尽管深度学习在此领域取得了显著的进展,,但这些方法通常需要大量的数据和计算资源,这在资源受限的环境下成为了一大挑战。
鉴于此,本研究旨在探索一种不依赖深度学习的掌纹识别方法,以应对计算资源受限的场景。我们的目的是通过结合传统的图像处理技术和特征提取方法,实现一种高效且精确的掌纹识别系统。现有的非深度学习方法,如基于Gabor滤波器和小波变换的特征提取技术,虽然在特定条件下有效,但仍存在对纹理信息提取不足和特征融合效率低下的问题。
本文的研究内容集中在使用多种传统图像处理技术提取掌纹特征,并探索特征融合和分类策略的有效性。我们特别关注了Gabor滤波器的参数优化、多尺度特征提取的模拟以及SVM分类器的核函数选择。这一研究的优势在于其对资源的低依赖性和对传统方法的创新应用,预期能在资源受限的环境下提供一种可行的掌纹识别解决方案。
我们预期这项研究将为掌纹识别领域提供新的见解,尤其是在计算资源有限的情况下。通过本研究,我们期望展示非深度学习方法在生物特征识别领域的应用潜力,并为未来相关研究提供理论和实践基础。这不仅有助于推动掌纹识别技术的发展,也为低资源环境下的生物特征认证系统的构建提供了新的思路。
1 实验过程
1.1 数据库
本研究所用数据集分为两类:原始数据集和经过预处理的数据集,每个数据集均由100个不同个体的掌纹图像组成,每个个体提供6张图像。这些图像代表了广泛的掌纹特征,包括线条、褶皱和纹理等不同模式。
1.1.1 未经过预处理的数据集:
原始数据集直接从图像采集设备获取,未经任何预处理。这些图像保留了掌纹在自然状态下的原始特征,包括在采集过程中可能引入的噪声和变形。
1.1.2 经过预处理的数据集
预处理数据集通过一系列图像处理步骤改进了原始图像,目的是提高掌纹特征的可识别性并为后续的算法处理做准备。以下是预处理步骤的详细描述:
a. 噪声处理:使用中值滤波器对每张原始图像进行去噪处理。中值滤波器以5x5的邻域为基础,有效去除图像中的盐和胡椒噪声,从而减少了图像的随机噪声干扰。
b. 对比度增强:采用自适应直方图均衡化(CLAHE)技术对图像进行对比度增强。与标准直方图均衡化相比,CLAHE避免了图像局部区域的过度增强,使得图像细节更加清晰。
c. 形态学处理:对图像进行腐蚀和膨胀操作,以进一步突出图像中的掌纹特征。首先使用3x3大小的结构元素对图像进行腐蚀,以去除小的亮斑。随后进行膨胀操作,恢复被腐蚀的主要掌纹结构。
d. 图像金字塔生成:创建多层图像金字塔,为掌纹特征提取和识别提供不同分辨率的图像。每层金字塔图像通过对上一层图像应用高斯平滑和下采样得到,从而捕捉到不同尺度的掌纹特征。
1.1.3 数据集特点:
多样性:来自100个不同个体的掌纹图像提供了丰富的样本多样性,包括不同的掌纹纹理和形状。
一致性:每个个体提供6张图像,确保了数据集在每个个体内部的一致性。
高分辨率:图像以足够高的分辨率采集,保证了掌纹特征的清晰度和可辨识性。
1.2 任务选择
在本研究中,我选择进行分类任务,其主要目标是准确地将掌纹图像分类到对应的个体。我使用了两种分类模型:支持向量机(SVM)和随机森林(Random Forest),并对这些模型在掌纹识别任务上的性能进行了比较和分析。数据集被划分为训练集和测试集,比例为4:2,经测试,如果训练集和测试集比例为3:3,那么效果会非常差,所以我选择在本次实验中一4:2的比例来进行划分,以确保模型有足够的数据进行学习,同时也保留了独立的测试集以评估模型性能。
1.3 评价指标
1. 精确度 (Precision):
精确度是指正确识别为正的样本数与所有被识别为正的样本数(正确的加错误的)之比。它是衡量模型在识别正类(如同一个体的掌纹)时的准确性的指标。
2. 召回率 (Recall):
召回率是指正确识别为正的样本数与所有真正正类样本数(包括被错误识别为负的样本)之比。它衡量的是模型捕捉正类样本的能力。
3. F1分数 (F1 Score):
F1分数是精确度和召回率的调和平均值,它在两者之间提供了一个平衡,是评估模型整体性能的有用指标。
我将这些指标在不同的特征提取方法和分类模型中进行横向和纵向对比。横向对比旨在分析不同特征提取方法对于同一分类器性能的影响,而纵向对比则关注同一特征提取方法在不同分类器下的表现差异。
2 算法原理
2.1 方法一扁平化进行pca降维
在本研究中,我使用了直接扁平化加PCA(主成分分析)降维方法作为掌纹识别的预处理步骤,且分别作用在。以下是这两种方法的详细说明:
1.直接扁平化:
扁平化是将图像数据转换为一维数组的过程。对于一个大小为 M×N 的图像,扁平化操作会将其转换为一个长度为 M×N 的一维向量。这个过程通过按行(或按列)顺序排列像素值来完成。扁平化后的向量可以直接用作机器学习模型的输入。
2.PCA(主成分分析)降维:
PCA是一种广泛使用的降维技术,旨在减少数据集的维度,同时尽可能保留最多的信息。它通过找出数据中的主成分并将数据投影到这些成分上来实现降维。
假设有一个
维的数据集,PCA的目标是找到一个
维的新数据集(其中
),以便在新数据集中捕获尽可能多的原始数据集的方差。
PCA的步骤如下:
1. 均值中心化:计算所有样本的均值,并从每个样本中减去该均值。
2. 计算协方差矩阵:计算数据的协方差矩阵。
3. 特征值分解:对协方差矩阵进行特征值分解。
4. 选择主成分:根据特征值的大小,选择前
个最大的特征值对应的特征向量作为主成分。
5. 数据投影:将原始数据投影到这些主成分上。
数学上,PCA可以表示为:
(1)
式中,
是均值中心化后的数据,
是由选择的主成分组成的矩阵
3.1.1 详细步骤:
首先,定义了一个函数`extract_label_from_filename`来从图像文件名中提取标签。这一步是为了后续将图像特征与相应的标签相关联。接着,实现了`flatten_image`函数,它读取图像文件,将其转换为灰度图像,然后将这些图像扁平化为一维数组。这个扁平化过程是将图像转换成可以被机器学习模型处理的形式的关键步骤。
在完成特征提取后,采用了主成分分析(PCA)来进行降维处理。通过`perform_pca`函数,首先对特征进行标准化处理,然后应用PCA进行降维。这样做旨在减少数据的维数,同时保留数据中的主要变异性。然后使用`save_flattened_images_with_labels`函数将PCA降维后的特征和对应的标签保存到CSV文件中,以便于后续的模型训练和测试。
接下来,利用`prepare_data_4`函数对数据进行划分,为每个标签选择前四个样本作为训练数据,后两个样本作为测试数据。这一步骤确保了数据集在训练和测试阶段的有效分离。
在模型训练和评估方面,实现了`train_and_evaluate`函数,它使用提供的训练数据训练了两种分类器:支持向量机(SVM)和随机森林(Random Forest),并在测试数据上评估这些模型。主要关注的评估指标包括准确度、精确度、召回率和F1分数。
最后,使用`plot_metrics_separately`函数对不同PCA维度下的模型性能进行了可视化处理。这个函数能够清晰地展示不同PCA维度对于模型性能各项指标的影响,帮助直观地理解模型的性能变化。
综合上述步骤,代码实现了从图像预处理和特征提取到模型训练、评估,以及结果可视化的完整机器学习流程。以下是使用svm和随机森林对预处理前后的图像进行处理的数据结果
表1 使用svm分类器的各个指标
50 |
100 |
150 |
200 |
250 |
300 |
|
Accuracy |
0.985 |
0.995 |
1.0 |
0.995 |
0.99 |
0.975 |
Recall |
0.985 |
0.995 |
1.0 |
0.995 |
0.99 |
0.975 |
F1 Score |
0.981 |
0.995 |
1.0 |
0.995 |
0.99 |
0.971 |
表2 使用随机森林分类器的各个指标
50 |
100 |
150 |
200 |
250 |
300 |
|
Accuracy |
0.995 |
0.975 |
0.985 |
0.98 |
0.98 |
0.975 |
Recall |
0.995 |
0.975 |
0.985 |
0.98 |
0.98 |
0.975 |
F1 Score |
0.995 |
0.973 |
0.985 |
0.98 |
0.98 |
0.973 |
图1 svm和随机森林在不同维度的召回率
图2 svm和随机森林在不同维度的precision
图3 svm和随机森林在不同维度的精确率
图4 svm和随机森林在不同维度的F1分数
经过预处理后的对比:
表3 使用SVM分类器的各个指标
50 |
100 |
150 |
200 |
250 |
300 |
|
Accuracy |
1.0 |
1.0 |
1.0 |
1.0 |
1.0 |
1.0 |
Recall |
1.0 |
1.0 |
1.0 |
1.0 |
1.0 |
1.0 |
F1 Score |
1.0 |
1.0 |
1.0 |
1.0 |
1.0 |
1.0 |
表4 使用随机森林分类器的各个指标
50 |
100 |
150 |
200 |
250 |
300 |
|
Accuracy |
0.975 |
0.96 |
0.93 |
0.93 |
0.945 |
0.945 |
Recall |
0.975 |
0.96 |
0.93 |
0.93 |
0.945 |
0.945 |
F1 Score |
0.968 |
0.95 |
0.91 |
0.91 |
0.931 |
0.938 |
图5 svm和随机森林在不同维度的F1分数
图6 svm和随机森林在不同维度的召回率
图7 svm和随机森林在不同维度的precision
图8 svm和随机森林在不同维度的精确率
可知,经过预处理后的图片使用svm可以达到1的准确率,recall和F1分数也都是1.
2.2 方法二特征提取法:
在本项目中,我采用了五种不同的特征提取方法,它们分别是:
1. 离散余弦变换(DCT): 提取图像的频率特征,这种方法通常用于图像压缩,能够捕捉图像的能量分布情况。
2. 小波变换: 该方法能捕捉图像的时频特性,对图像进行多尺度的分解,以获取图像的局部特征。
3. Gabor滤波: Gabor滤波器能够模拟人类视觉系统的特性,特别适合于纹理和边缘检测,因此常用于图像分析领域。
4. 局部二值模式(Local Binary Patterns, LBP): LBP是一种强大的纹理描述符,能够捕捉图像的局部结构信息。
5. 方向梯度直方图(Histogram of Oriented Gradients, HOG): HOG特征描述符专注于图像的局部形状信息,通过统计图像梯度的方向和分布来表示图像。
2.2.1 LBP(局部二值模式)
局部二值模式(LBP)是一种有效的纹理描述符,广泛用于图像处理和计算机视觉领域,特别是在纹理分析和面部识别等任务中。LBP特征提取的基本思想是通过比较像素与其邻域像素的强度值来提取局部纹理信息。[3]
基本步骤如下:
1. 选择邻域:对于图像中的每个像素点,考虑其周围的一个小邻域。通常,这个邻域是一个圆形区域,包含中心像素和围绕它的P个等距的像素点。
2. 阈值化:将邻域中的每个像素的强度与中心像素的强度进行比较。如果邻域像素的强度大于或等于中心像素,则该像素被标记为1;否则,标记为0。
3. 生成二进制模式:将邻域中所有像素的二进制标记组合成一个二进制数(LBP码),通常是按照顺时针或逆时针方向。
4. 计算直方图:对整个图像计算LBP码的直方图,这个直方图就是最终的LBP特征描述符。
数学上,对于中心像素
和其邻域像素
,LBP码可以表示为:[4]
(2)
中式,
是符号函数,当
时,
;否则,
。
LBP的优势在于其对光照变化的不敏感性以及计算上的简便性。通过这种方法,可以有效地提取和描述图像中的局部纹理特征。
2.2.2 ORB(Oriented FAST and Rotated BRIEF)
ORB(Oriented FAST and Rotated BRIEF)是一种在计算机视觉中广泛使用的算法,用于高效地检测和描述图像中的关键点。它首先运用FAST算法快速检测图像的角点,这一过程通过比较像素与其邻域中其他像素的强度来识别角点。接着,为了赋予特征点旋转不变性,ORB对每个检测到的角点计算一个方向,这一方向是根据周围像素的强度矩计算得出的。随后,ORB采用改进的BRIEF描述符,这种描述符通过比较旋转后邻域内特定像素对的强度差异来生成二进制字符串。这种处理使得ORB生成的特征描述符不仅包含关键点的空间信息,还具有旋转不变性。在匹配阶段,ORB算法利用汉明距离来快速比较和匹配不同图像中的特征点。这种结合了快速关键点检测和鲁棒二进制描述符的方法使ORB成为一种既高效又准确的特征点检测和描述工具,在许多图像处理和计算机视觉任务中得到了广泛应用。
2.2.3 Gabor滤波
Gabor滤波是一种有效的图像处理技术,广泛用于纹理分析、特征提取和图像增强。Gabor滤波器能够在多尺度和多方向上分析图像,捕捉局部空间频率的变化,从而提取出图像的细节和纹理信息。它特别适用于分析具有空间局部性和方向选择性特征的图像,如掌纹、指纹和人脸图像。[5]
Gabor滤波的基本原理涉及以下几个关键方面:
1. 滤波器设计:Gabor滤波器是基于高斯核函数和正弦波的乘积构建的。它通过不同的频率和方向参数来捕捉图像中的特定纹理特征。Gabor滤波器可以表示为:
(3)
式中,
是波长,
是滤波器的方向,
是相位偏移,
是高斯核的标准差,
是空间纵横比[6]
3. 参数调整:通过调整这些参数,Gabor滤波器可以适应不同的纹理和方向,使其能够有效地分析和提取图像的局部特征。
4. 应用:在掌纹识别中,Gabor滤波器通常用于强调掌纹的线条和褶皱,提高识别算法的准确性和鲁棒性。
我的代码实现了一个使用Gabor滤波器进行特征提取的过程。具体来说,这段代码的作用和在本次实验中,我的详细操作如下
1. 定义函数 `extract_gabor_features`:
这个函数接收一个图像路径列表(`image_paths`)和滤波器数量(`num_filters`)作为输入。
2. 读取图像并转换为灰度:
对于列表中的每个图像路径,代码使用`cv2.imread`读取图像并转换为灰度格式。
3. Gabor滤波器的参数设置:
为每张图像设置了一组Gabor滤波器。滤波器参数包括滤波器的尺寸(`ksize`)、标准差(`sigma`)、波长(`lambd`)、纵横比(`gamma`)和相位偏移(`psi`)。
使用`np.linspace`在0到π的范围内均匀地选取`num_filters`个角度(`theta`),这些角度用于创建不同方向的Gabor滤波器。
4. 应用Gabor滤波器并提取特征:
对于每个角度,使用`cv2.getGaborKernel`创建一个Gabor滤波器,并用`cv2.filter2D`将其应用于当前图像。
对于每个滤波后的图像,计算其平均值并将其添加到特征集合`gabor_set`中。
5. 收集并返回特征:
将每张图像的Gabor特征集合(`gabor_set`)添加到`gabor_features`列表中。
最后,将`gabor_features`列表转换为NumPy数组并返回,这个数组包含了所有图像的Gabor特征。
总之,我通过应用一系列不同方向的Gabor滤波器来处理图像,然后提取这些处理后的图像的平均值作为特征。这些特征可以捕捉图像中的纹理信息,对于图像分析和识别任务非常有用。
Gabor滤波的优势在于其能够同时考虑空间和频率信息,这使得它在捕捉图像纹理和边缘方面尤为有效。
2.2.3 DCT
离散余弦变换(Discrete Cosine Transform,简称DCT)来提取图像的特征。DCT是一种常用于信号和图像处理的技术。
DCT特征提取原理:
DCT将图像从空间域转换到频率域。它表示图像为一系列频率的集合,其中包括图像的低频(图像的大致结构)和高频(图像的细节部分)信息。
对于一个`N×M`的图像,其DCT变换`F(u, v)`可以通过以下公式计算:
式中: `f(x, y)` 是图像在空间域的亮度值。`F(u, v)` 是图像在频率域的DCT系数。`C(u)` 和 `C(v)` 是归一化系数。`u` 和 `v` 分别是频率变量,在垂直和水平方向上。`x` 和 `y` 是空间变量,在垂直和水平方向上。
我的操作步骤如下:
1. 读取图像并转换为灰度:在实验中我首先读取图像,并将其转换为灰度格式。
2. 应用DCT:接着,对灰度图像应用DCT变换。这通常是通过内置函数完成的,例如在OpenCV或其他图像处理库中。
3. 提取DCT系数:DCT变换后,我提取了变换后图像的前`num_coefficients`个DCT系数。这些系数捕获了图像最重要的频率特征,通常是低频成分,代表了图像的大致内容。
4. 生成特征向量:提取的DCT系数然后被展平(或重排)为一维特征向量,用于后续的分析或分类任务。
2.2.4 小波变换:
小波变换特征提取原理:
小波变换:小波变换通过将图像分解为不同尺度和方向的小波系数来工作,从而捕获图像的局部化特征。
二维连续小波变换:对于一个二维图像`f(x, y)`,其小波变换`Wψ(a, b, θ)`可以通过以下公式计算:
式中:ψ(x, y)` 是小波函数(母小波)。`a` 是尺度参数,控制小波的伸缩。`b` 是位置参数,控制小波在图像上的位置。`θ` 是方向参数,控制小波的方向。`ψ^*` 表示复共轭。
小波变换特征提取步骤:
1. 读取图像并转换为灰度:首先读取图像,并将其转换为灰度格式。
2. 应用小波变换:然后对灰度图像应用小波变换。这通常涉及到选择一个适当的小波基函数(如Haar、Daubechies等)。
3. 分解图像:小波变换将图像分解为不同尺度和方向的系数。在中,使用了`pywt.wavedec2`函数,这是一种进行二维小波分解的方法。
4. 提取小波系数:一旦图像被分解,提取了一定级别的小波系数。通常,只有一部分系数(例如近似系数)被用于后续的特征表示。
5. 生成特征向量:提取的小波系数然后被用作特征向量,用于图像的进一步分析或分类任务。
通过这种方法,小波变换特征提取能够有效地捕捉图像在不同尺度上的局部特征,这对于许多图像处理和分析任务非常有帮助,尤其是在需要分辨图像局部细节和纹理时。
在这个项目中,我首先定义了一个函数`extract_label_from_filename`来从图像文件的名称中提取标签,这为后续的分类工作打下了基础。接着,我运用了五种不同的方法来提取图像特征。这些方法包括局部二值模式(LBP)用于捕捉图像纹理,ORB特征提取用于识别图像中的关键点和描述符,Gabor滤波器来分析图像纹理,离散余弦变换(DCT)用于提取频率特征,以及小波变换用于捕获图像的多尺度细节。
完成特征提取后,我将这些特征和对应的标签存储到CSV文件中,这使得后续的模型训练和测试过程更为高效。在特征保存完毕之后,我利用`prepare_data_4`函数处理这些数据,将它们分为训练集和测试集,以便进行机器学习模型的训练与评估。
在模型训练和评估阶段,我选择了支持向量机(SVM)和随机森林(Random Forest)两种分类器。对于每种特征提取方法所得到的特征,我分别用这两种分类器进行训练,并计算了模型的准确度、精确度、召回率和F1分数以评估其性能。
最后,我使用`plot_metrics_comparison`函数对不同特征提取方法和分类器组合的性能进行了可视化比较。这些对比图清晰地展示了不同特征提取方法在掌纹识别任务上的有效性,同时也展现了SVM和随机森林分类器在各种特征上的性能差异。
调参前:
表5 使用SVM分类器的各个指标
LBP |
ORB |
GABOR |
DCT |
WAVELET |
|
Accuracy |
0.01 |
0.03 |
0.0 |
0.0 |
0.87 |
Recall |
0.01 |
0.04 |
0.0 |
0.0 |
0.92 |
F1 Score |
0.006 |
0.95 |
0.0 |
0.0 |
0.89 |
表6 使用随机森林分类器的各个指标
LBP |
ORB |
GABOR |
DCT |
WAVELET |
|
Accuracy |
0.23 |
0.05 |
0.29 |
0.89 |
0.83 |
Recall |
0.22 |
0.07 |
0.29 |
0.87 |
0.88 |
F1 Score |
0.19 |
0.04 |
0.26 |
0.85 |
0.84 |
图9 五种特征提取在使用svm和随机森林的召回率
图10svm和随机森林在不同维度的F1分数
图11 svm和随机森林在不同维度的precision
图12svm和随机森林在不同维度的精确率
在经过不断地参数调试以后,得到了更好的效果,主要是调整gabor滤波以及svm的参数
调参后:
表7 使用SVM分类器的各个指标
LBP |
ORB |
GABOR |
DCT |
WAVELET |
|
Accuracy |
0.0 |
0.13 |
0.76 |
0.88 |
0.89 |
Recall |
0.0 |
0.15 |
0.81 |
0.92 |
0.93 |
F1 Score |
0.0 |
0.10 |
0.76 |
0.90 |
0.90 |
表8 使用随机森林分类器的各个指标
LBP |
ORB |
GABOR |
DCT |
WAVELET |
|
Accuracy |
0.24 |
0.09 |
0.56 |
0.90 |
0.86 |
Recall |
0.24 |
0.11 |
0.54 |
0.91 |
0.89 |
F1 Score |
0.21 |
0.07 |
0.57 |
0.89 |
0.86 |
图13 svm和随机森林在不同维度的precision
图14 svm和随机森林在不同维度的F1分数
图15 svm和随机森林在不同维度的精确率
图16 svm和随机森林在不同维度的召回率
2.3 方法三: 模型融合策略
我实现了两种模型融合策略:
1. 特征级联: 此方法涉及将不同特征提取方法得到的特征向量简单地拼接在一起。这种策略的优点在于实现简单,但由于特征维度的增加,可能需要更多的训练数据来避免过拟合。
我首先定义了两种特征提取函数的列表,包括`extract_dct_features`和`extract_wavelet_features`。这些函数分别负责提取图像的离散余弦变换(DCT)特征和小波变换特征,旨在从图像中捕捉不同的关键信息。接着,我进行了特征融合操作,通过水平堆叠(`np.hstack`)将DCT特征和小波特征结合起来,以期通过综合不同特征提取方法的优势来提高模型的整体性能。
之后,我对每种特征提取方法使用两种分类器进行了模型训练和评估,这两种分类器分别是支持向量机(SVM)和随机森林(Random Forest)。对于每种特征和分类器组合,我计算了准确度、精确度、召回率和F1分数等关键性能指标。同样的评估过程也被应用于融合后的特征,以评估其相对于单独特征的性能提升。
最终,我使用`plot_metrics_comparison`函数对不同特征提取方法和融合特征在不同分类器上的性能指标进行了可视化展示。
特征融合:
表9 使用svm分类器的各个指标
DCT |
WAVELET |
Combined |
|
Accuracy |
0.88 |
0.89 |
0.89 |
Recall |
0.92 |
0.93 |
0.93 |
F1 Score |
0.90 |
0.90 |
0.90 |
表10 使用随机森林分类器的各个指标
DCT |
WAVELET |
Combined |
|
Accuracy |
0.90 |
0.86 |
0.88 |
Recall |
0.91 |
0.89 |
0.91 |
F1 Score |
0.89 |
0.86 |
0.89 |
图17 svm和随机森林在不同维度的召回率
图18 svm和随机森林在不同维度的precision
图19 svm和随机森林在不同维度的F1分数
图20 svm和随机森林在不同维度的精确率
2. 投票法融合: 在这种方法中,我首先独立地使用每种特征训练模型,然后对于每个测试样本,采用多数投票法来确定最终的预测类别。这种策略可以提高模型的鲁棒性,因为它结合了多种模型的预测结果。
为这涉及到将三种特征提取方法对应的模型预测结果结合起来,并通过多数投票决定最终的预测标签。这一策略的核心是利用不同模型的集体智慧,以期获得更准确和稳健的预测结果。
随后,我对每种独立的特征提取方法以及融合特征的性能进行了全面的评估。我计算了准确度、精确度、召回率和F1分数等关键指标,以衡量各模型在不同方面的表现
表11不同维度的指标
DCT |
WAVELET |
GABOR |
Combined |
|
Accuracy |
0.88 |
0.89 |
0.76 |
0.94 |
Recall |
0.92 |
0.93 |
0.81 |
0.94 |
F1 Score |
0.90 |
0.90 |
0.77 |
0.91 |
Precision |
0.90 |
0.90 |
0.79 |
0.95 |
图21 svm和随机森林在不同维度的召回率
经过对《CO3Net: Coordinate Aware Contrastive Competitive Neural Network for Palmprint Recognition》文章中思想的深入研究和尝试,我在不使用深度学习的框架下进行了一系列的图像处理和特征提取实验。以下是我的结论和心得体会:
在经过多次预处理后发现,有的图片可能仅仅只是人眼看起来效果很好,但对于计算机而言,效果并不会增加。而且并不是使用了滤波或者其他方法(例如二值化)。
图22二值化加开闭处理
图23经过预处理的图像
2. 复杂性与实用性的平衡:
在尝试应用坐标注意力机制时,我意识到在非深度学习环境中,复现类似的复杂机制存在一定难度。因此,我转而专注于更为实用且有效的传统特征提取方法,如DCT、小波变换、Gabor滤波、LBP。
3. 特征融合的策略:
尝试了特征级联和投票法融合两种不同的策略。特征级联提供了一种直接而全面的方式来结合不同特征,但增加了特征维度和复杂性。而投票法融合则在多个独立模型的基础上增强了最终决策的鲁棒性。
4. 多尺度纹理特征提取的重要性:
我发现,对于掌纹识别,多尺度纹理特征的提取极为关键。虽然没有使用深度学习中的可学习Gabor滤波器,但我通过图像金字塔技术成功模拟了多尺度特征提取的效果。这种方法有助于捕获图像的不同层次细节,提升识别的准确性。
5. 参数调整的重要性:
在实验过程中,我发现适当的参数调整对于提升特征提取效果至关重要。特别是在Gabor滤波和小波变换中,参数的选择直接影响了特征的质量和识别结果的准确性。
以下是我的体会和观察:
在使用Gabor滤波器提取特征时,我对比了两种不同的参数设置。最初,我设置了较少的滤波器数量和固定的角度间隔。然而,当我增加了滤波器的数量,并通过`np.linspace`在0到π的范围内均匀分布角度时,我观察到特征提取的效果明显提升。这说明在Gabor滤波中,合适的角度分布和滤波器数量对于捕捉图像的纹理特征至关重要。
我还调整了Gabor滤波器的其他参数,如核的尺寸、标准差、波长和纵横比。通过细致地调整这些参数,我能够更好地捕捉图像中的细节和纹理变化,这对于提高掌纹识别的准确率尤为重要。
以下是我的核心参数调整:
核尺寸(ksize): 最佳效果是使用了(49, 49)的滤波器尺寸,这个大小帮助捕捉到更加细微的纹理细节。
标准差(sigma): 设置为9.0,提供了一个适中的高斯模糊效果,有助于特征提取中的噪声抑制。
波长(lambd): 调整为11.0,帮助滤波器捕捉不同尺度的纹理。
纵横比(gamma): 设置为0.55,调整了滤波器的椭圆程度,更好地适应图像纹理的方向性。
相位偏移(psi): 设置为np.pi / 4,这种调整增加了滤波器捕捉不同相位纹理的能力
在SVM分类器的应用中,我尝试了不同的核函数,包括RBF和线性核。虽然RBF核在理论上可以处理更复杂的数据关系,但我发现在我的特定案例中,线性核提供了更好的分类效果。这表明并不是最复杂的模型总是最优的,而是应该根据具体任务和数据特性来选择合适的模型和参数。
经过一系列的参数实验和调整,我逐渐找到了适合我的数据和任务的最优参数组合。这些调整不仅提升了特征的表现力,还增强了分类模型的鲁棒性和准确性。
这些实验经验使我认识到,适当的参数调整是实现高效和准确图像识别的关键。通过细致地调试和优化,即使是在没有深度学习模型的条件下,也能够有效地处理图像识别任务。这一过程不仅提高了我对图像处理技术的理解,还增强了我解决实际问题时的灵活性和创造性。
通过在不同条件下对模型进行测试,我认识到适应性和灵活性对于掌纹识别系统的重要性。每种特征提取方法都有其独特的优点和局限性,因此综合使用多种方法能够更好地适应不同的应用场景。
3 结论
尽管不能使用深度学习模型的复杂功能,但我通过传统的图像处理和特征提取方法成功实现了一个有效的掌纹识别流程。这个过程不仅加深了我对图像处理技术的理解,也提供了一种在资源受限情况下的可行解决方案。
通过这次实验,我深刻体会到在解决实际问题时,理论与实践的结合、不同方法的综合运用以及持续的实验调整都是通往成功的关键。文章来源:https://www.toymoban.com/news/detail-829443.html
参 考 文 献文章来源地址https://www.toymoban.com/news/detail-829443.html
- Jolliffe, I. T. "Principal Component Analysis." Springer Series in Statistics. Springer Verlag, 1986.
- Abdi, H., & Williams, L. J. "Principal component analysis." Wiley Interdisciplinary Reviews: Computational Statistics, 2(4), 433 459, 2010.
- Ojala, T., Pietikäinen, M., & Harwood, D. "A comparative study of texture measures with classification based on featured distributions." Pattern Recognition, 29(1), 51 59, 1996.
- He, D. C., & Wang, L. "Texture unit, texture spectrum, and texture analysis." IEEE Transactions on Geoscience and Remote Sensing, 28(4), 509 512, 1990.
- Jain, A. K., & Farrokhnia, F. "Unsupervised texture segmentation using Gabor filters." Pattern Recognition, 24(12), 1167 1186, 1991.
- Lee, T. S. "Image representation using 2D Gabor wavelets." IEEE Transactions on Pattern Analysis and Machine Intelligence, 18(10), 959 971, 199
到了这里,关于多种掌纹识别算法对比的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!