5_人脸检测和人脸识别综述(调研)

  • 一、人脸检测
    • 1、基于知识的方法
    • 2、基于模板匹配的方法
    • 3、基于统计模型的方法
    • 4、人脸检测的评价指标
    • 4、人脸识别方法的对比
    • 5、人脸检测目前和未来的研究方向和趋势
  • 二、人脸识别
    • 1、人脸识别的
    • 2、人脸识别的应用和优劣分析:
    • 3、当前人脸识别技术改进路线
    • 4、人脸识别主要的研究方向及发展前景
    • 3、公开的人脸识别数据集

一、人脸检测

人脸检测人脸识别和人脸跟踪的基础:

1、基于知识的方法

  1. 知识的方法:

基于知识的方法的具体含义就是编写各种规则,这些规则的编写根据就是人脸模式的先于经验的知识,之后再进行下一步的人脸检测。


简而言之:就是根据需要提取人脸的基本特征,然后再根据规则研究它们之间的关系

  1. 知识方法提取人脸基本特征

灰度分布特征、结构特征、纹理特征、肤色特征、形状和轮廓特征等


  1. 灰度分布特征
    灰度值是反应人脸图像亮度信息的一个变量,不同的人脸器官分布一般不同,从而导致人脸面部各区域的灰度分布特征也不同。所以,可以考虑从灰度分布特征入手,建立一些规则,利用这些规则在人脸图像当中的呈现状态来确定图像当中有无人脸。
  2. 结构特征
    结构特征对于我们人脸来说是比较明显的,首先对称性就是一个很明显的结构特征
  3. 纹理特征
    由于人脸纹理特征的特殊性,可以用来进行人脸检测,但有一定缺陷:于处理多视角问题比较有难度。
  4. 肤色特征
    肤色相对于人脸的其他特征来讲是一种比较可靠和稳定的人脸特征,人脸的肤色特征是与非人脸相区分的一个显著特征。
    人脸的肤色不同主要还是亮度不同,人脸出现旋转、表情、姿态等变化时,肤色特征还是比较稳定的,而且它还能很容易地区别于大多数背景物体相区别,总体来说比较可靠稳定,比较常用。
  5. 形状和轮廓特征
    人脸的边缘特征比较典型,可以利用他们进行特征提取。特征提取的第一步就是进行边缘检测,边缘检测有许多算子,比 如:Sobel 算 子、Prewitt 算 子、Canny 算 子、Roberts Cross 算子等

2、基于模板匹配的方法

  1. 模板匹配的方法

模板和图像之间存在一定的自相关性,自相关性的强弱就可以反映该图像是否有可能为人脸图像。


主要方法:固定模板匹配、可变模板匹配

  1. 该方法有以下两种分类:
  • 固定模板匹配:
    固定模板匹配是指预先设定一个阈值,将人脸五官位置的比例关系做成固定模板,用该模板逐点扫描匹配候选人脸图像,并计算该模板与输入图像的各区域在人脸的各个区域如人脸边界、眼睛、鼻子和嘴等部位的相关程度,由相关程度的大小来决定该图像是否为人脸图像,若计算出的相关程度超出了预先设定的阈值,说明检测到人脸,否则为非人脸 图像 。
  • 可变模板匹配:
    可变模板的构成要素是一个参数可调的器官模板和与之相应的能量函数,此器官模板是根据被测物体形状设计而成的,能量函数设计的主要依据就是图像的灰度信息,同时,一些先验知识也需要用到,比如被测物体的轮廓等。

3、基于统计模型的方法

  1. 统计模型的方法

主要方法:本征脸、基于人工神经网络的方法 、 隐马尔可夫模型 、 基于支持向量机的方法 、基于 AdaBoost 算法的方法

  1. 主要方法介绍:
  1. 本征脸 :
    通过代数运算的降维方法在人脸图像的特征空间进行降维,以便于计算人脸图像的特征值和特征向量。通过观察图像的代数特征信息,寻找人脸和非人脸这两种模式在所得的低维特征空间的分布规律。常用的降维方法主要是PCA(主成分分析法)
  2. 基于人工神经网络的方法 :
    人工神经网络具有自适应、自组织、和实时性等优点,可以对复杂的、难以显示描述的模式识别进行很好的处理。
  3. 隐马尔可夫模型
  4. 基于支持向量机的方法 :
    支持向量机方法有效地将较少的样本信息、复杂的模型及较强的学习能力三者融合,以获得最好的推广能力。支持向量机的关键之处就是:超平面的有效建立,在这个超平面当中使正样本和负样本的分隔边界最大化。用于人脸检测的速度也很快。
  5. 基于 AdaBoost 算法的方法
    Adaboost 是一种迭代算法,其核心思想是针对同一训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成一个更强的最终分类器(强分器), 其算法本身是通过改变数据分布来实现的,它根据每次训练集之中每个样本的分类是否正确,以及上次总体分类的准确率,来确定每个样本的权值。将修改过权值的新数据集送给下层分类器进行训练,最后将每次训练得到的分类器融合起来,作为最后的决策分类器。使用 Adaboost 分类器可以排除一些不 必要的训练数据特征并将重心放在关键的技术上 [20]。运用 Adaboost 算法训练所得的最终强分类器错误率很低,效率也比较高,得到了广泛的应用。

4、人脸检测的评价指标

评价指标

评价一个人脸检测算法(detector)好坏,常用三个指标:

  1. 召回率(recall):

detector能检测出来的人脸数量越多越好,由于每个图像中包含人脸的数量不一定,所以用检测出来的比例来衡量,这个指标就是召回率recall。detector检测出来的矩形框越接近人工标注的矩形框,说明检测结果越好,通常交并比IoU大于0.5就认为是检测出来了,所以 recall = 检测出来的人脸数量/图像中总人脸数量。detector能检测出来的人脸数量越多越好,由于每个图像中包含人脸的数量不一定,所以用检测出来的比例来衡量,这个指标就是召回率recall。detector检测出来的矩形框越接近人工标注的矩形框,说明检测结果越好。
通常交并比IoU大于0.5就认为是检测出来了,
所以 recall = 检测出来的人脸数量 / 图像中总人脸数量。


  • IoU > 0.5 检测出人脸 IoU=方框交集大小方框并集大小>0.5IoU = \frac{方框交集大小}{方框并集大小} > 0.5IoU=方框并集大小方框交集大小​>0.5
  • x=检测出来的人脸数量图像中总人脸数量x=\frac{检测出来的人脸数量}{图像中总人脸数量}x=图像中总人脸数量检测出来的人脸数量​
  1. 误检数(false positives):

detector也会犯错,可能会把其他东西认为是人脸,这种情况越少越好,我们用检测错误的绝对数量来表示,这个指标就是误检数false positives。与recall相对,detector检测出来的矩形框与任何人工标注框的IoU都小于0.5,则认为这个检测结果是误检,误检越少越好,比如FDDB上,论文中一般比较1000个或2000个误检时的召回率情况,工业应用中通常比较100或200个误检的召回率情况。detector也会犯错,可能会把其他东西认为是人脸,这种情况越少越好,我们用检测错误的绝对数量来表示,这个指标就是误检数false positives。与recall相对,detector检测出来的矩形框与任何人工标注框的IoU都小于0.5,则认为这个检测结果是误检,误检越少越好,比如FDDB上,论文中一般比较1000个或2000个误检时的召回率情况,工业应用中通常比较100或200个误检的召回率情况。


  • IoU > 0.5 没有检测出人脸 IoU=方框交集大小方框并集大小<0.5IoU = \frac{方框交集大小}{方框并集大小} < 0.5IoU=方框并集大小方框交集大小​<0.5
  1. 检测速度(speed):

detector检测一幅图像所用的时间越少越好,通常用帧率(frame-per-second,FPS)来表示。不 过这里有点小问题,很多detector都是图像越小、图像中人脸越少、检测最小人脸越大,检测速度越快,需要注意不同论文的测试环境和测试图像可能不一样:测试图像,最常用的配置是VGA(640480)图像检测最小人脸8080给出速度,但都没有表明测试图像背景是否复杂,图像中有几个人脸(甚至是白底一人脸的图像测速度);测试环境,差别就更大了,CPU有不同型号和主频,有多核多线程差异,GPU也有不同型号,等等。是个算法都要比速度,人脸检测更不用说,detector检测一幅图像所用的时间越少越好,通常用帧率(frame-per-second,FPS)来表示。不过这里有点小问题,很多detector都是图像越小、图像中人脸越少、检测最小人脸越大,检测速度越快,需要注意不同论文的测试环境和测试图像可能不一样:测试图像,最常用的配置是VGA(640480)图像检测最小人脸8080给出速度,但都没有表明测试图像背景是否复杂,图像中有几个人脸(甚至是白底一人脸的图像测速度);测试环境,差别就更大了,CPU有不同型号和主频,有多核多线程差异,GPU也有不同型号,等等。

4、人脸识别方法的对比

  1. 人脸检测准确率

1、最新人脸检测准确率排名:

2、深度学习的人脸检测算法比较:

误检数对应的召回率——数据来源FDDB马萨诸塞大学

  1. 人脸检测算法对比
人脸检测 优势 劣势
OpenCV Haar Cascade 1) 几乎可以在CPU上实时工作;
2) 简单的架构;
3)可以检测不同比例的人脸。
1)会出现大量的把非人脸预测为人脸的情况;
2)不适用于非正面人脸图像;
3)不抗遮挡。
OpenCV DNN 1)准确率高;
2)在CPU上能够实时运行;
3)适用于不同的人脸方向:上,下,左,右,侧面等。
4)甚至在严重遮挡下仍能工作;
5)可以检测各种尺度的人脸。
不能使用NVIDIA GPU
Dlib HoG 1)CPU上最快的方法;
2)适用于正面和略微非正面的人脸;
3)与其他三个相比模型很小;
4)在小的遮挡下仍可工作。
1)不能检测小脸,因为它训练数据的最小人脸尺寸为80×80,但是用户可以用较小尺寸的人脸数据自己训练检测器;
2)边界框通常排除前额的一部分甚至下巴的一部分;
3)在严重遮挡下不能很好地工作;
4)不适用于侧面和极端非正面,如俯视或仰视。
Dlib CNN 1)适用于不同的人脸方向;
2)对遮挡鲁棒;
3)在GPU上工作得非常快;
4)非常简单的训练过程。
1)CPU速度很慢;
2)不能检测小脸,因为它训练数据的最小人脸尺寸为80×80,但是用户可以用较小尺寸的人脸数据自己训练检测器;
3)人脸包围框甚至小于DLib HoG人脸检测器。
MTCNN 1)适用于不同的人脸方向;
2)GPU和CPU运行速度都很快
3)适用于不同的人脸方向
会出现一些把非人脸预测为人脸的情况;
  1. 召回率(recall)对比

    可以看到三种方法中MTCNN检测准确率是最好的

github上MTCNN算法实现:链接

5、人脸检测目前和未来的研究方向和趋势

参考:
https://blog.csdn.net/App_12062011/article/details/51474928

https://blog.csdn.net/App_12062011/article/details/80537518

https://blog.csdn.net/wfei101/article/details/80542903

https://blog.csdn.net/Julialove102123/article/details/80455600

https://blog.csdn.net/App_12062011/article/details/52537133


二、人脸识别

1、人脸识别的

  1. 人脸识别:

人脸识别也叫面部识别,是一种基于人的脸部特征信息进行身份识别的生物识别技术。它用摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技术。

  1. 人脸识别的基本流程

2、人脸识别的应用和优劣分析:

人脸识别应用:
在保险、金融、安防、教育、娱乐等行业发展迅速。例如常见的场景:如:楼宇人脸门禁、 人脸考勤系统;亘联网移动支付终端、交友、相亲终端APP系统。


人脸识别优势:
与其他身份识别技术相比,人 脸 识 别 具 有以下优越性:非接触性;直观性突出;可跟踪性好、防伪性好 ;性价比高精度高 、速度快 。


人脸识别缺陷:
但是人脸识别容易受到表情、背景、装饰物、年龄跨度等诸多因素的干扰,从而加大了精准识别的难度。

3、当前人脸识别技术改进路线

基于特征的人脸检测技术——通过采用颜色、轮廓、纹理、结构或者直方图特征等进行人脸检测。


基于模板匹配人脸检测技术——从数据库当中提取人脸模板,接着采取一定模板匹配策略,使抓取人脸图像与从模板库提取图片相匹配,由相关性的高低和所匹配的模板大小确定人脸大小以及位置信息。


基于统计的人脸检测技术——通过对于“人脸”和“非人脸”的图像大量搜集构成的人脸正、负样本库,采用统计方法强化训练该系统,从而实现对人脸和非人脸的模式进行检测和分类。


4、人脸识别主要的研究方向及发展前景

  1. 未来研究方向:

未来人脸识别的主要研究方向将围绕目前面临的一些问题,如人脸面部结构的相似性、人脸的姿态、年龄变化、复杂环境的光照变化、人脸的饰物遮挡等。

  1. 发展前景

依托于物联网与人工智能的快速推进,人脸识别应用场景会越来越广泛。随着国家科研机构的研发投入、企业对技术的钻研、市场的推广等,这些都将是人脸识别美好前景的征兆。未来人脸识别或成为有效身份识别主流。

3、公开的人脸识别数据集

公开人脸数据集

人脸识别

数据库 描述 用途 获取方法
WebFace 10k+人,约500K张图片 非限制场景 链接
FaceScrub 530人,约100k张图片 非限制场景 链接
YouTube Face 1,595个人 3,425段视频 非限制场景、视频 链接
LFW 5k+人脸,超过10K张图片 标准的人脸识别数据集 链接
MultiPIE 337个人的不同姿态、表情、光照的人脸图像,共750k+人脸图像 限制场景人脸识别 链接 需购买
MegaFace 690k不同的人的1000k人脸图像 新的人脸识别评测集合 链接
IJB-A 人脸识别,人脸检测 链接
CAS-PEAL 1040个人的30k+张人脸图像,主要包含姿态、表情、光照变化 限制场景下人脸识别 链接
Pubfig 200个人的58k+人脸图像 非限制场景下的人脸识别 链接

人脸检测

数据库 描述 用途 获取方法
FDDB 2845张图片中的5171张脸 标准人脸检测评测集 链接
IJB-A 人脸识别,人脸检测 链接
Caltech10k Web Faces 10k+人脸,提供双眼和嘴巴的坐标位置 人脸点检测 链接
WIDER FACE 总共32203图像,393703标注人脸,目前难度最大,各种难点比较全面:尺度,姿态,遮挡,表情,化妆,光照等。 人脸检测 链接

人脸表情

数据库 描述 用途 获取方法
CK+ 137个人的不同人脸表情视频帧 正面人脸表情识别 链接

人脸年龄

数据库 描述 用途 获取方法
IMDB-WIKI 包含:IMDb中20k+个名人的460k+张图片 和维基百科62k+张图片, 总共: 523k+张图片 名人年龄、性别 链接
Adience 包含2k+个人的26k+张人脸图像 人脸性别,人脸年龄段(8组) 链接
CACD2000 2k名人160k张人脸图片 人脸年龄 链接

人脸性别

数据库 描述 用途 获取方法
IMDB-WIKI 包含:IMDb中20k+个名人的460k+张图片 和维基百科62k+张图片, 总共: 523k+张图片 名人年龄、性别 链接
Adience 包含2k+个人的26k+张人脸图像 人脸性别,人脸年龄段(8组) 链接

人脸关键点检测

数据库 描述 用途 获取方法
数据库 描述 用途 获取方法

人脸其它

数据库 描述 用途 获取方法
CeleBrayA 200k张人脸图像40多种人脸属性 人脸属性识别 获取方法

知乎上还有一些相关总结:知乎




♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

人脸检测和人脸识别综述(调研)相关推荐

  1. 利用MTCNN和FaceNet实现人脸检测和人脸识别 | CSDN博文精选

    作者 | pan_jinquan 来源 | CSDN博文精选 (*点击阅读原文,查看作者更多文章) 人脸检测和人脸识别技术算是目前人工智能方面应用最成熟的技术了.本博客将利用MTCNN和FaceNet ...

  2. OpenCV人脸检测与人脸识别

    OpenCV是开源的计算机视觉库,实现了很多图像处理和计算机视觉方面的通用算法.下面主要OpenCV中的内置算法来实现人脸检测与人脸识别. 人脸检测 流程 通过OpenCV自带的级联分类器来加载人脸检 ...

  3. 人脸检测和人脸识别原理

    一.MTCNN的原理 搭建人脸识别系统的第一步是人脸检测,也就是在图片中找到人脸的位置.在这个过程中,系统的输入是一张可能含有人脸的图片,输出是人脸位置的矩形框,如下图所示.一般来说,人脸检测应该可以 ...

  4. python+opencv+dlib实现人脸检测与表情识别

    python+opencv+dlib实现人脸检测与表情识别 一,dlib简单介绍:Dlib包含广泛的机器学习算法.所有的设计都是高度模块化的,快速执行,并且通过一个干净而现代的C ++ API,使用起 ...

  5. 十三.人脸检测和车牌识别

    人脸检测和车牌识别 1. 人脸检测 首先我们要搞清楚人脸检测中的一些概念. 人脸检测: 在一张图像中判断是否存在人脸并找出人脸所在的位置 人脸识别: 在人脸检测的基础上收集人脸数据集合进行处理保存信息 ...

  6. 人脸检测和人脸识别的基础知识

    1. 人脸识别和人脸检测概念 人脸识别(Face Recognition)是基于人的脸部特征信息进行身份识别的一种生物识别技术.说简单点,人脸识别解决"这是谁的脸"问题. 人脸检测 ...

  7. 人脸检测:人脸检测算法综述

    https://blog.csdn.net/SIGAI_CSDN/article/details/80751476 问题描述 人脸检测的目标是找出图像中所有的人脸对应的位置,算法的输出是人脸外接矩形在 ...

  8. 深度学习人脸检测与人脸识别

    一.概述 1. 基本概念 人脸是个人重要的生物特征,业界很早就对人脸图像处理技术进行了研究.人脸图像处理包括人脸检测.人脸识别.人脸检索等.人脸检测是在输入图像中检测人脸的位置.大小:人脸识别是对人脸 ...

  9. 高帧率扑克牌识别技术详解一(可用于车牌识别,字符识别,人脸检测,验证码识别等等成熟领域)

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 高帧率扑 ...

最新文章

  1. pb怎么连接dll_跑步学不会这项技术,谈何PB?
  2. [转载]TFS安装配置教程
  3. 系统策略禁止安装python_Win10系统如何禁止自动安装捆绑软件?
  4. iOS开发 贝塞尔曲线UIBezierPath
  5. 投资股权众筹项目,至少需要关注6个方面
  6. 在PHP中实现中文汉字验证码
  7. python-类的基本知识
  8. 2014-4-2学习笔记(Linux从入门到精通 刘忆智 清华大学出版社)
  9. 在Solaris 下使用Os Watcher 监控Oracle
  10. 对警报线程池的警报线程_使用警报控制器的iOS操作表
  11. ABAP RFC函数导入参数 EXPORTING 传入内表形式参数
  12. java 小程序 学生成绩_自己搞的小程序,学生管理信息系统,大家来看看
  13. Entry name ‘META-INF/xxx‘ collided报错
  14. 有了AI智能绘画,我也可以成为绘画大师——全球最大规模中文跨模态生成模型ERNIE-ViLG
  15. android系统system镜像解包打包制作过程
  16. 去沸点路上的留言板之旅
  17. 汇编学习 安装DOSBOX及debug.exe教程
  18. 行测-常识积累(2)
  19. 深入浅出Java线程池:理论篇
  20. 用于设定表格样式的附加css,Dreamweaver使用CSS样式表设置网页文本格式

热门文章

  1. Java代码调用阿里人脸比对接口
  2. python http proxy 驗証
  3. Office自带 插入数学公式 快捷键
  4. C语言中的常用库宏--持续更新
  5. null c语言标准库,C 库宏
  6. Object方法实践之对象数组转化
  7. 基于pytorch的人脸识别脚本(python示例)
  8. UG_NX曲面造型概述
  9. 微信网页授权登录java后台实现
  10. ROS安装使用与Qt使用ROS配置