细粒度图像分类方法、系统及预测模型的训练方法与流程

    专利2022-07-07  92


    本申请涉及图像处理技术领域,具体涉及细粒度图像分类方法、系统及预测模型的训练方法。



    背景技术:

    图像分类任务是计算机视觉领域的基础任务,它一直是一个重要的研究方向。随着相关研究的不断发展,更具挑战性的细粒度图像分类任务受到了越来越多的关注。细粒度图像分类的目标是准确的区分一个大类下的多个子类别,而其特点及难点就是类间的差异小,而类内的差异大。具体来说,类间差异小是指不同子类的对象往往非常相似,需要通过一些关键的区域(以鸟类为例,如鸟嘴,翅膀,爪子等部分区域)来加以区分,而这需要一定的专家知识才能做到;类内差异大是指,即使是在同一个子类中相同对象间,由于对象的姿势,对象所处背景,拍摄角度等因素的不同导致同一类图像间的差别相对较大。早期的细粒度图像识别方法往往需要针对训练特征做大量的人工标注,获得这些额外的人工信息需要大量的人力物力,花费大量的时间和金钱。随着相关技术的发展,提出了许多如双线性cnn,多注意多类约束(multi-attentionmulti-classconstraint,mamc)等的神经网络模型,只需输入图片和相应的标签便可进行训练得到很好的分类性能。

    受计算机视觉中经典的非局部均值方法的启发,非局部(non-local,nl)模块被提出,作为一个通用的模块来捕获长程依赖关系,并且通过自注意机制形成注意映射。对于每个位置,nl模块首先计算当前位置和所有位置之间的成对关系,然后通过加权和对所有位置的特征进行聚合。将聚合的特征添加到每个位置的特征中,以形成输出。作为一个可以插入到许多计算机视觉体系结构中的模块,nl模块在视频分类以及静态图像识别任务上对模型性能带来了可观的提升。有许多技术将nl模块结合其他技术应用于细粒度图像分类中,用于加强模型的全局信息感知能力。

    nl模块可以在图像识别方面带来很好的改善,然而,对于细粒度图像分类任务来说,多尺度特征是至关重要的,因为对象部分在图像中的大小和形状各不相同。现有技术中每个神经网络只在某两层之间插入一个nl模块来模拟空间依赖性,但是神经元有固定大小的感受野,感受野大小与物体部分大小的不匹配可能会破坏特征提取。

    在nl模块最初提出时主要针对具有时序的视频特征进行试验,而且是作为一个即插即用的模块嵌入传统神经网络中使用的,没有专门针对细粒度图像分类做出优化。现有的nl模块在细粒度图像分类中的应用主要是将一个nl模块结合其他技术结合至如深度残差网络(deepresidualnetwork,resnet)之类的神经网络中,使用传统方法训练网络,即训练每次输入一张图像,进行多次循环,在细粒度图像分类问题中,这种设置没有很好的考虑其类内差异大类间差异小的特点难点,无法有效提升最终的分类准确率。



    技术实现要素:

    本申请的目的在于提供细粒度图像分类方法、系统及预测模型的训练方法,用于解决神经元的感受野大小与物体部分大小的不匹配破坏特征提取的技术问题。

    本申请提供一种细粒度图像分类方法,包括:重复进行如下步骤,直至更新后的第一层为神经网络的最后一层:接收神经网络的第一层的输出特征,作为可学习的非局部模块的输入特征;将非局部模块的输出特征作为神经网络的第二层的输入特征;用第二层更新第一层;并且,若更新后的第一层为神经网络的最后一层,则将神经网络的最后一层的输出特征输入分类网络中;将分类网络的输出特征作为预测结果并输出。

    优选地,非局部模块采用如下公式进行运算

    nl(xl)=xl z(f(θ(xl),φ(xl))g(xl))

    其中,xl为所述第一层的输出特征图,nl(xl)是所述非局部模块的输出特征,z为卷积符号,θ(xl)、φ(xl)和g(xl)为xl的可学习的嵌入函数,f(θ(xl),φ(xl))为θ(xl)和φ(xl)的函数。

    优选地,θ(xl)、φ(xl)和g(xl)为可学习的嵌入函数。

    本申请还提供一种细粒度图像分类方法,包括:接收输入两个分支网络的图像;从所述神经网络中随机选取所述神经网络的中间层作为第三层;重复进行如下步骤,直至更新后的第一层为所述神经网络的最后一层:接收神经网络的第一层的输出特征,作为非局部模块的输入特征;将非局部模块的输出特征作为所述神经网络的第二层的输入特征;用第二层更新第一层;判断所述第一层是否为所述第三层;若所述更新后的第一层是所述第三层,则将两个所述分支网络的所述第三层对应的非局部模块的输出特征混合叠加,并将混合叠加后的特征输入主干网络,并用所述主干网络的第一层更新所述第一层;并且,若更新后的第一层为所述神经网络的最后一层,则将所述神经网络的最后一层的输出特征输入分类网络中;将所述分类网络的输出特征作为预测结果并输出。

    优选地,采用如下公式进行混合叠加

    nl(xl)=xl z(f(θ(xl),φ(xl))g(xl))

    其中,xl为所述第一层的输出特征图,nl(xl)是所述非局部模块的输出特征,z为卷积符号,θ(xl)、φ(xl)和g(xl)为xl的可学习的嵌入函数,f(θ(xl),φ(xl))为θ(xl)和φ(xl)的函数,为混合叠加后的特征图,λ为超参数,为第一分支网络的第m非局部模块的输出,为第二分支网络的第m非局部模块的输出,为图像xi输入的第一分支网络的第m层的特征输出,为图像xi输入的第二分支网络的第m层的特征输出。

    本申请还提供一种细粒度图像分类预测模型的训练方法,包括:循环执行上述的细粒度图像分类方法;其中,将第一层对应的两个非局部子模块的输出特征混合叠加的同时混合两个图像的标签,获得混合标签;还包括:获得预测结果后,计算预测结果和混合标签之间的损失,并进行反向传播。

    优选地,采用如下公式计算混合后的标签

    yij=λyi (1-λ)yj

    其中,yij表示混合后的标签,yi表示图像xi的标签,yj表示图像xj的标签。

    本申请还提供一种细粒度图像分类预测模型的训练方法,包括:循环执行上述的细粒度图像分类方法;其中,将两个所述分支网络的所述第三层对应的非局部模块的输出特征混合叠加的同时混合两个图像的标签,获得混合标签;还包括:获得预测结果后,计算所述预测结果和所述混合标签之间的损失,并进行反向传播。

    优选地,采用如下公式计算混合后的标签

    yij=λyi (1-λ)yj

    其中,yij表示混合后的标签,yi表示图像xi的标签,yj表示图像xj的标签。

    优选地,利用交叉熵计算损失

    其中,为预测结果。

    本申请还提供一种细粒度图像分类系统,包括神经网络和分类网络;其中,神经网络包括多个层,神经网络的最后一层连接分类网络,分类网络的输入是最后一层的输出,分类网络的输出作为预测结果;神经网络的每两层之间均设有一个可学习的非局部模块。

    优选地,神经网络包括两个独立的分支网络和主干网络,两个分支网络包含相同的层;细粒度图像分类系统还包括混合叠加模块,两个分支网络的最后一层对应的非局部模块分别与混合叠加模块连接,混合叠加模块连接主干网络,主干网络的最后一层连接分类网络。

    附图说明

    为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。

    图1是本申请提供的一种实施例的细粒度图像分类系统的结构图;

    图2是本申请提供的与图1对应的细粒度图像分类方法的流程图;

    图3是本申请提供的另一种实施例的细粒度图像分类系统的结构图;

    图4是本申请提供的与图3对应的细粒度图像分类预测模型的训练方法的流程图。

    具体实施方式

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

    实施例一

    本申请提供了一种细粒度图像分类系统。图1是本申请提供的一种实施例的细粒度图像分类系统的结构图。如图1所示,细粒度图像分类系统包括深度学习的神经网络和分类网络。神经网络包括多个层,如图1的第一层、第二层……第m层……第n层(作为最后一层)。神经网络的最后一层连接分类网络,分类网络的输入是最后一层的输出,分类网络由池化层、线性分类层和归一化指数函数softmax层组成,分类网络用于得出最终的预测结果。图像输入神经网络后,经过该细粒度图像分类系统获得预测结果。

    其中,神经网络的每两层之间均设有一个非局部模块,如图1中的第一非局部模块、第二非局部模块、第m非局部模块、第n-1非局部模块等。

    图2是本申请提供的与图1对应的细粒度图像分类方法的流程图。如图2所示,细粒度分类方法包括如下步骤:

    s210:接收图像,将图像作为神经网络的输入数据,输入神经网络的第一层。

    s220:将第一层的输出特征输入其后的非局部模块,如图1中的第一层后的第一非局部模块、第m层后的第m非局部模块。

    非局部模块对输入特征进行运算,获得非局部模块的输出特征。

    具体地,非局部模块采用如下方法进行运算:

    对于神经网络的第l层输出的特征图,hl、wl和cl分别表示特征图的高度、宽度和通道数。将特征图表示为特征矩阵其中,表示由实数构成的维度hlwl×cl的矩阵。

    为了捕捉整个特征图xl之间的长程依赖关系,非局部操作首先使用两个可学习的嵌入嵌入函数θ(·)和φ(·),将xl投影到新的特征空间中。然后,利用特征空间中的函数f(·,·)处理θ(xl)和φ(xl),再经过一个归一化指数函数softmax层计算注意力映射。最后,所有位置的特征由另一个可学习的嵌入函数g(·)投影。另外,为了减少计算量,θ(·),φ(·)和g(·)会缩小输入特征的通道。卷积z是为了维持输入的特征图xl和非局部模块的输出nl(xl)之间的维度一致,便于后续相加。非局部模块的输出特征是所有位置嵌入特征的加权和:

    nl(xl)=xl z(f(θ(xl),φ(xl))g(xl))(1)

    作为一个实施例,每个非局部模块的θ(·),φ(·)和g(·)通常实现为1×1卷积。

    具体地,公式(1)中的函数f有多种选择,可以根据实际情况选择使用的函数f。

    (1)嵌入式高斯函数:式中θ(·),φ(·)由1×1卷积实现,其中θ(·),φ(·)分别表示可学习的嵌入函数。

    (2)点积:f(θ(xl),φ(xl))=θ(xl)tφ(xl),同样θ(·),φ(·)为嵌入函数,由1×1卷积实现,其中θ(·),φ(·)分别表示可学习的嵌入函数。

    (3)级联:其中,表示权重向量它将级联向量投影到标量,θ(·),φ(·)分别表示可学习的嵌入函数。这里[·,·]表示级联。在这种情况下,将f设为relu函数,一个常用的激活函数。

    s230:将非局部模块的输出特征输入其后的第二层,如图1中的第一非局部模块后的第二层、第二非局部模块后的第三层。

    s240:用第二层更新第一层。

    s250:判断更新后的第一层是否是神经网络的最后一层。若是,则执行s260;否则,返回s220。

    s260:将最后一层的输出特征输入分类网络中。

    s270:将分类网络的输出特征作为预测结果并输出。

    将多个非局部模块插入神经网络的每两层之间,非局部模块可以捕获图像中多个区域之间的关联,使得网络可以更好的关联多层多尺度的特征,同时联系图像中多个区域特征从而提升分类准确率。

    实施例二

    本申请提供了基于实施例一的另一种细粒度图像分类系统。图3是本申请提供的另一种实施例的细粒度图像分类系统的结构图。如图3所示,细粒度图像分类系统包括神经网络、混合叠加模块以及分类网络。神经网络包括多层(如图3中的n层),每两层之间均设有一个非局部模块,如图3中的第一非局部模块、第二非局部模块、第m非局部模块、第n-1非局部模块等。进一步地,神经网络包括两个独立的分支网络(如图3中的第一分支和第二分支)和主干网络,两个分支网络包含相同的层(如图3的第一层、第二层……第m层,m为随机产生的,m∈[1,n-1],即m层为中间层),用于处理不同的图像,并在分支网络的最后一层后经过混合叠加模块对这两个分支网络对应的非局部模块的输出特征进行混合叠加,获得合并后的特征,合并的特征输入的神经网络的主干网络进一步处理。主干网络的最后一层连接分类网络,分类网络由池化层、线性分类层和归一化指数函数softmax层组成,分类网络的输入是最后一层的输出,分类网络用于得出最终的预测结果。

    非局部模块的运算请参考实施例一,在此不再赘述。在此基础上,假设随机选取神经网络的第m层(m∈[1,n-1],即第m层是神经网络的中间层)的特征输出进行混合叠加,则两个分支网络的第m非局部模块的输出为:

    其中,表示图像xi输入的第一分支网络的第m层的特征输出,由图3可知,第m层直连第m非局部模块,为第一分支网络的第m非局部模块的输出,表示图像xj输入的第二分支网络的第m层的特征输出,为第二分支网络的第m非局部模块的输出。非局部模块中的θ(·),φ(·),g(·)函数是可学习和训练的,这意味着每个非局部模块中的这三个函数是不同的,在式中本文使用θm,i(·)表示输入图像为xi的第一分支网络的第m个非局部模块中的θ(·)函数,φm,i(·)表示输入图像为xi的第一分支网络的第m个非局部模块中的φ(·)函数,gm,i(·)表示输入图像为xi的第一分支网络的第m个非局部模块中的g(·)函数;θm,j(·)表示输入图像为xj的第二分支网络的第m非局部模块中的θ(·)函数,φm,j(·)表示输入图像为xj的第二分支网络的第m个非局部模块中的φ(·)函数,gm,j(·)表示输入图像为xj的第二分支网络的第m个非局部模块中的g(·)函数。

    混合叠加模块采用如下公式对进行混合叠加:

    其中,表示混合叠加后的特征图,λ∈[0,1]为一个人为设定的超参数,可以按照实际应用中的情况将其设为常数或者使其满足某种分布,如高斯分布,beta分布等。

    作为一个实施例,每个训练周期从beta分布中采样超参数λ以执行插值:

    λ~beta(α,α)

    λ=max(λ,1-λ)(5)

    图4是本申请提供的与图3对应的细粒度图像分类预测模型的训练方法的流程图。如图4所示,细粒度图像分类预测模型的训练方法包括如下步骤:

    预测算法主要步骤如下:

    s410:网络初始化。根据图3的结构构建神经网络,加载预训练参数初始化模型,由式(5)得到超参数λ来初始化混合叠加模块,使用随机参数初始化分类网络和nl模块。

    作为一个实施例,使用卷积神经网络resnet-101,并使用加载在imagenet上训练的预训练参数来初始化模型。

    s420:随机选取数据集中的两个图像,将这两个图片分别输入两个分支网络中,分别使用独立的神经网络处理图像以得到两个图像的特征。

    样本数据集为x={x1,x2,…,xn},xj表示第j个图像样本,共有n个,对应的标签集为y={y1,y2,…,yn},yj表示第j个样本的标签,样本数据集中共有s个类别,所以yj∈{1,2,…,s}。

    作为一个实施例,训练使用的样本数据集为standforddogs数据集,该数据集是斯坦福大学提出的细粒度数据集,也是目前细粒度分类识别研究的基准图像数据集。该数据集共有20580张狗类图像,包含120类狗类子类,每类约有120张。

    s430:随机选取m,m∈[1,n-1],得到两个分支网络中的第m非局部模块的输出(如式(2)和(3)),并将这两个第m非局部模块的输出特征输入混合叠加模块中进行混合叠加(如式(4)),同时混合两个输入图像的标签。

    作为一个实施例,考虑到resnet网络都设计有5层残差块,所以令n=5,本实例中每次训练时随机选取两个分支网络的第m层的输出特征及其后续的非局部模块的输出,m∈[1,n-1]。

    其中,按照如下公式进行图像标签的混合

    yij=λyi (1-λ)yj(6)

    其中,yij表示混合后的标签,yi表示图像xi的标签,yj表示图像xj的标签。

    s440:将混合叠加后的特征输入后续的主干网络进行训练。

    s450:将主干网络最后一层的输出特征输入分类网络。

    s460:分类网络对混合叠加后的标签进行处理,将分类网络的输出标签作为预测结果

    s470:计算预测结果和混合叠加后的标签之间的损失,进行反向传播训练。

    作为一个实施例,根据混合模块的混合参数进行人工混合。

    作为一个实施例,损失函数使用交叉熵:

    s480:判断预测模型是否符合收敛条件。若是,则执行步骤s490;否则,返回s420。

    s490:获得最终预测模型。

    预测模型训练好之后,在进行细粒度图像分类时,执行s420-s460。

    本实施例设置了两个分支网络,使得预测模型可以同时处理两个输入图像,通过混合叠加技术将两个分支网络中的随机同一层的非局部模块的输出加权合并,使得网络可以通过对比突出来强调有区分性的区域特征。

    本申请的有益效果如下:

    1、本申请在神经网络的每两层之间插入一个可学习的非局部模块,使得每一层的神经元的感受野大小与物体部分大小匹配,并可以更好的关联多层多尺度的特征,将其应用于细粒度图像分类中可以有效的提升神经网络的性能。

    2、本申请通过每两层之间的多个非局部模块和两个分支网络的混合叠加结合,使得网络可以通过对比突出来强调有区分性的区域特征,对细粒度图像分类中类内差异大类间差异小的特点给出了针对性的解决办法。

    尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。


    技术特征:

    1.一种细粒度图像分类方法,其特征在于,包括:

    重复进行如下步骤,直至更新后的第一层为所述神经网络的最后一层:

    接收神经网络的第一层的输出特征,作为可学习的非局部模块的输入特征;

    将非局部模块的输出特征作为所述神经网络的第二层的输入特征;

    用第二层更新第一层;

    并且,若更新后的第一层为所述神经网络的最后一层,则

    将所述神经网络的最后一层的输出特征输入分类网络中;

    将所述分类网络的输出特征作为预测结果并输出。

    2.如权利要求1所述的细粒度图像分类方法,其特征在于,所述非局部模块采用如下公式进行运算

    nl(xl)=xl z(f(θ(xl),φ(xl))g(xl))

    其中,xl为所述第一层的输出特征图,nl(xl)是所述非局部模块的输出特征,z为卷积符号,θ(xl)、φ(xl)和g(xl)为xl的可学习的嵌入函数,f(θ(xl),φ(xl))为θ(xl)和φ(xl)的函数。

    3.如权利要求2所述的细粒度图像分类方法,其特征在于,θ(xl)、φ(xl)和g(xl)为可学习的嵌入函数。

    4.一种细粒度图像分类方法,其特征在于,包括:

    接收输入两个分支网络的图像;

    从所述神经网络中随机选取所述神经网络的中间层作为第三层;

    重复进行如下步骤,直至更新后的第一层为所述神经网络的最后一层:

    接收神经网络的第一层的输出特征,作为非局部模块的输入特征;

    将非局部模块的输出特征作为所述神经网络的第二层的输入特征;

    用第二层更新第一层;

    判断所述第一层是否为所述第三层;

    若所述更新后的第一层是所述第三层,则将两个所述分支网络的所述第三层对应的非局部模块的输出特征混合叠加,并将混合叠加后的特征输入主干网络,并用所述主干网络的第一层更新所述第一层;

    并且,若更新后的第一层为所述神经网络的最后一层,则

    将所述神经网络的最后一层的输出特征输入分类网络中;

    将所述分类网络的输出特征作为预测结果并输出。

    5.如权利要求4所述的细粒度图像分类方法,其特征在于,采用如下公式进行混合叠加

    nl(xl)=xl z(f(θ(xl),φ(xl))g(xl))

    其中,xl为所述第一层的输出特征图,nl(xl)是所述非局部模块的输出特征,z为卷积符号,θ(xl)、φ(xl)和g(xl)为xl的可学习的嵌入函数,f(θ(xl),φ(xl))为θ(xl)和φ(xl)的函数,为混合叠加后的特征图,λ为超参数,为第一分支网络的第m非局部模块的输出,为第二分支网络的第m非局部模块的输出,为图像xi输入的第一分支网络的第m层的特征输出,为图像xj输入的第二分支网络的第m层的特征输出。

    6.一种细粒度图像分类预测模型的训练方法,其特征在于,包括:

    循环执行权利要求4或5所述的细粒度图像分类方法;

    其中,将两个所述分支网络的所述第三层对应的非局部模块的输出特征混合叠加的同时混合两个图像的标签,获得混合标签;

    还包括:

    获得预测结果后,计算所述预测结果和所述混合标签之间的损失,并进行反向传播。

    7.如权利要求6所述的细粒度图像分类预测模型的训练方法,其特征在于,采用如下公式计算混合后的标签

    yij=λyi (1-λ)yj

    其中,yij表示混合后的标签,yi表示图像xi的标签,yj表示图像xj的标签。

    8.如权利要求6所述的细粒度图像分类预测模型的训练方法,其特征在于,利用交叉熵计算损失

    其中,为预测结果。

    9.一种细粒度图像分类系统,其特征在于,包括神经网络和分类网络;

    其中,神经网络包括多个层,所述神经网络的最后一层连接所述分类网络,所述分类网络的输入是所述最后一层的输出,所述分类网络的输出作为预测结果;

    所述神经网络的每两层之间均设有一个可学习的非局部模块。

    10.如权利要求9所述的细粒度图像分类系统,其特征在于,所述神经网络包括两个独立的分支网络和主干网络,所述两个分支网络包含相同的层;

    所述细粒度图像分类系统还包括混合叠加模块,所述两个分支网络的最后一层对应的非局部模块分别与所述混合叠加模块连接,所述混合叠加模块连接所述主干网络,所述主干网络的最后一层连接所述分类网络。

    技术总结
    本申请提供细粒度图像分类方法、系统及预测模型的训练方法,细粒度图像分类方法包括:重复如下步骤,直至更新后的第一层为神经网络的最后一层:接收神经网络的第一层的输出特征,作为可学习的非局部模块的输入特征;将非局部模块的输出特征作为神经网络的第一层的输入特征;用第二层更新第一层;并且,若更新后的第一层为神经网络的最后一层,则将神经网络的最后一层的输出特征输入分类网络中;将分类网络的输出特征作为预测结果并输出。本申请在神经网络的每两层之间插入一个可学习的非局部模块,使得每一层的神经元的感受野大小与物体部分大小匹配,可以更好的关联多层多尺度的特征,有效的提升细粒度图像分类中神经网络的性能。

    技术研发人员:张天魁;翁哲威;蔡昌利;杜忠田;王彦君;高旭巍;李金岭
    受保护的技术使用者:北京邮电大学;中国电信集团系统集成有限责任公司
    技术研发日:2020.11.27
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-3572.html

    最新回复(0)