图像索引的处理方法、装置、设备、存储介质及程序与流程

文档序号:26484220发布日期:2021-08-31 17:40阅读:105来源:国知局
图像索引的处理方法、装置、设备、存储介质及程序与流程

本申请涉及数据处理技术领域,尤其涉及一种图像索引的处理方法、装置、设备、存储介质及程序。



背景技术:

随着互联网技术的发展,网络中的图像数量越来越多,使得图像检索技术应运而生。图像检索是指从海量图像中快速检索出用户需要的图像。

目前,图像检索技术需要根据图像数据库中的图像构建出图像索引集合。当用户需要检索图像时,将待检索图像与图像索引集合中各图像索引对应的图像进行相似度匹配,从而确定出与待检索图像匹配的目标图像。当数据库中新增图像后,需要对图像索引集合进行更新。

然而,发明人在实现本申请的过程中发现,上述方式中图像检索性能的稳定性较低。



技术实现要素:

本申请提供一种图像索引的处理方法、装置、设备、存储介质及程序,用以提高图像检索性能的稳定性。

第一方面,本申请提供一种图像索引的处理方法,包括:

确定待插入至图像索引集合中的第一图像索引,所述图像索引集合中包括多个图像索引以及所述多个图像索引之间的关联关系;

在所述图像索引集合中确定与所述第一图像索引具有关联关系的至少一个第二图像索引;

将所述图像索引集合设置为暂停查询状态,根据所述第一图像索引和所述至少一个第二图像索引,对所述图像索引集合进行更新;

将所述图像索引集合设置为可查询状态。

一种可能的实现方式中,根据所述第一图像索引和所述至少一个第二图像索引,对所述图像索引集合进行更新,包括:

在所述图像索引集合中添加所述第一图像索引;

在所述图像索引集合中添加所述第一图像索引与各第二图像索引之间的关联关系。

一种可能的实现方式中,在所述图像索引集合中添加所述第一图像索引与各第二图像索引之间的关联关系,包括:

获取每个第二图像索引对应的关联关系信息,所述关联关系信息中包括与该第二图像索引具有关联关系的图像索引的标识;

在该第二图像索引对应的关联关系信息中增加所述第一图像索引的标识;

根据所述至少一个第二图像索引的标识,生成所述第一图像索引对应的关联关系信息。

一种可能的实现方式中,将所述图像索引集合设置为暂停查询状态,包括:

将所述图像索引集合中的所述至少一个第二图像索引设置为暂停查询状态;

将所述图像索引集合设置为可查询状态,包括:

将所述图像索引集合中的所述至少一个第二图像索引设置为可查询状态。

一种可能的实现方式中,在所述图像索引集合中确定与所述第一图像索引具有关联关系的至少一个第二图像索引,包括:

确定所述第一图像索引对应的第一图像与所述图像索引集合中各图像索引对应的图像之间的相似度;

根据所述第一图像与所述图像索引集合中各图像索引对应的图像之间的相似度,在所述图像索引集合中确定至少一个第二图像索引。

一种可能的实现方式中,根据所述第一图像与所述图像索引集合中各图像索引对应的图像之间的相似度,在所述图像索引集合中确定至少一个第二图像索引,包括:

将所述图像索引集合中,对应的图像与所述第一图像之间的相似度大于或等于第一阈值的图像索引,确定为所述至少一个第二图像索引;或者,

按照所述第一图像与所述图像索引集合中各图像索引对应的图像之间的相似度从高到低的顺序,对所述图像索引集合中的图像索引进行排序,将排序后的前n个图像索引确定为所述至少一个第二图像索引,n为大于或者等于1的整数。

一种可能的实现方式中,所述方法还包括:

确定所述第一图像索引对应的第一图像;

为所述第一图像确定第一存储空间,所述第一存储空间与所述图像索引集合中各图像索引对应的图像的存储空间相互独立;

在所述第一存储空间中存储所述第一图像。

一种可能的实现方式中,在所述第一存储空间中存储所述第一图像,包括:

确定所述第一图像对应的特征向量;

在所述第一存储空间中存储所述特征向量。

第二方面,本申请提供一种图像索引的处理装置,包括:

第一确定模块,用于确定待插入至图像索引集合中的第一图像索引,所述图像索引集合中包括多个图像索引以及所述多个图像索引之间的关联关系;

第二确定模块,用于在所述图像索引集合中确定与所述第一图像索引具有关联关系的至少一个第二图像索引;

处理模块,用于将所述图像索引集合设置为暂停查询状态,根据所述第一图像索引和所述至少一个第二图像索引,对所述图像索引集合进行更新;

所述处理模块,还用于将所述图像索引集合设置为可查询状态。

一种可能的实现方式中,所述处理模块具体用于:

在所述图像索引集合中添加所述第一图像索引;

在所述图像索引集合中添加所述第一图像索引与各第二图像索引之间的关联关系。

一种可能的实现方式中,所述处理模块具体用于:

获取每个第二图像索引对应的关联关系信息,所述关联关系信息中包括与该第二图像索引具有关联关系的图像索引的标识;

在该第二图像索引对应的关联关系信息中增加所述第一图像索引的标识;

根据所述至少一个第二图像索引的标识,生成所述第一图像索引对应的关联关系信息。

一种可能的实现方式中,所述处理模块具体用于:

将所述图像索引集合中的所述至少一个第二图像索引设置为暂停查询状态;

将所述图像索引集合中的所述至少一个第二图像索引设置为可查询状态。

一种可能的实现方式中,所述第二确定模块具体用于:

确定所述第一图像索引对应的第一图像与所述图像索引集合中各图像索引对应的图像之间的相似度;

根据所述第一图像与所述图像索引集合中各图像索引对应的图像之间的相似度,在所述图像索引集合中确定至少一个第二图像索引。

一种可能的实现方式中,所述第二确定模块具体用于:

将所述图像索引集合中,对应的图像与所述第一图像之间的相似度大于或等于第一阈值的图像索引,确定为所述至少一个第二图像索引;或者,

按照所述第一图像与所述图像索引集合中各图像索引对应的图像之间的相似度从高到低的顺序,对所述图像索引集合中的图像索引进行排序,将排序后的前n个图像索引确定为所述至少一个第二图像索引,n为大于或者等于1的整数。

一种可能的实现方式中,所述处理模块还用于:

确定所述第一图像索引对应的第一图像;

为所述第一图像确定第一存储空间,所述第一存储空间与所述图像索引集合中各图像索引对应的图像的存储空间相互独立;

在所述第一存储空间中存储所述第一图像。

一种可能的实现方式中,所述处理模块具体用于:

确定所述第一图像对应的特征向量;

在所述第一存储空间中存储所述特征向量。

第三方面,本申请提供一种电子设备,包括:存储器和处理器,所述存储器用于存储计算机程序,所述处理器运行所述计算机程序实现如第一方面任一项所述的方法。

第四方面,本申请提供一种计算机可读存储介质,包括:计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的方法。

第五方面,本申请提供一种计算机程序产品,包括:计算机程序,所述计算机程序被处理器执行时实现如第一方面任一项所述的方法。

本申请提供的图像索引的处理方法、装置、设备、存储介质及程序,该方法包括:确定待插入至图像索引集合中的第一图像索引,图像索引集合中包括多个图像索引和多个图像索引之间的关联关系,在图像索引集合中确定与第一图像索引具有关联关系的至少一个第二图像索引,将图像索引集合设置为暂停查询状态,根据第一图像索引和至少一个第二图像索引,对图像索引集合进行更新,将图像索引集合设置为可查询状态。上述过程中,通过在更新图像索引集合之前,将图像索引集合设置为暂停查询状态,实现了对图像索引集合的更新过程进行加锁,避免了由于图像检索过程访问到失效存储空间导致系统崩溃的问题,提高了图像检索性能的稳定性。进而,使得图像索引集合的更新过程和图像检索过程均可以在线执行,从而保证图像索引集合更新以及图像检索的实时性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种可能的系统架构的示意图;

图2为本申请实施例提供的一种图像索引的处理方法的流程示意图;

图3为本申请实施例提供的一种图像索引处理过程的示意图;

图4为本申请实施例提供的另一种图像索引的处理方法的流程示意图;

图5为本申请实施例提供的另一种图像索引的处理过程的示意图;

图6为本申请实施例提供的一种图像存储空间的示意图;

图7为本申请实施例提供的一种图像检索系统的性能示意图;

图8为本申请实施例提供的一种图像索引的处理装置的结构示意图;

图9为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

图像检索是指从海量的图像中快速找出用户需要的图像的技术。图像检索技术需要根据图像数据库中的图像构建出图像索引集合。当用户需要检索图像时,将待检索图像与图像索引集合中各图像索引对应的图像进行相似度匹配,从而确定出与待检索图像匹配的目标图像。当数据库中新增图像后,需要对图像索引集合进行更新。

然而,发明人在实现本申请的过程中发现,上述方式中,如果在构建或更新图像索引集合的同时进行图像检索的话,会导致图像检索系统崩溃,影响图像检索性能的稳定性。因此,只能采用离线的方式对图像索引集合进行更新,这样又会影响图像索引集合更新的实时性以及图像检索的实时性。

为了解决上述技术问题,本申请的发明人对图像检索系统崩溃的原因进行分析发现:图像索引集合保存在动态存储结构中,在对图像索引集合进行构建或者更新的过程中,会导致动态存储结构发生变化。例如,需要对动态存储结构进行扩容,和/或,对动态存储结构中的数据进行修改。如果同时进行图像检索的话,图像检索过程在访问图像索引集合时,可能会访问到失效的存储结构,从而导致图像检索系统崩溃。

而实际应用场景中,不可避免的存在图像检索过程与图像索引集合更新过程并发的情况,因此,上述现有技术无法满足这些场景的需求。

为此,本申请提供一种图像索引的处理方法、装置、设备、存储介质及程序,通过对图像索引集合加锁的方式,能够避免由于图像索引集合的更新过程导致图像检索过程访问到失效的存储结构,从而避免图像检索系统崩溃。这样,实现了图像索引集合更新过程和图像检索过程均可以在线执行,保证了图像检索的实时性。

为了便于理解,首先对本申请实施例所涉及的系统架构进行说明。

图1为本申请实施例提供的一种可能的系统架构的示意图,请参见图1,该系统架构包括:用户设备和图像检索系统。图像检索系统中部署有图像索引集合,图像索引集合中包括多个图像索引。用户设备和图像检索系统之间通过网络连接。

参见图1,用户设备可以向图像检索系统发送检索请求,检索请求中包括待检索图像的信息。图像检索系统接收到检索请求后,根据图像索引集合进行检索,得到检索结果(即检索得到的目标图像),并将检索结果发送给用户设备。

继续参见图1,用户设备还可以向图像检索系统发送更新请求,更新请求中包括待插入图像的信息。图像检索系统根据更新请求对图像索引集合进行更新,以将待插入图像的索引添加到图像索引集合中,得到更新后的图像索引集合。图像检索系统还可以向用户设备发送更新结果(例如更新成功或者更新失败)。

需要说明的是,图1所示的系统架构可以应用于多种场景中。为了便于理解,下面以电商场景为例进行举例说明。

一个示例性的场景中,图像检索系统可以部署于电商平台的服务器中。图像索引集合中包括电商平台的各商品图像的索引。向图像检索系统发送检索请求的用户设备可以为买家用户对应的终端设备。例如,当买家用户需要在电商平台搜索指定商品时,可以通过终端设备向图像检索系统发送检索请求,使得图像检索系统根据图像索引集合检索得到指定商品。向图像检索系统发送更新请求的用户设备可以为卖家用户对应的终端设备。例如,当卖家用户需要上架新商品时,可以通过终端设备向图像检索系统发送更新请求,使得图像检索系统将新商品的图像索引添加至图像索引集合中。

本申请实施例中,图像索引集合的更新过程和图像检索过程均可以在线执行,而不必如现有技术中必须采用离线的方式对图像索引集合进行更新,因此能够保证图像索引集合更新以及图像检索的实时性。

下面以具体地实施例对本申请的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。

图2为本申请实施例提供的一种图像索引的处理方法的流程示意图。如图2所示,本实施例的方法可以包括:

s201:确定待插入至图像索引集合中的第一图像索引,所述图像索引集合中包括多个图像索引以及所述多个图像索引之间的关联关系。

其中,图像索引是指用于对图像进行检索的索引信息。一个图像对应一个图像索引。图像索引可以是图像的标识,或者是通过某种计算方式对图像进行计算得到的信息。一个图像索引可以唯一标识一个图像。

图像索引集合中包括多个图像索引以及所述多个图像索引之间的关联关系。上述的关联关系可以是指图像之间的相似关系。举例而言,假设图像索引集合中图像索引a和图像索引b具有关联关系,则说明图像索引a对应的图像与图像索引b对应的图像之间的相似度大于或者等于预设阈值。

需要说明的是,图像索引集合是一种针对数据库中的多个图像进行构建得到的数据结构。图像索引集合可以有多种结构形式,例如,可以采用列表结构,也可以采用图结构,等。

可选的,当图像索引集合采用图结构时,图像索引集合中包括多个节点和用于连接不同节点的边。其中,每个节点对应一个图像索引。当两个节点之间存在边时,说明该两个节点对应的图像索引具有关联关系。

一个示例中,当检测到数据库新添加了第一图像时,根据第一图像确定出第一图像对应的第一图像索引。该第一图像索引记为待插入的图像索引。

另一个示例中,可以从终端设备接收更新请求,更新请求中包括第一图像。根据第一图像确定出第一图像对应的第一图像索引。该第一图像索引记为待插入的图像索引。

s202:在所述图像索引集合中确定与所述第一图像索引具有关联关系的至少一个第二图像索引。

示例性的,可以分别确定第一图像索引对应的第一图像与图像索引集合中各图像索引对应的图像之间的相似度,进而,根据所述第一图像与所述图像索引集合中各图像索引对应的图像之间的相似度,在所述图像索引集合中确定至少一个第二图像索引。

可选的,将所述图像索引集合中,对应的图像与所述第一图像之间的相似度大于或等于第一阈值的图像索引,确定为所述至少一个第二图像索引。例如,遍历所述图像集合中的每个图像索引,计算该图像索引对应的图像与第一图像之间的相似度,若相似度大于或等于第一阈值,则将该图像索引确定为第二图像索引。

可选的,按照第一图像与图像索引集合中各图像索引对应的图像之间的相似度从高到低的顺序,对图像索引集合中的图像索引进行排序,将排序后的前n个图像索引确定为所述至少一个第二图像索引。n为大于或者等于1的整数。

s203:将所述图像索引集合设置为暂停查询状态,根据所述第一图像索引和所述至少一个第二图像索引,对所述图像索引集合进行更新。

s204:将所述图像索引集合设置为可查询状态。

其中,对图像索引集合进行更新的过程可以包括:对图像索引集合对应的存储空间进行扩容,和/或,对图像索引集合对应的存储空间中的数据进行修改。

应理解,由于对图像索引集合进行更新的过程,会导致图像索引集合对应的存储空间发生变化,如果此时图像检索过程访问图像搜索集合对应的存储空间的话,会导致访问到失效的存储空间从而导致系统崩溃。因此,本实施例中,在对图像索引集合进行更新之前,先将图像索引集合设置为暂停查询状态。在对图像索引集合进行更新之后,再将图像索引集合设置为可查询状态。

通过将图像索引集合设置为暂停查询状态,相当于为图像索引集合的更新过程进行加锁,能够避免在对图像索引集合进行更新的过程中,同时进行图像检索,从而避免了由于图像检索过程访问到失效存储空间导致系统崩溃的问题。

本申请实施例中,由于在图像索引集合中确定与第一图像索引具有关联关系的至少一个第二图像索引的过程(即s202的过程),并不会导致图像索引集合对应的存储空间发生变化,因此,并不是一确定出需要插入第一图像索引就将图像索引集合设置为暂停查询状态,而是在真正需要对图像索引集合进行更新时,才将图像索引集合设置为暂停查询状态。这样,可以尽可能缩短对图像索引集合进行加锁的时间,从而不会对图像检索性能产生较大影响。

进一步的,将图像索引集合设置为暂停查询状态后,图像索引集合处于不可读状态。此时,如果接收到图像检索请求,在查询图像索引集合时,会发现图像索引集合处于不可读状态。该情况下,一个示例中,图像检索流程可以直接返回检索失败。另一个示例中,图像检索流程可以等待,直至图像索引集合变为可读状态后,再根据图像索引集合进行检索。

下面结合图3对本实施例中的图像索引的处理过程进行示例。

图3为本申请实施例提供的一种图像索引处理过程的示意图。如图3所示,假设在时刻t0确定出需要插入第一图像索引,则触发本实施例的执行过程。在具体执行过程中,先在图像索引集合中确定出与第一图像索引具有关联关系的至少一个第二图像索引(即s202的过程)。能够理解的是,上述确定第二图像索引的过程涉及大量的相似度计算,使得耗时较多,对应图3中的时刻t0至时刻t1之间的时间段。

在确定出第二图像索引之后,即在时刻t1对图像索引集合进行加锁。然后对图像索引集合进行更新。假设在时刻t2对图像索引集合更新完成。能够理解的是,对图像索引集合进行更新所需耗时是很少的,对应图3中的时刻t1至时刻t2之间的时间段。

继续参见图3,如果在时刻t1至时刻t1之间接收到检索请求1,由于该时间段内图像索引集合未加锁,因此针对检索请求1的检索处理过程可以正常执行。如果在时刻t1至时刻t2之间接收到检索请求2,由于该时间段内图像索引集合已加锁,因此针对检索请求2的检索处理过程无法正常执行。如果在时刻t2之后接收到检索请求3,由于该时间段内图像索引集合已解锁,因此,针对检索请求3的检索处理过程可以正常执行。

由图3可见,本实施例中,通过在真正需要对图像索引集合进行更新时,才将图像索引集合设置为暂停查询状态,能够使得对图像索引集合进行加锁的时间很短,从而不会对图像检索性能产生较大影响。

本实施例提供的图像索引的处理方法,包括:确定待插入至图像索引集合中的第一图像索引,图像索引集合中包括多个图像索引和所述多个图像索引之间的关联关系,在图像索引集合中确定与第一图像索引具有关联关系的至少一个第二图像索引,将图像索引集合设置为暂停查询状态,根据第一图像索引和至少一个第二图像索引,对图像索引集合进行更新,将图像索引集合设置为可查询状态。上述过程中,通过在更新图像索引集合之前,将图像索引集合设置为暂停查询状态,实现了对图像索引集合的更新过程进行加锁,避免了由于图像检索过程访问到失效存储空间导致系统崩溃的问题,提高了图像检索性能的稳定性。进而,使得图像索引集合的更新过程和图像检索过程均可以在线执行,从而保证图像索引集合更新以及图像检索的实时性。

在上述实施例的基础上,下面结合一个更具体的实施例对本申请方案进行更详细的描述。

图4为本申请实施例提供的另一种图像索引的处理方法的流程示意图。如图4所示,本实施例的方法,包括:

s401:确定待插入至图像索引集合中的第一图像索引,所述图像索引集合中包括多个图像索引以及所述多个图像索引之间的关联关系。

s402:在所述图像索引集合中确定与所述第一图像索引具有关联关系的至少一个第二图像索引。

应理解,s401和s402的具体实现过程与图2中的s201和s202类似,此处不作赘述。

s403:将所述图像索引集合中的所述至少一个第二图像索引设置为暂停查询状态。

s404:在所述图像索引集合中添加所述第一图像索引。

s405:在所述图像索引集合中添加所述第一图像索引与各第二图像索引之间的关联关系。

一种可能的实现方式中,可以获取每个第二图像索引对应的关联关系信息,所述关联关系信息包括与该第二图像索引具有关联关系的图像索引的标识;在该第二图像索引对应的关联关系信息中增加第一图像索引的标识;根据所述至少一个第二图像索引的标识,生成第一图像索引对应的关联关系信息。

应理解的是,当图像索引集合采用的数据结构不同时,图像索引对应的关联关系信息的表现形式也可能不同。一些示例中,图像索引对应的关联关系信息可以采用数组形式表示。另一些示例中,图像索引对应的关联关系可以采用不同图像索引之间的边来表示。

s406:将所述图像索引集合中的所述至少一个第二图像索引设置为可查询状态。

本实施例与图2所示实施例的一个不同之处在于,可以只对图像索引集合中的部分图像索引进行加锁。具体的,在图像索引集合中确定出与第一图像索引具有关联关系的各第二图像索引后,由于后续更新图像索引集合过程中,只需要对各第二图像索引的关联关系信息进行更新,而不需要对其他图像索引的关联关系进行更新,因此,可以只对图像索引集合中的各第二图像索引进行加锁,以尽可能降低图像索引集合的更新过程对图像检索性能的影响。

本申请实施例中,图像检索系统采用的图像检索技术包括但不限于:分层的nsw(hierarchicalnavigablesmallworld,hnsw)向量检索技术、倒排索引乘积量化(invertedfileproductquantization,ivfpq)向量检索技术等。其中,hnsw是一种近似k近邻向量搜索的一种新的图索引技术,具有效果好速度快的优点。ivfpq包括倒排索引(invertedfile,ivf)和乘积量化(productquantization,pq)两种算法。其中ivf是一种常见的应用到检索系统中的索引方法。pq是一种经典的量化压缩向量的算法。为了便于理解,下面结合hnsw为例进行举例说明。

图5为本申请实施例提供的另一种图像索引的处理过程的示意图。如图5所示,图像索引集合采用基于hnsw的图结构,其中的节点表示图像索引,边表示图像索引之间的关联关系。

如图5所示,假设图像索引集合中包括6个图像索引,分别为图像索引a、b、c、d、e、f。当前待插入的为图像索引g。可以分别确定出图像索引g对应的第一图像与上述6个图像索引对应的图像之间的相似度,并选择出相似度最高的4(假设k=4)个图像索引作为第二图像索引。例如,假设相似度最高的4个图像索引分别为:图像索引b、c、d、f。

继续参见图5,将图像索引集合中的图像索引b、c、d、f设置为暂停查询状态,即,对图像索引b、c、d、f加锁(图5中以阴影表示加锁)。能够理解,由于图像索引b、c、d、f与图像索引g具有关联关系,在后续对图像索引集合进行更新时,需要添加图像索引b、c、d、f与图像索引g之间的关联关系,因此,对图像索引b、c、d、f加锁,能够避免图像检索过程访问上述4个图像索引。进一步的,图像索引g与图像索引a、e之间不具有关联关系,在对图像索引集合进行更新时,不会对图像索引a、e进行修改,因此,可以不用对图像索引a、e进行加锁。可见,本实施例中,尽可能小粒度的对图像索引集合进行加锁,能够尽可能降低图像索引集合的更新过程对图像检索性能的影响。

进一步的,对图像索引b、c、d、f加锁后,可以对图像索引集合进行更新。具体的,将图像索引g添加至图像索引集合中,并添加图像索引g与图像索引b、c、d、f之间的关联关系。相应的,对图像索引集合更新完成后,对图像索引b、c、d、f进行解锁。从而完成整个插入流程。

实际应用中,图像索引集合和图像是分开存储的。也就是说,图像索引集合存储在索引存储空间中,图像索引集合中的各图像索引对应的图像存储在图像存储空间中。当需要向图像索引集合插入新的图像索引时,一方面需要将该图像索引插入图像索引集合中,另一方面还需要将该图像索引对应的图像添加到图像存储空间中。

上述实施例描述的是向图像索引集合插入图像索引的过程。下面结合一个具体的实施例描述将图像索引对应的图像添加至图像存储空间的过程。

发明人在实现本申请的过程中发现,现有技术中,图像存储空间为一整块的存储空间,即各图像索引对应的图像全部存储在该整块存储空间中。当需要添加图像时,需要重新申请一块更大的图像存储空间,将所有图像索引对应的图像全部拷贝到新的图像存储空间中,并将新插入图像也拷贝到新的存储空间中。这样,原来的图像存储空间会失效。如果图像检索过程刚好访问到失效的图像存储空间,则会出现图像检索系统崩溃的问题。因此,本申请实施例还对图像存储空间进行了改进。下面结合图6进行描述。

图6为本申请实施例提供的一种图像存储空间的示意图。本实施例中,图像存储空间不再是一整块的存储空间,而是可以分段存储。参见图6,可以每个图像对应一个分段存储空间,不同图像存储在不同的分段存储空间中。各分段存储空间之间相互独立。可选的,分段存储空间可以采用原向量(rawvector)结构。

这样,当需要插入第一图像索引对应的第一图像时,可以为第一图像确定第一存储空间,例如,可以为第一图像新申请一个分段存储空间。第一存储空间与图像索引集合中的各图像索引对应的图像的存储空间相互独立。然后,将第一图像存储到第一存储空间中。

可选的,可以确定出第一图像对应的特征向量,将该特征向量存储到第一存储空间中。这样,各存储空间存储的是图像的特征向量,在进行图像检索时,可以从图像存储空间中直接获取到图像的特征向量进行匹配,而无需每次重新计算图像的特征向量,从而提高图像检索的效率。

本实施例中,通过采用分段存储结构,当需要新插入第一图像索引对应的图像时,只需要为该新插入图像申请一个新的分段存储空间,用于存储新插入图像即可,而不会影响到之前的分块存储空间。继续参见图7,假设为第一图像索引对应的图像新申请了分段存储空间7,在将第一图像索引对应的图像存储到分段存储空间7的过程中,如果图像检索过程访问到分段存储空间2,由于分段存储空间7与之前的分块存储空间之间隔离,使得图像检索过程不会访问到失效存储空间,因此,不会出现图像检索系统崩溃的问题,从而提高了图像检索性能。

在上述实施例的基础上,下面结合图7对本申请实施例的图像检索效果进行说明。

图7为本申请实施例提供的一种图像检索系统的性能示意图。图7中,横纵表示构建参数,即构建图像索引集合过程中采用的参数。左纵轴表示插入图像索引耗时,右纵轴表示图像检索耗时。图7示出了本实施例的图像索引插入耗时与现有技术的图像索引插入耗时的对比结果。并且,还示出了本实施例的图像检索耗时与现有技术的图像检索耗时的对比结果。其中,虚线表示现有技术,实线标识本申请实施例。

由图7可知,本实施例与现有技术相比,图像索引插入性能和图像检索性能并没有明显的差异,但是提供了支持图像索引插入与图像检索并发的能力,从而能够应用到更多的场景中。

图8为本申请实施例提供的一种图像索引的处理装置的结构示意图。本实施例的装置可以为软件和/或硬件的形式。如图8所示,本实施例提供的图像索引的处理装置800,包括:第一确定模块801、第二确定模块802和处理模块803。

其中,第一确定模块801,用于确定待插入至图像索引集合中的第一图像索引,所述图像索引集合中包括多个图像索引以及所述多个图像索引之间的关联关系;

第二确定模块802,用于在所述图像索引集合中确定与所述第一图像索引具有关联关系的至少一个第二图像索引;

处理模块803,用于将所述图像索引集合设置为暂停查询状态,根据所述第一图像索引和所述至少一个第二图像索引,对所述图像索引集合进行更新;

所述处理模块803,还用于将所述图像索引集合设置为可查询状态。

一种可能的实现方式中,所述处理模块803具体用于:

在所述图像索引集合中添加所述第一图像索引;

在所述图像索引集合中添加所述第一图像索引与各第二图像索引之间的关联关系。

一种可能的实现方式中,所述处理模块803具体用于:

获取每个第二图像索引对应的关联关系信息,所述关联关系信息中包括与该第二图像索引具有关联关系的图像索引的标识;

在该第二图像索引对应的关联关系信息中增加所述第一图像索引的标识;

根据所述至少一个第二图像索引的标识,生成所述第一图像索引对应的关联关系信息。

一种可能的实现方式中,所述处理模块803具体用于:

将所述图像索引集合中的所述至少一个第二图像索引设置为暂停查询状态;

将所述图像索引集合中的所述至少一个第二图像索引设置为可查询状态。

一种可能的实现方式中,所述第二确定模块802具体用于:

确定所述第一图像索引对应的第一图像与所述图像索引集合中各图像索引对应的图像之间的相似度;

根据所述第一图像与所述图像索引集合中各图像索引对应的图像之间的相似度,在所述图像索引集合中确定至少一个第二图像索引。

一种可能的实现方式中,所述第二确定模块802具体用于:

将所述图像索引集合中,对应的图像与所述第一图像之间的相似度大于或等于第一阈值的图像索引,确定为所述至少一个第二图像索引;或者,

按照所述第一图像与所述图像索引集合中各图像索引对应的图像之间的相似度从高到低的顺序,对所述图像索引集合中的图像索引进行排序,将排序后的前n个图像索引确定为所述至少一个第二图像索引,n为大于或者等于1的整数。

一种可能的实现方式中,所述处理模块803还用于:

确定所述第一图像索引对应的第一图像;

为所述第一图像确定第一存储空间,所述第一存储空间与所述图像索引集合中各图像索引对应的图像的存储空间相互独立;

在所述第一存储空间中存储所述第一图像。

一种可能的实现方式中,所述处理模块803具体用于:

确定所述第一图像对应的特征向量;

在所述第一存储空间中存储所述特征向量。

本实施例提供的图像索引的处理装置,可用于执行上述任一方法实施例中的图像索引的处理方法,其实现原理和技术效果类似,此处不作赘述。

图9为本申请实施例提供的一种电子设备的结构示意图。该电子设备可以为图像检索系统对应的服务器。如图9所示,本实施例提供的电子设备900,包括:处理器901以及存储器902。

其中,存储器902,用于存储计算机程序;处理器901,用于执行存储器中存储的计算机程序,以实现上述实施例中图像索引的处理方法中的一个或者多个步骤。具体可以参见前述方法实施例中的相关描述,其实现原理和技术效果类似,本实施例此处不再赘述。

可选地,存储器902既可以是独立的,也可以跟处理器901集成在一起。

当所述存储器902是独立于处理器901之外的器件时,所述电子设备900还可以包括:总线903,用于连接所述存储器902和处理器901。

本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质包括计算机程序,所述计算机程序用于实现如上任一方法实施例中的图像索引的处理方法中的一个或者多个步骤,其实现原理和技术效果类似,此处不作赘述。

本申请实施例还提供一种芯片,包括:存储器和处理器,所述存储器中存储有计算机程序,所述处理器运行所述计算机程序执行上述任一方法实施例中的图像索引的处理方法中的一个或者多个步骤,其实现原理和技术效果类似,此处不作赘述。

本申请实施例还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现上述任一方法实施例中的图像索引的处理方法中的一个或者多个步骤,其实现原理和技术效果类似,此处不作赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。

应理解,上述处理器可以是中央处理单元(英文:centralprocessingunit,简称:cpu),还可以是其他通用处理器、数字信号处理器(英文:digitalsignalprocessor,简称:dsp)、专用集成电路(英文:applicationspecificintegratedcircuit,简称:asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。

存储器可能包含高速ram存储器,也可能还包括非易失性存储nvm,例如至少一个磁盘存储器,还可以为u盘、移动硬盘、只读存储器、磁盘或光盘等。

总线可以是工业标准体系结构(industrystandardarchitecture,isa)总线、外部设备互连(peripheralcomponent,pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。

上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。

一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路(applicationspecificintegratedcircuits,简称:asic)中。当然,处理器和存储介质也可以作为分立组件存在于电子设备或主控设备中。

本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1