APP下载

基于Dlib的矢量特征实时笑脸检测

2021-12-13唐海涛吴果林陈迪三朱新波秦鹏

电子元器件与信息技术 2021年8期
关键词:笑脸关键点人脸

唐海涛,吴果林,陈迪三,朱新波,秦鹏

(1. 桂林航天工业学院 理学院,广西 桂林 541004;2.广西师范大学漓江学院 理工学院,广西 桂林 541006)

0 引言

生物信息识别的长足发展,促使人脸表情识别受到了当前学术界和工业界的极大重视, 尤其是笑脸的识别与研究,譬如在可移动数码相机、情绪管理等方面都迫切的需要提升机器自动识别笑容的准确率和实时性[1]。针对笑脸识别问题,Serre[2]等人提出了生物启发模型BIM。

(Biologically Inspired Model),用以模拟高层次仿真生物的视觉感知特征;并最终在数据库上的识别实验中证明了其可行性和识别准确率;李芹[3]等人提出一种改进标准模型的S2层模版提取方法及匹配算法,并在ORL及Yale标准人脸库获得人脸识别较高的准确率;何聪[4]等人引入生物启发模型BIM对笑脸进行识别研究,同时结合一种四领域联合最大化操作和AdaBoost 算法模型最终实现笑脸识别,获得了较好的笑脸识别准确率,但该模型同时也存在运算量大、未充分考虑结构信息等不足之处。

为了进一步降低笑脸识别计算量、增强笑脸识别的实时性能,本文提出了结合 Dlib 的矢量特征实时笑脸检测方法,并给出了详细模型的整体设计,具体包括:(1)人脸数据预处理;(2)人脸关键点与笑容的相关性分析,以此获得构成矢量的关键支撑点;(3)矢量特征模型有监督学习以及识别。

1 基于 Dlib 的矢量特征实时笑脸检测建模

本文结合 Dlib 的矢量特征实时笑脸检测模型(以下简称矢量特征识别模型)包括Dlib人脸识别库、人脸对齐、关键点相关性分析和矢量特征识别模型;其中图像数据的预处理包括人脸识别和对齐(即提取人脸对齐后的关键点);接着对提取到的人脸关键点进行笑脸关键点相关性分析,依据相关性系数大小选取与笑脸呈显著或者高度相关的人脸关键点;最后依据获取的人脸关键点有选择性的组合特征向量,并通过数据集的训练获得实时笑脸检测识别的特征依据,综上完成笑脸实时检测识别模型的构建。

1.1 Dlib 的矢量特征模型检测模型

实时笑脸检测模型流程。

Step.1 输入原始图像数据;

Step.2 基于Dlib 对图像数据进行人脸关键点提取;

Step.3 将获得人脸关键点图像进行人脸对齐,未获得人脸关键点识别图像判为“未知类型”;

Step.4 将获得人脸对齐的图像数据集分为两部分,分别为训练集、测试集,未获得人脸对齐的图像判为“未知类型”;

Step.5 提取对齐后图像的 68 个人脸关键点;并将其关键点进行笑脸相关性分析;

Step.6 选择相关性系数较高的多个人脸关键定位候选点;

Step.7 将多个人脸关键定位候选点自由组合为矢量,对多个矢量统计分析,并最终获得矢量特征识别模型;

Step.8 将测试集输入生成矢量特征识别模型,实现笑脸实时检测。

2 实验及结果分析

本文数据来自加利福尼亚大学的机器概念实验室收集的4000张分为“笑”和“不笑”的GENKI4K数据集,其每张图片拥有不同的尺度、光照变化、姿势、头部姿态等。

2.1 人脸定位

本文人脸定位采用Dlib 识别工具包进行检测,该工具包开源且广泛应用在工业和学术界,如图像处理、机器人、嵌入式设备、移动电话和大型高性能计算环境等。因笑脸检测对人脸关键点定位需求,本文采用工具包中的HOG+SVM方法对人脸进行定位,具体效果参考图1识别定位效果图。

图1 Dlib人脸关键点定位效果图

2.2 人脸对齐

本文主要通过获取左右两眼中心点与水平方向的斜率且同时进行仿射变换实现人脸对齐。首先,通过Dlib算法获取人脸 68 个关键点,且同时根据关键点的标记选取左眼关键点(37,28,39,40,41,42)和右眼关键点(43,44,45,46,47,48),具体见人脸关键点标记图2;其次,通过计算左眼中心点EyeCentorleft、右眼中心点EyeCentorright 的坐标值以及两眼中心坐标值EyeCentor(后续旋转的基准点,即为(Eleft+Eright)/2),上述坐标值详细计算公式如下。

图2 人脸对齐后效果图

其中Xi表示关键点的X坐标值;Yj表示关键点的Y坐标值,如37号关键点的坐标表示:(X37,Y37);同时round函数表示对所求浮点数值进行四舍五入且保留整数部分数值,int函数用于将一个字符串或数字转换为整型,便于后续展开相关数值计算。

最后,计算左眼中心点EyeCentorleft与右眼中心点Eye Centorright 坐标连线与水平方向的夹角θ,并以EyeCentor 为基点,将整体图片顺时针旋转θ ,图片整体旋转的实现则采用仿射旋转变换完成,其中旋转变换公式的坐标点,表示变换前的坐标点。综上,即完成全部人脸对齐处理流程,详细效果图参见图2。

2.3 人脸关键点相关性分析

经人脸定位、人脸对齐的数据预处理后,考虑到存在部分或者少数人脸定位关键点之间必然会存在一些与笑脸表情特征相关性极低的关键点,故先对预处理后的人脸关键图像数据点进行相关性分析,为后续的矢量特征生成提供支撑。

为了完成相关性分析,我们的对预处理后的图像数据做如下说明。

(1)为便于计算坐标点与笑脸属性标签的相关性系数,我们引入标签数值化,把“笑”和“不笑”两类别属性标签转化为向量形式,其中“笑”对应类别向量(1,0),“不笑”对应类别向量(0,1);

(2)相关性计算过程中先获取所有图片的某一个关键点与对应类别向量的夹角值(记为θ),然后根据生成的属性数值矩阵(含类别属性)计算属性间相关性系数,最后根据不同等级相关性程度大小划分提取相关系数相对较大(≥0.8即高度相关)的属性[5-6]。

经相关性分析,选择相关性系数>=0.9人脸关键点作为影响笑脸表情特征的关键属性,其中关键属性点共计包含41个,非关键属性共计27个。

2.4 矢量特征识别模型

式中threld表示为是否笑脸的判别阈值(通过训练实验数据集获取,最终threld值为0.405)。本文实验结合GENKI4K原始数据(预处理后共3799张,有效识别图片为3775张),基于矢量特征模型最终在所有有效人脸对齐数据集上实现笑脸识别准确率为92.90%,表1是具体实际数据和拟合预测数据统计表。

表1 矢量特征模型对人脸识别结果统计表

3 结语

本文主要研究结合Dlib的矢量特征在实时笑脸识别中的应用,实验结果表明,矢量特征识别模型在实际预测中具有较好的准确性;同时,本文的笑脸识别模型在保持较高准确率的同时也实现了单张图片识别响应时间仅约6ms,具有较好的实时性能.下一步的工作重点主要进行多表情特征的综合识别,比如哭泣、痛苦、恐慌、愤怒等表情识别,同时在多类型表情识别基础上再引入多标签特征形成更丰富的识别表达,以此提高识别算法的健壮性和泛化能力。

猜你喜欢

笑脸关键点人脸
聚焦金属关键点
肉兔育肥抓好七个关键点
有特点的人脸
一起学画人脸
“狠掌亦打笑脸人”
三国漫——人脸解锁
别毁掉你迷人的笑脸
医联体要把握三个关键点
长得象人脸的十种动物
锁定两个关键点——我这样教《送考》