首页 / 专利库 / 电脑编程 / 算法 / 人脸聚类方法、装置、计算机设备及存储介质

人脸聚类方法、装置、计算机设备及存储介质

阅读:729发布:2021-06-04

专利汇可以提供人脸聚类方法、装置、计算机设备及存储介质专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种人脸聚类方法、装置、计算机设备及存储介质,该人脸聚类方法包括:获取聚类人脸图像,采用特征提取模型对所述聚类人脸图像进行特征提取,获取人脸 特征向量 ;对所述人脸特征向量进行中心分裂聚类,实现均匀划分人脸特征向量,获取原始聚类类簇;对所述原始聚类类簇进行类间连通聚类,获取连通聚类类簇;对所述连通聚类类簇进行类内 修剪 ,获取目标聚类类簇,以提高人脸聚类的精确度。,下面是人脸聚类方法、装置、计算机设备及存储介质专利的具体信息内容。

1.一种人脸聚类方法,其特征在于,包括:
获取聚类人脸图像,采用特征提取模型对所述聚类人脸图像进行特征提取,获取人脸特征向量
对所述人脸特征向量进行中心分裂聚类,获取原始聚类类簇;
对所述原始聚类类簇进行类间连通聚类,获取连通聚类类簇;
对所述连通聚类类簇进行类内修剪,获取目标聚类类簇。
2.如权利要求1所述的人脸聚类方法,其特征在于,在所述对所述人脸特征向量进行中心分裂聚类,获取原始聚类类簇之后,所述人脸聚类方法还包括:
若所述原始聚类类簇中所述人脸特征向量的数量大于第一数量阈值,则采用程序接口将所述原始聚类类簇中的所述人脸特征向量分配到至少两个GPU进行处理。
3.如权利要求1所述的人脸聚类方法,其特征在于,所述对所述人脸特征向量进行中心分裂聚类,获取原始聚类类簇,包括:
基于所述人脸特征向量生成初始人脸矩阵,计算所述初始人脸矩阵对应的初始特征平均向量;
基于所述初始特征平均向量对所述初始人脸矩阵进行聚类,获取第一聚类类簇;
若所述第一聚类类簇中人脸特征向量的数量小于第二数量阈值,将所述第一聚类类簇确定为原始聚类类簇。
4.如权利要求3所述的人脸聚类方法,其特征在于,所述基于所述初始特征平均向量对所述初始人脸矩阵进行聚类,获取第一聚类类簇,包括:
计算所述初始人脸矩阵中每一人脸特征向量与所述初始特征平均向量的初始相似度,对所述初始相似度进行排序,获取排序结果;
从所述排序结果间隔抽取z个初始相似度,从所述初始人脸矩阵中抽取与z个初始相似度相对应的z个聚类中心;
依据所述z个聚类中心对所述初始人脸矩阵中的所有人脸特征向量进行聚类,生成第一聚类类簇。
5.如权利要求1所述的人脸聚类方法,其特征在于,所述对所述原始聚类类簇进行类间连通聚类,获取连通聚类类簇,包括:
计算每一所述原始聚类类簇对应的第一特征平均向量,采用相似度算法对所述第一特征平均向量和所述原始聚类类簇中任意一个所述人脸特征向量进行计算,确定所述第一特征平均向量和所述原始聚类类簇中任意一个所述人脸特征向量的第一相似度;
将原始聚类类簇中所述第一相似度大于第一连通聚类阈值的人脸特征向量连通为第二聚类类簇;
对所有所述第二聚类类簇进行类间聚类,获取连通聚类类簇。
6.如权利要求5所述的人脸聚类方法,其特征在于,所述对所有所述第二聚类类簇进行类间聚类,获取连通聚类类簇,包括:
计算每一所述第二聚类类簇的第二特征平均向量,基于所述第二特征平均向量确定任意两个第二聚类类簇对应的第二相似度;
若所述第二相似度大于第二连通聚类阈值,则将两个所述第二聚类类簇合并为连通聚类类簇。
7.如权利要求1所述的人脸聚类方法,其特征在于,所述对所述连通聚类类簇进行类内修剪,获取目标聚类类簇,包括:
对所述连通聚类类簇进行平均值计算,获取每一所述连通聚类类簇对应的第三特征平均向量;
计算所述连通聚类类簇中任意一个所述人脸特征向量与所述第三特征平均向量之间的第三相似度;
对连通聚类类簇中所述第三相似度小于第三连通聚类阈值的人脸特征向量进行裁剪,获取目标聚类类簇。
8.一种人脸聚类装置,其特征在于,包括:
人脸特征向量获取模,用于获取聚类人脸图像,采用特征提取模型对所述聚类人脸图像进行特征提取,获取人脸特征向量;
原始聚类类簇模块,用于对所述人脸特征向量进行中心分裂聚类,获取原始聚类类簇;
连通聚类类簇模块,用于对所述原始聚类类簇进行类间连通聚类,获取连通聚类类簇;
目标聚类类簇模块,用于对所述连通聚类类簇进行类内修剪,获取目标聚类类簇。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至
7任一项所述人脸聚类方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述人脸聚类方法的步骤。

说明书全文

人脸聚类方法、装置、计算机设备及存储介质

技术领域

[0001] 本发明涉及聚类领域,尤其涉及一种人脸聚类方法、装置、计算机设备及存储介质。

背景技术

[0002] 传统人脸聚类算法包括包括但不限于kmeans-聚类算法、基于共享邻居的rank order聚类方法和DBSCAN(Density-Based Spatial Clustering of Applications with Noise,即基于密度的聚类算法),但是这些传统人脸聚类算法对于大规模人脸图像进行聚类时,存在聚类结果不精确。例如,基于共享邻居的rank order聚类方法,容易将同一人的人脸特征向量划分成为多个类簇,聚类结果不准确;DBSCAN聚类算法的聚类时间复杂度过高,不能支持千万级人脸特征向量聚类;K-means聚类算法难以对人脸特征向量进行精准聚类,对大规模人脸特征向量难以均匀划分,影响聚类结果的精确度。

发明内容

[0003] 本发明实施例提供一种人脸聚类方法、装置、计算机设备及存储介质,以解决人脸聚类不精确的问题。
[0004] 一种人脸聚类方法,包括:
[0005] 获取聚类人脸图像,采用特征提取模型对所述聚类人脸图像进行特征提取,获取人脸特征向量;
[0006] 对所述人脸特征向量进行中心分裂聚类,获取原始聚类类簇;
[0007] 对所述原始聚类类簇进行类间连通聚类,获取连通聚类类簇;
[0008] 对所述连通聚类类簇进行类内修剪,获取目标聚类类簇。
[0009] 一种人脸聚类装置,包括:
[0010] 人脸特征向量获取模,用于获取聚类人脸图像,采用特征提取模型对所述聚类人脸图像进行特征提取,获取人脸特征向量;
[0011] 原始聚类类簇模块,用于对所述人脸特征向量进行中心分裂聚类,获取原始聚类类簇;
[0012] 连通聚类类簇模块,用于对所述原始聚类类簇进行类间连通聚类,获取连通聚类类簇;
[0013] 目标聚类类簇模块,用于对所述连通聚类类簇进行类内修剪,获取目标聚类类簇。
[0014] 一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述人脸聚类方法的步骤。
[0015] 一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述人脸聚类方法的步骤。
[0016] 上述人脸聚类方法、装置、计算机设备及存储介质,通过获取聚类人脸图像,采用特征提取模型对所述聚类人脸图像进行特征提取,对获取的人脸特征向量进行中心分裂聚类,对人脸特征向量进行均匀划分,快速获得原始聚类类簇,以便提高聚类速度。对所述原始聚类类簇进行类间连通聚类,获取连通聚类类簇,以将属于同一个用户的人脸特征向量划分到同一个类簇中,确保聚类的精确度。对所述连通聚类类簇进行类内修剪,获取目标聚类类簇,以确保获取的目标聚类类簇内没有干扰的人脸特征向量,以保障人脸聚类的精确度。附图说明
[0017] 为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0018] 图1是本发明一实施例中人脸聚类方法的一应用环境示意图;
[0019] 图2是本发明一实施例中人脸聚类方法的一流程图
[0020] 图3是本发明一实施例中人脸聚类方法的一流程图;
[0021] 图4是本发明一实施例中人脸聚类方法的一流程图;
[0022] 图5是本发明一实施例中人脸聚类方法的一流程图;
[0023] 图6是本发明一实施例中人脸聚类方法的一流程图;
[0024] 图7是本发明一实施例中人脸聚类方法的一流程图;
[0025] 图8是本发明一实施例中人脸聚类装置的一原理框图
[0026] 图9是本发明一实施例中计算机设备的一示意图。

具体实施方式

[0027] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028] 本发明实施例提供的人脸聚类方法,可以用于对大规模的人脸图像进行划分,以使属于同一个用户的人脸图像能够划分为一个目标聚类类簇;或者可以应用于人脸识别中,例如,可以截取摄像头中的待识别人脸图像,采用本实施例的人脸聚类方法对待识别人脸图像和图像数据库中已知人脸图像进行聚类,以判断待识别人脸图像是否存在于图像数据库中,实现对人脸图像进行识别,例如失踪人员追踪等场景下进行人脸图像识别
[0029] 该人脸聚类方法可应用如图1所示的应用环境中。具体地,该人脸聚类方法应用在人脸聚类系统中,该人脸聚类系统包括如图1所示的客户端和服务器,客户端与服务器通过网络进行通信,用于通过对大规模的人脸图像进行中心分裂聚类,以均匀划分人脸特征向量,然后对均匀划分的人脸特征向量进行连通聚类,获得目标聚类类簇,保证人脸聚类的精确度。其中,客户端又称为用户端,是指与服务器相对应,为客户提供本地服务的程序。客户端可安装在但不限于各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备上。服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
[0030] 在一实施例中,如图2所示,提供一种人脸聚类方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:
[0031] S201:获取聚类人脸图像,采用特征提取模型对聚类人脸图像进行特征提取,获取人脸特征向量。
[0032] 其中,聚类人脸图像是指需要进行聚类的人脸图像。本实施例的聚类人脸图像包括至少2个用户的聚类人脸图像,每一个用户包括至少两张聚类人脸图像。
[0033] 作为一示例,在人脸聚类方法进行模型训练过程中,可使同一个用户的多个聚类人脸图像携带有相同的用户标识,以便后续验证聚类效果是否准确。该用户标识用于识别唯一用户的标识,例如,用户标识可以是该用户的姓名或者身份证等。
[0034] 作为一示例,在人脸聚类方法在进行人脸识别过程中,可将不携带用户标识的未知身份的聚类人脸图像与携带用户标识的已知身份的聚类人脸图像进行聚类,根据聚类结果确定不携带用户标识的未知身份的聚类人脸图像的身份。
[0035] 特征提取模型是预先训练好的用于对聚类人脸图像进行特征提取的模型,该特征提取模型可以是基于卷积神经网络训练得到的人脸特征提取模型。
[0036] 人脸特征向量是指利用特征提取模型对聚类人脸图像进行特征提取后获得的向量。例如,可以利用特征提取模型提取每一张聚类人脸图像的的512维特征向量,或者利用特征提取模型提取每一张聚类人脸图像的的128维特征向量等。
[0037] 作为一示例,将聚类人脸图像输入预先训练好的特征提取模型进行特征提取,即可快速获取每一张聚类人脸图像的512维特征向量,本实施例中,人脸特征向量是指人脸图像中的人脸特征对应的向量。
[0038] S202:对人脸特征向量进行中心分裂聚类,获取原始聚类类簇。
[0039] 其中,原始聚类类簇是指对人脸特征向量进行第一次聚类后获得的类簇,此处的第一次聚类是中心分裂聚类。中心分裂聚类是一种基于人脸特征向量相似度对人脸特征向量进行聚类的处理过程。作为一示例,中心分裂聚类可对多个聚类人脸图像对应的人脸特征向量进行均匀划分,以快速获得原始聚类类簇。
[0040] 具体地,服务器提取到所有聚类人脸图像提取出的人脸特征向量,基于所有人脸特征向量生成初始人脸矩阵,并计算初始人脸矩阵的初始特征平均向量。例如,可以利用python的numpy库的mean函数对初始人脸矩阵进行均值计算,以便快速获取初始人脸矩阵的初始特征平均向量,基于初始特征平均向量获取聚类中心,根据聚类中心对人脸特征向量进行聚类分裂,以获取原始聚类类簇。其中,初始人脸矩阵是指所有人脸特征向量聚集在一起形成的矩阵。初始特征平均向量是指初始人脸矩阵对应的平均向量,作为一示例,计算机采用python的numpy库的mean函数对初始人脸矩阵进行均值计算,压缩初始人脸矩阵的行,对各列求均值,得到一个行向量,该行向量即为初始特征平均向量,例如,若初始人脸矩阵为 则初始特征平均向量为 其中,其中,i的取值为1、2、3、4和5。聚类中心是指基于初始特征平均向量从初始人脸矩阵中选取出来的用于进行聚类的人脸特征向量。
[0041] 相比于K-means聚类算法或者其他传统聚类算法,随机选取K个类中心进行聚类的方式,使得人脸特征向量进行随机划分,K-means聚类算法的时间复杂度为n2,n为人脸特征向量的数量,对应大规模的人脸特征向量聚类,时间复杂度非常大,存在聚类准确率低和效率低的问题。本实施例是基于初始特征平均向量获取聚类中心对人脸特征向量进行均匀划分,其时间复杂度为l*log(n),n为人脸特征向量的数量,l为中心分类聚类次数,对于大规模的人脸特征向量进行聚类,中心分裂聚类比K-means聚类算法等传统聚类算法的时间复杂度较低,可以有效提高人脸聚类的速度。其中,时间复杂度是指实现人脸聚类的运行时间。
[0042] S203:对原始聚类类簇进行类间连通聚类,获取连通聚类类簇。
[0043] 其中,类间连通聚类是指将相似度高的任意两个原始聚类类簇聚聚拢成一个类簇的方法,以将属于同一个用户的人脸特征向量划分到同一个类簇中。
[0044] 具体地,中心分裂聚类是基于初始特征平均向量对人脸特征向量进行均匀划分的过程,以便提高聚类速度,但中心分裂聚类过程形成的原始聚类类簇可能存在一个原始聚类类簇中包含不同用户的人脸特征向量,因此,需要对原始聚类类簇进行类间连通聚类,以将属于同一个用户的人脸特征向量划分到同一个类簇中,有助于提高聚类结果的准确性,以解决传统聚类算法中容易将同一个用户对应的人脸特征向量划分在不同类簇的问题。
[0045] S204:对连通聚类类簇进行类内修剪,获取目标聚类类簇。
[0046] 其中,类内修剪是对每一连通聚类类簇进行修剪,以排除连通聚类类簇中的误差人脸特征向量的过程。误差人脸特征向量是在一个连通聚类类簇中的人脸特征向量不为同一个用户的人脸特征向量。
[0047] 作为一示例,服务器可计算连通聚类类簇中的类内相似度,对类内相似度进行排序,将类内相似度较低的人脸特征向量确定为误差人脸特征向量,并排除误差人脸特征向量,达到对连通聚类类簇进行类内修剪的目的,确保人脸聚类的精确度。
[0048] 本实施例所提供的人脸聚类方法中,通过获取聚类人脸图像,采用特征提取模型对聚类人脸图像进行特征提取,对获取的人脸特征向量进行中心分裂聚类,对人脸特征向量进行均匀划分,快速获得原始聚类类簇,以便提高聚类速度。对原始聚类类簇进行类间连通聚类,获取连通聚类类簇,以将属于同一个用户的人脸特征向量划分到同一个类簇中,确保可精准地进行聚类。对连通聚类类簇进行类内修剪,获取目标聚类类簇,以确保获取的目标聚类类簇内没有干扰的人脸特征向量,以保障人脸聚类的精确度。
[0049] 在一实施例中,在步骤S202之后,即在对人脸特征向量进行中心分裂聚类,获取原始聚类类簇之后,人脸聚类方法还包括:若原始聚类类簇中人脸特征向量的数量大于第一数量阈值,则采用程序接口将原始聚类类簇中的人脸特征向量分配到至少两个GPU进行处理。
[0050] 其中,第一数量阈值是预先设置的用于判断是否需要对原始聚类类簇中的人脸特征向量进行划分处理的数量阈值。程序接口是用于实现将原始聚类类簇的人脸特征向量分配到不同的GPU进行处理的接口,该程序接口包括但不限于MPI接口。GPU(Graphic Processing Unit,即人脸图像处理器)是整个显卡的核心,GPU具体是计算机最基本组成部分之一,用途是将计算机系统所需要的显示信息进行转换驱动显示器,并向显示器提供逐行或隔行扫描信号,控制显示器的正确显示,是连接显示器和个人计算机主板的重要组件。MPI接口是信息传递应用程序接口,包括协议和和语义说明。
[0051] 作为一示例,服务器在任一原始聚类类簇中所有人脸特征向量的数量大于第一数量阈值时,将原始聚类类簇的人脸特征向量分配到至少两个GPU进行计算处理,具体是分配到至少两个GPU中进行相似度计算,以加快计算相似度的速度,从而加快人脸聚类速度,且GPU可以将计算得到的相似度结果发送给服务器,以便服务器根据计算得到的相似度结果划分人脸特征向量,实现进行类间连通聚类。可以理解地,GPU可以用于计算后续的初始相似度和第一相似度等,以加快聚类速度。
[0052] 具体地,若每一原始聚类类簇中人脸特征向量的数量大于第一数量阈值,则将每一原始聚类类簇所有人脸特征向量的数量除以GPU能够处理的最大数量并进行向上取整处理,获得每一原始聚类类簇需要的GPU数量,以实现采用最少的GPU均可确保所有人脸特征向量均能进行后续处理,以实现采用至少两个GPU对人脸特征向量进行后续处理,提高处理效率并且节省GPU资源,采用程序接口将每一原始聚类类簇中所有人脸特征向量分布到至少两个GPU进行计算处理,以快速计算人脸特征向量之间的相似度。
[0053] 在一实施例中,如图3所示,步骤S202,即对人脸特征向量进行中心分裂聚类,获取原始聚类类簇,包括:
[0054] S301:基于人脸特征向量生成初始人脸矩阵,计算初始人脸矩阵对应的初始特征平均向量。
[0055] 其中,初始人脸矩阵是指加载所有人脸特征向量的矩阵。初始特征平均向量是指初始人脸矩阵的平均向量。
[0056] 具体地,加载所有人脸特征向量生成初始人脸矩阵,计算初始人脸矩阵对应的初始特征平均向量,例如,可以采用matlab的mean函数计算初始人脸矩阵对应的初始特征平均向量,也可以采用python的numpy库以快速计算所有初始人脸矩阵对应的初始特征平均向量,为便后续根据该初始特征平均向量获取聚类中心进行中心分裂聚类。
[0057] S302:基于初始特征平均向量对初始人脸矩阵进行聚类,获取第一聚类类簇。
[0058] 具体地,根据初始特征平均向量对初始人脸矩阵进行聚类,即依据初始特征平均向量获取聚类中心,以便依据聚类中心进行聚类,获取第一聚类类簇,实现了对快速地人脸特征向量均匀划分。聚类中心是指从初始人脸矩阵中选取出来的用于进行聚类的人脸特征向量。
[0059] S303:若第一聚类类簇中人脸特征向量的数量小于第二数量阈值,将第一聚类类簇确定为原始聚类类簇。
[0060] 其中,第二数量阈值是预先设置的用于判断是否需要对第一聚类类簇中人脸特征向量进行划分的数量阈值,该第二数量阈值经过测试获得,以确保获得的原始聚类类簇中人脸特征向量数量适宜,避免将一个用户的人脸特征向量划分到太多个原始聚类类簇。
[0061] 具体地,基于初始特征平均向量获取聚类中心,基于聚类中心对初始人脸矩阵进行聚类,获取第一聚类类簇,若第一聚类类簇中人脸特征向量的数量小于第二数量阈值,将第一聚类类簇确定为原始聚类类簇。可以理解地,若第一聚类类簇中人脸特征向量的数量不小于第二数量阈值,则还需要继续按照S301-S303进行划分,以确保将人脸特征向量的数量小于第二数量阈值的聚类类簇确定为原始聚类类簇,确保获得的原始聚类类簇中人脸特征向量数量适宜,避免将一个用户的人脸特征向量划分到太多个原始聚类类簇。
[0062] 进一步地,基于初始特征平均向量获取聚类中心,基于聚类中心对初始人脸矩阵进行聚类后,还可以通过判断聚类获得的第一聚类类簇中人脸特征向量离散程度,若第一聚类类簇中人脸特征向量离散程度小于预设离散阈值,则将第一聚类类簇确定为原始聚类类簇。可以理解地,若第一聚类类簇中人脸特征向量离散程度不小于预设离散阈值,则还需要继续按照S301-S303进行划分,以确保将人脸特征向量的数量小于预设离散阈值的聚类类簇确定为原始聚类类簇,确保原始聚类类簇中人脸特征向量数量适宜,避免将一个用户的人脸特征向量划分到太多个原始聚类类簇。其中,离散程度是指通过同一个聚类类簇中人脸特征向量之间的差异程度,离散程度用来衡量险大小的指标,本实施例中,第一聚类类簇中人脸特征向量离散程度可以采用第一聚类类簇中人脸特征向量的极差、平均差和标准差等表示,然后与预设离散阈值进行比较,若第一聚类类簇中人脸特征向量离散程度小于预设离散阈值,则将第一聚类类簇确定为原始聚类类簇。预设离散阈值是预先设置的用于判断是否需要对第一聚类类簇中人脸特征向量进行划分的值。
[0063] 本实施例所提供的人脸聚类方法中,基于人脸特征向量生成初始人脸矩阵,计算初始人脸矩阵对应的初始特征平均向量,为便后续根据该初始特征平均向量进行中心分裂聚类。基于初始特征平均向量获取聚类中心对初始人脸矩阵进行聚类,以实现快速对人脸特征向量均匀划分,获取第一聚类类簇。若第一聚类类簇的人脸特征向量数量小于第二数量阈值,将第一聚类类簇确定为原始聚类类簇,以确保获得的原始聚类类簇中人脸特征向量数量适宜,避免将一个用户的人脸特征向量划分到太多个原始聚类类簇。
[0064] 在一实施例中,如图4所示,步骤S302,基于初始特征平均向量对初始人脸矩阵进行聚类,获取第一聚类类簇,包括:
[0065] S401:计算初始人脸矩阵中每一人脸特征向量与初始特征平均向量的初始相似度,对初始相似度进行排序,获取排序结果。
[0066] 其中,初始相似度是表示初始人脸矩阵中每一人脸特征向量与初始特征平均向量相似程度的值,可以理解地,初始人脸矩阵中一个人脸特征向量对应一个初始相似度。排序结果是指对初始相似度按照由大到小的顺序或者按照由小到大的顺序进行排序的结果。
[0067] 具体地,服务器在获取到初始特征平均向量后,计算初始人脸矩阵中每一人脸特征向量与初始特征平均向量的初始相似度。具体可以采用numpy库的dot函数,或者采用余弦相似度计算公式,以计算每一人脸特征向量与特征平均向量的初始相似度,然后将初始相似度由小到大的顺序或者由大到小的顺序进行排序,获取该排序结果,以便后续根据排序结果快速获取用于进行聚类的聚类中心。
[0068] S402:从排序结果间隔抽取z个初始相似度,从初始人脸矩阵中抽取与z个初始相似度相对应的z个聚类中心。
[0069] 具体地,从排序结果中,按照预设间隔快速从排序结果中获取z(z为正整数)个初始相似度。作为一示例,在100个初始相似度所形成的排序结果中,抽取z个初始相似度,预设间隔可以5,则从排序结果间隔抽取z个初始相似度,例如,抽取排序结果的第5个初始相似度、排序结果的第10个初始相似度、排序结果的第15个初始相似度……排序结果的第5z个初始相似度,依据抽取的初始相似度确定相对应的人脸特征向量作为聚类中心进行聚类,以加快聚类速度。传统的聚类算法随机选取类中心进行聚类,而本实施例根据相似度确定z个聚类中心可以保证对人脸特征向量均匀划分,可加快聚类速度,并提高聚类精准度,降低同一个用户分到不同聚类类簇的概率。
[0070] S403:依据z个聚类中心对初始人脸矩阵中的所有人脸特征向量进行聚类,生成第一聚类类簇。
[0071] 具体地,依据z个聚类中心对所有人脸特征向量进行聚类,以生成z个第一聚类类簇,可以理解地,由于聚类中心是根据初始人脸矩阵中每一人脸特征向量与初始特征平均向量的相似度抽取的,则可以确保将人脸特征向量均匀划分,以生成第一聚类类簇。
[0072] 本实施例所提供的人脸聚类方法中,计算初始人脸矩阵中每一人脸特征向量与初始特征平均向量的初始相似度,对初始相似度进行排序,获取排序结果,以便后续根据初始相似度获取聚类中心。从排序结果间隔抽取z个初始相似度,从初始人脸矩阵中抽取与z个初始相似度相对应的z个聚类中心,可以保证对人脸特征向量均匀划分,降低同一个用户分到不同聚类分区的概率,依据z个聚类中心对初始人脸矩阵中的所有人脸特征向量进行聚类,确保可将人脸特征向量均匀划分以生成第一聚类类簇。
[0073] 在一实施例中,如图5所示,步骤S203,即对原始聚类类簇进行类间连通聚类,获取连通聚类类簇,包括:
[0074] S501:计算每一原始聚类类簇对应的第一特征平均向量,采用相似度算法对第一特征平均向量和原始聚类类簇中任意一个人脸特征向量进行计算,确定第一特征平均向量和原始聚类类簇中任意一个人脸特征向量的第一相似度。
[0075] 其中,第一特征平均向量是原始聚类类簇中人脸特征向量的平均向量,其计算过程与步骤S202中的初始特征平均向量的计算过程相同,为避免重复,此处不一一赘述。相似度算法是用于计算变量或者空间中点的相似度的算法,本实施例中相似度算法包括但不限于余弦相似度算法和欧式距离算法等。第一相似度是表示原始聚类类簇中任意两个人脸特征向量的相似程度的值。
[0076] 具体地,原始聚类类簇是由中心分裂聚类划分得到的,没有对人脸特征向量进行精确划分,则一个原始聚类类簇中可能存在不属于同一个用户的人脸特征向量,因此,计算每一原始聚类类簇对应的第一特征平均向量,采用相似度算法对原始聚类类簇中的人脸特征向量和第一特征平均向量进行相似度计算,以便利用第一特征平均向量判断原始聚类类簇中是否存在不属于同一个用户的人脸特征向量。
[0077] S502:将原始聚类类簇中第一相似度大于第一连通聚类阈值的人脸特征向量连通为第二聚类类簇。
[0078] 其中,第一连通聚类阈值是预先设置的用于判断任意原始聚类类簇中的人脸特征向量是否属于同一个用户的值。
[0079] 具体地,原始聚类类簇中任意两个人脸特征向量的第一相似度大于第一连通聚类阈值,这两个人脸特征向量的相似度较高,极有可能为同一个用户的人脸特征向量,因此,将第一相似度大于第一连通聚类阈值的人脸特征向量连通为第一聚类类簇,以排除不属于同一个用户的人脸特征向量,为将属于同一个用户的人脸特征向量聚类在一起提供技术支持。例如,原始聚类类簇中包括人脸特征向量a、b、c、d、e和f,但原始聚类类簇中可能存在不属于同一个用户的人脸特征向量,人脸特征向量a和第一特征平均向量的第一相似度为0.89、人脸特征向量b和第一特征平均向量的第一相似度为0.88、人脸特征向量c和第一特征平均向量的第一相似度为0.95、人脸特征向量d和第一特征平均向量的第一相似度为
0.75、人脸特征向量e和第一特征平均向量的第一相似度为0.53、人脸特征向量f和第一特征平均向量的第一相似度为0.85,第一连通聚类阈值为0.7,则将e删除,将a、b、c、d和f进行连通聚类,获取第二聚类类簇。
[0080] S503:对所有第二聚类类簇进行类间聚类,获取连通聚类类簇。
[0081] 具体地,将原始聚类类簇中属于同一个用户的人脸特征向量聚类中一个第二聚类类簇之后,还需要判断任意两个第二聚类类簇中是否存在属于同一个用户的人脸特征向量,因此,对所有第二聚类类簇进行类间聚类,以将属于一个用户的人脸特征向量聚拢在一起,可以有效避免属于一个用户的人脸特征被划分在不同的类簇中,提高人脸聚类的准确度。
[0082] 本实施例所提供的人脸聚类方法中,计算每一原始聚类类簇对应的第一特征平均向量,采用相似度算法对第一特征平均向量和对应的原始聚类类簇中任意一个人脸特征向量进行计算,确定第一特征平均向量和对应的原始聚类类簇中任意一个人脸特征向量的第一相似度,以将原始聚类类簇中第一相似度大于第一连通聚类阈值的人脸特征向量连通为第二聚类类簇,以使第二聚类类簇可排除不属于同一个用户的人脸特征向量,为将属于同一个用户的人脸特征向量聚类在一起提供技术支持。对所有第二聚类类簇进行类间聚类,获取连通聚类类簇,以将属于同一个用户的人脸特征向量聚类在一起,提高人脸聚类的精确度。
[0083] 在一实施例中,如图6所示,步骤S503,对所有第二聚类类簇进行类间聚类,获取连通聚类类簇,包括:
[0084] S601:计算每一第二聚类类簇的第二特征平均向量,基于第二特征平均向量确定任意两个第二聚类类簇对应的第二相似度。
[0085] 其中,第二特征平均向量是第二聚类类簇中人脸特征向量的平均向量,其计算过程与步骤S202中的初始特征平均向量的计算过程相同,为避免重复,此处不一一赘述。第二相似度是指任意两个第二聚类类簇的相似程度的值。
[0086] 具体地,可以采用matlab的mean函数对第二聚类类簇的所有人脸特征向量进行均值计算,或者可以采用python的numpy库的函数对第二聚类类簇的所有人脸特征向量进行均值计算,以获取第二聚类类簇的第二特征平均向量;再采用相似度算法对任意两个第二聚类类簇的第二特征平均向量进行相似度计算,以快速获取任意两个第二聚类类簇的第二相似度,以便后续根据第二相似度将同一个用户的人脸特征向量聚拢在同一个聚类类簇中。
[0087] S602:若第二相似度大于第二连通聚类阈值,则将两个第二聚类类簇合并为连通聚类类簇。
[0088] 其中,第二连通聚类阈值是指用于判断任意两个第二聚类类簇是否属于同一个用户的值。
[0089] 具体地,通过计算每一第二聚类类簇的第二特征平均向量,然后根据该类平均值计算任意两个第二聚类类簇的第二相似度,第二相似度大于第二连通聚类阈值时,则说明两个第二聚类类簇的相似度较大,属于同一个用户,因此,将第二相似度大于第二连通聚类阈值的类簇聚拢至同一连通聚类类簇中,以提高聚类精确度,避免一个用户的人脸特征向量被划分为不同的类簇。可以理解地,第二相似度小于第二连通聚类阈值时,则说明两个第二聚类类簇的相似度较小,不属于同一个用户,则不进行聚类。
[0090] 本实施例所提供的人脸聚类方法中,计算每一第二聚类类簇的第二特征平均向量,基于第二特征平均向量确定任意两个第二聚类类簇对应的第二相似度,将第二相似度大于第二连通聚类阈值的两个第二聚类类簇合并为连通聚类类簇,将属于同一个用户的人脸特征向量聚类成连通聚类类簇,以提高人脸聚类精确度。
[0091] 在一实施例中,如图7所示,步骤S204,对连通聚类类簇进行类内修剪,获取目标聚类类簇,包括:
[0092] S701:对连通聚类类簇进行平均值计算,获取每一连通聚类类簇对应的第三特征平均向量。
[0093] 其中,第三特征平均向量是指连通聚类类簇中的人脸特征向量的平均向量,其计算过程与步骤S202中的初始特征平均向量的计算过程相同,为避免重复,此处不一一赘述。
[0094] 具体地,由于通过任意两个第二聚类类簇的第二特征平均向量进行聚类生成连通聚类类簇,但两个第二聚类类簇的第二特征平均向量并不相等,那么聚类生成的连通聚类类簇中可能存在相似度差别较大的任意两个人脸特征向量,因此,为了确保聚类的精确度,还需采用python的numpy库的mean函数对连通聚类类簇的人脸特征向量进行平均值计算,以快速获取每一连通聚类类簇对应的第三特征平均向量,以便后续根据第三特征平均向量排除相似度差别较大的人脸特征向量。
[0095] S702:计算连通聚类类簇中任意一个人脸特征向量与第三特征平均向量之间的第三相似度。
[0096] 其中,第三相似度是指连通聚类类簇中人脸特征向量与第三特征平均向量的相似程度的值。
[0097] 具体地,采用余弦相似度计算公式计算连通聚类类簇中任意一个人脸特征向量与第三特征平均向量之间的中心相似度,后续根据第三特征平均向量排除不属于同一个用户的人脸特征向量,以提高聚类精确度。
[0098] S703:对连通聚类类簇中第三相似度小于第三连通聚类阈值的人脸特征向量进行裁剪,获取目标聚类类簇。
[0099] 其中,第三连通聚类阈值是预先设置用于判断连通聚类类簇中是否存在不属于连通聚类类簇所代表的用户的人脸特征向量。
[0100] 具体地,当连通聚类类簇中的人脸特征向量与第三特征平均向量的第三相似度小于第三连通聚类阈值时,则将该人脸特征向量删除,以排除连通聚类类簇中不属于该连通聚类类簇所代表的用户的人脸特征向量,获取目标聚类类簇,即目标聚类类簇是连通聚类类簇中排除不属于该类簇所代表的用户的人脸特征向量,确保类内干净。
[0101] 本实施例所提供的人脸聚类方法中,对连通聚类类簇进行平均值计算,获取每一连通聚类类簇对应的第三特征平均向量,计算连通聚类类簇中任意一个人脸特征向量与第三特征平均向量之间的第三相似度,后续根据第三特征平均向量排除不属于该连通聚类类簇的人脸特征向量,以提高聚类精确度。对连通聚类类簇中第三相似度小于第三连通聚类阈值的人脸特征向量进行裁剪,获取目标聚类类簇,以排除连通聚类类簇中不属于该类簇所代表的人的人脸特征向量,确保类内干净。
[0102] 应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
[0103] 在一实施例中,提供一种人脸聚类装置,该人脸聚类装置与上述实施例中人脸聚类方法一一对应。如图8所示,该人脸聚类装置包括人脸特征向量获取模块801、原始聚类类簇模块802、连通聚类类簇模块803和目标聚类类簇模块804。各功能模块详细说明如下:
[0104] 人脸特征向量获取模块801,用于获取聚类人脸图像,采用特征提取模型对聚类人脸图像进行特征提取,获取人脸特征向量。
[0105] 原始聚类类簇模块802,用于对人脸特征向量进行中心分裂聚类,获取原始聚类类簇。
[0106] 连通聚类类簇模块803,用于对原始聚类类簇进行类间连通聚类,获取连通聚类类簇。
[0107] 目标聚类类簇模块804,用于对连通聚类类簇进行类内修剪,获取目标聚类类簇。
[0108] 优选地,在原始聚类类簇模块802之后,人脸聚类装置还包括:GPU处理模块。
[0109] GPU处理模块,用于若原始聚类类簇中人脸特征向量的数量大于第一数量阈值,则采用程序接口将原始聚类类簇中的人脸特征向量分配到至少两个GPU进行处理。
[0110] 优选地,原始聚类类簇模块802,包括:初始特征平均向量计算单元、第一聚类类簇获取单元和第一判断单元。
[0111] 初始特征平均向量计算单元,用于基于人脸特征向量生成初始人脸矩阵,计算初始人脸矩阵对应的初始特征平均向量。
[0112] 第一聚类类簇获取单元,用于基于初始特征平均向量对初始人脸矩阵进行聚类,获取第一聚类类簇。
[0113] 第一判断单元,用于若第一聚类类簇中人脸特征向量的数量小于第二数量阈值,将第一聚类类簇确定为原始聚类类簇。
[0114] 优选地,第一聚类类簇获取单元,包括:排序结果获取子单元、聚类中心获取子单元和第一聚类类簇获取子单元。
[0115] 排序结果获取子单元,用于计算初始人脸矩阵中每一人脸特征向量与初始特征平均向量的初始相似度,对初始相似度进行排序,获取排序结果。
[0116] 聚类中心获取子单元,用于从排序结果间隔抽取z个初始相似度,从初始人脸矩阵中抽取与z个初始相似度相对应的z个聚类中心。
[0117] 第一聚类类簇获取子单元,用于依据z个聚类中心对初始人脸矩阵中的所有人脸特征向量进行聚类,生成第一聚类类簇。
[0118] 优选地,连通聚类类簇模块803,包括:第一相似度计算单元、连通单元和类间聚类单元。
[0119] 第一相似度计算单元,计算每一原始聚类类簇对应的第一特征平均向量,采用相似度算法对第一特征平均向量和对应的原始聚类类簇中任意一个人脸特征向量进行计算,确定第一特征平均向量和对应的原始聚类类簇中任意一个人脸特征向量的第一相似度。
[0120] 连通单元,用于将原始聚类类簇中第一相似度大于第一连通聚类阈值的人脸特征向量连通为第二聚类类簇。
[0121] 类间聚类单元,用于对所有第二聚类类簇进行类间聚类,获取连通聚类类簇。
[0122] 优选地,类间聚类单元,包括:第二特征平均向量和第二判断单元。
[0123] 第二特征平均向量计算子单元,用于计算每一第二聚类类簇的第二特征平均向量,基于第二特征平均向量确定任意两个第二聚类类簇对应的第二相似度。
[0124] 第二判断单元,用于若第二相似度大于第二连通聚类阈值,则将两个第二聚类类簇合并为连通聚类类簇。
[0125] 优选地,目标聚类类簇模块804,包括:第三特征平均向量计算单元、第三相似度计算单元和第三判断单元。
[0126] 第三特征平均向量计算单元,用于对连通聚类类簇进行平均值计算,获取每一连通聚类类簇对应的第三特征平均向量。
[0127] 第三相似度计算单元,用于计算连通聚类类簇中任意一个人脸特征向量与第三特征平均向量之间的第三相似度。
[0128] 第三判断单元,用于对连通聚类类簇中第三相似度小于第三连通聚类阈值的人脸特征向量进行裁剪,获取目标聚类类簇。
[0129] 关于人脸聚类装置的具体限定可以参见上文中对于人脸聚类方法的限定,在此不再赘述。上述人脸聚类装置中的各个模块可全部或部分通过软件硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0130] 在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储生成的目标聚类类簇。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种人脸聚类方法。
[0131] 在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中人脸聚类方法的步骤,例如图2所示的步骤S201-S204,或者图3至图7中所示的步骤,为避免重复,这里不再赘述。或者,处理器执行计算机程序时实现人脸聚类装置这一实施例中的各模块/单元的功能,例如图8所示的人脸特征获取模块801、原始聚类类簇模块802、连通聚类类簇模块803和目标聚类类簇模块804的功能,为避免重复,这里不再赘述。
[0132] 在一实施例中,提供一计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中人脸聚类方法的步骤,例如图2所示的步骤S201-S204,或者图3至图7中所示的步骤,为避免重复,这里不再赘述。或者,处理器执行计算机程序时实现人脸聚类装置这一实施例中的各模块/单元的功能,例如图8所示的人脸特征获取模块801、原始聚类类簇模块802、连通聚类类簇模块803和目标聚类类簇模块804的功能,为避免重复,这里不再赘述。
[0133] 本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
[0134] 所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
[0135] 以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈