本发明属于图像检索技术领域,具体涉及一种基于深度学习的由粗到精的快速人脸检索方法。
背景技术:
随着现代计算机技术和人工智能的快速发展,人脸识别技术作为一种新兴的生物识别特征技术已经趋于成熟,与虹膜识别、指纹识别等技术相比,人脸识别技术在应用方面具有独到的优势,由于其具有方便、友好、非接触等优点,已经广泛应用到诸如视觉监控、自动身份验证、银行安全、门禁安全、刑侦等多个领域。
人脸识别问题包括1:1人脸验证、1:n人脸识别以及m:n人脸识别。其中,1:1人脸验证主要用于手机解锁、金融以及信息安全等领域,1:n人脸识别是从海量的人像数据库中找到与当前人脸数据相符合的图像,主要用于嫌犯追踪、小区门禁以及会场签到等领域,m:n人脸识别是通过计算机对场景内所有人进行面部识别并与人像数据库进行比对的过程,主要用于公共安防、迎宾等领域。随着应用场景的复杂度不断增加,数据库的规模也越来越大,在数据库中快速检索出目标人脸的难度也随之增加,因此,如何在海量数据库中快速检索人脸是人脸识别的一个重点研究方向。
目前,针对快速人脸检索问题广大学者提出了很多不同的方法,例如:发明专利(发明人:陶冰洁、王酉祥等,申请号:201810987143.4,名称:一种基于深度学习的快速人脸检索方法)公开了一种基于深度学习的快速人脸检索方法,利用深度神经网络提取人脸二值特征并结合局部敏感哈希最近邻检索算法,实现了快速高效的人脸检索算法。发明专利(发明人:李开、邹复好等,申请号:201811057447.7,名称:一种基于深度特征的大规模人脸检索方法)公开了一种基于深度特征的大规模人脸检索方法,通过深度特征提取,缓冲消息队列构建,二进制特征压缩,建立多维度信息索引,并进行磁盘数据备份以及高速缓存,通过多维度特征索引以及基于内存的高速缓存进行精准过滤,使得大规模人脸图像数据集检索耗时大幅度降低,并且能够快速准确的得到匹配结果,实时性强,准确性高。发明专利(发明人:吴晓鹏、谢赟等,申请号:201910119779.1,名称:基于k均值聚类算法的人脸识别检索方法)公开了基于一种k均值聚类算法的人脸识别检索方法使用卷积神经网络从图像库中提取人脸图像的特征向量,建立人物库,每个人物都通过k均值聚类方法计算出该人物对应的中心向量,使用卷积神经网络从待查询图像中提取特征向量,并与人物库中的各中心向量作浮点数精确比对,通过比较结果,确定返回的检索结果。发明专利(发明人:熊智、古晓艳等,申请号:201910270855.9,名称:一种基于深度学习和哈希编码的人脸图像检索方法和装置)提供一种基于深度学习和哈希编码的人脸图像检索方法和装置,考虑人脸图像的特殊性,减少图像的背景信息对人脸特征的干扰,增强对有区分力的人脸特征的表达,为每一张人脸图像生成具有强区分力的二值哈希码,提高检索速度,降低存储开销,提高检索准确度。
人脸图像检索的本质是基于人脸特征的检索,传统的人脸检索方法直接遍历整个数据库中的所有特征值进行计算,当人脸数据规模较大时,其计算任务会非常繁重,导致检索速度下降,检索耗时较长。
技术实现要素:
针对现有技术中海量数据人脸检索耗时较长的问题,本发明的目的在于提出了一种基于深度学习的由粗到精的快速人脸检索方法。
所述的一种基于深度学习的由粗到精的快速人脸检索方法,其特征在于,包括如下步骤:
步骤1:利用卷积神经网络对人脸样本图像进行训练,得到训练好的人脸特征提取模型w,利用人脸特征提取模型w提取人脸特征,具体为:
步骤1.1:利用模型w提取人脸图像i的人脸特征向量并记为f={feai|i=1,2,...,n},其中,feai为浮点数并表示浮点型人脸特征向量f中的第i个特征值,n表示人脸特征向量f的维度;
步骤1.2:令人脸图像i对应的二进制人脸特征向量为fb={feabi|i=1,2,...,n},其中,feabi∈{0,1}并表示二进制人脸特征向量fb中的第i个特征值,令浮点型人脸特征向量f的平均特征
步骤2:令海量人脸数据对应的浮点型人脸特征向量集合gf={(pi,fi)|i=1,2,...,n},二进制人脸特征向量集合
步骤2.1:利用聚类算法将海量人脸数据gf划分为k个类别,使得每一个类别中的二进制人脸特征向量与其所属类别的聚类中心的距离最近,令所有类别的聚类中心的集合为ccluster={cj|j=1,2,...,k},其中,
步骤3:粗略检索阶段,令任意待检索人脸为ia,其对应的浮点型人脸特征向量fi={feaii|i=1,2,...,n},对应的二进制人脸特征向量fib={feabii|i=1,2,...,n},其中,feaii为浮点数并表示待检索人脸的浮点型人脸特征向量fi中的第i个特征值,feabii∈{0,1}并表示待检索人脸的二进制人脸特征向量fib中的第i个特征值,遍历集合ccluster,计算二进制人脸特征向量fib与每一个聚类中心cj的距离d(fib,cj),其中,距离计算如公式(2)所示,令j′=argmin(d(fib,cj)),其中j′∈[1,k],即二进制人脸特征向量fib与聚类中心集合ccluster中第j′个类别的聚类中心距离最近;
其中,符号
步骤3.1:遍历第j′个类别,利用公式(2)计算二进制人脸特征向量fib与第j′个二进制人脸特征向量聚类
步骤4:精细检索阶段,遍历粗略搜索阶段得到的浮点数人脸特征向量集合gff,计算浮点型人脸特征向量fi与粗略搜索阶段得到的浮点型人脸特征向量集合gff中的每一个浮点型人脸特征向量的距离df(fi,ft2),其中
通过采用上述技术,与现有技术相比,本发明的有益效果是:
1)相比于传统的逐一比对检索方法,本发明大大减少了人脸检索时的比对次数,加快检索速度;
2)利用由粗到精的人脸检索策略,首先找到与待检索人脸距离最近的聚类,在该聚类中利用二进制人脸特征向量进行粗略检索,缩小检索范围,接着使用浮点型人脸特征向量在粗略检索得到的结果中进行精细检索,在提高检索速度的同时确保了检索结果的准确性。
附图说明
图1为本发明一种基于深度学习的由粗到精的快速人脸检索方法实施例的流程图。
具体实施方式
下面结合说明书附图和实施例,对本发明进行进一步的说明。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
如图1所示,本发明的一种基于深度学习的由粗到精的快速人脸检索方法,具体包括如下步骤:
步骤1:利用卷积神经网络对人脸样本图像进行训练,本实施例中,卷积神经网络包含52个卷积层和1个全连接层,人脸样本图像为rgb格式的图像,得到训练好的人脸特征提取模型w,利用人脸特征提取模型w提取人脸特征,具体为:
步骤1.1:利用模型w提取人脸图像i的人脸特征向量并记为f={feai|i=1,2,...,n},其中,feai为浮点数并表示浮点型人脸特征向量f中的第i个特征值,n表示人脸特征向量f的维度,本实施例中n取值为512;
步骤1.2:令人脸图像i对应的二进制人脸特征向量为fb={feabi|i=1,2,...,n},其中,feabi∈{0,1}并表示二进制人脸特征向量fb中的第i个特征值,令浮点型人脸特征向量f的平均特征
步骤2:令海量人脸数据对应的浮点型人脸特征向量集合gf={(pi,fi)|i=1,2,...,n},二进制人脸特征向量集合
步骤2.1:利用聚类算法将海量人脸数据gf划分为k个类别,使得每一个类别中的二进制人脸特征向量与其所属类别的聚类中心的距离最近,本实施例中k取值为10,令所有类别的聚类中心的集合为ccluster={cj|j=1,2,...,k},其中,
步骤3:粗略检索阶段,令任意待检索人脸为ia,其对应的浮点型人脸特征向量fi={feaii|i=1,2,...,n},对应的二进制人脸特征向量fib={feabii|i=1,2,...,n},其中,feaii为浮点数并表示待检索人脸的浮点型人脸特征向量fi中的第i个特征值,feabii∈{0,1}并表示待检索人脸的二进制人脸特征向量fib中的第i个特征值,遍历集合ccluster,计算二进制人脸特征向量fib与每一个聚类中心cj的距离d(fib,cj),其中,距离计算如公式(2)所示,令j′=argmin(d(fib,cj)),其中j′∈[1,k],即二进制人脸特征向量fib与聚类中心集合ccluster中第j′个类别的聚类中心距离最近;
其中,符号
步骤3.1:遍历第j′个类别,利用公式(2)计算二进制人脸特征向量fib与第j′个二进制人脸特征向量聚类
步骤4:精细检索阶段,遍历粗略搜索阶段得到的浮点数人脸特征向量集合gff,计算浮点型人脸特征向量fi与粗略搜索阶段得到的浮点型人脸特征向量集合gff中的每一个浮点型人脸特征向量的距离df(fi,ft2),其中
其中,t2′∈[1,t2],即浮点型人脸特征向量集合gff中第t2′个人员与待检索人员人脸最为相似。
1.一种基于深度学习的由粗到精的快速人脸检索方法,其特征在于包括如下步骤:
步骤1:利用卷积神经网络对人脸样本图像进行训练,得到训练好的人脸特征提取模型w,利用人脸特征提取模型w提取人脸特征;
步骤2:令海量人脸数据对应的浮点型人脸特征向量集合gf={(pi,fi)|i=1,2,...,n},二进制人脸特征向量集合
步骤2.1:利用聚类算法将海量人脸数据gf划分为k个类别,使得每一个类别中的二进制人脸特征向量与其所属类别的聚类中心的距离最近,令所有类别的聚类中心的集合为ccluster={cj|j=1,2,...,k},其中,
步骤3:粗略检索阶段,令任意待检索人脸为ia,其对应的浮点型人脸特征向量fi={feaii|i=1,2,...,n},对应的二进制人脸特征向量fib={feabii|i=1,2,...,n},其中,feaii为浮点数并表示待检索人脸的浮点型人脸特征向量fi中的第i个特征值,feabii∈{0,1}并表示待检索人脸的二进制人脸特征向量fib中的第i个特征值,遍历集合ccluster,计算二进制人脸特征向量fib与每一个聚类中心cj的距离d(fib,cj),其中,距离计算如公式(2)所示,令j′=argmin(d(fib,cj)),其中j′∈[1,k],即二进制人脸特征向量fib与聚类中心集合ccluster中第j′个类别的聚类中心距离最近;
其中,符号
步骤3.1:遍历第j′个类别,利用公式(2)计算二进制人脸特征向量fib与第j′个二进制人脸特征向量聚类
步骤4:精细检索阶段,遍历粗略搜索阶段得到的浮点数人脸特征向量集合gff,计算浮点型人脸特征向量fi与粗略搜索阶段得到的浮点型人脸特征向量集合gff中的每一个浮点型人脸特征向量的距离df(fi,ft2),其中
2.根据权利要求1所述的一种基于深度学习的由粗到精的快速人脸检索方法,其特征在于步骤1中的利用人脸特征提取模型w提取人脸特征,具体步骤如下:
步骤1.1:利用人脸特征提取模型w提取人脸图像i的人脸特征向量并记为f={feai|i=1,2,...,n},其中,feai为浮点数并表示浮点型人脸特征向量f中的第i个特征值,n表示人脸特征向量f的维度;
步骤1.2:令人脸图像i对应的二进制人脸特征向量为fb={feabi|i=1,2,...,n},其中,feabi∈{0,1}并表示二进制人脸特征向量fb中的第i个特征值,令浮点型人脸特征向量f的平均特征
