基于深度学习非配合式的人脸识别方法与流程

文档序号:17131817发布日期:2019-03-16 01:21阅读:311来源:国知局
基于深度学习非配合式的人脸识别方法与流程

本发明属于图像处理技术领域,更进一步涉及模式识别技术领域中的一种基于深度学习非配合式的人脸识别方法。本发明可用于对视频监控环境下非配合拍摄的人脸进行识别

技术背景

人脸识别是是基于人的脸部特征信息进行身份识别的一种生物识别技术,它由计算机分析人脸图像,从图像中提取有效信息并自动鉴别,人脸识别技术广泛应用于安全系统及人机交互等方面,已成为计算机视觉和模式识别领域中重要的研究课题之一。

深度学习方法相比传统方法,采用更深的网络结构,使用大量数据驱动训练,在人脸识别方面取得了明显进步。非配合式人脸识别通常使用视频监控实现,不需要测试者刻意配合,可以应用在课堂质量评估,会场签到等应用场景。这要求算法同时具有实时性和高准确率,这二者是一个折衷关系。在现实环境中,实时采集到的人脸图像信息角度多样,并受到人体毛发,口罩,帽子等常佩戴物体遮挡等多种因素的干扰,人脸识别误检率高,使得人脸识别技术的复杂度大大提高。

北京工业大学在其申请的专利文献“一种基于深度学习的快速人脸检测识别方法”(公开号cn108564049a,申请号201810363828.1)中公开一种基于深度学习的快速人脸检测识别方法。该方法首先采用构建图像金字塔以多任务的方式训练和运行尺度特定的检测器,并将检测到的人脸图像存入缓冲池中,在分别计算人脸图像与身份证人脸之间的相似度关系,再根据缓冲池所有人脸的特征数量动态地映射出所满足相似度阈值的个数,个数达到一定阈值则判断为同一个人。该方法存在的不足之处是:无法实现快速实时识别多人,因为测试时必须要使用身份证检测设备检测身份证,这一步骤一次只能识别一个人,且因为缓冲池的人脸图像只与身份证单一照片进行比较,若采集到缓冲池中图像角度不标准或有遮挡则识别效果较差。

平安科技(深圳)有限公司在其申请的专利文献“一种基于深度学习的人脸识别方法及装置”(公开号cn107609459a,申请号201611158851.4)中公开一种基于深度学习的人脸识别方法。该方法首先获取待识别图像,检测待识别图像中的人脸区域并将其提取出来,然后将人脸区域图像转化为标准正面人脸图像后,输入至深度神经网络,利用深度神经网络,输出标准正面人脸图像的表达向量,最后将表达向量与人脸库中的每个人脸描述特征进行比对,以获取待识别图像的人脸身份。该方法存在的不足之处是:只对检测到单张图像进行识别,而不是对一段时间内检测到图像进行动态分析,容易造成误识,准确率不高。



技术实现要素:

本发明的目的在于克服上述已有技术的不足,提出一种基于深度学习非配合式的人脸识别方法。

实现本发明目的的思路是,在传统的检测识别人脸的过程中引入跟踪算法,在检测到人脸后使用跟踪算法跟踪人脸,并将一段时间内检测和跟踪到的人脸通过识别深度学习网络提取特征向量与特征数据库的特征向量进行比较,并取匹配最好的结果作为最终识别结果,能够在动态识别过程中减少由于拍摄角度不佳或照片遮挡引起的识别误差,同时,本发明对于人脸图像识别具有很好的实时性。

本发明实现的具体步骤如下:

(1)生成深度学习网络训练数据集:

(1a)采集每张图像均拥有所有人脸的位置信息的至少5万张图像,将所采集的图像组成检测深度学习网络的训练集;

(1b)采集每张图像均拥有所有人脸的身份信息的至少50万张图像,将所采集的图像组成识别深度学习网络的训练集;

(2)分别构建检测深度学习网络和识别深度学习网络:

(2a)搭建一个由p、r、o三个子网络组成的检测深度学习网络mtcnn,并设置网络参数;

(2b)搭建一个识别深度学习网络facenet,并设置网络参数;

(3)分别训练检测深度学习网络和识别深度学习网络:

将检测深度学习网络的训练集输入到检测深度学习网络,将识别深度学习网络的训练集输入到识别深度学习网络,采用随机梯度下降方法,分别对检测深度学习网络和识别深度学习网络进行10000次训练,得到训练好的检测深度学习网络和识别深度学习网络;

(4)制备非配合人脸特征数据库:

(4a)人脸采集模块采集一个未采集过的待识别人员的正脸,左右侧脸,仰视,俯视共5张人脸图像并纪录待识别人员的姓名;

(4b)将每张图像输入到训练好的检测深度学习网络中,检测深度学习网络输出每张人脸图像对应的人脸区域;

(4c)将每张图像对应的人脸区域输入到训练好的识别深度学习网络,输出每张人脸图像的512维人脸特征向量;

(4d)将所采集的待识别人员的姓名、5张人脸图像的512维人脸特征向量映射成一个字典;

(4e)判断人脸采集模块是否采集完所有待识别人员的图像,若是,则执行步骤(4f),否则,执行步骤(4a);

(4f)将所有的映射字典组成人脸特征数据库;

(5)检测并跟踪图像的人脸区域:

(5a)对摄像头的视频流进行一次实时采样,采集一张图像;

(5b)判断当前检测人脸区域集合是否为空,若是,执行步骤(5c),否则,执行步骤(5f);

(5c)将采集的图像输入到检测深度学习网络中;

(5d)检测深度学习网络判断输入的图像中是否含有至少一个人脸区域,若是,则执行步骤(5e),否则,执行步骤(5a);

(5e)检测深度学习网络输出图像中所有的人脸区域,将输出图像中所有人脸区域组成一个人脸区域集合后执行步骤(5k);

(5f)判断检测人脸区域是否替代了25次,若是,执行步骤(5j),否则,执行步骤(5i);

(5j)将检测人脸区域集合输入到c++的机器学习算法工具包的start_track函数中,得到跟踪人脸区域集合后执行步骤(5k);

(5h)从检测人脸区域集合内,选择一个未选过的人脸区域,利用交并比公式,与上次采样图像的检测人脸区域集合内的所有人脸区域分别计算重叠度;

(5i)判断所有重叠度中的最大值是否大于0.2,若是,则所选人脸区域替换最大值对应的上次采样图像的人脸区域,否则,将所选人脸区域添加至上次采样图像的人脸区域集合;

(5j)判断是否选择完采样图像的检测人脸区域集合中的人脸区域,若是,执行步骤(5k),否则,则执行步骤(5h);

(5k)替代当前检测人脸区域集合;

(6)特征匹配:

(6a)将当前检测人脸区域集合中的每一个人脸区域输入到识别深度学习网络,输出每一个人脸区域对应的512维特征向量;

(6b)利用余弦相似度公式,计算每一个人脸区域的特征向量与人脸特征数据库的特征向量的相似度;

(7)判断特征匹配是否进行了50次,若是,执行步骤(8),否则,执行步骤(5);

(8)人脸识别:

将所有的余弦相似度中最大值大于0.23的人脸区域判定无效识别,在人脸数据库中找到其余的余弦相似度最大值对应的特征向量,通过特征向量找到该人脸区域对应的人的信息,完成人脸识别。

本发明与现有技术相比有以下优点:

第一,由于本发明构建了非配合人脸特征数据库来保证特征匹配时无需重复提取特征向量,克服了现有技术在非配合摄像头的情况下无法快速识别多人的问题,使得本发明提高了人脸识别的速度,能够实现实时识别多人。

第二,由于本发明采用了检测并跟踪图像的人脸区域来持续地对同一个人进行识别分析,克服了现有技术在非配合摄像头的情况下识别角度不标准或有遮挡的人脸效果较差的问题,使得本发明在遮挡和形变情况下具有更高的人脸识别准确率。

附图说明

图1是本发明的流程图;

图2是本发明检测并跟踪图像的人脸区域步骤的流程图;

图3是本发明的仿真图。

具体实施方式

下面结合附图对本发明做进一步的描述。

参照图1,对本发明的步骤做进一步的详细描述。

步骤1,生成深度学习网络训练数据集。

采集每张图像均拥有所有人脸的位置信息的至少5万张图像,将所采集的图像组成检测深度学习网络的训练集。

采集每张图像均拥有所有人脸的身份信息的至少50万张图像,将所采集的图像组成识别深度学习网络的训练集。

步骤2,分别构建检测深度学习网络和识别深度学习网络。

搭建一个由p、r、o三个子网络组成的检测深度学习网络mtcnn,并设置网络参数。

所述的p、r、o三个子网络组成的检测深度学习网络mtcnn的结构如下:

p子网络的结构依次为:第一卷积层→第一prelu层→第一池化层→第二卷积层→第二prelu层→第三卷积层→第三prelu层→分类分支层;所述的分类分支层包含并联的分支一层和分支二层,分支一层的结构依次为第四卷积层→softmax层,分支二层为第五卷积层。

r子网络的结构依次为:第一卷积层→第一prelu层→第一池化层→第二卷积层→第二prelu层→第二池化层→第三卷积层→第三prelu层→第一全连接层→第四prelu层→分类分支层;所述的分类分支层包含并联的分支一层和分支二层,分支一层的结构依次为第二全连接层→softmax层,分支二层为第三全连接层。

o子网络的结构依次为:第一卷积层→第一prelu层→第一池化层→第二卷积层→第二prelu层→第二池化层→第三卷积层→第三prelu层→第三池化层→第四卷积层→第四prelu层→第一全连接层→分类分支层;所述的分类分支层包含并联的分支一层,分支二层和分支三层,分支一层的结构依次为第五prelu层→第二全连接层→softmax层,分支二层为第三全连接层,分支三层为第四全连接层。

所述p、r、o三个子网络的网络参数设置如下:

将p子网络中的第一至第五卷积层的卷积核大小依次设置为3、3、3、1、1,卷积核通道数依次设置为10、16、32、2、4,卷积核步长均设置为1。

将r子网络中的第一至第三卷积层的卷积核大小依次设置为3、3、2,卷积核通道数依次设置为28、48、64,卷积核步长均设置为1;第一至第三全连接层的节点数依次设置为128、2、4。

将o子网络中的第一至第四卷积层的卷积核大小依次设置为3、3、3、2,卷积核通道数依次设置为32、64、64、128,卷积核步长均设置为1;第一至第三全连接层的节点数依次设置为256、2、4。

搭建一个识别深度学习网络facenet,并设置网络参数:

所述识别深度学习网络facenet的结构依次为:第一卷积层→第二卷积层→第三卷积层→第一池化层→第四卷积层→第五卷积层→第六卷积层→5×残差块a→降维块d→10×残差块b→降维块e→5×残差块c→第二池化层→全连接层。

所述的5×残差块a的结构依次为:第一分类分支层→第一合并层→第七卷积层;所述的第一分类分支层包含并联的分支一层,分支二层和分支三层;分支一层为第十卷积层,分支二层的结构依次为第十一卷积层→第十二卷积层,分支三层的结构依次为第十三卷积层→第十四卷积层→第十五卷积层。

所述的降维块d的结构依次为:第四分类分支层→第四合并层;所述的第四分类分支层包含并联的分支一层,分支二层和分支三层;分支一层的为第二十四卷积层,分支二层的结构依次为第二十五卷积层→第二十六卷积层→第二十七卷积层,分支三层的为第三池化层。

所述的10×残差块b的结构依次为:第二分类分支→第二合并层→第八卷积层;所述的第二分类分支层包含并联的分支一层,分支二层;分支一层的为第十六卷积层,分支二层的结构依次为第十七卷积层→第十八卷积层→第十九卷积层。

所述的降维块e的结构依次为:第五分类分支层→第五合并层;所述的第五分类分支层包含并联的分支一层,分支二层,分支三层和分支四层;分支一层的结构依次为第二十八卷积层→第二十九卷积层,分支二层的结构依次为第三十卷积层→第三十一卷积层,分支三层的结构依次为第三十二卷积层→第三十三卷积层→第三十四卷积层→第三十一卷积层,分支四层的为第四池化层。

所述的5×残差块c的结构依次为:第三分类分支→第三合并层→第九卷积层;所述的第三分类分支层包含并联的分支一层,分支二层;分支一层为第二十卷积层,分支二层的结构依次为第二十一卷积层→第二十二卷积层→第二十三卷积层。

所述识别深度学习网络facenet的网络参数设置如下:将识别网络中的第一至第三十四卷积层的卷积核大小依次设置为3、3、3、1、3、3、1、1、1、1、1、3、1、3、3、1、1、1×7、7×1、1、1、1×3、3×1、3、1、3、3、1、3、1、3、1、3、3、3,卷积核通道数依次设置为32、32、64、80、192、256、3、3、3、32、32、32、32、32、32、128、128、128、128、192、192、192、192、256、384、256、384、256、384、256、256、256、256、3,卷积核步长依次设置为2、1、1、1、1、2、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、1、2、1、1、2、1、2、1、2、1、1、2,将全连接层的节点数设置为512。

步骤3,分别训练检测深度学习网络和识别深度学习网络。

将检测深度学习网络的训练集输入到检测深度学习网络,将识别深度学习网络的训练集输入到识别深度学习网络,采用随机梯度下降方法,分别对检测深度学习网络和识别深度学习网络进行10000次训练,得到训练好的检测深度学习网络和识别深度学习网络。

所述梯度下降方法的步骤如下:

第1步,在[20000,25000]的范围,任意选取一个值作为检测深度学习网络和识别深度学习网络的迭代次数,将检测深度学习网络和识别深度学习网络中所有参数设置为均值0,方差1的高斯随机数,学习速率均设置为0.001。

第2步,分别从检测深度学习网络的训练集和识别深度学习网络的训练集中随机选取32个样本。

第3步,将检测深度学习网络的训练集输入检测深度学习网络,输出每个样本人脸的得分值和位置信息,将识别深度学习网络的训练集输入到识别深度学习网络,输出每个样本的人脸的得分值和身份信息。

第4步,利用下述损失函数计算公式,计算所有选取的样本损失值的平均值:

其中,l表示所选样本损失值的平均值,∑表示求和操作,i表示所选样本的序号,i=1,2,…,32;f(x(i);θ)表示检测深度学习网络和识别深度学习网络的参数为θ时对样本x(i)的输出值,x(i)表示所选取的样本,θ表示当前迭代更新前的检测神经深度学习和识别深度学习网络的参数值,y(i)表示每个样本对应的标签值。

第5步,按照下式,计算深度学习参数的更新值:

其中,θ1表示检测深度学习网络和识别深度学习网络参数当前迭代更新后的值,表示所选样本损失值的平均值对检测深度学习网络和识别深度学习网络参数的求导值,θ表示当前迭代更新前的检测深度学习网络和识别深度学习网络的参数值。

第6步,判断是否达到检测深度学习网络和识别深度学习网络的迭代次数,若是,

得到训练好的检测深度学习网络和识别深度学习网络,否则,执行本步骤的第2步。

步骤4,制备非配合人脸特征数据库。

(4.1)人脸采集模块采集一个未采集过的待识别人员的正脸,左右侧脸,仰视,俯视共5张人脸图像并纪录待识别人员的姓名。

(4.2)将每张图像输入到训练好的检测深度学习网络中,检测深度学习网络输出每张人脸图像对应的人脸区域。

(4.3)将每张图像对应的人脸区域输入到训练好的识别深度学习网络,输出每张人脸图像的512维人脸特征向量。

(4.4)将所采集的待识别人员的姓名、5张人脸图像的512维人脸特征向量映射成一个字典。

(4.5)判断人脸采集模块是否采集完所有待识别人员的图像,若是,则执行本步骤的(4.6),否则,执行本步骤的(4.1)。

(4.6)将所有的映射字典组成人脸特征数据库。

步骤5,检测并跟踪图像的人脸区域。

参照图2,对本步骤做进一步的详细描述。

(5.1)对摄像头的视频流进行一次实时采样,采集一张图像。

(5.2)判断当前检测人脸区域集合是否为空,若是,执行本步骤的(5.3),否则,执行本步骤的(5.6)。

(5.3)将采集的图像输入到检测深度学习网络中。

(5.4)检测深度学习网络判断输入的图像中是否含有至少一个人脸区域,若是,则执行本步骤的(5.5),否则,执行本步骤的(5.1)。

(5.5)检测深度学习网络输出图像中所有的人脸区域,将输出图像中所有人脸区域组成一个人脸区域集合后执行本步骤的(5.11)。

(5.6)判断检测人脸区域是否替代了25次,若是,执行本步骤的(5.7),否则,执行本步骤的(5.8)。

(5.7)将检测人脸区域集合输入到c++的机器学习算法工具包的start_track函数中,得到跟踪人脸区域集合后执行本步骤的(5.11)。

(5.8)从检测人脸区域集合内,选择一个未选过的人脸区域,利用交并比公式,与上次采样图像的检测人脸区域集合内的所有人脸区域分别计算重叠度。

所述的交并比公式如下:

其中,iou表示本次采样图像的人脸区域与上次采样图像的人脸区域的重叠度,a表示从采样图像的检测人脸区域集合内选中的人脸区域,b表示上次采样图像的检测人脸区域集合内的一个人脸区域。

(5.9)判断所有重叠度中的最大值是否大于0.2,若是,则所选人脸区域替换最大值对应的上次采样图像的人脸区域,否则,将所选人脸区域添加至上次采样图像的人脸区域集合。

(5.10)判断是否选择完采样图像的检测人脸区域集合中的人脸区域,若是,执行本步骤的(5.11),否则,则执行本步骤的(5.8)。

(5.11)替代当前检测人脸区域集合。

步骤6,特征匹配。

将当前检测人脸区域集合中的每一个人脸区域输入到识别深度学习网络,输出每一个人脸区域对应的512维特征向量。

利用余弦相似度公式,计算每一个人脸区域的特征向量与人脸特征数据库的特征向量的相似度。

所述的余弦相似度公式如下:

其中,θ表示每一个人脸区域的特征向人脸特征数据库的特征向量的余弦相似度,x表示人脸区域特征向量,y表示人脸特征库特征向量,t表示转置操作,表示开平方根操作,arccos表示反三角函数中的反余弦操作,π表示圆周率。

步骤7,判断特征匹配是否进行了50次,若是,执行步骤8,否则,执行步骤5。

步骤8,人脸识别。

将所有的余弦相似度中最大值大于0.23的人脸区域判定无效识别,在人脸数据库中找到其余的余弦相似度最大值对应的特征向量,通过特征向量找到该人脸区域对应的人的信息,完成人脸识别。

下面结合仿真实验对本发明的效果做进一步说明。

1.仿真实验条件:

本发明的仿真实验所用计算机配置如下:处理器为intelcorei7-6850kcpu,显卡为nvidiageforcegtx1080ti,内存为128gb。计算机系统为ubuntu16.04,应用tensorflow深度学习网络框架实现仿真实验。

本发明的仿真实验在训练检测深度学习网络时所使用的训练集为数据集widerface,widerface数据集是由香港中文大学创建的,该数据集共包含有32000张图片,393000个标注人脸,标注人脸有较大程度的尺寸、姿态和遮挡等变化。本发明的仿真实验在训练识别深度学习网络时所使用的训练集为数据集vggface2,vggface2是一个大规模人脸识别数据集,包含331万张图像,9131个身份信息,平均每个身份信息对应的图片个数为362.6,这些图像覆盖了大范围的人体姿态,年龄和种族。本发明的仿真实验所使用的测试数据为西安电子科技大学主楼二区入口拍摄的视频,西安电子科技大学主楼二区入口拍摄的视频,视频的帧率为25帧/秒。

2.仿真实验内容:

本发明的仿真实验是采用本发明的方法,选取全部的widerface数据集作为检测深度学习网络的训练集,对所搭建的检测深度学习网络在widerface数据集上进行训练,选取全部的vggface2数据集作为识别深度学习网络的训练集,对所搭建的识别深度学习网络在vggface2数据集上进行训练,得到训练好的检测深度学习网络和识别深度学习网络。

将训练好的检测深度学习网络和识别深度学习网络在西安电子科技大学主楼二区入口的实时视频上进行测试,实时完成人脸识别,结果如图3所示。

图3显示的是测试数据里截取的人脸图像结果图。其中,图3(a)为测试数据里截取的低头的人脸图像结果图,图3(b)为测试数据里截取的模糊的人脸图像结果图,图3(c)为测试数据里截取的遮挡的人脸图像结果图,图像上的矩形框为检测到的人脸区域,人脸区域左上角为人脸识别的结果,均为正确识别结果。

从图3中可以得到如下结论:本发明在对形变和遮挡的人脸具有较好的识别效果,同时具有良好的实时性。

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