一种基于混合模型的图像识别方法和设备、介质
技术领域
本发明属于计算机视觉领域,尤其涉及一种基于混合模型的图像识别方法。
背景技术
大多数图像识别方法都只能识别来自已知类别的图像,其中已知类表示训练过程中出现过的类别。然而,在真实场景应用中,识别系统可能会面临来自训练集类别分布以外的未知类图像,而这些未知类图像会被识别系统识别成已知类中的某一类,这会导致实际应用中的安全问题。因此,这就要求图像识别方法不仅能将来自已知类的图像正确分类,对于类别分布外的未知类图像也必须能将其识别为未知类。
目前相关的图像识别方法大多数都是通过拟合训练图像(已知类)特征空间的概率分布,并基于该分布设定阈值,若高于该阈值则被分为某个已知类,若低于该阈值则被识别为未知类。沿着这一思路,最容易想到的方法是直接对深度模型的SoftMax分数进行阈值设定,然而由于SoftMax层的输出特性,模型有可能会将未知类图像以较高的置信度分为某一已知类,显然这是次优的解决方案。为了更好地利用SoftMax分数,一些针对该问题的改进方法被提出。这些方法通过修改SoftMax分数使模型能够识别未知类的同时保证已知类的分类。然而,这种兼顾二者的修改方式是极具挑战性的,因为修改已知类概率分布可能会影响已知类的分类精度。同时,用于拟合概率分布的特征空间都是基于已知类分类器学习产生的,而该分类器专注于已知类,对于识别未知类可能并不准确。
发明内容
发明目的:本发明提供一种基于混合模型的图像识别方法,该方法的特征空间由已知类分类模型和基于流模型的生成模型(充当未知类分类器)以端到端的方式联合学习产生,且未知类的概率密度由生成模型直接生成,无需修改已知类的概率分布,从而实现已知类分类和未知类识别的两者兼顾。
技术方案:本发明公开了一种基于混合模型的图像识别方法,其核心在于联合学习特征空间的同时保证已知类分类和未知类识别的两者兼顾,包括以下步骤:
步骤1,构造从原始图像空间到特征空间的特征编码器F;
步骤2,构造拟合特征空间概率分布的生成模型D;
步骤3,构造对特征空间进行K分类的已知类分类模型C,K为已知类数目;
步骤4,对特征编码器、生成模型和分类模型进行联合训练,优化特征空间;
步骤5,对联合训练后的生成模型设定识别未知类的阈值;
步骤6,根据步骤1,2,3,4,5得到能够识别未知类图像的K+1分类混合模型,从而实现对待分类图像进行分类。
步骤1中,构造从原始图像空间到特征空间的特征编码器F,参数为θf,以降低分类和生成的复杂度。
所述步骤1具体以下:
为了将原始图像投影到特征空间,本发明选取目前最为流行的深度学习方法,卷积神经网络(Convolutional Neural Networks,简称CNN),利用除去最后一层的ResNet-18模型(该模型参见Kaiming等发表于CVPR 2016的论文《Deep residual learning forimage recognition》)对每张图像提取一个具有高层次语义信息的1024维的特征向量F(xi,θf),其中xi,表示来自训练图像集合X的输入图像,θf表示特征编码器的参数。
步骤2中,构造拟合特征空间概率分布的生成模型D,模型的参数为θd,用来识别训练类别分布外的未知类图像。
步骤2具体包括以下步骤:
步骤2-1,为了拟合训练图像集合的概率分布,本发明选用目前较为流行的概率生成模型,流模型(Flow Model),利用一种线性残差流模型(该模型参见Chen等发表于NIPS2019的论文《Residual flows for invertible generative modeling》),对提取的特征向量进行概率密度估计;
步骤2-2,计算每张训练图像的概率密度P(xi,θd),其中θd表示流模型D的参数。由于流模型本身存在分配更高概率值给分布外图像的问题,且该问题主要来自流模型表示原始图像空间的内容上,因此本发明改为估计具有高层次语义信息的特征空间F(xi,θf)的概率密度,该过程的公式表示如下:
其中,p(D(F(x
i,θ
f);θ
d))经常使用简单的基本分布,例如标准正态分布。式中,D表
示流模型,
表示流模型D的雅可比行列式。
步骤3中,构造对特征空间进行K分类的已知类分类模型C,K为已知类数目,参数为θc,用来对来自训练类别分布内的已知类图像进行分类。
步骤3具体包括以下步骤:
步骤3-1,为了对特征空间进行分类,本发明采用1024维到K的线性全连接网络作为分类模型;
步骤3-2,计算每张训练图像的交叉熵损失(Cross Entropy Loss),该过程的损失函数公式表示如下:
其中,lyi是关于训练图像xi的类别标签yi的指示函数,θc表示分类器C的参数,yj表示j个类别标签,p(yj|xi;θf,θc)是来自C(F(xi))预测的概率得分向量的第j类的概率分数。
步骤4中,对特征编码器、生成模型和分类模型进行联合训练,优化特征空间。
步骤4具体包括以下步骤:
步骤4-1,使用最大似然估计对步骤2中的生成模型进行训练,该过程的损失函数公式表示如下:
N表示所有训练图像的数量。训练过程中,通常将损失函数LD({θf,θd})映射到每个维度下(Bits per Dimension, bpd),按输入生成模型的维度进行规范化操作;
步骤4-2,使用交叉熵对步骤3中的分类模型进行训练,该过程的损失函数公式表示如下:
步骤4-3,联合以上两个损失函数优化整个混合模型,该过程的损失函数公式表示如下:
L({θf,θc,θd})=LD({θf,θd})+LC({θf,θc})
步骤5中,对联合训练后的生成模型设定识别未知类的阈值。
步骤5具体以下:
对于每张来自训练图像集合X中的待分类图像xi,其输入到生成模型得到的概率值对应于来自已知类的可能性大小。理论上讲,这个概率分布在训练集中的最小边界就是未知类阈值的最大值。具体阈值的计算公式如下:
其中,s是一个自由参数,用于提供边距松弛。
步骤6中,根据步骤1,2,3,4,5得到能够识别未知类图像的K+1分类混合模型,从而实现对待分类图像进行分类。
步骤6具体以下:
根据步骤5设定的阈值来识别待分类图像是否属于未知类。如果低于该阈值,则被分类为第K+1类,即未知类,否则将从分类模型中分配适当的已知类标签给该待分类图像。该过程的公式表示如下:
式中,pred(x)表示图像x的最终分类标签。
本发明联合生成模型和分类模型,构建了一个能够识别未知类图像的混合模型。如果该图像所属类别不属于训练过程中出现的任何类别,则将即识别为未知类,否则将其分为对应的已知类。
一种电子设备,包括;存储器,用于存储可执行指令;
以及处理器,用于与所述存储器通信以执行所述可执行指令从而完成上述图像识别方法。
一种计算机存储介质,用于存储计算机可读取的指令,所述指令被执行时执行上述图像识别方法。
有益效果:本发明包括以下优点:
(1) 学习的特征空间能够更好地识别未知类。相比于仅由分类模型学习到的特征空间,通过生成模型和分类模型以端到端地方式联合学习产生的特征空间更适合未知类的识别。
(2) 更好地兼顾已知类的分类和未知类的识别。利用生成模型拟合训练图像概率分布时不需要分类模型的干预,并且可以直接对这些概率值应用阈值模型,而无需修改任何已知类的分数,从而确保已知类的分类不受未知类识别的影响。
(3) 成功地解决了流模型本身存在的问题。本发明的生成模型使用了流模型,而流模型本身存在分配更高概率值给训练类别分布外图像的问题。该问题受到了广泛关注,且本发明通过拟合具有高层次语义信息的特征空间成功地解决了这个问题。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。
图1为本发明方法的流程图;
图2为特征编码器提取特征空间示意图;
图3为生成模型示意图;
图4为生成模型残差块结构示意图;
图5 为本发明的应用场景。
具体实施方式
下面结合本发明实施例的附图,对本发明实施例中的技术方案进行详细、完整的描述。显然, 所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。在不同的实施例中深度学习模型的选择,可以根据具体图像识别任务的情况选择不同的模型,例如对简单图像识别任务可以选择复杂度较小的模型,对难度较大的任务可以选择学习泛化能力更强的深度模型。本领域普通人员在没有做出创造性劳动前提下所获得的所有其它实施例,均属于本发明的保护范围。
本发明中的技术术语为特征空间是由多个特征向量组成,特征是指表示图像特征的数据。已知类表示训练数据的类别,已知类具有标签。未知类表示那些不属于训练数据中的类别的类别。训练数据是训练集的每张图像。而训练图像都是来自已知类,也可以说是从已知类确定的。
本方法的流程如图1所示。在训练阶段,首先,利用特征编码器将输入图像投影到潜层特征空间,然后将特征空间分别通过两个分支进行优化学习:基于交叉熵的已知类分类学习(分类模型)和基于对数似然值的概率密度估计(生成模型),最后基于这两个目标通过端到端的方式联合优化整个网络模型。在测试阶段,基于训练集上的最低对数概率密度对生成模型设定阈值,并计算每张测试图像的对数概率密度,然后与该阈值进行比较,如果大于阈值,则将其发送给分类模型以识别其特定的已知类别,否则将其作为未知类拒绝。
具体地说,如图1所示,本发明公开了一种基于混合模型的图像识别方法:
步骤1,构造从原始图像空间到特征空间的特征编码器F;
步骤2,构造拟合特征空间概率分布的生成模型D;
步骤3,构造对特征空间进行K分类的已知类分类模型C,K为已知类数目;
步骤4,对特征编码器、生成模型和分类模型进行联合训练,优化特征空间;
步骤5,对联合训练后的生成模型设定识别未知类的阈值;
步骤6,根据步骤1,2,3,4,5得到能够识别未知类图像的K+1分类混合模型,从而实现对待分类图像进行分类。
其中,待分类图像包括已知类图像和未知类图像,且都无标签。
步骤1中,如图2所示,构造从原始图像空间到特征空间的特征编码器F,参数为θf,以降低分类和生成的复杂度。
步骤1具体包括以下步骤:
为了将原始图像投影到特征空间,本发明选取目前最为流行的深度学习方法,卷积神经网络(Convolutional Neural Networks,简称CNN),利用除去最后一层的ResNet-18模型(该模型参见Kaiming等发表于CVPR 2016的论文《Deep residual learning forimage recognition》)对每张图像提取一个具有高层次语义信息的1024维的特征向量F(xi,θf),其中xi表示来自训练图像集合X的输入图像,θf表示特征编码器的参数。如图2右边为MNIST图像数据集(0到5为已知类,6到9为未知类)特征空间的t-SNE分布图。
步骤2中,构造拟合特征空间概率分布的生成模型D,模型的参数为θd,用来识别训练类别分布外的未知类图像。
步骤2具体包括以下步骤:
步骤2-1,为了拟合训练图像集合的概率分布,本发明选用目前较为流行的概率生成模型,流模型(Flow Model),利用一种线性残差流模型(该模型参见Chen等发表于NIPS2019的论文《Residual flows for invertible generative modeling》),对提取的特征向量进行概率密度估计。如图3所示,本发明中流模型使用通过LogitTransform变换传递数据的标准设置(参见Dinh等发表于ICLR 2017的论文《Density estimation using realnvp》),随后接着10个残差块和压缩残差块,并在每个残差块之前和之后使用激活归一化操作(参见Kingma等发表于NIPS 2018的论文《Glow: Generative flow with invertible1x1 convolutions》),前6个残差块的内部维度为512,后4个残差块的内部维度为256。每个残差由LipSwish 和InducedNormLinear交叉组成(参见Chen等发表于NIPS 2019的论文《Residual flows for invertible generative modeling》),如图4所示;
步骤2-2,计算每张训练图像的概率密度p(xi,θd),其中θd表示流模型D的参数。由于流模型本身存在分配更高概率值给分布外图像的问题,且该问题主要来自流模型表示原始图像空间的内容上,因此本发明改为估计具有高层次语义信息的特征空间F(xi,θf)的概率密度,该过程的公式表示如下:
其中,p(D(F(x
i,θ
f);θ
d))经常使用简单的基本分布,例如标准正态分布。式中,D表
示流模型,
表示流模型D的雅可比行列式。
步骤3中,构造对特征空间进行K分类的已知类分类模型C,K为已知类数目,模型参数为θc,用来对来自训练类别分布内的已知类图像进行分类。
步骤3具体包括以下步骤:
步骤3-1,为了对特征空间进行分类,本发明采用1024维到K的线性全连接网络作为分类模型;
步骤3-2,计算每张训练图像的交叉熵损失(Cross Entropy Loss),该过程的损失函数公式表示如下:
其中,lyi是关于训练图像xi的类别标签yi的指示函数,θc表示分类器C的参数,yj表示j个类别标签,每张训练图片xi的类别标签yi,p(yj|xi;θf,θc)是来自C(F(xi))预测的概率得分向量的第j类的概率分数。
步骤4具体包括以下步骤:
步骤4-1,使用最大似然估计对步骤2中的生成模型进行训练,该过程的损失函数公式表示如下:
N表示所有训练图像的数量。训练过程中,通常将损失函数LD({θf,θd})映射到每个维度下(Bits per Dimension, bpd),按输入生成模型的维度进行规范化操作;
步骤4-2,使用交叉熵对步骤3中的分类模型进行训练,该过程的损失函数公式表示如下:
步骤4-3,联合以上两个损失函数优化整个混合模型,该过程的损失函数公式表示如下:
L({θf,θc,θd})=LD({θf,θd})+LC({θf,θc})
步骤5中,对联合训练后的生成模型设定识别未知类的阈值。
步骤5具体以下:
对于每张来自训练图像集合X中的待分类图像xi,其输入到生成模型得到的概率值对应于来自已知类的可能性大小。理论上讲,这个概率分布在训练集中的最小边界就是未知类阈值的最大值。具体阈值的计算公式如下:
其中,s是一个自由参数,用于提供边距松弛,在本发明实施例中设置为80。
步骤6中,根据步骤1,2,3,4,5得到能够识别未知类图像的K+1分类混合模型,从而实现对待分类图像进行分类。
步骤6具体以下:
根据步骤5设定的阈值来识别待分类图像是否属于未知类。如果低于该阈值,则被分类为第K+1类,即未知类,否则将从分类模型中分配适当的已知类标签给该待分类图像。该过程的公式表示如下:
式中,pred(x)表示图像x的最终分类标签。已知类标签是专门指训练图像属于的所有类别的标签。比如已知类有猫、狗、鱼3个类。那已知类标签就是表示这3个类别。
当输入图像来自训练阶段出现过的类别时,比如图5中已知类是鸟、猫、狗和海豚4个类别,模型能将该图像正确识别为已知类中的某一类。而当来自训练阶段没有出现过的类别时,比如图5中狗熊,水杯和人,模型也要能将其识别为未知类。
也就是说,开集识别是一个K+1的识别任务,K是已知类,而1是额外的未知类。
本发明实施例还公开一种电子设备,例如可以是移动终端、个人计算机(PC)、平板电脑、服务器等。包括;存储器,用于存储可执行指令;以及处理器,用于与所述存储器通信以执行可执行指令从而完成上述图像识别方法。
此外,在本实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的图像识别方法的程序的记录介质。
本发明提供了一种基于混合模型的图像识别方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。