读《Facial Point Detection using boosted Regression and Graph Models》

对于这篇paper用Markov Random Field对global shape constraint建模很感兴趣,所以来阅读下这篇paper。

BoRMaN算法融合了作者三块的先验知识:

  • a priori probability of a point’s location based on the location of the detected face.
  • regression predictors(SVR).
  • MRF to model the points’ relative positions.

A priori probability

给一块local patch,用SVR回归出patch对应的point location,这就要求local patch在真实point附近,不能偏离太远。所以,在face bbox检测之后,作者对每个facial point的x-, y- 坐标建立先验概率模型以确保这一点。

首先,作者将分为两组:稳定点和非稳定点。稳定点指那些不受面部表情影响的坐标。在先验概率模型中,先检测稳定点,之后作为检测非稳定点的辅助工具。 具体地,将groundTruth T(22 points坐标)对齐到face bbox得到新坐标系下的Tfb。然后计算各自稳定点所有样本x-, y-坐标的均值和标准差,得到二元高斯先验概率模型(?测试时怎么用这个二元高斯模型)。然后利用检测出的稳定点,对image F做transformation将其摆正Fr,此时得到非稳定点新坐标(对齐到摆正后的人脸坐标系统),同样的方式得到二元高斯先验概率模型。

Regression Prediction

该步骤的task是找出关联patch location L和target point T之间向量v。可以利用SVR的非线性能力建立两种映射关系:

  • Regressor Ra负责找出向量v的角度a
  • Regressor Rp负责找出向量v的长度p,即L到T的距离

这一步骤的估计有一定的误差,算法借助于其余面部点对每个面部点应用空间约束限制,抑制了不可靠的面部预测点。

Spatial Relations

作者提出“稳定点的检测要比非稳定点可靠很多,所以使用稳定点帮助非稳定点的检测”是很有必要的。文章利用MRF对relations between relative positions of pairs of points建模,一对point{i,j}间的relative position是指从point i指向point j的向量r_ij,并作为MRF的节点。两个向量间的关系(可以理解为MRF中两个节点间的边)由两个参数决定:向量间的Ra关系(a.ij - a.kl)和Rp关系(p.ij / p.kl),而且模型能对平面旋转和人脸尺度变化具备一定的鲁棒性。具体来说,某对向量节点间角度呈正交角(a.ij - a.kl在90度左右范围),还有某对向量间长度应近似相等(p.ij / p.kl在1左右范围)。

文章提出用Sigmoid函数对这些变量建模。如果变量取值范围为[m-, m+],那么函数S(x)=P(min(v-m-, -v+m+))在变量v超出范围时,概率值极速下降,最终会影响到MRF的联合概率值。

最终所有节点间关系确立,可以得到MRF的联合概率。

算法流程

BoRMaN迭代改进检测结果。首先,算法选择face bbox下最大先验概率的坐标作为初始预测,并作为SVR的输入patch。将每一轮迭代预测的新位置加入各个点的预测集合,取均值作为新的预测结果。将新预测结果代入MRF模型,生成下一轮SVR需要的输入patch(??这边,MRF如果发现某些点不满足约束,怎么调整??怎么通过MRF调整点坐标)。为了避免重复的输入patch,算法向MRF给出的patch位置加入了0均值的Guassian噪声。

Kai Su /
Published under (CC) BY-NC-SA in categories Research  tagged with face alignment  paper