《Bayesian Face Revisited: A Joint Formulation》论文解读
这篇文章发表于ECCV2012,来自MSRA的孙剑组。论文原文见:
概述
本文要解决的问题是获得人脸特征以后如何判断是不是同一个人。经典的贝叶斯人脸识别方法是为两个人脸的差异进行建模,但是作者看到这种方法降低了可分性。本文将两个人脸进行联合建模,并使用了一个先验条件简化了计算,模型的学习使用了EM算法。本文的方法优于经典的Bayesian face,在LFW数据集取得了92.4%的正确率。本文中人脸特征采用的是高维LBP特征(维度高达100k)。
Bayesian Face
两张人脸分别表示为和,表示两个人脸属于同一个人,表示两个人脸属于不同人。人脸验证问题就转变为将进行分类的问题,也就是判断和的大小。根据贝叶斯公式:
其中,先验概率,判断两个脸是不是同一个人只需要比较上面两个后验概率的大小。
将上面两个式子相除,可得:
把似然比拿出来可以写成
根据就可以判断两张脸是不是属于同一个人,若则大于,可以认为是同一个人。根据实际要求,还可以调节的阈值。这种方法最后只需要求解和。
Joint Formulation
经典的贝叶斯脸方法是研究,而本文将两张脸进行联合建模。最后的人脸验证问题就变成了比较和的大小,与上文一样,最后也可以转化为求解和。此时的表示为
A naive formulation
最简单的想法就是和都是高斯分布:
这里的两个协方差矩阵可以从训练数据中得到。文章指出,这样有两个缺点:(1)如果人脸的特征维数是d维,那么协方差矩阵维数就是2d维,训练数据不足会导致结果不可靠;(2)数据不是完全独立的,导致不是块对角的。
A joint formulation
为了得到更精确的模型,本文引入了人脸表示的先验知识。
图中左边表示人脸在特征空间上的分布,不同的人在特征空间上处于不同的位置。由于不同的角度、光照、表情等影响,同一个人在特征空间上并不是一个点,而是在一个位置的多个点组成。这样就可以把人脸这一随机变量变成两个独立随机变量的和。
其中,表示身份, 表示同一个人脸的不同的变化差异(角度、光照、表情等)。这里可以认为
由这个先验条件可以知道,也是0均值的高斯分布。
在假设中,身份变量是相同的,差异变量是独立的。的协方差矩阵为:
在假设中,和都是独立的:
最终的似然比
其中
这样求和的任务就变成了求和。只要求出这两个值就可以得到,就可以确定是不是同一个人。
Model learning
为了估计和两个矩阵,文章使用了EM-like算法,和EM算法一样,分为E步和M步。
E-step
这一步是已知和求和。对于一个人而言,他的是一个固定的值,多张照片就对应着多个值。
假如一个人有m张照片,引入隐变量,那么:
当给定一个观察值为时,隐变量的期望值为:
结合作者给的补充材料,最终可以得到
M-step
现在根据E-step中得到的和值更新参数和。由上面的E步可知,每个人都有一个对应的值和m个值,现有许多个人,那么就会有许多个和多个值,可以很容易的估计出和:
Initialization
第一次需要初始化和,只要用一个随机的正定矩阵即可,比如随机数据的协方差矩阵。
结果
本文使用WDRef数据集进行训练,最终在LFW数据集上取得了92.4%的正确率。
总结
本文主要解决的是获得人脸特征以后如何进行分类的问题,人脸特征提取仍然使用了之前的LBP和LE特征,文章的创新点在于将两个人脸表示进行联合建模。在人脸联合建模的时候,又使用了人脸的先验知识,将两张人脸的建模问题变为单张人脸图片的统计计算。本文数学推导众多,涉及到概率和矩阵的很多推导,我只写出了作者的一些关键结论,其中的更多推导需要结合论文和作者的参考材料才能继续进行。在DeepID中,最后获取特征以后也是使用了Joint Bayesian方法进行人脸确认。与别的方法相比,Bayesian方法仍有很强的生命力。