掌桥专利:专业的专利平台
掌桥专利
首页

数据处理方法、电子设备及可读存储介质

文献发布时间:2023-06-19 10:27:30


数据处理方法、电子设备及可读存储介质

技术领域

本申请涉及计算机技术领域,具体而言,涉及一种数据处理方法、电子设备及可读存储介质。

背景技术

目前采用的数据保存方式一般为:在接收到待保存数据后,就会马上将其写入到设备的存储空间。一方面,待保存数据为图片或者音频等,保存这种数据会占用很大的存储空间;另一方面,针对每次接收到的待保存数据,均需要分别发送一次写请求,以便完成该待保存数据的写入。也即,在多次接收到待保存数据时,则需要发送多次写请求。该方式存在存储效率低以及存储空间利用率低的问题。

发明内容

本申请实施例的目的在于提供一种数据处理方法、装置、电子设备及可读存储介质,其能够通过异步批量写入的方式将待保存数据保存到存储块中,以提高存储效率;同时通过保存特征向量的方式,提高存储空间利用率。

第一方面,本申请实施例提供一种数据处理方法,应用于电子设备,所述电子设备中包括存储块,所述方法包括:

响应于接收到的入库请求,将所述入库请求中的待保存数据写入缓存队列中,其中,所述待保存数据为特征向量;

判断所述缓存队列中当前已缓存的待保存数据的数据量是否满足预设数据量要求;

若满足,则将所述缓存队列中当前已缓存的待保存数据批量写入所述存储块中。

在可选的实施方式中,所述方法还包括:

通过聚类算法,将存储在所述存储块中的特征向量划分为多个数据块,其中,每个数据块中包括一个中心特征向量,每个数据块中的中心特征向量与该数据块中的除所述中心特征向量之外的其他各特征向量之间的距离小于预设距离阈值;

根据所述多个数据块以及各数据块的中心特征向量,生成索引文件,其中,所述索引文件中包括多个索引块,每个索引块中包括该索引块所对应的数据块的中心特征向量以及该数据块中各个特征向量的向量标识。

在可选的实施方式中,所述方法还包括:

针对在生成所述索引文件之后写入所述存储块的待分类特征向量,计算所述待分类特征向量与每个索引块的中心特征向量之间的第一距离;

根据所述第一距离及预设分类规则,确定所述待分类特征向量所对应的待存索引块,并将所述待分类特征向量的向量标识添加到所述待存索引块中。

在可选的实施方式中,所述方法还包括:

响应于接收到的查询请求,计算所述查询请求中的第一目标特征向量与所述索引文件中各中心特征向量之间的第二距离;

根据第一预设选择规则以及所述第二距离,确定出目标中心特征向量;

根据各目标中心特征向量所在的索引块,确定出各目标中心特征向量所在的目标数据块中的各特征向量,并将确定出的特征向量作为多个待选的特征向量;

计算所述第一目标特征向量与各待选的特征向量之间的第三距离,并根据所述第三距离及第二预设选择规则,从所述多个待选的特征向量中确定出第二目标特征向量,其中,所述第二目标特征向量为与所述第一目标特征向量相似的特征向量;

将所述第二目标特征向量发送给与所述查询请求对应的查询设备。

在可选的实施方式中,所述数据块的数量由预先设定的配置文件确定。

在可选的实施方式中,所述电子设备中的存储块为多个,所述将所述缓存队列中当前已缓存的待保存数据批量写入所述存储块中,包括:

判断当前未写满的存储块的剩余存储容量是否不小于所述缓存队列中当前已缓存的待保存数据的所需存储容量;

若不小于,则将所述缓存队列中当前已缓存的待保存数据,批量写入到当前未写满的存储块中;

若小于,则将所述缓存队列中当前已缓存的待保存数据,批量写入到另一个未写入待保存数据的存储块中。

在可选的实施方式中,在将所述缓存队列中当前已缓存的待保存数据批量写入所述存储块中之前,所述方法还包括:

向发送所述入库请求的数据发送设备发送回复信息,其中,所述回复信息中包括数据已保存的信息。

在可选的实施方式中,所述方法还包括:

响应于接收到的查询请求,根据所述查询请求中的第一目标特征向量在所述存储块存储的特征向量中进行查找,并将查找到的与所述第一目标特征向量相似的第二目标特征向量发送给与所述查询请求对应的查询设备。

第二方面,本申请实施例提供一种数据处理装置,应用于电子设备,所述电子设备中包括存储块,所述装置包括:

缓存模块,用于响应于接收到的入库请求,将所述入库请求中的待保存数据写入缓存队列中,其中,所述待保存数据为特征向量;

判断模块,用于判断所述缓存队列中当前已缓存的待保存数据的数据量是否满足预设数据量要求;

保存模块,用于在满足时,将所述缓存队列中当前已缓存的待保存数据批量写入所述存储块中。

第三方面,本申请实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式中任意一项所述的数据处理方法。

第四方面,本申请提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式中任意一项所述的数据处理方法。

本申请实施例提供的数据处理方法、装置、电子设备及可读存储介质,响应于接收到的入库请求,将入库请求中的待保存数据写入缓存队列中,并在缓存队列中当前已缓存的待保存数据的数据量满足预设数据量要求的情况下,将缓存队列中当前已缓存的待保存数据批量写入存储块中。其中,待存储数据为特征向量。由此,可将待保存数据通过异步批量写入的方式保存到存储块中,以避免每接收到一次待保存数据就发送一次写请求,从而减少写请求的数量,进而提高存储效率。同时,由于保存的是从图片或者音频等对象中提取的特征向量,而不是原本的对象,因而使得在可以达到保存目的的基础上占用较少的存储空间,从而提高存储空间利用率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的电子设备的方框示意图;

图2为本申请实施例提供的数据处理方法的流程示意图之一;

图3为本申请实施例提供的数据处理方法的流程示意图之二;

图4为本申请实施例提供的数据处理方法的流程示意图之三;

图5为本申请实施例提供的数据处理方法的流程示意图之四;

图6为本申请实施例提供的数据处理方法的流程示意图之五;

图7为本申请实施例提供的数据处理装置的方框示意图之一;

图8为本申请实施例提供的数据处理装置的方框示意图之二;

图9为本申请实施例提供的数据处理装置的方框示意图之三。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。

请参照图1,图1为本申请实施例提供的电子设备100的方框示意图。所述电子设备100可以是,但不限于,终端(如电脑)、服务器或集群服务器等。所述电子设备100可作为数据库,用于存储需要保存的数据。所述电子设备100包括存储器110、处理器120及通信单元130。所述存储器110、处理器120以及通信单元130各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。

其中,存储器110用于存储程序或者数据。所述存储器110可以是,但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-Only Memory,PROM),可擦除只读存储器(ErasableProgrammable Read-Only Memory,EPROM),电可擦除只读存储器(Electric ErasableProgrammable Read-Only Memory,EEPROM)等。

处理器120用于读/写存储器110中存储的数据或程序,并执行相应地功能。比如,存储器110中存储有数据处理装置200,所述数据处理装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器110中的软件功能模块。所述处理器120通过运行存储在存储器110内的软件程序以及模块,如本申请实施例中的数据处理装置200,从而执行各种功能应用以及数据处理,即实现本申请实施例中的数据处理方法。

通信单元130用于通过网络建立所述电子设备100与其它通信终端之间的通信连接,并用于通过所述网络收发数据。

应当理解的是,图1所示的结构仅为电子设备100的结构示意图,所述电子设备100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。图1中所示的各组件可以采用硬件、软件或其组合实现。

请参照图2,图2为本申请实施例提供的数据处理方法的流程示意图之一。所述方法可应用于所述电子设备100,所述电子设备100中包括用于存储待保存数据的存储块。下面对数据处理方法的具体流程进行详细阐述。所述方法可以包括步骤S110~步骤S130。

步骤S110,响应于接收到的入库请求,将所述入库请求中的待保存数据写入缓存队列中。

至少一个数据发送设备与所述电子设备100通信连接。所述数据发送设备在有数据存储需求时,可向所述电子设备100发送入库请求,所述入库请求中可包括待保存数据。所述待保存数据为特征向量。所述电子设备100在接收到该入库请求后,将该入库请求中的待保存数据写入到缓存队列中,以完成对待保存数据的缓存。

数据发送设备中需进行存储的原始数据可以是图像、声音等形式的数据。在S110之前,数据发送设备可以通过特征提取网络得到原始数据的特征向量,即待保存数据。这样,本申请中不直接存储原始数据,而是存储原始数据的特征向量,从而能够减少存储空间的占用率。

步骤S120,判断所述缓存队列中当前已缓存的待保存数据的数据量是否满足预设数据量要求。

在将所述入库请求中的待保存数据写入到所述缓存队列后,可判断所述缓存中当前已缓存的待保存的数据量是否满足预设数据量要求。其中,所述预设数据量要求可以是对待保存数据的条数要求,比如,100条;也可以是对待保存数据所需存储容量的要求,比如,5M。所述数据量与预设数据量要求的具体类型相同,以便进行比较。比如,均为条数,则可以将所述缓存队列中当前已缓存的待保存数据的条数,与所述预设数据量要求中的预设条数进行比较,若待保存数据的条数大于所述预设条数,则可以确定满足所述预设数据量要求。

若所述缓存队列中当前已缓存的待保存数据的数据量不满足预设数据量要求,则不将所述缓存队列中当前已缓存的待保存数据写入到存储块中。也就是说,返回继续执行S110和S120。

步骤S130,若满足,则将所述缓存队列中当前已缓存的待保存数据批量写入所述存储块中。

所述缓存队列中当前已缓存的待保存数据的数据量满足预设数据量要求,表示所述缓存队列中已缓存了大量的待保存数据,在此情况下,可通过后台线程数据,将已缓存的大量待保存数据写入到所述电子设备100的存储块中。由此,在保存大量待保存数据时,只需发送一次写请求即可。相较于每次针对一小部分待保存数据就发送一次写请求的现有方式,在保存相同量的大量待保存数据的情况下,本方式的存储效率高于现有方式。

随着科技的发展,图像、声音比对等已进入人们的日常生活。若直接存储的是图像或者声音等对象,不仅占用的存储空间大,且比对查找效率低。而本申请实施例中保存的是从图片或者音频等对象中提取的特征向量,并不是原本的对象,使得在可以达到保存目的的基础上占用较少的存储空间,提高存储空间利用率。比如,针对一张人脸图像,可以提取的特征维度有512维,可从各特征维度提取相应的特征,从而得到用于描述该人脸图像的特征向量,该特征向量可满足后续的查找等需求、且占用空间小于原本人脸图像所占用的空间。并且,基于特征向量的比对查找效率,高于直接基于图像或者声音等的查找效率。

可选地,所述电子设备100中的存储块为多个,每个存储块的大小可以由预先设置好的配置文件确定。可通过如下方式完成待保存数据的保存:判断当前未写满的存储块的剩余存储容量是否不小于所述缓存队列中当前已缓存的待保存数据的所需存储容量;若不小于,则将所述缓存队列中当前已缓存的待保存数据,批量写入到当前未写满的存储块中;若小于,则将所述缓存队列中当前已缓存的待保存数据,批量写入到另一个未写入待保存数据的存储块中。也即,在本次要写入的待保存数据不能一次性写入当前未写满的存储块时,则将该部分待保存数据一次性写入到一个新的存储块中。将数据分块存储,便于后续读取数据。

请参照图3,图3为本申请实施例提供的数据处理方法的流程示意图之二。在步骤S130之前,所述方法还可以包括步骤S115。

步骤S115,向发送所述入库请求的数据发送设备发送回复信息。

可选地,在将所述入库请求中的待保存数据保存到所述缓存队列后,可向发送该入库请求的数据发送设备回复信息。其中,所述回复信息中包括数据已保存的信息。由此,可使数据发送设备及时得到回复消息,减少所述数据发送设备的等待时间。

可选地,在本实施例中,所述待保存数据为特征向量,所述电子设备100可作为特征向量聚类数据库(Feature vector database,Fvdb)。特征向量聚类数据库是一种基于特征向量存储、聚类运算的数据库,支持海量数据存储、索引创建、实时查询等。特征向量聚类数据库可以广泛的应用于人脸搜索、以图搜图、声纹识别等需要用特征向量聚类的领域。

可选地,作为一种可选的实施方式,在接收到查询设备的查询请求时,可响应于接收到的查询请求,根据所述查询请求中的第一目标特征向量在所述存储块存储的特征向量中进行查找,并将查找到的与所述第一目标特征向量相似的第二目标特征向量发送给与所述查询请求对应的查询设备。

在查找时,可直接计算所述存储块中存储的每个特征向量与所述第一目标特征向量之间的距离,然后根据计算出的距离,按照距离由小到大的顺序确定出一定数量个特征向量,或者确定出上述距离小于特定距离的特征向量,并将确定出的特征向量作为与所述第一目标特征向量相似的第二目标特征向量。接着,将查找到的第二目标特征向量发送给所述查询设备。

可选地,还可以生成与存储的特征向量对应的索引文件,进而根据索引文件快速完成查找。请参照图4,图4为本申请实施例提供的数据处理方法的流程示意图之三。在本实施例中,在步骤S130之后,所述方法还可以包括步骤S141及步骤S142。

步骤S141,通过聚类算法,将存储在所述存储块中的特征向量划分为多个数据块。

可选地,可利用任意的聚类算法,将当前所述电子设备100的存储块中所存储的特征向量,划分为多个数据块。其中,每个数据块中包括一个中心特征向量、以及与该中心特征向量相似的特征向量。中心特征向量代表整个数据块的中心,即该数据块中的其他所有向量与中心特征向量最相似。任意一个数据块中的中心特征向量与该数据块中的除所述中心特征向量之外的其他各特征向量之间的距离小于预设距离阈值。中心特征向量可以是存储块中原本存储的特征向量,也可以是基于分类结果计算得到的,在此不进行具体限定。可选地,所使用的聚类算法可以是,但不限于,K-Means(K均值)聚类算法、均值漂移聚类算法、基于密度的聚类方法等。

可选地,作为一种可选的实施方式,所述数据块的数量可以由预先设置的配置文件确定,也即,数据块的数量是提前设置好的。所述数据块的数量可以小于2048。由此,可通过设置数据块的数量,以避免由于数据块过多导致后续的查找速度慢。在设置了数据块数量的情况下,可通过K-Means聚类算法,将存储的特征向量划分为预配置数量个(如N个)数据块。

步骤S142,根据所述多个数据块以及各数据块的中心特征向量,生成所述索引文件。

所述索引文件中可以包括与多个索引块,每个索引块对应一个数据块。每个索引块中可以包括该索引块所对应的数据块的中心特征向量、以及该数据块中各个特征向量的向量标识,该向量标识可以是特征向量的索引地址。比如,有数据块A,可以根据数据块A所包括的特征向量生成索引块A,其中,索引块A中可以包括数据块A的中心特征向量、以及数据块A中各个特征向量的向量标识。由此,可生成索引文件,以便后续根据索引文件进行查找。

以K-means聚类为例,假设预先设置的配置文件所确定的数据库的数量是N个,那么:

从存储块中的所有特征向量构成的数据集中随机选择N个特征向量作为N个中心特征向量。

对数据集中每一个特征向量,计算其与N个中心特征向量之间的距离,离哪个中心特征向量近,就划分到那个中心特征向量所属的集合。这样便得到了N个集合,之后再重新确定各个集合的中心特征向量。

重复执行上一段的过程,直到:新计算出来的中心特征向量与上一次执行时的中心特征向量之间的距离小于某一个设置的阈值(表示趋于稳定,或者说收敛),此时便可以认为聚类已经达到期望的结果,算法终止。

其中,距离可以是欧式距离、曼哈顿距离、切比雪夫距离、余弦距离等中的任一,本申请对此不限定。

其中,在K-means聚类算法终止并确定出最终的N个集合之后,将N个集合对应于N个数据块。并且可以将集合中的所有特征向量的均值向量作为重新确定的中心特征向量。相应地,可以理解,数据块的中心特征向量是该数据块中所包含的所有特征向量的均值向量,也可以称为质心。

可选地,作为一种可选的实施方式,可以在所述存储块中新写入特征向量后,就执行一次步骤S141~步骤S142,从而使得索引文件与真实的存储情况对应。

请参照图5,图5为本申请实施例提供的数据处理方法的流程示意图之四。可选地,作为另一种可选的实施方式,在已经通过步骤S141及步骤S142生成了索引文件的情况下,所述方法还可以包括步骤S151及步骤S152。

步骤S151,针对在生成所述索引文件之后写入所述存储块的待分类特征向量,计算所述待分类特征向量与每个索引块的中心特征向量之间的第一距离。

步骤S152,根据所述第一距离及预设分类规则,确定所述待分类特征向量所对应的待存索引块,并将所述待分类特征向量的向量标识添加到所述待存索引块中。

若接收到新的入库请求,可再次执行步骤S110~步骤S130。在所述电子设备100已生成过索引文件的情况下,针对新写入的特征向量,可将新写入的特征向量作为待分类特征向量,并可计算各个待分类特征向量与保存的索引文件中各个中心特征向量之间的第一距离。所述第一距离与相似度反相关。一个特征向量与一个中心特征向量之间的第一距离越小,表示该特征向量与该中心特征向量越相似;一个特征向量与一个中心特征向量之间的第一距离越大,表示该特征向量与该中心特征向量越不相似。

所述预设分类规则,用于基于所述第一距离,将新写入的各个特征向量(即每个待分类特征向量)划分到先前已划分好的数据块中,进而将新写入的各个特征向量的向量标识,添加到与自身所属的数据块所对应的索引块(即待存索引块)中。所述预设分类规则可以根据实际需求设置。

比如,所述预设分类规则可以为:针对一个特征向量,将与该特征向量距离最小的中心特征向量,作为与该特征向量最相似的中心特征向量。在此预设分类规则下,针对一个待分类特征向量,则可将该待分类特征向量的向量标识,添加到与该待分类特征向量距离最小的中心特征向量所在的索引块中。由此,可基于第一距离及预设分类规则完成聚类。

所述预设分类规则还可以为:针对一个特征向量,若该特征向量与某个中心特征向量之间的距离小于所述预设距离阈值,则将该中心特征向量作为与该特征向量最相似的中心特征向量。由此,可以保证任意一个数据块中的中心特征向量与该数据块中的除所述中心特征向量之外的其他各特征向量之间的距离都小于预设距离阈值。

可选地,可通过计算欧式距离(L2)或者点积等方式,获得两个向量之间的第一距离。其中,欧式距离的计算公式为:

其中,d(a,b)表示欧式距离,a=[a

内积的计算公式为:

p(A,B)表示内积结果,A、B表示两个向量,A=[a

请参照图6,图6为本申请实施例提供的数据处理方法的流程示意图之五。在所述电子设备100中包括所述索引文件的情况下,所述方法还可以包括步骤S161~步骤S165。

步骤S161,响应于接收到的查询请求,计算所述查询请求中的第一目标特征向量与所述索引文件中各中心特征向量之间的第二距离。

所述查询设备与所述电子设备100通信连接。所述查询设备在有查询需求时,可向所述电子设备100发送查询请求,该查询请求可以包括第一目标特征向量。所述查询请求用于在所述电子设备100中查询与所述第一目标特征向量相似的第二目标特征向量。在接收到所述查询请求后,可计算所述第一目标特征向量与各个中心特征向量之间的距离,并将计算得到的距离作为第二距离。其中,所述第二距离与相似度反相关。

步骤S162,根据第一预设选择规则以及所述第二距离,确定出目标中心特征向量。

所述第一预设选择规则用于基于所述第二距离,确定出与所述第一目标特征向量相似的中心特征向量,具体可以根据实际需求设置。可选地,作为一种可选的实施方式,所述第一预设选择规则中可以包括预设距离值,可将小于所述预设距离值的第二距离所对应的中心特征向量,作为所述目标中心特征向量。

作为另一种可选的实施方式,所述第一预设选择规则可以包括预设数量。在获得所述第一目标特征向量与各中心特征向量之间的第二距离后,可基于第二距离,以由小到大的顺序,选出预设数量个目标中心特征向量。例如,预设数量为M,那么可以选出第二距离最小的M个所对应的M个目标中心特征向量。当然可以理解的是,上述方式仅为举例说明,也可以通过其他方式确定出目标中心特征向量。

步骤S163,根据各目标中心特征向量所在的索引块,确定出各目标中心特征向量所在的目标数据块中的各特征向量,并将确定出的特征向量作为多个待选的特征向量。

在确定出目标中心特征向量的情况下,可针对各目标中心特征向量,根据该目标中心特征向量所在的索引块所包括的向量标识,确定出与该索引块对应的数据块中所包括的除该目标中心特征向量之外的其他向量。目标中心特征向量所在的索引块对应的数据块,作为所述目标数据块。由此,可获得各目标数据块中的所有特征向量,所述目标数据块的中心特征向量为与所述第一目标特征向量相似的目标中心特征向量。可将各目标数据块中的所有特征向量作为所述多个待选的特征向量。

比如,确定出目标中心特征向量为e、f,目标中心特征向量为e所在的索引块为索引块E,根据该索引块E可确定出该与索引块E对应的目标数据块E中的所有特征向量;同理,可确定出目标中心特征向量f所在的索引块F所对应的目标数据块F中的所有特征向量。将目标数据块E、F中的所有特征向量作为所述多个待选的特征向量。

步骤S164,计算所述第一目标特征向量与各待选的特征向量之间的第三距离,并根据所述第三距离及第二预设选择规则,从所述多个待选的特征向量中确定出第二目标特征向量。

在确定出待选的待选向量的情况下,可计算所述第一目标特征向与各待选的特征向量之间的距离,并将计算得到的距离作为第三距离。第二预设选择规则,用于基于所述第三距离,确定出与所述第一目标特征向量相似的特征向量。与所述第一预设选择规则类似,所述第二预设选择规则中包括另一个预设距离值,或者一个数量值。若所述第二预设选择规则中包括的是一个预设的距离值,则可以将小于该预设的距离值的第三距离所对应的待选的特征向量作为一个第二目标特征向量。若所述第二预设选择规则中包括的是一个数量值,则可以根据第三距离,以由小到大的顺序,从所述多个待选的特征向量中,选出该数量值个待选的特征向量,作为与所述第一目标特征向量对应的第二目标特征向量。由此,可从存储块所存储的特征向量中,查找到与所述第一目标特征向量相似的第二目标特征向量。

步骤S165,将所述第二目标特征向量发送给与所述查询请求对应的查询设备。

在确定出所述第二目标特征向量的情况下,可将确定出的第二目标特征向量发送给所述查询设备,以使所述查询设备获得需要的数据。

为了执行上述实施例及各个可能的方式中的相应步骤,下面给出一种数据处理装置200的实现方式,可选地,该数据处理装置200可以采用上述图1所示的电子设备100的器件结构。进一步地,请参照图7,图7为本申请实施例提供的数据处理装置200的方框示意图之一。需要说明的是,本实施例所提供的数据处理装置200,其基本原理及产生的技术效果和上述实施例相同,为简要描述,本实施例部分未提及之处,可参考上述的实施例中相应内容。所述数据处理装置200可应用于所述电子设备100,该电子设备100中包括存储块。所述数据处理装置200可以包括:缓存模块210、判断模块220及保存模块230。

所述缓存模块210,用于响应于接收到的入库请求,将所述入库请求中的待保存数据写入缓存队列中。其中,所述待保存数据为特征向量。

所述判断模块220,用于判断所述缓存队列中当前已缓存的待保存数据的数据量是否满足预设数据量要求。

所述保存模块230,用于在满足时,将所述缓存队列中当前已缓存的待保存数据批量写入所述存储块中。

可选地,在本实施例中,所述电子设备100中的存储块为多个,所述保存模块230具体用于:判断当前未写满的存储块的剩余存储容量是否不小于所述缓存队列中当前已缓存的待保存数据的所需存储容量;在不小于时,将所述缓存队列中当前已缓存的待保存数据,批量写入到当前未写满的存储块中;在小于时,将所述缓存队列中当前已缓存的待保存数据,批量写入到另一个未写入待保存数据的存储块中。

可选地,在本实施例中,在所述保存模块将所述缓存队列中当前已缓存的待保存数据批量写入所述存储块中之前,所述缓存模块210还用于向发送所述入库请求的数据发送设备发送回复信息。其中,所述回复信息中包括数据已保存的信息。

请参照图8,图8为本申请实施例提供的数据处理装置200的方框示意图之二。所述数据处理装置200还可以包括索引生成模块240。所述索引生成模块240用于:通过聚类算法,将存储在所述存储块中的特征向量划分为多个数据块,其中,每个数据块中包括一个中心特征向量,每个数据块中的中心特征向量与该数据块中的除所述中心特征向量之外的其他各特征向量之间的距离小于预设距离阈值;根据所述多个数据块以及各数据块的中心特征向量,生成索引文件,其中,所述索引文件中包括多个索引块,每个索引块中包括该索引块所对应的数据块的中心特征向量以及该数据块中各个特征向量的向量标识。

可选地,在本实施例中,所述索引生成模块240还用于:针对在生成所述索引文件之后写入所述存储块的待分类特征向量,计算所述待分类特征向量与每个索引块的中心特征向量之间的第一距离;根据所述第一距离及预设分类规则,确定所述待分类特征向量所对应的待存索引块,并将所述待分类特征向量的向量标识添加到所述待存索引块中。

可选地,在本实施例中,所述数据块的数量由预先设定的配置文件确定。

请参照图9,图9为本申请实施例提供的数据处理装置200的方框示意图之三。所述数据处理装置200还可以包括查找模块250。所述查找模块250用于:响应于接收到的查询请求,计算所述查询请求中的第一目标特征向量与所述索引文件中各中心特征向量之间的第二距离;根据第一预设选择规则以及所述第二距离,确定出目标中心特征向量;根据各目标中心特征向量所在的索引块,确定出各目标中心特征向量所在的目标数据块中的各特征向量,并将确定出的特征向量作为多个待选的特征向量;计算所述第一目标特征向量与各待选的特征向量之间的第三距离,并根据所述第三距离及第二预设选择规则,从所述多个待选的特征向量中确定出第二目标特征向量,其中,所述第二目标特征向量为与所述第一目标特征向量相似的特征向量;将所述第二目标特征向量发送给与所述查询请求对应的查询设备。

可选地,在本实施例中,所述查找模块250也可以用于:响应于接收到的查询请求,根据所述查询请求中的第一目标特征向量在所述存储块存储的特征向量中进行查找,并将查找到的与所述第一目标特征向量相似的第二目标特征向量发送给与所述查询请求对应的查询设备。

可选地,上述模块可以软件或固件(Firmware)的形式存储于图1所示的存储器110中或固化于电子设备100的操作系统(Operating System,OS)中,并可由图1中的处理器120执行。同时,执行上述模块所需的数据、程序的代码等可以存储在存储器110中。

示例性地,存储器110中的一部分可以用于存储处理器120所执行的计算机程序/代码;存储器110中的一部分可以被划分为多个存储块,用于存储本申请中的特征向量。

本申请实施例还提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现所述的数据处理方法。示例性地,该(计算机)可读存储介质可以是上述存储器110的一部分。

综上所述,本申请实施例提供一种数据处理方法、装置、电子设备及可读存储介质,响应于接收到的入库请求,将入库请求中的待保存数据写入缓存队列中,并在缓存队列中当前已缓存的待保存数据的数据量满足预设数据量要求的情况下,将缓存队列中当前已缓存的待保存数据批量写入存储块中。其中,待存储数据为特征向量。由此,可将待保存数据通过异步批量写入的方式保存到存储块中,以避免每接收到一次待保存数据就发送一次写请求,从而减少写请求的数量,进而提高存储效率。同时,由于保存的是从图片或者音频等对象中提取的特征向量,而不是原本的对象,因而使得在可以达到保存目的的基础上占用较少的存储空间,从而提高存储空间利用率。

在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种页面数据处理方法、系统、电子设备及可读存储介质
  • 数据处理方法、装置、电子设备及计算机可读存储介质
技术分类

06120112553922