精华内容
下载资源
问答
  • 目前最新的细粒度图像识别,哪个更NB?知道的麻烦把模型说一下,我看一下,谢谢!
  • 细粒度图像分类(FGVC)---综述

    万次阅读 多人点赞 2019-04-28 16:28:02
    什么是细粒度图像分类 细粒度图像分类问题是对大类下的子类进行识别。细粒度图像分析任务相对通用图像(General/Generic Images)任务的区别和难点在于其图像所属类别的粒度更为精细。 以图1为例,通用图像分类其...

    一、概述

    什么是细粒度图像分类

    细粒度图像分类问题是对大类下的子类进行识别。细粒度图像分析任务相对通用图像(General/Generic Images)任务的区别和难点在于其图像所属类别的粒度更为精细。
    以图1为例,通用图像分类其任务诉求是将“袋鼠”和“狗”这两个物体大类(蓝色框和红色框中物体)分开,可见无论从样貌、形态等方面,二者还是很容易被区分的;而细粒度图像的分类任务则要求对“狗”该类类别下细粒度的子类,即分别为“哈士奇”和“爱斯基摩犬”的图像分辨开来。正因同类别物种的不同子类往往仅在耳朵形状、毛色等细微处存在差异,可谓“差之毫厘,谬以千里”。不止对计算机,对普通人来说,细粒度图像任务的难度和挑战无疑也更为巨大。
    在这里插入图片描述

    意义

    细粒度图像分类无论在工业界还是学术界都有着广泛的研究需求与应用场景。与之相关的研究课题主要包括识别不同种类的鸟、狗、花、车、飞机等。在实际生活中,识别不同的子类别又存在着巨大的应用需求。例如, 在生态保护中, 有效识别不同种类的生物,是进行生态研究的重要前提。如果能够借助于计算机视觉的技术, 实现低成本的细粒度图像识别, 那么无论对于学术界, 还是工业界而言, 都有着非常重要的意义。

    细粒度图像分类的挑战

    由于分类的粒度很小,细粒度图像分类非常困难,在某些类别上甚至专家都难以区分。主要原因有三:
    子类之间差异细微:只在某个局部上有细微差异,如狗的眼睛
    子类内部差异巨大:如姿态、背景带来的差异
    受视角、背景、遮挡等因素影响较大

    细粒度分类常用方法

    目前细粒度图像分类基本上都 采用深度学习的方法,取得不错的效果。具体来说,大致可以分为以下几类:

    1. 使用通用DCNN(Deep Convolutional Neural Network,深度卷积神经网络)进行细粒度分类,该方法难以捕获有区别性的局部细节,目前已经不太常用;
    2. 基于定位-识别的方法:先找到有区分度的局部,然后进行特征提取和分类,该方法又可分为强监督和弱监督两种;
    3. 基于网络集成的方法:使用多个DCNN对细粒度识别中的相似特征进行判别;
    4. 卷积特征的高阶编码方法:将cnn特征进行高阶转换然后进行分类,主要有fisher vector、双线性模型、核融合等。

    二、基于定位-识别的方法

    人类区分相似物体时,通常会通过快速扫描的方式先找到具有区别性的区域,然后在该区域仔细进行比对识别。与人类的方式类似,基于定位-识别的方法将细粒度图像识别分为两个部分:区别性区域定位和区域中的细粒度特征学习。在区别性区域定位时,通常会以强监督或弱监督的方式利用深度神经网络的卷积特征响应;而在细粒度特征学习时,则从定位到的各个区域中分别抽取特征,并将各特征组合到一起最后进行分类。
    强监督的方法不仅需要类别标签,而且需要部件标注和关键部位框,该种方法取得了不错的效果,但缺点在于需要昂贵的人工标注,而且人工标注的位置不一定是最佳的区别性区域,这完全依赖于标注者的认知水平。
    进来,很多弱监督的方法被提出来。该类方法利用注意力机制、聚类等手段来自动发现区别性区域,不需要部件标注,仅仅有分类标签即可完成训练。
    当前有很多方法在朝这方面努力,从大的发展趋势来看,基于定位-分类的细粒度图像分类方法经历了从手工特征工程到多阶段方法再到end to end的发展过程。

    2.1 强监督

    所谓“强监督细粒度图像分类模型”是指:在模型训练时,为了获得更好的分类精度,除了图像的类别标签外,还使用了物体标注框(Object Bounding Box)和部位标注点(Part Annotation)等额外的人工标注信息,如下图所示。
    在这里插入图片描述

    2.1.1 Part-based R-CNN

    <Part-based R-CNNs for fine-grained category detection - ECCV2014>
    相信大家一定对R-CNN不陌生,顾名思义,Part-based R-CNN就是利用R-CNN算法对细粒度图像进行物体级别(例如鸟类)与其局部区域(头、身体等部位)的检测,其总体流程如下图所示。
    在这里插入图片描述
    首先利用Selective Search等算法在细粒度图像中产生物体或物体部位可能出现的候选框(Object Proposal)。之后用类似于R-CNN做物体检测的流程,借助细粒度图像中的Object Bounding Box和Part Annotation可以训练出三个检测模型(Detection Model):一个对应细粒度物体级别检测;一个对应物体头部检测;另一个则对应躯干部位检测。然后,对三个检测模型得到的检测框加上位置几何约束,例如,头部和躯干的大体方位,以及位置偏移不能太离谱等。这样便可得到较理想的物体/部位检测结果(如图3右上)。
    接下来将得到的图像块(Image Patch)作为输入,分别训练一个CNN,则该CNN可以学习到针对该物体/部位的特征。最终将三者的全连接层特征级联(Concatenate)作为整张细粒度图像的特征表示。显然,这样的特征表示既包含全部特征(即物体级别特征),又包含具有更强判别性的局部特征(即部位特征:头部特征/躯干特征),因此分类精度较理想。

    Part R-CNN的进步是明显的. 从局部区域的检测定位, 到特征的提取, 该算法均基于卷积神经网络, 并针对细粒度图像的特点进行改进优化, 以改进通用物体定位检测算法在该任务上的不足, 达到了一个相对比较高的准确度. 同时,该算法进一步放松了对标记信息的依赖程度, 在测试时无需提供任何标记信息, 大大增强了算法的实用性. 、
    其不足之处在于,第一是 利用自底向上的区域产生方法, 会产生大量无关区域, 这会在很大程度上影响算法的速度. 第二是不仅在训练时需要借助Bounding Box和Part Annotation,为了取得满意的分类精度,在测试时甚至还要求测试图像提供Bounding Box,这便限制了Part-based R-CNN在实际场景中的应用。第三是该算法本身的创新性十分有限, 既然局部区域对于细粒度图像而言是关键所在, 那么对其进行定位检测则是必要的途径. 只是引入现有的通用定位算法, 似乎并不能很好地解决该问题。

    2.1.2Pose Normalized CNN

    <Bird Species Categorization Using Pose Normalized Deep Convolutional Nets - 2014>
    姿态归一化CNN的创新之处在于使用原型对图像进行了姿态对齐操作, 并针对不同的局部区域提取不同网络层的特征, 以试图构造一个更具区分度的特征表示. 它在原有的局部区域模型的基础上, 进一步考虑了鸟类的不同姿态的干扰, 减轻了类内方差造成的影响, 从而取得了较好的性能表现. 但是, 该算法对于关键点的检测精度较为敏感, 利用DP算法对关键点进行检测, 其精度为75.7%。

    有感于Part-based R-CNN,S. Branson等人提出在用DPM算法得到Part Annotation的预测点后同样可以获得物体级别和部位级别的检测框,如下图所示。与之前工作不同的是,Pose Normalized CNN对部位级别图像块做了姿态对齐操作。

    此外,由于CNN不同层的特征具有不同的表示特性(如浅层特征表示边缘等信息,深层特征更具高层语义),该工作还提出应针对细粒度图像不同级别的图像块,提取不同层的卷积特征。该网络将经过姿态归一化提取的conv5、fc6等底层特征与未对齐的fc8高级特征进行融合

    训练阶段,姿态归一化网络使用DPM预测2D位置及13个语义部位关键点,或者直接使用已提供的物体框及部位标注信息学习姿态原型。将不同的部位图像进行弯曲,并且使用不同的DCNN(AlexNet)提取其特征。最后拼接各个部位及整张图像的特征训练分类器。

    最终,还是将不同级别特征级联作为整张图像的表示。如此的姿态对齐操作和不同层特征融合方式,使得Pose Normalized CNN在使用同样多标记信息时取得了相比Part-based R-CNN高2%的分类精度。

    在这里插入图片描述

    2.1.3 基于多候选区集成的部件定位(Part localization using multi-proposal consensus)

    <Part Localization using Multi-Proposal Consensus for Fine-Grained Categorization - BMVA2015>

    使用基于AlexNet的单个DCNN定位关键点和区域。

    将AlexNet最后的fc8层替换为两个产生关键点及视觉特征的输出层。使用边缘框分块(edge box crops)方法将图像分块,之后产生其特征点位置及视觉特征,去除自信度低的预测结果。之后取剩余预测结果的中心点,作为最终关键点预测结果。并使用将部件检测网络中关键点位置的特征,将其拼接,使用200路一对所有SVM分类器进行分类。

    2.1.4部件堆积CNN(Part-stack CNN,PS-CNN)

    <Part-stacked CNN for fine-grained visual categorization - CVPR2016>

    基于人工标记的强部件标注信息,PS-CNN使用全卷积网络进行部件定位和一个双流的分类网络对物体及部件的特征进行编码

    全卷积网络将CNN中的全连接层使用1×1的卷积代替,其输出特征图的维度小于输入图像维度。输出特征图的每个像素点对应输入图像的一个区域,该区域称为其感受野。FCN具有以下优点:1)其特征图可以直接作为部件的定位结果应用于分类网络;2)FCN能够同时得到多部件的定位结果;3)FCN的学习及推理较为高效。
    使用FCN得到conv5中M个关键点的位置之后,将定位结果输入到分类网络,使用两级架构分析图像物体级及部件级的特征。
    部件级网络首先通过共享层提取特征,之后分别计算关键点周围的部件特征。物体级别网络使用标注框提取对象级CNN特征,及pool5特征。之后将部件级网络及物体级网络特征图合并,进行分类。
    在这里插入图片描述

    2.1.5 Deep LAC(Location Alignment Classification)

    <Deep LAC: Deep localization, alignment and classification for fine-grained recognition - CVPR2015>

    Deep LAC在同一个网络中进行部件定位、对齐及分类,提出了VLF(valve linkage function,阀门连接函数)函数,进行Deep LAC中的反向传播,其能够自适应地减小分类及对齐的误差,并且更新定位结果。

    部件定位子网络包含5个卷积层及3个全连接层。输出为框的左上角及右下角点的坐标。

    对齐子网络接收部件定位结果,执行模板对齐,产生姿态对齐的部件图像。对齐子网络进行平移、缩放、旋转等操作用于姿态对齐区域的生成。同时,该子网络还负责反向传播过程中分类及定位结果的桥接作用。

    对齐子网络中的VLF是一个非常关键的模块,优化定位及分类子网络间的连接,协调分类结果与定位结果。使网络达到稳定状态。
    在这里插入图片描述

    Mask-CNN

    <Mask-CNN : Localizing Parts and Selecting Descriptors for Fine-Grained Image Recognition --Pattern Recognition, 2018>
    该模型亦分为两个模块,第一是Part Localization;第二是全局和局部图像块的特征学习。需要指出的是,与前两个工作的不同在于,在Mask-CNN中,借助FCN学习一个部位分割模型(Part-Based Segmentation Model)。其真实标记是通过Part Annotation得到的头部和躯干部位的最小外接矩形,如下图(c)所示。在FCN中,Part Localization这一问题就转化为一个三分类分割问题,其中,一类为头部、一类为躯干、最后一类则是背景。
    在这里插入图片描述
    FCN训练完毕后,可以对测试集中的细粒度图像进行较精确地part定位,下图展示了一些定位效果图。可以发现,基于FCN的part定位方式可以对大多数细粒度图像进行较好的头部和躯干定位。同时,还能注意到,即使FCN的真实标记是粗糙的矩形框,但其预测结果中针对part稍精细些的轮廓也能较好地得到。在此,我们称预测得到的part分割结果为Part Mask。不过,对于一些复杂背景图像(如图6右下)part定位结果还有待提高。

    在得到Part Mask后,可以通过Crop获得对应的图像块。同时,两个Part Mask组合起来刚好可组成一个较完整的Object Mask。同样,基于物体/部位图像块,Mask-CNN训练了三个子网络。

    在此需要特别指出的是,在每个子网络中,上一步骤中学到的Part/Object Mask还起到了一个关键作用,即“筛选关键卷积特征描述子”(Selecting Useful Convolutional Descriptor),如图7( c)-(d)。这个模块也是我们首次在细粒度图像分类中提出的。筛选特征描述子的好处在于,可以保留表示前景的描述子,而去除表示背景的卷积描述子的干扰。筛选后,对保留下来的特征描述子进行全局平均和最大池化(Global Average/Max Pooling)操作,后将二者池化后的特征级联作为子网络的特征表示,最后将三个子网特征再次级联作为整张图像的特征表示。
    在这里插入图片描述

    实验表明,基于筛选的Mask-CNN在仅依靠训练时提供的Part Annotation(不需要Bounding Box,同时测试时不需额外监督信息)取得了目前细粒度图像分类最高的分类精度(在经典CUB数据上,基于ResNet的模型对200类不同鸟类分类精度可达87.3%)。此外,借助FCN学习Part Mask来进行Part定位的做法也取得了Part定位的最好结果。

    2.2 弱监督

    值得借鉴的思想:目标检测中—基于弱监督的目标定位
    Weakly Supervised Object Localization
    cvpr2020-南大提伪监督目标定位方法,弱监督目标定位的最新SOTA

    2.2.1 两级注意力(Two-level attention)

    两级注意力(Two Level Attention)算法第一个尝试不依赖额外的标注信息, 而仅仅使用类别标签来完成细粒度图像分类的工作。 两级注意力结合了三种类型的注意力:生成候选图像块的自底向上注意力、选择相关块形成特定物体的对象级自顶向下注意力、定位判别性部件的部件级自底向上注意力。通过整合这些类型的注意力机制训练特定的DCNN,以提取前景物体及特征较强的部件。该模型容易泛化,不需要边界框及部件标注。

    之后基于FilterNet选择出来的框训练DomainNet。特别地,使用相似矩阵将中间层分为K个簇,簇的作用域部件检测器相同。之后各个簇筛选出的图像块被缩放到DomainNet输入大小,生成其激活值,之后将不同部件的激活值汇总并训练一对多SVM分类器。最终,将物体级与部件级注意力预测结果合并,以利用两级注意力的优势。
    在这里插入图片描述
    总体上来看, 两级注意力模型较好地解决了在只有类别标签的情况下, 如何对局部区域进行检测的问题. 但是, 利用聚类算法所得到的局部区域, 准确度十分有限. 在同样使用Alex Net的情况下, 其分类精度要低于强监督的Part R-CNN算法。

    2.2.2 细粒度分类的注意力(Attention for fine-grained categorization)

    <Attention for fine-grained categorization - RCLR2015>

    人类在识别时通常不断移动物体以观察相关的特征,并不断将特征添加到图像表征序列中。
    AFGC(细粒度分类注意力模型)是一个基于GoogLeNet的RNN( deep recurrent neural network,深度递归神经网络),在每个时间步处理一个多分辨率的图像块。网络使用该图像块更新图像的表征,并与之前的激活值相结合,输出下一注意点的位置或输出物体最终分类结果。
    在这里插入图片描述

    2.2.3 FCN注意力模型(FCN attention)

    FCN attention是基于强化学习的全卷积注意力定位网络,其能够自适应地选择多任务驱动的注意力区域。由于其基于FCN架构,因而更加高效,并且能够对多个物体部件进行定位,同时提取多个注意力区域的特征。其中,不同部件可以有不同的预定义大小。网络共包括局部定位模块和分类模块。

    局部定位模块使用全卷积网络进行部件定位,其基于VGG16模型,输出单通道的自信度映射图。置信度最高的区域被选择作为部件位置。每个时间步都生成一个特定的部件位置。

    分类模块对所有部件及整张图像进行分类。对局部图像裁剪到模型输入大小,最后取所有部件及全局预测的均值。
    在这里插入图片描述

    2.2.4 多样化视觉注意力(Diversified visual attention)

    DVAN(diversified visual attention network,多样注意力网络 )提高视觉注意力多样性以提取最大程度的判别性特征。包括四个部分:注意力区域生成、CNN特征提取、多样性视觉注意力、分类。 该网络**采用LSTM作为注意力机制**,在不同时间步生成不同的注意力区域。传统注意力模型只关注单个位置,DVAN使用特定的损失函数联合判别多个位置的特征。同时每个时间步都会预测物体类别,最后采用各预测结果的均值。

    在这里插入图片描述

    RACNN

    本文中,提出了一个全新的循环注意力卷积神经网络(recurrent attention convolutional neural network——RA-CNN),用互相强化的方式对判别区域注意力(discriminative region attention)和基于区域的特征表征(region-based feature representation)进行递归学习。
    在网络结构设计上主要包含3个scale子网络,每个scale子网络的网络结构都是一样的,只是网络参数不一样,在每个scale子网络中包含两种类型的网络:分类网络和APN网络。数据流程为:输入图像通过分类网络提取特征并进行分类,然后attention proposal network(APN)网络基于提取到的特征进行训练得到attention区域信息,再将attention区域crop出来并放大,再作为第二个scale网络的输入,这样重复进行3次就能得到3个scale网络的输出结果,通过融合不同scale网络的结果能达到更好的效果。
    在这里插入图片描述
    RA-CNN 通过尺度内分类损失(intra-scale classification loss)和尺度间排序损失(inter-scale ranking loss)进行优化,以相互学习精准的区域注意力(region attention)和细粒度表征(fine-grained representation)。RA-CNN 并不需要边界框(bounding box)或边界部分的标注(part annotations),而且可以进行端到端的训练。
    本文采用交替优化的方式进行训练。

    MACNN

    这篇文章提出了一个多注意力卷积神经网络(MA-CNN),让part generation 和 feature learning能互相强化。同时模型抛弃手工标记attention part 的方法,采用弱监督学习方法。(手工标注attention part 难定标注位置,且耗费人力)
    本文亮点:

    1. 利用feature map 不同通道(channels)关注的视觉信息不同,峰值响应区域也不同这一特点,聚类响应区域相近的通道,得到 attention part。
    2. 由于1中part 定位方式特殊,本文提出了一个channel grouping loss,目的让part内距离更近(intra-class similarity),不同part距离尽量远(inter-class separability)。

    在这里插入图片描述
    MA-CNN框架如上图所示。模型分为三部分,base network、channel grouping layers 和part classification sub-networks.

    输入一张图片(a)给网络,通过base network 产生feature map(b);将(b)中的各通道展开,以12个通道为例,得到(c),可见每个通道都有一个峰值响应区域(白色部分),同时有些通道的峰值响应区域相近(同一种颜色外框表示);文中通过堆叠的全连接层达到聚类效果,把相近的区域归为一类,如图(e),图中划为4类。同类的channel相加,取sigmoid(归一化到0-1)产probabilities,等效于产生4个空间注意区域,即4个mask(局部定位!),这四个mask分别和feature map 进行点乘,得到4个局部精细化的特征,分别进行分类。
    MA-CNN 通过交替优化的学习方式(轮流优化两个loss函数),使对每个part的softmax分类损失,及对每个part的channel grouping loss(Lcng)收敛。

    MAMC

    很多工作是独立的检测一个物体的多个关键性区域,忽略了物体的多个关键性区域的内在关联,因此,学习到的注意力模块很可能集中在同一个区域,并且缺乏本地化多个具有区别特征的部分的能力,这些特征可以区分类似的细粒度类。另外,很多方法都是multi-stage的,不够高效;或者需要很复杂的一些初始化,工作量大。
    从大量的实验研究中,作者观察到一种有效的细粒度分类的视觉注意机制应该遵循三个标准:1)检测到的部分要均匀分布在目标体上,提取出不相关的特征;2)各部分特征应该可以单独对不同类的对象进行区分;3)局部区域提取器应轻量化,以便在实际应用中按比例放大。

    本文提出的弱监督方法可以高效精确地获取判别区域。如下图所示,本文方法框架有两部分组成:1)压缩-多扩展one-squeeze multi-excitation(OSME)模块,轻微增加计算量(也不算太轻),从多个注意力区域提取特征。2)多注意力多类别约束multi-attention multi-class constraint(MAMC),加强注意力区域之间的通信。本文方法比其他方法具有端到端单阶段的优势。

    在这里插入图片描述
    OSME
    也是一种弱监督下的部件定位的注意力方法。先前工作总结:1)部件检测。往往将部件检测和特征提取分开,计算开销增大。2)软注意力,来自响应可视化。
    如上图,我们的框架以ResNet50作为baseline, SEnet通过压缩-扩展操作对输出特征图再校准。为了产生P个特定注意力的特征图,我们从SEnet延伸,把一次扩展操作换成多次扩展操作。
    在压缩操作中,我们聚合特征图空间产生通道级的描述子,和通道数一致。全局平均池化是一种简单高效的通道统计特征描述方法。
    在扩展操作中,对通道描述子施加多个独立门机制,产生多个注意力图。门机制中是FC+Relu+FC+Sigmoid,由于sigmoid特性,其输出对通道间的非互斥关系进行了编码。我们利用其输出对起初Resnet50的输出进行再次加权,得到特定注意力图。
    为了对每个特定注意力图进行特征提取,将这些特定注意力图展平成向量之后输入进FC层。
    简单而言,本文通过对baseline输出全剧平均池化之后进行多次门操作获得P个特征向量。并认为这些特征向量是对不同非互斥部件/特征的聚类(这里还不能称为判别性特征)。
    MAMC
    下面解决的问题可以描述为,如何让以上模块产生的注意力特征指向类别,产生判别性注意力特征。先前方法总结: 1)把以上注意力特征合并进行softmax loss(指交叉熵损失函数),softmax loss不能掌握两两注意力特征之间的关系,2)递归搜索机制,会把初代误差迭代方放大。还要使用强化学习以及一些复杂的初始化方法。我们的方法在训练中增强两两部件之间的关系。这种方法就是多注意力多类别机制。以下就是度量学习的框架了。
    训练集组织:我们有图像-类别对,为了刻画图片之间的注意力和同一子类内的注意力之间的关系,我们重新组织输入Batch(参考度量学习)。参考文章 Improved Deep Metric Learning with Multi-class N-pair Loss Objective中的N-pair采样方法。具体而言就是,每个batch中有N对图片,每对两张图片来自同一个子类,取一个图片为锚点(anchor),另一个为此anchor的正样本,然后给出他们所属类别。那么经过OSME模块,假设有P个excitation,那么每个样本就各自产生P个注意力特征向量。

    Learning a Discriminative Filter Bank within a CNN(DFL-CNN)

    <Learning a Discriminative Filter Bank within a CNN for Fine-grained Recognition - CVPR2018>
    端到端的细粒度识别可以分为两类:一个是定位-分类子网络 ,另一个是端到端特征编码。

    第一类方法,定位-分类子网络,包含了由定位网络辅助的分类网络。分类网络的中级学习是由定位网络中定位信息(部位定位和分割掩码)加强的。早期工作是依赖于数据集的额外部位标注信息,最近的只需要分类标签。不管标注信息,这些方法的的共同当即就是先寻找到匹配的部位在比较它们的外观。 第一步要求对象类间的语义部分可以共享,鼓励不同部位之间的表示相似,但是,为了有区分性,第二步鼓励在不同类别之间部位表示是不同的。这种微妙的冲突可能需要在定位网络和分类网络进行权衡,这可能会降低单个集成网络的分类表现。这种权衡也涉及到实践,在训练时,这两个网络往往分开交替训练,因此网络会变得复杂

    第二类方法,端到端的特征编码方法,利用了卷积特征的高阶统计编码(如 bilinear pooling)增强了CNN中层学习能力。与定位分类自网络比较来说,端到端的网络虽然有效,但可解释性和在严格非严格领域的性能很难保持一致性。

    作者的主要贡献设计了一个CNN框架中,不需要额外的部分或边框注释,以端到端的方式就可以学习有区别的mid_level patches.这样我们的辨别性patch就不用各个类之间共享,只需要有辨别性的apperance就行了。因此,我们的网络完全专注于classification,避免了识别和定位之间的权衡

    实现是通过1×1的卷积核作为小的‘’部位检测子“设计一个非对称的、多支路的结构来利用patch-level信息和全局外观表示,并且引入了非随机初始化滤波器监督去激活特征块的滤波器。
    在这里插入图片描述
    非对称结构的两条支路核心组件如上图所示。
    **P-stream:**这个组件后接分类器(比如全连接层和softmax层)形成网络判别的P-stream,其中预测是通过判断判别性块检测子的响应来预测的。P-stream是使用Conv4_3的输出,并且对这个特征图使用较小的感受野,一片的大小为92×92,跨步是8。
    **G-stream:**细粒度图像识别还要依赖于全局形状和表观,所以另一个支路保存的是更深的卷积核和全连接,第一个全连接编码全局信息通过线性结合整个卷积特征图。因为这个支路关注于全局信息,所以我们称之为G-stream。
    **side-branch:**为了让框架学习特定于类的判别补丁检测器,我们通过引入跨通道池层和softmax损耗层,对多个通道的特征进行综合。

    (ECCV 2018) Learning to Navigate for Fine-grained Classification

    三、基于网络集成的方法

    将细粒度数据集划分为几个相似的子集分别进行分类,或直接使用多个神经网络来提高细粒度分类的性能。

    3.1子集特征学习网络(Subset feature learning networks)

    Subset feature learning for fine-grained category classification—CVPR2015

    包括通用CNN及特定CNN两个部分。

    使用大规模数据集上预训练的通用CNN并在细粒度数据集上迁移学习。同时,在其fc6特征上使用LDA降维。
    将细粒度数据集中外观相似的类聚类为K个子类,并训练K个特定的CNN。
    在测试时,使用子集CNN选择器(subset selector CNN ,SCNN)选择输入图像相应的子集CNN。SCNN使用K个聚类结果作为类标签,将fc8的softmax输出数量改为K。之后,使用最大投票法确定其子类。
    在这里插入图片描述

    3.2 混合DCNN(Mixture of deep CNN)

    Fine-grained classification via mixture of deep convolutional neural networks—CVPR2015

    MixDCNN不对数据集进行划分,学习K个特定的CNN。输入图像经过K个CNN,K个子CNN的分类结果通过分类占位概率(occupation probability)进行融合,其定义如下,通过占位概率,MixDCNN可以实现端到端训练。
    α k = e C k ∑ c = 1 K e C c \alpha_{k}=\frac{e^{C_{k}}}{\sum_{c=1}^{K} e^{C_{c}}} αk=c=1KeCceCk
    其中,Ck为第K个CNN的最佳分类结果。
    在这里插入图片描述

    3.3 CNN树(CNN tree)

    Learning finegrained features via a CNN tree for large-scale classification —CVPR2015
    在多分类问题中,某个类通常与其他几个类相混淆,这些容易相互混淆的类被称为混淆集。在混淆集中,应该使用判决性更强的特征对其进行区分。
    首先在类集合上训练模型,之后评估训练好模型每个类的混淆集,将各类的混淆集合并为几个混淆超集。之后将混淆超集做为子节点,在其上进一步学习,重复该过程,直到CNN树达到最大深度。
    在这里插入图片描述

    3.4 多粒度CNN( Multiple granularity CNN)

    Multiple granularity descriptors for fine-grained categorization —ICCV2015
    子类标签包含某实体在该类中的层次信息。使用这些层次信息可以训练一系列不同粒度的CNN模型。这些模型的内部特征表示有不同的兴趣域,能够提取覆盖所有粒度的判别性特征。

    多粒度CNN包含多个CNN,每个CNN都在给定的粒度进行分类。即多粒度CNN是由多个单粒度识别CNN组成。ROI通过自底向上的区域生成方法生成,与粒度相关。同时,ROI的选择是跨粒度相关的,细粒度的ROI通常是由粗粒度的ROI采样而来。之后,将ROI输入到各个粒度的特征提取网络提取其多粒度特征,最后将多粒度特征合并,产生最终的分类结果。
    在这里插入图片描述

    四、高阶特征编码

    双线性汇合(bilinear pooling)在细粒度图像分析及其他领域的进展综述
    【AAAI2020系列解读 01】新角度看双线性池化,冗余、突发性问题本质源于哪里?

    Bilinear CNN Models for Fine-grained Visual Recognition—ICCV2015

    源码
    双线性汇合(bilinear pooling)计算不同空间位置的外积,并对不同空间位置计算平均汇合以得到双线性特征。外积捕获了特征通道之间成对的相关关系,并且这是平移不变的。双线性汇合提供了比线性模型更强的特征表示,并可以端到端地进行优化,取得了和使用部位(parts)信息相当或甚至更高的性能。

    另一种对Bilinear CNN模型的解释是,网络A的作用是对物体/部件进行定位,即完成前面介绍算法的物体与局部区域检测工作,而网络B则是用来对网络A检测到的物体位置进行特征提取。两个网络相互协调作用,完成了细粒度图像分类过程中两个最重要的任务:物体、局部区域的检测与特征提取。另外,值得一提的是,bilinear模型由于其优异的泛化性能,不仅在细粒度图像分类上取得了优异效果,还被用于其他图像分类任务,如行人重检测(person Re-ID)。
    在这里插入图片描述
    网络架构很简单,主要就是用外积(matrix outer product)来组合两个CNN(A和B)的feature map (当然也可以不用CNN),bilinear layer如下:
    bilinear ( l , I , f A , f B ) = f A ( l , I ) T f B ( l , I ) \left(l, I, f_{A}, f_{B}\right)=f_{A}(l, I)^{T} f_{B}(l, I) (l,I,fA,fB)=fA(l,I)TfB(l,I)

    • 其中位置 l l l 涵盖了位置和尺度, I I I 是图像。
    • fA和fB分别指两个CNN特征提取器,将输入图像I与位置区域L映射为一个cXD 维的特征。f 的维度是(K,D),D是指channel。
    • 如果A和B输出的特征维度分别是(K,M)和(K,N),经过bilinear后维度变为(M,N)。
    • 求和池化函数(sum pooling)的作用是将所有位置的Bilinear特征汇聚成一个特征。

    由于特征的位置维度被池化掉了,得到的bilinear特征是orderless的。另外注意,外积导致特征的维度D 增大为原来的平方。
    最后将bilinear特征经过符号平方根变换,并增加l2标准化(elementwise normalization layer),然后输入分类器,完成分类任务。

    这里的两个CNN可以共享部分参数,三种不同的方式如下图:
    在这里插入图片描述

    后续研究方向
    后续双向性汇合研究方向大致分为两类:设计更好的双线性汇合过程,以及精简双线性汇合。其中,对双线性汇合过程的设计主要包括对汇合结果规范化过程的选择及其高效实现,以及融合一阶和二阶信息。精简双线性汇合设计大致有三种思路:利用PCA降维、近似核计算、以及低秩双线性分类器。

    Low-rank Bilinear Pooling for Fine-Grained Classification-CVPR2017

    这篇文章的目的是要降低Bilinear pooling模型的参数维度,同时提高模型的精度。论文与第一篇论文模型不同的是,这篇论文采用对称的网络模型,也就是两个steam是相同的,那么只需要训练一个CNN过程就好,大大的减少了计算的开支。同时特征的意义就变为在位置i上特征的相关性矩阵。最后论文采用了一个低秩的分类器进行分类。

    Hierarchical Bilinear Pooling for Fine-Grained Visual Recognition

    源码:https://github.com/luyao777/HBP-pytorch
    基于Bilinear pooling的模型已经被实验验证了在细粒度认知的有效性,然而很多之前的方法忽略了层间局部特征的交互和细粒度特征的学习是相互关联的同时也能强化彼此。
    以此为出发点,作者提出来一种跨层的bilinear pooling方法来捕获层间局部特征关系,然后在这个基础上提出了一种新的分层双线性池框架来集成多个跨层双线性特征,以提高它们的表示能力。
    和之前的定位局部来学习细粒度特征不同,作者将来自不同卷积层的激活视为对不同部件属性的响应,而不是显式地定位对象局部,利用跨层双线性池捕获局部特性的跨层间交互,这对于细粒度识别非常有用。
    在这里插入图片描述

    Higher-Order Integration of Hierarchical Convolutional Activations for Fine-Grained Visual Categorization ICCV2017

    针对细粒度分类的难点,1. part annotation 和 detection 需要专业知识且很多part-based方法都是为了训练精确的 part detector 而严重依赖于精确地 part annotation; 2. Parts 通常有很多尺寸,而深度计卷积中的每个点对应一个特定的感受野,因此单层卷积层在描述不同尺寸的 part 时能力有限;3. Part 与 part 之间的关系是复杂的,高阶的。对于目标外形建模的关键在于发掘目标局部的共同外形。但缺陷是只能发掘很少 part 的一阶关系。

    本文针对以上问题,提出了基于融合高阶的多等级的卷积特征(Hierarchical convolutional activations) 。如果把卷积特征作为局部描述子 ,那么多等级的卷及特征就可以是不同尺度的局部特描述子。在处理 part interaction 的问题时,作者通过核融合的方法,使用多项式描述子将不同层的特征综合在一起。本文的创新点在于为融合不同层的的卷积响应开辟了新视角。

    总结

    在细粒度分类任务由于存在较大的类内差异和细微的内间差异,导致传统的人工特征工程无法达到理想效果。深度学习的出现,为该任务带来巨大的效果提升,在许多场景中达到实用的水平。本文综述了目前常见的三类基于深度学习的细粒度图像分类方法。
    基于定位-分类的方法借鉴了人类进行细粒度分类的过程,研究相对充分,是最主流的方法。早期,基于定位-分类的方法多采用强监督学习,需要大量的人工来标注图像的关键区域。Part R-CNN[3]是较早采用区域定位技术的细粒度分类算法,其进步是明显的. 从局部区域的检测定位, 到特征的提取, 该算法均基于卷积神经网络, 并针对细粒度图像的特点进行改进优化, 以改进通用物体定位检测算法在该任务上的不足, 达到了一个相对比较高的准确度. 其不足之处在于, 利用自底向上的区域产生方法, 会产生大量无关区域, 这会在很大程度上影响算法的速度. 另一方面, 该算法本身的创新性十分有限, 既然局部区域对于细粒度图像而言是关键所在, 那么对其进行定位检测则是必要的途径. 只是引入现有的通用定位算法, 似乎并不能很好地解决该问题。在此基础上,后续有很多改进算法,例如Pose Normalized CNN[4]通过姿态对齐操作,减小了类内差异。而part stacked CNN[5] 和mask-CNN[6]则利用FCN进行区域定位,提高了定位精度。
    近年来,由于工业领域的应用需要,基于定位-分类方法的研究逐渐向弱监督学习转移,通过注意力机制、通道聚类等方法构建定位子网络,实现区分性区域的发现。其中,两级注意力(Two Level Attention)算法[7]是第一个尝试不依赖额外的标注信息, 而仅仅使用类别标签来完成细粒度图像分类的工作,该方法通过聚类实现区域定位,准确度有限。此后,RNN、LSTM以及FCN等网络被当做注意力机制引入弱监督方法中来,进一步提升定位的准确度。在定位子网络的基础上,MAMC[12]等网络引入了空间约束,改善定位区域的辨识度。
    高阶编码方法通过将CNN特征进行高阶综合,提升特征的表达能力,其最主要的技术路线是双线性模型[13],此外,Higher-Order Integration of Hierarchical Convolutional Activations[2]通过核融合方式为高阶编码提供了新的视角。
    Bilinear模型提供了比线性模型更强的特征表示,并可以端到端地进行优化,取得了和使用部位(parts)信息相当或甚至更高的性能,其缺点在于外积导致特征的维度 增大为原来的平方。
    后续双向性汇合研究方向大致分为两类:设计更好的双线性汇合过程,以及精简双线性汇合。其中,对双线性汇合过程的设计主要包括对汇合结果规范化过程的选择及其高效实现,以及融合一阶和二阶信息。精简双线性汇合设计大致有三种思路:利用PCA降维、近似核计算、以及低秩双线性分类器。
    网络集成方法采用了分而治之的思想,主要方法是将细粒度数据集划分为几个相似的子集分别进行分类,或直接使用多个神经网络来提高细粒度分类的性能。当某些类特别容易混淆时,采用该方法能取得不错的效果,缺点是认为干预的因素较多,不能采用端到端的学习方式。

    其它相关

    or-wavelet:https://blog.csdn.net/qq_41332469/article/details/93197565

    消除Aliasing!加州大学&英伟达提出深度学习下采样新思路:自适应低通滤波器层

    ECCV2020 | Cityscapes上83.7 mIoU,通过解耦的主体和边缘监督改进语义分割

    展开全文
  • 深度细粒度图像识别研究综述.pdf
  • 细粒度图像分类

    2020-09-02 22:17:13
    细粒度图像分类与传统图像分类而言,细粒度图像分类中所需要进行分类的图像中的可判别区域往往只是在图像中很小的一块区域内。 在传统的图像分类网络中,无论图像中的重要判别区域占整个图像的比重有多大,都只会对...

    部分内容转载自如下博文,仅供学习交流

    https://www.cnblogs.com/YourZhou/p/12219896.html

    细粒度图像分类问题是对大类下的子类进行识别。细粒度图像分析任务相对通用图像任务的区别和难点在于其图像所属类别的粒度更为精细。
    细粒度图像分类与传统图像分类而言,细粒度图像分类中所需要进行分类的图像中的可判别区域往往只是在图像中很小的一块区域内。
    在传统的图像分类网络中,无论图像中的重要判别区域占整个图像的比重有多大,都只会对整张图片一视同仁的提取特征。
    因此,在一些判别区域占图像比重较小的一些图片,进行同样的特征提取及处理,大量不关注的background信息会被训练进去,增加了图像分类的难度,降低分类的准确度。
    引入细粒度图像分类这一概念,就是为了解决这样的问题,关注图像中细小的差别,实现更精确的图像分类。
    目前常规的细粒度图像分类的方法为,先得到关注目标的区域,再对该目标进行细分类,从而使网络更了解分类物体。

    展开全文
  • 细粒度图像分析综述2019

    千次阅读 2019-07-13 20:48:32
    文章目录导读细粒度应用和分类2 细粒度的问题和挑战问题挑战3 数据集4 细粒度图像识别4.1 定位分类子网络4.2 端到端特征编码4.3 辅助信息5 细粒度图像检索6 细粒度图像生成7 细粒度图像分析相关的特定领域应用8 未来...


    导读

    图像分析是CV最重要的分支之一。在CV的各个研究领域中,细粒度图像分析(FGIA)是一个长期存在的基础性问题。旷视的研究人员魏秀参等人,将FGIA分为:细粒度图像识别、细粒度图像检索、细粒度图像生成,系统地阐述了细粒度图像分析的前前后后,并探讨了细粒度图像分析的未来方向。


    细粒度应用和分类

    工业和科研领域的应用

    • 工业领域:生物多样性自动监测、气候变化评估、智能零售、智能交通
    • 科研领域:Kaggle比赛-自然保护协会渔业监测(鱼类种类分类)、座头鲸鉴定(鲸鱼身份分类)等。

    细粒度方法分类
    在这里插入图片描述
    作者给出了一个图像分析的tutorial


    2 细粒度的问题和挑战

    问题

    在这里插入图片描述
    细粒度图像分析的对象是某一个类别的子类,如狗、鸟、车等。粗粒度图像分析的目标对象视觉差异大,细粒度目标图像视觉差异小。所以,细粒度分析要捕获更细微的差异(例如,耳朵,鼻子,尾巴等)。

    挑战

    在这里插入图片描述
    细粒度的挑战是,类间差异小(这是细粒度本质),类内差异大(如姿态、尺度、旋转,如图3所示)。


    3 数据集

    数据集可视化示例
    在这里插入图片描述
    数据集信息统计在这里插入图片描述
    CUB200-2011和Birdsnap是有属性标注的。植物和商品的数据集比较新。

    标注信息举例
    在这里插入图片描述

    4 细粒度图像识别

    分为三类:(1)定位分类子网络(2)端到端特征编码(3)辅助信息。其中(1)和(2)使用监督信息:标签、边界框、部位标注等。(3)使用了比较廉价的辅助信息:网络数据、文本描述等。细粒度分类的评价标准是:平均分类精度。

    4.1 定位分类子网络

    指导思想是:捕获细粒度目标的判别性的语义部位。此类方法包含两个部分:定位子网络和分类子网络。
    定位子网络的强监督信息有部位级别的边界框、分割mask,弱监督信息就是标签。弱监督定位子网络的动机是:先找到对应的部位,然后比较他们的外观。

    4.2 端到端特征编码

    端到端的方法,直接学习更有判别力的特征表示。代表方式就是Bilinear CNNs,因其高模型容量,达到了显著的细粒度识别性能。但是,bilinear的特征维度太高,不利于向大数据集扩展。

    针对这个问题,学者们尝试生成更低维的表示,并且保证相当的或者更高的性能。

    4.3 辅助信息

    网络数据
    这类方法主要集中在:(1)缩小网络图像和标注图像的差异;(2)降低噪声数据的负面影响。常用的方法是对抗学习和注意力机制。另一个方向是用迁移学习,包括零样本学习和元学习。

    那那那,细粒度零样本问题

    多模态数据
    多模态:图像、文本、知识库。高级的知识图。Learning deep representations of fine-grained visual despcriptions结合了文本和图像来,解决零样本细粒度问题。

    在这里插入图片描述
    人类参与
    有人类参与的细粒度识别是一个包含机器和人类用户的迭代系统。

    5 细粒度图像检索

    在这里插入图片描述

    6 细粒度图像生成

    图像生成是为了解决无监督问题。

    细粒度图像生成的第一个工作是2017年的CVAE-GAN,模型生成图片的输入是标签和隐含属性。最近的工作Fine-grained text to image generation with attentional generative adversarial networks,从文本描述生成图像,通过对文本描述中的相关单词的注意力引导生成高质量的细节区域。

    针对商品的细粒度很有意义

    7 细粒度图像分析相关的特定领域应用

    不同的问题都会面临细粒度场景,比如推荐系统中的衣服/鞋子检索、电子商务平台中的时尚图片识别、智能零售中的商品识别。

    人脸识别可以看做身份粒度的识别问题,行人/车辆识别也是细粒度相关的任务,以及重识别问题。

    在实际中,这些问题的解决方法包括:捕获目标(人脸、行人、车辆)的判别性部位,由粗粒度-细粒度的结构信息、基于属性的模型等等。

    8 未来方向

    自动细粒度模型
    和AutoML自动机器学习或NAS模型搜索结合,替代人工设计的架构。
    细粒度小样本学习
    和元学习结合,减少对监督信息的依赖。
    细粒度哈希
    结合哈希算法,针对大规模细粒度问题,需要更有效的检索方法。
    实际场景下的细粒度分析
    结合域适应,迁移学习,长尾分布,特定设备等方法和场景的不同问题。


    参考

    1. 2017 survey [知乎]
      「见微知著」——细粒度图像分析进展综述
    2. 2018 tutorial
      Fine-Grained Image Analysis Tutorial
    3. 2019 survey [公众号]
      旷视南京研究院魏秀参:细粒度图像分析综述
    4. 2019 survey [arXiv]
      Deep Learning for Fine-Grained Image Analysis: A Survey
    5. 作者主页
    展开全文
  • 细粒度图像分类研究综述

    万次阅读 2018-05-23 16:35:46
    细粒度图像分类问题是计算机视觉领域一项极具挑战的研究课题, 其目标是对子类进行识别,如区分不同种类的鸟。由于子类别间细微的类间差异和较大的类内差异, 传统的分类算法不得不依赖于大量的人工标注信息。近年来, ...

    细粒度图像分类问题是计算机视觉领域一项极具挑战的研究课题, 其目标是对子类进行识别,如区分不同种类的鸟。由于子类别间细微的类间差异和较大的类内差异, 传统的分类算法不得不依赖于大量的人工标注信息。近年来, 随着深度学习的发展, 深度卷积神经网络为细粒度图像分类带来了新的机遇。大量基于深度卷积特征算法的提出, 促进了该领域的快速发展。

    一 概述

    定义

    细粒度图像分类(Fine-Grained Categorization),又被称作子类别图像分类(Sub-Category Recognition),是近年来计算机视觉、模式识别等领域一个非常热门的研究课题.。其目的是对粗粒度的大类别进行更加细致的子类划分。细粒度图像的类别精度更加细致,类间差异更加细微,往往只能借助于微小的局部差异才能区分出不同的类别。而与人脸识别等对象级分类任务相比,细粒度图像的类内差异更加巨大,存在着姿态、光照、遮挡、背景干扰等诸多不确定因素。因此,细粒度图像分类是一项极具挑战的研究任务。

    研究意义

    细粒度图像分类无论在工业界还是学术界都有着广泛的研究需求与应用场景。与之相关的研究课题主要包括识别不同种类的飞机等。在实际生活中,识别不同的子类别又存在着巨大的应用需求。例如, 在生态保护中, 有效识别不同种类的生物,是进行生态研究的重要前提。如果能够借助于计算机视觉的技术, 实现低成本的细粒度图像识别, 那么无论对于学术界, 还是工业界而言, 都有着非常重要的意义。

    总结

    绝大多数细粒度图像分类算法的流程框架:首先找到前景对象(鸟)及其局部区域(头、脚、翅膀等), 之后分别对这些区域提取特征. 对所得到的特征进行适当的处理之后, 用来完成分类器的训练和预测。

    1. 细粒度图像的信噪比很小, 包含足够区分度的信息往往只存在于很细小的局部区域中,如何找到并有效利用这些有用的局部区域信息,成为了决定细粒度图像分类算法成功与否的关键所在。

    (1)依赖人工标注信息(Annotations)


    其中主要包括标注框(Bounding Box)和局部区域位置(Part Locations)等.借助于标注框能够完成对前景对象的检测, 从而排除掉背景噪声的干扰; 而局部区域位置则可以用来对一些有用的局部区域进行定位, 或者进行姿态对齐等, 以实现局部特征的提取。

    (2)仅仅依靠类别标签(Label)

    2. 特征的提取也是决定图像分类准确性的关键因素。

    (1)传统的基于人工特征

    一般是先从图像中提取SIFT或者HOG这些局部特征, 之后利用VLAD或者Fisher Vector[20][21]等编码模型进行特征编码, 得到最终所需要的特征表示。

    (2)基于深度卷积特征

    从深度卷积神经网络中所提取的特征, 比人工特征拥有更强大的描述能力, 将深度卷积特征运用到细粒度图像分类任务中, 能够取得更好的结果[25]. 深度卷积特征的加入, 为细粒度图像分类的发展带来了新的机遇,使得其研究进入了一个新的阶段。

    二 基于人工特征的早期算法简述

    在发布CUB200-2011数据库的技术报告中,Wah等人给出的基准测试的结果仅为10.3%. 他们的方法是: 给定一张原始的、未经过裁剪的测试图像, 利用训练得到的模型完成局部区域的定位; 之后,提取RGB颜色直方图和向量化的SIFT特征, 经过词包(bag of words, BoW)模型进行特征编码后, 输入到线性SVM分类器完成分类。

    从分类准确度上来看, 这个结果并不让人满意.一方面, 是由于定位不够准确, 局部区域无法归一化对齐; 另一方面, 则是因为特征的描述能力太弱, 不具备足够的区分度。

    尝试与探索

    1. Berg等人[26]提出了一种基于局部区域的特征编码方式, 他们称之为POOF特征. 该算法能够自动发现最具区分度的信息, 取得了不错的分类效果。但该算法对关键点的定位精度要求比较高, 如果用精确的标注信息实现定位的话, 能够达到73.3%的准确率, 但如果利用定位算法去确定关键点的话, 则只有56.8%的准确度。

    2. 除了特征之外, 也有针对局部区域的算法研究. 如Yao[32]等人, Yang[33]等人均尝试使用模板匹配的方法来减少滑动窗口的计算代价。

    3. 也有研究工作[34, 35]尝试将人加入到分类任务中来. 用户通过交互式的询问对答, 完成指定的操作, 如给出关键点, 回答一些简单问题等. 其目的在于使用最少的询问次数, 达到最好的分类精度。

    总结

    从这一阶段的研究成果上可以看出, 更强大的特征描述和特征编码方式对分类准确度有着显著的影响。其次, 细粒度图像分类有别于其他分类任务的一点就是局部区域的信息是至关重要的。我们也该意识到, 为了实现更精细的局部定位, 很多算法都严重依赖于人工标注信息, 这样的方式在实际应用中存在很大的局限性, 这也是前期研究的一个共性。

    三 深度卷积网络概述

    再谈

    四 强监督的细粒度图像分类研究

    所谓强监督的细粒度图像分类算法,是指在模型训练的时候,除了图像的类别标签外,还使用了标注框、局部区域位置等额外的人工标注信息。也有些算法考虑仅在模型训练的时候使用标注信息, 而在进行图像分类时不使用这些信息. 这在一定程度上提高了算法的实用性, 但与只依赖类别标签的弱监督分类算法相比仍有一定的差距。

    DeCAF

    Donahue[25]等人通过对在ImageNet数据集上所训练得到的卷积网络模型进行分析, 发现从卷积网络中所提取的特征具有更强的语义特性, 比人工特征具有更好的区分度. 他们将卷积特征迁移到其他具体领域的任务中, 如场景识别、细粒度分类等, 均获得了更好的分类性能, 从实验上证明了卷积特征强大的泛化性. 他们称之为DeCAF特征(Deep Convolutional Activation Feature).

    具体而言, 首先使用标注框对图像进行裁剪,得到前景对象, 再利用预训练的卷积网络对图像提取DeCAF特征. 在文献[25]中, 他们提取的是第6层网络特征, 即第一个全连接层的输出, 之后训练一个多类别的逻辑回归(Logistic Regression)模型来进行图像分类。

    总的来说, DeCAF是比较前期的工作, 并不是专门针对细粒度图像分类所优化设计的算法, 其目的在于解释卷积特征的强大泛化性与领域自适应性。DeCAF的出现, 在卷积特征与细粒度图像分类之间搭起了一座桥梁, 具有十分重要的意义。

    Part R-CNN

    对于细粒度图像分类而言, 图像的局部信息是决定算法性能的关键所在. 对图像进行检测, 并提取出重要的局部信息是大多数细度图像分类算法所采用的基本流程.基于这种观点, Zhang等人提出了Part R-CNN[43]算法,该算法采用了R-CNN[44]对图像进行检测。

    Part R-CNN就是利用R-CNN算法进行对象(鸟)与局部区域(头、身体等)的检测, 下图给出了其总体的流程图。


    R-CNN一样, Part R-CNN也使用自底向上的区域算法(如Selective Search[47])来产生区域候选, 如上图左上角所示. 之后, 利用R-CNN算法来对这些区域候选进行检测, 给出评分分值. 在这里, Part R-CNN只检测前景对象(鸟)和两个局部区域(头、身体). 之后, 根据评分分值(图4中间)挑选出区域检测结果(见上图上方中间). 但Zhang等人认为, R-CNN给出的评分分值并不能准确地反映出每个区域的好坏.例如, 对于头部检测给出的标注框可能会在对象检测的标注框外面, 身体检测的结果与头部检测的结果可能会有重叠等. 这些现象都会影响最终的分类性能. 因此, 需要对检测区域进行修正。

    利用约束条件对R-CNN检测的位置信息进行修正之后, 再分别对每一块区域提取卷积特征, 将不同区域的特征相互连接起来, 构成最后的特征表示, 用来训练SVM分类器。

    总结

    Part R-CNN的进步是明显的. 从局部区域的检测定位, 到特征的提取, 该算法均基于卷积神经网络, 并针对细粒度图像的特点进行改进优化, 以改进通用物体定位检测算法在该任务上的不足, 达到了一个相对比较高的准确度. 同时,该算法进一步放松了对标记信息的依赖程度, 在测试时无需提供任何标记信息, 大大增强了算法的实用性. 其不足之处在于, 利用自底向上的区域产生方法, 会产生大量无关区域, 这会在很大程度上影响算法的速度. 另一方面, 该算法本身的创新性十分有限, 既然局部区域对于细粒度图像而言是关键所在, 那么对其进行定位检测则是必要的途径. 只是引入现有的通用定位算法, 似乎并不能很好地解决该问题。

    姿态归一化CNN(Pose Normalized CNN)

    巨大的类内方差会对最终的分类性能造成很大的影响.而在这些不同的干扰信息中, 姿态问题则是一个普遍存在的影响因素. 有鉴于此, Branson等人提出了姿态归一化CNN(Pose Normalized CNN)算法[48]. 所采取的方案是: 对于每一张输入图像, 利用算法完成对局部区域的定位检测, 根据检测的标注框对图像进行裁剪, 提取出不同层次的局部信息(鸟, 头部),并进行姿态对齐操作. 之后, 针对不同部位的局部信息, 提取出不同层的卷积特征. 最后, 将这些卷积特征连接成一个特征向量, 进行SVM的模型训练, 达到了75.7%的分类精度. 其具体流程如下图所示。


    整个算法流程中, 首先要解决的就是如何检测局部区域的问题. 对于输入图像, Branson等人利用预先训练好的DPM算法[49]完成关键点的检测. DPM算法能够给出预先定义好的关键位置点的坐标, 以及该点是否可见等信息. 之后, 利用这些关键点进行姿态对齐操作。

    总结

    姿态归一化CNN的创新之处在于使用原型对图像进行了姿态对齐操作, 并针对不同的局部区域提取不同网络层的特征, 以试图构造一个更具区分度的特征表示. 它在原有的局部区域模型的基础上, 进一步考虑了鸟类的不同姿态的干扰, 减轻了类内方差造成的影响, 从而取得了较好的性能表现. 但是, 该算法对于关键点的检测精度较为敏感, 利用DP算法对关键点进行检测, 其精度为75.7%。

    五 弱监督的细粒度图像分类研究

    仅仅依赖于类别标签完成分类是近年来细粒度图像研究的一大趋势. 得益于深度学习的发展, 以及相关研究工作的深入, 不借助人工标注信息, 也能实现良好的分类性能. 如 Jaderberg等人[55]Lin等人[13]均实现了84.1%的分类精度, 超过了绝大多数依赖于人工标注的分类算法。

    两级注意力(Two Level Attention)算法

    Xiao等人提出的两级注意力(Two Level Attention)算法[56]是第一个尝试不依赖额外的标注信息, 而仅仅使用类别标签来完成细粒度图像分类的工作。该模型主要关注两个不同层次的特征, 分别是对象级(Object-Level)和局部级(Part-Level), 即在以往强监督工作中所使用的标注框和局部区域位置这两层信息。

    总结

    总体上来看, 两级注意力模型较好地解决了在只有类别标签的情况下, 如何对局部区域进行检测的问题. 但是, 利用聚类算法所得到的局部区域, 准确度十分有限. 在同样使用Alex Net的情况下, 其分类精度要低于强监督的Part R-CNN算法。

    双线性CNN(Bilinear CNN)

    Lin[13]等人设计了一种新颖的网络模型双线性CNN(Bilinear CNN),在CUB200-2011数据集上实现了84.1%的分类精度.其网络结构如下图所示。


    一种对双线性CNN模型的解释是, 网络A的作用是对物体进行定位, 即完成传统算法的对象与局部区域检测工作, 而网络B则是用来对网络A检测到的物体位置进行特征提取. 两个网络相互协调作用, 完成细粒度图像分类过程中两个最重要的任务: 区域检测与特征提取。

    参考自:罗建豪, 吴建鑫. 基于深度卷积特征的细粒度图像分类研究综述. 自动化学报, 201X, XX(X): X−X
    展开全文
  • 人脸识别属于细粒度图像识别吗? 是不是同类物体的识别问题都属于细粒度图像识别?
  • 提出了一种基于多尺度特征融合的细粒度图像分类方法。通过运用特征金字塔结构对不同层次的特征进行尺度变换,再进行信息融合;之后筛选其中包含细节特征最多的前三个区域图,将其与图像的全局特征共同作用以判断图片...
  • 细粒度图像识别

    千次阅读 2019-01-21 11:45:48
    最近为了解决自己的问题...一、细粒度图像分类识别 Keras Xception Multi loss 细粒度图像分类 https://www.jianshu.com/p/dbe7ba76f02f 二、注意力 https://blog.csdn.net/weixin_41977512/article/details/83243160 ...
  • 小样本细粒度图像分类的混合注意机制
  • 两流上下文化CNN用于细粒度图像分类
  • 细粒度图像之间具有高度相似的外观,其差异往往体现在局部区域,提取具有判别性的局部特征成为影响细粒度分类性能的关键。引入注意力机制的方法是解决上述问题的常见策略,为此,在双线性卷积神经网络模型的基础上,提出...
  • 基于用户点击数据的细粒度图像识别方法概述
  • 基于深度学习的细粒度图像推荐算法研究.pdf
  • 细粒度图像分析——识别篇领域 大牛论文20192018201720162015参考及推荐链接功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个...
  • 细粒度图像识别(2020)

    千次阅读 2020-03-18 10:20:58
    细粒度图像识别(2020) Fine-Grained Graph-propagation based Correlation Learning for Weakly Supervised Fine-grained Image Classification Fine-Grained Recognition: Accounting for Subtle Differences ...
  • 针对细粒度图像分类方法中存在模型复杂度较高、难以利用较深模型等问题,提出深度模型迁移( DMT)分类方法。首先,在粗粒度图像数据集上进行深度模型预训练;然后,使用细粒度图像数据集对预训练模型logits层进行不...
  • 最近的论文好像都是鸟、车、飞机三个数据集做的实验:细粒度图像分类数据集 https://zhuanlan.zhihu.com/p/101158631
  • 细粒度图像识别初步学习

    千次阅读 2018-05-14 19:11:23
    细粒度图像识别现在图像分类中一个难点,它的目标是在一个大类中识别子类,比如说在鸟的大类下识别鸟的种类,在车的大类下,识别车的型号。由于相同的子类中物体的动作姿态可能大不相同,不同的子类中物体可能又有着...
  • 行业分类-物理装置-一种细粒度图像分类方法、装置及存储介质.zip
  • 细粒度图像分类又被称作子类别图像分类,是近年来计算机视觉、模式识别等领域的研究热点,其目的是对粗粒度的大类别进行更加细致的子类划分。但由于子类别间的细微差别以及较大的类内差异,较之普通的图像分类任务,...
  • 细粒度图像相关汇总

    2019-03-01 19:41:00
    细粒度图像与超分辨率 FSRNet: End-to-End Learning Face Super-Resolution with Facial Priors(2018 CVPR SPOTLIGHT Presentation) 文章地址:https://arxiv.org/abs/1711.10703作者的项目地址:FSRNet 本文提出...
  • 细粒度图像识别——算法&论文 转载自:杨国峰(Tencent)
  • 细粒度图像识别算法Mask-CNN

    千次阅读 2018-05-16 18:52:13
    传统的图像识别一般都是识别花、鸟、汽车等不同类别物体,而细粒度图像识别则是要识别同一类物体下的不同子类。举个例子,识别一张图片是猫、狗、汽车还是飞机就是传统的图像识别,而识别一张图片是贵宾犬、边境牧羊...
  • 细粒度图像分类(FGVC)--- 综述

    千次阅读 2021-03-07 21:34:31
    一、概述什么是细粒度图像分类意义细粒度图像分类的挑战细粒度分类常用方法 二、基于定位-识别的方法2.1 强监督2.1.1 Part-based R-CNN2.1.2Pose Normalized CNN2.1.3 基于多候选区集成的部件定位(Part loca...
  • 细粒度图像分类问题是计算机视觉领域一项极具挑战的研究课题,本文介绍了细粒度图像分类算法的发展现状、相关数据集和竞赛,供大家擦考学习。作者&编辑 | 郭冰洋 1 简介细粒度图像分类是在区分出基本类别的基础...
  • 网文收集 综述型 论文笔记 | 基于深度学习的细粒度物体分类综述(A Survey on Deep Learning-based Fine-grained Object Classification and Semantic Segmentation) ...细粒度图像分类–CVPR201...
  • 点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”作者:arnika编译:ronghuaiyang导读细粒度图像分类的一些问题和挑战。自从2012年的ILSVRC竞赛Alexne...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,230
精华内容 5,692
关键字:

细粒度图像