法律状态公告日
法律状态信息
法律状态
2019-08-23
授权
授权
2016-12-07
实质审查的生效 IPC(主分类):G06K9/00 申请日:20160608
实质审查的生效
2016-11-09
公开
公开
技术领域
本发明涉及人工智能,模式识别,数字图像处理等技术领域,具体涉及一种基于定序神经网络模型的人脸识别方法及装置。
背景技术
作为生物特征识别技术的一种,人脸识别由于其非接触性以及采集方便的特点,具有良好的发展和应用前景。人脸识别技术在诸多应用场景中都发挥了十分重要的作用,比如机场安检,边检通关等。近几年随着互联网金融的高速发展,人脸识别技术在移动支付上表现出极大的应用优势。人脸识别的目的是根据获取的用户人脸图像或视频得知用户的身份。目前,人脸识别技术在室外非受控环境下仍无法满足实用要求,其主要难点在于光照变化、用户姿态表情变化、年龄体型变化及遮挡。
近年来,深度学习在机器视觉的众多领域都取得了令人瞩目的效果。其中最为瞩目的模型当属卷积神经网络,该类模型使用多层卷积层与池化层,可以抽取图像或视频数据中有效的层级化特征,实现较强的非线性表达。卷积神经网络在物体分类,动作识别,图像分割以及人脸识别等领域,均取得了显著强于传统方法的效果。在一些低层视觉问题中,比如图像去噪,图像超分辨率增强,图像去模糊等问题中,深度学习技术也都取得了不错的效果。在人脸识别领域,基于神经网络与深度学习的人脸识别方法也由于其优异的性能而备受关注,目前国内外领先的人脸识别算法大多基于深度学习模型。基于深度学习的人脸识别方法通常分为两个步骤:首先使用神经网络模型对输入的人脸图像计算一个特征表达;然后根据特征表达间的相似性得到人脸图像的。
随着大数据时代的来临,我们需处理的数据规模往往非常大,人脸识别算法的速度的高效性愈发重要。尤其是在移动支付领域,人脸识别算法的内存要求和速度直接影响用户的等待时间。因此,目前迫切需要开发一种人脸识别算法,其可以在保证高识别率的同时,满足轻量级、泛化性能高的要求。
发明内容
(一)要解决的技术问题
为了解决提高人脸识别算法的准确率,同时保证识别算法的快速高效,本发明提出了一种基于定序神经网络模型的人脸识别方法。使用定序神经单元,通过保持不同层级特征间的定序关系挖掘出输入图像或视频中的有效特征。由于定序神经单元自身具备的特征选择特性,使得包含定序神经单元的神经网络模型往往参数量较小,具备轻量级的特点,从而保证了人脸识别算法较快的计算速度和较小的存储需求。
(二)技术方案
本发明提出了一种基于定序神经网络模型的人脸识别方法,包括:
步骤S1、读入输入的待识别图像,检测待识别图像中的人脸位置和关键点位置信息;
步骤S2、根据所述人脸位置信息和关键点信息对待识别图像进行预处理操作;
步骤S3、将预处理后的待识别图像输入至定序神经网络模型中,得到待识别图像的特征表达;
步骤S4、计算待识别图像的特征表达与数据库中已知人脸图像特征的相似度,以识别待识别图像。
本发明还提出了一种基于定序神经网络模型的人脸识别装置,其特征在于,包括:
输入模块,用于读入输入的待识别图像,检测待识别图像中的人脸位置和关键点位置信息;
预处理模块,用于根据所述人脸位置信息和关键点信息对待识别图像进行预处理操作;
特征获取模块,用于将预处理后的待识别图像输入至定序神经网络模型中,得到待识别图像的特征表达;
识别模块,用于计算待识别图像的特征表达与数据库中已知人脸图像特征的相似度,以识别待识别图像。
本发明针对人脸识别问题中,基于神经网络的人脸识别模型参数多,计算开销大的问题,提出定序神经网络结构,通过不同特征间的定序表示有效地减少网络参数,节省计算时间;并针对训练数据较少的问题,提出了基于对比损失、三元组损失的训练方法。本发明采用的定序神经网络模型可用于图像视频分类、图像检索、人脸识别等诸多问题中,在保证高准确率的同时,相比现有的神经网络模型的具备更少的网络参数,使得存储成本、计算成本大大降低,更加适应于大数据场景下的各项任务。对于人脸识别,发明所采用的方法不仅有效减少了神经网络模型的参数量,并能明显提升人脸表示的泛化能力,相比同等参数量与计算时间的模型来说大幅度提高了人脸识别准确率。
附图说明
图1是本发明中基于定序神经网络模型的人脸识别方法的方法流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实例,并参照详细附图,对本发明进一步详细说明。但所描述的实施例子仅旨在便于对本发明的理解,而对其不起任何限定作用。
图1是本发明提出的基于定序神经网络模型的人脸识别方法的方法流程图,如图1所示,本发明提出的基于定序神经网络模型的人脸识别方法包括以下几个步骤:
步骤S1、读入输入的人脸图像或视频,检测输入图像或视频帧中的人脸位置信息和关键点位置信息;
在一实施例中,根据所述输入的人脸图像或视频,应用图像识别算法检测人脸位置信息,并根据所得人脸位置信息,应用图像识别算法获取人脸的关键点位置信息。其中,人脸的关键点为预先定义的,如双眼、鼻尖、嘴轮廓、脸周轮廓等等。
步骤S2、根据所述人脸位置信息和关键点位置信息对输入图像或视频帧中的人脸图像进行预处理操作。所述预处理操作包括姿态校正和光线校正;
在一实施例中,所述姿态校正包括:确定标准脸的关键点位置和光照条件,然后根据步骤S1获取的人脸位置信息和关键点信息将输入图像的人脸关键点位置对齐至标准脸关键点位置,以达到校正人脸姿态的目的;其中,可预先定义标准脸的关键点位置和光照条件,或直接使用在训练集上计算得到平均脸作为标准脸,然后确定其关键点位置信息和光照条件标准脸;
在一实施例中,所述光线校正包括通过图像处理算法,将人脸图像的光照变换至与标准脸一致。
姿态校正与光线校正的操作次数不限,且其先后顺序可互换。
步骤S3、将经过预处理后的人脸图像输入至定序神经网络模型中,得到人脸图像的特征表达;所述定序神经网络模型预先经过训练得到。
进一步地,所述步骤S3包括:
步骤S3-1、训练一个用来从已经过预处理的人脸图像中计算特征表达的定序神经网络模型。所述神经网络模型包含定序神经网络单元。定序神经网络单元是神经网络模型中的一类激活函数。与深度学习中常用的sigmoi、ReLU等单输入单输出的激活函数不同,定序神经网络单元采取多输入的形式,可获取多个输入间的定序表达。
在一实施例中,所述定序神经网络单元的一个典型形式为:
>
其中I1,I2分别为定序神经网络单元的两个输入,Y为定序神经网络单元的输出。i,j分别是输入、输出图像在两x,y个方向上的索引。从上式可看出,定序神经网络单元的最大值操作是按位进行的,即输出图像每一位为各输入对应位的最大值。即该定序神经网络单元的输出为对输入的一个定序表达。值得注意的是,式中的取最大值操作并非定序神经单元的唯一操作形式,最大值操作还可替换为最小值、平均值、和差、积商等常见数学操作。定序神经网络单元的输入也不限于两个,可以是多个输入的组合。即定序神经网络单元还可扩展为以下形式:
>
>
>
>
>
定序神经网络使用定序神经网络单元作为激活函数,可自动学习出输出对目标任务有效的特征间的定序表达。
具体的,步骤S3-1进一步包括:
使用softmax损失、对比损失和三元组损失作为目标函数训练一个人脸图像特征提取模型,该网络的输入为标准大小的人脸图像x,输出为固定长度的人脸图像特征表达f(x)。
步骤S3-1-1、利用收集的训练数据,训练卷积神经网络分类模型,用来对训练样本中的人脸图像分类。卷积神经网络分类模型的输出层即为一个分类器,其接受人脸图像特征表达f(x)作为输入,输出值可用于计算输入图像的类别。对于具有N类的分类模型,网络的输出具有N个节点。
该步骤中,利用softmax损失函数为代表的一系列分类损失函数作为优化目标,训练得到人脸图像分类模型,其中softmax损失函数如下所示:
其中,N是类别数目;x是输入人脸图像;y∈RN×1是表示人脸图像类别的类别向量,若训练样本属于第i类,则类别向量y中仅有第i维为1,其他维均等于0;
S3-1-2:将步骤S3-1-1中已训练好的人脸图像分类神经网络模型作为预训练的模型,使用对比损失(contrastive loss)和三元组损失(triplet loss)继续对神经网络模型进行优化训练。
去除S3-1-1中训练得到模型的输出层,得到模型剩余层的输出f(x)即为人脸图像的特征表达。
对比损失的优化目标为:
其中f(x)为步骤S3-1-1中分类模型输出层的输入,即次末层的输出,为人脸图像的特征表达。d(.)可为以L2距离、余弦距离为代表的一系列距离函数。训练过程中,可随机组合训练集中的样本,构建类内样本对与类间样本对。θ为控制类内类间距离差异的一个参数,根据经验值进行设定。
三元组损失的优化目标为:
L=max(d(f(xa),f(xp))-d(f(xa)+α,f(xn)),0)
其中f(x)为步骤S3-1-1中分类模型输出层的输入,即次末层的输出,为人脸图像的特征表达。d(.)可为以L2距离、余弦距离为代表的一系列距离函数。xa称为中心样本,xp为与中心样本xa属于同一类的正样本,xn为与中心样本xa属于不同类的负样本。a为控制类内类间距离差异的一个参数,根据经验值进行设定。训练过程中,可在训练集合中随机挑选样本作为中心样本,然后在剩余样本中选取与其同类/不同类的样本构建三元组。
在一实施例中,步骤S3-1-2的训练过程中,筛选出难样本组合作为训练数据。难样本筛选的具体步骤为:
对于大容量训练集,随机生成二元组合和三元组,分别计算其对应的对比损失和三元组损失,剔除损失值低于预设阈值的组合,仅保留损失值较大的一批训练样本组合送入模型进行训练。
对于小容量训练集,首先计算所有样本间的相似度。然后选取相似度最低的同类样本作为难正样本,以及相似度最高的不同类样本作为难负样本,最后以筛选出的难正样本与难负样本作为训练样本送入模型进行训练。
随着网络训练的进行,不断调整学习率并筛选难样本送入训练,直至训练损失不再降低,从而得到最终的模型。
步骤S3-2、使用步骤S3-1中训练得到的神经网络模型,将步骤S2中得到的预处理后的人脸图像作为神经网络的输入,执行神经网络模型的前向计算,得到的神经网络模型的输出即为输入人脸图像的特征表达。
步骤S4、计算步骤S3得到的人脸图像特征与数据库中人脸图像特征的相似度,判断输入人脸图像中的用户身份。
实施案例:
为了详细说明本发明的具体实施方式及验证本发明的有效性,我们将本发明提出的方法应用于一个公开的人脸数据库——LFW人脸数据库。该数据库包括5749个人,共13233幅图像。
在我们的实施例中,我们采用LFW数据集的标准测试协议来证明本发明的有效性。LFW数据集的标准测试协议由6000对人脸图像组成,其中包含3000对相同人的人脸图像以及3000对不同人的人脸图像。
具体步骤如下:
训练过程:
步骤S3-1,收集大量人脸图像作为训练数据,设计神经网络模型。特别地,我们所使用神经网络模型包含4个卷积层与4个池化层,在每个池化层后将输出分为两组,连接最大值操作的定序神经单元。根据步骤S3-1的顺序,使用softmax损失、对比损失与三元组损失作为优化目标函数对模型进行训练。随着网络训练的进行,不断调整学习率并筛选难样本送入训练,直至训练损失不再降低,从而得到最终的模型。
测试过程:
步骤S1,我们首先对所有输入图像进行人脸检测与关键点检测,得到所有输入图像的人脸位置信息与关键点位置信息。
步骤S2,根据上一步获取的人脸位置信息和关键点信息对人脸图像进行姿态校正、光照平衡等预处理操作。具体地,对于LFW数据集,我们使用旋转和尺度缩放将输入人脸图像校正至正面人脸。
步骤S3,步骤S2得到的预处理后的人脸图像作为神经网络的输入,执行神经网络模型的前向计算,得到6000对人脸图像的特征表达。
步骤S4,计算6000对人脸图像的余弦距离作为其相似度。调整相似度阈值,即可得到在各阈值下的正确通过率、误识率与识别率。
表1是本发明在LFW数据库上的识别准确率
表1展示了我们方法在误识率为0、0.1%、1%时的正确通过率,以及在最优阈值下的识别率。表1还展示了我们的深度学习模型参数文件需要的存储空间大小与单张图片特征提取所用时间。和国际上性能相当的人脸识别模型相比,我们的方法计算速度更快、存储开销更小。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
机译: 利用微控制器提供自动定序和定时电源以及复位定序器的方法和装置
机译: 利用微控制器提供自动定序和定时电源以及复位定序器的方法和装置
机译: 检测可逆端子3掺入的方法? -O-去氧核糖核苷酸通过合成进行定序反应,通过极端的去氧核糖核苷酸合成进行定序?剂扩展产品的用途以及用于测序核酸,DNA排列和试剂盒的方法