Skip to content

Chang-su0423/FaceRecognition

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 

Repository files navigation

《最优化》课程设计压缩感知人脸识别项目

项目结构

face_data 文件夹存放feret数据库

feret_data 文件夹存放程序需要读入的人脸数据库

remove_data 文件夹存放从老师提供的feret数据库中移除的几组数据(由于程序运行时对这几组数据报错,且暂未找到原因)

images存放readme.markdown 文档需要用到的图片

face.py是压缩感知人脸识别程序的主体

readme.markdown 是整个项目的说明文档

人脸数据库选用

选用了于宏斌老师提供的feret数据库

程序设计解释

在可用的183组数据中随机抽出一张纸片作文检验照片

未被抽取的其余照片作为学习数据集

程序比对检验照片,得出可能的人脸序号,之后判断序号是否正确

最后得出程序预测的准确率

算法详解

加载和预处理数据:

从文件夹中加载人脸图像数据,并将图像展平为一维向量。这里的图像数据存储在指定的数据库路径中。 使用OpenCV加载图像,并将其转为灰度图。

数据归一化:

使用sklearn.preprocessing中的normalize函数对数据进行归一化处理。归一化后,每个样本向量的范数为1。

PCA降维:

使用PCA(主成分分析)对数据进行降维。这里将原始数据降至1260维。 PCA降维后的数据矩阵为images_pca。

划分训练集和测试集:

将数据集划分为训练集和测试集。每类中20%的数据作为测试集,剩余的作为训练集。 训练集和测试集的样本分别为train_images和test_images,标签为train_labels和test_labels。

稀疏表示分类:

使用Lasso或Orthogonal Matching Pursuit (OMP)模型进行稀疏表示。 Lasso模型通过最小化目标函数的L1范数来实现稀疏表示。 OMP模型通过逐步选择与当前残差最相关的基向量来逼近目标向量。

稀疏表示分类函数:

对于每个测试样本,使用稀疏表示模型拟合训练集数据,得到稀疏系数。 计算每个类别的重建误差,选择重建误差最小的类别作为预测结果。

测试和评估:

使用测试集数据进行分类预测,并计算预测的准确率。

最终结果

经过多次调整alpha参数,识别准确率可以达到百分之70以上

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages