悉尼科技大学CVPR 2018论文:无监督学习下的增强人脸关键点检测器

雷锋网  •  扫码分享
我是创始人李岩:很抱歉!给自己产品做个广告,点击进来看看。  

雷锋网 (公众号:雷锋网) AI 科技评论按:本文作者为悉尼科技大学博士生董宣毅(Xuanyi Dong),他根据 CVPR 2018 录用论文 Supervision-by-Registration: An Unsupervised Approach to Improve the Precision of Facial Landmark Detectors 为 AI 科技评论撰写了独家解读稿件。

Supervision-by-Registration 的整体框架

Supervision-by-Registration(SBR) 是一个训练人脸关键点检测器的算法框架,能够利用无监督的方式增强任何基于图像的人脸关键点检测器。SBR 利用了物体在视频中的运动比较平滑的特性来提升一个现有的人脸关键点检测器。相比较其他人脸关键点检测算法,SBR 不需要利用任何额外的人工标注信息就能提升检测器的性能。下图是 SBR 的框架示意图。

悉尼科技大学CVPR 2018论文:无监督学习下的增强人脸关键点检测器

SBR 使用的训练数据是有标注的图像数据和无标注的视频数据。在训练过程中,SBR 可以用无监督的方式从视频中提取监督信息来优化检测器(神经网络)。在测试阶段,使用 SBR 训练的模型,可以在图像或视频数据上达到具有更高的精度,并且能让在视频中检测结果更加稳定。

Supervision-by-Registration 的训练过程

悉尼科技大学CVPR 2018论文:无监督学习下的增强人脸关键点检测器

SBR 的训练过程包含两个损失函数。一个是检测器损失函数,另一个是时序配准损失函数。这两者可以相互补充让人脸关键点检测器更加鲁棒。检测器损失函数作用于模型检测结果和人工标注上,优化使得在有标注的数据上,模型的检测结果和人工标注尽可能的接近。时序配准损失函数是优化在连续几帧内关键点检测结果的时序一致性。具体来说,输入连续的两帧图像 t-1 和 t,通过同一个人脸关键点检测器后,可以得到对于第 t-1 帧的检测结果和第 t 帧的检测结果,我们将第 t-1 帧的检测结果通过 Lucas-Kanade 算法跟踪到第 t 帧得到结果,时序配准损失函数就是为了让在第 t 帧上跟踪得到的结果和检测得到的,尽可能一致。值得注意的是,因为 Lucas-Kanade 算法不需要训练且有封闭解,我们将 Lucas-Kanade 算法写成了一个可求导的模块嵌入到 CNN 中。在训练的时候,检测器损失函数利用人脸外观信息通过人工标注学习关键点检测器;时序配准损失函数通过嵌入 Lucas-Kanade 模块保证了时序一致性。梯度可以通过 Lucas-Kanade 模块传给检测模型使得检测结果在相邻帧上一致。

(对于不同的检测器,检测器损失函数可能有所不同,比如比较经典的 CPM 和 Hourglass 使用 mean squared error 来优化检测器,也有一起些方法使用 L2 loss 优化。SBR 是一个通用的算法,可以作用于各种不同的人脸关键点检测器,提升他们的性能。)

Supervision-by-Registration 是受什么启发提出来的?

目前训练 CNN 模型需要大量的标注数据。然而标注大量的数据需要消耗很多的人力资源,并且人工标注往往不准确。如下图所示是在两张嘴的图片上标注 16 个关键点的位置,一个颜色表示一个关键点,我们给出了九个标注人员的标注结果,可以发现每个标注人员对关键点的定位方差很大。这些标注误差对训练和测试模型会有很大的影响。因此,我们就想能不能使用一种不需要人工标注的监督信息来训练 CNN 模型?基于这个目的,我们提出了 supervision be registration,利用视频里相邻帧间时序一致性来作为监督信息。

悉尼科技大学CVPR 2018论文:无监督学习下的增强人脸关键点检测器

为什么文章里显示 Supervision-by-Registration 带来的提高不是很多?

目前的人脸关键点检测的评测指标主要是两种,NME(Normalized Mean Error)和 AUC(Area Under Curve)。这两个评价指标可以很好的衡量检测结果和人工标注之前的差距,但是没法很好地体现模型在视频中的表现。一般的人脸关键点检测器预测的关键点坐标在视频中会出现很强的抖动现象,但是使用 SBR 训练的人脸关键点检测器的结果在视频中十分稳定,这些提升目前还没有很好的衡量方式,但是从演示视频中可以清晰地体现出 SBR 的效果。


此处有动图(https://raw.githubusercontent.com/facebookresearch/supervision-by-registration/master/cache_data/cache/demo.gif)

使用 Supervision-by-Registration 需要注意哪些细节?

SBR 的核心是时序配准损失函数,依赖于 Lucas-Kanade 跟踪模块,所以跟踪的结果的好坏直接影响着 SBR 的效果。同时,检测器预测的坐标是 Lucas-Kanade 跟踪模块的初始化坐标,只有当这个初始坐标大致准确的时候跟踪才有意义。所以使用需要注意两点,(1)当检测器在标注图片初始化好之后在开始使用 SBR 训练。(2)选择无标注的视频时需要注意视频的分辨率/人脸大小/遮挡等条件来保证 Lucas-Kanade 跟踪模块能够成功跟踪。

Supervision-by-Registration 的相关资源

PyTorch Implementation: https://github.com/facebookresearch/supervision-by-registration

Facebook Research Blog: https://research.fb.com/publications/supervision-by-registration-an-unsupervised-approach-to-improve-the-precision-of-facial-landmark-detector

Demo Video : https://drive.google.com/file/d/19tLhPBb2f8S70jFk_WTUYKaJxVEsQGwX/view

悉尼科技大学CVPR 2018论文:无监督学习下的增强人脸关键点检测器

随意打赏

提交建议
微信扫一扫,分享给好友吧。