eigenface

该博客介绍了如何使用PCA方法和Eigenface技术进行人脸识别。通过对YALE人脸数据库的15个人165张图片进行处理,详细阐述了从读取图片、计算平均和偏差矩阵、主成分分析到选择特征值的步骤。最后,实现了人脸分类并进行了测试,以验证模型的准确性。
摘要由CSDN通过智能技术生成

eigenface实现人脸识别

采用PCA方法,利用YALE的人脸数据库做人脸识别,15个人,165张图片,每张图片大小为100*100

这里yale文件中是源图片,通过changename.py将名字更改,存放到picture文件下

路径展示

图片展示

eigenface具体步骤
1.读取训练所需要的图片,这里使用subjectxx.normal.bmp文件,共15张图片,每张图片拉直为一个(1,100*100)的向量,合并成为一个(15,100*100)的大矩阵

import numpy as np
import cv2
import os

def loadImageSet(add):
    FaceMat = np.mat(np.zeros((15,100*100)))
    j =0
    for i in os.listdir(add):
        if i.split('.')[1] == 'normal':
            try:
                img = cv2.imread(os.path.join(add,i),0)
                #0表示读取灰度图
            except:
                print('load %s failed'%i)
                #变成一个向量
            j += 1
    return FaceMat

2.计算平均矩阵avgImg,得到偏差矩阵diffTrain(以下推导中记偏差矩阵为T)

FaceMat = loadImageSet('picture').T
avgImg = np.mean(FaceMat,1)
diffTrain = FaceMat-avgImg

3.计算协方差矩阵 S=TTT S = T T T ,注意到 T(100100,15) T 的 大 小 为 ( 100 ∗ 100 , 15 ) , S100100,100100) S 将 会 巨 大 ( 100 ∗ 100 , 100 ∗ 100 ) ,为了避免计算大矩阵特征值,特征向量,采用如下方法。

T
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值