首页> 中国专利> 特征检索系统的构建方法、特征检索方法、装置及设备

特征检索系统的构建方法、特征检索方法、装置及设备

摘要

本申请公开了特征检索系统的构建方法、特征检索方法、装置及设备,涉及数据处理领域,尤其涉及数据搜索技术领域。特征检索系统的构建方法包括:获取多个特征向量样本;采用预设哈希算法计算每个特征向量样本的桶号;基于桶号将多个特征向量样本划分为多个分桶特征集;每个分桶特征集中的特征向量样本的桶号均相同,不同分桶特征集对应的桶号不同;以桶号作为键值将多个分桶特征集存储于分布式数据库中,以构建特征检索系统。本申请便于实现特征检索系统的海量数据存储及检索,提升检索效果;在采用前述特征检索系统进行特征检索时,可直接基于待检索特征的桶号从相应的分桶特征集中进行特征检索,在节约算力的基础上进一步提升检索效率。

著录项

  • 公开/公告号CN113190551A

    专利类型发明专利

  • 公开/公告日2021-07-30

    原文格式PDF

  • 申请/专利权人 北京百度网讯科技有限公司;

    申请/专利号CN202110426538.9

  • 发明设计人 惠盼;焦健;

    申请日2021-04-20

  • 分类号G06F16/22(20190101);G06F16/27(20190101);G06K9/00(20060101);

  • 代理机构11201 北京清亦华知识产权代理事务所(普通合伙);

  • 代理人王萌

  • 地址 100085 北京市海淀区上地十街10号百度大厦2层

  • 入库时间 2023-06-19 12:02:28

说明书

技术领域

本申请涉及数据处理领域,具体涉及数据搜索技术领域,尤其涉及特征检索系统的构建方法、特征检索方法、装置及设备。

背景技术

为了能够节约存储空间,可以将图片转化成特征向量进行数据库存储。因此,从数据库中检索图片的过程实际上主要是特征向量检索的过程。

相关技术中虽具有成熟的特征向量检索库,但不便于实现分布式部署,而本地数据存储有限,难以应用现有的特征向量检索库实现海量数据存储及检索,导致特征检索效果不佳。

发明内容

本申请提供了一种特征检索系统的构建方法、特征检索方法、装置及设备。

根据本申请的第一方面,提供了一种特征检索系统的构建方法,包括:

获取多个特征向量样本;

采用预设哈希算法计算每个所述特征向量样本的桶号;

基于所述桶号将所述多个特征向量样本划分为多个分桶特征集;其中,每个所述分桶特征集中的特征向量样本的桶号均相同,不同所述分桶特征集对应的桶号不同;

以桶号作为键值将多个所述分桶特征集存储于分布式数据库中,以构建特征检索系统。

根据本申请的第二方面,提供了一种特征检索方法,包括:

采用预设哈希算法计算待检索特征对应的桶号;

从预先构建的特征检索系统中查找与所述桶号对应的分桶特征集,并在查找到的所述分桶特征集中检索与所述待检索特征相似的指定数量个特征向量样本;其中,所述特征检索系统是采用如第一方面所述的构建方法构建的。

根据本申请的第三方面,提供了一种特征检索系统的构建装置,包括:

样本获取模块,用于获取多个特征向量样本;

第一桶号计算模块,用于采用预设哈希算法计算每个所述特征向量样本的桶号;

样本划分模块,用于基于所述桶号将所述多个特征向量样本划分为多个分桶特征集;其中,每个所述分桶特征集中的特征向量样本的桶号均相同,不同所述分桶特征集对应的桶号不同;

分布存储模块,用于以桶号作为键值将多个所述分桶特征集存储于分布式数据库中,以构建特征检索系统。

根据本申请的第四方面,提供了一种特征检索装置,包括:

第二桶号计算模块,用于采用预设哈希算法计算待检索特征对应的桶号;

检索模块,用于从预先构建的特征检索系统中查找与所述桶号对应的分桶特征集,并在查找到的所述分桶特征集中检索与所述待检索特征相似的指定数量个特征向量样本;其中,所述特征检索系统是采用如第二方面所述的装置构建的。

根据本申请的第五方面,提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请第一方面所述的特征检索系统的构建方法或者执行第二方面所述的特征检索方法。

根据本申请的第六方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本申请第一方面所述的特征检索系统的构建方法或者执行第二方面所述的特征检索方法。

根据本申请的第七方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现本申请第一方面所述的特征检索系统的构建方法或者执行第二方面所述的特征检索方法。

本申请实施例提供的上述特征检索系统的构建方法、特征检索方法、装置及设备,能够采用预设哈希算法计算每个特征向量样本的桶号,并基于桶号将多个特征向量样本划分为多个分桶特征集,然后以桶号作为键值将多个分桶特征集存储于分布式数据库中来构建特征检索系统,本申请实施例这种以桶号为键值将划分得到的多个分桶特征集进行分布式存储的方式,便于实现特征检索系统的海量数据存储及检索,提升检索效果。而在采用本申请实施例构建的特征检索系统进行特征检索时,可以直接基于待检索特征的桶号仅从相应的分桶特征集中进行特征检索,在节约算力的基础上也进一步提升了检索效率。

应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1是本申请实施例提供的一种特征检索系统的构建方法的流程图;

图2是本申请实施例提供的一种特征向量样本的桶号计算示意图;

图3是本申请实施例提供的另一种特征检索系统的构建方法的流程图;

图4是本申请实施例提供的一种特征检索方法的流程图;

图5是本申请实施例提供的另一种特征检索方法的流程图;

图6是本申请实施例提供的一种特征检索示意图;

图7是本申请实施例提供的一种特征检索系统的构建装置的结构框图;

图8是本申请实施例提供的一种特征检索装置的结构框图;

图9是用来实现本申请实施例的特征检索系统的构建方法或特征检索方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

考虑到相关技术中的特征向量检索库不便于实现分布式存储,而本地数据存储有限,难以应用于现有的特征向量检索库实现海量数据存储及检索,检索效果不佳,为改善此问题,本申请实施例提供了一种特征检索系统的构建方法、特征检索方法、装置及设备,能够计算特征向量样本的桶号,并基于桶号来将多个特征向量样本划分为多个分桶特征集,然后以桶号为键值将多个分桶特征集存储于分布式数据库中来构建特征检索系统,便于实现特征检索系统的海量数据存储及检索,提升检索效果,而且采用本申请实施例构建的特征检索系统进行特征检索时,可以直接基于待检索特征的桶号仅从相应的分桶特征集中进行特征检索,在节约算力的基础上也进一步提升了检索效率。为便于理解,本申请实施例详细说明如下。

参见图1所示的一种特征检索系统的构建方法的流程图,主要包括如下步骤S102~步骤S108:

步骤S102,获取多个特征向量样本。

特征向量样本即为特征检索库中主要存储的图像特征数据,在一种实施方式中,可以首先获取多张包含有对象的图像;然后对每张图像分别进行特征提取,得到相应的特征向量样本。上述对象诸如可以为人脸、人物、动物、车辆等等,在此不进行限定。可以理解的是,与直接在数据库中存储图像相比,本申请实施例对图像进行特征提取并采用提取出的特征向量样本来构建特征检索系统的方式可以较好的节约存储资源。

步骤S104,采用预设哈希算法计算每个特征向量样本的桶号;基于预设哈希算法对特征向量样本进行处理来得到一个最终的数值,该数值即为特征向量样本的桶号。

哈希(Hash)算法又可称为散列算法,实际上也为散列函数,任意长度的输入通过哈希算法可变换成固定长度的输出,该输出就是散列值(哈希值)。这种转换是一种压缩映射,也即,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出。简而言之,哈希算法就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。应当注意的是,哈希算法没有一个固定的公式,只要符合散列思想的算法都可以被称为是哈希算法,常用的哈希算法诸如可以采用余数法、折叠法、基数转换法、数据重排法等等散列方法,在具体实现时,可以根据实际情况以及散列思想而灵活设置哈希算法所采用的公式。因此在计算特征向量样本的桶号时,可以不局限哈希算法的形式。在实际应用中,诸如可以选用局部敏感哈希算法或其它哈希算法实现,在此不进行限定。

步骤S106,基于桶号将多个特征向量样本划分为多个分桶特征集;其中,每个分桶特征集中的特征向量样本的桶号均相同,不同分桶特征集对应的桶号不同。

从高维大数据集中检索与特征向量最相似的一个或多个向量是图像检索中的关键点,对于此类问题,本申请实施例选择采用最近邻最相似查找(Approximate NearestNeighbor,ANN)方法中的哈希算法实现,可以理解的是,经哈希算法对特征向量样本进行处理,桶号相同的特征向量样本大概率具有一定程度的相似性,基于桶号进行特征向量划分,将大量的特征向量样本划分为多个分桶特征集(也即多个子集),便于后续缩小检索范围,提升检索效率。

步骤S108,以桶号作为键值将多个分桶特征集存储于分布式数据库中,以构建特征检索系统。

在构建特征检索系统中,采用哈希算法(散列函数)将特征向量样本记录存储在一系列连续的存储空间中,桶号则可以作为用于指示特征向量样本存储位置的键值(key),进而将多个分桶特征集存储于分布式数据库中来构建特征检索系统,后续可基于桶号查询的方式定位所需查询的分桶特征集进行特征检索。在一些实施方式中,可以采用RPC(RemoteProcedure Call,远程过程调用)来实现分布式服务部署。

本申请实施例对分布式数据库的类型不进行限定,诸如分布式数据库可以是关系型数据库,也可以是非关系型数据库;在一种具体的示例中,分布式数据库可以包括SimpleDB数据库,SimpleDB数据库内部可将数据进行多个区域的存储并且可支持高并发读取,具体而言,可以使构建的特征检索系统具有超高并发、超低延迟的在线数据读写、支持多地域数据写入、可有效保障数据完整一致、服务高可用,同时有复杂的业务计算逻辑,方便快速迭代等优点。

本申请实施例提供的上述特征检索系统的构建方法,通过以桶号为键值将划分得到的多个分桶特征集进行分布式存储的方式,便于实现特征检索系统的海量数据存储及检索,提升检索效果。

为了提升相似的特征向量样本具有相同桶号的概率,本申请实施例提出了一种采用预设哈希算法计算每个特征向量样本的桶号的实施方式,包括:基于局部敏感哈希算法对每个特征向量样本分别进行两次哈希处理,得到每个特征向量样本的桶号。局部敏感哈希算法(Locality Sensitive Hashing,LSH)的核心思想为:高维空间的两点若距离很近,那么设计一种哈希函数对这两点进行哈希值计算,使得他们哈希值有很大的概率是一样的,同时若两点之间的距离较远,则它们哈希值相同的概率会很小。局部敏感哈希算法基于的一个假设为:如果两个数据在原有的数据空间中是相似的,那么分别经过哈希函数映射以后的它们也具有很高的相似度;相反,如果它们本身是不相似的,那么经过映射后它们仍不具有相似性。相比于其它哈希算法,局部敏感哈希算法具有较高的位置敏感性,散列前类似的点(距离近的点)在散列后仍然能够以一定的概率保证在一定程度的相似。

换言之,局部敏感哈希算法主要希望原先相邻的两个数据能够被映射到相同的桶内,具有相同的桶号,从而将相似的数据聚到一起。换言之,将原始数据空间中的两个相邻数据点通过相同的映射后,这两个数据点在新的数据空间中仍然相邻的概率较大,被映射到同一个桶的概率较大,而不相邻的数据点被映射到同一个桶的概率很小。

因此本申请实施例通过采用局部敏感哈希算法来计算特征向量样本的桶号,可尽量使得相似的特征向量样本能够聚集在一个桶内,桶号相同。在此基础上,本申请实施例采用局部敏感哈希算法对每个特征向量样本分别进行两次哈希处理,可以进一步提升相似特征向量样本位于一个桶中的概率,也即保障相似的特征向量样本的桶号相同。

基于此,本申请实施例提供了一种计算特征向量样本的桶号的实施示例,对于每个特征向量样本,均执行如下步骤a~步骤d:

步骤a,将特征向量样本进行归一化处理,得到归一后的特征向量样本。在一种具体的实施方式中,归一化处理的操作可以为:将特征向量样本转换成正整数向量。

步骤b,基于局部敏感哈希算法对归一后的特征向量样本进行第一次哈希处理,得到第一长度的二值向量。

第一次哈希处理的方式可以灵活设定,只要基于局部敏感哈希算法的核心思想即可。在一些具体的实施示例中,诸如可以将归一后的特征向量样本(M维)与N个阈值分别进行比较,基于所有比较结果得到第一长度为N*M的二值向量;其中,每个比较结果均以0或1表征,诸如小于阈值用0表征,大于阈值用1表征。比如特征向量样本为128维,通过与N个不同阈值(阈值可根据实际需求而灵活设定或变更)进行比较,得到长度为128*N的二值向量。其中,N可以灵活设置。

步骤c,基于局部敏感哈希算法对第一长度的二值向量进行第二次哈希处理,得到第二长度的二值向量;

第二次哈希处理的方式可以与第一次哈希处理的方式相同或不同,同样需要基于局部敏感哈希的核心思想。在一些具体的实施示例中,诸如可以将步骤b得到的第一长度为N*M的二值向量按照每组X位进行分组,并基于分组结果计算每组对应的众数,得到第二长度为N*M/X的二值向量;其中,M、N和X均为正整数。诸如,假设N=15,X=15,M=128,则最终得到第二长度为128的二值向量。在实际应用中,可以根据需求而设置X的值,可以理解的是,X值越小,分组越多,将多个特征向量样本划分而成的分桶特征集越多,每个分桶特征集中所包含的特征向量样本的数量越少,后续检索效率越高,越容易更快的检索到特征检索库中存储的与待检索特征相似的特征向量。

步骤d,将第二长度的二值向量转换成指定进制的字符串,将字符串作为特征向量样本的桶号。诸如,指定进制可以为十六进制等。以上述步骤c最后得到第二长度为128的二值向量为例,按照每4位为一组转换成十六进制,最终得到长度为32的十六进制字符串,此时将该长度为32的十六进制字符串作为桶号。

为便于理解,本申请实施例提供了一种计算特征向量样本的桶号的具体实施示例,参见图2所示的一种特征向量样本的桶号计算示意图,示意出了利用局部敏感哈希算法对特征向量样本进行两次哈希处理的具体示例,由图2可见,在第一次哈希处理过程中,将128维的特征向量:[26,18,25,132,77……],通过与长度为N的阈值集合[10,20,30,40……150],将128维的特征向量与长度为N的阈值集合进行比较,得到长度为128*N的二值向量[1,1,1,0,0……,1,0,0,1,1……1,1,1,1,0],当N=15时,二值向量长度为1920;然后在第二次哈希处理中,将第一次哈希处理所得到的长度为1920的二值向量111111111111000111111111111000 111110000000000 111111111111000……111110000000000按照每15位为一组计算众数,其中,111111111111000对应的众数为1,111110000000000对应的众数为0,最后得到长度为128的二值向量,再将二值向量每4位为一组转成十六进制,最后得到长度32的十六进制字符串:effdc123df9f7f6addfaacc716addfaacc13。可以理解的是,图2仅是本申请实施例提供的基于局部敏感哈希算法对特征向量样本进行两次哈希处理的具体示例,但不应当被视为限制,在实际应用中,还可以选择其它基于局部敏感哈希算法对特征向量样本进行两次哈希处理方式,也即两次哈希处理的方式可根据实际情况而设定。

通过采用局部敏感哈希算法对特征向量样本进行两次哈希处理的方式,可以进一步提升相近似的特征向量样本具有相同桶号也即位于同一个桶内的概率,保障后续的特征检索效果。

由此,在前述基础上,参见图3所示的另一种特征检索系统的构建方法的流程图,主要包括如下步骤S302~步骤S310:

步骤S302,获取多张包含有对象的图像;

步骤S304,对每张图像分别进行特征提取,得到相应的特征向量样本;

步骤S306,基于局部敏感哈希算法对每个特征向量样本分别进行两次哈希处理,得到每个特征向量样本的桶号;

步骤S308,基于桶号将多个特征向量样本划分为多个分桶特征集;其中,每个分桶特征集中的特征向量样本的桶号均相同,不同分桶特征集对应的桶号不同;

步骤S310,以桶号作为键值将多个分桶特征集存储于分布式数据库SimpleDB中,以构建特征检索系统。

在上述特征检索系统的构建方法中,基于局部敏感哈希算法对每个特征向量样本分别进行两次哈希处理,可以有效保障得到的相似的特征向量样本的桶号相同,也即保障相似的特征向量样本位于一个桶(分桶特征集)内,最后以桶号为键值将多个分桶特征集存储于分布式数据库SimpleDB中,可以使构建的特征检索系统能够实现海量数据存储及检索,而且具有超高并发、超低延迟的在线数据读写、支持多地域数据写入、可有效保障数据完整一致、服务高可用,同时有复杂的业务计算逻辑,方便快速迭代等优点,综合提升了检索效果。

本申请实施例在构建特征检索库时,可以按照如下步骤获取多个特征向量样本:首先获取多张包含有对象的图像,然后对每张图像分别进行特征提取,得到相应的特征向量样本,进而计算特征向量样本的桶号,然后基于桶号将特征向量样本划分为多个分桶特征集,并以桶号为键值将划分得到的多个分桶特征集进行分布式存储,得到特征检索库。为了在检索到相似的特征向量之后,可以更方便快捷地获知相似的特征向量的诸如属性信息等对象信息,上述方法还包括:获取每张图像中所包含对象的对象信息;将同一对象的对象信息与特征向量样本建立关联。在实际应用中,可以直接为特征检索库中特征向量样本标注对象信息,还可以将获取的所有对象信息建立对象信息库,然后将对象信息库中的对象信息与特征检索库中的特征向量样本建立关联,在此不进行限定。以对象是人物为例,对象信息诸如可以包括身份信息、年龄信息、性别信息或其它属性信息,在此不进行限制,以对象是车辆为例,对象信息诸如可以包括车牌信息、车型信息等。应当注意的是,本申请实施例的技术方案中,所涉及的对象信息的获取,存储和应用等,均符合相关法律法规的规定,且不违背公序良俗。

在实际应用中,还可以根据实际情况对特征检索系统进行更新升级,以保证对特定数据的高度适用性。

在本申请实施例提供的前述特征检索系统的构建方法的基础上,本申请实施例还提供了一种特征检索方法,参见图4所示的一种特征检索方法的流程图,主要包括如下步骤S402至步骤S404:

步骤S402,采用预设哈希算法计算待检索特征对应的桶号;

步骤S404,从预先构建的特征检索系统中查找与桶号对应的分桶特征集,并在查找到的分桶特征集中检索与待检索特征相似的指定数量个特征向量样本;其中,特征检索系统的构建方法可参照前述实施例,在此不再赘述。诸如,从分桶特征集中检索与待检索特征相似度最高的前n个特征向量样本。由于分桶特征集中的特征向量样本都是有一定的相似程度的,因此可以快速地从分桶特征集中找出符合需求的前n个最相似的特征向量样本,而无需再从海量数据中进行检索。

基于上述特征检索方法,在采用本申请实施例构建的特征检索系统进行特征检索时,可以直接基于待检索特征的桶号仅从相应的分桶特征集中进行特征检索,在节约算力的基础上也进一步提升了检索效率。

在采用预设哈希算法计算待检索特征对应的桶号时,可以基于局部敏感哈希算法对待检索特征进行两次哈希处理,得到待检索特征的桶号。具体而言,该步骤包括:将待检索特征进行归一化处理,得到归一后的待检索特征,基于局部敏感哈希算法对归一后的待检索特征进行第一次哈希处理,得到第一长度的二值向量;基于局部敏感哈希算法对第一长度的二值向量进行第二次哈希处理,得到第二长度的二值向量;将第二长度的二值向量转换成指定进制的字符串,将字符串作为待检索特征的桶号。

可以理解的是,在特征检索过程中,待检索特征对应的桶号的计算方式与前述构建特征检索系统中计算特征向量样本的桶号的计算方式相同,具体可参照前述相关内容,在此不再赘述。在通过上述方式计算得到待检索特征的桶号,再基于桶号从特征检索系统中相应的分桶特征集中进行检索,可以检索到与待检索特征相近的特征向量样本。

此外,上述方法还包括:获取与待检索特征相似度最高的特征向量样本的对象信息,并将对象信息作为与待检索特征相关的信息。诸如,首先基于待检索特征的桶号从特征检索系统中相应的分桶特征集中检索到与待检索特征最相近的特征向量样本,在一些实施方式中,可认为检索到的特征向量样本与待检索特征对应同一对象,将最相近的特征向量样本的对象信息作为待检索特征的对象信息,从而便捷快速地获知待检索特征所对应对象的信息。

参见图5所示的另一种特征检索方法的流程图,主要包括如下步骤S502至步骤S506:

步骤S502,基于局部敏感哈希算法对待检索特征进行两次哈希处理,得到待检索特征的桶号;

步骤S504,从预先构建的特征检索系统中查找与桶号对应的分桶特征集,并在查找到的分桶特征集中检索与待检索特征最相似的特征向量样本;

步骤S506,获取与待检索特征最相似的特征向量样本的对象信息,并将该对象信息作为与待检索特征相关的信息。

通过上述特征检索方法,在采用本申请实施例构建的特征检索系统进行特征检索时,可以直接基于由局部敏感哈希算法对待检索特征进行处理所得的桶号,从相应的分桶特征集中进行特征检索,找到最相似的特征向量样本,在节约算力的基础上也进一步提升了检索效率;并且在检索到最相似的特征向量样本后,可以基于最相似的特征向量样本的对象信息获知待检索特征相关的信息,使得特征检索结果更加全面。

参见图6所示的特征检索示意图,示意出了特征检索系统的离线模块和在线模块。在图6中,以对象是人脸为例进行示意,其中,离线模块主要用于将人脸累积数据中的人脸图片进行特征提取处理(诸如Dlib提取人脸特征),将人脸图片转换为128维的人脸特征向量,并通过LSH模块得到人脸特征向量的桶号,LSH模块主要是采用LSH算法对人脸特征向量进行两次哈希处理,得到人脸特征向量的桶号;其中,LSH模块的工作原理可参照前述步骤a~步骤d或者参照前述图2,在此不再赘述,最后得到桶号。可以理解的是,同一桶号对应有多个人脸特征向量,每个人脸特征向量(图6中简称为特征)对应有一个bos-key,bos-key表征图片编号。之后进行SimpleDB灌库,得到人脸特征分桶库(对应前述分桶特征集),相同桶号的人脸特征向量聚合形成人脸特征分桶库,可以以桶号→[特征,bos-key]表征。在线模块主要用于通过特征检索系统进行特征检索,在采集到用户的人脸图片后,通过Dlib将人脸图片转换为128维特征向量(对应前述待检索特征),然后通过LSH模块得到待检索的人脸特征向量的桶号,之后通过桶号查询,可以拿到桶号对应的人脸特征分桶库中的所有图片特征,并且通过特征比对找出与待检索的人脸特征向量最相似的图片特征,并查询人脸属性库得到该图片特征的属性信息,也即可获知用户的属性信息,从而便于有针对性地给用户提供服务。此外,属性信息还可以关联有ID信息,诸如用户的身份ID、采集用户图片的设备ID等等,在此不进行限制。

对应于前述特征检索系统的构建方法,本申请实施例还提供了一种特征检索系统的构建装置,参见图7所示的一种特征检索系统的构建装置的结构框图,主要包括如下模块:

样本获取模块720,用于获取多个特征向量样本;

第一桶号计算模块740,用于采用预设哈希算法计算每个特征向量样本的桶号;

样本划分模块760,用于基于桶号将多个特征向量样本划分为多个分桶特征集;其中,每个分桶特征集中的特征向量样本的桶号均相同,不同分桶特征集对应的桶号不同;

分布存储模块780,用于以桶号作为键值将多个分桶特征集存储于分布式数据库中,以构建特征检索系统。

本申请实施例提供的上述装置,通过以桶号为键值将划分得到的多个分桶特征集进行分布式存储的方式,便于实现特征检索系统的海量数据存储及检索,提升检索效果。

在一些实施方式中,第一桶号计算模块740具体用于:

基于局部敏感哈希算法对每个特征向量样本分别进行两次哈希处理,得到每个特征向量样本的桶号。

在一些实施方式中,第一桶号计算模块740具体用于:对于每个特征向量样本,均执行如下操作:

将特征向量样本进行归一化处理,得到归一后的特征向量样本;

基于局部敏感哈希算法对归一后的特征向量样本进行第一次哈希处理,得到第一长度的二值向量;

基于局部敏感哈希算法对第一长度的二值向量进行第二次哈希处理,得到第二长度的二值向量;

将第二长度的二值向量转换成指定进制的字符串,将字符串作为特征向量样本的桶号。

在一些实施方式中,分布式数据库包括SimpleDB数据库。

在一些实施方式中,样本获取模块720具体用于:

获取多张包含有对象的图像;

对每张图像分别进行特征提取,得到相应的特征向量样本;

此外,在一些实施方式中,上述装置还包括:

第一信息获取模块,用于获取每张图像中所包含对象的对象信息;

关联模块,用于将同一对象的对象信息与特征向量样本建立关联。

对应于前述特征检索方法,本申请实施例还提供了一种特征检索装置,参见图8所示的一种特征检索装置的结构框图,主要包括如下模块:

第二桶号计算模块820,用于采用预设哈希算法计算待检索特征对应的桶号;

检索模块840,用于从预先构建的特征检索系统中查找与桶号对应的分桶特征集,并在查找到的分桶特征集中检索与待检索特征相似的指定数量个特征向量样本;其中,特征检索系统是采用如权利要求9至13任一项的装置构建的。

在采用本申请实施例构建的特征检索系统进行特征检索时,可以直接基于待检索特征的桶号仅从相应的分桶特征集中进行特征检索,在节约算力的基础上也进一步提升了检索效率。

在一些实施方式中,第二桶号计算模块820具体用于:基于局部敏感哈希算法对待检索特征进行两次哈希处理,得到待检索特征的桶号。

在一些实施方式中,上述特征检索装置还包括:第二信息获取模块,用于获取与待检索特征相似度最高的特征向量样本的对象信息,并将对象信息作为与待检索特征相关的信息。

本实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容,在此不再赘述。

基于本申请的实施例,本申请还提供了一种电子设备,至少一个处理器;以及与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行前述任一项特征检索系统的构建方法或前述任一项特征检索方法。

根据本申请的实施例,本申请还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。

图9示出了可以用来实施本申请的实施例的示例电子设备900的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图9所示,设备900包括计算单元901,其可以根据存储在只读存储器(ROM)902中的计算机程序或者从存储单元908加载到随机访问存储器(RAM)903中的计算机程序,来执行各种适当的动作和处理。在RAM 903中,还可存储设备900操作所需的各种程序和数据。计算单元901、ROM 902以及RAM 903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。

设备900中的多个部件连接至I/O接口905,包括:输入单元906,例如键盘、鼠标等;输出单元907,例如各种类型的显示器、扬声器等;存储单元908,例如磁盘、光盘等;以及通信单元909,例如网卡、调制解调器、无线通信收发机等。通信单元909允许设备900通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。

计算单元901可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元901的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元901执行上文所描述的各个方法和处理,例如上文描述的特征检索系统的构建方法或特征检索方法。例如,在一些实施例中,上文描述的特征检索系统的构建方法或特征检索方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元908。在一些实施例中,计算机程序的部分或者全部可以经由ROM 902和/或通信单元909而被载入和/或安装到设备900上。当计算机程序加载到RAM903并由计算单元901执行时,可以执行上文描述的特征检索系统的构建方法或特征检索方法。的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行前述任一项特征检索系统的构建方法或前述任一项特征检索方法。

基于本申请的实施例,本申请还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行根据本申请实施例提供的前述任一项特征检索系统的构建方法或前述任一项特征检索方法。

基于本申请的实施例,本申请还提供了一种计算机程序产品,包括计算机程序,计算机程序在被处理器执行时实现本申请实施例提供的前述任一项特征检索系统的构建方法或前述任一项特征检索方法。

本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、互联网和区块链网络。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务("Virtual Private Server",或简称"VPS")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。

本申请实施例提供的上述特征检索系统的构建方法、特征检索方法、装置及设备,能够采用预设哈希算法计算每个特征向量样本的桶号,并基于桶号将多个特征向量样本划分为多个分桶特征集,然后以桶号作为键值将多个分桶特征集存储于分布式数据库中来构建特征检索系统,本申请实施例这种以桶号为键值将划分得到的多个分桶特征集进行分布式存储的方式,便于实现特征检索系统的海量数据存储及检索,提升检索效果。而在采用本申请实施例构建的特征检索系统进行特征检索时,可以直接基于待检索特征的桶号仅从相应的分桶特征集中进行特征检索,在节约算力的基础上也进一步提升了检索效率。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号