一种基于多层特征表示的实例级图像搜索方法

文档序号:9810742阅读:468来源:国知局
一种基于多层特征表示的实例级图像搜索方法
【技术领域】
[0001] 本发明涉及图像处理技术邻域,尤其涉及一种基于多层特征表示的实例级图像搜 索方法。
【背景技术】
[0002] 最近十年内,实例级别的图像搜索引起了很大的关注,可以把该问题简单描述为 给出一张实物图像,让你从数据集中找到相同实物的不同图像或接近物体的图像。该问题 的兴起主要由于网购时消费者的一种需求,消费者希望上传一张物体图像,便能在网站上 显示出同种图像的销售信息,如阿里的拍立淘便是基于此需求而开发的,但实际上到目前 为止,用户体验效果依然不好,主要由于以下几个原因:
[0003] 网站上的图像多是含有背景或者水印的图像,干扰因素较大,同时用户上传的图 像也是各种姿势,有时上传的图像中物体较小,甚至不在图像的中央,或者大部分被其他事 物所覆盖,只显示出一部分,如发圈这类饰品,图像中很可能包含了人的头发等事物,加大 了搜索难度。
[0004] 实例级别的图像搜索注重局部特征,例如图像上的商标等特征,这些是人类判断 事物的一个重要标准,但是在类别级图像搜索的时候,提取出来的特征更多的是注重类别 特征而非局部特征,这就要求修改算法,使得提取出来的特征中类别特征为主,局部特征为 辅,两者兼具。
[0005] 实例级别的图像搜索,在搜索时最好的结果是同一类的同一件商品的不同图像, 其次是同一件商品的不同颜色的图像或者有细微的差别,再其次才是同一类商品的不同图 像,因此不仅要对类间图像进行区分,同时也要求对于类内的物品也进行区分。
[0006] 传统的图像搜索算法采用的大多是手选识别特征的方式,例如SIFT算法,词袋 (Bow)算法,局部特征聚合描述符(VLAD)算法,或者Fi sher向量(FV)算法和它们的变形。还 有一些相关算法用于改进图像搜索的效果,例如利用Root-SIFT提高SIFT算法的判别能力, 用PCA,白化,signed square root(SSR)算法提高特征提取的泛化能力。图像搜索的效果被 单个特征表示所限制,Multi-VLAD构造的单个图像的多个表示明显取得了更好的效果。
[0007] 近几年,由于深度神经网络的广泛应用,尤其是卷积神经网络(CNN)的应用,在图 像视觉领域的多个任务中都取得了突破性的进展,例如图像分类,目标检测等。通过训练多 层卷积神经网络,人发现卷积神经网络对于学习非线性特征具有较好的鲁棒性,它不仅能 发现人们可以手动区分的特征,更能够从图像中发现一些不了解的但又非常重要的高层特 征,卷积神经网络也已经被人们应用于图像搜索当中,并取得优异的成绩。
[0008] 常用的分类特征通常是取的深度卷积神经网络的最后一个全相连层的特征,但该 层的特征对于实例级别的图像搜索来说过于泛化,以至于缺少判别力,它更多的是拥有类 别特征,用于判别物体的不同类别,而对于类内的差别则很难判断出来。最近的一些研究指 出,中间层的特征对于类内区别有更好的区分效果,但是选择中间层更像是在局部特征和 类别特征中的一种权衡,能表示出两者的部分信息,但都不完全,因此最好的方式还是找到 一种方法综合这两者。在本文中,会提出一种新的基于卷积神经网络的特征融合的方法来 解决这个问题。
[0009]而且在卷积神经网络中包含了一种重要的结构一一池化。对于类内信息的区分, 背景的影响变得更加的重要,在提取特征的同时,利用不同池化方式对图像的不同影响,即 混合池化的方法,以降低背景对图像的影响。
[0010]同时,由于不同损失函数会产生不同效果的训练特征,结合softmax和triplet损 失函数的优点,提出一个了多任务学习结构,以帮助更好的学习一个实例级别的特征表示。 在研究中,发现t r i p 1 e t损失函数对于物体之间的区分拥有很好的效果,这是s 〇 f t m a X损失 函数所不能提供,但tr ip 1 et损失函数对于特征的泛化能力表现发面又不如sof tmax,因此 两者缺一不可。
[0011]在阿里巴巴举办的图像搜索大赛中测试了提出的方法,该比赛主要比较的是每张 查询图像前20的查询结果,最终在比赛的数据集上的MAP值为41.9%,并取得了第三名的成 绩。

【发明内容】

[0012] 针对现有技术中存在的缺陷或不足,本发明所要解决的技术问题是:提供一种基 于多层特征表示的实例级图像搜索方法,利用深度神经网络训练,进行多任务基于实例的 图像搜索,使之有效的找到相同物品的不同图像。
[0013] 为了实现上述目的,本发明采取的技术方案为提供一种基于多层特征表示的实例 级图像搜索方法,包括以下步骤:
[0014] (1)抽取多层特征:运用多层特征融合的方法,从输入图像中的inception模块提 取出单层特征;
[0015] ⑵进行编码学习(以GoogLeNet网络为例),包括以下步骤:
[0016] (21)对数据进行降维:在每个inception层的后面进行平均池化和1x1的卷积,并 添加监督信号进单层特征编码训练;
[0017] (22)选择混合池化的输出特征作为输入图像的部分特征,混合池化包括最大池化 和平均池化,其连接得到的特征表示单层图像特征,最后得到特征长度为256的单层特征;
[0018] (23)选择输入图像中的inception模块的中间七层进行特征提取,产生7个256维 单层图像特征,并连接在一起产生最终的多层图像特征表;
[0019] (3)使用多损失函数进行训练:对于用于特征提取的每个inception模块,先通过 softmax来训练特征提取,降低数据维数;而后结合triplet损失函数训练,使之在类间分类 上能取得更好的效果;
[0020] 作为本发明的进一步改进,所述Triplet损失函数的基本公式表示为:
[0021 ] Loss(Xi,Xi+,Xi-) =max(0,m+dist(Xi,Xi+,Xi-)_dist(Xi,Xi-))
[0022] 其中,Xl是给定的测试图像,Xl+是给定图像的正样例,选定的是当前事物的所有相 同物品的不同图像;ΧΓ是给定图像的负样例,负样例选定的是与当前物品不同的其他物品 图像;dist( .,.)表示的是两张图像特征之间的距离,计算特征之间的距离使用的是cosine 函数,参数m的值设为0.2。
[0023] 作为本发明的进一步改进,所述步骤(1)中获得的的多个单层特征经过编码学习 得到的特征表示用于之后triplet损失函数的单个图像的参数输入。
[0024]作为本发明的进一步改进,所述步骤(2)中的特征提取包括预训练和微调,预训练 阶段只进行图像特征提取并进行类类别程度的分类,在微调阶段才加上triplet损失函数, 强化类内不同物体的区分能力。
[0025]作为本发明的进一步改进,所述预训练阶段的损失函数是基本的softmax损失函 数,而在微调阶段,损失函数改为softmax损失函数和triplet损失函数的权重之和,如下列 公式所示:
[0026]
其中λ = 〇·5,损失函数中的sof tmax的值是sof tmax-1的输出结果。
[0027]作为本发明的进一步改进,所述步骤(3)后还有步骤(4):进行测试,寻找图像的最 优解,计算测试图像与训练图像特征之间的距离,即cosine值,距离越小的,则被认为与测 试图形越接近。
[0028]本发明的有益效果是:
[0029] 1.利用深度神经网络训练,进行多任务基于实例的图像搜索,使之有效的找到相 同物品的不同图像。
[0030] 2.提出一种编码学习的方法,使得提取的特征更具有鲁棒性,使之同时兼具局部 特征和类别特征。
[0031] 3.提出一种多任务的联合利用softmax和triplet的损失函数提取特征,既能使特 征拥有很好的泛化性能,也能使特征很好的用于区分类间图像以及类内不同事物的图像。 [0032] 4.在使用triplet损失函数之前先使用混合池化,降低背景和噪声数据对特征的 影响,增强分类效果。
【附图说明】
[0033] 图1是本发明特征抽取过程图;
[0034] 图2是本发明混合池化示意图;
[0035] 图3是本发明的对数据进行降维表;
[0036]图4是本发明预训练与微调所需要的网络架构图。
【具体实施方式】
[0037]下面结合【附图说明】及【具体实施方式】对本发明进一步说明。
[0038]如图1所示,本发明的一种基于多层特征表示的实例级图像搜索,具备包括:
[0039] 一、多层基本特征
[0040]网络架构是建立在现有的分类神经网络的基础之上的,例如VGG-16,GoogLeNet, 相比于G〇〇gLeNet,VGG-16拥有更多的参数,训练网络的时间需要更长,因此在本文中主要 以GoogLeNet为例,说明多层特征融合的方法。
[0041 ] GoogLeNet输入图像的大小为224x224,输入层连接了多个卷积层,和9个 incept ion模块,incept ion模块由1x1,3x3,5x5这些小的卷积组成,最后是全相连层, softmax层,主要融合的就是部分inception模块提取出来的中间特征。
[0042]现有的神经网络主要是为了分类而设计的,常用网络最后一层全相连层作为图像 抽取得到
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1