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

图像检索的加速方法、检索设备、电子设备和存储介质与流程

2022-03-22 23:09:17 来源:中国专利 TAG:


1.本技术涉及图像检索技术领域,特别是涉及一种图像检索的加速方法、检索设备、电子设备和存储介质。


背景技术:

2.通常,图像检索的应用领域非常广泛,既可以用在医疗影像去控制病人的治疗,也可以用在推荐系统和搜索引擎中查询相似图像。最大内积搜索逐渐成为解决大型图像检索任务的范式。
3.然而,精确地计算出查询图像和数据库中图像数据之间的内积,而内积的计算不仅与向量的模大小有关,还需要考虑向量之间的方向,通常会耗费很大的代价,并且在向量方向上更容易得到更大的内积,内积越大表示相似度越高,反而导致忽略特征向量的排序和方向对损失函数的影响,从而导致图像检索的误差结果越大且降低图像检索的速度。


技术实现要素:

4.为解决上述技术问题,本技术第一方面采用的技术方案是提供一种图像检索的加速方法,该加速方法包括:获取待检索图像的原始特征向量;基于预设的第一分类器,处理原始特征向量,得到原始特征向量的残差特征向量;将残差特征向量输入预设的第二分类器,计算得到相似度距离查询表;基于相似度距离查询表和预设的检索表,对待检索图像的待查询向量进行加速检索。
5.为解决上述技术问题,本技术第二方面采用的技术方案是提供一种检索设备,包括:
6.获取模块,用于获取待检索图像的原始特征向量;
7.处理模块,用于基于预设的第一分类器,处理所述原始特征向量,得到所述原始特征向量的残差特征向量;
8.计算模块,用于输入模块将所述残差特征向量输入预设的第二分类器,计算得到相似度距离查询表;
9.加速检索模块,用于基于所述相似度距离查询表和预设的检索表,对所述待检索图像的待查询向量进行加速检索。
10.为解决上述技术问题,本技术第三方面采用的技术方案是提供一种电子设备,该电子设备包括:处理器和存储器,存储器中存储有计算机程序,处理器用于执行计算机程序以实现如本技术第一方面的方法。
11.为解决上述技术问题,本技术第四方面采用的技术方案是提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,计算机程序能够被处理器执行时实现本技术第一方面的方法。
12.本技术的有益效果是:本技术通过对获取待检索图像的原始特征向量;进行处理残差特征向量;计算残差特征向量得到相似度距离查询表;基于相似度距离查询表和预设
的检索表,可以对待检索图像的待查询向量进行加速检索,从而缩短查询的耗时,提高图像检索的性价比。
附图说明
13.为了更清楚地说明本技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
14.图1是本技术图像检索的加速方法第一实施例流程示意图;
15.图2是图1中步骤s11之前的一实施流程示意图;
16.图3是图1中步骤s11之前的一具体构建索引实施流程示意图;
17.图4是基于图3中具体实施例中的查询流程示意图;
18.图5是图2中步骤s23的一具体实施流程示意图;
19.图6是图2中步骤s23的另一具体实施流程示意图;
20.图7是图1中步骤s13的一具体实施流程示意图;
21.图8是图7中步骤s52的一具体实施流程示意图;
22.图9是图1中步骤s14的一具体实施流程示意图;
23.图10是本技术图像检索的加速计算一具体实施例流程示意图;
24.图11是本技术图像检索的压缩索引表存储示意图;
25.图12是本技术图像检索的距离检索表示意图;
26.图13是本技术检索设备实施例的结构示意框图;
27.图14是本技术电子设备实施例的结构示意框图;
28.图15是本技术计算机可读存储介质实施例的电路示意框图。
具体实施方式
29.以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本技术实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本技术。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本技术的描述。
30.应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
31.还应当理解,在此本技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本技术。如在本技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
32.还应当进一步理解,在本技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
33.如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
[0034]
下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术的一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0035]
为了说明本技术的技术方案,下面通过具体实施例来进行说明本技术提供一种图像检索的加速方法,请参阅图1,图1是本技术图像检索的加速方法第一实施例流程示意图,该加速方法具体包括以下步骤:
[0036]
s11:获取待检索图像的原始特征向量;
[0037]
为解决图像的快速检索,一般会采用两种方式加速查询,一方面是通过减小搜索范围减少计算量,另一方面通过降低图像特征向量的维度。
[0038]
在本实施例中可以提取待检索图像的原始的向量空间,具体地,把原始的向量空间分解为m个低维向量空间的笛卡尔积,并对分解得到的低维向量空间分别做kmeans聚类。通过kmeans聚类学习到聚类中心,使用这些聚类中心的笛卡尔积就是原始特征向量对应的索引。kmeans聚类的优化目标如式(1)所示,q是需要查询的原始特征向量,xi是数据库中的特征向量,是其聚类中心,《》表示内积操作,e表示求期望,q表示q的分布,l表示损失函数。该损失函数l的函数值越小,说明q与的内积越接近q与xi的内积,即聚类的效果越好。
[0039][0040]
当查询向量满足各向同性,即qq
t
=ci时,式(1)可重新改写。如下式(2)所示:
[0041][0042]
从式(2)可看出,当满足各项同性时,最近邻搜索使用的最小平方误差也可等价为当前所讨论的最大内积搜索。如此,采用此方式对待检索图像进行处理,会导致较大的误差,具体分析主要有如下两点原因:
[0043]
1)若q与xi的内积越大,那么两者的相似度越高,则xi排在查询结果更前列,则xi的误差结果在总误差应更高比重,此方案并没有考虑该内积的影响。
[0044]
2)内积的计算不仅与向量的模大小有关,还需要考虑向量之间的方向。在平行q向量方向上更容易得到大的内积,因此我们需要对其施加更大的惩罚系数,此方案并未考虑方向对损失函数的影响。为此,加快图像检索的速度同时,保证图像检索的准确率显得尤为重要。
[0045]
其中,待检索图像包含有原始特征向量,用于表征待检索图像,通过获取待检索图像的原始特征向量,具体地,通过特征提取器可以将图像集合中的特征进行提取,以得到待检索图像的原始特征向量并存储于数据库中,利于提升加速图像检索方案的实现性。
[0046]
s12:基于预设的第一分类器,处理原始特征向量,得到原始特征向量的残差特征向量;
[0047]
具体地,从原始图像数据中选取一部分作为训练数据,首先利用原始的特征向量训练得到预设的第一分类器,然后利用预设的第一分类器处理原始特征向量,得到原始特
征向量的残差特征向量。
[0048]
其中,分类器(classifier)是在已有数据的基础上学会一个分类函数或构造出一个分类模型。该函数或模型能够把数据库中的数据纪录映射到给定类别中的某一个,从而可以应用于数据预测。
[0049]
s13:将残差特征向量输入预设的第二分类器,计算得到相似度距离查询表;
[0050]
具体地,为了加快图像检索速度,再将其映射到多个子特征向量空间分别训练得到同样数量个预设的第二分类器,得到多个子残差特征向量,将多个子残差特征向量输入预设的第二分类器,计算得到相似度距离查询表,以将所有图像特征建立索引。
[0051]
s14:基于相似度距离查询表和预设的检索表,对待检索图像的待查询向量进行加速检索。
[0052]
具体地,每个特征向量之间的内积对应一个检测向量,按照索引,可以通过相似度距离查询表和预设的检索表的对比查找,通过排序找到数据库中与原始向量最相似的向量集合,从而得到检索的结果。
[0053]
因此,本技术通过对获取待检索图像的原始特征向量;进行处理残差特征向量;再计算残差特征向量得到相似度距离查询表;再基于相似度距离查询表和预设的检索表,可以对待检索图像的待查询向量进行加速检索,从而缩短查询的耗时,提高图像检索的性价比。
[0054]
此外,获取待检索图像的原始特征向量之前,请参阅图2,图2是图1中步骤s11之前的一实施流程示意图,该加速方法还包括:
[0055]
s21:提取图像数据库中图像的特征,得到图像特征;
[0056]
具体地,从图像数据库中获取图像集合,得到多个待检索的图像,通过特征提取器则可以从图像集合中提取图像数据库中的图像的特征,得到图像特征,也即上文提到的原始特征向量,其中,请参阅图3,图3是图1中步骤s11之前的一具体构建索引实施流程示意图;在图像数据库中选取一部分作为训练数据,利用原始的特征向量训练得到分类器c1作为第一分类器,然后利用分类器c1得到原始特征向量的残差特征向量。
[0057]
s22:对图像特征进行划分,得到多个子特征向量;
[0058]
获取原始特征向量后,进一步地进入两个支流,其中一个支流如图1中利用分类器c1对原始特征向量进行处理,得到原始特征向量的残差特征向量,另一个支流是对图像特征进行划分,得到多个子特征向量,以对方向损失进行计算,以对建立的索引进行更新。
[0059]
s23:对多个子特征向量进行计算,得到方向损失函数;
[0060]
具体地,内积越大表示两个向量的相似度越高。换句话说,q与xi的内积越大,那么xi应该排在查询结果的前列。因此损失函数l的构建还应
[0061]
考虑q与xi的内积值,重新构建后的损失函数如式(3)所示:
[0062][0063]
其中,w表示权重函数,其自变量为q与xi的内积值,具有单调不递减性质。从内积的计算中可知,平行于q的特征向量会得到更大的值。
[0064]
s24:基于多个图像子特征向量以及方向损失函数,建立多个图像子特征向量的索引,得到预设的检索表。
[0065]
如图3所示,基于多个图像子特征向量以及方向损失函数,建立多个图像子特征向量的索引,得到预设的检索表(也即相似度距离查询表),请参阅图4,图4是基于图3中具体实施例中的查询流程示意图。基于步骤s23,更进一步地,为优化方向损失函数,第二分类器利用残差特征向量作为输入进行聚类,从而优化方向损失函数,进而对索引表进行更新,基于更新的索引表进行加速检索,得到更为准确的查询结果。
[0066]
更近一步地,对图像特征进行计算,得到方向损失函数,请参阅图5,图5是图2中步骤s23的一具体实施流程示意图,具体包括以下步骤:
[0067]
s31:对预设比例的图像特征进行无监督训练,得到预设的第一分类器;
[0068]
首先,可以获取图像数据集,并且对图像进行标注。具体地,可以利用预训练好的特征提取器对图像数据进行处理,得到100维的特征向量数据集。使用该带标签的特征向量数据集,将数据集保存为文件,为后续的训练和测试过程提供数据支撑。对加载到内存中的特征向量数据集合进行统一管理,除了提供特征向量的查找和增加功能,还为数据集合提供基本的数值统计功能。
[0069]
然后,从文件中读取训练数据中的所有特征向量,按照预先设置好的采样比例进行随机采样得到训练集,剩下的特征向量数据当做测试集。利用所有原始特征向量进行无监督训练,得到带有n个聚类中心的分类器c1,以缩小查找的范围,其中n为大于等于1的正整数。
[0070]
具体地,此处的无监督训练即上述kmeans聚类方式,聚类的距离度量选择向量内积。向量之间内积越大,表明两者的相似度越高。反之相似度越低。
[0071]
s32:将图像特征输入第一分类器,计算得到图像特征对应的残差特征向量;
[0072]
通过分类器c1的聚类中心,计算出每个原始特征向量对应的残差特征向量,从而计算得到图像特征对应的残差特征向量。具体地,例如,记原始特征向量与聚类中心相减为特征向量的残差,那么该分类器c1的优化目标就是减小原始特征向量与残差特征向量之间的内积。
[0073]
s33:对残差特征向量进行映射,得到多个子残差特征向量;
[0074]
具体地,再将该残差特征向量映射到m个子空间,得到多个子残差特征向量,其中m为大于等于n的正整数。并且将多个子残差特征向量分别进行无监督训练,得到多个第二分类器;具体地,每个子空间单独进行无监督训练得到k个子空间的聚类中心,从而得到多个第二分类器,也即分类器c2。
[0075]
s34:将多个子残差特征向量作为输入进行聚类,优化方向损失函数。
[0076]
具体地,在将多个子残差特征向量输入分类器c2之前,将多个子残差特征向量作为输入进行聚类,来优化方向损失函数;然后再利用优化后的方向损失为利用多个子残差特征向量输入分类器c2得到的索引进行更新残差特征向量对应的子聚类中心,从而更新索引。
[0077]
更进一步地,对多个子特征向量进行计算,得到方向损失函数,请参阅图6,图6是图2中步骤s23的另一具体实施流程示意图,具体包括以下步骤:
[0078]
s41:将多个子残差特征向量分解为与待查询特征向量方向平行的平行残差以及垂直的垂直残差;
[0079]
具体地,从内积的计算中可知,平行于q的特征向量会得到更大的值。因此可将残
差特征向量分解为平行于q方向的残差r
//
和垂直于q方向的残差r


[0080]
其中,在训练阶段待查询特征向量q就是xi,因此r
//
的计算如式(4)所示:
[0081][0082]
垂直q方向上的残差r

的计算如式(5)所示:
[0083][0084]
s42:在待查询特征向量方向上,对平行残差以及垂直残差进行权重分配,得到平行残差对应的平行权重和垂直残差对应的垂直权重;
[0085]
具体地,针对待检索图像,对应在待查询特征向量q方向上,对平行残差r
//
以及垂直残差r

进行权重分配,得到平行残差r
//
对应的平行权重w
//
和垂直残差r

对应的垂直权重w


[0086]
s43:将平行残差、垂直残差、平行权重以及垂直权重代入预设公式,得到方向损失函数。
[0087]
具体地,从上数步骤s42可知,同时可将权重函数也分解为垂直作用w

和平行作用w
//
,最后得到的方向损失函数如式(6)所示:
[0088][0089]
其中,η是平行分量w
//
与垂直分量w

的比例,

表示成正比。在式6表示的方向损失函数中,将残差特征向量代入xi,即分类器c2的优化目标。
[0090]
更近一步地,将残差特征向量输入预设的第二分类器,计算得到相似度距离查询表,请参阅图7,图7是图1中步骤s13的一具体实施流程示意图,具体包括以下步骤:
[0091]
s51:将多个子残差特征向量分别切分到第二分类器的各个子空间中,其中,以预设维度向量构成的特征空间作为对多个子残差特征切分的子残差特征空间,子残差特征空间使用预设状态值表示预设维度向量;
[0092]
通常,设置预设维度向量,用于对子残差特征空间进行区分,其中,每个子残差特征空间还可使用预设的状态值来表征该预设维度向量。
[0093]
s52:基于多路线程,将多个子残差特征向量分别与子残差特征空间的聚类中心进行内积计算,得到相似度距离查询表。
[0094]
更近一步地,基于多路线程,将多个子残差特征向量分别与子残差特征空间的聚类中心进行内积计算,得到相似度距离查询表,请参阅图8,图8是图7中步骤s52的一具体实施流程示意图,具体包括以下步骤:
[0095]
s61:通过预设维度,对查询特征向量的执行线程划分为多路线程;
[0096]
具体地,对于需要加载的数据,首先可以根据指令支持的位数和输入特征数据的基本数据类型,计算出一次加载数据的个数。并具体结合聚类过程中内积计算可通过x86指令进行加速,过预设维度,对查询特征向量的执行线程划分为多路线程,比如,以前是一条线程对1-100的特征向量进行处理,现在是分为10个维度,10条线程同时进行。
[0097]
s62:基于多路线程,对每个子残差特征空间对查询特征向量进行聚类,得到聚类中心;
[0098]
具体地,对加载完的数据进行循环乘累加计算,得到加载数据数量个乘累加的和。最后将这加载数据数量个累加和进行相加,得到最后的内积,也即聚类中心。
[0099]
s63:基于方向损失函数,计算查询特征向量的子特征向量与聚类中心之间的方向损失,以得到相似度距离查询表。
[0100]
得到残差的距离中心之后,则进一步计算每个点到聚类中心的损失,先从子空间中选取最小值,利用上述公式(5),计算出方向损失的最小值。根据方向损失的最小值找到原始特征向量所对应的子空间状态值,即为训练集中的每个原始特征向量都建立了索引。
[0101]
更近一步地,基于相似度距离查询表和预设的检索表,对待检索图像的待查询向量进行加速检索,请参阅图9,图9图1是图1中步骤s14的一具体实施流程示意图,具体包括以下步骤:
[0102]
s71:将相似度距离查询表和预设的检索表进行比对,得到比较结果;
[0103]
s72:通过对比较结果进行排序,以对待检索图像的待查询特征向量进行加速检索。
[0104]
更进一步地,请参阅图10至12,图10是本技术图像检索的加速计算一具体实施例流程示意图;图11是本技术图像检索的压缩索引表存储示意图;图12是本技术图像检索的距离检索表示意图。
[0105]
具体地,聚类过程中内积计算可通过x86指令进行加速,多线程的方式,如图11所示,首先需要加载数据,根据指令支持的位数和输入特征数据的基本数据类型,可以算出一次加载数据的个数kblocksize。然后需要对加载完的数据进行循环乘累加计算,得到kblocksize个乘累加的和。最后将这kblocksize累加和进行相加,就是最后的内积。循环计算的次数就是向量维度大小除以kblocksize。
[0106]
具体地,为了加速计算,例如以两维向量作为最小单元,对残差特征向量进行切分。通过两维特征向量构成的特征空间称为子残差特征空间。每个子残差特征空间都使用16个状态值表征该两维向量。假如原先的特征向量维度为100维,那么子空间数目为50。每个子特征空间对进行聚类,每个子空间得到16个聚类中心。
[0107]
由于状态值都在0-15之间。因此能够使用一个8位无符号整型构成压缩索引,对两个状态值进行存储,每个聚类中心指向其聚类簇所包含特征向量的压缩索引表。压缩后索引值存储视图如图12所示,每个块保存16个压缩索引,每个压缩索引可以表示2个真实索引值,例如8位对应0-256,0-15用不完,将8位空间分为两部分,前4位和后4位,以分别表示2个真实索引值,可以提高空间利用率。因此每个块其实保存了2个特征向量的索引。
[0108]
更近一步地,使用训练好的分类器c1对待查询的特征向量进行预分组,每个待查询的特征向量都会有对应的聚类中心。换而言之,每个聚类中心分别对应了待查询特征向量集合的子集。使用每个聚类中心与对应的子集相减就得到了待查询特征向量集合的残差特征向量。
[0109]
将残差特征向量切分到分类器c2各个的子空间中,与子空间的每个聚类中心进行内积计算,可得到一张距离检索表。该距离检索表如图12所示,图12的子空间1至50的部分为单个子空间,单个子空间包括16个内积值。待查询的特征向量与数据库特征向量的组合构成距离检索表的单条数据。根据图10所示的压缩索引表和图11的距离检索表,可以快速得到待查询向量与其聚类簇包含特征向量之间的内积,再对其进行排序就是最后检索的结
果。
[0110]
因此,本技术不仅在优化目标中考虑向量的方向,还构建权重函数考虑待查询向量与数据库特征向量的内积。有利于减小聚类中心的误差,使查找结果更加准确。并且构建向量的压缩索引,节省存储空间。还给出了距离查询表和x86指令缩短查询的耗时。
[0111]
为了说明本技术的技术方案,本技术还提供一种检索设备,该检索设备可以是电脑、可以是服务器,还可以是移动终端,具体此处不做限定。请参阅图13,图13是本技术检索设备实施例的结构示意框图,该检索设备7包括:获取模块71、处理模块72、计算模块73以及加速检索模块74。
[0112]
获取模块71,用于获取待检索图像的原始特征向量;
[0113]
处理模块72,用于基于预设的第一分类器,处理原始特征向量,得到原始特征向量的残差特征向量;
[0114]
计算模块73,用于输入模块将残差特征向量输入预设的第二分类器,计算得到相似度距离查询表;
[0115]
加速检索模块74,用于基于相似度距离查询表和预设的检索表,对待检索图像的待查询向量进行加速检索。
[0116]
因此,本技术通过处理模块72对获取模块71获取待检索图像的原始特征向量;进行处理残差特征向量;再利用计算模块73计算残差特征向量得到相似度距离查询表;再基于相似度距离查询表和预设的检索表,采用加速检索模块74可以对待检索图像的待查询向量进行加速检索,从而缩短查询的耗时,提高图像检索的性价比。
[0117]
为了说明本技术的技术方案,本技术还提供一种电子设备,该电子设备可以是电脑或移动手机等,具体不做限定,请参阅图14,图14是本技术电子设备实施例的结构示意框图,该电子设备8包括:处理器81和存储器82,存储器82中存储有计算机程序821,处理器81用于执行计算机程序821以实现如本技术实施例第一方面的方法,在此不再赘述。
[0118]
此外,本技术还提供一种计算机可读存储介质,请参阅图15,图15是本技术计算机可读存储介质实施例的电路示意框图,该计算机可读存储介质9存储有计算机程序91,计算机程序91能够被处理器执行时实现如本技术实施例第一方面的方法,在此不再赘述。
[0119]
如果以软件功能单元的形式实现并作为独立的产品销售或使用时,还可以存储在具有存储功能的装置中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储装置中,包括若干指令(程序数据)用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式方法的全部或部分步骤。而前述的存储装置包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种介质以及具有上述存储介质的电脑、手机、笔记本电脑、平板电脑、相机等电子设备。
[0120]
关于具有存储功能的装置中的程序数据的执行过程的阐述可以参照上述本技术图像检索的加速方法实施例中阐述,在此不再赘述。
[0121]
以上所述仅为本技术的实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

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

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

相关文献