一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于内存管理的图像检索方法、系统、设备及存储介质与流程

2021-12-14 22:32:00 来源:中国专利 TAG:


1.本发明属于电力系统自动化领域,涉及一种基于内存管理的图像检索方法、系统、设备及存储介质。


背景技术:

2.随着电力系统的规模越来越大,结构越来越复杂,对电力设备的管理也日趋重要,电力系统设备众多,且设备分布具有跨地域性的特点,因此如何管理这些设备,维护这些设备的参数信息,并随时可以查看这些设备的信息成为了一个急需解决的问题。就多种信息载体而言,图像能够起到一目了然的效果,近年来有些电力部门在电力设备管理方面也采用了对设备拍摄数字图像记录设备信息的管理方式,对于设备图像的使用主要有:1、从数字图像中分辨出设备类型;2、前后对比使用,管理者往往要将同一设备的历史图像同当前图像进行对比,观察漆面变化情况;3、从图像的附加信息中得知设备型号,设备所在地点,设备使用年限等参数。
3.最初这些图像以文件形式存储在电脑硬盘中,管理者只能逐个浏览,随着图像数量的增多,从中寻找目标图像非常困难,于是将设备图像作为图像数据库进行组织,如能依照线索图像从数量巨大,品种繁多的电力设备图像数据库中快速检索出目标设备图像,则可以大大提高电力部门的工作效率。目前,常用的检索方法为暴力匹配方案。
4.但是,对于暴力匹配的方案,一般使用图像视觉特征提取模型对一张图像提取特征,通常会得到2048维的视觉向量,对特征向量每一维使用4个字节存储,则每条特征向量需要8kb,100万张图像构建的数据库则需要7.63gb的内存存储。如果内存中无法放下库中所有的特征向量,则对于任意一个待匹配的特征向量,程序需要先将库中一部分特征向量加载进内存,等他们与待匹配特征向量计算距离之后,又要从内存中删除。之后再加载一部分特征向量进内存,在与待匹配特征向量计算距离,这样一直进行,直到当前这条待匹配的特征向量与库中特征向量都计算过距离之后,才能确定距离当前这条待匹配特征向量距离最近的特征向量。然后对于下一条待匹配的特征向量又要进行相同的操作,这样一来对于每一条特征向量其花费的时间都是很长的,所以暴力匹配在特征向量无法一次性加载进内存的情况下时间消耗巨大,完全不可行。


技术实现要素:

5.本发明的目的在于克服上述现有技术中,现有基于内存管理的图像检索方法的时间消耗巨大的缺点,提供一种基于内存管理的图像检索方法、系统、设备及存储介质。
6.为达到上述目的,本发明采用以下技术方案予以实现:本发明第一方面,一种基于内存管理的图像检索方法,包括以下步骤:获取线索图像,并提取线索图像的视觉特征向量,得到线索视觉特征向量;获取预设的若干聚类集中与线索视觉特征向量相似度最高的聚类集,得到相似聚类集,并将相似聚类集的访问次数 1;
获取相似聚类集的位置信息,当相似聚类集的位置信息为在内存中时,进行结果获取步骤;否则,获取内存的当前可用空间;当内存的当前可用空间>相似聚类集所需的存储空间时,进行读取步骤;否则,按照访问次数从小到大的顺序删除内存中的聚类集,至内存的当前可用空间>相似聚类集所需的存储空间,进行读取步骤;其中,读取步骤:将相似聚类集从视觉特征向量库中读入内存中,进行结果获取步骤;结果获取步骤:获取相似聚类集内与线索视觉特征向量相似度前预设数量高的视觉特征向量对应的图像,得到检索结果。
7.本发明基于内存管理的图像检索方法进一步的改进在于:所述获取预设的若干聚类集中与线索视觉特征向量相似度最高的聚类集的具体方法为:获取预设的若干聚类集中各聚类集的聚类中心;计算各聚类集的聚类中心与线索视觉特征向量之间的距离,获取与线索视觉特征向量之间的距离最近的聚类中心所属的聚类集,得到与线索视觉特征向量相似度最高的聚类集。
8.所述获取相似聚类集的位置信息的具体方法为:获取相似聚类集的编号;根据相似聚类集的编号以及预设的聚类中心表,得到相似聚类集内第一个视觉特征向量的位置信息;当相似聚类集内第一个视觉特征向量的位置信息为在内存中时,相似聚类集的位置信息为在内存中;否则,相似聚类集的位置信息为不在内存中。
9.所述获取内存的当前可用空间的具体方法为:获取内存中预设的内存特征向量表的实际长度与最大长度的差值,得到内存的当前可用空间。
10.所述按照访问次数从小到大的顺序删除内存中的聚类集的具体方法为:通过预设的访问次数表,获取位于内存中预设的内存特征向量表中的各聚类集,并按照访问次数从小到大的顺序排列;获取排列在最后的聚类集的编号,并根据排列在最后的聚类集的编号通过预设的聚类中心表,得到排列在最后的聚类集内第一个视觉特征向量在内存特征向量表中的位置以及排列在最后的聚类集内的视觉特征向量的数量;根据排列在最后的聚类集内第一个视觉特征向量在内存特征向量表中的位置以及排列在最后的聚类集内的视觉特征向量的数量,将排列在最后的聚类集从内存特征向量表中删除。
11.所述获取相似聚类集内与线索视觉特征向量相似度前预设数量高的视觉特征向量的具体方法为:计算相似聚类集内各视觉特征向量与线索视觉特征向量之间的距离,获取与线索视觉特征向量之间的距离前预设数量近的视觉特征向量,得到相似聚类集内与线索视觉特征向量相似度前预设数量高的视觉特征向量。
12.所述距离为欧式距离或余弦夹角距离。
13.本发明第三方面,一种基于内存管理的图像检索系统,包括:获取模块,用于获取线索图像,并提取线索图像的视觉特征向量,得到线索视觉特
征向量;相似聚类集确定模块,用于获取预设的若干聚类集中与线索视觉特征向量相似度最高的聚类集,得到相似聚类集,并将相似聚类集的访问次数 1;位置确定模块,用于获取相似聚类集的位置信息,当相似聚类集的位置信息为在内存中时,进行结果获取步骤;否则,获取内存的当前可用空间;读取模块,用于当内存的当前可用空间>相似聚类集所需的存储空间时,进行读取步骤;否则,按照访问次数从小到大的顺序删除内存中的聚类集,至内存的当前可用空间>相似聚类集所需的存储空间,进行读取步骤;其中,读取步骤:将相似聚类集从视觉特征向量库中读入内存中,进行结果获取步骤;结果获取步骤:获取相似聚类集内与线索视觉特征向量相似度前预设数量高的视觉特征向量对应的图像,得到检索结果。
14.本发明第三方面,一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于内存管理的图像检索方法的步骤。
15.本发明第四方面,一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于内存管理的图像检索方法的步骤。
16.与现有技术相比,本发明具有以下有益效果:本发明基于内存管理的图像检索方法,通过聚类集和访问次数的设计,实现对视觉特征向量库中的视觉特征向量进出内存进行高效的管理,能够最大程度上保证经常被匹配到的聚类集长时间位于内存中,避免了暴力匹配中每次检索视觉特征向量时,都需要将视觉特征向量库中所有的视觉特征向量都进出一次内存的问题,极大的降低了检索时间,提高了检索速度。
附图说明
17.图1为本发明的基于内存管理的图像检索方法流程框图。
具体实施方式
18.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
19.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品
或设备固有的其它步骤或单元。
20.下面结合附图对本发明做进一步详细描述:参见图1,本发明一实施例中,提供一种基于内存管理的图像检索方法,有效解决了现有电力系统图像数据检索时的时间消耗巨大的问题,具体包括以下步骤。
21.s1:获取线索图像,并提取线索图像的视觉特征向量,得到线索视觉特征向量。
22.具体的,采用图像特征提取模型对线索图像提取视觉特征向量,图像特征提取模型可以选择在imagenet数据集上预训练过的inception模型,一张线索图像可以对应一个2048维的视觉特征向量。
23.同样的,在进行检索前,将电力系统图像数据库中的所有图像,采用上述的图像特征提取模型提取视觉特征向量,使用电力系统图像数据库中所有图像对应的视觉特征向量构建一个视觉特征向量库,进而将图像检索工作转换为视觉特征向量的检索工作,相比于直接对图像进行检索极大的减少了使用时的计算量。
24.s2:获取预设的若干聚类集中与线索视觉特征向量相似度最高的聚类集,得到相似聚类集,并将相似聚类集的访问次数 1。
25.具体的,在进行检索前,将视觉特征向量库中的所有视觉特征向量,采用k

means聚类方法进行聚类,得到若干聚类集。具体的,随机初始化k个聚类中心,每个聚类中心的维度与视觉特征向量的维度一致,本实施例中,均为2048维,将视觉特征向量库的视觉特征向量根据k个聚类中心分为k个聚类集,构建一个聚类中心表记录k个聚类中心,另外构建k个表分别记录每个聚类集的视觉特征向量。其中,k可以根据实际图像数据库进行调整优化。
26.所述获取预设的若干聚类集中与线索视觉特征向量相似度最高的聚类集的具体方法为:获取预设的若干聚类集中各聚类集的聚类中心;计算各聚类集的聚类中心与线索视觉特征向量之间的距离,获取与线索视觉特征向量之间的距离最近的聚类中心所属的聚类集,得到与线索视觉特征向量相似度最高的聚类集。
27.其中,距离为欧式距离或余弦夹角距离。
28.s3:获取相似聚类集的位置信息,当相似聚类集的位置信息为在内存中时,进行结果获取步骤;否则,获取内存的当前可用空间。
29.具体的,本实施例中,在进行检索前,构建三张常驻内存的表用于管理位于内存中的视觉特征向量,这三张表可以采用c 语言中的向量容器来实现。第一张表是聚类中心表,用于记录k个聚类中心的相关信息。第二张表是访问次数统计表,用来统计k个聚类集累计被作为相似聚类集的次数。第三张表是内存特征向量表,用于记录位于内存中的视觉向量相关信息。
30.其中,参见表1,聚类中心表有四个字段,第一个字段是聚类类别,表示聚类中心所属的聚类集的编号;第二个字段是数量,表示该聚类集中的视觉特征向量数目;第三个字段是聚类中心,存储聚类中心自身,聚类中心自身就是一个2048维的特征向量;第四个字段是位置,表示该聚类集第一个视觉特征向量在内存特征向量表中的位置,具体的,取值为

1表示该聚类集的视觉特征向量不在内存特征向量表中,聚类中心表的排序规则是按照聚类集的编号从小到大排列。
31.表1聚类中心表
参见表2,访问次数统计表有三个字段,第一个字段是聚类类别,表示聚类集的编码;第二个字段是存储位置,表示该聚类集的视觉特征向量是否位于内存特征向量表中,如果是则取值为1,如果否则取值为0;第三个字段是访问次数,表示该聚类集被线索视觉向量作为相似聚类集的累计次数。另外,访问次数统计表根据存储位置字段取1还是取0分为第一部分和第二部分,第一部分的存储位置字段值取1,对应的聚类集需要保持排序状态,排序的标准是访问次数字段的值从大到小排列。另外,设置全局变量指针last_mem_tuple指向存储位置取值为1,且排在最后的聚类集,便于直接获取该聚类集。
32.表2 访问次数统计表参见表3,内存特征向量表有三个字段,第一个字段是位置,表示该视觉特征向量在内存特征向量表中的位置,从0开始递增编号;第二个字段是聚类类别,表示该视觉特征向量所属聚类集;第三个字段是特征向量,存储的是视觉特征向量自身,内存特征向量表的排序规则是:同一个聚类集的视觉特征向量相邻存储,另外内存特征向量表设置最大长度max_length,用来保证内存特征向量表不会将计算机内存占满,max_length可以根据实际使用设备进行调整,取值越大越好。
33.表3 内存特征向量表基于此,本实施例中,获取相似聚类集的位置信息的方法为:获取相似聚类集的编号;根据相似聚类集的编号以及预设的聚类中心表,得到相似聚类集内第一个视觉特征向量的位置信息;当相似聚类集内第一个视觉特征向量的位置信息为在内存中时,相似聚类集的位置信息为在内存中;否则,相似聚类集的位置信息为不在内存中。
34.接着,当相似聚类集的位置信息为在内存中时,进行结果获取步骤;结果获取步骤具体为:获取相似聚类集内与线索视觉特征向量相似度前预设数量高的视觉特征向量对应的图像,得到检索结果。具体的,获取相似聚类集内与线索视觉特征向量相似度前预设数量高的视觉特征向量的具体方法为:计算相似聚类集内各视觉特征向量与线索视觉特征向量之间的距离,获取与线索视觉特征向量之间的距离前预设数量近的视觉特征向量,得到相似聚类集内与线索视觉特征向量相似度前预设数量高的视觉特征向量。
35.否则,即相似聚类集的位置信息为不在内存中时,获取内存的当前可用空间。其中,获取内存的当前可用空间的方法为:获取内存中预设的内存特征向量表的实际长度与最大长度的差值,得到内存的当前可用空间。每个视觉特征向量所需的存储空间为内存特征向量表的一个单位长度。
36.s4:当内存的当前可用空间>相似聚类集所需的存储空间时,进行读取步骤;否则,按照访问次数从小到大的顺序删除内存中的聚类集,至内存的当前可用空间>相似聚类集所需的存储空间,进行读取步骤。
37.其中,读取步骤具体为:将相似聚类集从视觉特征向量库中读入内存中,进行结果获取步骤。
38.具体的,当线索视觉向量最相似的聚类集不在内存特征向量表中时,需要判断内存特征向量表实际长度与其最大长度max_length的差值,是否大于等于相似聚类集的视觉特征向量数量,如果差值大于等于相似聚类集的视觉特征向量数量,则直接将相似聚类集的视觉特征向量从视觉特征向量库中读入到内存的内存特征向量表中,并修改内存特征向量表中的相似聚类集的位置字段取值以及访问次数统计表中相似聚类集的存储位置字段取值,对访问次数统计表重新进行排序,last_mem_tuple指向存储位置字段取值为1且访问
次数最小的聚类集。
39.如果差值小于相似聚类集的视觉特征向量数量,按照访问次数从小到大的顺序删除内存中的聚类集,至大于等于相似聚类集的视觉特征向量数量。其中,所述按照访问次数从小到大的顺序删除内存中的聚类集的具体方法为:通过预设的访问次数表,获取位于内存中预设的内存特征向量表中的各聚类集,并按照访问次数从小到大的顺序排列;获取排列在最后的聚类集的编号,并根据排列在最后的聚类集的编号通过预设的聚类中心表,得到排列在最后的聚类集内第一个视觉特征向量在内存特征向量表中的位置以及排列在最后的聚类集内的视觉特征向量的数量;根据排列在最后的聚类集内第一个视觉特征向量在内存特征向量表中的位置以及排列在最后的聚类集内的视觉特征向量的数量,将排列在最后的聚类集从内存特征向量表中删除。
40.具体的,如果差值小于相似聚类集的视觉特征向量数量,需要对访问次数统计表进行检索,由于访问次数统计表存储位置字段值取1的元组按照访问次数字段的取值处于排序状态,所以直接由last_mem_tuple指针获取到被替换的聚类集,根据被替换聚类集的编号从聚类中心表中获取到其在内存特征向量表中的位置,以及其包含视觉特征向量的数量,然后将被替换聚类集的视觉特征向量从内存特征向量表中删除,这样一来内存特征向量表的实际长度则减小了。修改聚类中心表中被替换聚类集的位置字段的值,以及访问次数统计表中被替换聚类集的存储位置字段的值,并见last_mem_tuple指针向前移动一位,指向当前存储位置字段取值为1且访问次数最小的聚类集。
41.综上所述,本发明基于内存管理的图像检索方法,通过获取预设的若干聚类集中与线索视觉特征向量相似度最高的聚类集,实现线索视觉特征向量与视觉特征向量库中的视觉特征向量的初步匹配,并将相似聚类集的访问次数 1。在此基础上,获取相似聚类集的位置信息,当相似聚类集的位置信息为在内存中时,进行结果获取步骤,获取相似聚类集内与线索视觉特征向量相似度前预设数量高的视觉特征向量对应的图像,得到检索结果。否则,获取内存的当前可用空间,当内存的当前可用空间>相似聚类集所需的存储空间时,进行读取步骤,将相似聚类集从视觉特征向量库中读入内存中,否则,按照访问次数从小到大的顺序删除内存中的聚类集,至内存的当前可用空间>相似聚类集所需的存储空间,然后将相似聚类集从视觉特征向量库中读入内存中。基于访问次数,通过对视觉特征向量库中的视觉特征向量进出内存进行管理,能够最大程度上保证经常被匹配到的聚类集长时间位于内存中,避免了暴力匹配时每次检索视觉特征向量时,都需要将视觉特征向量库中所有的视觉特征向量进出一次内存的问题,极大的提高了检索速度。
42.下述为本发明的装置实施例,可以用于执行本发明方法实施例。对于装置实施例中未纰漏的细节,请参照本发明方法实施例。
43.本发明再一实施例中,提供一种基于内存管理的图像检索系统,能够用于实现上述的基于内存管理的图像检索方法,具体的,该基于内存管理的图像检索系统包括获取模块、相似聚类集确定模块、位置确定模块以及读取模块。
44.获取模块用于获取线索图像,并提取线索图像的视觉特征向量,得到线索视觉特征向量;相似聚类集确定模块用于获取预设的若干聚类集中与线索视觉特征向量相似度最高的聚类集,得到相似聚类集,并将相似聚类集的访问次数 1;位置确定模块用于获取相似聚类集的位置信息,当相似聚类集的位置信息为在内存中时,进行结果获取步骤;否则,获
取内存的当前可用空间;读取模块用于当内存的当前可用空间>相似聚类集所需的存储空间时,进行读取步骤;否则,按照访问次数从小到大的顺序删除内存中的聚类集,至内存的当前可用空间>相似聚类集所需的存储空间,进行读取步骤;其中,读取步骤:将相似聚类集从图像数据库中读入内存中,进行结果获取步骤;结果获取步骤:获取相似聚类集内与线索视觉特征向量相似度前预设数量高的视觉特征向量对应的图像,得到检索结果。
45.本发明再一个实施例中,提供了一种计算机设备,该计算机设备包括处理器以及存储器,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于执行所述计算机存储介质存储的程序指令。处理器可能是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor、dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field

programmable gatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其是终端的计算核心以及控制核心,其适于实现一条或一条以上指令,具体适于加载并执行计算机存储介质内一条或一条以上指令从而实现相应方法流程或相应功能;本发明实施例所述的处理器可以用于基于内存管理的图像检索方法的操作。
46.本发明再一个实施例中,本发明还提供了一种存储介质,具体为计算机可读存储介质(memory),所述计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了终端的操作系统。并且,在该存储空间中还存放了适于被处理器加载并执行的一条或一条以上的指令,这些指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机可读存储介质可以是高速ram存储器,也可以是非不稳定的存储器(non

volatile memory),例如至少一个磁盘存储器。可由处理器加载并执行计算机可读存储介质中存放的一条或一条以上指令,以实现上述实施例中有关基于内存管理的图像检索方法的相应步骤。
47.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
48.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
49.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或
多个方框中指定的功能。
50.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
51.最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献