一种人脸图像的聚类方法、装置及介质与流程

文档序号:20920091发布日期:2020-05-29 14:02阅读:217来源:国知局
一种人脸图像的聚类方法、装置及介质与流程

本发明涉及信息处理技术领域,具体涉及一种人脸图像的聚类方法、装置及介质。



背景技术:

视频监控已经随处可见,如何利用海量的抓拍照片或视频流来进行挖掘、分析成为行业的重点关注的课题。人脸聚类技术是一种将相同的人脸聚为一类,给其赋予一个虚拟id的过程。人脸聚类不同于普通物体的聚类,不同人脸之间提取的特征差异很小,差异越小,将不同的人脸进行区分就越难,如何提升聚类效果成为人脸聚类领域比较关注的问题。

当前人脸特征一般是采用深度学习中的卷积神经网络来提取,提取出的人脸特征是一个高维的特征向量,特征向量的维度越高,其占用内存空间就越多,计算时就需要更大的内存。在实际应用场景中,通常需要对海量的人脸图片进行聚类,当内存无法满足当前计算需求时,通常通过以下两种方式来解决:1)扩容,增加内存,或增加计算节点,这种方式通过增加硬件资源来实现对海量人脸图片的聚类,成本较高;2)对高维特征向量进行pca降维,降低特征向量的维度,减少内存占用,如将512维的特征向量降至256维,维度降低会损失特征向量的信息,用降低维度的特征向量进行人脸聚类时,聚类效果会变差。



技术实现要素:

本发明的目的在于解决上述人脸特征向量维度较高时,对海量人脸图片进行聚类内存资源占用大的问题,提出了一种人脸图像的聚类方法,在保证人脸特征向量维度不变的情况下,降低人脸特征向量的内存空间占用。

根据第一方面,本发明实施例提供一种人脸图像的聚类方法,包括:

获取m个待聚类的人脸图像,其中,m为大于1的整数;

根据每一个待聚类的人脸图像获得对应高维度的人脸特征向量;

对所述高维度的人脸特征向量的每一维度数据进行有损压缩,获得压缩后的人脸特征向量;

根据所述压缩后的人脸特征向量及预设的n种不同的近似最近邻算法,获得对应的最近邻结果,其中,n为大于1的整数;

根据预设阈值对所述最近邻结果进行筛选,得到最终的最近邻结果;

根据所述最终的最近邻结果对所述压缩后的人脸特征向量进行聚类,以完成对所述m个待聚类的人脸图像的聚类。

在其中一种可能实现方式中,所述对所述高维度的人脸特征向量的每一维度数据进行有损压缩,获得压缩后的人脸特征向量包括:

获取预设字节值和预设放大倍数值,其中所述预设字节值为预先设置的压缩后每一维度数据所占字节大小的数值,其中,所述预设放大倍数值为预先设置的对每一维度数据进行放大的倍数值;

将所述高维度的人脸特征向量的每一维度数据乘以所述预设放大倍数值,获得放大后的人脸特征向量;

根据所述预设字节值对所述放大后的人脸特征向量的每一维度数据进行截取,使得被截取后的人脸特征向量的每一维度的数据所占字节大小为所述预设字节值,以得到压缩后的人脸特征向量。

在其中一种可能实现方式中,所述获取预设字节值和预设放大倍数值包括:

获取用户输入的预设字节值;

获取所述高维度的人脸特征向量的每一维度数据的数据分布情况;

根据每一维度数据的数据分布情况和所述预设字节值,得到预设放大倍数值。

在其中一种可能实现方式中,当所述预设字节值为一个字节,且所述高维度的人脸特征向量的每一维度数据的数据分布情况为,其数据的值分布在-0.25到0.25之间时,得到的所述预设放大倍数值为512。

在其中一种可能实现方式中,在所述对所述高维度的人脸特征向量的每一维度数据进行有损压缩,获得压缩后的人脸特征向量之前,还包括:

检测当前已完成压缩的人脸特征向量的个数是否小于所述高维度的人脸特征向量的总个数;

若当前已完成压缩的人脸特征向量的个数小于所述高维度的人脸特征向量的总个数,则检测未完成压缩的人脸特征向量的已压缩的维度是否小于所述高维度的人脸特征向量对应的维度;

当未完成压缩的人脸特征向量的已压缩的维度小于所述高维度的人脸特征向量对应的维度时,获取该人脸特征向量对应的未压缩维度的数据,以用于进行有损压缩。

在其中一种可能实现方式中,所述根据所述预设字节值对所述放大后的人脸特征向量的每一维度数据进行截取,得到压缩后的人脸特征向量包括:

当放大后的人脸特征向量的数值大于-128且小于127时,将所述放大后的人脸特征向量取整后作为压缩后的人脸特征向量;

当放大后的人脸特征向量的数值小于或等于-128时,将-128作为压缩后的人脸特征向量;

当放大后的人脸特征向量的数值大于或等于127时,将127作为压缩后的人脸特征向量。

在其中一种可能实现方式中,所述根据所述压缩后的人脸特征向量及预设的n种不同的近似最近邻算法,获得对应的最近邻结果包括:

获取预设的n种不同的近似最近邻算法;

将所述压缩后的人脸特征向量通过所述预设的n种不同的近似最近邻算法分别计算出对应的最近邻结果;

获取各个不同的近似最近邻算法所计算得到的最近邻结果。

在其中一种可能实现方式中,所述根据预设阈值对所述最近邻结果进行筛选,获取得到最终的最近邻结果包括:

针对每一人脸特征向量,对其对应的所述最近邻结果进行求和统计,获得统计结果;

根据所述预设阈值对统计结果进行筛选,获取与该人脸特征向量相似的人脸特征向量,其中,所述预设阈值为预设的与一人脸特征向量相似的其余人脸特征向量的个数;

根据与每一人脸特征向量相似的其余人脸特征向量,获取得到最终的最近邻结果。

根据第二方面,本发明实施例提供一种人脸图像的聚类装置,包括:

图像获取模块,用于获取m个待聚类的人脸图像,其中,m为大于1的整数;

向量获取模块,用于根据每一个待聚类的人脸图像获得对应高维度的人脸特征向量;

压缩模块,用于对所述高维度的人脸特征向量的每一维度数据进行有损压缩,获得压缩后的人脸特征向量;

结果获取模块,用于根据所述压缩后的人脸特征向量及预设的n种不同的近似最近邻算法,获得对应的最近邻结果,其中,n为大于1的整数;

最终结果获取模块,用于根据预设阈值对所述最近邻结果进行筛选,得到最终的最近邻结果;

聚类模块,用于根据所述最终的最近邻结果对所述压缩后的人脸特征向量进行聚类,以完成对所述m个待聚类的人脸图像的聚类。

根据第三方面,本发明实施例提供一种产品,其特征在于包括:

存储器,用于存储程序;

处理器,用于通过执行所述存储器存储的程序以实现如上任一项所述的人脸图像的聚类方法。

依据上述实施例的人脸图像的聚类方法、装置及介质,包括获取m个待聚类的人脸图像,然后根据每一个待聚类的人脸图像获得对应高维度的人脸特征向量,对所述高维度的人脸特征向量的每一维度数据进行有损压缩,获得压缩后的人脸特征向量,根据所述压缩后的人脸特征向量及预设n种不同的近似最近邻算法,获得对应的最近邻结果,根据预设阈值对所述最近邻结果进行筛选,得到最终的最近邻结果,根据所述最终的最近邻结果对所述压缩后的人脸特征向量进行聚类,以完成对所述m个待聚类的人脸图像的聚类。在保证人脸特征向量维度不变的情况下,通过对人脸特征向量进行有损压缩,可显著降低人脸特征向量的内存空间占用,并综合多种不同的近似最近邻算法的计算结果,对最近邻结果进行统计,得到最终的最近邻结果,可有效提高人脸聚类的效果。

附图说明

图1为一种实施例的一种人脸图像的聚类方法流程图;

图2为一种实施例的有损压缩方法流程示意图;

图3为另一种实施例的有损压缩方法流程示意图;

图4为另一种实施例的有损压缩方法流程示意图;

图5为一种实施例的获取预设值方法流程示意图;

图6为一种实施例的维度的特征值的分布情况示意图;

图7为另一种实施例的有损压缩方法流程示意图;

图8为一种实施例的100个维度的点乘结果对比示意图;

图9为图8的局部放大图;

图10为一种实施例的获得最近邻结果方法流程示意图;

图11为一种实施例的获得最终的最近邻结果方法流程示意图;

图12为另一种实施例的获得最终的最近邻结果示意图;

图13为一种实施例的一种人脸图像的聚类装置示意图;

图14为另一种实施例的一种人脸图像的聚类装置示意图。

具体实施方式

下面通过具体实施方式结合附图对本发明作进一步详细说明。其中不同实施方式中类似元件采用了相关联的类似的元件标号。在以下的实施方式中,很多细节描述是为了使得本申请能被更好的理解。然而,本领域技术人员可以毫不费力的认识到,其中部分特征在不同情况下是可以省略的,或者可以由其他元件、材料、方法所替代。在某些情况下,本申请相关的一些操作并没有在说明书中显示或者描述,这是为了避免本申请的核心部分被过多的描述所淹没,而对于本领域技术人员而言,详细描述这些相关操作并不是必要的,他们根据说明书中的描述以及本领域的一般技术知识即可完整了解相关操作。

另外,说明书中所描述的特点、操作或者特征可以以任意适当的方式结合形成各种实施方式。同时,方法描述中的各步骤或者动作也可以按照本领域技术人员所能显而易见的方式进行顺序调换或调整。因此,说明书和附图中的各种顺序只是为了清楚描述某一个实施例,并不意味着是必须的顺序,除非另有说明其中某个顺序是必须遵循的。

本文中为部件所编序号本身,例如“第一”、“第二”等,仅用于区分所描述的对象,不具有任何顺序或技术含义。而本申请所说“连接”、“联接”,如无特别说明,均包括直接和间接连接(联接)。

在本发明实施例中,在保持高维人脸特征向量维度不变的情况下,对高维人脸特征向量的每一维进行有损压缩,压缩后可极大降低人脸特征向量的内存空间占用,在对海量人脸图片进行人脸聚类时,可有效减少计算过程中的内存占用,从而达到在内存有限的情况下,实现对更多的人脸图片进行聚类。同时为了提高聚类效果,通过对多种近似最近邻算法的结果进行统计,可有效提高最近邻计算结果,从而提高聚类效果。

实施例一

参见图1,本发明实施例提供一种人脸图像的聚类方法,包括步骤s10至步骤s60,下面具体说明。

步骤s10:获取m个待聚类的人脸图像,其中,m为大于1的正整数。

步骤s20:根据每一个待聚类的人脸图像获得对应高维度的人脸特征向量。

需要说明的是,在将每一个待聚类的人脸图像采用深度学习中的卷积神经网络来进行提取出的人脸特征是高维人脸特征向量。对于本领域技术人员来说,高维人脸特征向量可以为100维度以上的人脸特征向量,本发明对此不作具体限定。在本实施例中以512维的人脸特征向量进行说明。

在本发明实施例中,将m张待聚类人脸图像输入到人脸特征提取模型中,得到m个512维的人脸特征向量,每一维度为一个浮点类型,用4个字节表示,则m个512维的人脸特征向量共占用m*512*4字节,其中人脸特征提取模型包括但不限于用卷积神经网络构建的模型。

参见图2,在其中一种可能实现方式中,在步骤s30对所述高维度的人脸特征向量的每一维度数据进行有损压缩,获得压缩后的人脸特征向量之前,还包括步骤s301至步骤s303,下面具体说明。

步骤s301:检测当前已完成压缩的人脸特征向量的个数是否小于所述高维度的人脸特征向量的总个数。

步骤s302:若当前已完成压缩的人脸特征向量的个数小于所述高维度的人脸特征向量的总个数时,则检测未完成压缩的人脸特征向量的已压缩的维度是否小于所述高维度的人脸特征向量对应的维度。

步骤s303:当未完成压缩的人脸特征向量的已压缩的维度小于所述高维度的人脸特征向量对应的维度时,获取该人脸特征向量对应的未压缩维度的数据,以用于进行有损压缩。

具体的,参见图3,在经过步骤s10至步骤s20后可以获得m个512维的人脸特征向量,步骤1:输入m个512维的人脸特征向量。步骤2:检测已压缩人脸特征向量个数m是否小于所述高维度的人脸特征向量的总个数m。若否,说明m个512维人脸特征向量全部压缩完成,进入步骤6结束操作流程。若是,则进入步骤3,步骤3:获取未完成压缩的人脸特征向量,并判断该未完成压缩的人脸特征向量的已压缩的维度是否小于所述高维度的人脸特征向量对应的维度512。若否,则说明该人脸特征向量已完成了压缩,进入步骤2,继续检测已压缩人脸特征向量个数m是否小于所述高维度的人脸特征向量的总个数g,以获得未完成压缩的人脸特征向量继续进行压缩。若是,说明该人脸特征向量未完成压缩,进入步骤4。例如,未完成压缩的人脸特征向量j其已经完成压缩的维度数为100维,则还有412维的数据没有进行压缩。步骤4:获取该人脸特征向量对应的未压缩维度的数据,执行步骤s30进行有损压缩。步骤5:检测到该人脸特征向量对应的该维度的数据已经完成压缩后,继续下一维度的压缩,直到该人脸特征向量对应的维度数据都进行了压缩,即完成该人脸特征向量512维的压缩。步骤6:结束。

步骤s30:对所述高维度的人脸特征向量的每一维度数据进行有损压缩,获得压缩后的人脸特征向量。

参见图4,在其中一种可能实现方式中,步骤s30对所述高维度的人脸特征向量的每一维度数据进行有损压缩,获得压缩后的人脸特征向量包括步骤s31至步骤s33,下面具体说明。

步骤s31:获取预设字节值和预设放大倍数值,其中所述预设字节值为预先设置的压缩后每一维度数据所占字节大小的数值,其中,所述预设放大倍数值为预先设置的对每一维度数据进行放大的倍数值。

参见图5,步骤s31所述获取预设字节值和预设放大倍数值包括步骤s311至步骤s313,下面具体说明。

步骤s311:获取用户输入的预设字节值。

在本发明实施例中,用户可以自行设置其要压缩到的字节值大小,并输入预设字节值。

步骤s312:获取所述高维度的人脸特征向量的每一维度数据的数据分布情况。

步骤s313:根据每一维度数据的数据分布情况和所述预设字节值,得到预设放大倍数值。

当所述预设字节值为一个字节,且所述高维度的人脸特征向量的每一维度数据的数据分布情况为,其数据的值分布在-0.25到0.25之间时,得到的所述预设放大倍数值为512。

在本发明实施例中,将上述m个512维的人脸特征向量进行有损压缩,以每一维数据压缩为一个字节为例,即对每一个512维得人脸特征向量用1个字节表示,经过压缩后,m个512维的人脸特征向量共占用m*512*1字节,是压缩前的1/4。实际操作中可以根据预设的字节值大小进行有损压缩,下面具体说明。

在本发明实施例中,首先对512维人脸特征向量进行统计分析,统计每一维度特征值的分布情况,每个维度的特征值为一个浮点数,在计算机中用4个字节表示,如图6所示,图中展示了9个维度的特征值的分布情况,横坐标代表特征值,纵坐标代表在该维度下特征值的数量,经过分析,每一维度特征值的分布符合正态分布,大部分的值分布在-0.25至0.25之间,对每一维度的特征值放大预设放大倍数值512倍,则在每一维度特征值分布在-128到128之间,在计算机中,一个字节能表示的范围为-128到127,因此,对每一维特征值放大512倍后,可将一个维度的特征值由4个字节压缩为1个字节表示,对于512维的人脸特征向量,压缩前需要512*4=2048个字节表示,压缩以后只需要512*1=512个字节表示,节省了3/4的内存空间。

步骤s32:将所述高维度的人脸特征向量的每一维度数据乘以所述预设放大倍数值,获得放大后的人脸特征向量。

在本发明实施例中,将每一维度的特征值都乘以512,可以得到放大了512倍的人脸特征值。

步骤s33:根据所述预设字节值对所述放大后的人脸特征向量的每一维度数据进行截取,使得被截取后的人脸特征向量的每一维度的数据所占字节大小为所述预设字节值,以得到压缩后的人脸特征向量。

在本发明实施例中,对于其中主要的特征值(-0.25至0.25),在其值乘以512后,可以得到其值分布在-128到127的范围,为此可以在保证截取到主要的特征值下,且截取到的数值只有一个字节大小。

参见图7,在其中一种可能实现方式中,步骤s33根据所述预设字节值对所述放大后的人脸特征向量的每一维度数据进行截取,使得被截取后的人脸特征向量的每一维度的数据所占字节大小为所述预设字节值,以得到压缩后的人脸特征向量包括步骤s331至步骤s333,下面具体说明。

步骤s331:当放大后的人脸特征向量的数值大于-128且小于127时,将所述放大后的人脸特征向量取整后作为压缩后的人脸特征向量。

步骤s332:当放大后的人脸特征向量的数值小于或等于-128时,将-128作为压缩后的人脸特征向量

步骤s333:当放大后的人脸特征向量的数值大于或等于127时,将127作为压缩后的人脸特征向量。

示例性地,高维度的人脸特征向量有[0.1,-0.30,0.25],第一维度向量值为0.1,放大512倍后,放大后的人脸特征向量的数值为0.1*512=51.2,截断取整后,取值为51,51在一个字节能表示的范围内,则51作为压缩后的人脸特征向量。第二维向量值为-0.30,放大512倍后,放大后的人脸特征向量的数值为(-0.30)*512=(-153.6),-153.6超过了一个字节能表示的最大范围-128,对-153.6进行截断,取值为-128,-128作为压缩后的人脸特征向量。第三维度向量值为0.25,放大512倍后,放大后的人脸特征向量的数值为0.25*512=128,超过了一个字节能表示的最大范围127,对128进行截断,取值为127,127即为压缩后的人脸特征向量。

特征向量[0.1,-0.30,0.25]压缩后为[51,-128,127],每个维度的取值都在一个字节能表示的范围内,在将放大后的人脸特征向量的数值[51,-128,127]最终会转换成计算机能识别与处理的由‘0’.‘1’符号串组成的代码,例如二进制,每个维度只占用一个字节的空间,更便于计算机存储操作。

步骤s333:将所述第二次截取后的人脸特征向量作为压缩后的人脸特征向量。

上述压缩方式属于有损压缩,对原始特征分布在-0.25至0.25以外的特征进行了截断,因此需要验证压缩后的特征向量计算的相似度与压缩前计算的相似度是否有较大的差异。对512维人脸特征向量用压缩前,压缩后的特征向量进行点乘,参见图8和图9,图9是图8的局部放大图,图8展示了100个维度的点乘结果对比,线条2是压缩前的点乘结果,线条1是压缩后的点乘结果,线条3是压缩前后点乘结果的差值,可以看到,线条3取值分布在-0.01-0.01之间,且由图8可知,线条1和线条2大部分重合,说明压缩后的特征向量计算的相似度与压缩前计算的差距不大,对聚类效果影响很小。

步骤s40:根据压缩后的人脸特征向量及预设的n种不同的近似最近邻算法,获得对应的最近邻结果,其中,n为大于1的正整数。

参见图10,在其中一种可能实现方式中,步骤s40根据所述压缩后的人脸特征向量及预设n种不同的近似最近邻算法,获得对应的最近邻结果包括步骤s41至步骤s43,下面具体说明。

步骤s41:获取预设的n种不同的近似最近邻算法。

在本发明实施例中,预设n种不同的近似最近邻算法可以为包括但不限于kd-tree,kmeans,lsh等。

步骤s42:将所述压缩后的人脸特征向量通过所述预设n种不同的近似最近邻算法分别计算出对应的最近邻结果。

步骤s43:获取各个不同的近似最近邻算法所计算得到的最近邻结果。

在本发明实施例中,可以将所述压缩后的人脸特征向量分别通过kd-tree,kmeans,lsh进行计算,得到由kd-tree计算出的最近邻结果、由kmeans计算出的最近邻结果及由lsh计算出的最近邻结果。

步骤s50:根据预设阈值对最近邻结果进行筛选,得到最终的最近邻结果。

参见图11,在其中一种可能实现方式中,步骤s50根据预设阈值对所述最近邻结果进行筛选,获取得到最终的最近邻结果包括步骤s51至步骤s53,下面具体说明。

步骤s51:针对每一人脸特征向量,对其对应的所述最近邻结果进行求和统计,获得统计结果。

步骤s52:根据所述预设阈值对统计结果进行筛选,获取与该人脸特征向量相似的人脸特征向量,其中,所述预设阈值为预设的与一人脸特征向量相似的其余人脸特征向量的个数。

步骤s53:根据与每一人脸特征向量相似的其余人脸特征向量,获取得到最终的最近邻结果。

参见图12,步骤1:输入m个k维数组。步骤2:已进行求和统计的个数m是否大于m,若是,进入步骤6,退出。若否,获取每种算法第m个最近邻数组。步骤3:对每种算法计算的编号为m的特征向量的最近邻进行求和统计。步骤4:统计个数是否大于预设阈值,若是,保留该编号为m的最近邻,若否进入步骤5。步骤5:m=m+1,重复步骤2;步骤6:结束。

具体的,以对100万(m=100万)待聚类的人脸图像进行聚类,人脸特征向量维度为512(dim=512),最近邻个数为5(k=5),近似最近邻算法1为kd-tree,近似最近邻算法2为kmeans,近似最近邻算法3为lsh,近似最近邻算法种类数为3(n=3)为例详细说明:

将100万人脸图片输入到人脸图片特征提取模型中,得到100万个512维的特征向量,对100万个512维(每一维占4个字节)的人脸特征向量进行压缩,得到100万个512维(每一维占1个字节)的压缩特征向量。

对100万个压缩的特征向量分别用kd-tree,kmeans,lsh算法建立索引,并查找5个最近邻,得到100万个最近邻结果,假设kd-tree最近邻结果为(1,(2,3,4,5,6)),kmeans最近近邻结果为(1,(2,4,5,6,7)),lsh最近邻结果为(1,(2,3,6,7,8)),其中,(1,(2,3,4,5,6))的含义为100万个人脸特征向量,编号为1的人脸特征向量,与其最相似的5个人脸特征编号分别为2,3,4,5,6。

对100万个最近邻结果进行求和统计,以上述结果为例,编号为1的人脸特征最近邻统计结果为(2,3),(3,2),(4,2),(5,2),(6,3),(7,2),(8,1),该结果3种算法计算出来的结果表明编号为2的人脸特征与编号为1的人脸特征相似,2种算法计算出来的结果表明编号为3的人脸特征与编号为1的人脸特征相似,其他结果含义以此类推,最近邻仲裁模块将统计个数小于预设阈值2的过滤掉,即(8,1)只有一种算法计算出来编号为8的人脸特征与编号为1的人脸特征相似,没有达到设定的阈值;

根据所述预设阈值对统计结果进行筛选,得出最终的最近邻结果,以上述结果为例,(1,(2,3,4,5,6,7)),该结果代码编号为1的人脸特征与编号为2,3,4,5,6,7的人脸特征相似,因此将编号为1,2,3,4,5,6,7的人脸特征聚为一类,其他编号的的人脸特征聚类以此类推。

步骤s60:根据所述最终的最近邻结果对所述压缩后的人脸特征向量进行聚类,以完成对所述m个待聚类的人脸图像的聚类。

在本发明实施例中,通过将编号为1,2,3,4,5,6,7的人脸特征聚为一类,进而可以将编号为1,2,3,4,5,6,7对应的人脸图像进一步的聚为一类。

实施本发明实施例具有如下特点:

在保证人脸特征向量维度不变的情况下,通过对人脸特征向量进行有损压缩,可显著降低人脸特征向量的内存空间占用,并综合多种不同的近似最近邻算法的计算结果,对最近邻结果进行统计,得到最终的最近邻结果,可有效提高人脸聚类的效果。

买施例二

参见图13,本发明实施例提供一种人脸图像的聚类装置,包括:

图像获取模块10,用于获取m个待聚类的人脸图像,其中,m为大于1的正整数;

向量获取模块20,用于根据每一个待聚类的人脸图像获得对应高维度的人脸特征向量;

压缩模块30,用于对所述高维度的人脸特征向量的每一维度数据进行有损压缩,获得压缩后的人脸特征向量;

结果获取模块40,用于根据所述压缩后的人脸特征向量及预设n种不同的近似最近邻算法,获得对应的最近邻结果,其中,n为大于1的正整数;

最终结果获取模块50,用于根据预设阈值对所述最近邻结果进行筛选,获取得到最终的最近邻结果;

聚类模块60,用于根据所述最终的最近邻结果对所述压缩后的人脸特征向量进行聚类,以完成对所述m个待聚类的人脸图像的聚类。

参见图14,假设待聚类人脸图片数目为m,经过人脸特征提取模型后得到的人脸特征向量为512维,每一维用一个浮点数表示,近似最近邻算法种类为3,具体实施步骤为:

步骤1:图像获取模块10用于获取m张待聚类的人脸图像。

步骤2:向量获取模块20用于将m张待聚类的人脸图像输入到人脸特征提取模型中,得到m个512维的人脸特征向量,每一维度为一个浮点类型,用4个字节表示,则m个512维的人脸特征向量共占用m*512*4字节,其中人脸特征提取模型包括但不限于用卷积神经网络构建的模型;

步骤3:压缩模块30用于将m个高维的人脸特征向量输入到高维人脸特征压缩模块,每一维压缩为一个字节,用1个字节即可表示,经过压缩后,m个高维人脸特征向量共占用m*512*1字节,是压缩前的1/4。

步骤4:结果获取模块40用于对经过压缩后的高维人脸特征向量用3种不同的近似最近邻算法计算最近邻结果,近似最近邻算法包括但不限于kd-tree,kmeans,lsh等。

步骤5:最终结果获取模块50用于对不同算法计算的最近邻结果进行统计仲裁,得到最终的最近邻结果;

步骤6:聚类模块60用于根据最终的最近邻结果输出聚类结果。

实施本发明实施例具有如下特点:

在保证人脸特征向量维度不变的情况下,通过对人脸特征向量进行有损压缩,可以有效的对高维人脸特征进行压缩,可显著降低人脸特征向量的内存空间占用,减少计算过程中的内存占用,在内存有限的条件下,可实现大规模人脸图片的聚类。并综合多种不同的近似最近邻算法的计算结果,对最近邻结果进行统计,得到最终的最近邻结果,可有效提高人脸聚类的效果。

本领域技术人员可以理解,上述实施方式中各种方法的全部或部分功能可以通过硬件的方式实现,也可以通过计算机程序的方式实现。当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器、随机存储器、磁盘、光盘、硬盘等,通过计算机执行该程序以实现上述功能。例如,将程序存储在设备的存储器中,当通过处理器执行存储器中程序,即可实现上述全部或部分功能。另外,当上述实施方式中全部或部分功能通过计算机程序的方式实现时,该程序也可以存储在服务器、另一计算机、磁盘、光盘、闪存盘或移动硬盘等存储介质中,通过下载或复制保存到本地设备的存储器中,或对本地设备的系统进行版本更新,当通过处理器执行存储器中的程序时,即可实现上述实施方式中全部或部分功能。

以上应用了具体个例对本发明进行阐述,只是用于帮助理解本发明,并不用以限制本发明。对于本发明所属技术领域的技术人员,依据本发明的思想,还可以做出若干简单推演、变形或替换。

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