人脸识别必读的N篇文章
一,人脸检测/跟踪
人脸检测/跟踪的目的是在图像/视频中找到各个人脸所在的位置和大小;对于跟踪而言,还需要确定帧间不同人脸间的对应关系。
1,
Robust Real-time Object Detection. Paul Viola, Michael Jones. IJCV 2004.
入选理由:
Viola的人脸检测工作使得人脸检测真正变得实时可用。他们发表了一系列文章,这篇是引用率最高的一篇。
2,
Fast rotation invariant multi-view face detection based on real Adaboost. Bo Wu,Haizhou Ai, Chang Huang, Shihong Lao. AFGR 2004.
人选理由:
自viola之后,有很多改进文章,这篇文章只是其中之一。之所以选择这篇,是因为其贡献点相对比较多:一是因为这篇文章第一次将real adaboost应用于物体检测,二是其提出了一个比较成熟实用的多姿态人脸检测框架,三是其提出的nest结构对cascade结构的改进确实有不错的效果。
3,
Tracking in Low Frame Rate Video: A Cascade Particle Filter with Discriminative Observers of Different Life Spans. Yuan Li, Haizhou Ai, Yamashita T., Shihong Lao. CVPR 2007.
入选理由:
人脸跟踪是人脸识别中非常重要的模块。这篇文章是比较好的将人脸检测模型与跟踪进行结合,将离线模型和在线模型结合的工作,而且获得了CVPR 2007 Best Student Paper,是中国大陆学生第一次获此殊荣。
二,人脸特征点定位
人脸特征点定位的目的是在人脸检测/跟踪获取的人脸区域的基础上,进一步,确定脸部特征点(眼睛、嘴巴中心点、眼睛、嘴巴轮廓特征点、器官轮廓特征点等)的位置。人脸特征点定位的基本思路,主要是将人脸局部器官的纹理特征和器官特征点之间的位置约束进行结合来进行处理。
4,
Active Shape Models-Their Training and Application. T. F. COOTES, C. J. TAYLOR, D. H. COOPER, AND J. GRAHA. COMPUTER VISION AND IMAGE UNDERSTANDING. 1995.
入选理由:
早期的人脸特征点定位,很多工作主要集中在定位眼球中心点和嘴巴中心点等两三个关键点上,但是,后来慢慢大家认为,引入更多的点,并加入相互约束会提高定位精度和稳定性。ASM是后来被大家所follow最多的将数十个脸部特征点的纹理和位置关系约束一起考虑来进行计算的模型,COOTES的这篇文章发表于1995年,绝对是开先河之作,绝对经典。
5,
Boosted Regression Active Shape Models. David Cristinacce and Tim Cootes. BMVC, 2007.
入选理由:
ASM相关改进的文章非常多,最值得一提的当然是AAM(也是cootes最早提出)模型,除此之外还有一个非常重要的思路,就是改进原文章基于边缘的纹理模型。个人认为,这篇文章中所给出的基于回归方式表示纹理模型的方式比基于分类表观模型的方法更有前途,因为是cootes的文章,自然就更应该被推荐。
6,
Face Alignment by Explicit Shape Regression. Xudong Cao, Yichen Wei, Fang Wen, Jian Sun. CVPR 2012.
入选理由:
这篇文章是上述提到的ASM相关改进的另外一个方向,就是对形状模型本身的改进。这篇文章没有用PCA去约束形状模型,而是基于训练样本的线性组合来约束形状。而且,其在alignment的效果(LFPW测试集)上是目前看到最好的,此外,这个方法的速度非常快。由于是MSRA孙剑组的文章,确实应该被关注更多。
三,人脸表示
人脸表示是指根据人脸特征点的位置,对人脸进行几何校正并割取人脸区域(归一化到固定大小)之后,得到最具有鉴别(区分)能力的特征的过程。
7,
Eigenfaces for recognition. M. Turk and A. Pentland. Journal of Cognitive Neuroscience. 1991.
入选理由:
这需要理由吗?基于PCA的特征脸是人脸识别最经典的算法之一,虽然今天PCA在实际系统中更多的是用来降维,而不是用来分类,但是这么经典的方法还是要关注的。其实,基于LDA的方法也非常经典,不过,考虑到篇幅有限,就不再列举了。
8,
Local Gabor Binary Pattern Histogram Sequence (LGBPHS):
A Novel Non-Statistical Model for Face Representation and Recognition
入选理由:
个人认为这可能是最接近于很多成熟商用系统思路的文章(不等同于实际系统就是这样)。在很多实际系统中,一个提取鉴别信息的框架就是PCA+LDA,用PDA进行降维避免LDA求解的矩阵奇异问题,然后用LDA提取更适合分类的特征;进一步,将各种原始特征(Gabor, LBP等)进行鉴别特征提取后进行决策级融合。此外,对人脸进行分块然后ensemble融合也是非常重要的提高系统效果的思路。
9,
Blessing of Dimensionality: High-dimensional Feature and Its Efficient Compression for Face Verification. Dong Chen. Xudong Cao. Fang Wen. Jian Sun. CVPR 2013.
入选理由:
LFW是目前最接近实际数据的人脸识别库,虽然其测试协议有一些不尽合理的地方,但是如果能在LFW上面取得非常好的效果,说明方法还是比较好的。而这篇MSRA 孙剑组发表在CVPR2013的文章,在LFW上面取得了93%的准确率(未引入外部数据的情况下)。文章中的一个是采用精确定位点作为参考对人脸进行多尺度、多局部区域的表示思路很值得借鉴,可以和各种表示方法结合。
10,
?
其实可以列在此处的论文非常多,有各种子空间方法的改进,有各种特征提取方法,有各种基于metric learning的方法,bunch graph(将gabor应用于人脸识别的经典工作),稀疏表示的方法,feature learning 的方法等等。但是,我都感觉不是特别满意。我总觉得,人脸表示方面的工作还做得远远不够,应该会有框架清晰简洁、易于实现、但效果绝佳的文章出现。现在的我会倾向于认为也许deep learning是一个方向。
其实尝试将deep learning用在人脸识别上面的工作已经有一些,但是结果都不是很惊艳(百度的工作没有公开结果),我列上一篇不够好但是效果勉强接近非deep learning方法的一篇:
Deep nonlinear metric learning with independent subspace analysis for face verification. X Cai, C Wang, B Xiao, X Chen, J Zhou. MM 2012.
供参考。
人脸识别在未来的一些可能方向:
1,深度学习在人脸方面的应用,目前已经看到deep learning在人脸表示和人脸特征点定位方面的工作,相信后续会有更多更好的工作出现;
2,大规模人脸搜索相关的应用近来开始被大家关注(比如最近百度上线的人脸搜索),这些应用中除了需要传统的人脸表示,还需要关注如何能够快速准确地在大规模人脸数据库中搜索到相似人脸,当然这部分工作可以借鉴其他视觉搜索中的方法,但人脸可能也会有自己的特殊性;
3,基于3D模型和具有深度信息的人脸识别的方法,在允许使用特殊设备的实际应用中,可以考虑用3D模型和深度信息来提高系统的稳定性;
4,在做人脸识别实际系统时,可以更关注姿态、遮挡、表情变化对于识别效果的影响,对于人脸光照问题,虽然之前学术界关注很多,但是对于实际数据(非实验室采集的光照模拟数据),可能基于大规模训练数据和feature learning就可以比较好的解决,反而是由于目前的人脸表示框架,对于大的姿态变化,遮挡以及表情变化引起的表观改变,很多情况下表现并不好,可能需要重新改变目前的人脸表示方式,比如采用类似推荐论文9中的方式,采用多个局部模型而不是一个整体模型来进行表示,还可以考虑一些人脸姿态/表情矫正方法;
5,学术界的朋友,鉴于目前LFW上面已经做到准确率95%(引入外部训练数据且无约束训练协议),可以考虑创建一个更大的人脸库(如果能达到真正意义上的大规模数据就更赞了),设计一个更加合理全面的评测协议,这必将成为一个非常有影响力的工作;
from: http://blog.sina.com.cn/s/blog_6ae183910101h4jr.html
人脸识别必读的N篇文章的更多相关文章
- fw:学好Python必读的几篇文章
学好Python必读的几篇文章 from:http://blog.csdn.net/hzxhan/article/details/8555602 分类: python2013-01-30 11:52 ...
- Python——学好Python必读的几篇文章
作为脚本语言Python上手容易,但要学好Python能写出一手漂亮的.Pythonic的Python代码并非一日之功,本文的目的在于推荐 一些优秀的Python相关的文章(至于书大家可以看dip.l ...
- AI人脸识别的测试重点
最常见的 AI应用就是人脸识别,因此这篇文章从人脸识别的架构和核心上,来讲讲测试的重点. 测试之前需要先了解人脸识别的整个流程,红色标识代表的是对应AI架构中的各个阶段 首先是人脸采集. 安装拍照摄像 ...
- python三步实现人脸识别
原文地址https://www.toutiao.com/a6475797999176417550 Face Recognition软件包 这是世界上最简单的人脸识别库了.你可以通过Python引用或者 ...
- MP算法、OMP算法及其在人脸识别的应用
主要内容: 1.MP算法 2.OMP算法 3.OMP算法的matlab实现 4.OMP在压缩感知和人脸识别的应用 一.MP(Matching Pursuits)与OMP(Orthogonal Matc ...
- html5与EmguCV前后端实现——人脸识别篇(一)
上个月因为出差的关系,断更了很久,为了补偿大家长久的等待,送上一个新的系列,之前几个系列也会抽空继续更新. 大概半年多前吧,因为工作需要,我开始研究图像识别技术.OpenCV在这方面已经有了很多技术积 ...
- C# 30分钟完成百度人脸识别——进阶篇(文末附源码)
距离上次入门篇时隔两个月才出这进阶篇,小编惭愧,对不住关注我的卡哇伊的小伙伴们,为此小编用这篇博来谢罪. 前面的准备工作我就不说了,注册百度账号api,创建web网站项目,引入动态链接库引入. 不了解 ...
- 人脸识别(初学篇)-VS2015+opencv3.2的配置
初学人脸识别,感觉安装也是一个很大的麻烦. 写在这里记录一下吧 一:先安装好我们需要的软件 首先安装Vs2015,在官网或者csdn搜一下应该找的到. 安装步骤没有太多讲究. 点击exe文件,我选择的 ...
- AI人脸识别SDK接入 — 参数优化篇(虹软)
引言 使用了虹软公司免费的人脸识别算法,感觉还是很不错的,当然,如果是初次接触的话会对一些接口的参数有些疑问的.这里分享一下我对一些参数的验证结果(这里以windows版本为例,linux.andro ...
随机推荐
- Java从入门到精通——数据库篇Oracle 11g服务详解
装上Oracle之后大家都会感觉到我们的电脑慢了下来,如何提高计算机的速度呢?我们应该打开必要的服务,关闭没有用的服务.下面是Oracle服务的详解: Oracle ORCL VSS Writer S ...
- return *this和return this的区别
别跟我说, return *this返回当前对象, return this返回当前对象的地址(指向当前对象的指针). 正确答案为:return *this返回的是当前对象的克隆(当然, 这里仅考虑返回 ...
- Hadoop2安装
http://wenku.baidu.com/view/fe1b2f22de80d4d8d15a4f6e.html http://wenku.baidu.com/view/e4607031581b6b ...
- 提高Linux上socket性能
在 开发 socket 应用程序时,首要任务通常是确保可靠性并满足一些特定的需求.利用本文中给出的 4 个提示,您就可以从头开始为实现最佳性能来设计并开发 socket 程序.本文内容包括对于 Soc ...
- LintCode-Unique Path II
Follow up for "Unique Paths": Now consider if some obstacles are added to the grids. How m ...
- UIGestureRecongnizer 手势拦截
在一个scrollview添加了一个tap的手势事件,然后在scrollview上添加了几个Button,在ios6,ios7 中两个点击事件相安无事,但在ios5中按钮却无法点击,究其原因是因为在i ...
- MYSQL存储过程实现in传入参数 where in('1','2')
android 服务器端开发中遇到这么一个问题: 突然发现将字符串传入到存储过程,参数为 '1','2' ,竟然执行无效 所以看到网上有在存储过程中直接拼凑sql的代码,今天也试了一下,可以执行了, ...
- python re 正则表达式[转]
01.#!/usr/bin/env python 02.# -*- coding: utf-8 -*- 03.import re 04. 05.def regex(): 06. str = 'abcd ...
- Ios8新特性-应用程序扩展
一.什么是应用程序扩展? 应用程序扩展不是一个应用,它是主体应用程序(containing app)中一个单独的包,并能生成单独的二进制文件供其他应用调用. 个人感觉,类似于WP中的启动器,把系统当个 ...
- mybatis集成spring的事务管理
第一 创建一个测试实体 public class Order { private int id; private String orderName; public Order(String order ...