博客
关于我
【人脸识别】基于GUI SVM+PCA人脸识别【Matlab 082期】
阅读量:724 次
发布时间:2019-03-21

本文共 1962 字,大约阅读时间需要 6 分钟。

二、技术背景与方法

  • 人脸识别系统的构建在本文中,我将基于ORL人脸数据库构建一个自动化的面部识别系统,主要采用了以下技术手段:首先,利用主成分分析(PCA)对高维人脸图像数据进行降维处理;其次,基于支持向量机(SVM)进行分类识别。

  • 数据处理与特征提取.datasource:Screenshot taken from ORL Face Database人脸图片的尺寸为112x92,存储格式为PGM。系统将用户所输入的图像与ORL人脸库对比分析。一旦确认输入图像中的人脸正在数据库中存在,系统将返回对应的用户标识信息。

  • PCA降维方法:PCA是一种常用的降维技术,能够有效地减少数据维度的冗余信息。">其工作原理如下:a) 降维目的:由于原始人脸图像每个像素都有 RGB 通道信息,尺寸为 112x92,因此每张图片的像素总数为 112×92=10,304。10,304 个像素作为一维特征向量,这个维度极高的特征空间暴露出以下问题:

    • 数据处理计算量大
    • 特征维度过高导致模型训练难度加重

    b) PCA实现降维:PCA通过对原始特征向量集合进行协方差矩阵的计算和特征值分解,找出能够保持数据主要变化方向的主成分。通过选择具有最大特征方差的前 k 个主成分,降低了数据维度,并丢弃了冗余信息。具体实现方式如下:

    • test.m 中实现数据降维:
    TestFace = (TestFace - meanVec) * V;
    • classify.m 中实现面部分类:
    xNewFace = (xNewFace - meanVec) * V;
    1. 数据预处理方法:a) 数据规格化(Normalization)数据规格化的作用是将原始特征值范围标准化,这样可以避免不同特征量的量纲差异对分类结果产生影响。常用的方式包括线性标准化(将值缩放到 [0,1] 范围)或有平方标准化(将值缩放到 [-1,1] 范围):
    2. Accompanying MATLAB code:%NormalizationnormalizedData = (data - meanData) / stdData;

      b) 特征值归一化基于ecies的归一化处理方法,以确保不同特征量的 Contribution 一致。通过归一化处理,可以显著提高模型的泛化能力。

      1. SVM分类器a) SVM介绍SVM(Support Vector Machine),全称为支持向量机,是一种监督学习算法,广泛应用于小样本数据的高效分类任务。其核心思想是,通过建立一个便于区分两类样本的最大间隔的超平面。主要优点:
        • 具备 strong generalization 能力
        • 能够较好地区分不同类别的数据边缘
        • 对小样本数据表现优异
        • 能够处理非线性分类问题

        b) SVM分类原理SVM 的分类过程通过寻找一个最优的超平面将两类数据分开。具体实现包括以下步骤:

      2. 数据预处理与领域归一化
      3. 选择合适的核函数与 kernel 环境
      4. Training SVM 模型
      5. 用模型对测试数据进行分类
      6. c) 实际应用示例以本次实验中采用的人脸识别任务为例:

        • 训练数据:40 个人的前 5 张照片
        • 测试数据:40 个人的后 5 张照片
        • 样本特征:112x92 像素矩阵
        • 特征维度:10,304 维度
        • 降维维度: 经 PCA处理后设置为 12 维度
        1. 系统运行结果通过对本次实验系统运行结果的分析,可以得出以下结论:
          • 正确识别率达到 98%
          • 识别时间的平均值为 0.05 秒/张
          • 系统运行稳定性高,识别误差可接受范围内
          1. 代码实现说明
          2. function [imgRow,imgCol,FaceContainer,faceLabel]=ReadFaces(nFacesPerPerson, nPerson, bTest)    % 确保输入参数有效性    if nargin == 0        nFacesPerPerson=5;        nPerson=40;        bTest=0;    elseif nargin < 3        bTest=0;    end    % 加载相关库与参数设置    load('Mat/params.mat');

            代码实现主要包含以下几个关键部分:

            • 数据载入与路径规划
            • 数据预处理与特征提取
            • 模型训练与优化
            • 测试用例分类
            1. 结论与展望综上所述,本人脸识别系统基于 PCA 降维与 SVM 分类的技术,能够快速、准确地识别未知用户的面部信息。这一系统在图像采集与处理、模型训练与测试等方面都展现了良好的性能。
            2. 对于今后的工作可以展望如下:

              • 导入更多样化的面部数据集以验证系统鲁棒性
              • 探索更高效的 降维与分类算法
              • 优化现有系统,并尝试实现多目标 tracking 圣殿

    转载地址:http://xynrz.baihongyu.com/

    你可能感兴趣的文章
    Nacos服务注册与发现的2种实现方法!
    查看>>
    nacos服务注册和发现原理简单实现案例
    查看>>
    Nacos服务注册总流程(源码分析)
    查看>>
    nacos服务注册流程
    查看>>
    Nacos服务部署安装
    查看>>
    nacos本地可以,上服务器报错
    查看>>
    Nacos注册Dubbo(2.7.x)以及namespace配置
    查看>>
    Nacos注册中心有几种调用方式?
    查看>>
    nacos注册失败,Feign调用失败,feign无法注入成我们的bean对象
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 nacos源码如何下载 nacos 客户端源码下载地址 nacos discovery下载地址(一)
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 spring cloud alibaba 的discovery做了什么 nacos客户端是如何启动的(二)
    查看>>
    nacos源码 nacos注册中心1.4.x 源码 如何注册服务 发送请求,nacos clinet客户端心跳 nacos 注册中心客户端如何发送的心跳 (三)
    查看>>
    Nacos简介、下载与配置持久化到Mysql
    查看>>
    Nacos简介和控制台服务安装
    查看>>
    Nacos管理界面详细介绍
    查看>>
    Nacos编译报错NacosException: endpoint is blank
    查看>>
    nacos自动刷新配置
    查看>>
    nacos运行报错问题之一
    查看>>
    Nacos部署中的一些常见问题汇总
    查看>>
    NACOS部署,微服务框架之NACOS-单机、集群方式部署
    查看>>