首页 / 专利库 / 人工智能 / 相似性得分 / 一种实现同时定位和哈希的细粒度图像检索方法

一种实现同时定位和哈希的细粒度图像检索方法

阅读:434发布:2020-05-16

专利汇可以提供一种实现同时定位和哈希的细粒度图像检索方法专利检索,专利查询,专利分析的服务。并且本 发明 提供一种实现同时 定位 和哈希的细粒度图像检索方法,该方法通过同时哈希和定位,可以更好地学习到输入图像的判别性区域以及融合不同尺度的输入信息,提升检索的 精度 ,此外,方法中的哈希和定位模 块 可以以一种相互促进的方式实现共同训练,并且可以避免传统方法中的人工 抽取 图像特征,实现了端到端的训练,并且检索的精度大大提升。,下面是一种实现同时定位和哈希的细粒度图像检索方法专利的具体信息内容。

1.一种实现同时定位和哈希的细粒度图像检索方法,其特征在于,包括以下步骤:
S1:对于一张输入的细粒度图片,首先将其通过共享的特征提取器ResNet-18提取出图像特征,ResNet-18最后一层卷积层的输出的512x7x7的特征作为定位模的输入;
S2:定位模块中包含了卷积操作,在不同尺度的特征上预测候选框的得分,每个得分对应原图上的一个候选框,三个不同层的特征图大小分别是7x7、4x4、2x2,对应着原图中锚点anchor的数目,按照Region Proposal Net(RPN)的做法,原图中的每个锚点都取了9个候选框,因此共有9x7x7+9x4x4+9x2x2个候选框;
S3:根据S2中定位模块得到的候选框的预测评分对每个尺度的候选框做非极大值抑制NMS,最后三个尺度都分别剩下A个候选框;
S4:在S3中每个尺度的A个候选框选得分最高的那个候选框在原输入图片上所对应的区域作为关键的判别性区域,因为共有三个尺度因此最后得到3个不同尺度的判别性区域;
S5:将3个判别性区域通过双线性插值的方式统一放缩到112x112的大小,然后通过共享的特征提取器ResNet-18提取出3个特征向量
S6:把S5提取到的3个关键区域的特征向量加上S1得到的原图的特征向量共四个特征向量作为哈希模块的输入;
S7:哈希模块中的分类器接受4个特征向量,然后对他们再列方向上做最大池化,得到一个特征向量,然后这个特征相量用于计算交叉熵损失函数,此外,哈希模块的ranker接受
4个特征向量作为输入,然后将他们通过一个控单元gated unit用于融合不容尺度、不同关键区域的信息,得到一个特征向量,这个特征向量进而生成图像的哈希码;
S8:对数据库中每张细粒度的图像通过S1~S7生成哈希码并保存下来,对每张查询图像也通过同样过程计算哈希码,然后通过计算查询图像的哈希码和数据库哈希码的相似性对数据库图像进行排序,排在前面的图像即和查询图像相似的图像。
2.根据权利要求1所述的实现同时定位和哈希的细粒度图像检索方法,其特征在于,所述步骤S3中A取值为6。
3.根据权利要求2所述的实现同时定位和哈希的细粒度图像检索方法,其特征在于,所述步骤S7中,哈希模块中的分类器接受4个特征向量,然后对他们再列方向上做最大池化,得到一个特征向量,然后这个特征相量用于计算交叉熵损失函数,此外分类器在训练中还会计算候选框的分类置信度,然后作为监督信息返回给定位模块进行训练,另一方面哈希模块的ranker接受4个特征向量作为输入,然后将他们通过一个门控单元gated unit用于融合不容尺度、不同关键区域的信息,得到一个特征向量,然后通过这个特征向量来计算相似性保持损失函数,此外也通过这个特征来得到图像的哈希码表示,该步骤包括了模型训练过程的损失函数,具体可分为三部分:分类器的损失函数的训练,损失函数是ranker的损失函数的训练,损失函数是定位模块部分的损失函数的训练。
4.根据权利要求3所述的实现同时定位和哈希的细粒度图像检索方法,其特征在于,分类器的损失函数的训练的过程是:
设有N个候选区域,图像共有C类,这N个图像都输入分类网络,得到一个N×C的概率矩阵P,然后对P做列方向的最大池化,有:
最后的分类损失函数是对最大池化得到的向量求交叉熵损失:
5.根据权利要求4所述的实现同时定位和哈希的细粒度图像检索方法,其特征在于,损失函数是ranker的损失函数的训练的过程是:
输入的4个特征向量即1个原图和3个关键区域,先通过门控单元进行特征融合,门控单元对输入作如下处理:
h0=tanh(W0f0+b0)
h1=tanh(W1f1+b1)
h2=tanh(W2f2+b2)
h3=tanh(W3f3+b3)
C=[f0;f1;f2;f3]
h=h0*z0+h1*z1+h2*z2+h3*z3
门控单元输出h是融合后的特征向量,最后ranker的损失函数是三元组损失函数,如下:
其中代表三元组,图片a和图片m更相似,图片c和图片a不相识,是负样本。
6.根据权利要求5所述的实现同时定位和哈希的细粒度图像检索方法,其特征在于,损失函数是定位模块部分的损失函数的训练过程是:
定位模块没有用到作为ground-truth的边框来训练,而是通过分类器的反馈进行训练,具体来说对每个尺度定位模块预测H×W×R个边框的得分,然后通过非极大值抑制NMS选出一部分候选区域输入特征分类器得到分类的置信度,然后将选出置信度最大的那个框k:
k=arg max{P(1,Y),P(2,Y),…,P(N,Y)}
然后损失函数定义如下:
其中V=[V(1),V(2),…,V(N)]是定位模块输出的每个框的评分。

说明书全文

一种实现同时定位和哈希的细粒度图像检索方法

技术领域

[0001] 本发明涉及图像处理算法领域,更具体地,涉及一种实现同时定位和哈希的细粒度图像检索方法。

背景技术

[0002] 浏览图片。这使得如何高效地检索图片成为一个越来越受关注的问题。基于内容的图像检索(CRIR)的目标是高效、准确地从大规模的数据库中检索出与查询(图片或文字)最相关的视觉内容。
[0003] 自从上世纪90年代开始,图像检索就引起了学术界以及工业界的广泛关注,而在各种检索方法中哈希类方法以其高效性而成为一类重要技术。从模型的深浅看,图像哈希技术可大致分为传统方法和基于深度网络的方法。传统方法一般需要人工提取图像的特征(比如SIFT特征),然后基于这些特征来设计算法,这类算法的由于需要人工设计的特征提取的方法难以提取到图像的一个很好的表示而不能达到非常好的检索效果。而自从2012年AlexNet在ImageNet图像识别比赛上取得优异的成绩以来,深度学习在在各个领域得到了广泛的运用和发展,图像检索也不例外,与深度学习结合的图像哈希方法被称为基于深度网络的方法,这类方法直接通过深度神经网络来提取图像的特征,从而避免了人工提取特征,实现了端到端的训练,并且深度学习技术的引入使得图像检索的精确度大大地提升。目前基于深度网络的方法已经成为学术界以及工业界重点关注的技术。
[0004] 从图像类别之间的差异的大小来看,图像检索又可分为普通(粗粒度)图像检索和细粒度图像检索。粗粒度是指不同类别的图像之间差异明显(比如狗和猫),一般情况下的图像数据库是粗粒度的。而细粒度是指不同类别的的图像之间差异不明显(比如都是狗,只是狗的品种不同)。相比粗粒度,细粒度的图像检索难度更大。直接运用普通的为粗粒度图像设计的方法来进行细粒度的检索一般不能达到非常好的效果。因此需要针对细粒度的任务设计一些专的算法,这时一般需要同时考虑不同尺度的特征以及寻找图像的关键区域等。
[0005] 传统的图像哈希方法大多需要人工提取图像特征,在精确度上存在较大的不足,这时由于人工提取的特征难以很好的表示图片信息。且人工设计提取特征的方法需要专家进行大量的实验,难度较大。
[0006] 深度学习的引入使得图像检索的精确度得到了巨大的提升,并且避免了人工提取特征的复杂步骤,实现了端到端的之间训练和检索。相比传统的方法,基于深度网络的哈希方法有了很大的进步。但是通常的深度哈希方法适用于粗粒度的数据库,对于细粒度的图像不能达到很好的检索效果。这是由于这些方法都是直接对整张图片进行处理,没有很好地关注到不同尺度的特征,也没有去挖掘图片上的判别区域,而细粒度的图像的不通类别之间的差异就体现在很多细微的地方。
[0007] 细粒度图像的相关任务近两年开始受到关注,然而目前大多数的工作集中在图像分类任务上,在图像检索领域的研究还较少。目前能找到的一些细粒度图像检索工作虽然有尝试去融合不同尺度的特征或者寻找关键区域,但是他们只是考虑融合网络的不同层的输出或是学习一个权重与原图相乘,做法都还比较直接和简单,效果也不是非常好。

发明内容

[0008] 本发明提供一种可提升检索的精度实现同时定位和哈希的细粒度图像检索方法。
[0009] 为了达到上述技术效果,本发明的技术方案如下:
[0010] 一种实现同时定位和哈希的细粒度图像检索方法,包括以下步骤:
[0011] S1:对于一张输入的细粒度图片,首先将其通过共享的特征提取器ResNet-18提取出图像特征,ResNet-18最后一层卷积层的输出的512x7x7的特征作为定位模的输入;
[0012] S2:定位模块中包含了卷积操作,在不同尺度的特征上预测候选框的得分,每个得分对应原图上的一个候选框,三个不同层的特征图大小分别是7x7、4x4、2x2,对应着原图中锚点anchor的数目,按照Region Proposal Net(RPN)的做法,原图中的每个锚点都取了9个候选框,因此共有9x7x7+9x4x4+9x2x2个候选框;
[0013] S3:根据S2中定位模块得到的候选框的预测评分对每个尺度的候选框做非极大值抑制NMS,最后三个尺度都分别剩下A个候选框;
[0014] S4:在S3中每个尺度的A个候选框选得分最高的那个候选框在原输入图片上所对应的区域作为关键的判别性区域,因为共有三个尺度因此最后得到3个不同尺度的判别性区域;
[0015] S5:将3个判别性区域通过双线性插值的方式统一放缩到112x112的大小,然后通过共享的特征提取器ResNet-18提取出3个特征向量
[0016] S6:把S5提取到的3个关键区域的特征向量加上S1得到的原图的特征向量共四个特征向量作为哈希模块的输入;
[0017] S7:哈希模块中的分类器接受4个特征向量,然后对他们再列方向上做最大池化,得到一个特征向量,然后这个特征相量用于计算交叉熵损失函数,此外,哈希模块的ranker接受4个特征向量作为输入,然后将他们通过一个门控单元gated unit用于融合不容尺度、不同关键区域的信息,得到一个特征向量,这个特征向量进而生成图像的哈希码;
[0018] S8:对数据库中每张细粒度的图像通过S1~S7生成哈希码并保存下来,对每张查询图像也通过同样过程计算哈希码,然后通过计算查询图像的哈希码和数据库哈希码的相似性对数据库图像进行排序,排在前面的图像即和查询图像相似的图像。
[0019] 优选地,所述步骤S3中A取值为6。
[0020] 进一步地,所述步骤S7中,哈希模块中的分类器接受4个特征向量,然后对他们再列方向上做最大池化,得到一个特征向量,然后这个特征相量用于计算交叉熵损失函数,此外分类器在训练中还会计算候选框的分类置信度,然后作为监督信息返回给定位模块进行训练,另一方面哈希模块的ranker接受4个特征向量作为输入,然后将他们通过一个门控单元gated unit用于融合不容尺度、不同关键区域的信息,得到一个特征向量,然后通过这个特征向量来计算相似性保持损失函数,此外也通过这个特征来得到图像的哈希码表示,该步骤包括了模型训练过程的损失函数,具体可分为三部分:分类器的损失函数的训练,损失函数是ranker的损失函数的训练,损失函数是定位模块部分的损失函数的训练。
[0021] 进一步地,分类器的损失函数的训练的过程是:
[0022] 设有N个候选区域,图像共有C类,这N个图像都输入分类网络,得到一个N×C的概率矩阵P,然后对P做列方向的最大池化,有:
[0023]
[0024] 最后的分类损失函数是对最大池化得到的向量求交叉熵损失:
[0025]
[0026] 进一步地,损失函数是ranker的损失函数的训练的过程是:
[0027] 输入的4个特征向量即1个原图和3个关键区域,先通过门控单元进行特征融合,门控单元对输入作如下处理:
[0028] h0=tanh(W0f0+b0)
[0029] h1=tanh(W1f1+b1)
[0030] h2=tanh(W2f2+b2)
[0031] h3=tanh(W3f3+b3)
[0032] C=[f0;f1;f2;f3]
[0033] z0=σ(Wz0C+bz0)
[0034] z1=σ(Wz1C+bz1)
[0035] z2=σ(Wz2C+bz2)
[0036] z3=σ(Wz3C+bz3)
[0037] h=h0*z0+h1*z1+h2*z2+h3*z3
[0038] 门控单元输出h是融合后的特征向量,最后ranker的损失函数是三元组损失函数,如下:
[0039]
[0040] 其中代表三元组,图片a和图片m更相似,图片c和图片a不相识,是负样本。
[0041] 进一步地,损失函数是定位模块部分的损失函数的训练过程是:
[0042] 定位模块没有用到作为ground-truth的边框来训练,而是通过分类器的反馈进行训练,具体来说对每个尺度定位模块预测H×W×R个边框的得分,然后通过非极大值抑制NMS选出一部分候选区域输入特征分类器得到分类的置信度,然后将选出置信度最大的那个框k:
[0043] k=argmax{P(1,Y),P(2,Y),…,P(N,Y)}
[0044] 然后损失函数定义如下:
[0045]
[0046] 其中V=[V(1),V(2),…,V(N)]是定位模块输出的每个框的评分。
[0047] 与现有技术相比,本发明技术方案的有益效果是:
[0048] 本发明通过同时哈希和定位,可以更好地学习到输入图像的判别性区域以及融合不同尺度的输入信息,提升检索的精度,此外,方法中的哈希和定位模块可以以一种相互促进的方式实现共同训练,并且可以避免传统方法中的人工抽取图像特征,实现了端到端的训练,并且检索的精度大大提升。附图说明
[0049] 图1为本发明方法模型的一个示意图;
[0050] 图2为整个模型的结构图以及模块之间的交互和共同训练的方式示意图;
[0051] 图3是MAP的结果图。

具体实施方式

[0052] 附图仅用于示例性说明,不能理解为对本专利的限制;
[0053] 为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
[0054] 对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0055] 下面结合附图和实施例对本发明的技术方案做进一步的说明。
[0056] 如图1-2所示,一种实现同时定位和哈希的细粒度图像检索方法,包括以下步骤:
[0057] S1:对于一张输入的细粒度图片,首先将其通过共享的特征提取器ResNet-18提取出图像特征,ResNet-18最后一层卷积层的输出的512x7x7的特征作为定位模块的输入;
[0058] S2:定位模块中包含了卷积操作,在不同尺度的特征上预测候选框的得分,每个得分对应原图上的一个候选框,三个不同层的特征图大小分别是7x7、4x4、2x2,对应着原图中锚点anchor的数目,按照Region Proposal Net(RPN)的做法,原图中的每个锚点都取了9个候选框,因此共有9x7x7+9x4x4+9x2x2个候选框;
[0059] S3:根据S2中定位模块得到的候选框的预测评分对每个尺度的候选框做非极大值抑制NMS,最后三个尺度都分别剩下A个候选框;
[0060] S4:在S3中每个尺度的A个候选框选得分最高的那个候选框在原输入图片上所对应的区域作为关键的判别性区域,因为共有三个尺度因此最后得到3个不同尺度的判别性区域;
[0061] S5:将3个判别性区域通过双线性插值的方式统一放缩到112x112的大小,然后通过共享的特征提取器ResNet-18提取出3个特征向量;
[0062] S6:把S5提取到的3个关键区域的特征向量加上S1得到的原图的特征向量共四个特征向量作为哈希模块的输入;
[0063] S7:哈希模块中的分类器接受4个特征向量,然后对他们再列方向上做最大池化,得到一个特征向量,然后这个特征相量用于计算交叉熵损失函数,此外,哈希模块的ranker接受4个特征向量作为输入,然后将他们通过一个门控单元gated unit用于融合不容尺度、不同关键区域的信息,得到一个特征向量,这个特征向量进而生成图像的哈希码;
[0064] S8:对数据库中每张细粒度的图像通过S1~S7生成哈希码并保存下来,对每张查询图像也通过同样过程计算哈希码,然后通过计算查询图像的哈希码和数据库哈希码的相似性对数据库图像进行排序,排在前面的图像即和查询图像相似的图像。
[0065] 步骤S3中A取值为6。
[0066] 步骤S7中,哈希模块中的分类器接受4个特征向量,然后对他们再列方向上做最大池化,得到一个特征向量,然后这个特征相量用于计算交叉熵损失函数,此外分类器在训练中还会计算候选框的分类置信度,然后作为监督信息返回给定位模块进行训练,另一方面哈希模块的ranker接受4个特征向量作为输入,然后将他们通过一个门控单元gated unit用于融合不容尺度、不同关键区域的信息,得到一个特征向量,然后通过这个特征向量来计算相似性保持损失函数,此外也通过这个特征来得到图像的哈希码表示,该步骤包括了模型训练过程的损失函数,具体可分为三部分:分类器的损失函数的训练,损失函数是ranker的损失函数的训练,损失函数是定位模块部分的损失函数的训练。
[0067] 分类器的损失函数的训练的过程是:
[0068] 设有N个候选区域,图像共有C类,这N个图像都输入分类网络,得到一个N×C的概率矩阵P,然后对P做列方向的最大池化,有:
[0069]
[0070] 最后的分类损失函数是对最大池化得到的向量求交叉熵损失:
[0071]
[0072] 损失函数是ranker的损失函数的训练的过程是:
[0073] 输入的4个特征向量即1个原图和3个关键区域,先通过门控单元进行特征融合,门控单元对输入作如下处理:
[0074] h0=tanh(W0f0+b0)
[0075] h1=tanh(W1f1+b1)
[0076] h2=tanh(W2f2+b2)
[0077] h3=tanh(W3f3+b3)
[0078] C=[f0;f1;f2;f3]
[0079] z0=σ(Wz0C+bz0)
[0080] z1=σ(Wz1C+bz1)
[0081] z2=σ(Wz2C+bz2)
[0082] z3=σ(Wz3C+bz3)
[0083] h=h0*z0+h1*z1+h2*z2+h3*z3
[0084] 门控单元输出h是融合后的特征向量,最后ranker的损失函数是三元组损失函数,如下:
[0085]
[0086] 其中代表三元组,图片a和图片m更相似,图片c和图片a不相识,是负样本。
[0087] 损失函数是定位模块部分的损失函数的训练过程是:
[0088] 定位模块没有用到作为ground-truth的边框来训练,而是通过分类器的反馈进行训练,具体来说对每个尺度定位模块预测H×W×R个边框的得分,然后通过非极大值抑制NMS选出一部分候选区域输入特征分类器得到分类的置信度,然后将选出置信度最大的那个框k:
[0089] k=argmax{P(1,Y),P(2,Y),…,P(N,Y)}
[0090] 然后损失函数定义如下:
[0091]
[0092] 其中V=[V(1),V(2),…,V(N)]是定位模块输出的每个框的评分。
[0093] 在CUB-200-2011和Standford Dogs这两个公开的细粒度数据集上进行了实验,其中CUB-200-2011是一个包含200种类的数据集,Standford Dogs是包含120种狗的数据集,实验中对每个数据集中的每一类都是随机选出500张作为训练集,剩下的所有图片作为测试集和检索数据库。此我们还将本发明的方法和当前的一些其他检索方法进行了对比,这些方法包括非深度的哈希方法、普通(粗粒度)的深度哈希方法、细粒度的深度哈希方法。其中非深度的哈希方法包括:LSH、SH、ITH、MLH、CCA-ITQ;普通(粗粒度)的哈希方法有:
DPSH、HashNet、DSH、DTH;细粒度的深度哈希方法是FPH。实验中采用MAP、Precision with Hamming radius 3、precision-recall curve、Precision w.r.t.top-N等衡量指标来判断方法的检索性能。MAP的结果如图3所示。
[0094] 相同或相似的标号对应相同或相似的部件;
[0095] 附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;
[0096] 显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
高效检索全球专利

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

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

申请试用

分析报告

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

申请试用

QQ群二维码
意见反馈