人脸识别(一)——从零说起

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

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

一、人脸检测和人脸识别

二、人脸识别的大概流程

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

(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)匹配与识别

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

三、人脸识别的常用方法

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

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

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

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

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

四、部分结果的提前展示

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

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

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

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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180111G0U67W00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券