细粒度图像分类的深度学习方法

2021-10-12 08:49李祥霞吉晓慧
计算机与生活 2021年10期
关键词:卷积局部分类

李祥霞,吉晓慧,李 彬

1.广东财经大学 信息学院,广州 510320

2.华南理工大学 自动化科学与工程学院,广州 510641

传统的图像分类分为语义级图像和实例级图像这两大类[1]。语义级包括对象识别、场景识别等任务,旨在识别不同类别的图像,如汽车和飞机等,随着神经网络的数轮更新,研究者们发展出了分类准确率更高的、结构更复杂的网络用在ImageNet 为代表的语义级图像分类中。而实例级是对不同的个体进行分类,其中最重要的研究内容当属人脸识别和指纹识别。其中,人脸识别已经被大量应用到人们的生活中,但仍存在表情变化引起的类内差距增大、遮挡引起的局部特征缺失等问题。而细粒度图像处于这两者的中间状态,兼具了语义级图像分类特征难以提取和定位以及实例级图像分类中类间差异小而类内差异大的问题,但同时该领域的研究往往会大量借鉴前两个领域的研究成果。

细粒度图像分类旨在区分同一类别的子类别,如识别出车的品牌、鸟的种类、猫的品种等,也可叫作子类别分类。相较于对象识别等语义级图像分类任务,细粒度图像往往需要借助非常微小的局部差异才能区分出不同的类别。和人脸识别等实例级分类任务相比,细粒度图像的类内差异更加巨大,并且受到姿势、背景干扰、遮挡以及拍摄角度等因素的影响[2],加上细粒度数据集类内差异大而类间差异小的特点,使得细粒度图像分类一直是计算机视觉领域中一项极具挑战力的任务。鉴于类内差异大而类间差异小导致的分类准确率的下降的问题和更加复杂的网络结构带来的计算复杂度的提升,提升细粒度图像分类的分类准确率和减少计算成本成了当前图像分类领域的两个重要的研究方向。

传统的基于特征提取的细粒度图像分类算法主要是利用人工构建的算子进行图像特征提取,但是其提取特征能力较弱,并且提取到的特征表达能力比较有限,因此该算法具有一定的局限性。随着计算机硬件的发展以及互联网的发展带来的信息爆炸,研究者们发现Hinton 在1986 年提出的基于反向传播的神经网络方法在海量数据以及巨大计算能力的支持下,能够实现自动提取特征并根据这些特征实现图片的准确分类。从此,图像分类任务进入卷积神经网络的时代,深度学习也被越来越多地提及。近年来,随着深度学习的兴起,基于深度学习的图像分类逐步成为研究热点,细粒度图像分类也得到了长足的发展。深度学习在特征提取方面展现出其独特的优势和潜力,在使用的过程中,需要顺应细粒度图像数据库本身的特点,同时参考研究者们在相似的数据库中用到的方法以构建合适的分类框架,才能获得更好的分类性能,而不是一味扩充数据库以及构建更为复杂的网络结构。

本文首先概述了细粒度图像分类,并介绍了几种常用的细粒度图像数据库。然后,从基于强监督和弱监督学习这两方面,分别介绍了几种典型的细粒度图像分类算法以及研究现状。最后,讨论了基于深度学习的细粒度图像分类算法的未来研究方向和面临的挑战。

1 细粒度图像分类

1.1 细粒度图像分类

细粒度图像分类实质是定位到目标及局部区域,对局部区域进行特征提取,对提取到的特征进行处理,来完成分类器的训练和检测。这种分类任务最大的难点在于细粒度图像的信噪比很小,类别差异通常只存在于很细小的局部区域中,而找到这些细小的局部区域,对其进行准确的区分是算法成功的关键。

细粒度图像分类在许多领域都有着非常普遍的研究需求和应用场景。例如,胸部病灶的病理形态、位置、大小等具有多样性和较大的差异性,并且一些疾病样本的比例也不平衡,因而不同类型的胸部疾病分类也属于细粒度图像分类问题。目前,此类工作主要依赖于放射科医生的人工观察,易受到胸部病理特征临床表现多样性、放射科医师阅片疲劳和缺乏临床经验等因素影响,会造成误诊、漏诊的现象。

在细粒度图像分类任务中,许多算法过分依赖于人工标注信息。常用的标注信息主要是指标注框(bounding box)以及局部区域位置信息(part locations)等,在检测前景对象时使用标注框,可以消除背景噪声的干扰;局部区域位置信息可以用来实现局部区域的定位,或是姿态对齐等操作,以完成局部特征的提取。这些人工标注信息由于获取不易,算法的实用性较弱。现在越来越多的算法倾向于使用类别标签等来完成分类任务。

近几年来,细粒度图像分类取得了飞速的发展,从传统的人工提取特征及分类器设计,逐渐朝着基于端到端的神经网络的方向发展。传统的细粒度图像分类算法主要包括三个步骤:特征定位、特征提取和分类器。这类算法通常先是在训练集中找到特征点的位置信息,再用这些特征点的位置信息去提取测试图片的局部区域,然后用人工提取的特征对局部区域进行特征提取,最后将提取到的特征放到分类器中。端到端细粒度图像分类算法也可以分为三个步骤:特征区域定位、局部特征切割和分类神经网络。图1 是端到端的细粒度图像分类算法的典型流程图。该算法采用共享的卷积层神经网络的底层提取图片中的信息,将提取到的特征送入区域检测子网络和分类子网络,然后在检测子网络中利用选择性搜索、K-近邻等算法进行候选区域的筛选,然后在这些区域中利用Fast R-CNN(fast region-convolutional neural network)等算法挑选出置信度最高的局部区域,将这些局部区域的位置信息送入到分类子网络中,然后利用特征图切割的方式将对应位置的特征提取出来送入到全连接层从而得到最终的分类结果。

Fig.1 Typical flowchart of end-to-end fine-grained image classification algorithm图1 端到端的细粒度图像分类算法的典型流程图

与传统细粒度图像分类算法相比,端到端的分类算法特殊在于特征提取的部分,神经网络对图片的特征信息的提取能力远远超过人工构建的特征,神经网络在分类任务中是一个前后相同的整体,低层的特征受到分类结果反向传播的影响,因此趋向于寻找最有判别能力的特征。神经网络的特征提取都是经过了大量的计算被证实对分类结果有显著影响的特征,因此自然比人工构建的特征提取算法提取到的特征更有判别能力。现在最常用的是卷积神经网络(convolutional neural network,CNN)对图像进行特征提取。卷积神经网络无需复杂的特征提取和数据重建过程,且提取到的特征更具有特征表达和判别能力,已经广泛应用于图像分类[3-4]、行为识别[5-6]、图像描述[7-8]、图像检索[9-10]等领域。

1.2 细粒度图像数据库

细粒度图像数据集通常需要专业领域的专家知识才能完成数据的采集和标注,因此数据集的获取难度更大。本节介绍了几种常用的细粒度图像数据库,并在表1 展示了这些数据库的具体类别和大小。

Table 1 Fine-grained image datasets表1 常用细粒度图像数据库

CUB-200-2011[11]数据库:此数据库是2011 年加利福尼亚理工学院推出的鸟类细粒度图像分类数据库。CUB-200-2011 是细粒度图像分类任务中最常用的数据库。

Car-196[12]数据库:Car-196 是2013 年Stanford University 在ICCV 会议上推出的汽车类细粒度图像分类数据库,车的品牌、型号以及年份都会影响对车辆类别的划分。提供了196 类车辆图像数据,只提供了标注框信息。

FGVC-Aircraft[13]数据库:FGVC-Aircraft 是2013年ICCV 上作为在ImageNet 细粒度分类挑战大赛的一部分推出的。提供了102 类不同的飞机照片,整个数据库包含10 200 张图片,只提供了标注框信息。此数据库的分类难度较大,由于外观相似,飞机类别的划分依赖于喷漆或是细微的外形差异。

2 基于深度学习的细粒度分类

目前,基于深度学习的细粒度图像分类算法主要采用卷积神经网络模型。卷积神经网络是由LeCun于1998 年提出的,设计灵感来源于对动物神经元的研究,其本质是多层感知机的变种,它采用局部连接和共享权值的方式,不但减少了权值的数量使得网络易于优化,同时降低了过拟合的风险。

目前,常见的卷积神经网络结构主要有AlexNet、VGGNet、GoogleNet 和ResNet。2012 年,Alex 等人提出了AlexNet 模型[14],使得卷积神经网络以及深度学习逐渐在图像、语音等领域大放异彩。AlexNet 网络使用层叠的卷积层,解决了网络深度问题,使得网络学习到更有判别能力的图像特征。牛津大学视觉几何组和谷歌DeepMind 公司的研究院共同提出了VGGNet 模型[15],其中最为广泛应用的是VGG-16 和VGG-19 网络。2014 年,Szegedy 等人提出GoogleNet模型[16-18],利用多种卷积运算进行组合的方法,形成一个个功能单元,以便在相同的计算量下获得更多的特征。ResNet 模型[19]是由微软人工智能团队提出的新型深度神经网络结构,其通过层与层的跳跃连接,训练出更深的网络,缓解了梯度消失问题。

基于深度学习卷积神经网络的细粒度图像分类方法主要分为两种:基于强监督学习和基于弱监督学习分类算法。

2.1 基于强监督的细粒度图像分类

基于强监督学习指的是利用数据集中给出的所有标注(边框以及全部特征点信息)来对测试集中图片的特征点进行定位,再对定位到的特征区域进行进一步的处理,进而得到最终的分类结果,能够提高分类的准确率和有效性。

Zhang等人[20]在2014年提出了基于局部的R-CNN(Part-based R-CNNs)细粒度图像分类算法,通过自底向上的候选区域生成方法和区域卷积神经网络算法相配合进行物体检测,然后将这些目标区域进行姿态归一化并提取特征,最后将提取到的特征送入支持向量机(support vector machine,SVM)分类器进行分类。该分类框架的分类准确率超越了先前所提出的基于中层表征的、基于姿态标准化描述符的细粒度图形分类方法等。该算法也奠定了其后几年的细粒度图像分类的基础,使得其后的基于“强监督”的细粒度图像分类算法基本都是遵从这样一个局部区域检测、局部区域特征点提取以及最后的特征分类这种流程。然而,该算法也存在着一些缺点,自底向上的区域定位方法,会产生大量的无关区域,大幅度限制了算法的速度。由于姿态问题会对分类造成极大干扰。为了解决这个问题,Branson 等人[21]提出了姿态归一化的CNN(pose normalized CNN)模型,针对提取的不同层次的局部信息,进行姿态对齐操作,提取到不同层的卷积特征。

Part-based R-CNNs 模型自下而上的区域合并方法学习部位检测器,会产生大量的无关区域。在常见的鸟类目标分类任务中,“Part-based R-CNNs”利用姿态归一化,通过不同的网络检测鸟的头、身体等部位并合成一个特征向量,再使用SVM 进行训练,这种检测办法损失了各个部位的相关性。为了解决这个问题,Zhang 等人[22]提出了SPDA-CNN(semantic part detection and abstraction-CNN),分别从候选区域生成、局部区域的增加、特征提取及改变最终分类网对原网络进行了改进。该算法包含两个网络:检测子网络和分类子网络。检测子网络是用自上而下的候选区域方法生成小的语义区域的候选。分类子网络是在检测子网络生成的候选区域中进行特征提取,然后进行分类。为了检测到语义对象的细小候选区域,该算法利用K-近邻生成候选区域的方法,通过添加几何限制来减小生成候选区域的数量,生成包含更有效的局部信息的候选区域。检测网络将K-近邻给出的候选区域用快速区域卷积神经网络算法(Fast R-CNN)进行区域回归。SPDA-CNN 添加到几何限制在更细小的语义级的局部区域中生成了候选区域,比Part-based R-CNNs 生成候选区域用到的选择性搜索[23]生成的区域数量降低了一个数量级。在CUB-200-2011 数据集上取得了85.14%的分类结果。

Wei 等人[24]提出了Mask-CNN 模型,不同于Partbased R-CNNs 的细粒度分类算法直接利用卷积特征的做法,Mask-CNN 模型对深度卷积特征进行了评估和筛选,它是第一个端到端的选择深度卷积描述符(deep descriptor)模型。很多基于局部定位的算法,如Part-based R-CNNs[20]、Part-stacked CNN[25]等,都是直接使用深度卷积描述符,然后将其编码到单个的特征表示中,而没有对这些获得的深度卷积描述符进行评估。Mask-CNN 模型通过使用CNN,可以不用像对人工提取的特征一样在特征向量中筛选出有效特征,但是需要选出有用的卷积描述符。Mask-CNN 模型丢弃了全连接层,利用了更少的特征维数,提升了推理速度,使得网络计算效率更高。在进行神经网络训练时,不需要标注框信息,仅依靠局部标注信息(part annotations)和类别标签(image-level labels)就在CUB-200-2011 数据集上获得了较好的分类性能。

这些基于强监督学习方法虽然获得了较好的分类结果,但是它们往往严重依赖于大量的人工标注信息来完成建模和分类预测,人工标注的数据很难获取且所付出的代价昂贵,这将会影响细粒度图像分类在应用领域的使用和发展。

2.2 基于弱监督的细粒度图像分类

近几年,基于弱监督学习已经成为基于深度学习的细粒度图像分类方法的研究趋势,其舍弃了数据库中提供的人工标注信息,转而依靠注意力模型、双线性卷积神经网络等方法去定位图片中的关键区域,通过多尺度的方法来获得较为完整的全局和局部区域的特征,不但减少了人工标注的格外数据成本,同时更加符合实际应用需求。

2.2.1 基于注意力模型的细粒度图像分类

两级注意力算法[26]是第一个尝试不利用人工标注信息,只使用类别标签的细粒度图像分类方法。此算法主要关注对象级和局部级两个层次的特征,其实也就是强监督模型中的标注框和局部区域位置信息。其中对象级模型是针对对象级图像进行分类。将经过预处理得到的包含多个候选区域的图片,用来从头开始训练一个卷积神经网络。经过卷积网络之后,得到一个Softmax 层的输出,对所有区域的输出进行平均,作为Softmax 层的最终输出。在获得局部区域特征后,将其连在一起得到一个特征向量,用来训练SVM 分类,最后结合对象级模型的预测结果和局部级模型的结果,作为两级注意力模型的最终输出。该算法在Alex-Net 网络结构上准确率达到了69.7%,若采用网络深度和通道数量更多的VGG-Net 构架,分类的准确率能提升到77.9%。由于两级注意力模型局部区域的检测是通过聚类算法得到的,分类精度低于同样使用AlexNet 的强监督的Part-based R-CNNs算法。

许多弱监督分类方法[27-32]虽然训练时只需要类别标签,但是这些方法在执行过程中,在对象定位任务中出现错误,就会严重影响到分类效果。由于这些方法无法利用GPUs 进行并行计算,计算速度较慢。基于优化特征表示的方法也有很多优秀的算法,比如通过优化主干网络[33]、特征提取结构[34]、数据增强[35]、迁移学习[36]等来获得更好的特征表示的方法。但这些方法也存在缺点,首先一个有效的方法是应该将不同的中级信息与最后输出融合起来,在不同情况下都应该完全利用到不同的输出结果。其次,一般的预训练迁移学习可能表现较差,而在特定领域迁移学习表现较好,但需要花费大量时间对每个细粒度数据集在大规模数据集上进行预训练。

Zhu 等人[37]提出了一种新型的基于CNN 的级联注意力网络模型。这个方法利用了空间混淆注意力来区分输入图像的模糊区域。这个模型包括三部分:空间混淆注意力模块、交叉网络注意力和网络融合注意力模块。所有的模块可以一起工作,进行端到端的训练优化,其中利用到了全局注意力池化来使用空间混淆注意力,其收到来自CNN1 的注意力二进制掩膜,然后把它当作过滤器,从而让CNN2 去注意已筛选过的区域。不同于之前所提出的注意力机制方法[27,29,32],这个方法的骨干网络是完全并行运行的,使其获得了更好的泛化能力和更快的计算速度。该算法在CUB-200-2011 数据集上获得了90.8%的准确率。

Fig.2 Architecture of attribute guided attention network图2 属性引导的注意力网络结构

Yan 等人[38]利用渐进特征学习的方法来对细粒度进行分类,其网络结构主要分为两个阶段:第一个阶段设计了一个属性指导的注意力网络,用来发现和对齐有区分度的局部特征;第二个阶段采用一个多尺度主动融合网络来分类,聚合注意力区域中有区别的特征。与传统融合算法相比,所提出的主动渐进融合网络对候选噪声区域具有较强的鲁棒性,并且融合的图像表示的判别能力并没有降低。同时,将这两个阶段集成到一个单一的框架中,使整个系统可以共同训练。很多模型[39-43]使用了局部检测网络算法,提取大量的局部区域来训练CNN 网络,针对复杂的问题扩展性不好,并且需要大量的人工标注信息训练局部检测网络,而该模型不存在这种局限。一些使用Fisher Vector 或者最大/平均池化进行对齐的算法也存在丢失大量语义和空间关系信息的缺点。相比于传统的注意力模型,两级注意力[26]缺乏强监督信息的指导,因此在很多情况下也不能准确定位到有用的局部区域。而Yan 等人[38]设计的由属性引导的注意力网络采用了循环神经网络(recurrent neural network,RNN),比如LSTM(long short-term memory)[44],将判别信息从第一个节点累积到最深层的节点,从而产生具有高度判别力的对象级特征表示。如果当前局部区域不能提供足够的有区分的信息,就转向对象的下一个局部区域。该算法仅仅依靠标签属性,在CUB-200-2011 数据集上获得了85.1%的分类结果。图2 是Yan 等人提出的网络结构。

2.2.2 双线性卷积神经网络

Lin 等人[45]设计了一种双线性卷积神经网络模型,在整体上实现了端到端的训练优化。图3 是双线性卷积神经网络模型,其包含了两个特征提取器,输出后经过外积相乘,进行池化后得到图像描述算符。

Fig.3 Bilinear CNN model图3 双线性卷积神经网络模型

从图3 中可以看出,模型的前半部分是普通的卷积层和池化层,只需求得后半部分的梯度值,即可完成整个模型端到端训练。双线性CNN 模型中CNN网络A 的作用是对物体进行定位,也就是检测前景对象和局部区域,而CNN 网络B 是对CNN 网络A 定位到的物体位置进行特征提取。两个网络之间相互协调作用,在整体上完成了模型端到端的训练过程。该算法在CUB-200-2011 数据集上获得了84.1%的分类精度。双线性CNN 模型是第一个可以端到端训练的协方差池化网络模型,它对协方差矩阵进行L2 归一化处理之后采用了元素平方根归一化,没有直接使用卷积特征,而是利用卷积特征和自己的外积作为其图像表示,有力地推动了细粒度分类的进步。而它的缺点是最后的图像表示的维数过高,降低了双线性CNN 模型的实用性。针对这个问题,Gao 等人[46]提出了一种压缩双线性池化(compact bilinear pooling)模型,降低了特征向量的维数,并同时确保了分类的准确率。

由于双线性CNN 未能捕捉特征图通道之间的非线性关系,使得卷积网络的表达能力得不到充分利用。为了解决这个问题,葛疏雨等人[47]提出了一种核化双线性卷积网络模型,利用核函数建模通道间的非线性关系,卷积网络的表达能力大幅度提高,在数据集CUB-200-2011、Car-196、FGVC-Aircraft 上都获得了优异的分类性能。

2.2.3 基于空间关系的模型

现在主流的细粒度图像分类主要分成基于局部定位和特征表示这两种类型。基于局部定位的方法仅仅试图定位图像有用的局部区域,然后对这些区域提取特征,其难点就在于这些局部区域的标注信息难以获得。Krause 等人[48]提出的方法没有直接使用这些局部定位,而是利用了局部区域中高度有序的空间信息,获得了更多区分度的线索。而基于特征表示的方法需要产生有效的图像表示,依赖深度卷积神经网络模型才能够获得良好的性能。在这些方法中,都没有用到局部区域的空间关系。

Qi 等人[49]利用空间关系来对细粒度图像进行分类,主要分为两部分:局部区域选择和特征表示。前者利用局部区域之间的固有空间关系来选择具有高判别力的局部区域对,而后者探索局部区域之间的相互作用来描述选择后的局部区域,并为细粒度图像分类构建一个语义图像级别的特征表示。

空间关系可以提供一个有用的语义特征来丰富特征表示的信息,同时帮助区分对象和背景。在以前的研究中,通常空间关系是由人工来定义的,比如Bloch[50]拓扑关系和几何关系的考虑。而Qi 等人[49]的研究是使用的局部区域之间的距离,利用空间关系就能捕获局部区域更多有区分度的特征,并且不需要任何局部定位的人工标注信息。图4 显示了不同特征维数对分类准确率的影响。从图4 中可以看出,在维数达到6 000 之前,随着特征表示维数的增加,分类准确率显著提高,在超过6 000 之后趋于稳定。相比于前面提到的双线性CNN 和Compact 双线性CNN 模型,该方法所用到的图像特征维数显著减少,在保证分类精度的基础上,提高了运算速度。该算法在数据集CUB-200-2011 上获得了85.5%的准确率。

Fig.4 Influence of different dimensions on classification accuracy图4 不同的特征维数对分类准确率的影响

2.2.4 其他模型

大多数的细粒度图像算法都是针对轮廓清晰、有相对固定的外观特征和明显的部件构成的对象。针对一些特定领域的没有可分离的部件的子类别图像的研究,目前还比较少。Won 等人[51]提出了一个以对象级CNN 为基础模型和多个局部级CNN 模型结合的多尺度CNN 算法,针对的识别对象是没有可分离局部特征的图像。该算法在多个食物数据集的图像上进行细粒度分类,利用不同的层次的食物细节来训练多个CNN。首先对象级CNN 通过使用对象级缩放因子对训练图像进行调整,将对象的外观作为一个整体进行学习。然后使用经过训练的对象级CNN,根据调整后的图像在不同的局部级尺度对局部级CNN 进行微调。其中局部级CNN 的图像调整需要更多的修剪,利用线性尺度随机裁剪法,根据尺度可控参数的公式,设置合适的参数,采用不同的尺度为局部级CNN 调整图像的大小。该研究表明,通过尺度可控图像调整方法训练的多尺度CNN 可以显著提高食物数据集的识别性能,证明在不同尺度上调整图像大小有助于多尺度CNN 学习不同层次的目标细节,而无需明确地将目标分割成部分。

近些年生成对抗网络(generative adversarial networks,GAN)在图像的多个领域取得了优异的成果。其中,Xie 等人[52]将CNN 和GAN 结合在一起,利用GAN 来增强数据集。算法使用预先训练好的YOLO v2[53]对象检测模型对原始数据集上的粗粒度对象进行检测和裁剪。其次,将裁剪后的图像发送给GAN的生成器以生成更多的数据,并为生成的图像分配统一的标签,混合这些原始的真实图像和生成的图像后,将这些混合图像输入到一个CNN 分类器和一个特征融合的CNN 分类器中。如此,CNN 分类器可以同时训练带有真实标签和生成标签的图像,实现了细粒度识别的良好正则化并且获得了更有竞争力的分类性能。佘海龙等人[54]提出了三维CNN 模型应用于高光谱遥感图像分类,使用大步距卷积层替代池化层,引入L2 正则化、批量归一化、Dropout等一系列的策略,在减少网络参数的同时有效防止过拟合现象。引入图像分类中,并获得了一定成果,大幅度降低了网络模型的参数、计算量并提高了分类的精度。此深度网络方法可以思考引入到其他细粒度识别任务中,可以更好地提高分类的准确性和有效性。徐可文等人[55]综述了近年来机器学习算法在超声图像领域的研究和应用进展,指出了深度学习在医学影像领域开展研究所面临的困难与挑战。

2.3 基于数据增强的细粒度图像分类

数据增强是扩充数据的有效方法之一,可以有效地提高细粒度图像分类模型准确率。Hu 等人[56]基于双线性CNN 提出了双线性注意力池化方法,对原图进行注意力式剪切、注意力式丢弃,以此得到随着模型迭代更新变动的增强数据,这些新数据和原图一起提高模型准确率。该算法采用的是单一语义的数据增强方式,处理更复杂的细粒度识别任务存在缺少有效分类信息的问题。对此,谭润等人[57]结合双线性注意力池化的优势构建模块提取双语义数据,和原图一起以双语义数据增强的方式提高模型分类准确率,在CUB-200-2011 数据集上获得了89.5%的分类准确率。虽然该算法提升了分类精度,但提升了模型复杂度,可能限制了模型在移动端的应用。丁文谦等人[58]在双线性注意力池化模型的基础上,提出了一种基于Xception 网络的弱监督数据增强网络,用Xception 网络替代原模型采用的Inception v3 作为骨干网络和特征提取网络,利用深度可分离卷积替代普通CNN 生成注意力图来引导数据增强,然后将增强后的图像返回网络作为输入图像来增强网络的泛化能力,在CUB-200-2011 数据集上获得了89.28%的分类精度。Li等人[59]提出了属性混合(atrribute mix),一种属性级的数据增强方法来扩充细粒度样本,其原理是在细粒度子类别之间共享属性特征,并且可以在图像之间无缝传输。属性混合是一种简单但有效的增强策略,可以在不增加推理预算的基础上显著提高识别性能,若与最先进的细粒度识别方法相结合,可以进一步提高性能。Xie 等人[52]提出了使用GAN 来扩充数据集,也是常用的一种数据增强策略,将GAN 生成的图像与原始的训练数据结合,更好地执行细粒度图像分类任务,获得更好的分类性能。

2.4 在复杂场景下的细粒度图像分类

在复杂场景下的细粒度图像分类是计算机视觉领域重要的研究方向,并已经取得了一定的研究成果。行人重识别任务是常见的复杂场景下的细粒度分类的应用。大多数先进的行人重识别方法,通常由三重损失驱动组成,不能有效地学习细粒度特征,因为这些方法更关注区分巨大的外观差异。为了解决这个问题,Yan 等人[60]引入了一个新的成对损失函数,通过自适应地对差异小的图像强制指数惩罚和对差异大的图像强制有界惩罚,使得模型能够更好地学习细粒度特征。在数据集[61-63]上的实验结果表明,所提出的损失函数在很大程度上优于常用的损失函数,并且显著地提升了学习效率。Han 等人[64]提出了一种补充强化注意网络,在行人重识别任务中学习多种判别特征的嵌入。作者们提出的空间互补性和特征空间互补性保证了多样行动特征可以通过不同的分支学习,此外还采用自适应加权策略进行特征融合,在低维特征下得到了比高维特征更有竞争力的结果。该方法的优越性在数据集[61-63]上得到了证明。谢彭宇等人[65]提出了一种基于多尺度联合学习的行人重识别方法,通过对比实验发现,由于细粒度局部分支充分利用了不相邻部件间的相关性,比起两种不同粒度的全局分支,细粒度局部分支显著地提升了模型的鲁棒性,并且对模型的性能有更大的提升。通过对各个部件之间不同尺度下的潜在关系的挖掘,结合全局特征形成了更有判别力的行人特征,该方法在三个主流的行人重识别数据集[61-63]上实现了先进的性能。

细粒度动作识别任务中,针对视频舞蹈动作的识别,韩婷婷[66]提出了一种动作显著约束的深度卷积特征描述子,同时将视觉关注机制引入到细粒度动作的表示方法中。研究证明,该方法能从更有分辨力的空间区域进行特征提取,使得特征描述子对于局部的表现和运动模式中存在的微小差异更加敏锐,对比传统的网络表示方法,识别性能大幅度提高。

细粒度图像分类也已经广泛应用于复杂场景下的车辆识别任务。李宽宽等人[67]提出了双线性聚合残差注意力的细粒度图像分类模型。在原双线性CNN基础上,把原有特征提取子网络转变为更具学习能力的聚合残差网络,来提升网络的特征捕获能力,方法在Stanford Cars 细粒度图像数据集上分类精度达到94.70%,性能优于大多数主流模型方法。Xiang 等人[68]提出了一种用于细粒度车辆识别的全局拓扑约束网络。该网络采用了全局拓扑关系约束来描述零件之间的相互作用,并将其集成到CNN 中。零件之间的拓扑关系被编码为深度卷积层,从训练中学到图片,通过培训整个网络,核的梯度信息的反向传播全局拓扑关系将引导前几层变得更好检测有用的零件,从而提高车辆识别能力。该网络在Stanford Cars和CompCars 数据集上,均达到了较好的性能。Fang等人[69]提出了细粒度的卷积神经网络框架对车辆进行识别。该方法使用卷积神经网络提取的特征图,从特征图映射到输入图像来定位区域,区域重复被细化提炼,最后在ComCars 数据集上达到98.29%的识别精度。Li 等人[70]提出了一种新的双重交叉熵损失函数。实验证明所提出的损失函数改善了细粒度车辆分类性能,在Stanford Cars-196 数据集获得了较好的性能。Huang 等人[71]结合了颜色和模型,以及三重分类损失提出了双重域多任务模型,实现细粒度距离测量,提高了车辆识别准确性。

3 总结与展望

本文从细粒度图像分类的意义出发,介绍了细粒度图像分类算法的研究现状。从基于强监督和弱监督两个角度,介绍了几种典型的基于深度学习的细粒度图像分类算法。表2 总结了上述典型的算法在数据集CUB-200-2011 上的性能表现,并说明了算法所需要的标注信息。

基于深度学习的细粒度图像分类虽然已经取得了突破性的进展,但是依然面临以下挑战:

(1)数据集规模小,标注与类别数量有限。

(2)在自然环境下,在光照、遮挡、模糊和低分辨率等复杂场景下的图像识别在当前的学术研究中较为欠缺,影响到细粒度分类的现实应用。

Table 2 Performance of different algorithms on CUB-200-2011 dataset表2 CUB-200-2011 数据库上的算法性能比较

对于未来的发展方向,可以从以下几方面考虑:

(1)对自然环境中轮廓不清晰、无明显对象的研究。细粒度图像算法的研究对象一般为鸟类、汽车、飞机等具有明显形态或轮廓的物体,这类研究对象具有相对固定的外观特征。但是针对自然环境中的岩石标本、植物图像标本等轮廓不明确、无明显部件构成的对象,很少有细粒度图像分类的相关研究。

(2)细粒度的小样本学习。细粒度图像分类对训练集的要求很高,需要大量可靠的标签数据集,因此需要相应领域专家的手工标记,这一过程耗时且成本高,因此面对标记数据缺乏的挑战,如何高效利用小样本进行学习具有一定的发展意义。

(3)将迁移学习引入到细粒度图像分类中。目前,在数据库中,针对前景对象突出,背景单一的图像,细粒度图像分类算法实现了良好的分类性能,但其在自然环境下存在一定的局限性。引入迁移学习,研究一些域自适应的模型算法,在更现实的环境中进行细粒度分析,以满足细粒度图像分类的现实应用的需求。

(4)有效利用细粒度图像的多级标签体系蕴含的丰富信息,可以提升细粒度图像的分类精度。在对细粒度图像进行子类别划分时,有时需要进行多级划分,同一细粒度对象包含不同层级的多个标签。

(5)自动细粒度模型。自动机器学习(auto machine learning,AutoML)和神经架构搜索(neural architecture searching,NAS)在计算机视觉领域引起了研究者们的热切关注。通过AutoML 和NAS 技术开发的自动细粒度模型可以找到更好的深度模型。

猜你喜欢
卷积局部分类
基于全卷积神经网络的猪背膘厚快速准确测定
日常的神性:局部(随笔)
基于图像处理与卷积神经网络的零件识别
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
凡·高《夜晚露天咖啡座》局部[荷兰]
按需分类
教你一招:数的分类
说说分类那些事
丁学军作品