一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

聚类中心确定方法、装置和设备及计算机存储介质与流程

2021-11-26 22:09:00 来源:中国专利 TAG:


1.本技术涉及计算机技术领域,尤其涉及人工智能(artificial intelligence,ai)技术领域,提供一种聚类中心确定方法、装置和设备及计算机存储介质。


背景技术:

2.大规模图像检索常依赖于分桶检索,分桶检索主要是把原始大量数据先分成多个不重叠的数据子集合,每个数据子集合属于一个分桶,检索时只要从与目标样本最匹配的桶中寻找匹配样本即可,以提升检索效率。一般而言,分桶采用聚类的方式产生,即对于100万样本,若分成1万桶,则聚类中心为1万。分桶的效果对检索最终的结果影响极大,理想情况下,期望具有相似特征的样本能分到同一个桶,以使得某个桶的召回与真实样本相似。
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.基于获得的各个图像样本组各自对应的三元组损失值,获得所述特征表示损失值。
30.可选的,所述聚类子单元,具体用于:
31.从所述多个特征表示向量中,选取所述多个图像样本组中第一图像样本与第三图像样本对应的至少一个特征表示向量;
32.对所述至少一个特征表示向量进行聚类。
33.可选的,所述聚类子单元,具体用于:
34.针对所述多个特征表示向量,分别执行以下操作:
35.将所述多个特征表示向量中的一个特征表示向量,分别映射到各个图像类别,获得相应的图像类别向量;其中,所述图像类别向量中的每个元素对应于一个图像类别,每个元素的取值表征所述一个特征表示向量对应的图像样本是否属于相应图像类别;
36.将所述图像类别向量,与上一轮聚类中针对所述一个特征表示向量对应的图像样本确定的图像类别向量进行比较,获得比较结果;
37.基于针对所述多个特征表示向量获得的多个比较结果,确定所述聚类损失值。
38.可选的,所述聚类子单元,具体用于:
39.从所述多个特征表示向量中,选取所述多个图像样本组中第一图像样本与第三图像样本对应的至少一个特征表示向量;
40.基于针对所述多个特征表示向量获得的多个比较结果,确定所述聚类损失值,包括:
41.基于所述至少一个特征表示向量对应的比较结果,确定所述聚类损失值。
42.可选的,所述聚类子单元,具体用于:
43.分别确定所述一个特征表示向量,与本轮聚类确定的各个聚类中心向量之间的相似度;
44.基于获得的各个相似度,分别确定所述一个特征表示向量对应的图像样本是否属于相应的聚类中心向量表征的图像类别,获得确定结果;
45.基于所述确定结果,获得所述图像类别向量。
46.可选的,所述模型调整子单元,还用于:
47.基于所述特征表示损失值与上一轮聚类的特征表示损失值之间的差值,确定所述聚类损失值的权重值;其中,所述权重值与所述差值呈负相关;
48.基于特征表示损失值、所述聚类损失值以及所述权重值,确定所述图像聚类模型的模型总损失值;
49.基于所述模型总损失值确定所述图像聚类模型是否收敛。
50.可选的,所述模型调整子单元,还用于:
51.对所述特征表示损失值和所述聚类损失值进行尺度变换,使得所述特征表示损失值和所述聚类损失值的度量尺度相同。
52.可选的,所述特征编码子单元,还用于:
53.在基于所述特征表示损失值确定所述特征编码子模型未收敛时,对所述特征编码子模型进行参数调整;
54.对调整后的特征编码子模型进行至少一次迭代更新,直至本轮聚类满足设定条件为止;其中,在每一次迭代更新时,基于所述特征编码子模型对各个图像样本分别进行特征编码,基于编码获得的多个特征表示向量确定特征表示损失值,并基于所述特征表示损失值对所述特征编码子模型进行参数调整,且所述设定条件包括本轮聚类的特征编码的次数达到设定次数阈值,或者,所述特征编码子模型满足收敛条件;
55.则所述聚类子单元,具体用于:
56.基于本轮聚类中最后一次迭代更新后的特征编码子模型编码获得的多个特征表示向量进行聚类。
57.可选的,所述装置还包括视频分桶单元和视频检索单元,
58.所述视频分桶单元,用于针对视频数据库中的各个视频,分别执行以下操作:基于所述多个聚类中心向量,分别确定所述各个视频中的一个视频包括的各个图像帧所属的图像类别,并根据确定的各个图像类别将所述一个视频关联至各个图像类别;
59.所述视频检索单元,用于接收目标用户发送的视频检索请求,所述视频检索请求携带目标视频;基于所述多个聚类中心向量,确定所述目标视频包括的各个图像帧所属的
图像类别,并将确定的各个图像类别关联的视频确定为候选匹配视频;从所述候选匹配视频中选取向所述目标用户推荐的目标匹配视频。
60.一方面,提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一种方法的步骤。
61.一方面,提供一种计算机存储介质,其上存储有计算机程序指令,该计算机程序指令被处理器执行时实现上述任一种方法的步骤。
62.一方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一种方法的步骤。
63.本技术实施例的聚类中心确定方法中,构建了一种基于端到端的图像聚类模型,在采用图像聚类模型对图像样本集合进行聚类时,把特征学习与聚类过程结合到一起,即在进行特征学习的同时进行无监督聚类,从而特征学习与聚类相互促进优化,换句话说,在特征学习过程中,在一定程度上可以学习到之前聚类的分布特性,进而学习得到的特征表示向量也会趋于一定的分布特性,提升特征学习的准确性,此外,在此基础上继续聚类可以更大程度保持新聚类与上一次聚类的相似性,使得聚类到同一类别的特征都相互更接近,相应的,最终获得的聚类中心也就更为准确,从而聚类效果更佳。
附图说明
64.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
65.图1为本技术实施例提供的应用场景示意图;
66.图2为本技术实施例提供的聚类中心确定方法的流程示意图;
67.图3为本技术实施例提供的图像聚类模型的模型结构图;
68.图4为本技术实施例提供的聚类的一种流程示意图;
69.图5为本技术实施例提供的特征编码子模型的结构示意图;
70.图6为本技术实施例提供的图像类别向量的示意图;
71.图7为本技术实施例提供的聚类流程的另一种示意图;
72.图8为本技术实施例提供的以视频推荐场景为例的应用流程示意图;
73.图9为本技术实施例提供的视频检索示意图;
74.图10为本技术实施例提供的聚类中心确定装置的一种结构示意图;
75.图11为本技术实施例提供的计算机设备的一种结构示意图。
具体实施方式
76.为使本技术的目的、技术方案和优点更加清楚明白,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人
员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。在不冲突的情况下,本技术中的实施例及实施例中的特征可以相互任意组合。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
77.为便于理解本技术实施例提供的技术方案,这里先对本技术实施例使用的一些关键名词进行解释:
78.图像类别识别:不考虑图像的特定实例,仅考虑图像的类别(如人、狗、猫、鸟等)进行的识别并给出图像所属类别。一个典型的例子是大型通用物体识别开源数据集imagenet中的识别任务,识别出某个物体是1000个类别中的哪一个。
79.imagenet预训练模型:基于大型通用物体识别开源数据集imagenet训练一个深度学习网络模型,得到该模型的参数权重即为imagenet预训练模型。
80.openimage预训练模型:基于开源数据集openimage训练一个深度学习网络模型,得到该模型的参数权重即为openimage预训练模型。
81.分桶检索:把原始大量数据先分成多个不重叠的数据子集合,每个数据子集合属于一个分桶,检索时只要从与目标样本最匹配的桶中寻找匹配样本即可,故分桶检索可提升检索效率。分桶检索可应用于图像检索中,具体而言,可按照类别将图像数据库中的所有图像进行分桶划分,一个分桶对应于一个类别,那么在图像检索时,将待检索图像与各个分桶进行粗匹配,进而在匹配度最佳的分桶中进行精匹配,从而提升图像识别速度。此外,分桶检索还可以应用于视频分桶检索中,具体来说,首先对数据库中所有视频的每个图像帧,找到最近的聚类中心作为图像的所属分桶,这样得到每个视频所属的多个分桶,进而在检索某个视频时,对该视频每帧图像,分别找到其最近的聚类中心作为其所属分桶,并把这些所属分桶中的数据库视频作为粗匹配视频,进而在粗匹配视频中进行进一步的精匹配,视频检索速度更快。
82.图像聚类:将物理或抽象对象的集合划分为由类似的对象组成的多个类的过程被称为聚类。本技术实施例的聚类主要是指图像聚类,将一个完整的图像集合划分为多个图像子集合,也就是上面所述的各个分桶,由聚类所生成的图像子集合是多个图像的集合,这些图像与同一个图像子集合中的图像彼此相似,与其他图像子集合中的图像相异。一般而言,聚类方法可以包括k

均值(k

means)算法、k

中心点(k

medoids)算法、划分方法(如clarans算法)以及基于密度的聚类方法(dbscan)等。
83.聚类中心向量:在图像聚类分析中的一个特殊图像样本,可用来代表某一图像类别,其他图像样本通过与它计算距离来决定是否属于该图像类别。
84.三元组损失(triplet loss):triplet loss是深度学习的一种损失函数,在训练目标是得到样本的特征表示向量(embedding)任务中,triplet loss也经常使用,比如图像的embedding。triplet loss的输入为三元组,一个三元组包括锚(anchor,a)示例、正(positive,p)示例、负(negative,n)示例,通过优化锚示例与正示例的距离小于锚示例与负示例的距离,实现样本之间的相似性计算。
85.在图像特征学习中则一个三元组包括三个图像样本,即图像样本a、图像样本p和图像样本n,图像样本a和图像样本p为正样本,即图像样本a和图像样本p为相似图像样本或者为同一类别图像样本,图像样本a和图像样本n为负样本,即图像样本a和图像样本p为相
似度较低的图像样本或者为不同类别图像样本,最终的优化目标是拉近图像样本a和图像样本p的embedding之间的距离,即使得图像样本a和图像样本p之间的第一相似度更高,拉远图像样本a和图像样本n的embedding之间的距离,即使得图像样本a和图像样本n之间的第二相似度更低,即使得正样本与负样本的距离差尽量大,一个三元组的三元组损失值用于表征第一相似度与第二相似度之间的差异程度,因而三元组损失值的目标函数定义如下:
86.l=max(d(a,p)

d(a,n) margin,0)
87.其中,l为三元组损失值,d(a,p)表征图像样本a和图像样本p之间的距离,d(a,n)表征图像样本a和图像样本n之间的距离,margin是一个大于0的常数。
88.目前在进行图像聚类时,通常是基于已学习的图像表示进行聚类来获得聚类中心,因而图像表示的准确性直接决定了聚类效果的好坏,当特征学习不佳时极容易造成分桶相似度不足,进而影响后续的检索准确性。
89.考虑到相关技术中产生上述问题的根本原因在于相关技术中特征学习阶段与聚类阶段是相对独立的,即先特征学习再聚类,从而两个阶段之间相互没有影响,二阶段独立的方式割裂了聚类与特征学习的梯度传递,进而引起因特征学习不好造成聚类相似度不足影响后续检索的问题,同时,特征学习阶段没有针对性学习全局样本的分布,容易造成全局样本特征不遵循相似度分布,例如属于同一类别的样本的相似度却较低。因此,为了解决上述问题,可以将特征学习与聚类过程进行结合,使得特征学习能够融入聚类结果,使得学习得到的特征在一定程度上遵循相似度分布,更为准确,进而在进行聚类时也能够更加准确的进行聚类。
90.鉴于此,本技术实施例提供一种聚类中心确定方法,在该方法中,构建了一种基于端到端的图像聚类模型,在采用图像聚类模型对图像样本集合进行聚类时,把特征学习与聚类过程结合到一起,即在进行特征学习的同时进行无监督聚类,从而特征学习与聚类相互促进优化,换句话说,在特征学习过程中,在一定程度上可以学习到之前聚类的分布特性,进而学习得到的特征表示向量也会趋于一定的分布特性,提升特征学习的准确性,此外,在此基础上继续聚类可以更大程度保持新聚类与上一次聚类的相似性,使得聚类到同一类别的特征都相互更接近,相应的,最终获得的聚类中心也就更为准确,从而聚类效果更佳。
91.同时,由于基于聚类结果的调整可能使得特征学习的结果产生较大偏离,因而本技术实施例设计了动态loss调节以保证embedding的稳定性,即根据embedding学习情况来调节聚类权重,最终使得学习到的embedding在相似度聚类中效果更好。
92.在介绍完本技术实施例的设计思想之后,下面对本技术实施例的技术方案能够适用的应用场景做一些简单介绍,需要说明的是,以下介绍的应用场景仅用于说明本技术实施例而非限定。在具体实施过程中,可以根据实际需要灵活地应用本技术实施例提供的技术方案。
93.本技术实施例提供的方案可以适用于大多数需要进行图像聚类的场景中,例如图像检索或者视频场景中。如图1所示,为本技术实施例提供的一种应用场景示意图,在该场景中,可以包括服务器10和终端20。
94.其中,服务器10可以是独立的物理服务器,也可以是多个物理服务器构成的服务
器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器,但并不局限于此。
95.服务器10可以包括一个或多个处理器101、存储器102以及与其他设备交互的i/o接口103等。此外,服务器10还可以配置数据库104,数据库104可以用于存储本技术实施例提供的方案中涉及到的模型数据、接收到的目标视频以及视频分桶数据或者图像分桶数据等数据。其中,服务器10的存储器102中可以存储本技术实施例提供的聚类中心确定方法的程序指令,这些程序指令被处理器101执行时能够用以实现本技术实施例提供的聚类中心确定方法的步骤,以获取图像聚类中心向量以及视频分桶检索等。
96.终端20为任意能够提供输入和搜索功能界面的终端设备,例如可以为手机、平板电脑(pad)、台式电脑、笔记本电脑、智能电视或者可穿戴智能设备等。在终端20中,可以安装有可以提供输入和搜索功能界面的应用,如图像检索应用或者视频应用,相应的,服务器10则可以为图像检索服务器或者视频应用服务器。本技术实施例涉及的应用可以是软件客户端,也可以是浏览器、小程序等客户端,服务器10则是与软件或是小程序等相对应的后台服务器,不限制客户端的具体类型。需要说明的是,当应用为浏览器时,具体可以通过浏览器打开的网页页面实现输入和搜索功能,那么服务器10则是与该网页对应的后台服务器。
97.当服务器10为图像检索服务器时,服务器10可以采用本技术实施例提供的聚类中心确定方法对数据库104中存储的图像进行特征学习获得相应的特征表示向量,同时对各个图像进行聚类,将所有图像划分至相应分桶中,并获得每个分桶所对应的聚类中心向量。进而,用户在进行图像检索时,用户可以在终端20的检索界面中输入待检索图像,进而向服务器10发起检索请求,相应的,服务器10可以接收到用户输入的待检索图像,并将待检索图像与各个分桶对应的聚类中心向量进行匹配,以确定匹配度最高的分桶,进而在该分桶中进行图像的进一步检索,以向用户返回在该分桶中精确匹配获得的图像。
98.当服务器10为视频应用服务器时,服务器10可以将数据库104中的各个视频划分至各个分桶中,具体的,可以将各个视频通过其包含的图像帧进行表示,进而可以采用本技术实施例提供的聚类中心确定方法对所有的视频的图像帧进行特征学习的同时,对各个图像帧进行聚类,将各个图像帧划分至相应分桶中,并获得每个分桶所对应的聚类中心向量,进而将每个视频划分至其所包括的图像帧所属的分桶。进而,用户在进行视频检索时,用户可以在终端20的检索界面中输入待检索视频,进而向服务器10发起检索请求,相应的,服务器10可以接收到用户输入的待检索视频,并将待检索视频所包含的各个图像帧,分别与各个分桶对应的聚类中心向量进行匹配,以确定各个图像帧匹配度最高的分桶,进而把这些分桶中的视频召回,得到召回的视频,进一步在召回视频中进行精确匹配,以向用户返回精确匹配获得的视频。
99.服务器10和终端20之间可以通过一个或者多个网络30进行直接或间接的通信连接。该网络30可以是有线网络,也可以是无线网络,例如无线网络可以是移动蜂窝网络,或者可以是无线保真(wireless

fidelity,wifi)网络,当然还可以是其他可能的网络,本技术实施例对此不做限制。
100.当然,本技术实施例提供的方法并不限用于图1所示的应用场景中,还可以用于其他可能的应用场景,本技术实施例并不进行限制。对于图1所示的应用场景的各个设备所能
实现的功能将在后续的方法实施例中一并进行描述,在此先不过多赘述。下面,将先对本技术实施例涉及的技术进行简单介绍。
101.人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。
102.人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
103.计算机视觉技术(computer vision,cv)计算机视觉是一门研究如何使机器“看”的科学,更进一步的说,就是指用摄影机和电脑代替人眼对目标进行识别、跟踪和测量等机器视觉,并进一步做图形处理,使电脑处理成为更适合人眼观察或传送给仪器检测的图像。作为一个科学学科,计算机视觉研究相关的理论和技术,试图建立能够从图像或者多维数据中获取信息的人工智能系统。计算机视觉技术通常包括图像处理、图像识别、图像语义理解、图像检索、ocr、视频处理、视频语义理解、视频内容/行为识别、三维物体重建、3d技术、虚拟现实、增强现实、同步定位与地图构建等技术,还包括常见的人脸识别、指纹识别等生物特征识别技术。
104.机器学习(machine learning,ml)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。
105.随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理、智能音箱、智能营销、无人驾驶、自动驾驶、无人机、机器人、智能医疗、智能客服等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。
106.本技术实施例提供的方案涉及人工智能的计算机视觉和机器学习等技术,具体而言,通过计算机视觉技术进行图像处理,通过机器学习技术对图像聚类模型进行训练。具体通过后续实施例进行说明。
107.请参见图2,为本技术实施例提供的聚类中心确定方法的流程示意图,该方法可以通过图1中的服务器10或者终端20执行,也可以由终端20和服务器10共同执行,在本技术实施例中,具体以该方法由服务器10执行为例进行介绍,该方法的流程介绍如下。
108.步骤201:获取图像样本集合。
109.本技术实施例中,图像样本集合包括多个图像样本,例如在图像检索场景中,图像样本集合可以包括某个图像数据库中的图像,或者,在视频检索场景中,图像样本集合可以包括视频数据库中各个视频所包括的图像帧。
110.步骤202:基于图像样本集合,采用图像聚类模型进行多轮聚类,直到满足预设的收敛条件为止。
111.参见图3所示,为本技术实施例提供的图像聚类模型的模型结构图,在图像聚类模型中,具体可以包括特征编码子模型和聚类子模型。由于该模型的具体执行过程将在后续的内容详细介绍,因此在此先不过多赘述。
112.本技术实施例中,一轮聚类中可以包括以下操作:
113.对从图像样本集合中抽取的多个图像样本分别进行特征编码,基于编码结果获得相应的多个特征表示向量,以及确定特征表示损失值;并,对多个特征表示向量进行聚类,并基于聚类结果确定聚类损失值;进而,基于特征表示损失值和聚类损失值确定图像聚类模型是否收敛,当确定图像聚类模型未收敛时,则对图像聚类模型进行参数调整,以进入下一轮聚类过程。
114.步骤203:输出最后一轮聚类获得的聚类结果包含的多个聚类中心向量,一个聚类中心向量对应一个图像类别。
115.本技术实施例中,当图像聚类模型满足预设的收敛条件时,则聚类完成,即将图像样本集合中的各个图像样本划分至各个类别中,相应的,可根据聚类结果中能够表征各个类别的特征表示向量作为每个类别的聚类中心向量,由此可获得多个聚类中心向量,一个聚类中心向量对应一个图像类别,该聚类中心向量可用于后续的图像检索或者视频检索应用中。
116.下面,对图像聚类模型聚类的具体过程进行介绍。
117.本技术实施例中,图像聚类模型进行聚类的过程实质上可理解为对图像聚类模型进行训练的过程,在图像聚类模型聚类完成的同时,图像聚类模型也就满足收敛条件,而在对图像聚类模型的训练过程中,需要多次训练过程使得图像聚类模型逐渐趋于收敛,而每一次训练过程即一轮聚类过程类似,因此下面主要以一轮聚类为例进行介绍。
118.参见图4所示,为图像聚类模型聚类的流程示意图。
119.步骤401:基于图像样本集合构造多个图像样本组,每个图像样本组包括至少两个图像样本,以及包括至少两个图像样本之间的标注相似度。
120.本技术实施例中,构造的图像样本组主要用于特征学习过程,基于所采用的特征编码子模型的不同,可以构造不同的图像样本组。例如,当特征编码子模型为基于有监督预测的模型时,则构造的每个图像样本组可以包括至少两个图像样本,且每个图像样本组包括至少两个图像样本,以及包括至少两个图像样本之间的标注相似度。
121.例如,特征编码子模型还可以为基于样本相似度预测的模型,则每个图像样本组可以包括两个图像样本,且针对每个图像样本组进行标签标注,标签表明每个图像样本组包括的两个图像样本为相似样本或者不相似样本,进而基于标签进行有监督特征学习。
122.或者,特征编码子模型还可以为基于triplet loss的模型时,则构造的每个图像样本组为一个三元组,三元组为用于embedding训练的标注数据三元组,三元组中分为(a,p,n),分别表示anchor图、positive图、negative图,其中a和p是相似图或者同类别图,a和n为不相似图或者不同类别图,在进行图像聚类模型的训练之前需要标注出这样的三元组。
123.本技术实施例中,图像样本组中的图像样本即用于embedding学习,也参与聚类。例如,图像样本组为三元组时,在每一轮聚类时,由于a、p、n三个样本中a和p属于同一类别,
n属于不同类别,如果a和p也参与聚类loss计算,那么a、p所属类别的采样量就是n所属的2倍了,则会使得头部类别因样本数量过多造成n所在的类别学习不均衡,因此,可以选取每个三元组中的a、n参与聚类的loss计算,或者p、n参与聚类的loss计算,以均衡正负样本聚类loss,避免头部类别因样本数量过多造成类别学习不均衡。
124.步骤402:对各个图像样本分别进行特征编码,基于编码结果获得相应的多个特征表示向量。
125.本技术实施例中,参见图3所示,在每一轮聚类时,将参与本轮聚类的多个图像样本组输入至图像聚类模型中。其中,参与本轮聚类的多个图像样本组所包括的图像样本可以包括图像样本集合中的所有图像样本,也可以是从图像样本集合中选取得到的。若需要从图像样本集合中进行选取,可以基于设定的选取数量从图像样本集合随机进行选取,也可按照设定的选取规则从图像样本集合中进行选取。
126.具体的,特征编码所使用的特征编码子模型可以为任意可以编码得到特征表示向量的模型,例如可以采用卷积神经网络(convolutional neural networks,cnn)或者残差网络(residual network,resnet),如基于resnet101、resnet34、densenet、mobilenet或者googlenet等基础embedding模型的特征编码子模型,当然,也可以采用其他可能的模型结构,本技术实施例对此不做限制。
127.参见图5所示,为本技术实施例提供的一种特征编码子模型的结构示意图。其中,特征编码子模型可以包括基础特征提取层和特征压缩层,基础特征提取层对各个图像样本分别进行至少一次基础特征提取,获得相应的基础特征向量,进而特征压缩层分别对获得的各个基础特征向量进行特征压缩,获得各个图像样本各自对应的特征表示向量。
128.本技术实施例中,基础特征提取层可以采用任意可进行图像基础特征提取的模型,例如resnet101。
129.在实际应用时,为了提升图像聚类模型的收敛速度,可以采用经过预训练的基础特征提取模型,即可以将经过预训练的基础特征提取模型的基础特征参数应用到本技术实施例提供的图像聚类模型中,参见图5所示,则是以基础特征提取层采用resnet101为例示出的结构示意。
130.如表1所示,为采用resnet101为例的基础特征提取层的结构参数。
131.其中,卷积层1输出的特征图大小为300x500,卷积层1的卷积核大小为7x7,通道数为64,卷积步长(stride)为2;卷积层2最终输出的特征图大小为150x250,卷积层2包括一个大小为3x3且步长为2的最大池化层,还包括3种大小的卷积核,分别为大小为1x1,通道数为64的卷积核、大小为3x3,通道数为64的卷积核以及大小为1x1,通道数为256的卷积核,后续卷积层3/4和5则依次类推。
[0132][0133]
表1
[0134]
本技术实施例中,上述基础特征提取层的参数初始化,如上述表1中的conv1~conv5可以采用imagenet预训练模型的模型参数,也就是在imagenet数据集上预训练的resnet101的参数,当然,也可以采用openimage预训练模型的模型参数,也就是在openimage数据集上预训练的基础特征提取模型。
[0135]
本技术实施例中,特征压缩层用于将把基础特征提取层提取得到的稀疏高危向量压缩至稠密的低维向量。由于计算机内存空间有限,对于大规模检索而言特征越紧凑存储空间越小,则在同一时间(或者同一内存下)能容纳更大的检索库进行相似度对比,因此,进而特征压缩的目的除了可以让特征更稠密外,还可以减少特征存储空间,还可以提升后续向量检索效率。例如,将基础特征提取层输出的1*2048维的特征向量压缩成稠密的1*128维特征向量时,若存储1*2048维向量需要32字节(b),而1*128维向量只需要2字节进行存储,对于1亿个特征向量,若不压缩则需要1525.9mb即1.5gb,而压缩之后仅需要200万b即95.4mb,显然,存储空间利用率更高。
[0136]
参见图5所示,特征压缩层可以包括池化(pooling)层和2个全连接(fc)层。如表2所示,为特征压缩层的结构参数示意。
[0137]
层名称输出特征大小层操作池化层1x2048最大池化(max pool)全连接层11x512全连接全连接层21x128全连接
[0138]
表2
[0139]
其中,池化层用于对基础特征提取层输出的基础特征向量进行池化处理,如表2所示,可获得大小为1x2048的特征向量,池化层可采用如表2所示的最大池化,当然也可以采用其他可能的池化方式,如均值池化等。全连接层1和全连接层2则分别对池化之后特征向量进行2次压缩,获得维度更低的特征表示向量,如表2所示,全连接层1获得的特征向量大小为1x512,全连接层2获得的特征向量大小为1x128。
[0140]
上述特征压缩层的参数初始化,全连接层例如可以采用方差为0.01,均值为0的高斯分布进行初始化。
[0141]
需要说明的是,上述的模型结构以及参数均为一种可能性的示例,在实际应用中也可以使用其他可能的结构和参数,本技术实施例对此不做限制。
[0142]
步骤403:确定特征表示损失值。
[0143]
本技术实施例中,参见图3所示,在获得各个图像样本的特征表示向量之后,则可以基于特征表示向量确定特征编码子模型的特征表示损失值。
[0144]
在一种可能的实施方式中,由于对构造的各个图像样本组进行了标注,因此可以基于各个图像样本组的标注确定特征表示损失值。
[0145]
具体的,可以针对多个图像样本组中的每一个图像样本组包括的至少两个图像样本的特征表示向量,获得至少两个图像样本之间的预测相似度,并将获得的预测相似度与相应的标注相似度进行比较,获得每一个图像样本组相应的比较结果,进而可以根据针对各个图像样本组获得的各个比较结果,确定特征表示损失值。
[0146]
具体的,以图像样本组包括两个图像样本为例,则特征表示损失值可以通过如下方式进行表示。
[0147][0148]
其中,l1表征特征编码子模型的特征表示损失值,s
i1
表征第i个图像样本组中两个图像样本之间的预测相似度,预测相似度可以基于第i个图像样本组中两个图像样本的特征表示向量计算获得,s
i2
表征第i个图像样本组两个图像样本之间的标注相似度,n表示图像样本组的数量。
[0149]
在另一种可能的实施方式中,每一个图像样本组可以为一个三元组,那么一个图像样本组可以包括第一图像样本(或称anchor图)、第二图像样本(或称positive图)和第三图像样本(或称negative图),且每个图像样本组中所述第一图像样本与所述第二图像样本之间的相似度不小于预设的相似度阈值,以及所述第一图像样本与所述第三图像样本之间的相似度小于所述相似度阈值,即3个图像样本中第一图像样本和第二图像样本为相似样本,而第一图像样本和第三图像样本为不相似样本。
[0150]
具体的,当每一个图像样本组可以为一个三元组时,则在确定特征表示损失值时,可以针对各个图像样本组,分别获取各个图像样本组中第一图像样本与第二图像样本之间的第一相似度,以及获取第一图像样本与第三图像样本之间的第二相似度,并基于第一相似度和第二相似度,获得一个图像样本组对应的三元组损失值,进而基于获得的各个图像样本组各自对应的三元组损失值,获得特征表示损失值。
[0151]
特征表示损失值可以通过如下方式进行表示:
[0152][0153]
其中,l1表征特征编码子模型的特征表示损失值,d
i
(a,p)表征第i个图像样本组中第一图像样本和第二图像样本之间的距离,d
i
(a,n)表征第i个图像样本组中第一图像样本和第三图像样本之间的距离,margin是一个大于0的常数,n表示图像样本组的数量。
[0154]
当然,根据样本构造的不同,可以采用相适应的方式获取特征表示损失值。
[0155]
步骤404:对多个特征表示向量进行聚类,并基于聚类结果确定聚类损失值。
[0156]
参见图3所示,在获得多个图像样本所对应的特征表示向量之后,除了计算相应的特征表示损失值之外,还会基于多个图像样本所对应的特征表示向量进行聚类,获得聚类结果。
[0157]
具体的,聚类子模型通过聚类层来实现,参见图3所示,为聚类层的结构参数示意,聚类层的作用在于对各个图像样本的特征表示向量进行特征投影,聚类层存储了各个类别的聚类中心向量,即将1*128的特征向量(1*128为对应上述表2中的特征表示向量的示例)映射到n个类中心,n为类别数量。例如,对于10万类的聚类任务,n=100000,则聚类层参数可以为128*100000,其由10万个类中心向量128*1组成,聚类层通过向量相似度计算把图像1*128的embedding映射到10万聚类中的某一类。
[0158]
层名称输出大小层操作聚类层1xn全连接
[0159]
表3
[0160]
需要说明的是,表3示出的聚类层仅包含一层全连接层的结构仅为一种可能的示例,在实际应用中,还可以采用其他的聚类层结构,例如,一种可能的方式是对表3的聚类层结构进行加深,如增加多个全连接层、线性整流函数(rectified linear unit,relu)激活层或者卷积层等,另一种可能的方式是采用其他深度神经网络结构。
[0161]
因此,聚类任务的目的实质上就是学习聚类中心向量,而在本技术实施例中,则是通过把聚类中心向量转化成深度学习的网络权重参数进行学习,通过多轮聚类过程,不断对聚类中心向量进行更新,当图像聚类模型收敛时,则获得最终的聚类中心向量。
[0162]
在一种可能的实施方式中,若是采用如triplet loss进行特征学习时,则每一轮聚类时,可以仅选取每个三元组中的不同类别的图像样本参与聚类,例如可以选取第一图像样本和第三图像样本,也可以选取第二图像样本和第三图像样本。
[0163]
以选取第一图像样本和第三图像样本为例,那么在进行聚类时,从获得的多个特征表示向量中,选取各个图像样本组中第一图像样本与第三图像样本对应的至少一个特征表示向量,进而对至少一个特征表示向量进行聚类。
[0164]
而对于第二图像样本的类别,则可以归属至第一图像样本所属的类别,也可以在聚类之后,将第二图像样本与各个聚类中心向量进行相似度计算,进而将相似度最大的类别确定为第二图像样本所属的类别。
[0165]
在一种可能的实施方式中,若是采用如triplet loss进行特征学习时,则每一轮聚类时,可以在聚类之后,选取每个三元组中的不同类别的图像样本参与聚类损失的计算。
[0166]
具体的,针对多个特征表示向量中的每一个特征表示向量,将其分别映射到各个图像类别,获得相应的图像类别向量。参见图6所示,为一个图像类别向量的示意图,其中,图像类别向量中包含多个元素(图6中每个框表征一个元素位置)的每个元素对应于一个图像类别,每个元素的取值表征一个特征表示向量对应的图像样本是否属于相应图像类别,如图6所示,第一个元素位置的取值为1,则表明该图像样本属于第一个元素位置对应的图像类别,而第三个元素位置的取值为0,则表明该图像样本不属于第三个元素位置对应的图像类别。当然,也可以使用其他值表征是否属于相应图像类别,例如可以使用0表征属于相应图像类别,1表征不属于相应图像类别,本技术实施例对此不做限制。
[0167]
以一个特征表示向量a为例,在获取其图像类别向量时,分别确定特征表示向量a与本轮聚类确定的各个聚类中心向量之间的相似度,并基于获得的各个相似度,分别确定特征表示向量a对应的图像样本是否属于相应的聚类中心向量表征的图像类别,获得确定结果,进而基于确定结果,获得图像类别向量。
[0168]
例如,将特征表示向量a与类别b的聚类中心向量进行相似度计算,当特征表示向量a与类别b的聚类中心向量之间的相似度大于设定阈值时,则确定特征表示向量a对应的图像样本属于类别b,进而在图像类别向量中类别b相应元素位置的取值为表征属于该类别的取值,通过对每个类别的相似度计算和判断,则可以获得特征表示向量a的图像类别向量。
[0169]
或者,在将特征表示向量a分别与各个类别的聚类中心向量进行相似度计算之后,从中选取相似度最大的作为特征表示向量a对应的图像样本所属的类别,进而将图像类别向量中相应元素位置的取值置为属于该类别的取值,从而获得特征表示向量a的图像类别向量。
[0170]
根据获得的图像类别向量,则可以确定本轮聚类之后各个图像样本所属的图像类别,从而图像类别向量也就相当于各个图像样本对应的标签,由于该标签时聚类所生成的,并不是图像样本真实的标签,因此这里将其称为聚类为标签,当聚类子模型趋于收敛时,则各个图像样本的聚类伪标签不在发生变化,因此可以用聚类伪标签的变化来衡量聚类子模型是否收敛。
[0171]
进而,将本轮获得的图像类别向量,与上一轮聚类中针对一个特征表示向量对应的图像样本确定的图像类别向量进行比较,获得比较结果,即将同一图像样本在本轮获得的图像类别向量与上一轮的图像类别向量进行比较,获得各个图像样本的特征表示向量所对应的比较结果,并基于针对多个特征表示向量获得的多个比较结果,确定聚类损失值(cluster loss)。
[0172]
例如,聚类损失值可以表示如下:
[0173][0174]
其中,l2表征聚类子模型的特征表示损失值,r
j1
表征第j个图像样本在本轮聚类获得的图像类别向量,r
j2
表征第j个图像样本在上一轮获得的图像类别向量。
[0175]
本技术实施例中,若是采用如triplet loss进行特征学习时,则每一轮聚类时,可以仅选取每个三元组中的不同类别的图像样本参与聚类损失的计算,那么对所有图像样本进行聚类之后,选取每个三元组中的不同类别的图像样本参与聚类loss计算,例如可以选取第一图像样本和第三图像样本,也可以选取第二图像样本和第三图像样本。
[0176]
以选取第一图像样本和第三图像样本为例,那么在进行聚类之后,选取各个图像样本组中第一图像样本与第三图像样本对应的至少一个特征表示向量对应的比较结果,来计算聚类损失值。
[0177]
本技术实施例中,为了保证聚类层学到的是聚类中心,需要对embedding进行l2归一化,保证embedidng向量长度为1,同时每次更新了聚类层的参数后,也要使得聚类层的每个聚类中心向量长度为1。
[0178]
步骤405:基于特征表示损失值和聚类损失值确定图像聚类模型的模型总损失值。
[0179]
本技术实施例中,把模型的所有参数都设为需要学习状态,训练时神经网络对输入的一个个图像样本进行前向计算得到预测结果,预测结果包括特征学习阶段的预测结果和聚类阶段的预测结果,并且分别基于各个阶段的预测结果获得相应的损失值,即特征表示损失值和聚类损失值,进而基于特征表示损失值和聚类损失值获得图像聚类模型本轮聚类的模型总损失值。
[0180]
本技术实施例中,聚类任务对每个图像样本的图像类别向量进行更新,在下一轮学习中,聚类层学习的目标即为更新了的图像类别向量(即图3中所示的聚类目标)。但是,由于每次聚类任务更新图像类别向量后聚类损失值会变大,从而通过梯度回传对模型影响到特征编码过程,因此在模型训练过程中,不同阶段对聚类的影响程度设计了不同的权重。并且,根据特征学习的情况来调节聚类权重,即当特征表示损失值有较大变化或者有震荡时,表示特征未收敛或者某次聚类带来embedding变化,此时需要优先调整好embedding再进行聚类,故需要动态调节聚类loss权重。因此,可以基于特征表示损失值与上一轮聚类的特征表示损失值之间的差值,确定聚类损失值的权重值,进而基于特征表示损失值、聚类损失值以及权重值,确定图像聚类模型的模型总损失,其中,权重值与差值呈负相关。
[0181]
由于聚类损失和特征表示损失通常不再一个量级上,因此在基于特征表示损失值和聚类损失值确定图像聚类模型的模型总损失值之前,还可以对特征表示损失值和聚类损失值进行尺度变换,使得特征表示损失值和聚类损失值的度量尺度相同,实现量级平衡。
[0182]
模型总损失值可以通过如下公式获得:
[0183]
l=l1 b*l2[0184][0185]
其中,l1表示本轮获得的特征表示损失值,l1′
表示上一轮的特征表示损失值,abs(x)表示求绝对值,scale表示聚类loss尺度调整度,由于聚类的loss常是特征学习的10倍量级,故scale可以取0.1,通过scale使得量级平衡。
[0186]
在模型学习的早期,embedding未收敛,聚类任务更新后,聚类loss变化明显,此时由于embedding未收敛,特征表示损失值变化非常大,模型总损失值l中调节权重b较小,如特征表示损失值从7变成2,则b为1/((7

2)/2)*0.1=0.04,b比较小,故即使此时聚类任务变化剧烈,但对于embedding的学习影响并不会非常大,而在模型学习后期,聚类任务更新,聚类loss变化明显,但此时embedding已收敛,特征表示损失值变化不大,故loss调节权重变大,如特征表示损失值从0.6变成0.56则b为min(1,1/((0.6

0.56)/0.6)*0.1)=1,模型对聚类进行完全学习,损失权重b最大为1。
[0187]
步骤406:基于模型总损失值确定图像聚类模型是否收敛。
[0188]
步骤407:若步骤406的确定结果为是,则停止聚类迭代。
[0189]
步骤408:若步骤406的确定结果为否,则对图像聚类模型进行参数更新。
[0190]
本技术实施例中,可以根据模型总损失值是否小于设定的损失值确定图像聚类模型是否收敛,当模型总损失值小于设定的损失值,则图像聚类模型收敛,那么可以停止聚类迭代过程,若是模型总损失值不小于设定的损失值,则图像聚类模型未收敛,则可以根据模型总损失值计算模型参数的调整梯度,进而对图像聚类模型的参数进行调整,并利用调整
后的图像聚类模型进入下一轮的聚类。
[0191]
下面,以一个具体的例子对确定聚类中心的过程进行介绍。
[0192]
在一种实施方式中,待聚类的图像样本集合中包括多个图像样本,图像样本可以是包含猫、狗、鸡或者鸭等动物的图像,也可以是包含樱花树、梨花树、水稻或者小麦等植物的图像,当然,也可以是包含其他内容的图像,通过本技术实施例提供的聚类中心确定方法进行聚类之后,可将多个图像样本划分为多个簇,每个簇为同一类别的图像,例如图像中为鸡的图像样本被划分至同一簇中,图像中为狗的图像样本被划分至同一簇中,进而从每一个簇中选取最能够代表该簇的图像样本的特征表示向量作为该簇的聚类中心向量。
[0193]
本技术实施例中,基于上述的描述,每次聚类任务更新图像类别向量后聚类损失值会变大,从而通过梯度回传对模型影响到特征编码过程,故考虑到模型训练的效率,聚类任务更新不能过于频繁,因此可以进行多轮特征编码子模型的更新迭代后,进行一次聚类任务的更新。例如可以取每5轮模型迭代后,更新一次聚类任务。因此,参见图7,为本技术实施例提供的另一种聚类流程示意图。
[0194]
步骤701:基于图像样本集合构造多个图像样本组。
[0195]
步骤702:对各个图像样本分别进行特征编码,基于编码结果获得相应的多个特征表示向量。
[0196]
步骤703:基于获得的多个特征表示向量确定特征表示损失值。
[0197]
步骤704:判断本轮聚类是否满足设定条件。
[0198]
其中,设定条件可以包括本轮聚类的特征编码的次数达到设定次数阈值,例如上述设定5轮模型迭代后,更新一次聚类任务,那么当特征编码的次数达到5次时,则满足设定条件,或者,特征编码子模型满足收敛条件。
[0199]
步骤705:步骤704的确定结果为否,则对特征编码子模型进行参数调整,并返回步骤702。
[0200]
若步骤704的确定结果为是,则跳转至步骤706。
[0201]
步骤706:根据本轮聚类中最后一次特征编码获得的多个特征表示向量进行聚类,并基于聚类结果确定聚类损失值。
[0202]
步骤707:基于特征表示损失值和聚类损失值确定图像聚类模型的模型总损失值。
[0203]
步骤708:基于模型总损失值确定图像聚类模型是否收敛。
[0204]
步骤709:若步骤708的确定结果为是,则停止聚类迭代。
[0205]
步骤710:若步骤708的确定结果为否,则对图像聚类模型进行参数更新。
[0206]
图7中与图4中类似的步骤可参考图4部分的介绍,在此不过多赘述。
[0207]
本技术实施例中,在图像聚类模型收敛之后,则可以获得聚类中心向量,即最后一轮聚类获得的聚类结果包含的多个聚类中心向量。
[0208]
具体的,可根据聚类结果中能够表征各个类别的特征表示向量作为每个类别的聚类中心向量,由此可获得多个聚类中心向量,同时,也可以获得各个图像样本的特征表示向量。
[0209]
本技术实施例提供的embedding在线(即边学习边聚类)聚类方式,用于聚类的特征是基于聚类过程的反馈调整后的模型获得的,因而各个图像样本的embedding在一定程度上具有上一次kmeans聚类的分布特性,在此基础上继续聚类可以更大程度保持新聚类与
上一次聚类的相似性,即某两个图像样本本次聚类为同一标签,下次聚类后极大可能也是同一标签,而不是不同标签,具有这种类别保有性的样本数量随着embedding的稳定越来越多。
[0210]
本技术实施例中,获得的聚类中心向量和特征表示向量可用于后续的图像检索或者视频推荐应用中。参见图8和图9所示,图8为以视频推荐场景为例的应用流程示意图,图9为视频检索示意图。
[0211]
步骤801:针对视频数据库中的各个视频,基于多个聚类中心向量,分别确定各个视频包括的各个图像帧所属的图像类别,并根据确定的各个图像类别将各个视频关联至各个图像类别。
[0212]
本技术实施例中,在进行图像聚类模型的训练时,则可以利用各个视频的图像帧作为图像样本进行训练,进而,在训练完成之后,则可以同时获得聚类中心向量以及各个视频的图像帧的特征表示向量。参见图9所示,视频库中包括n个视频,即视频a~视频n,且每个视频对应着至少一个图像帧,如图9所示的视频a包含图像a1~图像an,从而构成一个图像库。则在图像聚类模型收敛之后,则可以获得各个图像帧的图像表示向量,进而将各个图像帧分别与各个聚类中心向量进行相似度计算,并将最为相似的聚类中心向量对应图像类别确定为各个图像帧的图像类别,进而将其所在的视频关联至相应图像类别。例如当图像a1最为相似的聚类中心向量为类别1中心向量时,则图像a1的图像类别为类别1,并将视频a关联至类别1,这样,每个类别1则可以关联至少一个视频,以完成视频的分桶。
[0213]
步骤802:接收目标用户发送的视频检索请求,视频检索请求携带目标视频。
[0214]
在用户在视频检索界面触发视频检索时,则终端设备发起视频检索请求,并且视频检索请求携带待检索的目标视频。
[0215]
步骤803:基于多个聚类中心向量,确定目标视频包括的各个图像帧所属的图像类别,并将确定的各个图像类别关联的视频确定为候选匹配视频。
[0216]
本技术实施例中,在获取目标视频之后,则可以针对目标视频包括的各个图像帧,即图9所示的目标图像1~n,分别通过本技术实施例提供的图像聚类模型获取其相应的图像类别向量,即对其进行特征编码获取其特征表示向量,并基于特征表示向量以及各个聚类中心向量确定其所属的图像类别,并将相应图像类别关联的视频召回,作为目标视频的候选匹配视频。
[0217]
以目标图像1为例,对目标图像1进行特征编码获取其特征表示向量1,再将特征表示向量1分别与各个聚类中心向量进行相似度计算,并将相似度最大的聚类中心向量所对应的图像类别确定为目标图像1所属的图像类别,例如目标图像1所属的图像类别为类别1,进而将类别1关联的所有视频召回,作为目标视频的候选匹配视频。当然,也可以针对每个图像帧,选取相似度最高的k个类别,并将这k个类别关联的所有视频召回。
[0218]
由于在实际应用时,每个视频包括的图像帧数量较多,因此可以从中选取部分图像帧来进行视频分桶召回的过程。在一种可能的实施方式中,可以选取关键帧进行上述过程来进行视频分桶召回。在一种可能的实施方式中,可以获取目标视频的所有图像帧分别与各个聚类中心向量的相似度,获得各个图像帧所述类别的相似度,进而选取相似度最高的k个相似度对应的类别关联的所有视频召回,作为目标视频的候选匹配视频。
[0219]
步骤804:从候选匹配视频中选取向目标用户推荐的目标匹配视频。
[0220]
对上述召回的视频,还需进行检索精匹配计算最终相似度,以从候选匹配视频中确定向目标用户推荐的目标匹配视频。其中,检索精匹配一般可以采用尺度不变特征变换(scale

invariant feature transform,sift)图像特征,即对两个样本先计算各自的sift特征,然后根据sift特征进行匹配,相似度大于阈值则表示两个样本相似。
[0221]
综上所述,本技术实施例通过借助深度学习图像embedding以及聚类的多任务结合实现端到端特征学习与聚类,并设计了动态loss调节以保证特征embedding的稳定性,最终使得学习到的embedding在相似度聚类中效果更好。具体而言,通过联合embedding与无监督聚类的深度神经网络学习提升聚类相似度,通过全局相似度聚类降低度量学习对全局表征不足的问题,通过动态loss反馈与调节实现多任务下embedding收敛的稳定性,在原始标注数据下实现端到端的特征学习与聚类。例如,训练embedding可采用triplet标注三元组,聚类则借助无监督方法产生学习目标,在不引入额外标注数据下从特征层面优化了聚类语义相似度问题。
[0222]
并且,由于通过本技术实施例的聚类中心确定方法,聚类到同一类别的图像样本都相互更接近,故分桶召回的效果相似度比二阶段特征与聚类割裂学习的效果更佳。
[0223]
请参见图10,基于同一发明构思,本技术实施例还提供了一种聚类中心确定装置100,该装置包括:
[0224]
样本获取单元1001,用于获取图像样本集合;
[0225]
聚类单元1002,用于基于图像样本集合,采用图像聚类模型进行多轮聚类,直到满足预设的收敛条件为止,其中,聚类单元包括特征编码子单元10021、聚类子单元10022和模型调整子单元10023:
[0226]
特征编码子单元10021用于对图像样本集合中的各个图像样本分别进行特征编码,基于编码结果获得相应的多个特征表示向量,以及确定特征表示损失值;
[0227]
聚类子单元10022用于对多个特征表示向量进行聚类,并基于聚类结果确定聚类损失值;
[0228]
模型调整子单元10023用于基于特征表示损失值和聚类损失值确定图像聚类模型未收敛时,对图像聚类模型进行参数调整;
[0229]
输出单元1003,用于输出最后一轮聚类获得的聚类结果包含的多个聚类中心向量,一个聚类中心向量对应一个图像类别。
[0230]
可选的,特征编码子单元10021,具体用于:
[0231]
针对各个图像样本,分别进行至少一次基础特征提取,获得相应的基础特征向量;
[0232]
分别对获得的各个基础特征向量进行特征压缩,获得各个图像样本各自对应的特征表示向量。
[0233]
可选的,样本获取单元1001,还用于:
[0234]
基于图像样本集合构造多个图像样本组,每个图像样本组包括至少两个图像样本,以及包括至少两个图像样本之间的标注相似度;
[0235]
则特征编码子单元10021,具体用于:
[0236]
针对多个图像样本组,分别执行以下操作:基于多个图像样本组内的一个图像样本组包括的至少两个图像样本的特征表示向量,获得至少两个图像样本之间的预测相似度,并将获得的预测相似度与相应的标注相似度进行比较,获得相应的比较结果;
[0237]
根据针对各个图像样本组获得的各个比较结果,确定特征表示损失值。
[0238]
可选的,每个图像样本组包括第一图像样本、第二图像样本和第三图像样本,且每个图像样本组中第一图像样本与第二图像样本之间的相似度不小于预设的相似度阈值,以及第一图像样本与第三图像样本之间的相似度小于相似度阈值;
[0239]
则特征编码子单元10021,具体用于:
[0240]
针对多个图像样本组,分别执行以下操作:在至少一个图像样本组内的一个图像样本组中,获取第一图像样本与第二图像样本之间的第一相似度,以及获取第一图像样本与第三图像样本之间的第二相似度,并基于第一相似度和第二相似度,获得一个图像样本组对应的三元组损失值;
[0241]
基于获得的各个图像样本组各自对应的三元组损失值,获得特征表示损失值。
[0242]
可选的,聚类子单元10022,具体用于:
[0243]
从多个特征表示向量中,选取多个图像样本组中第一图像样本与第三图像样本对应的至少一个特征表示向量;
[0244]
对至少一个特征表示向量进行聚类。
[0245]
可选的,聚类子单元10022,具体用于:
[0246]
针对多个特征表示向量,分别执行以下操作:
[0247]
将多个特征表示向量中的一个特征表示向量,分别映射到各个图像类别,获得相应的图像类别向量;其中,图像类别向量中的每个元素对应于一个图像类别,每个元素的取值表征一个特征表示向量对应的图像样本是否属于相应图像类别;
[0248]
将图像类别向量,与上一轮聚类中针对一个特征表示向量对应的图像样本确定的图像类别向量进行比较,获得比较结果;
[0249]
基于针对多个特征表示向量获得的多个比较结果,确定聚类损失值。
[0250]
可选的,聚类子单元10022,具体用于:
[0251]
从多个特征表示向量中,选取多个图像样本组中第一图像样本与第三图像样本对应的至少一个特征表示向量;
[0252]
基于针对多个特征表示向量获得的多个比较结果,确定聚类损失值,包括:
[0253]
基于至少一个特征表示向量对应的比较结果,确定聚类损失值。
[0254]
可选的,聚类子单元10022,具体用于:
[0255]
分别确定一个特征表示向量,与本轮聚类确定的各个聚类中心向量之间的相似度;
[0256]
基于获得的各个相似度,分别确定一个特征表示向量对应的图像样本是否属于相应的聚类中心向量表征的图像类别,获得确定结果;
[0257]
基于确定结果,获得图像类别向量。
[0258]
可选的,模型调整子单元10023,还用于:
[0259]
基于特征表示损失值与上一轮聚类的特征表示损失值之间的差值,确定聚类损失值的权重值;其中,权重值与差值呈负相关;
[0260]
基于特征表示损失值、聚类损失值以及权重值,确定图像聚类模型的模型总损失值;
[0261]
基于模型总损失值确定图像聚类模型是否收敛。
[0262]
可选的,模型调整子单元10023,还用于:
[0263]
对特征表示损失值和聚类损失值进行尺度变换,使得特征表示损失值和聚类损失值的度量尺度相同。
[0264]
可选的,特征编码子单元10021,还用于:
[0265]
对调整后的特征编码子模型进行至少一次迭代更新,直至本轮聚类满足设定条件为止;其中,在每一次迭代更新时,基于所述特征编码子模型对各个图像样本分别进行特征编码,基于编码获得的多个特征表示向量确定特征表示损失值,并基于所述特征表示损失值对所述特征编码子模型进行参数调整,且所述设定条件包括本轮聚类的特征编码的次数达到设定次数阈值,或者,所述特征编码子模型满足收敛条件;
[0266]
则聚类子单元10022,具体用于:
[0267]
基于本轮聚类中最后一次迭代更新后的特征编码子模型编码获得的多个特征表示向量进行聚类。
[0268]
可选的,该装置还包括视频分桶单元1004和视频检索单元1005,
[0269]
视频分桶单元1004,用于针对视频数据库中的各个视频,分别执行以下操作:基于多个聚类中心向量,分别确定各个视频中的一个视频包括的各个图像帧所属的图像类别,并根据确定的各个图像类别将一个视频关联至各个图像类别;
[0270]
视频检索单元1005,用于接收目标用户发送的视频检索请求,视频检索请求携带目标视频;基于多个聚类中心向量,确定目标视频包括的各个图像帧所属的图像类别,并将确定的各个图像类别关联的视频确定为候选匹配视频;从候选匹配视频中选取向目标用户推荐的目标匹配视频。
[0271]
该装置可以用于执行图2~图9所示的实施例中所示的方法,因此,对于该装置的各功能模块所能够实现的功能等可参考图2~图9所示的实施例的描述,不多赘述。其中,视频分桶单元1004和视频检索单元1005并非必选的功能模块,因此在图10中以虚线进行示出。
[0272]
该装置可以采用构建的端到端的图像聚类模型,把特征学习与聚类过程结合到一起,即在进行特征学习的同时进行无监督聚类,从而特征学习与聚类相互促进优化,换句话说,在特征学习过程中,在一定程度上可以学习到之前聚类的分布特性,进而学习得到的特征表示向量也会趋于一定的分布特性,提升特征学习的准确性,此外,在此基础上继续聚类可以更大程度保持新聚类与上一次聚类的相似性,使得聚类到同一类别的特征都相互更接近,相应的,最终获得的聚类中心也就更为准确,从而聚类效果更佳。例如,在该装置用于视频分桶检索时,由于聚类的效果更佳,从而为后续的视频分桶检索的精准性奠定了基础。
[0273]
请参见图11,基于同一技术构思,本技术实施例还提供了一种计算机设备110,可以包括存储器1101和处理器1102。计算机设备110例如可以是终端,也可以是服务器。
[0274]
所述存储器1101,用于存储处理器1102执行的计算机程序。存储器1101可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据计算机设备的使用所创建的数据等。处理器1102,可以是一个中央处理单元(central processing unit,cpu),或者为数字处理单元等等。本技术实施例中不限定上述存储器1101和处理器1102之间的具体连接介质。本技术实施例在图11中以存储器1101和处理器1102之间通过总线1103连接,总线1103在图11中以粗线表示,其它部
件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线1103可以分为地址总线、数据总线、控制总线等。为便于表示,图11中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0275]
存储器1101可以是易失性存储器(volatile memory),例如随机存取存储器(random

access memory,ram);存储器1101也可以是非易失性存储器(non

volatile memory),例如只读存储器,快闪存储器(flash memory),硬盘(hard disk drive,hdd)或固态硬盘(solid

state drive,ssd)、或者存储器1101是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器1101可以是上述存储器的组合。
[0276]
处理器1102,用于调用所述存储器1101中存储的计算机程序时执行如图2~图9所示的实施例中设备所执行的方法。
[0277]
在一些可能的实施方式中,本技术提供的方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本说明书上述描述的根据本技术各种示例性实施方式的方法中的步骤,例如,所述计算机设备可以执行如图2~图9所示的实施例中设备所执行的方法。
[0278]
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0279]
尽管已描述了本技术的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本技术范围的所有变更和修改。
[0280]
显然,本领域的技术人员可以对本技术进行各种改动和变型而不脱离本技术的精神和范围。这样,倘若本技术的这些修改和变型属于本技术权利要求及其等同技术的范围之内,则本技术也意图包含这些改动和变型在内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献