上半年跨度到下半年之后,深度学习又进一步推送到了AI的顶端,很多领域都开始涉及到Deep Learning,而在人脸领域,已经被广泛应用,今天本平台再一次详细说说人脸领域的一些知识,想进一步让更多人的有进一步深入的熟知!
最近因为种种原因,这方面的知识有得到大家的认可和对其有很大的兴趣,所以平台今天再一次分享这领域知识,让已明白的人更加深入理解,让初学者有一个好的开端与认知,谢谢大家对本平台的支持!
让我开始说说人脸这个技术,真的是未来不可估计的IT技术,不知道未来会有多少企业为了这个技术潜心研究,现在就来看看最近的技术和未来的发展吧!
我先大概说下遇到的一些问题:
Ø 图像质量:人脸识别系统的主要要求是期望高质量的人脸图像,而质量好的图像则在期望条件下被采集。图像质量对于提取图像特征很重要,因此,即使是最好的识别算法也会受图像质量下降的影响;
Ø 照明问题:同一张脸因照明变化而出现不同,照明可以彻底改变物体的外观;
Ø 姿势变化:从正面获取,姿势变化会产生许多照片,姿态变化难以准确识别人脸;
Ø 面部形状/纹理随着时间推移的变化:有可能随着时间的推移,脸的形状和纹理可能会发生变化;
Ø 相机与人脸的距离:如果图像是从远处拍摄的,有时从较长的距离捕获的人脸将会遭遇质量低劣和噪音的影响;
Ø 遮挡:用户脸部可能会遮挡,被其他人或物体(如眼镜等)遮挡,在这种情况下很难识别这些采集的脸。
就先说这些问题吧,其实在实际生活中,还有更多的问题需要去解决,但是上述所说的问题是典型且主要的待解决问题,也是现在大家比较关注的一些问题。读者您可以自己再去总结一些,其实很easy!
在DL没有出现之前,大家都是在用传统的机器算法和统计学的算法来对以上问题进行研究,仔细想想,该领域的领头人真的很厉害,能做出那么多经典的算法,下面我先简单介绍几个典型的算法框架:
1) 基于Adaboost人脸检测
Adaboost人脸检测算法,是基于积分图、级联检测器和Adaboost算法的方法,该方法能够检测出正面人脸且检测速度快。其核心思想是自动从多个弱分类器的空间中挑选出若干个分类器,构成一个分类能力很强的强分类器。
缺点:而在复杂背景中,AdaBoost人脸检测算法容易受到复杂环境的影响,导致检测结果并不稳定,极易将类似人脸区域误检为人脸,误检率较高。
2) 基于特征的方法(引用“Summary of face detection based on video”)
基于特征的方法实质就是利用人脸的等先验知识导出的规则进行人脸检测。
3) 基于模板的方法
基于模板匹配的方法的思路就是通过计算人脸模板和待检测图像之间的相关性来实现人脸检测功能的,按照人脸模型的类型可以分为两种情况:
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相连,鉴于卷积神经网络层数越高视野域越大的特性,这种连接方式能够既考虑局部的特征,又考虑全局的特征。
DeepID2
相对于DeepID有了较大的提高。
其主要原因在于在DeepID的基础上加入了验证信号。详细来说。原本的卷积神经网络最后一层softmax使用的是Logistic Regression作为终于的目标函数,也就是识别信号;但在DeepID2中,目标函数上加入了验证信号。两个信号使用加权的方式进行了组合。
识别信号公式例如以下:
验证信号公式例如以下:
因为验证信号的计算须要两个样本,所以整个卷积神经网络的训练过程也就发生了变化,之前是将所有数据切分为小的batch来进行训练。 如今则是每次迭代时随机抽取两个样本,然后进行训练。
得到的结果例如以下:
能够发现,在lambda=0.05的时候,类间方差差点儿不变,类内方差下降了非常多。 这样就保证了类间区分性,而降低了类内区分性。
DeepID2+
DeepID2+有例如以下贡献,第一点是继续更改了网络结构;第二点是对卷积神经网络进行了大量的分析,发现了几大特征。包含:+ 神经单元的适度稀疏性,该性质甚至能够保证即便经过二值化后,仍然能够达到较好的识别效果;+ 高层的神经单元对人比較敏感,即对同一个人的头像来说。总有一些单元处于一直激活或者一直抑制的状态。DeepID2+的输出对遮挡很鲁棒。
相比于DeepID2,DeepID2+做了例如以下三点改动:
DeepID3
DeepID3有两种不同的结构,分别为DeepID3 net1,DeepID3 net2。相对DeepID2+,它的层数更多,网络更深。同时还借鉴了VGG和GoogLeNet,引入了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网络,输入单张图片。 在网络不同阶段引出分支,然后后接RPN和Fast R-CNN。 共有3个分支,每个分支只负责检测对应范围的人脸。
训练过程:
二、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越大表示感受野越大。
结论: 不同尺度目标检测都使用同样大小的感受野。
效果:
四、Compact CascadeCNN
流程图:
五、MTCNN
Stage1: Proposal Net:
Stage2: Refine Net:
Stage3: Output Net:
还有很多人脸检测的框架,以后本平台会慢慢把总结的分享给大家,也感谢大家对我们的支持与关注,谢谢!