人脸识别相关算法总结

第一部分:人脸识别端到端框架

第二部分:人脸识别之人脸检测算法

第三部分:人脸识别之人脸对齐算法

第四部分:目标检测

第一部分:人脸识别端到端框架

1、DeepFace--Facebook的人脸识别

DeepFace与之后的方法的最大的不同点在于,DeepFace在训练神经网络前,使用了对齐方法。论文认为神经网络能够work的原因在于一旦人脸经过对齐后,人脸区域的特征就固定在某些像素上了,此时,可以用卷积神经网络来学习特征。

参考网址:http://blog.csdn.net/stdcoutzyx/article/details/46776415

2、DeepID人脸识别算法之三代

首先是卷积神经网络的作用,虽说之前听说过卷积神经网络既可以分类,也可以学习特征,但ImageNet上的卷积神经网络都是分类的,这次终于见到不关注分类错误率而关注特征的卷积神经网络。其次,卷积神经网络的改进方式,无非如下几种:增大网络深度和宽度,增加数据,将网络隐含层连接到前面几层来,添加其他的信号。再次,也是最重要的,就是DeepID在发展过程中对输出向量的分析,尤其是DeepID2+,神经网络的各个单元一直是无法解释的,但这次作者不仅试图去发现规律,还基于规律做出了一些改动,比如二值化。最后,卷积神经网络的鲁棒性真的很厉害。

参考网址:http://blog.csdn.net/stdcoutzyx/article/details/42091205

3、FaceNet--Google的人脸识别

  • 三元组的目标函数并不是这篇论文首创,在之前的一些Hash索引的论文中也见过相似的应用。可见,并不是所有的学习特征的模型都必须用softmax。用其他的效果也会好。
  • 三元组比softmax的优势在于
    softmax不直接,(三元组直接优化距离),因而性能也不好。

softmax产生的特征表示向量都很大,一般超过1000维。

  • FaceNet并没有像DeepFace和DeepID那样需要对齐。
  • FaceNet得到最终表示后不用像DeepID那样需要再训练模型进行分类,直接计算距离就好了,简单而有效。
  • 论文并未探讨二元对的有效性,直接使用的三元对。

参考网址:http://blog.csdn.net/stdcoutzyx/article/details/46687471

4、CenterLoss(A Discriminative Feature Learning Approach for Deep Face Recognition)

和metric learning的想法一致,希望同类样本之间紧凑,不同类样本之间分散。现有的CNN最常用的softmax损失函数来训练网络,得到的深度特征通常具有比较强的区分性,也就是比较强的类间判别力。关于softmax的类内判别力,作者在文章中给了toy example,很直观的理解。(16年ECCV的文章)

参考网址:http://blog.csdn.net/yang_502/article/details/72792786

第二部分:人脸识别之人脸检测算法

1、人脸检测之DDFD(Deep Dense Face Detector)

DDFD(Deep Dense Face Detector)是一种基于AlexNet进行微调(finetune)改进的一种深度学习的网络模型。是雅虎公司2015年的作品,并发表在了cvpr,论文名为Multi-view Face Detection Using Deep Convolutional Neural Networks。可以实现基于多角度,遮挡,关照下的人脸检测。是一种unconstrain的人脸检测算法。

传统的人脸检测途径有3种:

A、基于Cascade级联分类器的人脸检测,例如Viola Jones,NPD(Normalized Pixel Difference)等。

B、基于DPM(deformable part models)的人脸检测,即将人脸分割成好几个部件进行检测的算法,例如DPM。

C、基于神经网络的方法,例如,DDFD,RCNN等

该模型由5个卷积层,3个全连接层组成,在最后一个全连接层直接输出,没有经过SVM分类器处理。

参考网址:http://blog.csdn.net/qq_14845119/article/details/52564519

2、PICO,NPD算法

Pico(Pixel Intensity Comparison-based Object detection)发表于2014年,它也继承于Viola-Jones算法并对其做了一部分改进,最大的不同在于特征提取方式,不同于Viola-Jones的Haar特征,pico则是提取点对特征,对两个像素点进行对比。实验表明这种特征比Haar特征更为有效,且运算时间更短。

pico的亮点
高运行速度、低模型尺寸
对图像无需预处理
无需计算积分图、HOG梯度直方图、图像放大、或其他的数据结构转换
所有的二叉决策树都基于同一种特征类型
对稍作修改就可以检测倾斜人脸

不同于pico的Gentle-boost结构,NPD采用soft-cascade级连结构,在每一层过滤负例图片。

算法采用三层架构模式:

最外层是一个wraper,用于调用训练,图片检测与实时监测。中间层是Detector容器,其成员变量包含了model信息,成员函数包含了窗口检测、模型读写,以及训练决策树stage的一系列操作。最内层是单棵树的训练内核,代码精简高效,在训练过程中频繁掉用,迭代训练单棵树,最后组成检测器的多层stage。

三层架构之外,数据单独存储,不依托于任意一层,在每层之间传递调用,保持着良好的独立性,权值与得分以及图片信息分为正例负例分别保存,之间相互独立又有着一致的类型,使得操作简便,训练流畅。

参考网址:http://blog.csdn.net/u010333076/article/details/51397332

3、人脸检测:MTCNN

相比于R-CNN系列通用检测方法,本文更加针对人脸检测这一专门的任务,速度和精度都有足够的提升。R-CNN,Fast R-CNN,FasterR-CNN这一系列的方法不是一篇博客能讲清楚的,有兴趣可以找相关论文阅读。类似于TCDCN,本文提出了一种Multi-task的人脸检测框架,将人脸检测和人脸特征点检测同时进行。论文使用3个CNN级联的方式,和Viola-Jones类似,实现了coarse-to-fine的算法结构。

参考网址:http://blog.csdn.net/tinyzhao/article/details/53236191

4、人脸识别之人脸检测(十五)--改进版VJ人脸检测(LBP特征,VISAPP2017)

使用诸如卷积神经网络的复杂技术,计算机视觉几乎已经解决了在野外的人脸检测课题。相反,许多像opencv这样的开源计算机视觉框架还没有切换到这些复杂的技术,并且往往依赖于成熟的人脸检测算法,比如V-J所建议的级联分类流程。在FDDB等公共数据集上,这些基本面部检测器的准确率保持在较低水平,主要是由于假阳性的检测数量较多。我们提出了对现存的OpenCV人脸检测模型训练流水线的几种改进措施。我们改进了训练样本的生成和标注过程,并应用了主动学习(activelearning)策略。这大大提高了FDDB数据集人脸检测的准确性,缩小了基于CNN人脸检测的精度差距。这些提出的改进使我们为OpenCV提供了更先进的人脸检测模型,在可接受的recall下实现非常高的精度,而recall和presicion两个必要的条件使得进一步的处理成为可能,比如人员识别。

参考网址:http://blog.csdn.net/app_12062011/article/details/78884186

第三部分:人脸识别之人脸对齐算法

1、人脸对齐之GBDT(ERT)算法解读

One Millisecond Face Alignment with an Ensemble of Regression Trees算法(以下简称GBDT)是一种基于回归树的人脸对齐算法,这种方法通过建立一个级联的残差回归树(GBDT)来使人脸形状从当前形状一步一步回归到真实形状。每一个GBDT的每一个叶子节点上都存储着一个残差回归量,当输入落到一个节点上时,就将残差加到改输入上,起到回归的目的,最终将所有残差叠加在一起,就完成了人脸对齐的目的。(2014CVPR

参考网址:http://blog.csdn.net/jiajinrang93/article/details/72297975

2、JDA算法(Joint Cascade Face Detection and Alignment)

一个应用比较广泛的人脸检测方法,Viola-Jones检测器是基于以下两个原则进行检测的:

  1. 逐步提升的级联结构;
  2. 简单的特征。这种方法在日常生活场景中效果不甚理想。

参考网址:http://blog.csdn.net/app_12062011/article/details/78662348

3、人脸对齐之LBF(Local Binary Features)

基于LBF方法的人脸对齐,出自Face Alignment at3000 FPS via Regressing Local Binary Features,由于该方法提取的是局部二值特征(LBF),所以特征提取这个过程速度非常快,导致整个的算法都速快相当快,论文作者的LBF fast达到了3000fps的速度,网上热心网友分享的程序也达到了近300fps的速度,绝对是人脸对齐方面速度最快的一种算法。因此,好多网友也将该方法称为,3000fps。

[摘录]整体来看,其实 ,ESR是基础版本的形状回归,ERT将回归树修改为GBDT,由原始的直接回归形状,改进为回归形状残差,而LBF,是加速特征提取,由原来的像素差分特征池,改为随机选择点。

参考网址:http://blog.csdn.net/qq_14845119/article/details/53575091

4、人脸对齐之SDM(Supervised Descent Method)

SDM(Supervised Descent Method)是一种监督下降方法,属于解决非线性最小化NLS(Non-linear Least Squares)问题的一种方法。

解决非线性最优化问题通常有2个难点,

  1. 方程不可微,或者计算量太大
  2. Hessian矩阵太大,或者不是正定矩阵

基于这样的难点,作者提出了自己的SDM方法,可以用于解决上述的问题,并成功的用次方法解决了人脸对齐中关键点的回归问题,取得了state-of-the-art的效果。

参考网址:http://blog.csdn.net/qq_14845119/article/details/53520847

人脸对齐SDM:http://blog.csdn.net/huneng1991/article/details/51901912

第四部分:目标检测

1、DPM(Deformable Parts Model)

DPM是一个非常成功的目标检测算法,连续获得VOC(Visual Object Class)07,08,09年的检测冠军。目前已成为众多分类器、分割、人体姿态和行为分类的重要部分。2010年Pedro Felzenszwalb被VOC授予"终身成就奖"DPM可以看做是HOG(Histogrrams of Oriented Gradients)的扩展,大体思路与HOG一致。先计算梯度方向直方图,然后用SVM(Surpport Vector Machine )训练得到物体的梯度模型(Model)。有了这样的模板就可以直接用来分类了,简单理解就是模型和目标匹配。DPM只是在模型上做了很多改进工作。

参考网址:http://blog.csdn.net/ttransposition/article/details/12966521

Ross Girshick (rbg): http://www.rossgirshick.info/

2、积分通道特征(integral channel features)

目标检测算法的性能主要受到两个因素的制约:学习算法和特征描述算子。积分通道特征(作者自创的词汇,后面会详述)主要从特征描述的角度来探讨解决问题的可能性。积分通道特征(integral channel features)的大概思路是:通过对输入图像做各种线性和非线性的变换,诸如局部求和、直方图、haar-like及它们的变种之类的特征便可以通过积分图来快速计算出来。

参考网址:http://blog.csdn.net/carson2005/article/details/8455837

参考资料:http://blog.csdn.net/app_12062011/article/category/7337128

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: