insightface(更新中)

Posted xjlearningai

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了insightface(更新中)相关的知识,希望对你有一定的参考价值。

论文网址:https://arxiv.org/abs/1801.07698

 

一、介绍

基于深度卷积神经网络(Deep Convolutional Neural Networks, DCNNs)的大尺度的人脸识别的主要任务就是设计合适的损失函数以增强模型的判别能力。中心损失(Centre loss)惩罚了深度特征图和相对应的类别中心的欧拉距离来获得类间紧密型。球面距离(SphereFace)假定最后的全连接层的线性转换矩阵可以被当作在角度空间的类中心,以倍增的方式来惩罚深度特征图和相对应的权重之间的角度。

人脸识别的目的就是获得小的类内距离和大的类间距离的特征图。

训练深度卷积神经网络用于人脸识别的论文的两大主线是:

训练多类别的分类器区分数据集中的不同的特征。例如使用softmax分类器以及可以直接嵌入学习的分类器,例如triplet损失。基于大尺度的训练数据和复杂的DCNN结构,基于softmax损失和基于triplet损失的可以在人脸识别领域获得极好的性能。然而,这两种损失也都有一些缺点。

对于softmax损失:

1)线性转换矩阵$Win mathbb{R}^{d imes n}$的大小会随着特征数量$n$的增加而线性增长。

2)对于有类别标签的分类问题,学习到的特征图有很好的区分性,但是对于无类别表的分类问题,不太具有判别能力。

对于triplet损失:

1)随着人脸triplets数目的增长,尤其是对于大尺度的数据集,会有组合式爆炸,导致了迭代步数的巨大的增长;

2)对于有效的模型训练,半困难样本挖掘是一个很困难的问题。

 

技术图片

                                                                                                        图1 通过ArcFace损失训练用于人脸识别的DCNN过程

 

本文提出了一种ArcFace的方法来进一步提高人脸识别模型的判断能力以及稳定 训练过程。如图1所示, 在特征和权重标准化之后,DCNN特征和最后全连接层的点积等于余弦距离。使用反余弦函数计算特性和权重之间的角度。然后,我们在目标角度上增加一个附加角距离,通过余弦函数再一次得到目标逻辑。然后,我们通过固定的特性标准化重新缩放所有的逻辑,接下来的步骤和softmax损失完全一样。该ArcFace方法有如下优点:

1)ArcFace通过借助在标准化超球面上的角度和弧对应关系,直接优化了测地线距离边缘。通过分析特性和权重之间的角度统计,我们可以直观地看出在512维空间上发生了什么。

2)有效的。ArcFace在10张人脸识别基准上取得了最先进的性能,包括在大尺度图像和视频数据上。

3)简单的。如算法1所示,ArcFace只需要几行代码,极其简单去实现在基于计算图的深度框架上,例如:MxNet、Pytorch以及Tensorflow。而且,ArcFace不需要为了有稳定的性能而去和其他损失函数结合起来使用。并且可以很简单地覆盖任何训练数据集。

4)高效的。ArcFace在训练过程中只增加了微不足道的计算复杂度。现有的GPU可以轻松地支持数百万的特征用于训练,而且并行策略的模型可以轻松的支持更多的特性。

 

 二、方法

2.1 ArcFace

以上是关于insightface(更新中)的主要内容,如果未能解决你的问题,请参考以下文章

Source Insight--------阿冬专栏!!!

Azure Application Insight工作项目授权错误

mobilefacenet

Insight.Database 列映射到对象

Source Insight 中UTF-8转GBK

Source Insight 基本使用-修改Source Insight 快捷键