用于人脸识别用训练图像库的数据自动更新方法与流程

文档序号:16253537发布日期:2018-12-12 00:14阅读:514来源:国知局

本发明涉及一种用于人脸识别用训练图像库的数据自动更新方法,属于人脸识别技术领域。

背景技术

在基于深度神经网络模型的人脸识别技术中,图片数据的获取对于模型训练有着举足轻重的作用。对于我们已有的高准确率且高效的模型,需要一批高质量的数据作为输入,从而发挥该模型的最大效能。同时,我们也需要数据库本身有强大的抗干扰能力,以及自动更新及过滤的能力,来应对目前人工智能领域数据信息量爆炸的特点。

现有技术中用于人脸识别的数据基本来自于网上公开数据集或是已有数据,这些数据在获取之后都无法进行自动再更新。此外,这些数据对图片的清晰度以及人脸的端正性的描述大多也都处在定性的范围之内。由于这些数据存在以上局限性,使得已有的模型在预测准确率和预测速度方面无法得到最大的发挥。



技术实现要素:

本发明要解决技术问题是:提供一种提高了训练数据的丰富性、精确性的用于人脸识别用训练图像库的数据自动更新方法,该方法保证了深度神经网络模型训练准确率和训练速度,并且缩短了深度神经网络模型的训练周期。

为了解决上述技术问题,本发明提出的技术方案是:一种用于人脸识别用训练图像库的数据自动更新方法,包括以下步骤:

步骤一、获取图片数据

利用爬虫技术按照预设规则自动获取网上的人脸图片数据;

步骤二、过滤人脸图片数据

对每一幅图片数据用mtcnn算法提取其左眼、右眼、鼻子、头顶和嘴巴共五个特征点,计算每一幅图片数据中双眼中点与头顶之间的距离s1和双眼中点到嘴中点的距离s,从鼻子向双眼所在直线作垂线,其垂足与双眼之间的距离分别为l1、l2,则双眼间的距离为l=l1+l2,当同时满足0.4s<s1<0.6s,以及0.4l<l1<0.6l时,保留该人脸图片数据;

步骤三、对图片数据中的人脸进行对齐

假设每一幅图片数据用mtcnn算法提取的五个特征点的初始坐标分别为(x1',y1')、(x2',y2')、(x3',y3')、(x4',y4')和(x5',y5');

在画布中确定五个初始坐标点(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)和(x5,y5),使得这五个点在画布中具有对称性;

对每一幅图片数据中提取的五个特征点与画布中确定的五个初始坐标点之间建立仿射变换方程,根据仿射变换方程对每一幅图片数据进行姿势校正使人脸对齐;

步骤四、将人脸对齐后的图片数据自动添加到训练图像库中。

需要说明的是,mtcnn算法为现有技术,可参考由kaipengzhang,zhanpengzhang,zhifengli,yuqiao于2016年发表的《jointfacedetectionandalignmentusingmulti-taskcascadedconvolutionalnetworks》。

本发明以网络自动爬虫技术、图片质量检测算法、人脸关键点检测及人脸对齐为基础,设计并集成了一个一体化解决方案,将上述分散且繁杂的工序综合成为高效便捷易用的数据处理工具。本发明涵盖了训练深度学习神经网络的整个流程,并且可以部署在本地计算资源上,既解决了数据安全性问题,也完善了整个流程。

本发明在获取数据方面采用爬虫技术,从而使人脸图像可以得到实时更新;在对图片的质量检测方面采用俯仰角(pitch)、偏航角(yaw)、翻滚角(roll)三维姿态角来对图像中人脸的角度进行判断;在对图像清晰度的检测方面,使用拉普拉斯模糊性检测对图像进行分析,另外,我们通过对面部关键点,以及目标位置的坐标,来进行人脸图像进行仿射变换,从而达到人脸的对齐效果。通过这些改进,我们使得模型在不以预测准确率和预测速度作为代价的前提下,具有更强的对数据的适应性和更快的训练周期。这些经过修正的图片会使得模型训练的功效更高,其识别速度与准确率也都有一定的保证。其后再根据我们的需要,选择不同的损失函数进行训练,对其识别的速度或者准确率做进一步提升。

上述技术方案的进一步改进是:在执行步骤二之前,使用拉普拉斯方差算法来根据清晰度来筛选图片数据,即对于每一幅人脸图片数据通过拉普拉斯运算符进行卷积运算,然后再对卷积运算后的结果计算其方差,如果该方差小于预设阈值100,则判断该图片数据被判断为模糊图片,并剔除该模糊图片。

上述技术方案的再进一步改进是:步骤三中建立仿射变换方程的方法为:

根据二维仿射变换的数学表达式为x=ax'+by'+c,y=dx'+ey'+f,其中x',y'是变换前像素的坐标值,x,y是变换后像素的坐标值,a,b,c,d,e,f是仿射变换参数;

当有5组坐标时,得到数学表达式xi=axi'+byi'+c,yi=dxi'+eyi'+f,其中i=1,2,3,4,5。

可以把这5组数学表达式合并在一个矩阵方程中:

任意选取三个特征点就可求得a,b,c,d,e,f这六个未知数,从而得到仿射变换方程。

具体实施方式

实施例

本实施例的用于人脸识别用训练图像库的数据自动更新方法,包括以下步骤:

步骤一、获取图片数据

利用爬虫技术按照预设规则自动获取网上的人脸图片数据。爬虫技术为现有技术,是一种按照一定的规则自动获取网上的信息的程序或者脚本。其原理是通过对网页上源代码的截取,来获取我们所需要部分的源代码字段信息。在本实施例中,人脸图片是我们所需要的信息,我们在网页源代码中找到图片所对应的特征代码,如包含‘image’和‘face’字样的行,作为我们所需求的对象,对其进行截取。当然也可以选取其他特征代码。

步骤二、过滤人脸图片数据

通过爬虫获取的新的图片数据中,可能存在图片角度与正脸偏差太大等问题,需要对其进行筛选,过滤掉与正脸偏差太大的图片。

本实施例中使用三维姿态俯仰角(pitch)、偏航角(yaw)、翻滚角(roll)对人脸图片数据进行判断,因为在翻滚角方向上的角度偏差是在平面内的,所以可以通过之后的仿射变换来进行修正。三维姿态的定义为现有技术,可参考相关资料,不再赘述。

对每一幅图片数据用mtcnn算法提取其左眼、右眼、鼻子、头顶和嘴巴共五个特征点,计算每一幅图片数据中双眼中点与头顶之间的距离s1和双眼中点到嘴中点的距离s,从鼻子向双眼所在直线作垂线,其垂足与双眼之间的距离分别为l1、l2,则双眼间的距离为l=l1+l2,当同时满足0.4s<s1<0.6s(俯仰角方向),以及0.4l<l1<0.6l(偏航角方向)时,保留该人脸图片数据。

步骤三、对图片数据中的人脸进行对齐

假设每一幅图片数据用mtcnn算法提取的五个特征点的初始坐标分别为(x1',y1')、(x2',y2')、(x3',y3')、(x4',y4')和(x5',y5');

在画布中确定五个初始坐标点(x1,y1)、(x2,y2)、(x3,y3)、(x4,y4)和(x5,y5),使得这五个点在画布中具有对称性;

对每一幅图片数据中提取的五个特征点与画布中确定的五个初始坐标点之间建立仿射变换方程,根据仿射变换方程对每一幅图片数据进行姿势校正使人脸对齐。

本实施例中建立仿射变换方程的方法为:

根据二维仿射变换的数学表达式为x=ax'+by'+c,y=dx'+ey'+f,其中x',y'是变换前像素的坐标值,x,y是变换后像素的坐标值,a,b,c,d,e,f是仿射变换参数;

当有5组坐标时,得到数学表达式xi=axi'+byi'+c,yi=dxi'+eyi'+f,其中i=1,2,3,4,5。

可以把这5组数学表达式合并在一个矩阵方程中:

任意选取三个特征点就可求得a,b,c,d,e,f这六个未知数,从而得到仿射变换方程。

但在仿射变换方程的实际求解过程中一般会取更多的特征点(本例中共有五个特征点,因而会得到十个方程),这样就使得方程个数超过未知数个数,从而得到一个超定方程,此时可以使用最小二乘法求解a,b,c,d,e,f以降低误差造成的影响。

步骤四、将人脸对齐后的图片数据自动添加到训练图像库中。

本实施例还可以作以下改进:在执行步骤二之前,首先剔除模糊的图片,对于图片清晰度的判断一般都比较直接,本实施例中使用拉普拉斯方差算法来对图片的清晰度进行检测。首先给定一个阈值100,对于每一个给定的图片我们用拉普拉斯运算符对该图片进行卷积运算,然后再对其进行方差计算,如果该方差小于100,则判断该图片被判断为模糊的,否则就被判断为清晰的。

通过上述一系列操作之后,可过滤掉偏差角度过大以及过于模糊的图片,并对剩余的图片进行仿射变换,得到一系列已人脸对齐的图片作为输入并进行人脸识别。这些经过修正的图片会使得模型训练的功效更高,其识别速度与准确率也都有一定的保证。其后再根据我们的需要,选择不同的损失函数进行训练,对其识别的速度或者准确率做进一步提升。

本发明不局限于上述实施例所述的具体技术方案,除上述实施例外,本发明还可以有其他实施方式。对于本领域的技术人员来说,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等形成的技术方案,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1