『人脸识别系列教程』1·目录与概述

度量学习 同时被 2 个专栏收录
3 篇文章 0 订阅
12 篇文章 0 订阅

原文出处:https://zhuanlan.zhihu.com/FaceRec

目录

本系列专栏将解析基于深度学习的人脸识别相关的关键性论文,从2014年DeepFace开始到最新的算法。还介绍了用于人脸识别的损失函数:基于欧几里得距离的损失函数(Contrastive Loss、Triplet Loss、Center Loss);基于Angular Margin相关的损失函数(L-Softmax Loss、A-Softmax Loss、COCO Loss、CosFace Loss、ArcFace Loss)等。 基于深度学习的人脸识别发展历史

  • 2014年DeepFace和DeepID系列都是主要先训练Softmax多分类器人脸识别框架;然后抽取特征层,用特征再训练另一个神经网络、孪生网络或组合贝叶斯等人脸验证框架。想同时拥有人脸验证和人脸识别系统,需要分开训练两个神经网络。但线性变换矩阵W的大小随着身份数量n的增加而线性增大。

  • DeepFace、DeepID框架为 CNN+Softmax,网络在第一个FC层形成判别力很强的人脸特征,用于人脸识别。

  • DeepID2、DeepID2+、DeepID3都采用 CNN+Softmax+Contrastive Loss,使得同类特征的L2距离尽可能小,不同类特征的L2距离大于某个间隔。

  • 2015年FaceNet提出了一个绝大部分人脸问题的统一解决框架,直接学习嵌入特征,然后人脸识别、人脸验证和人脸聚类等都基于这个特征来做。FaceNet在 DeepID2 的基础上,抛弃了分类层,再将 Contrastive Loss 改进为 Triplet Loss,获得类内紧凑和类间差异。但人脸三元组的数量出现爆炸式增长,特别是对于大型数据集,导致迭代次数显著增加;样本挖掘策略造成很难有效的进行模型的训练。

  • 2017年《In Defense of the Triplet Loss for Person Re-Identification》提出了 Soft-Margin 损失公式替代原始的 Triplet Loss 表达式,并引进了 Batch Hard Sampling。

  • 2017年Wu, C等从导函数角度解释了为什么 Non-squared Distance 比 Squared-distance 好,并在这个 insight 基础上提出了 Margin Based Loss。此外,他们还提出了 Distance Weighted Sampling。文章认为 FaceNet 中的 Semi-hard Sampling,Deep Face Recognition 中的 Random Hard 和 Batch Hard 都不能轻易取到会产生大梯度(大 loss,即对模型训练有帮助的 triplets)。

  • 2015年VGGNet为了加速 Triplet Loss 的训练,先用传统的 softmax 训练人脸识别模型,因为 Classficiation 信号的强监督特性,模型会很快拟合;之后移除Classificiation Layer,用 Triplet Loss 对模型进行特征层 finetune。

  • 2016年Center Loss为每个类别学习一个中心,并将每个类别的所有特征向量拉向对应类别中心,根据每个特征向量与其类别中心之间的欧几里得距离,以获得类内紧度;而类间分散则由Softmax loss 的联合惩罚来保证。然而,在训练期间更新实际类别中心非常困难,因为可供训练的人脸类别数量最近急剧增加。

  • 2017年COCO Loss,归一化了权值c,归一化了特征f,并乘尺度因子,在LFW上达到99.86%;

  • 2017年SphereFace提出A-Softmax,是L-Softmax的改进,提出了角度间隔惩罚,又归一化了权值W,让训练更加集中在优化深度特征映射和特征向量角度上,降低样本数量不均衡问题。

  • 《Learning towards minimum hyperspherical energy》又说了它的损失函数需要一系列近似才能计算出来,从而导致网络训练不稳定。为了稳定训练,他们提出混合Softmax loss损失函数,经验上,softmax loss 在训练过程中占主导地位,因为基于整数的乘性角度间隔使得目标逻辑曲线非常陡峭,从而阻碍了收敛。

  • 2018年CosFace直接将cosine间隔惩罚添加到目标逻辑回归中,采用加法余弦间隔,cos(θ)-m,归一化特征向量和权重。与SphereFace相比,它获得了更好的性能,更容易的实现,减少了softmax loss联合监督的需要。

  • 2018年ArcFace提出加性角度间隔损失,θ+m,还归一化特征向量和权重,几何上有恒定的线性角度margen。直接优化弧度,为了性能的稳定,ArcFace不需要与其他loss函数实现联合监督。

  • 2018年MobileFaceNets,MobileNetV2+ArcFace Loss,轻量化模型。

目录 人脸识别概述 机器学习经典损失函数 人脸识别损失函数(上)基于欧几里得距离 人脸识别损失函数(下)基于Angular Margin 1 DeepFace 2 DeepID 3 DeepID2 4 DeepID2+ 5 DeepID3 6 FaceNet 7 VGGFace 8 SphereFace 9 CosFace 10 ArcFace

 

概述

FR的任务、系统结构、特征发展、损失函数发展、骨干网发展、数据集发展和训练测试数据集举例、孪生网络、人脸识别损失函数 1. FR的任务、结构、特征发展、损失函数发展、骨干网发展 人脸识别任务分类(FR,Face Recognition) (1)1:1(人脸验证)

  • 1:1一般叫face verification任务,是二分类 (e.g., comparing one face to another)

  • Face Verification(人脸验证;人脸确认;人脸校验) = 验证你是不是你? (1:1 matching)

  • 在互联网买机票、车票,医院挂号,政府惠民工程项目,以及各种证券开户、电信开户、互联网金融开户都会用到

(2)1:N(人脸识别)

  • 1:n一般叫face identification任务,是多分类 (e.g., searching for a face in a database of many faces)

  • Face Identification(人脸识别) = 找出你是谁? (1:n matching)

  • 跟1:1的A/B两张照片比对最大的区别是A/B A/C A/D……多个1:1计算,这个最大的问题是一旦BCD总和数量越大计算速度越慢,而总和超过20万,就回出现多个相似结果(20万人这个大数会导致有不少人长相相似),需要人工辅助定位。

  • 主要用于人脸检索、排查犯罪嫌疑人、失踪人口的全库搜寻、一人多证的重复排查,以此相似度列出相应的结果,可以大大提高排查效率。

  • 1:1的实际使用场景是更加受限而单一的,而1:n的实际使用场景更加wild、更加不可控。因此要到达较高的可用性,1:1会更加容易,而1:n会更难一些。

(3)N:N

  • N:N 该算法实际上是基于1:N的算法,输入多个求解结果。比如视频流的帧处理所用,对服务器的计算环境要求严苛

(4)人脸聚类

  • 寻找类似的人?

人脸识别的挑战

  • 类间差别(Intra-personal variation)

  • 类内差别(Inter-personal variation)

深度人脸识别系统

  • 首先,人脸检测器用于定位人脸。 然后,人脸与标准化的规范坐标对齐。 最后, FR模块执行人脸识别。

  • FR模块的人脸防欺骗(anti-spoofing)可识别人脸是否有效或是否有欺骗性;人脸处理在训练和测试之前处理识别困难之处;

  • 在训练时,用不同的架构和损失函数提取具有判别性的深层特征;当提取测试数据的深层特征后,使用人脸匹配方法进行特征分类。

  • 下图中列举了数据处理、结构设计、损失函数和人脸匹配等方面的一些重要方法

  • Deep Face Recognition: A Survey. Mei Wang,Weihong Deng. 201804

FR特征表示的发展

  • 在20世纪90年代和21世纪初,整体方法主导了FR

  • 在21世纪初和21世纪10年代,基于局部特征的FR和基于学习的局部描述符相继问世

  • 2014年,DeepFace和DeepID实现了最先进的精度,研究重点已转向基于深度学习的方法。

FR损失函数的发展

  • 2014年的Deepface和DeepID标志着基于深度学习的FR诞生,用的是Softmax loss

  • 2015年之后,基于欧氏距离的损失在损失函数中一直扮演着重要的角色,如对比损失(Contrastive loss)、三元组损失(Triplet loss)、中心损失(Center loss)

  • 2017年,特征和权重归一化(Feature and weight normalization)也开始显示出优异的性能,这导致了softmax变种的研究,如L2 softmax

  • 在2016年和2017年,Large margin loss进一步推动了大间隔特征学习的发展,如L-softmax、A-softmax、Cosface、Arcface

红、绿、蓝、黄分别代表基于softmax的深度方法、基于欧式距离的损失方法、基于softmax变种的方法、基于角/余弦的间隔损失方法。

FR骨干网络的发展

  • 深度FR的体系结构始终遵循深度对象分类的网络结构,由AlexNet演化到SENet

2. FR的数据集 FR数据集的演变

  • 2007年之前,FR的早期工作集中在约束的和小规模数据集。

  • 2007年引入LFW数据集,标志着无约束条件下FR的开始。从那时起,设计了更多具有不同任务和场景的测试数据库。

  • 2014年CASIA-Webface提供了第一个广泛使用的大规模公共训练数据集。

  • 红色矩形表示训练数据集,其他颜色矩形表示具有不同任务和场景的测试数据集

用于训练常用的FR数据集

用于测试的常用FR数据集

数据集列举 LFW 人脸识别数据集

  • 无约束自然场景人脸识别数据集,该数据集由13323张互联网名人在自然场景(不同朝向、表情和光照环境)下的人脸图片组成。共有5749个名人,其中有1680人有2张或2张以上人脸图片,只有85人拥有超过15张图片,4069人只有1张图片。每张人脸图片都有唯一的姓名ID和序号加以区分。

  • LFW数据集主要测试人脸识别的准确率。该数据库从中随机选择了6000对人脸组成了人脸辨识图片对,其中3000对属于同一个人2张人脸照片, 3000对属于不同的人每人1张人脸照片。

  • http://vis-www.cs.umass.edu/lfw/

FDDB 人脸检测数据集

  • 无约束自然场景人脸检测数据集,该数据集包含在从各个不同自然场景拍摄的2845幅图像中的5171个人脸。每个人脸都有其规定的坐标位置。

  • FDDB数据集主要测试人脸检测的准确率。人脸识别算法需要在该数据集每张图像上进行人脸检测,对检测到的人脸进行位置标定。然后根据数据集本身给出的正确答案计算正确检出人脸数与误检人脸数而评判人脸检测算法的好坏。

  • http://vis-www.cs.umass.edu/fddb/

CelebA(CelebFaces,CelebFaces+) 人脸属性识别数据集

  • Large-scale Celeb Faces Attributes (CelebA) Dataset由香港中文大学汤晓鸥教授实验室公布的大型人脸识别数据集,主要用于人脸属性的识别。202599张人脸图片,10177个身份,以及5个地标位置,每张图片40个二进制属性注解。

YouTube Faces(YTF)

  • YouTube Video Faces是用来做人脸验证的。在这个数据集下,算法需要判断两段视频里面是不是同一个人。有不少在照片上有效的方法,在视频上未必有效/高效,视频图像质量较差。该数据集包含3,425段视频中的1,595个人。 最短片段持续时间为48帧,最长片段为6,070帧, 视频片段的平均长度为181.3帧。

CASIA-WebFace

  • Chinese Academy of Sciences (CASIA),第一个广泛使用的FR大规模公共训练数据集。49万张图片,1万个人。

IJB-A 数据集

  • IJB-A (IARPA Janus Benchmark A) 数据集中不仅包括被摄对象的静态图像而且同时也包括被摄者的视频片段。因为这个特点,引入了模板的概念:指在无约束条件下采集的所有感兴趣面部媒体的一个集合。该媒体集合不仅包括被拍摄者的静态图像也包括视频片段。

  • 数据集中的所有媒体都是在完全无约束环境下采集的。很多被拍摄者的面部姿态变化巨大,光照变化剧烈以及拥有不同的图像分辨率。

  • 不足是该数据集的规模小,IJB-A数据则只包含来自500个对象的5396幅静态图像和20412帧视频数据。

MegaFace 数据集

  • 美国华盛顿大学发布的百万级人脸数据MegaFace数据集,包括690572个对象和约4.7百万张图像,将人脸数据的规模推向了一个高度。

  • 这个数据集方针设定不同,其内容是几十位互联网名人的图片再加上普通人的1百万张图片作为干扰数据。相比人脸识别,更倾向于在大噪声下的人脸验证,并且数据的分布同样不平衡,平均每个对象只有7幅图像,同一对象内人脸数据的变化小。

MS-Celeb-1M 数据集

  • 微软亚洲研究院发布,该数据集包含10万个对象和约1千万张图像。 这是迄今最大规模的人脸识别数据集,尽管规模很大但数据分布不平衡且大姿态的面部数据占比少且存在不少的噪声数据。

  • 从1M个名人中,根据他们的受欢迎程度,选择100K个。然后,利用搜索引擎,给100K个人,每人搜大概100张图片。共100K╳100=10M个图片。测试集包括1000个名人,这1000个名人来自于1M个明星中随机挑选。而且经过微软标注。每个名人大概有20张图片,这些图片都是网上找不到的。

  • MSR IRC是目前世界上规模最大、水平最高的图像识别赛事之一,MSRA(微软亚洲研究院)图像分析、大数据挖掘研究组组长张磊发起,每年定期举办。

3. 孪生网络架构

  • 孪生网络(Siamese network)是连体的神经网络,孪生架构(Siamese Architecture)是一种框架,神经网络的“连体”是通过共享权值来实现的。Siamese指两个暹罗连体人胞胎。孪生神经网络用于处理两个输入"比较类似"的情况,如计算两个句子或者词汇的语义相似度。

  • 左右两个神经网络的权重是一模一样的,甚至代码实现时可以是同一个网络,不用实现另外一个,因为权值都一样,两边可以是lstm或者cnn。

  • 伪孪生神经网络(pseudo-siamese network):如果左右两边不共享权值,而是两个不同的神经网络,就是,。它两边可以是不同的神经网络(如一个是lstm,一个是cnn),也可以是相同类型的神经网络。伪孪生神经网络适用于处理两个输入"有一定差别"的情况,如验证标题与正文的描述是否一致(标题和正文长度差别很大),或者文字是否描述了一幅图片(一个是图片,一个是文字)。

  • 孪生神经网络的用途是衡量两个输入的相似程度。将两个输入feed进入左右两个神经网络,这两个神经网络分别将输入映射到新的空间中的向量,在新的空间中判断Cosine距离、exp function、欧式距离等就能得到两个输入的相似度了。通过Loss的训练来使相似图像的相似度D变小,不相似的图像相似度D变大。

  • 传统的siamese network使用Contrastive Loss(对比损失)。当然损失函数还有其他选择,Softmax当然是一种好的选择,但不一定是最优选择,即使是在分类问题中。下图是用了对比损失:

  • 为使邻居的输出相隔得很远,按平方支付

  • 为使非邻居的输出小于边际m,按平方支付。D大于m时取0,不相似的D越大。

  • 在nlp和cv领域都有很多应用:

  • 1993年Yann LeCun就把Siamese神经网络用在了签名验证上,即验证支票上的签名与银行预留签名是否一致。NIPS 1993《Signature Verification using a ‘Siamese’ Time Delay Neural Network》

  • 2010年Hinton用来做人脸验证,效果很好,即将两个人脸feed进卷积神经网络,输出same or different,这里属于二分类。ICML 2010《Rectified Linear Units Improve Restricted Boltzmann Machines》

  • 手写体识别

  • 基于Siamese网络的视觉跟踪算法也已经成为热点,2016《Fully-convolutional siamese networks for object tracking》

  • 词汇的语义相似度分析,QA中question和answer的匹配

  • kaggle上Quora的question pair的比赛,即判断两个提问是不是同一问题,冠军队伍用的就是n多特征+Siamese network 参考:参考1

4. FR的损失函数

  • 标签预测(最后一个全连接的层)就像一个线性分类器,深度学习的特征需要容易分离(separable) 。此时softmax损失能够直接解决分类问题。

  • 但对于人脸识别任务,深度学习的特征不仅需要separable,还需要判别性(discriminative) 。 可以泛化从而识别没有标签预测的未见类别。

基于欧几里得距离的损失函数 对比损失 (Contrastive Loss)、三元组损失 (Triplet Loss)、中心损失 (Center Loss) 基于Angular Margin的损失函数 L-Softmax Loss、A-Softmax Loss、COCO Loss、CosFace Loss、ArcFace Loss 具体解析见后面章节。

展开阅读全文
  • 1
    点赞
  • 0
    评论
  • 1
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 博客之星2020 设计师:CY__ 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值