人脸关键点检测是人脸识别和分析领域中的关键一步,它是诸如自动人脸识别、表情分析、三维人脸重建及三维动画等其它人脸相关问题的前提和突破口。
虽然人脸的结构是确定的,由眉毛、眼睛、鼻子和嘴等部位组成,近似是一个刚体,但由于姿态和表情的变化,不同人的外观差异,光照,遮挡的影响,准确的检测处于各种条件下的人脸也是一件相对困难的事情。
传统人脸关键点检测数据库为室内环境下采集的数据库,而现阶段人脸关键点检测数据库通常为复杂环境下采集的数据库。
AFLW 人脸数据库包含 25993 幅从 Flickr 采集的人脸图像,每个人脸标定 21 个关键点。
COFW 人脸数据库包含 LFPW 人脸数据库训练集中的 845 幅人脸图像以及其他 500 幅遮挡人脸图像,而测试集为 507 幅严重遮挡(同时包含姿态和表情的变化)的人脸图像,每个人脸标定 29 个关键点。
MVFW 人脸数据库为多视角人脸数据集,包括 2050 幅训练人脸图像和 450 幅测试人脸图像,每个人脸标定 68 个关键点。
Dlib是基于现代C++的一个跨平台通用的框架,缘起于实现了2014年一篇著名CVPR论文的算法:“用回归树,一毫秒搞定人脸对齐。”每个人脸标定 68 个关键点,自从人脸检测Dlib库问世,网友们纷纷表示:好用!
毋庸置疑,人脸关键点越多,检测就更精准、更贴边、更能解决关键点抖动的问题,满足更多场景需求。很明显,我们发现尽管是目前最受欢迎的人脸检测Dlib,特征点最多也只是到眉毛处,在额头区域是没有分布特征点的。
于是,最近有个叫做Niko的程序猿,发布了拥有81个关键点,能够覆盖额头区域的面部检测工具:
其主要的工作就是在人脸检测Dlib库68个特征点的基础上,增加了13个特征点(共81个) ,把前额也包含在追踪范围里,使得头部检测和图像操作更加精确。
0-67是dlib既有的68个脸部关键点;
68-80是程序猿新增的13个前额关键点。
程序猿说,他是从Patrick Huber的eos项目 (一个轻量级3DMM) 上,fork出了一个分支,用Surrey人脸模型找到了自己需要的这13个额外的点。然后,用整个ibug大数据库训练了模型,拿81点替换了原本的68点。
它的训练方法类似于Dlib的68个面部特征点形状预测器。只是在原有的68个特征点的基础上,在额头区域增加了13个点。这就使得头部的检测,以及用于需要沿着头部顶部的点的图像操作更加精准。