本发明涉图像处理技术领域,尤其涉及一种图像特征值的搜索方法、装置及电子设备。
背景技术:
目前,随着互联网的快速发展以及计算机的广泛普及,图像检索技术成为一种辅助用户高效地获取所需图像的方法。在现有检索系统中,对于图像的统一存储及搜索的应用上,目前主要是通过单机对直接对原始特征值进行搜索。单机的存储空间有限,不易于进行动态横向扩展,对于大数据量的原始特征值进行搜索时,其响应速度慢,影响到系统的搜索效率。可见,目前对图像信息进行搜索存在响应速度慢、搜索效率低的问题。
技术实现要素:
本发明实施例提供一种图像特征值的搜索方法,能够加快响应速度、提高搜索效率。
第一方面,本发明实施例提供一种图像特征值的搜索方法,应用于搜索系统,所述搜索系统包括多个存储主体,每个存储主体包括至少一数据库节点及至少一与所述至少一数据库节点对应的计算节点,所述图像特征值的搜索方法包括以下步骤:
获取搜索请求,所述搜索请求包括与待搜索图像特征值对应的待搜索向量;
根据所述待搜索向量的分类属性,在每个存储主体的每个数据库节点中查询具有所述分类属性的目标数据库节点;
将所述目标数据库节点中所述分类属性对应的原始图像特征值的搜索向量加载到与所述目标数据库节点对应的目标计算节点,所述目标计算节点为多个计算节点中与所述目标数据库节点对应的计算节点;
将所述待搜索向量与所述目标计算节点中的搜索向量进行比对,得到目标搜索向量;
获取所述目标数据库节点中与所述目标搜索向量对应的原始图像特征值。
第二方面,本发明实施例提供一种图像特征值的搜索装置,应用于搜索系统,所述搜索系统包括多个存储主体,每个存储主体包括至少一数据库节点及至少一与所述至少一数据库节点对应的计算节点,所述装置包括:
第一获取模块,用于获取搜索请求,所述搜索请求包括与待搜索图像特征值对应的待搜索向量;
查找模块,用于根据所述待搜索向量的分类属性,在每个存储主体的每个数据库节点中查询具有所述分类属性的目标数据库节点;
加载模块,用于将所述目标数据库节点中所述分类属性对应的原始图像特征值的搜索向量加载到与所述目标数据库节点对应的目标计算节点,所述目标计算节点为多个计算节点中与所述目标数据库节点对应的计算节点;
比对模块,用于将所述待搜索向量与所述目标计算节点中的搜索向量进行比对,得到目标搜索向量;
第二获取模块,用于获取所述目标数据库节点中与所述目标搜索向量对应的原始图像特征值。
第三方面,本发明实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现本发明实施例提供的图像特征值的搜索方法中的步骤。
第四方面,本发明实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现发明实施例提供的图像特征值的搜索方法中的步骤。
在本发明实施例中,由于配置多个存储主体,且每个存储主体中包括至少一数据库节点以及至少一与数据库节点对应的计算节点,避免了单机搜索带来的横向扩展限制,有利于实现集群的延展性;且是根据待搜索向量的分类属性去多个存储主体中查找具有相同分类属性的目标数据库节点,然后再将目标数据库中与分类属性对应的原始特征值加载到目标计算节点上,将具有相同分类属性的搜索向量与待搜索向量进行比对,上述通过分类属性查找目标数据库节点可以加快查找速度,无需对所有的数据库节点都进行遍历;而向量的数据量小,通过将待搜索向量与搜索向量进行比较可以减少比对的响应时间,从而提高搜索的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的搜索系统的系统架构图;
图2是本发明实施例提供的一种图像特征值的搜索方法的流程图;
图3是本发明实施例提供的另一种图像特征值的搜索方法的流程图;
图4是本发明实施例提供的另一种图像特征值的搜索方法的流程图;
图5是本发明实施例提供的一种图像特征值的搜索装置的结构示意图;
图6是本发明实施例提供的另一种图像特征值的搜索装置的结构示意图;
图7是本发明实施例提供的另一种图像特征值的搜索装置的结构示意图;
图8是本发明实施例提供的另一种图像特征值的搜索装置的结构示意图;
图9是本发明实施例提供的另一种图像特征值的搜索装置的结构示意图;
图10是本发明实施例提供的另一种图像特征值的搜索装置的结构示意图;
图11是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,为本发明实施例提供的图像特征值的搜索方法所应用的搜索系统的系统架构图。系统架构100包括多个存储主体1001,每个存储主体1001包括至少一数据库节点1001a及至少一与至少一数据库节点对应的目标计算节点1001b,且系统1001外部与移动设终端1002通过网络连接。
上述数据库节点1001a与目标计算节点1001b通过网络相互连接实现数据传输,并列设置在同一存储主体1001中。存储主体1001还可以设置多个,如图1中的第二存储主体,……,第n存储主体。在每个存储主体上都可以有各自对应的数据库节点以及与数据库节点对应的目标计算节点,便于实现数据库节点1001a与目标计算节点1001b的横向扩展。
上述数据库节点1001a用于存储原始图像特征值,并且在目标计算节点1001b中搜索得到目标搜索向量之后,可以基于目标搜索向量去数据库节点1001a中查找到对应的原始图像特征值。
上述目标计算节点1001b用于加载数据库节点1001a中的原始图像特征值的搜索向量,并在目标计算节点1001b中将搜索向量与待搜索向量进行比对,得到目标搜索向量。也可以在目标计算节点1001b中对搜索向量进行删除。目标计算节点1001b中可以包括有图像处理器(graphicsprocessingunit,gpu)或者内存,在目标计算节点1001b中还可以增加gpu数量或扩大内存大小等。
用户可以通过上述的移动终端1002发出搜索请求并接收系统搜索出来的目标图像特征值。上述移动终端1002可以是具有显示屏、可以对通信传输的数据进行读取、接收等操作的电子设备,且移动终端1002包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等,且移动终端也可以叫终端、用户终端、用户端、智能终端等。
具体的,当系统接收到用户通过移动终端1002发出搜索请求时,首先会获取到搜索请求中包含的待搜索图像特征值,然后再提取出待搜索图像特征值中的待搜索向量并获取其对应的分类属性。然后系统将具有相同分类属性的数据库节点1001a中的原始图像特征值的搜索向量加载到目标计算节点1001b,并在目标计算节点1001b上对待搜索向量及搜索向量进行比对,得到目标搜索向量,再根据目标搜索向量去数据库节点1001a中搜索出对应的原始图像特征值返回给用户发出搜索请求的移动终端1002。上述数据库节点1001a与目标计算节点1001b部署于与数据库节点1001a具有相同分类属性的存储主体1001中。
应该理解,上述的移动终端、数据库节点、目标计算节点、存储主体及网络的数目仅仅是示意性的,根据实现需要,可以进行具体的调整。
如图2所示,图2是本发明实施例提供的一种图像特征值的搜索方法的流程图,包括以下步骤:
201、获取搜索请求,搜索请求包括与待搜索图像特征值对应的待搜索向量。
在本实施例中,图像特征值的搜索方法运行于其上的电子设备可以通过有线连接方式或者无线连接方式获取搜索请求等。需要指出的是,上述无线连接方式可以包括多种连接方式,例如:有线、无线连接或者光纤电缆等方式。需要指出的是,上述无线连接方式可以包括但不限于3g/4g连接、wifi(wireless-fidelity)连接、蓝牙连接、wimax(worldwideinteroperabilityformicrowaveaccess)连接、zigbee(低功耗局域网协议,又称紫峰协议)连接、uwb(ultrawideband)连接、以及其它现在已知或将来开发的无线连接方式。
其中,搜索请求可以是用户基于移动终端发出的请求,待搜索图像特征值可以是对应于搜索请求的原始图像特征值,也可以叫长特征值,原始图像特征值可以是图像采集设备采集的图像信息经过转换后的二进制的数据。上述待搜索向量可以是经过向量排序算法计算后生成的对应于原始图像特征值的排序码,也可以称为待搜索短特征值。上述排序码可以是根据向量排序算法生成,该向量排序算法为预先配置的算法。待搜索向量相对于待搜索图像特征值而言,具有长度短、运算量小、占用空间少的特点,其所占空间的大小小于原始图像特征值所占的大小,例如:将获取到的5000个待搜索图像特征值通过向量排序算法生成500个对应的排序码。上述的图像采集设备可以是具有图像采集功能的设备,包括但不限于摄像头、相机等设备。
202、根据待搜索向量的分类属性,在每个存储主体的每个数据库节点中查询具有分类属性的目标数据库节点。
其中,分类属性可以是用于对不同类型的待搜索向量进行区分的一个属性条件,可以包括身份属性(性别、姓名、年龄、身份证号等)、外貌属性(身高、三围、佩戴的帽子、眼镜、穿的衣服、裤子、鞋子,以及帽子、衣服、裤子、鞋子的款式、颜色信息等)、行为属性(交流、行走、奔跑、开车等)等中的一种或者多种,例如:分类属性为穿裙子的女性,分类属性为穿拖鞋的男性或者穿短袖的男性等。参考图1所示,可以根据需要配置多个存储主体,在每个存储主体中构建至少一个数据库节点,当需要增加数据库节点时,可以对数据库节点进行横向扩展,增强搜索系统应用的延展性。
其中,存储主体可以是包括至少一数据库节点及至少一与至少一数据库节点对应的目标计算节点的一个机器,例如:例如:服务器、处理器、控制器、工作站等。将数据库节点与计算接点部署在同一个存储主体中,可以便于提取排序码和图像特征值的查询及数据之间的传输。不同的存储主体可以具有不同的分类属性。上述数据库节点中可以存储有不同分类属性的原始图像特征值,当原始图像特征值的数据量增多时,可以通过增加数据库节点的数量实现对更多的原始图像特征值的存储。
上述存储主体的分类属性与部署在存储主体上的数据库节点可以具有相同分类属性,当然,在同一存储主体中存在多个数据库节点时,各个数据库节点中可以存储有在存储主体的分类属性下更细化的属性,例如:存储主体的分类属性为穿着,其中的多个数据库节点的分类属性分别可以对应为衣服、裤子、鞋子等等。因此,可以通过待搜索向量的分类属性先去找到具有相同分类属性的存储主体,然后去该存储主体中查找到具有相同分类属性的目标数据库节点,例如:待搜索向量的分类属性为裤子,则会先找到存储主体的分类属性为穿着,然后去该存储主体中查找到分类属性为裤子的目标数据库节点。
在数据库节点中可以配设有数据库接口,当有数据录入数据库节点时,可以是基于在数据库节点中创建的数据表所使用的分区字段,通过数据库接口进行数据添加,将数据分发到不同的数据库节点的存储区进行存储。
203、将目标数据库节点中分类属性对应的原始图像特征值的搜索向量加载到与目标数据库节点对应的目标计算节点,目标计算节点为多个计算节点中与目标数据库节点对应的计算节点。
其中,目标计算节点可以是用于存储搜索向量,并且可以对待搜索向量与搜索向量进行计算处理的节点,且该目标计算节点与目标数据库节点具有相同的分类属性,每一个数据库节点可以对应一个目标计算节点。根据分类属性可以查找到与目标数据库节点对应的目标计算节点。在目标计算节点中可以对原始图像特征值的排序码进行计算,同时会将计算得到的结果保存到对应的目标计算节点的gpu或者内存中,便于用户搜索操作。排序码生成之后,可以将该排序码更新到记录到与排序码对应的原始图像特征值的目标数据库节点中,当目标计算节点重启时,只需要加载与目标计算节点对应的目标数据库节点中已生成的排序码到gpu或者内存中,无需再次计算。
作为一种可行的实施例方式,当有大量的新的搜索向量写入数据库节点时,因一个数据库节点的存储空间是有限的,所以可以对数据库节点进行横向扩展,同时与数据库节点对应的计算节点(包括目标计算节点)也需要根据数据库节点增加的数量对应增加,且增加的计算节点也需要新创建一个服务与对应的数据库节点进行绑定。当目标计算节点中gpu或者内存不足时,可以添加gpu卡或者增加内存空间,例如:设置8张gpu同时存储搜索向量,或者将内存空间从1g增加到4g。此外,还可以通过减小对搜索向量的加载时间阈值得到更大的存储空间,例如:将标准设置的加载时间阈值3个月减小为1个月。
204、将待搜索向量与目标计算节点中的搜索向量进行比对,得到目标搜索向量。
其中,目标计算节点中的搜索向量可以包括多个向量,将具有相同分类属性的待搜索向量与搜索向量进行比对可以是将待搜索向量与目标计算节点中每一个搜索向量进行比对,计算两者之间的相似度,且计算相似度的过程可以在目标计算节点中完成,完成后可以通过接口转发层对应的转发服务将搜索出来的目标搜索向量返回到用户调用的接口转发层,其中,接口转发层可以是专门用于对信息进行转发,转发服务可以是用于实现转发操作的程序。因目标计算节点中使用了向量排序算法提出出来的搜索向量均为短特征值,其计算量小,可以快速地计算出待搜索向量与目标计算节点中每个搜索向量之间的相似度,以得到相似度最高的topn个搜索向量,并作为目标搜索向量。
205、获取目标数据库节点中与目标搜索向量对应的原始图像特征值。
其中,当接口转发层接收到目标搜索向量之后,可以将目标搜索向量转发到目标数据库节点中,在目标数据库节点中调取与目标搜索向量对应的原始图像特征值,该获取到的原始图像特征值即与搜索请求对应的搜索结果,在与目标搜索向量对应的原始图像特征值中包括有与搜索请求对应的图像信息,例如:某个时间在某个地点抓拍到的交通图像等。
在本发明实施例中,由于配置多个存储主体,且每个存储主体中包括至少一数据库节点以及至少一与数据库节点对应的目标计算节点,避免了单机搜索带来的横向扩展限制,有利于实现集群的延展性;且是根据待搜索向量的分类属性去多个存储主体中查找具有相同分类属性的目标数据库节点,然后再将目标数据库中与分类属性对应的原始特征值加载到目标计算节点上,将具有相同分类属性的搜索向量与待搜索向量进行比对,上述通过分类属性查找目标数据库节点可以加快查找速度,无需对所有的数据库节点都进行遍历;而向量的数据量小,通过将待搜索向量与搜索向量进行比较可以减少比对的响应时间,从而提高搜索的效率。
如图3所示,图3是本发明实施例中提供的另一种图像特征值的搜索方法的流程图,包括以下步骤:
301、获取搜索请求,搜索请求包括与待搜索图像特征值对应的待搜索向量。
302、根据待搜索向量的分类属性,在每个存储主体的每个数据库节点中查询具有分类属性的目标数据库节点。
303、目标计算节点包括多个加载区,获取目标数据库节点中,与分类属性对应的原始图像特征值的搜索向量具有相同分类属性的加载区对应的剩余存储空间。
304、判断剩余存储空间是否满足搜索向量的所需加载空间.
其中,在同一个目标计算节点中可以设置有多个加载区用于存储原始图像特征值,目标计算节点可以将各个加载区的当前剩余存储空间、加载区的分类属性以及每种分类属性所占空间大小上传到接口中转层,接口中转层可以从目标数据库节点中对搜索向量进行加载,判断该分类属性的搜索向量是否已经存在于加载区中,当存在于加载区时,可以判断该加载区的剩余存储空间与搜索向量所需加载空间两者之间的大小关系。
305、若剩余存储空间满足搜索向量所需加载空间,则将搜索向量加载到与剩余存储空间对应的加载区。
若剩余存储空间满足搜索向量所需加载空间,则表示对应的加载区的剩余存储空间大于或者等于搜索向量所需加载空间,例如:有a加载区及a搜索向量,且a加载区可以存放a搜索向量的分类属性,若当前a加载区剩余存储空间为2g,a搜索向量占用的存储空间为1g,则会直接将a搜索向量存储于a加载区中。
306、若剩余存储空间不满足搜索向量所需加载空间,则查询目标计算节点中其余分类属性的剩余存储空间是否满足搜索向量的所需加载空间,若满足,则将搜索向量进行加载。
若剩余存储空间不满足搜索向量所需加载空间,则表示对应的加载区的剩余存储空间小于搜索向量所需加载空间,例如:有a、b、c三个加载区,有d、e两种搜索向量,且这三个加载区与这两个搜索向量都具有相同的分类属性,当d的一部分存储于a加载区中,且a加载区中已经存满,没有剩余存储空间,b加载区也存放有d搜索向量,且剩余存储空间为2g,而此时c加载区剩余存储空间为5g,e搜索向量占用的存储空间为1g,则会将e存储于剩余存储空间最大的c加载区中。
当有大量的搜索向量需要加载到目标计算节点,而目标计算节点中与搜索向量具有相同分类属性的加载区的剩余存储空间不足时,可以考虑将该搜索向量存储在其余分类属性不同的加载区,且其余分类属性不同的加载区的剩余存储空间足够上述搜索向量的所需存储空间,例如:搜索向量的分类属性为戴帽子的男性,而目标计算节点中同一分类属性的加载区已满,所以可以重新查询满足搜索向量所需加载空间的加载区,重新查找的加载区可以是戴墨镜的男性或者是空加载区,但重新查询的加载区的剩余存储空间至少是能够存放需要加载进去的搜索向量所需存储空间的。
307、将待搜索向量与目标计算节点中的搜索向量进行比对,得到目标搜索向量。
在查找到与待搜索向量具有相同分类属性的目标数据库节点后,便可以将目标数据库节点中的搜索向量加载到与目标数据库节点对应的目标计算节点上,在目标计算节点上对待搜索向量与加载后的搜索向量进行相似度计算,以查找与待搜索向量相似度最高的topn个搜索向量。
308、获取目标数据库节点中与目标搜索向量对应的原始图像特征值。
可选的,上述步骤307包括:
对目标计算节点中与待搜索向量具有相同分类属性的搜索向量进行遍历,计算待搜索向量与搜索向量之间的相似度。
通过计算待搜索向量与搜索向量连这个和之间的相似度可以得到更准确的目标搜索向量。用户可以根据属性信息进行搜索,例如:搜索最近3个月戴帽子的女性。移动终端可以直接调用数据库节点的查询接口进行数据搜索,并返回搜索的结果数据。用户还可以通过向量的形式进行搜索,例如:最近3个月最相似的人像,此时需要在目标计算节点中计算最近3个月与待搜索向量最相似的搜索向量,最相似可以通过一个相似度阈值进行限定。通过这种方式查询时,用户发出搜索请求的一端可以调用接口转发层的接口,先在目标计算节点进行对所有的搜索向量进行搜索,再通过转发服务将目标计算节点中相似度最高的topn个搜索向量返回给接口转发层,接口转发层便会将这topn个搜索向量转发到对应的目标数据库节点中。
作为一种可行的实施例方式,用户还可以结合向量及分类属性进行搜索,例如:最近三个月最相似的戴眼镜的男性。搜索请求到达接口转发层,接口转发层先按照向量的搜索方式在目标计算节点中查询最相似的topn个搜索向量返回到目标数据库节点中,然后接口转发层根据目标计算节点返回的最相似的topn个搜索向量+带眼睛+男性的条件(向量及分类属性),去目标数据库节点中进行属性过滤(筛选出满足戴眼镜的男性),然后得到过滤后的搜索向量。
筛选相似度达到相似度阈值的搜索向量,以得到目标搜索向量。
得到待搜索向量与同一分类属性的搜索向量之间的相似度后,可以将所有的相似度与预设的相似度阈值进行比较,筛选出满足相似度阈值的搜索向量,并且筛选出来的搜索向量将作为目标搜索向量,例如:待搜索向量a与搜索向量b、c、d、e、f、g之间的相似度依次为60、75、80、85、90、92,相似度阈值为80,则目标搜索向量为d、e、f、g。
可选的,上述方法还可以包括:
检测目标计算节点中是否存在相同分类属性的搜索向量存储在不同加载区中。
具体的,上述相同分类属性的加载区可以表示在对历史搜索向量进行存储时,同一分类属性的剩余存储空间不足,所以转存到其余不同分类属性的存储区。当目标计算节点中对搜索向量进行更新后,部分加载区的剩余存储空间会增大,此时可以将相同分类属性的搜索向量进行汇聚,集中到同一个与搜索向量具有相同分类属性的加载区中。
若存在相同分类属性的搜索向量存储在不同加载区中,则提取不同加载区中具有相同分类属性的搜索向量,并将具有相同分类属性的搜索向量合并到同一加载区。
其中,若存在相同分类属性的搜索向量存储在不同加载区中,可以把多个加载区中具有相同分类属性的搜索向量进行合并到一个加载区中,例如:a加载区存放的是戴帽子的男性,c加载区既存放有戴帽子的男性,也存放有戴帽子的女性,且c加载区的分类属性为戴帽子的女性,此时,便可以将c加载区中的戴帽子的男性转存到a加载区中,并将b加载区中戴帽子的男性进行删除,避免同一个搜索向量重复存在于多个加载区,造成资源浪费、空间利用率降低。将具有相同分类属性的搜索向量合并到同一加载区,可以实现存储空间的一个动态调度,尽可能把具有相同分类属性的搜索向量合并到一个加载区,还能将转移出搜索向量的加载区用于存储其它分类属性的搜索向量。
作为一种可行的实施例方式,将具有相同分类属性的搜索向量合并到同一加载区的步骤包括:
查找剩余存储空间满足占用存储空间的目标加载区。
其中,占用存储空间为不同加载区中具有相同分类属性的搜索向量所需的总存储空间。当把具有相同分类属性的搜索向量对应的加载区进行合并时,需要判断各个待合并搜索向量所在的加载区的剩余存储空间,根据检测到的剩余存储空间各个待合并搜索向量所在的加载区的剩余存储空间大小判断满足占用存储空间,例如:a加载区中分类属性1的搜索向量占用300mb,剩余存储空间为500mb,b加载区中分类属性1的搜索向量占用200mb,剩余存储空间为800mb,c加载区中分类属性1的搜索向量占用200mb,剩余存储空间为1g,且只有c加载区的分类属性与搜索向量的分类属性相同,且剩余存储空间为1g大于300mb+200mb,则可以将a加载区与b加载区中具有同样分类属性1的搜索向量转存到c存储区中。
将不同加载区中具有相同分类属性的搜索向量迁移到目标加载区中进行存储。
完成搜索向量的迁移以及存储之后,可以将转移出搜索向量的加载区中已转移的搜索向量进行删除,删除弯完成后才会写入新的与存储区具有相同分类属性的搜索向量。
在本发明实施例中,获取到搜索请求之后,会在多个存储主体中的多个数据库节点中查找与待搜索向量具有相同分类属性的目标数据库节点,并提取该目标数据库节点中与待搜索向量具有相同分类属性的搜索向量加载到目标计算节点中,通过分类属性查找目标数据库节点可以加快查找速度,无需对所有的数据库节点都进行遍历,节约了搜索时间;而且搜索向量的数据量小,通过将待搜索向量与搜索向量进行比较可以减少比对的响应时间,从而提高搜索的效率;并且,在搜向量存储到目标计算节点之前,还会对目标计算节点中加载区的剩余存储空间进行判断,根据剩余存储空间的大小以及加载区的分类属性将搜索向量分别进行存储到不同的加载区中。其中,目标计算节点中的搜索向量会是一个不断更新的过程,若在多个加载区中存在有同种分类属性的搜索向量,还可以将同种分类属性的搜索向量合并迁移到同一个加载区中进行存储,实现搜索向量在加载区中的动态调度。
如图4所示,图4是本发明实施例中提供的另一种图像特征值的搜索方法的流程图,包括以下步骤:
401、获取搜索请求,搜索请求包括与待搜索图像特征值对应的待搜索向量。
402、根据待搜索向量的分类属性,在每个存储主体的每个数据库节点中查询具有分类属性的目标数据库节点。
403、将目标数据库节点中分类属性对应的原始图像特征值的搜索向量加载到与目标数据库节点对应的目标计算节点,目标计算节点为多个计算节点中与目标数据库节点对应的计算节点。
404、基于目标搜索向量到数据库节点中获取对应的原始图像特征值。
405、删除目标计算节点中的搜索向量,判断搜索向量在目标数据库节点中是否存在与搜索向量对应的原始图像特征值。
具体的,因不断有新的搜索向量写入目标计算节点,目标计算节点中的gpu或者内存的存储空间有限,需要对存储空间中的搜索向量进行更新。删除可以通过设置加载时间阈值,将超过加载时间阈值的搜索向量进行删除,例如:设置加载时间阈值为3个月,则超过3个月之前的搜索向量进行删除。而执行删除操作可以是通过目标计算节点中设置定时器,当定时器检测到超过加载时间阈值的搜索向量时,会自动删除gpu或者内存中的搜索向量,这样,可以提高对gpu或者内存的有效使用。
作为一种可能的实施例方式,当用户需要搜索超过加载时间阈值的原始图像特征值时,可以基于预先对数据库节点自定义的udf函数进行查询,例如:加载时间阈值为3个月,用户想要查询8个月的原始图像特征值。其中,udf函数是一种数据库节点可扩展的接口,可以将欧式定理用udf函数的方式集成到每个数据库节点中,其中,欧式定理是一种计算搜索向量之间相似度的方式。
406、若不存在与搜索向量对应的原始图像特征值,则直接删除目标计算节点中的搜索向量。
其中,当目标计算节点上的搜索向量在数据库节点中不存在原始图像特征值时,可以通过调用数据库节点的接口对目标计算节点上的搜索向量直接进行删除,例如:通过摄像头对图像进行采集时,只采集到一个车牌号码,也即一个字符串,则直接在目标计算节点中进行删除。
407、若存在与搜索向量对应的原始图像特征值,则依次对数据库节点中对应的原始图像特征值及目标计算节点中的搜索向量进行删除。
其中,当目标计算节点上的搜索向量在数据库节点中存在原始图像特征值时,则可以先调用接口转发层的接口将数据库节点中对应于要删除的搜索向量的原始图像特征值进行删除,然后再根据已删除的原始图像特征值去目标计算节点中gpu或者内存中删除对应的搜索向量。
在本实施例中,在将数据库节点中原始图像特征值的搜索向量加载到目标计算节点,实际上是一个多次执行的动作,只要每次获取到搜索请求,都会将对应的搜索向量加载到目标计算节点中,然而目标计算节点的存储空间是有限的,所以需要对存储在目标计算节点的gpu或者内存中的超过加载时间阈值的搜索向量进行删除,在本实施例中,可以根据判断搜索向量在数据库节点中是否存在原始图像特征值来对搜索向量进行删除,对搜索向量进行删除可以让目标计算节点的存储空间实现动态调度,不会因为存储的搜索向量的数量过多,降低搜索速度,同时可以保证目标计算节点的存储空间可以不断录入新的搜索向量,实现数据更新。
如图5所示,图5是本发明实施例提供的一种图像特征值的搜索装置的结构示意图,装置包括:
第一获取模块501,用于获取搜索请求,搜索请求包括与待搜索图像特征值对应的待搜索向量;
查找模块502,用于根据待搜索向量的分类属性,在每个存储主体的每个数据库节点中查询具有分类属性的目标数据库节点;
加载模块503,用于将目标数据库节点中分类属性对应的原始图像特征值的搜索向量加载到与目标数据库节点对应的目标计算节点,目标计算节点为多个计算节点中与目标数据库节点对应的计算节点;
比对模块504,用于将待搜索向量与目标计算节点中的搜索向量进行比对,得到目标搜索向量;
第二获取模块505,用于获取目标数据库节点中与目标搜索向量对应的原始图像特征值。
可选的,目标计算节点包括多个加载区,如图6所示,图6是本发明实施例提供的另一种图像特征值的搜索装置的结构示意图,上述加载模块503包括:
获取单元5031,用于获取目标数据库节点中,与分类属性对应的原始图像特征值的搜索向量具有相同分类属性的加载区对应的剩余存储空间,判断剩余存储空间是否满足搜索向量的所需加载空间;
加载单元5032,用于若剩余存储空间满足搜索向量所需加载空间,则将搜索向量加载到与剩余存储空间对应的加载区;
第一查询单元5033,用于若剩余存储空间不满足搜索向量所需加载空间,则查询目标计算节点中其余分类属性的剩余存储空间是否满足搜索向量的所需加载空间,若满足,则将搜索向量进行加载。
可选的,如图7所示,图7是本发明实施例提供的另一种图像特征值的搜索装置的结构示意图,装置500还包括:
检测模块506,用于检测目标计算节点中是否存在相同分类属性的搜索向量存储在不同加载区中;
合并模块507,用于若存在相同分类属性的搜索向量存储在不同加载区中,则提取不同加载区中具有相同分类属性的搜索向量,并将具有相同分类属性的搜索向量合并到同一加载区。
可选的,如图8所示,图8是本发明实施例提供的另一种图像特征值的搜索装置的结构示意图,合并模块507包括:
第二查询单元5071,用于查找剩余存储空间满足占用存储空间的目标加载区,占用存储空间为不同加载区中具有相同分类属性的搜索向量所需的总存储空间;
迁移单元5072,用于将不同加载区中具有相同分类属性的搜索向量迁移到目标加载区中进行存储。
可选的,如图9所示,图9是本发明实施例提供的另一种图像特征值的搜索装置的结构示意图,比对模块504包括:
计算单元5041,用于对目标计算节点中与待搜索向量具有相同分类属性的搜索向量进行遍历,计算待搜索向量与搜索向量之间的相似度;
筛选单元5042,用于筛选相似度达到相似度阈值的搜索向量,以得到目标搜索向量。
可选的,如图10所示,图10是本发明实施例提供的另一种图像特征值的搜索装置的结构示意图,装置500还包括:
判断模块508,用于删除目标计算节点中的搜索向量,判断搜索向量在目标数据库节点中是否存在与搜索向量对应的原始图像特征值;
删除模块509,用于若不存在与搜索向量对应的原始图像特征值,则直接删除目标计算节点中的搜索向量;
删除模块509还用于若存在与搜索向量对应的原始图像特征值,则依次对数据库节点中对应的原始图像特征值及目标计算节点中的搜索向量进行删除。
本发明实施例提供的图像特征值的搜索装置能够实现上述方法实施例中图像特征值的搜索方法实现的各个过程且可以达到相同的有益效果,为避免重复,这里不再赘述。
参见图11,图11是本发明实施例提供的一种电子设备的结构示意图,如图11所示,电子设备1100包括:存储器1102、处理器1101及存储在存储器1102上并可在处理器1101上运行的计算机程序,其中:
处理器1101用于调用存储器1102存储的计算机程序,执行如下步骤:
获取搜索请求,搜索请求包括与待搜索图像特征值对应的待搜索向量;
根据待搜索向量的分类属性,在每个存储主体的每个数据库节点中查询具有分类属性的目标数据库节点;
将目标数据库节点中分类属性对应的原始图像特征值的搜索向量加载到与目标数据库节点对应的目标计算节点,目标计算节点为多个计算节点中与目标数据库节点对应的计算节点;
将待搜索向量与目标计算节点中的搜索向量进行比对,得到目标搜索向量;
获取目标数据库节点中与目标搜索向量对应的原始图像特征值。
可选的,处理器1101执行的根据待搜索向量的分类属性,在每个存储主体的每个数据库节点中查询具有分类属性的目标数据库节点的步骤包括:
查询与待搜索向量的分类属性具有相同分类属性的存储主体;
在具有相同分类属性的存储主体中,查找与待搜索向量具有相同分类属性的目标数据库节点,并在目标数据库节点中查询与待搜索向量具有相同分类属性的搜索向量。
可选的,目标计算节点包括多个加载区,处理器1101执行的将目标数据库节点中分类属性对应的原始图像特征值的搜索向量加载到与目标数据库节点对应的目标计算节点的步骤包括:
获取目标数据库节点中,与分类属性对应的原始图像特征值的搜索向量具有相同分类属性的加载区对应的剩余存储空间,判断剩余存储空间是否满足搜索向量的所需加载空间;
若剩余存储空间满足搜索向量所需加载空间,则将搜索向量加载到与剩余存储空间对应的加载区;
若剩余存储空间不满足搜索向量所需加载空间,则查询目标计算节点中其余分类属性的剩余存储空间是否满足搜索向量的所需加载空间,若满足,则将搜索向量进行加载。
可选的,处理器1101还用于执行以下步骤:
检测目标计算节点中是否存在相同分类属性的搜索向量存储在不同加载区中;
若存在相同分类属性的搜索向量存储在不同加载区中,则提取不同加载区中具有相同分类属性的搜索向量,并将具有相同分类属性的搜索向量合并到同一加载区。
可选的,处理器1101执行的将待搜索向量与目标计算节点中的搜索向量进行比对,得到目标搜索向量的步骤包括:
对目标计算节点中与待搜索向量具有相同分类属性的搜索向量进行遍历,计算待搜索向量与搜索向量之间的相似度;
筛选相似度达到相似度阈值的搜索向量,以得到目标搜索向量。
可选的,处理器1101执行的将具有相同分类属性的搜索向量合并到同一加载区的步骤包括:
查找剩余存储空间满足占用存储空间的目标加载区,占用存储空间为不同加载区中具有相同分类属性的搜索向量所需的总存储空间;
将不同加载区中具有相同分类属性的搜索向量迁移到目标加载区中进行存储。
可选的,处理器1101还用于执行删除目标计算节点中的搜索向量,判断搜索向量在目标数据库节点中是否存在与搜索向量对应的原始图像特征值;
若不存在与搜索向量对应的原始图像特征值,则直接删除目标计算节点中的搜索向量;
若存在与搜索向量对应的原始图像特征值,则依次对数据库节点中对应的原始图像特征值及目标计算节点中的搜索向量进行删除。
本发明实施例提供的电子设备1100能够实现图像特征值的搜索方法实施例中的各个实施方式,以及相应有益效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器1101执行时实现本发明实施例提供的图像特征值的搜索方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存取存储器(randomaccessmemory,简称ram)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。