首页 / 专利库 / 电脑编程 / 算法 / 哈希算法 / 基于卷积神经网络以及树与哈希结合索引的图像检索方法

基于卷积神经网络以及树与哈希结合索引的图像检索方法

阅读:245发布:2020-05-11

专利汇可以提供基于卷积神经网络以及树与哈希结合索引的图像检索方法专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种基于 卷积神经网络 以及树与哈希结合索引的图像检索方法,步骤包括:S1、采集图像库,并对图像库训练一个卷积神经网络模型;S2、对卷积神经网络模型进行特征提取得到特征库;S3、采用基于树与哈希结合的索引方法对特征库建立索引;S4、根据索引内的 特征向量 v进行检索,得到Top‑n结果。本发明采用树与哈希结合的索引方法相对于纯哈希 算法 来说可以在保证相同检索时间的条件下使得检索效果更好。,下面是基于卷积神经网络以及树与哈希结合索引的图像检索方法专利的具体信息内容。

1.一种基于卷积神经网络以及树与哈希结合索引的图像检索方法,其特征在于,包括如下步骤:
S1、采集图像库,并对图像库训练一个卷积神经网络模型;
S2、对卷积神经网络模型进行特征提取得到特征库;
S3、采用基于树与哈希结合的索引方法对特征库建立索引;
S4、根据索引内的特征向量v进行检索,得到Top-n结果;
所述步骤S3,具体为:
S31、使用GINI指数对特征库进行空间上的划分,从而构造树;
S32、分别对树的每个叶子节点中的特征库子集构建哈希索引;
所述步骤S32的构建哈希索引,其使用E2LSH哈希索引方法;其中,E2LSH的哈希函数为:
式中,v为被哈希的特征向量,a为一个由正态分布产生的一个与v维度相同的随机向量,w为一个正实数,b为一个由均匀分布Unif(0,w)产生的一个实数。
2.根据权利要求1所述的基于卷积神经网络以及树与哈希结合索引的图像检索方法,其特征在于,所述步骤S1的采集图像库,其需根据具体情况和不同的要求采集不同类型的图像,但是采集的图像必需先进行标注,然后根据这些标注好的图像训练一个卷积神经网络模型。
3.根据权利要求1所述的基于卷积神经网络以及树与哈希结合索引的图像检索方法,其特征在于,所述步骤S31中,GINI指数定义为:
式中,D代表特征库,n为特征库中包括的数据类别个数,pi表示第i个类别的数据总数占D中数据总数的比例;
其中,特征库D经过index维度的indexValue值进行划分:
式中,D1表示划分后的左子集,D2表示划分后的右子集;对于每一次划分,需要选择一个特征维度和一个该维度对应的值,使得特征库D经过该维度的该值划分后的GINI指数最低,所以每次划分就遍历特征库的每个特征维度和每个特征的值,然后通过该维度的该值进行划分,得到子集D1和D2,然后计算划分后的GINI指数,如果该GINI指数小于当前最优的GINI指数则将该GINI指数更新为当前最优GINI指数,该维度和该值更新为当前最优切分维度和切分值。

说明书全文

基于卷积神经网络以及树与哈希结合索引的图像检索方法

技术领域

[0001] 本发明涉及海量图片检索应用在计算机的技术领域,尤其涉及一种基于卷积神经网络以及树与哈希结合索引的图像检索方法。

背景技术

[0002] 基于卷积神经网络的特征提取方法已经得到了实践上的检验,特别是vgg和googlenet在2014年imagenet竞赛中名列前茅。基于卷积神经网络模型提取的特征具有旋转不变性,鲁棒性较强。
[0003] 由于基于卷积神经网络提取的特征一般维度都比较高,如果是一个海量的人脸图片特征库,那么如果要进行线性扫描,那么效率会很低,所以需要一种可以快速访问特定图片的方法。所以基于内容的图像检索技术(CBIR)应运而生。
[0004] CBIR中的索引方法主要分为两种,一种是基于树的索引方法,另一种是基于哈希的索引方法。基于树的方法主要是通过对数据集进行空间上的划分来达到检索引导的目的。而基于哈希的索引方法主要是通过哈希函数对数据进行哈希映射,使得相近的数据有很大概率会被哈希到同一个“桶”中,而想差较大的数据有很小的概率被哈希到同一个“桶”中。而由于基于树的索引方法在数据维度较高的情况下检索时间效率很差,所以目前的研究重点主要集中在基于哈希的索引方法上,其中效果比较好的方法有E2LSH和S2JSD-LSH。而基于树的空间划分方法也不是一无是处,可以通过对数据集进行空间上的划分,使得划分后的数据集的纯度变高,然后再分别对每个子数据集构建哈希索引会使得在不牺牲检索时间效率的情况下提升检索效果。

发明内容

[0005] 为了克服现有技术存在的缺点与不足,本发明提供一种基于卷积神经网络以及树与哈希结合索引的图像检索方法,在不影响检索时间效率的条件下改进了哈希索引的检索效果,并且通过树与哈希结合的索引方法建立索引,达到对检索过程进行引导的目的。
[0006] 为解决上述技术问题,本发明提供如下技术方案:一种基于卷积神经网络以及树与哈希结合索引的图像检索方法,包括如下步骤:
[0007] S1、采集图像库,并对图像库训练一个卷积神经网络模型;
[0008] S2、对卷积神经网络模型进行特征提取得到特征库;
[0009] S3、采用基于树与哈希结合的索引方法对特征库建立索引;
[0010] S4、根据索引内的特征向量v进行检索,得到Top-n结果。
[0011] 进一步地,所述步骤S1的采集图像库,其需根据具体情况和不同的要求采集不同类型的图像,但是采集的图像必需先进行标注,然后根据这些标注好的图像训练一个卷积神经网络模型。
[0012] 进一步地,所述步骤S3,具体为:
[0013] S31、使用GINI指数对特征库进行空间上的划分,从而构造树;
[0014] S32、分别对树的每个叶子节点中的特征库子集构建哈希索引。
[0015] 进一步地,所述步骤S31中,GINI指数定义为:
[0016]
[0017] 式中,D代表特征库,n为特征库中包括的数据类别个数,pi表示第i个类别的数据总数占D中数据总数的比例;
[0018] 其中,特征库D经过index维度的indexValue值进行划分:
[0019]
[0020] 式中,D1表示划分后的左子集,D2表示划分后的右子集;对于每一次划分,需要选择一个特征维度和一个该维度对应的值,使得特征库D经过该维度的该值划分后的GINI指数最低,所以每次划分就遍历特征库的每个特征维度和每个特征的值,然后通过该维度的该值进行划分,得到子集D1和D2,然后计算划分后的GINI指数,如果该GINI指数小于当前最优的GINI指数则将该GINI指数更新为当前最优GINI指数,该维度和该值更新为当前最优切分维度和切分值。
[0021] 进一步地,所述步骤S32的构建哈希索引,其使用E2LSH哈希索引方法;其中,E2LSH的哈希函数为:
[0022]
[0023] 式中,v为被哈希的特征向量,a为一个由正态分布产生的一个与v维度相同的随机向量,w为一个正实数,b为一个由均匀分布Unif(0,w)产生的一个实数。
[0024] 采用上述技术方案后,本发明至少具有如下有益效果:
[0025] 1、本发明采用卷积神经网络模型,对图片提取的特征具有平移、旋转和缩放不变性优点;
[0026] 2、本发明采用CBIR技术,加快了查找图片的时间;
[0027] 3、本发明使用了树与哈希结合索引方法,相对于普通哈希索引方法来说能够在保证检索时间效率相同的条件下提高检索效果。附图说明
[0028] 图1是本发明基于卷积神经网络以及树与哈希结合索引的图像检索方法的步骤流程图
[0029] 图2是本实施例中根据原始图片数据集而训练一个卷积神经网络模型用于特征提取的流程示意图;
[0030] 图3是图2中训练好的卷积神经网络模型,然后去掉输出层之后,取最后一层作为特征提取的结果的流程示意图;
[0031] 图4是本实施例中E2LSH索引的结构示意图;
[0032] 图5是本实施例中E2LSH索引的哈希表结构示意图;
[0033] 图6是本实施例中基于树与哈希索引方法的结构示意图;
[0034] 图7是本实施例中使用的图像检索方法整体过程(包括离线部分和在线过程)流程示意图。

具体实施方式

[0035] 需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合,下面结合附图和具体实施例对本申请作进一步详细说明。
[0036] 实施例
[0037] 如图1所示,本发明提供一种基于卷积神经网络以及树与哈希结合索引的图像检索方法,主要步骤包括:采集图像库,并对图像库训练一个卷积神经网络模型;对卷积神经网络模型进行特征提取得到特征库;采用基于树与哈希结合的索引方法对特征库建立索引;根据索引内的特征向量v进行检索,得到Top-n结果。
[0038] 具体实施方式分成两部分,一个是离线部分,另外一个是在线部分。离线部分主要是训练特征提取模型和构建基于树与哈希结合索引方法的索引。而在线部分则是正常的使用流程。
[0039] 如图7所示,首先是离线部分。首先是根据图片数据库CIFAR10的训练集训练一个卷积神经网络模型(CIFAR10数据库有50000张包括10个类别的图片作为训练集,10000张图片作为测试集),CIFAR10数据库中的所有图片大小均为3*32*32,其中3表示3个颜色通道,32*32为图片的尺寸。然后开始训练M1模型,如图7的(a)所示。其中卷积神经网络模型M1的具体参数如下表,M1模型的示意图如图2所示。
[0040]层名称 参数 输出大小
Conv1 5*5,16,stride 1 16*28*28
Conv2 3*3,32,stride1 32*26*26
Conv3 3*3,32,stride 1 32*24*24
Conv4 3*3,64,stride 2 64*11*11
Avg pool 5*5 64*7*7
Fc1   3136
Fc2   1024
Fc3   10
[0041] 其中Fc3为最终的输出层,即对应于数据集中的10个类别。
[0042] 训练好M1模型之后,需要将其改造成M2以适用于特征提取。其中M2的具体参数如下表:
[0043]
[0044]
[0045] 由上表可以看到,M2只是在M1的基础上去掉了最后一层,M2模型的示意图如图3所示。
[0046] 得到M2之后,首先要对CIFAR10数据库中的50000张训练集图片重新做特征提取,该过程如图7的(b)所示,得到每张训练集中的图片对应的一个1024维的特征向量,如下表所示:
[0047]图片序号 特征向量
P1 [f1,f2,f3,...,f1024]
P2 [f1,f2,f3,...,f1024]
... ...
Pn [f1,f2,f3,...,f1024]
... ...
P50000 [f1,f2,f3,...,f1024]
[0048] 得到每张人脸对应的特征向量之后,就可以开始构造基于树与哈希结合索引方法的索引了。即可以开始进行图7所示离线部分的(c)了。由于基于树与哈希结合索引方法由两部分构成,所以这里首先介绍这种索引方法的整体结构然后按照操作的顺序分别对这两部分进行说明。
[0049] 首先是整体结构,如图6所示,该索引是一个树形结构,其中的非叶子节点中包括两个部分,一个是切分维度和对应的切分值,即对于特征库按照该维度的切分值进行切分,小于该值的划分到左子树中,否则划分到右子树中,另外一个就是两个指向子节点的指针。然后每个叶子节点包含了经过划分后得到的特征库子集。然后对于每个叶子节点中的每个特征库子集分别建立基于哈希的索引。这样一来在检索的时候先对检索的特征向量进行深度优先搜索,达到一个叶子节点,然后再通过该叶子节点建立好的哈希索引进行快速查找,由于在保证所有的叶子节点哈希后得到的“桶”的数据加起来与整个特征库使用哈希索引得到的“桶”的个数相近而且对特征向量进行深度优先搜索的时间消耗可以忽略不计,因此该方法相对于基于哈希的索引方法来说检索时间效率相差不大,而且通过树形结构的划分可以使得每个特征库子集的纯度更高,达到了检索效果更好的目的。下面分别对树的构造和叶子节点中的哈希索引构造分别进行说明。
[0050] 首先是树的构造。树的构造同决策树的构造一样,使用GINI指数对特征库进行空间上的划分。GINI指数的定义如式1-1所示,其中D代表数据集,n为数据集中包括的数据类别个数,pi表示第i个类别的数据总数占D中数据总数的比例。式1-2为数据集D经过index这个维度的indexValue这个值进行划分后的GINI指数,其中D1表示划分后的左子集,D2表示划分后的右子集。对于每一次划分,需要选择一个特征维度和一个该维度对应的值,使得特征库D经过该维度的该值划分后的GINI指数最低。所以每次划分就遍历特征库的每个特征维度和每个特征的值,然后通过该维度的该值进行划分,得到子集D1和D2,然后计算划分后的GINI指数,如果该GINI指数小于当前最优的GINI指数则将该GINI指数更新为当前最优GINI指数,该维度和该值更新为当前最优切分维度和切分值。这是一次划分,然后划分成左子集和右子集后,再分别根据左子集和右子集进行这个划分过程,直到达到了树的深度限制或者叶子节点的数据个数小于某个值,在CIFAR10这个包含50000个数据的特征库中,我们将树的深度限制为4,叶子节点中的数据个数下限设为6000.
[0051]
[0052]
[0053]
[0054]
[0055]
[0056] 上面是树结构的构建。然后是分别对每个叶子节点中的特征库子集构建哈希索引。这里使用E2LSH哈希索引方法。首先说明一下E2LSH的哈希函数,如式1-3所示,其中v为被哈希的特征向量,a为一个由正态分布产生的一个与v维度相同的随机向量,w为一个正实数,b为一个由均匀分布Unif(0,w)产生的一个实数。E2LSH哈希索引的结构如图4所示,将数据映射到L个哈希表中,其中每个哈希表包含了所有的数据,即数据被复制了L份。每个哈希表的结构如图5所示,其中tableSize为哈希表的大小,h1和h2为两个正整数值,这两个整数用作一个哈希“桶”的标号,h1和h2的计算公式如式1-4和1-5所示,其中(y1,y2,……,yk)为特征向量v经过k个哈希函数哈希后得到的k维向量,prime为一个素数,tableSize为一个正整数,代表哈希表的大小,r’和r”为两个由均匀分布Unif(0,prime-1)产生的随机k维整数向量。
[0057] E2LSH索引构造过程的伪代码如下:
[0058] 算法:E2LSH构造过程
[0059] 输入:特征库DataSet,LSH参数k,L,tableSize和prime
[0060] 输出:DataSet对应的E2LSH结构
[0061] 1.定义长度为L的哈希表数组HashTableList
[0062] 2.执行以下for循环
[0063] for i=1 to L
[0064] (1)随机生成k个E2LSH哈希函数,以及长度为k的整数向量r’和r”[0065] (2)通过(1)中生成的k个哈希函数,将DataSet中的每个样本进行哈希映射,得到k维向量
[0066] (3)将LSH参数prime、tableSize、r’、r”和(2)中得到的k维向量作为参数,根据h1和h2的计算公式分别计算每个样本对应的h1和h2值,以h1和h2值作为一个“桶”的编号,将特征向量放入对应的“桶”中。
[0067] (4)将每个样本对应的h1和h2值,以及(1)中生成的k个哈希函数和r’、r”、prime以及tableSize整合成一个哈希表结构HashTable,并将HashTable加入HashTableList中。
[0068] 3.返回HashTableList
[0069] E2LSH检索过程的伪代码如下:
[0070] 算法:E2LSH检索过程
[0071] 输入:检索的向量v,E2LSH结构HashTableList,需要返回的结果个数n[0072] 输出:Top-n结果
[0073] 1.定义一个候选集CandidateSet
[0074] 2.执行以下for循环
[0075] for i=1to L
[0076] (1)根据HashTableList[i]中的k个E2LSH哈希函数,对v进行哈希映射得到一个k维整数向量
[0077] (2)将HashTableList[i]中的参数prime、tableSize、r’、r”和(1)中得到的k维向量,通过h1和h2的计算公式计算向量v对应的h1和h2值
[0078] (3)根据(2)中得到的h1和h2,找到HashTableList[i]中对应的“桶”,对于“桶”中的特征向量,若还未出现在CandidateSet中,则将其加入CandidateSet
[0079] 3.对于CandidateSet中的所有特征向量,计算其与向量v的欧式距离,并根据距离按照升序排序,返回前n个结果。
[0080] 在本例中,E2LSH的参数如下表所示:
[0081] 参数 参数值L 5
k 64
prime 23
tableSize 19
[0082] 以上是离线部分,接下来是在线部分。如图7所示,对于CIFAR10的10000张测试集中的每张图片,以其作为输入,首先通过M2模型进行特征提取得到特征向量v,然后通过离线部分构建好的基于树与哈希结合索引方法的索引对特征向量v进行检索,即经过深度优先搜索到达叶子节点后,以n为参数调用叶子节点中的E2LSH索引检索过程,得到Top-n结果。
[0083] 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解的是,在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种等效的变化、修改、替换和变型,本发明的范围由所附权利要求及其等同范围限定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈