细粒度图像分类方法与流程

文档序号:16539047发布日期:2019-01-08 20:10阅读:4671来源:国知局
细粒度图像分类方法与流程

本发明涉及图像分类技术领域,尤其涉及一种细粒度图像分类方法。



背景技术:

细粒度图像分类在近几年间获得了广泛的关注,其目标为区分一个基本类别下的众多子类。由于细粒度级别的信息对于理解物体细节更加重要,细粒度图像分类技术比传统图像分类具有更加广阔的应用前景。

作为传统目标识别的一个子类,细粒度图像分类的难点在于如何识别出不同子类别图像间细微的差别。在众多细粒度图像分类方法中,双线性池化被广泛的运用于提取图像高阶信息。通过外积的重组方式,双线性池化能够将基础网络的一阶特征映射成更高阶的特征,从而显式地表达出更多的图像细节信息。然而目前的方法都不合理地将固定的高阶池化运用于所有的图像样本,没有考虑样本之前的差异性。除此之外,图像中不同区域的不同信息量导致了同一高阶池化对不同区域也有着不同的效果。



技术实现要素:

本发明的目的是提供一种细粒度图像分类方法,可以提高细粒度图像分类的准确率。

本发明的目的是通过以下技术方案实现的:

一种细粒度图像分类方法,包括:

利用特征提取器提取输入图像的特征;

利用两个特征映射函数对提取到的特征做映射操作,并利用双线性池化或者核化的双线性池化将这两个映射操作结果组合成更高阶的最终图像表达;其中一个映射操作能够根据图像内容预测一个最优的池化阶数,另一个映射操作能够对图像中的每一个像素点预测一个重要性权重;

利用分类器对所述最终图像表达进行分类,从而实现对输入图像的分类。

由上述本发明提供的技术方案可以看出,一方面,能够对每一张输入图像学习到一个特定阶数的池化策略,来解决样本异质性的问题,另一方面,能够学习到图像中哪些区域包含更有价值的信息,解决的是区域异质性问题;该方案在三个广泛使用的基准数据集中都取得了当前最好的结果。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。

图1为本发明实施例提供的一种细粒度图像分类方法的流程图;

图2为本发明实施例提供的实现细粒度图像分类方法的网络结构示意图;

图3为本发明实施例提供的自适应双线性池化的三种实现方式的示意图。

具体实施方式

下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。

本发明实施例提出一种细粒度图像分类方法,其步骤如图1所示,相应的网络结构如图2所示,该方法的主要步骤如下:

步骤1、利用特征提取器提取输入图像的特征。

本发明实施例中,所述特征提取器可以通过卷积神经网络实现,所述卷积神经网络包含多组卷积层结构,每组卷积层结构中包含多个卷积层和relu激活函数;组与组之间设有一个最大池化层,每组卷积块层内部卷积层的卷积核数量一样,并且随着网络的加深,不同组的卷积核数量会依次递增,将最后一个卷积层输出的特征作为特征提取器的特征提取结果。

示例性的,特征提取器可以通过cnn模型实现,包括vgg-16或resnet-101。例如vgg-16包含五组卷积层结构,每组结构中包含2-3个卷积层和relu激活函数。组与组之间插入一个最大池化层来降低特征维度和扩大感受野。每组卷积块层内部的卷积核数量一样,并且随着网路的加深,不同组的卷积核数量会依次递增。在vgg-16结构里,五组卷积结构的输出特征的通道数可以依次设置为:64,128,256,512,512。随着特征通道数目的增多,以及特征的空间维度变小,网络提取到的特征也包含了更高层语义上的信息。最后vgg-16输出的最后一个卷积层特征作为特征提取结果xi。

步骤2、利用两个特征映射函数对提取到的特征做映射操作,并利用双线性池化或者核化的双线性池化将这两个映射操作结果组合成更高阶的最终图像表达。

本发明实施例中,其中一个映射操作能够根据图像内容预测一个最优的池化阶数,而另一个映射操作能够对图像中的每一个像素点预测一个重要性权重。具体来说,利用p-orderlearning对给定的特征推断出一个最优的池化阶数pi。利用spatialattentionlearning学习一个向量ωi来帮助模型去挑选哪些区域的特征最具有区分性。

这两个特征映射函数分别记为fp与fs;fp、fs分别对应的通过p-net(p网络)、s-net(s网络)实现。

p-net和s-net共有三种组合方式,分别对应图3中的:(a)对称双路结构,p-net和s-net分别放置在双线性池化输入的两个输入端;(b)非对称结构,p-net和s-net都放置在同一路输入中;(c)s-net放置在双线性池化的输出位置。根据乘法交换律,图3中的三种组合方式在用原始的双线性池化会得到一样的结果。而当用核化的双线性池化时,结果却有很大的区别。因此通过实验验证选择最合适的一种网络结果,最后发现对称双路结构(图3(a))能同时与原始的和核化的双线性池化都兼容,并给出最好的结果。不仅如此,通过这种双路结构,p-net和s-net对输入图像生成的两种类型的特征能达到互补的效果,相应的结构也在图2所示的网络结构中示出。

前述步骤1所提取到的特征xi将分别进行两种映射操作,主要如下:

1)p-net中,通过一个全局平均池化层(gap)将提取到的特征xi映射成一个全局向量,再依次通过一个全连接层(fc)与relu激活函数将全局向量映射成数值pi,所述数值pi为针对提取到的特征xi预测的最优池化阶数,表示对每一个输入样本都预测了一个最优的高阶池化策略,最后利用数值pi对提取到的特征xi中的每一个元素进行指数操作(exp),作为fp映射后的特征,其表示为:

上式中是对提取到的特征xi的每个元素做指数操作。

2)s-net中,通过一个1×1的卷积层(conv)加上relu激活函数将提取到的特征xi映射成一个通道数为1的特征图;然后通过softmax操作将特征图进行归一化得到一个向量ωi,向量ωi表示了提取到的特征xi中的每一个像素位置的重要性程度,最后将向量ωi作为权重矩阵乘(mul)在提取到的特征xi上,作为fp映射后的特征其表示为:

fs(xi)=xidiag(ωi);

其中,diag·为对角化操作,其生成的对角矩阵中的对角线元素对应于向量中的元素。

需要主要的是,s-net中softmax的使用主要有两点原因:1.使用softmax能保证得到的向量ωi中的数值都较小,并且只有少部分大数值集中在最有区分性的区域内;2.使用softmax能抑制梯度爆炸的现象,从而使网络的训练更稳定。

本发明实施例提供的上述方案对每一副图像都学习一个特定的池化阶数,区别于传统技术中对所有样本使用固定的池化阶数,例如,对于一些内容简单,容易区分的图像来说,低阶的池化足以提取到足够的信息。而对于一些困难的样本来说,高阶的池化才有能力提取到具有分辨力的信息。另外由于与p-orderlearning互补,向量ωi能进一步使本发明的池化策略集中在那些富含信息量线索的区域,从而产生更鲁棒可靠的特征表达。

在后续池化过程中可以采用双线性池化(bilinearpooling)或核化的双线性池化(compactbilinearpooling),正是由于本发明实施例采用图3(a)中的对称双路结构,使我们的模型能同时对以上两种池化策略兼容,并达到更好的结果。

获得最终图像表达过程如下:利用双线性池化或者核化的双线性池化将这两个映射操作结果组合得到表达yi,然后将yi形变成一个高维向量,最后通过l2规则化,得到最终图像表达。

本领域技术人员可以理解,所述的高维向量是指向量的维度足够高或者满足指定的维度要求,例如,其维度可以是8192维。

假设利用双线性池化将这两个映射操作结果组合得到表达yi,其表示为:

步骤3、利用分类器对所述最终图像表达进行分类,从而实现对输入图像的分类。

由于本发明的任务是做细粒度图像分类,因此,由卷积神经网络、p-net与s-net组成的整个网络的目标损失函数采取softmax分类误差函数:

其中,yi表示真实的分类结果,即标签;ai表示网络输出层(整个网络的最后一层)的softmax的值。

另一方面,为了确保分类准确性,需要预先对整个网络进行训练;训练过程与之前介绍的步骤1~步骤3完全相同。

网络训练时,对训练集中的图像数据进行数据增广操作(例如,翻折,伸缩,随机裁剪等),并将数据打乱,再按照一定数量进行分批(例如batchsize=8),同时固定图像数据的尺寸大小(例如448*448);

采用用随机梯度下降法作为优化器来训练整个网络的参数,其学习率衰减策略选择指数型衰减,并设定初始学习率(例如设为0.01),同时,设定正则化操作中dropout的比率(例如设为1),以及l2惩罚项的系数数值(例如,设为0.0005);

对于网络中所有超参数的初始值,使用msra初始化方法,其原理为将网络中每层的权重参数初始化为满足的正态分布;其中n为相应网络层权重参数的个数;且网络中的正则化操作l2惩罚也是基于对网络参数的高斯先验假设对其进行惩罚,所以在端到端训练中该初始化方法会提高网络训练效率并提高网络性能。

此外,为了验证本发明实施例上述方案的效果,还在三个广泛使用的基准数据集中进行了验证实验。

在三个基准数据集为别为两个细粒度物体分类任务集(cub-200和car-196)与一个动作识别任何集(mpii)。这三个基准数据集数据划分如下:

1、cub-200:该数据集包含了来自200个鸟类别的11788张图片。整个数据集被划分为5994张训练图片和5794张测试图片。

2、car-196:该数据集包含来自196类车的16185张图片,其中8114图片用于训练,8041张图片用于测试。

3、mpii:该数据集包含393个行为类别的15205张图片,其中8218张训练图片,6987张测试图片。

经过240个epoch(即训练轮次,每一个epoch包含所有的训练样本)的训练,本发明实施例上述方案在三个基准数据集中都取得了当前最好的结果。其中在cub-200和car-196数据集的准确率分别为85.7%和91.8%,在mpii数据集的map(平均精度均值)为32.5%。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1