2. 台湾科技大学 资讯工程系, 台湾 台北 10607
2. Department of Computer Science and Information Engineering, National Taiwan University of Science and Technology, Taipei 10607, China
构建一个完整的人脸识别系统主要包括图像采集、人脸检测、人脸对齐、特征表示与分类识别等步骤。人脸识别技术的核心在于特征提取和分类识别,而特征提取则是人脸识别的重点关注点[1-3]。深度学习与传统人脸识别技术的主要区别在于:深度学习是通过从海量数据中有监督的训练学习来获取能够有效表示人脸信息的特征,不再需要大量的人脸识别先验知识来设计特征,这种人脸面部特征学习更具鲁棒性[4-6]。深度卷积神经网络(DCNN)作为一种深度学习架构,已成功应用于人脸识别和其他计算机视觉任务,并逐渐成为一种通用算法[1, 4-5, 7-10]。虽然DCNN是通过从大量数据中自动学习更具区分力的特征,人脸识别的主要目的也是通过从海量数据中学习具有泛化能力的人脸特征,但最大的挑战是如何训练更好的DCNN算法。目前可以通过以下两种方式进行提升:设计更强表达能力的网络结构; 使用规模更大的数据集,对训练集进行更精确的预处理。
1 人脸识别技术与数据库现状2009年发布的LFW数据库的样本图片来自于互联网名人图像,其中有5 700余人13 000多张图像,采用十折平均精度作为人脸识别性能指标,是在真实条件下最具权威的人脸识别数据库之一[11]。有许多DCNN的开源实现已经公布,2014年Facebook[9]和香港中文大学[12]使用DCNN技术在人脸识别中取得重大突破,分别在LFW上获得了97.35%和97.45%的平均分类精度。随后,在LFW数据集上平均分类精度分别由VGGface、CaffeFace和Google FaceNet刷新到97.27%、99.28%和99.63%,百度公司甚至得到99.77%的准确率[13]。
DCNN算法之所以需要大量的数据,主要原因在于越大规模的数据越能够学习到更加抽象、更加鲁棒的特征。表 1中的数据充分体现了这一趋势:DeepID系列从20万~45万,Caffeface使用70万,百度使用120万,DeepFace为4亿,VGGFace有260万,谷歌达到2亿,Facebook使用超过10万人的50亿图像数据库[14]。
可以看出,DCNN需要大量数据进行训练,虽然很多数据可以从网络上抓取,但是没有组织,需要手动标注信息。可用性强并且标注信息丰富的大规模数据库往往由Google、Facebook和百度这样的大型公司持有,但因为版权和隐私的问题,它们并没有公开发布。由于在获取大规模标注信息丰富、准确度高的数据库方面遇到了较大的障碍,人脸识别技术在学术领域处于被动状态,甚至落后于工业界。为了克服这个问题,越来越多的研究机构也相继发布了一些大型的、多样化的数据集。目前,表 2是公开的一些大型人脸数据集及其标注信息,香港中文大学团队发布了CelebFaces+数据集,包含了大约10 000个身份的20万张图像,标注信息丰富,身份信息未划分,主要可以用来研究特征点定位和人脸属性学习。2014年中科院自动化研究所发布并建立了一个大规模的CASIA-webface人脸识别数据集,包含了大约10 500个身份的49万张图像,并表示这个数据集是作为大规模训练集来使用。在文献[4]中,作者也公布了2 622个身份的260万张图像。MegaFace [20]数量大于CASIA,但是被设计为测试集,每个人提供的图像很少,因此它从未用于训练DCNN系统。目前,这些数据集仍有很多噪声,身份标签错误,单张图像含有多个人脸等(图 1)问题,这导致数据库的准确性很难得到保证。
DCNN的训练集通常需要进行大量的预处理工作,包括图像反转、随机裁剪、多尺度、彩色渲染、标准化数据等。通过不同方式的预处理产生的结果也是有很大偏差的,主要表现为人脸检测错误、特征点定位错误、身份归类错误等,这些偏差会对训练结果造成较大的影响。为了研究数据库准确性对DCNN训练的影响,本文提出了一种多角度评估数据清理方法,主要贡献总结包括:1)从人脸检测、特征点定位和人脸相似性等方面对数据库进行了清理;2)验证清理图像数据库的有效性,以提高训练准确性。
2 多角度评价清理图像首先,采用当前主流的人脸检测和特征点定位算法对数据集进行清理。其次,利用公开的网络模型提取特征计算相似度,并使用相似度统计算法进行图像清理。如图 2是数据清理的具体流程。
人脸检测和人脸对齐已经成为独立的研究方向,人脸特征提取的前提就需要对这些算法进行研究,其中必不可少的就是人脸检测。人脸对齐(校准)或面部特征点定位主要是通过瞳孔、眉毛、嘴巴等人脸上的面部特征点对人脸进行校准,以促进正面特征提取,特别是对于局部关键特征提取。
本节主要对香港中文大学DCNN Seetaface、中国科学院的面部检测算法和深圳先进学校MTCNN算法[27]通过比较分析实际面部检测表现,并针对接下来的大规模脸数据集选择适当的人脸检测和关键点检测算法,从不同角度对DCNN、Seetaface、MTCNN这3种算法进行测试和分析,验证3种算法的性能。
表 3是3种算法在3个不同测试数据集上5个关键点的平均差、标准差和效率。从表 3中可以看出, DCNN算法的标准差均小于Seetaface算法和MTCNN算法,MTCNN算法略好于Seetaface算法,在这3个小数据集的测试中DCNN算法的稳定性最好,其次是MTCNN;从平均误差来说,表现最好的是Seetaface算法,表明Seetaface算法可以适应更广泛的场景。
通过比较人脸检测和特征点定位的时间效率可以看出,MTCNN检测的时间最短,DCNN算法检测的时间最长。
在本文中训练深度卷积神经网络需要大规模数据集预处理工作,因此需要考虑面部检测算法的综合性能,主要包括效果和效率。表 4进一步进行了两次大规模数据集的测试,从表 4可以看出,MTCNN算法对大数据的稳定性较好,CelebA共计20多万图像,测试CelebA时MTCNN算法实际检测的面部图像为182 387张,Seetaface算法实际检测的脸部图像为180 032张,MTCNN算法在大规模数据集中具有较好的效果。
根据上述实际测试的数据,本文选择MTCNN算法作为所有数据库的面部检测算法。
2.2 基于相似度统计的图像清理基于相似度统计的图像清理算法的3个主要步骤如下。
1) 人脸对齐
所有的人脸区域都需要对齐到112×96的RGB图像,这里使用来自于文献[17]给出的对齐好的示例图像的5个关键点作为标准人脸模板,根据式(1)求出5个关键点的平均值xi、yi,其中,xij、yij表示对应图像点的坐标,i=1, 2, 3, 4, 5分别表示这5个关键点,j表示第j张图像,n表示所有的示例图像。
$\left\{ {\begin{array}{*{20}{l}} {{{\bar x}_i} = \sum\limits_{j = 1}^n {x_i^j/n} }\\ {{{\bar y}_i} = \sum\limits_{j = 1}^n {y_i^j/n} } \end{array}} \right.$ | (1) |
在求出标准模板之后,根据式(2)求出原图到目标图像的仿射变换矩阵:
$\mathit{\boldsymbol{T}} = {\rm{cp2tform}}\;({\rm{Opt}},{\rm{Cpt}},{\rm{ }}\prime {\rm{similarity}}\prime )$ | (2) |
式中:Opt是原图像的5个特征点,Cpt是标准模板的5个点,T是求得的变换矩阵,cp2tform是MATLAB的标准函数。
根据式(3)得出对齐之后的人脸图像:
$\begin{array}{l} {\rm{crop}} = {\rm{imtransform}}\;(I,{\rm{ }}\mathit{\boldsymbol{T}},\prime {\rm{XData}}\prime ,[1,{\rm{imgsize}}\left( 2 \right)],\\ \quad \quad \prime {\rm{YData}}\prime ,[1,{\rm{imgsize}}\left( 1 \right)],\prime {\rm{size}}\prime ,{\rm{imgsize}}) \end{array}$ | (3) |
式中:I是原图像,imgsize是要对齐的图像尺寸,crop是对齐之后的人脸图像,imtransform是MATLAB的标准函数。
2) 人脸特征提取与相似度计算
本文使用的网络结构来自于文献[17]在github上提供的开源文件,如图 3所示。
Softmax损失函数和中心损失函数的联合监视,可以训练足够强大的DCNN,并且能够得到两个关键学习目标的深层特征以及尽可能高的类间分散性和类内紧密性。这些特性对人脸识别来说至关重要。提取特征的模型也采用了文献[17]公布的网络模型,部分超参数设置由实际数据库来确定。
对于特征提取,按照惯例在进入网络模型之前,RGB图像像素值将减去127.5,并将每个像素值除以128。深度特征来自第一FC层的输出,提取每个图像的特征和翻转图像的特征,并将其作为特征向量进行连接。在提取所有图像的特征之后,对从两个不同图像提取的特征向量进行相似性计算。所使用的度量是余弦距离,(4)式是两个特征向量A和B的角度,直接计算余弦距离作为相似度S,即
$S\left( {\mathit{\boldsymbol{A}},\mathit{\boldsymbol{B}}} \right) = {\rm{cos}}\left( \theta \right)\frac{{\mathit{\boldsymbol{AB}}}}{{\left\| \mathit{\boldsymbol{A}} \right\|\left\| \mathit{\boldsymbol{B}} \right\|}}$ | (4) |
使用等误差率(EER)作为判断是否为同一个人的阈值。当相似度超过该阈值T时,认定为同一个人,小于阈值T时不为同一个人。对于每种图像,进行相似度计算,1表示两个图像是同一个人,0表示两个图像不是一个人。
式(5)表明如何判断两个图像是否为同一个人。
${L_{ij}} = \left\{ {\begin{array}{*{20}{l}} {1}&{{\rm{similarity}}\;({\mathit{\boldsymbol{P}}_i},{\mathit{\boldsymbol{P}}_j}) \ge T}\\ {0}&{{\rm{similarity}}\;({\mathit{\boldsymbol{P}}_i},{\mathit{\boldsymbol{P}}_j}) < T} \end{array}} \right.,i,j = 1,2, \cdots ,n$ | (5) |
式中:Pi、Pj表示一类图像中的第i和j张图像的特征向量,Lij表示第i和j张图像是否为同一个人。
3) 根据不相似的图像的比例确定是否清理
根据式(6)统计同一个人的人脸图像C中每一张图像与其他图像不相似的数目。
${N_i} = {\rm{count}}({L_{ij}} = 0),{\rm{ }}\quad j = 1,2, \cdots ,n$ | (6) |
式中:Ni表示第i张图像与其他图像不相似的数目,i=1, 2, …, n。
最后,根据式(7)判断是否清理该图像。
$对于C\left\{ {\begin{array}{*{20}{l}} {{\rm{delete}},} & {{N_i} \ge \lambda n}\\ {{\rm{hold}},} & {{N_i} < \lambda n} \end{array}} \right.,i = 1,2, \cdots ,n$ | (7) |
式中:n表示一类人脸所有图像数目;参数λ的值需要根据不同的数据库来确定,具体λ值将在下一章实验部分具体分析。
3 实验与分析本节选取了CASIA-webface数据集、UMDface数据集和MSceleb数据集作为实验数据库,并选取公共权威人脸识别测试数据集LFW和Youtube face作为测试数据集。
LFW收集的数据集包含5 749个不同的人,有姿态、表情和光照的变化,总共13 233个图像,旨在研究人脸图像数据库中的困难的人脸识别问题。根据LFW提供的测试方案——unrestricted with labeled outside data[28],我们测试了6 000个人脸对,人脸如图 4所示。
Youtube脸(YTF)数据集包含3 495个不同人的视频,平均每人2.15个视频。剪辑持续48~6 070帧,平均长度为181.3帧。它旨在研究视频下人脸识别的问题。根据YTF提供的测试协议——unrestricted with labeled outside data,测试5 000个视频对,如图 5所示。
1) 预处理
CASIA-webface和MSceleb使用2.1节提出的人脸检测方法进行初步筛选,删除未检测到的人脸图像,并使用2.2节步骤1提出的人脸对齐将所有的人脸图像对齐成112×96的RGB图像。UMDface数据集是经过包括人工判断在内的深度清理过的人脸图像数据集,清理过程在文献[23]中具体描述,提供了21个关键点的标注信息,我们选取了与MTCNN算法检测相同的5个点作为UMDface原始图像的特征点,并使用2.2节步骤1提出的方法进行人脸对齐。
2) 数据集设置
本文使用经过2.1节方式清理过的CASIA-webface作为第1个数据集A,共有10 575个人,491 582张图像。使用UMDface数据集作为第2个数据集B,共有8 501个人,367 919张图像。第3个数据集C来自于2.2节得出最终清理的数据集。经过2.1节方式清理过的MSceleb数据集作为第4个数据集D,共有近90 000个人,8 500 000余张图像。所有数据集按照11:1的比例分为训练集和验证集,至少使用一个图像作为验证集。
3) 网络设置和参数
本文使用的是windows环境下配置的caffe平台[29]来训练模型,本节中的所有CNN模型都是相同的架构,详细信息如图 3所示。学习率从0.1开始,学习策略(learning policy)多步衰减,迭代次数到15 000、24 000、32 000次时学习率分别除10,权重腐蚀(weight decay)为0.000 5,记忆因子(momentum)为0.9。
3.2 不同准确度数据库训练实验本实验是研究不同精度数据库对训练的影响,使用UMDface数据库和Webface数据库,这两个数据库在保证数据准确性的程度上表现出很大的区别,UMDface的数据库精度由大量人工信息标注,并且类别精确,Webface数据库则没有任何人脸标注信息,很难保证数据的准确性。MSceleb的准确性由于规模庞大,更加难以保证数据准确性,3个数据库的详细数据对比如表 5所示。
在表 6中,EER是等错误率的准确率,这种精度是面部识别性能的重要指标。当FPR较小时,较大的TPR可以进一步解释模型的影响,应用场景不同对FPR的要求也不一样。因此,从表 6可以看出,UMDface以最小的规模实现了最高的精度,而MSceleb数据库规模最大,准确率也是最低的,数据的准确性对训练的影响是非常大的,即使数据规模再大,无法保证较高的数据精度,也无法获得较高的准确率,说明进行数据库清理是非常有必要的。
参数λ在清理图像数量方面起着重要作用,这可能会影响训练结果,某类图像的最小数量也可能会影响训练。
在第1个实验中,λ从0.1~1来完成数据集A的深度清理工作,并使用清理后的数据集来训练模型,这些模型在LFW数据集上的准确率如图 6(a)所示。显然,不做任何清理λ=1)准确率最差;正确选择λ的值可以提高DCNN特征的准确率;进行不同程度的清理(λ不同)在一定范围内准确率保持稳定,清理过度会导准确率下降。本文建议将λ的值设定在0.3~0.6,然后使用不同程度的清理数据集进行训练,并选取最佳λ值。
在第2个实验中,将λ值设为0.4,再继续清理掉某些类图像数目少于一定值(从10到20)的类,然后使用清理后的数据集来训练模型,这些模型在LFW数据集上的准确率如图 6(b)所示。同样,这种模式的准确性在一定范围内可以稳定,最好的结果是每个类别中不少于15个人,参数λ=0.4,清理后的CASIA-webface数据集有9 240个人,一共400 000张图像作为数据集C。
3.4 在LFW和Youtube face上的测试结果表 7是在LFW上的测试结果和其他算法结果的对比,模型A是由数据集A作为训练集训练出来的模型,模型B是由数据集B作为训练集训练出来的模型,模型C是由数据集C作为训练集训练出来的模型。
图 7显示了不同方法的ROC曲线,我们可以从表 7和图 7的测试结果中得出以下结论:首先,模型C在3个实验模型中达到了最高的精度,模型B精度高于模型A,表明数据清理明显提高了人脸识别训练模型的准确性;其次,原来的Caffeface训练所使用的数据集包含其他数据集,数据量更大,类别也是本文的2倍,而在测试时,Caffeface的结果是经过特征提取后的PCA处理,本文的结果未被PCA处理,也与原来的结果非常接近,进一步证明了数据清理的有效性。
表 8是在Youtube face数据集上本文得出的测试结果和其他算法结果的对比,测试协议按照3.1节对Youtube face数据库的描述进行。
图 8显示了不同方法的ROC曲线,我们还可以从表 8和图 8的测试结果中得出以下结论:模型C在3个模型中已经达到了最高的准确度,远远超过其他两个模型的ROC曲线,在非限制条件下的视频场景中,数据清理仍然会提高人脸识别精度。在目前的主流人脸识别算法中,模型C也显示出显著的成果,比3DMM算法、DeepID2 +算法、Deepface算法,以及Caffeface算法训练的效果好。图像清理后,对数据集进行训练,干扰因子较小,对于基于深卷积神经网络的人脸识别非常有用。
深度卷积神经网络的发展得益于大数据,因为数据量够大,计算机够强大,机器本身才能学习出各种复杂的特征。而数据的准确性,也就是数据标签、标注信息、类别等的准确性,也会对训练的模型结果造成一定的影响,因此本文对数据库清理方面做了研究。本文提出将数据库进行多角度清理后再训练的方法,通过与未清理和其他方法的比较发现,清理后的数据库在训练上结果更精确。实验证明,清理后的数据集能够提高网络识别率。
目前,大多数公开的数据集仍含有很多噪声,大规模数据去除噪声仍是一个值得重视的问题。本文数据清理方法是否对所有数据库具有普适性,是否已经存在更高效更准确的数据清理方法需要进一步探究。下一步的工作可以考虑将多个清理后的数据集进行合并来扩大数据量。
[1] | SUN Y, WANG X, TANG X. Deep learning face representation by joint identification-verification[J]. Advances in neural information processing systems, 2014, 27: 1988-1996. (0) |
[2] | SUN Y, WANG X, TANG X. Deep learning face representation from predicting 10, 000 classes[C]//IEEE Conference on Computer Vision and Pattern Recognition. Boston, USA, 2014:1891-1898. (0) |
[3] |
王晓刚, 孙袆, 汤晓鸥. 从统一子空间分析到联合深度学习:人脸识别的十年历程[J]. 中国计算机学会通讯, 2015, 11(4): 8-15. WANG Xiaogang, SUN Hui, TANG Xiaoou. From unified subspace analysis to joint depth learning:ten years of face recognition[J]. China computer society newsletter, 2015, 11(4): 8-15. (0) |
[4] | PARKHI O M, VEDALDI A, ZISSERMAN A. Deep face recognition[C]//British Machine Vision. London, Britain, 2015:411-4112. (0) |
[5] | SCHROFF F, KALENICHENKO D, PHILBIN J. FaceNet:A unified embedding for face recognition and clustering[C]//IEEE Conference on Computer Vision and Pattern Recognition. Boston, USA, 2015:815-823. (0) |
[6] | DING C, TAO D. A comprehensive survey on pose-invariant face recognition[J]. Acm transactions on intelligent systems and technology, 2015, 7(3): 37. (0) |
[7] | SUN Y, LIANG D, WANG X, et al. DeepID3:face recognition with very deep neural networks[C]//IEEE Conference on Computer Vision and Pattern Recognition. Boston, USA, 2015:963-971. (0) |
[8] | SUN Y, WANG X, TANG X. Hybrid deep learning for face verification[J]. IEEE transactions on pattern analysis and machine intelligence, 2016, 38(10): 1997-2009. DOI:10.1109/TPAMI.2015.2505293 (0) |
[9] | TAIGMAN Y, YANG M, RANZATO M, et al. Deepface:closing the gap to human-level performance in face verification[C]//IEEE Conference on Computer Vision and Pattern Recognition. Columbia, American, 2014:1701-1708. (0) |
[10] | WEN Y, ZHANG K, LI Z, et al. A discriminative feature learning approach for deep face recognition[C]//ECCV Conference on Computer Vision.Amsterdam, Holand, 2016:499-515. (0) |
[11] | HUANG G B, MATTAR M, BERG T, et al. Labeled faces in the wild:a database for studying face recognition in unconstrained environments[J]. Month, 2007. (0) |
[12] | SUN Y, WANG X, TANG X. Deep learning face representation from predicting 10, 000 classes[C]//IEEE Conference on Computer Vision and Pattern Recognition. Hawaii, USA, 2014:1891-1898. (0) |
[13] | LIU J, DENG Y, BAI T, et al. Targeting ultimate accuracy:face recognition via deep embedding[C]//European Conference on Computer Vision.Amsterdam, Netherlands, 2016:499-515. (0) |
[14] | TAIGMAN Y, YANG M, RANZATO M, et al. Web-scale training for face identification[C]//Computer Vision and Pattern Recognition.Columbus, USA, 2014:2746-2754. (0) |
[15] | SUN Y, WANG X, TANG X. Deeply learned face representations are sparse, selective, and robust[C]//Computer Vision and Pattern Recognition. Boston, USA, 2015:2892-2900. (0) |
[16] | SCHROFF F, KALENICHENKO D, PHILBIN J. Facenet:a unified embedding for face recognition and clustering[C]//IEEE Conference on Computer Vision and Pattern Recognition. Boston, USA, 2015:815-823. (0) |
[17] | WEN Y, ZHANG K, LI Z, et al. A discriminative feature learning approach for deep face recognition[C]//European Conference on Computer Vision. Amsterdam, Netherlands, 2016:499-515. (0) |
[18] | SEITZ S M, MILLER D, et al.The megaface benchmark:1 million faces for recognition at scale[C]//Computer Vision and Pattern Recognition. Las Vegas, USA, 2016:4873-4882. (0) |
[19] | BORJI A, IZADI S, ITTI L. iLab-20M:a large-scale controlled object dataset to investigate deep learning[C]//IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, USA, 2016:2221-2230. (0) |
[20] | KEMELMACHERSHLIZERMAN I, SEITZ S M, MILLER D, et al. The megaface benchmark:1 million faces for recognition at scale[C]//Computer Vision and Pattern Recognition. Las Vegas, USA, 2016:4873-4882. (0) |
[21] | GUO Y, ZHANG L, HU Y, et al. MS-Celeb-1M:challenge of recognizing one million celebrities in the real world[C]//Electronic imaging. San Francisco, USA, 2016:1-6. (0) |
[22] | GUO Y, ZHANG L, HU Y, et al. MS-celeb-1M:a dataset and benchmark for large-scale face recognition[C]//IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, USA, 2016:113-124. (0) |
[23] | BANSAL A, NANDURI A, CASTILLO C, et al. UMDFaces:an annotated face dataset for training deep networks[C]//IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, USA, 2016:976-984. (0) |
[24] | WOLF L, HASSENER T, MAOZ I. Face recognition in unconstrained videos with matched background similarity[C]//Computer Vision and Pattern Recognition. Colorado Springs, USA, 2011:529-534. (0) |
[25] | GUO Y, ZHANG L. One-shot face recognition by promoting underrepresented classes[J]. Computer vision and pattern recognition. (0) |
[26] | NECH A, Kemelmachershlizerman I. Level playing field for million scale face recognition[J]. Computer vision and pattern recognition. (0) |
[27] | ZHANG K, ZHANG Z, LI Z, et al. Joint face detection and alignment using multitask cascaded convolutional networks[J]. IEEE signal processing letters, 2016, 23(10): 1499-1503. DOI:10.1109/LSP.2016.2603342 (0) |
[28] | HUANG G.B, LEARNED-MILLER E. Labeled faces in the wild:updates and new reporting procedures[R]. Technical report UM-CS-2014-003. (0) |
[29] | JIA Y, SHELHAMER E, DONAHUE J, et al. Caffe:convolutional architecture for fast feature embedding[J]. Eprint arxiv, 2014: 675-678. (0) |
[30] | LIU F, ZENG D, ZHAO Q, et al. Joint face alignment and 3D face reconstruction[C]//European Conference on Computer Vision. Amsterdam, Netherlands, 2016:545-560. (0) |