一种聚类方法、装置、电子设备、计算机可读存储介质与流程

文档序号:28740512发布日期:2022-02-07 21:53阅读:76来源:国知局
一种聚类方法、装置、电子设备、计算机可读存储介质与流程

1.本技术涉及图像处理技术领域,尤其是涉及一种聚类方法、装置、电子设备、计算机可读存储介质。


背景技术:

2.随着智能视频监控设备的大量普及,每天都会累积海量的人像图像。使用人像聚类方法实现将人像图像以人为单位进行归档是常用手段。直接从海量的人像抓拍数据中进行人像聚类,效果往往很差。例如会出现聚类后一人多档(即同一个人会有对应的多个类簇)的现象,聚类效果不佳。


技术实现要素:

3.本技术提供一种聚类方法、装置、电子设备、计算机可读存储介质,该方法能够提高聚类的准确性。
4.为解决上述技术问题,本技术提供的第一个技术方案为:提供一种聚类方法,包括:获取至少两个第一类簇以及每一所述第一类簇对应的时空域信息,所述时空域信息表征所述第一类簇对应的对象的时空位置关系;基于每一所述第一类簇对应的所述时空域信息确定至少两个所述第一类簇之间是否存在时空关联;响应于至少两个所述第一类簇之间存在时空关联,则基于至少两个所述第一类簇之间的相似度,将至少两个所述第一类簇进行聚类。
5.其中,所述基于每一所述第一类簇对应的所述时空域信息确定至少两个所述第一类簇之间是否存在时空关联的步骤,包括:确定至少两个所述第一类簇对应的所述时空域信息是否具有相同的时间空间点;响应于具有相同的所述时间空间点,则确定至少两个所述第一类簇之间存在时空关联。
6.其中,所述基于至少两个所述第一类簇之间的相似度,将至少两个所述第一类簇进行聚类的步骤,包括:确定至少两个所述第一类簇之间的时空相关系数;基于所述时空相关系数确定相似度阈值;响应于至少两个所述第一类簇之间的相似度大于所述相似度阈值,将至少两个所述第一类簇进行聚类。
7.其中,所述确定至少两个所述第一类簇之间的时空相关系数的步骤,包括:计算至少两个所述第一类簇对应的所述时空域信息的交集;以及计算至少两个所述第一类簇对应的所述时空域信息的并集;基于所述交集以及所述并集确定所述时空相关系数。
8.其中,所述基于所述时空相关系数确定相似度阈值的步骤,包括:利用预设的最高相似度阈值、预设的最低相似度阈值以及所述时空相关系数确定所述相似度阈值。
9.其中,所述响应于至少两个所述第一类簇之间的相似度大于所述相似度阈值,将至少两个所述第一类簇进行聚类的步骤之前,包括:分别计算至少两个所述第一类簇的平均质心;基于至少两个所述第一类簇的平均质心计算少两个所述第一类簇之间的相似度。
10.其中,响应于至少两个所述第一类簇中至少一个所述第一类簇中图像数量小于预
设数量,所述基于所述时空相关系数确定相似度阈值包括:基于所述时空相关系数确定第一相似度阈值;所述响应于至少两个所述第一类簇之间的相似度大于所述相似度阈值,将至少两个所述第一类簇进行聚类包括:响应于至少两个所述第一类簇之间的相似度大于所述第一相似度阈值,将至少两个所述第一类簇进行聚类;响应于至少两个所述第一类簇中图像数量大于预设数量,所述基于所述时空相关系数确定相似度阈值包括:基于所述时空相关系数确定第二相似度阈值;所述响应于至少两个所述第一类簇之间的相似度大于所述相似度阈值,将至少两个所述第一类簇进行聚类包括:响应于至少两个所述第一类簇之间的相似度大于所述第二相似度阈值,将至少两个所述第一类簇进行聚类;所述第一相似度阈值大于所述第二相似度阈值。
11.其中,所述基于每一所述第一类簇对应的所述时空域信息确定至少两个所述第一类簇之间是否存在时空关联的步骤,之前包括:分别确定每一所述第一类簇对应的所述时空域信息中是否存在相同的时间信息和/或空间信息;响应于存在相同的时间信息和/或空间信息,则基于所述相同的时间信息和/或空间信息确定异常图像;将所述异常图像从所述第一类簇中剔除。
12.为解决上述技术问题,本技术提供的第二个技术方案为:提供一种聚类装置,聚类装置包括:获取模块,用于获取至少两个第一类簇以及每一所述第一类簇对应的时空域信息,所述时空域信息表征所述第一类簇对应的对象的时空位置关系;确定模块,用于基于每一所述第一类簇对应的所述时空域信息确定至少两个所述第一类簇之间是否存在时空关联;聚类模块,用于响应于至少两个所述第一类簇之间存在时空关联,则基于至少两个所述第一类簇之间的相似度,将至少两个所述第一类簇进行聚类。
13.为解决上述技术问题,本技术提供的第三个技术方案为:提供一种电子设备,包括:存储器和处理器,其中,所述存储器存储有程序指令,所述处理器从所述存储器调取所述程序指令以执行上述任一项的方法。
14.为解决上述技术问题,本技术提供的第四个技术方案为:提供一种计算机可读存储介质,存储有程序文件,程序文件能够被执行以实现上述任一项所述的聚类方法。
15.本技术的有益效果,区别于现有技术的情况,本技术通过获取至少两个第一类簇以及每一所述第一类簇对应的时空域信息,结合每一第一类簇对应的时空域信息确定至少两个第一类簇之间是否存在时空关联;若存在时空关联,则基于至少两个所述第一类簇之间的相似度,将至少两个所述第一类簇进行聚类。通过每个类簇的时空域信息,确定不同的类簇之间是否具有时空关联,进而确定是否可以将至少两个类簇进行聚类,解决一人多档问题,提高聚类的准确性。
附图说明
16.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图,其中:
17.图1为本技术聚类方法的第一实施例的流程示意图;
18.图2为图1中步骤s2的一实施例的流程示意图;
19.图3为利用倒排索引排列至少两个第一类簇对应的时空域信息是否具有相同的时间空间点的关系示意图;
20.图4为图1中步骤s3的一实施例的流程示意图;
21.图5为本技术聚类方法的第二实施例的流程示意图;
22.图6为本技术聚类装置的一实施例的结构示意图;
23.图7为图1中步骤s1的获取第一类簇对应的时空域信息的一实施例的流程示意图;
24.图8为图7中步骤s12的一实施例的流程示意图;
25.图9为图8中步骤s121的一实施例的流程示意图;
26.图10为本技术一实施例中的时空信息编码示意图;
27.图11为图8中步骤s122的一实施例的流程示意图;
28.图12为本技术类簇的时空域信息生成装置的一实施例的结构示意图;
29.图13为本技术电子设备的一实施例的结构示意图;
30.图14为本技术计算机可读存储介质的一实施例的结构示意图。
具体实施方式
31.现有技术具有一种基于动态算法的一人一档人脸聚类的方法及系统,其设计要点是实时抓拍获取人脸照片,并记录人脸照片对应的抓拍时间以及对应的地点;对抓拍的人脸照片进行长特征和短特征提取,其中长特征为关键位置相对短特征较多的特征,短特征为关键位置相对长特征较少的特征;将抓拍获取的人脸照片相互之间进行长特征和短特征的比对聚类,获得一人一档数据进行分析,获取该人脸的活动轨迹及活动频率;对一人一档数据进行分析,获取该人脸的活动轨迹及不同时间段在不同地点的活动频次。但是该方法提出的人脸聚类本质上只是使用基于图像关键信息点利用加权构造长、短特征,并采用动态算法进行人脸聚类优化。最后,在利用人脸聚类之后的结果,结合抓拍时间与抓拍地点的信息用于轨迹显示。该人脸聚类方法没有充分利用时间与空间信息。
32.现有技术还具有一种人脸聚类方法及装置,其设计虽然考虑特征相似度匹配、时空距离约束,并根据图像抓拍时间的先后顺序分配不同的权重,进而尝试优化人脸聚类。但是其权重的设置只是受时间维度的约束,无法同时充分考虑时间与空间信息对人脸聚类的影响。
33.本技术提供一种聚类方法,该方法能够同时充分考虑时间和空间对聚类的影响,提高聚类的准确性。下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
34.请参见图1,图1为本技术聚类方法的第一实施例的流程示意图,具体包括:
35.步骤s1:获取至少两个第一类簇以及每一第一类簇对应的时空域信息,时空域信息表征第一类簇对应的对象的时空位置关系。
36.本实施例以人脸为例进行举例说明,利用聚类算法根据人脸特征对数据库中的图像进行聚类,以得到至少两个第一类簇。聚类算法包括k-means、dbscan中一种或任意组合。
37.进一步的,本技术在获取第一类簇后,进一步获取第一类簇对应的时空域信息,时
空域信息表征第一类簇对应的对象的时空位置关系。例如,第一类簇为对象a的类簇,那么时空域信息表征对象a的出行的时间、地点关系。一个时空域信息由多组固定的时间与空间地点组成,具有时间与空间的顺序。具体来说,每一个图像拍摄时都会存在一个时间、空间地理位置与该图像相对应,在通过聚类算法获取图像的人脸特征信息时,也可以同时获取到该图像的时空域信息。
38.具体的,请参见图7,图7为图1中步骤s1的获取第一类簇对应的时空域信息的一实施例的流程示意图,具体包括:
39.步骤s11:获取第一类簇。
40.具体的,基于数据库中的图像的相似度对数据库中的图像对应的特征集合进行聚类,以得到多个第一类簇。可以理解的,聚类算法包括但不限于k-means、dbscan。
41.在一实施例中,获取指定时间段内的所有人像聚类信息。实践过程中,时间段的选择主要取决于人像系统的稳定运行的时长,一般可以选择近期三个月内的所有人像聚类信息。人像聚类信息包括第一类簇id,第一类簇内所包含的所有人像信息。人像信息主要包括:抓拍时间、抓拍地点、图片类型、图片id等信息。图片类型可以为人脸图片或人体图片,即该类簇中既可以只包含人脸图片或人体图片,也可以同时包含人脸与人体图片。
42.具体的,利用特征提取算法例如卷积神经网络算法对数据库中图像进行特征提取,进而得到特征集合。将特征集合分为k组,则随机选取k个对象作为初始的聚类中心,然后计算每个对象与各个聚类中心之间的距离也即相似度,将相似度与相似度阈值进行比较,把相似度大于相似度阈值的每个对象分配给对应的聚类中心,进而得到多个第一类簇。
43.步骤s12:基于第一类簇中的图像的抓拍时间以及抓拍地点,得到第一类簇对应的时空关联信息。
44.在一实施例中,基于第一类簇中的图像的抓拍时间以及抓拍地点进行时空关联关系挖掘,以得到第一类簇对应的时空关联信息。
45.为了充分利用时空关联关系挖掘,需要针对各个类簇的抓拍时间与抓拍地点进行量化定标。在一实施例中,时间维度也即抓拍时间的典型量化定标的方法可以是:将连续的抓拍时间以天为周期,按小时进行划分,即,将抓拍时间按小时量化为24个不同的时间段。抓拍地点可以是一个个独立的经纬度信息,也可以是由多个前端抓拍设备一起构成的、唯一的空间域id信息。
46.请参见图8,图8为图7中步骤s12的一实施例的流程示意图,具体包括:
47.步骤s121:对图像对应的抓拍时间以及抓拍地点按照时间先后顺序进行排序,生成序列信息。
48.具体的,对获取到的第一类簇中的所有图像按照抓拍时间顺序进行排序,排序后的图像在时间上具有一定的连续性,在抓拍地点方面也可以形成一定的顺序,从而形成一个真实自然人出行的时间和空间序列信息。
49.在一实施例中,为了高效利用现有的关联关系,在对图像对应的抓拍时间以及抓拍地点按照时间先后顺序排序时,可以采用对图像对应的抓拍时间以及抓拍地点进行时空信息编码,得到表征图像的时空关系的标识符,按照时间先后顺序对图像对应的标识符进行排序,生成序列信息。
50.具体的,请参见图9-10,图9为图8中步骤s121的一实施例的流程示意图,图10为本
申请一实施例中的时空信息编码示意图。
51.如图9所示,步骤s121包括:
52.步骤s1211:对图像对应的抓拍时间以及抓拍地点进行时空信息编码,得到表征图像的时空关系的标识符。
53.具体的,对第一类簇中每张图像的抓拍时间与抓拍地点进行组合编码。例如,编码方式为:[time(x),area(y)]=》u(z)。其中,time(x)表示按小时转换的抓拍时间,area(y)表示抓拍地点,u(z)表示该编码方式的唯一标识符。以此方式,构建时空信息编码字典,其中key值(关键字)为[time(x),area(y)],value(返回值)为u(z),方便时空信息转换,可以高效利用现有的关联关系方法。
[0054]
在一实施例中,如图10所示,假设存在三个第一类簇,分别采用圆形、三角形和方形代表第一个第一类簇、第二个第一类簇和第三个第一类簇。其中,第一个第一类簇存在5张图片,通过时空信息编码表示分别是[time(7),area(a)]、[time(8),area(a)]、[time(9),area(b)]、[time(16),area(b)]、[time(17),area(a)]。对应的5中不同标识符为u(1)、u(2)、u(3)、u(4)、u(5)。同理,第二个第一类簇存在5张图片,通过时空信息编码表示分别是[time(8),area(b)]、[time(9),area(c)]、[time(10),area(d)]、[time(18),area(d)]、[time(17),area(a)]。对应的5中不同标识符为u(6)、u(7)、u(8)、u(9)、u(10)。第三个第一类簇存在6张图片,通过时空信息编码表示分别是[time(8),area(e)]、[time(8),area(f)]、[time(9),area(g)]、[time(17),area(g)]、[time(17),area(f)]、[time(18),area(e)]。对应的6中不同标识符为u(11)、u(12)、u(13)、u(14)、u(15)、u(16)。
[0055]
步骤s1212:按照时间先后顺序对图像对应的标识符进行排序,生成序列信息。
[0056]
具体的,序列信息就是将聚类信息以每个第一类簇为基础,按天进行划分,按时间先后顺序组合编码后的唯一标识符。因此,将上述的三个第一类簇某天的时间与空间信息进行时空信息编码后,可以得到对应的序列信息为:
[0057]
第一个第一类簇中的数据,组成的序列信息为:u(1)、u(2)、u(3)、u(4)、u(5)。
[0058]
第二个第一类簇中的数据,组成的序列信息为:u(6)、u(7)、u(8)、u(9)、u(10)。
[0059]
第三个第一类簇中的数据,组成的序列信息为:u(11)、u(12)、u(13)、u(14)、u(15)、u(16)。
[0060]
为每个第一类簇聚合多天的信息,则每个第一类簇将包含多条有用的序列信息。
[0061]
步骤s122:利用关联关系挖掘算法基于序列信息进行时空关联关系挖掘,得到时空关联信息。
[0062]
具体的,通过对每个第一类簇设置最小支持度与最小置信度,然后对其关联关系进行挖掘,可以得到强相关的时空信息编码唯一的标识符序列组合,提高整体系统的利用率。步骤s122采用的关联关系挖掘算法可以为apriori、fp-growth等关联关系挖掘方法。
[0063]
请参见图11,图11为图8中步骤s122的一实施例的流程示意图。利用关联关系挖掘算法基于序列信息进行时空关联关系挖掘,得到时空关联信息的步骤,包括:
[0064]
步骤s1221:利用关联关系挖掘算法基于序列信息进行时空关联关系挖掘,得到强相关的多个标识符。
[0065]
具体的,在一实施例中,如图10所示的,假设通过关联关系挖掘,可以得到:第一个第一类簇中强相关的时空编码唯一标识符序列组合为u(2)—》u(3)与u(4)—》u(5)。第二个
第一类簇中强相关的时空信息编码唯一标识符序列组合为u(7)—》u(8)与u(9)—》u(10)。第三个第一类簇中强相关的时空信息编码唯一标识符序列组合为u(11)、u(12)—》u(13)与u(14)、u(15)—》u(16)。
[0066]
步骤s1222:基于时空信息编码的映射关系对强相关的多个标识符解码,得到时空关联信息。
[0067]
具体的,由于通过关联关系挖掘直接得到的结果是十分不直观的,也不利于后期的使用。因此,通过时空信息编码字典的映射关系可以得到逆时空信息编码字典,对得到的结果进行时空关系解码。进一步的,利用时空信息编码字典的映射关系,将其字典的key值与value值对调,生成逆时空信息编码字典。
[0068]
在一实施例中,通过逆时空信息编码字典,解码得到关联关系挖掘得到的时空强关联规则如下:
[0069]
第一个第一类簇:[time(8),area(a)]—》[time(9),area(b)]与[time(16),area(b)]—》[time(17),area(a)]。即第一个第一类簇所代表的真实自然人经常在8点出现在a点,并在9点时移动到b点。此外,该真实自然人还经常在16点出现在b点,并在17点时移动到a点。
[0070]
同理可得,第二个第一类簇:[time(9),area(c)]—》[time(10),area(d)]与[time(18),area(d)]—》[time(19),area(c)]。
[0071]
第三个第一类簇:[time(8),area(e)]、[time(8),area(f)]—》[time(9),area(g)]与[time(17),area(g)]、[time(17),area(f)]、—》[time(18),area(e)]。即第三个第一类簇所代表的真实自然人经常在8点之后先出现在e点然后经过f点,并在9点之后移动到g点。此外,其还经常在17点之后先出现在g点然后经过f点,并在18点时移动到e点。
[0072]
由此,通过时空信息编码字典的映射关系得到逆时空信息编码字典,对得到的结果进行时空关系解码,可以得到真实自然人直观的时间和空间出行信息,方便后期人脸聚类算法效果提升。
[0073]
步骤s13:基于时空关联信息得到第一类簇对应的时空域信息。
[0074]
具体的,利用步骤s1222中为每个第一类簇得到的强关联时空关联信息,为每个第一类簇生成专属的时空域信息。此时的时空域可以定义为time area_n,比如:[time(x1),area(y1);
……
]。
[0075]
例如,在一实施例中,第一个第一类簇包含两个专属时空域信息,分别为:time area_1:[time(8),area(a);time(9),area(b)]与timearea_2:[time(16),area(b);time(17),area(a)]。
[0076]
第二个第一类簇包含两个专属时空域信息,分别为:time area_1:[time(9),area(c);time(10),area(d)]与timearea_2:[time(18),area(d);time(19),area(c)]。
[0077]
第三个第一类簇包含两个专属时空域信息,分别为:timearea_1:[time(8),area(e);time(8),area(f);time(9),area(g)]与time area_2:[time(17),area(g);time(17),area(f);time(18),area(e)]。
[0078]
显然,三个第一类簇的time area_1与time area_2都不相同。因此可以得出,每个第一类簇都具有专属的时空域信息。
[0079]
基于第一类簇对应的图像的抓拍时间以及抓拍地点,得到第一类簇对应的时空关
联信息的步骤之前,包括:响应于多张图像的抓拍时间和抓拍地点相同,只保留其中一张图像的抓拍时间和抓拍地点。
[0080]
具体的,如果一个第一类簇中图像都涉及相同的抓拍时间与相同的抓拍地点,那么这个第一类簇就只包含一个时空域,即time area_1为[time(x1),area(y1)],其中x1为该第一类簇中唯一的时间点、y1为该第一类簇中唯一的抓拍地点。
[0081]
在另一实施例中,可能存在的一种情况是:第一类簇包含一张图像,则将图像对应的抓拍时间以及抓拍地点作为第一类簇对应的时空域信息。
[0082]
具体的,如果某个第一类簇中只包含一张图像,那么这个图像所对应的抓拍时间信息和抓拍地点信息就是这个第一类簇中唯一时间和空间信息,则将该图像的抓拍时间信息和抓拍地点信息作为该第一类簇的时空域信息。即该第一类簇的时空域信息time area_1为[time(x1),area(y1)],其中x1为该第一类簇中唯一的时间点、y1为该第一类簇中唯一的抓拍地点。
[0083]
具体的,在一实施例中,在确定第一类簇的时空域信息时,对第一类簇进行筛选,筛选至少包含两张图片、且图片的抓拍时间或抓拍地点有所不同的第一类簇进行时空域信息的确定,可以进一步提高系统的资源利用率。对于只包含一张图像的第一类簇,可以直接确定这一张图像的抓拍时间以及抓拍地点为时空域信息。
[0084]
筛选的第一类簇至少包含两张图片,可以便于后期的时空关联关系挖掘。如果该第一类簇中只包含一张图片,那么便没有必要对其进行时空关联关系挖掘。因此,步骤s12要求第一类簇至少包含两张图片,也可以在一定程度上提高系统资源利用率。
[0085]
另外,基于第一类簇对应的图像的抓拍时间以及抓拍地点,得到第一类簇对应的时空关联信息的步骤之前,包括:
[0086]
以星期为周期对抓拍时间以及抓拍地点进行划分,以得到第一时间范围的抓拍时间和对应的抓拍地点,以及得到第二时间范围的抓拍时间和对应的抓拍地点。
[0087]
具体的,以星期为周期对抓拍时间以及抓拍地点进行划分也就是将一星期的周期划分为两个时间范围:第一时间范围为一星期内的五天,第二时间范围为一星期周末的两天。
[0088]
在一实施例中,以星期为周期为例,针对同一真实自然人一星期内五天的出行轨迹可能与周末两天内的出行轨迹存在差异,可以在步骤s12中,在筛选出所需的聚类信息之后,按周内与周末,为每个第一类簇进行数据划分,得到周内时空域与周末时空域,这样更能反映该第一类簇对应的真实自然人的日常出行习惯。
[0089]
请参见图12,图12为本技术类簇的时空域信息生成装置的一实施例的流程示意图。具体包括:类簇获取模块11、挖掘模块12及时空域信息获取模块13。
[0090]
其中,类簇获取模块11用于获取第一类簇。
[0091]
其中,挖掘模块12用于基于第一类簇中的图像的抓拍时间以及抓拍地点,得到第一类簇对应的时空关联信息。
[0092]
具体的,挖掘模块12利用关联关系挖掘算法基于序列信息进行时空关联关系挖掘,得到强相关的多个标识符,并基于时空信息编码的映射关系对强相关的多个标识符解码,得到时空关联信息。通过时空信息编码字典的映射关系得到逆时空信息编码字典,对得到的结果进行时空关系解码,可以得到真实自然人直观的时间和空间出行信息,方便后期
人脸聚类算法效果提升。
[0093]
在一实施例中,挖掘模块12用于对图像对应的抓拍时间以及抓拍地点按照时间先后顺序进行排序,生成序列信息;利用关联关系挖掘算法基于序列信息进行时空关联关系挖掘,得到时空关联信息。
[0094]
在另一实施例中,挖掘模块12用于对图像对应的抓拍时间以及抓拍地点进行时空信息编码,得到表征图像的时空关系的标识符;按照时间先后顺序对图像对应的标识符进行排序,生成序列信息。
[0095]
在一实施例中,挖掘模块12利用关联关系挖掘算法基于序列信息进行时空关联关系挖掘,得到强相关的多个标识符;基于时空信息编码的映射关系对强相关的多个标识符解码,得到时空关联信息。
[0096]
在一实施例中,响应于多张图像的抓拍时间和抓拍地点相同,只保留其中一张图像的抓拍时间和抓拍地点。
[0097]
在一实施例中,以星期为周期对抓拍时间以及抓拍地点进行划分,以得到第一时间范围的抓拍时间和对应的抓拍地点,以及得到第二时间范围的抓拍时间和对应的抓拍地点。
[0098]
其中,时空域信息获取模块13用于基于时空关联信息得到第一类簇对应的时空域信息。
[0099]
在一实施例中,时空域信息获取模块13在第一类簇包含一张图像时,将图像对应的抓拍时间以及抓拍地点作为第一类簇对应的时空域信息。
[0100]
示例性的,每个第一类簇对应的时空域信息的表示方式为:time area_n:[time(x1),area(y1);
……
]。其中n为时空域的序号,x表示时间,y表示地点。具体的,每个时空域time area由多个时间空间点[time(x1),area(y1)]组成。
[0101]
例如:假设某一第一类簇的时空域信息为time area_1:[time(8),area(a);time(9),area(b)]。其具体含义为,该第一类簇对应的对象,也即真实自然人大概率都是早上8点从a地点出发,在早上9点到达b地点。由此可知,步骤s1中第一类簇的时空域信息实际上反映的就是该第一类簇对应的真实自然人日常出行习惯。人像聚类的目的是一人一档,即将每个人的所有抓拍图片都与该人的身份证图片进行关联映射。此处的真实自然人指的是,人像聚类后,每个类簇与对应的身份证图进行正确的关联映射,该身份证对应的人为该类簇的真实自然人。一人一档,就是将海量的人像图片以人为单位进行分组,每个人的所有抓拍图片都被归为一个集合,该集合中的图像能够反映对应的真实自然人的出行关系,但是在图像聚类后往往会出现一人多档的问题,这会使得对应的出行关系错乱,不利用后续实现目标追踪等应用。对此,本技术根据聚类后的多个类簇的时空域信息将多个类簇合并,进而解决一人多档的问题,提高聚类的准确性。
[0102]
步骤s2:基于每一第一类簇对应的时空域信息确定至少两个第一类簇之间是否存在时空关联。
[0103]
具体的,在获取每个第一类簇对应的时空域信息之后,利用倒排索引的方式排列每个第一类簇与时间空间点的相关关系。倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包括一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而称为倒排索引。也就是
说,将所有涉及的时间空间点标识符作为索引,每个时间空间点索引连接的信息为对应时空域包含该时间空间点的类簇信息。利用不同的时空域作为倒排索引,每个索引之后连接的是第一类簇对应涵盖该时空域的类簇信息。其中,该第一类簇信息包含:类簇id与类簇内的图像数。
[0104]
比如,假设第一类簇1(id为cluster1)中包含5张图像,对应的时空域信息为[time(t1),area(a);time(t2),area(b);time(t3),area(c)]。第一类簇2(id为cluster2)中包含6张图像,对应的时空域为[time(t2),area(a),time(t2),area(b);time(t3),area(c)]。第一类簇3(id为cluster3)中包含1张图像,对应的专属时空域为[time(t1),area(a)]。
[0105]
利用倒排索引的方式组织以上各个类簇与时间空间点之间的相关关系,可以加快寻找处于相近时空域的类簇信息,进而提高系统运行效率。在一实施例中,步骤s2只考虑第一类簇对应的时空域信息而非类簇内每张图像对应的时空域信息,其主要原因是为了重点关注类簇的主要的时空出行关系,避免噪声信号的干扰,提高系统鲁棒性。
[0106]
具体的,请参见图2,图2为图1中步骤s2的一实施例的流程示意图,具体包括:
[0107]
步骤s21:确定至少两个第一类簇对应的时空域信息是否具有相同的时间空间点。
[0108]
具体的,请结合图3,图3为利用倒排索引排列至少两个第一类簇对应的时空域信息是否具有相同的时间空间点的关系示意图。利用倒排索引排列上述第一类簇1(id为cluster1)、第一类簇2(id为cluster2)、第一类簇3(id为cluster3)与时间空间点的关系。其中,第一类簇1(id为cluster1)与第一类簇3(id为cluster3)与时间t1空间a点有关;第一类簇2(id为cluster2)与时间t2空间a点有关;第一类簇1(id为cluster1)与第一类簇2(id为cluster2)与时间t2空间b有关;第一类簇1(id为cluster1)与第一类簇2(id为cluster2)与时间t3空间c有关。也即第一类簇1(id为cluster1)与第一类簇3(id为cluster3)有相同的时间空间点(t1,a);第一类簇1(id为cluster1)与第一类簇2(id为cluster2)有相同的时间空间点(t2,b);第一类簇1(id为cluster1)与第一类簇2(id为cluster2)有相同的时间空间点(t3,c)。
[0109]
步骤s22:响应于具有相同的时间空间点,则确定至少两个第一类簇之间存在时空关联。
[0110]
具体的,第一类簇1(id为cluster1)与第一类簇3(id为cluster3)有相同的时间空间点(t1,a),第一类簇1(id为cluster1)与第一类簇3(id为cluster3)存在时空关联;第一类簇1(id为cluster1)与第一类簇2(id为cluster2)有相同的时间空间点(t2,b),第一类簇1(id为cluster1)与第一类簇2(id为cluster2)存在时空关联;第一类簇1(id为cluster1)与第一类簇2(id为cluster2)有相同的时间空间点(t3,c),第一类簇1(id为cluster1)与第一类簇2(id为cluster2)存在时空关联。
[0111]
步骤s3:响应于至少两个第一类簇之间存在时空关联,则基于至少两个第一类簇之间的相似度,将至少两个第一类簇进行聚类。
[0112]
具体的,时空域信息一般由多个时间空间点组成,如果第一类簇内只包含一张图像,那么其时空域信息只能由一个时间空间点组成,这样的类簇难以反映类簇对应的真实自然人的日常出行规律。也即上述实施例中,只有一张图像的第一类簇(id为cluster3)不能反映出对应的真实自然人的日常出行规律,也即暂时不考虑将第一类簇(id为cluster3)进行合并。
[0113]
也即,在本实施例中,需要基于相似度进行合并的第一类簇有第一类簇1(id为cluster1)与第一类簇2(id为cluster2),第一类簇1(id为cluster1)与第一类簇2(id为cluster2)的时间空间交点为(time:t2,area:b)(time:t3,area:c)。基于第一类簇1与第一类簇2之间的相似度,确定是否将第一类簇1与第一类簇2合并。
[0114]
具体的请参见图4,图4为图1中步骤s3的一实施例的流程示意图,具体包括:
[0115]
步骤s31:确定至少两个第一类簇之间的时空相关系数。
[0116]
具体的,在本实施例中,利用jaccard系数,度量类簇之间的时空相关系数。
[0117]
具体的,计算至少两个第一类簇对应的时空域信息的交集;以及计算至少两个第一类簇对应的时空域信息的并集。假设第一类簇1的时空域信息包含的时间空间点组成的集合为m,第一类簇2的时空域信息包含的时间空间点组成的集合为n。则至少两个第一类簇对应的时空域信息的交集可以表示为:|m∩n|。至少两个第一类簇对应的时空域信息的并集可以表示为:|m∪n|。基于交集以及并集确定时空相关系数。在一实施例中,时空相关系数表述为α,α=|m∩n|/|m∪n|。通过设置时空相关系数,实现动态阈值的人像聚类优化,相比现有技术中的固定阈值的人像聚类,鲁棒性更强。
[0118]
步骤s32:基于时空相关系数确定相似度阈值。
[0119]
具体的,在确定上述时空相关系数α的基础上,可以利用时空相关系数α,动态调整至少两个第一类簇的相似度阈值。
[0120]
具体的,基于时空相关系数确定相似度阈值的步骤包括:
[0121]
利用预设的最高相似度阈值、预设的最低相似度阈值以及时空相关系数确定相似度阈值。
[0122]
比如,在一实施例中,定义最高相似度阈值为sim_max,最低相似度阈值为sim_min,则相似度阈值为:
[0123]
sim=sim_max

(sim_max-sim_min)
·
α
[0124]
步骤s33:响应于至少两个第一类簇之间的相似度大于相似度阈值,将至少两个第一类簇进行聚类。
[0125]
具体的,在得到上述的相似度阈值sim之后,需要将至少两个第一类簇之间的相似度与相似度阈值sim进行比较,以确定至少两个第一类簇是否可以进行聚类。因此,在判断至少两个第一类簇之间的相似度是否大于相似度阈值的步骤之前,需要先计算两个类簇的相似度。
[0126]
具体的,分别计算至少两个第一类簇的平均质心。例如,利用第一类簇1中的所有质心计算第一类簇1的平均质心,利用第一类簇2中的所有质心计算第一类簇2的平均质心。基于至少两个第一类簇的平均质心计算至少两个第一类簇之间的相似度。具体的,在计算出第一类簇1以及第一类簇2的平均质心之后,基于第一类簇1以及第一类簇2的平均质心计算第一类簇1以及第一类簇2的相似度。第一类簇1以及第一类簇2的相似度即为第一类簇1以及第一类簇2的平均质心之间的距离,距离度量方式包括但不限于欧氏距离、余弦距离。在确定出第一类簇1以及第一类簇2的相似度之后,确定相似度与相似度阈值之间的大小关系。当相似度大于相似度阈值,则将至少两个第一类簇进行聚类,也即将第一类簇1与第一类簇2聚类在一起;当相似度小于相似度阈值,则不对第一类簇1与第一类簇2进行聚类。
[0127]
在本技术的一实施例中,为了更进一步提高类簇聚类的准确性,需要判断第一类
簇中图像的数量,若至少两个第一类簇中至少一个第一类簇的图像数量小于预设数量时,则基于时空相关系数确定第一相似度阈值,响应于至少两个第一类簇之间的相似度大于第一相似度阈值,将至少两个第一类簇进行聚类。在一实施例中,预设数量为2,如果第一类簇内只包含少数2张,也即仅具有一张图像,那么其时空域信息只能由一个时间空间点组成,这样的类簇难以反映类簇对应的真实自然人的日常出行规律。也即上述实施例中,只有一张图像的第一类簇(id为cluster3)不能反映出对应的真实自然人的日常出行规律,此时若要将第一类簇(id为cluster3)进行合并,为了提高准确性,设置较大的第一相似度阈值。
[0128]
响应于至少两个第一类簇中图像数量大于预设数量,则基于时空相关系数确定第二相似度阈值;响应于至少两个第一类簇之间的相似度大于第二相似度阈值,将至少两个第一类簇进行聚类;第一相似度阈值大于第二相似度阈值。
[0129]
在上述实施例中,第一相似度阈值大于第二相似度阈值。也就是说,当待处理的图像数量少于本方法中预设的图像数量时,如:只有一张图像,那么在判断其与预设的相似度阈值大小时,就需要设置更高的相似度标准,这样才能保证进行聚类后的图像准确性。
[0130]
另外,此处的第一相似度阈值和第二相似度阈值的确定方法与步骤s32中的相似度阈值确定方法相同,因此不再赘述。在实际中,可以根据需要具体设置第一相似度阈值和第二相似度阈值,只要保证最高相似度阈值、最低相似度阈值与第一相似度阈值和第二相似度阈值是不同的即可,本技术对此不加以限制。
[0131]
本技术的聚类方法,利用每个类簇的专属时空域信息,针对基于传统图像特征的人脸聚类的结果进一步优化,具体地,针对每个类簇内不处于该类簇的专属时空域的人像图片设置更高的相似度阈值,进而有针对性的剔除类簇中的错误图片,从而完成人脸聚类的效果提升。利用时空相关系数,很好地衡量各个类簇之间的时空相关性,实现动态阈值的人像聚类优化,进而实现根据时空信息设置动态阈值的人像聚类优化。相比固定阈值的人像聚类,鲁棒性更强。采用倒排索引的方式加快寻找处于相近时空域类簇信息,进而提高系统运行效率。本技术能够同时、充分考虑时间和空间对人脸聚类的影响,提高人脸聚类的准确性。
[0132]
实际中,在确定至少两个第一类簇之间是否存在时空关联时,经常会出现一种情况,就是当第一类簇出现时空域之外或者是与该时空域存在时间或空间单一维度重叠的抓拍图像,那么此时很可能这些图像就是异常图像。因此,针对这种情况需要提高图像校验的相似度阈值,进行异常图像的校正。
[0133]
具体的,如图5所示,图5是本技术聚类方法的第二实施例的流程示意图。基于每一第一类簇对应的时空域信息确定至少两个第一类簇之间是否存在时空关联之前,还包括:
[0134]
步骤s4:分别确定每一第一类簇对应的时空域信息中是否存在相同的时间信息和/或空间信息。
[0135]
具体的,对每一第一类簇中的图像进行时间、空间和位置信息的统计和对比,确定是否具有相同时间和/或空间信息的一张或多张图像。
[0136]
步骤s5:响应于存在相同的时间信息和/或空间信息,则基于相同的时间信息和/或空间信息确定异常图像。
[0137]
具体的,如果存在具有相同的时间和/或空间信息的一张或多张图像,那么可以确定的是,在该图像中,一定存在有异常的图像,也就是说,存在不属于第一类簇中的错误图
像,则将该图像确定为异常图像。
[0138]
步骤s6:将异常图像从第一类簇中剔除。
[0139]
具体的,在确定某一图像属于异常图像后,需要将其从第一类簇中剔除出去,以解决异常情况,保证第一类簇中的图像是准确反映真实自然人日常出行习惯的图像。
[0140]
示例性的,假设:某一类簇的时空域为time area_1:[time(8),area(a);time(9),area(b)]。此时该类簇一共包含10张图像,其中一张图像对应的时间空间点为[time(3),area(a)],即该图像是在凌晨3点在a点抓拍的,显然与该类簇大部分图像的时空信息不符,因此这张图像与档案内剩余9张图像极有可能不是同一个人的图像。
[0141]
通过设置合适的类簇内部校验相似度阈值,判断该图像与类簇内剩余9张图像是否为同一个人的图像。如果该张图像与类簇内剩余9张图像不是同一个人的图像,那么该类簇为错误类簇,该图像为错误图像,需要进行剔除。针对每个类簇内不处于该类簇的时空域的人像图片设置更高的相似度阈值,可以有针对性地剔除类簇中错误图片。
[0142]
需要说明的是,在步骤s6中剔除的错误图像,需要单独设置新的类簇,系统需要为其分配唯一的类簇id。该图像可以作为后续其他类簇中的一部分,也可以一直作为该类簇中唯一的图像。
[0143]
直接从海量的人像抓拍数据中进行人像聚类,效果往往很差。原因是相比于小数据量,大数据量的人像数据中存在相似图片的概率更高。利用时空信息对海量的人像数据进行分组再聚类,是一种提高人像聚类效果的新方案。
[0144]
基于传统图片特征的人像聚类后得到的每个类簇,通过概率统计或关联关系挖掘,可以很快为每个类簇分配专属的时空域,进而实现真正意义上的、从每个类簇的角度出发的、细粒度时空区域划分。所谓的时空域是由多个时间空间点组成,反映的是该类簇对应的真实自然人的日常出行习惯。
[0145]
利用每个类簇的专属时空域信息,可以完成人像聚类中错档校正与多档合并,进而优化人像聚类的效果。
[0146]
本技术的聚类方法,利用每个类簇的专属时空域信息,进行人像聚类的错档校正优化。具体地,针对每个类簇内不处于该类簇的专属时空域的人像图片设置更高的相似度阈值,进而有针对性的剔除类簇中错误图片。采用倒排索引的方式加快寻找处于相近时空域类簇信息,进而提高系统运行效率。通过设置时空相关系数,实现动态阈值的人像聚类优化,相比固定阈值的人像聚类,鲁棒性更强。
[0147]
本技术的聚类方法,先基于时空域信息确定多个类簇是否具有时空关联关系,基于具有时间关联关系的多个类簇的相似度确定是否将多个类簇聚类,以此能够解决一人多档问题,并且能够提高聚类准确性。
[0148]
请参见图6,为本技术聚类装置的一实施例的结构示意图,具体包括:获取模块41、确定模块42以及聚类模块43。
[0149]
其中,获取模块41用于获取至少两个第一类簇以及每一第一类簇对应的时空域信息,时空域信息表征第一类簇对应的对象的时空位置关系。
[0150]
进一步的,本技术在获取第一类簇后,进一步获取第一类簇对应的时空域信息,时空域信息表征第一类簇对应的对象的时空位置关系。例如,第一类簇为对象a的类簇,那么时空域信息表征对象a的出行的时间、地点关系。一个时空域信息由多组固定的时间与空间
地点组成,具有时间与空间的顺序。具体来说,每一个图像拍摄时都会存在一个时间、空间地理位置与该图像相对应,在通过聚类算法获取图像的人脸特征信息时,也可以同时获取到该图像的时空域信息。
[0151]
其中,确定模块42用于基于每一第一类簇对应的时空域信息确定至少两个第一类簇之间是否存在时空关联。
[0152]
在一实施例中,确定模块42基于每一第一类簇对应的时空域信息确定,通过倒排索引的方式排列每个第一类簇与时间空间点的相关关系。具体的,将所有涉及的时间空间点标识符作为索引,每个时间空间点索引连接的信息为对应时空域包含该时间空间点的类簇信息。利用不同的时空域作为倒排索引,每个索引之后连接的是第一类簇对应涵盖该时空域的类簇信息。其中,该第一类簇信息包含:类簇id与类簇内的图像数。
[0153]
利用倒排索引的方式组织以上各个类簇与时间空间点之间的相关关系,可以加快寻找处于相近时空域的类簇信息,进而提高系统运行效率。
[0154]
在一实施例中,确定模块42确定至少两个第一类簇对应的时空域信息是否具有相同的时间空间点;响应于具有相同的时间空间点,则确定至少两个第一类簇之间存在时空关联。
[0155]
其中,聚类模块43用于响应于至少两个第一类簇之间存在时空关联,则基于至少两个第一类簇之间的相似度,将至少两个第一类簇进行聚类。
[0156]
在一实施例中,聚类模块43用于确定至少两个第一类簇之间的时空相关系数;基于时空相关系数确定相似度阈值;响应于至少两个第一类簇之间的相似度大于相似度阈值,将至少两个第一类簇进行聚类。
[0157]
在一实施例中,聚类模块43计算至少两个第一类簇对应的时空域信息的交集;以及计算至少两个第一类簇对应的时空域信息的并集;基于交集以及并集确定时空相关系数。
[0158]
在一实施例中,聚类模块43利用预设的最高相似度阈值、预设的最低相似度阈值以及时空相关系数确定相似度阈值。
[0159]
在一实施例中,聚类模块43分别计算至少两个第一类簇的平均质心;基于至少两个第一类簇的平均质心计算至少两个第一类簇之间的相似度。
[0160]
具体的,时空域信息一般由多个时间空间点组成,如果第一类簇内只包含一张图像,那么其时空域信息只能由一个时间空间点组成,这样的类簇难以反映类簇对应的真实自然人的日常出行规律。也即上述实施例中,只有一张图像的第一类簇(id为cluster3)不能反映出对应的真实自然人的日常出行规律,也即暂时不考虑将第一类簇(id为cluster3)进行合并。
[0161]
在本实施例中,需要基于相似度进行合并的第一类簇有第一类簇1(id为cluster1)与第一类簇2(id为cluster2),第一类簇1(id为cluster1)与第一类簇2(id为cluster2)的时间空间交点为(time:t2,area:b)(time:t3,area:c)。基于第一类簇1与第一类簇2之间的相似度,确定是否将第一类簇1与第一类簇2合并。
[0162]
在实际中遇到待处理图像数量小于预设图像数量时,需要设置更高的相似度阈值标准,具体可参见上述步骤s32的内容,此处不再赘述。
[0163]
本技术的聚类装置,通过获取至少两个第一类簇以及每一第一类簇对应的时空域
信息,结合每一第一类簇对应的时空域信息确定至少两个第一类簇之间是否存在时空关联;若存在时空关联,则基于至少两个第一类簇之间的相似度,将至少两个第一类簇进行聚类。通过每个类簇的时空域信息,确定不同的类簇之间是否具有时空关联,进而确定是否可以将至少两个类簇进行聚类,解决一人多档问题,提高聚类的准确性。
[0164]
请参见图13,为本技术电子设备的一实施例的结构示意图,电子设备包括相互连接的存储器202和处理器201。
[0165]
存储器202用于存储实现上述任意一项的设备的方法的程序指令。
[0166]
处理器201用于执行存储器202存储的程序指令。
[0167]
其中,处理器201还可以称为cpu(central processing unit,中央处理单元)。处理器201可能是一种集成电路芯片,具有信号的处理能力。处理器201还可以是通用处理器、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0168]
存储器202可以为内存条、tf卡等,可以存储设备的电子设备中全部信息,包括输入的原始数据、计算机程序、中间运行结果和最终运行结果都保存在存储器中。它根据控制器指定的位置存入和取出信息。有了存储器,电子设备才有记忆功能,才能保证正常工作。电子设备的存储器按用途可分为主存储器(内存)和辅助存储器(外存),也有分为外部存储器和内部存储器的分类方法。外存通常是磁性介质或光盘等,能长期保存信息。内存指主板上的存储部件,用来存放当前正在执行的数据和程序,但仅用于暂时存放程序和数据,关闭电源或断电,数据会丢失。
[0169]
在本技术所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0170]
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
[0171]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0172]
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,系统服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。
[0173]
请参阅图14,为本技术计算机可读存储介质的一实施例的结构示意图。本技术的存储介质存储有能够实现上述所有方法的程序文件203,其中,该程序文件203可以以软件产品的形式存储在上述存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本技术各个实施方式方法的全部或部分步骤。而前述的存储装置包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质,或者是计算机、服务器、手机、平板等终端设备。
[0174]
以上仅为本技术的实施方式,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1