一种图片聚类方法、装置及存储介质与流程

文档序号:27768233发布日期:2021-12-04 01:49阅读:122来源:国知局
一种图片聚类方法、装置及存储介质与流程

1.本发明属于图片聚类技术领域,具体涉及一种图片聚类方法、装置及存储介质。


背景技术:

2.人脸聚类是一项将人脸识别等算法应用在安防领域的重要技术。具体的应用如对人脸进行分组,把相同的人脸分为同一档案,后续可以根据相关的人脸信息进行溯源调查。此外,人脸聚类可以在无注册信息的场景下,对采集到的人脸信息进行建档,后续可以用于分析用户画像、人员监控等。
3.目前人脸聚类技术主要分为两类方法,一类是在实时抓拍过程中,利用人脸质量分数抓拍多张待聚类图片,再用人脸识别归档聚类。另一类是先对人脸进行特征提取,然后对特征利用聚类算法进行聚类。由于业务需求对准确度更关注,因此现在多使用第二类图片聚类方法。
4.现有的技术方案,首先训练人脸特征提取模型,接着根据人脸特征计算两两图像的相似度,然后使用聚类算法,最后按照一定的规则、阈值进行类的合并和特殊情况处理。这类方法存在准确度低的缺点,且高度依赖于人脸特征提取模型的效果。其它的方法,也是首先训练人脸特征模型提取人脸特征,在进行聚类,不仅仅使用人脸特征信息,还结合了其它的信息,如技术使用两两图像属于同一类的置信度,基于两两图像的时空匹配度信息和特征相似度,确定其属于同一类别的联合概率。除了两两图像的相似度,还计算了图像与类中心特征的相似度。这类方法虽然准确度有了一定提升,但仍不能满足一些特定业务场景需求,特别是对算法效率要求高的场景。


技术实现要素:

5.鉴于以上所述现有技术的缺点,本发明提供一种图片聚类方法、装置及存储介质,以优化类中心特征的计算方式。
6.为实现上述目的及其他相关目的,本发明提供一种图片聚类方法,该方法包括:
7.分别对多张待聚类图片进行特征提取,得到多个第一特征向量;
8.对所述多个第一特征向量进行聚类,得到至少一个第一聚类簇;
9.确定所述至少一个第一聚类簇中每一个第一聚类簇的中心特征向量;
10.将每个第一聚类簇的中心特征向量与中心特征向量所属第一聚类簇中的其他第一特征向量分别进行融合,得到多个第二特征向量;
11.对所述多个第二特征向量进行聚类,得到至少一个第二聚类簇;
12.基于所述至少一个第二聚类簇进行图片聚类。
13.可选地,确定所述至少一个第一聚类簇中每一个第一聚类簇的中心特征向量,包括:
14.在每个第一聚类簇中,确定第三特征向量,所述第三特征向量为第一聚类簇中拥有最多相似特征向量的特征向量;
15.计算第三特征向量与第一聚类簇中其他特征向量的第一相似度,将第一相似度大于设定相似度阈值的其中一个特征向量作为第四特征向量;
16.对所述第三特征向量与所述第四特征向量进行加权平均,得到第一个新的特征向量;
17.计算第一个新的特征向量与第一聚类簇中其他特征向量的第二相似度,将第二相似度大于设定相似度阈值的其中一个特征向量作为第五特征向量;
18.对所述第五特征向量与所述第一个新的特征向量进行加权平均,得到第二个新的特征向量;
19.重复上述得到新的特征向量的步骤,直到聚类簇类内的特征向量被遍历完或无满足相似度阈值条件的特征向量为止;
20.将最后得到的新的特征向量作为中心特征向量。
21.可选地,确定所述至少一个第一聚类簇中每一个第一聚类簇的中心特征向量,包括:
22.在每一个第一聚类簇中,确定第三特征向量,所述第三特征向量为第一聚类簇中拥有最多相似特征向量的特征向量;
23.计算第三特征向量与第一聚类簇中其他特征向量之间的距离,将距离小于设定距离阈值的其中一个特征向量作为第四特征向量;
24.对所述第三特征向量与所述第四特征向量进行加权平均,得到第一个新的特征向量;
25.计算第一个新的特征向量与第一聚类簇中其他特征向量之间的距离,将距离小于设定距离阈值的其中一个特征向量作为第五特征向量;
26.对所述第五特征向量与所述第一个新的特征向量进行加权平均,得到第二个新的特征向量;
27.重复上述得到新的特征向量的步骤,直到聚类簇类内的特征向量被遍历完或无满足距离阈值条件的特征向量为止;
28.将最后得到的新的特征向量作为中心特征向量。
29.可选地,利用knn聚类算法对所述多个第一特征向量进行聚类。
30.可选地,在对所述多个第二特征向量进行聚类前,基于所述多个第二特征向量构建knn图,利用infomap聚类算法对所述knn图进行聚类。
31.可选地,所述对所述多个第一特征向量进行聚类,包括:
32.获取多个第一特征向量中任意两个第一特征向量之间的特征相似度;
33.基于所述任意两个第一特征向量之间的特征相似度构建knn矩阵;
34.将特征相似度小于设定特征相似度阈值的特征相似度置为0,得到稀疏矩阵;
35.基于所述稀疏矩阵完成对所述多个第一特征向量的聚类。
36.可选地,该方法还包括:
37.确定出图片数量小于设定值的第二聚类簇;
38.对图片数量小于设定值的第二聚类簇中的图片进行重新聚类,使所述图片数量小于设定值的第二聚类簇中的图片属于所述第一聚类簇。
39.可选地,所述将中心特征向量与中心特征向量所属第一聚类簇中的其他第一特征
向量分别进行融合,包括:将中心特征向量与第一特征向量进行横向首尾顺次拼接。
40.为实现上述目的及其他相关目的,本发明提供一种图片聚类装置,该装置包括:
41.特征提取模块,用于分别对多张待聚类图片进行特征提取,得到多个第一特征向量;
42.第一聚类模块,用于对所述多个第一特征向量进行聚类,得到至少一个第一聚类簇;
43.中心特征向量确定模块,用于确定所述至少一个第一聚类簇中每一个第一聚类簇的中心特征向量;
44.特征融合模块,用于将每个第一聚类簇的中心特征向量与中心特征向量所属第一聚类簇中的其他第一特征向量分别进行融合,得到多个第二特征向量;
45.第二聚类模块,用于对所述多个第二特征向量进行聚类,得到至少一个第二聚类簇;
46.第三聚类模块,用于基于所述至少一个第二聚类簇进行图片聚类。
47.为实现上述目的及其他相关目的,本发明还提供一种存储介质,存储计算机程序,所述计算机程序被处理器运行时执行所述的方法。
48.如上所述,本发明的一种图片聚类方法、装置及存储介质,具有以下有益效果:
49.本发明的一种图片聚类方法,包括:分别对多张待聚类图片进行特征提取,得到多个第一特征向量;对所述多个第一特征向量进行聚类,得到至少一个第一聚类簇;确定所述至少一个第一聚类簇中每一个第一聚类簇的中心特征向量;将每个第一聚类簇的中心特征向量与中心特征向量所属第一聚类簇中的其他第一特征向量分别进行融合,得到多个第二特征向量;对所述多个第二特征向量进行聚类,得到至少一个第二聚类簇;基于所述至少一个第二聚类簇进行图片聚类。通过上述图片聚类方法,优化了类中心特征的计算方式,优化图片特征的表达方式,提高了聚类的准确率。
附图说明
50.图1为本发明一实施例中一种图片聚类方法的流程图;
51.图2为本发明一实施例中一种图片聚类装置的原理框图。
具体实施方式
52.以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
53.需要说明的是,以下实施例中所提供的图示仅以示意方式说明本发明的基本构想,遂图式中仅显示与本发明中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。
54.如图1所示,本技术实施例提供了一种图片聚类方法,包括:
55.s10分别对多张待聚类图片进行特征提取,得到多个第一特征向量;
56.s11对所述多个第一特征向量进行聚类,得到至少一个第一聚类簇;
57.s12确定所述至少一个第一聚类簇中每一个第一聚类簇的中心特征向量;
58.s13将每个第一聚类簇的中心特征向量与中心特征向量所属第一聚类簇中的其他第一特征向量分别进行融合,得到多个第二特征向量;
59.s14对所述多个第二特征向量进行聚类,得到至少一个第二聚类簇;
60.s15基于所述至少一个第二聚类簇进行图片聚类。
61.本发明通过上述图片聚类方法,优化了类中心特征的计算方式,优化图片特征的表达方式,提高了聚类的准确率。
62.在步骤s10中,分别对多张待聚类图片进行特征提取,得到多个第一特征向量。其中,待聚类图片可以是人脸图片、风景图片、物体图片、其它类型的图片等。本实施例以人脸图片进行示例。
63.在对人脸图片进行特征提取时,通过一事先训练好的基于神经网络的人脸特征提取模型对人脸图片进行人脸特征提取。其中,人脸特征提取模型为一个上百层的残差网络。在对人脸图片进行特征提取时,对人脸图片进行特征提取,得到人脸特征,并进一步得到人脸特征向量。
64.在一实施例中,所述对所述多个第一特征向量进行聚类,包括:
65.s110获取多个第一特征向量中任意两个第一特征向量之间的特征相似度;
66.s111基于所述任意两个第一特征向量之间的特征相似度构建knn矩阵;
67.在构建knn矩阵时,k值可以根据需求进行选择,例如,k可以是100。
68.s112将特征相似度小于设定特征相似度阈值的特征相似度置为0,得到稀疏矩阵;
69.其中,设定特征相似度阈值可以根据需求进行选择,例如,特征相似度阈值可以是0.5
70.s113基于所述稀疏矩阵完成对所述多个第一特征向量的聚类。
71.在本实施例中,在对所述多个第一特征向量进行聚类时,使用knn聚类方法对所述多个第一特征向量进行聚类,得到每个向量的邻域,此邻域可作为初始类,即第一聚类簇。
72.在步骤s12中,确定所述至少一个第一聚类簇中每一个第一聚类簇的中心特征向量;
73.由于在前述步骤中,通过knn聚类方法对所述多个第一特征向量进行聚类,这种聚类的效果容易出现过多离散类,且同一类下,误聚太多。因此本技术提出了一种类中心特征向量,可以丰富图片的特征信息,使得在聚类算法不变的情况下,聚类效果更准确。中心特征向量的定义:中心特征向量为每一类的代表向量。在一实施例中,所述确定所述至少一个第一聚类簇中每一个第一聚类簇的中心特征向量,包括:
74.在每个第一聚类簇中,确定第三特征向量,所述第三特征向量为第一聚类簇中拥有最多相似特征向量的特征向量;
75.计算第三特征向量与第一聚类簇中其他特征向量的第一相似度,将第一相似度大于设定相似度阈值的其中一个特征向量作为第四特征向量;
76.对所述第三特征向量与所述第四特征向量进行加权平均,得到第一个新的特征向量;
77.计算第一个新的特征向量与第一聚类簇中其他特征向量的第二相似度,将第二相似度大于设定相似度阈值的其中一个特征向量作为第五特征向量;
78.对所述第五特征向量与所述第一个新的特征向量进行加权平均,得到第二个新的特征向量;
79.重复上述得到新的特征向量的步骤,直到聚类簇类内的特征向量被遍历完或无满足相似度阈值条件的特征向量为止;
80.将最后得到的新的特征向量作为中心特征向量。
81.上述确定所述至少一个第一聚类簇的中心特征向量可以采用如下迭代公式计算,迭代公式如下:
[0082][0083]
其中,x0为邻域内拥有最多相似图片的图片(向量);n为邻域内的向量数量;y
i
(i=0,1,2

,n

1)为第i个与x0相似的向量;x
i
(i=0,1,2

,n

1)是以x0为起始,由x
i
‑1和y
i
‑1通过公式迭代计算出的向量。α
i
为x
i
和y
i
的余弦相似度;当公式迭代至i=n

1时,即得到此类最终的中心向量x
n

[0084]
通过上述中心特征向量的方法,保证了相似度最高的图片,权重最大,而且减小了个别错误图片对类内中心向量的影响,从而可以找到更合理的类中心特征向量。
[0085]
11.在一实施例中,确定所述至少一个第一聚类簇中每一个第一聚类簇的中心特征向量,包括:
[0086]
在每一个第一聚类簇中,确定第三特征向量,所述第三特征向量为第一聚类簇中拥有最多相似特征向量的特征向量;
[0087]
计算第三特征向量与第一聚类簇中其他特征向量之间的距离,将距离小于设定距离阈值的其中一个特征向量作为第四特征向量;
[0088]
对所述第三特征向量与所述第四特征向量进行加权平均,得到第一个新的特征向量;
[0089]
计算第一个新的特征向量与第一聚类簇中其他特征向量之间的距离,将距离小于设定距离阈值的其中一个特征向量作为第五特征向量;
[0090]
对所述第五特征向量与所述第一个新的特征向量进行加权平均,得到第二个新的特征向量;
[0091]
重复上述得到新的特征向量的步骤,直到聚类簇类内的特征向量被遍历完或无满足距离阈值条件的特征向量为止;
[0092]
将最后得到的新的特征向量作为中心特征向量。
[0093]
为了使人脸特征的信息更加丰富,提升聚类准确率,因此,可以将每个第一聚类簇的中心特征向量与中心特征向量所属第一聚类簇中的其他第一特征向量分别进行融合,得到多个第二特征向量。
[0094]
具体地,所述的特征融合是将两个特征向量进行横向首尾顺次拼接。例如,中心特征向量为a[a1,a2,a3,a4],第一特征向量为b[b1,b2,b3,b4],将中心特征向量与第一特征向量进行拼接,得到的第二特征向量表示为[a1,a2,a3,a4,b1,b2,b3,b4]。
[0095]
在步骤s14中,对所述多个第二特征向量进行聚类,得到至少一个第二聚类簇。其中,采用infomap聚类算法对所述多个第二特征向量进行聚类。
[0096]
由于infomap算法是将所需聚类的数据视为一个整体的图结构数据,以求取整个图结构拥有最小熵值的方式来进行聚类。因此本实施列首先使用knn对第二特征向量建成一个图结构数据,即构建knn图,然后将knn图输入聚类算法infomap中进行聚类,得到第二聚类簇。
[0097]
可完成对人脸图片的第二次聚类后,可以利用bcubed f score对聚类效果过行评价。
[0098]
bcubed f score=2*准确率*召回率/(准确率+召回率)
[0099]
准确率=(∑(一个类中为同一个人的图片的平方/此类总图片数))/参与聚类的目标向量总数。
[0100]
召回率=(∑(一个类中目标向量数量的平方/参与聚类的向量总数))/参与聚类的目标向量总数。
[0101]
如:一个类应该有63张图,被分别聚类为了1张和62张,其中1张为单独一类,62张图与另外3张干扰图聚为了65张图的一个类。那么准确率=(1*1/1+62*62/65)/63,召回率=(1*1/63+62*62/63)/63。
[0102]
在一具体实施例中,使用152层残差网络,使用超过200w人脸id的训练集,训练了一个人脸特征提取模型,由此模型可获得原图片数据的256维特征向量。
[0103]
计算任意两个特征向量之间的特征相似度;
[0104]
基于特征相似度度将获得的256维特征向量构建为k=100的knn矩阵;
[0105]
将特征相似度小于0.5的特征相似度置0,由此可以获得一个稀疏矩阵。
[0106]
根据此稀疏矩阵,每张图都会找到自己的邻域,即获得初步的聚类结果,即第一聚类簇。
[0107]
得到第一聚类簇后,再利用前述的确定所述至少一个第一聚类簇中每一个第一聚类簇的中心特征向量的方式计算出每一个第一聚类簇的中心特征向量,之后将计算出的中心特征向量,与相应的中心特征向量所属的聚类簇中的除中心特征向量之间的其他特征向量进行融合,拼接。
[0108]
然后利用融合拼接好的特征向量再构建一次knn图,作为infomap的输入进行聚类,此处infomap最小阈值设为0.69结果较好(能在准确度高的情况下也有不错的召回率,符合实际工程需求)。
[0109]
在最后,infomap聚类完毕后可能会有许多的孤立点,本发明将聚类后,类内小于3个特征向量的类中的所有特征向量进行了重新聚类。将这些特征向量归入它们knn邻域中最近的特征向量的类,最大距离阈值设为0.32,大于此阈值特征向量聚类保持不变,至此聚类完成。
[0110]
如图2所示,本技术实施例提供一种图片聚类装置,包括:
[0111]
特征提取模块20,用于分别对多张待聚类图片进行特征提取,得到多个第一特征
向量;
[0112]
第一聚类模块21,用于对所述多个第一特征向量进行聚类,得到至少一个第一聚类簇;
[0113]
中心特征向量确定模块22,用于确定所述至少一个第一聚类簇中每一个第一聚类簇的中心特征向量;
[0114]
特征融合模块23,用于将每个第一聚类簇的中心特征向量与中心特征向量所属第一聚类簇中的其他第一特征向量分别进行融合,得到多个第二特征向量;
[0115]
第二聚类模块24,用于对所述多个第二特征向量进行聚类,得到至少一个第二聚类簇;
[0116]
第三聚类模块25,用于基于所述至少一个第二聚类簇进行图片聚类。
[0117]
需要说明的是,由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例的内容请参见方法部分的实施例的描述,这里暂不赘述。
[0118]
本发明还提供一种存储介质,存储计算机程序,所述计算机程序被处理器运行时执行前述的图片聚类方法。
[0119]
本发明还提供一种设备,包括:
[0120]
存储器,用于存储计算机程序;
[0121]
处理器,用于执行所述存储器存储的计算机程序,以使所述设备执行前述的图片聚类方法。
[0122]
所述处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0123]
所述存储器可以是内部存储单元或外部存储设备,例如插接式硬盘,智能存储卡(smart media card,smc),安全数字卡(secure digital,sd),闪存卡(flash card)等。进一步地,所述存储器还可以既包括内部存储单元,也包括外部存储设备。所述存储器用于存储所述计算机程序以及其他程序和数据。所述存储器还可以用于暂时地存储己经输出或者将要输出的数据。
[0124]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本技术的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0125]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
[0126]
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0127]
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
[0128]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0129]
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0130]
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read

only memory)、随机存取存储器((ram,random access memory)、电载波信号、电信信号以及软件分发介质等。
[0131]
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1