一文了解人脸识别技术的原理 人脸识别技术是什么( 三 )


文章插图
从上图中可以看出,SSH网络已经有对不同网络层输出进行处理的方法,只需要一遍推理就能完成不同大小人脸的检测过程,因此称之为Single Stage 。SSH的网络也比较简单,就是对VGG不同卷积层惊醒了分支计算并输出 。另外还对高层feature进行了上采样,与底层feature做Eltwise Sum来完成底层与高层的特征融合 。另外SSH网络还设计了detection module和context module,其中context module作为detection module的一部分,采用了inception的结构,获取更多上下文信息以及更大的感受野 。

一文了解人脸识别技术的原理 人脸识别技术是什么

文章插图
SSH中的detection module模块
一文了解人脸识别技术的原理 人脸识别技术是什么

文章插图
SSH中detection module里的context module模块
SSH利用1×1卷积对输出最终的回归和分类的分支结果,并没有利用全连接层,因此可以保证不同尺寸图片的输入都能得到输出的结果,也是响应了当时全卷积设计方式的潮流 。遗憾的是该网络并没有输出landmark点,另外其实上下文结构也没有用到比较流行的特征金字塔结构,VGG16的backbone也相对较浅,随着人脸优化技术的不断进行,各种各样的trick也都日趋成熟 。因此,最后向大家介绍一下目前人脸检测算法中应用比较广的Retinaface网络 。
Retinaface由google提出,本质是基于RetinaNet的网络结构,采用特征金字塔技术,实现了多尺度信息的融合,对检测小物体有重要的作用 。网络结构如下所示 。
一文了解人脸识别技术的原理 人脸识别技术是什么

文章插图
从上图可以看出,Retinaface的backbone网络为常见的卷积神经网络,然后加入特征金子塔结构和Context Module模块,进一步融合上下文的信息,并完成包括分类、检测、landmark点回归以及图像自增强的多种任务 。
因为人脸检测的本质是目标检测任务,目标检测未来的方向也适用于人脸的优化方向 。目前在目标检测中小目标、遮挡目标的检测依旧很困难,另外大部份检测网络更多的开始部署在端侧,因此基于端侧的网络模型压缩和重构加速等等更加考验算法工程师对与深度学习检测算法的理解和应用 。
人脸识别人脸识别问题本质是一个分类问题,即每一个人作为一类进行分类检测,但实际应用过程中会出现很多问题 。第一,人脸类别很多,如果要识别一个城镇的所有人,那么分类类别就将近十万以上的类别,另外每一个人之间可获得的标注样本很少,会出现很多长尾数据 。根据上述问题,要对传统的CNN分类网络进行修改 。
我们知道深度卷积网络虽然作为一种黑盒模型,但是能够通过数据训练的方式去表征图片或者物体的特征 。因此人脸识别算法可以通过卷积网络提取出大量的人脸特征向量,然后根据相似度判断与底库比较完成人脸的识别过程,因此算法网络能不能对不同的人脸生成不同的特征,对同一人脸生成相似的特征,将是这类embedding任务的重点,也就是怎么样能够最大化类间距离以及最小化类内距离 。
在人脸识别中,主干网络可以利用各种卷积神经网络完成特征提取的工作,例如resnet,inception等等经典的卷积神经网络作为backbone,关键在于最后一层loss function的设计和实现 。现在从两个思路分析一下基于深度学习的人脸识别算法中各种损失函数 。
思路1:metric learning,包括contrastive loss, triplet loss以及sampling method
思路2:margin based classification,包括softmax with center loss, sphereface, normface, AM-sofrmax(cosface) 和arcface 。
1. Metric Larning
(1)Contrastive loss
深度学习中最先应用metric learning思想之一的便是DeepID2了 。其中DeepID2最主要的改进是同一个网络同时训练verification和classification(有两个监督信号) 。其中在verification loss的特征层中引入了contrastive loss 。
Contrastive loss不仅考虑了相同类别的距离最小化,也同时考虑了不同类别的距离最大化,通过充分运用训练样本的label信息提升人脸识别的准确性 。因此,该loss函数本质上使得同一个人的照片在特征空间距离足够近,不同人在特征空间里相距足够远直到超过某个阈值 。(听起来和triplet loss有点像) 。
一文了解人脸识别技术的原理 人脸识别技术是什么

文章插图
Contrastive loss引入了两个信号,并通过两个信号对网络进行训练 。其中识别信号的表达式如下:
一文了解人脸识别技术的原理 人脸识别技术是什么