CN113868440B - 特征库的管理方法、装置、设备及介质 - Google Patents
特征库的管理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN113868440B CN113868440B CN202010614919.5A CN202010614919A CN113868440B CN 113868440 B CN113868440 B CN 113868440B CN 202010614919 A CN202010614919 A CN 202010614919A CN 113868440 B CN113868440 B CN 113868440B
- Authority
- CN
- China
- Prior art keywords
- feature
- feature vector
- vector
- library
- search
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/41—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/43—Querying
- G06F16/432—Query formulation
Abstract
本申请提供了一种特征库的管理方法,包括:生成第一特征向量的ID,确定第一特征向量的ID与第一特征向量的存储地址的映射关系,存储第一特征向量。其中,特征向量的ID作为特征向量的索引,该索引不会随着存储地址的变化而发生变化。在后续检索、删除过程中,通过特征向量的ID与特征向量的存储地址之间的映射关系,可以获得待删除向量的存储地址、与检索向量匹配的特征向量的ID,由此实现对特征向量的删除、检索,降低了特征库的管理难度,提高了特征库的管理效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种特征库的管理方法、装置、系统以及计算机可读存储介质。
背景技术
随着计算机技术的不断发展,产生了海量的信息数据。如何从海量的信息数据中检索出需要的数据是目前国内外研究的热点。目前,业界主要采用最近邻检索算法进行数据检索。最近邻检索算法被广泛应用于图像检索、数据压缩、模式识别以及机器学习等领域,而这些领域大多会涉及到海量的多媒体数据(如图像、视频)的处理。
在通过最近邻检索算法对图像、视频等进行检索时,可以将图像、视频等映射到特征向量空间,通过查找与特征库(也称底库)中目标特征向量距离最近的向量来获得相应图像之间的关系。业界提出了一些稠密向量相似度检索框架。该框架支持特征库添加、特征库删除、搜索和复位等功能。
然而,上述方法使用一段连续内存来顺序存储特征库。若删除特征库中间部分的某些特征向量,则后面所有特征向量的偏移都会改变,增加了对特征库进行管理的复杂度,降低了特征库管理效率。
发明内容
本申请提供了一种特征库的管理方法。该方法通过确定特征向量的标识和存储地址的映射关系,后续即可基于该映射关系对特征库中的特征向量进行删除、检索,降低了对特征库管理的复杂度,提高了管理效率。本申请还提供了上述方法对应的装置、设备、计算机可读存储介质以及计算机程序产品。
第一方面,本申请提供了一种特征库的管理方法。该方法可以由特征库的管理系统(以下简称为管理)执行。具体地,管理系统在添加第一特征向量至特征库(存储有特征向量的数据库)时,先生成第一特征向量的标识(identity,ID),接着确定第一特征向量的ID与第一特征向量的存储地址的映射关系,以及存储第一特征向量。
其中,特征向量的ID作为特征向量的索引,该索引不会随着存储地址的变化而发生变化。在后续检索、删除过程中,通过特征向量的ID与特征向量的存储地址之间的映射关系,可以获得待删除向量的存储地址、与检索向量匹配的特征向量的ID,由此实现对特征向量的删除、检索,降低了特征库的管理难度,提高了特征库的管理效率。
在一些可能的实现方式中,管理系统包括第一设备和设备集群。其中,设备集群的第二设备用于存储特征库中的第一特征向量。基于此,在确定第一特征向量的ID与第一特征向量的存储地址的映射关系时,可以确定第一特征向量的ID与第二设备的ID、第一特征向量在第二设备的存储地址的映射关系。
一方面,管理系统可以通过设备集群扩大特征库的规模;另一方面,管理系统可以支持对设备集群中的多个设备存储的特征向量进行并发检索,提高检索效率。
在一些可能的实现方式中,管理系统还支持删除特征库中指定的特征向量。具体地,根据第二特征向量的标识,获得第二特征向量的存储地址,然后根据第二特征向量的存储地址,删除第二特征向量。
在一些可能的实现方式中,管理系统还可以判断特征库尾部(在内存中排序靠后的位置)的第三特征向量是否在删除列表中,若否,则根据第二特征向量的存储地址插入第三特征向量,以填补删除第二特征向量导致的内存空缺。由于无需对该特征向量之后的所有特征向量均进行前移操作,降低了删除特征向量的复杂度。
在一些可能的实现方式中,管理系统还可以记录第一特征向量的标识与第一特征向量的存储地址的映射关系,以为后续检索或删除操作提供帮助。
在一些可能的实现方式中,管理系统还可以将第一特征向量切分为多个第一数据块,第一数据块的尺寸与计算单元规格匹配。如此,管理系统可以存储多个第一数据块。如此,在计算向量内积时,将特征库对应的内存中的一块连续内存载入计算单元进行计算。每次检索时,不必再重复执行内存重排布,减小了检索的耗时,提高了检索性能。
在一些可能的实现方式中,管理系统还支持检索特征库。具体地,管理系统接收检索请求,该检索请求包括检索目标的描述信息,然后根据检索向量和特征库中的特征向量的距离,对特征库中的特征向量进行排序,其中,检索向量是根据描述信息确定的特征向量,接着,管理系统发送检索结果,该检索结果包括目标特征向量的标识。其中,目标特征向量是根据排序结果确定的、与检索向量匹配的特征向量。
该方法通过利用特征向量的ID和存储地址的映射关系进行检索,简化了检索过程,提高了检索效率。
在一些可能的实现方式中,特征库中的特征向量包括位于第一集合的特征向量和位于第二集合的特征向量,管理系统在检索特征库时,可以在根据检索向量和第一集合中的特征向量的距离,对第一集合中的特征向量进行排序时,确定检索向量和第二集合中的特征向量的距离。如此,可以实现并行执行距离计算和排序两个任务,降低检索耗时,提高检索效率。
在一些可能的实现方式中,在进行检索时,管理系统还可以将检索向量切分为多个第二数据块,该第二数据块的尺寸与计算单元规格匹配,如此,管理系统可以根据第二数据块以及特征库中切分第一特征向量所得的第一数据块,快速确定检索向量和特征向量的距离,进而提高检索效率。
在一些可能的实现方式中,描述信息包括特征向量或图像。即该管理系统支持以图检索和以特征向量检索等多种模式,能够满足用户的个性化需求。
第二方面,本申请提供了一种特征库的管理装置。该装置包括:
生成模块,用于生成第一特征向量的标识;
确定模块,用于确定第一特征向量的标识与第一特征向量的存储地址的映射关系;
存储模块,用于存储第一特征向量。
在一些可能的实现方式中,该装置应用于特征库的管理系统,管理系统包括第一设备和设备集群,设备集群的第二设备用于存储特征库中的第一特征向量;
确定模块用于:
确定第一特征向量的标识与第二设备的标识、第一特征向量在第二设备的存储地址的映射关系。
在一些可能的实现方式中,装置还包括:
查询模块,用于根据第二特征向量的标识,获得第二特征向量的存储地址;
删除模块,用于根据第二特征向量的存储地址,删除第二特征向量。
在一些可能的实现方式中,装置还包括:
判断模块,用于判断特征库尾部的第三特征向量是否在删除列表中;
插入模块,用于若否,则根据第二特征向量的存储地址插入第三特征向量。
在一些可能的实现方式中,装置还包括:
记录模块,用于记录第一特征向量的标识与第一特征向量的存储地址的映射关系。
在一些可能的实现方式中,装置还包括:
切分模块,用于将第一特征向量切分为多个第一数据块,第一数据块的尺寸与计算单元规格匹配;
存储模块具体用于:
存储多个第一数据块。
在一些可能的实现方式中,装置还包括:
通信模块,用于接收检索请求,检索请求包括检索目标的描述信息;
检索模块,用于根据检索向量和特征库中的特征向量的距离,对特征库中的特征向量进行排序,检索向量是根据描述信息确定的特征向量;
通信模块,还用于发送检索结果,检索结果包括目标特征向量的标识,目标特征向量是根据排序结果确定的、与检索向量匹配的特征向量。
在一些可能的实现方式中,特征库中的特征向量包括位于第一集合的特征向量和位于第二集合的特征向量;
检索模块还用于:
根据检索向量和第一集合中的特征向量的距离,对第一集合中的特征向量进行排序时,确定检索向量和第二集合中的特征向量的距离。
在一些可能的实现方式中,装置还包括:
切分模块,用于将检索向量切分为多个第二数据块,第二数据块的尺寸与计算单元规格匹配;
检索模块具体用于:
根据第二数据块以及特征库中切分第一特征向量所得的第一数据块,确定检索向量和特征向量的距离。
在一些可能的实现方式中,描述信息包括特征向量或图像。
第三方面,本申请提供了一种设备。该设备包括处理器和存储器。处理器、存储器进行相互的通信。处理器用于执行存储器中存储的指令,以使得设备执行如第一方面或第一方面的任一种实现方式中的特征库的管理方法。
第四方面,本申请提供了一种特征库的管理系统。该管理系统包括第一设备和设备集群。设备集群的第二设备用于存储特征库中的第一特征向量。第一设备包括处理器和存储器,处理器用于执行存储器中存储的指令,以使得设备执行如第一方面或第一方面的任一种实现方式中的特征库的管理方法。
第五方面,本申请提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,指令指示设备执行上述第一方面或第一方面的任一种实现方式的特征库的管理方法。
第六方面,本申请提供了一种包含指令的计算机程序产品,当其在设备上运行时,使得设备执行上述第一方面或第一方面的任一种实现方式的特征库的管理方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1为本申请实施例提供的一种特征库的管理系统的结构示意图;
图2为本申请实施例提供的一种特征库的管理系统的系统架构图;
图3为本申请实施例提供的一种特征库的管理系统的系统架构图;
图4为本申请实施例提供的一种特征库的管理方法的流程图;
图5为本申请实施例提供的一种特征库的管理方法的流程图;
图6位本申请实施例提供的一种检索特征库的示意图;
图7A为本申请实施例提供的一种切分第一特征向量得到第一数据块的示意图;
图7B为本申请实施例提供的一种切分第一特征向量得到第一数据块的示意图;
图8为本申请实施例提供的一种特征库的管理方法的流程图;
图9A为本申请实施例提供的一种切分第二特征向量得到第二数据块的示意图;
图9B为本申请实施例提供的一种切分第二特征向量得到第二数据块的示意图;
图10为本申请实施例提供的一种并行执行计算和排序过程的示意图;
图11为本申请实施例提供的一种特征库的管理装置的结构示意图;
图12为本申请实施例提供的一种设备的结构示意图;
图13为本申请实施例提供的一种特征库的管理系统的结构示意图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
数据检索是指从用户特定的数据需求出发,对特定的数据集合采用一定的方法、技术手段,根据一定的线索与规则从中找出相关数据。其中,数据可以是以下格式中的任意一种:文本、表格、图像、音频和视频。
数据检索具体可以通过检索算法实现。检索算法包括但不限于最近邻检索(nearest neighbor search,NNS)算法、最大内积搜索(maximum inner product search,MIPS)算法、局部敏感哈希(locality sensitive hashing,LSH)算法以及上述算法的变种算法。
上述检索算法如最近邻检索算法起初主要应用于文档检索系统,对文本数据进行检索。随着计算机技术的不断发展,检索算法也被广泛应用于位置信息检索和空间数据关系的查询、分析与统计。如今,在图像检索、数据压缩、模式识别以及机器学习等领域,最近邻检索都有非常重要的作用。而在这些领域中大多会涉及到海量的多媒体数据(如图像、视频)的处理。
考虑到有些数据如多媒体数据的维度较高,在对这些数据进行检索时,还可以将这些数据映射到特征向量空间,根据数据在特征向量空间的距离进行数据检索,以减少计算量,提高计算效率。
其中,特征向量空间是指基于至少一个特征维度定义的向量空间。例如,对于立方体而言,可以从长、宽、高三个特征维度定义一个三维特征向量空间。将数据映射到特征向量空间可以获得特征向量。特征向量是指用于描述数据的特征的向量。特征向量包括至少一个元素,每个元素对应于一个特征维度。数据的相似度可以通过数据在特征向量空间的距离(特征向量的距离)进行表征。
特征向量的距离可以包括欧氏距离、曼哈顿距离、切比雪夫距离、夹角余弦距离或者相对熵(也称K-L散度)。为了便于描述,后文均以欧氏距离进行示例说明。具体地,特征向量的距离可以通过如下公式计算得到:
其中,d表示特征向量的距离,p、q分别表示特征向量。
上述公式(1)还可以改写为如下公式:
其中,||q-p||表示向量q和向量p的L2距离。为减少运算量,也可以不进行开根号运算,直接以欧式距离的平方的作为相似度的度量值。欧式距离的平方越小,则向量越相似。
在特征向量检索的过程中,计算量最大、且对实时性影响最大的部分主要在于对向量p、q求L2距离,其次是根据相似度进行排序。其中,对向量p、q求L2距离可以通过中央处理单元(central processing unit,CPU)实现。CPU计算L2距离可以包括以下步骤:计算向量p、q的长度以及向量p、q的内积,然而CPU求向量内积随着特征库中特征向量的数量呈线性关系。对于百万级、千万级甚至以上级别的特征库而言,计算量和延时将大幅增加。为此,可以采用加速器如图形处理器(graphical processing unit,GPU)计算L2距离,实现加速。根据相似度进行排序涉及逻辑计算,仍采用CPU实现。
业界提出了一种稠密向量相似度检索框架,用于实现特征向量检索。该框架提供了通过CPU和GPU运行暴力搜索算法进行稠密向量检索的实现方案。该方案使用一段连续内存存储特征库。在添加特征向量至特征库时,直接将待添加的特征向量添加至特征库末尾。在删除特征向量时,直接删除待删除的特征向量,并将删除的特征向量之后的特征向量往前移动,以填补删除特征向量在内存留下的空缺。
上述方法以特征向量在内存中的偏移对特征向量进行索引,当特征库中的某个或某些特征向量被删除时,位于上述特征向量之后的特征向量在内存中的偏移发送变化,用户难以通过原有的偏移索引被删除的特征向量之后的特征向量,如此,增加了对特征库进行管理的复杂度,降低了特征库管理效率,而且对于用户的友好度较低,影响用户体验。
有鉴于此,本申请实施例提供了一种特征库的管理方法。具体地,在向特征库添加特征向量(为了便于描述,将该特征向量称之为第一特征向量)时,可以先生成第一特征向量的标识(identity,ID),然后记录第一特征向量的标识与第一特征向量的存储地址的映射关系,并根据存储地址存储上述第一特征向量,从而实现在特征库中添加第一特征向量。其中,特征向量的ID作为特征向量的索引,该索引不会随着存储地址的变化而发生变化。在后续检索、删除过程中,通过特征向量的ID与特征向量的存储地址之间的映射关系,可以获得待删除向量的存储地址、与检索向量匹配的特征向量的ID,由此实现对特征向量的删除、检索,降低了特征库的管理难度,提高了特征库的管理效率。
进一步地,该方法还支持将特征向量存储在多个设备,一方面可以增大特征库的规模,另一方面可以对多个设备中存储的特征向量进行并发检索,进一步提高特征库中特征向量的检索效率。
为了便于理解本申请的技术方案,下面将结合附图对本申请实施例提供的特征库的管理方法的应用场景进行介绍。
参见图1所示的特征库的管理方法的应用场景示意图,如图1所示,特征库的管理系统100包括第一设备102和至少一个第二设备104。用户设备200与上述管理系统100连接,例如可以通过有线方式连接,或者通过蜂窝、无线保真(WiFi)、蓝牙、紫蜂等无线方式连接。
用户设备200上部署有管理客户端。该管理客户端可以是专用于特征库管理的客户端,也可以是具有特征库管理功能的浏览器。用户(如管理员、普通用户)可以通过上述客户端与管理系统100交互,从而实现对特征库的管理。
具体地,用户可以通过管理客户端触发添加特征向量(如第一特征向量)至特征库的操作,管理系统100中的第一设备102可以生成第一特征向量的ID,然后记录该第一特征向量的ID和第一特征向量的存储地址的映射关系,例如可以将第一特征向量的ID和第一特征向量的存储地址的映射关系记录至映射关系表ID-Map中。然后第一设备102可以根据存储地址存储第一特征向量,具体是将第一特征向量存储在第二设备104中,以实现在特征库中添加第一特征向量。
其中,第一设备102可以是云环境中的一个或多个计算设备(如中心服务器),也可以是边缘环境中的一个或多个计算设备(如边缘服务器)。其中,云环境指示云服务提供商拥有的,用于提供计算、存储、通信资源的中心计算设备集群,边缘环境指示在地理位置上距离端设备(即端侧设备)较近的,用于提供计算、存储、通信资源的边缘计算设备集群。
类似地,第二设备104也可以是云环境中的一个或多个计算设备,或者是边缘环境中的一个或多个计算设备。在一些实现方式中,第一设备102、第二设备104也可以是端设备。端设备包括但不限于台式机、笔记本电脑等终端设备。
图2提供了一种管理系统100的系统架构图。如图2所示,第一设备102是云计算集群中的中心服务器,第二设备104是边缘计算集群中的边缘服务器,上述中心服务器和边缘服务器通过协作对特征库进行管理。具体地,中心服务器和边缘服务器通过协作向特征库中添加特征向量,删除特征库中的特征向量,或者检索特征库中的特征向量等等。
图3提供了另一种管理系统100的系统架构图。如图3所示,第一设备102、第二设备104均为边缘计算集群中的边缘服务器,上述边缘服务器通过协作对特征库进行管理。
需要说明的是,图2、图3仅仅是管理系统100的系统架构的一些示例,第一设备102、第二设备104也可以均为云计算集群中的中心服务器,或者均为端设备,或者第一设备102为边缘计算集群中的边缘服务器,第二设备104为端设备。
上述第一设备102通过CPU提供算力,第二设备104通过加速器提供算力。其中,加速器包括但不限于GPU、张量处理单元(tensor processing unit,TPU)、神经网络处理单元(neural-network processing unit,NPU)。在一些实现方式中,第二设备104中还配置有CPU,加速器(如GPU)可以在CPU的控制下进行计算。
第一设备102、第二设备104可以是独立的,例如第一设备102、第二设备104可以是不同的服务器。第一设备102、第二设备104也可以集成在同一设备中,例如在一台服务器中插入CPU和至少一张GPU,用于实现第一设备102和第二设备104的功能。
接下来,将从管理系统100的角度对本申请实施例提供的特征库的管理方法进行详细介绍。
参见图4所示的特征库的管理方法的流程图,该方法包括:
S402:管理系统100生成第一特征向量的标识。
具体地,管理客户端可以响应于用户触发的添加特征向量(具体为第一特征向量)至特征库的操作,向管理系统100发送第一特征向量。管理系统100生成上述第一特征向量的标识,即第一特征向量的ID。第一特征向量的ID具有唯一性,可以用于索引该第一特征向量。
在一些实现方式中,管理系统100可以根据身份信息生成第一特征向量的标识。以人脸识别场景为例,第一特征向量是对人脸图像进行特征提取所得的特征向量,管理客户端在添加第一特征向量至特征库时,不仅向管理系统100发送第一特征向量,还向管理客户端100发送第一特征向量对应的身份信息。该身份信息具体是人脸图像中的人物的身份信息。该身份信息可以是身份证号或者姓名等信息。管理系统100根据该身份信息生成第一特征向量的ID。
具体地,管理系统100可以直接将身份证号作为第一特征向量的ID。在姓名不重复的情况下,管理系统100也可以直接将姓名作为第一特征向量的ID。考虑到姓名重复的情况,管理系统100还可以根据身份信息字段和预留字段生成第一特征向量的ID。例如,管理系统100可以将身份信息字段的字段值和预留字段的字段值进行拼接生成第一特征向量的ID。其中,预留字段可以包括第一预留字段,该第一预留字段用于区分具有相同身份信息的多个对象(例如多个人、多个车辆)。预留字段也可以包括第二预留字段,该第二预留字段用于区分同一对象所对应的不同特征向量。
为了便于理解,仍以人脸识别场景为例对第一特征向量的ID进行示例说明。在该示例中,第一特征向量的ID可以是“123xxx00”、“123xxx01”,其中,ID的头部“123xxx”表示身份证号,ID的尾部“00”、“01”表示该人脸所标识人物对应的不同特征向量。第一特征向量的ID也可以是“zhangsan001”、“zhangsan002”,其中,ID的头部“zhangsan”表示姓名,ID的尾部“001”、“002”表征具有相同姓名的不同人物。
需要说明的是,在将第一特征向量添加至特征库时,管理系统100可以先执行建库过程。具体地,管理系统100可以先初始化特征库,该特征库中特征向量的数量在初始化时为0。然后管理系统100可以执行添加第一特征向量至特征库的操作,对应地,特征库中特征向量的数量随之增加。
S404:管理系统100确定第一特征向量的ID与第一特征向量的存储地址的映射关系。
第一特征向量可以存储在内存(memory)中,基于此,第一特征向量的存储地址可以是第一特征向量在内存中的偏移。为了便于理解,下面结合具体示例进行说明。在一个示例中,内存的地址空间为0~2047,第一特征向量为N维特征向量,N为正整数。N维特征向量的每个元素的元素值占用内存的两个字节,则第一特征向量的存储地址可以是i至i+2N-1。其中,i为起始地址,i+2N-1为终止地址,i取值为0至2048-2N。管理系统100根据第一特征向量的ID和第一特征向量的存储地址,确定第一特征向量的ID和第一特征向量的存储地址的映射关系。
在一些实现方式中,管理系统100还可以记录第一特征向量的ID和第一特征向量的存储地址的映射关系,以便于后续查询过程、删除过程使用。具体地,管理系统100可以维护ID-Map。该ID-Map具体为用于记录特征向量的ID与特征向量的存储地址的映射关系的数据对象。该数据对象包括但不限于数据库表、哈希表、文本等等。在添加第一特征向量至特征库时,管理系统100将第一特征向量的ID与第一特征向量的存储地址的映射关系添加至ID-Map中,以实现记录第一特征向量的ID和第一特征向量的存储地址的映射关系。
在一些实现方式中,管理系统100可以通过设备集群(包括至少一个第二设备104)中特定的第二设备104存储第一特征向量。基于此,管理系统100可以记录第一特征向量的ID与上述特定的第二设备104的ID、第一特征向量在特定的第二设备104的存储地址的映射关系。如此,在进行特征向量删除等操作时,管理系统100可以先确定特征向量所在的第二设备104,然后根据特征向量在该第二设备104的存储地址(如在内存中的偏移)确定特征向量。
其中,管理系统100通过设备集群中的至少一个第二设备104存储第一特征向量时,管理系统100可以根据第二设备104的负载大小(特征向量的数量),利用负载均衡策略确定存储该第一特征向量的第二设备104。例如,管理系统100可以选择负载较小的第二设备104存储第一特征向量。接着,管理系统100可以从该第二设备104的可用内存中确定至少一段内存用于存储第一特征向量。管理系统100记录第一特征向量的ID与第二设备104的ID、用于存储第一特征向量的至少一段内存的偏移的映射关系。
S406:管理系统100存储第一特征向量。
具体地,管理系统100可以根据存储地址将第一特征向量存储在第二设备104的内存中。当管理系统100提供多个第二设备104,用于存储第一特征向量时,管理系统100可以根据第二设备104的标识确定用于存储第一特征向量的第二设备104,然后根据第一特征向量在第二设备104的内存中的偏移存储第一特征向量。如此可以实现在特征库中添加第一特征向量。
进一步地,管理系统100还可以绑定第一特征向量以及第一特征向量的ID,以便后续检索时可以直接获得特征向量的ID,无需查询映射关系,简化检索操作,提高检索效率。
在一些实现方式中,管理系统100也可以先存储第一特征向量,然后确定第一特征向量的ID和第一特征向量的存储地址的映射关系,即管理系统100可以先执行S406,再执行S404。S404和S406的执行顺序不影响本申请的具体实现。
基于上述内容描述,本申请实施例提供了一种特征库的管理方法。该方法支持在添加特征向量至特征库时,生成特征向量的ID,确定特征向量的ID与特征向量的存储地址的映射关系,如此,在后续删除、检索过程中,用户可以根据特征向量的标识查询映射关系,获得特征向量的存储地址,进而删除特征向量,或者根据向量距离确定匹配的特征向量,然后根据匹配的特征向量的存储地址确定该特征向量的标识,由此实现检索特征向量,如此降低了特征库的管理难度,提高了特征库的管理效率。
在一些实现方式中,管理系统100还可以删除特征库中的特征向量(为了便于描述,可以称之为第二特征向量)。该第二特征向量与第一特征向量可以是同一特征向量,也可以是不同特征向量。本申请实施例对此不作限定。
参见图5所示的特征库的管理方法的流程图,在图4所示实施例基础上,该方法包括:
S502:管理系统100根据第二特征向量的标识,获得第二特征向量的存储地址。
具体地,在添加特征向量至特征库的过程中,管理系统100记录有特征向量的ID和存储地址的映射关系。基于此,在删除特征库中的第二特征向量时,管理系统100根据第二特征向量的标识查询ID和存储地址的映射关系,从而获得第二特征向量的存储地址。
其中,管理系统100通过哈希表记录ID和存储地址的映射关系时,还可以通过哈希查找方式查询第二特征向量的存储地址,如此可以减少查询次数,提高查询效率。
S504:管理系统100根据第二特征向量的存储地址,删除第二特征向量。
具体地,管理系统100可以先确定存储第二特征向量的第二设备104,然后确定第二特征向量在该第二设备104的内存中的偏移,接着删除第二设备104的内存在该偏移位置的数据,从而实现删除第二特征向量。
S506:管理系统100判断特征库尾部的第三特征向量是否在删除列表中,若否,则执行S508。
S508:管理系统100根据第二特征向量的存储地址插入第三特征向量。
特征库尾部的特征向量是指第二设备104的内存中偏移靠后位置存储的特征向量,为了便于描述,本申请实施例称之为第三特征向量。可选地,管理系统100还可以根据第三特征向量的ID是否在删除列表中,判断第三特征向量是否是需要删除的特征向量。若是,则管理系统100可以将对当前偏移进行减一处理,然后将处理后的偏移位置存储的特征向量作为第三特征向量,重新执行S506;若否,则管理系统100可以将第三特征向量插入第二设备104存储第二特征向量的位置。
基于上述内容描述,本申请实施例提供了一种数据库的管理方法。该方法支持在删除特征库中的特征向量时,根据待删除的特征向量的ID查询特征向量的ID和存储地址的对应关系,获得待删除的特征向量的存储地址,然后根据该存储地址删除特征向量。如此,简化了特征向量的删除过程,降低了删除难度。进一步地,在删除特征向量后,无需对该特征向量之后的所有特征向量均进行前移操作,降低了删除特征向量的复杂度。
管理系统100还支持对特征库进行复位。具体地,管理系统100可以响应于复位操作,清空特征库中所有特征向量。进一步地,管理系统100还可以清空所有ID-Map。
管理系统100还支持对特征库进行固化保存,避免第二设备掉电,导致特征库丢失。具体地,管理系统100可以响应于针对特征库的固化保存操作,将特征库发送至第一设备102进行固化保存。具体地,第一设备102可以将特征库存储在外存,如磁盘、闪存等等。
进一步地,第二设备104中也可以维护ID-Map,通过ID-Map记录第一特征向量的ID和存储地址的映射关系。在删除第二特征向量时,在第二设备104和第一设备102维护的ID-Map中删除第二特征向量的ID和存储地址的映射关系。
基于此,在添加第一特征向量或删除第二特征向量时,第一设备102还可以从第二设备104维护的ID-Map获取第二特征向量的ID与存储地址的映射关系,第一设备102还可以对第一设备102维护的映射关系和第二设备104维护的映射关系进行校验,以同步映射关系。
在一些实现方式中,管理系统100还支持对特征库中的特征向量进行检索。具体地,管理系统100获取检索向量,该检索向量可以对检索图像进行特征提取所得的特征向量。然后管理系统100确定检索向量和特征库中特征向量的距离,并基于该距离对特征库中的特征向量排序,根据映射关系确定排序靠前的特征向量的ID,该ID可以作为检索结果。
其中,管理系统100可以针对每个第二设备104维护一个ID-Map。如图6所示,管理系统100包括4个第二设备104时,管理系统100维护4个ID-Map,具体为ID-Map 0至ID-Map3。管理系统100执行检索操作时,可以并发地确定检索向量和4个第二设备104中特征向量的距离,以及根据该距离对4个第二设备104各自特征库中的特征向量排序,获得排序靠前的特征向量,如top15的特征向量。管理系统100还对4个第二设备104的排序结果进行融合(merge),得到整体排序靠前的特征向量,如整体排序为top15的特征向量。管理系统100可以对4个第二设备104中整体排序为top15的特征向量进行映射,得到这些特征向量的ID。
考虑到连续数据排布方式无法对数据进行重排,计算过程的并发度较低,对于底层硬件运算不太友好,管理系统100还可以在存储第一特征向量时,预先对第一特征向量进行分形排布,然后存储分形排布后的特征向量。如此,在后续查询、检索过程中,无需再进行分形排布,即可提高计算过程(尤其是求向量内积过程)的并发度,降低延时。
具体地,管理系统100可以将第一特征向量按照计算单元规格进行分形排布,然后根据存储地址存储分形排布后的第一特征向量。其中,管理系统100将第一特征向量按照计算单元规格进行分形排布具体是将第一特征向量切分成多个数据块(为了便于描述,称之为第一数据块),切分后的第一数据块的尺寸与计算单元规格匹配。其中,第一数据块的尺寸和计算单元规格匹配是指第一数据块的尺寸与计算单元规格具有倍数关系,如第一数据块的尺寸可以与计算单元规格一致,也可以是多个第一数据块的尺寸与计算单元规格一致。如此,在计算向量内积时,将特征库对应的内存中的一块连续内存载入计算单元进行计算。每次检索时,不必再重复执行内存重排布,减小了检索的耗时,提高了检索性能。
为了便于理解,下面结合一具体示例对第一特征向量的分形排布过程进行说明。
图7A提供了一种第一特征向量在内存中的排布格式的示意图。该示例中,底层计算单元为单次可以计算16乘16的矩阵乘法的计算单元,管理系统100按照计算单元规格(16*16)对第一特征向量进行分形。图7A中dim表示第一特征向量的维数,n表示特征库中特征向量的数量。假设第一特征向量为256维,则第一特征向量可以分为16段,其中,1-16维为一段,17至32维为一段,依此类推。管理系统100可以以16个第一特性向量为一组,对一组特征向量中的每个第一特征向量进行分段,从而得到多个大小为16*16数据块。在进行检索时,管理系统100可以基于数据块并发计算特征向量的距离,提高并发度,降低延时。
图7B还提供了另一种第一特征向量在内存中的排布格式的示意图。其中,图7A中的排布格式和图7B中的排布格式具有转置关系。管理系统100可以按照图7A或图7B的方式对第一特征向量进行分形排布,对应地,在基于检索向量查询与该检索向量匹配的特征向量时,可以将检索向量按照计算单元规格进行分形排布。其中,检索向量的排布格式与特征库中特征向量的排布格式具有转置关系,如此可以直接将分形排布后的检索向量以及分形排布后的特征向量载入计算单元进行计算,获得检索向量和特征向量的内积,并由此获得特征向量的距离。
在一些实现方式中,管理系统100还可以支持特征向量检索。接下来,结合具体实施例对特征向量检索过程进行详细说明。
参见图8所示的特征库的管理方法的流程图,在图4所示实施例基础上,该方法包括:
S802:管理系统100接收检索请求。
检索请求包括检索目标的描述信息。检索目标可以是人、车辆等物理世界中存在的实体。检索目标的描述信息可以是包括上述检索目标的图像,也可以是基于包括检索目标的图像生成的特征向量(为了便于描述,本申请实施例称之为检索向量)。
S804:管理系统100根据检索向量和特征库中的特征向量的距离,对特征库中的特征向量进行排序。
检索向量是根据描述信息确定的特征向量。当检索请求携带包括检索目标的图像时,管理系统100还可以对图像进行特征提取,从而得到检索向量。在一些情况下,检索请求携带检索向量,管理系统100直接从检索请求中获取检索向量。
管理系统100可以计算检索向量和特征库中的特征向量的距离,然后根据该距离对特征库中的特征向量进行排序。在一些实现方式中,第二设备104也可以承担排序任务。具体地,至少一个第二设备104可以先对第二设备104上的特征库中的特征向量进行排序。
管理系统100可以对检索向量进行分形排布。具体地,管理系统100切分检索向量得到第二数据块,该第二数据块的尺寸与计算单元规格匹配。基于此,管理系统100可以基于第一数据块和第二数据块计算检索向量和特征向量的距离。
其中,检索向量的排布格式与特征库中第一特征向量的排布格式具有转置关系。当第一特征向量按照图7A的格式进行分形排布时,检索向量按照图9A的格式进行分形排布。当第一特征向量按照图7B的格式进行分形排布时,检索向量按照图9B的格式进行分形排布。其中,图9A、图9B中的dim表示检索向量的维度,nq表示检索向量的数量,nq可以大于等于1。
S806:管理系统100发送检索结果。
管理系统100可以获取至少一个第二设备104的排序结果,然后对该排序结果进行融合。具体地,每个第二设备104可以根据特征向量的距离对其特征库中的特征向量进行排序,得到排名前K(top K)的特征向量,管理系统100的第一设备102可以对至少一个第二设备104排名top K的特征向量进行融合,得到整体排名top K的特征向量,即目标特征向量。该目标特征向量是与检索向量匹配的特征向量。管理系统100根据映射关系,确定上述目标特征向量的ID。管理系统100根据目标特征向量的ID生成检索结果,然后发送检索结果。
在一些实现方式中,特征库中的特征向量可以划分至多个集合,例如,特征库中的特征向量可以划分至第一集合和第二集合。对应地,特征库中的特征向量包括位于第一集合的特征向量和位于第二集合的特征向量。管理系统100还可以在根据检索向量和第一集合中的特征向量的距离,对第一集合中的特征向量进行排序时,确定检索向量和第二集合中的特征向量的距离。也即计算距离和top K排序可以并发执行,本申请实施例对此不作限定。
具体地,请参见图9,距离计算和top K排序可以采用Pipeline流水设计,如此,topK排序不影响距离计算,通过pipeline并发执行距离计算以及top K排序,从而实现高效完成距离计算和排序功能,降低检索延时,提升端到端检索性能。
上文结合图1至图10对本申请实施例提供的特征库的管理方法进行了详细介绍,下面将结合附图对本申请实施例提供的装置、设备进行介绍。
参见图11所示的特征库的管理装置1100的结构示意图,该装置1100包括:
生成模块1102,用于生成第一特征向量的标识;
确定模块1104,用于确定第一特征向量的标识与第一特征向量的存储地址的映射关系;
存储模块1106,用于存储第一特征向量。
在一些可能的实现方式中,该装置1100应用于特征库的管理系统,管理系统包括第一设备和设备集群,设备集群的第二设备用于存储特征库中的第一特征向量;
确定模块1104用于:
确定第一特征向量的标识与第二设备的标识、第一特征向量在第二设备的存储地址的映射关系。
在一些可能的实现方式中,装置1100还包括:
查询模块,用于根据第二特征向量的标识,获得第二特征向量的存储地址;
删除模块,用于根据第二特征向量的存储地址,删除第二特征向量。
在一些可能的实现方式中,装置1100还包括:
判断模块,用于判断特征库尾部的第三特征向量是否在删除列表中;
插入模块,用于若否,则根据第二特征向量的存储地址插入第三特征向量。
在一些可能的实现方式中,装置1100还包括:
记录模块,用于记录第一特征向量的标识与第一特征向量的存储地址的映射关系。
在一些可能的实现方式中,装置1100还包括:
切分模块,用于将第一特征向量切分为多个第一数据块,第一数据块的尺寸与计算单元规格匹配;
存储模块1106具体用于:
存储多个第一数据块。
在一些可能的实现方式中,装置1100还包括:
通信模块,用于接收检索请求,检索请求包括检索目标的描述信息;
检索模块,用于根据检索向量和特征库中的特征向量的距离,对特征库中的特征向量进行排序,检索向量是根据描述信息确定的特征向量;
通信模块,还用于发送检索结果,检索结果包括目标特征向量的标识,目标特征向量是根据排序结果确定的、与检索向量匹配的特征向量。
在一些可能的实现方式中,特征库中的特征向量包括位于第一集合的特征向量和位于第二集合的特征向量;
检索模块还用于:
根据检索向量和第一集合中的特征向量的距离,对第一集合中的特征向量进行排序时,确定检索向量和第二集合中的特征向量的距离。
在一些可能的实现方式中,装置1100还包括:
切分模块,用于将检索向量切分为多个第二数据块,第二数据块的尺寸与计算单元规格匹配;
检索模块具体用于:
根据第二数据块以及特征库中切分第一特征向量所得的第一数据块,确定检索向量和特征向量的距离。
在一些可能的实现方式中,描述信息包括特征向量或图像。
根据本申请实施例的特征库的管理装置1100可对应于执行本申请实施例中描述的方法,并且特征库的管理装置1100的各个模块/单元的上述和其它操作和/或功能分别为了实现图3所示实施例中的各个方法的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供了一种设备。该设备具体用于实现图11所示的特征库的管理装置1100的功能。
图12提供了一种设备1200的结构示意图,如图11所示,设备1200包括总线1201、处理器1202、通信接口1203、存储器1204和至少一个加速器1205。处理器1202、存储器1204、通信接口1203和至少一个加速器1205之间通过总线1201通信。
总线1201可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图12中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,处理器1202可以为中央处理器(central processing unit,CPU)。至少一个加速器1205可以为GPU、TPU或者NPU。当设备1200包括多个加速器1205时,这多个加速器1205可以是同一类型加速器,也可以是不同类型加速器的组合。
通信接口1203用于与外部通信。例如,获取与非结构化数据的应用场景匹配的训练语料,或者获取非结构化数据等。
存储器1204可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器1204还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,硬盘驱动器(hard diskdrive,HDD)或固态驱动器(solid state drive,SSD)。
存储器1204中存储有可执行代码,处理器1202执行该可执行代码以执行前述特征库的管理方法。
具体地,在实现图11所示实施例的情况下,且图11实施例中所描述的特征库的管理装置1100的各模块为通过软件实现的情况下,执行图5中的生成模块502、确定模块504功能所需的软件或程序代码存储在存储器1204中。存储模块506功能通过存储器1204实现,通信模块功能通过通信接口1203实现。
具体地,通信接口1203接收第一特征向量,将其通过总线1201传输至处理器1202,处理器1202执行存储器1204中存储的各模块对应的程序代码,如生成模块1102、确定模块1104对应的程序代码,以执行生成第一特征向量的ID,确定第一特征向量的ID和第一特征向量的存储地址的映射关系的步骤,存储器1204存储第一特征向量,如此实现将第一特征向量添加至特征库。
在一些可能的实现方式中,加速器1205执行存储器1204中存储的检索模块对应的程序代码,以执行下述步骤:
根据检索向量和特征库中的特征向量的距离,对特征库中的特征向量进行排序,检索向量是根据描述信息确定的特征向量。
在一些可能的实现方式中,特征库中的特征向量包括位于第一集合的特征向量和位于第二集合的特征向量,加速器1205执行存储器1204中存储的检索模块对应的程序代码,以执行下述步骤:
根据检索向量和第一集合中的特征向量的距离,对第一集合中的特征向量进行排序时,确定检索向量和第二集合中的特征向量的距离。
本申请实施例还提供了一种特征库的管理系统100。该管理系统100具体用于实现图11所示的特征库的管理装置1100的功能。
图13提供了一种特征库的管理系统100的结构示意图,如图13所示,特征库的管理系统100包括第一设备102和至少一个第二设备104。
第一设备102包括总线1301、处理器1302、通信接口1303和存储器1304。第二设备104包括总线1401、加速器1402、通信接口1403和存储器1404。至少一个第二设备104形成设备集群。该设备集群中的至少一个第二设备104用于存储特征向量。
第一设备102的通信接口1303接收第一特征向量,将其通过总线1301传输至处理器1302,处理器1302执行存储器1304中存储的各模块对应的程序代码,如生成模块1102、确定模块1104对应的程序代码,以执行生成第一特征向量的ID,确定第一特征向量的ID和第一特征向量的存储地址的映射关系的步骤。第二设备104的存储器1304存储第一特征向量,如此实现将第一特征向量添加至特征库。
在一些可能的实现方式中,第二设备104的加速器1402执行存储器1404中存储的检索模块对应的程序代码,以执行下述步骤:
根据检索向量和特征库中的特征向量的距离,对特征库中的特征向量进行排序,检索向量是根据描述信息确定的特征向量。
在一些可能的实现方式中,特征库中的特征向量包括位于第一集合的特征向量和位于第二集合的特征向量,加速器1402执行存储器1404中存储的检索模块对应的程序代码,以执行下述步骤:
根据检索向量和第一集合中的特征向量的距离,对第一集合中的特征向量进行排序时,确定检索向量和第二集合中的特征向量的距离。
需要说明的是,上述设备1200、管理系统100还用于执行图4、图5、图8所示实施例中特征库的管理方法的任意一种实现方式,本申请实施例对此不作限定。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件的方式来实现,当然也可以通过专用硬件包括专用集成电路、专用CPU、专用存储器、专用元器件等来实现。一般情况下,凡由计算机程序完成的功能都可以很容易地用相应的硬件来实现,而且,用来实现同一功能的具体硬件结构也可以是多种多样的,例如模拟电路、数字电路或专用电路等。但是,对本申请而言更多情况下软件程序实现是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在可读取的存储介质中,如计算机的软盘、U盘、移动硬盘、ROM、RAM、磁碟或者光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,训练设备,或者网络设备等)执行本申请各个实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、训练设备或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、训练设备或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的训练设备、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
以上所述,仅为本申请的具体实施方式。熟悉本技术领域的技术人员根据本申请提供的具体实施方式,可想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (21)
1.一种特征库的管理方法,其特征在于,所述方法包括:
生成第一特征向量的标识;
对所述第一特征向量进行分形排布;
确定所述第一特征向量的标识与分形排布后的所述第一特征向量的存储地址的映射关系,并根据所述映射关系存储分形排布后的所述第一特征向量,以使得在计算向量内积时,将特征库对应的内存中的一块连续内存载入计算单元进行计算。
2.根据权利要求1所述的方法,其特征在于,应用于特征库的管理系统,所述管理系统包括第一设备和设备集群,所述设备集群中的第二设备用于存储所述特征库中分形排布后的所述第一特征向量;
所述确定所述第一特征向量的标识与分形排布后的所述第一特征向量的存储地址的映射关系,包括:
确定所述第一特征向量的标识与所述第二设备的标识、分形排布后的所述第一特征向量在所述第二设备的存储地址的映射关系。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据第二特征向量的标识,获得第二特征向量的存储地址;
根据所述第二特征向量的存储地址,删除所述第二特征向量。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
判断所述特征库尾部的第三特征向量是否在删除列表中;
若否,则根据所述第二特征向量的存储地址插入所述第三特征向量。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
记录所述第一特征向量的标识与所述第一特征向量的存储地址的映射关系。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述对所述第一特征向量进行分形排布,包括:
将所述第一特征向量切分为多个第一数据块,所述第一数据块的尺寸与计算单元规格匹配;
所述存储分形排布后的所述第一特征向量,包括:
存储所述多个第一数据块。
7.根据权利要求1至4任一项所述的方法,其特征在于,所述方法还包括:
接收检索请求,所述检索请求包括检索目标的描述信息;
根据检索向量和所述特征库中的特征向量的距离,对所述特征库中的特征向量进行排序,所述检索向量是根据所述描述信息确定的特征向量;
发送检索结果,所述检索结果包括目标特征向量的标识,所述目标特征向量是根据排序结果确定的、与所述检索向量匹配的特征向量。
8.根据权利要求7所述的方法,其特征在于,所述特征库中的特征向量包括位于第一集合的特征向量和位于第二集合的特征向量,所述方法还包括:
根据所述检索向量和所述第一集合中的特征向量的距离,对所述第一集合中的特征向量进行排序时,确定所述检索向量和所述第二集合中的特征向量的距离。
9.根据权利要求7所述的方法,其特征在于,所述方法还包括:
将所述检索向量切分为多个第二数据块,所述第二数据块的尺寸与计算单元规格匹配;
根据所述第二数据块以及所述特征库中切分第一特征向量所得的第一数据块,确定所述检索向量和所述特征向量的距离。
10.根据权利要求7所述的方法,其特征在于,所述描述信息包括特征向量或图像。
11.一种特征库的管理装置,其特征在于,所述装置包括:
生成模块,用于生成第一特征向量的标识;
切分模块,用于对所述第一特征向量进行分形排布;
确定模块,用于确定所述第一特征向量的标识与所述第一特征向量的存储地址的映射关系;
存储模块,用于根据所述映射关系存储分形排布后的所述第一特征向量,以使得在计算向量内积时,将特征库对应的内存中的一块连续内存载入计算单元进行计算。
12.根据权利要求11所述的装置,其特征在于,应用于特征库的管理系统,所述管理系统包括第一设备和设备集群,所述设备集群的第二设备用于存储所述特征库中分形排布后的所述第一特征向量;
所述确定模块用于:
确定所述第一特征向量的标识与所述第二设备的标识、分形排布后的所述第一特征向量在所述第二设备的存储地址的映射关系。
13.根据权利要求11所述的装置,其特征在于,所述装置还包括:
查询模块,用于根据第二特征向量的标识,获得第二特征向量的存储地址;
删除模块,用于根据所述第二特征向量的存储地址,删除所述第二特征向量。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
判断模块,用于判断所述特征库尾部的第三特征向量是否在删除列表中;
插入模块,用于若否,则根据所述第二特征向量的存储地址插入所述第三特征向量。
15.根据权利要求11至14任一项所述的装置,其特征在于,所述装置还包括:
记录模块,用于记录所述第一特征向量的标识与所述第一特征向量的存储地址的映射关系。
16.根据权利要求11至14任一项所述的装置,其特征在于,所述切分模块具体用于:
将所述第一特征向量切分为多个第一数据块,所述第一数据块的尺寸与计算单元规格匹配;
所述存储模块具体用于:
存储所述多个第一数据块。
17.根据权利要求11至14任一项所述的装置,其特征在于,所述装置还包括:
通信模块,用于接收检索请求,所述检索请求包括检索目标的描述信息;
检索模块,用于根据检索向量和所述特征库中的特征向量的距离,对所述特征库中的特征向量进行排序,所述检索向量是根据所述描述信息确定的特征向量;
所述通信模块,还用于发送检索结果,所述检索结果包括目标特征向量的标识,所述目标特征向量是根据排序结果确定的、与所述检索向量匹配的特征向量。
18.根据权利要求17所述的装置,其特征在于,所述特征库中的特征向量包括位于第一集合的特征向量和位于第二集合的特征向量;
所述检索模块还用于:
根据所述检索向量和所述第一集合中的特征向量的距离,对所述第一集合中的特征向量进行排序时,确定所述检索向量和所述第二集合中的特征向量的距离。
19.根据权利要求17所述的装置,其特征在于,所述装置还包括:
切分模块,用于将所述检索向量切分为多个第二数据块,所述第二数据块的尺寸与计算单元规格匹配;
所述检索模块具体用于:
根据所述第二数据块以及所述特征库中切分第一特征向量所得的第一数据块,确定所述检索向量和所述特征向量的距离。
20.根据权利要求17所述的装置,其特征在于,所述描述信息包括特征向量或图像。
21.一种设备,其特征在于,所述设备包括处理器和存储器;
所述处理器用于执行所述存储器中存储的指令,以使得所述设备执行如权利要求1至10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010614919.5A CN113868440B (zh) | 2020-06-30 | 2020-06-30 | 特征库的管理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010614919.5A CN113868440B (zh) | 2020-06-30 | 2020-06-30 | 特征库的管理方法、装置、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113868440A CN113868440A (zh) | 2021-12-31 |
CN113868440B true CN113868440B (zh) | 2023-06-27 |
Family
ID=78981261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010614919.5A Active CN113868440B (zh) | 2020-06-30 | 2020-06-30 | 特征库的管理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113868440B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402621A (zh) * | 2011-12-27 | 2012-04-04 | 浙江大学 | 一种基于图像分类的图像检索方法 |
CN104715449A (zh) * | 2015-03-31 | 2015-06-17 | 百度在线网络技术(北京)有限公司 | 生成马赛克图像的方法和装置 |
CN106777130A (zh) * | 2016-12-16 | 2017-05-31 | 西安电子科技大学 | 一种索引生成方法、数据检索方法和装置 |
CN107679235A (zh) * | 2017-10-25 | 2018-02-09 | 成都尽知致远科技有限公司 | 基于云平台的检索系统 |
CN107798093A (zh) * | 2017-10-25 | 2018-03-13 | 成都尽知致远科技有限公司 | 图像检索方法 |
CN108446650A (zh) * | 2018-03-27 | 2018-08-24 | 百度在线网络技术(北京)有限公司 | 用于识别人脸的方法和装置 |
CN109145139A (zh) * | 2018-09-25 | 2019-01-04 | 北京市商汤科技开发有限公司 | 一种图像检索方法及装置、设备和存储介质 |
CN109522288A (zh) * | 2018-10-24 | 2019-03-26 | 中国海洋大学 | 一种用于对海洋数据进行存储的方法及系统 |
CN110209866A (zh) * | 2019-05-30 | 2019-09-06 | 苏州浪潮智能科技有限公司 | 一种图像检索方法、装置、设备及计算机可读存储介质 |
CN110321448A (zh) * | 2019-06-27 | 2019-10-11 | 腾讯科技(深圳)有限公司 | 一种图像检索方法、装置和存储介质 |
CN110866491A (zh) * | 2019-11-13 | 2020-03-06 | 腾讯科技(深圳)有限公司 | 目标检索方法、装置、计算机可读存储介质和计算机设备 |
CN111259813A (zh) * | 2020-01-17 | 2020-06-09 | 实地地产集团有限公司 | 人脸检测跟踪方法、装置、计算机设备和存储介质 |
CN111339240A (zh) * | 2020-02-10 | 2020-06-26 | 北京达佳互联信息技术有限公司 | 对象的推荐方法、装置、计算设备和存储介质 |
-
2020
- 2020-06-30 CN CN202010614919.5A patent/CN113868440B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402621A (zh) * | 2011-12-27 | 2012-04-04 | 浙江大学 | 一种基于图像分类的图像检索方法 |
CN104715449A (zh) * | 2015-03-31 | 2015-06-17 | 百度在线网络技术(北京)有限公司 | 生成马赛克图像的方法和装置 |
CN106777130A (zh) * | 2016-12-16 | 2017-05-31 | 西安电子科技大学 | 一种索引生成方法、数据检索方法和装置 |
CN107679235A (zh) * | 2017-10-25 | 2018-02-09 | 成都尽知致远科技有限公司 | 基于云平台的检索系统 |
CN107798093A (zh) * | 2017-10-25 | 2018-03-13 | 成都尽知致远科技有限公司 | 图像检索方法 |
CN108446650A (zh) * | 2018-03-27 | 2018-08-24 | 百度在线网络技术(北京)有限公司 | 用于识别人脸的方法和装置 |
CN109145139A (zh) * | 2018-09-25 | 2019-01-04 | 北京市商汤科技开发有限公司 | 一种图像检索方法及装置、设备和存储介质 |
CN109522288A (zh) * | 2018-10-24 | 2019-03-26 | 中国海洋大学 | 一种用于对海洋数据进行存储的方法及系统 |
CN110209866A (zh) * | 2019-05-30 | 2019-09-06 | 苏州浪潮智能科技有限公司 | 一种图像检索方法、装置、设备及计算机可读存储介质 |
CN110321448A (zh) * | 2019-06-27 | 2019-10-11 | 腾讯科技(深圳)有限公司 | 一种图像检索方法、装置和存储介质 |
CN110866491A (zh) * | 2019-11-13 | 2020-03-06 | 腾讯科技(深圳)有限公司 | 目标检索方法、装置、计算机可读存储介质和计算机设备 |
CN111259813A (zh) * | 2020-01-17 | 2020-06-09 | 实地地产集团有限公司 | 人脸检测跟踪方法、装置、计算机设备和存储介质 |
CN111339240A (zh) * | 2020-02-10 | 2020-06-26 | 北京达佳互联信息技术有限公司 | 对象的推荐方法、装置、计算设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113868440A (zh) | 2021-12-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11048966B2 (en) | Method and device for comparing similarities of high dimensional features of images | |
CN102782643B (zh) | 使用布隆过滤器的索引搜索 | |
US9165068B2 (en) | Techniques for cloud-based similarity searches | |
US8775401B2 (en) | Shape based picture search | |
KR101656245B1 (ko) | 문장 추출 방법 및 시스템 | |
US11100073B2 (en) | Method and system for data assignment in a distributed system | |
WO2013129580A1 (ja) | 近似最近傍探索装置、近似最近傍探索方法およびそのプログラム | |
US9442950B2 (en) | Systems and methods for dynamic visual search engine | |
CN109766318B (zh) | 文件读取方法及装置 | |
US11809494B2 (en) | Information processing apparatus and information processing method | |
US20110179013A1 (en) | Search Log Online Analytic Processing | |
CN110413807B (zh) | 一种基于内容语义元数据的图像查询方法与系统 | |
CN114817717A (zh) | 搜索方法、装置、计算机设备和存储介质 | |
KR101842274B1 (ko) | 문장 추출 방법 및 시스템 | |
CN111198961B (zh) | 商品搜索方法、装置及服务器 | |
Li et al. | EMOD: an efficient on-device mobile visual search system | |
CN116431726A (zh) | 一种图数据处理方法、装置、设备及计算机存储介质 | |
CN113868440B (zh) | 特征库的管理方法、装置、设备及介质 | |
US10268912B2 (en) | Offline, hybrid and hybrid with offline image recognition | |
Yang et al. | Submodular reranking with multiple feature modalities for image retrieval | |
CN115146103A (zh) | 图像检索方法、装置、计算机设备、存储介质和程序产品 | |
US20160292173A1 (en) | Removable storage data hash | |
CN104850600A (zh) | 一种用于搜索包含人脸的图片的方法和装置 | |
Antaris et al. | Similarity search over the cloud based on image descriptors' dimensions value cardinalities | |
Rahman et al. | Mobile content based image retrieval architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |