图像搜索方法、装置、电子设备及存储介质与流程

文档序号:24501839发布日期:2021-03-30 21:31阅读:94来源:国知局
图像搜索方法、装置、电子设备及存储介质与流程

本申请涉及计算机技术领域,特别是涉及图像搜索方法、装置、电子设备及存储介质。



背景技术:

随着互联网技术的方法,网络中的数据量呈现井喷式的增长,在大数据时代,海量数据的比对成为热门课题。

相关数据比对技术中,例如,在大数据以图搜图的过程中,需要将指定时间段的历史样本图像全部加载到内存中进行缓存,在全部数据缓存完成后再对数据进行比对。但是在样本图像的数据量很大时,仅向内存中加载数据就要花费很长的时间,再加上比对时间,数据比对耗时长。



技术实现要素:

本申请实施例的目的在于提供一种图像搜索方法、装置、电子设备及存储介质,以实现减少数据比对耗时。具体技术方案如下:

第一方面,本申请实施例提供了一种图像搜索方法,其特征在于,所述方法包括:

获取需要比对的样本图像的时间范围,作为目标时间范围,其中,所述目标时间范围的时长大于预设单位时长;

按照各样本图像的时间标识,确定所述目标时间范围中的样本图像,得到目标样本图像集;

按照所述目标样本图像集中各样本图像的时间标识,通过流式加载方式向内存中加载各所述样本图像;

当首次在所述内存中加载完成预设单位时长的样本图像后,触发将待比对的目标图像与所述内存中的样本图像进行比对,得到所述目标图像的搜索结果。

可选的,所述按照所述目标样本图像集中各样本图像的时间标识,通过流式加载方式向内存中加载各所述样本图像,包括:

根据所述目标样本图像集中各样本图像的时间标识,按照时间倒序的顺序,通过流式加载方式依次向内存中加载所述目标样本图像集中的各样本图像。

可选的,所述当首次在所述内存中加载完成预设单位时长的样本图像后,触发将待比对的目标图像与所述内存中的样本图像进行比对,得到所述目标图像的搜索结果,包括:

步骤a,当在所述内存中加载完成当前预设单位时长的样本图像后,将待比对的目标图像与当前加载完成的预设单位时长的样本图像进行比对,得到当前预设单位时长中目标图像的搜索结果;

步骤b,将下一预设单位时长作为当前预设单位时长,返回步骤a继续执行,直至所述目标样本图像集中的样本图像全部加载并比对完成。

可选的,所述方法还包括:标记各所述搜索结果对应的时间范围。

可选的,所述当首次在所述内存中加载完成预设单位时长的样本图像后,触发将待比对的目标图像与所述内存中的样本图像进行比对,得到所述目标图像的搜索结果,包括:

当在所述内存中完成首个预设单位时长的目标样本图像集的加载后,向外部提供比对接口,并继续向所述内存中加载尚未加载的目标样本图像集;

获取外部通过所述比对接口输入的待比对的目标图像;

将所述目标图像与所述内存中已加载完成的各目标样本图像集进行比对,得到各所述预设单位时长的搜索结果。

可选的,所述方法还包括:

分别标记各所述搜索结果对应的时间范围,并向外部发送各标记时间范围的搜索结果。

第二方面,本申请实施例提供了一种图像搜索装置,所述装置包括:

时间范围确定模块,用于获取需要比对的样本图像的时间范围,作为目标时间范围,其中,所述目标时间范围的时长大于预设单位时长;

图像集确定模块,按照各样本图像的时间标识,确定所述目标时间范围中的样本图像,得到目标样本图像集;

图像加载模块,用于按照所述目标样本图像集中各样本图像的时间标识,通过流式加载方式向内存中加载各所述样本图像;

图像比对模块,用于当首次在所述内存中加载完成预设单位时长的样本图像后,触发将待比对的目标图像与所述内存中的样本图像进行比对,得到所述目标图像的搜索结果。

可选的,所述图像加载模块,具体用于:

根据所述目标样本图像集中各样本图像的时间标识,按照时间倒序的顺序,通过流式加载方式依次向内存中加载所述目标样本图像集中的各样本图像。

可选的,所述图像比对模块,包括:

结果比对子模块,用于当在所述内存中加载完成当前预设单位时长的样本图像后,将待比对的目标图像与当前加载完成的预设单位时长的样本图像进行比对,得到当前预设单位时长中目标图像的搜索结果;

循环比对子模块,用于将下一预设单位时长作为当前预设单位时长,返回所述结果比对子模块继续执行,直至所述目标样本图像集中的样本图像全部加载并比对完成。

可选的,所述装置还包括:

时间范围标记模块,用于标记各所述搜索结果对应的时间范围。

可选的,所述图像比对模块,具体用于:

当在所述内存中完成首个预设单位时长的目标样本图像集的加载后,向外部提供比对接口,并继续向所述内存中加载尚未加载的目标样本图像集;

获取外部通过所述比对接口输入的待比对的目标图像;

将所述目标图像与所述内存中已加载完成的各目标样本图像集进行比对,得到各所述预设单位时长的搜索结果。

可选的,所述装置还包括:

搜索结果发送模块,用于分别标记各所述搜索结果对应的时间范围,并向外部发送各标记时间范围的搜索结果。

第三方面,本申请实施例提供了一种电子设备,包括处理器及存储器;

所述存储器,用于存放计算机程序;

所述处理器,用于执行所述存储器上所存放的程序时,实现上述第一方面任一所述的图像搜索方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的图像搜索方法。

本申请实施例提供的图像搜索方法、装置、电子设备及存储介质,获取需要比对的样本图像的时间范围,作为目标时间范围,其中,目标时间范围的时长大于预设单位时长;按照各样本图像的时间标识,确定目标时间范围中的样本图像,得到目标样本图像集;按照目标样本图像集中各样本图像的时间标识,通过流式加载方式向内存中加载各样本图像;当首次在内存中加载完成预设单位时长的样本图像后,触发将待比对的目标图像与内存中的样本图像进行比对,得到目标图像的搜索结果。在内存中完成预设单位时长的数据的加载后,便可以执行比对,相比于样本图像全部加载到内存后再进行比对,能够减少比对耗时,并且可以减少业务中断的时间,增加用户体验。在全量加载热数据的时候,加载一个预设单位时长的数据到内存后,便可对外提供以图搜图的服务,无需等待全部数据加载完成,业务中断时间小。可以边加载数据边计算,从而节约总体上的使用时间,也更合理的利用了设备资源,因为加载主要是使用磁盘io资源,比对主要是使用cpu计算资源。当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

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

图1为本申请实施例的图像搜索方法的第一种示意图;

图2为本申请实施例的图像搜索方法的第二种示意图;

图3为本申请实施例的图像搜索方法的第三种示意图;

图4为本申请实施例的图像搜索方法的第四种示意图;

图5为本申请实施例的图像搜索装置的一种示意图;

图6为本申请实施例的电子设备的一种示意图。

具体实施方式

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

首先,对本申请实施例中的专业术语进行解释:

流式:采用数据流的方式对数据进行读取、缓存及计算。

全量加载:将历史样本图像加载到内存,以供后续比对服务使用。

比对服务:以图搜图的应用。

热数据:长期存放在内存中的数据。

冷数据:存储在磁盘上的数据。

全量:指定一定时间范围内的全部数据,一般是最近一段时间内的数据。

单位时段:一段时间范围,例如可以是1分钟、5分钟、1小时或1天等。

相关技术中,大数据以图搜图可以分为热数据以图搜图和冷数据以图搜图,其中,热数据以图搜图是指将近一段时间的历史样本图像全部加载到内存中进行缓存,在全部数据缓存完成后再对外提供以图搜图比对服务。冷数据的以图搜图是在每次比对时,需要先按照设定的条件在磁盘中读取指定的数据加载到内存中,在数据全部加载成功后,进行以图搜图并返回搜索结果。

对于热数据以图搜图,在首次启动或重启的过程中,在加载到内存中的热数据量较大时,会导致整个加载过程耗时过长,从而导致业务中断时间较长,对用户不够友好,对于一些数据量大的现场紧急重启场景,甚至会中断业务2-3小时,用户难以接受。

对于冷数据的以图搜图,需要从磁盘将用户指定时间范围的全部的数据加载到内存后,才能进行下一步的比对任务,加载数据花费时间长。

总之相关技术中,数据比对耗时长。用户体验很差。

有鉴于此,本申请实施例提供了一种图像搜索方法,参见图1,该方法包括:

s101,获取需要比对的样本图像的时间范围,作为目标时间范围,其中,上述目标时间范围的时长大于预设单位时长。

本申请实施例的图像搜索方法可以通过电子设备实现,具体的,该电子设备可以为服务器。其中,目标样本图像集的时间范围的时长大于预设单位时长的时长。

例如,在基于热数据的图像对比过程中,目标时间范围可以为预先设定好的。而在基于冷数据的数据对比过程中,目标时间范围可以为用户实时输入的。预设单位时长可以根据实际情况进行设定,例如设定为1分钟、5分钟、1小时或1天等。预设单位时长还可以根据目标时间范围进行设定。例如设定为目标时间范围时长的5%、10%或20%等。

s102,按照各样本图像的时间标识,确定上述目标时间范围中的样本图像,得到目标样本图像集。

在存储的历史样本图像中,确定目标时间范围中的样本图像,作为目标样本图像集。各样本图像均包括时间标识,样本图像的时间标识用于标记该样本图像的生成时间或存储时间等。将时间标识在目标时间范围内的各样本图像,作为目标样本图像集。

s103,按照上述目标样本图像集中各样本图像的时间标识,通过流式加载方式向内存中加载各上述样本图像。

电子设备可以按照时间顺序倒序或正序的方式,依次向内存中加载目标样本图像集中的各样本图像。流式加载是指采用数据流的方式向内存中加载数据,是一个持续加载的过程,流式加载的特点是已经完成加载的样本图像,能够用于进行比对。

在一种可能的实施方式中,上述按照上述目标样本图像集中各样本图像的时间标识,通过流式加载方式向内存中加载各上述样本图像,包括:根据上述目标样本图像集中各样本图像的时间标识,按照时间倒序的顺序,通过流式加载方式依次向内存中加载上述目标样本图像集中的各样本图像。按照时间倒序的顺序加载目标样本图像集中的各样本图像,根据统计学理论,可以更加快速的匹配到待比对的目标图像对应的样本图像。

s104,当首次在上述内存中加载完成预设单位时长的样本图像后,触发将待比对的目标图像与上述内存中的样本图像进行比对,得到上述目标图像的搜索结果。

目标图像即需要搜索的图像,例如可以为以图搜图的过程中,输入到搜索栏的图像。在首次完成将一个预设单位时长的样本图像加载到内存中后,便可以启动将待比对的目标图像与内存中的样本图像进行比对,从而得到目标图像的搜索结果。

在本申请实施例中,在内存中完成预设单位时长的数据的加载后,便可以执行比对,相比于样本图像全部加载到内存后再进行比对,能够减少比对耗时,并且可以减少业务中断的时间,增加用户体验。在全量加载热数据的时候,加载一个预设单位时长的数据到内存后,便可对外提供以图搜图的服务,无需等待全部数据加载完成,业务中断时间小。可以边加载数据边计算,从而节约总体上的使用时间,也更合理的利用了设备资源,因为加载主要是使用磁盘io资源,比对主要是使用cpu计算资源。

在基于冷数据的数据对比过程中,可选的,上述当首次在上述内存中加载完成预设单位时长的样本图像后,触发将待比对的目标图像与上述内存中的样本图像进行比对,得到上述目标图像的搜索结果,包括:

步骤a,当在上述内存中加载完成当前预设单位时长的样本图像后,将待比对的目标图像与当前加载完成的预设单位时长的样本图像进行比对,得到当前预设单位时长中目标图像的搜索结果。

目标样本图像集中的样本图像写入内存中是一个持续的过程,在目标样本图像集全部写入完成前需要保持写入。

步骤b,将下一预设单位时长作为当前预设单位时长,返回步骤a继续执行,直至上述目标样本图像集中的样本图像全部加载并比对完成。

例如,预设单位时长为1小时,目标样本图像集的时间范围为指定日期的01:00到12:00点,按照时间倒叙的顺序,将时间标识属于该指定日期的12:00到11:00的各样本图像全部加载到内存中时,判定完成第一个预设单位时长的目标样本的加载,比对时间标识属于该指定日期的12:00到11:00的各样本图像与目标图像,得到第一个预设单位时长的搜索结果;将时间标识属于该指定日期的11:00到10:00的各样本图像全部加载到内存中时,判定完成第二个预设单位时长的目标样本的加载,比对时间标识属于该指定日期的11:00到10:00的各样本图像与目标图像,得到第二个预设单位时长的搜索结果;依次类推,直到得到最后一个预设单位时长的搜索结果。

在一种可能的实施方式中,若最后的一个预设单位时长对应的时间范围超出了目标样本图像集的目标时间范围,则在最后一个预设单位时长内,仅在内存中加载完成剩余的目标样本图像集,然后进行比对即可。例如,预设单位时长为1小时,目标样本图像集的时间范围为指定日期的01:30到12:00点,在按照时间倒叙的顺序在内存中加载目标样本图像集的过程中,当加载最后一个预设单位时长的目标样本图像集时,仅需在内存中加载时间标识属于该指定日期的02:00到01:30的各样本图像,加载完成后进行比对即可。

可选的,上述方法还包括:标记各上述搜索结果对应的时间范围。

在每次完成一个预设单位时长的目标样本图像集与目标图像的比对后,均可以标记该搜索结果对应的时间范围。

在基于热数据的数据对比过程中,可选的,上述当首次在上述内存中加载完成预设单位时长的样本图像后,触发将待比对的目标图像与上述内存中的样本图像进行比对,得到上述目标图像的搜索结果,包括:

步骤1,当在上述内存中完成首个预设单位时长的目标样本图像集的加载后,向外部提供比对接口,并继续向上述内存中加载尚未加载的目标样本图像集。

目标样本图像集写入内存中是一个持续的过程,在目标样本图像集全部写入完成前需要保持写入。

步骤2,获取外部通过上述比对接口输入的待比对的目标图像。

步骤3,将上述目标图像与上述内存中已加载完成的各目标样本图像集进行比对,得到各上述预设单位时长的搜索结果。

可选的,上述方法还包括:

分别标记各上述搜索结果对应的时间范围,并向外部发送各标记时间范围的搜索结果。

例如,可以在每次完成一个预设单位时长的样本图像与目标图像的比对后,标记该搜索结果对应的时间范围。可以在每次完成一个预设单位时长的样本图像与目标图像的比对后,向外部发送此次标记时间范围的搜索结果。也可以在目标样本图像集中各样本图像均与目标图像的比对后,一起向外部发送各标记时间范围的搜索结果。

在本申请实施例中,在内存中完成预设单位时长的样本图像的加载后,便可以执行比对,相比于数据全部加载到内存后再进行比对,能够减少比对耗时,并且可以减少业务中断的时间,从而增加用户体验。在全量加载热数据的时候,加载一个预设单位时长的数据到内存后,便可对外提供以图搜图的服务,无需等待全部数据加载完成,业务中断时间小。可以边加载数据边计算,从而节约总体上的使用时间,也更合理的利用了设备资源,因为加载主要是使用磁盘io资源,比对主要是使用cpu计算资源。

下面以基于热数据的以图搜图方法为例,对本申请实施例的图像搜索方法进行具体说明。数据全量加载过程如图2所示,按时间倒序加载目标样本图像集中的各样本图像到内存中,将加载的数据与内存中已有数据进行合并,加载完成首个预设单位时长的样本图像后,就可以对外提供以图搜图服务,判断目标样本图像集是否全部加载完成,如果没有加载完成继续加载,如果加载完成,全量加载数据流程结束。数据对比过程如图3所示,在目标样本图像集加载的过程中,就可以对外提供以图搜图比对接口,外部系统调用以图搜图比对接口,比对内存中的已经加载的样本图像,在加载过程中可以不是全量的数据,返回相应时间段内的比对数据的结果,需要标明搜索结果数据对应的目标样本图像集的时间范围。

下面以基于冷数据的以图搜图方法为例,对本申请实施例的图像搜索方法进行具体说明,参见图4,通过冷数据以图搜图接口,获取目标时间范围等参数,调用引擎通过流式加载方法加载目标时间范围内的目标样本图像集,按照时间倒序加载,加载完成一个时间段的数据就开始以图搜图比对,缓存搜索结果,标记搜索结果对应的样本图像的时间范围,供接口以供外部查询结果数据;判断目标样本图像集是否全部加载完成,没有完成则继续记载目标样本图像集;完成则结束。

本申请实施例还提供了一种图像搜索装置,参见图5,该装置包括:

时间范围确定模块501,用于获取需要比对的样本图像的时间范围,作为目标时间范围,其中,上述目标时间范围的时长大于预设单位时长;

图像集确定模块502,按照各样本图像的时间标识,确定上述目标时间范围中的样本图像,得到目标样本图像集;

图像加载模块503,用于按照上述目标样本图像集中各样本图像的时间标识,通过流式加载方式向内存中加载各上述样本图像;

图像比对模块504,用于当首次在上述内存中加载完成预设单位时长的样本图像后,触发将待比对的目标图像与上述内存中的样本图像进行比对,得到上述目标图像的搜索结果。

可选的,上述图像加载模块,具体用于:

根据上述目标样本图像集中各样本图像的时间标识,按照时间倒序的顺序,通过流式加载方式依次向内存中加载上述目标样本图像集中的各样本图像。

可选的,上述图像比对模块,包括:

结果比对子模块,用于当在上述内存中加载完成当前预设单位时长的样本图像后,将待比对的目标图像与当前加载完成的预设单位时长的样本图像进行比对,得到当前预设单位时长中目标图像的搜索结果;

循环比对子模块,用于将下一预设单位时长作为当前预设单位时长,返回上述结果比对子模块继续执行,直至上述目标样本图像集中的样本图像全部加载并比对完成。

可选的,上述装置还包括:

时间范围标记模块,用于标记各上述搜索结果对应的时间范围。

可选的,上述图像比对模块,具体用于:

当在上述内存中完成首个预设单位时长的目标样本图像集的加载后,向外部提供比对接口,并继续向上述内存中加载尚未加载的目标样本图像集;

获取外部通过上述比对接口输入的待比对的目标图像;

将上述目标图像与上述内存中已加载完成的各目标样本图像集进行比对,得到各上述预设单位时长的搜索结果。

可选的,上述装置还包括:

搜索结果发送模块,用于分别标记各上述搜索结果对应的时间范围,并向外部发送各标记时间范围的搜索结果。

本申请实施例还提供了一种电子设备,包括:处理器及存储器;

上述存储器,用于存放计算机程序;

上述处理器用于执行上述存储器存放的计算机程序时,实现如下步骤:

获取需要比对的样本图像的时间范围,作为目标时间范围,其中,上述目标时间范围的时长大于预设单位时长;

按照各样本图像的时间标识,确定上述目标时间范围中的样本图像,得到目标样本图像集;

按照上述目标样本图像集中各样本图像的时间标识,通过流式加载方式向内存中加载各上述样本图像;

当首次在上述内存中加载完成预设单位时长的样本图像后,触发将待比对的目标图像与上述内存中的样本图像进行比对,得到上述目标图像的搜索结果。

可选的,参见图6,本申请实施例的电子设备还包括通信接口602和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信。

可选的,上述处理器用于执行上述存储器存放的计算机程序时,还能够实现上述任一图像搜索方法。

上述电子设备提到的通信总线可以是pci(peripheralcomponentinterconnect,外设部件互连标准)总线或eisa(extendedindustrystandardarchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括ram(randomaccessmemory,随机存取存储器),也可以包括nvm(non-volatilememory,非易失性存储器),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括cpu(centralprocessingunit,中央处理器)、np(networkprocessor,网络处理器)等;还可以是dsp(digitalsignalprocessing,数字信号处理器)、asic(applicationspecificintegratedcircuit,专用集成电路)、fpga(field-programmablegatearray,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本申请实施例还提供了一种计算机可读存储介质,上述计算机可读存储介质内存储有计算机程序,上述计算机程序被处理器执行时实现如下步骤:

获取需要比对的样本图像的时间范围,作为目标时间范围,其中,上述目标时间范围的时长大于预设单位时长;

按照各样本图像的时间标识,确定上述目标时间范围中的样本图像,得到目标样本图像集;

按照上述目标样本图像集中各样本图像的时间标识,通过流式加载方式向内存中加载各上述样本图像;

当首次在上述内存中加载完成预设单位时长的样本图像后,触发将待比对的目标图像与上述内存中的样本图像进行比对,得到上述目标图像的搜索结果。

可选的,上述计算机程序被处理器执行时,还能够实现上述任一图像搜索方法。

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

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及存储介质的实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

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