雷锋网按:本文根据山世光在 CNCC 2016 可视媒体计算论坛上所做的报告《深度化的人脸检测与识别技术:进展与问题》编辑整理而来,在未改变原意的基础上略有删减。
山世光,中科院计算所研究员,中科院智能信息处理重点实验室常务副主任。主要从事计算机视觉、模式识别、机器学习等相关研究工作。迄今已发表CCF A类论文50余篇,全部论文被Google Scholar引用9000余次。曾应邀担任过ICCV,ACCV,ICPR,FG等多个国际会议的领域主席(Area Chair)。现任IEEE Trans. on Image Processing,Neurocomputing和Pattern Recogintion Letters等国际学术刊物的编委(AE)。研究成果曾获2005年国家科技进步二等奖和2015年度国家自然科学二等奖。2008年度中国科学院卢嘉锡青年人才奖获得者,2009年度北京市科技新星获得者,2009年获首届Scopus寻找未来科学之星银奖(信息领域共2名),2012年获得基金委“优青”支持。
今天我所做的报告的题目是《深度化的人脸检测与识别技术》,在过去三四年里,人脸识别领域非常快速地从非深度学习方法切换到了深度学习这样一个新的范式里面。
本次报告主要介绍最近几年在人脸识别领域几个关键流程上面,深度学习的应用情况。
主要给大家介绍这几部分内容:
人脸识别总体情况
人脸检测
面部特征点定位
SeetaFace开源引擎
全自动人脸识别系统流程
本质——对比两个照片是否是同一个人。
举例来说对于上图中两张照片,人脸识别需要去做的是计算其相似度是不是足够高。这个过程可以分为以下几个步骤:
第一步是要找到脸在哪里
第二步是找到五官的位置
第三步是把关键人脸区域提取出来
第四步是用特征提取器F把图像变成特征向量(y=F(x))
第五步对比向量y1、y2的相似度是否足够高,据此来进行判断
在这里面最核心的其实有三个步骤,第一个是找到脸在哪里,第二个是找到五官在哪里,第三个是f(x)函数的设置,这也是人脸识别系统中最本质的三个内容。
人脸识别近期发展的最大特点
人脸识别能在过去的三四年的时间里能有一个快速的发展是得益于深度学习。
在这期间有一个非常重要的变化是人脸识别变得和狗脸识别、猫脸识别没什么太大区别了。也就是说在技术上,不用再把人脸识别特别来看待了。
卷积神经网络(CNN)
在深度学习之后,我们发现深度学习对于人脸识别这项帮助非常大。为什么?其实是实现了深度化。
在计算机视觉领域,深度学习中应用得最好、最成功的就是卷积神经网络(CNN)。
卷积神经网络(CNN)变迁
事实上卷积神经网络不是2016年发明的,也不是2012年发明的,它大约是在20世纪80年代出现的,到1998年这期间出现了一些卷积神经网络的雏形。可以从上图中看到,1998年出现的卷积神经网络和当下的在本质上其实已经没什么区别了。
卷积神经网络实质上是对输入进行加权求和之后,去做一个非线性变化的过程。输入图像通过滤波器组进行非线性卷积,卷积后在每一层产生特征映射图,然后特征映射图中的值再进行加权求和并进行非线性变换。在此过程中这些像素在池化层被池化,最终得到输出值。
具体到人脸检测的问题,在深度学习技术出现之前,几乎所有人脸检测都是采用滑动窗口式的方法。
也就是说,我们会首先设计一个分类器。拿上图中图片举例来说,我们会设计一个40x40的窗口,然后去检测那个部分是不是人脸。此外我们还需要对图片进行缩放再进行检测,这个方式其实是2000-2012年以来主流的方法。
物体检测:内涵与总体思路
不管是人脸检测还是物体检测,都需要进行考虑的是这两个问题:
有没有?
在哪里?
2014年以来的变迁
“有没有”部分
从人脸特征——分类器学习“两步法”转变为特征和分类器End—to—End学习
从二类分类转变为多类分类
“在哪里&有多大?”部分
从Check所有可能位置和大小转变为只Check可能位置和大小或者回归位置和大小(更准确)
基于深度学习的物体检测
在过去的几年时间里出现了一系列的方法,包括
Region CNN系列
R-CNN——SPP R-CNN——Fast R-CNN——Faster R-CNN
回归位置
YOLO
传统方法与深度方法结合
FacenessNET
Cascade CNN(coarse-to-fine)
R-CNN
关键点:
Selective Search产生约2000个候选窗口
每个候选窗缩放到227*227(用CNN提取特征)
SVM分类
需要2000多次CNN过程,速度很慢。
SPP-Net
Fast R-CNN
Faster R-CNN
YOLO(You Only Look Once)
这个方法更加的简单粗暴一些
将输入图像划分为SxS grid
对grid cell预测
网络全连接层——张量
用NMS去除冗余
FacenessNET
Cascade CNN(coarse-to-fine)
物体(人脸)检测:总结与问题
小结:
深度学习方法带了性能上的大提升
Bounding Box Regression(BBR)兴起
样本组织方式的变革
问题:
高精度、全姿态时的速度问题
小尺度、大遮挡、复杂光照情况下可能漏检
深度级联回归
基于多级DCNN实现f函数(CVPR2013)
基于多级Auto-encoder实现f函数(ECCV2014)
对遮挡鲁棒性地特征点定位方法(CVPR2016)
在深度学习出现之前,和传统方法一致。(两步法)
人工(卷积)特征
特征变换
人脸识别测试集和性能的变迁
特别要提到的是学术界的里程碑(数据库):
ORL——FERET——FRGC v2.0——LFW
LFW人脸识别评测
LFW数据库来源于因特网上的数据,对于名人明星的图像进行识别。
过去三年错误率从5%下降到0.4%。
在深度学习出现之后,直接从图像开始学习特征。
过去2年的新进展
最开始将深度学习应用到人脸特征提取的是Facebook的DeepFace,使用一个8层的神经网络,对4000人的440万图像进行训练学习。
Google的FaceNet则是使用800万人的2亿张图像进行训练学习,这个数据量是及其庞大的。
我们有理由相信这样一个网络在如此庞大数据量训练之后,它的人脸识别能力是比普通人要好的。
待解决问题
人脸识别应用现状
1:N
配合照片检索应用,目前基本成熟
1:1验证
配合用户,可以应用
1:N+1
万级以上非配合用户,任重道远
SeetaFace Detector
SeetaFace Alignment
SeetaFace Identification
人脸检测与识别不再具有特殊性
深度模型(&大数据&高性能计算)极大推进了人脸识别能力,在一些(用户配合的)任务上能超过人眼
万人规模的黑名单视频监控场景尚不成熟
SeetaFace为大家提供了一个不错的baseline