CN112052843B - 一种从粗到精的人脸关键点检测方法 - Google Patents
一种从粗到精的人脸关键点检测方法 Download PDFInfo
- Publication number
- CN112052843B CN112052843B CN202011095352.1A CN202011095352A CN112052843B CN 112052843 B CN112052843 B CN 112052843B CN 202011095352 A CN202011095352 A CN 202011095352A CN 112052843 B CN112052843 B CN 112052843B
- Authority
- CN
- China
- Prior art keywords
- face
- key points
- module
- eyebrow
- size
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/161—Detection; Localisation; Normalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
- G06N20/20—Ensemble learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/16—Human faces, e.g. facial parts, sketches or expressions
- G06V40/168—Feature extraction; Face representation
- G06V40/171—Local features and components; Facial parts ; Occluding parts, e.g. glasses; Geometrical relationships
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Oral & Maxillofacial Surgery (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Computational Linguistics (AREA)
- Biomedical Technology (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Medical Informatics (AREA)
- Image Analysis (AREA)
Abstract
本发明提供了一种从粗到精的人脸关键点检测方法,该方法为:步骤1、设置一套人脸关键点,即用132个关键点来表示整个脸部,步骤2、收集一批未标注的人脸照片作为样本;步骤3、网络构建,即搭建一个全卷积的神经网络来进行回归关键点热图;步骤4、使用神经网络结构训练一整体粗糙模型、局部精确眉毛模型、局部精确眼睛模型、局部精确鼻子模型、局部精确嘴巴模型,步骤5、输入照片,通过整体粗糙模型得到粗糙的132个关键点,并得到精确的局部五官关键点将四个局部精确模型中检测到的眉毛、眼睛、鼻子、嘴巴关键点与整体粗糙模型检测出的轮廓关键点合并起来,就得到了精确的人脸132关键点。提升了关键点检测的精度,针对局部五官的优化效果明显。
Description
技术领域
本发明涉及人脸识别技术领域,特别是一种从粗到精的人脸关键点检测方法。
背景技术
人脸关键点检测指的是输入二维人脸照片,定位出照片中人脸上的具有特定语义的关键点坐标。常见的人脸关键点包括:人脸外部轮廓关键点、眉毛轮廓关键点、眼睛轮廓关键点、鼻子轮廓关键点、嘴巴轮廓关键点等。图1给出了几种常见的人脸关键点示例图。
图1:(a)AR人脸数据集发布于1998年,包含22个人脸关键点。(b)XM2VTS人脸数据集发布于1999年,包含68个人脸关键点(c)FRGC-V2人脸数据集发布于2005年,包含5个人脸关键点。(d)AFLW人脸数据集发布于2011年,包含21个人脸关键点。(e)AFW人脸数据集发布于2013年,包含6个人脸关键点。(f)IBUG人脸数据集发布于2013年,68个关键点。
人脸关键点检测是许多人脸相关应用的基础,例如:人脸识别、三维人脸重建、人脸美妆、换脸、表情迁移等。近年来,随着深度学习的发展,卷积神经网络的特征提取能力已经取得有目共睹的成绩。而基于卷积神经网络的热图回归方法已经成为了解决人脸关键点检测问题的主流方法,并且效果相对传统的坐标回归方法有了显著的提升。
热图回归指的是根据输入图像,使用卷积提取特征,再使用反卷积等上采样操作将特征图还原到与输入图像同样尺寸,最终每个关键点输出一张热图。热图本质上是一个二维数值矩阵,各像素的值被限制在0到1之间,该矩阵大部分位置数值都为0,只有关键点对应位置周围存在数值,且关键点对应位置的数值为最大。每张热图都代表了某个预先定义的关键点,热图上数值最大的值所在的像素坐标即为该关键点在原图上的坐标。
热图回归相较于直接回归坐标值更能引入空间上的局部特征,已经得到业界的普遍认可。在训练卷积神经网络时,输入图像的尺寸往往是固定的,而且不会太大。绝大部分目前常用的网络结构对于输入图像的尺寸都要求在300×300以内。过大的输入图像往往意味着需要增加网络的深度,这对网络的训练难度、对训练样本数量的要求都会大大增加。因此,本专利通常会将大尺寸的原始图片样本,进行裁剪、缩放到统一尺寸。在输入图像尺寸较小的条件下回归关键点,那么势必会存在脸部局部细节的识别误差。例如:眼角、嘴角等部位。当这些关键点坐标还原到大尺寸的原图上时,这些误差就会被放大。这也是本文提出的从粗到精的关键点检测方法着力解决的难题。
在人脸数据集方面,得益于开源观念的普及,目前市面上存在许多开源的人脸关键点数据集。如果是做研究,使用这些开源数据集即可。然而,如果是企业实际运用过程中就会发现,这些开源数据集存在几个问题。
1.存在多种关键点规范。不同数据集往往采用不同的关键点规范,难以同时使用。
2.多数数据集中人脸关键点的数量不足。例如IBUG数据集中定义的人脸68个关键点,其眉毛部分的关键点仅围绕着眉毛的上边缘,而下边缘并没有关键点;鼻翼部分也是非常重要的人脸特征,同样缺少关键点来表示该特征;而作为人脸重要特征的眼睛、人脸轮廓部分的关键点略显稀疏,表达人脸特征的能力有限。
3.多数数据集中的人脸为欧美人种,与本专利的实际运用场景不符,这也是影响模型准确度的一个关键因素。
发明内容
为克服上述问题,本发明的目的是提供一种从粗到精的人脸关键点检测方法,提升了关键点检测的精度,尤其是针对局部五官的优化效果明显。
本发明采用以下方案实现:一种从粗到精的人脸关键点检测方法,所述方法包括如下步骤:步骤1、设置一套人脸关键点,即用132个关键点来表示整个脸部,其中人脸轮廓部分包括33个关键点,眉毛部分包括22个关键点,眼睛部分34个关键点,鼻子部分包括15个关键点,嘴巴部分包括28个关键点;
步骤2、收集一批未标注的人脸照片作为样本,通过所述人脸关键点对这批样本进行关键点标注;
步骤3、网络构建,即搭建一个全卷积的神经网络来进行回归关键点热图;
步骤4、使用神经网络结构训练一整体粗糙模型、局部精确眉毛模型、局部精确眼睛模型、局部精确鼻子模型、以及局部精确嘴巴模型,该整体粗糙模型能回归整张脸共132个关键点的模型,所述局部精确眉毛模型、局部精确眼睛模型、局部精确鼻子模型、局部精确嘴巴模型分别专注于检测眉毛、眼睛、鼻子、嘴巴四个人脸五官关键点;训练样本采用所述人脸照片的样本;
步骤5、检测时,输入照片,通过整体粗糙模型对输入照片进行预测,得到粗糙的132个关键点,根据这些粗糙132个关键点裁剪出左眉毛、右眉毛、左眼睛、右眼睛、鼻子、嘴巴五官部件,将这些五官部件分别送入对应的局部精确模型中,能得到精确的局部五官关键点将四个局部精确模型中检测到的眉毛、眼睛、鼻子、嘴巴关键点与整体粗糙模型检测出的轮廓关键点合并起来,就得到了精确的人脸132关键点。
进一步的,所述步骤2中收集的人脸照片样本后先进行眉毛处理,由于化妆的原因,眉毛实际上能够呈现出非常多的姿态,为了使关键点检测方法能够兼容各种类型的眉毛,收集了一批特殊眉形的人脸照片样本,这些特殊眉形包括:八字眉、刀眉、短粗眉、飞剑眉、尖刀眉、开尾眉、山黛眉、以及长虹眉;在眉毛标注过程中要求眉头使用2点来表示,眉尾使用1点来表示,同时在眉形转折处必须有点;在训练局部精确眉毛模型时,需要将局部五官进行裁剪,每个人脸上有2个眉毛,则从每个样本中裁剪出2个眉毛样本,为了保证两个眉毛的关键点序一致,将右眉统一水平翻转,并相应地调整了样本中的关键点序。
进一步的,所述收集到的人脸照片样本中对眼睛进行与眉毛相同的处理,即每个人脸照片中都包含两个眼睛,在训练局部精确眼睛模型时,将每只眼睛单独裁下,每个人脸上有2个眼睛,为了保证两个眼睛关键点序一致,统一将右眼水平翻转,并相应地调整了样本中的关键点序。
进一步的,所述步骤3中网络构建进一步具体为:输入人脸照片图像,转化为张量后尺寸为(256,256,3),分别代表(宽,高,通道);全卷积的神经网络中模块A代表尺寸=3×3,步长=2,padding=1的二维卷积,包含64个卷积核,最终输出的张量尺寸为(128,128,64);全卷积的神经网络中模块B代表一个残差模块,输出的张量尺寸为(128,128,128);模块C是一个尺寸=2×2,步长=2的均值池化,输出的张量尺寸为(64,64,128);模块D是与模块B具有相同结构的残差模块,输出的张量尺寸为(64,64,128);模块E是与模块B、D具有相同结构的残差模块,输出的张量尺寸为(64,64,256);模块F是一个Hourglass模块,它由多个下采样层和上采样层组成,能够很好地提取全尺寸特征,输出的张量尺寸为(64,64,256);模块G是一个尺寸为3×3,步长=1,padding=1的二维卷积,包含256个卷积核,输出张量的尺寸为(64,64,256);模块H是一个与模块G具有相同结构的卷积层,输出张量的尺寸为(64,64,256);模块I是一个尺寸为1×1,步长stride=1,padding=1的二维卷积,卷积核的数量等于待检测的关键点数量,输出张量的尺寸是(64,64,待检测的关键点数量num_keypoints);最终,对输出张量上每个像素点进行sigmoid函数激活,将输出限制在0-1之内,即可得到热图集合;
神经网络中使用到的所有卷积层在激活函数之前都进行了批量归一化操作,并且所有卷积层的激活函数都使用ReLU激活函数。
进一步的,所述残差模块是被广泛使用的一个卷积特征提取模块,而Hourglass模块则是形如漏斗的一个卷积网络模块,它能够捕获并整合图像所有尺度的信息,并且能够使输出尺寸与输入尺寸相同,适用于热图回归的应用场景,所述神经网络的输入是256×256的二维图像,最终为每个关键点输出一个尺寸为64×64的热图。
进一步的,所述人脸照片为亚洲人脸照片。
本发明的有益效果在于:本专利提出的全新的人脸132个关键点定义相较于传统的68个点更能体现人脸的特征。且本专利分析了现有数据集关键点定义不统一、亚洲人脸样本稀缺等特点,自制了一个高质量的亚洲人脸关键点样本集,提高了检测的准确性。
本专利采用热图回归的方式实现关键点检测的目的,在网络构建中采用善于提取图像特征的残差模块以及善于提取全尺寸信息的Hourglass模块,在保证网络复杂度的前提下达到了很好的精度。
本专利提出的由粗到精的关键点检测方法极大地提升了关键点检测的精度,尤其是针对局部五官的优化效果明显。使得众多依赖于关键点的人脸相关应用的效果得以进一步提升。
附图说明
图1是现有技术中几种常见的人脸关键点示例图。
图2是本发明的方法流程示意图。
图3是本发明一实施的推理过程流程示意图。
图4是本发明网络构建示意图。
图5是本发明实施例的热图。
具体实施方式
下面结合附图对本发明做进一步说明。
请参阅图2所示,本发明的一种从粗到精的人脸关键点检测方法,所述方法包括如下步骤:步骤1、设置一套人脸关键点,即用132个关键点来表示整个脸部,其中人脸轮廓部分包括33个关键点,眉毛部分包括22个关键点,眼睛部分34个关键点,鼻子部分包括15个关键点,嘴巴部分包括28个关键点;
步骤2、收集一批未标注的人脸照片作为样本,通过所述人脸关键点对这批样本进行关键点标注;
步骤3、网络构建,即搭建一个全卷积的神经网络来进行回归关键点热图;
步骤4、使用神经网络结构训练一整体粗糙模型、局部精确眉毛模型、局部精确眼睛模型、局部精确鼻子模型、以及局部精确嘴巴模型,该整体粗糙模型能回归整张脸共132个关键点的模型,所述局部精确眉毛模型、局部精确眼睛模型、局部精确鼻子模型、局部精确嘴巴模型分别专注于检测眉毛、眼睛、鼻子、嘴巴四个人脸五官关键点;训练样本采用所述人脸照片的样本;
步骤5、检测时,输入照片,通过整体粗糙模型对输入照片进行预测,得到粗糙的132个关键点,根据这些粗糙132个关键点裁剪出左眉毛、右眉毛、左眼睛、右眼睛、鼻子、嘴巴五官部件,将这些五官部件分别送入对应的局部精确模型中,能得到精确的局部五官关键点将四个局部精确模型中检测到的眉毛、眼睛、鼻子、嘴巴关键点与整体粗糙模型检测出的轮廓关键点合并起来,就得到了精确的人脸132关键点。
所述步骤2中收集的人脸照片样本后先进行眉毛处理,由于化妆的原因,眉毛实际上能够呈现出非常多的姿态,为了使关键点检测方法能够兼容各种类型的眉毛,收集了一批特殊眉形的人脸照片样本,这些特殊眉形包括:八字眉、刀眉、短粗眉、飞剑眉、尖刀眉、开尾眉、山黛眉、以及长虹眉;在眉毛标注过程中要求眉头使用2点来表示,眉尾使用1点来表示,同时在眉形转折处必须有点;在训练局部精确眉毛模型时,需要将局部五官进行裁剪,每个人脸上有2个眉毛,则从每个样本中裁剪出2个眉毛样本,为了保证两个眉毛的关键点序一致,将右眉统一水平翻转,并相应地调整了样本中的关键点序。
所述收集到的人脸照片样本中对眼睛进行与眉毛相同的处理,即每个人脸照片中都包含两个眼睛,在训练局部精确眼睛模型时,将每只眼睛单独裁下,每个人脸上有2个眼睛,为了保证两个眼睛关键点序一致,统一将右眼水平翻转,并相应地调整了样本中的关键点序。
其中,所述步骤3中网络构建进一步具体为:输入人脸照片图像,转化为张量后尺寸为(256,256,3),分别代表(宽,高,通道);全卷积的神经网络中模块A代表尺寸=3×3,步长=2,padding=1的二维卷积,包含64个卷积核,最终输出的张量尺寸为(128,128,64);全卷积的神经网络中模块B代表一个残差模块,输出的张量尺寸为(128,128,128);模块C是一个尺寸=2×2,步长=2的均值池化,输出的张量尺寸为(64,64,128);模块D是与模块B具有相同结构的残差模块,输出的张量尺寸为(64,64,128);模块E是与模块B、D具有相同结构的残差模块,输出的张量尺寸为(64,64,256);模块F是一个Hourglass模块,它由多个下采样层和上采样层组成,能够很好地提取全尺寸特征,输出的张量尺寸为(64,64,256);模块G是一个尺寸为3×3,步长=1,padding=1的二维卷积,包含256个卷积核,输出张量的尺寸为(64,64,256);模块H是一个与模块G具有相同结构的卷积层,输出张量的尺寸为(64,64,256);模块I是一个尺寸为1×1,步长stride=1,padding=1的二维卷积,卷积核的数量等于待检测的关键点数量,输出张量的尺寸是(64,64,待检测的关键点数量num_keypoints);最终,对输出张量上每个像素点进行sigmoid函数激活,将输出限制在0-1之内,即可得到热图集合;
神经网络中使用到的所有卷积层在激活函数之前都进行了批量归一化操作,并且所有卷积层的激活函数都使用ReLU激活函数。所述残差模块是被广泛使用的一个卷积特征提取模块,而Hourglass模块则是形如漏斗的一个卷积网络模块,它能够捕获并整合图像所有尺度的信息,并且能够使输出尺寸与输入尺寸相同,适用于热图回归的应用场景,所述神经网络的输入是256×256的二维图像,最终为每个关键点输出一个尺寸为64×64的热图。
下面结合一具体实施例对本发明作进一步说明:
如3所示,本发明的一种从粗到精的人脸关键点检测方法,
1人脸关键点定义
本专利吸收了目前市面上存在的一些关键点定义规则,同时也结合本专利的实际运用场景,推出了总共包含132个点的人脸关键点定义规则。
1.1脸部轮廓关键点。共33个点,相比于最常用的17点,本专利放入33点在对于一些腮帮子、下巴、太阳穴等位置的表现会更好,更能够体现一张脸的轮廓特征;
1.2眉毛关键点。共22个点,单只眉毛11个点。在观察了众多眉形之后,本专利总结出在眉头位置使用2点,在眉尾位置使用1个点的表示方式能够更贴合人体眉毛构造。同时本专利在传统的用5个点表示眉形的基础上增加了一点,这样能够更好的体现一些特殊的眉形,例如:刀眉、飞剑眉、开尾眉等。这些眉形在眉尾部分有明显的特征,通过更密集的眉毛关键点能够更好地表示这些特征。
1.3眼睛关键点。共34个点,单只眼睛17个点。其中眼睛轮廓16个点,瞳孔中心1个点。眼睛轮廓部分会比传统的6个点增加了10个点,密集很多。因为眼睛是非常重要的人脸特征,也经常被作为人脸相关应用的关键特征,因此对眼睛的精确定位非常重要。有了密集的眼睛关键点,后续可以根据关键点裁剪出眼睛部分,使用到实际的后续应用中。至于瞳孔中心点,也是考虑到后续应用可能会存在涉及瞳孔的功能,例如,在三维人脸重建任务中,根据照片重建三维虚拟瞳孔时即会需要对瞳孔实现精确定位。
1.4鼻子关键点。共15个点。本专利在鼻梁、鼻根、鼻翼、鼻尖、鼻小柱、鼻孔等部位都定义了关键点,基本上能够完整地体现鼻子的特征。
1.5嘴巴关键点。共28个点。相比于最常见的20个点,本专利的点会更加密集,尤其是上嘴唇的外边缘,本专利增加了4个点。在观察了众多嘴型照片之后,一个嘴巴的嘴型很大程度上是由上嘴唇的外边缘决定的。因此,更密集的关键点更能够体现嘴型的特征。
2数据集准备
2.1样本收集。本专利收集了一批亚洲人脸图片,然后使用一些开源的算法对样本进行了清洗。主要是清洗掉人脸尺寸太小、遮挡过大、人脸偏转角度过大的人脸照片。最后得到了一个总数量为50000的亚洲人脸照片集。
2.2样本标注。接下去本专利按照定义的132个人脸关键点对这50000张人脸照片进行标注。在标注之前,为了统一样本标注的规范,设置了一套标注规则。例如:对于闭眼样本,本专利要求上下眼睑对应的关键点需要重叠,同样的,如果是闭嘴样本,上下嘴唇的内边缘点也应该重叠。
2.3眉毛特殊处理。眉毛其实是传统人脸关键点比较不重视的一个五官。然而眉毛也是人脸上重要的一个五官,而且因为化妆的原因,眉毛实际上能够呈现出非常多的姿态。因此,对于眉毛样本本专利还额外做了特殊处理。为了让本专利的关键点检测算法能够兼容各种类型的眉毛,另外收集了一批特殊眉形的人脸样本,这些特殊眉形包括:八字眉、刀眉、短粗眉、飞剑眉、尖刀眉、开尾眉、山黛眉、长虹眉。在眉毛标注过程中要求眉头使用2点来表示,眉尾使用1点来表示,同时在眉形转折处必须有点。
在训练局部精确模型时,本专利需要将局部五官进行裁剪。因为每个人脸上有2个眉毛,因此,本专利可以从每个样本中裁剪出2个眉毛样本。为了保证两个眉毛的关键点序一致,本专利将右眉统一水平翻转,并相应地调整了样本中的关键点序。
2.4眼睛样本处理。与眉毛相同,每个人脸照片中都包含两个眼睛,在训练局部精确模型时,本专利同样将每只眼睛单独裁下,为了保证关键点序一致,本专利统一将右眼水平翻转,并相应地调整了样本中的关键点序。
3网络构建
网络架构如图4所示。
输入图像,转化为张量后尺寸为(256,256,3),分别代表(宽,高,通道);模块A代表尺寸=3×3,步长=2,padding=1的二维卷积,包含64个卷积核,最终输出的张量尺寸为(128,128,64);模块B代表一个残差模块,输出的张量尺寸为(128,128,128);模块C是一个尺寸=2×2,步长=2的均值池化,输出的张量尺寸为(64,64,128);模块D是与模块B具有相同结构的残差模块,输出张量的尺寸为(64,64,128);模块E是与B、D模块具有相同结构的残差模块,输出的张量尺寸为(64,64,256);F是一个Hourglass模块,它由多个下采样层和上采样层组成,能够很好地提取全尺寸特征,输出的张量尺寸为(64,64,256);模块G是一个尺寸为3×3,步长=1,padding=1的二维卷积,包含256个卷积核,输出张量的尺寸为(64,64,256);模块H是一个与模块G具有相同结构的卷积层,输出张量的尺寸为(64,64,256);模块I是一个尺寸为1×1,stride=1,padding=1的二维卷积,卷积核的数量等于待检测的关键点数量,输出张量的尺寸是(64,64,num_keypoints)。最终,对输出张量上每个像素点进行sigmoid函数激活,将输出限制在0-1之内,即可得到热图集合。
网络中使用到的所有卷积层在激活函数之前都进行了批量归一化操作(batchbormalization)。并且所有卷积层的激活函数都使用ReLU激活函数。
4训练过程
4.1基础说明
使用图4所示的网络结构,本专利首先训练了一个可以回归整张脸共132个关键点的模型。前文已经提到,本专利总共有50000张整脸样本,每个样本都有一个精确的132点关键点标注文件。根据这个标注文件,本专利能为每个样本生成132张关键点热图。生成的方式,是以关键点坐标为中心,在其周围像素绘制一个符合高斯分布的热图。如图5所示。本专利将这些由标注文件生成的热图称作“真实热图”(Ground Truth)。
本专利将50000张样本划分成包含45000张样本的训练集以及包含5000张样本的测试集。
训练过程中本专利采用热图回归任务中常用的均方误差(Mean Square Error)作为损失函数。使用RMSprop作为优化算法,初始学习率为0.001。本专利设置了一个学习率衰减的策略,所有训练样本每遍历一遍,学习率衰减为原来的90%。
4.2数据增强
在图像处理领域,由于训练样本有限,本专利会通过一些图像处理的技术,对已有的样本进行扩充。在本次试验中,本专利加入了随机裁剪、随机旋转、随机亮度偏移、随机通道偏移、随机拉伸、随机高斯噪声等。通常进行数据增强的阶段有两个,一种是在训练前进行数据增强,另一种是在训练过程中实时进行。这两种方式各有优缺点,总结如下:在训练前进行数据增强是有限的数据增强,需要事先定义好需要增强的样本数量,同时需要占用大量的磁盘空间,但是不会增加训练时长;而在训练过程中进行数据增强,因为是实时进行,每次增强时的随机值都不一样,因此可以看做是无限量地增强,同时因为不需要保存增强后的结果,因此不会额外占用磁盘空间,然而因为有些图像增强操作需要耗费比较长的时间,因此会大大增加训练时长,尤其是当迭代次数比较大的时候。综合以上考虑,本专利选择了离线增强的方式,即在训练前预先对样本进行增强,本专利根据前文所述的几种增强方式,对训练集中的每张图像额外生成了10张样本。此时,相当于本专利有50000张原始样本以及生成的450000张训练样本。
4.3误差度量方式
在关键点检测领域比较常用的误差度量方式是NME(Normalized Mean Error,规范化的均值误差)。计算公式如下文所示。其中P和分别表示真实的坐标值和推理得到的坐标值。M表示待评估的关键点数量,pi和/>分别表示第i个坐标的真实值和推理值,d是一个规范化因子。在这里本专利以两只眼睛中点的距离作为规范化因子。
4.4整脸训练
本专利首先训练了一个整张脸的关键点检测网络,包含132个点。训练样本为原始的45000张样本,加上增强的450000张样本,共计495000张样本。本专利一共迭代了30个epoch,每个epoch表示所有样本遍历一次。最后本专利在测试集上进行测试,以两眼中心距离作为误差因子,得到的132点的NME误差为4.23%。各个五官的NME误差为:轮廓-5.32%,眉毛-4.28%,眼睛-3.69%,鼻子-3.89%,嘴巴3.97%。
4.5局部五官训练
本专利将局部五官(眉毛、眼睛、鼻子、嘴巴)单独裁剪下来,分别训练一个模型。采用同样的训练策略,只是稍微调整了模型训练时的输入以及模型的输出。在对五官分别训练之后,本专利得到了4个局部精确模型。
4.6模型整合
最后本专利得到1个整体粗糙模型用于预测整张脸的132个关键点,以及4个分别用于预测眉毛、眼睛、鼻子、嘴巴的局部精确模型。在实际使用的过程中,本专利首先会使用整体粗糙模型对输入图片进行预测,得到粗糙的132个关键点,然后根据这些粗糙关键点裁剪出局部五官,然后再将裁剪出的局部五官样本分别喂入对应的局部精确模型,得到局部精确关键点,最后对这些关键点进行整合、重组,得到精确的人脸132个关键点。详细流程可参考图3。本专利在RTX2080显卡上进行测试的结果显示,单个模型的推理速度是25ms。经过局部精确模型优化后的关键点的NME误差为2.86%。各个五官的NME误差为:眉毛-2.15%,眼睛-2.42%,鼻子-2.26,嘴巴-2.17%。可以看出各个局部五官的误差都有明显下降。
人脸关键点检测是许多人脸相关应用的基础。例如:三维人脸重建需要使用关键点信息作为重建过程中的监督依据,人脸美妆应用需要根据人脸关键点确定人脸五官位置。
本专利通过一种从粗到精的关键点检测方法实现了人脸关键点的高精度检测效果。在实际运用过程中,本专利首先需要通过某种人脸检测算法检测出图像中人脸的位置,然后使用裁剪将图像中的人脸裁剪出来。裁剪后的图像将首先送入整体粗糙模型中检测粗糙的完整的132个人脸关键点。此时得到的132个粗糙关键点虽然在一些边缘、角落的细节上存在误差,但是对于表示一个五官的位置已经是足够了。因此本专利可以根据这个粗糙的带有语义的人脸关键点裁剪出左眉毛、右眉毛、左眼睛、右眼睛、鼻子、嘴巴等五官部件。前文已经提到,本专利在训练眉毛和眼睛模型时,已经事先将眉毛和眼睛的样本都水平翻转到同一方向,因此在推理过程中本专利也需要进行这个步骤。在这里本专利统一将右眉毛和右眼睛分别水平翻转。然后同时将这些五官部件分别送入对应的局部精确模型中,此时本专利可以得到精确的局部五官关键点,最后本专利将结合前面的五官裁剪算法的参数,将局部五官图片上的关键点坐标转为原图上面的点坐标。重组后的132个人脸关键点坐标即为精确的人脸关键点坐标。
本专利定义了一套包含132个语义点的人脸关键点规范,同时也自制了一个包含50000张样本的高质量人脸关键点数据集。在本专利的数据集上的验证结果显示,本专利提出的从粗到精的方案极大程度地提升了局部五官的关键点检测效果。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。
Claims (5)
1.一种从粗到精的人脸关键点检测方法,其特征在于:所述方法包括如下步骤:
步骤1、设置一套人脸关键点,即用132个关键点来表示整个脸部,其中人脸轮廓部分包括33个关键点,眉毛部分包括22个关键点,眼睛部分34个关键点,鼻子部分包括15个关键点,嘴巴部分包括28个关键点;
步骤2、收集一批未标注的人脸照片作为样本,通过所述人脸关键点对这批样本进行关键点标注;
步骤3、网络构建,即搭建一个全卷积的神经网络来进行回归关键点热图;
步骤4、使用神经网络结构训练一整体粗糙模型、局部精确眉毛模型、局部精确眼睛模型、局部精确鼻子模型、以及局部精确嘴巴模型,该整体粗糙模型能回归整张脸共132个关键点的模型,所述局部精确眉毛模型、局部精确眼睛模型、局部精确鼻子模型、局部精确嘴巴模型分别专注于检测眉毛、眼睛、鼻子、嘴巴四个人脸五官关键点;训练样本采用所述人脸照片的样本;
步骤5、检测时,输入照片,通过整体粗糙模型对输入照片进行预测,得到粗糙的132个关键点,根据这些粗糙132个关键点裁剪出左眉毛、右眉毛、左眼睛、右眼睛、鼻子、嘴巴五官部件,将这些五官部件分别送入对应的局部精确模型中,能得到精确的局部五官关键点将四个局部精确模型中检测到的眉毛、眼睛、鼻子、嘴巴关键点与整体粗糙模型检测出的轮廓关键点合并起来,就得到了精确的人脸132关键点;
所述步骤3中网络构建进一步具体为:输入人脸照片图像,转化为张量后尺寸为(256,256,3),分别代表(宽,高,通道);全卷积的神经网络中模块A代表尺寸=3×3,步长=2,padding=1的二维卷积,包含64个卷积核,最终输出的张量尺寸为(128,128,64);全卷积的神经网络中模块B代表一个残差模块,输出的张量尺寸为(128,128,128);模块C是一个尺寸=2×2,步长=2的均值池化,输出的张量尺寸为(64,64,128);模块D是与模块B具有相同结构的残差模块,输出的张量尺寸为(64,64,128);模块E是与模块B、D具有相同结构的残差模块,输出的张量尺寸为(64,64,256);模块F是一个Hourglass模块,它由多个下采样层和上采样层组成,能够很好地提取全尺寸特征,输出的张量尺寸为(64,64,256);模块G是一个尺寸为3×3,步长=1,padding=1的二维卷积,包含256个卷积核,输出张量的尺寸为(64,64,256);模块H是一个与模块G具有相同结构的卷积层,输出张量的尺寸为(64,64,256);模块I是一个尺寸为1×1,步长stride=1,padding=1的二维卷积,卷积核的数量等于待检测的关键点数量,输出张量的尺寸是(64,64,待检测的关键点数量num_keypoints);最终,对输出张量上每个像素点进行sigmoid函数激活,将输出限制在0-1之内,即可得到热图集合;
神经网络中使用到的所有卷积层在激活函数之前都进行了批量归一化操作,并且所有卷积层的激活函数都使用ReLU激活函数。
2.根据权利要求1所述的一种从粗到精的人脸关键点检测方法,其特征在于:所述步骤2中收集的人脸照片样本后先进行眉毛处理,由于化妆的原因,眉毛实际上能够呈现出非常多的姿态,为了使关键点检测方法能够兼容各种类型的眉毛,收集了一批特殊眉形的人脸照片样本,这些特殊眉形包括:八字眉、刀眉、短粗眉、飞剑眉、尖刀眉、开尾眉、山黛眉、以及长虹眉;在眉毛标注过程中要求眉头使用2点来表示,眉尾使用1点来表示,同时在眉形转折处必须有点;在训练局部精确眉毛模型时,需要将局部五官进行裁剪,每个人脸上有2个眉毛,则从每个样本中裁剪出2个眉毛样本,为了保证两个眉毛的关键点序一致,将右眉统一水平翻转,并相应地调整了样本中的关键点序。
3.根据权利要求2所述的一种从粗到精的人脸关键点检测方法,其特征在于:所述收集到的人脸照片样本中对眼睛进行与眉毛相同的处理,即每个人脸照片中都包含两个眼睛,在训练局部精确眼睛模型时,将每只眼睛单独裁下,每个人脸上有2个眼睛,为了保证两个眼睛关键点序一致,统一将右眼水平翻转,并相应地调整了样本中的关键点序。
4.根据权利要求1所述的一种从粗到精的人脸关键点检测方法,其特征在于:所述残差模块是被广泛使用的一个卷积特征提取模块,而Hourglass模块则是形如漏斗的一个卷积网络模块,它能够捕获并整合图像所有尺度的信息,并且能够使输出尺寸与输入尺寸相同,适用于热图回归的应用场景,所述神经网络的输入是256×256的二维图像,最终为每个关键点输出一个尺寸为64×64的热图。
5.根据权利要求1所述的一种从粗到精的人脸关键点检测方法,其特征在于:所述人脸照片为亚洲人脸照片。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011095352.1A CN112052843B (zh) | 2020-10-14 | 2020-10-14 | 一种从粗到精的人脸关键点检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011095352.1A CN112052843B (zh) | 2020-10-14 | 2020-10-14 | 一种从粗到精的人脸关键点检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112052843A CN112052843A (zh) | 2020-12-08 |
CN112052843B true CN112052843B (zh) | 2023-06-06 |
Family
ID=73606593
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011095352.1A Active CN112052843B (zh) | 2020-10-14 | 2020-10-14 | 一种从粗到精的人脸关键点检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112052843B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113344867B (zh) * | 2021-05-28 | 2024-03-26 | 浙江工业大学 | 基于近中、远中关键点的牙周炎吸收程度鉴别方法 |
CN113963060B (zh) * | 2021-09-22 | 2022-03-18 | 腾讯科技(深圳)有限公司 | 基于人工智能的车信图像处理方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103824049A (zh) * | 2014-02-17 | 2014-05-28 | 北京旷视科技有限公司 | 一种基于级联神经网络的人脸关键点检测方法 |
CN109858466A (zh) * | 2019-03-01 | 2019-06-07 | 北京视甄智能科技有限公司 | 一种基于卷积神经网络的人脸关键点检测方法及装置 |
CN110287846A (zh) * | 2019-06-19 | 2019-09-27 | 南京云智控产业技术研究院有限公司 | 一种基于注意力机制的人脸关键点检测方法 |
WO2019232894A1 (zh) * | 2018-06-05 | 2019-12-12 | 中国石油大学(华东) | 一种基于复杂场景下的人体关键点检测系统及方法 |
CN111222469A (zh) * | 2020-01-09 | 2020-06-02 | 浙江工业大学 | 一种由粗到精的人脸姿态量化估计方法 |
CN111274919A (zh) * | 2020-01-17 | 2020-06-12 | 桂林理工大学 | 基于卷积神经网络的五官检测方法、系统、服务器及介质 |
-
2020
- 2020-10-14 CN CN202011095352.1A patent/CN112052843B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103824049A (zh) * | 2014-02-17 | 2014-05-28 | 北京旷视科技有限公司 | 一种基于级联神经网络的人脸关键点检测方法 |
WO2019232894A1 (zh) * | 2018-06-05 | 2019-12-12 | 中国石油大学(华东) | 一种基于复杂场景下的人体关键点检测系统及方法 |
CN109858466A (zh) * | 2019-03-01 | 2019-06-07 | 北京视甄智能科技有限公司 | 一种基于卷积神经网络的人脸关键点检测方法及装置 |
CN110287846A (zh) * | 2019-06-19 | 2019-09-27 | 南京云智控产业技术研究院有限公司 | 一种基于注意力机制的人脸关键点检测方法 |
CN111222469A (zh) * | 2020-01-09 | 2020-06-02 | 浙江工业大学 | 一种由粗到精的人脸姿态量化估计方法 |
CN111274919A (zh) * | 2020-01-17 | 2020-06-12 | 桂林理工大学 | 基于卷积神经网络的五官检测方法、系统、服务器及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112052843A (zh) | 2020-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022199143A1 (zh) | 一种基于u型网络的医学图像分割方法 | |
JP6891351B2 (ja) | 多特徴検索と変形に基づく人体髪型の生成方法 | |
CN110348330B (zh) | 基于vae-acgan的人脸姿态虚拟视图生成方法 | |
Zhang et al. | End-to-end photo-sketch generation via fully convolutional representation learning | |
KR101259662B1 (ko) | 얼굴 분류 방법, 얼굴 분류 장치, 분류맵, 얼굴 분류프로그램, 및 상기 프로그램이 기록된 기록매체 | |
Hu et al. | Robust hair capture using simulated examples | |
CN102800129B (zh) | 一种基于单幅图像的头发建模和肖像编辑方法 | |
CN101159064B (zh) | 画像生成系统以及按照图像生成画像的方法 | |
CN106951840A (zh) | 一种人脸特征点检测方法 | |
EP3836070A1 (en) | Face pose estimation/three-dimensional face reconstruction method and apparatus, and electronic device | |
CN107871098B (zh) | 人脸特征点的获取方法和装置 | |
EP3953859B1 (en) | Method and system for estimating eye-related geometric parameters of a user | |
CN107730449B (zh) | 一种人脸五官美化处理的方法及系统 | |
CN112052843B (zh) | 一种从粗到精的人脸关键点检测方法 | |
CN111127309B (zh) | 肖像风格迁移模型训练方法、肖像风格迁移方法以及装置 | |
CN111833236B (zh) | 产生模拟用户的三维脸部模型的方法及装置 | |
CN109948454B (zh) | 表情数据库的增强方法、训练方法、计算设备及存储介质 | |
CN113570684A (zh) | 图像处理方法、装置、计算机设备和存储介质 | |
CN113780249B (zh) | 表情识别模型的处理方法、装置、设备、介质和程序产品 | |
CN108510500A (zh) | 一种基于人脸肤色检测的虚拟人物形象的头发图层处理方法及系统 | |
CN112215291A (zh) | 级联神经网络下医学图像特征提取和分类方法 | |
US10803677B2 (en) | Method and system of automated facial morphing for eyebrow hair and face color detection | |
CN115205933A (zh) | 面部表情识别方法、装置、设备及可读存储介质 | |
CN112215285B (zh) | 一种基于跨媒体特征的眼底图像自动标注方法 | |
CN115546361A (zh) | 三维卡通形象处理方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |