前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >人脸检测与识别总结

人脸检测与识别总结

作者头像
计算机视觉研究院
发布2018-04-17 19:12:31
2.6K0
发布2018-04-17 19:12:31
举报

上半年跨度到下半年之后,深度学习又进一步推送到了AI的顶端,很多领域都开始涉及到Deep Learning,而在人脸领域,已经被广泛应用,今天本平台再一次详细说说人脸领域的一些知识,想进一步让更多人的有进一步深入的熟知!


最近因为种种原因,这方面的知识有得到大家的认可和对其有很大的兴趣,所以平台今天再一次分享这领域知识,让已明白的人更加深入理解,让初学者有一个好的开端与认知,谢谢大家对本平台的支持!


让我开始说说人脸这个技术,真的是未来不可估计的IT技术,不知道未来会有多少企业为了这个技术潜心研究,现在就来看看最近的技术和未来的发展吧!

我先大概说下遇到的一些问题:


Ø 图像质量人脸识别系统的主要要求是期望高质量的人脸图像,而质量好的图像则在期望条件下被采集。图像质量对于提取图像特征很重要,因此,即使是最好的识别算法也会受图像质量下降的影响;

Ø 照明问题:同一张脸因照明变化而出现不同,照明可以彻底改变物体的外观;

Ø 姿势变化:从正面获取,姿势变化会产生许多照片,姿态变化难以准确识别人脸;

Ø 面部形状/纹理随着时间推移的变化:有可能随着时间的推移,脸的形状和纹理可能会发生变化;

Ø 相机与人脸的距离:如果图像是从远处拍摄的,有时从较长的距离捕获的人脸将会遭遇质量低劣和噪音的影响;

Ø 遮挡:用户脸部可能会遮挡,被其他人或物体(如眼镜等)遮挡,在这种情况下很难识别这些采集的脸。


就先说这些问题吧,其实在实际生活中,还有更多的问题需要去解决,但是上述所说的问题是典型且主要的待解决问题,也是现在大家比较关注的一些问题。读者您可以自己再去总结一些,其实很easy!


在DL没有出现之前,大家都是在用传统的机器算法和统计学的算法来对以上问题进行研究,仔细想想,该领域的领头人真的很厉害,能做出那么多经典的算法,下面我先简单介绍几个典型的算法框架:

1) 基于Adaboost人脸检测

Adaboost人脸检测算法,是基于积分图、级联检测器和Adaboost算法的方法,该方法能够检测出正面人脸且检测速度快。其核心思想是自动从多个弱分类器的空间中挑选出若干个分类器,构成一个分类能力很强的强分类器。

缺点:而在复杂背景中,AdaBoost人脸检测算法容易受到复杂环境的影响,导致检测结果并不稳定,极易将类似人脸区域误检为人脸,误检率较高。

2) 基于特征的方法(引用“Summary of face detection based on video”)

基于特征的方法实质就是利用人脸的等先验知识导出的规则进行人脸检测。

  1. 边缘和形状特征:人脸及人脸器官具有典型的边缘和形状特征,如人脸轮廓、眼睑轮廓、虹膜轮廓、嘴唇轮廓等都可以近似为常见的几何单元;
  2. 纹理特征:人脸具有特定的纹理特征,纹理是在图上表现为灰度或颜色分布的某种规律性,这种规律性在不同类别的纹理中有其不同特点;
  3. 颜色特征:人脸的皮肤颜色是人脸表面最为显著的特征之一,目前主要有RGB,HSV,YCbCr,YIQ,HIS等彩色空间模型被用来表示人脸的肤色,从而进行基于颜色信息的人脸检测方法的研究。

3) 基于模板的方法

基于模板匹配的方法的思路就是通过计算人脸模板和待检测图像之间的相关性来实现人脸检测功能的,按照人脸模型的类型可以分为两种情况:

  1. 基于通用模板的方法,这种方法主要是使用人工定义的方法来给出人脸通用模板。对于待检测的人脸图像,分别计算眼睛,鼻子,嘴等特征同人脸模板的相关性,由相关性的大小来判断是否存在人脸。通用模板匹配方法的优点是算法简单,容易实现,但是它也有自身缺点,如模板的尺寸、大小、形状不能进行自适应的变化,从而导致了这种方法适用范围较窄;
  2. 基于可变形模板的方法,可变形模板法是对基于几何特征和通用模板匹配方法的一种改进。通过设计一个可变模型,利用监测图像的边缘、波峰和波谷值构造能量函数,当能量函数取得最小值时,此时所对应的模型的参数即为人脸面部的几何特征。这种方法存在的不足之处在于能量函数在优化时十分复杂,消耗时间较长,并且能量函数中的各个加权系数都是靠经验值确定的,在实际应用中有一定的局限性。

4) 基于统计理论的方法

基于统计理论的方法是指利用统计分析与机器学习的方法分别寻找人脸与非人脸样本特征,利用这些特征构建分类,使用分类进行人脸检测。它主要包括神经网络方法,支持向量机方法和隐马尔可夫模型方法。基于统计理论的方法是通过样本学习而不是根据人们的直观印象得到的表象规律,因此可以减小由于人眼观测不完整和不精确带来的错误而不得不扩大检测的范围,但是这种方法需要大量的统计特性,样本训练费时费力。

以上也都是通过快速阅读得到的一些结论,大部分都是直接引用文章作者的语句。其中在这些方法中,都有很多改进,比如PCA+Adaboost,HMM等。。。。。。


现在用传统的技术已经不能再有新的突破,所以现在流行了DL架构,打破了人类的极限,又将检测,识别,跟踪等技术上升到另一个高度。

现在来简单讲讲最近几年神经网络的牛X之处。

1)Retinal Connected Neural Network (RCNN)

2)Rotation Invariant Neural Network (RINN)

3)Principal Component Analysis with ANN (PCA & ANN)

4)Evolutionary Optimization of Neural Networks

5)Multilayer Perceptron (MLP)

6) Gabor Wavelet Faces with ANN

还有好多就不一一介绍看了(先进的没有介绍,因为想必大家都有阅读,所以。。。嘿嘿,相信大家通过大量阅读一定已经有了自己的想法,赶快去实现吧!)。在此推荐读者你阅读《Recent Advances in Face Detection》,分析的特别详细,希望对大家有帮助,谢谢!

对了,现在不是因为图像中的人脸检测,识别都已经很出色了,很多团队都做到接近满分了,所以现在来说说未来的趋势,也许这已经不算趋势,因为现在已经有很多人在这条路上摸爬打滚,而且有些团队也有一些成就,希望接下来大家在这领域都能取得好成就。加油!!!


最新深度网络用语人脸的部分介绍与分析:

DeepID网络结构

DeepID是第一代,其结构与普通的卷积神经网络差点儿相同。结构图例如以下:

该结构与普通的卷积神经网络的结构相似。可是在隐含层,也就是倒数第二层,与Convolutional layer 4和Max-pooling layer3相连,鉴于卷积神经网络层数越高视野域越大的特性,这种连接方式能够既考虑局部的特征,又考虑全局的特征。

实验结论

  • 使用multi-scale patches的convnet比仅仅使用一个仅仅有整张人脸的patch的效果要好。
  • DeepID自身的分类错误率在40%到60%之间震荡,尽管较高。但DeepID是用来学特征的。并不须要要关注自身分类错误率。
  • 使用DeepID神经网络的最后一层softmax层作为特征表示,效果非常差。
  • 随着DeepID的训练集人数的增长,DeepID本身的分类正确率和LFW的验证正确率都在添加。





DeepID2

相对于DeepID有了较大的提高。

其主要原因在于在DeepID的基础上加入了验证信号。详细来说。原本的卷积神经网络最后一层softmax使用的是Logistic Regression作为终于的目标函数,也就是识别信号;但在DeepID2中,目标函数上加入了验证信号。两个信号使用加权的方式进行了组合。

两种信号及训练过程

识别信号公式例如以下:

验证信号公式例如以下:

因为验证信号的计算须要两个样本,所以整个卷积神经网络的训练过程也就发生了变化,之前是将所有数据切分为小的batch来进行训练。 如今则是每次迭代时随机抽取两个样本,然后进行训练。

实验结论

  • 对lambda进行调整。也即对识别信号和验证信号进行平衡,发现lambda在0.05的时候最好。使用LDA中计算类间方差和类内方差的方法进行计算。

得到的结果例如以下:

能够发现,在lambda=0.05的时候,类间方差差点儿不变,类内方差下降了非常多。 这样就保证了类间区分性,而降低了类内区分性。





DeepID2+

DeepID2+有例如以下贡献,第一点是继续更改了网络结构;第二点是对卷积神经网络进行了大量的分析,发现了几大特征。包含:+ 神经单元的适度稀疏性,该性质甚至能够保证即便经过二值化后,仍然能够达到较好的识别效果;+ 高层的神经单元对人比較敏感,即对同一个人的头像来说。总有一些单元处于一直激活或者一直抑制的状态。DeepID2+的输出对遮挡很鲁棒。

网络结构变化

相比于DeepID2,DeepID2+做了例如以下三点改动:

  • DeepID层从160维提高到512维。
  • 训练集将CelebFaces+和WDRef数据集进行了融合。共同拥有12000人,290000张图片。
  • DeepID层不仅和第四层和第三层的max-pooling层连接,还连接了第一层和第二层的max-pooling层。





DeepID3

DeepID3有两种不同的结构,分别为DeepID3 net1DeepID3 net2。相对DeepID2+,它的层数更多,网络更深。同时还借鉴了VGGGoogLeNet,引入了inception layer,这个主要是用在了DeepID3 net2里面。网络中还出现了连续两个conv layer直接相连的情况,这样使得网络具有更大的receptive fields和更复杂的nonlinearity,同时还能限制参数的数量。

性能

在训练样本上,DeepID3仍采用原来DeepID2+中使用的样本,在25个image patches产生的网络上作对比时,DeepID3 net1优势最为明显,而DeepID3 net2提升不大显著。





再来说说VALSE 2017

VALSE 的发起者之一——中科院计算所的山世光研究员的报告:《人脸检测与识别年度进展概述》

这就不详细写,因为该链接都有清楚的表示:

https://mp.weixin.qq.com/s/RrqZmm3NiAT3vOtcqt0xGg


下面我来给大家提供一些公开的数据库网址:

■Annotated Database (Hand, Meat, LV Cardiac, IMM face) (Active Appearance Models) ■AR Face Database (http://cobweb.ecn.purdue.edu/~aleix/aleix_face_DB.html) ■BioID Face Database (BioID Face Database | facedb | BioID) ■Caltech Computational Vision Group Archive (Cars, Motorcycles, Airplanes, Faces, Leaves, Background) (Computational Vision: Archive) ■Carnegie Mellon Image Database (motion, stereo, face, car, ...) (CMU VASC Image Database) ■CAS-PEAL Face Database (The PEAL Face Database) ■CMU Cohn-Kanade AU-Coded Facial Expression Database (http://www.ri.cmu.edu/projects/project_421.html ■CMU Face Detection Databases (http://www.ri.cmu.edu/projects/project_419.html) ■CMU Face Expression Database (http://amp.ece.cmu.edu/projects/FaceAuthentication/download.htm) ■CMU Face Pose, Illumination, and Expression (PIE) Database (http://www.ri.cmu.edu/projects/project_418.html) ■CMU VASC Image Database (motion, road sequences, stereo, CIL’s stereo data with ground truth, JISCT, face, face expressions, car) (CMU VASC Image Database) ■Content-based Image Retrieval Database (Index of /groundtruth) ■Face Video Database of the Max Planck Institute for Biological Cybernetics (Welcome) ■FERET Database (frvt.org) ■FERET Color Database (The Color FERET Databasehttp://face.nist.gov/colorferet/ ) ■Georgia Tech Face Database (http://www.anefian.com/face_reco.htm) ■German Fingerspelling Database (http://www.anefian.com/face_reco.htm) ■Indian Face Database (http://http://www.cs.umass.edu/~vidit/IndianFaceDatabase) ■MIT-CBCL Car Database (Pedestrian Data) ■MIT-CBCL Face Recognition Database (CBCL FACE RECOGNITION DATABASE) ■MIT-CBCL Face Databases (CBCL SOFTWARE) ■MIT-CBCL Pedestrian Database (New Page 1) ■MIT-CBCL Street Scenes Database (CBCL StreetScenes Database Download Page:) ■NIST/Equinox Visible and Infrared Face Image Database (http://www.equinoxsensors.com/products/HID.html) ■NIST Fingerprint Data at Columbia (Link) ■ORL Database of Faces (The Database of Faces) ■Rutgers Skin Texture Database (http://www.caip.rutgers.edu/rutgers_texture/) ■The Japanese Female Facial Expression (JAFFE) Database (Japanese Female Facial Expression (JAFFE) Database ■The Ohio State University SAMPL Image Database (3D, still, motion) (http://sampl.ece.ohio-state.edu/database.htm) ■The University of Oulu Physics-Based Face Database (Center for Machine Vision and Signal Analysis) ■UMIST Face Database (http://images.ee.umist.ac.uk/danny/database.html) ■USF Range Image Data (with ground truth) (USF Range Image Database) ■Usenix Face Database (hundreds of images, several formats) (Link) ■UCI Machine Learning Repository (http://www1.ics.uci.edu/~mlearn/MLSummary.html) ■USC-SIPI Image Database (collection of digitized images) (SIPI Image Database) ■UCD VALID Database (multimodal for still face, audio, and video) (VALID Database) ■UCD Color Face Image (UCFI) Database for Face Detection (http://ee.ucd.ie/~prag/) ■UCL M2VTS Multimodal Face Database (http://www.tele.ucl.ac.be/PROJECTS/M2VTS/m2fdb.html) ■Vision Image Archive at UMass (sequences, stereo, medical, indoor, outlook, road, underwater, aerial, satellite, space and more) (SIPI Image Database) ■Where can I find Lenna and other images? (comp.compression Frequently Asked Questions (part 1/3)Section - [55] Where can I find Lenna and other images?) ■Yale Face Database (http://cvc.yale.edu/projects/yalefaces/yalefaces.html) ■Yale Face Database B (http://cvc.yale.edu/projects/yalefaces/yalefaces.html)


最后我附上我近期做的效果图,是基于视频中人脸检测与识别的,因为没有标准,公共的数据集,所以我就用室内场景剧作为训练数据,最后的效果很不错,希望以后有同学做人脸的,我们可以一起讨论,共同进步,谢谢!

有兴趣的朋友,可以看我上传的视频,谢谢!(发现检测过程还是有一些问题,主要是因为训练数据集不够)

网址:http://pan.baidu.com/s/1eR6ppQyy

密码:gs9g


额外还做了一些静态的人脸检测:

效果很不错,最近也在阅读“企鹅”公司做的人脸,在国际权威人脸识别数据库LFW上,腾讯优图实验室在无限制条件下人脸验证测试(unrestricted labeled outside data)中提交的最新成绩为99.80%,提升了上次99.65%的成绩,再次在这一测试中刷新纪录拔得头筹,参与测试的还有百度、Face++等团队。

很厉害,不愧是互联网三巨头之一,值得向他们学习!

我也展示下我做的一些小实验,效果也很好。


现在再来详细聊聊最近比较热火的人脸框架,都是基于深度学习基础之上,在该领域也得到了很高的重视。

一、ScaleFace

采用ResNet网络,输入单张图片。 在网络不同阶段引出分支,然后后接RPNFast R-CNN。 共有3个分支,每个分支只负责检测对应范围的人脸。

训练过程:

  • 每个分支只处理对应尺度的样本,其他样本直接忽略;
  • 输入图像最长边限定为小于等于1300;
  • IOU大于0.5认为是正样本,IOU处于 [0,0.1] 和 [0.1,0.3]的负样本按1:1选用;
  • 训练时proposal保留2000,测试时保留500。

二、Face R-CNN

主要改进点:

(1) Center loss

对于最后的二分类,在softmax的基础上增加了center loss。为了使得center loss均衡,一个mini batch中正负样本比例限制为1:1.

(2) Online Hard Example Mining (OHEM)

每次从正负样本中各选出loss最大的N个样本加入下次训练。

(3) Multi-Scale Training

为了弱化尺度影响(或者更好地检测小目标),训练阶段图片会经过不同尺度缩放。

效果:

三、Finding Tiny Face

左图: 直观来看,扩大感受野范围,可以有效帮助识别“small”人脸;(对于大的人脸,这点影响不是很大);

右图: 仅仅采用3倍感受野不能充分把握尺度变化,文章采用固定300像素的感受野效果则不错。

如上图,res*表示不同层级的特征,X越大表示感受野越大。

  • 增加更多的上下文信息(感受野)有助于检测;
  • 对于小人脸,483x483的感受野造成了性能下降,作者通过对比训练和测试性能认为是过拟合;
  • 对于大的人脸,更大的感受野带来的提升已经不是很明显。

结论: 不同尺度目标检测都使用同样大小的感受野。

效果:

四、Compact CascadeCNN

流程图:

五、MTCNN

Stage1: Proposal Net:

Stage2: Refine Net:

Stage3: Output Net:

还有很多人脸检测的框架,以后本平台会慢慢把总结的分享给大家,也感谢大家对我们的支持与关注,谢谢!


本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-11-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 计算机视觉战队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 实验结论
  • 两种信号及训练过程
  • 实验结论
  • 网络结构变化
相关产品与服务
人脸识别
腾讯云神图·人脸识别(Face Recognition)基于腾讯优图强大的面部分析技术,提供包括人脸检测与分析、比对、搜索、验证、五官定位、活体检测等多种功能,为开发者和企业提供高性能高可用的人脸识别服务。 可应用于在线娱乐、在线身份认证等多种应用场景,充分满足各行业客户的人脸属性识别及用户身份确认等需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档