一种动态人脸聚类方法、装置、设备和存储介质
技术领域
本申请实施例涉及人脸识别技术领域,尤其涉及一种动态人脸聚类方法、装置、设备和存储介质。
背景技术
本部分旨在为权利要求书中陈述的本申请的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
人脸聚类指将人脸根据身份进行分组,通常人脸聚类通过将集合内所有的人脸两两之间做人脸比对,再根据比对得到的相似度值将属于同一个身份的人划分到一个分组中实现聚类。
在实际项目中,因为摄像头会实时采集新的图片,在新增的图片达到一定的量时,需要将原来的图片和新增的图片一起重新做一次静态聚类。但是在人脸图片数量较大时,需要浪费大量计算机算力,人脸聚类的效率较低。
发明内容
本申请实施例提供一种动态人脸聚类方法、装置、设备和存储介质,提高了人脸聚类的效率。
在第一方面,本申请实施例提供了一种动态人脸聚类方法,包括:
对批量人脸图片进行静态聚类处理,得到多个包括邻居人脸集合的簇;
根据每个簇中每张人脸图片相对于簇中其他人脸图片的平均相似度,对每个簇中的人脸图片进行筛选,从每个簇中选取多张人脸图片分别建立档案;
根据档案的邻居相似度对满足邻居合并条件的簇进行合并,并基于合并后的簇重新建立档案;
根据新增人脸图片与每个档案中的人脸图片的平均相似度,确定所述新增人脸图片所对应的档案,将所述新增人脸图片加入所述档案对应的簇中。
在第二方面,本申请实施例提供了一种动态人脸聚类装置,包括静态聚类模块、人脸筛选模块、档案合并模块和图片归档模块,其中:
静态聚类模块,用于对批量人脸图片进行静态聚类处理,得到多个包括邻居人脸集合的簇;
人脸筛选模块,用于根据每个簇中每张人脸图片相对于簇中其他人脸图片的平均相似度,对每个簇中的人脸图片进行筛选,从每个簇中选取多张人脸图片分别建立档案;
档案合并模块,用于根据档案的邻居相似度对满足邻居合并条件的簇进行合并,并基于合并后的簇重新建立档案;
图片归档模块,用于根据新增人脸图片与每个档案中的人脸图片的平均相似度,确定所述新增人脸图片所对应的档案,将所述新增人脸图片加入所述档案对应的簇中。
在第三方面,本申请实施例提供了一种计算机设备,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面所述的动态人脸聚类方法。
在第四方面,本申请实施例提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面所述的动态人脸聚类方法。
本申请实施例中,对批量人脸图片进行静态聚类处理,得到多个包括邻居人脸集合的簇,根据每个簇中每张人脸图片相对于簇中其他人脸图片的平均相似度,对每个簇中的人脸图片进行筛选,从每个簇中选取多张人脸图片分别建立档案,根据档案的邻居相似度对满足邻居合并条件的簇进行合并,并基于合并后的簇重新建立档案,根据新增人脸图片与每个档案中的人脸图片的平均相似度,确定所述新增人脸图片所对应的档案,将所述新增人脸图片加入所述档案对应的簇中,与传统的人脸聚类方法相比,通过实时的输入图片进行匹配,更加符合应用中摄像头不断采集新的图片的场景,匹配时只与档案中部分图片比较,缩小了比对图片的数量,便于数据集规模的扩展。
附图说明
图1是本申请实施例提供的一种动态人脸聚类方法的流程图;
图2是本申请实施例提供的另一种动态人脸聚类方法的流程图;
图3是本申请实施例提供的一种残差网络的结构示意图;
图4是本申请实施例提供的一种残差网络内部结构图;
图5是本申请实施例提供的一种人脸特征提取器的结构图;
图6是本申请实施例提供的另一种动态人脸聚类方法的流程图;
图7是本申请实施例提供的另一种动态人脸聚类方法的流程图;
图8是本申请实施例提供的一种动态人脸聚类装置的结构框图;
图9是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图对本申请具体实施例作进一步的详细描述。可以理解的是,此处所描述的具体实施例仅仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
图1给出了本申请实施例提供的一种动态人脸聚类方法的流程图,该方法可适用于人脸聚类,本申请实施例提供的动态人脸聚类方法可以由动态人脸聚类装置来执行,该动态人脸聚类装置可以通过硬件和/或软件的方式实现,并集成在计算机设备中。
下述以动态人脸聚类装置执行动态人脸聚类方法为例进行描述。参考图1,该动态人脸聚类方法包括:
S101:对批量人脸图片进行静态聚类处理,得到多个包括邻居人脸集合的簇。
其中,批量人脸图片可以是通过摄像头拍摄的图片,还可以是计算机设备内部存储的图片或者是从网络中下载的图片。
其中邻居人脸应理解为:人脸图片A计算完与其他人脸距离之后会确定多个与自身距离比较小的人脸图片{B1,B2,B3...},根据人脸距离对人脸图片{B1,B2,B3...}进行排序,并设置阈值,距离小于阈值的人脸图片被认定为人脸图片A的邻居人脸。
在一个实施例中,先建立一个神经网络对人脸数据集进行学习训练,得到训练后的神经网络,该神经网络可用于对输入的人脸图片进行人脸特征向量的获取。通过该神经网络获取批量人脸图片的人脸特征向量,基于人脸特征向量确定人脸图片之间的向量距离,并依据向量距离确定每张照片的邻居人脸集合,将每张人脸图片的邻居人脸集合分别确定为一个簇。
其中,人脸数据集可以是人脸识别领域常用的公开数据集,如LFW数据集,该人脸数据集为研究非限制环境下的人脸识别问题而建立,包含超过13000张人脸图像,均采集于网络,每个人脸均被标记了一个人名,其中,大约1680个人包含两个以上的人脸。还可利用其他如IJB-B、CASIA-Webface以及VGG-Face等进行静态聚类处理,本方案不做限定。
S102:根据每个簇中每张人脸图片相对于簇中其他人脸图片的平均相似度,对每个簇中的人脸图片进行筛选,从每个簇中选取多张人脸图片分别建立档案。
在一个实施例中,计算每个簇中每张人脸图片相对于同一个簇中其他人脸图片的相似度,对每张人脸图片相对于其他人脸图片的相似度求和,然后计算每张人脸图片的平均相似度。
在计算出每张人脸图片的平均相似度后,将平均相似度不满足要求的人脸图片从对应的簇中删除,减少后续建立的档案存在一个档案中存在多个不同人脸的情况。其中对平均相似度是否满足要求的判断可以通过平均相似度和预设的相似度下限阈值的比较进行。
完成人脸图片的筛选后,分别从每个簇中随机选取多张人脸图片,并分别基于每个簇中选中的人脸图片建立档案。其中从每个簇中选取的人脸图片的数量可根据实际需要设置,如3张、5张或10张,本方案以从每个簇中随机选取三张人脸图片为例进行描述,即建立的每个档案中包含有三张平均相似度满足要求的人脸图片。
S103:根据档案的邻居相似度对满足邻居合并条件的簇进行合并,并基于合并后的簇重新建立档案。
在一个实施例中,针对每个簇分别建立档案后,确定每个档案中的多张人脸图片的邻居人脸图片,本实施例以确定每个档案中的三张人脸图片的邻居人脸图片为例进行描述。
进一步的,基于每个档案中的多张人脸图片的邻居人脸图片计算每个档案相对于其他档案的邻居相似度,并将邻居相似度满足邻居合并条件(如邻居相似度达到预设的合并阈值)的两个档案相应的簇合并成一个簇,删除这两个档案,并从合并后的簇中重新选取多张(以选取三张为例)人脸图片重新建立档案,从而减少出现一张人脸同时存在于多个档案中的情况。
S104:根据新增人脸图片与每个档案中的人脸图片的平均相似度,确定所述新增人脸图片所对应的档案,将所述新增人脸图片加入所述档案对应的簇中。
其中,新增人脸图片可以是通过摄像头拍摄的图片,还可以是计算机设备内部存储的图片或者是从网络中下载的图片。
在一个实施例中,在接收到新增人脸图片时,分别计算该新增人脸图片与每个档案中的多张人脸图片(本方案以三张为例)之间的平均相似度。对新增人脸图片对应于每个档案的平均相似度进行比较,确定最大平均相似度所对应的档案,并将该新增人脸图片加入该档案对应的簇中,完成对该新增人脸图片的动态聚类匹配。
由上述方案可知,与传统的人脸聚类方法相比,利用静态聚类先处理一批量人脸图片,根据静态聚类得到的簇建立档案,之后再将单张新增人脸图片与建立好的档案中的多张人脸图片进行匹配,从而将该新增人脸图片加入匹配到的档案对应的一个簇中,完成对该新增人脸图片的动态聚类匹配。不需要在新增人脸图片累积到一定量时把计算力全部集中在一起重新进行静态聚类,而是在接收到一张新增人脸图片时进行一次动态更新,更符合实际应用中摄像头不断采集新的图片的应用场景。并且动态聚类匹配时只与档案中的多张人脸图片进行比较,极大的缩小了比对的人脸图片的数量,使得动态聚类下的数据规模更容易扩展。
图2为本申请实施例提供的另一种动态人脸聚类方法的流程图,该动态人脸聚类方法是对上述动态人脸聚类方法的具体化。如图2所示,该动态人脸聚类方法包括:
S201:通过人脸数据集进行训练得到训练后的残差网络。
在一个实施例中,训练使用的人脸数据集可以是人脸识别领域常用的公开数据集,如LFW数据集,该人脸数据集研究非限制环境下的人脸识别问题而建立,包含超过13000张人脸图像,均采集于网络,每个人脸均被标记了一个人名,其中,大约1680个人包含两个以上的人脸。还可利用其他如IJB-B、CASIA-Webface以及VGG-Face等进行残差网络的训练,本方案不做限定。
在一个实施例中,首先构建一个特定的残差网络,该残差网络如图3所示,图3为本申请实施例提供的一种残差网络的结构示意图,利用公开的人脸数据集对该特定的残差网络进行学习训练,得到训练后的残差网络,该训练后的残差网络可用于执行人脸分类任务。如图3所示,该特定的残差网络由input(输入)、N个ResNet块、全连接层以及softmax(归一化层)组成,其中,ResNet块的内部结构如图4所示,图4为本申请实施例提供的一种残差网络内部结构图。其中,conv(1*1)代表使用卷积层且卷积核的大小是1*1,BN层用于进行批量归一化,Relu为常用的神经网络激活函数,符号“+”表示执行向量的加法操作。其中,全连接层使用1024个神经网络节点,通过使用该训练后的残差网络能够更加高效便捷的学习到人脸特征,且易于在常规的网络架构如tensorflow、pytorch和caffe等框架上实现。
S202:对所述残差网络进行处理得到人脸特征提取器,将待分类的人脸图片输入所述人脸特征提取器得到每张人脸图片对应的人脸特征向量。
在一个实施例中,将残差网络的归一化层进行去除得到人脸特征提取器,如图5所示,图5为本申请实施例提供的一种人脸特征提取器的结构图。其中,input对应输入的人脸图片,该全连接层有1024个节点,即每输入一张图片相应输出1024个数值的向量作为该人脸图片对应的人脸特征向量。
S203:计算每个人脸特征向量和其它人脸特征向量的向量距离,依据所述向量距离确定每张人脸图片的邻居人脸集合。
根据下述公式计算每个人脸特征向量和其它人脸特征向量的向量距离:
其中,a和b分别代表两张不同的人脸图片,ai和bi分别为每张图片对应的人脸特征向量,上述公式既考虑了人脸特征向量的方向相似性,又考虑了人脸特征向量数值之间的差异,使向量距离度量结果更加合理。需要说明的是,本方案还可使用其他现有的向量距离计算公式,但计算效果不如上述公式。
在一个实施例中,依据向量距离确定每张人脸图片的邻居人脸集合的过程可以是:根据公式
对向量距离进行归一化处理,将处理结果中小于第一预设阈值的人脸图片确定为邻居人脸集合,第一预设阈值包括0.25(该第一预设阈值可根据实际计算需要进行调整),其中N代表样本数量,为大于1的正整数。
S204:将每张人脸图片的邻居人脸集合分别确定为一个簇,将簇间相似度满足簇间合并条件的簇进行合并。
在一个实施例中,该簇间合并条件可以是簇间相似度大于第二预设阈值,示例性的,根据公式
计算得到不同簇之间的簇间相似度,将簇间相似度大于第二预设阈值的两个簇进行合并,第二预设阈值包括0.7,其中,A和B分别表示两个不同的簇对应的集合,|A|表示A集合中元素的个数,|B|表示B集合中元素的个数,|A∩B|表示集合A和集合B的交集的元素个数。
在一个实施例中,在确定出每张人脸图片的邻居人脸集合后,进行簇的初始化,即每张人脸图片的邻居人脸集合确定为一个簇,示例性的,可将这些单独的簇组成一个簇列表。具体的合并过程可以是:从簇列表中取出一个簇,计算该簇和簇列表中其他簇之间的簇间相似度,如果满足合并条件则进行合并,并计算该合并后的簇和簇列表中其他簇的簇间相似度,依次类推直至簇列表中的所有簇遍历完毕。取出簇列表中的第二个簇,如果该簇已经合并过,则取出簇列表中的下一个簇,直至取出到未合并过的簇,再依次计算其和簇列表中其他簇的簇间相似度并确定是否满足合并条件,如果满足则进行合并,重复上述合并步骤,直至一轮迭代中簇的个数减少数量小于未迭代时的5%时,判定聚类完成。
S205:根据每个簇中每张人脸图片相对于簇中其他人脸图片的平均相似度,对每个簇中的人脸图片进行筛选,从每个簇中选取多张人脸图片分别建立档案。
S206:根据档案的邻居相似度对满足邻居合并条件的簇进行合并,并基于合并后的簇重新建立档案。
S207:根据新增人脸图片与每个档案中的人脸图片的平均相似度,确定所述新增人脸图片所对应的档案,将所述新增人脸图片加入所述档案对应的簇中。
由上述方案可知,与传统的人脸特征提取办法相比利用残差网络提取的人脸特征由数据驱动,无需人的先验经验,且残差网络可以很容易的发现数据的特性,而人为定义特征无法做到。人为定义的特征是有限的,且定义的特征越多越精细所耗费的精力越多,而对残差网络而言只需增加节点数就可以高效的获得更多的特征。本方案中的聚类方式的优势在于计算量小,且在迭代的过程中收敛速度快,结果精度高,具体的,本方案中初始化时是以每个样本为中心,选择邻居人脸,也就是说本方法初始化了N(样本数量)个中心,后续过程会逐渐减少簇的个数,原因在于初始过程中,不能确定人脸集合中人的个数,并未引入先验经验,在元素重复上,本方法中初始时一个元素可以出现在多个簇中,找到N个簇重叠区域,并根据其重叠区域的情况决定是否能把它们合在一起。在此静态聚类的基础上,再将单张新增人脸图片与建立好的档案中的多张人脸图片进行匹配,从而将该新增人脸图片加入匹配到的档案对应的一个簇中,完成对该新增人脸图片的动态聚类匹配。不需要在新增人脸图片累积到一定量时把计算力全部集中在一起重新进行静态聚类,而是在接收到一张新增人脸图片时进行一次动态更新,更符合实际应用中摄像头不断采集新的图片的应用场景。并且动态聚类匹配时只与档案中的多张人脸图片进行比较,极大的缩小了比对的人脸图片的数量,使得动态聚类下的数据规模更容易扩展。
图6为本申请实施例提供的另一种动态人脸聚类方法的流程图,该动态人脸聚类方法是对上述动态人脸聚类方法的具体化。如图6所示,该动态人脸聚类方法包括:
S301:对批量人脸图片进行静态聚类处理,得到多个包括邻居人脸集合的簇。
S302:计算每个簇中每张人脸图片相对于簇中其他人脸图片的平均相似度。
在一个实施例中,根据下述公式计算每个簇中每张人脸图片的人脸特征向量和簇中其他人脸图片的人脸特征向量的向量距离:
其中,a和b分别代表同一个簇中两张不同的人脸图片,ai和bi分别为每张图片对应的人脸特征向量,上述公式既考虑了人脸特征向量的方向相似性,又考虑了人脸特征向量数值之间的差异,使向量距离度量结果更加合理。需要说明的是,本方案还可使用其他现有的向量距离计算公式,但计算效果不如上述公式。
在一个实施例中,根据公式
对向量距离进行归一化处理,其中N代表样本数量,为大于1的正整数。
进一步的,对向量距离进行归一化处理后,利用1减去归一化处理后的向量距离得到的值作为人脸图片对于簇中其他人脸图片的相似度,并计算人脸图片对于簇中其他所有人脸图片的相似度的均值,得到簇中该人脸图片相对于簇中其他人脸图片的平均相似度。遍历每个簇中的所有人脸图片,得到每个簇中每张人脸图片相对于簇中其他人脸图片的平均相似度。
S303:将每个簇中的平均相似度进行排序,确定上四分位数和下四分位数对应的平均相似度。
在一个实施例中,确定每个簇中每张人脸图片相对于簇中其他人脸图片的平均相似度后,根据平均相似度从小到大的顺序对每个簇中的平均相似度进行排序,并求出其上四分位数Q3和下四分位数Q1对应的平均相似度S3和S1。
其中四分位数也称四分位点,是指在统计学中把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值。它是一组数据排序后处于25%和75%位置上的值。四分位数是通过3个点将全部数据等分为四部分,其中每部分包含25%的数据,其中,中间的四分位数就是中位数,通常所说的四分位数是指处在25%位置上的数值(称为下四分位数)和处在75%位置上的数值(称为上四分位数)。
S304:根据每个簇的上四分位数和下四分位数对应的平均相似度的差,得到每个簇的相似度公差。
在一个实施例中,在计算出上四分位数Q3和下四分位数Q1对应的平均相似度S3和S1后,将同一个簇中的上四分位数Q3对应的平均相似度S3减去和下四分位数Q1对应的平均相似度S1,得到该簇对应的相似度公差tolerance,即tolerance=S3-S1。重复以上步骤,进一步算出每个簇的相似度公差。
S305:根据每个簇中下四分位数对应的平均相似度与两倍相似度公差的差,得到每个簇的下边缘。
在一个实施例中,在算出每个簇的相似度公差后,求出每个簇中下四分位数对应的平均相似度与两倍相似度公差的差,得到每个簇的下边缘,即下边缘=S1-2*tolerance。
S306:将每个簇中下边缘和预设下限中的最大值作为筛选阈值,从每个簇中删除平均相似度小于相应筛选阈值的人脸图片。
在一个实施例中,预设下限包括0.55(可根据实际计算需要进行调整)。在确定每个簇的下边缘后,将个簇的下边缘和预设下限分别进行比较,将其中较大值作为对应簇的筛选阈值deadline,即deadline=max(下边缘,0.55)。
其中,相对于簇中其他人脸图片的平均相似度小于deadline值的人脸图片被认为是分类错误的人脸,可将这类人脸图片直接从簇中删除。对于每一个簇,在确定筛选阈值后,将簇中的每一张人脸照片相应的平均相似度与该簇相应的筛选阈值进行比较,并将平均相似度小于筛选阈值的人脸照片从该簇中删除,从而对每个簇进行筛选。
S307:从筛选后的每个簇中选取多张人脸图片分别建立档案。
在一个实施例中,多张人脸图片包括三张人脸图片(可根据实际计算需要进行调整)。完成人脸图片的筛选后,分别从每个簇中随机选取三张人脸图片,并分别基于每个簇中选中的人脸图片建立档案。
S308:确定每个档案中多张人脸图片的邻居人脸,计算每个档案的邻居相似度。
在一个实施例中,完成档案的建立后,确定每个档案中三张人脸图片的邻居人脸,邻居人脸的确定可根据步骤S203进行确定,本实施例不再赘述。确定三张人脸图片的邻居人脸后,将簇中所有邻居人脸形成一个邻居人脸集合,并基于邻居人脸集合进一步计算每两个档案之间的邻居相似度。
根据以下公式计算得到每个档案的邻居相似度:
其中similarity是邻居相似度,A、B分别是两个档案的邻居人脸集合,A∩B是A、B两个邻居人脸集合的交集,Count()是用于返回集合类元素个数的统计函数,min是用于取两个数中最小的一个数的函数。
S309:将邻居相似度达到合并阈值的档案对应的簇进行合并。
在一个实施例中,合并阈值包括0.5(可根据实际计算需要进行调整)。对两两档案之间的邻居相似度与合并阈值进行比较,在任意两个档案之间的邻居相似度大于合并阈值时,则将这两个档案对应的簇合并成一个簇,并删除这两个档案。
S310:基于合并后的簇选取多张人脸图片重新建立档案。
在一个实施例中,在合并成新的簇后,从合并后的簇选取多张(本实施例以选取三张为例)人脸图片重新建立档案,并将新建立的档案加入步骤S308中继续判断是否需要与其他档案进行合并。
S311:计算新增人脸图片与每个档案中多张人脸图片的平均相似度。
在一个实施例中,在接收到新增人脸图片时,从每个档案中选取三张人脸图片,分别计算该新增人脸图片与每个档案中的三张人脸图片之间的平均相似度。平均相似度可根据步骤S302中的平均相似度的计算类似,在此不再赘述。
S312:确定平均相似度最高且达到归档阈值的所述新增人脸图片所对应的档案,并将所述新增人脸图片加入所述档案对应的簇中。
在一个实施例中,归档阈值包括0.70(可根据实际计算需要进行调整)。在确定新增人脸图片相对于所有档案的平均相似度后,对新增人脸图片对应于每个档案的平均相似度进行比较,确定最大平均相似度所对应的档案,并将该最大相似度与归档阈值进行比较,在该最大相似度大于或等于归档阈值时,将该新增人脸图片加入该档案对应的簇中,完成对该新增人脸图片的动态聚类匹配。
由上述方案可知,与传统的人脸聚类方法相比,利用静态聚类先处理一批量人脸图片,根据静态聚类得到的簇建立档案,之后再将单张新增人脸图片与建立好的档案中的三张人脸图片进行匹配,从而将该新增人脸图片加入匹配到的档案对一个的簇中,完成对该新增人脸图片的动态聚类匹配。不需要在新增人脸图片累积到一定量时把计算力全部集中在一起重新进行静态聚类,而是在接收到一张新增人脸图片时进行一次动态更新,更符合实际应用中摄像头不断采集新的图片的应用场景。并且动态聚类匹配时只与档案中的三张人脸图片进行比较,极大的缩小了比对的人脸图片的数量,使得动态聚类下的数据规模更容易扩展,除此之外,通过设置筛选阈值确定用于建立档案的人脸图片,减少簇中的可疑人脸,减少一档多人的情况,并对邻居相似度达到合并阈值的簇进行合并重新建立档案,减少一人多档的情况,提高动态人脸聚类的精确度。
图7为本申请实施例提供的另一种动态人脸聚类方法的流程图,该动态人脸聚类方法是对上述动态人脸聚类方法的具体化。如图7所示,该动态人脸聚类方法包括:
S401:对批量人脸图片进行静态聚类处理,得到多个包括邻居人脸集合的簇。
S402:确定每个簇中人脸图片的图片数量,将图片数量不满足建档要求的簇的人脸图片加入剩余图片集。
在一个实施例中,确定每个簇中人脸图片的图片数量,判断每个簇中的图片数量是否大于或等于建档要求的数量(本实施例以图片数量大于或等于3作为建档要求),若图片数量满足建档要求,则将对应的簇用于步骤S403中进行建档操作,若图片数量不满足建档要求,则将对应的簇中的人脸图片加入剩余图片集中。
S403:根据每个簇中每张人脸图片相对于簇中其他人脸图片的平均相似度,对每个簇中的人脸图片进行筛选,从每个簇中选取多张人脸图片分别建立档案。
S404:根据档案的邻居相似度对满足邻居合并条件的簇进行合并,并基于合并后的簇重新建立档案。
S405:确定是否存在与所述新增人脸图片对应的档案。若存在,跳转至步骤S406,否则,跳转至步骤S407。
在一个实施例中,在接收到新增人脸图片时,从每个档案中选取三张人脸图片,分别计算该新增人脸图片与每个档案中的三张人脸图片之间的平均相似度。平均相似度可根据步骤S302中的平均相似度的计算类似,在此不再赘述。
在确定新增人脸图片相对于所有档案的平均相似度后,对新增人脸图片对应于每个档案的平均相似度进行比较,确定最大平均相似度所对应的档案,并将该最大相似度与归档阈值(以0.7为例,可根据实际情况进行调整)进行比较,在该最大相似度大于或等于归档阈值时,认为该新增人脸图片与该档案对应,并跳转至布置S406。若最大相似度小于归档阈值,则认为未存在与该新增人脸图片对应的档案,并跳转至步骤S407。
S406:将所述新增人脸图片加入所述档案对应的簇中。
在确定存在对应的档案时,将该新增人脸图片加入该档案对应的簇中,完成对该新增人脸图片的动态聚类匹配。
S407:将所述新增人脸图片加入剩余图片集。
在确定不存在对应的档案时,则将该新增人脸图片加入剩余图片集。
S408:将人脸图片的数量达到数量阈值的剩余图片集进行聚类处理,得到多个包括邻居人脸集合的簇。
在一个实施例中,对剩余图片集中人脸图片的图片数量进行监视,并在图片数量达到数量阈值(可根据实际情况进行确定)时,对剩余图片集进行聚类处理,得到多个包括邻居人脸集合的簇。对剩余图片集的聚类处理与步骤S201-S204类似,在此不再赘述。
S409:确认每个簇中人脸图片的图片数量是否满足建档要求。若满足建档要求,则跳转至步骤S410,否则,跳转至步骤S411。
在一个实施例中,在对剩余图片集进行聚类处理得到多个簇后,参照步骤S402对这些簇中人脸图片的图片数量是否满足建档要求进行判断。
S410:基于图片数量满足建档要求的簇建立档案。
在一个实施例中,若图片数量满足建档要求,则基于图片数量满足建档要求的簇建立档案。
S411:将图片数量不满足建档要求的簇的人脸图片加入剩余图片集。
在一个实施例中,若图片数量不满足建档要求,则将对应的簇中的人脸图片再次加入剩余图片集中,等待下次剩余图片集中人脸图片的图片数量达到数量阈值时,再次参与静态聚类处理。
由上述方案可知,与传统的人脸聚类方法相比,利用静态聚类先处理一批量人脸图片,根据静态聚类得到的簇建立档案,之后再将单张新增人脸图片与建立好的档案中的三张人脸图片进行匹配,从而将该新增人脸图片加入匹配到的档案对应的一个簇中,完成对该新增人脸图片的动态聚类匹配。不需要在新增人脸图片累积到一定量时把计算力全部集中在一起重新进行静态聚类,而是在接收到一张新增人脸图片时进行一次动态更新,更符合实际应用中摄像头不断采集新的图片的应用场景。并且动态聚类匹配时只与档案中的三张人脸图片进行比较,极大的缩小了比对的人脸图片的数量,使得动态聚类下的数据规模更容易扩展,除此之外,将剩余的人脸图片放入剩余图片集中,在图片数量达到数量阈值时对剩余图片集进行聚类处理,并基于处理结果建立档案,提高动态处理的精确性。
图8是本申请实施例提供的一种动态人脸聚类装置的结构框图,该动态人脸聚类装置用于执行上述实施例提供的动态人脸聚类方法,具备执行方法相应的功能模块和有益效果。如图8所示,该装置具体包括静态聚类模块81、人脸筛选模块82、档案合并模块83和图片归档模块84,其中:
静态聚类模块81,用于对批量人脸图片进行静态聚类处理,得到多个包括邻居人脸集合的簇;
人脸筛选模块82,用于根据每个簇中每张人脸图片相对于簇中其他人脸图片的平均相似度,对每个簇中的人脸图片进行筛选,从每个簇中选取多张人脸图片分别建立档案;
档案合并模块83,用于根据档案的邻居相似度对满足邻居合并条件的簇进行合并,并基于合并后的簇重新建立档案;
图片归档模块84,用于根据新增人脸图片与每个档案中的人脸图片的平均相似度,确定所述新增人脸图片所对应的档案,将所述新增人脸图片加入所述档案对应的簇中。
由上述方案可知,与传统的人脸聚类方法相比,利用静态聚类先处理一批量人脸图片,根据静态聚类得到的簇建立档案,之后再将单张新增人脸图片与建立好的档案中的多张人脸图片进行匹配,从而将该新增人脸图片加入匹配到的档案对一个的簇中,完成对该新增人脸图片的动态聚类匹配。不需要在新增人脸图片累积到一定量时把计算力全部集中在一起重新进行静态聚类,而是在接收到一张新增人脸图片时进行一次动态更新,更符合实际应用中摄像头不断采集新的图片的应用场景。并且动态聚类匹配时只与档案中的多张人脸图片进行比较,极大的缩小了比对的人脸图片的数量,使得动态聚类下的数据规模更容易扩展。
在一个可能的方案中,所述静态聚类模块81具体用于:
通过人脸数据集进行训练得到训练后的残差网络;
对所述残差网络进行处理得到人脸特征提取器,将待分类的人脸图片输入所述人脸特征提取器得到每张人脸图片对应的人脸特征向量;
计算每个人脸特征向量和其它人脸特征向量的向量距离,依据所述向量距离确定每张人脸图片的邻居人脸集合;
将每张人脸图片的邻居人脸集合分别确定为一个簇,将簇间相似度满足簇间合并条件的簇进行合并。
在一个可能的方案中,所述人脸筛选模块82具体用于:
计算每个簇中每张人脸图片相对于簇中其他人脸图片的平均相似度;
将每个簇中的平均相似度进行排序,确定上四分位数和下四分位数对应的平均相似度;
根据每个簇的上四分位数和下四分位数对应的平均相似度的差,得到每个簇的相似度公差;
根据每个簇中下四分位数对应的平均相似度与两倍相似度公差的差,得到每个簇的下边缘;
将每个簇中下边缘和预设下限中的最大值作为筛选阈值,从每个簇中删除平均相似度小于相应筛选阈值的人脸图片;
从筛选后的每个簇中选取多张人脸图片分别建立档案。
在一个可能的实施例中,所述档案合并模块83具体用于:
确定每个档案中多张人脸图片的邻居人脸,计算每个档案的邻居相似度;
将邻居相似度达到合并阈值的档案对应的簇进行合并;
基于合并后的簇选取多张人脸图片重新建立档案。
在一个可能的实施例中,所述图片归档模块84具体用于:
计算新增人脸图片与每个档案中多张人脸图片的平均相似度;
确定平均相似度最高且达到归档阈值的所述新增人脸图片所对应的档案;
将所述新增人脸图片加入所述档案对应的簇中。
图9是本申请实施例提供的一种计算机设备的结构示意图,如图9所示,该计算机设备包括输入装置93、输出装置94、存储器92以及一个或多个处理器91;所述存储器92,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器91执行,使得所述一个或多个处理器91实现如上述实施例提供的动态人脸聚类方法。其中输入装置93、输出装置94、存储器92和处理器91可以通过总线或者其他方式连接,图9中以通过总线连接为例。
存储器92作为一种计算设备可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例所述的动态人脸聚类方法对应的程序指令/模块(例如,动态人脸聚类装置中的静态聚类模块81、人脸筛选模块82、档案合并模块83和图片归档模块84)。存储器92可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器92可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器92可进一步包括相对于处理器91远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置93可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置94可包括显示屏等显示设备。
处理器91通过运行存储在存储器92中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的动态人脸聚类方法。
上述提供的动态人脸聚类装置和计算机设备可用于执行上述实施例提供的动态人脸聚类方法,具备相应的功能和有益效果。
本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如上述实施例提供的动态人脸聚类方法,该动态人脸聚类方法包括:
对批量人脸图片进行静态聚类处理,得到多个包括邻居人脸集合的簇;
根据每个簇中每张人脸图片相对于簇中其他人脸图片的平均相似度,对每个簇中的人脸图片进行筛选,从每个簇中选取多张人脸图片分别建立档案;
根据档案的邻居相似度对满足邻居合并条件的簇进行合并,并基于合并后的簇重新建立档案;
根据新增人脸图片与每个档案中的人脸图片的平均相似度,确定所述新增人脸图片所对应的档案,将所述新增人脸图片加入所述档案对应的簇中。
存储介质——任何的各种类型的存储器设备或存储设备。术语“存储介质”旨在包括:安装介质,例如CD-ROM、软盘或磁带装置;计算机系统存储器或随机存取存储器,诸如DRAM、DDR RAM、SRAM、EDO RAM,兰巴斯(Rambus)RAM等;非易失性存储器,诸如闪存、磁介质(例如硬盘或光存储);寄存器或其它相似类型的存储器元件等。存储介质可以还包括其它类型的存储器或其组合。另外,存储介质可以位于程序在其中被执行的第一计算机系统中,或者可以位于不同的第二计算机系统中,第二计算机系统通过网络(诸如因特网)连接到第一计算机系统。第二计算机系统可以提供程序指令给第一计算机用于执行。术语“存储介质”可以包括可以驻留在不同位置中(例如在通过网络连接的不同计算机系统中)的两个或更多存储介质。存储介质可以存储可由一个或多个处理器执行的程序指令(例如具体实现为计算机程序)。
当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的动态人脸聚类方法,还可以执行本申请任意实施例所提供的动态人脸聚类方法中的相关操作。
上述实施例中提供的动态人脸聚类装置、设备和存储介质可执行本申请任意实施例所提供的动态人脸聚类方法,未在上述实施例中详尽描述的技术细节,可参见本申请任意实施例所提供的动态人脸聚类方法。
上述仅为本申请的较佳实施例及所运用的技术原理。本申请不限于这里所述的特定实施例,对本领域技术人员来说能够进行的各种明显变化、重新调整及替代均不会脱离本申请的保护范围。因此,虽然通过以上实施例对本申请进行了较为详细的说明,但是本申请不仅仅限于以上实施例,在不脱离本申请构思的情况下,还可以包括更多其他等效实施例,而本申请的范围由权利要求的范围决定。