视频聚类方法、装置、服务器及存储介质与流程

文档序号:21725466发布日期:2020-08-05 01:16阅读:114来源:国知局
视频聚类方法、装置、服务器及存储介质与流程

本发明涉及视频技术领域,特别是涉及视频聚类方法、装置、服务器及存储介质。



背景技术:

视频聚类是视频推荐、视频管理中的关键环节。通常,待聚类的视频的数量通常数量很大,对所有待聚类的视频进行聚类时,需要考虑视频聚类的效率,同时,也需要考虑全面性,否则会导致仅可以得到所有待聚类的视频中的一部分视频相关的聚类结果,无法对未被聚类的视频进行后续的操作例如推荐、管理等。如何兼顾视频聚类的效率和视频聚类的全面性成为一个亟待解决的问题。



技术实现要素:

本发明实施例的目的在于提供一种视频聚类方法、装置、服务器及存储介质,以实现兼顾视频聚类的效率和视频聚类的全面性。具体技术方案如下:

在本发明实施的第一方面,首先提供了一种视频聚类方法,包括:

生成待聚类的所有视频中的每一个视频的特征向量;

将待聚类的所有视频的特征向量作为所有待聚类的特征向量,以及执行聚类操作,所述聚类操作包括:

利用基于密度的聚类算法对所有待聚类的特征向量进行聚类,得到与所有待聚类的特征向量相对应的所有候选聚类结果;

利用社区聚类算法基于所有待聚类的特征向量中的所有未聚类的特征向量和所述所有候选聚类结果进行聚类,得到与所有待聚类的特征向量相对应的所有聚类结果,其中,所述未聚类的特征向量为不属于所述所有候选聚类结果中的任意一个候选聚类结果的特征向量。

在一些实施例中,所述聚类操作还包括:

对于与所有待聚类的特征向量相对应的所有聚类结果中的每一个聚类结果,对所述聚类结果中的所有特征向量的标签进行聚合并且进行去重,得到所述聚类结果对应的标签集合;基于所述聚类结果对应的标签集合中的有效标签的数量,确定所述聚类结果是否为有效的聚类结果。

在一些实施例中,所述方法还包括:

当与所有待聚类的特征向量相对应的所有聚类结果包括至少一个无效的聚类结果时,继续执行至少一次聚类操作,其中,对于继续执行的至少一次聚类操作中的每一次执行的聚类操作,该次执行的聚类操作针对的所有待聚类的特征向量为通过该次的上一次执行的聚类操作得到的所有无效的聚类结果中的所有特征向量。

在一些实施例中,所述方法还包括:

对于通过执行至少一次聚类操作得到的所有有效的聚类结果中的每一个有效的聚类结果,基于所述有效的聚类结果对应的标签集合中的有效标签和每一个已有聚类结果对应的标签集合,确定所有已有聚类结果中是否存在可以与所述有效的聚类结果合并的目标已有聚类结果;若是,将所述有效的聚类结果与所述目标已有聚类结果进行合并;若否,将所述有效的聚类结果作为新的聚类结果。

在一些实施例中,每一个已有聚类结果的类型标识和每一个已有聚类结果对应的标签集合存储在聚类列表中;

所述方法还包括:

对于所述所有有效的聚类结果中的每一个作为新的聚类结果的有效的聚类结果,分配所述有效的聚类结果的类型标识;将所述有效的聚类结果的类型标识和所述有效的聚类结果对应的标签集合存储在聚类列表中;

对于所有已有聚类结果中的每一个目标已有聚类结果,将与所述目标已有聚类结果相关的目标合并聚类结果对应的标签集合存储在聚类列表中,以及将所述目标已有聚类结果的类型标识作为所述目标合并聚类结果的类型标识,其中,目标已有聚类结果为可以与所述所有有效的聚类结果中的至少一个有效的聚类结果进行合并的已有聚类结果,与所述目标已有聚类结果相关的目标合并聚类结果通过将所述目标已有聚类结果与至少一个有效的聚类结果进行合并得到,所述目标合并聚类结果对应的标签集合通过对所述目标合并聚类结果中的所有特征向量的标签进行聚合并且进行去重。

在本发明实施的第二方面,还提供了一种视频聚类装置,包括:

生成单元,被配置为生成待聚类的所有视频中的每一个视频的特征向量;

聚类单元,被配置为将待聚类的所有视频的特征向量作为所有待聚类的特征向量,以及执行聚类操作,所述聚类操作包括:利用基于密度的聚类算法对所有待聚类的特征向量进行聚类,得到与所有待聚类的特征向量相对应的所有候选聚类结果;利用社区聚类算法基于所有待聚类的特征向量中的所有未聚类的特征向量和所述所有候选聚类结果进行聚类,得到与所有待聚类的特征向量相对应的所有聚类结果,其中,所述未聚类的特征向量为不属于所述所有候选聚类结果中的任意一个候选聚类结果的特征向量。

在一些实施例中,所述聚类操作还包括:

对于与所有待聚类的特征向量相对应的所有聚类结果中的每一个聚类结果,对所述聚类结果中的所有特征向量的标签进行聚合并且进行去重,得到所述聚类结果对应的标签集合;基于所述聚类结果对应的标签集合中的有效标签的数量,确定所述聚类结果是否为有效的聚类结果。

在一些实施例中,所述装置还包括:

继续聚类单元,被配置为当与所有待聚类的特征向量相对应的所有聚类结果包括至少一个无效的聚类结果时,继续执行至少一次聚类操作,其中,对于继续执行的至少一次聚类操作中的每一次执行的聚类操作,该次执行的聚类操作针对的所有待聚类的特征向量为通过该次的上一次执行的聚类操作得到的所有无效的聚类结果中的所有特征向量。

在一些实施例中,所述装置还包括:

聚类结果扩充单元,被配置为对于通过执行至少一次聚类操作得到的所有有效的聚类结果中的每一个有效的聚类结果,基于所述有效的聚类结果对应的标签集合中的有效标签和每一个已有聚类结果对应的标签集合,确定所有已有聚类结果中是否存在可以与所述有效的聚类结果合并的目标已有聚类结果;若是,将所述有效的聚类结果与所述目标已有聚类结果进行合并;若否,将所述有效的聚类结果作为新的聚类结果。

在一些实施例中,每一个已有聚类结果的类型标识和每一个已有聚类结果对应的标签集合存储在聚类列表中;所述装置还包括:

聚类列表更新单元,被配置为:

对于所述所有有效的聚类结果中的每一个作为新的聚类结果的有效的聚类结果,分配所述有效的聚类结果的类型标识;将所述有效的聚类结果的类型标识和所述有效的聚类结果对应的标签集合存储在聚类列表中;

对于所有已有聚类结果中的每一个目标已有聚类结果,将与所述目标已有聚类结果相关的目标合并聚类结果对应的标签集合存储在聚类列表中,以及将所述目标已有聚类结果的类型标识作为所述目标合并聚类结果的类型标识,其中,目标已有聚类结果为可以与所述所有有效的聚类结果中的至少一个有效的聚类结果进行合并的已有聚类结果,与所述目标已有聚类结果相关的目标合并聚类结果通过将所述目标已有聚类结果与至少一个有效的聚类结果进行合并得到,所述目标合并聚类结果对应的标签集合通过对所述目标合并聚类结果中的所有特征向量的标签进行聚合并且进行去重得到。

在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的方法。

在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的方法。

本发明实施例提供的视频聚类方法,通过生成待聚类的所有视频中的每一个视频的特征向量;将待聚类的所有视频的特征向量作为所有待聚类的特征向量,以及执行聚类操作,聚类操作包括:利用基于密度的聚类算法对所有待聚类的特征向量进行聚类,得到与所有待聚类的特征向量相对应的所有候选聚类结果;利用社区聚类算法基于所有待聚类的特征向量中的所有未聚类的特征向量和所有候选聚类结果进行聚类,得到与所有待聚类的特征向量相对应的所有聚类结果。实现了同时利用基于密度的聚类算法和社区聚类算法进行视频聚类,基于密度的聚类算法用于确保视频聚类具有较高的效率,社区聚类算法用于确保待聚类的每一个视频的特征向量均被归属到相应的聚类结果中,以确保待聚类的每一个视频均被聚类,从而,兼顾视频聚类的效率和视频聚类的全面性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。

图1为本发明实施例提供的视频聚类方法的第一实施例的流程图;

图2为本发明实施例提供的视频聚类方法的第二实施例的流程图;

图3为本发明实施例提供的视频聚类方法的第三实施例的流程图;

图4为一次视频聚类过程的一个示例性流程图;

图5为本发明实施例提供的视频聚类装置的一个结构示意图;

图6为适用于实现本发明实施例提供的视频聚类方法的服务器的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。

请参考图1,其示出了本发明实施例提供的视频聚类方法的第一实施例的流程图。

步骤101,生成待聚类的所有视频中的每一个视频的特征向量。

待聚类的视频的特征向量可以为表示视频的标题文本的特征的向量。

在对待聚类的所有视频进行聚类时,可以首先获取待聚类的所有视频中的每一个视频的标题文本,然后,对于待聚类的所有视频中的每一个视频,可以利用自然语言处理模型提取该视频的标题文本的特征,根据提取的该视频的标题文本的特征,生成该视频的特征向量。

例如,对于待聚类的所有视频中的每一个视频,利用经过训练的循环神经网络(recurrentneuralnetwork,rnn)提取该视频的标题文本的多个维度的特征,对多个维度的特征进行编码,得到该视频的特征向量。

步骤102,将待聚类的所有视频的特征向量作为所有待聚类的特征向量,以及执行聚类操作,以得到与所有待聚类的特征向量相对应的所有聚类结果。

在本实施例中,聚类操作包括:利用基于密度的聚类算法对所有待聚类的特征向量进行聚类,得到与所有待聚类的特征向量相对应的所有候选聚类结果;利用社区聚类算法基于所有待聚类的特征向量中的所有未聚类的特征向量和该所有候选聚类结果进行聚类,得到与所有待聚类的特征向量相对应的所有聚类结果,其中,所有待聚类的特征向量中的未聚类的特征向量为不属于与所有待聚类的特征向量相对应的所有候选聚类结果中的任意一个候选聚类结果的特征向量。在利用基于密度的聚类算法进行聚类时,仅完成了对所有待聚类的特征向量中的除了未聚类的特征向量之外的特征向量的聚类,得到相应的候选聚类结果,而未聚类的特征向量则没有被归属到任意一个候选聚类结果中。

应理解,候选聚类结果和聚类结果仅为区分是通过基于密度的聚类算法得到还是通过社区聚类算法得到。

对于与所有待聚类的特征向量相对应的所有候选聚类结果中每一个候选聚类结果,在利用社区聚类算法基于所有待聚类的特征向量中的所有未聚类的特征向量和该所有候选聚类结果进行聚类进行聚类的过程中,若该候选聚类结果没有与任何一个未聚类的特征向量进行聚合,则该候选聚类结果直接作为一个聚类结果。

因此,对于与所有待聚类的特征向量相对应的所有聚类结果中的每一个聚类结果,该聚类结果可能为除了与所有待聚类的特征向量相对应的所有候选聚类结果之外的一个聚类结果,或者,该聚类结果也可能为与所有待聚类的特征向量相对应的所有候选聚类结果中的一个候选聚类结果。

在本实施例中,基于密度的聚类算法可以为dbscan(density-basedspatialclusteringofapplicationswithnoise)算法。与所有待聚类的特征向量相对应的所有候选聚类结果中的每一个候选聚类结果均包括至少两个待聚类的特征向量。

在得到与所有待聚类的特征向量相对应的所有候选聚类结果之后,可以利用社区聚类算法基于所有待聚类的特征向量中的所有未聚类的特征向量和与所有待聚类的特征向量相对应的所有候选聚类结果进行聚类,得到与所有待聚类的特征向量相对应的所有聚类结果。

在本实施例中,社区聚类算法可以为标签传播(labelpropagationalgorithm,lpa)算法。

首先简要说明利用社区聚类算法进行聚类的基本原理:需要聚类的对象称之为节点,已经形成的包括至少一个节点的节点集合称之为社区。在利用社区聚类算法进行聚类时,会进行多轮聚类。在每一轮聚类中,对于每一个未被归属到相应的社区的节点,根据该未被归属到相应的社区的节点与其邻居节点之间的权重关系,确定所有已经形成的社区中是否存在可以与该未被归属到相应的社区的节点合并的社区。

在本实施例中,当利用社区聚类算法基于所有待聚类的特征向量中的所有未聚类的特征向量和所有候选聚类结果进行聚类时,将已经形成的聚类结果即候选聚类结果作为社区、未聚类的特征向量作为节点。

在进行第一轮聚类之前进行初始化。在进行初始化时,对于每一个候选聚类结果,将该候选聚类结果作为已经形成的社区。同时,对于所有未聚类的特征向量中的每一个未聚类的特征向量,将该未聚类的特征向量作为一个未被归属到相应的社区的节点。

在进行初始化之后,开始多轮聚类,直至每一个未聚类的特征向量均被归属到相应的社区,多轮聚类结束。

在每一轮聚类中,对于每一个未聚类的特征向量,确定所有已经形成的社区中是否存在可以与该未聚类的特征向量合并的社区。若所有已经形成的社区中存在可以与该未聚类的特征向量合并的社区即聚类结果,将该未聚类的特征向量与可以与该未聚类的特征向量合并的社区进行合并,形成新的社区即新的聚类结果,该未聚类的特征向量变成被归属到相应的社区的特征向量,该未聚类的特征向量不再参与下一轮聚类。

通过多轮聚类,在每一个未聚类的特征向量均被归属到相应的社区之后,每一个存在的社区各自作为一个与所有待聚类的特征向量相对应的聚类结果,从而,得到与所有待聚类的特征向量相对应的所有聚类结果。

在本实施例中,与所有待聚类的特征向量相对应的所有聚类结果中的每一个聚类结果均包括至少两个待聚类的特征向量。

在本实施例中,对于与所有待聚类的特征向量相对应的所有聚类结果中的每一个聚类结果,属于该聚类结果的每一个待聚类的特征向量各自所属的视频属于同一类型。

对于每一个聚类结果,该聚类结果中的每一个待聚类的特征向量各自所属的视频被聚类为同一类型。从而,在得到与所有待聚类的特征向量相对应的所有聚类结果之后,对于每一个聚类结果,该聚类结果中的每一个待聚类的特征向量各自所属的视频被聚类为同一类型,可以实现对待聚类的所有视频的聚类。

在本实施例中,同时利用基于密度的聚类算法和社区聚类算法进行视频聚类,基于密度的聚类算法用于确保视频聚类具有较高的效率,社区聚类算法用于确保待聚类的每一个视频的特征向量均被聚类为相应的聚类结果中,以确保待聚类的每一个视频均被聚类,从而,兼顾视频聚类的效率和视频聚类的全面性。

请参考图2,其示出了本发明实施例提供的视频聚类方法的第二实施例的流程图。

步骤201,生成待聚类的所有视频中的每一个视频的特征向量。

步骤201的具体执行过程可以参考在第一实施例的步骤101中描述的生成待聚类的所有视频中的每一个视频的特征向量的过程。

步骤202,将待聚类的所有视频的特征向量作为所有待聚类的特征向量,以及执行聚类操作,以得到与所有待聚类的特征向量相对应的所有聚类结果并且确定每一个聚类结果的有效性。

在本实施例中,聚类操作包括:利用基于密度的聚类算法对所有待聚类的特征向量进行聚类,得到与所有待聚类的特征向量相对应的所有候选聚类结果;利用社区聚类算法基于所有待聚类的特征向量中的所有未聚类的特征向量和该所有候选聚类结果进行聚类,得到与所有待聚类的特征向量相对应的所有聚类结果,其中,未聚类的特征向量为不属于该所有候选聚类结果中的任意一个候选聚类结果的特征向量;对于与所有待聚类的特征向量相对应的所有聚类结果中的每一个聚类结果,对该聚类结果中的所有特征向量的标签进行聚合并且进行去重,得到该聚类结果对应的标签集合;基于该聚类结果对应的标签集合中的有效标签的数量,确定该聚类结果是否为有效的聚类结果。

本实施例中的利用基于密度的聚类算法和社区聚类算法对所有待聚类的特征向量进行聚类,得到与所有待聚类的特征向量相对应的所有聚类结果的过程可以参考第一实施例的步骤102描述的利用基于密度的聚类算法和社区聚类算法对所有待聚类的特征向量进行聚类,得到与所有待聚类的特征向量相对应的所有聚类结果的过程。

在得到与所有待聚类的特征向量相对应的所有聚类结果之后,可以确定得到的每一个聚类结果的有效性,对于每一个聚类结果,确定该聚类结果是否为有效的聚类结果。

在本实施例中,通过确定得到的每一个聚类结果是否为有效的聚类结果,可以排除无效的聚类结果,提升视频聚类的准确性。

在本实施例中,待聚类的特征向量的标签可以为待聚类的特征向量所属的视频的标题文本中的关键词。

对于每一个待聚类的特征向量,可以提取该待聚类的特征向量所属的视频的标题文本中的一个或多个关键词,提取的每一个关键字各自作为该待聚类的特征向量的一个标签,该待聚类的特征向量的标签的数量可以为一个或多个。

对于与所有待聚类的特征向量相对应的所有聚类结果中的每一个聚类结果,可以对该聚类结果中的所有特征向量的标签进行聚合,得到该聚类结果对应的原始标签集合,对该聚类结果对应的原始标签集合进行去重,去除该聚类结果对应的原始标签集合中的重复的标签,即对于原始标签集合中的相同的多个标签,仅保留该相同的多个标签中的一个标签,在进行去重之后,得到该聚类结果对应的标签集合。

例如,一个聚类结果包括:视频1的特征向量1、视频2的特征向量2、视频3的特征向量3。特征向量1具有标签1、标签2、标签3,特征向量2具有标签2、标签4,特征向量3具有标签1。在对该聚类结果的所有特征向量的标签进行聚合并且去重之后,得到的该聚类结果对应的标签集合包括:标签1、标签2、标签3、标签4。

在本实施例中,有效标签为具有的比例大于比例阈值的标签。

对于一个聚类结果对应的标签集合中的每一个标签,该标签的比例为该聚类结果中的具有该标签的特征向量的数量除该聚类结果中的特征向量的总数量。

对于与所有待聚类的特征向量相对应的所有聚类结果中的每一个聚类结果,可以基于该聚类结果对应的标签集合中的有效标签的数量,确定该聚类结果是否为有效的聚类结果。

例如,当该聚类结果对应的标签集合中的有效标签的数量不为0时,确定该聚类结果为有效的聚类结果。当该聚类结果对应的标签集合中的有效标签的数量为0时,确定该聚类结果为无效的聚类结果。

例如,当该聚类结果对应的标签集合中的有效标签的数量大于或等于数量阈值时,确定该聚类结果为有效的聚类结果,当该聚类结果对应的标签集合中的有效标签的数量小于数量阈值时,确定该聚类结果为无效的聚类结果。

以下以一个聚类结果为例,说明基于该聚类结果对应的标签集合中的有效标签的数量,确定该聚类结果是否为有效的聚类结果的过程:

可以计算该聚类结果对应的标签集合中的每一个标签的比例。对于该聚类结果对应的标签集合中的每一个标签,该标签的比例为该聚类结果中的具有该标签的特征向量的数量除该聚类结果中的特征向量的总数量的商。

例如,一个聚类结果包括:视频1的特征向量1、视频2的特征向量2、视频3的特征向量3。特征向量1具有标签1、标签2、标签3,特征向量2具有标签2、标签4,特征向量3具有标签1。

该聚类结果对应的标签集合包括:标签1、标签2、标签3、标签4。

标签1的比例为该聚类结果中的具有该标签的特征向量的数量即2除该聚类结果中的特征向量的总数量即3的商即2/3。

标签2的比例为该聚类结果中的具有该标签的特征向量的数量即2除该聚类结果中的特征向量的总数量即3的商即2/3。

标签3的比例为该聚类结果中的具有该标签的特征向量的数量即1除该聚类结果中的特征向量的总数量即3的商即1/3。

标签4的比例为该聚类结果中的具有该标签的特征向量的数量即1除该聚类结果中的特征向量的总数量即3的商即1/3。

假设比例阈值为1/3,标签1、标签2为有效标签。

假设对于每一个聚类结果,当该聚类结果对应的标签集合中的有效标签的数量不为0时,确定该聚类结果为有效的聚类结果。由于该聚类结果包括2个有效标签,可以确定该聚类结果为有效的聚类结果。

参考上述基于一个聚类结果对应的标签集合中的有效标签的数量,确定该聚类结果是否为有效的聚类结果的过程,可以确定每一个聚类结果是否为有效的聚类结果。

请参考图3,其示出了本发明实施例提供的视频聚类方法的第三实施例的流程图。

步骤301,生成待聚类的所有视频中的每一个视频的特征向量。

步骤301的具体执行过程可以参考在第一实施例的步骤101中描述的生成待聚类的所有视频中的每一个视频的特征向量的过程。

步骤302,将待聚类的所有视频的特征向量作为所有待聚类的特征向量,以及执行聚类操作,以得到与所有待聚类的特征向量相对应的所有聚类结果并且确定每一个聚类结果的有效性。

步骤302中的具体执行过程可以参考在第二实施例的步骤202描述的将待聚类的所有视频的特征向量作为所有待聚类的特征向量,以及执行聚类操作,以得到与所有待聚类的特征向量相对应的所有聚类结果并且确定每一个聚类结果的有效性的过程。

步骤303,当与所有待聚类的特征向量相对应的所有聚类结果所有聚类结果中包括至少一个无效的聚类结果时,继续执行至少一次聚类操作。

在本实施例中,当与所有待聚类的特征向量相对应的所有聚类结果包括至少一个无效的聚类结果时,可以重复地执行聚类操作,直至满足预设停止条件。

预设停止条件可以为继续执行的聚类操作的执行次数达到次数阈值或者针对的所有待聚类的特征向量的数量小于或等于数量阈值。

对于继续执行的至少一次聚类操作中的第一次执行的聚类操作,该次执行的聚类操作针对的所有待聚类的特征向量为在该次的上一次执行的聚类操作得到的所有无效的聚类结果中的所有特征向量。

继续执行的至少一次聚类操作中的第一次执行的聚类操作针对的所有待聚类的特征向量为通过步骤302得到的所有无效的聚类结果中的特征向量。

对于继续执行的至少一次聚类操作中的第一次执行的聚类操作,在该次执行的聚类操作执行完成之后,可以得到与该次执行的聚类操作针对的所有待聚类的特征向量相对应的所有聚类结果。

对于继续执行的至少一次聚类操作中的第一次执行的聚类操作,在该次执行的聚类操作执行完成之后,可以确定通过该次执行的聚类操作得到的每一个聚类结果是否为有效的聚类结果。确定通过该次执行的聚类操作得到的每一个聚类结果是否为有效的聚类结果可以参考在第二实施例的步骤202中描述的确定每一个聚类结果是否为有效的聚类结果的过程。

步骤304,对于通过执行多次聚类操作得到的每一个有效的聚类结果,将该有效的聚类结果与目标已有聚类结果进行合并或作为新的聚类结果。

在本实施例中,所有已有聚类结果可以为在本次视频聚类过程的上一次视频聚类过程中生成的所有聚类结果。

在本实施例中,在每一次视频聚类过程中,均可以执行步骤301-304,只是每一次视频聚类过程中执行的步骤301-304针对的视频不同,每一次视频聚类过程中执行的步骤301-304针对不同的视频的特征向量进行聚类。

可以在每一次增加一定数量的未被聚类的视频时,通过执行步骤301-304来针对新增的一定数量的未被聚类的视频的特征向量进行聚类,以对新增的一定数量的未被聚类的视频进行聚类。在每一次视频聚类过程中,新增的一定数量的未被聚类的视频作为步骤301中的待聚类的所有视频。同时利用基于密度的聚类算法和社区聚类算法针对新增的一定数量的未被聚类的视频进行视频聚类。基于密度的聚类算法用于确保视频聚类具有较高的效率,社区聚类算法用于确保新增的一定数量的未被聚类的视频均被聚类到相应的聚类结果中,以确保新增的一定数量的未被聚类的视频均被聚类。从而,每一次增加一定数量的未被聚类的视频,对新增的一定数量的未被聚类的视频进行视频聚类,均兼顾视频聚类的效率和视频聚类的全面性。

在本实施例中,在本次视频聚类过程中执行的步骤304执行完成之后,所有通过合并得到的聚类结果和/或新的聚类结果一起作为下一次视频聚类过程中所有已有聚类结果。

在本实施例中,若本次视频聚类过程为第一次视频聚类过程,则不存在已有聚类结果,在本次视频聚类过程中通过执行多次聚类操作得到的每一个有效的聚类结果直接各自作为一个新的聚类结果。

在本实施例中,目标已有聚类结果为所有已有聚类结果中的、可以与通过执行多次聚类操作得到的所有有效的聚类结果中的至少一个有效的聚类结果进行合并的已有聚类结果。

在本实施例中,可以对于通过执行多次聚类操作得到的每一个有效的聚类结果,基于该有效的聚类结果对应的标签集合中的有效标签和每一个已有聚类结果对应的标签集合,确定所有已有聚类结果中是否存在可以与该有效的聚类结果合并的目标已有聚类结果;若是,将该有效的聚类结果与该目标已有聚类结果进行合并;若否,将该有效的聚类结果作为新的聚类结果。

以下以一个有效的聚类结果为例,说明基于该有效的聚类结果对应的标签集合中的有效标签和每一个已有聚类结果对应的标签集合,确定所有已有聚类结果中是否存在可以与该有效的聚类结果合并的目标已有聚类结果的过程:

对于每一个已有聚类结果,确定该已有聚类结果对应的有效标签集合包括的该有效的聚类结果对应的标签集合中的有效标签的数量。

当确定所有已有聚类结果中存在至少一个包括的该有效的聚类结果对应的标签集合中的有效标签的数量大于数量阈值的已有聚类结果时,可以将该至少一个已有聚类结果中的、包括的该有效的聚类结果对应的标签集合中的有效标签的数量最多的已有聚类结果作为可以与该有效的聚类结果进行合并的目标已有聚类结果。

参考上述确定所有已有聚类结果中是否存在可以与一个有效的聚类结果合并的目标已有聚类结果的过程,对于通过执行多次聚类操作得到的每一个有效的聚类结果,确定所有已有聚类结果中是否存在可以与该有效的聚类结果合并的目标已有聚类结果。

在本实施例中,当一个目标已有聚类结果仅可以与一个有效的聚类结果进行合并时,将该目标已有聚类结果与该有效的聚类结果进行合并。

在本实施例中,当一个目标已有聚类结果可以与多个有效的聚类结果进行合并时,将该目标已有聚类结果与该多个有效的聚类结果一起进行合并。

在本实施例中,每一个已有聚类结果的类型标识和每一个已有聚类结果对应的标签集合存储在聚类列表中。

若本次视频聚类过程为第一次视频聚类过程,则不存在已有聚类结果,聚类列表为空。

若本次视频聚类过程不是第一次视频聚类过程,所有已有聚类结果可以为在本次视频聚类过程的上一次视频聚类过程中生成的所有聚类结果。聚类列表中可以存储在本次视频聚类过程的上一次视频聚类过程中生成的所有聚类结果的类型标识和上一次视频聚类过程中生成的所有聚类结果中每一个聚类结果对应的标签集合。

在本实施例中,可以对于通过执行多次聚类操作得到的所有有效的聚类结果中的每一个作为新的聚类结果的有效的聚类结果,分配该有效的聚类结果的类型标识;将该有效的聚类结果的类型标识和该有效的聚类结果对应的标签集合存储在聚类列表中。

在本实施例中,在本次视频聚类过程中每一个作为新的聚类结果有效的聚类结果均作为下一次视频聚类过程中的已有聚类结果。

在本实施例中,可以对于所有已有聚类结果中的每一个目标已有聚类结果,将与该目标已有聚类结果相关的目标合并聚类结果对应的标签集合存储在聚类列表中,以及将该目标已有聚类结果的类型标识作为该目标合并聚类结果的类型标识。

对于所有已有聚类结果中的每一个目标已有聚类结果,与该目标已有聚类结果相关的目标合并聚类结果通过将该目标已有聚类结果与可以与该目标已有聚类结果合并的所有有效的聚类结果进行合并得到。

对于所有已有聚类结果中的每一个目标已有聚类结果,与该目标已有聚类结果相关的目标合并聚类结果对应的标签集合通过对与该目标已有聚类结果相关的目标合并聚类结果中的所有特征向量的标签进行聚合并且进行去重得到。

对于所有已有聚类结果中的每一个目标已有聚类结果,该目标已有聚类结果对应的标签集合已经存储在聚类列表中,当将与该目标已有聚类结果相关的目标合并聚类结果对应的标签集合存储在聚类列表中时,将该目标合并聚类结果对应的标签集合中的、未出现在该目标已有聚类结果对应的标签集合中的标签加入到聚类列表中即可。

在本实施例中,在将每一个新的聚类结果的类型标识、每一个新的聚类结果对应的标签集合、每一个目标合并聚类结果对应的标签集合存储在聚类列表中之后,聚类列表包括在本次视频聚类过程中最终生成的每一个聚类结果的类型标识和最终生成的每一个聚类结果对应的标签集合,通过聚类列表可以反映待聚类的特征向量的聚类情况。由于对于每一个聚类结果,该聚类结果中的每一个待聚类的特征向量各自所属的视频被聚类为同一类型,因此,通过聚类列表可以进一步反映视频聚类的情况,从而,可以利用聚类列表,方便地对视频聚类效果进行评测。

请参考图4,其示出了一次视频聚类过程的一个示例性流程图。

在对所有待聚类的视频的特征向量进行聚类之前,加载该次视频聚类过程针对的所有待聚类的视频的特征向量和聚类列表。若该次视频聚类过程为第一次视频聚类过程,则不存在已有聚类结果,聚类列表为空,若该次视频聚类过程不是第一次视频聚类过程,所有已有聚类结果可以为在该次视频聚类过程的上一次视频聚类过程中生成的所有聚类结果。

在本次视频聚类过程中,第一次执行的聚类操作针对的所有所有待聚类的特征向量为所有待聚类的视频。在第一次执行的聚类操作中,首先通过dbscan算法对第一次执行的聚类操作针对的所有待聚类的特征向量进行聚类。然后,基于所有待聚类的特征向量中的所有未聚类的特征向量和通过dbscan算法得到的所有候选聚类结果,通过lpa算法再次聚类,得到与第一次执行的聚类操作针对的所有待聚类的特征向量相对应的所有聚类结果。最后,确定与第一次执行的聚类操作针对的所有待聚类的特征向量相对应的所有聚类结果中的每一个聚类结果是否为有效的聚类结果。

当与第一次执行的聚类操作针对的所有待聚类的特征向量相对应的所有聚类结果中包括至少一个无效的聚类结果时,继续执行第二次聚类操作,第二次执行的聚类操作针对的所有待聚类的特征向量为该至少一个无效的聚类结果中的所有特征向量。在第二次执行的聚类操作中,通过dbscan算法和lpa算法,针对第二次执行的聚类操作针对的所有待聚类的特征向量进行聚类,得到与第二次执行的聚类操作针对的所有待聚类的特征向量相对应的所有聚类结果。继续执行聚类操作的次数可以为多次,直至满足预设停止条件。

在执行多次聚类操作之后,对于通过执行多次聚类操作得到的每一个有效的聚类结果,将该有效的聚类结果与目标已有聚类结果进行合并或作为新的聚类结果,更新聚类列表。更新聚类列表包括将每一个新的聚类结果的类型标识、每一个新的聚类结果对应的标签集合、每一个目标合并聚类结果对应的标签集合存储在聚类列表中。

请参考图5,其示出了本发明实施例提供的视频聚类装置的结构示意图。装置中的各个单元或子单元执行的操作的具体实现方式可以上述参考方法实施例中描述的相应的操作的具体实现方式。

如图5所示,本发明实施例的提供的视频聚类装置包括:生成单元501,聚类单元502。

生成单元501被配置为生成待聚类的所有视频中的每一个视频的特征向量;

聚类单元502被配置为将待聚类的所有视频的特征向量作为所有待聚类的特征向量,以及执行聚类操作,所述聚类操作包括:利用基于密度的聚类算法对所有待聚类的特征向量进行聚类,得到与所有待聚类的特征向量相对应的所有候选聚类结果;利用社区聚类算法基于所有待聚类的特征向量中的所有未聚类的特征向量和所述所有候选聚类结果进行聚类,得到与所有待聚类的特征向量相对应的所有聚类结果,其中,所述未聚类的特征向量为不属于所述所有候选聚类结果中的任意一个候选聚类结果的特征向量。

在一些实施例中,所述聚类操作还包括:

对于与所有待聚类的特征向量相对应的所有聚类结果中的每一个聚类结果,对所述聚类结果中的所有特征向量的标签进行聚合并且进行去重,得到所述聚类结果对应的标签集合;基于所述聚类结果对应的标签集合中的有效标签的数量,确定所述聚类结果是否为有效的聚类结果。

在一些实施例中,视频聚类装置还包括:

继续聚类单元503,被配置为当与所有待聚类的特征向量相对应的所有聚类结果包括至少一个无效的聚类结果时,继续执行至少一次聚类操作,其中,对于继续执行的至少一次聚类操作中的每一次执行的聚类操作,该次执行的聚类操作针对的所有待聚类的特征向量为通过该次的上一次执行的聚类操作得到的所有无效的聚类结果中的所有特征向量。

在一些实施例中,所述装置还包括:

聚类结果扩充单元504,被配置为对于通过执行至少一次聚类操作得到的所有有效的聚类结果中的每一个有效的聚类结果,基于所述有效的聚类结果对应的标签集合中的有效标签和每一个已有聚类结果对应的标签集合,确定所有已有聚类结果中是否存在可以与所述有效的聚类结果合并的目标已有聚类结果;若是,将所述有效的聚类结果与所述目标已有聚类结果进行合并;若否,将所述有效的聚类结果作为新的聚类结果。

在一些实施例中,每一个已有聚类结果的类型标识和每一个已有聚类结果对应的标签集合存储在聚类列表中;所述装置还包括:

聚类列表更新单元505,被配置为:

对于所述所有有效的聚类结果中的每一个作为新的聚类结果的有效的聚类结果,分配所述有效的聚类结果的类型标识;将所述有效的聚类结果的类型标识和所述有效的聚类结果对应的标签集合存储在聚类列表中;

对于所有已有聚类结果中的每一个目标已有聚类结果,将与所述目标已有聚类结果相关的目标合并聚类结果对应的标签集合存储在聚类列表中,以及将所述目标已有聚类结果的类型标识作为所述目标合并聚类结果的类型标识,其中,目标已有聚类结果为可以与所述所有有效的聚类结果中的至少一个有效的聚类结果进行合并的已有聚类结果,与所述目标已有聚类结果相关的目标合并聚类结果通过将所述目标已有聚类结果与至少一个有效的聚类结果进行合并得到,所述目标合并聚类结果对应的标签集合通过对所述目标合并聚类结果中的所有特征向量的标签进行聚合并且进行去重。

本发明实施例还提供了一种服务器,如图所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603利用通信总线604完成相互间的通信,

存储器603,用于存放计算机程序;

处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:

生成待聚类的所有视频中的每一个视频的特征向量;

将待聚类的所有视频的特征向量作为所有待聚类的特征向量,以及执行聚类操作,所述聚类操作包括:

利用基于密度的聚类算法对所有待聚类的特征向量进行聚类,得到与所有待聚类的特征向量相对应的所有候选聚类结果;

利用社区聚类算法基于所有待聚类的特征向量中的所有未聚类的特征向量和所述所有候选聚类结果进行聚类,得到与所有待聚类的特征向量相对应的所有聚类结果,其中,所述未聚类的特征向量为不属于所述所有候选聚类结果中的任意一个候选聚类结果的特征向量。

上述服务器提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述服务器与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,简称ram),也可以包括非易失性存储器(non-volatilememory),例如所有磁盘存储器。可选的,存储器还可以是所有位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,简称cpu)、网络处理器(networkprocessor,简称np)等;还可以是数字信号处理器(digitalsignalprocessing,简称dsp)、专用集成电路(applicationspecificintegratedcircuit,简称asic)、现场可编程门阵列(field-programmablegatearray,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的方法。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的方法。

在上述实施例中,可以全部或部分地利用软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心利用有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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