CN114168766A - 数据处理方法和*** - Google Patents
数据处理方法和*** Download PDFInfo
- Publication number
- CN114168766A CN114168766A CN202010948221.7A CN202010948221A CN114168766A CN 114168766 A CN114168766 A CN 114168766A CN 202010948221 A CN202010948221 A CN 202010948221A CN 114168766 A CN114168766 A CN 114168766A
- Authority
- CN
- China
- Prior art keywords
- feature vector
- index
- storage
- determining
- storage area
- 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.)
- Pending
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/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—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/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/58—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种数据处理方法和***。其中,该方法包括:接收第一图像数据;对第一图像数据进行特征提取,得到第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;输出第一图像数据对应的存储结果。本申请解决了相关技术中向量检索方法中的索引构建需要进行数据训练,导致写入新的特征向量时,需要重新构建索引,索引构建成本较高的技术问题。
Description
技术领域
本申请涉及数据检索技术领域,具体而言,涉及一种数据处理方法和***。
背景技术
目前,最近邻搜索方法在计算机视觉、文本、图像检索等领域中广泛应用。最近邻检索(Nearest Neighbor Search,NNS)也可以称为“最近点搜索”(Closest pointsearch),可以是一个在尺度空间中寻找最近点的优化问题。其问题描述如下:在尺度空间M中给定一个点集S和一个目标点q∈M,在S中找到距离q最近的点。在大多数情况下,M为多维的欧几里得空间,距离由欧几里得距离或曼哈顿距离决定。
传统最近邻搜索方法的流程可以分为索引构建和索引检索两部分。在索引构建流程中,需要首先进行数据训练,然后才能构建索引。在索引构建好之后,当有新的数据写入时,往往需要重新构建索引,限制了检索使用场景,增加索引重复构建的成本。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种数据处理方法和***,以至少解决相关技术中向量检索方法中的索引构建需要进行数据训练,导致写入新的特征向量时,需要重新构建索引,索引构建成本较高的技术问题。
根据本申请实施例的一个方面,提供了一种数据处理方法,包括:接收第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;输出第一特征向量对应的存储结果。
根据本申请实施例的另一方面,还提供了一种数据处理方法,包括:获取第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域。
根据本申请实施例的另一方面,还提供了一种数据处理方法,包括:获取第一图像数据;对第一图像数据进行特征提取,得到第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域。
根据本申请实施例的另一方面,还提供了一种数据处理方法,包括:接收第一图像数据;对第一图像数据进行特征提取,得到第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;输出第一图像数据对应的存储结果。
根据本申请实施例的另一方面,还提供了一种数据处理方法,包括:通过调用第一接口获取第一图像数据,其中,第一接口包括:第一参数,第一参数的参数值为第一图像数据;对第一图像数据进行特征提取,得到第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;通过调用第二接口输出第一图像数据对应的存储结果,其中,第二接口包括:第二参数,第二参数的参数值为存储结果。
根据本申请实施例的另一方面,还提供了一种数据处理方法,包括:通过调用第一接口获取第一特征向量,其中,第一接口包括:第一参数,第一参数的参数值为第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;通过调用第二接口输出第一特征向量对应的存储结果,其中,第二接口包括:第二参数,第二参数的参数值为存储结果。
根据本申请实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质包括存储的程序,其中,在程序运行时控制计算机可读存储介质所在设备执行上述的数据处理方法。
根据本申请实施例的另一方面,还提供了一种计算机终端,包括:存储器和处理器,处理器用于运行存储器中存储的程序,其中,程序运行时执行上述的数据处理方法。
根据本申请实施例的另一方面,还提供了一种数据处理***,包括:处理器;以及存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:接收第一图像数据;对第一图像数据进行特征提取,得到第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;输出第一图像数据对应的存储结果。
在本申请实施例中,在接收到第一特征向量之后,可以生成第一特征向量对应的第一索引标识,并确定第一索引标识对应的第一存储块中的第一存储区域,从而可以将第一特征向量和第一索引标识存储至第一存储区域中,并且可以相应的存储结果进行输出,实现了特征向量流式写入的目的。容易注意到的是,由于每次接收到特征向量之后可以立即生成该特征向量的索引标识,无需进行索引训练流程,从而实现了向量检索场景中的流式索引,达到特征向量即增即查,降低索引构建成本的技术效果,进而解决了相关技术中向量检索方法中的索引构建需要进行数据训练,导致写入新的特征向量时,需要重新构建索引,索引构建成本较高的技术问题。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种用于实现数据处理方法的计算机终端(或移动设备)的硬件结构框图;
图2是根据本申请实施例的一种计算机终端作为接收端的示意图;
图3是根据本申请实施例的第一种数据处理方法的流程图;
图4是根据本申请实施例的一种可选的用户界面的示意图;
图5是根据本申请实施例的一种可选的索引结构设计的示意图;
图6是根据本申请实施例的第二种数据处理方法的流程图;
图7是根据本申请实施例的第三种数据处理方法的流程图;
图8是根据本申请实施例的第四种数据处理方法的流程图;
图9是根据本申请实施例的另一种可选的索引结构设计的示意图;
图10是根据本申请实施例的第一种数据处理装置的示意图;
图11是根据本申请实施例的第二种数据处理装置的示意图;
图12是根据本申请实施例的第三种数据处理装置的示意图;
图13是根据本申请实施例的第四种数据处理装置的示意图;
图14是根据本申请实施例的第四种数据处理方法的流程图;
图15是根据本申请实施例的第五种数据处理方法的流程图;以及
图16是根据本申请实施例的一种计算机终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
特征:可以是指从原始数据提取的单个属性,可以是一个数。原始数据转换成一个特征向量之后可以进一步进行存储和检索。例如,将图片转换为特征向量之后,可以使用最近邻检索方法,海量图片中查找出相似图片。
HNSW:Hierarchcal Navigable Small World graphs,分层可导航小世界图算法,可以是一种无须训练的图索引检索方法,其主要思想是:根据边的长度划分成不同的层,对多个层的图进行搜索,可以将每层的每个节点最大节点数设置成一个常数,该常数与图的规模无关,然后从顶层开始找到局部最近点,再在下层从这个点出发开始搜索,类似于一维数据中的跳表结构。
block:数据块,可以是一段标准长度的字节或比特,属于数据块管理存储的最小单元。
MMAP:可以是指一种内存映射文件的方法,可以将一个文件或者其他对象映射到进程的地址空间,实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的对应关系,从而可以实现不同进程间的文件共享。
实施例1
根据本申请实施例,提供了一种数据处理方法,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。图1示出了一种用于实现数据处理方法的计算机终端(或移动设备)的硬件结构框图。如图1所示,计算机终端10(或移动设备10)可以包括一个或多个(图中采用102a、102b,……,102n来示出)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。除此以外,还可以包括:显示器、输入/输出接口(I/O接口)、通用串行总线(USB)端口(可以作为BUS总线的端口中的一个端口被包括)、网络接口、电源和/或相机。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
应当注意到的是上述一个或多个处理器102和/或其他数据处理电路在本文中通常可以被称为“数据处理电路”。该数据处理电路可以全部或部分的体现为软件、硬件、固件或其他任意组合。此外,数据处理电路可为单个独立的处理模块,或全部或部分的结合到计算机终端10(或移动设备)中的其他元件中的任意一个内。该数据处理电路作为一种处理器控制(例如与接口连接的可变电阻终端路径的选择)。
存储器104可用于存储应用软件的软件程序以及模块,如本申请实施例中的数据处理方法对应的程序指令/数据存储装置,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据处理方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
显示器可以例如触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与计算机终端10(或移动设备)的用户界面进行交互。
图1示出的硬件结构框图,不仅可以作为上述计算机终端10(或移动设备)的示例性框图,还可以作为上述服务器的示例性框图,一种可选实施例中,图2以框图示出了使用上述图1所示的计算机终端10(或移动设备)作为接收端的一种实施例。如图2所示,计算机终端10(或移动设备)可以经由数据网络连接或电子连接到一个或多个客户端20,例如移动终端、计算机终端等。一种可选实施例中,上述计算机终端10(或移动设备)可以是服务器,为连接的一个或多个客户端提供网络服务器。数据网络连接可以是局域网连接、广域网连接、因特网连接,或其他类型的数据网络连接。网络服务是基于网络的用户服务,诸如社交网络、云资源、电子邮件、在线支付或其他在线应用。
在上述运行环境下,本申请提供了如图3所示的数据处理方法。图3是根据本申请实施例的第一种数据处理方法的流程图。如图3所示,该方法可以包括如下步骤:
步骤S302,接收第一特征向量。
上述步骤中的第一特征向量可以是需要写入存储设备的特征向量。
在一种可选的实施例中,第一特征向量可以由用户通过用户终端(例如智能手机、平板电脑、笔记本电脑等)上传至服务器,并通过服务器将该特征向量存储至存储设备。在另一种可选的实施例中,第一特征向量可以由用户直接在用户终端上进行选择,由用户终端将该特征向量存储至本地。
需要说明的是,在实际应用场景中,用户往往希望对图像、文本、视频等数据进行写入,并对写入的数据进行检索,在此基础上,用户需要人工对需要写入的数据进行处理,才能得到上述的第一特征向量。为了简化用户的操作,用户也可以直接将需要存储的数据上传至服务器,由服务器进行特征提取,然后对第一特征向量进行存储;或者用户直接选择该数据,由用户终端进行特征提取,然后对第一特征向量进行存储。
进一步地,为了方便用户上传文件至服务器,可以向提供一个如图4所示的用户界面,用户通过点击界面中的“上传文件”按钮可以将选择存储有第一特征向量的文件并上传至服务器,或者用户通过将存储有第一特征向量的文件拖动至虚线框内,完成上传的目的。
还需要说明的是,为了确保服务器或用户终端准确获知接收到的特征向量需要进行向量写入还是向量检索,在接收第一特征向量的同时,可以接收到相应的处理指令,基于该处理指令可以确定对第一特征向量进行向量写入或向量检索。
步骤S304,生成第一特征向量对应的第一索引标识。
上述步骤中的第一索引标识可以是指第一特征向量对应的索引id。
在一种可选的实施例中,为了实现流式写入与查询的目的,可以在接收到第一特征向量时,为第一特征向量分配一个索引id,无须索引训练流程。可选的,可以按照自增编号生成算法生成第一索引标识,也即,可以为每次新增的特征向量分配一个从0开始顺序递增的索引id。例如,当接收到第一特征向量时,如果上一次生成的索引id为1101,则可以确定第一特征向量的第一索引id为1102。
步骤S306,确定第一索引标识对应的第一存储块中的第一存储区域。
上述步骤中的第一存储块可以是已经分配好的block,也可以是新分配的block。每个block中包含多个节点node,每个节点为一个特征向量的存储区域,可以用于存储该特征向量的所有数据。而且,同一个索引文件中,每个block的大小一致。
可选的,当第一存储块为一个新增的block时,可以从存储***分配一块存储空间,第一存储块的尺寸由预设特征向量尺寸和预设数量确定,其中,该预设数量可以是该特征向量的邻居数量,此处的邻居可以是指基于最近邻算法确定的特征距离最近的多个特征向量的数据,该邻居数据可以根据实际需要进行预先设定,例如,可以是4个或5个,但不仅限于此。通过上述方案使得每个block可以放置2的幂指数节点数量,这样可以根据索引id立刻定位至相应的block,无需额外索引,减少存储访问,提升性能。
在一种可选的实施例中,在生成第一索引标识之后,可以通过特定算法进行计算,得到block id和该block中的偏移offset,基于计算得到的block id可以确定第一存储块,基于offset可以确定第一存储块中的第一存储区域。
需要说明的是,为了方便后续实时向量检索,可以将通过计算得到的block id和offset存储至第一索引标识对应的存储空间中,例如,索引id的存储区域为32bits,则可以设置高24bit为block id,低8bit为offset。同时,由于每个索引id的存储区域确定,多线程并行写入可以设置为无锁,不会出现线程冲突。
步骤S308,将第一特征向量和第一索引标识存储至第一存储区域。
在一种可选的实施例中,可以将第一特征向量和第一索引标识存储至第一存储块中的第一存储区域中,每个存储区域可以划分为特征向量的子存储区域和索引标识的子存储区域,其中,索引标识的子存储区域位于特征向量的子存储区域之后。
需要说明的是,由于block中包含有多个存储区域,每个存储区域中存储的特征向量和索引标识的大小不同,为了确保每个存储区域大小相同,可选的,可以将预设填充(pedding)数据存储至第一存储区域之内。其中,pedding可以是全0数据,存储pedding的子存储区域位于第一存储区域的最后。
步骤S310,输出第一特征向量对应的存储结果。
上述步骤中的存储结果可以是指第一特征向量存储成功的提示信息,方便用户获知此次向量写入流程是否成功。
在一种可选的实施例中,服务器在将第一特征向量存储至第一存储区域之后,可以将存储成功的存储结果返回给用户终端,由用户终端进行显示或播放,例如,可以将存储结果显示在如图4所示的用户界面的显示区域中。在一种可选的实施例中,用户终端同样可以在将第一特征向量存储至第一存储区域之后,将存储成功的存储结果展示给用户查看。
下面结合图5所示的索引格式设计图,对本申请一种优选的实施例进行详细说明。该索引结构设计可以部署在笔记本电脑、PC等计算机终端,也可以部署在手机、平板电脑、掌上电脑等移动终端中。如图5所示,当索引中每新增一个特征向量时,可以在索引文件中分配一个从0开始顺序递增的索引id,根据该id可以计算出对应的block id和该block中的offset。对于每个block,可以通过mmap算法构建索引文件和内存块之间的映射关系。
如果确定该block为新增的block,则可以从存储***(例如,可以是内存)分配一块存储空间,该block的大小可以事先根据特征向量大小以及邻居数量计算得到,并且同一个索引文件对应的所有block大小一致。
每个block中包含有多个node,每个node为一个特征向量对应的存储区域,其中可以存储有特征向量、索引id以及该特征向量的邻居表,其中,邻居表包含有该特征向量的邻居数量,以及每个邻居的索引id,例如,某个邻居表包含4个邻居,四个索引id分别为10、17、3和6。另外,可以在node的最后增加padding确保每个存储区域可以按照一定边界对齐。
基于本申请上述实施例提供的方案,在接收到第一特征向量之后,可以生成第一特征向量对应的第一索引标识,并确定第一索引标识对应的第一存储块中的第一存储区域,从而可以将第一特征向量和第一索引标识存储至第一存储区域中,并且可以相应的存储结果进行输出,实现了特征向量流式写入的目的。容易注意到的是,由于每次接收到特征向量之后可以立即生成该特征向量的索引标识,无需进行索引训练流程,从而实现了向量检索场景中的流式索引,达到特征向量即增即查,降低索引构建成本的技术效果,进而解决了相关技术中向量检索方法中的索引构建需要进行数据训练,导致写入新的特征向量时,需要重新构建索引,索引构建成本较高的技术问题。
在本申请上述实施例中,步骤S306,确定第一索引标识对应的第一存储块中的第一存储区域包括:基于第一索引标识,确定第一存储块的数据块标识和偏移量;基于数据块标识,确定第一存储块;基于偏移量,确定第一存储区域。
在一种可选的实施例中,针对一个索引文件,可以根据索引格式设计方法,确定每个block的大小以及每个存储区域的大小,从而可以确定索引id和block id以及offset之间的对应关系,从而得到特定算法。在分配一个新的索引id(即上述的第一索引标识)之后,可以根据预先确定的特定算法进行计算,可以计算得到该索引id的数据块标识block id和偏移量offset,从而基于该block id可以确定第一存储块,并基于offset可以确定第一存储块中的第一存储区域。
例如,假设每个block中包含三个node,每个node的大小为1MB,则可以确定特定算法为:blcok id为索引id/3的向下取整值,offset为索引id与blcok id*3之差。
在本申请上述实施例中,在步骤S308,将第一特征向量和第一索引标识存储至第一存储区域之后,该方法还包括如下至少之一:将第一存储块映射至磁盘中;通过预设接口,将第一存储块存储至远程存储设备中。
上述步骤中的预设接口可以是read/write接口。
为了实现流式写入与查询的目的,可以采用如下两种向量检索方案:第一种方案可以使用线性索引,在向量检索时使用暴力匹配的方式进行检索,该方案无须索引训练流程,但是,如果数据量较大,则检索成本与响应时间成倍上升,无法应用于大数据量的应用场景。第二种方案可以使用无须训练索引类型,例如,使用HNSW图方法,可以实现实时检索,但是索引只能存储在内存中,数据无法实时持久化;索引大小受到内存大小的限制;另外,进程或设备宕机后,再次加载索引需要较长时间。
为了解决上述问题,在一种可选的实施例中,当需要进行数据持久化时,可以通过mmap方式将所有block中存储的数据映射至本地磁盘中,或通过read/write接口将所有block中存储的数据映射至远程磁盘文件中。在此基础上,在进程或设备宕机之后,无需将本地磁盘或远程磁盘中存储的数据加载至内存,从而可以实现索引的毫秒级加载。另外,由于block中存储的数据可以映射至本地或远程磁盘中,无需常驻内存,因此,索引文件的大小可以不受内存和磁盘大小的限制。
在本申请上述实施例中,在步骤S308,将第一特征向量和第一索引标识存储至第一存储区域之前,该方法还包括:基于分层可导航小世界图算法,确定已存储的多个特征向量中的第二特征向量,其中,第二特征向量与第一特征向量的特征距离小于预设距离;确定第二特征向量的第二索引标识;基于第二索引标识,生成第一特征向量对应的数据表;将第一特征向量、第一索引标识和数据表存储至第一存储区域。
上述步骤中的预设距离可以是预先设置的用于确定两个特征向量相似度的特征距离,可以通过欧几里得距离算法计算得到两个特征向量的特征距离,但不仅限于此,也可以采用其他算法实现。当两个特征向量的特征距离小于该预设距离时,可以确定这两个特征向量相似度较高,可以作为彼此的邻居。数据表可以是用于存储第二特征向量的数据表,也即,可以作为第一特征向量的邻居表,该邻居表中可以存储每个邻居的索引id,也即,存储每个第二特征向量的索引id。
在一种可选的实施例中,为了实现向量索引场景的流式索引,可以采用HNSW算法进行最近邻检索索引,使得每次新增一个第一特征向量之后,可以利用HNSW算法确定与该特征向量的距离最近的多个特征向量,得到第二特征向量,进一步基于第二特征向量的索引id生成第一特征向量对应的邻居表,进一步将第一特征向量、第一特征向量的索引id和邻居表存储至确定出的第一存储区域中。
需要说明的是,第一特征向量的写入流程可以基于HNSW算法确定,基于HNSW算法的原理可知,可以将所有的特征向量构建成一个多层的相互连通的图,在接收到的第一特征向量之后,首先确定该特征向量所在的层次,然后从最顶层开始逐层确定与该特征向量距离最近的节点,每一层中检索到的距离最近的节点可以作为下一层的起始节点,在低层中检测到的距离最近的节点可以作为该特征向量的邻居。特征向量可以存储至其所在层次以及该层之下的每一层中,每一层中该特征向量对应的节点可以与其邻居节点进行连接。
在本申请上述实施例中,基于第二索引标识,生成第一特征向量对应的数据表包括:确定第二特征向量的数量;基于数量和第二索引标识,生成数据表。
在一种可选的实施例中,可以根据实际检索需要,确定每个特征向量的邻居的预设数量,因此,第二特征向量的数量为上述的预设数量。在确定出第一特征向量对应的多个第二特征向量之后,可以将预设数量和每个第二特征向量的索引id(即上述的第二索引标识)存储至邻居表中。例如,如图5所示,邻居的预设数量可以是4个,第二索引标识分别为10、17、3和6。
需要说明的是,通过将邻居的预设数量存储至邻居表中,从而可以基于该预设数量,可以准确确定每个邻居的索引id。
在本申请上述实施例中,在步骤S308,将第一特征向量和第一索引标识存储至第一存储区域之后,该方法还包括:接收第三特征向量;基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取目标存储区域中存储的目标特征向量,得到检索结果,其中,目标特征向量与第三特征向量的特征距离小于预设距离;输出检索结果。
上述步骤中的第三特征向量可以是需要进行向量检索的特征向量。目标特征向量可以是基于HNSW算法确定的与第三特征向量的距离最近的特征向量,目标特征向量的数量为邻居的预设数量,存储有该目标特征向量的存储区域为上述的目标存储区域,目标存储区域所在的存储块为上述的目标存储块。
在一种可选的实施例中,第三特征向量可以由用户通过用户终端(例如智能手机、平板电脑、笔记本电脑等)上传至服务器,并通过服务器进行向量检索,在检索到检索结果之后,可以将其返回给用户终端,由用户终端进行显示。在另一种可选的实施例中,第三特征向量可以由用户直接在用户终端上进行选择,由用户终端进行向量检索,在检索到检索结果之后,可以将其展示给用户查看。
需要说明的是,与第一特征向量的处理方式相同,为了简化用户的操作,用户也可以直接将需要进行检索的数据上传至服务器,由服务器进行特征提取,然后对第三特征向量进行向量检索;或者用户直接选择该数据,由用户终端进行特征提取,然后对第三特征向量进行向量检索。
如图4所示的用户界面,用户可以通过点击界面中的“上传文件”按钮可以将选择存储有第三特征向量的文件并上传至服务器,或者用户通过将存储有第三特征向量的文件拖动至虚线框内,完成上传的目的。检索结果同样可以显示在用户界面的显示区域中。
进一步地,目标特征向量的检索流程可以基于HNSW算法确定,基于HNSW算法的原理可知,在接收到的第三特征向量之后,可以从最顶层开始逐层确定与该特征向量距离最近的节点,每一层中检索到的距离最近的节点可以作为下一层的起始节点,在低层中检测到的距离最近的节点可以作为最终的检索结果。整个检索过程中,每层确定的距离最近的节点均为相应的索引id,进一步基于索引id和block id以及offset的对应关系,可以获取到该索引id对应的特征向量。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
实施例2
根据本申请实施例,还提供了一种数据处理方法,该方法同样可以应用于如图1和图2所示的运行环境中。图6是根据本申请实施例的第二种数据处理方法的流程图。如图6所示,该方法可以包括如下步骤:
步骤S602,获取第一特征向量。
上述步骤中的第一特征向量可以是需要写入存储设备的特征向量。
步骤S604,生成第一特征向量对应的第一索引标识。
上述步骤中的第一索引标识可以是指第一特征向量对应的索引id。
步骤S606,确定第一索引标识对应的第一存储块中的第一存储区域。
上述步骤中的第一存储块可以是已经分配好的block,也可以是新分配的block。每个block中包含多个节点node,每个节点为一个特征向量的存储区域,可以用于存储该特征向量的所有数据。而且,同一个索引文件中,每个block的大小一致。
可选的,当第一存储块为一个新增的block时,可以从存储***分配一块存储空间,第一存储块的尺寸由预设特征向量尺寸和预设数量确定,其中,该预设数量可以是该特征向量的邻居数量,此处的邻居可以是指基于最近邻算法确定的特征距离最近的多个特征向量的数据,该邻居数据可以根据实际需要进行预先设定,例如,可以是4个或5个,但不仅限于此。
步骤S608,将第一特征向量和第一索引标识存储至第一存储区域。
在本申请上述实施例中,步骤S606,确定第一索引标识对应的第一存储块中的第一存储区域包括:基于第一索引标识,确定第一存储块的数据块标识和偏移量;基于数据块标识,确定第一存储块;基于偏移量,确定第一存储区域。
在本申请上述实施例中,在步骤S608,将第一特征向量和第一索引标识存储至第一存储区域之后,该方法还包括如下至少之一:将第一存储块映射至磁盘中;通过预设接口,将第一存储块存储至远程存储设备中。
上述步骤中的预设接口可以是read/write接口。
在本申请上述实施例中,在步骤S608,将第一特征向量和第一索引标识存储至第一存储区域之前,该方法还包括:基于分层可导航小世界图算法,确定已存储的多个特征向量中的第二特征向量,其中,第二特征向量与第一特征向量的特征距离小于预设距离;确定第二特征向量的第二索引标识;基于第二索引标识,生成第一特征向量对应的数据表;将第一特征向量、第一索引标识和数据表存储至第一存储区域。
上述步骤中的预设距离可以是预先设置的用于确定两个特征向量相似度的特征距离,可以通过欧几里得距离算法计算得到两个特征向量的特征距离,但不仅限于此,也可以采用其他算法实现。当两个特征向量的特征距离小于该预设距离时,可以确定这两个特征向量相似度较高,可以作为彼此的邻居。数据表可以是用于存储第二特征向量的数据表,也即,可以作为第一特征向量的邻居表,该邻居表中可以存储每个邻居的索引id,也即,存储每个第二特征向量的索引id。
在本申请上述实施例中,基于第二索引标识,生成第一特征向量对应的数据表包括:确定第二特征向量的数量;基于数量和第二索引标识,生成数据表。
在本申请上述实施例中,在步骤S608,将第一特征向量和第一索引标识存储至第一存储区域之后,该方法还包括:获取第三特征向量;基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取目标存储区域中存储的目标特征向量,得到检索结果,其中,目标特征向量与第三特征向量的特征距离小于预设距离。
上述步骤中的第三特征向量可以是需要进行向量检索的特征向量。目标特征向量可以是基于HNSW算法确定的与第三特征向量的距离最近的特征向量,目标特征向量的数量为邻居的预设数量,存储有该目标特征向量的存储区域为上述的目标存储区域,目标存储区域所在的存储块为上述的目标存储块。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例3
根据本申请实施例,还提供了一种数据处理方法,该方法同样可以应用于如图1和图2所示的运行环境中。图7是根据本申请实施例的第三种数据处理方法的流程图。如图7所示,该方法可以包括如下步骤:
步骤S702,获取第一图像数据。
上述步骤中的第一图像数据可以是需要写入存储设备的图像。
步骤S704,对第一图像数据进行特征提取,得到第一特征向量。
步骤S706,生成第一特征向量对应的第一索引标识。
上述步骤中的第一索引标识可以是指第一特征向量对应的索引id。
步骤S708,确定第一索引标识对应的第一存储块中的第一存储区域。
上述步骤中的第一存储块可以是已经分配好的block,也可以是新分配的block。每个block中包含多个节点node,每个节点为一个特征向量的存储区域,可以用于存储该特征向量的所有数据。而且,同一个索引文件中,每个block的大小一致。
可选的,当第一存储块为一个新增的block时,可以从存储***分配一块存储空间,第一存储块的尺寸由预设特征向量尺寸和预设数量确定,其中,该预设数量可以是该特征向量的邻居数量,此处的邻居可以是指基于最近邻算法确定的特征距离最近的多个特征向量的数据,该邻居数据可以根据实际需要进行预先设定,例如,可以是4个或5个,但不仅限于此。
步骤S710,将第一特征向量和第一索引标识存储至第一存储区域。
本申请上述实施例中,步骤S708,确定第一索引标识对应的第一存储块中的第一存储区域包括:基于第一索引标识,确定第一存储块的数据块标识和偏移量;基于数据块标识,确定第一存储块;基于偏移量,确定第一存储区域。
在本申请上述实施例中,在步骤S710,将第一特征向量和第一索引标识存储至第一存储区域之后,该方法还包括如下至少之一:将第一存储块映射至磁盘中;通过预设接口,将第一存储块存储至远程存储设备中。
上述步骤中的预设接口可以是read/write接口。
在本申请上述实施例中,在步骤S710,将第一特征向量和第一索引标识存储至第一存储区域之前,该方法还包括:基于分层可导航小世界图算法,确定已存储的多个特征向量中的第二特征向量,其中,第二特征向量与第一特征向量的特征距离小于预设距离;确定第二特征向量的第二索引标识;基于第二索引标识,生成第一特征向量对应的数据表;将第一特征向量、第一索引标识和数据表存储至第一存储区域。
上述步骤中的预设距离可以是预先设置的用于确定两个特征向量相似度的特征距离,可以通过欧几里得距离算法计算得到两个特征向量的特征距离,但不仅限于此,也可以采用其他算法实现。当两个特征向量的特征距离小于该预设距离时,可以确定这两个特征向量相似度较高,可以作为彼此的邻居。数据表可以是用于存储第二特征向量的数据表,也即,可以作为第一特征向量的邻居表,该邻居表中可以存储每个邻居的索引id,也即,存储每个第二特征向量的索引id。
在本申请上述实施例中,基于第二索引标识,生成第一特征向量对应的数据表包括:确定第二特征向量的数量;基于数量和第二索引标识,生成数据表。
在本申请上述实施例中,在步骤S710,将第一特征向量和第一索引标识存储至第一存储区域之后,该方法还包括:获取第二图像数据;对第二图像数据进行特征提取,得到第三特征向量;基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取目标存储区域中存储的目标特征向量,其中,目标特征向量与第三特征向量的特征距离小于预设距离;确定目标特征向量对应的目标图像数据,得到第二图像数据对应的检索结果。
上述步骤中的第二图像数据可以是需要进行图像检索的图像,第三特征向量可以是需要进行向量检索的特征向量。目标特征向量可以是基于HNSW算法确定的与第三特征向量的距离最近的特征向量,目标特征向量的数量为邻居的预设数量,存储有该目标特征向量的存储区域为上述的目标存储区域,目标存储区域所在的存储块为上述的目标存储块。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例4
根据本申请实施例,还提供了一种数据处理方法,该方法同样可以应用于如图1和图2所示的运行环境中。图8是根据本申请实施例的第四种数据处理方法的流程图。如图8所示,该方法可以包括如下步骤:
步骤S802,接收第一图像数据。
上述步骤中的第一图像数据可以是需要写入存储设备的图像。
步骤S804,对第一图像数据进行特征提取,得到第一特征向量。
步骤S806,生成第一特征向量对应的第一索引标识。
上述步骤中的第一索引标识可以是指第一特征向量对应的索引id。
步骤S808,确定第一索引标识对应的第一存储块中的第一存储区域。
上述步骤中的第一存储块可以是已经分配好的block,也可以是新分配的block。每个block中包含多个节点node,每个节点为一个特征向量的存储区域,可以用于存储该特征向量的所有数据。而且,同一个索引文件中,每个block的大小一致。
可选的,当第一存储块为一个新增的block时,可以从存储***分配一块存储空间,第一存储块的尺寸由预设特征向量尺寸和预设数量确定,其中,该预设数量可以是该特征向量的邻居数量,此处的邻居可以是指基于最近邻算法确定的特征距离最近的多个特征向量的数据,该邻居数据可以根据实际需要进行预先设定,例如,可以是4个或5个,但不仅限于此。
步骤S810,将第一特征向量和第一索引标识存储至第一存储区域。
步骤S812,输出第一图像数据对应的存储结果。
本申请上述实施例中,步骤S808,确定第一索引标识对应的第一存储块中的第一存储区域包括:基于第一索引标识,确定第一存储块的数据块标识和偏移量;基于数据块标识,确定第一存储块;基于偏移量,确定第一存储区域。
在本申请上述实施例中,在步骤S810,将第一特征向量和第一索引标识存储至第一存储区域之后,该方法还包括如下至少之一:将第一存储块映射至磁盘中;通过预设接口,将第一存储块存储至远程存储设备中。
上述步骤中的预设接口可以是read/write接口。
在本申请上述实施例中,在步骤S810,将第一特征向量和第一索引标识存储至第一存储区域之前,该方法还包括:基于分层可导航小世界图算法,确定已存储的多个特征向量中的第二特征向量,其中,第二特征向量与第一特征向量的特征距离小于预设距离;确定第二特征向量的第二索引标识;基于第二索引标识,生成第一特征向量对应的数据表;将第一特征向量、第一索引标识和数据表存储至第一存储区域。
上述步骤中的预设距离可以是预先设置的用于确定两个特征向量相似度的特征距离,可以通过欧几里得距离算法计算得到两个特征向量的特征距离,但不仅限于此,也可以采用其他算法实现。当两个特征向量的特征距离小于该预设距离时,可以确定这两个特征向量相似度较高,可以作为彼此的邻居。数据表可以是用于存储第二特征向量的数据表,也即,可以作为第一特征向量的邻居表,该邻居表中可以存储每个邻居的索引id,也即,存储每个第二特征向量的索引id。
在本申请上述实施例中,基于第二索引标识,生成第一特征向量对应的数据表包括:确定第二特征向量的数量;基于数量和第二索引标识,生成数据表。
在本申请上述实施例中,在步骤S810,将第一特征向量和第一索引标识存储至第一存储区域之后,该方法还包括:接收第二图像数据;对第二图像数据进行特征提取,得到第三特征向量;基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取目标存储区域中存储的目标特征向量,其中,目标特征向量与第三特征向量的特征距离小于预设距离;确定目标特征向量对应的目标图像数据,得到第二图像数据对应的检索结果;输出检索结果。
上述步骤中的第二图像数据可以是需要进行图像检索的图像,第三特征向量可以是需要进行向量检索的特征向量。目标特征向量可以是基于HNSW算法确定的与第三特征向量的距离最近的特征向量,目标特征向量的数量为邻居的预设数量,存储有该目标特征向量的存储区域为上述的目标存储区域,目标存储区域所在的存储块为上述的目标存储块。
下面结合图9所示的索引格式设计图,对本申请一种优选的实施例进行详细说明。该索引结构设计可以部署在中。如图5所示,前端客户端20可以将需要存储的图像数据上传至服务器10,服务器10可以在接收到图像数据之后,可以对图像数据进行特征提取,得到该图像特征的特征向量,并将该特征向量进行存储。存储完毕之后,服务器10可以将相应的存储结果返回给前端客户端20。可选的,当索引中每新增一个特征向量时,可以在索引文件中分配一个从0开始顺序递增的索引id,根据该id可以计算出对应的block id和该block中的offset。对于每个block,可以通过mmap算法构建索引文件和内存块之间的映射关系。
如果确定该block为新增的block,则可以从存储***(例如,可以是内存)分配一块存储空间,该block的大小可以事先根据特征向量大小以及邻居数量计算得到,并且同一个索引文件对应的所有block大小一致。
每个block中包含有多个node,每个node为一个特征向量对应的存储区域,其中可以存储有特征向量、索引id以及该特征向量的邻居表,其中,邻居表包含有该特征向量的邻居数量,以及每个邻居的索引id,例如,某个邻居表包含4个邻居,四个索引id分别为10、17、3和6。另外,可以在node的最后增加padding确保每个存储区域可以按照一定边界对齐。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例5
根据本申请实施例,还提供了一种用于实施上述数据处理方法的数据处理装置,如图10所示,该装置1000包括:接收模块1002、第一生成模块1004、第一确定模块1006、存储模块1008和输出模块1010。
其中,接收模块1002用于接收第一特征向量;第一生成模块1004用于生成第一特征向量对应的第一索引标识;第一确定模块1006用于确定第一索引标识对应的第一存储块中的第一存储区域;存储模块1008用于将第一特征向量和第一索引标识存储至第一存储区域;输出模块1910用于输出第一特征向量对应的存储结果。
此处需要说明的是,上述接收模块1002、第一生成模块1004、第一确定模块1006、存储模块1008和输出模块1010对应于实施例1中的步骤S302至步骤S310,五个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
在本申请上述实施例中,第一确定模块包括:第一确定单元、第二确定单元和第三确定单元。
其中,第一确定单元用于基于第一索引标识,确定第一存储块的数据块标识和偏移量;第二确定单元用于基于数据块标识,确定第一存储块;第三确定单元用于基于偏移量,确定第一存储区域。
在本申请上述实施例中,该装置还包括如下至少之一:第一映射模块和第二映射模块。
其中,第一映射模块用于将第一存储块映射至磁盘中;第二映射模块用于通过预设接口,将第一存储块存储至远程存储设备中。
在本申请上述实施例中,该装置还包括:第二确定模块、第三确定模块和第二生成模块。
其中,第二确定模块用于基于分层可导航小世界图算法,确定已存储的多个特征向量中的第二特征向量,其中,第二特征向量与第一特征向量的特征距离小于预设距离;第三确定模块用于确定第二特征向量的第二索引标识;第二生成模块用于基于第二索引标识,生成第一特征向量对应的数据表;存储模块还用于将第一特征向量、第一索引标识和数据表存储至第一存储区域。
在本申请上述实施例中,第二生成模块包括:第四确定单元和生成单元。
其中,第四确定单元用于确定第二特征向量的数量;生成单元用于基于数量和第二索引标识,生成数据表。
在本申请上述实施例中,该装置还包括:第四确定模块和获取模块。
其中,接收模块还用于接收第三特征向量;第四确定模块用于基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取模块用于获取目标存储区域中存储的目标特征向量,得到检索结果,其中,目标特征向量与第三特征向量的特征距离小于预设距离;输出模块还用于输出检索结果。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例6
根据本申请实施例,还提供了一种用于实施上述数据处理方法的数据处理装置,如图11所示,该装置1100包括:第一获取模块1102、第一生成模块1104、第一确定模块1106和存储模块1108。
其中,第一获取模块1102用于获取第一特征向量;第一生成模块1104用于生成第一特征向量对应的第一索引标识;第一确定模块1106用于确定第一索引标识对应的第一存储块中的第一存储区域;存储模块1108用于将第一特征向量和第一索引标识存储至第一存储区域。
此处需要说明的是,上述第一获取模块1102、第一生成模块1104、第一确定模块1106和存储模块1108对应于实施例2中的步骤S602至步骤S608,四个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
在本申请上述实施例中,第一确定模块包括:第一确定单元、第二确定单元和第三确定单元。
其中,第一确定单元用于基于第一索引标识,确定第一存储块的数据块标识和偏移量;第二确定单元用于基于数据块标识,确定第一存储块;第三确定单元用于基于偏移量,确定第一存储区域。
在本申请上述实施例中,该装置还包括如下至少之一:第一映射模块和第二映射模块。
其中,第一映射模块用于将第一存储块映射至磁盘中;第二映射模块用于通过预设接口,将第一存储块存储至远程存储设备中。
在本申请上述实施例中,该装置还包括:第二确定模块、第三确定模块和第二生成模块。
其中,第二确定模块用于基于分层可导航小世界图算法,确定已存储的多个特征向量中的第二特征向量,其中,第二特征向量与第一特征向量的特征距离小于预设距离;第三确定模块用于确定第二特征向量的第二索引标识;第二生成模块用于基于第二索引标识,生成第一特征向量对应的数据表;存储模块还用于将第一特征向量、第一索引标识和数据表存储至第一存储区域。
在本申请上述实施例中,第二生成模块包括:第四确定单元和生成单元。
其中,第四确定单元用于确定第二特征向量的数量;生成单元用于基于数量和第二索引标识,生成数据表。
在本申请上述实施例中,该装置还包括:第四确定模块和第二获取模块。
其中,第一获取模块用于接收第三特征向量;第四确定模块用于基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;第二获取模块用于获取目标存储区域中存储的目标特征向量,得到检索结果,其中,目标特征向量与第三特征向量的特征距离小于预设距离。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例7
根据本申请实施例,还提供了一种用于实施上述数据处理方法的数据处理装置,如图12所示,该装置1200包括:第一获取模块1202、提取模块1204、第一生成模块1206、第一确定模块1208和存储模块1210。
其中,第一获取模块1202用于获取第一图像数据;提取模块1204用于对第一图像数据进行特征提取,得到第一特征向量;第一生成模块1206用于生成第一特征向量对应的第一索引标识;第一确定模块1208用于确定第一索引标识对应的第一存储块中的第一存储区域;存储模块1210用于将第一特征向量和第一索引标识存储至第一存储区域。
此处需要说明的是,上述第一获取模块1202、提取模块1204、第一生成模块1206、第一确定模块1208和存储模块1210对应于实施例3中的步骤S702至步骤S710,五个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
在本申请上述实施例中,第一确定模块包括:第一确定单元、第二确定单元和第三确定单元。
其中,第一确定单元用于基于第一索引标识,确定第一存储块的数据块标识和偏移量;第二确定单元用于基于数据块标识,确定第一存储块;第三确定单元用于基于偏移量,确定第一存储区域。
在本申请上述实施例中,该装置还包括如下至少之一:第一映射模块和第二映射模块。
其中,第一映射模块用于将第一存储块映射至磁盘中;第二映射模块用于通过预设接口,将第一存储块存储至远程存储设备中。
在本申请上述实施例中,该装置还包括:第二确定模块、第三确定模块和第二生成模块。
其中,第二确定模块用于基于分层可导航小世界图算法,确定已存储的多个特征向量中的第二特征向量,其中,第二特征向量与第一特征向量的特征距离小于预设距离;第三确定模块用于确定第二特征向量的第二索引标识;第二生成模块用于基于第二索引标识,生成第一特征向量对应的数据表;存储模块还用于将第一特征向量、第一索引标识和数据表存储至第一存储区域。
在本申请上述实施例中,第二生成模块包括:第四确定单元和生成单元。
其中,第四确定单元用于确定第二特征向量的数量;生成单元用于基于数量和第二索引标识,生成数据表。
在本申请上述实施例中,该装置还包括:第四确定模块、第二获取模块和第五确定模块。
其中,第一获取模块还用于获取第二图像数据;提取模块还用于对第二图像数据进行特征提取,得到第三特征向量;第四确定模块用于基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;第二获取模块用于获取目标存储区域中存储的目标特征向量,其中,目标特征向量与第三特征向量的特征距离小于预设距离;第五确定模块用于确定目标特征向量对应的目标图像数据,得到第二图像数据对应的检索结果。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例8
根据本申请实施例,还提供了一种用于实施上述数据处理方法的数据处理装置,如图13所示,该装置1300包括:接收模块1302、提取模块1304、第一生成模块1306、第一确定模块1308、存储模块1310和输出模块1312。
其中,接收模块1302用于接收第一图像数据;提取模块1304用于对第一图像数据进行特征提取,得到第一特征向量;第一生成模块1306用于生成第一特征向量对应的第一索引标识;第一确定模块1308用于确定第一索引标识对应的第一存储块中的第一存储区域;存储模块1310用于将第一特征向量和第一索引标识存储至第一存储区域;输出模块1312用于输出第一图像数据对应的存储结果。
此处需要说明的是,上述接收模块1302、提取模块1304、第一生成模块1306、第一确定模块1308、存储模块1310和输出模块1312对应于实施例4中的步骤S802至步骤S812,六个模块与对应的步骤所实现的实例和应用场景相同,但不限于上述实施例1所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在实施例1提供的计算机终端10中。
在本申请上述实施例中,第一确定模块包括:第一确定单元、第二确定单元和第三确定单元。
其中,第一确定单元用于基于第一索引标识,确定第一存储块的数据块标识和偏移量;第二确定单元用于基于数据块标识,确定第一存储块;第三确定单元用于基于偏移量,确定第一存储区域。
在本申请上述实施例中,该装置还包括如下至少之一:第一映射模块和第二映射模块。
其中,第一映射模块用于将第一存储块映射至磁盘中;第二映射模块用于通过预设接口,将第一存储块存储至远程存储设备中。
在本申请上述实施例中,该装置还包括:第二确定模块、第三确定模块和第二生成模块。
其中,第二确定模块用于基于分层可导航小世界图算法,确定已存储的多个特征向量中的第二特征向量,其中,第二特征向量与第一特征向量的特征距离小于预设距离;第三确定模块用于确定第二特征向量的第二索引标识;第二生成模块用于基于第二索引标识,生成第一特征向量对应的数据表;存储模块还用于将第一特征向量、第一索引标识和数据表存储至第一存储区域。
在本申请上述实施例中,第二生成模块包括:第四确定单元和生成单元。
其中,第四确定单元用于确定第二特征向量的数量;生成单元用于基于数量和第二索引标识,生成数据表。
在本申请上述实施例中,该装置还包括:第四确定模块、获取模块和第五确定模块。
其中,接收模块还用于接收第二图像数据;提取模块还用于对第二图像数据进行特征提取,得到第三特征向量;第四确定模块用于基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取模块用于获取目标存储区域中存储的目标特征向量,其中,目标特征向量与第三特征向量的特征距离小于预设距离;第五确定模块用于确定目标特征向量对应的目标图像数据,得到第二图像数据对应的检索结果;输出模块还用于输出检索结果。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例9
根据本申请实施例,还提供了一种数据处理方法,该方法同样可以应用于如图1和图2所示的运行环境中。图14是根据本申请实施例的第四种数据处理方法的流程图。如图14所示,该方法可以包括如下步骤:
步骤S1402,通过调用第一接口获取第一特征向量,其中,第一接口包括:第一参数,第一参数的参数值为第一特征向量。
上述步骤中的第一接口可以是服务器与客户端之间进行数据交互的接口,客户端可以将第一特征向量传入接口函数,作为接口函数的一个参数,实现第一特征向量上传至服务器的目的。
步骤S1404,生成第一特征向量对应的第一索引标识。
步骤S1406,确定第一索引标识对应的第一存储块中的第一存储区域。
步骤S1408,将第一特征向量和第一索引标识存储至第一存储区域。
步骤S1410,通过调用第二接口输出第一特征向量对应的存储结果,其中,第二接口包括:第二参数,第二参数的参数值为存储结果。
上述步骤中的第二接口可以是服务器与客户端之间进行数据交互的接口,服务器可以将存储结果传入接口函数,作为接口函数的一个参数,实现存储结果下发至客户端的目的。
在本申请上述实施例中,步骤S1406,确定第一索引标识对应的第一存储块中的第一存储区域包括:基于第一索引标识,确定第一存储块的数据块标识和偏移量;基于数据块标识,确定第一存储块;基于偏移量,确定第一存储区域。
在本申请上述实施例中,在步骤S1408,将第一特征向量和第一索引标识存储至第一存储区域之后,该方法还包括如下至少之一:将第一存储块映射至磁盘中;通过预设接口,将第一存储块存储至远程存储设备中。
在本申请上述实施例中,在步骤S1408,将第一特征向量和第一索引标识存储至第一存储区域之前,该方法还包括:基于分层可导航小世界图算法,确定已存储的多个特征向量中的第二特征向量,其中,第二特征向量与第一特征向量的特征距离小于预设距离;确定第二特征向量的第二索引标识;基于第二索引标识,生成第一特征向量对应的数据表;将第一特征向量、第一索引标识和数据表存储至第一存储区域。
在本申请上述实施例中,基于第二索引标识,生成第一特征向量对应的数据表包括:确定第二特征向量的数量;基于数量和第二索引标识,生成数据表。
在本申请上述实施例中,在步骤S1408,将第一特征向量和第一索引标识存储至第一存储区域之后,该方法还包括:接收第三特征向量;基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取目标存储区域中存储的目标特征向量,得到检索结果,其中,目标特征向量与第三特征向量的特征距离小于预设距离;输出检索结果。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例10
根据本申请实施例,还提供了一种数据处理方法,该方法同样可以应用于如图1和图2所示的运行环境中。图15是根据本申请实施例的第五种数据处理方法的流程图。如图15所示,该方法可以包括如下步骤:
步骤S1502,通过调用第一接口获取第一图像数据,其中,第一接口包括:第一参数,第一参数的参数值为第一图像数据。
步骤S1504,对第一图像数据进行特征提取,得到第一特征向量。
步骤S1506,生成第一特征向量对应的第一索引标识。
步骤S1508,确定第一索引标识对应的第一存储块中的第一存储区域。
步骤S1510,将第一特征向量和第一索引标识存储至第一存储区域。
步骤S1512,通过调用第二接口输出第一图像数据对应的存储结果,其中,第二接口包括:第二参数,第二参数的参数值为存储结果。
本申请上述实施例中,步骤S1508,确定第一索引标识对应的第一存储块中的第一存储区域包括:基于第一索引标识,确定第一存储块的数据块标识和偏移量;基于数据块标识,确定第一存储块;基于偏移量,确定第一存储区域。
在本申请上述实施例中,在步骤S1510,将第一特征向量和第一索引标识存储至第一存储区域之后,该方法还包括如下至少之一:将第一存储块映射至磁盘中;通过预设接口,将第一存储块存储至远程存储设备中。
在本申请上述实施例中,在步骤S1510,将第一特征向量和第一索引标识存储至第一存储区域之前,该方法还包括:基于分层可导航小世界图算法,确定已存储的多个特征向量中的第二特征向量,其中,第二特征向量与第一特征向量的特征距离小于预设距离;确定第二特征向量的第二索引标识;基于第二索引标识,生成第一特征向量对应的数据表;将第一特征向量、第一索引标识和数据表存储至第一存储区域。
在本申请上述实施例中,基于第二索引标识,生成第一特征向量对应的数据表包括:确定第二特征向量的数量;基于数量和第二索引标识,生成数据表。
在本申请上述实施例中,在步骤S1510,将第一特征向量和第一索引标识存储至第一存储区域之后,该方法还包括:接收第二图像数据;对第二图像数据进行特征提取,得到第三特征向量;基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取目标存储区域中存储的目标特征向量,其中,目标特征向量与第三特征向量的特征距离小于预设距离;确定目标特征向量对应的目标图像数据,得到第二图像数据对应的检索结果;输出检索结果。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例11
根据本申请实施例,还提供了一种数据处理***,包括:
处理器。以及
存储器,与处理器连接,用于为处理器提供处理以下处理步骤的指令:接收第一图像数据;对第一图像数据进行特征提取,得到第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;输出第一图像数据对应的存储结果。
需要说明的是,本申请上述实施例中涉及到的优选实施方案与实施例1提供的方案以及应用场景、实施过程相同,但不仅限于实施例1所提供的方案。
实施例12
本申请的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。
可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。
在本实施例中,上述计算机终端可以执行数据方法中以下步骤的程序代码:接收第一图像数据;对第一图像数据进行特征提取,得到第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;输出第一图像数据对应的存储结果。
可选地,图16是根据本申请实施例的一种计算机终端的结构框图。如图16所示,该计算机终端A可以包括:一个或多个(图中仅示出一个)处理器1602、以及存储器1604。
其中,存储器可用于存储软件程序以及模块,如本申请实施例中的数据处理方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的数据处理方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端A。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:接收第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;输出第一特征向量对应的存储结果。
可选的,上述处理器还可以执行如下步骤的程序代码:基于第一索引标识,确定第一存储块的数据块标识和偏移量;基于数据块标识,确定第一存储块;基于偏移量,确定第一存储区域。
可选的,上述处理器还可以执行如下至少一个步骤的程序代码:在将第一特征向量和第一索引标识存储至第一存储区域之后,将第一存储块映射至磁盘中;通过预设接口,将第一存储块存储至远程存储设备中。
可选的,上述处理器还可以执行如下步骤的程序代码:在将第一特征向量和第一索引标识存储至第一存储区域之前,基于分层可导航小世界图算法,确定已存储的多个特征向量中的第二特征向量,其中,第二特征向量与第一特征向量的特征距离小于预设距离;确定第二特征向量的第二索引标识;基于第二索引标识,生成第一特征向量对应的数据表;将第一特征向量、第一索引标识和数据表存储至第一存储区域。
可选的,上述处理器还可以执行如下步骤的程序代码:确定第二特征向量的数量;基于数量和第二索引标识,生成数据表。
可选的,上述处理器还可以执行如下步骤的程序代码:在将第一特征向量和第一索引标识存储至第一存储区域之后,接收第三特征向量;基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取目标存储区域中存储的目标特征向量,得到检索结果,其中,目标特征向量与第三特征向量的特征距离小于预设距离;输出检索结果。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域。
可选的,上述处理器还可以执行如下步骤的程序代码:在将第一特征向量和第一索引标识存储至第一存储区域之后,获取第三特征向量;基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取目标存储区域中存储的目标特征向量,得到检索结果,其中,目标特征向量与第三特征向量的特征距离小于预设距离。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:获取第一图像数据;对第一图像数据进行特征提取,得到第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域。
可选的,上述处理器还可以执行如下步骤的程序代码:在将第一特征向量和第一索引标识存储至第一存储区域之后,获取第二图像数据;对第二图像数据进行特征提取,得到第三特征向量;基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取目标存储区域中存储的目标特征向量,其中,目标特征向量与第三特征向量的特征距离小于预设距离;确定目标特征向量对应的目标图像数据,得到第二图像数据对应的检索结果。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:接收第一图像数据;对第一图像数据进行特征提取,得到第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;输出第一图像数据对应的存储结果。
可选的,上述处理器还可以执行如下步骤的程序代码:在将第一特征向量和第一索引标识存储至第一存储区域之后,接收第二图像数据;对第二图像数据进行特征提取,得到第三特征向量;基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取目标存储区域中存储的目标特征向量,其中,目标特征向量与第三特征向量的特征距离小于预设距离;确定目标特征向量对应的目标图像数据,得到第二图像数据对应的检索结果;输出检索结果。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:通过调用第一接口获取第一图像数据,其中,第一接口包括:第一参数,第一参数的参数值为第一图像数据;对第一图像数据进行特征提取,得到第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;通过调用第二接口输出第一图像数据对应的存储结果,其中,第二接口包括:第二参数,第二参数的参数值为存储结果。
处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:通过调用第一接口获取第一特征向量,其中,第一接口包括:第一参数,第一参数的参数值为第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;通过调用第二接口输出第一特征向量对应的存储结果,其中,第二接口包括:第二参数,第二参数的参数值为存储结果。
采用本申请实施例,提供了一种向量写入和检索方案。每次接收到特征向量之后可以立即生成该特征向量的索引标识,无需进行索引训练流程,从而实现了向量检索场景中的流式索引,达到特征向量即增即查,降低索引构建成本的技术效果,进而解决了相关技术中向量检索方法中的索引构建需要进行数据训练,导致写入新的特征向量时,需要重新构建索引,索引构建成本较高的技术问题。
本领域普通技术人员可以理解,图16所示的结构仅为示意,计算机终端也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图16其并不对上述电子装置的结构造成限定。例如,计算机终端A还可包括比图16中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图16所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
实施例13
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例所提供的数据处理方法所执行的程序代码。
可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;输出第一特征向量对应的存储结果。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:基于第一索引标识,确定第一存储块的数据块标识和偏移量;基于数据块标识,确定第一存储块;基于偏移量,确定第一存储区域。
可选的,上述存储介质还被设置为存储用于执行以下至少一个步骤的程序代码:在将第一特征向量和第一索引标识存储至第一存储区域之后,将第一存储块映射至磁盘中;通过预设接口,将第一存储块存储至远程存储设备中。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在将第一特征向量和第一索引标识存储至第一存储区域之前,基于分层可导航小世界图算法,确定已存储的多个特征向量中的第二特征向量,其中,第二特征向量与第一特征向量的特征距离小于预设距离;确定第二特征向量的第二索引标识;基于第二索引标识,生成第一特征向量对应的数据表;将第一特征向量、第一索引标识和数据表存储至第一存储区域。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:确定第二特征向量的数量;基于数量和第二索引标识,生成数据表。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在将第一特征向量和第一索引标识存储至第一存储区域之后,接收第三特征向量;基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取目标存储区域中存储的目标特征向量,得到检索结果,其中,目标特征向量与第三特征向量的特征距离小于预设距离;输出检索结果。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在将第一特征向量和第一索引标识存储至第一存储区域之后,获取第三特征向量;基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取目标存储区域中存储的目标特征向量,得到检索结果,其中,目标特征向量与第三特征向量的特征距离小于预设距离。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:获取第一图像数据;对第一图像数据进行特征提取,得到第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在将第一特征向量和第一索引标识存储至第一存储区域之后,获取第二图像数据;对第二图像数据进行特征提取,得到第三特征向量;基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取目标存储区域中存储的目标特征向量,其中,目标特征向量与第三特征向量的特征距离小于预设距离;确定目标特征向量对应的目标图像数据,得到第二图像数据对应的检索结果。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:接收第一图像数据;对第一图像数据进行特征提取,得到第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;输出第一图像数据对应的存储结果。
可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:在将第一特征向量和第一索引标识存储至第一存储区域之后,接收第二图像数据;对第二图像数据进行特征提取,得到第三特征向量;基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;获取目标存储区域中存储的目标特征向量,其中,目标特征向量与第三特征向量的特征距离小于预设距离;确定目标特征向量对应的目标图像数据,得到第二图像数据对应的检索结果;输出检索结果。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过调用第一接口获取第一图像数据,其中,第一接口包括:第一参数,第一参数的参数值为第一图像数据;对第一图像数据进行特征提取,得到第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;通过调用第二接口输出第一图像数据对应的存储结果,其中,第二接口包括:第二参数,第二参数的参数值为存储结果。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:通过调用第一接口获取第一特征向量,其中,第一接口包括:第一参数,第一参数的参数值为第一特征向量;生成第一特征向量对应的第一索引标识;确定第一索引标识对应的第一存储块中的第一存储区域;将第一特征向量和第一索引标识存储至第一存储区域;通过调用第二接口输出第一特征向量对应的存储结果,其中,第二接口包括:第二参数,第二参数的参数值为存储结果。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (23)
1.一种数据处理方法,包括:
接收第一图像数据;
对所述第一图像数据进行特征提取,得到第一特征向量;
生成所述第一特征向量对应的第一索引标识;
确定所述第一索引标识对应的第一存储块中的第一存储区域;
将所述第一特征向量和所述第一索引标识存储至所述第一存储区域;
输出所述第一图像数据对应的存储结果。
2.根据权利要求1所述的方法,其中,确定所述第一索引标识对应的第一存储块中的第一存储区域包括:
基于所述第一索引标识,确定所述第一存储块的数据块标识和偏移量;
基于所述数据块标识,确定所述第一存储块;
基于所述偏移量,确定所述第一存储区域。
3.根据权利要求1所述的方法,其中,在将所述第一特征向量和所述第一索引标识存储至所述第一存储区域之后,所述方法还包括如下至少之一:
将所述第一存储块映射至磁盘中;
通过预设接口,将所述第一存储块存储至远程存储设备中。
4.一种数据处理方法,包括:
接收第一特征向量;
生成所述第一特征向量对应的第一索引标识;
确定所述第一索引标识对应的第一存储块中的第一存储区域;
将所述第一特征向量和所述第一索引标识存储至所述第一存储区域;
输出所述第一特征向量对应的存储结果。
5.根据权利要求4所述的方法,其中,确定所述第一索引标识对应的第一存储块中的第一存储区域包括:
基于所述第一索引标识,确定所述第一存储块的数据块标识和偏移量;
基于所述数据块标识,确定所述第一存储块;
基于所述偏移量,确定所述第一存储区域。
6.根据权利要求4所述的方法,其中,在将所述第一特征向量和所述第一索引标识存储至所述第一存储区域之后,所述方法还包括如下至少之一:
将所述第一存储块映射至磁盘中;
通过预设接口,将所述第一存储块存储至远程存储设备中。
7.一种数据处理方法,包括:
获取第一特征向量;
生成所述第一特征向量对应的第一索引标识;
确定所述第一索引标识对应的第一存储块中的第一存储区域;
将所述第一特征向量和所述第一索引标识存储至所述第一存储区域。
8.根据权利要求7所述的方法,其中,确定所述第一索引标识对应的第一存储块中的第一存储区域包括:
基于所述第一索引标识,确定所述第一存储块的数据块标识和偏移量;
基于所述数据块标识,确定所述第一存储块;
基于所述偏移量,确定所述第一存储区域。
9.根据权利要求7所述的方法,其中,在将所述第一特征向量和所述第一索引标识存储至所述第一存储区域之后,所述方法还包括如下至少之一:
将所述第一存储块映射至磁盘中;
通过预设接口,将所述第一存储块存储至远程存储设备中。
10.根据权利要求7所述的方法,其中,在将所述第一特征向量和所述第一索引标识存储至所述第一存储区域之前,所述方法还包括:
基于分层可导航小世界图算法,确定已存储的多个特征向量中的第二特征向量,其中,所述第二特征向量与所述第一特征向量的特征距离小于预设距离;
确定所述第二特征向量的第二索引标识;
基于所述第二索引标识,生成所述第一特征向量对应的数据表;
将所述第一特征向量、所述第一索引标识和所述数据表存储至所述第一存储区域。
11.根据权利要求10所述的方法,其中,基于所述第二索引标识,生成所述第一特征向量对应的数据表包括:
确定所述第二特征向量的数量;
基于所述数量和所述第二索引标识,生成所述数据表。
12.根据权利要求7所述的方法,其中,在将所述第一特征向量和所述第一索引标识存储至所述第一存储区域之后,所述方法还包括:
获取第三特征向量;
基于分层可导航小世界图算法,确定目标存储块中的目标存储区域;
获取所述目标存储区域中存储的目标特征向量,得到检索结果,其中,所述目标特征向量与所述第三特征向量的特征距离小于预设距离。
13.根据权利要求7所述的方法,其中,按照自增编号生成算法生成所述第一索引标识。
14.根据权利要求7所述的方法,其中,所述第一存储块的尺寸由预设特征向量尺寸和预设数量确定。
15.根据权利要求7所述的方法,其中,将预设填充数据存储至所述第一存储区域之内。
16.一种数据处理方法,包括:
获取第一图像数据;
对所述第一图像数据进行特征提取,得到第一特征向量;
生成所述第一特征向量对应的第一索引标识;
确定所述第一索引标识对应的第一存储块中的第一存储区域;
将所述第一特征向量和所述第一索引标识存储至所述第一存储区域。
17.根据权利要求16所述的方法,其中,确定所述第一索引标识对应的第一存储块中的第一存储区域包括:
基于所述第一索引标识,确定所述第一存储块的数据块标识和偏移量;
基于所述数据块标识,确定所述第一存储块;
基于所述偏移量,确定所述第一存储区域。
18.根据权利要求16所述的方法,其中,在将所述第一特征向量和所述第一索引标识存储至所述第一存储区域之后,所述方法还包括如下至少之一:
将所述第一存储块映射至磁盘中;
通过预设接口,将所述第一存储块存储至远程存储设备中。
19.一种数据处理方法,包括:
通过调用第一接口获取第一图像数据,其中,所述第一接口包括:第一参数,所述第一参数的参数值为所述第一图像数据;
对所述第一图像数据进行特征提取,得到第一特征向量;
生成所述第一特征向量对应的第一索引标识;
确定所述第一索引标识对应的第一存储块中的第一存储区域;
将所述第一特征向量和所述第一索引标识存储至所述第一存储区域;
通过调用第二接口输出所述第一图像数据对应的存储结果,其中,所述第二接口包括:第二参数,所述第二参数的参数值为所述存储结果。
20.一种数据处理方法,包括:
通过调用第一接口获取第一特征向量,其中,所述第一接口包括:第一参数,所述第一参数的参数值为所述第一特征向量;
生成所述第一特征向量对应的第一索引标识;
确定所述第一索引标识对应的第一存储块中的第一存储区域;
将所述第一特征向量和所述第一索引标识存储至所述第一存储区域;
通过调用第二接口输出所述第一特征向量对应的存储结果,其中,所述第二接口包括:第二参数,所述第二参数的参数值为所述存储结果。
21.一种计算机可读存储介质,所述计算机可读存储介质包括存储的程序,其中,在所述程序运行时控制所述计算机可读存储介质所在设备执行权利要求1至20中任意一项所述的数据处理方法。
22.一种计算机终端,包括:存储器和处理器,所述处理器用于运行所述存储器中存储的程序,其中,所述程序运行时执行权利要求1至20中任意一项所述的数据处理方法。
23.一种数据处理***,包括:
处理器;以及
存储器,与所述处理器连接,用于为所述处理器提供处理以下处理步骤的指令:接收第一图像数据;对所述第一图像数据进行特征提取,得到第一特征向量;生成所述第一特征向量对应的第一索引标识;确定所述第一索引标识对应的第一存储块中的第一存储区域;将所述第一特征向量和所述第一索引标识存储至所述第一存储区域;输出所述第一图像数据对应的存储结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010948221.7A CN114168766A (zh) | 2020-09-10 | 2020-09-10 | 数据处理方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010948221.7A CN114168766A (zh) | 2020-09-10 | 2020-09-10 | 数据处理方法和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114168766A true CN114168766A (zh) | 2022-03-11 |
Family
ID=80475818
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010948221.7A Pending CN114168766A (zh) | 2020-09-10 | 2020-09-10 | 数据处理方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114168766A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11995109B1 (en) * | 2024-02-13 | 2024-05-28 | Extensional, Inc. | Performant proximity matching between sets of unstructured records |
-
2020
- 2020-09-10 CN CN202010948221.7A patent/CN114168766A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11995109B1 (en) * | 2024-02-13 | 2024-05-28 | Extensional, Inc. | Performant proximity matching between sets of unstructured records |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111950653B (zh) | 视频处理方法和装置、存储介质及电子设备 | |
CN110704453B (zh) | 一种数据查询方法、装置、存储介质及电子设备 | |
CN104426841A (zh) | 设置背景图像的方法及相关的服务器和*** | |
CN104023181A (zh) | 信息处理方法及装置 | |
CN110580508A (zh) | 视频分类方法、装置、存储介质和移动终端 | |
CN111309946B (zh) | 一种已建立档案优化方法及装置 | |
CN111428120B (zh) | 一种信息确定方法、装置、电子设备及存储介质 | |
EP3370166B1 (en) | Method and apparatus for model parameter fusion | |
CN102811167B (zh) | 用于基于分层名称结构的网络的方法和设备 | |
CN106407268A (zh) | 一种基于覆盖率最优化法的内容检索方法及*** | |
CN114168766A (zh) | 数据处理方法和*** | |
CN113076159B (zh) | 图像显示方法和装置、存储介质及电子设备 | |
CN113157962B (zh) | 图像检索方法、电子装置和存储介质 | |
US9977793B2 (en) | Information processing system, information processing method, and information processing apparatus | |
JP5862243B2 (ja) | 情報処理装置、及びその制御方法、プログラム | |
CN106484695B (zh) | 一种用于检索的方法与设备 | |
CN113849575A (zh) | 数据处理方法、装置和*** | |
JP5408241B2 (ja) | 情報処理装置、情報処理方法、プログラム | |
CN110738175A (zh) | 人脸图像处理方法、装置、计算机设备和存储介质 | |
JP5772908B2 (ja) | 情報処理装置、情報処理システム、その制御方法およびプログラム | |
JP2014010640A (ja) | 画像検索装置、情報処理方法、プログラム | |
CN113986828A (zh) | 存储海量文件的方法、装置、电子设备及存储介质 | |
CN111274431A (zh) | 一种图像检索处理方法及装置 | |
CN115328892B (zh) | 一种业务表单数据结构处理方法、***、电子设备及介质 | |
CN112631682B (zh) | 小程序处理方法、装置、设备及存储介质 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20230912 Address after: Room 516, floor 5, building 3, No. 969, Wenyi West Road, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province Applicant after: Alibaba Dharma Institute (Hangzhou) Technology Co.,Ltd. Address before: Box 847, four, Grand Cayman capital, Cayman Islands, UK Applicant before: ALIBABA GROUP HOLDING Ltd. |
|
TA01 | Transfer of patent application right |