一种基于角度距离损失函数和卷积神经网络的人脸识别算法 下载: 1818次
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],这两种测试协议的具体实现流程如
在理想状态下,开集人脸识别的特征应该符合最大类内特征距离小于最小类间特征距离这个理想特征分类标准,如
2.2 传统的损失函数
在传统的距离损失函数中,距离可以通过学习矩阵
图 1. 人脸识别测试协议的比较。(a)闭集人脸识别;(b)开集人脸识别
Fig. 1. Comparison of test protocol of face recognition. (a) Closed-set face recognition; (b) open-set face recognition
式中:向量
本文定义分类边界为
虽然上述分析是基于二分类问题讨论的,但这很容易推广到多分类问题中。使用改进的softmax损失函数,把标签分到类别
传统的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中的一个特征向量为
本文选择一种更为严格的分类条件:cos
把基于角度距离的损失函数的思路加入到改进的softmax损失函数中,可以得到基于角度距离损失函数的表达式:
式中:
所提出的基于角度距离的损失函数对于不同的类别有不同的分类边界,可以产生不同类别间的角度距离。
图 3. 本文提出的基于角度距离损失函数的示意图
Fig. 3. Schematic of the proposed angular distance loss function
表 1. 三种损失函数的分类边界对比
Table 1. Comparison of classification boundaries of loss functions
|
2.4 密集连接CNN结构
所设计的CNN结构使用了目前精度高、参数少的密集连接模块[27]。密集连接模块的结构具体如
2.4.1 密集连接模块
假设输入图像用
密集连接模块的结构如
式中:[
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. 激活函数的对比。(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. 密集连接结构的具体配置
Table 2. Specific configuration of the dense connection structure
|
3 分析与讨论
3.1 超参数ω的影响
基于角度距离的损失函数,在传统的softmax损失函数的基础上,加强了分类边界的约束条件,并引入了超参数
分类边界条件如
在二分类场景下,特征的最大类内角度距离为(1
式中:
在多分类场景下,假设
求解(8)式可以得到
在后续试验中,如果没有特殊说明,无论在二分类场景还是多分类场景下,均把超参数
为了验证上述结论,在LFW数据集上验证超参数
3.2 密集连接CNN结构的影响
所设计的4种深度(42层、54层、78层和122层)的密集连接CNN模型中,每个模型都有4个密集连接模块,并且每个模块都输出相同个数的特征图,这4种模型的每个密集块的宽度分别设置为16和32。4种网络模型的详细配置如
由
表 3. 几种CNN模型参数量的比较
Table 3. Comparison of parameter quantities of several convolutional neural network models
|
基于角度距离的损失函数设计了密集连接CNN模型,用不同层数的密集连接CNN来训练基于角度距离的损失函数和传统的softmax损失函数。实验是在LFW数据集上进行测试,实验结果如
图 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. 不同层数和宽度的网络结构在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结构,具体实施流程如
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. 不同损失函数、人脸识别算法的测试准确率
Table 4. Test accuracy of different loss functions or face recognition algorithms
|
由
提出的人脸识别算法与其他人脸识别算法进行对比也有很强的优势,比同在小数据集上训练的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. 不同损失函数、人脸识别算法在MegaFace数据集上的测试准确率
Table 5. Test accuracy of different loss functions or face recognition algorithms on the MegaFace dataset
|
上述实验结果可以证明本文所提出的基于角度距离损失函数和密集连接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.
[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.
[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.
[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.
[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.
Article Outline
龙鑫, 苏寒松, 刘高华, 陈震宇. 一种基于角度距离损失函数和卷积神经网络的人脸识别算法[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.