人脸识别的英文名称是 Face Recognition,前段时间查找资料学的时候发现,不少人将人脸识别和人脸检测(Face Detection)混为一谈,很大程度上增加了查询学习资料的难度,这里在参照一些前辈的基础上,自己动手敲写代码,整理出了一个完整的版本。

此系列文章将从理论到实践进行整合:分三篇进行叙述,第一篇从零说人脸识别,保证大多数朋友能通过这篇文章了解到人脸识别的概念,并且能够形成一个基本的框架。第二篇将进行初步的实践,包括人脸图像的采集,和如何利用opencv已有的模型根据人脸图像进行训练,得到需要的分类器。第三篇则是综合篇,将程序以模块化进行展示,以文档形式实现人脸识别和建立MFC程序实现人脸识别。

一、人脸检测和人脸识别

首先需要介绍下人脸识别和人脸检测的不同。人脸检测指的是对一幅图片进行检测,检测图片中是否包含有人脸;而人脸识别则是在人脸检测的基础上,不仅要检测出是否该图片中存在人脸,更要进一步将检测出的人脸图像与已有人脸库中的进行对比,识别出该人脸图像对应库中的哪一个。人脸检测的相关知识可以参照微信公众号里(Mr_cplus)的相关历史文章。

二、人脸识别的大概流程

人脸识别大体上分为四步:人脸图像采集及检测、人脸图像预处理、人脸图像特征提取、匹配与识别。

(1)人脸图像采集及检测

人脸图像的采集指的是按照所研究的目标(比如研究不同姿态下的人脸识别),采集一定数量的图像数据整理成库。当前学术界已有许多现成的人脸库,满足基本的研究需求,当然也可以在这些数据库的基础上进行添加(比如将自己的人脸添加进某数据库)。当前较为常用的人脸图像数据库有:

1. FERET人脸数据库
      由FERET项目创建,包含14,051张多姿态,光照的灰度人脸图像,是人脸识别领域应用最广泛的人脸数据库之一.其中的多数人是西方人,每个人所包含的人脸图像的变化比较单一. 
2. MIT人脸数据库 
      由麻省理工大学媒体实验室创建,包含16位志愿者的2,592张不同姿态,光照和大小的面部图像. 
3. Yale人脸数据库 
      由耶鲁大学计算视觉与控制中心创建,包含15位志愿者的165张图片,包含光照,表情和姿态的变化. 
4. Yale人脸数据库B
      包含了10个人的5,850幅多姿态,多光照的图像.其中的姿态和光照变化的图像都是在严格控制的条件下采集的,主要用于光照和姿态问题的建模与分析.由于采集人数较少,该数据库的进一步应用受到了比较大的限制. 
5. PIE人脸数据库
      由美国卡耐基梅隆大学创建,包含68位志愿者的41,368张多姿态,光照和表情的面部图像.其中的姿态和光照变化图像也是在严格控制的条件下采集的,目前已经逐渐成为人脸识别领域的一个重要的测试集合. 
6. ORL人脸数据库
      由剑桥大学AT&T实验室创建,包含40人共400张面部图像,部分志愿者的图像包括了姿态, 表情和面部饰物的变化.该人脸库在人脸识别研究的早期经常被人们采用,但由于变化模式较少,多数系统的识别率均可以达到90%以上,因此进一步利用的价值已经不大. 
……

(2)人脸图像预处理

此处主要指两方面:一个是如何将获取的人脸图像进行一些处理,使之和待放入的人脸库内图片数据有相同的尺寸,格式等;另一个是指将整体库内图片进行处理,使之满足后面图像特征提取以及识别中的要求。

(3)人脸图像特征提取

人脸图像特征提取是指按照一定的算法,将人脸图像进行处理,提取出特征信息,形成特征矩阵等,之后用于分类器的训练。特征提取的算法往往决定着识别效果的好与坏。

(4)匹配与识别

人脸图像经过特征提取形成了一定的特征矩阵,之后将待识别的人脸图片(或者视频中的某些帧)当作输入,按照同样的特征提取算法,形成其人脸图的矩阵,之后与利用分类器进行分类,识别其属于库内的哪一个类别。

三、人脸识别的常用方法

人脸识别方法有很多,当前大体可以分为四类:

  1. 基于人脸特征点的识别算法(Feature-based recognition algorithms)。

  2. 基于整幅人脸图像的识别算法(Appearance-based recognition algorithms)。

  3. 基于模板的识别算法(Template-based recognition algorithms)。

  4. 利用神经网络进行识别的算法(Recognition algorithms using neural network)。

四、部分结果的提前展示

此次动手实践利用的人脸数据库是ORL人脸数据库,并且为了识别自己的人脸写了一个拍照程序自拍,将采集到的自己的图片信息加入该数据库,形成一个新的包含有自己人脸信息的数据库。

1、以文档程序为例进行展示,当摄像头检测到的人脸是自己时,会“夸"自己是“ 大帅比”,检测结果不是自己时会显示“大丑逼”。哈哈哈,我长的帅已经不是秘密了!(41是指识别判断的结果,41对应我自己,ORL中原有40个人)

2、以MFC程序为例进行展示。同样,当摄像头检测到的人脸是自己时,会“夸"自己是“ 大帅比”,检测结果不是自己时会显示“大丑逼”。而且可以设定当检测结果为数据库中的某一个时,可以在另一个图片控件(picture control)中显示对应一张人脸库中的图像。(各种BUTTON表示不同功能,在接下来的两篇中将进行介绍。)

以上就是本篇的全部内容,如果觉得有用,请帮忙关注下呗~

人脸识别(一)——从零说起相关推荐

  1. 免费直播!用Python开发人脸识别程序,零基础也能学(附源码)

    在当今社会人脸识别技术应用的范围越来越广泛,全球很多商业活动都已经从中获益:人脸自动对焦和笑脸快门技术,人脸识别门禁,人脸识别支付等许多方面. 人脸识别技术的使用在接下来的几年内还会继续增长,还没掌握 ...

  2. 从零玩转人脸识别之RGB人脸活体检测

    从零玩转RGB人脸活体检测 前言 作者个人博客: 点击前往 本期教程人脸识别第三方平台为虹软科技,本文章讲解的是人脸识别RGB活体追踪技术,免费的功能很多可以自行搭配,希望在你看完本章课程有所收获. ...

  3. 微信小程序 |基于百度AI从零实现人脸识别小程序

    写在前面 针对互联网上已有的人脸识别小程序项目,很多只是基于手动拍照,然后上传到SDK进行识别.这一过程完全脱离实际场景!无法直接使用! 本文项目是基于微信摄像头中的实时视频帧数据,通过实时动态识别小 ...

  4. micropython人脸识别代码_【雕爷学编程】MicroPython动手做(03)——零基础学MaixPy之开机测试...

    1.几个知识点 (1)MicroPython 是 Python 3 语言的精简高效实现 ,包括Python标准库的一小部分,并针对嵌入式微控制器(单片机)和受限制的环境进行了优化,它是Python延伸 ...

  5. android人脸识别demo_零门槛解决Windows人脸识别应用开发难题

    自人脸识别免费SDK--ArcFace3.0上线以来,凭借对人脸识别.活体检测.年龄检测.性别检测等核心算法模型进行全面升级,大幅提升算法鲁棒性,显著降低接入门槛,同时支持Windows.iOS.An ...

  6. 零基础用一百行代码完成动态的人脸识别(opencv+python)

    废话:(其实是介绍了一下该文章的大概来路)   电子化的时代到处都能看到人脸识别的用途:比如:刷脸门禁,火车站检票口,又比如检查站,还有一些比较高端的汽车还支持刷脸开门等等. 近期呢接了个学校的一个项 ...

  7. 人脸识别接口_人脸识别智慧零售场景从零开发

    近年来,人脸识别技术在智慧零售.人脸门禁和安防系统等领域得到了越来越多的应用.人脸识别在我们的日常生活中已随处可见,下面通过一个小故事讲述如何在智慧零售场景中使用腾讯云人脸识别接口进行开发. 源码地址 ...

  8. 零基础K210实现人脸识别(YOLO2)

    使用yolo2进行人脸识别,可进行人脸注册.人脸检测与人脸识别. 一.获取机器码 下载ken_gen固件:ken_gen  .打开ken_gen固件,使用kflash烧录.烧录完成,打开串口,按下复位 ...

  9. 【AI达人创造营第三期】从零教你搭建基础人脸识别系统

    基于凌蒙派RK3568部署人脸识别系统 一.项目背景 (一).AIStudio方案调研 AIStudio中搜了一圈,和人脸识别系统有关的项目大致有两个类型,典型代表如下: 项目一: 人脸识别(3):部 ...

最新文章

  1. 调剂2002年计算机科学与技术,教育部关于做好2002年全国研究生录取工作的通知...
  2. 一天一道算法题--5.30---递归
  3. 安装fastdfs出现/usr/local/lib/libfastcommon.so: undefined reference to `fcntl64@GLIBC_2.28‘
  4. 微力同步linux,云端同步软件-微力同步下载 v2.4.3 官方版 - 下载吧
  5. python中的非阻塞使用互斥锁
  6. OpenCV3学习(8.3)模板匹配函数matchTemplate详解
  7. MySql Cluster 安装,Centos,双管理,多数据,多SQL节点
  8. 天才程序员之陨落:业余项目创业 Cloudflare,公司上市前患病失去自理能力
  9. [转载]Hadoop 2.X 日志文件和MapReduce的log文件研究心得
  10. error: possibly undefined macro: AC_PROG_LIBTOOL
  11. ShortCut Exploit Builder
  12. 微橙人人店 php,最新微橙人人店分销3.5.7整站源码,全开源任意二开,新增及修复多项功能,附升级补丁...
  13. Android获取应用程序信息——PackageManager的基本使用
  14. 高颜值生物医学在线画图工具
  15. 金葵花股票资金操盘大赛3号选手张朝阳关于疫情对A股市场影响的观点
  16. 贩卖个人信息非法获利300余万,平安惠普、拍拍贷都是买方
  17. 3d旋转--transform-style: preserve-3d,translate3d(x,y,z),perspective()
  18. Mac M1 使用conda安装jupyter notebook
  19. 计算机系统处理机,处理机
  20. 用格里高利公式求给定精度的PI值 (15分)

热门文章

  1. PHP的运行机制与原理(底层)
  2. PHP魔术常量trait
  3. Swoole命令行输出但浏览器会超时
  4. #未能找到类型或命名空间名称_如何变更文件类型为自己所需要的类型(通俗易懂快速上手)...
  5. mysql 排序后 下一条记录_Mysql如何使用order by工作
  6. PHP图片上传,框架通用
  7. at指令获取网络连接类型_【新手】ESP8266模块 AT指令详解
  8. api可以主动采集用户数据吗_模拟量数字量采集卡之EC-8001篇
  9. php+linux+线程安全,PHP 线程安全与非线程安全版本的区别深入解析
  10. asp 取数据 计算_地学数据 | 地理空间数据获取方式汇总