欢迎来到网际学院,让您的头脑满载而归!

人脸识别知多少——人脸识别算法综述

发布日期:2017-08-21 23:00:59 来源:网际学院 阅读:832

提起人脸识别算法,首先必须提到LFW——一个人脸识别的公开测试集。在深度学习快速发展的初期(2014年左右),LFW是国内外人脸识别算法公司的擂台,facebook、百度、face++、商汤等一系列的企业以及学校纷纷刷榜,标榜自己的人脸识别算法天下第一。下面笔者带领大家来看一看lfw数据集到底是怎么样子的。

人脸识别知多少——人脸识别算法综述简介

LFW风云录

提起人脸识别算法,首先必须提到LFW——一个人脸识别的公开测试集。在深度学习快速发展的初期(2014年左右),LFW是国内外人脸识别算法公司的擂台,facebook、百度、face++、商汤等一系列的企业以及学校纷纷刷榜,标榜自己的人脸识别算法天下第一。下面笔者带领大家来看一看lfw数据集到底是怎么样子的。

LFW的测试集由6000对人脸图片组成,3000对属于同一个人,3000对属于不同人。这6000对测试对,每对计算一个得分,然后选定一个阈值,大于阈值为同一个人,小于阈值为不同人。这个阈值该如何选取呢?这里引进等错误率的概念,简单理解,选取同一个人分错的比例和不同人分错比例相等的阈值。我们平时看到的在LFW上识别率达到99%其实指的是,对这6000对判断的准确率达到了99%(即判断正确6000*0.99=5940对)。需要注意到LFW同一个人的标注中有5对是错误的,故理论上的最高准确率为(6000-5*2)/ 6000 = 0.998333

人脸识别知多少——人脸识别算法综述

LFW部分结果

随着深度学习的发展,在LFW上的结果也不断更新,如上表所示。笔者认为到现阶段(在LFW都是0.99+),LFW已经不能很好的体现人脸识别算法的能力,首先是LFW测试集本身量级太少,就6000对,0.1个百分点对应也就是6对图像;其次测试集为名人数据,有可能出现在训练数据中(爬虫处理等),例如中科院整理的训练数据集就有三个人和测试集一样;最后,对于国内的大多数厂家来说,实际应用的大多数还是中国人,在LFW数据集上表现好,在实际应用中效果不一定好,即算法在不同人种上表现是不一样的。

目前人脸识别比较权威的测试集是MS-Celeb-1M和megaface,在此上刷出成绩确实体现了算法能力。笔者认为,刷分是一方面,如果想实际应用,还是需要在应用场景中获取自己的测试集来测试,毕竟针对一个数据集来刷分会有很多trick,与实际应用还是略有不同,不要过分陷入刷分怪圈。

人脸识别通用框架

人脸识别的通用框架比较简单:

  1. 人脸检测,得到人脸图像在图像中的位置;

  2. 人脸对齐,一般是根据关键点的信息,将人脸图像进行仿射变换、缩放到统一大小(简单理解,例如根据人眼位置对齐);

  3. 特征提取,传统方式或是深度学习方法,本质是用特征对人脸图像进行表达;

  4. 特征比对,常见的是计算一个距离,例如用cos计算夹角;

人脸识别算法一览

《Blessing of Dimensionality: High-dimensional Feature and Its Efficient Compression for Face Verification》,简称high LBP(0.9517),深度学习算法前比较经典的算法。对图像分块,各种overlap,最后把LBP特征堆积起来(维度10W+),经行LDA、PCA处理,然后计算距离。

人脸识别知多少——人脸识别算法综述

Joint Basyesian

《 Bayesian Face Revisited: A Joint Formulation 》简称Joint Bayesian(0.9242),用的是最大化后验概率的方法,其中公式笔者记得以前推了好久,不详细介绍。目前有很多在深度学习提取特征之后继续用Joint Bayesian提高的方法。

《 Deepface: Closing the gap to humal-level performance in face verification 》,简称DeepFace(0.9735)。FaceBook基于3D人脸模型的设计,400W的人脸训练数据对当时来说也是属于海量数据了,也让业界清晰的认识到,来吧,推数据吧!

DeepID三部曲系列,重点是《DeepID3: Face Recognition with Very Deep Neural Networks》,简称DeepID3(0.9745),用到了VGG和googleNet的网络结构。

《 FaceNet: A Unified Embedding for Face Recognition and Clustering 》 简称FaceNet,FaceNet的核心思想来说就是triplet loss。

《 A Discriminative Feature Learning Approach for Deep Face Recognition 》简称Center Loss,这个也是经过很多人实验认证确实work的一种方式。

《 Large-Margin Softmax Loss for Convolutional Neural Networks 》简称L-Softmax,在softmax上进行处理,目的是让不同类分的更开。

《 SphereFace: DeepHypersphereEmbeddingforFaceRecognition 》简称A-Sodtmax,是在L-Softmax上的改进。A-softmax loss简单讲就是在large margin softmax loss的基础上添加了两个限制条件||W||=1和b=0,使得预测仅取决于W和x之间的角度。

人脸识别知多少——人脸识别算法综述

A-Softmax

最重要的ResNet笔者没有单独列出来,毕竟ResNet是通杀的,笔者就不刻意介绍。介绍了这么多,其实笔者认为最重要的还是数据。大量的数据加上ResNet加上center loss 或是 其他loss实验,效果不会差,剩下的细节就是各位在炼丹中的经验和trick了。


人脸识别知多少——人脸识别算法综述
人脸识别知多少——人脸识别算法综述
Copyright oneie ©2014-2017 All Rights Reserved. 所有资料来源于互联网对相关版权责任概不负责。如发现侵犯了您的版权请与我们联系。 网际学院 版权所有
免责声明  商务合作及投稿请联系 QQ:86662817