一种特征值ID的管理方法、装置、电子设备及存储介质与流程

文档序号:23809993发布日期:2021-02-03 12:29阅读:122来源:国知局
一种特征值ID的管理方法、装置、电子设备及存储介质与流程
一种特征值id的管理方法、装置、电子设备及存储介质
技术领域
[0001]
本发明涉及特征搜索技术领域,尤其涉及一种特征值id的管理方法、装置、电子设备及存储介质。


背景技术:

[0002]
目前,在基于gpu硬件平台的搜索系统中,我们在显存中保存了特征值以及特征值的id。由于这个特征值id一般是结构化引擎生成的唯一的id值,用于区分每个抓拍到的人像。为了满足不断增加的抓拍数量,一般都是用无符号长整型的数据类型存储(范围为:0~18446744073709551615),如图1所示。这个数据类型表示的数据范围已经远远超出了单个gpu卡所能存储的特征值个数。这就导致如下两个问题:(1)gpu设备内存中特征值id占用了过多的存储空间,gpu存储空间的利用率变低;(2)对特征值id的读写耗时长,导致搜索相关的增删改查性能降低。


技术实现要素:

[0003]
本发明实施例提供一种特征值id的管理方法,能够解决了现有技术中gpu存储空间的利用率低、gpu特征值id的读写耗时长、特征搜索的搜索效率低等问题。
[0004]
第一方面,本发明实施例提供一种特征值id的管理方法,所述方法包括:
[0005]
获取长特征值id;
[0006]
生成与所述长特征值id对应的短特征值id,所述长特征值id与短特征值id之间存在映射关系;
[0007]
基于所述长特征值id与所述短特征值id之间的映射关系建立映射表;
[0008]
将所述长特征值id、短特征值id以及所述映射表存储到服务器中,且将所述短特征值id存储到gpu中。
[0009]
可选的,所述生成与所述长特征值id对应的短特征值id的步骤包括:
[0010]
获取短特征值id预存gpu卡的卡号,以得到第一码段;
[0011]
获取短特征值id预存gpu卡上的相对偏移值,以得到第二码段;
[0012]
基于所述第一码段以及第二码段生成与所述长特征值id对应的短特征值id。
[0013]
可选的,所述长特征值id与所述短特征值id之间存在一一对应关系,所述映射表包括第一映射表和/或第二映射表;所述基于所述长特征值id与所述短特征值id之间的映射关系建立映射表的步骤包括:
[0014]
基于所述长特征值id与所述短特征值id之间的一一对应关系将所述长特征值id做为第一键值以及将所述短特征值id做为第一目标值建立对应的第一映射表;
[0015]
和/或,基于所述短特征值id与所述长特征值id之间的一一对应关系将所述短特征值id做为第二键值以及将所述长特征值id做为第二目标值建立对应的第二映射表。
[0016]
可选的,所述方法还包括以下步骤:
[0017]
接收搜索指令,所述搜索指令包括长特征值id或短特征值id;
[0018]
根据接收到的长特征值id基于所述第一映射表查询到与所述长特征值id对应的短特征值id;
[0019]
将查询到的短特征值id对应的图像返回给用户端;
[0020]
或,根据接收到的短特征值id基于所述第二映射表查询到与所述短特征值id对应的长特征值id;
[0021]
将查询到的长特征值id对应的图像返回给用户端。
[0022]
可选的,所述服务器中还存储有与所述长特征值id对应的长特征值、以及与所述短特征值id对应的短特征值,所述gpu中还存储有与所述短特征值id对应的短特征值;所述方法还包括以下步骤:
[0023]
接收删除指令,所述删除指令包括长特征值以及对应的长特征值id或短特征值以及对应的短特征值id;
[0024]
根据所述长特征值id以及第一映射表删除所述服务器中的长特征值以及对应的长特征值id、短特征值以及对应的短特征值id、以及第一映射表中长特征值id与短特征值id之间的对应关系,且删除gpu中存储的短特征值以及对应的短特征值id;
[0025]
或,根据所述短特征值id以及第二映射表删除所述服务器中的短特征值以及短特征值id、长特征值以及对应的长特征值id、以及第二映射表中短特征值id与长特征值id之间的对应关系,且删除gpu中存储的短特征值以及对应的短特征值id。
[0026]
第二方面,本发明实施例还提供一种特征值id的管理装置,所述装置包括:
[0027]
获取模块,用于获取长特征值id;
[0028]
生成模块,用于生成与所述长特征值id对应的短特征值id,所述长特征值id与短特征值id之间存在映射关系;
[0029]
建立模块,用于基于所述长特征值id与所述短特征值id之间的映射关系建立映射表;
[0030]
存储模块,用于将所述长特征值id、短特征值id以及所述映射表存储到服务器中,且将所述短特征值id存储到gpu中。
[0031]
可选的,所述生成模块包括:
[0032]
第一获取单元,用于获取短特征值id预存gpu卡的卡号,以得到第一码段;
[0033]
第二获取单元,用于获取短特征值id预存gpu卡上的相对偏移值,以得到第二码段;
[0034]
生成单元,用于基于所述第一码段以及第二码段生成与所述长特征值id对应的短特征值id。
[0035]
可选的,所述长特征值id与所述短特征值id之间存在一一对应关系,所述映射表包括第一映射表和/或第二映射表;所述建立模块包括:
[0036]
第一建立单元,用于基于所述长特征值id与所述短特征值id之间的一一对应关系将所述长特征值id做为第一键值以及将所述短特征值id做为第一目标值建立对应的第一映射表;
[0037]
和/或,第二建立单元,用于将所述短特征值id与所述长特征值id之间的一一对应关系将所述短特征值id做为第二键值以及将所述长特征值id做为第二目标值建立对应的第二映射表。
[0038]
第三方面,本发明实施例还提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中提供的特征值id的管理方法中的步骤。
[0039]
第四方面,本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中提供的特征值id的管理方法中的步骤。
[0040]
在本发明实施例中,通过获取长特征值id;生成与长特征值id对应的短特征值id,长特征值id与短特征值id之间存在映射关系;基于长特征值id与短特征值id之间的映射关系建立映射表;将长特征值id、短特征值id以及映射表存储到服务器中,且将短特征值id存储到gpu中。这样可以合理的利用服务器的大内存储空间存储长特征值id、短特征值id、以及映射表,而gpu只需要存储短特征值id,避免长特征值id以及映射表占用gpu显存的存储空间,以释放gpu的存储空间。在gpu进行搜索工作时,gpu可以有足够的存储空间,进而可以提高gpu存储空间的利用率。且在服务器与gpu之间通过映射表可以双向查询到对应的长特征值id或短特征值id,同时仅仅将短特征值id录入gpu,能够减少gpu中特征值id的读写耗时,可以提高特征搜索的搜索效率。
附图说明
[0041]
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0042]
图1是现有技术提供的一种特征值id管理机制示意图;
[0043]
图2是本发明实施例提供的一种特征值搜索系统的示意图;
[0044]
图3是本发明实施例提供的一种特征值id的管理方法的流程图;
[0045]
图4是本发明实施例中步骤202提供的一种方法的流程图;
[0046]
图5是本发明实施例提供的一种短特征值id生成方法的流程图;
[0047]
图6是本发明实施例中步骤203提供的一种方法的流程图;
[0048]
图7是本发明实施例提供的一种第一映射表生成方法的流程图;
[0049]
图8是本发明实施例提供的一种第二映射表生成方法的流程图;
[0050]
图9是本发明实施例提供的特征值id管理机制的示意图;
[0051]
图10是本发明实施例提供的另一种特征值id的管理方法的流程图;
[0052]
图11是本发明实施例提供的又一种特征值id的管理方法的流程图;
[0053]
图12是本发明实施例提供的一种特征值id的管理装置的结构示意图;
[0054]
图13是本发明实施例中生成模块提供的一种结构示意图;
[0055]
图14是本发明实施例中建立模块提供的一种结构示意图;
[0056]
图15是本发明实施例提供的另一种特征值id的管理装置的结构示意图;
[0057]
图16是本发明实施例提供的又一种特征值id的管理装置的结构示意图;
[0058]
图17是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
[0059]
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0060]
为了更清楚解释本发明的技术方案,如图2所示,图2是本发明实施例提供的一种特征值搜索系统的示意图,该特征值搜索系统100包括:服务器101、网络102、gpu(graphics processing unit,图形处理器)103。其中,该服务器可以通过该网络与所述gpu进行通信。该网络可以是有线网络还可以是无线网络。无线可以是通过wifi(wireless-fidelity)连接、蓝牙连接、wimax(worldwide interoperability for microwave access)连接、zigbee连接、uwb(ultra wideband)连接、以及其他现在已知或将来开发的无线连接方式。
[0061]
该用户可以基于该特征值搜索系统100获取长特征值id(identity document,身份证标识号);生成与长特征值id对应的短特征值id,长特征值id与短特征值id之间存在映射关系;基于长特征值id与短特征值id之间的映射关系建立映射表;将长特征值id、短特征值id以及映射表存储到服务器中,且将短特征值id存储到gpu中。这样可以合理的利用服务器的大内存储空间存储长特征值id、短特征值id、以及映射表,而gpu只需要存储短特征值id,避免长特征值id以及映射表占用gpu显存的存储空间,以释放gpu的存储空间。在gpu进行搜索工作时,gpu可以有足够的存储空间,进而可以提高gpu存储空间的利用率。且在服务器与gpu之间通过映射表可以双向查询到对应的长特征值id或短特征值id,同时仅仅将短特征值id录入gpu,能够减少gpu中特征值id的读写耗时,可以提高特征搜索的搜索效率。
[0062]
应该理解,图2中的服务器101、网络102、gpu 103的数目仅仅是示意性的。根据实现需要,可以具有任意数目的服务器101、网络102、gpu 103。
[0063]
请参见图3,图3是本发明实施例提供的一种特征值id的管理方法的流程图,如图3所示,包括以下步骤:
[0064]
步骤201、获取长特征值id。
[0065]
其中,上述长特征值id可以为搜索系统中结构化引擎生成的唯一的id值,用于区分每个特征值,也可以说用于区分每个特征值存储的位置。该长特征值id用于gpu(graphics processing unit,图像处理器)硬件平台的搜索系统中。示例性的,若应用在人像搜索系统中,当抓拍到多个人像时,每个人像均对应有一个唯一的特征值,且每个特征值均对应有一个特征值id,此时,特征值id可以用于区分每个抓拍到的人像,为了满足不断增加的抓拍数量,一般都是用无符号长整型的数据类型存储(范围为:0~18446744073709551615)。应当理解的是,这个数据类型表示的数据范围已经远远超出单个gpu卡所能存储的特征值个数。此时,可以称这个无符号长整型的数据类型来存储的特征值id为长特征值id。当得到多个长特征值时,也对应得到与多个长特征值一一对应的多个长特征值id。当然了,长特征值id的长度可以根据实际的结构化引擎的生成长度有关。
[0066]
具体的,当获取到结构化引擎生成的一组特征值id时,即可得到一组长特征值id。长特征值id可以说是应用场景中用来表示特征值存储位置的最原始的特征值id。需要说明的是,特征值的种类可以根据实际应用场景进行决定。比如,当应用场景为人像搜索系统时,特征值可以为人像对应的特征值,特征值id也即为人像对应的特征值id。当应用场景为
商品搜索系统时,特征值可以为商品对应的特征值,特征值id也即为商品对应的特征值id。
[0067]
步骤202、生成与长特征值id对应的短特征值id,长特征值id与短特征值id之间存在映射关系。
[0068]
其中,上述短特征值id相对于长特征值id长度较小,占用的存储空间也较小。上述长特征值id与短特征值id之间存在映射关系可以是指,长特征值id与短特征值id之间存在一一对应关系。在实际的搜索系统中,由于单个gpu卡存储的特征值个数是不会超过短特征值id的取值范围,所以对于每个gpu卡,长特征值id与短特征值id存在一一对应关系。
[0069]
具体的,当获得到一个长特征值id时,可以为该长特征值id配置一个唯一的短特征值id。当然了,当长特征值id的数量在不断累加时,也可以依次为每个长特征值id配置对应的短特征值id。且每个长特征值id对应的短特征值id均是唯一的,任意两个短特征值id均是不同的。
[0070]
更具体的,如图4所示,步骤202包括以下步骤:
[0071]
步骤301、获取短特征值id预存gpu卡的卡号,以得到第一码段。
[0072]
步骤302、获取短特征值id预存gpu卡上的相对偏移值,以得到第二码段。
[0073]
步骤303、基于第一码段以及第二码段生成与长特征值id对应的短特征值id。
[0074]
其中,上述预存gpu卡可以是指gpu硬件搜索系统中想要用于存储短特征值id的gpu卡片。gpu卡的数量可以是多个,且每个gpu卡均设置有属于自己的卡号。其中,gpu卡号可以用符号、字母、数字等来表示。在本发明实施例中,主要以数字来进行表示,且gpu卡号占最高位1~3bits。预存gpu卡的选择可以根据实际需求进行灵活配置,当存在多个gpu卡时,也可以根据需要选择预存gpu卡为多个gpu卡中的任意一个。上述第一码段可以用码段1来表示,第一码段即表示短特征值以及短特征值id所在当前gpu卡的卡号。
[0075]
上述相对偏移值可以为相对于同一预存gpu卡上存储短特征值id的第一位置对应的偏移值,比如,当存储第一个短特征值id的位置对应的相对偏移值设置为0,那么当存储第二个短特征值id的位置对应的相对偏移值则配置为1,类似的,当存储第三个短特征值id的位置对应的相对偏移值则配置为2,以此类推,每次存储的短特征值id有增加时,对应的相对偏移值也会在前一个相对偏移值的基础上加1,直到所有的短特征值id存储完毕,或者直到同一gpu卡上的存储位置被存满,才会选择另一个gpu卡进行存储。上述第二码段可以用码段2来表示,且第二码段即表示为短特征值在当前卡上的相对偏移值(占低位31~29bits)。
[0076]
每个短特征值id均是由第一码段以及第二码段组合生成唯一的一个短特征值id。当每个想要存储到服务器上的特征值都需要根据第一码段以及第二码段组合的形式生成对应唯一的短特征值id。
[0077]
具体的,如图5所示,每当得到一个长特征值id时,均需要为该长特征值id配置唯一的短特征值id。当然了,首先先确定短特征值id的第一码段(码段1,即短特征值id需要存储的gpu卡的卡号),以及确定短特征值id的第二码段,(码段2,即短特征值id需要存储在该gpu卡上的相对偏移值),进而将第一码段以及第二码段组合形成该长特征值id对应的唯一的短特征值id。
[0078]
示例性的,现有一个长特征值id为38329686445632176478,需要将该长特征值id对应的短特征值id存储到gpu卡号为1上,那么短特征值id的第一码段(码段1)则为001,如
果该gpu卡1上已经存储了100个特征,那么该长特征值id对应的短特征值id的第二码段(码段2)则为101。此时,长特征值id为38329686445632176478对应的短特征值id则为001101。
[0079]
若下一个长特征值id为383296864456321733344,且也需要将这个长特征值id对应的短特征值id存储到gpu卡号为1上,此时短特征值id的第一码段(码段1)也为001,因为已经存储了100个特征,再加上上次存储的特征,此时gpu卡上已经存储有101个特征了,此时的短特征值id的第二码段(码段2)接着上个编号累加得到为102。最后得到长特征值id为383296864456321733344对应的短特征值id则为001102,以此类推,若后续还需要存储其他的长特征id到服务器中,则根据相同的方法进行处理得到对应的短特征值id。
[0080]
步骤203、基于长特征值id与短特征值id之间的映射关系建立映射表。
[0081]
其中,上述映射表用于记录长特征值id与短特征值id之间的映射关系。
[0082]
具体的,如图6所示,步骤203包括以下步骤:
[0083]
步骤401、基于长特征值id与短特征值id之间的一一对应关系将长特征值id做为第一键值以及将短特征值id做为第一目标值建立对应的第一映射表。
[0084]
其中,上述第一键值可以称为第一key值,用于作为第一索引,便于通过第一键值最为索引搜索出对应的第一目标值。上述第一目标值可以称为第一value,用于作为第一输出结果。上述第一映射表可以用map1来表示。
[0085]
具体的,如图7所示,基于一种常用的哈希原理的关联容器,以长特征值id为键值,以短特征值id为目标值建立得到第一映射表,同时将短特征值以及长特征值id保存到第二映射表的对应位置。这样,当接收到的是长特征值id进行特征搜索时,可以通过长特征值id找到对应的短特征值id。在图7中,id0、id1、id2、id3、

、idn表示为第一个长特征值id到第n个长特征值id。ids0、ids1、ids2、ids3、

、idsn表示为第一个长特征值id到第n个长特征值id对应的第一个短特征值id到第n个短特征值id。其中,id0、id1、id2、id3、

、idn与ids0、ids1、ids2、ids3、

、idsn是一一对应的关系。当然了,还存在有对应于id0、id1、id2、id3、

、idn的第一长特征值到第n个长特征值;还存在有对应于ids0、ids1、ids2、ids3、

、idsn的第一短特征值到第n个短特征值。
[0086]
和/或,步骤402、基于短特征值id与长特征值id之间的一一对应关系将短特征值id做为第二键值以及将长特征值id做为第二目标值建立对应的第二映射表。
[0087]
其中,上述第二键值可以称为第二key值,用于作为第二索引,便于通过第二键值最为索引搜索出对应的第二目标值。上述第二目标值可以称为第二value,用于作为第二输出结果。上述第二映射表可以用map2来表示。
[0088]
具体的,如图8所示,基于一种常用的哈希原理的关联容器,以短特征值id为键值,以长特征值id为目标值建立得到第二映射表,同时将短特征值以及长特征值id保存到第二映射表的对应位置。这样,当接收到的是短特征值id进行特征搜索时,可以通过短特征值id找到对应的长特征值id。其中,图8中的id0、id1、id2、id3、

、idn表示为第一个长特征值id到第n个长特征值id。ids0、ids1、ids2、ids3、

、idsn表示为第一个长特征值id到第n个长特征值id对应的第一个短特征值id到第n个短特征值id。其中,id0、id1、id2、id3、

、idn与ids0、ids1、ids2、ids3、

、idsn是一一对应的关系。当然了,还存在有对应于id0、id1、id2、id3、

、idn的第一长特征值到第n个长特征值;还存在有对应于ids0、ids1、ids2、ids3、

、idsn的第一短特征值到第n个短特征值。
[0089]
需要说明的是,当同时存在第一映射表以及第二映射表时,可以形成双映射表。无论是通过长特征值id或是短特征值id都可以查询到对应的短特征值id或长特征值id,进而可以双向查找,提高搜索系统的查询效率。
[0090]
步骤204、将长特征值id、短特征值id以及映射表存储到服务器中,且将短特征值id存储到gpu中。
[0091]
其中,上述服务器用于存储长特征值id、短特征值id、以及存储根据长特征值id、短特征值id建立得到的映射表。且长特征值id、短特征值id、以及映射表均存储到服务器中的内存中。上述gpu只用于存储与长特征值id对应的短特征值id。短特征值id主要存储到gpu的显存中。
[0092]
具体的,每当获取到一长特征值id均配置对应的短特征di,并将长特征值id以及短特征值id保存到对应映射表中,并与映射表一同存储到服务器中。且还可以将生成的短特征值id存储到对应的gpu的显存中。这样借助服务器的大内存,可以释放gpu显存的占用空间,减少gpu显存的利用率,进而提高搜索系统的查询效率。
[0093]
示例性的,如图9所示,当映射表为两个时,可以将第一映射表以及第二映射表一同存储到服务器中,同时,保存长特征值id与短特征值id之间的映射关系。在图9中,id0、id1、id2、id3、

、idn表示为第一个长特征值id到第n个长特征值id。ids0、ids1、ids2、ids3、

、idsn表示为第一个长特征值id到第n个长特征值id对应的第一个短特征值id到第n个短特征值id。其中,id0、id1、id2、id3、

、idn与ids0、ids1、ids2、ids3、

、idsn是一一对应的关系。当然了,还存在有对应于id0、id1、id2、id3、

、idn的第一长特征值到第n个长特征值;还存在有对应于ids0、ids1、ids2、ids3、

、idsn的第一短特征值到第n个短特征值。需要说明的是短特征值id的长度可以是32bits。
[0094]
在本发明实施例中,通过获取长特征值id;生成与长特征值id对应的短特征值id,长特征值id与短特征值id之间存在映射关系;基于长特征值id与短特征值id之间的映射关系建立映射表;将长特征值id、短特征值id以及映射表存储到服务器中,且将短特征值id存储到gpu中。这样可以合理的利用服务器的大内存储空间存储长特征值id、短特征值id、以及映射表,而gpu只需要存储短特征值id,避免长特征值id以及映射表占用gpu显存的存储空间,以释放gpu的存储空间。在gpu进行搜索工作时,gpu可以有足够的存储空间,进而可以提高gpu存储空间的利用率。且在服务器与gpu之间通过映射表可以双向查询到对应的长特征值id或短特征值id,同时仅仅将短特征值id录入gpu,能够减少gpu中特征值id的读写耗时,可以提高特征搜索的搜索效率。
[0095]
如图10所示,图10是本发明实施例提供的另一种特征值id的管理方法的流程图,该特征值id的管理方法还包括以下步骤:
[0096]
步骤501、接收搜索指令,搜索指令包括长特征值id或短特征值id。
[0097]
步骤502、根据接收到的长特征值id基于第一映射表查询到与长特征值id对应的短特征值id。
[0098]
步骤503、将查询到的短特征值id对应的图像返回给用户端。
[0099]
具体的,当我们进行特征值相似度搜索时,gpu返回了一批搜索到的短特征值id。然后根据图8中的短特征值id到长特征值id的映射map2,快速的找到这些短特征值id对应的长特征值id,最终将这些原始的长特征值id对应的图像返回给上层用户端,这样就可以
根据用户的搜索指令搜索到对应图像。
[0100]
或,步骤504、根据接收到的短特征值id基于第二映射表查询到与短特征值id对应的长特征值id。
[0101]
步骤505、将查询到的长特征值id对应的图像返回给用户端。
[0102]
具体的,当我们进行特征值相似度搜索时,gpu返回了一批搜索到的长特征值id。然后根据图7中的长特征值id到短特征值id的映射map1,快速的找到这些长特征值id对应的短特征值id,最终将这些短特征值id对应的图像返回给上层用户端,这样就可以根据用户的搜索指令搜索到对应图像。
[0103]
在本发明实施例中,可以通过长特征值id快速查询到对应的短特征值id,或者可以通过短特征值id快速查询到对应的长特征值id,进而可以提高特征搜索的搜索效率。
[0104]
如图11所示,图11是本发明实施例提供的又一种特征值id的管理方法的流程图,该特征值id的管理方法还包括以下步骤:
[0105]
步骤601、接收删除指令,删除指令包括长特征值以及对应的长特征值id或短特征值以及对应的短特征值id。
[0106]
具体的,同一图像的长特征值和短特征值均可以是用来表示该图像的,唯一不同的是,长特征值的数据长度比短特征值的数据长度长,占用的空间比较大。现有的特征值一般都是存储在gpu显存中的,如果直接将长特征值存储在gpu显存中会占用gpu的更多的显存储空间。所以为了方便对特征值的存储,在长特征值的基础上获取到对应的短特征值,然后将长特征值、短特征值,长特征值与短特征值之间的对应关系均存储在服务器中,只要将短特征值存储在gpu显存中即可。这样在gpu硬件平台的搜索系统中,直接通过图像的短特征值就可以搜索到服务器中存储的长特征值,进而可以搜索到长特征值对应的图像。当然了,长特征值存在对应长特征值id,短特征值存在对应的短特征值id,在搜索时,可以和长特征值以及短特征值的搜索方式相同。这样在搜索时就不会占用gpu显存储空间,同时也不会影响gpu的运行速度,减少了gpu中的特征值id的读写耗时。
[0107]
当然了,在对特征值进行删除时,均需要删除服务器中存储的长特征值、长特征值id、短特征值、短特征值id以及他们的对应关系,同时还需要删除gpu中存储的短特征值以及短特征值id以及他们的对应关系。
[0108]
步骤602、根据长特征值id以及第一映射表删除服务器中的长特征值以及对应的长特征值id、短特征值以及对应的短特征值id、以及第一映射表中长特征值id与短特征值id之间的对应关系,且删除gpu中存储的短特征值以及对应的短特征值id。
[0109]
其中,服务器中还存储有与长特征值id对应的长特征值、以及与短特征值id对应的短特征值,gpu中还存储有与短特征值id对应的短特征值。
[0110]
具体的,当我们需要删除一批录入的特征值以及特征值id时。我们首先根据下发下来的长特征值id,从图7的长特征值id到短特征值id的映射map1中,快速的找到对应的短特征值id。然后将这些短特征值id传入到gpu卡中,在gpu卡中删除这些短特征值id以及短特征值id的短特征值。最后也需要删除掉这批特征值id的第一映射表(即在图7中的map1映射关系)。还需要删除服务器中对应的长特征值、长特征值id、短特征值、短特征值id。
[0111]
或,步骤603、根据短特征值id以及第二映射表删除服务器中的短特征值以及短特征值id、长特征值以及对应的长特征值id、以及第二映射表中短特征值id与长特征值id之
间的对应关系,且删除gpu中存储的短特征值以及对应的短特征值id。
[0112]
具体的,当我们需要删除一批录入的特征值以及id时。我们首先根据下发下来的短特征值id,从图8的短特征值id到长特征值id的映射map2中,快速的找到对应的长特征值id。然后将这些短特征值id传入到gpu卡中,在gpu卡中删除这些短特征值id以及短特征值id的短特征值。最后也需要删除掉这批特征值id的第二映射表(即在图8中的map2映射关系)。还需要删除服务器中对应的长特征值、长特征值id、短特征值、短特征值id。
[0113]
在本发明实施例中,可以通过长特征值id、短特征值id之间的对应关系删除gpu中的短特征值id以及短特征值id的短特征值,同时删除服务器中的长特征值、长特征值id、短特征值、短特征值id以及第一映射表。或者通过短特征值id与长特征值id之间的对应关系删除gpu中的短特征值id以及短特征值id的短特征值,同时删除服务中的长特征值、长特征值id、短特征值、短特征值id以及第二映射表。这样便于提高gpu搜索系统中特征值以及特征值id的增删改查性能。
[0114]
参见图12,图12是本发明实施例提供的一种特征值id的管理装置的结构示意图,该特征值id的管理装置700包括:
[0115]
获取模块701,用于获取长特征值id;
[0116]
生成模块702,用于生成与长特征值id对应的短特征值id,长特征值id与短特征值id之间存在映射关系;
[0117]
建立模块703,用于基于长特征值id与短特征值id之间的映射关系建立映射表;
[0118]
存储模块704,用于将长特征值id、短特征值id以及映射表存储到服务器中,且将短特征值id存储到gpu中。
[0119]
可选的,如图13所示,在图12的基础上,生成模块702包括:
[0120]
第一获取单元7021,用于获取短特征值id预存gpu卡的卡号,以得到第一码段;
[0121]
第二获取单元7022,用于获取短特征值id预存gpu卡上的相对偏移值,以得到第二码段;
[0122]
生成单元7023,用于基于第一码段以及第二码段生成与长特征值id对应的短特征值id。
[0123]
可选的,长特征值id与短特征值id之间存在一一对应关系,映射表包括第一映射表和/或第二映射表;如图14所示,在图13的基础上,建立模块703包括:
[0124]
第一建立单元7031,用于基于长特征值id与短特征值id之间的一一对应关系将长特征值id做为第一键值以及将短特征值id做为第一目标值建立对应的第一映射表;
[0125]
和/或,第二建立单元7032,用于将短特征值id与长特征值id之间的一一对应关系将短特征值id做为第二键值以及将长特征值id做为第二目标值建立对应的第二映射表。
[0126]
可选的,如图15所示,在图14的基础上,该特征值id的管理装置700还包括以下步骤:
[0127]
第一接收模块705,用于接收搜索指令705,搜索指令包括长特征值id或短特征值id;
[0128]
第一查询模块706,用于根据接收到的长特征值id基于第一映射表查询到与长特征值id对应的短特征值id;
[0129]
第一返回模块707,用于将查询到的短特征值id对应的图像返回给用户端;
[0130]
或,第二查询模块708,根据接收到的短特征值id基于第二映射表查询到与短特征值id对应的长特征值id;
[0131]
第二返回模块709,用于将查询到的长特征值id对应的图像返回给用户端。
[0132]
可选的,服务器中还存储有与长特征值id对应的长特征值、以及与短特征值id对应的短特征值,gpu中还存储有与短特征值id对应的短特征值;如图16所示,在图15的基础上,该特征值id的管理装置700还包括:
[0133]
第二接收模块710,用于接收删除指令,删除指令包括长特征值以及对应的长特征值id或短特征值以及对应的短特征值id;
[0134]
第一删除模块711,用于根据长特征值id以及第一映射表删除服务器中的长特征值以及对应的长特征值id、短特征值以及短特征值id、以及第一映射表中长特征值id与短特征值id之间的对应关系,且删除gpu中存储的短特征值以及对应的短特征值id;
[0135]
或,第二删除模块712,用于根据短特征值id以及第二映射表删除服务器中的短特征值以及短特征值id、长特征值以及对应的长特征值id、以及第二映射表中短特征值id与长特征值id之间的对应关系,且删除gpu中存储的短特征值以及对应的短特征值id。
[0136]
本发明实施例提供的特征值id的管理装置700能够实现上述方法实施例中的各个实施方式,以及相应有益效果,为避免重复,这里不再赘述。
[0137]
参见图17,图17是本发明实施例提供的一种电子设备的结构示意图,该电子设备800包括:存储器802、处理器801及存储在存储器802上并可在处理器801上运行的计算机程序,处理器801执行计算机程序时实现上述实施例提供的特征值id的管理方法中的步骤,处理器801执行以下步骤:
[0138]
获取长特征值id;
[0139]
生成与长特征值id对应的短特征值id,长特征值id与短特征值id之间存在映射关系;
[0140]
基于长特征值id与短特征值id之间的映射关系建立映射表;
[0141]
将长特征值id、短特征值id以及映射表存储到服务器中,且将短特征值id存储到gpu中。
[0142]
可选的,处理器801执行的生成与长特征值id对应的短特征值id的步骤包括:
[0143]
获取短特征值id预存gpu卡的卡号,以得到第一码段;
[0144]
获取短特征值id预存gpu卡上的相对偏移值,以得到第二码段;
[0145]
基于第一码段以及第二码段生成与长特征值id对应的短特征值id。
[0146]
可选的,处理器801执行的长特征值id与短特征值id之间存在一一对应关系,映射表包括第一映射表和/或第二映射表;基于长特征值id与短特征值id之间的映射关系建立映射表的步骤包括:
[0147]
基于长特征值id与短特征值id之间的一一对应关系将长特征值id做为第一键值以及将短特征值id做为第一目标值建立对应的第一映射表;
[0148]
和/或,将短特征值id与长特征值id之间的一一对应关系将短特征值id做为第二键值以及将长特征值id做为第二目标值建立对应的第二映射表。
[0149]
可选的,处理器801还执行以下步骤:
[0150]
接收搜索指令,搜索指令包括长特征值id或短特征值id;
[0151]
根据接收到的长特征值id基于第一映射表查询到与长特征值id对应的短特征值id;
[0152]
将查询到的短特征值id对应的图像返回给用户端;
[0153]
或,根据接收到的短特征值id基于第二映射表查询到与短特征值id对应的长特征值id;
[0154]
将查询到的长特征值id对应的图像返回给用户端。
[0155]
可选的,服务器中还存储有与长特征值id对应的长特征值、以及与短特征值id对应的短特征值,gpu中还存储有与短特征值id对应的短特征值;处理器801还执行以下步骤:
[0156]
接收删除指令,删除指令包括长特征值以及对应的长特征值id或短特征值以及对应的短特征值id;
[0157]
根据长特征值id以及第一映射表删除服务器中的长特征值以及对应的长特征值id、短特征值以及短特征值id、以及第一映射表中长特征值id与短特征值id之间的对应关系,且删除gpu中存储的短特征值以及对应的短特征值id;
[0158]
或,根据短特征值id以及第二映射表删除服务器中的短特征值以及短特征值id、长特征值以及对应的长特征值id、以及第二映射表中短特征值id与长特征值id之间的对应关系,且删除gpu中存储的短特征值以及对应的短特征值id。
[0159]
本发明实施例提供的电子设备800能够实现上述方法实施例中的各个实施方式,以及相应有益效果,为避免重复,这里不再赘述。
[0160]
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现本发明实施例提供的特征值id的管理方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
[0161]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-only memory,rom)或随机存取存储器(random access memory,简称ram)等。
[0162]
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1