0
本文作者: 我在思考中 | 2021-09-06 11:11 |
作者 | 邱海波
编辑 | 王晔
本文是对发表于计算机视觉领域顶级会议ICCV 2021的论文“SynFace: Face Recognition with Synthetic Data” (基于生成数据的人脸识别)的解读。
该论文由于京东探索研究院联合悉尼大学以及腾讯数据平台部完成,针对当前用来训练人脸识别模型的真实人脸数据存在隐私权限、标签噪声和长尾分布等问题,提出利用生成仿真的人脸数据来代替真实数据去对人脸模型进行训练。文中通过引入Identity Mixup以及Domain Mixup极大地缩小了生成数据训练得到的模型与真实数据得到模型的准确率差距,并且系统性的分析了训练数据中各种特性对识别准确率的影响。
论文链接:https://arxiv.org/abs/2108.07960
为了解决上述问题,我们准备引入生成数据代替真实数据来进行人脸识别模型的训练。近些年来,基于GAN[2]的生成模型发展十分迅猛,其生成得到的人脸图片在某些场景下已经可以做到以假乱真的效果,参见图1。
图1:第一行为真实人脸,第二行则是生成人脸
为了能进一步控制生成人脸的各种特性(如身份,表情,姿态和光照条件),我们采用了DiscoFaceGAN[3]作为基本的生成模型,先与真实数据训练得到的模型进行对比分析。RealFace和SynFace分别代表利用真实和生成数据训练所得到的模型,然后在真实以及生成的测试集上进行评估,结果参见表1。
表1:对真实以及生成数据训练得到模型进行交叉领域的评估结果
由实验结果我们可以发现,两者之间识别准确率的差距是由于真实数据与生成数据两种不同领域的差异造成。通过进一步观察生成的人脸,我们发现同一类(即同一个人)中的样本人脸差异性较小,即类内距离较小。我们利用MDS[4]可视化了真实数据与生成数据的深度特征,参见图2中绿色五边形以及青色三角形。显而易见,生成数据的类内距离明显小于真实数据。
图2:真实数据以及三类不同生成数据的深度特征可视化
Identity Mixup (身份混合)
为了增大生成数据的类内距离,受到Mixup[5]的启发,我们在生成人脸模型的身份系数空间引入mixup,即Identity Mixup (IM),得到Mixup Face Generator。对于两个身份系数和,我们得到其中间态(内插值)作为一个新身份系数,其对应的标签也随之线性改变,参见公式1。另外我们通过可视化发现,如此得到的新身份系数同样能够生成高质量的人脸图片,而且其身份信息随着权重系数的变化,逐渐从一个身份变化到另一个身份,参见图3。
公式1:身份系数空间的mixup
图3:身份随着Identity Mixup的权重的改变而平滑过渡
为了验证IM能够增大生成人脸数据的类内距离,我们可视化了三种不同程度(通过系数调节)IM后生成人脸的特征(参见图2)。我们可以看到从青色三角形到蓝色正方形,再到红色圆圈,它们的类内距离是逐渐增大的,相应的准确率也从88.75到89.47再到90.95,充分说明了IM能够增大类内距离从而来提高识别准确率。另外从表2也可以看到,加入IM后,识别准确率从88.98大幅度提升至91.97。后续的图5图6以及表3的实验结果也同样证明了IM的有效性。
Domain Mixup (领域混合)
为了进一步缩小用生成数据训练得到模型与真实数据得到模型之间的准确率差距,我们引入了Domain Mixup(DM)作为一种通用的domain adaptation(领域适应)的方法来缓解。具体来说,我们仅利用一小部分带有标注的真实数据加上大规模的生成数据,通过DM的方式来训练模型,DM具体数学形式参见公式2,和分别代表生成和真实的人脸图片,其对应的标签也随之线性改变。
公式2:领域空间的mixup
于是我们利用DM来混合真实与生成数据来进行模型训练,与只用真实数据训练模型得到的对比结果如表2. 可以观察得到,我们引入的DM能够极大且稳定地提升在各种不同设置下的准确率。
表2:利用真实数据以及混合数据训练得到模型的准确率
比如最后一组实验中,95.78相较于91.22的提升非常大。我们推测这是由于混合小部分真实数据能够给生成数据带来真实世界的外观信息比如模糊和光照等,如此一来缩小了两个领域的差异,进而提升了准确率。如果我们继续增加真实数据到2K_20,那么准确率可以从95.78进一步提升至97.65。整体流程图包括Identity Mixup以及Domain Mixup可参见图4.
图4:整个框架流程图
利用我们得到的Mixup Face Generator,我们可以控制生成人脸的数量,身份,表情,姿态以及光照,故而接下来我们来系统性地分析这些因素在人脸识别任务中的具体影响。
首先我们来分析长尾分布的问题,由于真实人脸数据基本都是从互联网上收集而来,导致某些类(人)拥有大量样本,某些类则只有少数几个样本,这样不平衡的分布训练得到的模型性能较差。我们控制生成数据每个类别样本数量来模拟这一问题,如图5, 2K_UB1到2K_UB2再到2K_50,它们的分布越来越平衡,可以看出它们对应的准确率也是逐步上升。通过控制生成数据的类别样本数量,我们可以天然地避免长尾分布带来的问题。此外通过引入Identity Mixup (IM),所有的设置都得到了大幅度的提升。
图5:长尾分布问题
然后我们再来探索生成数据集的宽度(即类别数量)和深度(即类内样本数量)对识别准确率的影响,参见表3. 可以看到随着深度和宽度的增加,准确率都是逐步上升的。但是深度在达到20之后,准确率就开始出现饱和。另外我们通过观察(a)(e)可以看到,它们具有相同数量的总样本(50K),但是(a)极大地超过了(e),差距为4.37,说明了宽度相比深度承担了更重要的角色。另外通过引入Identity Mixup (IM),我们可以看到所有的设置都得到了很大地提升,再次说明了IM的有效性。
表3:生成数据集的宽度以及深度探索
最后我们分析了生成人脸各个特性(即表情,姿态和光照)的影响,我们通过保持其他特性不变,只改变当前探索的特性。比如Expression就是该类内保持其他姿态和光照等不变,只变化表情得到的生成数据,它们训练得到的模型准确率参见图6. 可以看到什么都不变(Non)和只变表情取得了最差的结果,这是因为这里生成的表情种类十分有限,基本上是微笑,故而可以等价成什么都不变。改变姿态和光照取得了巨大提升,这可能是因为测试数据集中的姿态和光照变化非常大的缘故。同样地,引入IM带来了稳定的提升,并且都达到了相似的准确率。潜在的原因是IM可以被视作为一种很强的数据增强,减少了各个特性对最终准确率的影响。
图6:生成人脸不同特性的对比实验
在本文中我们探索了如何利用生成仿真的人脸数据来有效地训练人脸识别模型。通过相关实验结果对比分析,我们提出Identity Mixup来增加生成数据的类内距离,并引入Domain Mixup进一步缩小生成数据与真实数据的领域差异,两者皆大幅度地提升了识别准确率,极大地缩小了与真实数据训练所得到模型的差距。此外我们对于人脸的不同特性进行了系统性分析,揭示了训练数据集的深度与宽度对于最终识别率都有很大影响,随着两者的增加,识别率也会随之上升,但是饱和情况会先出现在深度维度,即说明宽度更为重要。再者就是丰富姿态和光照的变化能使得生成数据更加接近真实数据,从而大幅度提升识别率。更多实验结果分析还请参见原论文。
扫码添加小助手微信(AIyanxishe3),备注ICCV2021拉你进群。
雷锋网雷锋网雷锋网
雷峰网特约稿件,未经授权禁止转载。详情见转载须知。