获取图像检索模型的方法、图像检索方法、装置和设备与流程

文档序号:29568404发布日期:2022-04-09 03:10阅读:69来源:国知局
获取图像检索模型的方法、图像检索方法、装置和设备与流程

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.在一种可能的实现方式中,所述确定模块,用于基于所述量化码本获取每个分段对应的多个量化码本;
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.本技术实施例提供的技术方案中初始图像检索模型中的量化码本模块所包括的量化码本随着初始图像检索模型的更新而更新,使得量化码本模块中包括的量化码本一直在发生变化,进而使得量化码本模块中所包括的量化码本与当前的特征量化模块相匹配,从而使得基于量化码本和量化向量得到的损失值的准确性更高。使用准确性更高的损失值对初始图像检索模型进行更新,使得更新过程更加准确,进而使得得到的目标图像检索模型的准确性较高,采用目标图像检索模型进行检索时的检索准确性更高。
附图说明
66.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
67.图1是本技术实施例提供的一种获取图像检索模型的方法、图像检索方法的实施环境示意图;
68.图2是本技术实施例提供的一种获取图像检索模型的方法的流程图;
69.图3是本技术实施例提供的一种conv2-x卷积层对应的残差模块的网络结构的示意图;
70.图4是本技术实施例提供的一种图像检索方法的流程图;
71.图5是本技术实施例提供的一种确定目标损失值的框架图;
72.图6是本技术实施例提供的一种获取图像检索模型的装置的结构示意图;
73.图7是本技术实施例提供的一种图像检索装置的结构示意图;
74.图8是本技术实施例提供的一种终端的结构示意图;
75.图9是本技术实施例提供的一种服务器的结构示意图。
具体实施方式
76.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
77.图1是本技术实施例提供的一种获取图像检索模型的方法、图像检索方法的实施环境示意图,如图1所示,该实施环境包括:终端101和服务器102。
78.终端101和服务器102均可以独立实现本技术实施例提供的获取图像检索模型的方法和图像检索方法。还可以基于终端101和服务器102的交互实现本技术实施例提供的获取图像检索模型的方法和图像检索方法。如,终端101获取样本图像,将样本图像发送至服务器102,由服务器102基于样本图像对初始图像检索模型进行更新,得到目标图像检索模型。终端101获取目标图像,将目标图像发送至服务器102,由服务器102对目标图像进行检索,得到图像检索结果,服务器102将图像检索结果发送至终端101。
79.终端101可以是智能手机、游戏主机、台式计算机、平板电脑、笔记本电脑、电子书阅读器、播放器、智能电视、车载终端等中的至少一种。终端101中安装和运行有用于图像检
索的客户端。
80.服务器102可以为一台服务器,也可以为多台服务器组成的服务器集群,还可以为云计算平台和虚拟化中心中的任意一种,本技术实施例对此不加以限定。服务器102与终端101通过有线网络或无线网络进行通信连接。当然,服务器102还可以具有其他功能,本技术实施例对此不加以限定。
81.基于上述实施环境,本技术实施例提供了一种获取图像检索模型的方法,以图2所示的本技术实施例提供的一种获取图像检索模型的方法的流程图为例,该方法可由电子设备执行,电子设备可以是图1中的终端101,也可以是图1中的服务器102。如图2所示,该方法包括下述步骤:
82.在步骤201中,获取样本图像和初始图像检索模型。
83.在本技术示例性实施例中,电子设备中存储有多个正样本对,每个正样本对中包括两个相似的样本,样本图像为任意一个正样本对中包括的任意一个样本,样本图像为需要进行检索的图像。样本图像可以是用户在某一个正样本对中选定的任一个样本,样本图像也可以是电子设备随机在多个正样本对中选中一个正样本对,在被选中的正样本对中随机选择的一个样本。当然,样本图像还可以是用户上传的图像,或者为基于搜索引擎得到的图像,本技术实施例对样本图像的来源不加以限定。样本图像的类别可以是人、也可以是动物,还可以是植物,或者是其他任意类型的图像,本技术实施例对样本图像的类别也不加以限定。
84.在一种可能的实现方式中,初始图像检索模型包括特征模块、特征量化模块和量化码本模块。其中,特征模块用于获取样本图像对应的特征向量,特征量化模块用于获取特征向量对应的量化向量,量化码本模块用于提供量化码本,量化码本随着初始图像检索模型的更新进行更新。
85.可选地,特征模块可以是卷积神经网络(convolutional neural network,cnn)模块。其中,卷积神经网络可以是resnet-101网络(一种网络),其中101用于表示网络中包含的隐藏层的层数为101层。当然,卷积神经网络还可以是resnet-18网络(一种网络),或者是resnet-50网络(一种网络),或者是inception v4网络(一种网络),或者是mobilenet v2网络(一种网络),本技术实施例不对卷积神经网络的类型进行限定。其中,以卷积神经网络为resnet-101网络,如下述表一所示为本技术实施例提供的卷积神经网络的学习参数。
86.表一
87.[0088][0089]
在上述表一中,conv1、conv2-x、conv3-x、conv4-x和conv5-x为五个不相同的卷积层。每个卷积层的输出尺寸各不相同,每个卷积层对应的残差模块(block)的网络结构也各不相同。
×
3blocks表示conv2-x卷积层由三个残差模块堆叠。
[0090]
如图3所示为本技术实施例提供的conv2-x卷积层对应的残差模块的网络结构的示意图。在该残差模块中,输入一个256维(256-d)的向量,经过一个1
×
1卷积层,得到一个64维的向量。再经过一个3
×
3卷积层进行整流(relu),得到一个64维的向量。再经过一个1
×
1的卷积层进行整流,得到一个256维的向量。为了防止降维时丢失一些特征,再将原来的256维的向量与1
×
1卷积层之后得到的256维的向量相加,将相加之后的向量进行整流,得到最终的输出向量。
[0091]
可选地,特征量化模块可以是哈希特征模块,特征量化模块用于将特征向量量化为二值特征,也即是将浮点特征转换为二值特征。如下述表二所示为本技术实施例提供的哈希特征模块的学习参数。
[0092]
表二
[0093][0094][0095]
在上述表二中,初始图像检索模型中的特征量化模块中池化层使用的是最大池化层,池化层的输出尺寸为1
×
2048。编码层使用的是全连接层,编码层的输出尺寸为1
×
128。其中,full connetction(全连接层)采用多层tanh激活。full connetction采用方差为0.01,均值为0的高斯分布进行初始化。
[0096]
可选地,初始图像检索模型的学习率为0.0005。
[0097]
可选地,如下述表三所示为本技术实施例提供的一种量化码本模块的学习参数的表格。
[0098]
表三
[0099][0100]
在上述表三中,量化码本模块中包括n个样本图像的特征向量,每个样本图像的特征向量为1
×
m维,将每个样本图像的特征向量分为d段,每一段的维度为m/d维,每段均维护一个k聚类中心的码本,因此,共有k
×
d个量化中心需要学习。
[0101]
其中,量化码本模块中存储有各个分段包括的多个量化码本,由于各个分段包括的多个量化码本为各个分段的聚类中心,也即是量化码本模块中存储有各个分段的多个聚类中心。
[0102]
示例性地,获取100个样本图像的特征向量,每个特征向量的维度为128维,将每个特征向量均分为4段,每段的维度为32维,因此,共得到4
×
100个子向量,可以获取到4个分段分别包括的量化码本。其中,第一个分段包括的量化码本的获取过程如下:将第一个分段包括的100个子向量进行聚类,得到64个第一聚类中心,这64个第一聚类中心即为第一个分段包括的量化码本。每个第一聚类中心包括一个或多个子向量。
[0103]
第二个分段包括的量化码本的获取过程如下,将第二个分段包括的100个子向量进行聚类,得到64个第二聚类中心,这64个第二聚类中心即为第二个分段包括的量化码本。每个第二聚类中心包括一个或多个子向量。
[0104]
第三个分段包括的量化码本的获取过程如下:将第三个分段包括的100个子向量进行聚类,得到64个第三聚类中心,这64个第三聚类中心即为第三个分段包括的量化码本。每个第三聚类中心包括一个或多个子向量。
[0105]
第四个分段包括的量化码本的获取过程如下:将第四个分段包括的100个子向量进行聚类,得到64个第四聚类中心,这64个第四聚类中心即为第四个分段包括的量化码本,每个第四聚类中心包括一个或多个子向量。
[0106]
其中,聚类可以采用k-means聚类算法(k均值聚类算法)进行聚类,还可以采用其他聚类算法进行聚类,本技术实施例对此不加以限定。
[0107]
可选地,由于量化码本需要对样本图像具备描述能力,故随着哈希特征模块的学习优化,旧的量化码本未必对当前哈希特征模块最优,因此,需要对量化码本模块包括的量化码本进行定期更新。每训练一次初始图像检索模型,会对量化码本模块中包括的量化码本进行更新,量化码本模块中包括的量化码本的更新过程如上述示例所示,在此不再赘述。
[0108]
需要说明的是,对初始图像检索模型进行第一轮训练时,由于量化码本还没有表征能力,因此不需要学习量化码本以及重建误差损失值和重建度量损失值。在第一轮学习结束后,如果初始图像检索模型的检索准确性还未达到要求,例如准确率未达到参考值,则在第二轮训练时对量化码本进行更新,基于更新之后的量化码本学习目标损失值。此时,目标损失值包括但不限于重建误差损失值和重建度量损失值中的至少一种,可选地,目标损
失值还可以包括三元组损失值和量化损失值中的至少一种。
[0109]
在步骤202中,调用特征模块获取样本图像对应的样本特征向量。
[0110]
在一种可能的实现方式中,调用特征模块获取样本图像对应的样本特征向量的过程为:将样本图像输入特征模块,基于特征模块的输出结果,得到样本图像对应的样本特征向量。
[0111]
示例性地,样本图像为图像1,样本图像对应的样本特征向量为(0.01,-10.1,12.04,-1.02)。
[0112]
在步骤203中,调用特征量化模块获取样本特征向量对应的样本量化向量。
[0113]
在一种可能的实现方式中,调用特征量化模块获取样本特征向量对应的样本量化向量的过程为:对于样本特征向量中的每个维度,响应于维度对应的数值小于目标数值,将维度对应的数值确定为第一数值,响应于维度对应的数值不小于目标数值,将维度对应的数值确定为第二数值,根据样本特征向量中的每个维度对应的数值得到样本特征向量对应的样本量化向量。其中,第一数值小于第二数值。
[0114]
可选地,特征量化模块按照下述公式(1)获取样本特征向量对应的样本量化向量。
[0115][0116]
在上述公式(1)中,bi为样本特征向量对应的样本量化向量中第i个维度对应的数值,ui为样本特征向量中第i个维度对应的数值,a为第一数值,b为第二数值,n为目标数值。
[0117]
示例性地,以第一数值a为-1,第二数值b为1,目标数值为0为例,获取上述步骤202获取到的样本特征向量(0.01,-10.1,12.04,-1.02)。样本特征向量中第一个维度对应的数值为0.01,由于第一个维度对应的数值大于0,因此将第一个维度对应的数值确定为1。样本向量特征中第二个维度对应的数值为-10.1,由于第二个维度对应的数值小于0,因此将第二个维度对应的数值确定为-1。样本向量特征中第三个维度对应的数值为12.04,由于第三个维度对应的数值大于0,因此将第三个维度对应的数值确定为1。样本向量特征中第四个维度对应的数值为-1.02,由于第四个维度对应的数值小于0,因此将第四个维度对应的数值确定为-1。基于每个维度对应的数值,确定样本特征向量对应的样本量化向量为(1,-1,1,-1)。
[0118]
在步骤204中,基于样本量化向量和量化码本确定目标损失值。
[0119]
在一种可能的实现方式中,基于样本量化向量和量化码本,确定目标损失值的过程如下:基于样本量化向量和量化码本,确定参考损失值,参考损失值包括重建误差损失值和重建度量损失值中的至少一种。基于参考损失值和参考损失值对应的权重,确定目标损失值。
[0120]
可选地,参考损失值包括重建误差损失值。响应于参考损失值为重建误差损失值时,基于样本量化向量和量化码本确定重建误差损失值的过程为:基于量化码本获取样本量化向量对应的重建向量,基于重建向量和样本量化向量,确定重建误差损失值。
[0121]
在一种可能的实现方式中,基于量化码本获取样本量化向量对应的重建向量的过程为:对样本量化向量进行分段,得到多个子向量,每个子向量的维数相同;基于量化码本和多个子向量,获取每个子向量对应的量化编码;将每个子向量对应的量化编码进行拼接,得到样本量化向量对应的重建向量。
[0122]
可选地,基于量化码本和多个子向量,获取每个子向量对应的量化编码的方式包括但不限于:基于量化码本,获取每个段对应的多个量化码本;对于任一子向量,确定任一子向量与任一子向量所在分段对应的多个量化码本之间的距离;将距离满足要求的量化码本作为任一子向量对应的量化编码。
[0123]
可选地,距离为汉明距离,也可以是欧氏距离,或者为其它距离,本技术实施例对此不加以限定。距离满足要求的量化码本是指距离最近的量化码本。
[0124]
示例性地,将样本量化向量分为4段,获取样本量化向量的第一个分段对应的子向量的量化编码的过程如下:获取量化码本模块提供的量化码本中属于第一个分段的多个量化码本;确定样本量化向量的第一个分段对应的子向量分别与多个量化码本之间的距离,将距离最小的量化码本作为样本量化向量的第一个分段对应的子向量的量化编码。
[0125]
可选地,获取到样本量化向量的每一个分段对应的子向量的量化编码之后,将样本量化向量的每一个分段对应的子向量的量化编码进行拼接,得到样本量化向量的重建向量。
[0126]
可选地,基于重建向量和样本量化向量,确定重建误差损失值的过程为:将重建向量和样本量化向量之间的距离作为重建误差损失值。
[0127]
如下公式(2)为本技术实施例提供的一种重建误差损失值的计算公式。
[0128][0129]
在上述公式(2)中,l
code-error
为重建误差损失值,为重建向量,xa为样本量化向量,ck为样本量化向量中第k个分段的子向量对应的量化编码,zk为样本量化向量中第k个分段的子向量对应的量化编码的权重值,zk的取值为1。
[0130]
需要说明的是,由于样本量化向量是多变的,而量化码本仅有有限的码本组成,不可能保证每个重建向量都与样本量化向量完全一致,因此,只需要保证量化码本对样本量化向量的每一个分段尽可能重建即可。
[0131]
可选地,参考损失值包括重建度量损失值。响应于参考损失值为重建度量损失值时,基于样本量化向量和量化码本,确定重建度量损失值的过程为:获取样本量化向量对应的重建向量;获取样本图像对应的正样本图像和负样本图像;获取正样本图像对应的第一量化向量和负样本图像对应的第二量化向量;基于重建向量、第一量化向量和第二量化向量,确定重建度量损失值。
[0132]
其中,获取样本量化向量对应的重建向量的过程可以详见上述参考损失值为重建误差损失值时,重建向量的确定过程,在此不再赘述。获取样本图像对应的正样本图像和负样本图像;获取正样本图像对应的第一量化向量和负样本图像对应的第二量化向量的过程可以详见下述参考损失值还包括三元组损失值时,三元组损失值的确定过程,在此也不再进行赘述。
[0133]
可选地,基于重建向量、第一量化向量和第二量化向量,确定重建度量损失值的过程包括不限于下述方式:确定重建向量和第一量化向量之间的距离,得到第一距离;确定重建向量和第二量化向量之间的距离,得到第二距离;基于第一距离、第二距离和第一参考数值,确定重建度量损失值。
[0134]
可选地,基于第一距离、第二距离和第一参考数值,确定重建度量损失值包括但不
限于下述方式:确定第一距离和第二距离的差值;基于第一距离和第二距离的差值,确定第一候选数值;将第一候选数值和第一参考数值中的最大值作为重建度量损失值。
[0135]
其中,第一距离和第二距离可以是l1范数距离,也可以是l2范数距离,还可以欧氏距离或者汉明距离,本技术实施例对此不加以限定。
[0136]
可选地,可以将第一距离和第二距离的差值直接作为第一候选数值,还可以在第一距离和第二距离的差值的基础上再添加一个第一超参数,进而得到第一候选数值,本技术实施例对第一候选数值的确定方式不进行限定。第一超参数可以是经验值,也可以随着模型训练过程实时进行调整,本技术实施例对此不加以限定。
[0137]
需要说明的是,第一参考数值可以是任意数值,本技术实施例对此不加以限定,示例性地,第一参考数值为零。
[0138]
以第一距离和第二距离为l2范数距离,第一参考数值为零为例,下述公式(3)为本技术实施例提供的一种重建度量损失值的计算公式。
[0139]
l
code-triplet
=max(||r
a-x
p
||-||r
a-xn||+β,0)
ꢀꢀ
(3)
[0140]
在上述公式(6)中,ra为重建向量,x
p
为第一量化向量,xn为第二量化向量,β为第一超参数。||r
a-x
p
||为第一距离,||r
a-xn||为第二距离,β的取值可以是经验值,如β的取值为15,也可以基于其他方式得到,如通过对模型的训练实时调整β的取值。
[0141]
可选地,参考损失值还可以包括三元组损失值。响应于参考损失值包括三元组损失值时,三元组损失值的确定过程如下:获取样本图像对应的正样本图像和样本图像对应的负样本图像;获取正样本图像对应的第一量化向量、负样本图像对应的第二量化向量,基于样本量化向量、第一量化向量和第二量化向量,确定三元组损失值。
[0142]
可选地,获取正样本图像对应的第一量化向量、负样本图像对应的第二量化向量的过程包括但不限于如下方式:获取正样本图像对应的第一特征向量,获取负样本图像对应的第二特征向量;获取第一特征向量对应的第一量化向量,获取第二特征向量对应的第二量化向量。
[0143]
需要说明的是,获取正样本图像对应的第一特征向量的过程以及获取负样本图像对应的第二特征向量的过程与获取样本图像对应的样本特征向量的过程一致,在此不再赘述。获取第一特征向量对应的第一量化向量的过程以及获取第二特征向量对应的第二量化向量的过程与获取样本特征向量对应的样本量化向量的过程一致,在此也不再进行赘述。
[0144]
可选地,基于样本量化向量、第一量化向量和第二量化向量,确定三元组损失值的过程包括但不限于如下方式:确定样本量化向量和第一量化向量之间的距离,得到第三距离;确定样本量化向量和第二量化向量之间的距离,得到第四距离;基于第三距离、第四距离和第二参考数值,确定三元组损失值。
[0145]
其中,第三距离和第四距离可以是l1范数距离,也可以是l2范数距离,还可以欧氏距离或者汉明距离,本技术实施例对此不加以限定。
[0146]
可选地,获取样本图像对应的正样本图像和样本图像对应的负样本图像的过程如下:由于电子设备中存储有多个正样本对,每个正样本对中包括两个相似的样本,将与样本图像位于同一个正样本对的另一个样本图像作为正样本图像。在剩下的多个正样本对中的每个正样本对中确定一个样本,得到多个候选样本图像,确定多个候选样本图像分别和样本图像之间的距离,将距离满足距离要求的候选样本图像作为负样本图像。
[0147]
可选地,确定多个候选样本图像分别和样本图像之间的距离的过程为:基于每个候选样本图像对应的特征向量和样本图像对应的样本特征向量,确定每个候选样本图像和样本图像之间的距离。其中,距离可以是欧氏距离,也可以是汉明距离,还可以是其他距离,本技术实施例对此不加以限定。
[0148]
其中,当距离为欧氏距离时,直接基于每个候选样本图像对应的特征向量和样本图像对应的样本特征向量,确定每个候选样本图像和样本图像之间的距离。如下述公式(4)为本技术实施例提供的候选样本图像i和样本图像之间的距离的计算公式。
[0149][0150]
在上述公式(4)中,i1为候选样本图像i的第一个维度对应的数值,x1为样本图像的第一个维度对应的数值,i2为候选样本图像i的第二个维度对应的数值,x2为样本图像的第二个维度对应的数值,in为候选样本图像i的第n个维度对应的数值,xn为样本图像的第n个维度对应的数值。
[0151]
可选地,当距离为汉明距离时,基于每个候选样本图像的特征向量,获取每个候选样本图像的量化向量。基于每个候选样本图像的量化向量和样本图像的样本量化向量,确定每个候选样本图像和样本图像之间的汉明距离。
[0152]
其中,量化向量由两个不相同的数值组成,汉明距离表示两个维度相同的向量中对应位不同的数量。
[0153]
示例性地,候选样本图像i的量化向量为(0,0,0,1),样本图像的样本量化向量为(1,1,0,1),则候选样本图像i和样本图像之间的汉明距离为2。其他候选样本图像和样本图像之间的汉明距离的确定过程与候选样本图像i和样本图像类似,在此不再进行赘述。
[0154]
可选地,获取到多个候选样本图像分别和样本图像之间的距离之后,按照距离由小到大的顺序对多个候选样本图像进行排序,多个候选样本图像中位于目标位置之前的样本图像均可以作为样本图像对应的负样本图像。其中,目标位置为任意位置,例如,目标位置为第21位,也即是前20个候选样本图像均可以作为负样本图像。
[0155]
可选地,基于第三距离、第四距离和第二参考数值,确定三元组损失值的过程为:获取第三距离和第四距离的差值,基于第三距离和第四距离的差值,获取第二候选数值,将第二候选数值和第二参考数值中的最大值作为三元组损失值。
[0156]
其中,可以将第三距离和第四距离的差值直接作为第二候选数值,还可以在第三距离和第四距离的差值的基础上再添加一个第二超参数,进而得到第二候选数值,本技术实施例对第二候选数值的确定方式不进行限定。第二超参数可以是经验值,也可以随着模型训练过程实时进行调整,本技术实施例对此不加以限定。
[0157]
需要说明的是,第二参考数值可以是任意数值,本技术实施例对此不加以限定,示例性地,第二参考数值为零。
[0158]
以第三距离和第四距离为l2范数距离,第二参考数值为零为例,如下述公式(5)为本技术实施例提供的一种三元组损失值的计算公式。
[0159]
l
triplet
=max(||x
a-x
p
||-||x
a-xn||+α,0)
ꢀꢀ
(5)
[0160]
在上述公式(3)中,l
triplet
为三元组损失值,xa为样本量化向量,x
p
为第一量化向量,xn为第二量化向量,||x
a-x
p
||为第三距离,||x
a-xn||为第四距离,α为第二超参数,α的取
值可以是经验值,如α的取值为20,也可以基于其他方式得到,如通过对模型的训练实时调整α的取值。
[0161]
可选地,参考损失值还可以包括量化损失值。响应于参考损失值包括量化损失值时,量化损失值的获取过程如下:确定样本量化向量和样本特征向量中,每一个维度对应的数值之间的差平方,将每一个维度对应的数值之间的差平方的和作为量化损失值。
[0162]
如下述公式(6)为本技术实施例提供的一种量化损失值的计算公式。
[0163][0164]
在上述公式(6)中,n为样本特征向量的维度,bi为样本量化向量中第i个维度的数值,ui为样本特征向量中第i个维度的数值。
[0165]
可选地,响应于参考损失值包括三元组损失值、量化损失值、重建误差损失值和重建度量损失值时,基于参考损失值和参考损失值对应的权重,确定目标损失值的过程如下:
[0166]
基于三元组损失值、量化损失值、重建误差损失值、重建度量损失值、三元组损失权重、量化损失权重、重建误差损失权重和重建度量损失权重,确定目标损失值。
[0167]
可选地,基于三元组损失值、量化损失值、重建误差损失值、重建度量损失值、三元组损失权重、量化损失权重、重建误差损失权重和重建度量损失权重,按照下述公式(7)确定目标损失值。
[0168]
l
total
=w1*l
triplet
+w2*l
quantization
+w3*l
code-error
+w4*l
code-triplet
ꢀꢀ
(7)
[0169]
在上述公式(7)中,l
total
为目标损失值,l
triplet
为三元组损失值,l
quantization
为量化损失值,l
code-error
为重建误差损失值,l
code-triplet
为重建度量损失值。w1为三元组损失权重,w2为量化损失权重,w3为重建误差损失权重,w4为重建度量损失权重。
[0170]
其中,三元组损失权重、量化损失权重、重建误差损失权重和重建度量损失权重可以为人工设置的参数,也可以基于应用场景进行调整,本技术实施例对此不加以限定。示例性地,三元组损失权重为1,量化损失权重为0.1,重建误差损失权重为0.01,重建度量损失权重为0.5。
[0171]
在步骤205中,基于目标损失值对初始图像检索模型进行更新,得到目标图像检索模型。
[0172]
在一种可能的实现方式中,确定出目标损失值之后,响应于目标损失值不大于损失阈值,说明初始图像检索模型有较好的检索能力,直接将初始图像检索模型作为目标图像检索模型。响应于目标损失值大于损失阈值,按照梯度下降算法对初始图像检索模型进行更新,得到更新之后的图像检索模型;基于更新之后的图像检索模型,获取更新之后的目标损失值,响应于更新之后的目标损失值不大于损失阈值,将更新之后的图像检索模型作为目标图像检索模型。响应于更新之后的目标损失值还是大于损失阈值,则再对更新之后的图像检索模型进行更新,直至更新之后的目标损失值不大于损失阈值,将更新之后的目标损失值不大于损失阈值时对应的图像检索模型作为目标图像检索模型。
[0173]
其中,按照梯度下降算法对初始图像检索模型进行更新,得到更新之后的图像检索模型的过程为:将目标损失值进行梯度后向计算,得到初始图像检索模型中模型参数的更新值,基于模型参数的更新值对初始图像检索模型进行更新,得到更新之后的图像检索模型。可选地,梯度下降算法为随机梯度下降算法。
[0174]
可选地,响应于目标损失值大于损失阈值,按照梯度下降算法对初始图像检索模型进行更新,得到更新之后的图像检索模型之前,还需要判断初始图像检索模型中是否存在历史记忆单元,如果存在历史记忆单元则将历史记忆单元清空。历史记忆单元用于存储量化码本。将历史记忆单元清空之后,在下一次训练过程中更新量化码本模块包括的量化码本,将下一次训练过程中更新得到的量化码本存储在历史记忆单元中。
[0175]
上述方法中初始图像检索模型中的量化码本模块所包括的量化码本随着初始图像检索模型的更新而更新,使得量化码本模块中包括的量化码本一直在发生变化,进而使得量化码本模块中所包括的量化码本与当前的特征量化模块相匹配,从而使得基于量化码本和量化向量得到的损失值的准确性更高。使用准确性更高的损失值对初始图像检索模型进行更新,使得更新过程更加准确,进而使得得到的目标图像检索模型的准确性较高,采用目标图像检索模型进行检索时的检索准确性更高。
[0176]
图4所示为本技术实施例提供的一种图像检索方法的流程图,该方法可由电子设备执行,电子设备可以是图1中的终端101,也可以是图1中的服务器102,该方法包括下述步骤:
[0177]
在步骤401中,获取待检索的目标图像和目标图像检索模型。
[0178]
其中,目标图像检索模型基于上述图2所示的实施例得到。
[0179]
在本技术示例性实施例中,目标图像可以是用户上传的一张图像,也可以是在电子设备的存储空间中随机获取的一张图像,还可以是基于图像搜索引擎得到的一张图像,还可以是其他方式获取到的图像,本技术实施例对目标图像的获取方式不加以限定。目标图像的类别可以是人,也可以是动物,还可以是植物,本技术实施例对目标图像的类别也不加以限定。
[0180]
可选地,目标图像检索模型的获取过程详见上述图2所示的实施例,在此不再进行赘述。
[0181]
在步骤402中,将目标图像输入目标图像检索模型,得到目标图像对应的量化向量。
[0182]
在一种可能的实现方式中,目标图像检索模型包括特征模块和特征量化模块。其中,特征模块用于获取图像的特征向量,特征量化模块用于获取特征向量对应的量化向量。
[0183]
可选地,将目标图像输入目标图像检索模型,得到目标图像对应的量化向量的过程包括但不限于下述方式:将目标图像输入目标图像检索模型的特征模块,得到目标图像的特征向量。将目标图像的特征向量输入目标图像检索模型的特征量化模块,得到目标图像的量化向量。
[0184]
其中,将目标图像输入目标图像检索模型的特征模块,得到目标图像的特征向量的过程与上述图2所示的实施例中获取样本图像对应的样本特征向量的过程类似,在此不再赘述。将目标图像的特征向量输入目标图像检索模型的特征量化模块,得到目标图像的量化向量的过程与上述图2所示的实施例中获取样本特征向量对应的样本量化向量的过程类似,在此不再赘述。
[0185]
在步骤403中,基于目标图像对应的量化向量与目标图像检索模型中的量化码本获取图像检索结果。
[0186]
在一种可能的实现方式中,目标图像检索模型中还包括量化码本模块,量化码本
模块用于提供量化码本。基于目标图像对应的量化向量和目标图像检索模型中的量化码本获取图像检索结果的过程为:
[0187]
对目标图像对应的量化向量进行分段,得到c个子向量。基于量化码本和c个子向量,获取每个子向量距离最近的量化码本,得到c个量化码本。召回c个量化码本下的所有样本图像。获取c个量化码本下的所有样本图像的交集,得到d个样本图像。确定d个样本图像分别与目标图像之间的距离,将距离满足一定要求的样本图像作为图像检索结果。
[0188]
其中,确定d个样本图像分别与目标图像之间的距离的方式包括但不限于:确定d个样本图像的量化向量分别与目标图像的量化向量之间的距离。其中,距离可以是欧氏距离,也可以是汉明距离,本技术实施例对此不加以限定。
[0189]
可选地,还可以获取c个量化码本下的所有样本图像的并集,得到e个样本图像,确定e个样本图像分别与目标图像之间的距离,将距离满足一定要求的样本图像作为图像检索结果。
[0190]
其中,c、d、e均为正整数,且e的取值大于d的取值。
[0191]
需要说明的是,距离满足一定要求的样本图像是指按照距离由小到大进行排序,将排在前目标位数的样本图像作为图像检索结果。示例性地,将排在前10位的样本图像作为图像检索结果,则图像检索结果中包括10张样本图像。
[0192]
上述方法中,由于目标图像检索模型是通过对初始图像检索模型训练得到的,而初始图像检索模型中的量化码本模块所包括的量化码本随着初始图像检索模型的更新而更新,使得量化码本模块中包括的量化码本一直在发生变化,进而使得量化码本模块中所包括的量化码本与当前的特征量化模块相匹配,从而使得基于量化码本和量化向量得到的损失值的准确性更高。使用准确性更高的损失值对初始图像检索模型进行更新,使得更新过程更加准确,进而使得得到的目标图像检索模型的准确性较高,采用目标图像检索模型进行检索时的检索准确性更高。
[0193]
图5所示为本技术实施例提供的一种确定目标损失值的框架图,在该图5中,将样本图像输入特征模块,得到样本图像的特征向量。将样本图像的特征向量输入特征量化模块,得到特征向量对应的量化向量。基于量化向量获取三元组损失值和量化损失值。量化码本模块用于提供量化码本,随着目标损失值对模型的更新,量化码本模块中的量化码本也在更新。基于量化向量和量化码本模块,对样本图像的向量进行重建,得到重建向量。基于重建向量确定重建误差损失值和重建度量损失值。基于三元组损失值、量化损失值、重建度量损失值和重建误差损失值,确定目标损失值。
[0194]
图6所示为本技术实施例提供的一种获取图像检索模型的装置的结构示意图,如图6所示,该装置包括:
[0195]
获取模块601,用于获取样本图像和初始图像检索模型,初始图像检索模型包括特征模块、特征量化模块和量化码本模块,特征模块用于获取样本图像对应的特征向量,特征量化模块用于获取特征向量对应的量化向量,量化码本模块用于提供量化码本,量化码本随着初始图像检索模型的更新进行更新;
[0196]
获取模块601,用于调用特征模块获取样本图像对应的样本特征向量;
[0197]
获取模块601,用于调用特征量化模块获取样本特征向量对应的样本量化向量;
[0198]
确定模块602,用于基于样本量化向量和量化码本确定目标损失值;
[0199]
更新模块603,用于基于目标损失值对初始图像检索模型进行更新,得到目标图像检索模型。
[0200]
在一种可能的实现方式中,确定模块602,用于基于样本量化向量和量化码本,确定参考损失值,参考损失值包括重建误差损失值和重建度量损失值中的至少一种;
[0201]
基于参考损失值与参考损失值对应的权重,确定目标损失值。
[0202]
在一种可能的实现方式中,参考损失值包括重建误差损失值;
[0203]
确定模块602,用于基于量化码本获取样本量化向量对应的重建向量;
[0204]
基于重建向量和样本量化向量,确定重建误差损失值。
[0205]
在一种可能的实现方式中,确定模块602,用于对样本量化向量进行分段,得到多个子向量,每个子向量的维数相同;
[0206]
基于量化码本和多个子向量获取每个子向量对应的量化编码;
[0207]
将每个子向量对应的量化编码进行拼接,得到样本量化向量对应的重建向量。
[0208]
在一种可能的实现方式中,确定模块602,用于基于量化码本获取每个分段对应的多个量化码本;
[0209]
对于任一子向量,确定任一子向量与任一子向量所在分段对应的多个量化码本之间的距离,将距离满足要求的量化码本作为任一子向量对应的量化编码。
[0210]
在一种可能的实现方式中,确定模块602,用于将重建向量和样本量化向量之间的距离作为重建误差损失值。
[0211]
在一种可能的实现方式中,参考损失值包括重建度量损失值;
[0212]
确定模块602,用于获取样本量化向量对应的重建向量;
[0213]
获取样本图像对应的正样本图像和负样本图像;
[0214]
获取正样本图像对应的第一量化向量和负样本图像对应的第二量化向量;
[0215]
基于重建向量、第一量化向量和第二量化向量,确定重建度量损失值。
[0216]
在一种可能的实现方式中,确定模块602,用于确定重建向量和第一量化向量之间的距离,得到第一距离;
[0217]
确定重建向量和第二量化向量之间的距离,得到第二距离;
[0218]
基于第一距离、第二距离和第一参考数值,确定重建度量损失值。
[0219]
在一种可能的实现方式中,确定模块602,用于确定第一距离和第二距离的差值;
[0220]
基于第一距离和第二距离的差值,确定第一候选数值;
[0221]
将第一候选数值和第一参考数值中的最大值作为重建度量损失值。
[0222]
在一种可能的实现方式中,参考损失值还包括三元组损失值;
[0223]
确定模块602,用于获取样本图像对应的正样本图像和负样本图像;
[0224]
获取正样本图像对应的第一量化向量、负样本图像对应的第二量化向量;
[0225]
确定样本量化向量和第一量化向量之间的距离,得到第三距离;
[0226]
确定样本量化向量和第二量化向量之间的距离,得到第四距离;
[0227]
基于第三距离、第四距离和第二参考数值,确定三元组损失值。
[0228]
在一种可能的实现方式中,参考损失值还包括量化损失值;
[0229]
确定模块602,用于确定样本量化向量和样本特征向量中,每一个维度对应的数值之间的差平方;
[0230]
将每一个维度对应的数值之间的差平方的和作为量化损失值。
[0231]
在一种可能的实现方式中,更新模块603,用于响应于目标损失值大于损失阈值,按照梯度下降算法对初始图像检索模型进行更新,得到更新之后的图像检索模型;
[0232]
基于更新之后的图像检索模型,获取更新之后的目标损失值;
[0233]
响应于更新之后的目标损失值不大于损失阈值,将更新之后的图像检索模型作为目标图像检索模型。
[0234]
在一种可能的实现方式中,获取模块601,用于对于样本特征向量中的每个维度,响应于维度对应的数值小于目标数值,将维度对应的数值确定为第一数值,或者,响应于维度对应的数值不小于目标数值,将维度对应的数值确定为第二数值;
[0235]
根据样本特征向量中每个维度对应的数值得到样本特征向量对应的样本量化向量,第一数值小于第二数值。
[0236]
上述装置中初始图像检索模型中的量化码本模块所包括的量化码本随着初始图像检索模型的更新而更新,使得量化码本模块中包括的量化码本一直在发生变化,进而使得量化码本模块中所包括的量化码本与当前的特征量化模块相匹配,从而使得基于量化码本和量化向量得到的损失值的准确性更高。使用准确性更高的损失值对初始图像检索模型进行更新,使得更新过程更加准确,进而使得得到的目标图像检索模型的准确性较高,采用目标图像检索模型进行检索时的检索准确性更高。
[0237]
图7所示为本技术实施例提供的一种图像检索装置的结构示意图,如图7所示,该装置包括:
[0238]
获取模块701,用于获取待检索的目标图像和目标图像检索模型,目标图像检索模型如上述图6所示的装置得到;
[0239]
确定模块702,用于将目标图像输入至目标图像检索模型,得到目标图像对应的量化向量;
[0240]
获取模块701,用于基于目标图像对应的量化向量与目标图像检索模型中的量化码本获取图像检索结果。
[0241]
上述装置中,由于目标图像检索模型是通过对初始图像检索模型训练得到的,而初始图像检索模型中的量化码本模块所包括的量化码本随着初始图像检索模型的更新而更新,使得量化码本模块中包括的量化码本一直在发生变化,进而使得量化码本模块中所包括的量化码本与当前的特征量化模块相匹配,从而使得基于量化码本和量化向量得到的损失值的准确性更高。使用准确性更高的损失值对初始图像检索模型进行更新,使得更新过程更加准确,进而使得得到的目标图像检索模型的准确性较高,采用目标图像检索模型进行检索时的检索准确性更高。
[0242]
应理解的是,上述图6或图7提供的装置在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
[0243]
图8示出了本技术一个示例性实施例提供的终端800的结构框图。
[0244]
通常,终端800包括有:处理器801和存储器802。
[0245]
处理器801可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器801可以采用dsp(digital signal processing,数字信号处理)、fpga(field-programmable gate array,现场可编程门阵列)、pla(programmable logic array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称cpu(central processing unit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以集成有gpu(graphics processing unit,图像处理器),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括ai(artificial intelligence,人工智能)处理器,该ai处理器用于处理有关机器学习的计算操作。
[0246]
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本技术中图2所示的方法实施例提供的获取图像检索模型的方法,或者实现本技术中图4所示的方法实施例提供的图像检索方法。
[0247]
在一些实施例中,终端800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:射频电路804、显示屏805、摄像头组件806、音频电路807、定位组件808和电源809中的至少一种。
[0248]
外围设备接口803可被用于将i/o(input/output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
[0249]
射频电路804用于接收和发射rf(radio frequency,射频)信号,也称电磁信号。射频电路804通过电磁信号与通信网络以及其他通信设备进行通信。射频电路804将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路804包括:天线系统、rf收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路804可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:万维网、城域网、内联网、各代移动通信网络(2g、3g、4g及5g)、无线局域网和/或wifi(wireless fidelity,无线保真)网络。在一些实施例中,射频电路804还可以包括nfc(near field communication,近距离无线通信)有关的电路,本技术对此不加以限定。
[0250]
显示屏805用于显示ui(user interface,用户界面)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏805是触摸显示屏时,显示屏805还具有采集在显示屏805的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。此时,显示屏805还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏805可以为一个,设置在终端800的前面板;在另一些实施
例中,显示屏805可以为至少两个,分别设置在终端800的不同表面或呈折叠设计;在另一些实施例中,显示屏805可以是柔性显示屏,设置在终端800的弯曲表面上或折叠面上。甚至,显示屏805还可以设置成非矩形的不规则图形,也即异形屏。显示屏805可以采用lcd(liquid crystal display,液晶显示屏)、oled(organic light-emitting diode,有机发光二极管)等材质制备。
[0251]
摄像头组件806用于采集图像或视频。可选地,摄像头组件806包括前置摄像头和后置摄像头。通常,前置摄像头设置在终端800的前面板,后置摄像头设置在终端800的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及vr(virtual reality,虚拟现实)拍摄功能或者其它融合拍摄功能。在一些实施例中,摄像头组件806还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。
[0252]
音频电路807可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器801进行处理,或者输入至射频电路804以实现语音通信。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在终端800的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。扬声器则用于将来自处理器801或射频电路804的电信号转换为声波。扬声器可以是传统的薄膜扬声器,也可以是压电陶瓷扬声器。当扬声器是压电陶瓷扬声器时,不仅可以将电信号转换为人类可听见的声波,也可以将电信号转换为人类听不见的声波以进行测距等用途。在一些实施例中,音频电路807还可以包括耳机插孔。
[0253]
定位组件808用于定位终端800的当前地理位置,以实现导航或lbs(location based service,基于位置的服务)。定位组件808可以是基于美国的gps(global positioning system,全球定位系统)、中国的北斗系统或俄罗斯的伽利略系统的定位组件。
[0254]
电源809用于为终端800中的各个组件进行供电。电源809可以是交流电、直流电、一次性电池或可充电电池。当电源809包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。
[0255]
在一些实施例中,终端800还包括有一个或多个传感器810。该一个或多个传感器810包括但不限于:加速度传感器811、陀螺仪传感器812、压力传感器813、指纹传感器814、光学传感器815以及接近传感器816。
[0256]
加速度传感器811可以检测以终端800建立的坐标系的三个坐标轴上的加速度大小。比如,加速度传感器811可以用于检测重力加速度在三个坐标轴上的分量。处理器801可以根据加速度传感器811采集的重力加速度信号,控制显示屏805以横向视图或纵向视图进行用户界面的显示。加速度传感器811还可以用于游戏或者用户的运动数据的采集。
[0257]
陀螺仪传感器812可以检测终端800的机体方向及转动角度,陀螺仪传感器812可以与加速度传感器811协同采集用户对终端800的3d动作。处理器801根据陀螺仪传感器812采集的数据,可以实现如下功能:动作感应(比如根据用户的倾斜操作来改变ui)、拍摄时的
memory,cd-rom)、磁带、软盘和光数据存储设备等。
[0266]
在示例性实施例中,还提供了一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品中存储有至少一条计算机指令,该至少一条计算机指令由处理器加载并执行,以使计算机实现上述图2所示的方法实施例提供的获取图像检索模型的方法,或者实现上述图4所示的方法实施例提供的图像检索方法。
[0267]
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
[0268]
上述本技术实施例序号仅仅为了描述,不代表实施例的优劣。
[0269]
以上所述仅为本技术的示例性实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1