一种基于深度学习的快速人脸检索方法与流程

文档序号:16669027发布日期:2019-01-18 23:27阅读:446来源:国知局
一种基于深度学习的快速人脸检索方法与流程

本发明涉及计算机视觉目标检索应用领域,具体涉及到大数据集中基于深度学习的快速人脸检索方法。



背景技术:

人脸识别系统以人脸识别技术为核心,是一项新兴的生物识别技术,是当今国际科技领域攻关的高精尖技术。它广泛采用区域特征分析算法,融合了计算机图像处理技术与生物统计学原理于一体,利用计算机图像处理技术从视频中提取人像特征点,利用生物统计学的原理进行分析建立数学模型,具有广阔的发展前景。人脸检索技术广泛应用在刑侦、监控以及治安等多个领域和场景,有着非常高的研究价值。随着应用场景的复杂度不断增加,数据库的规模也越来越大,在数据库中快速检索出目标人脸的难度也随着增加。在实际的应用中,样本数一般比较大并且会频繁变化(如公民的身份证库),所以对于人脸识别问题,大多数研究人员的重点在于验证,即比较两张图片是否属于同一个个体,然而验证算法的应用场景有限,对于海量数据库的检索只能通过一一比对的方式,效率比较低下,因此,如何在海量数据库中快速检索人脸是人脸识别的一个重点研究方向。

本文提出了一种基于深度学习的快速人脸检索算法,利用深度神经网络提取人脸二值特征,结合lsh算法,实现海量数据库中的人脸快速检索。



技术实现要素:

本发明的目的在于:为解决目前基于二值特征的快速人脸检索方法的准确率不高的问题,本发明提供一种基于深度学习的二值特征提取算法,用于人脸快速检索。

为了解决上述技术问题,达到上述目的,本发明采用如下技术方案:

一种基于深度学习的快速人脸检索方法,包括如下步骤:

步骤1:设计卷积神经网络结构和损失函数;

卷积神经网络以inception-resnet-v2为主要结构,以sigmoid函数为激活函数,损失函数包括交叉熵损失函数、中心距离损失层损失函数和类间损失层损失函数;

(1)交叉熵损失函数:

交叉熵损失函数表达式如下:

其中a为网络实际的输出,y为期望值;

(2)中心距离损失层损失函数:

中心距离损失函数的表达式如下:

其中表示数据块中第yi个个体所有样本的特征中心值,xi表示该个体的某一样本的特征值;

(3)类间损失层损失函数:

类间损失函数表达式如下:

其中,α为自定义常量,xni代表第i个个体的第n张图片,xmj同理;

步骤2:通过损失函数训练卷积神经网络;

步骤3:对于检索数据库的所有图片,通过训练好的卷积神经网络计算人脸二值特征;

步骤4:根据二值特征设计哈希函数,构造哈希结构;

步骤5:对于待检索的图片,代入卷积神经网络中得到二值特征,通过lsh算法在检索数据中进行检索;

步骤6:根据步骤5中的检索结果,找到正确匹配的人脸图片,完成检索。

具体地,所述步骤2的具体步骤为:

步骤2.1:训练数据集和数据分块

选择casia-webface人脸数据库作为训练集,随机选择10000个体约40w图片,首先进行对齐预处理,训练数据块大小为500,每个数据块包含12个个体,每个个体约有40个样本;

步骤2.2:交叉熵损失层训练

根据每个样本对应的类别,计算交叉熵损失层损失,进行训练;

步骤2.3:中心距离损失层训练

每个数据块所有样本前向传播得到sigmoid层的特征值,再计算相同个体的特征均值,根据损失函数开始训练,并更新特征均值;

步骤2.4:类间距离损失层训练

先计算所有样本传播至sigmoid层后的特征值,然后随机选择部分不同个体样本,根据损失函数进行训练。

具体地,所述步骤3具体为:

对检索数据库的所有图片,通过卷积神经网络计算得到128维的特征后,以0.5为阈值,将人脸特征二值化。

具体地,所述步骤4具体为:

根据lsh算法,设计哈希函数,根据哈希函数建立特征的哈希结构。

具体地,所述步骤5的具体流程为:

对于待检索的图片,代入卷积神经网络中得到二值特征,通过lsh算法在检索库中进行检索,根据相似度得到检索排序。

具体地,所述步骤6的具体流程为:

步骤5最终得到了检索的相似度排序,然后找到正确匹配人脸的排序作为评价标准,完成检索。

因为本发明采用上述技术方案,因此具备以下有益效果:

(1)本发明创新性的提出一种类间损失层,结合交叉熵损失和中心距离损失,使得最终得到的二值特征更为稳定和可区分性,最后结合最近邻检索算法,提升目前人脸检索算法检索效率并拓展应用场景。

(2)算法鲁棒性较好,人脸特征提取稳定在复杂背景下的应用十分稳定。

附图说明

图1为人脸检索流程图;

图2为神经网络结构图;

图3为通过神经网络计算图片特征示意图;

图4为根据特征相似度进行检索示意图。

具体实施方式

下面将结合附图及具体实施方式对本发明作进一步的描述。

如图1所示,一种基于深度学习的快速人脸检索方法,包括如下步骤:

步骤1:如图2所示,设计卷积神经网络结构和损失函数;

卷积神经网络以inception-resnet-v2为主要结构,以sigmoid函数为激活函数,损失函数包括交叉熵损失函数、中心距离损失层损失函数和类间损失层损失函数;

(1)交叉熵损失函数:

交叉熵损失函数表达式如下:

其中a为网络实际的输出,y为期望值。

(2)中心距离损失层损失函数:

中心距离损失函数的表达式如下:

其中表示数据块中第yi个个体所有样本的特征中心值,xi表示该个体的某一样本的特征值;

(3)类间损失层损失函数:

类间损失函数表达式如下。

其中,α为自定义常量,xni代表第i个个体的第n张图片,xmj同理,通过引入类间损失层,有效的增大类间距离;

步骤2:通过损失函数训练卷积神经网络;具体地,所述步骤2的具体步骤为:

步骤2.1:训练数据集和数据分块

选择casia-webface人脸数据库作为训练集,随机选择10000个体约40w图片,首先进行对齐预处理,训练数据块大小为500,每个数据块包含12个个体,每个个体约有40个样本;

步骤2.2:交叉熵损失层训练

根据每个样本对应的类别,计算交叉熵损失层损失,进行训练;

步骤2.3:中心距离损失层训练

每个数据块所有样本前向传播得到sigmoid层的特征值,再计算相同个体的特征均值,根据损失函数开始训练,并更新特征均值;

步骤2.4:类间距离损失层训练

先计算所有样本传播至sigmoid层后的特征值,然后随机选择部分不同个体样本,根据损失函数进行训练。

步骤3:对于检索数据库的所有图片,通过训练好的卷积神经网络计算人脸二值特征;所述步骤3具体为:

对检索数据库的所有图片,通过卷积神经网络计算得到128维的特征后,以0.5为阈值,将人脸特征二值化,如图3所示。

步骤4:据lsh算法,设计哈希函数,根据哈希函数建立特征的哈希结构。

步骤5:对于待检索的图片,代入卷积神经网络中得到二值特征,通过lsh算法在检索库中进行检索,根据相似度得到检索排序。

步骤6:根据步骤5最终得到了检索的相似度排序,然后找到正确匹配人脸的排序作为评价标准,完成检索,如图4所示。

步骤6:根据步骤5中的检索结果,找到正确匹配的人脸图片,完成检索。通过引入sigmoid层以及三种损失函数间的相互作用,本文提取到的二值特征在实际的应用中既简化了特征的复杂度,又保持了特征的可区分性,这种二值特征提取算法同样适用于其他场景。

按照上述步骤进行实验后,引入类间损失和不引入类间损失算法在lfw上的人脸验证准确率分别为92.3%和90.1%,在检索的过程中,也有更好的表现。

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