首页> 中国专利> 一种基于Dlib与人工神经网络的人脸表情识别方法

一种基于Dlib与人工神经网络的人脸表情识别方法

摘要

本发明公开了一种基于Dlib与人工神经网络的人脸表情识别方法,是通过Dlib对人脸图像进行人脸关键点检测,形成关键点图像,以关键点图像制作的情绪数据集对表情识别神经网络进行训练测试,将表情识别神经网络收敛为表情识别模型,在对需要情绪识别的人体对象拍摄成像后,通过Dlib检测出人脸关键点并形成识别图像,将识别图像输入至表情识别模型中得出人体对象的情绪结果,该情绪结果的获取不受光照等外部环境影响,且具有使用快速便捷、识别率极高的优点。

著录项

说明书

技术领域

本发明涉及一种人脸表情识别方法,特别是一种基于Dlib与人工神经网络的人脸表情识别方法。

背景技术

人脸表情与情绪的识别多应用在教育、医疗、心理学、自动驾驶、安防、智能零售等领域,现有技术中的人脸表情识别方法是对人脸直接做分类,实现情绪识别,但因该技术受环境影响较大,准确性不高,导致人脸表情识别的应用和发展受到限制。

发明内容

为了克服现有技术的不足,本发明提供一种基于Dlib与人工神经网络的人脸表情识别方法。

本发明解决其技术问题所采用的技术方案是:

一种基于Dlib与人工神经网络的人脸表情识别方法,包括以下步骤:

(1)、对人脸进行检测形成人脸图像,对人脸图像进行数据预处理;

(2)、通过Dlib库对人脸图像进行人脸关键点检测,形成具有人脸关键点的关键点图像;

(3)、以关键点图像制作情绪数据集,该数据集包括情绪训练集和情绪测试集;

(4)、构建表情识别神经网络,该表情识别神经网络包括输入层、隐藏层和输出层,隐藏层的层数为五;

(5)、对表情识别神经网络进行训练测试,将情绪训练集输入至表情识别神经网络的输入层,输入层将情绪训练集传送至隐藏层后,隐藏层通过激活函数将情绪训练集进行非线性分离拟合,并映射至输出层,令表情识别神经网络训练为表情识别模型,再通过情绪测试集完成表情识别模型的测试;

(6)、对需要情绪识别的人体对象拍摄成像,再通过Dlib库检测出人脸关键点并形成识别图像后,将识别图像输入至表情识别模型中,得出人体对象的情绪结果。

所述步骤2检测人脸图像的人脸关键点数量为68。

所述隐藏层的第一至第五层的神经元个数分别为5、10、15、20和30。

所述步骤5采用的激活函数为Relu6,损失函数为交叉熵损失。

所述步骤1的数据预处理是对所有的人脸图像进行归一化处理后对每一张人脸图像进行左右翻转,再对所有的人脸图像进行尺度缩放。

所述情绪数据集的情绪类别包括喜、怒、哀、乐、惊讶、恐惧和平静;所述情绪训练集与所述情绪测试集的图片数据比例为7:3。

本发明的有益效果是:本发明是通过Dlib对人脸图像进行人脸关键点检测,形成关键点图像,以关键点图像制作的情绪数据集对表情识别神经网络进行训练测试,将表情识别神经网络收敛为表情识别模型,在对需要情绪识别的人体对象拍摄成像后,通过Dlib检测出人脸关键点并形成识别图像,将识别图像输入至表情识别模型中得出人体对象的情绪结果,该情绪结果的获取不受光照等外部环境影响,且具有使用快速便捷、识别率极高的优点。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1是本发明的方法流程图。

具体实施方式

参照图1,一种基于Dlib与人工神经网络的人脸表情识别方法,包括以下步骤:

(1)、对人脸进行检测形成人脸图像,人脸图像的获取可以通过显示拍摄以及网络图像实现,对人脸图像进行数据预处理,数据预处理是对所有的人脸图像进行归一化处理后对每一张人脸图像进行左右翻转,再对所有的人脸图像进行尺度缩放,在本实施例中的归一化处理主要是通过matlab中的premnmx函数对人脸图像进行处理,将其变成纯量,能加快训练表情识别神经网络的收敛,需要说明的是人脸图像在进行左右翻转后会形成新的图像副本,该图像副本同样作为新的人脸图像一起参与后序的情绪数据集制作,用以增加表情识别模型的普适性。

(2)、通过Dlib库对人脸图像进行人脸关键点检测,形成具有人脸关键点的关键点图像,Dlib库作为一个开源免费的工具能非常便捷地被获取并在PC上安装,利用其强大的图像特征提取功能可以精确快速地检测出人脸图像的人脸关键点,检测人脸图像的人脸关键点数量设定为68,是经过不同人脸关键点测试出的最为适合训练以及最终应用表情识别模型的个数,令得到的表情识别模型的识别效果最好,训练量最为适中。

(3)、以关键点图像制作情绪数据集,该数据集包括情绪训练集和情绪测试集,而所述情绪数据集的情绪类别包括喜、怒、哀、乐、惊讶、恐惧和平静;所述情绪训练集与所述情绪测试集的图片数据比例为7:3。

(4)、构建表情识别神经网络,该表情识别神经网络包括输入层、隐藏层和输出层,隐藏层的层数为五;对于一般简单的数据集,采用一或两层隐藏层足以,但对于涉及计算机视觉的复杂数据集,则需要额外增加层数,单层神经网络只能用于表示线性分离函数,层数越深,理论上拟合激活函数的能力更强,效果更好,但是实际上,更深的层数会增加训练难度,使模型难以收敛,另外,隐藏层中神经元个数过少将导致欠拟合现象,使用神经元过多同样会导致过拟合,采集出液体时域信号中包含的有限信息量不足以训练隐藏层中的所有神经元,因此就会导致过拟合,即使包含的信息量足够,隐藏层中过多的神经元会增加训练时间,从而难以达到预期的效果,因此,本实施例的隐藏层的层数为5,第一至第五层的神经元个数分别为5、10、15、20和30,在确保训练测试出的表情识别模型识别人脸表情效果最好,对表情识别神经网络训练最优的情况下限定最适量、最精简的隐藏层结构,输入层的神经元接受人脸关键点数据的输入,个数为136(68个关键点,每个关键点包包含x,y坐标),输出层的神经元个数为7,与情绪类别一致,对应七种不同情绪的得分,计算得分方式采用Softmax,采用的激活函数为Relu6,损失函数为交叉熵损失。

(5)、对表情识别神经网络进行训练测试,将情绪训练集输入至表情识别神经网络的输入层,输入层将情绪训练集传送至隐藏层后,隐藏层通过激活函数将情绪训练集进行非线性分离拟合,并映射至输出层,令表情识别神经网络训练为表情识别模型,再通过情绪测试集完成表情识别模型的测试,在训练中采用阶梯式下降的学习率,标签采用one-hot处理,并采用Label Smoothing和L2正则化设置,使得表情识别神经网络收敛,在过程中不断观察情绪训练集的损失值与在测试集上的精度,确认表情识别神经网络收敛为表情识别模型,且在测试过程上表现最优即完成步骤5。

(6)、对需要情绪识别的人体对象拍摄成像,再通过Dlib库检测出人脸关键点并形成识别图像后,将识别图像输入至表情识别模型中,得出人体对象的情绪结果,该情绪结果的获取不受光照等外部环境影响,且具有使用快速便捷、识别率极高的优点。

以上的实施方式不能限定本发明创造的保护范围,专业技术领域的人员在不脱离本发明创造整体构思的情况下,所做的均等修饰与变化,均仍属于本发明创造涵盖的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号