图像识别模型训练方法、装置及存储介质与流程

文档序号:17162594发布日期:2019-03-20 00:57阅读:153来源:国知局
图像识别模型训练方法、装置及存储介质与流程

本发明涉及图像处理技术,尤其涉及图像识别模型训练方法、装置及存储介质。



背景技术:

不同模态的图像信息来自于不同的观测角度,它们对于主体事物的描述也不尽相同。例如常见的可见光图像,有着丰富的颜色、纹理、形状等信息,但是图像识别常常会受图像中的光照、背景、遮挡等因素干扰;红外图像是比较多的一种图像,其含有丰富的角点、边缘、纹理等信息,但是与可见光图像相比,红外图像的视觉效果较模糊;同样地,深度图像中也含有比较丰富的形状、边缘信息等,受光照、背景等因素的干扰较小,也是一种对可见光图像的有效补充;而类似插画、素描等艺术图像也会对事物的描述起到一定作用。显而易见,单独使用上述的任何一种特定模态图像都不能全面有效地描述一个事物,而这些多模态图像之间往往存在着很多的互补信息,因此在对一个事物进行描述时,使用多模态图像往往可以更加全面细致。

目前,将不同模态的图像进行融合最常用的方法是基于深度自编码器的映射学习方法。该方法在编码过程中使用不同模态的数据,其中这些数据可以是原始图像也可以是对原始图像提取的特征,通过中间隐藏层得到多个不同模态的共享特征表达。在解码阶段,使用中间层抽取得到的压缩编码表达对多个不同的模态进行解码,最终得到整个模型的优化参数。

然而,上述现有方法只考虑了同一个事物在同一模态及不同模态间的图像融合,没有考虑同类事物在同一模态及不同模态间的融合,即通过上述方法得到的模型只能识别出同一个事物的图像,对于同类别下的其他事物无法识别。



技术实现要素:

本发明提供一种图像识别模型训练方法、装置及存储介质,用于解决现有技术中由于缺乏模态内图像和模态间图像在相同类别内的语义一致性而无法获得显著性的多模态融合特征的技术问题。

本发明第一方面提供一种图像识别模型训练方法,该方法包括:

根据n个样本数据,生成多个训练数据对;其中,所述训练数据对由两个所述样本数据组成;所述n个样本数据包括:至少两种模态下的多种类别的样本数据;

将所述多个训练数据对输入基于siamese网络框架的深度卷积神经网络模型中;

获取所述训练数据对中两个样本数据在深度卷积神经网络模型的每层网络层的输出信息;所述深度卷积神经网络模型包含l层网络层,其中,l大于1;

计算所述训练数据对中第一对比损失函数和第二对比损失函数;其中,所述第一对比损失函数用于表示同一模态下的任意两个所述样本数据之间的相似度,所述第二对比损失函数用于表示不同模态下的任意两个所述样本数据之间的相似度;

根据所述第一对比损失函数、所述第二对比损失函数以及softmax损失函数,更新所述深度卷积神经网络模型的参数。

在一种可能的实施方式中,所述样本数据的属性包括样本标签、类别标签、模态标签。

在一种可能的实施方式中,所述根据n个样本数据,生成多个训练数据对时,包括:

根据所述n个样本数据,确定同一所述模态标签以及同一所述类别标签下所述样本数据的类中心样本数据;

针对每个样本数据以及每个类中心样本数据,构造训练数据对,获得多个训练数据对。

在一种可能的实施方式中,所述第一对比损失函数用于表示同一模态下的任意两个所述训练数据之间的相似度,所述第二对比损失函数用于表示不同模态下的任意两个所述训练数据之间的相似度,包括:

所述第一对比损失函数为相同模态下,表示样本数据的类内聚合和类间分离;

所述第二对比损失函数为不同模态下,表示样本数据的类内聚合和类间分离;

在一种可能的实施方式中,所述获取所述训练数据对中两个样本数据在深度卷积神经网络模型的每层网络层的输出信息前,还包括:

获取所述深度卷积神经网络模型的每层网络层的网络参数。

在一种可能的实施方式中,所述第二对比损失函数包括:

同构映射函数,用于将深度卷积神经网络中网络层学习到的样本数据的特征映射到同一个维度空间的过程中,保证原始数据在映射后仍能保持在原始特征空间中的距离关系。

在一种可能的实施方式中,所述同构映射函数用于所述深度卷积神经网络模型的最后一层卷积层中。

本发明第二方面提供一种图像识别模型训练装置,该装置包括:

生成模块,用于根据n个样本数据,生成多个训练数据对;其中,所述训练数据对由两个所述样本数据组成;所述n个样本数据包括:至少两种模态下的多种类别的样本数据;

输入模块,用于将所述多个训练数据对输入基于siamese网络框架的深度卷积神经网络模型中;

获取模块,用于获取所述训练数据对中两个样本数据在深度卷积神经网络模型的每层网络层的输出信息;

计算模块,用于计算所述训练数据对中第一对比损失函数和第二对比损失函数;其中,所述第一对比损失函数用于表示同一模态下的任意两个所述样本数据之间的相似度,所述第二对比损失函数用于表示不同模态下的任意两个所述样本数据之间的相似度;

更新模块,用于根据所述第一对比损失函数、所述第二对比损失函数以及softmax损失函数,更新所述深度卷积神经网络模型的参数。

本发明第三方面提供一种图像识别模型训练装置,该装置包括:至少一个处理器和存储器;

所述存储器存储计算机执行指令;所述至少一个处理器执行所述存储器存储的计算机执行指令,以执行第一方面任一项所述的方法。

本发明第四方面提供一种计算机可读存储介质,该计算机可读存储介质中存储有程序指令,所述程序指令被处理器执行时实现第一方面任一项所述的方法。

本发明提供的图像识别模型训练方法、装置及存储介质,图像识别模型训练方法通过根据n个样本数据,生成多个训练数据对;将所述多个训练数据对输入基于siamese网络框架的深度卷积神经网络模型中;获取所述训练数据对中两个样本数据在深度卷积神经网络模型的每层网络层的输出信息;计算所述训练数据对中第一对比损失函数和第二对比损失函数;根据所述第一对比损失函数、所述第二对比损失函数以及softmax损失函数,更新所述深度卷积神经网络模型的参数。在训练模型时利用同一模态内图像的特征在相同类别下语义的相似性,以及不同模态间图像特征在相同类别下语义的相似性,使训练后的模型能够识别出同一类别下的不同模态的图像,提高了模型识别图像的正确率。

附图说明

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

图1为本发明实施例一提供的图像识别模型训练方法的流程图;

图2为本发明实施例二提供的图像识别模型训练方法的流程图;

图3为本发明实施例二提供的图像识别模型训练方法中siamese网络框架示意图;

图4为本发明实施例三提供的图像识别模型训练方法的流程图;

图5为本发明实施例一提供的图像识别模型训练装置的结构示意图;

图6为本发明实施例二提供的图像识别模型训练装置的结构示意图。

具体实施方式

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

现有技术中,基于深度自编码器的映射学习方法只考虑了同一个事物在同一模态及不同模态间的图像融合,没有考虑同类事物在同一模态及不同模态间的融合,即通过上述方法得到的模型只能识别出同一个事物的图像,对于同类别下的其他事物无法识别。

基于上述问题,本发明提供了一种图像识别模型训练方法,能够在训练图像识别模型时,同时考虑相同模态内和不同模态间的图像在同一类别下的多模态图像融合。

图1为本发明实施例一提供的图像识别模型训练方法的流程图。如图1所示,本实施例的方法可以包括:

s101、根据n个样本数据,生成多个训练数据对。

具体的,n个样本数据为包含至少两种类别的样本数据,并且,每个类别中至少包含两种模态的样本数据。

将n个样本数据根据模态、类别进行分类,属于同一模态和同一类别的样本数据为一组,然后根据分组后的样本数据生成多个训练数据对,每个训练数据对包含两个训练样本,其中,每个训练数据对中的两个训练样本可以是属于同一个组,也可以分别属于不同组,即训练数据对中的两个训练样本为:模态相同及类别相同的两个样本数据、模态相同但类别不同的两个样本数据、模态不同但类别相同的两个样本数据、模态不同且类别也不同的两个样本数据。

s102、将所述多个训练数据对输入基于siamese网络框架的深度神经网络模型中。

关于siamese网络结构的介绍可参考现有技术,在本发明的实施例中,需要使用的siamese网络的数量与样本数据含有的模态种类的数量有关,其中,一种模态对应一个siamese网络。

具体的,将多个训练数据对中模态相同的样本数据作为同一siamese网络框架的每个分支输入,输入至siamese网络框架中,其中,siamese网络框架中的两个分支中输入的样本数据相同。

s103、获取所述训练数据对中两个样本数据在深度神经网络模型的每层网络层的输出信息。

具体的,在s103前,还包括:获取所述深度卷积神经网络模型的每层网络层的网络参数。其中,网络参数可以采用随机生成的方法获得。

根据深度卷积神经网络模型的每层网络层的网络参数以及输入的样本数据,获得每个样本数据在每层网络层的输出,并将该输出作为下一层网络层的输入。

s104、计算所述训练数据对中第一对比损失函数和第二对比损失函数。

其中,所述第一对比损失函数用于表示同一模态下的任意两个所述样本数据之间的相似度,所述第二对比损失函数用于表示不同模态下的任意两个所述样本数据之间的相似度。

具体的,根据s101生成的训练数据对,计算每个训练数据对中的两个样本数据分别在同一网络层的输出之间的相似度,针对一个样本数据,如果训练数据对的两个样本数据中的一个样本数据为该样本数据,另一个样本数据为与该样本数据模态相同的样本数据,则将这种训练数据对中的两个样本数据分别在同一网络层的输出之间的相似度进行运算,获得该样本数据的第一损失函数,例如可以使这种训练数据对中的两个样本数据分别在同一网络层的输出之间的相似度做加法运算得到该样本数据的第一损失函数。如果训练数据对的两个样本数据中的一个样本数据为该样本数据,另一个样本数据为与该样本数据模态不同的样本数据,则将这种训练数据对中的两个样本数据分别在同一网络层的输出之间的相似度进行运算,获得该样本数据的第二损失函数,例如可以这种训练数据对中的两个样本数据分别在同一网络层的输出之间的相似度做加法运算得到该样本数据的第二损失函数。

s105、根据所述第一对比损失函数、所述第二对比损失函数以及softmax损失函数,调整所述深度卷积神经网络模型的参数。

具体的,根据第一对比损失函数、第二对比损失函数及softmax损失函数求得每个网络层上的上述第三个对比损失函数对该网络层上样本数据的输出的偏导。然后,按照反向更新原则,从网络层的最后一层向前递进更新每个网络层的网络参数。

图像识别模型训练方法通过根据n个样本数据,生成多个训练数据对;将所述多个训练数据对输入基于siamese网络框架的深度卷积神经网络模型中;获取所述训练数据对中两个样本数据在深度卷积神经网络模型的每层网络层的输出信息;计算所述训练数据对中第一对比损失函数和第二对比损失函数;根据所述第一对比损失函数、所述第二对比损失函数以及softmax损失函数,更新所述深度卷积神经网络模型的参数。在训练模型时利用同一模态内图像的特征在相同类别下语义的相似性,以及不同模态间图像特征在相同类别下语义的相似性,使训练后的模型能够识别出同一类别下的不同模态的图像,提高了模型识别图像的正确率。

s101另一种可行的实施方式为:

可选的,所述样本数据包括样本标签、类别标签、模态标签。

具体的,样本标签用于表示该样本数据在相同模态下所有样本数据中的序号,即该样本数据是相同模态下所有样本数据中的第几个。类别标签是用一种符号来表示样本数据所属于的类别,例如符号可以为数字、字母等,其中,每个类别标签对应一种类别,例如数字1对应的类别是猫,数字2对应的类别是熊猫。模态标签是用一种符号来来表示样本数据的模态信息,其中,例如符号可以为数字、字母等,模态信息可以是照片,视频、素描画,文字等,例如数字1对应的是普通图片中的猫、数字2对应的是视频里的猫或者数字3对应的是描述猫的一段文字。

可选的,所述根据n个样本数据,生成多个训练数据对时,包括:

根据所述n个样本数据,确定同一模态标签和同一类别标签的所述样本数据的类中心样本数据;

针对每个样本数据以及每个类中心样本数据,构造训练数据对,获得多个训练数据对。

具体的,n个样本数据中一共有s种类别,每种类别标签下的样本数据有多种模态,将n个样本数据按照类别和模态进行分组,并随机选取每中类别和每种模态下的样本数据中的一个样本数据做为该类别在该模态下的类中心样本数据。

通过样本数据和类中心样本数据构造训练数据对,训练数据对包括:由样本数据和与该样本数据类别、模态都相同的的类中心样本数据构造的训练样本对,称为第一训练样本对,由样本数据和与该样本数据类别不同、模态相同的的类中心样本数据构造的训练样本对,称为第二训练样本对,由类别相同、模态不同的两个类中心样本数据构造的训练样本对,称为第三训练样本对,由类别不同、模态不同的两个类中心样本数据构造的训练样本对,称为第四训练样本对。

本实施例中,引入了类中心样本数据的概念,通过在相同模态和类别的样本数据中选择一个类中心样本数据,使用一个类中心样本数据代表与该类中心样本数据属于同一模态和类别的多个样本数据,从而减少构造的训练数据对的数量,进而在计算第一损失函数和第二损失函数及相关公式计算时,使用由样本数据和类中心数据构造的训练数据对进行计算,可以减少网络层的计算量以及复杂度,提高计算效率,减小更新网络参数时的难度。

下面根据一个具体的实施例对上述步骤进行描述,图2为本发明实施例二提供的图像识别模型训练方法的流程图。如图2所示,本实施例的方法可以包括:

s201、在n个样本数据中,对于模态和类别都相同的多个样本数据,选择一个样本数据作为该多个样本数据的类中心样本数据,生成多个训练数据对。

具体的,n个样本数据中一共有s种类别,每种类别下的样本数据有多种模态,其中,本实施例以每种类别下的样本数据有两种模态为例进行描述。

根据上文所述,一个样本数据为(xi,si),其中,xi表示一个样本数据;i表示该样本数据为同一模态的所有样本数据中的第i个样本数据,i∈{1,2,3,…,m},m为与该样本数据属于同一模态的所有样本数据的数量;si表示该样本数据的类别,si∈{1,2,3,…,s},s为所有样本数据的类别标签数量。本实施例中每个类别下的样本数据包含两个模态,例如,当样本数据包含两种模态时,用x1i表示样本数据xi的模态为模态1的样本数据,同理,样本数据xi在模态2下的样本数据为x2i。从类别和模态都相同的所有样本数据中随机选取一个样本数据作为该类别和模态下的类中心样本数据c1k、c2k,其中,c1k表示样本数据的类别标签为k且处于模态1下的所有样本数据的类中心样本数据,c2k表示样本数据的类别标签为k且处于模态2下的所有样本数据的类中心样本数据,k∈{1,2,3,…,s}。

通过样本数据和类中心样本数据构造训练数据对,训练数据对包括:模态1下的训练数据对为(x1i,)、(x1i,c1j),其中,j≠si。同理,模态2下的训练数据对为(x2i,)、(x2i,c2j),其中,j≠si。不同模态下的训练数据对为(c1k,c2k)、(c1k,c2j),其中,j≠k。

此外,在s201中,还包括:设置预设值∈、预设次数th,学习率η的值。

s202、将所述多个训练数据对输入基于siamese网络框架的深度卷积神经网络模型中。

具体的,图3为本发明实施例二提供的图像识别模型训练方法中siamese网络框架示意图。如图3所示,由于本实施例中考虑样本数据为两种模态的情况,所以选用两个siamese网络,即siamese网络31,siamese网络32,构造双分支网络的数据输入。所以整个双分支网络包括四个输入接口,分别为311,312、321、322。

其中,按照样本数据的模态不同,将属于模态1的所有类别的样本数据从一个siamese网络的311输入接口输入,将模态1下的每个类别的类中心样本数据从该siamese网络的312输入接口输入。同理,将属于模态2的所有类别的样本数据从另一个siamese网络的321输入接口输入,将模态2下的每个类别的类中心样本数据从该siamese网络的322输入接口输入。

s203、获取所述训练数据对中两个样本数据在深度卷积神经网络模型的每层网络层的输出信息。

s204、计算所述训练数据对中第一对比损失函数以及第一对比损失函数对样本数据和类中心样本数据在每层网络层的输出的的偏导。

s205、计算所述训练数据对中的第二对比损失函数,以及第二对比损失函数对类中心样本数据在每层网络层的输出的的偏导。

其中,在此需需要说明的是,s204和s205执行顺序可以是先执行s204,再执行s205;也可以是先执行s205,再执行s204;也可以同时执行。

其中,所述第一对比损失函数用于表示同一模态下的任意两个所述样本数据之间的相似度,所述第二对比损失函数用于表示不同模态下的任意两个所述样本数据之间的相似度。

具体的,选择一个深度卷积神经网络,例如,可以是3d深度卷积神经网络。其中,深度卷积神经网络模型包括l层网络层,l为大于1的整数。

可选的,在s203之前,获取所述深度卷积神经网络模型的每层网络层的网络参数。

具体的,可以随机生成深度卷积神经网络模型中任意网络层l的权重ωl和偏置bl,从而构成l层的网络参数wl={ωl,bl},其中,l∈{1,2,…,l}。

将所有的样本数据输入到siamese网络后,结合网络参数和训练数据对,根据前向传到公式计算x在l层网络层的输出,并将其作为下一个网络层的输入。其中f为激活函数,x为样本数据或类中心样本数据。

对于同一个模态下训练数据对,根据训练数据对中的样本数据和类中心样本数据在l层的输出,计算每个样本数据和类中心样本数据在l层的输出计算第一对比损失函数,如图3中firstloss,并计算第一对比损失函数分别对每个样本数据和类中心样本数据在l层的输出的偏导。

例如,模态1下的第一训练数据对和第二训练数据对(x1i,),(x1i,c1j),其中的样本数据和类中心样本数据在l层的输出为si、j∈{1,2,…,s}。则第一损失函数的计算公式可以为公式(2.1):

其中,m1,m2为contrastiveloss的边缘参数,且有m1<<m2。公式(2.1)中的第一项为模态1下相同类别的样本数据的类内聚合,是为了保证每个样本数据都接近该样本数据的类中心样本数据;第二项为模态1下利用不同类别不同模态的样本数据的类中心样本数据之间的分离表示不同类别的样本数据类间分离,是为了使样本数据尽可能的远离其他类别的样本数据。

然后,分别计算第一损失函数对模态1下的每个样本数据和类中心样本数据在网络层l层输出的偏导,例如,公式(2.1)对的偏导。公式(2.1)对的偏导为公式(2.2):

公式(2.1)对的偏导为公式(2.3):

其中in(x)为指示函数,当x≥0时,in(x)=1,否则其值为0。

同样的,利用上述公式,可以求得模态2下的样本数据和类中心样本数据在l层的输出、第一损失函数以及第一损失函数分别对样本数据和类中心样本数据在l层的输出的偏导,此处不再赘述。

对于不同模态下训练数据对,首先根据训练数据对中的类中心样本数据在l层的输出,计算类中心样本数据在层的输出计算第二损失函数,如图3中secondloss,并计算第二对比损失函数分别对每个类中心样本数据在l层的输出的偏导。

例如,对于不同模态下训练数据对,即第三训练数据对和第四训练数据对,首先获取每个类别的类中心样本数据在网络层l层的输出,例如第三训练数据对中的类中心样本数据在网络层l层的输出其中,k∈{1,2,3,…,s}。然后,计算第二损失函数,其计算公式可以为公式(2.4):

可选的,所述第二对比损失函数包括:同构映射函数,用于将在深度卷积神经网络中网络层学习到的样本数据的特征映射到同一个维度空间的过程中,保证原始数据在映射后仍能保持在原始特征空间中的距离关系。

可选的,所述同构映射函数用于所述深度卷积神经网络模型的最后一层卷积层中。

具体的,由于不同模态的图像在卷积神经网络的最后一层卷积层上得到的特征维度可能不一致,所以在对不同模态的样本数据计算第二损失函数时需要学习对应的同构映射函数,即公式(2.4)中的w1、w2,将不同维度的输出特征映射到同一个空间,从而保证原始数据在映射后仍能保持在原始特征空间中的距离关系。其中,同构映射函数w1、w2的值可通过下面的方法获得,

s2051、初始化w1、w2的值为w1(0)、w2(0),对w1(0)、w2(0)的值进行,更新后的值为w1(t)、w2(t),其中t表示更新的次数。

s2052、固定w2(t)的值,开始时t=0,对第二对比损失函数求解关于w1的偏导数,例如求解公式(2.4)对w1的偏导数:

其中δ=gw(c1k)(w1tgwl(c1k)-w2tgwl(c2k))t,t表示转置。根据w1(t)、w2(t)的值获得第二对比损失函数,即公式(2.4)关于w1的偏导数g的值。

s2053、斜对称矩阵的公式为公式(2.6)

根据w1(t)和偏导数g的值求解斜对称矩阵

s2054、根据公式获得w1(t+1)的值。其中,i为单位矩阵。

s2055、固定w1(t)的值,按照步骤s2022~s2024的方法求w2(t+1)的值。

s2056、重复步骤s2022~s2025,即先固定w1(t)或w2(t)的值,然后按照s2052~s2054的方法求w2(t+1)或w1(t+1)的值,当更新次数t达到设定的值或||w1(t)-w1(t+1)||≤λ时停止更新。其中,λ为设定的阈值。

当w1、w2的值确定后,分别计算第二损失函数对每个类中心样本数据在网络层l层的输出的偏导,例如,公式(2.4)对的偏导,公式(2.4)对的偏导为:

其中

s206、根据所述第一对比损失函数、所述第二对比损失函数以及softmax损失函数,调整所述深度卷积神经网络模型的网络参数。

具体的,步骤s206可分解成以下几个步骤:

s2061、对于相同模态下的每个样本数据和类别标签si,将第l层的输出,例如作为最后softmax分类层的输入,softmax层的参数为s为样本数据的类别标签数,则softmax层的损失函数可以为公式(8):

其中,当si=j时,1{si=j}=1;当si≠j时,1{si=j}=0,从而保证样本数据x1i所述的类别标签和选择的softmax层的参数对应的类别标签一样。

求上述softmax层的损失函数,即公式(2.8)求偏导,偏导为:

s2062、根据步骤s204中计算每个网络层中每个样本数据和类中心样本数据的第一损失函数,即loss1,以及第二损失函数,即loss2,结合步骤s2061获得最后输出层的偏差,即softmax分类层的输出偏差,偏差公式为公式(2.9):

etotal=loss1+loss2+j(θ)(2.9)

s2062、对于任意一个样本数据x1i,其偏差为:

其中,ul=ωlx1i(l-1)+bl。

对于任意一个类中心样本数据c1i,其偏差为

其中,ul=ωlc1i(l-1)+bl。

对于第l层的偏差,可以根据反向传播公式求出第l层的偏差,其中,任意一个样本数据x1i在第l层的偏差可根据第l+1层的偏差反向递推得到,其公式为:

δl(x1i)=(ωl+1)tδ(x1i)l+1⊙f′(ul)

任意一个类中心样本数据c1i在第l层的偏差可根据第l+1层的偏差反向递推得到,其公式为:

δl(c1i)=(ωl+1)tδ(c1i)l+1⊙f′(ul)

其中,ωl+1为还没有进行更新的第l+1层的权重。

s2064、从网络层的最后一层反向更新每个网络层l的网络参数wl={ωl,bl},即权重ωl和偏置bl。例如,模态1下的样本数据在网络层l层的参数的更新方式为:

其中,ω1lold和b1lold分别为上一次更新时获得的权重ωl和偏置bl的值,ω1lnew和b1lnew分别为更新后权重ωl和偏置bl的值。

更新每层的网络参数,直到跟新次数达到设置的预设次数th或者ω1l,b1l收敛,即|ω1lnew-ω1lold|≤∈且|b1lnew-b1lold|≤∈,其中,∈为设置的预设值。

s2065、根据步骤s2063和s2064的方法,更新样本数据为模态2时的网络层的网络参数,即权重ω2l和偏置b2l。

在本实施例中,基于深度卷积神经网络,通过设计第一损失函数和第二损失函数建立同一模态样本数据以及不同模态样本数据在相同类别内与不同类别之间的关系模型,然后优化深度卷积神经网络的网络参数,使得属于同一类别的样本数据在同一模态下或者不同模态下有着相似的高层语义表达,而不属于同一类别的样本在高层语义表达上有较大的差异,实现类内样本数据的关联与类间样本数据的分离,从而使得训练的深度卷积神经网络模型具有更强的区分性或者识别能力。并且引入了类中心样本数据的概念,使得在计算第一损失函数和第二损失函数及相关公式计算时,使用类中心数据进行计算,从而可以提高计算效率,减小更新网络参数时的难度。

由于rgb图像和depth图像可以看作是两种不同模态的图像,因此可以将上述发明方案用于rgb-d图像序列的动作识别。

图4为本发明实施例三提供的图像识别模型训练方法的流程图。该方法包括以下步骤:

s401、分别在rgb和depth模态下的样本数据中随机选择每类标签中的一个样本数据作为该类的类中心样本数据。

s402、构造双分支网络的样本数据输入。

其中每个分支网络又是一个siamese网络,所以整个双分支网络的组成是一个四元组:rgb视频r(n),rgb类中心视频c(k),depth视频d(n),depth类中心视频d(k)。对于每个视频随机选取长度为32的图像序列作为3d深度卷积神经网络的输入。

选择3d深度卷积神经网络的c3d模型作为本实施例中的图像高级语义特征提取模型,选定设置预设值ε和预设次数th,学习率η,同时,对3d深度卷积神经网络中的网络参数进行初始化。

其中,3d深度卷积神经网络的c3d模型包括conv1a、pool1、conv2a、pool2、conv3a、conv3b、pool3、conv4a、conv4b、pool4、conv5a、conv5b、pool5。其中,conv表示卷积层,pool表示池化层。

s403、将rgb视频r(n),rgb类中心视频c(k),depth视频d(n),depth类中心视频d(k)输入到3d深度卷积神经网络的c3d模型中,计算每个输入的图像序列在每个网络层的输出。

具体的,例如,以图像序列r(n)为例,按照公式(4.1)~(4.3)得到图像序列r(n)在每个网络层的输出。

若是卷积层(如conv1a,conv3a,conv3b),则输出由公式(4.1)计算得到:

其中,表示图像序列r(n)在第l层输出的第j个特征图,mj表示与该特征图有关的输入特征图(即上一层的输出特征图)集合,表示在第l层第i个输入特征图到第j个特征图之间所使用的卷积核参数,bj为第j个特征图的偏置参数,f为激活函数。

若是池化层(如pool1,pool2),则输出由公式(4.2)计算得到:

其中,均为偏置参数,而down(x)表示对x中的像素值采取求平均,最大值等操作。

若是全连接层,则输出由公式(4.3)计算得到:

r(n,l)=f(u(n,l)),u(n,l)=ωlr(n,l-1)+bl(4.3)

s404、按照s204-s206中计算第一损失函数、第二损失函数以及softmax层的损失函数的公式获得本实施例中每个输入的图像序列在每个网络层的输出的第一损失函数、第二损失函数,以及softmax层的损失函数,并根据s204-s206中的求偏导的公式计算第一损失函数、第二损失函数以及softmax层的损失函数对图像序列在每个网络层的输出的偏导,得到其在最后输出层的偏差δ(n,l),然后反向计算每层的偏差。

具体的,可以按照按照下面的公式反向计算每层的偏差

若当前层为卷积层,下一层为池化层,则偏差为:

其中表示将第l+1层扩展为和第l层一样大。

若当前层为卷积层,上一层为卷积层,则偏差为:

若当前层为池化层,则偏差为:

若当前为全连接层,则偏差为:

s405、计算每层参数的偏导。

具体的,可以按照下面的公式计算每层参数的偏导:

对于卷积层中卷积核的偏导,其计算公式为:

其中,在做卷积时,与做卷积的每一个patch,(u,v)是patch中心,输出特征图中(u,v)位置的值,是由输入特征图中(u,v)位置的patch和卷积核卷积所得的值。

对于卷积层中偏置的偏导,计算公式为:

对于池化层中的偏置的偏导,计算公式为:

对于池化层中的偏置的偏导,计算公式为:

对于全连接层的权重ωl的偏导,计算公式为:

对于全连接层的权重bl的偏导,计算公式为:

s406、从网络层的最后一层向前更新每一个卷积层、池化层和全连接层的网络参数。

具体的,以卷积层为例,每个参数更新的公式可以为:

当更新次数达到预设次数th或更新前参数的值与更新后参数的值之间的差值小于预设值ε时,网络层的网络参数更新完成。

本实施例中,在基于双siamese网络的3d深度卷积神经网络中,通过设计的第一损失函数和第二损失函数可以将基于rgb模态的rgb图像和基于depth模态的depth图像序列的特征进行高度融合,对动作进行识别。

图5为本发明实施例一提供的图像识别模型训练装置的结构示意图。如图5所示,本实施例的装置可以是网络设备或网络设备的芯片,所述装置可以包括:生成模块51、输入模块52、获取模块53、计算模块54和更新模块55。其中,

生成模块51,用于根据n个样本数据,生成多个训练数据对;其中,所述训练数据对由两个所述样本数据组成;所述n个样本数据包括:至少两种模态下的多种类别的样本数据。

输入模块52,用于将所述多个训练数据对输入基于siamese网络框架的深度卷积神经网络模型中。

获取模块53,用于获取所述训练数据对中两个样本数据在深度卷积神经网络模型的每层网络层的输出信息。

计算模块54,用于计算所述训练数据对中第一对比损失函数和第二对比损失函数;其中,所述第一对比损失函数用于表示同一模态下的任意两个所述样本数据之间的相似度,所述第二对比损失函数用于表示不同模态下的任意两个所述样本数据之间的相似度。

更新模块55,用于根据所述第一对比损失函数、所述第二对比损失函数以及softmax损失函数,更新所述深度卷积神经网络模型的参数。

可选的,所述样本数据的属性包括样本标签、类别标签、模态标签。

可选的,生成模块51,具体用于根据所述n个样本数据,确定同一所述模态标签以及同一所述类别标签下所述样本数据的类中心样本数据;

针对每个样本数据以及每个类中心样本数据,构造训练数据对,获得多个训练数据对。

可选的,获取模块53,还用于获取所述深度卷积神经网络模型的每层网络层的网络参数。

其中,所述第一对比损失函数用于表示同一模态下的同一类别内的聚合和不同类别间的分离,所述第二对比损失函数用于表示不同模态下的同一类别内的聚合和不同类别间的分离。

本实施例所述的图像识别模型训练装置,可以用于执行上述图1、图2、图4所述的实施例中的技术方案,其实现原理和技术效果类似,其中各个模块的功能可以参考方法实施例中相应的描述,此处不再赘述。

图6为本发明实施例二提供的图像识别模型训练装置的结构示意图。如图6所示,该图像识别模型训练装置可以是网络设备或网络设备的芯片,所述装置可以包括:至少一个处理器61和存储器62。图6示出的是以一个处理器为例的图像识别模型训练装置,其中,

存储器62,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器62可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

处理器61,用于执行所述存储器62存储的计算机执行指令,以实现上述实施例中的图像识别模型训练方法,其实现原理和技术效果类似,在此不再赘述。

其中,处理器61可能是一个中央处理器(centralprocessingunit,简称为cpu),或者是特定集成电路(applicationspecificintegratedcircuit,简称为asic),或者是被配置成实施本申请实施例的一个或多个集成电路。

可选的,在具体实现上,如果通信接口、存储器62和处理器61独立实现,则通信接口、存储器62和处理器61可以通过总线相互连接并完成相互间的通信。所述总线可以是工业标准体系结构(industrystandardarchitecture,简称为isa)总线、外部设备互连(peripheralcomponent,简称为pci)总线或扩展工业标准体系结构(extendedindustrystandardarchitecture,简称为eisa)总线等。所述总线可以分为地址总线、数据总线、控制总线等,但并不表示仅有一根总线或一种类型的总线。

可选的,在具体实现上,如果通信接口、存储器62和处理器61集成在一块芯片上实现,则通信接口、存储器62和处理器61可以通过内部接口完成相同间的通信。

本实施例以上所述的图像识别模型训练装置,可以用于执行上述各方法实施例中的技术方案,其实现原理和技术效果类似,此处不再赘述。

本发明还提供了一种计算机可读存储介质,该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或者光盘等各种可以存储程序代码的介质。具体的,该计算机可读存储介质中存储有程序指令,程序指令用于上述实施例中的方法。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1