检索方法、装置、设备及计算机可读存储介质与流程

文档序号:31716233发布日期:2022-10-04 21:55阅读:61来源:国知局
检索方法、装置、设备及计算机可读存储介质与流程

1.本技术涉及互联网技术,尤其涉及一种检索方法、装置、设备及计算机可读存储介质。


背景技术:

2.随着互联网技术和终端设备的普及,各种互联网应用场景中出现了海量语义丰富的多媒体数据,如何对海量的多媒体数据进行有效检索,也成为多媒体处理领域的热门研究方向。在检索技术中,能够高效、准确的提取出检索参考信息的特征向量成为影响检索精度的重要影响因素。


技术实现要素:

3.本技术实施例提供一种检索方法、装置及计算机可读存储介质,能够提高检索精度。
4.本技术实施例的技术方案是这样实现的:
5.本技术实施例提供一种检索方法,包括:
6.响应于接收到的检索请求,获取检索参考信息和训练好的特征提取模型,所述训练好的特征提取模型在训练过程中的损失函数至少包括能够对多标签无关样本信息进行度量距离排斥的第一损失函数分量;
7.利用所述训练好的特征提取模型对所述检索参考信息进行特征提取,得到检索参考向量;
8.基于所述检索参考向量从检索数据库中确定至少一个目标对象;
9.输出所述至少一个目标对象。
10.本技术实施例提供一种检索装置,包括:
11.第一获取模块,用于响应于接收到的检索请求,获取检索参考信息和训练好的特征提取模型,所述训练好的特征提取模型在训练过程中的损失函数至少包括能够对多标签无关样本信息进行度量距离排斥的第一损失函数分量;
12.第一处理模块,用于利用所述训练好的特征提取模型对所述检索参考信息进行特征提取,得到检索参考向量;
13.第一确定模块,用于基于所述检索参考向量从检索数据库中确定至少一个目标对象;
14.第一输出模块,用于输出所述至少一个目标对象。
15.本技术实施例提供一种装置,包括:
16.存储器,用于存储可执行指令;
17.处理器,用于执行所述存储器中存储的可执行指令时,实现本技术实施例提供的方法。
18.本技术实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理
器执行时,实现本技术实施例提供的方法。
19.本技术实施例提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现本技术实施例提供的方法。
20.本技术实施例具有以下有益效果:
21.在接收到检索请求之后,响应于该检索请求,首先获取检索参考信息和训练好的特征提取模型,然后利用所述训练好的特征提取模型对所述检索参考信息进行特征提取,得到检索参考向量,并基于所述检索参考向量从检索数据库中确定至少一个目标对象,最后输出所述至少一个目标对象,在本技术实施例中,训练好的特征提取模型在训练过程中的损失函数至少包括能够对多标签无关样本信息进行度量距离排斥的第一损失函数分量,因此能够保证利用训练好的特征提取模型所提取出的无关对象之间的特征向量在度量空间之间是远离的,从而能够提高利用该特征向量进行检索时检索精度。
附图说明
22.图1是本技术实施例提供的检索系统的网络架构示意图;
23.图2是本技术实施例提供的服务器400的结构示意图;
24.图3是本技术实施例提供的检索方法的一种实现流程示意图;
25.图4为本技术实施例提供的特征提取模型的训练流程示意图;
26.图5为本技术实施例提供的检索方法的再一种实现流程示意图;
27.图6为本技术实施例提供的检索方法的另一种实现流程示意图。
具体实施方式
28.为了使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术作进一步地详细描述,所描述的实施例不应视为对本技术的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本技术保护的范围。
29.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
30.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本技术实施例能够以除了在这里图示或描述的以外的顺序实施。
31.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本技术实施例的目的,不是旨在限制本技术。
32.对本技术实施例进行进一步详细说明之前,对本技术实施例中涉及的名词和术语进行说明,本技术实施例中涉及的名词和术语适用于如下的解释。
33.1)度量空间,指包含所有样本的一个集合,并且该集合中的任意元素之间的距离是可定义的,亦称距离空间。
34.2)度量学习,是从数据中学习一种度量数据对象间距离分布的方法,其目标是在
度量空间中,相似对象间的距离小以达到聚类的效果,不相似对象间的距离大以达到区分的效果。
35.3)基于内容的图像检索,指利用图像的内容语义,如颜色、纹理、布局等特征进行分析和搜索的图像检索技术。
36.4)成对损失,指基于样本与样本之间的距离进行度量计算的损失函数。
37.5)类代理,指训练前随机分配的一组类中心。在训练的过程中,属于某一类的样本会逐渐收敛至该类的类代理附近以达到聚类的效果。
38.6)代理损失,指基于样本与类代理之间的距离进行度量计算的损失函数。
39.为了更好地理解本技术实施例提供的检索方法,对相关技术中检索方法,以及相关技术中检索方法所涉及的特征提取模型的损失函数及存在的缺点进行说明。
40.一、基于成对损失的方法。
41.通过每次计算两个或多个样本的特征向量之间的距离相似度,确定梯度下降方向,减小相似的样本之间的距离以达到聚类的效果,增大不相似样本之间的距离以达到区分的效果。在具有挑战性的多标签检索任务中,基于成对损失的方法可以充分挖掘样本间深层次的属性相关性,根据排序后的标签来估计语义距离。
42.二、基于代理损失的方法。
43.在实现时,预先设置了一组类代理向量作为每个类的聚类中心,并在训练前为每个类随机分配对应的类代理。在训练过程中,通过计算样本的特征向量到所有的类代理向量之间的距离相似度确定梯度下降方向。属于某一类的样本会收敛至对应类代理附近的空间以达到聚类的效果,同时增大这一类样本到其他类代理之间的距离以达到区分的效果。
44.以下对相关技术中上述两种方法的缺点进行说明。
45.基于成对损失的方法充分挖掘了数据与标签之间相关性信息,表现出令人满意的性能。然而,其训练复杂度一般达到图像数据数量的平方或立方复杂度,在大规模图像数据中时间开销负担较大。此外,成对损失只针对同一批次进入神经网络训练的样本进行度量距离优化,能达到这一批数据的度量最优。但局部的度量最优往往在全局意义下产生冲突,即满足批次内样本的最优可能导致与批次外的样本出现冲突,导致训练时难以收敛,聚类效果不稳定,进一步增大了训练时间开销。
46.基于代理损失的方法缺乏样本间的标签相关程度信息,且构造的度量空间难以表达多标签任务中复杂的特征向量到标签集的映射关系。
47.基于代理损失的方法考虑样本到类代理之间的距离度量,具有更快的训练与收敛速度以及更好的聚类效果,但在多标签场景中缺乏样本之间不同相似程度的标签信息,无法对多标签样本进行合理的映射及排序,从而影响了检索性能。具体表现为度量空间中分割区域数量与质量的鲁棒性不足。
48.代理损失会使同类样本分布在对应类代理附近的空间中,形成近似超球的分布。但超球分布在空间中的泛化性弱,分割的空间区域数量有限,无法满足多标签场景下复杂的标签集的映射关系;此外,代理损失会简单地将含有多个标签的样本映射到对应类代理的中间位置,由于缺乏样本之间的相关信息,代理损失无法对距离相近的含有多个标签的不相似的样本进行距离排斥,因此会出现无关样本的混淆从而降低性能。下面对代理损失具有上述缺点的原因进行说明。
49.代理损失监督下的同类样本会在对应类代理周围形成近似超球的分布,而k维空间中c个超球能够分割的区域数量ω(k,c)的上限可以通过公式(1-1)得出:
[0050][0051]
由于c个类别的数据集理论上最多会出现2c个不同的标签,而c》k+1时有公式(1-2):
[0052][0053]
因此超球度量空间无法分割出足够数量的空间满足标签集到度量空间的映射关系,从而会将多个标签集的样本映射到空间中的同一个区域,出现混淆而导致性能下降。
[0054]
本技术实施例提供一种检索方法、装置、设备和计算机可读存储介质,能够提高检索精度,下面说明本技术实施例提供的电子设备的示例性应用,本技术实施例提供的电子设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为服务器时示例性应用。
[0055]
参见图1,图1是本技术实施例提供的检索系统100的网络架构示意图,如图1所示,该系统包括:终端200、网络300、服务器400和检索数据库500,终端200通过网络300连接服务器400,网络300可以是广域网或者局域网,又或者是二者的组合。
[0056]
本技术实施例检索方法可以应用于多种场景,例如浏览器图片检索、视频检索、音乐检索等等。终端400中可以安装有各种应用程序的客户端,例如可以是游戏应用程序、购物应用程序、视频观看应用程序、音乐播放应用程序等。其中,该应用程序可以是需要下载安装的应用程序,也可以是即点即用的应用程序(小程序),本技术实施例对此不作限定。
[0057]
终端在接收到检索指令时,响应于该检索指令向服务器发送检索请求,检索请求中携带有检索参考信息,该检索参考信息可以为图像、视频或者音频。服务器在接收到该检索请求后,获取检索参考信息,并获取训练好的特征提取模型,利用该训练好的的特征提取模型对所述检索参考信息进行特征提取,得到检索参考向量,服务器400确定检索参考向量与检索数据库500中的各个检索对象的二值化特征向量之间的各个相似度,然后基于各个相似度从多个检索对象中确定至少一个目标对象,然后将该至少一个目标对象发送至终端200,终端200在自身的显示装置上呈现各个目标对象。
[0058]
在本技术实施例中,训练好的特征提取模型在训练过程中的损失函数至少包括能够对多标签无关样本信息进行度量距离排斥的第一损失函数分量,因此能够保证利用训练好的特征提取模型所提取出的无关对象之间的特征向量在度量空间之间是远离的,从而能够提高利用该特征向量进行检索时检索精度。
[0059]
在一些实施例中,服务器400可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端200可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载智能终端等,但并不局限于此。终端以及服务器可以通过有线
或无线通信方式进行直接或间接地连接,本技术实施例中不做限制。
[0060]
参见图2,图2为本技术实施例提供的服务器400的结构示意图,图2所示的服务器400包括:至少一个处理器410、至少一个网络接口420、总线系统430和存储器440。服务器400中的各个组件通过总线系统430耦合在一起。可理解,总线系统430用于实现这些组件之间的连接通信。总线系统430除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统430。
[0061]
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
[0062]
存储器440可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器440可选地包括在物理位置上远离处理器410的一个或多个存储设备。
[0063]
存储器440包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only me mory),易失性存储器可以是随机存取存储器(ram,random access memor y)。本技术实施例描述的存储器440旨在包括任意适合类型的存储器。
[0064]
在一些实施例中,存储器440能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
[0065]
操作系统441,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
[0066]
网络通信模块442,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;
[0067]
在一些实施例中,本技术实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器440中的检索装置443,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块4431、第一处理模块4432、第一确定模块4433和第一输出模块4434,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
[0068]
在另一些实施例中,本技术实施例提供的装置可以采用硬件方式实现,作为示例,本技术实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本技术实施例提供的搜索模型的更新方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable log ic device)、复杂可编程逻辑器件(cpld,complex programmable logic dev ice)、现场可编程门阵列(fpga,field-programmable gate array)或其他电子元件。
[0069]
将结合本技术实施例提供的服务器的示例性应用和实施,说明本技术实施例提供的检索方法。
[0070]
本技术实施例提供一种检索方法,应用于电子设备,该电子设备可以是终端,也可
以是服务器,在本技术实施例中以电子设备为服务器为例进行说明,图3是本技术实施例提供的检索方法的一种实现流程示意图,以下将结合图3对本技术实施例提供的检索方法进行说明。
[0071]
步骤s101,响应于接收到的检索请求,获取检索参考信息和训练好的特征提取模型。
[0072]
在本技术实施例中,检索请求可以是终端在接收到检索指令后,向服务器发送的,该检索请求中可以携带有检索参考信息,该步骤在实现时,服务器在接收到检索请求后,对检索请求进行解析,获取到检索参考信息,该检索参考信息可以是图像,也可以是视频,还可以是音频,在本技术实施例中不对检索参考信息的类型进行限定。
[0073]
特征提取模型为神经网络模型,在实际应用过程中,可以是深度学习神经网络模型,也可以是卷积神经网络模型。对于图像或者视频检索来说,卷积神经网络对图像的适应性强,而且可以通过权值共享大大减少模型的参数数量,因此卷积神经网络模型在计算机视觉领域应用较为广泛。另外,通过训练卷积神经网络模型可以学习到拥有更好的特征表达能力的深度特征。
[0074]
训练好的特征提取模型在训练过程中的损失函数至少包括能够对多标签无关样本信息进行度量距离排斥的第一损失函数分量,在本技术实施例中,第一损失函数分量为多标签无关样本的余弦相似度损失,由于该第一损失函数分量能够对无关样本进行度量距离排序,因此该训练好的特征提取模型能够学习到将无关对象之间的特征向量在度量空间进行排斥的能力。
[0075]
步骤s102,利用所述训练好的特征提取模型对所述检索参考信息进行特征提取,得到检索参考向量。
[0076]
训练好的特征提取模型可以包括输入层、卷积层、池化层、全连接层和输出层,该步骤在实现时,可以首先利用训练好的特征提取模型中的输入层对检索参考信息进行预处理操作,从而使得特征提取模型具有统一标准的输入数据,并且使得明显特征出现在卷积核中心,之后利用卷积层对输入数据进行卷积运算,从而实现特征增强和降噪,然后再利用池化层对卷积运算得到的卷积结果进行池化处理,以保留有用的特征信息,防止模型过拟合,进而再利用全连接层将得到的局部特征整合为一个全局特征,此时也即得到了待输出的检索参考向量,最后利用输出层输出该检测参考向量。
[0077]
步骤s103,基于所述检索参考向量从检索数据库中确定至少一个目标对象。
[0078]
由于利用训练好的特征提取模型提取到的检索参考向量的维度较高,例如可以是128维或者256维,并且特征向量的特征值通常浮点数,因此不管是存储该检索参考向量或者利用检索参考向量从数据库中确定目标对象时,处理复杂度过高。基于此,在本技术实施例中,检索数据库中存储的是检索对象的二值化特征向量,该步骤在实现时,首先对检索参考向量进行二值化处理,从而得到二值化参考向量,然后计算二值化参考向量和各个二值化特征向量之间的距离,并基于各个距离确定出至少一个目标对象。
[0079]
步骤s104,输出所述至少一个目标对象。
[0080]
当该步骤是由服务器实现时,输出至少一个目标对象,是将至少一个目标对象发送至检索请求对应的终端,在一些实施例中,终端在接收到至少一个目标对象后,在自身的显示装置上呈现该至少一个目标对象。
[0081]
在一些实施例中,当该步骤是由终端实现的,那么输出至少一个目标对象也即在终端自身的显示装置上呈现该至少一个目标对象。
[0082]
在本技术实施例提供的检索方法中,在接收到检索请求之后,响应于该检索请求,首先获取检索参考信息和训练好的特征提取模型,然后利用所述训练好的特征提取模型对所述检索参考信息进行特征提取,得到检索参考向量,并基于所述检索参考向量从检索数据库中确定至少一个目标对象,最后输出所述至少一个目标对象,在本技术实施例中,训练好的特征提取模型在训练过程中的损失函数至少包括能够对多标签无关样本信息进行度量距离排斥的第一损失函数分量,因此能够保证利用训练好的特征提取模型所提取出的无关对象之间的特征向量在度量空间之间是远离的,从而能够提高利用该特征向量进行检索时检索精度。
[0083]
在一些实施例中,在步骤s101之前,还可以利用图4所示的各个步骤对特征提取模型进行训练,以得到训练好的特征提取模型,以下结合图4对特征提取模型的训练过程进行说明。
[0084]
步骤s001,获取预设的特征提取模型和训练数据集。
[0085]
其中,预设的特征提取模型的模型参数为默认参数。训练数据集中包括多个训练样本和各个训练样本的标签向量。训练样本可以是训练图像、训练视频或训练音频。训练样本的标签向量的维度可以是1*p,p为类型总数。假设p为4,对于图像来说,标签可以是植物、动物、天空、雪地,标签向量即为1*4的维度,假设标签向量的四个标签值分别对应植物、动物、天空、雪地,当一张图像的标签包括植物、动物和天空时,该图像的标签向量为[1,1,1,0]。当一张图像的标签包括植物和天空时,那么该图像的标签向量为[1,0,1,0]。
[0086]
步骤s002,获取各个类代理向量和每次训练模型所需的样本个数n。
[0087]
在该步骤中,获取到的类代理向量中的各个元素值为默认值,在训练特征提取模型的过程中,除了调整特征提取模型的模型参数外,还会对类代理向量的各个元素值进行调整。每次训练模型所需要的样本个数n为大于1的整数,例如n可以为100,也就是说每次训练模型时会从训练数据集中获取100个训练样本作为本次训练的目标训练样本。
[0088]
步骤s003,确定是否达到训练结束条件。
[0089]
在实现时,可以通过迭代次数或者通过损失值确定是否达到训练结束条件,以下分别说明。
[0090]
一、通过迭代次数判断。
[0091]
首先,获取训练迭代次数,然后判断训练迭代次数是否达到预设的次数阈值,其中,当所述训练迭代次数达到预设的次数阈值时,确定达到训练结束条件;当所述训练迭代次数未达到预设的次数阈值时,确定未达到训练结束条件。
[0092]
二、通过损失值判断。
[0093]
首先获取完成上次训练后的损失函数的总损失值,然后判断该总损失值是否小于预设的损失阈值,其中当所述总损失值小于预设的损失阈值时,确定达到训练结束条件;当总损失值大于或者等于损失阈值时,确定为达到训练结束条件。
[0094]
在本技术实施例中,当确定未达到训练结束条件时,进入步骤s004,当确定到达训练结束条件时,进入步骤s007。
[0095]
步骤s004,利用所述特征提取模型从所述训练数据集中获取n个目标训练样本,并
利用所述特征提取模型对各个目标训练样本进行特征提取,得到所述各个目标训练样本的预测特征向量。
[0096]
该步骤在实现时,是从训练数据集中随机获取n个目标训练样本,然后通过特征提取模型的输入层对各个目标训练样本进行预处理,然后由卷积层对预处理后的目标训练样本进行卷积运算,得到卷积结果,然后再由池化层和全连接层对卷积结果进行池化处理和全连接处理,最终得到各个目标训练样本的预测特征向量。
[0097]
步骤s005,获取所述特征提取模型的损失函数。
[0098]
在本技术实施例中,损失函数包括能够对多标签无关样本信息进行度量距离排斥的第一损失函数分量和用于对训练样本进行聚类的第二损失函数分量。在实际实现时,特征提取模型的损失函数可以表示为:l
total
(dm,pc)=l
proxy
(dm,pc)+βl
neg_pair
(d'm),其中,l
total
(dm,pc)为损失函数,l
neg_pair
(d'm)为第一损失函数分量,l
proxy
(dm,pc)为第二损失函数分量,β为超参数。
[0099]
步骤s006,利用所述损失函数、所述各个目标训练样本的预测特征向量、所述各个目标训练样本的标签向量和各个类代理向量,对所述特征提取模型进行训练。
[0100]
该步骤在实现时,首先基于所述各个目标训练样本的标签向量,确定至少一个多标签无关样本对,然后再基于所述损失函数的第一损失函数分量、各个多标签无关样本对中目标训练样本的预测特征向量确定第一损失值;并基于所述损失函数的第二损失函数分量、各个目标训练样本的预测特征向量、所述各个目标训练样本的标签向量和各个类代理向量确定第二损失值,进而基于所述第一损失值和所述第二损失值确定总损失值;之后基于所述损失值对所述特征提取模型进行反向传播训练,以对所述特征提取模型的参数进行调整。
[0101]
在步骤s006之后,再次进入步骤s003,重复执行步骤s003至步骤s006。
[0102]
步骤s007,确定得到训练好的特征提取模型。
[0103]
通过上述步骤s001至步骤s007,即完成了对特征提取模型的训练过程,在对特征提取模型的训练过程中所采用的包括能够对多标签无关样本信息进行度量距离排斥的第一损失函数分量和用于对训练样本进行聚类的第二损失函数分量,通过引入少量的无关样本对信息缓解了代理损失在多标签场景下无法对距离相近的含有多个标签的不相似的样本进行距离排斥,因此会出现无关样本的混淆问题,从而能够在不影响整体训练速度与收敛性的前提下,提升提取出的特征向量的准确性。
[0104]
在一些实施例中,上述步骤s006“利用所述损失函数、所述各个目标训练样本的预测特征向量、所述各个目标训练样本的标签向量和各个类代理向量,对所述特征提取模型进行训练”,可以通过以下步骤实现:
[0105]
步骤s0061,基于所述各个目标训练样本的标签向量,确定至少一个多标签无关样本对。
[0106]
该步骤在实现时,首先基于所述各个目标训练样本的标签向量,确定第i个目标训练样本和第j个目标训练样本是否具备任一个相同标签,当确定第i个目标训练样本和第j个目标训练样本不具备任一个相同标签时,将所述第i个目标训练样本和所述第j个目标训练样本确定为一个多标签无关样本对,其中,i=1,2,

n,j=1,2,

n,且i不等于j。
[0107]
确定第i个目标训练样本和第j个目标训练样本是否具备任一个相同标签在实现
时,可以首先确定第i个目标训练样本的标签向量和第j个目标训练样本的标签向量的内积,然后判断该内积是否为0,如果该内积为0,确定第i个目标训练样本和第j个目标训练样本不具备任一个相同标签;如果该内积不为0,确定第i个目标训练样本和第j个目标训练样本具备至少一个相同标签。
[0108]
步骤s0062,基于所述损失函数的第一损失函数分量、各个多标签无关样本对中目标训练样本的预测特征向量确定第一损失值。
[0109]
该步骤在实现时,首先确定多标签无关样本对的总对数,然后基于各个多标签无关样本对中的两个目标训练样本的预测特征向量,确定各个多标签无关样本对的第一负样本损失值,并确定第一负样本总损失值,然后将第一负样本总损失值除以总对数,得到第一平均负样本损失值,在本技术实施例中,将所述第一平均负样本损失值确定为第一损失值。
[0110]
步骤s0063,基于所述损失函数的第二损失函数分量、各个目标训练样本的预测特征向量、所述各个目标训练样本的标签向量和各个类代理向量确定第二损失值。
[0111]
该步骤在实现时,首先基于所述各个目标训练样本的标签向量和所述各个类代理向量,确定所述各个类代理向量对应的目标正训练样本和目标负训练样本;然后基于所述各个类代理向量和所述各个类代理向量对应的目标正训练样本的预测特征向量,确定第一正样本损失值,并将第一正样本损失值除以正样本总数得到第一平均正样本损失值,再基于所述各个类代理向量和所述各个类代理向量对应的目标负训练样本的预测特征向量,确定第二负样本损失值,进而将第二负样本损失值除以负样本总数得到第二平均负样本损失值,最后将所述第一平均正样本损失值和所述第二平均负样本损失值的和确定为第二损失值。
[0112]
步骤s0064,基于所述第一损失值和所述第二损失值确定总损失值。
[0113]
在实现时,将第一损失值和超参数β的乘积加上第二损失值,即得到了总损失值。
[0114]
步骤s0065,基于所述总损失值对所述特征提取模型进行反向传播训练,以对所述特征提取模型的参数进行调整。
[0115]
在实际应用过程中,可以利用梯度下降法基于所述损失值对所述特征提取模型进行反向传播训练,以对所述特征提取模型的参数进行调整。
[0116]
在上述步骤s0061至步骤s0065中,首先确定出多标签无关样本对,然后再分别基于第一损失函数分量和第二损失函数分量,确定出第一损失值和第二损失值,进而再确定出总损失值,由于第一损失函数分量能够约束无关样本之间的互相排斥,从而在基于总损失值对所述特征提取模型进行反向传播训练,以对所述特征提取模型的参数进行调整时,能够使得特征提取模型学习到将无关样本在度量空间相互排斥的能力。
[0117]
在一些实施例中,上述步骤s0062“基于所述损失函数的第一损失函数分量、各个多标签无关样本对中目标训练样本的预测特征向量确定第一损失值”,可以通过下述的步骤621至步骤624实现,以下对各个步骤进行说明。包括:
[0118]
步骤621,获取多标签无关样本对的总对数。
[0119]
步骤622,基于各个多标签无关样本对中的两个目标训练样本的预测特征向量,确定各个多标签无关样本对的第一负样本损失值。
[0120]
各个多标签无关样本对的第一负样本损失值可以是余弦相似度损失值,在实现时,可以利用公式(1-3)确定各个多标签无关样本对的第一负样本损失值:
[0121][0122]
其中,vi和vj为一个多标签无关样本对中的两个目标训练样本的预测特征向量,ζ为预设的间隔因子,该间隔因子是根据类别数和哈希位数确定的,是-1到1之间的实数。
[0123]
步骤623,基于所述各个多标签无关样本对的第一负样本损失值和所述总对数确定第一平均负样本损失值。
[0124]
这里,将各个多标签无关样本对的第一负样本损失值进行求和,得到第一负样本总损失值,再将第一负样本总损失值除以总对数,即得到了第一平均负样本损失值。
[0125]
步骤624,将所述第一平均负样本损失值确定为第一损失值。
[0126]
在一些实施例中,上述步骤s0063“基于所述损失函数的第二损失函数分量、各个目标训练样本的预测特征向量、所述各个目标训练样本的标签向量和各个类代理向量确定第二损失值”,可以通过下述步骤631至步骤636实现,以下对各个步骤进行说明。
[0127]
步骤631,基于所述各个目标训练样本的标签向量和所述各个类代理向量,确定所述各个类代理向量对应的目标正训练样本和目标负训练样本。
[0128]
在本技术实施例中,每个标签类别对应有一个类代理向量。该步骤在实现时,如果基于目标训练样本的标签向量,确定第k个标签值为1时,说明该目标训练样本为第k个标签类别对应的类代理向量的正样本,确定第k个标签值为0时,说明该目标训练样本为第k个标签类别对应的类代理向量的负样本。
[0129]
假设某一目标训练样本的标签向量为[1,1,0,0],第1至第4个标签分别对应植物、动物、天空、雪地,那么该目标训练样本为植物对应的类代理向量的目标正训练样本,为动物对应的类代理向量的目标正训练样本,为天空对应的类别代理向量的目标负训练样本,为雪地对应的类别代理向量的目标负训练样本。
[0130]
步骤632,确定所述各个类代理向量对应的目标正训练样本的正样本总数和所述各个类代理向量对应的目标负训练样本的负样本总数。
[0131]
步骤633,基于所述各个类代理向量和所述各个类代理向量对应的目标正训练样本的预测特征向量,确定第一正样本损失值。
[0132]
类代理向量pj和该类代理向量对应的目标正训练样本vi的预测特征向量之间的损失值可以利用下述实施例中的公式(2-2)确定:
[0133][0134]
在本技术实施例中,将各个类代理向量和各个类代理向量对应的目标正训练样本的预测特征向量之间的损失值进行求和,得到第一正样本损失值。
[0135]
步骤634,基于所述各个类代理向量和所述各个类代理向量对应的目标负训练样本的预测特征向量,确定第二负样本损失值。
[0136]
这里,类代理向量pj和该类代理向量对应的目标负训练样本vi的预测特征向量之间的损失值可以利用下述实施例中的公式(2-3)确定:
[0137][0138]
在本技术实施例中,将各个类代理向量和各个类代理向量对应的目标负训练样本的预测特征向量之间的损失值进行求和,得到第二负样本损失值。
[0139]
步骤635,基于所述第一正样本损失值和所述正样本总数确定第一平均正样本损失值,基于所述第二负样本损失值和所述负样本总数确定第二平均负样本损失值。
[0140]
将第一正样本损失值除以正样本总数即得到第一平均正样本损失值,将第一负样本损失值除以负样本总数即得到第二平均负样本损失值。
[0141]
步骤636,将所述第一平均正样本损失值和所述第二平均负样本损失值的和确定为第二损失值。
[0142]
在一些实施例中,在步骤s007还可以通过以下步骤对训练好的特征提取模型的性能指标进行评估:
[0143]
步骤s008,获取测试数据。
[0144]
所述测试数据包括多个测试样本和各个测试样本的标签向量。
[0145]
步骤s009,利用所述训练好的特征提取模型对所述各个测试样本进行特征提取,得到所述各个测试样本的预测特征向量。
[0146]
步骤s010,基于所述各个测试样本的预测特征向量确定所述各个测试样本的预测信息,并基于所述各个测试样本的预测信息和对应的标签向量确定所述训练好的特征提取模型的评估指标值。
[0147]
该步骤在实现时,首先将各个测试样本的预测特征向量进行二值化处理,得到测试样本的二值化预测向量,进而再利用测试样本的二值化预测向量和类别代理向量,确定出各个测试样本的预测信息,然后在基于各个测试样本的预测信息和对应的标签向量确定所述训练好的特征提取模型的评估指标值。该评估指标值可以是精确率,还可以是召回率等。
[0148]
步骤s011,确定所述评估指标值小于预设的指标阈值,再次获取多个目标训练样本。
[0149]
确定评估指标值小于预设的指标阈值时,说明该训练好的特征提取模型的性能指标未达标,需要继续进行训练,此时再次获取多个目标训练样本。
[0150]
在一些实施例中,当评估指标值大于或者等于该指标阈值时,说明该训练好的特征提取模型的性能指标已达标,此时不需要继续对训练好的特征提取模型进行训练。
[0151]
步骤s012,利用所述多个目标训练样本对所述训练好的特征提取模型继续进行训练,直至再次训练好的特征提取模型的评估指标值达到所述指标阈值。
[0152]
通过上述步骤s007至步骤s012,能够在初步得到训练好的特征提取模型之后,对初步训练好的特征提取模型的性能指标进行评估,得到评估指标值,在确定评估指标值未达到预设的指标阈值时,说明初步训练好的特征提取模型的性能指标未达标,此时需要再次获取新的训练数据,并继续对特征提取模型进行训练,直至训练好的特征提取模型的评估指标达到指标阈值,如此能够保证利用训练好的特征提取模型进行特征提取时的准确性。
[0153]
基于上述实施例,本技术实施例再提供一种检索方法,应用于图1所示的网络架构,图5为本技术实施例提供的检索方法的再一种实现流程示意图,以下结合图5对本技术实施例提供的检索方法进行说明。
[0154]
步骤s201,服务器获取训练好的特征提取模型。
[0155]
该训练好的特征提取模型在训练过程中使用的损失函数包括能够对多标签无关样本信息进行度量距离排斥的第一损失函数分量和用于对训练样本进行聚类的第二损失函数分量。
[0156]
步骤s202,服务器获取所述检索数据库中的各个检索对象的对象信息。
[0157]
检索数据库中存储中各种类型的检索对象,例如可以是图像、文本、视频、音频等。
[0158]
步骤s203,服务器利用所述训练好的特征提取模型对各个对象信息进行特征提取,得到所述各个检索对象对应的对象特征向量。
[0159]
该步骤的实现过程与步骤s102的实现过程是类似的,在实现时可参考步骤s102的实现过程。
[0160]
步骤s204,服务器对所述各个检索对象对应的对象特征向量进行二值化处理,得到所述各个检索对象的二值化特征向量。
[0161]
该步骤在实现时,可以是利用深度哈希函数对对象特征向量进行二值化处理,将检索对象在原始空间的对象特征向量转化为汉明空间中的表达,得到二值化特征向量。二值化特征向量相比于初始的对象特征向量维度更低,且特征向量值为0或者1,比多位浮点数占用的存储空间要少。
[0162]
在一些实施例中,可以将进行二值化处理的二值化模块作为特征提取模型的一个中间层,在得到检索对象的特征向量之后,利用该二值化模块对特征向量进行二值化处理,使得特征提取模型最后输出的即为二值化特征向量。
[0163]
步骤s205,服务器将所述各个检索对象的二值化特征向量存储至所述检索数据库。
[0164]
步骤s206,终端启动应用客户端,并选择作为检索参考信息的图像。
[0165]
在本技术实施例中,该应用客户端可以是浏览器客户端,还可以是购物客户端、视频客户端等。在应用客户端的显示页面上提供有信息搜索入口控件,通过该信息搜索入口控件可以输入文字、语音、图像等搜索参考信息。在本技术实施例中,以搜索参考信息为图像为例进行说明,该图像可以是存储在终端本地空间的,并且该图像可以是利用终端自带的图像采集装置采集到的,也可以是从网络中下载的,还可以是由其他终端发送给该终端的,在本技术实施例对图像的来源不做限定。
[0166]
步骤s207,终端接收检索指令,并响应于该检索指令向服务器发送检索请求。
[0167]
在本技术实施例中,该检索请求中携带有作为检索参考信息的图像。
[0168]
步骤s208,服务器响应于接收到的检索请求,获取检索参考信息。
[0169]
在实现时,服务器解析该检索请求,以获取检索参考信息。
[0170]
步骤s209,服务器利用训练好的特征提取模型对检索参考信息进行特征提取,得到检索参考向量。
[0171]
该步骤的实现过程与步骤s102的实现过程是类似的,在实现时可参考步骤s102的实现过程。
[0172]
步骤s210,服务器对检索参考向量进行二值化处理,得到检索参考信息的二值化参考向量。
[0173]
该步骤的实现过程与步骤s204类似,在实现时,可以是利用深度哈希函数对检索参考向量进行二值化处理,将检索参考信息在原始空间的检索参考向量转化为汉明空间中的表达,得到二值化参考向量。
[0174]
步骤s211,服务器确定二值化参考向量和所述各个检索对象的二值化特征向量之间的各个距离。
[0175]
该步骤在实现时,可以确定二值化参考向量和各个检索对象的二值化特征向量之间的各个汉明距离。二值化参考向量与检索对象的二值化特征向量之间的距离越大,说明检索参考信息与该检索对象的相似度越低。
[0176]
步骤s212,服务器将小于距离阈值的距离对应的检索对象确定为目标对象。
[0177]
当某个检索对象的二值化特征向量与检索参考信息的二值化参考向量之间的距离小于预设的距离阈值时,说明该检索参考信息与该检索对象的相似度满足匹配条件,此时将该检索对象确定为目标对象。
[0178]
步骤s213,服务器将至少一个目标对象发送至终端。
[0179]
在实现时,服务器可以将至少一个目标对象携带于检索响应中,将检索响应发送至终端。并且服务器会在发送之前将至少一个目标对象按照与检索参考信息之间的距离从小到大的顺序进行排序,并将排序后的至少一个目标对象发送至终端。
[0180]
步骤s214,终端在自身的显示装置上显示至少一个目标对象。
[0181]
终端在显示至少一个目标对象时,也是按照与检索参考信息之间的距离从小到大的顺序进行显示的,也即与检索参考信息之间的相似度越高的目标对象,排在越靠前的显示位置。
[0182]
在本技术实施例提供检索方法中,服务器首先利用训练好的特征提取模型对检索数据库中的检索对象进行特征提取,并对提取出的对象特征向量进行二值化处理,得到二值化特征向量并将各个检索对象的二值化特征向量存储至数据库,如此不仅能够减少检索对象的特征向量存储所需的存储空间,之后终端在接收到检索指令后,向服务器发送携带有检索参考信息的检索请求,服务器首先利用训练好的特征提取模型对检索参考信息进行特征提取,得到检索参考向量,同样地,也对检测参考向量进行二值化处理,得到二值化参考向量,因此在确定检索参考信息与各个检索对象的相似度时,是确定二值化参考向量与各个检索对象的二值化特征向量之间的距离,从而能够降低计算复杂度,提高计算效率;之后服务器基于各个距离从多个检索对象中确定出至少一个目标对象,并将至少一个目标对象发送至终端,以在终端的显示装置上显示至少一个目标对象。由于训练好的特征提取模型在训练过程中利用的损失函数包括无关样本之间互相排斥的约束,因此能够保证利用训练好的特征提取模型提取出的无关检索对象的特征向量在度量空间是互相排斥的,从而使得在确定检索参考信息和各个检索对象的特征向量之间的距离时,保证检索参考信息与无关的检索对象之间的距离差别较大,从而避免出现检索参考信息与无关的检索对象之间相似度均较高而造成混淆的情况,进而提高检索结果的准确性。
[0183]
下面,将说明本技术实施例在一个实际的应用场景中的示例性应用。
[0184]
本技术实施例提供一种检索方法,图6为本技术实施例提供的模型训练和图像检
索的实现流程示意图,以下结合图6对本技术实施例提供的模型训练和图像检索过程进行说明。
[0185]
步骤s601,获取训练数据。
[0186]
步骤s602,利用特征提取模型提取训练对训练数据进行特征提取,得到训练特征向量。
[0187]
步骤s603,在训练阶段,利用训练特征向量和混合损失函数确定损失值。
[0188]
步骤s604,将损失值反向传播至特征提取模型,以进行网络参数更新。
[0189]
步骤s605,在推理阶段,利用训练好的特征提取模型提取检索图像的参考特征向量。
[0190]
步骤s606,对检索图像的参考特征向量进行二值化处理,得到二值化参考向量。
[0191]
步骤s607,基于二值化参考向量从检索数据库中确定检索结果。
[0192]
在特征提取模型的训练阶段,为了解决代理损失的泛化性差的缺陷,在本技术实施例提出一种基于代理及成对损失的混合损失函数,利用该混合损失函数对特征提取模型进行训练。其思路是引入少量关键的含有多标签的无关样本对信息,在不影响整体训练速度与收敛性的前提下,解决代理损失的问题,从而提升性能。该混合损失函数包括代理损失函数和无关样本对损失函数,以下分别进行说明。
[0193]
a)代理损失函数
[0194]
在本技术实施例中使用线性基线代理损失对样本进行聚类,代理损失计算公式如下:
[0195][0196]
其中,dm为训练集,pc为类代理集合,m为训练集样本数量,c为类别数,当第i个样本含有第j个标签时,l(y
i(j)
=1)为1,因此,表示正样本总数,当第i个样本不包含第j个标签时,l(y
i(j)
=0)为1,因此,表示负样本总数。
[0197]
需要说明的是,在实际应用过程中,可以尝试利用更先进的度量损失函数代替基线损失进行优化。
[0198]
当第i个样本含有第j个标签时,y
i(j)
=1,否则y
i(j)
=0,vi为第i个样本的特征向量,pj为第j类对应的类代理向量,cos
+
(a,b)代表正样本的余弦相似度损失,cos_(a,b)代表负样本的余弦相似度损失,计算公式如下:
[0199][0200]
[0201]
其中,ζ是间隔因子。
[0202]
b)无关样本对损失函数
[0203]
为了解决代理损失无法约束含有多标签的无关样本的缺陷,在本技术实施例中,引入了少量关键的含有多标签的无关样本对信息。无关样本对损失函数计算公式如下:
[0204][0205]
其中d’m’为训练集中含有多个标签的样本对集合,m’为该集合的数量,yi为第i个样本的标签,|yi·
yj|=0代表第i个样本与第j个样本无相同标签,当第i个样本与第j个样本之间无相同标签(也即第i个样本与第j个样本为无关样本对),那么l(|yi·
yj|=0)为1,表示无关样本对总数。
[0206]
c)混合损失函数
[0207]
为了调整代理损失及无关样本对损失之间的权重,在本技术实施例引入了平衡超参数β。总的混合损失函数的计算公式(2-5)如下:
[0208]
l
total
(dm,pc)=l
proxy
(dm,pc)+βl
neg_pair
(d'm)
ꢀꢀꢀꢀ
(2-5);
[0209]
最后,通过公式(2-6)得出优化后网络参数θ
*
及类代理向量集合p
*

[0210][0211]
以下对本技术实施例提供的特征提取模型的训练过程进行说明。
[0212]
在该模型的训练过程中,输入信息包括:训练集dm,哈希位数k,训练批次样本d
batch
,最终得到优化后的网络f
θ
及类代理向量集合pc。训练流程包括以下步骤:
[0213]
步骤s701,初始化网络参数θ=θ
(0)
,类代理向量集合pc=p
c(0)
,迭代次数t=0;
[0214]
步骤s702,t从0到100执行以下循环步骤,从而得到训练好的特征提取模型:
[0215]
a),从dm随机采样批次样本d
batch

[0216]
b)计算d
batch
内所有样本的特征向量vi=f
θ(t)
(xi);
[0217]
c)根据公式(2-1)计算代理损失l
proxy
(d
batch
,p
c(t)
);
[0218]
d)根据公式(2-4)计算无关样本对损失l
neg_pair
(d
batch’);
[0219]
e)根据公式(2-5)计算总损失l
total
(d
batch
,p
c(t)
);
[0220]
f)计算总损失的梯度;
[0221]
g)利用反向传播更新网络参数θ
(t+1)
,类代理向量集合p
c(t+1)

[0222]
h)t=t+1。
[0223]
利用本技术实施例提供的方法能够提供更加准确的多标签检索结果,并且在模型训练过程中拥有良好的训练时间与稳定性。
[0224]
表1、本技术实施例提供的检索方法与相关技术中的检索方法在标准多标签图像检索数据集flickr-25k和nus-wide上的平均精度下的性能对比结果表
[0225][0226][0227]
表2、本技术实施例提供的检索方法与相关技术中检索方法在标准多标签图像检索数据集voc-2007和voc-2012上平均精度指标下的性能对比结果表
[0228][0229]
通过表1和表2可以看出本技术实施例提供的方法在不同的数据集及不同的哈希位数下均领先于现有方法,达到最优的检索效果。另外,本技术实施例提供的多标签检索框架不仅可以应用于图像检索,也可以应用于视频检索、音频检索、跨模态检索等任何利用嵌入空间进行深度学习的多标签检索任务。
[0230]
可以理解的是,在本技术实施例中,涉及到用户信息的内容,例如,检索参考信息等相关的数据,当本技术实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
[0231]
下面继续说明本技术实施例提供的检索装置443的实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器430的检索装置443中的软件模块可以包括:
[0232]
第一获取模块4431,用于响应于接收到的检索请求,获取检索参考信息和训练好的特征提取模型,所述训练好的特征提取模型在训练过程中的损失函数至少包括能够对多标签无关样本信息进行度量距离排斥的第一损失函数分量;
[0233]
第一处理模块4432,用于利用所述训练好的特征提取模型对所述检索参考信息进行特征提取,得到检索参考向量;
[0234]
第一确定模块4433,用于基于所述检索参考向量从检索数据库中确定至少一个目标对象;
[0235]
第一输出模块4434,用于输出所述至少一个目标对象。
[0236]
在一些实施例中,该装置还包括:
[0237]
第二获取模块,用于获取预设的特征提取模型和训练数据集,所述训练数据集中包括多个训练样本和各个训练样本的标签向量;
[0238]
第三获取模块,用于获取各个类代理向量和每次训练模型所需的样本个数n,n为大于1的整数;
[0239]
第一预测模块,用于当确定未达到训练结束条件时,利用所述特征提取模型从所述训练数据集中获取n个目标训练样本,并利用所述特征提取模型对各个目标训练样本进行特征提取,得到所述各个目标训练样本的预测特征向量;
[0240]
第四获取模块,用于获取所述特征提取模型的损失函数,所述损失函数包括能够对多标签无关样本信息进行度量距离排斥的第一损失函数分量和用于对训练样本进行聚类的第二损失函数分量;
[0241]
第一训练模块,用于利用所述损失函数、所述各个目标训练样本的预测特征向量、所述各个目标训练样本的标签向量和各个类代理向量,对所述特征提取模型进行训练,直至达到训练结束条件,得到训练好的特征提取模型。
[0242]
在一些实施例中,该第一训练模块,还用于:
[0243]
基于所述各个目标训练样本的标签向量,确定至少一个多标签无关样本对;
[0244]
基于所述损失函数的第一损失函数分量、各个多标签无关样本对中目标训练样本的预测特征向量确定第一损失值;
[0245]
基于所述损失函数的第二损失函数分量、各个目标训练样本的预测特征向量、所述各个目标训练样本的标签向量和各个类代理向量确定第二损失值;
[0246]
基于所述第一损失值和所述第二损失值确定总损失值;
[0247]
基于所述损失值对所述特征提取模型进行反向传播训练,以对所述特征提取模型的参数进行调整。
[0248]
在一些实施例中,该第一训练模块,还用于:
[0249]
基于所述各个目标训练样本的标签向量,确定第i个目标训练样本和第j个目标训练样本是否具备任一个相同标签;
[0250]
当确定第i个目标训练样本和第j个目标训练样本不具备任一个相同标签时,将所述第i个目标训练样本和所述第j个目标训练样本确定为一个多标签无关样本对,其中,i=1,2,

n,j=1,2,

n,且i不等于j。
[0251]
在一些实施例中,该第一训练模块,还用于:
[0252]
获取多标签无关样本对的总对数;
[0253]
基于各个多标签无关样本对中的两个目标训练样本的预测特征向量,确定各个多标签无关样本对的第一负样本损失值;
[0254]
基于所述各个多标签无关样本对的第一负样本损失值和所述总对数确定第一平均负样本损失值;
[0255]
将所述第一平均负样本损失值确定为第一损失值。
[0256]
在一些实施例中,该第一训练模块,还用于:
[0257]
基于所述各个目标训练样本的标签向量和所述各个类代理向量,确定所述各个类代理向量对应的目标正训练样本和目标负训练样本;
[0258]
确定所述各个类代理向量对应的目标正训练样本的正样本总数和所述各个类代理向量对应的目标负训练样本的负样本总数;
[0259]
基于所述各个类代理向量和所述各个类代理向量对应的目标正训练样本的预测特征向量,确定第一正样本损失值;
[0260]
基于所述各个类代理向量和所述各个类代理向量对应的目标负训练样本的预测特征向量,确定第二负样本损失值;
[0261]
基于所述第一正样本损失值和所述正样本总数确定第一平均正样本损失值,基于所述第二负样本损失值和所述负样本总数确定第二平均负样本损失值;
[0262]
将所述第一平均正样本损失值和所述第二平均负样本损失值的和确定为第二损失值。
[0263]
在一些实施例中,该装置还包括:
[0264]
第五获取模块,用于获取训练迭代次数;
[0265]
第二确定模块,用于当所述训练迭代次数达到预设的次数阈值时,确定达到训练结束条件;或者,
[0266]
第三确定模块,用于当所述总损失值小于预设的损失阈值时,确定达到训练结束条件。
[0267]
在一些实施例中,该装置还包括:
[0268]
第六获取模块,用于获取测试数据,所述测试数据包括多个测试样本和各个测试样本的标签信息;
[0269]
第二预测模块,用于利用所述训练好的特征提取模型对所述各个测试样本进行特征提取,得到所述各个测试样本的预测特征向量;
[0270]
第四确定模块,用于基于所述各个测试样本的预测特征向量确定所述各个测试样本的预测信息,并基于所述各个测试样本的预测信息和对应的标签向量确定所述训练好的特征提取模型的评估指标值;
[0271]
第七获取模块,用于确定所述评估指标值小于预设的指标阈值,再次获取多个目标训练样本;
[0272]
第二训练模块,用于利用所述多个目标训练样本对所述训练好的特征提取模型继续进行训练,直至再次训练好的特征提取模型的评估指标值达到所述指标阈值。
[0273]
在一些实施例中,该装置还包括:
[0274]
第八获取模块,用于获取所述检索数据库中的各个检索对象的对象信息;
[0275]
第二处理模块,用于利用所述训练好的特征提取模型对各个对象信息进行特征提取,得到所述各个检索对象对应的对象特征向量;
[0276]
二值化模块,用于对所述各个检索对象对应的对象特征向量进行二值化处理,得到所述各个检索对象的二值化特征向量;
[0277]
存储模块,用于将所述各个检索对象的二值化特征向量存储至所述检索数据库。
[0278]
在一些实施例中,所述检索数据库中存储有各个检索对象的二值化特征向量,该
第一确定模块,还用于:
[0279]
对所述检索参考向量进行二值化处理,得到所述检索参考信息的二值化参考向量;
[0280]
确定所述二值化参考向量和所述各个检索对象的二值化特征向量的各个距离;
[0281]
将小于距离阈值的距离对应的检索对象确定为目标对象。
[0282]
需要说明的是,本技术实施例针对检索装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本装置实施例中未披露的技术细节,请参照本技术方法实施例的描述而理解。
[0283]
本技术实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本技术实施例上述的检索方法。
[0284]
本技术实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本技术实施例提供的检索方法,例如,如图3、图5、图6示出的检索方法。
[0285]
在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
[0286]
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
[0287]
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
[0288]
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
[0289]
以上所述,仅为本技术的实施例而已,并非用于限定本技术的保护范围。凡在本技术的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1