图像识别与神经网络模型的训练方法、装置和系统与流程

文档序号:18303090发布日期:2019-07-31 10:27阅读:373来源:国知局
图像识别与神经网络模型的训练方法、装置和系统与流程

本申请涉及图像处理技术领域,特别是涉及一种图像识别与神经网络模型的训练方法、装置、系统和可读存储介质。



背景技术:

目前,基于人脸识别技术的应用场景越来越多。一般情况下,人脸识别所采用的底库图为rgb图,而因为暗光环境等条件的限制抓拍图为ir(infrad,红外)图,因此存在诸如rgb图和ir图的人脸比对这样的跨模态图像比对的需求。

传统的一种方案是通过多模态的图像训练样本的交叉熵损失来训练得到卷积神经网络,基于训练得到的卷积神经网络实现跨模态图像比对和识别。

然而,上述跨模态图像比对方案存在误识率过高的问题。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种能够提高准确性的图像识别与神经网络模型的训练方法、装置、系统和可读存储介质。

第一方面,一种图像识别方法,所述方法包括:

获取待识别图像;

将所述待识别图像输入神经网络模型进行特征提取处理,输出所述待识别图像的目标图像特征;所述神经网络模型包括至少一个空间变换块,所述空间变换块用于采用空间变换矩阵对输入的中间图像特征进行空间变换处理;所述中间图像特征是所述待识别图像在所述特征提取处理过程中生成的;

将所述待识别图像的目标图像特征和底库图像组中底库图像的底库图像特征进行比对,得到比对结果;其中,所述底库图像组包括至少一个底库图像,所述底库图像和所述待识别图像为不同模态的两个图像,所述底库图像特征是所述神经网络模型从所述底库图像中提取的。

在其中一个实施例中,所述空间变换块包括:全连接层和特征变换层,所述全连接层对应一个空间变换矩阵;所述特征变换层与所述全连接层连接,用于通过所述空间变换矩阵对输入至所述特征变换层的中间图像特征进行空间变换,输出空间变换后的中间图像特征。

在其中一个实施例中,所述空间变换块还包括:预处理层,所述预处理层包括:前后连接的卷积层和残差层;所述卷积层用于对输入至所述卷积层的中间图像特征进行卷积操作,输出卷积操作结果;所述残差层用于对所述输入至所述残差层的中间图像特征和所述卷积操作结果进行按位相加操作,输出按位相加结果作为所述特征变换层的输入。

在其中一个实施例中,所述空间变换块还包括:后处理层,所述后处理层的输入为所述特征变换层的输出,所述后处理层包括:前后连接的卷积层和残差层;所述卷积层用于对输入至所述卷积层的中间图像特征进行卷积操作,输出卷积操作结果;所述残差层用于对所述输入至所述残差层的中间图像特征和所述卷积操作结果进行按位相加操作,输出按位相加结果作为所述空间变换块的输出。

在其中一个实施例中,所述卷积层为深度可分离卷积层。

在其中一个实施例中,所述神经网络模型包括多个级联的特征提取块和多个所述空间变换块,所述空间变换块位于级联的两个特征提取块之间;所述特征提取块用于对所述待识别图像进行特征提取处理,生成中间图像特征,并将所述中间图像特征作为所述空间变换块的输入;所述空间变换块将空间变换处理后的中间输出特征作为级联的下一个特征提取块的输入。

在其中一个实施例中,所述方法还包括:

获取训练样本;所述训练样本包括多个对象的不同模态的图像,且各图像标注有对象标签和模态标签;

将各图像输入初始神经网络模型中,输出所述各图像的图像特征,以及基于所述各图像的图像特征进行分类处理所得到的各图像的对象分类;

计算各图像的对象分类与对象标签之间的第一损失,并基于所述模态标签,计算训练样本中不同模态的图像特征之间的第二损失,以及根据所述第一损失和第二损失,计算所述初始神经网络模型的损失函数的值;

根据所述损失函数的值,对所述初始神经网络模型的参数进行调整,得到所述神经网络模型;所述初始神经网络模型的参数包括至少一个所述空间变换块对应的空间变换矩阵。

在其中一个实施例中,所述第一损失为交叉熵损失,所述交叉熵损失包括训练样本中各图像的对象标签与对象分类之间的损失;所述第二损失为三元组损失,所述三元组损失包括训练样本中三元图像组中各图像的图像特征之间的损失,所述三元图像组包括:参考图像、正样本图像和负样本图像,所述参考图像和所述正样本图像为同一对象的不同模态的两个图像,所述参考图像和所述负样本图像为不同对象的同一模态的两个图像。

在其中一个实施例中,所述训练样本包括多个图像集合,每个图像集合包括:至少四个图像,所述四个图像分属两个不同对象,分属于同一对象的两个图像为不同模态的两个图像;所述计算各图像的对象分类与对象标签之间的第一损失,并基于所述模态标签,计算训练样本中不同模态的图像特征之间的第二损失,以及根据所述第一损失和第二损失,计算所述初始神经网络模型的损失函数的值,包括:

针对所述多个图像集合,根据所述图像集合中四个图像的图像特征和对象分类,计算所述图像集合中两个不同对象各自的三元组损失、四个图像各自的交叉熵损失;

根据所述各图像集合中两个不同对象各自的三元组损失、四个图像各自的交叉熵损失,计算所述训练样本的损失函数的值。

在其中一个实施例中,所述底库图像和所述待识别图像为两个不同模态的图像,所述两个不同模态分别为红绿蓝rgb模态和红外ir模态。

在其中一个实施例中,所述空间变换矩阵为透视变换矩阵或仿射变换矩阵。

第二方面,一种神经网络模型的训练方法,包括:

获取训练样本;所述训练样本包括多个对象的不同模态的图像,所述训练样本中各图像标注有对象标签和模态标签;

将各图像输入初始神经网络模型进行特征提取处理,输出所述各图像的图像特征,以及基于所述各图像的图像特征进行分类处理,得到各图像的对象分类;所述初始神经网络模型包括至少一个空间变换块,所述空间变换块用于采用空间变换矩阵对输入的中间图像特征进行空间变换处理;所述中间图像特征是对输入的图像在所述特征提取处理过程中生成的;

计算各图像的对象分类与对象标签之间的第一损失,并基于所述模态标签,计算训练样本中不同模态的图像特征之间的第二损失,以及根据所述第一损失和第二损失,计算所述初始神经网络模型的损失函数的值;

根据所述训练样本的损失函数的值,对所述初始神经网络模型的参数进行调整,得到所述神经网络模型;所述初始神经网络模型的参数包括至少一个所述空间变换块对应的空间变换矩阵。

第三方面,一种图像识别装置,所述装置包括:

图像获取模块,用于获取待识别图像;

特征提取模块,用于将各图像输入初始神经网络模型进行特征提取处理,输出所述各图像的图像特征,以及基于所述各图像的图像特征进行分类处理所得到的各图像的对象分类;所述初始神经网络模型包括至少一个空间变换块,所述空间变换块用于采用空间变换矩阵对输入的中间图像特征进行空间变换处理;所述中间图像特征是对输入的图像在所述特征提取处理过程中生成的;

特征比对模块,用于将所述待识别图像的目标图像特征和底库图像组中底库图像的底库图像特征进行比对,得到比对结果;其中,所述底库图像组包括至少一个底库图像,所述底库图像和所述待识别图像为不同模态的两个图像,所述底库图像特征是所述神经网络模型从所述底库图像中提取的。

第四方面,一种神经网络模型的训练装置,包括:

训练样本获取模块,用于获取训练样本;所述训练样本包括多个对象的不同模态的图像,所述训练样本中各图像标注有对象标签和模态标签;

图像处理模块,用于将各图像输入初始神经网络模型进行特征提取处理,输出所述各图像的图像特征,以及基于所述各图像的图像特征进行分类处理,得到各图像的对象分类;所述初始神经网络模型包括至少一个空间变换块,所述空间变换块用于采用空间变换矩阵对输入的中间图像特征进行空间变换处理;所述中间图像特征是对输入的图像在所述特征提取处理过程中生成的;

损失计算模块,用于计算各图像的对象分类与对象标签之间的第一损失,并基于所述模态标签,计算训练样本中不同模态的图像特征之间的第二损失,以及根据所述第一损失和第二损失,计算所述初始神经网络模型的损失函数的值;

模型训练模块,用于根据所述训练样本的损失函数的值,对所述初始神经网络模型的参数进行调整,得到所述神经网络模型;所述初始神经网络模型的参数包括至少一个所述空间变换块对应的空间变换矩阵。

第五方面,一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的图像识别方法,也可以实现第二方面提供的神经网络模型的训练方法。

第六方面,一种图像识别系统,包括拍摄装置和计算机设备;所述拍摄装置用于拍摄获取待识别图像,并将所述待识别图像发送给所述计算机设备进行图像比对;所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现第一方面提供的图像识别方法,也可以实现第二方面提供的神经网络模型的训练方法。

上述图像识别与神经网络模型的训练方法、装置、系统和可读存储介质,神经网络模型可以对不同模态的待识别图像进行特征提取处理,并在特征提取处理过程中基于空间变换块对不同模态的中间图像特征进行相同的空间变换处理;空间变换块中的空间变换矩阵也是预先训练的,因此神经网络模型输出的不同模态的目标图像特征在空间特性尽可能趋于一致,可以降低不同模态的图像因为拍摄角度等原因导致的误识率,提高神经网络模型针对不同模态的图像比对的适应性和准确率。

附图说明

图1为一个实施例中图像识别方法的应用环境图;

图2为一个实施例中图像识别方法的流程示意图;

图3为一个实施例中空间变换块的示意图;

图4为另一个实施例中空间变换块的示意图;

图5为一个实施例中神经网络模型的示意图;

图6a为一个实施例中神经网络模型的训练方法的流程示意图;

图6b为一个实施例中神经网络模型的训练示意图;

图7为一个实施例中神经网络模型的训练方法的流程示意图;

图8为一个实施例中图像识别装置的结构框图;

图9为一个实施例中神经网络模型的训练装置的结构框图;

图10为一个实施例中图像识别系统的示意图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的图像识别方法,可以但不限于应用于如图1所示的应用环境中。其中,拍摄装置12可以获取待识别对象的待识别图像,并将待识别图像发送给计算机设备11;计算机设备11可以对从所述待识别图像中提取出目标图像特征,并将待识别图像的图像特征和底库图像组中底库图像的图像特征进行比对,得到比对结果,以进行图像比对、身份识别等,例如可以识别出待识别对象是否为底库图像组中某一底库图像对应的合法对象。其中,计算机设备11可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、服务器等。

在一个实施例中,如图2所示,提供了一种图像识别方法,以该方法应用于图1中的计算机设备为例进行说明,包括以下步骤:

s201,获取待识别图像。

上述待识别图像可以是计算机设备接收到的其它设备发送的待识别图像,如拍摄装置、其它计算机设备等,也可以是计算机设备本地存储的待识别图像,或者是其它来源的待识别图像;总之,计算机设备需要对该待识别图像和底库图像组中的底库图像进行比对,应用场景可以但不限于是身份认证、刷脸支付、人物相似度比对等。本实施例的图像识别方法可以实现不同模态的待识别图像和底库图像之间的比对,示例性地,当进行刷脸支付时,底库图像可能是rgb图像,而刷脸时摄像头拍摄的待识别图像可能是ir图像。

当然,在所述s201之后,本实施例还可以对待识别图像进行各种类型的预处理,然后才将预处理后的待识别图像输入神经网络模型中;各种类型的预处理包括但不限于以下内容中的至少一种:图像减去均值的处理、对感兴趣区域的图像提取(例如通过人脸识别从待识别图像中提取出脸部图像,甚至进一步地提取出脸部图像中的关键点区域的图像,如眼睛图像、鼻子图像等)、批归一化处理等;本实施例对此并不限制。

s202,将所述待识别图像输入神经网络模型进行特征提取处理,输出所述待识别图像的目标图像特征;所述神经网络模型包括至少一个空间变换块,所述空间变换块用于采用空间变换矩阵对输入的中间图像特征进行空间变换处理;所述中间图像特征是所述待识别图像在所述特征提取处理过程中生成的。

其中,所述神经网络模型可以从所述待识别图像中提取出图像特征,神经网络模型可以为适用于图像处理的任一类型的神经网络,如lenet、alexnet、resnet(残差神经网络)、vggnet等。可以理解的是,在神经网络模型中,一般存在多个前后连接的特征提取块(可以包括卷积层、池化层、全连接层、激活层等多个层)或特征提取层(可以是卷积层等),在对待识别图像进行特征提取处理过程中,可以生成不同层次、不同维度的多个中间图像特征,并可以将最终输出的中间图像特征作为目标图像特征。在本实施例中,可以在传统的神经网络模型的基础上,在任意的至少一个特征提取层或者特征提取块之后,可以添加所述空间变换块以对输入的中间图像特征进行空间变换处理,再将空间变换处理后的中间图像特征作为下一个特征提取块或特征提取层的输入。

可以理解的是,可以在每一个特征提取层或者特征提取块之后添加一个空间变换块;也可以将一个空间变换块添加在任意的一个特征提取层或者特征提取块之后;也可以在部分特征提取层或者特征提取块之后添加一个空间变换块,在另一部分特征提取层或者特征提取块之后不进行添加;总之,本实施例对空间变换块的位置和数量不做限定。

可以理解的是,空间变换块采用空间变换矩阵对输入的中间图像特征进行空间变换处理,可以在空间变换处理过程中保持图像特征在某些空间特性上不变,例如可以保证平移、伸缩、旋转、扰动、弯曲等空间不变性;因为空间变换块中的空间变换矩阵也是预先训练的,因此神经网络模型输出的不同模态的目标图像特征在空间特性尽可能趋于一致,可以降低由于待识别图像在空间上的多样性导致误识率过高的问题,即降低不同模态的图像因为拍摄角度等原因导致的误识率。

s203,将所述待识别图像的目标图像特征和底库图像组中底库图像的底库图像特征进行比对,得到比对结果;其中,所述底库图像组包括至少一个底库图像,所述底库图像和所述待识别图像为不同模态的两个图像,所述底库图像特征是所述神经网络模型从所述底库图像中提取的。

所述计算机设备中可以存储有底库图像组,相当于是图像比对中各对象的参考图像或标准图像;示例性地,在支付场景下可以对应一个对象,该对象对应至少一个底库图像;在打卡场景下,可以对应一个公司的所有员工,每个员工对应至少一个底库图像。可以理解的是,当底库图像组包括至少多个底库图像时,底库图像组中的底库图像可以为多模态的,本实施例对此并不限制。同样地,计算机设备中可以存储有各底库图像对应的对象标签。当然,计算机设备也可以通过其他方式获取上述的底库图像组等数据,例如通过互联网从预设的服务器中获取,本实施例对此并不限制。

需要说明的是,在对模型训练完成后,计算机设备可以将底库图像组中的底库图像输入神经网络模型,输出所述底库图像组中底库图像的图像特征并存储;该底库图像的图像特征可以复用,无需每次进行图像比对时才从底库图像中提取,提高了图像比对效率。

在进行比对时,因为待识别图像的图像特征和底库图像的图像特征均是神经网络模型提取的,因此可以进行比对。示例性地,可以分别计算待识别图像的图像特征与底库图像的图像特征之间的相似度,例如各对应像素点的像素值之间的差值的绝对值之和,作为比对参考数据。当底库图像为一个时,判断所述相似度是否大于预设相似度阈值,若是,则确定所述待识别图像与所述底库图像是同一对象;若否,则确定所述待识别图像与所述底库图像不是同一对象。当底库图像为多个时,分别判断各底库图像的相似度是否大于预设相似度阈值,并将相似度大于预设相似度阈值的至少一个底库图像作为待选图像;当不存在待选图像时,即待识别对象与底库图像组中的任一底库图像的对象均不符合;当存在一个待选图像时,可以确定待识别对象与该待选图像是同一对象;当存在多个待选图像时,可以确定待识别对象与所述多个待选图像疑似为同一对象,并按照相似度大小从大到小排列所述多个待选图像对应的对象。

在本实施例中,神经网络模型可以对不同模态的待识别图像和底库图像进行特征提取处理,并在特征提取处理过程中基于空间变换块对不同模态的中间图像特征进行相同的空间变换处理;空间变换块中的空间变换矩阵也是预先训练的,因此神经网络模型输出的不同模态的目标图像特征和底库图像特征在空间特性尽可能趋于一致,可以降低不同模态的待识别图像因为拍摄角度等原因导致的误识率,提高神经网络模型针对不同模态的图像比对的适应性和准确率。

示例性地,所述空间变换矩阵为透视变换矩阵或仿射变换矩阵。所述透视变换矩阵可以为3×3矩阵,具有9个透视变换系数;所述仿射变换矩阵可以为2×3矩阵,具有6个仿射变换系数。其中,透视变换是利用透视中心、像点、目标点三点共线的条件,按透视旋转定律使承影面(透视面)绕迹线(透视轴)旋转某一角度,破坏原有的投影光线束,仍能保持承影面上投影几何图形不变的变换;仿射变换是空间直角坐标系的变换,是一个线性变换,保持了图像的“平行性”和“平直性”,即图像中原来的直线和平行线,变换后仍然保持原来的直线和平行线,常用的特殊变换有平移、缩放、翻转、旋转和剪切等。

在一个实施例中,参照图3所示,示出了一种空间变换块的示意图,所述空间变换块可以包括:全连接层和特征变换层,所述全连接层对应一个空间变换矩阵;所述特征变换层与所述全连接层连接,用于通过所述空间变换矩阵对输入至所述特征变换层的中间图像特征进行空间变换,输出空间变换后的中间图像特征。全连接层可以用于对所述空间变换矩阵的估计;在训练过程中,初始的空间变换矩阵可以为恒等矩阵,然后根据神经网络模型的损失函数可以对该全连接层中的空间变换矩阵中的空间变换系数进行不断优化。

例如,以透视变换为例,透视变换矩阵可以为a,在特征变换层中进行的空间变换操作,可以如下所示:

其中,[xyz]t为变换前的图像中某个像素的位置坐标,[xyz]t为变换后的该像素的位置坐标,也就是说,透视变换后的图像相比于透视变换前的图像而言,相当于将图像中的像素的位置坐标进行了变换,而像素本身的像素值未发生改变。一般地,图像为二维图像,坐标z和z的值可以为单位坐标1。

进一步地,所述空间变换块还可以包括:预处理层,所述预处理层包括:前后连接的卷积层和残差层;所述卷积层用于对输入至所述卷积层的中间图像特征进行卷积操作,输出卷积操作结果;所述残差层用于对所述输入至所述残差层的中间图像特征和所述卷积操作结果进行按位相加操作,输出按位相加结果作为所述特征变换层的输入。

其中,卷积层可以从输入至所述卷积层的中间图像特征中提取出更深层次的特征,即所述卷积操作结果,并将所述中间图像特征和所述卷积操作结果进行按位相加操作,输出所述中间图像特征和所述中间图像特征的更深层次特征的融合特征,即通过带残差的预处理操作得到了融合特征,该融合特征可以在训练过程中使得神经网络模型更容易收敛,并且能够通过增加神经网络模型的深度来降低误识率。

同样地,所述空间变换块还可以包括:后处理层,所述后处理层的输入为所述特征变换层的输出,所述后处理层包括:前后连接的卷积层和残差层;所述卷积层用于对输入至所述卷积层的中间图像特征进行卷积操作,输出卷积操作结果;所述残差层用于对所述输入至所述残差层的中间图像特征和所述卷积操作结果进行按位相加操作,输出按位相加结果作为所述空间变换块的输出。同样地,通过带残差的后处理操作得到了融合特征,该融合特征可以在训练过程中使得神经网络模型更容易收敛,并且能够通过增加神经网络模型的深度来降低误识率。

示例性地,所述卷积层为深度可分离卷积层(depth-wiseconvolution),dw卷积是指分别同时进行三类不同参数的卷积运算,并将得到的单个卷积运算结果按位相加;dw卷积增加的计算量有限,几乎不会对运算速度有太大影响。

参照图4所示,示出了一种空间变换块的示意图,包括依次连接的预处理层、特征变换层和后处理层,以及与所述特征变换层连接的全连接层,其中,空间变换矩阵为透视变换矩阵,预处理层和后处理层中的卷积层均可以为dw卷积。

在一个实施例中,参照图5所示,示出了一种神经网络模型的示意图,所述神经网络模型可以包括多个级联的特征提取块和多个所述空间变换块,所述空间变换块可以位于级联的两个特征提取块之间;所述特征提取块用于对所述待识别图像进行特征提取处理,生成中间图像特征,并将所述中间图像特征作为所述空间变换块的输入;所述空间变换块将空间变换处理后的中间输出特征作为级联的下一个特征提取块的输入。

例如,对于依次级联的特征提取块1~特征提取块n+1,空间变换块1~空间变换块m可以依次添加在任意两个级联的特征提取块之间,空间变换块1可以添加在级联的特征提取块1~特征提取块2之间,……,空间变换块m可以添加在级联的特征提取块n~特征提取块n+1之间;特征提取块可以包括:依次连接的卷积层、池化层,也可以包括:依次连接的两个卷积层等等;各特征提取块的结构可以相同,也可以不同;各空间变换块的结构可以相同,也可以不同,例如有的存在预处理层和后处理层,有的不存在等等;总之,本实施例对此并不限制。当然,本实施例中的各特征提取块也并不限于级联结构的形式,也可以存在并列结构等等。

特别的,由于空间变换块在神经网络模型的每个特征提取块(block)之后进行,而神经网络模型中block数通常在个位数到十几,相对原始网络增加的计算量有限,几乎不会对运行速度造成什么影响;进一步地,当空间变换块中存在卷积层时,采用dw卷积可以降低计算量。此外,由于空间变换块对网络本身的性质没有任何要求,因此可以非常方便的插入到任何网络中进行使用。

在一个实施例中,参照图6a所示,涉及神经网络模型的训练方式,具体可以包括:

s601,获取训练样本;所述训练样本包括多个对象的不同模态的图像,且各图像标注有对象标签和模态标签。

其中,所述对象标签用于标识图像对应的对象,所述模态标签用于标识图像对应的模态。

s602,将各图像输入初始神经网络模型中,输出所述各图像的图像特征,以及基于所述各图像的图像特征进行分类处理所得到的各图像的对象分类。

可以理解的是,针对某一图像,分类处理可以是基于神经网络提取出的图像特征,计算该图像特征属于各对象类别的概率值,因此图像的对象分类可以理解为:图像属于不同对象类别的概率值。示例性地,分类处理可以通过各种分类网络实现,如逻辑回归logisticregression网络、归一化指数softmax网络等。

可选地,所述神经网络模型可以包括:特征提取子模型和对象分类子模型;特征提取子模型的输出可以为对象分类子模型的输入;相应地,所述s602具体可以包括:将所述训练样本中各图像输入所述特征提取子模型中,输出所述各图像的图像特征;将所述各图像的图像特征输入所述对象分类子模型中,输出所述各图像的对象分类。

示例性地,所述特征提取子模型可以包括轻量化mobilenetv2网络,所述对象分类子模型可以包括归一化指数softmax网络。其中mobilenetv2网络训练和比对时占用的资源均较少,简单可行,易于拓展;而softmax网络可以包括与mobilenetv2网络连接的全连接层和与该全连接层连接的softmax层,softmax层的输入为全连接层输出的等于类别数的logits函数(求交叉熵的函数)的结果,输出为经过softmax函数之后的归一化结果,因此可以便于计算交叉熵损失。

s603,计算各图像的对象分类与对象标签之间的第一损失,并基于所述模态标签,计算训练样本中不同模态的图像特征之间的第二损失,以及根据所述第一损失和第二损失,计算所述初始神经网络模型的损失函数的值。

可以理解的是,所述损失函数可以为所述第一损失和所述第二损失的加权求和,权值可以为预设值,也可以训练得到;简单地,所述损失函数为所述第一损失和所述第二损失的和;所述第二损失可以为同一对象的不同模态的图像特征之间的损失。

可选地,所述第一损失为交叉熵损失(cross-entropyloss),所述交叉熵损失包括训练样本中各图像的对象标签与对象分类之间的损失;所述第二损失为三元组损失,所述三元组损失包括训练样本中三元图像组中各图像的图像特征之间的损失,所述三元图像组包括:参考图像、正样本图像和负样本图像,所述参考图像和所述正样本图像为同一对象的不同模态的两个图像,所述参考图像和所述负样本图像为不同对象的同一模态的两个图像。

其中,交叉熵损失lcross-entory可以表示为

其中,yo,c为类别的onehot(独热编码)输出,只有在类别符合的时候才为1,po,c是指类别c的概率值。在本示例中,对象分类数据为[0.7,0.2,0.1],onehot输出为[0,1,0],则交叉熵损失=-(0×log0.7+1×log0.2+0×log0.1)=-log0.2。

交叉熵损失可以计算预测的对象分类概率分布和真实的对象分类概率分布之间的差距,交叉熵损失越小,两个概率分布越接近,则基于图像特征的对象分类越接近真实分类,即实现了对神经网络模型中图像特征提取的约束,优化图像特征提取的性能,使得神经网络模型可以从图像中提取出能够标识该图像的本质性特征,可以进一步提高跨模态比对的准确性。

其中,对一个三元图像组而言,三元组损失(triplet-loss)可以表示为:

其中,fia为参考图像的图像特征,fip为正样本图像的图像特征,fin为负样本图像的图像特征,该参考图像为a对象的第一模态的图像,该正样本图像为a对象的第二模态的图像,该负样本图像为b对象的第一模态的图像。

示例性地,整个训练样本的三元组损失可以表示为:

其中,n为三元图像组的数目;α为三元组损失的阈值,可以训练得到;同时限制了每个三元图像组的损失的最小值为0,避免引入负数的三元组损失导致训练退化。

因此,三元组损失可以拉近同一对象的不同模态的图像特征之间的距离,拉远不同对象的同一模态的图像特征之间的距离,优化了神经网络模型中图像特征提取的性能,使得神经网络模型对于不同对象的同一模态的图像更加敏感,而对同一对象的不同模态的图像不敏感,可以进一步提高跨模态比对的准确性。

示例性地,所述训练样本可以包括多个图像集合,每个图像集合包括:至少四个图像,所述四个图像分属两个不同对象,分属于同一对象的两个图像为不同模态的两个图像。例如,每个图像集合包括:a对象的第一模态的图像和第二模态的图像,以及b对象的第一模态的图像和第二模态的图像。相应地,计算机设备可以根据对象标签和模态标签,从训练样本中选取符合上述图像集合的至少四个图像组成一个图像集合。

针对上述的多个图像集合,所述s603可以包括:针对所述多个图像集合,根据所述图像集合中四个图像的图像特征和对象分类,计算所述图像集合中两个不同对象各自的三元组损失、四个图像各自的交叉熵损失;根据所述各图像集合中两个不同对象各自的三元组损失、四个图像各自的交叉熵损失,计算所述训练样本的损失函数的值。

可以理解的是,三元组损失的计算可以如下:针对某个图像集合,图像集合中a对象的三元组损失,可以根据a对象的第一模态的图像的图像特征、a对象的第二模态的图像的图像特征、以及b对象的第一模态的图像的图像特征,计算得到;b对象的三元组损失,可以根据b对象的第一模态的图像的图像特征、b对象的第二模态的图像的图像特征、以及a对象的第一模态的图像的图像特征,计算得到。

具体地,计算机设备可以根据各图像的对象标签和模态标签,将所述各图像为分组多个三元图像组,使得每个三元图像组包括:参考图像、正样本图像和负样本图像,所述参考图像和所述正样本图像为同一对象的不同模态的两个图像,所述参考图像和所述负样本图像为不同对象的同一模态的两个图像。可以理解的是,上述的各三元图像组中可以存在相交的图像,例如某个图像可以在某个三元图像组中为参考图像,在另一个三元图像组中为正样本图像,甚至负样本图像,总之,本实施例对此并不限制。

可选地,所述损失函数还可以包括:自监督损失,自监督损失(self-supervisionloss)可以包括训练样本中同一对象的不同模态图像的对象分类之间的损失,例如,以三类别为例,某对象的rgb图像的对象分类(属于各类的概率向量)为[0.7,0.2,0.1],某对象的ir图像的对象分类为[0.7,0.1,0.2];则针对上述的一组同一对象的不同模态图像而言,该组的自监督损失可以为rgb图像的对象分类与ir图像的对象分类之间的各种范数,该范数可以但不限于是l1范数(绝对误差之和)、l2范数(欧几里得距离)等。自监督损失不但引入了不同模态,还与各模态的对象分类中的各类别的概率值均相关,因此在采用自监督损失进行训练时,可以优化整个对象分类,使得同一个人不同模态的图像在进行分类时,不仅对于标签类别的分类性能要好,同时对于其它非标签类别的分类结果也尽可能的接近,起到了更强的监督作用;自监督损失可以在训练过程中约束同一对象的不同模态图像的对象分类之间的差距,而同一对象的不同模态图像的对象分类是基于同一对象的不同模态图像的图像特征,采用了同一分类网络进行分类处理得到的,因此自监督损失可以约束同一对象的不同模态图像的图像特征之间的差距,即可以对神经网络模型中图像特征提取的性能进行优化,使得神经网络模型可以从同一对象的不同模态的图像中提取出相似的特征,实现跨模态的特征提取,便于实现本实施例的跨模态的图像比对。

s604,根据所述损失函数的值,对所述初始神经网络模型的参数进行调整,得到所述神经网络模型;所述初始神经网络模型的参数包括至少一个所述空间变换块对应的空间变换矩阵。

例如,通过计算损失函数的梯度,根据各种优化算法,例如最速下降法等,优化初始神经网络模型的参数,该参数包括但不限于各空间变换块对应的空间变换矩阵。

总之,本实施例的神经网络模型的训练方法可以训练出图像特征提取性能更佳的神经网络模型,提高跨模态比对的准确性,降低误识率。

可选地,所述底库图像和所述目标图像为两个不同模态的图像。即底库图像和目标图像存在可能的两种模态,而非多种,相应地,训练样本中的各图像同样分属于所述两种模态,如此,可以使得神经网络模型更适应于所述两种模态,可以提高神经网络模型的训练效率和准确性,以及后续的比对效率和比对准确性。

例如,所述两个不同模态分别为红绿蓝rgb模态和红外ir模态。因为常规状态下,rgb图像可以表达更多的图像信息且为图像常用格式,因此多作为底库图像;受限于光照等因素,ir图像多作为抓拍图像,即待识别图像。因此神经网络模型可以更适应于rgb-ir比对这一常用的跨模态比对场景。

具体地,参照图6b所示,在训练时,针对上述的由a对象的rgb图像和b对象的rgb图像(分别对应图中rgb域中的左右两个底库图,此处底库图与比对时作为参考标准的底库图不同)、以及a对象的ir图像和b对象的ir图像(分别对应图中ir域中的左右两个抓拍图)组成的图像集合,将图像集合中的四个图像分别输入特征提取子模型(图中的神经网络)中,输出四个图像的图像特征;再将四个图像的图像特征输入对象分类子模型中,输出四个图像的对象分类。

然后,根据a对象的rgb图像的对象分类和对象标签,可以计算得到a对象的rgb图像的交叉熵损失,同样地,可以得到a对象的ir图像的交叉熵损失、b对象的rgb图像的交叉熵损失、b对象的ir图像的交叉熵损失;根据a对象的rgb图像的图像特征、a对象的ir图像的图像特征、b对象的rgb图像的图像特征,可以计算得到a对象的三元组损失,同样地,根据b对象的ir图像的图像特征、b对象的rgb图像的图像特征、a对象的ir图像的图像特征,可以计算得到b对象的三元组损失;最后,可以对上述a对象的rgb图像的交叉熵损失、a对象的ir图像的交叉熵损失、b对象的rgb图像的交叉熵损失、b对象的ir图像的交叉熵损失、a对象的三元组损失、b对象的三元组损失求和得到所述图像集合的损失;相应地,对各图像集合的损失求和得到损失函数的值。当然,上述a对象的三元组损失也可以根据a对象的ir图像的图像特征、a对象的rgb图像的图像特征、b对象的ir图像的图像特征计算得到,b对象的三元组损失亦是,本实施例对此并不限制。

可以理解的是,在神经网络模型训练完成后,所述神经网络模型可以仅包括:特征提取子模型,而可以不包括对象分类子模型。因此,神经网络模型在使用时可以仅包括训练好的特征提取子模型,降低神经网络模型占用的存储资源。

本申请的技术方案在一个大规模数据集上进行训练(2.5万人,人均300图),并在一个200人,总共1.2万张图的benchmark(基准)上进行测试,相比baseline(基准线)百万一误识率下的误识率可以降低35%,这一结果充分说明了本申请的技术方案的先进性。

在一个实施例中,如图7所示,提供了一种神经网络模型的训练方法,可以包括以下步骤:

s701,获取训练样本;所述训练样本包括多个对象的不同模态的图像,所述训练样本中各图像标注有对象标签和模态标签;

s702,将各图像输入初始神经网络模型进行特征提取处理,输出所述各图像的图像特征,以及基于所述各图像的图像特征进行分类处理,得到各图像的对象分类;所述初始神经网络模型包括至少一个空间变换块,所述空间变换块用于采用空间变换矩阵对输入的中间图像特征进行空间变换处理;所述中间图像特征是对输入的图像在所述特征提取处理过程中生成的;

s703,计算各图像的对象分类与对象标签之间的第一损失,并基于所述模态标签,计算训练样本中不同模态的图像特征之间的第二损失,以及根据所述第一损失和第二损失,计算所述初始神经网络模型的损失函数的值;

s704,根据所述训练样本的损失函数的值,对所述初始神经网络模型的参数进行调整,得到所述神经网络模型;所述初始神经网络模型的参数包括至少一个所述空间变换块对应的空间变换矩阵。

上述神经网络模型的训练方法的具体描述可以参照上述图像识别方法的具体描述,这里不再赘述。

应该理解的是,虽然图2,6a,7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2,6a,7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图8所示,提供了一种图像识别装置,包括:图像获取模块81、特征提取模块82和特征比对模块83,其中:

图像获取模块81,用于获取待识别图像;

特征提取模块82,用于将所述待识别图像输入神经网络模型进行特征提取处理,输出所述待识别图像的目标图像特征;所述神经网络模型包括至少一个空间变换块,所述空间变换块用于采用空间变换矩阵对输入的中间图像特征进行空间变换处理;所述中间图像特征是所述待识别图像在所述特征提取处理过程中生成的;

特征比对模块83,用于将所述待识别图像的目标图像特征和底库图像组中底库图像的底库图像特征进行比对,得到比对结果;其中,所述底库图像组包括至少一个底库图像,所述底库图像和所述待识别图像为不同模态的两个图像,所述底库图像特征是所述神经网络模型从所述底库图像中提取的。

在一个实施例中,所述空间变换块可以包括:全连接层和特征变换层,所述全连接层对应一个空间变换矩阵;所述特征变换层与所述全连接层连接,用于通过所述空间变换矩阵对输入至所述特征变换层的中间图像特征进行空间变换,输出空间变换后的中间图像特征。

在一个实施例中,所述空间变换块还可以包括:预处理层,所述预处理层包括:前后连接的卷积层和残差层;所述卷积层用于对输入至所述卷积层的中间图像特征进行卷积操作,输出卷积操作结果;所述残差层用于对所述输入至所述残差层的中间图像特征和所述卷积操作结果进行按位相加操作,输出按位相加结果作为所述特征变换层的输入。

在一个实施例中,所述空间变换块还可以包括:后处理层,所述后处理层的输入为所述特征变换层的输出,所述后处理层包括:前后连接的卷积层和残差层;所述卷积层用于对输入至所述卷积层的中间图像特征进行卷积操作,输出卷积操作结果;所述残差层用于对所述输入至所述残差层的中间图像特征和所述卷积操作结果进行按位相加操作,输出按位相加结果作为所述空间变换块的输出。

在一个实施例中,所述卷积层可以为深度可分离卷积层。

在一个实施例中,所述神经网络模型可以包括多个级联的特征提取块和多个所述空间变换块,所述空间变换块位于级联的两个特征提取块之间;所述特征提取块用于对所述待识别图像进行特征提取处理,生成中间图像特征,并将所述中间图像特征作为所述空间变换块的输入;所述空间变换块将空间变换处理后的中间输出特征作为级联的下一个特征提取块的输入。

在一个实施例中,所述图像识别装置还可以包括:模型训练模块,所述模型训练模块可以包括:

训练样本获取单元,用于获取训练样本;所述训练样本包括多个对象的不同模态的图像,且各图像标注有对象标签和模态标签;

图像处理单元,用于将各图像输入初始神经网络模型中,输出所述各图像的图像特征,以及基于所述各图像的图像特征进行分类处理所得到的各图像的对象分类;

损失计算单元,用于计算各图像的对象分类与对象标签之间的第一损失,并基于所述模态标签,计算训练样本中不同模态的图像特征之间的第二损失,以及根据所述第一损失和第二损失,计算所述初始神经网络模型的损失函数的值;

模型训练单元,用于根据所述损失函数的值,对所述初始神经网络模型的参数进行调整,得到所述神经网络模型;所述初始神经网络模型的参数包括至少一个所述空间变换块对应的空间变换矩阵。

在一个实施例中,所述第一损失为交叉熵损失,所述交叉熵损失包括训练样本中各图像的对象标签与对象分类之间的损失;所述第二损失为三元组损失,所述三元组损失包括训练样本中三元图像组中各图像的图像特征之间的损失,所述三元图像组包括:参考图像、正样本图像和负样本图像,所述参考图像和所述正样本图像为同一对象的不同模态的两个图像,所述参考图像和所述负样本图像为不同对象的同一模态的两个图像。

在一个实施例中,所述训练样本包括多个图像集合,每个图像集合包括:至少四个图像,所述四个图像分属两个不同对象,分属于同一对象的两个图像为不同模态的两个图像;所述损失计算单元具体用于针对所述多个图像集合,根据所述图像集合中四个图像的图像特征和对象分类,计算所述图像集合中两个不同对象各自的三元组损失、四个图像各自的交叉熵损失;根据所述各图像集合中两个不同对象各自的三元组损失、四个图像各自的交叉熵损失,计算所述训练样本的损失函数的值。

在一个实施例中,所述底库图像和所述待识别图像为两个不同模态的图像,所述两个不同模态分别为红绿蓝rgb模态和红外ir模态。

在一个实施例中,所述空间变换矩阵为透视变换矩阵或仿射变换矩阵。

在一个实施例中,如图9所示,提供了一种神经网络模型的训练装置,包括:训练样本获取模块91、图像处理模块92、损失计算模块93和模型训练模块94,其中:

训练样本获取模块91,用于获取训练样本;所述训练样本包括多个对象的不同模态的图像,所述训练样本中各图像标注有对象标签和模态标签;

图像处理模块92,用于将各图像输入初始神经网络模型进行特征提取处理,输出所述各图像的图像特征,以及基于所述各图像的图像特征进行分类处理,得到各图像的对象分类;所述初始神经网络模型包括至少一个空间变换块,所述空间变换块用于采用空间变换矩阵对输入的中间图像特征进行空间变换处理;所述中间图像特征是对输入的图像在所述特征提取处理过程中生成的;

损失计算模块93,用于计算各图像的对象分类与对象标签之间的第一损失,并基于所述模态标签,计算训练样本中不同模态的图像特征之间的第二损失,以及根据所述第一损失和第二损失,计算所述初始神经网络模型的损失函数的值;

模型训练模块94,用于根据所述训练样本的损失函数的值,对所述初始神经网络模型的参数进行调整,得到所述神经网络模型;所述初始神经网络模型的参数包括至少一个所述空间变换块对应的空间变换矩阵。

关于图像识别装置的具体限定可以参见上文中对于图像识别方法的限定,关于神经网络模型的训练装置的具体限定可以参见上文中对于神经网络模型的训练方法的限定,在此不再赘述。上述图像识别装置和神经网络模型的训练装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时一方面可以实现以下步骤:

获取待识别图像;

将所述待识别图像输入神经网络模型进行特征提取处理,输出所述待识别图像的目标图像特征;所述神经网络模型包括至少一个空间变换块,所述空间变换块用于采用空间变换矩阵对输入的中间图像特征进行空间变换处理;所述中间图像特征是所述待识别图像在所述特征提取处理过程中生成的;

将所述待识别图像的目标图像特征和底库图像组中底库图像的底库图像特征进行比对,得到比对结果;其中,所述底库图像组包括至少一个底库图像,所述底库图像和所述待识别图像为不同模态的两个图像,所述底库图像特征是所述神经网络模型从所述底库图像中提取的;

另一方面也可以实现以下步骤:

获取训练样本;所述训练样本包括多个对象的不同模态的图像,所述训练样本中各图像标注有对象标签和模态标签;

将各图像输入初始神经网络模型中,输出所述各图像的图像特征,以及基于所述各图像的图像特征进行分类处理所得到的各图像的对象分类;

计算各图像的对象分类与对象标签之间的第一损失,并基于所述模态标签,计算训练样本中不同模态的图像特征之间的第二损失,以及根据所述第一损失和第二损失,计算所述初始神经网络模型的损失函数的值;

根据所述训练样本的损失函数的值,对所述初始神经网络模型的参数进行调整,得到所述神经网络模型;所述初始神经网络模型的参数包括至少一个所述空间变换块对应的空间变换矩阵。

参照图10所示,本实施例提出了一种图像识别系统,包括拍摄装置101和计算机设备102;所述拍摄装置101用于拍摄获取待识别图像,并将所述待识别图像发送给所述计算机设备102进行图像比对;所述计算机设备102包括存储器和处理器,所述存储器存储有计算机程序,该处理器执行计算机程序时一方面可以实现以下步骤:

获取待识别图像;

将所述待识别图像输入神经网络模型进行特征提取处理,输出所述待识别图像的目标图像特征;所述神经网络模型包括至少一个空间变换块,所述空间变换块用于采用空间变换矩阵对输入的中间图像特征进行空间变换处理;所述中间图像特征是所述待识别图像在所述特征提取处理过程中生成的;

将所述待识别图像的目标图像特征和底库图像组中底库图像的底库图像特征进行比对,得到比对结果;其中,所述底库图像组包括至少一个底库图像,所述底库图像和所述待识别图像为不同模态的两个图像,所述底库图像特征是所述神经网络模型从所述底库图像中提取的;

另一方面也可以实现以下步骤:

获取训练样本;所述训练样本包括多个对象的不同模态的图像,所述训练样本中各图像标注有对象标签和模态标签;

将各图像输入初始神经网络模型中,输出所述各图像的图像特征,以及基于所述各图像的图像特征进行分类处理所得到的各图像的对象分类;

计算各图像的对象分类与对象标签之间的第一损失,并基于所述模态标签,计算训练样本中不同模态的图像特征之间的第二损失,以及根据所述第一损失和第二损失,计算所述初始神经网络模型的损失函数的值;

根据所述训练样本的损失函数的值,对所述初始神经网络模型的参数进行调整,得到所述神经网络模型;所述初始神经网络模型的参数包括至少一个所述空间变换块对应的空间变换矩阵。

该计算机设备可以但不限于是终端、服务器等,以终端为例,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图像识别方法和神经网络模型的训练方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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