基于多特征组合的细粒度图像分类方法

2018-08-27 10:42邹承明徐晓龙
计算机应用 2018年7期
关键词:细粒度准确度关键点

邹承明,罗 莹,徐晓龙

(1.交通物联网技术湖北省重点实验室(武汉理工大学),武汉 430070; 2.武汉理工大学 计算机科学与技术学院,武汉 430070)(*通信作者电子邮箱luoyingwork@foxmail.com)

0 引言

一直以来,细粒度图像分类都是计算机视觉和模式识别等领域的许多研究人员感兴趣的课题,但由于细粒度图像往往拥有较大的类内差异和细微的类间差异,其分类难度远远高于普通的图像分类[1]。

细粒度图像的样本通常属于同一大类,不同子类间拥有较高的相似性,相互的区别往往体现在难以察觉的局部细节之上,而同一子类下的样本又会由于拍摄距离、目标姿势、复杂背景和遮挡物等因素的干扰产生极大的差异,彼此的共性可能存在旋转、缩放、变形和缺失的情况,因此细粒度图像分类问题成为了机器视觉领域一个极大的挑战[2]。

早期的细粒度分类方法使用简单的特征提取和编码方式生成特征表示,这些表示方法相当粗糙,采集到的有效信息十分有限。比如Wah等[3]在细粒度数据集CUB- 200- 2011上作基准测试时,通过对图像提取RGB颜色直方图特征和尺度不变特征转换(Scale Invariant Feature Transform, SIFT)[4]特征,运用词袋模型(Bag of Words, BoW)生成特征编码,最终分类精度最高仅为17.3%。这项工作表明,简单的特征表示方法描述性较弱,不足以支撑更高的细粒度图像分类准确度。但这并不意味着早期提取的特征是完全无用的,随着更为强大的编码方式的出现,如Fisher Vector编码[5]、局部特征聚合描述符(Vector of Locally Aggregated Descriptors, VLAD)[6]等,与之结合的SIFT特征的分类准确度也有所提高。

近年来卷积神经网络(Convolutional Neural Network,CNN)[7-10]在一般的图像分类任务中取得了令人瞩目的成绩,证明了卷积特征对图像的描述能力,这一结论也为细粒度图像分类带来了新的发展方向,研究人员开始选择CNN特征作为图像表示用于细粒度图像分类[11]。Zhang等[12]依次对目标整体、头部和身体区域训练CNN模型分别用来提取三种卷积特征,最后将三种特征级联成一个向量用于分类;Branson等[13]对目标整体和不同部位分别提取不同层的CNN特征,综合多项卷积特征进行分类。上述算法在CUB- 200- 2011数据集上都达到了75%以上的分类准确度。这些工作证明了卷积特征在细粒度图像分类中可以发挥较好的作用,但是分类准确度仍然存在上升空间。

从现有研究成果来看,目前细粒度图像分类的主流框架大多是基于单一特征,这往往导致一定的片面性。以SIFT和CNN特征为例,前者注重图像底层信息,针对关键点提取的特征太过细化且极易被噪声干扰,自身无法支撑较高的全局分类准确度;后者拥有强大的抽象能力,能够捕捉图像的高层语义,可针对目标整体区域提取的全局特征却过于泛化,忽视了底层和局部的细节,不利于区分细粒度图像库中十分相似的异类样本。针对这些问题,本文提出的多特征组合方法综合考虑高层和底层、全局和局部的信息,采用针对目标整体、关键部位和关键点层层递进的特征提取方法,将各个层次的特征组合起来,得到更丰富的特征表示。本文算法在CUB- 200- 2011鸟类数据集上进行实验,结果表明,本文提出的特征表示方法对于细粒度图像分类准确度的提升有积极作用。

1 特征提取模型

图像特征提取是解决图像分类问题的重要步骤,特征提取方法的优劣决定了所提取特征的描述能力,从而影响图像分类性能。细粒度分类由于其分类目标更加细致,对图像特征的要求也更加苛刻,往往需要在描述全局特征的同时不忽视局部特征,因此,一个综合考虑全局特征和局部特征的特征提取模型对细粒度分类尤为重要。

CNN是LeCun等[7,14]提出的一种经典的神经网络特征提取模型,它可以直接处理原始图像,还能够根据不同的分类问题从图像中提取出相应有效的特征,目前在计算机视觉领域中应用广泛,其基本的网络结构如图1所示。

图1 CNN基本结构

网络整体可分为三个部分:输入层、中间层和输出层[15]。输入层为原始图像,输出层为特征向量,中间层由若干个卷积层和池化层交替组成,其作用是对输入层的数据进行逐层抽象,最终通过全连接得到含有高层语义的输出向量。对于CNN而言,不同的卷积参数和池化策略将导致网络最终所提取特征的不同意义,而多样化的特征又伴随着强大的描述能力和迁移能力,因此,卷积层和池化层是CNN提取更具区分度的特征的关键所在。

其中,卷积层由大小固定的卷积核对上层的输出进行卷积操作,其核心原理如图2所示:图2(a)展示了多种卷积核的卷积操作,每个卷积核都拥有相同尺寸的局部感受野,感受野内部是各自的权值参数,参数值的差异决定了卷积核的不同种类,卷积核依次沿着x轴和y轴方向在图层上进行滑动和卷积,得到的值组成该卷积核的特征响应图;图2(b)是卷积的计算过程,一个卷积核的内部权值参数对于它要卷积的对象是共享的,也就是它在滑动和卷积过程中不会发生权值的变化,而卷积就是将感受野所覆盖的图层数据与自身相应位置的权值进行加权求和,所得结果作为输出数值。

图2 卷积层核心原理

池化层操作原理与卷积层类似,区别在于池化层的感受野会根据不同池化策略来取对应位置的最大值或者平均值。

从CNN的基本结构来看,它所提取的特征属于全局属性,而通过CNN中卷积和池化的操作过程也不难看出,随着中间层层数的增加,CNN将原始图像的底层信息逐步合并和归纳,进而向高层过渡,但一些局部细节也随之逐层丢失,因此CNN虽然在一般的分类任务中出类拔萃,却在细粒度分类中表现欠佳。受这一现象的启发,本文提出了利用SIFT关键点来增强局部点特征的方法,获得更强大的特征描述力。

SIFT是一种局部特征描述子,它可以定位和筛选图像尺度空间中的极值点,并用128维的向量描述每个关键点,这种特征具有旋转不变性和尺度不变性,是极为可靠的局部描述符。然而,不同图像的SIFT关键点数目往往差异较大,因此SIFT特征不便于直接用于图像分类,此时就需要特定的编码方式在考虑到每张图像SIFT特征的同时,生成统一维度的特征向量。VLAD就是极为优秀的一种特征编码方式,它相对于BoW编码而言损失较少的信息,相对于Fisher Vector编码而言计算更为简单,而且在一些分类任务中它的效果还优于前两者。它保存了每个SIFT特征点到离它最近的聚类中心的距离,且考虑了特征点每一维的值的影响,对图像局部内容有更细致的刻画,因此本文选择用VLAD模型编码SIFT特征,获取的信息用来强化其他全局特征的局部描述性。

综上,本文所使用的特征提取模型兼顾了CNN和SIFT两种特征的提取,以CNN提取的高层语义特征把控全局方向,以VLAD算法编码的SIFT关键点特征补充局部细节,得到对细粒度图像目标更具判别力的特征表示。

2 多特征组合

由第1章CNN的原理介绍可知,CNN特征提取模型针对的是图像块,它所输出的特征是将图像块中所有像素以某种方式进行融合后的产物。这样的特征充分反映了该图像块的全局属性,然而图像块的尺度是可变的,也就是说同样大小的图像块,它的内容可能是整个目标,也可能只是目标的一部分,例如鸟类的整体和头部区域本质都是图像块,都可以通过CNN模型进行特征提取,因此CNN模型本身也可以提取出多种特征,这些特征与VLAD模型提取的SIFT点特征组合在一起可以构建出丰富的特征表示,不同成分的组合特征在细粒度图像分类中也有着不同的结果,因此即使已经确定了多特征提取的模型,各种特征的选取也至关重要。

本文结合人眼分辨细粒度图像的经验,对CNN模型和VLAD模型提取的多种特征的选择和组合策略进行了分析。在面对需要辨别的细粒度图像时,人们通常会先根据目标整体区域的信息判断大致类别,这一过程说明了目标整体区域的特征的必要性,这类特征可通过CNN模型提取;接下来就是根据目标关键部位和关键点的细节差异来区分细粒度类别,这一过程说明了目标关键部位区域和关键点的特征对细粒度图像最终辨识结果的重要性,这两类特征可分别通过CNN和VLAD模型提取,因此,本文提出的多特征组合方法同时选取目标整体、关键部位和关键点三重特征层层递进组合成对细粒度图像具有更高描述性和区分性的最终特征。

图3为相应的多特征组合结构示意图:分别用各自的模型提取目标整体、关键部位和关键点特征,三者级联之后用SVM分类器进行分类。其中关键部位取用的是目标的头部区域,原因有二:其一是头部区域往往蕴含大量细粒度图像分类所需信息;其二是图像样本中头部区域的完整性最能得到保障。

图3 多特征组合结构

在实现本文提出的多特征组合方法时,需要提前对三种特征提取模型进行训练,图4为本文细粒度图像分类模型的训练过程示意图。首先,分别以细粒度图像库训练集中的目标整体和头部区域训练CNN得到两个网络模型M1和M2,提取训练集中所有目标的整体和头部CNN特征F1和F2;然后,对训练集中所有目标区域提取SIFT特征,通过K均值聚类生成聚类中心集合作为码本C,再将每个目标区域的SIFT特征点通过VLAD参照码本C编码为特征F3;最后,组合F1、F2和F3作为最终的特征表示,训练SVM分类器S。

图4 模型训练过程

模型的测试过程如图5所示:对测试目标整体和头部分别用M1和M2提取特征F1′和F2′,对测试目标整体提取SIFT特征点,再参照码本C进行VLAD编码,得到特征F3′,将F1′、F2′和F3′级联,输入到分类器S中得到结果。

图5 模型测试过程

3 实验结果与分析

3.1 实验设置

本文在细粒度图像分类领域中最为经典和常用的数据集CUB- 200- 2011上进行实验,该数据集包含200种不同鸟类的类别,共计11 788张图像,实验选取数据集中的5 994张作为训练集,其他5 794张作为测试集。实验主要硬件环境为Nvidia Tesla P100计算显卡,软件环境为Linux系统下Caffe和Matlab R2014a。

为了便于目标整体和关键部位区域CNN特征的统一提取,将所有图像数据的尺寸预处理为227×227。实验中CNN结构设置如下:1~5层为卷积层,每层卷积后都有ReLU激活函数处理和最大值池化操作;6~7层为全连接层,本文算法取用的CNN特征就是第7层的4 096维特征。

为了得出本文算法中VLAD特征编码时最适合的k均值聚类中心数,分别在8、16、32、64四种k值下进行实验,表1为在细粒度数据集CUB- 200- 2011上使用本文算法时选用不同k值所对应的分类准确度。

表1 不同聚类数下的分类准确度

从表1可以看出,当聚类数等于16时,细粒度图像识别准确度达到了最高值。分析其原因,当聚类数过小时,聚类中心之间相距较远,每个中心辐射的聚类范围较广,各个聚类的关键点分布也较为分散,也就是聚类很可能并没有达到较好的收敛状态,因此凭借这个聚类中心集合作为码本提取的信息没有足够的可靠性;而聚类数过大时,聚类中心较为拥挤,每个中心辐射的聚类范围重叠,关键点可能同时归入多个聚类,造成某些特征的重复提取,从而导致过拟合,因此,本文算法提取VLAD特征时的关键点聚类数设置为16,相应的特征维度为16×128。

上述两种特征确定后,将它们进行级联组合后,选择一对多方式下的多类SVM分类器对数据进行训练和测试。

3.2 实验结果

本文算法结合CNN特征和VLAD编码的SIFT特征,使用“目标整体+关键区域+关键点”的特征提取和组合方法,最后通过一对多SVM进行分类。

为了方便对比分析,在进行本文提出的三重特征组合的细粒度分类实验的同时,也分别在同样的数据集上进行了多种单一CNN特征的分类和多种组合CNN特征的分类。

实验结果如表2所示,表中字母的含义如下:Fentirety-cnn、Fhead-cnn和Fbody-cnn分别表示在目标整体、头部和身体区域提取的CNN特征,Fentirety-cnn+Fhead-cnn、Fentirety-cnn+Fbody-cnn和Fhead-cnn+Fbody-cnn分别表示三种CNN特征的两两组合,Fentirety-cnn+Fhead-cnn+F(16×128)-vlad则表示目标整体CNN特征、头部CNN特征和以16个聚类中心为码本编码的VLAD特征的组合表示。

表2 不同特征的实验结果对比

表2中分别记录了上述特征表示方法所对应的细粒度图像分类准确度,分析其中数据可以得出以下几个结论:

1)单一的CNN特征本身有较强的描述性,但在细粒度分类问题中还缺乏足够的区分度,因此其分类准确度只能停留在60%~70%。

2)三种单一CNN特征中,头部区域的特征区分度明显高于其他两种,凡是有这一特征参与的特征组合都可以获得80%以上的分类准确度,这种结果可以证明头部是该数据集的关键部位,也可以证明关键部位的特征对细粒度分类至关重要。

3)多特征组合表示的分类准确度大多高于单特征表示,且优势明显,除了Fentirety-cnn+Fbody-cnn组合这一特例,其他组合方法相比单特征表示都有10%~20%的准确度提升。而Fentirety-cnn+Fbody-cnn组合的准确度较低的原因除了目标整体区域和身体区域的单一CNN特征都不够强大之外,还存在一些外部因素。结合实验所用的图像数据进行分析可以发现,CUB数据集中存在一定量的样本完全缺失身体区域,这种现象更加降低了这类特征组合的有效性,从而导致分类的失败。

4)结合目标整体、头部CNN特征和关键点VLAD特征的表示方法取得了最高的细粒度分类准确度81.6%,相较于直接将CNN结构套用到细粒度图像分类问题上,凭借单一的目标整体区域CNN特征进行分类,提高了13.31%的准确度,证明了本文所提出多特征组合的有效性。

综上所述,本文提出的综合考虑目标整体、关键部位和关键点的多特征组合方法对细粒度图像分类准确度有着明显的提升。

此外,本文将所提出的方法和其他已有的细粒度图像分类算法在同一个数据集CUB- 200- 2011下进行了实验对比,结果如表3所示,从分类准确度对比结果可以看出本文提出的方法对细粒度图像分类的确有较好的效果。

4 结语

为了解决单一特征表示的局限性会导致细粒度图像分类准确度不高的问题,本文提出了一种基于CNN和SIFT的多特征组合表示方法。基于单一CNN特征和多特征组合的细粒度图像分类对比实验表明,综合考虑对目标整体、关键部位和关键点的特征提取的多特征组合方法拥有最高的分类准确度。由于关键点定位和筛选算法的误差,导致关键点特征对组合特征的提升不是很明显,在下一步的研究过程中,可以针对这一问题进行改进。

表3 CUB- 200- 2011下的各方法分类准确度对比 %

猜你喜欢
细粒度准确度关键点
影响重力式自动装料衡器准确度的因素分析
论建筑工程管理关键点
肉兔育肥抓好七个关键点
建筑设计中的防火技术关键点
在线评论情感分析研究综述
基于型号装备?角色的IETM访问控制研究
基于web粒度可配的编辑锁设计
基于文本挖掘的微博文本情绪分析技术研究
论提高装备故障预测准确度的方法途径
Word中“邮件合并”功能及应用