激光与光电子学进展, 2018, 55 (12): 121505, 网络出版: 2019-08-01   

一种基于角度距离损失函数和卷积神经网络的人脸识别算法 下载: 1818次

A Face Recognition Algorithm Based on Angular Distance Loss Function and Convolutional Neural Network
作者单位
天津大学电气自动化与信息工程学院, 天津 300072
摘要
在开集协议下设计了一种基于角度距离损失函数和密集连接卷积神经网络的人脸识别算法,以实现深度人脸识别。所设计的网络结构使用基于角度距离的损失函数,让人脸特征的区分度更高,符合特征的理想分类标准。同时,所提出的神经网络结构采用先进的密集连接模块,在很大程度上减少了传统网络结构的参数冗余。经过大量的分析和实验,该算法在LFW数据集上的人脸识别准确率达到了99.45%,在MegaFace数据集上的人脸确认任务和人脸验证任务中的人脸识别准确率分别为72.534%和85.348%,因此所提算法在人脸识别任务中具有较高的优越性。
Abstract
A face recognition algorithm based on the angular distance loss function and densely connected convolutional neural network is proposed under the open-set protocol to achieve deep face recognition. The loss function based on angle distance is adopted in the proposed network structure, which makes the facial features more distinguishable and meets the ideal criteria of feature classification. At the same time, the advanced dense connection module is adopted in the proposed neural network structure, which greatly reduces the parameter redundancy of the traditional network structure. After extensive analysis and repeated experiments, the face recognition accuracy reaches 99.45% on the LFW dataset, and the recognition accuracy rates of face identification task and face verification task on MegaFace dataset are 72.534% and 85.34%, respectively. The superiority of the proposed algorithm is confirmed in the face recognition domain.

1 引言

近几年,卷积神经网络(CNN)在人脸识别等领域受到越来越多关注,这主要是因为新网络结构[1-4]和各种强区分度损失函数[5-7]的不断优化,人脸识别技术达到了较高水平。

目前,人脸识别算法的改进主要集中在人脸预处理(包括人脸检测和人脸对齐)、人脸特征提取(主要指设计人工神经网络结构)和人脸特征分类损失函数的设计。人脸识别任务一般分成人脸确认和人脸验证[8-9]两大类,前者将人脸分类到特定身份,后者则确定两张人脸图片对是否属于同一个身份。

文献[ 10]和[11]的算法使用传统的softmax损失函数学习人脸特征,但softmax损失函数只能学习可分的特征,学习到的人脸特征区分度不高,人脸识别效果较差。为了解决这个问题,一些结合softmax损失函数和contrastive损失函数[6,12]或者结合center损失函数[7]的算法被相继提出,用于增强特征的区分度。文献[ 5]的算法采用triplet损失函数来监督人脸特征的学习,获得了目前较好的人脸识别效果。文献[ 7]提出的center损失函数缩小了特征的类内距离,但并没有增加特征的类间距离。contrastive损失函数[13]和triplet损失函数[5]的缺点是不能约束独立的人脸样本,这两个算法都需要提前进行人脸对或人脸三元组的提取,这个预处理步骤既耗时又让算法性能变得不稳定,算法性能依赖于人脸预处理效果的好坏。

目前,大部分基于深度学习的算法都选择欧氏距离来进行特征学习,但欧氏距离不适用于学习区分度较强的人脸特征。文献[ 6]、[7]、[12]提出的算法结合了基于欧氏距离的损失函数和softmax损失函数,构造了一种联合监督函数。但在一些场景下,基于欧氏距离的损失函数和softmax损失函数相互排斥。本文在传统softmax损失函数的基础上加入了角度距离的思想,进而提出一种基于角度距离的损失函数,可以监督CNN学习强区分度的人脸特征。

CNN是图像识别领域最主要的机器学习方法。由于计算机硬件和神经网络结构的限制,CNN直到最近几年才开始广泛应用于图像识别领域。最初的LeNet5[14]仅由5层神经网络组成,VGG[15]模型也只有19层,但从2016年开始,高速公路网络[4]和残差网络(ResNet)[1]被相继提出,这两个网络的深度均突破100层的限制,ResNet甚至还开始了对1000层网络的探索。真正的深度学习神经网络时代已经到来。

但随着神经网络深度的不断增加,各种问题也开始浮出水面,输入信号和梯度在经过多个中间层的传递后,信号强度变得越来越弱,甚至消失。为了解决这个问题,深度残差网络[1]和高速公路网络[4]通过恒等连接方式将信号从一层直接传递到下一层。随机深度网络[16]在模型训练期间,随机丢掉某些层来简化残差网络的结构,以减少网络参数,避免过拟合。虽然这些方法的网络结构和训练过程都有所不同,但它们都有一个共同的特征,即都建立了从前面层到后面层的短连接路径。

本文提出的CNN结构采用密集连接的方式,加入了密集连接模块,并在公开数据集CASIA[17]上训练的人脸特征,在两个测试数据集(LFW、MegaFace)上取得了很好的效果。为了确保网络中各层之间信息传递的最大化,直接让所有层相互连接,并加入了层与层之间的较短连接,以前馈的方式让每一层都从前面的所有层获得附加输入,并将本层的信息传递到后续所有层,减少了传统CNN模型的参数,提高了识别精度,虽然网络有较深的深度,但并不会出现梯度消失和过拟合的现象。

2 基本原理

2.1 开集人脸识别

按照人脸识别的测试协议,人脸识别可以分为闭集人脸识别和开集人脸识别[18],这两种测试协议的具体实现流程如图1所示。在闭集人脸识别中,所有的测试身份都在训练集中提前定义,这类问题就是把待测试的人脸图片分类到特定的身份类别中[图1(a)],可将其看作一个简单的多分类问题。在开集人脸识别中,测试集中的身份和训练集中的身份相互排斥,这种情况更接近于实际应用场景,同时挑战的难度也更大,这就需要把人脸映射到一个区分度更高的特征空间,人脸确认就是人脸图像和身份候选集人脸图像之间的特征识别[图1(b)]。因此,开集人脸识别任务本质上是特征间距离学习,关键在于学习强区分度的特征。

在理想状态下,开集人脸识别的特征应该符合最大类内特征距离小于最小类间特征距离这个理想特征分类标准,如图1(b)的等价任务所示。然而,由于人脸类内特征间距普遍较大、人脸类间特征相似度又较高,人脸特征很难符合理想特征分类标准。

2.2 传统的损失函数

在传统的距离损失函数中,距离可以通过学习矩阵A表示为[19-22]x1-x2A=(x1-x2)TA(x1-x2),其中x1,x2分别为两个特征向量。目前,大多数深度学习的距离损失函数[5-7,11,23-26]都采用欧氏距离作为距离度量标准,且性能良好的人脸识别算法几乎都对传统损失函数进行改进,使学习到的特征有更高的区分度,提升开集人脸识别任务的准确率。在二分类问题中,由softmax损失函数得到的两个类别的后验概率分别为

p1=expWT1x+b1expWT1x+b1+expWT2x+b2,(1)p2=expWT2x+b2expWT1x+b1+expWT2x+b2,(2)

图 1. 人脸识别测试协议的比较。(a)闭集人脸识别;(b)开集人脸识别

Fig. 1. Comparison of test protocol of face recognition. (a) Closed-set face recognition; (b) open-set face recognition

下载图片 查看所有图片

式中:向量x为学习到的特征向量;Wibi(i=1,2)分别为第i个类别全连接层输出的权重向量和偏置。若p1>p2,则把预测的标签分到类别1中;反之,则把预测的标签分到类别2中。通过比较p1p2的大小,可以得到在二分类问题中,分类结果取决于 W1Tx+b1W2Tx+b2的大小。 WiTx+bi也可以改写为 WiTxcosθi+bi,其中θi是权重向量Wi和特征向量x之间的夹角。如果令 Wi=1且bi=0,即权重向量的模值置1,偏置归零,也就是对权重和偏置进行标准化处理。经过标准化处理后,(1)式和(2)式中的后验概率分别变为

p1=expxcosθ1expxcosθ1+expxcosθ2,(3)p2=expxcosθ2expxcosθ1+expxcosθ2(4)

本文定义分类边界为p1-p2=0。由上述分析可以得到,二分类问题的分类边界为(W1-W2)x+b1-b2=0。定义进行规范化处理后的softmax损失函数为改进的softmax损失函数,改进的softmax损失函数的分类边界为 xcosθ1- xcosθ2=0。当 x≠0时,分类边界变为cosθ1-cosθ2=0,即分类边界完全取决于θ1θ2

虽然上述分析是基于二分类问题讨论的,但这很容易推广到多分类问题中。使用改进的softmax损失函数,把标签分到类别i中,只需满足cosθi>cosθelse,即θielse,其中θelse为其他类别特征向量和权重向量之间的夹角。这就让权重向量Wi和特征向量x之间的夹角θi成为一个可靠的分类标准。

传统的softmax损失函数和改进的softmax损失函数的分类边界如图2所示。由图2可以看到,无论是传统的softmax损失函数还是改进的softmax损失函数,其分类边界都是两个权重向量间的角平分线,并没有提高特征间的区分度。因此,采用基于角度距离的损失函数来学习强区分度的特征,以增加类间特征距离,压缩类内特征距离,从而提高特征间的区分度。

图 2. softmax损失函数的比较。(a)传统的softmax损失函数;(b)改进的softmax损失函数

Fig. 2. Comparison of softmax loss function. (a) Traditional softmax loss function; (b) improved softmax loss function

下载图片 查看所有图片

2.3 基于角度距离的损失函数

根据前文对softmax损失函数的分析,分类边界在很大程度上影响特征的分布,而基于角度距离的损失函数的最基本思想就是通过控制分类边界来产生类间的角度距离。假设已知类别1中的一个特征向量为x,θi为权重向量Wi和特征向量x之间的夹角。改进的softmax损失函数的分类边界为cosθ1-cosθ2=0。若要让特征向量x被正确分到类别1,需要满足cosθ1>cosθ2,即只需满足θ12。若要让分类条件变得更加严格,产生类别间的角度距离,增加类间距离,缩小类内距离,需满足θ1远小于θ2

本文选择一种更为严格的分类条件:cosθ1>cos[(1)θ2],可写为cos[θ1/(1-ω)]>cosθ2,其中ω是在区间[0,1)上的实数,引入参数ω可以控制角度距离的大小。(1-ω)在(0,1]上取值,因此新的分类边界须满足θ1远小于θ2。由上述分析可知,类别1的决策边界是cosθ1=cos[(1-ω)θ2],只需令cosθ1>cos[(1-ω)θ2],即满足θ1<(1)θ2时,特征向量x才能被正确分到类别1。同理,满足θ2<(1)θ1时,特征向量x分才能被到类别2,此时类别2的决策边界为cosθ2=cos(θ1-ωθ1)。上述的分类边界会产生大小为ωθ12/(2)的角度距离,其中θ1是向量W1W2间的夹角。

把基于角度距离的损失函数的思路加入到改进的softmax损失函数中,可以得到基于角度距离损失函数的表达式:

Langular=-1Ni=1Nlog2expxicos11-ωθyiexpxicos11-ωθyi+jyi,j=1Kexp(xjcosθj),(5)

式中:j的取值范围为[1,K],K为类别的数量;N为训练样本的数量;xi为第i个训练样本的特征向量;θj为权重向量Wj和特征向量xi之间的夹角;θyi为权重向量Wyi和特征向量xi之间的夹角。当ω=0时,(5)式即为改进的softmax损失函数。

所提出的基于角度距离的损失函数对于不同的类别有不同的分类边界,可以产生不同类别间的角度距离。图3所示为二分类任务中基于角度距离损失函数、改进的softmax损失函数和本文所提损失函数的分类边界。本文提出的基于角度距离的损失函数的分类边界不仅是权重向量W1W2间的角平分线,还产生了角度距离。3种损失函数分类边界条件的对比如表1所示。加入超参数ω的目的是为了学习不同身份类别间的角度距离,角度距离随着参数ω的增大而增大。本文提出的基于角度距离的损失函数是以改进的softmax损失函数为前提,即以权重向量的模值置1,偏置归零( Wi=1,bi=0)为前提条件。类别的预测结果仅依赖于样本特征向量x和权重向量Wi之间的角度,样本x将被分到角度最小的身份类别中去。

图 3. 本文提出的基于角度距离损失函数的示意图

Fig. 3. Schematic of the proposed angular distance loss function

下载图片 查看所有图片

表 1. 三种损失函数的分类边界对比

Table 1. Comparison of classification boundaries of loss functions

Loss functionDecision boundary
Original softmax loss(W1-W2)x+b1-b2=0
Modified softmax lossx(cosθ1-cosθ2)=0
Angular distance lossx{cosθ1-cos[(1-ω)θ2]}=0 for class 1
x{cos[(1-ω)θ1]-cosθ2}=0 for class 2

查看所有表

2.4 密集连接CNN结构

所设计的CNN结构使用了目前精度高、参数少的密集连接模块[27]。密集连接模块的结构具体如图4中的密集连接块1所示,其中图4中的XiHi的分别表示输入特征图矩阵和非线性变换操作。密集连接模块为了确保网络中各层之间信息传递的有效性,直接将所有层相互连接,每一层都从前面的所有层获得附加输入,并将本层的特征传递到后续所有层。密集连接模块通过对特征的重复利用,搭建了一种易于训练、参数效率高的精简模型。该模型改善了整个网络的信息传递效率和梯度传递效率,减少了当训练集规模较小时的过拟合现象。与现有的其他模型相比,密集连接模型需要更少的参数,并且具有较高的准确性。本文设计的密集连接CNN结构主要由三个部分组成:密集连接模块、过渡模块、分类器模块。

图 4. 密集连接网络的结构

Fig. 4. Structure of densely connected networks

下载图片 查看所有图片

2.4.1 密集连接模块

假设输入图像用x0表示,密集连接模块共有L层,每一层都进行一次非线性变换Hl(·),其中l是层数的序号。非线性变换Hl(·)包括批量归一化(BN)[14]、激活函数[6]、卷积、池化[19]等复合非线性运算。将xl定义为第l层的输出。

密集连接模块的结构如图4的密集连接块1所示。密集连接模块的层间变换可表示为

xl=Hl[x0,x1,,xl-1]),(6)

式中:[x0,x1,…,xl-1]为从输入层、第1层,…,第l-1层网络所有特征图的连接。Hl(·)包含六个连续非线性变换,依次为:BN、线性整流函数(ReLU)、1×1卷积、BN、ReLU和3×3卷积。

2.4.2 过渡模块

过渡模块是两个密集连接模块之间的CNN结构,过渡层的作用是为了改变不同密集连接模块特征图的尺寸,对特征图进行下采样。过度模块包含3个连续的神经网络层,依次为BN层,1×1卷积层和一个2×2平均池化层。

2.4.3 分类器模块

分类器模块是对神经网络结构提取到的特征通过全连接层和最后的损失函数层进行分类,本文选择的分类器是基于角度距离损失函数的分类器。该分类器可以让前面的神经网络结构学习到具有强区分度的人脸特征,以符合最大类内特征距离小于最小类间特征距离这个理想的特征分类标准。

2.4.4 整体网络结构

所设计的密集连接CNN结构,对传统的密集连接模块的激活函数作了改进,将原来密集块和过渡层中所有的ReLU激活函数都替换为PReLU(parametric rectified linear unit)激活函数。ReLU和PReLU激活函数的对比如图5所示。PReLU激活函数是在原来的ReLU激活函数的基础上增加了参数修正[28]。原来的ReLU激活函数随着训练次数的推进,可能会出现权重无法更新的情况。PReLU激活函数加入了一个学习参数ai,可在一定程度上避免梯度为零的情况,让训练结果更容易收敛。

图 5. 激活函数的对比。(a) ReLU;(b) PReLU

Fig. 5. Comparison of activation functions. (a) ReLU; (b) PReLU

下载图片 查看所有图片

设计了4种深度、2种宽度的8个密集连接CNN结构,分别为42层网络、54层网络、78层网络和122层网络,每种网络分别设计了宽度为16和宽度为32的两组。依照层数依次由浅到深的规律设计了4种深度的密集连接CNN结构,目的是为了验证本文提出的网络结构随着网络深度的增加对分类准确率的影响。这4种深度网络结构密集连接结构配置如表2所示,4种网络的整体结构如图6所示。每种网络结构输入的人脸图像尺寸均为112 pixel×112 pixel,含有4个密集连接模块,每个密集连接块有不同的层数和相同的网络宽度,都具有较小的参数量。

表 2. 密集连接结构的具体配置

Table 2. Specific configuration of the dense connection structure

LayerOutput sizeDenseFace-42DenseFace-54DenseFace-78DenseFace-122
Dense block 156×561×13×3×41×13×3×61×13×3×61×13×3×6
Dense block 228×281×13×3×51×13×3×61×13×3×121×13×3×12
Dense block 314×141×13×3×51×13×3×61×13×3×121×13×3×24
Dense block 47×71×13×3×41×13×3×61×13×3×61×13×3×16

查看所有表

图 6. 网络整体结构

Fig. 6. Integral structure of network

下载图片 查看所有图片

3 分析与讨论

3.1 超参数ω的影响

基于角度距离的损失函数,在传统的softmax损失函数的基础上,加强了分类边界的约束条件,并引入了超参数ω来控制角度距离的大小。

分类边界条件如表1所示,也可以表示为cosθ1=cos(1-ω)θ2,角度距离的大小完全取决于超参数ω的选择。角度距离ωθ12/(2)随着参数ω的增大而增大,故一定存在一个最小的ω,让所提的损失函数符合理想的特征分类标准。将ωmin定义为超参数ω符合理想特征分类标准的最小值。

在二分类场景下,特征的最大类内角度距离为(1) θ12/ω+(1) θ12/(2),最小类间角度距离为ωθ12/(2),若要符合理想的特征分类标准,则应满足:

1-ωωθ12+1-ω2-ωθ12ω2-ωθ12,(7)

式中:θ1是向量W1W2间的夹角。求解(7)式可以得到ωmin3-1≈0.73。在二分类问题中,为了符合理想的特征分类标准,ω的最小值为 3-1。

在多分类场景下,假设k个类别的权重向量Wi均匀地分布在单位圆上,那么向量WiWi+1间的夹角为 θii+1=2π/k,第i个类别的最大类内角度距离为(1) θii+1/(2)+(1) θi-1i/(2),最小类间角度距离为min{ωθii+1/(2),ωθi-1i/(2)},且 θii+1=θi-1i。若要符合理想的特征分类标准,则应满足:

1-ω2-ωθii+1+1-ω2-ωθi-1iminω2-ωθii+1,ω2-ωθi-1i(8)

求解(8)式可以得到ωmin≥2/3≈0.67。

在后续试验中,如果没有特殊说明,无论在二分类场景还是多分类场景下,均把超参数ω设置为0.75。

为了验证上述结论,在LFW数据集上验证超参数ω对人脸识别准确率的影响。实验结果如图7所示,该结果是基于本文提出的宽度为32、层数为122的密集连接CNN模型得到。可以观察到随着超参数ω的增加,在LFW数据集上的人脸识别准确率也不断提高,当ω取0.75时,其准确率比无角度距离的损失函数提高了1.49%,这就验证了上述结论的正确性。

图 7. 不同超参数ω的人脸识别准确率

Fig. 7. Face recognition accuracy versus hyperparameter ω

下载图片 查看所有图片

3.2 密集连接CNN结构的影响

所设计的4种深度(42层、54层、78层和122层)的密集连接CNN模型中,每个模型都有4个密集连接模块,并且每个模块都输出相同个数的特征图,这4种模型的每个密集块的宽度分别设置为16和32。4种网络模型的详细配置如表2所示。密集连接的CNN模型比传统的CNN模型拥有更少的参数,模型更加紧凑,整个网络的特征可以重复利用,参数效率也更高[29],表3比较了目前几种CNN模型的参数量。

表3可得,密集连接模块比传统CNN结构的参数效率更高,LeNet、AlexNet、VGGNet网络结构的层数都较少,不超过20层,但参数量都很大,尤其是AlexNet和VGGNet,其参数量都超过了6×107,而GoogleNet虽然只有22层,参数量却和42层的密集连接网络的参数量相当,目前效果较好的152层ResNet的参数量甚至超过6×107。本文设计的密集连接模块深度为122层,当宽度为32时,CNN模型的参数量为1.28×107;当宽度为16时,CNN模型的参数量更少,只有7.4×106表3计算的所有密集连接网络结构的参数量都是在加上最后10575维全连接层的5.4×106参数量后计算出的结果。若将本文的网络模型用在类别较少的其他数据集上,参数量会更少。因此,密集连接的CNN模型比传统的CNN模型拥有更少的参数量。

表 3. 几种CNN模型参数量的比较

Table 3. Comparison of parameter quantities of several convolutional neural network models

Net structureInput size /pixelDepth /layerParameter /106
LeNet32×32×150.062
AlexNet227×227×3862.4
VGGNet224×224×316138.4
GoogleNet224×224×3225.3
ResNet224×224×315261.3
DenseFace (width: 32)112×112×3426.7
547.3
788.9
12212.8
DenseFace (width: 16)112×112×3425.78
545.9
786.37
1227.4

查看所有表

基于角度距离的损失函数设计了密集连接CNN模型,用不同层数的密集连接CNN来训练基于角度距离的损失函数和传统的softmax损失函数。实验是在LFW数据集上进行测试,实验结果如图8所示。

图 8. 不同层数和不同损失函数的网络结构在LFW数据集上的测试准确率

Fig. 8. Test accuracy of LFW dataset for network structures with different layer numbers and different loss functions

下载图片 查看所有图片

基于角度距离的损失函数监督的网络模型比传统softmax损失函数监督的网络模型在LFW数据集上的准确率更高,准确率提升了1.67%~1.93%,验证了基于角度距离损失函数在人脸识别任务中比softmax损失函数的性能更好,更适合于开集人脸识别任务。随着网络层数的增加,人脸识别准确率也不断提高,由98.24%提升到99.45%,提高了1.21%,验证了本文的密集连接CNN结构随着网络层数的增加,并没有出现过拟合现象,网络的精度不断提高,网络很容易优化。

设计了两组密集连接CNN结构,一组的宽度为16,另一组的宽度为32,图9显示了4种不同深度的网络在宽度分别为16和32时在LFW数据集上的测试准确率。网络的宽度越宽,参数量越大,测试准确率也越高。当54层网络模型的宽度由16增加到32时,准确率提高幅度最大,提高了1.91%;122层网络测试准确率提高了0.36%。随着网络宽度和深度的增加,测试准确率都有所提高。

图 9. 不同层数和宽度的网络结构在LFW数据集上的测试准确率

Fig. 9. Test accuracy of LFW dataset for network structures with different layer numbers and widths

下载图片 查看所有图片

4 实验

4.1 实验设置

4.1.1 人脸预处理

使用标准的人脸识别预处理流程,所有图像中的人脸关键点检测均使用MTCNN算法[30]。使用相似性变换实现图像的人脸对齐和剪裁。将检测到的人脸都剪裁成112 pixel×112 pixel,每个RGB颜色通道的像素都进行规范化处理,即原来3个通道在[0,255]范围内的像素值,每个像素点的像素值都减去127.5然后除以128,规范化到[0,1)区间上的像素值。

4.1.2 CNN框架及训练配置

使用Ubuntu16.04系统下的Caffe[31]框架来实现基于角度距离的损失函数和密集连接的CNN结构,具体实施流程如图10所示,主要包括对网络结构的训练、人脸特征的提取和人脸身份的识别。使用密集连接模块,分别设计了42、54、78、122层的宽度分别为16和32的CNN结构作为本文的网络结构。为了公平起见,所有损失函数效果的对比都使用相同的CNN结构。不同CNN结构的配置如表2所示。本实验均用一个GPU(显卡型号为NVIDIA Quadro P4000)批次为32进行训练。学习率一开始设置为0.1,到48万次和96万次迭代时,学习率依次除以10,迭代到144万次时结束训练。训练时,权重衰减设置为0.0005,权重动量设置为0.9,对训练数据仅采用随机镜像对称作为数据增广[32]

图 10. 本文实验实施流程

Fig. 10. Proposed implementation process

下载图片 查看所有图片

4.1.3 训练数据集

使用一个公开的西方人脸数据库CASIA-WebFace[17]来训练本文的密集连接CNN模型。这个数据集共有494414张人脸照片,分别属于10575个不同身份。训练数据的规模只有0.49×106,是相对较小的数据集。DeepFace[11]的数据规模达到4×106,VGGFace[33]的数据规模达到2×106,FaceNet[5]的数据规模甚至达到了2×108。本文后续实验中的所有网络模型均使用CASIA-WebFace数据集进行训练。

4.1.4 测试数据集

1) LFW数据集

LFW数据集[8]包含13233张人脸图片,分别来自5749个不同身份。这个数据集包含的人脸图片存在大量的姿势、表情和光照变化。按照LFW数据集的测试协议[8],对LFW数据集的6000张人脸对进行人脸验证。

2) MegaFace数据集

MegaFace数据集[9]是一个公开的人脸测试数据集,引入了百万数量级的干扰项,用来评估人脸识别算法的性能。MegaFace数据集具有多个测试场景,包括人脸确认、人脸验证、大数据量和小数据量的测试协议。如果训练集的规模小于0.5×106,那么该数据集可视为一个小数据集。本文是在小训练集数据量协议下对本文提出的算法进行评价。

4.1.5 测试流程

从全连接层的输出提取人脸特征。在后文所有的实验中,测试集中的人脸特征均是由原始人脸特征和水平翻转人脸特征所共同决定。最后的测试准确率是由两张人脸特征间的余弦距离计算得到,得分最高的类别将作为人脸识别的身份确认。

4.2 实验结果

4.2.1 LFW数据集的实验结果

LFW数据集的实验结果如表4所示。

表 4. 不同损失函数、人脸识别算法的测试准确率

Table 4. Test accuracy of different loss functions or face recognition algorithms

MethodDatasetData amount /106Accuracy /%
DeepFaceLFW497.33
FaceNetLFW20099.67
Deep FRLFW2.698.85
DeepID2+LFW0.398.74
Center FaceLFW0.799.31
Softmax lossCAISA-WebFace0.4997.78
Triplet lossCAISA-WebFace0.4998.65
Center lossCAISA-WebFace0.4999.02
L-softmax lossCAISA-WebFace0.4999.15
Angular distance lossCAISA-WebFace0.4999.45

查看所有表

表4可知,与其他损失函数相比,基于角度距离的损失函数学到的特征具有区分度更强,识别准确率更高等特点,这证明了基于角度距离的损失函数在人脸识别任务具有优越性。在CAISA-WebFace数据集上进行训练,采用基于角度距离的损失函数进行监督,在LFW数据集上的测试准确率为99.45%,高于其他损失函数监督得到的网络模型。基于角度距离的损失函数在LFW数据集上的测试准确率比softmax损失函数、triplet损失函数、center损失函数和L-softmax损失函数提高了0.3%~1.67%。

提出的人脸识别算法与其他人脸识别算法进行对比也有很强的优势,比同在小数据集上训练的DeepID2+和Center Face算法的准确率分别提高了0.71%和0.14%,比用大数据集训练的DeepFace算法和Deep FR算法的准确率提高了0.6%~2.12%,效果仅次于用超大规模数据集训练的FaceNet算法,该算法训练集图片数量为2×108,是CAISA-WebFace数据集图片数量的400倍。因此,本文提出的基于角度距离损失函数和密集连接CNN的人脸识别算法具有很好的人脸识别性能。

4.2.2 MegaFace数据集的实验

MegaFace数据集的实验结果如表5所示。本文提出的基于角度距离损失函数和密集连接CNN的人脸识别算法在MegaFace数据集的小规模测试协议下取得了很有优势的准确率,人脸确认准确率达到72.534%,人脸验证准确率达到85.348%。在小数据集的人脸确认任务中比第二名的Deepsense-Small算法的准确率高出1.551%,人脸验证任务中比第二名的Deepsense-Small算法的准确率高出2.497%。与在大数据集上训练的模型相比,本文提出的算法性能仍然有很大竞争力,其人脸确认和人脸验证的准确率仅比大数据集上第一名的算法低2%,而比一般的大数据集测试协议下的FaceNet算法高出2.038%,人脸验证准确率只降低了1.125%。此外,本文只采用了密集连接的CNN模型,由基于角度距离的损失函数进行监督,就取得了良好的性能,已经超过了大多数目前性能领先的算法。同时,本文还对比了不同损失函数的性能,每种进行比较的损失函数均使用相同的CNN网络模型,本文提出的基于角度距离的损失函数的人脸识别准确率都有明显的性能优势。其人脸确认和人脸验证准确率分别比原始的softmax损失函数提高了17.906%和19.616%;其人脸确认准确率比triplet损失函数、center损失函数和L-softmax损失函数高出5.499%~7.836%,人脸验证准确率高出5.163%~7.318%。

表 5. 不同损失函数、人脸识别算法在MegaFace数据集上的测试准确率

Table 5. Test accuracy of different loss functions or face recognition algorithms on the MegaFace dataset

MethodTest protocolAccuracy /%
Face identificationFace verification
FaceNetlarge70.49686.473
Deepsenselarge74.79887.764
Deepsensesmall70.98382.851
Softmax losssmall54.62865.732
Triplet losssmall64.69878.030
Center losssmall65.33480.106
L-softmax losssmall67.03580.185
Angular softmax losssmall72.53485.348

查看所有表

上述实验结果可以证明本文所提出的基于角度距离损失函数和密集连接CNN的人脸识别算法在开集人脸识别任务中具有良好的性能,具有类间角度距离的损失函数可以学习到更有区分度的人脸特征,在人脸识别任务中性能可以获得显著提升。

5 结论

提出了一种基于角度距离损失函数和密集连接CNN的人脸识别算法,并比较了8种不同深度和宽度的密集连接CNN模型,模型结构简单、参数复杂度低,可显著减少传统CNN模型的参数量。同时采用基于角度距离的损失函数对网络模型进行监督,学习具有角度距离并且区分度强的人脸特征,使得人脸特征满足特征的理想分类条件——最大类内角度距离小于最小类间角度距离。本文的密集连接CNN模型在加入基于角度距离的损失函数后,人脸识别准确率大幅提高。本文提出的人脸识别算法在CAISA-WebFace数据集上进行训练,然后在LFW和MegaFace人脸识别数据集上进行测试。实验结果验证了本文提出的算法在开集人脸识别任务中的优越性和巨大潜力。后续研究将主要致力于损失函数的进一步改进,使得网络更容易收敛,以降低训练的迭代次数和训练时长。

参考文献

[1] He KM, Zhang XY, Ren SQ, et al. Deep residual learning for image recognition[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2016: 770- 778.

[2] KrizhevskyA, SutskeverI, Hinton GE. Imagenet classification with deep convolutional neural networks[C]∥International Conference on Neural Information Processing Systems, 2012, 60( 2): 1097- 1105.

[3] SzegedyC, LiuW, JiaY, et al. Going deeper with convolutions[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2015: 1- 9.

[4] Srivastava RK, GreffK, SchmidhuberJ. Training very deep networks[C]∥Conference and Workshop on Neural Information Processing System, 2015.

[5] SchroffF, KalenichenkoD, PhilbinJ. Facenet: a unified embedding for face recognition and clustering[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2015: 815- 823.

[6] SunY, ChenY, WangX, et al. Deep learning face representation by joint identification-verification[C]∥Conference and Workshop on Neural Information Processing System, 2014.

[7] WenY, ZhangK, LiZ, et al.A discriminative feature learning approach for deep face recognition[C]∥Springer International Publishing, 2016, 47( 9): 499- 515.

[8] Huang GB, Learned-MillerE. Labeled faces in the wild: updates and new reporting procedures[R]. USA: Massachusetts Amherst, 2014: 3- 14.

[9] Kemelmacher-ShlizermanI, Seitz SM, MillerD, et al. The megaface benchmark: 1 million faces for recognition at scale[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2016: 4873- 4882.

[10] SunY, WangX, TangX. Deep learning face representation from predicting 10,000 classes[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2014: 1891- 1898.

[11] TaigmanY, YangM, RanzatoM, et al. Deepface: closing the gap to human-level performance in face verification[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2014: 1701- 1708.

[12] SunY, WangX, TangX. Sparsifying neural network connections for face recognition[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2016: 4856- 4864.

[13] HadsellR, ChopraS, LeCun Y. Dimensionality reduction by learning an invariant mapping[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2006: 1735- 1742.

[14] LeCunY, BottouL, BengioY, et al. Gradient based learning applied to document recognition[C]∥Intelligent Signal Processing of the IEEE, 1998, 86( 11): 2278- 2324.

[15] RussakovskyO, DengJ, SuH, et al. Imagenet large scale visual recognition challenge[C]∥International Journal of Computer Vision, 2015, 115( 3): 211- 252.

[16] HuangG, SunY, LiuZ, et al. Deep networks with stochastic depth[C]∥European Conference on Computer Vision, 2016: 646- 661.

[17] Yi D, Lei Z, Liao S, et al. Learning face representation from scratch[J]. arXiv, 2014, 1411: 7923.

[18] Liu WY, Wen YD, Yu ZD, et al. SphereFace: deep hypersphere embedding for face recognition[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2017: 6738- 6746.

[19] Xing EP, Ng AY, Jordan MI, et al. Distance metric learning with application to clustering with side information[C]∥International Conference on Neural Information Processing Systems, 2002, 15: 521- 528.

[20] Weinberger K Q, Saul L K. Distance metric learning for large margin nearest neighbor classification[J]. Journal of Machine Learning Research, 2009, 10(1): 207-244.

[21] KöstingerM, HirzerM, WohlhartP, et al. Large scale metric learning from equivalence constraints[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2012: 2288- 2295.

[22] Ying Y, Li P. Distance metric learning with eigenvalue optimization[J]. Journal of Machine Learning Research, 2012, 13(1): 1-26.

[23] HuJ, LuJ, Tan YP. Discriminative deep metric learning for face verification in the wild[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2014, 27( 10): 1875- 1882.

[24] LuJ, WangG, DengW, et al. Multi-manifold deep metric learning for image set classification[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2015: 1137- 1145.

[25] Song HO, XiangY, JegelkaS, et al. Deep metric learning via lifted structured feature embedding[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2016: 4004- 4012.

[26] WLiu, YWen, ZYu, MYang. Large-margin softmax loss for convolutional neural networks[C]∥International Conference on International Conference on Machine Learning, 2016: 507- 516.

[27] Ming ZH, ChazalonJ, Luqman MM, et al. Simple triplet loss based on intra/inter-class metric learning for face verification[C]∥IEEE International Conference on Computer Vision Workshops, 2018: 1656- 1664.

[28] Zhang RY, Wang QQ, LuY. Combination of ResNet and center loss based metric learning for handwritten Chinese character recognition[C]∥14th IAPR International Conference on Document Analysis and Recognition, 2017: 25- 29.

[29] HuangG, LiuZ, MaatenL, et al. Densely connected convolutional networks[C]∥IEEE Conference on Computer Vision and Pattern Recognition, 2017: 2261- 2269.

[30] Zhang K P, Zhang Z P, Li Z F, et al. Joint face detection and alignment using multitask cascaded convolutional networks[J]. IEEE Signal Processing Letters, 2016, 23(10): 1499-1503.

[31] Jia Y Q, Shelhamer E, Donahue J, et al. Caffe: convolutional architecture for fast feature embedding[J]. arXiv, 2014, 1408: 5093.

[32] Choudhury SK, Padhy RP, Sa PK. Faster R-CNN with DenseNet for scale aware pedestrian detection vis-à-vis hard negative suppression[C]∥IEEE 27th International Workshop on Machine Learning for Signal Processing, 2018: 1- 6.

[33] Parkhi OM, VedaldiA, ZissermanA. Deep face recognition[C]∥British Machine Vision Conference, 2015.

龙鑫, 苏寒松, 刘高华, 陈震宇. 一种基于角度距离损失函数和卷积神经网络的人脸识别算法[J]. 激光与光电子学进展, 2018, 55(12): 121505. Xin Long, Hansong Su, Gaohua Liu, Zhenyu Chen. A Face Recognition Algorithm Based on Angular Distance Loss Function and Convolutional Neural Network[J]. Laser & Optoelectronics Progress, 2018, 55(12): 121505.

本文已被 9 篇论文引用
被引统计数据来源于中国光学期刊网
引用该论文: TXT   |   EndNote

相关论文

加载中...

关于本站 Cookie 的使用提示

中国光学期刊网使用基于 cookie 的技术来更好地为您提供各项服务,点击此处了解我们的隐私策略。 如您需继续使用本网站,请您授权我们使用本地 cookie 来保存部分信息。
全站搜索
您最值得信赖的光电行业旗舰网络服务平台!