1. 什么是关键点检测?

人脸关键点检测是指给定人脸图像,定位出人脸面部的关键点,包括眉毛、眼睛、鼻子、嘴巴、脸部轮廓区域的点,由于受到姿态和遮挡等因素的影响,人脸关键点检测是一个富有挑战性的任务。

人脸关键点是人脸各个部位的重要特征点,通常是轮廓点与角点,下图是96个面部关键点检测结果。
在这里插入图片描述
其中点代表位置,数字代表序号。人脸关键点可以有以下主要应用:

  • 人脸姿态对齐,人脸识别等算法都需要对人脸的姿态进行对齐从而提高模型的精度。
  • 人脸美颜与编辑,基于关键点可以精确分析脸型、眼睛形状、鼻子形状等,从而对人脸的特定位置进行修饰加工,实现人脸的特效美颜,贴片等娱乐功能,也能辅助一些人脸编辑算法更好地发挥作用。
  • 人脸表情分析,基于关键点可以对人的面部表情进行分析,从而用于互动娱乐,行为预测等场景。

2. 人脸关键点数据集

关键点能够反映各个部位的脸部特征,随着技术的发展和对精度要求的增加,人脸关键点的数量经历了从最初的5个点到如今超过200个点的发展历程,在人脸等算法上拥有领先技术优势的商汤科技先后定出过106个关键点等行业标准。

2.1 5点标注

人脸面部最关键的有5个点,分别为左右两个嘴角,两个眼的中心,鼻子,这5个关键点属于人脸内部关键点,根据它们就可以计算出人脸的姿态。当然早期也有标注4个点以及6个点的方案。 2005年发布的 FRGC-V2(Face Recognition Grand Challenge Version2.0)中标注了双眼、鼻子、嘴巴、下巴共5个关键点。 2007年发布的Caltech 10000 Web Faces数据集中标注了双眼、鼻子和嘴巴共4个关键点。 2013年的AFW数据集中标注了双眼、鼻子、嘴唇共6个关键点,其中嘴唇有3个点。 2014年发布的MTFL/MAFL数据集中标注了双眼、鼻子和2个嘴角共5个关键点。
在这里插入图片描述

2.2 68点标注

68点标注是现今最通用的一种标注方案,早期在1999年的Xm2vtsdb数据集中就被提出,300W数据集和XM2VTS等数据集也都采用了68个关键点的方案,被OpenCV中的Dlib算法中所采用。 68个关键点的标注也有一些不同的版本,这里我们介绍最通用的Dlib中的版本,它将人脸关键点分为内部关键点和轮廓关键点,内部关键点包含眉毛、眼睛、鼻子、嘴巴共计51个关键点,轮廓关键点包含17个关键点。
在这里插入图片描述
在这里插入图片描述

Dlib所采用的68个人脸关键点标注可以看上图,单边眉毛有5个关键点,从左边界到右边界均匀采样,共5×2=10个。 眼睛分为6个关键点,分别是左右边界,上下眼睑均匀采样,共6×2=12个。 嘴唇分为20个关键点,除了嘴角的2个,分为上下嘴唇。上下嘴唇的外边界,各自均匀采样5个点,上下嘴唇的内边界,各自均匀采样3个点,共20个。 鼻子的标注增加了鼻梁部分4个关键点,而鼻尖部分则均匀采集5个,共9个关键点。 脸部轮廓均匀采样了17个关键点。 如果把额头部分也加上去,就可以得到更多,比如81个关键点。

2.3 96/98点标注

公开的数据集比较少超过68个关键点,其中比较有名的是Wider Facial Landmark in the Wild(WFLW),它提供了98个关键点。 WFLW 包含了 10000 张脸,其中 7500 用于训练,2500 张用于测试。除了关键点之外,还有遮挡、姿态、妆容、光照、模糊和表情等信息的标注。
在这里插入图片描述
在这里插入图片描述

2.4 106与186点标注

106个关键点标注是商汤科技提出的在业内被广泛采用的方案,包括Face++等企业开放的API多采用这个标注方式,具体信息如下:

在这里插入图片描述
在这里插入图片描述
外轮廓,33个均匀采样点,比Dlib更加密集。 嘴巴20个关键点,与Dlib标注的相同。 鼻子15个关键点,与Dlib相比增加了两侧鼻梁部位。 眼睛20个关键点,每只眼睛轮廓点共8个,眼球中心点2个。 眉毛18个关键点,区分了上眉毛边界。 后续又在106个关键点的基础上提出了更加稠密的186个关键点,如今各个开发团队使用的点数可能会有差异,比如百度使用过72和150个点的方案。 除了以上这些常用的方案,还有很多的数据集也有自己的标注标准,比如BioID Face Dataset包含20个关键点,BUHMAP-DB包含52个关键点,MUCT包含76个关键点,PUT大部分图像包含30个关键点,其中正面人脸包括了194个点。

3. 数据集下载

数据集介绍链接
300W共600张图片(300室内,300室外),68关键点https://ibug.doc.ic.ac.uk/resources/300-W/
XM2VTS2360张正面图,68关键点http://www.ee.surrey.ac.uk/CVSSP/xm2vtsdb/
LFPW1432张图片,29关键点https://neerajkumar.org/projects/face-parts/
HELEN2000张训练集,330张测试集http://www.ifp.illinois.edu/~vuongle2/helen/
IBUG135张图片https://ibug.doc.ic.ac.uk/resources/facial-point-annotations/
XM2VTS2360张正面图,68关键点http://www.ee.surrey.ac.uk/CVSSP/xm2vtsdb/
AFLW20000张训练,4386张测试
FRGC V250000张训练,4003张测试
ICME 人脸106关键点检测比赛官方数据集106个点https://facial-landmarks-localization-challenge.github.io/#index https://sites.google.com/view/hailin-shi
CelebA(2015)5个点,10177个人,共202599幅人脸图像
WFLW(ECCV2018)98个点,7500训练集,2500测试集
MTFL/MAFL(2014)68个点,MTFL数据集包含了12995 张脸,5个关键点标注;(MAFL) 数据集则包含了20000张脸,5个关键点标注与40个面部属性
SCUT-FBP(2017)86个点,2000亚洲女性,2000亚洲男性,750高加索男性,750高加索女性

4. 人脸关键点难点

人脸关键点是人脸相关问题的基础,作为基础模块,人脸关键点检测对速度很敏感,否则将会影响系统整体的效率,所以对人脸关键点检测的要求是,又准又快。
人脸关键点目前存在的问题(不能又准又快)的原因如下:

  • 局部变化:表情、局部特殊光照、部分遮挡,导致一部分关键点偏离了正常的位置,或者不可见了;
  • 全局变化:人脸姿态、成像质量;
  • 数据不均衡:在人脸数据里面,数据不均衡体现在,大部分是正脸数据,侧脸很少,所以对侧脸、大角度的人脸不太准;
  • 模型效率:在 CNN 的解决方案中,模型效率主要由 backbone 网络决定。

在实际使用中,人脸关键点的问题主要有两个:

  • 对“点是否遮挡”判断是否准确
  • 对大角度人脸(±60 度以内)点位置预测的准确性和稳定性
Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐