首页 > 编程语言 >人脸识别算法

人脸识别算法

时间:2024-03-12 15:48:14浏览次数:27  
标签:人脸识别 分类器 算法 人脸 图像 识别

人脸识别已经成为了计算机视觉与生物识别领域被研究最多的主题之一

  • 人脸检测 :提取图像中的人脸,划定边界;
  • 人脸对齐 :使用一组位于图像中固定位置的参考点来缩放和裁剪人脸图像;
  • 人脸表征 :人脸图像的像素值会被转换成紧凑且可判别的特征向量,或称模板;
  • 人脸匹配 :选取并计算两个模板间的相似度分数来度量两者属于同一个主体的可能性。

 

使用 PCA 或 LDA 进行人脸识别的算法流程十分相似,具体步骤如下。

  1. 读取人脸图片数据库的图像及标签,并进行灰度化处理(可以同时进行直方图均衡等)
  2. 将读入的二维图像数据信息转为一维向量,然后按列组合成原始数据矩阵
  3. 对原始矩阵进行归一化处理,并使用PCA或LDA算法对原始数据矩阵进行特征分析与降维(计算过程中,根据原始数据得到一维均值向量经过维度的还原以后得到的图像为“平均脸”)
  4. 读取待识别的图像,将其转化为与训练集中的同样的向量表示,遍历训练集,寻找与待识别图像的差值小于阈值(或差值最小)的图像,即为识别结果

第一步,需要对局部区域进行定义;

第二步,人脸局部区域特征的提取,依据经过样本训练后得到的变换矩阵将人脸图像向量映射为人脸特征向量;

第三步,局部特征选择(可选);后一步是进行分类。分类器多采用组合分类器的形式,每个局部特征 对应一个分类器,后可用投票或线性加权等方式得到终识别结果。

人脸识别综合运用了数字图像/视频处理、模式识别、计算机视觉等多种技术,核心技 术是人脸识别算法。

人脸识别的算法有 4 种:基于人脸特征点的识别算法、基于整幅 人脸图像的识别算法、基于模板的识别算法、利用神经网络进行识别的算法。

标签:人脸识别,分类器,算法,人脸,图像,识别
From: https://www.cnblogs.com/gzhblog/p/18067165

相关文章

  • 代码随想录算法训练营第四十四天|完全背包 ● 518. 零钱兑换 II ● 377. 组合总和 Ⅳ
    完全背包题目链接:52.携带研究材料(第七期模拟笔试)(kamacoder.com)思路:完全·背包问题和01背包的区别在于同一个物品可以被重复放入,在代码里的区别就是内部遍历背包的for循环由倒序变成了正序。而且如果我们压缩了一维的话,如我的做法,两个for循环的顺序也是无所谓的。#include<i......
  • C++新U4-贪心算法2
    [【贪心算法(二)】分发饼干]    【题意分析】将饼干分发孩子手上,并且使得满足的孩子数量最多【思路分析】为了尽可能满足最多数量的孩子,按照孩子想要获得的饼干大小从小到大的顺序依次满足每个孩子,且对于每个孩子,应该选择可以满足这个孩子的胃口且尺寸最小的饼......
  • 代码随想录算法训练营第七天| 454. 四数相加 II 383. 赎金信
    454.四数相加IIhttps://leetcode.cn/problems/4sum-ii/description/、publicintfourSumCount(int[]nums1,int[]nums2,int[]nums3,int[]nums4){intres=0;HashMap<Integer,Integer>map=newHashMap<>();for(inti:nu......
  • 傅里叶变换算法和Python代码实现
    傅立叶变换是物理学家、数学家、工程师和计算机科学家常用的最有用的工具之一。本篇文章我们将使用Python来实现一个连续函数的傅立叶变换。我们使用以下定义来表示傅立叶变换及其逆变换。设f:ℝ→ℂ是一个既可积又可平方积分的复值函数。那么它的傅立叶变换,记为f̂,是由以......
  • 最长递增子序列算法
    最长递增子序列算法最长递增子序列(LongestIncreasingSubsequence,LIS)是计算机科学中的一个经典问题,目标是在给定的数列中找到一个非降序排列的子序列,使得该子序列的长度尽可能长。以下是一些解决最长递增子序列问题的算法:动态规划法(DynamicProgramming):初始化一个长度为......
  • 【算法】【线性表】【链表】合并 K 个升序链表
    1 题目给你一个链表数组,每个链表都已经按升序排列。请你将所有链表合并到一个升序链表中,返回合并后的链表。示例1:输入:lists=[[1,4,5],[1,3,4],[2,6]]输出:[1,1,2,3,4,4,5,6]解释:链表数组如下:[1->4->5,1->3->4,2->6]将它们合并到一个有序链表中得到。1-......
  • [积跬致远]Vol.1 版本兼容地启动sequence+Shell中的$0、$1、$2的含义+$cast 与类型转
    版本兼容地启动sequenceuvm从1.1d到1.2再到IEEE1800.2,有了很多变化。尤其是从1.1d到1.2,在objection的使用上有了一些关键性变化。在uvm进入到1.2后,starting_phase不在推荐使用。更为重要的是,不仅仅是不再推荐,而且如果以defaultsequence的方式启动以后,defaultsequence被启动以......
  • 代码随想录算法训练营第六天| 242. 有效的字母异位词
    242.有效的字母异位词https://leetcode.cn/problems/valid-anagram/description/publicbooleanisAnagram(Strings,Stringt){char[]sChar=s.toCharArray();char[]tChar=t.toCharArray();Arrays.sort(sChar);Arrays.sort(tChar......
  • m基于深度学习的32QAM调制解调系统相位检测和补偿算法matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:  2.算法涉及理论知识概要        随着通信技术的飞速发展,高阶调制格式如32QAM(32-QuadratureAmplitudeModulation,32进制正交幅度调制)在高速数据传输中得到了广泛应用。然而,由于信道失真、噪声干扰等因素,接收端往往面......
  • RC4算法:流密码算法的经典之作
    一、RC4算法的起源与演变RC4算法是由著名密码学家RonRivest在1987年设计的一种流密码算法,其名字来源于RivestCipher4。RC4算法简单高效,被广泛应用于数据加密和网络安全领域。尽管RC4算法在早期被广泛使用,但随着时间的推移,一些安全性问题逐渐暴露,导致其在一些场景下被取代......