马 瑶,智 敏,殷雁君,萍 萍
内蒙古师范大学 计算机科学技术学院,呼和浩特 010022
近年,细粒度图像识别在计算机视觉、模式识别等领域掀起了一阵热潮,其在学术界和工业界都获得了极大的关注度,在智能零售系统[1-2]、生物多样性监测[3]等领域具有广泛的应用价值。而传统的计算机视觉研究方法不能够胜任复杂的细粒度图像识别任务,因此许多研究将深度学习技术[4]应用于细粒度图像识别领域,其在定位局部、特征表示,分类等方面都取得了良好的效果。由于人类视觉系统本质上对细粒度图像[5]具有推理能力,不仅能识别出狗类和鸟类,还能区分出具有细微差异的美国金翅雀和欧洲金翅雀等。因此,计算机视觉一直致力学习人类视觉系统的识别推理能力,但对于细粒度图像识别任务的准确度仍有待提升。尤其是在细粒度图像的类间相似和类内差异[6]问题上,仍有待提高准确率和计算复杂度。为解决上述问题,研究者基于CNN 框架[7-8]进行改进,提升定位局部和特征表示能力。近年,研究者将Transformer[9]也引入到细粒度图像识别任务中,以提高识别准确率。
本文首先概括了细粒度图像识别研究意义及常用数据集;其次介绍了近年来基于CNN 和Transformer 的细粒度图像识别研究方法;最后对研究现状进行了总结,对未来可能的研究方向进行了展望。
图像识别是计算机视觉领域的研究重点之一,深度学习技术的出现为其开辟了新篇章。传统图像识别包括语义级识别和实例级识别两类:第一类包括场景识别和对象识别等语义级任务,目的是识别不同类别的目标,如鸟、汽车等;第二类包括人脸识别和掌纹识别等实例级任务,其目的是对不同的个体进行分类。
细粒度图像识别是图像识别的子领域,其介于语义级和实例级任务之间。与两者相比,细粒度图像子类别间仅有局部的细微差异,而同类别间外观差异大,并且容易受姿态、遮挡等不确定因素影响。因此,细粒度图像识别有极大的挑战性。细粒度图像与通用图像识别的差异如图1所示。
图1 通用图像与细粒度图像识别Fig.1 General image and fine-grained image recognition
细粒度图像识别任务具体来说是从同一大类别中识别出子类别,例如:鸟的种类[10-11]、狗的种类[12]、车的品牌[13]以及飞机的模型[14]等,其具体步骤为:定位图像所含目标,选中目标局部区域提取特征,处理与识别特征。该任务的关键在于辨认子类别,因此找到关键的细微部分是研究重点。
在传统的细粒度图像识别任务中,图像中的背景噪声通过标注框来消除,以定位目标;局部区域特征提取通过位置标注来实现,这些算法过度依赖于人工标注[15]。人工标注信息获取难度很高,十分耗费人力,并且依赖于人工标注的方法提取特征的能力和特征表示效果均较弱,有一定的局限性。因此,现在越来越多的算法倾向于仅使用类别标签等来完成识别任务。
近几年基于CNN 的细粒度图像识别方法[16-17]越来越成熟,其提取的特征拥有更强大的表达能力,在细粒度图像识别任务中通常能够取得良好的结果。但关键部分过于细微,无法通过传统CNN获取全部关键信息,研究者开始致力于在框架内部进行改进,以进一步定位关键部位和丰富特征表示。一些学者认为,基于CNN的细粒度图像识别方法对全局信息的掌握仍有漏洞,于是其将视觉Transformer 引入到细粒度图像识别,均取得不错成果。证明了在细粒度视觉识别领域,虽然学习局部区域特征起着至关重要的作用,但是,全局信息的补充会进一步提高识别的准确率。
细粒度图像与通用图像[18]数据集不同,其需要专业领域的研究者收集并标注数据,因此,数据集的获取难度相对较大。近年来,细粒度图像的数据集越来越多,例如花卉[19]、鸟类[10]、狗[12]、汽车[13]、飞机[14]等,可见该领域的研究越来越广泛。本文按时间顺序总结了部分细粒度图像数据集,并指出了元类别、图像数量和类别数量,如表1所示。细粒度图像数据集类间相似且类内差异大,如图2所示。
图2 细粒度图像的类间相似与类内差异Fig.2 Inter class similarity and intra class difference of fine-grained images
表1 细粒度图像数据集Table 1 Fine-grained image datasets
下面重点介绍5 个最常用的主流数据集,其中鸟、狗及花卉是非刚性数据集,车和飞机是刚性数据集。
Oxford Flowers[19]数据集:该数据集是在2008 年被提出的细粒度图像数据集,早期的细粒度图像识别方法均基于该数据集来证明实验性能,总共有8 189张图像,有102种类别,且不包含额外标注信息。
CUB-200-2011[10]数据集:该数据集是最流行的细粒度图像数据集之一,于2011 年加利福尼亚理工学院推出的鸟类细粒度图像数据集。目前大多数细粒度图像识别方法选择它与新技术进行比较。该数据集总共有11 788张图像,有200种类别,且提供了边界框信息。
Stanford Dogs[12]数据集:该数据集是由Stanford University 2011年从ImageNet数据集中提取的,总共有20 580张图像,有120种类别,且提供了边界框信息。
Stanford Cars[13]数据集:该数据集是2013年Stanford University 在ICCV 会议上公布的汽车类细粒度图像数据集,总共有16 185张图像,根据车的品牌、型号以及年份将数据集划分为196类,且提供了边界框信息。
FGVC-Aircraft[14]数据集:该数据集是2013 年推出的飞机类细粒度图像数据集,总共包含10 000 张图片,有100类飞机照片,且提供了边界框信息。
随着深度学习技术的不断改进,CNN 得到了快速发展,并被应用于计算机视觉[32]、自然语言处理[33]等领域。CNN 来源于研究者对动物神经元的研究,其本质是多层感知机的变型,通过局部连接和共享权值的方式,降低了网络过拟合的风险。在计算机视觉领域之一的细粒度图像识别中,常用的CNN结构是VGGNet[34]和ResNet[35]。CNN除标准卷积外还有许多类型,如空洞卷积又名膨胀卷积,其可以增加感受野,保持输入特征的宽和高;深度可分离卷积是先逐通道再逐点卷积,其参数数量、运算成本均较低;3D 卷积则应用于视频上,其引入了时间维度,输出的结构也是3D的。
鉴于CNN 具有强大的提取特征能力,许多学者将其应用于细粒度图像识别任务中。近年,细粒度图像识别仅使用类别标签[36-38]的方法大体分为两种:基于单张和多张图片的输入方法。
当前基于单张图片输入的细粒度图像识别方法主要分为局部定位和特征表示。局部定位方法旨在目标图像上定位关键区域以进一步识别,其难点在于难以准确定位局部区域信息。特征表示的方法是在图像局部区域提取有意义的表示,其难点在于判别区域是细微的,难以详细地表示。为克服这两个难题,研究者提出许多方法,下面对这两个方案的研究进行详细介绍。
3.1.1 区域定位方法
细粒度图像子类别间是相似的且判别区域特征差异细微,因此,定位关键信息是一个具有挑战性的问题。针对鸟类来说,细微的判别部分在于鸟的嘴巴或眼睛。研究者针对这一难点将注意力模型引入到细粒度图像识别中,通过注意力机制寻找感兴趣区域,让深度学习模型更加关注某个局部的信息。
(1)注意力模型
注意力模型在细粒度图像识别任务中取得了显著成果。例如,Fu等人[39]首次提出了递归注意力卷积神经网络(recurrent attention convolutional neural network,RA-CNN)结构,该方法以多尺度递归地学习判别区域注意力和区域特征表示。具体来说,区域建议网络从全局图像开始,以循环的方式将大尺度定位的区域放大输入到小尺度中,以此迭代生成区域注意力图,进一步提高识别效率。但该方法仍有不足,其不能整合多个区域的注意力,因此,Zheng等人[40]提出多注意力卷积神经网络(multi-attention convolutional neural network,MA-CNN)学习方案,生成多个区域注意力部分,且对每一个单独的局部进行分类,以学习到更具代表性的特征表示。与RA-CNN 相比,MA-CNN 展示了多重注意力的力量,获得了更好的识别性能。为了更好地适应细粒度识别任务,Zheng 等人[41]进一步提出了渐进式注意力卷积神经网络(progressive attention convolutional neural network,PA-CNN),PA-CNN 分两步定位部分,其中部分建议网络(PPN)生成多个局部注意力图,部分纠正网络(PRN)从每个建议中学习特定特征,并为PPN提供精确的部分位置。PPN 和PRN 的这种耦合使它们能够以相互加强的方式进行优化,从而改进细粒度的精确定位,该方法在CUB-200-2011数据集上达到了87.8%的准确率。
许多注意力方法可以定位区域且放大,学习细节,但这些方法大多受困于部件数量和计算复杂的问题。为此Zheng等人[42]开发了三线性注意力采样网络(trilinear attention sampling network,TASN),以高效的师生方式从数百个部分建议中学习细粒度特征,并有效地将学习到的特征提取到单个CNN中,以提高识别效率,该方案虽解决了部件数量有限和计算开销较大的影响,但仍有不足,其是对卷积特征进行基于注意力的采样,而不是仅对图像进行采样。针对上述问题且受神经树的启发,Ji 等人[43]提出了注意力卷积二叉神经树(attention convolutional binary neural tree,ACNeT)学习方案,该方案将注意力机制与树结构结合,促进从粗到细的分层细粒度特征学习,其中深度卷积运算学习捕获对象表示,树结构描述由粗到细的分层特征学习过程,最终通过对叶节点的预测进行决策,该方法在3个具有挑战性的数据集上证明了有效性且在CUB-200-2011数据集上达到了88.1%的准确率。
从简单高效的网络设计目的出发,当前基于注意力模型的方法寻找的感兴趣区域的数量可能不是固定的。为此,Wei 等人[44]提出了两级渐进式注意力卷积网络(TPA-CNN),其不仅可以直接获得辨别区域,还可以动态选择辨别区域的数量。该模型包括多通道注意力融合(multi-channel attention-fusion,MCAF)和跨层元素注意力(cross-layer element-attention,CEA)两个模块,MCAF模块用于发现显著特定区域特征图通道;CEA模块为特征图元素分配权重值。从注意力可视化图角度看,MCAF 模块可聚焦于一个或多个积极区域;CEA 模块通过特征图元素之间的交互作用进一步定位最具辨别力的区域。该方法在3 个主流数据集上均取得了良好的效果,但其只考虑了特征图的通道和元素两个维度,未来还应对其余信息进行挖掘。该方案的网络结构如图3所示。
图3 两级渐进式注意力卷积网络结构Fig.3 Architecture of two-level progressive attention convolutional network
(2)其他方法
Yang等人[45]提出了一种自监督团结协作学习模型,以有效地定位信息区域。该模型为导航员-教师-审查者网络(navigator-teacher-scrutinizer network,NTS-Net),其由导航者、教师和审查者3 个子网络组成。具体来说,首先使导航者在教师的指导下检测出大部分信息区域,然后,审查者从导航器中仔细检查定位的区域并做出预测,三者相互合作,相互加强。该方法在CUB 200-2011 数据集上达到了87.5%的准确率。但该方法所选区域可能包含噪声信息干扰,为此,Yan等人[46]提出了渐进式定位模块(progressive patch localization module,PPL),以更准确地定位有判别性的区域块。具体地说,其利用分类模型找到最具区分性的块,然后去除最显著的区域,以帮助定位下一个最具区别性的块,重复此过程即可找到TOP-K 区分块。此外,为了进一步提高块级特征的表示能力,提出了特征校准模块(feature calibration module,FCM),利用全局信息选择性地突出判别性特征并抑制无用信息,进而帮助分类网络获得更好的性能
现有注意力方法对区域特征学习存在局限性,例如,鉴别区域主要位于图像上的过滤响应,不能直接用性能指标进行优化。针对上述问题,Liu 等人[47]提出了过滤蒸馏学习(filtration and distillation learning,FDL)模型。首先,基于提出和预测的匹配性,提出了一种用于区分部件区域的过滤学习(FL)方法,利用建议预测匹配性作为区域建议网络(RPN)的性能指标,从而实现RPN的直接优化,以筛选出最具鉴别能力的区域。具体来说,将基于对象的特征学习和基于区域的特征学习分别表述为“教师”和“学生”,并将学习到的知识从对象转移到基于区域的特征学习。值得一提的是,提取知识的动机与TASN完全不同。TASN将细粒度知识转化为基于对象的特征学习,而FDL旨在将整个对象的知识融合到基于区域的特征学习中。FDL 方法有效地增强了区域注意力,且在CUB 200-2011数据集上达到了89.09%的准确率,但其参数量较大。
现有方法通常直接从高层特征图中提取有鉴别能力的区域,然而卷积神经网络由于叠加局部感受域的操作,导致高层次特征图中的鉴别区域扩散,使选择的区域含有大量的噪声或背景信息,从而降低了算法的性能。为了解决上述问题,Wang 等人[48]提出了一种端到端的面向鉴别特征的高斯混合模型(DF-GMM)。具体而言,DF-GMM包括低秩表示机制,该机制通过高斯混合模型(GMM)学习一组低秩判别基,以准确地选择判别细节并过滤高层语义特征图中更多的无关信息;低秩表示重组机制,恢复低秩判别基的空间信息,重建低秩特征图,通过将低阶判别基恢复到高阶特征图的相同嵌入空间中。实验表明,该方法缓解了高阶特征图中的判别区域扩散问题,更精确地定位了判别区域。
表2对基于区域定位方法进行了总结,可以看到利用注意力模型可以提高定位的准确性,但仅通过定位区域再放大来学习细节,并不理想。TASN为了解决这个问题就设计从数百个建议中学习,以准确定位区域。从表2 可以看出基于区域定位方法的细粒度图像识别方法仍有很大的上升空间。
表2 CUB-200-2011数据集上不同方法的创新点及准确率Table 2 Accuracy and innovation points of different methods on CUB-200-2011 dataset
3.1.2 特征表示方法
细粒度图像识别任务侧重于丰富特征表示可以获得良好的分类结果,然而子类别之间的差异通常是细微的局部区域,仅依靠全局的语义信息会限制表示能力,进而限制识别的有效性。研究者为解决这一缺点,提出了从语义相关性、部分特征交互等方向开展丰富特征表示的工作,下面将对这些研究方法进行介绍。
(1)语义相关性
语义信息是信息的表现形式之一,指能够消除事物不确定性的有一定意义的信息。但细粒度图像识别任务往往会忽略部分之间的语义信息关系。针对上述问题,Wang 等人[49]提出一个端到端的基于图传播的相关学习方案,通过设计图传播子网络,学习全局和空间相关性。同时,构建了一个特征向量相关特征加强子网络,增强从所选块中提取的特征。实验表明,此模型是有效的且在CUB-200-2011 数据集上达到了88.3%的准确率,但其未考虑特征之间的语义相关性。为此,Zheng等人[50]提出了一种新的深度双线性变换块,其利用语义信息,通过计算语义组内的成对交互,获得有效的双线性特征,以提高识别准确率。
大多数方法忽略了细粒度对象的语义结构,且没有利用传统的细粒度识别技术,如粗到细分类。Li等人[51]提出一种两分支网络框架,即语义双线性池化,用分层标签树进行细粒度识别。该框架可以从层次级别自适应地学习语义信息。此外,在测试时仅利用细分支,因此,不会增加计算量。实验结果表明,提出的方法在四个主流数据集上实现了先进的性能,且在CUB-200-2011数据集上达到了88.9%的准确率。
虽然以上方法均取得良好效果,但是语义信息只能在高层特征中获得,因此,往往会忽略底层特征,未来研究方向可能在底层特征上运用深度双线性变换,进一步丰富底层特征的表示,提高识别的准确性。
(2)特征交互
研究显示,双线性池化模型是有效的,但往往会忽略层间部分交互和特征学习之间的关联性。针对这一问题,Yu 等人[52]提出一种跨层双线性池化技术,用于捕获层间部分特征关系。而且在跨层双线性池的基础上,还提出了一种分层双线性池框架,集成了多个跨层双线性模块,从中间卷积层获取互补信息,从而提高性能,但该方法对于融合更多层特征以获得多尺度的部分表示仍有欠缺。对此,Luo等人[53]提出交叉X学习方案,通过利用不同图像和不同网络层特征之间的关系来学习细粒度特征。首先,通过跨层正则化解决多尺度特征学习问题,再通过跨层匹配预测分布,提高特征在不同层中的表示,实验表明,在CUB-200-2011 数据集上Luo 等人[53]的方法优于Yu等人[52]的方法。
为进一步提高细粒度图像识别任务的效率且考虑到CNN 本身薄弱。Cui 等人[54]提出了一种通用的池化框架,以核函数的形式捕捉特征之间的高阶信息,该框架以无参数的方式使用紧凑的显式特征映射将高斯RBF等核函数逼近到给定的阶数,且与CNN相结合,内核的组成可以通过误差反向传播以端到端的方式从数据中学习。该方法通过特征映射捕获高阶和非线性的特征交互,大量实验表明,该方法对细粒度图像识别效率有所改进。Cai等人[55]提出了一种新的分层卷积高阶集成框架,以获得特征的丰富表示。基于核映射方案,提出了一种利用高阶部件关系的多项式预测器,并给出了可训练的多项式模块。此外,高阶集成框架可以自然地扩展,以挖掘层次结构中的多尺度零件关系。上述两种方法均改进了CNN框架,提高了识别效率。
(3)损失函数方法
损失函数在深度网络的构建中起着重要作用,其可以直接影响学习的分类器和特征。因此,设计细粒度定制损失函数是细粒度图像识别的一个重要方向。
文献中还探讨了设计用于定位部分级模式和进一步聚合图像级表示的单一损失函数。Sun等人[38]开发了一个梯度增强损失函数,以及一个多样化块,以迫使网络快速移动,以区分硬类。具体而言,梯度增强损失通过适当放大梯度更新来解决密切相关类之间的歧义;多样化块抑制类激活图的区分区域,从而迫使网络寻找替代的信息特征。虽该方法取得了良好的实验结果,但训练机制过于复杂,为此,Chang等人[56]提出了互通道损失(mutual-channel Loss,MC-Loss),对于细粒度对象的部分定位不需要任何特定的网络修改。MC-Loss 由两个特定于通道的判别性组件和辨别性组件组成,辨别性组件通过通道注意力机制强制同一类别的所有特征通道具有辨别性;多样性组件限制通道,使其在空间维度上相互排斥;最终得到一组特征通道,每个通道反映特定类别的不同局部区分区域,以此改进细粒度识别效率。该方法在CUB-200-2011 数据集上获得了87.3%的准确率,且仅需要一次损失。上述基于损失函数的细粒度识别方法与主干网络无关,通常可以通过使用更强大的主干网络架构来提高其性能。
(4)其他方法
针对关键区域之外的额外区域可能会影响判别效果,Zhang等人[57]提出了专家混合方案,通过学习前一位专家的先验信息,将细粒度问题划分为子空间,通过结合逐步增强的策略和基于KL 差异的约束来学习,专家做出不同的预测,最后对所有专家的预测进行加权组合,补足额外区域信息的缺失。Chen 等人[58]则提出“破坏和构造学习”方法。具体来说,首先将输入图像划分为局部区域,然后通过区域混淆机制对其进行洗牌。在“构建”中,区域对齐网络用于模拟区域之间的语义关联,然后恢复局部区域的原始空间布局。DCL中的破坏性学习提高了识别的难度,指导网络学习专家知识进行细粒度识别;而构建学习可以对对象各部分之间的语义关联进行建模。上述两种方法进一步捕获了容易被忽略的额外信息,为细粒度图像识别提供了新的思路。
为提高注意力性能,Rao 等人[59]提出了基于因果推理的反事实注意力学习方法。该方法通过比较事实和反事实,通过影响最终的预测来量化注意力质量。该方法在训练过程中可以忽略额外成本。在3 个基准细粒度数据集上进行了广泛的实验,达到了先进的性能,在CUB-200-2011数据集上达到了90.6%的准确率。
表3 对基于特征表示的方法进行了总结,可以发现,现对于丰富特征表示的研究有很多,如利用语义信息、特征交互信息、损失函数等方法来丰富特征表示以提高识别效率。
表3 CUB-200-2011数据集上不同方法的创新点及准确率Table 3 Accuracy and innovation points of different methods on CUB-200-2011 dataset
基于多张图片输入方法有分类别输入和同类别输入,多张图片输入重点捕捉不同图像之间的关联信息,从而获得对比线索信息,以提高识别的性能。当前基于多张图像输入识别方法有三类缺点,首先,大多数方法单独处理对象的各个部分,忽略目标部分之间和部分之间存在空间关系;其次,高维特征不适合大规模应用,并可能导致过拟合;最后,不同语义特征之间的内在联系很少被研究。针对以上问题不同研究者提出了解决方法,例如,Peng等人[60]提出了目标部分注意力模型,该模型集成了两个级别的注意力,目标级别的定位图像中的目标,部分级别的选择判别区域。目标部分空间约束模型结合了两个空间约束,目标空间约束确保选中具有代表性的部分,部分空间约束消除冗余,增强所选部分的识别性。此方法虽然提高了细粒度图像识别的效率,但其孤立地处理每个对象部分,忽略了它们之间的相关性。针对这一问题,Sun 等人[26]提出了一种多注意力多约束卷积神经网络。首先,学习了多个部分对应的注意力区域,然后利用度量学习来拉近同一注意力同一类特征,同时将不同注意力或不同类特征推离。而且相比RA-CNN[39]通过多个可选阶段进行训练,此方法只通过一个阶段进行训练来获得所有需要的特征,加强了不同区域部分的相关性。在鸟类、狗和汽车的数据集上表现出了优越的性能,且在CUB-200-2011 数据集上达到了86.5%的准确率。
上述两种方法均通过注意力机制来放大辨别部分区域,这样会使在复杂背景下表现不稳定且不同语义特征之间内在的相互关系很少被探索。针对这一问题,Zhao 等人[61]提出了一种基于图的关系发现方法来建立对高阶关系的上下文理解。具体步骤,通过一个有效的关系发现模块来学习位置和语义特征关系,并学习语义分组规则来聚类高阶关系;通过一种简单而有效的基于分组的学习策略,利用聚类中心更新梯度,缓解硬样本导致的过拟合和异常。因此,该方案掌握了细粒度对象关键的上下文细节且提高了识别效率。
受人类通过比较图像对可以有效地识别出对比线索的启发。Zhuang 等人[62]在度量学习框架之上建立了一个成对交互网络(attentive pairwise interaction network,API-Net),其能自适应地从一对图像中发现对比线索,并通过成对注意力交互区分。虽然该方法取得了良好的效果,但该方法没有利用通道之间丰富的关系捕捉这种差异。对此,Gao等人[63]提出了一个通道交互网络(CIN),对图像内部和图像之间的通道交互进行建模。具体通过对比通道交互模块拉近正对,同时推开负对,以达到期望的效果。此方法在获取到对比线索的同时,往往会忽略细小的补充信息,因此,Zhang 等人[64]提出了一种渐进式协同注意力学习方案。其中,协同注意力模块通过比较图像对来学习判别性特征;注意力擦除模块通过擦除最显著区域来学习图像的细微互补特征。实验表明,该方法有效且成功提高了识别的准确率。
双线性池模型利用嵌入特征的外积增强了表示能力,取得了良好的分类性能。然而,这些模型导致了特征的高维,这使其不适合大规模应用,并可能导致过拟合。针对这一问题,Xu 等人[65]提出一种特征相关残差方法,在不增加特征维数的情况下挖掘嵌入特征的通道和空间相关性。然后,利用相关残差特征对原始特征进行补充。除了交叉熵损失之外,该方法还加入了提取特征的核范数和三重态损失函数进行正则化操作,以减轻过拟合、增强类间变化和减少类内变化。
表4对基于多张图片输入的方法进行了总结,可以发现从图像对中获取对比线索可以提高识别的准确率。相比之下,Zhao[61]提出的基于图关系的发现方法,在CUB-200-2011 数据集下的准确率最高,由此可见高阶关系的上下文理解可以有效的提高识别效率,未来可以考虑联合低阶和高阶的信息。
表4 CUB-200-2011数据集上不同方法的创新点及准确率Table 4 Accuracy and innovation points of different methods on CUB-200-2011 dataset
基于CNN的细粒度图像识别方法大多通过重复利用骨干网络来提取区域特征,且通过定位最具辨别力的局部区域来提高网络捕获细微差异的能力。这些方法不可避免地使识别通道复杂化,定位的局部区域有大量的冗余。针对这些问题,研究者提出基于Transformer完成细粒度图像识别任务。Transformer是Google团队在2017 年提出的一种关于自然语言处理的经典模型,其结合了自注意力(self-attention)机制,并且没有采用循环神经网络(recurrent neural network,RNN)的顺序结构,使得模型可以并行化训练,能够捕捉全局信息。近年,视觉Transformer(vision transformers,ViT)在传统的识别任务中已经有所突破,而且在目标检测[66]、语义分割[67]等领域也展示了其捕捉全局和局部特征的能力。与CNN 相比,Transformer 的图像序列化是一种全新的形式。
He等人[68]提出基于Transformer的细粒度图像识别网络框架。该框架将Transformer最后一层前的原始注意力权值汇集到了一个注意力图中,以指导网络选择准确的判别区域图像块。具体来说,该方法利用自注意力机制捕获最具辨别力的区域,用图像块处理区域之间的内部关系,还利用对比损失函数扩大相似子类特征表示之间的距离。该方法的网络结构如图4 所示。虽然该方案输入的图像块间有重叠,可避免对局部邻域结构造成损害,但计算成本仍然较高且在背景简单需要较少定位判别区域的Stanford Cars 数据集上的识别准确率较低。
图4 细粒度Transformer网络框架Fig.4 Transformer architecture for fine-grained
虽然He 等人[68]提高了细粒度图像识别的效率,但其方法中图像块大小固定,深层类token 集中在全局感受野,不能生成多尺度细粒度识别特征。对此,Zhang等人[69]提出了一种新的自适应注意力多尺度融合Transformer 方法。该方法中选择注意力收集模块利用注意力权重,自适应地筛选出相对重要的输入块,而且多尺度(全局和局部)通道是由权重共享编码器监督的,可端到端训练。
细粒度图像识别方法的鉴别线索通常是零碎且会忽略额外区域的细节信息,对其他相关图像线索缺乏考虑。为了解决上述问题,Liu 等人[70]提出了一种带有峰值抑制模块和知识引导模块的Transformer结构。峰值抑制模块根据注意力权重值去除最具辨别力的标记,强制网络关注额外被忽略的信息区域,保证细粒度表示的多样性;知识引导模块将峰值抑制模块生成的图像表示与可学习的知识嵌入进行比较,获得知识响应系数,响应系数表示分类分数,知识学习形式化表示分类问题。该方案在训练过程中,同时更新知识嵌入和图像表示,使知识嵌入大量同一类别不同图像的鉴别线索,将获得的知识嵌入到图像表示中作为综合表示,从而显著提高识别性能。
针对自注意力机制将所有图像块的信息聚合加权到分类token上,使深层的分类token更多地聚焦全局信息,缺乏局部和底层特征的问题,Wang 等人[71]提出了一种特征融合视觉Transformer(feature fusion vision transformer,FFVT)框架,汇集了每个Transformer 层的重要token,以补全局部、底层和中层信息。具体来说,通过一种token 选择方法,选择出每一层具有代表性的token 作为最后一层的输入。实验表明,该方法提高了细粒度图像识别的准确率。Conde等人[72]提出了一种多阶段ViT的细粒度图像识别框架,该框架利用固有的多头自注意力机制从多个不同的局部区域捕获有区别的图像特征。同时采用不同的注意力引导增强,通过增强模型来学习更多不同的鉴别特征,从而提高了模型的泛化能力。但该方法仍有不足,其不能完全端到端训练,需要以顺序(多阶段)的方式训练;对计算能力要求高。未来目标是使框架可端到端训练。
表5 对基于Transformer 方法进行了总结,可见Transformer 在细粒度图像识别任务中获得了很高的准确率。首先提出Transformer 的He[68]方法虽然精度很高,但由于输入图像块大小是固定的,从而适用性较差。Transformer 作为新引进的技术,其现有缺点是参数量大,计算时间长。未来可以考虑计算时间长短上进行探索。
表5 CUB-200-2011数据集上不同方法的创新点及准确率Table 5 Accuracy and innovation points of different methods on CUB-200-2011 dataset
综上,随着深度学习技术的不断发展,细粒度识别已经有了良好的发展前景。本文从卷积神经网络和Transformer两个角度,详细介绍了仅使用类别标签的细粒度图像方法研究现状。虽然此领域得到了一定突破,但仍有局限性。在未来,研究者可以继续探索细粒度领域的可能性。
卷积神经网络和Transformer 两种方法对细粒度图像识别任务的发展进程都有促进作用。其中卷积神经网络侧重于局部信息的获取,而Transformer 侧重于全局信息的获取。细粒度图像识别任务中局部信息和全局信息均有重要作用,因此,未来可以考虑将两者结合使用,以进一步研究。
BERT 模型是一种语言表征模型,它用Transformer的双向编码器表示。与其他语言模型不同,BERT 旨在通过联合调节所有层中的上下文来预先训练深度双向表示。因此,预训练的BERT表示可以通过一个额外的输出层进行微调,适用于广泛任务的先进模型的构建,无需针对具体任务做大幅架构修改。由于Transformer可以提高细粒度图像识别的准确率,因此,未来可以考虑将BERT模型引入到细粒度领域加以研究。
针对深度学习计算量太大,计算成本太高,所以提出了一种新的网络结构宽度学习。相对于“深度”结构来说,“宽度”结构由于没有层与层之间的耦合而非常简洁。同样,由于没有多层连接,宽度网络亦不需要利用梯度下降来更新权值,所以计算速度大大优于深度学习。在网络精度达不到要求时,可以通过增加网络的“宽度”来提升精度,而增加宽度所增加的计算量和深度网络增加层数相比,可以说是微乎其微。因此,未来可以考虑将宽度学习应用到细粒度图像领域尝试提高计算速度。
细粒度图像识别是计算机视觉领域的一个热门研究领域。深度卷积特征的出现为其带来了新的发展机遇,视觉Transformer 的出现为细粒度图像识别带来了新的思路,两者结合将会引领细粒度图像识别达到一个新的高度。本文从卷积神经网络、视觉Transformer 两类方法上对细粒度图像识别的发展状况给予介绍;对细粒度识别的未来研究方向作了深入的讨论,总结了该领域未来可能的发展机遇。