PCA算法提取人脸识别特征脸(降噪)
PCA算法可以使得高维数据(mxn)降到低维,而在整个降维的过程中会丢失一定的信息,也会因此而实现降噪除噪的效果,另外,它通过降维可以计算出原本数据集的主成分分量Wk矩阵(kxn),如果将其作为数据样本,则可以将其作为原来数据集特征的主特征分量,如果用在人脸识别领域则可以作为人脸数据集的特征脸
具体实现降噪效果和人脸特征脸的代码如下所示: #1-1利用手写字体数据集MNIST对PCA算法进行使用和效果对比,体现PCA算法的降噪功能
from sklearn import datasets
digits=datasets.load_digits()
x=digits.data
y=digits.target
noisy_digits=x+np.random.normal(0,2,size=x.shape)
ex=noisy_digits[y==0,][:10]
for num in range(1,10):
x_num=noisy_digits[y==num,:][:10]
ex=np.vstack([ex,x_num])
print(ex.shape)
#定义绘图10x10的图像函数,可以看出PCA算法的降噪效果
def plot_digits(data):
fig,axes=plt.subplots(10,10,figsize=(10,10),subplot_kw={"xticks":[],"yticks":[]},
gridspec_kw=dict(hspace=0.1,wspace=0.1))
for i ,ax in enumerate(axes.flat):
ax.imshow(data[i].reshape(8,8),
cmap="binary",interpolation="nearest",
clim=(0,16))
plt.show()
plot_digits(ex)
pca=PCA(0.8)
pca.fit(noisy_digits)
a=pca.transform(ex)
b=pca.inverse_transform(a)
plot_digits(b) #1-2PCA算法在人脸识别与特征脸的应用
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import fetch_lfw_people
faces=fetch_lfw_people()
print(faces.keys())
print(faces.data.shape)
def plot_faces(face):
fig,axes=plt.subplots(6,6,figsize=(10,10),subplot_kw={"xticks":[],"yticks":[]},
gridspec_kw=dict(hspace=0.1,wspace=0.1))
for i ,ax in enumerate(axes.flat):
ax.imshow(face[i].reshape(62,47),cmap="bone")
plt.show()
random_indexes=np.random.permutation(len(faces.data))
x=faces.data[random_indexes]
face1=x[:36,:]
plot_faces(face1)
from sklearn.decomposition import PCA
pca4=PCA(svd_solver="randomized") #利用随机方式进行降维,提高计算的效率
pca4.fit(x)
print(pca4.components_.shape) #输出人脸数据集的主要成分的数据集形状组成(mxn),m代表的是降低到的维度,n是指数据的总体原维度
print(plot_faces(pca4.components_[:36,:]))
face3=fetch_lfw_people(min_faces_per_person=60) #输出训练图片最少有60个的人脸数据样本
print(face3.data.shape)
print(len(face3.target_names))
运行结果如下所示:


PCA算法提取人脸识别特征脸(降噪)的更多相关文章
- opencv基于PCA降维算法的人脸识别
opencv基于PCA降维算法的人脸识别(att_faces) 一.数据提取与处理 # 导入所需模块 import matplotlib.pyplot as plt import numpy as n ...
- Android 虹软人脸识别SDK-人脸对比
准备 : 登录官方网站,获取SDK,进行个人验证后新建项目,获取APP_ID,和SDK_KEY: https://ai.arcsoft.com.cn/ucenter/resource/build/in ...
- Eigenface与PCA人脸识别算法实验
简单的特征脸识别实验 实现特征脸的过程其实就是主成分分析(Principal Component Analysis,PCA)的一个过程.关于PCA的原理问题,它是一种数学降维的方法.是为了简化问题.在 ...
- 机器学习: 特征脸算法 EigenFaces
人脸识别是机器学习和机器视觉领域非常重要的一个研究方向,而特征脸算法是人脸识别里非常经典的一个算法,EigenFaces 是基于PCA (principal component analysis) 即 ...
- 【转】PCA算法学习_1(OpenCV中PCA实现人脸降维)
前言: PCA是大家经常用来减少数据集的维数,同时保留数据集中对方差贡献最大的特征来达到简化数据集的目的.本文通过使用PCA来提取人脸中的特征脸这个例子,来熟悉下在oepncv中怎样使用PCA这个类. ...
- 总结几个简单好用的Python人脸识别算法
原文连接:https://mp.weixin.qq.com/s/3BgDld9hILPLCIlyysZs6Q 哈喽,大家好. 今天给大家总结几个简单.好用的人脸识别算法. 人脸识别是计算机视觉中比较常 ...
- 基于机器学习人脸识别face recognition具体的算法和原理
引自:http://blog.csdn.net/eclipsesy/article/details/78388468?utm_source=debugrun&utm_medium=referr ...
- OpenCV人脸识别的原理 .
OpenCV人脸识别的原理 . 在之前讲到的人脸测试后,提取出人脸来,并且保存下来,以供训练或识别是用,提取人脸的代码如下: void GetImageRect(IplImage* orgImage, ...
- Yale数据库上的人脸识别
一.问题分析 1. 问题描述 在Yale数据集上完成以下工作:在给定的人脸库中,通过算法完成人脸识别,算法需要做到能判断出测试的人脸是否属于给定的数据集.如果属于,需要判断出测试的人脸属于数据集中的哪 ...
随机推荐
- 洛谷P1086花生采摘(简单模拟)
题目描述 鲁宾逊先生有一只宠物猴,名叫多多.这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:“欢迎免费品尝我种的花生!――熊字”. 鲁宾逊先生和多多都很开心,因为花生正是他 ...
- jQuery结合CSS实现手风琴组件(2)----利用seajs实现静态资源模块化引入
1. 目录结构(webStrom) 2. 代码 1.html <!DOCTYPE html> <html lang="en"> <head> & ...
- window照片查看器无法查看照片的问题
查看其他照片都可以,只有特殊的两张无法查看.百度|| 修改了环境变量中的tmp变量,路径改为e:\tmp(注:要选择磁盘空间足够的磁盘). 刷新过后,重新打开同一张图片,如下: 用系统自带画图软件尝试 ...
- 【摘录自MDN】对事件冒泡和捕捉的解释
当一个事件触发了一个有父元素的元素(例如我们的<video>时),现代浏览器运行两个不同的阶段 - 捕获阶段和冒泡阶段. 在捕获阶段: 浏览器检查元素的最外层祖先(<html> ...
- 测试者出的APP测试面试题
测试者出的APP测试面试题 一.开场问题:(自由发挥) 1.请自我介绍一下: 2.为什么离开上一个公司呢? 3.做测试多久了?以前做过哪些项目?你们以前测试的流程是怎样的?用过哪些测试工具? 4.你觉 ...
- Python之字符(2)
1.string.issupper()表示判断字符是否全部为小写字母. string1 = "abcdef" string2 = "ABCdef" string ...
- extractvalue报错注入
查看源码 $uagent = $_SERVER['HTTP_USER_AGENT']; ………… $uname = check_input($_POST['uname']); $passwd = ch ...
- ES5-json对象和字符串互转
JSON.stringify();和JSON.parse();是在ES5中提出并使用的:JSON.stringify();将一个对象转化为json字符串,JSON.parse();将一个对象转化为对象 ...
- 【Python数据挖掘】第六篇--特征工程
一.Standardization 方法一:StandardScaler from sklearn.preprocessing import StandardScaler sds = Standard ...
- vs code 本地调试配置
{ "name": "使用本机 Chrome 调试", "type": "chrome", "request& ...