训练属性识别模型的方法、装置、电子设备及存储介质与流程

文档序号:20781101发布日期:2020-05-19 21:14阅读:100来源:国知局
训练属性识别模型的方法、装置、电子设备及存储介质与流程

本申请实施例涉及计算机视觉技术领域,具体而言,涉及一种训练属性识别模型的方法、装置、电子设备及存储介质。



背景技术:

在图像处理技术领域中,属性识别任务是一种自动识别图片中物体的属性信息的任务。属性识别任务可应用于多种场景,例如针对行人图像的属性识别、针对车辆图像的属性识别等等。通常,在开展针对某一应用场景的属性识别任务之前,需要搜集与该应用场景相关的多张样本图像,并基于多张样本图像对预设模型进行训练更新,得到属性识别模型。然后利用该属性识别模型开展针对该应用场景的属性识别任务。

利用相关技术训练预设模型时,首先针对样本图像的每个属性标记属性标签,该属性标签用于表征属性的实际值。然后将携带属性标签的样本图像输入预设模型,得到预设模型针对每个属性的预估结果。再根据各个属性的预估结果和属性标签,确定用于更新预设模型的损失值。最后利用该损失值,对该预设模型的参数进行更新。但是利用上述方式对预设模型进行训练,最终得到的属性识别模型的精度不高,利用其进行属性识别的识别准确性偏低。



技术实现要素:

本申请实施例提供一种训练属性识别模型的方法、装置、电子设备及存储介质,旨在获得精度更高的属性识别模型,从而提高属性识别准确性。

本申请实施例第一方面提供一种训练属性识别模型的方法,所述方法包括:

获得一组样本图像,将该组样本图像输入待训练的预设模型,其中,该组样本图像中的每张样本图像携带多个属性标签;

针对每张样本图像,根据该样本图像的属性标签和该组样本图像中其余样本图像各自的属性标签,从所述其余样本图像中确定该样本图像的正样本图像和负样本图像;

针对每张样本图像,基于该样本图像、该样本图像的正样本图像、以及该样本图像的负样本图像,确定该样本图像对应的损失值;

根据每张样本图像各自对应的损失值,对所述预设模型进行更新;

将经过多次更新后的预设模型确定为属性识别模型。

本申请实施例第二方面提供一种训练属性识别模型的装置,所述装置包括:

样本图像获得模块,用于获得一组样本图像,将该组样本图像输入待训练的预设模型,其中,该组样本图像中的每张样本图像携带多个属性标签;

正负样本确定模块,用于针对每张样本图像,根据该样本图像的属性标签和该组样本图像中其余样本图像各自的属性标签,从所述其余样本图像中确定该样本图像的正样本图像和负样本图像;

损失值确定模块,用于针对每张样本图像,基于该样本图像、该样本图像的正样本图像、以及该样本图像的负样本图像,确定该样本图像对应的损失值;

模型更新模块,用于根据每张样本图像各自对应的损失值,对所述预设模型进行更新;

模型确定模块,用于将经过多次更新后的预设模型确定为属性识别模型。

本申请实施例第三方面提供一种可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如本申请第一方面所述的方法中的步骤。

本申请实施例第四方面提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请第一方面所述的方法的步骤。

采用本申请提供的训练属性识别模型的方法,在获得一组携带多个属性标签的样本图像后,针对每张样本图像,根据该样本图像的属性标签和该组样本图像中其余样本图像各自的属性标签,从其余样本图像中确定该样本图像的正样本图像和负样本图像;并且针对每张样本图像,基于该样本图像、该样本图像的正样本图像、以及该样本图像的负样本图像,确定该样本图像对应的损失值,从而根据每张样本图像各自对应的损失值,对所述预设模型进行更新。

一方面,通过利用由正样本图像和负样本图像确定的损失值对预设模型进行更新,可以使最终获得的属性识别模型在进行特征提取时,两张图像的属性越相似,其之间特征距离越小;两张图像的属性越不相似,其之间的特征距离越大。该属性识别模型的精度更高,有利于提高属性识别准确性。

另一方面,以属性标签(即真实属性)为依据确定正样本图像和负样本图像,即使某一其余样本图像与样本图像不是同一个对象(例如不是同一行人或者同一辆车),也能在该其余样本图像与该样本图像的属性相似的情况下,将该其余样本图像确定为该样本图像的正样本图像。如此,可以在其余样本图像中不存在同一对象的情况下,也能为样本图像确定正样本图像。

附图说明

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

图1是本申请一实施例提出的训练属性识别模型的方法的流程图;

图2是本申请一实施例提出的预设模型的示意图;

图3是本申请另一实施例提出的训练属性识别模型的方法的流程图;

图4是本申请一实施例提出的多个类激活图的示意图;

图5是本申请一实施例提出的预设模型的示意图;

图6是本申请一实施例提出的训练属性识别模型的装置的示意图。

具体实施方式

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

相关技术中,在开展针对某一应用场景的属性识别任务之前,需要搜集与该应用场景相关的多张样本图像,并基于多张样本图像对预设模型进行训练更新,得到属性识别模型。然后利用该属性识别模型开展针对该应用场景的属性识别任务。

利用相关技术训练预设模型时,首先针对样本图像的每个属性标记属性标签,该属性标签用于表征属性的实际值。然后将携带属性标签的样本图像输入预设模型,得到预设模型针对每个属性的预估结果。再根据各个属性的预估结果和属性标签,确定用于更新预设模型的损失值(例如损失值loss)。最后利用该损失值,对该预设模型的参数进行更新。但是利用上述方式对预设模型进行训练,最终得到的属性识别模型的精度不高,利用其进行属性识别的识别准确性偏低。

有鉴于此,本申请实施例提出:在获得一组携带多个属性标签的样本图像后,针对每张样本图像,以属性标签(即真实属性)为依据,从该组样本图像的其余样本图像中确定该样本图像的正样本图像和负样本图像,通过利用由正样本图像和负样本图像确定的损失值对预设模型进行更新,可以使最终获得的属性识别模型在进行特征提取时,两张图像的属性越相似,其之间特征距离越小;两张图像的属性越不相似,其之间的特征距离越大。该属性识别模型的精度更高,有利于提高属性识别准确性。

参考图1,图1是本申请一实施例提出的训练属性识别模型的方法的流程图。如图1所示,该方法包括以下步骤:

步骤s11:获得一组样本图像,将该组样本图像输入待训练的预设模型,其中,该组样本图像中的每张样本图像携带多个属性标签。

由于本申请并不限定属性识别任务的具体应用场景,因此也不限定样本图像的主题。例如该组样本图像可以是以行人为主题的行人图像,或者该组样本图像可以是以车辆为主题的车辆图像。

示例地,假设属性识别任务的具体应用场景是:针对行人的属性进行识别。则训练方法的目标是:得到能自动识别行人图像中行人属性的属性识别模型。如此,所获得的一组样本图像是以行人为主题的行人图像。

或者示例地,假设属性识别任务的具体应用场景是:针对车辆的属性进行识别。则训练方法的目标是:得到能自动识别车辆图像中车辆属性的属性识别模型。如此,所获得的一组样本图像是以车辆为主题的车辆图像。

本申请中,样本图像包括多种,以样本图像是行人图像为例,行人图像的属性可以包括:是否长发、性别、是否戴帽子、是否打伞、是否背包、是否背双肩包、是否背单肩包、是否穿着短袖、是否穿着裙子、是否骑车、以及年龄等等。以样本图像是车辆图像为例,车辆图像的属性可以包括:车型、车身颜色、车辆品牌、车辆朝向、是否有车顶架、副驾是否有乘客、驾驶位是否系安全带、遮阳板是否放下等等。

其中,样本图像携带的属性标签用于表征:该样本图像的真实属性。以针对行人图像的属性识别任务为例,在获得多张主题是行人的样本图像后,针对每张样本图像,标记出各个属性的真实值,作为各个属性的标签。例如某一张样本图像是一张穿着裙子、背单肩包的女性图像,则针对性别属性,其标签是“女性”。针对是否背包属性,其标签是“是”。针对是否背双肩包属性,其标签是“否”。针对是否背单肩包属性,其标签是“是”。针对是否穿着裙子属性,其标签是“是”。

参考图2,图2是本申请一实施例提出的预设模型的示意图。如图2所示,该预设模型包括:特征提取模块、池化模块以及多个属性识别单元。其中,特征提取模块可选用卷积神经网络(convolutionalneuralnetworks,cnn),具体如resnet50网络。池化模块可选用全局平均池化(globalaveragepooling,gap)模块、最大池化(max-pooling)模块、均值池化(mean-pooling)模块、或者一般池化(generalpooling)模块等等。每个属性识别单元用于对一种属性进行识别,每个属性识别单元可以包括全连接层(fullyconnectedlayers,fc)和softmax分类输出层。为简化附图,图2中仅针对属性识别单元1示出了全连接层和分类输出层。

在执行上述步骤s11时,可以在对该组样本图像进行预处理后(例如统一样本图像的通道数),将该组样本图像输入预设模型的特征提取模块,该特征提取模块针对每张样本图像,提取该样本图像的图像特征,并将提取的图像特征输入池化模块。池化模块针对每个图像特征进行池化处理,并将池化后的图像特征输入多个属性识别单元。每个属性识别单元在获得图像特征后,基于该图像特征获得属性的预估结果。

应当理解的,图2所示的预设模型仅作为示例,该预设模型的具体结构不应被理解为是对本申请的限定,本申请还可以采用其他结构的预设模型,如下文和后图所示。

步骤s12:针对每张样本图像,根据该样本图像的属性标签和该组样本图像中其余样本图像各自的属性标签,从所述其余样本图像中确定该样本图像的正样本图像和负样本图像。

示例地,假设该组样本图像中包括50张样本图像,依次为其中的每张样本图像确定正样本图像和负样本图像。例如首先为第1张样本图像确定正样本图像和负样本图像,此时第2至第50张样本图像作为其余样本图像,实施期间,根据第1张样本图像的属性标签,以及根据每张其余样本图像的属性标签,从第2至第50张样本图像中,为第1张样本图像确定正样本图像和负样本图像。

然后为第2张样本图像确定正样本图像和负样本图像,此时第1张样本图像以及第3至第50张样本图像作为其余样本图像,实施期间,根据第2张样本图像的属性标签,以及根据每张其余样本图像的属性标签,从第1张样本图像以及第3至第50张样本图像中,为第2张样本图像确定正样本图像和负样本图像。

以此类推,按照同样的方式,从而依次为50张样本图像分别确定各自对应的正样本图像和负样本图像。

在某些实施例中,为了为每张样本图像分别确定其各自对应的正样本图像和负样本图像,可以执行以下子步骤:

子步骤s12-1:将该样本图像的多个属性标签与所述一组样本图像中的每张其余样本图像的多个属性标签进行一对一地对比,以确定该样本图像与所述一组样本图像中的每张其余样本图像的属性相似度,其中,该样本图像与一张其余样本图像的属性相似度表征:该样本图像与该其余样本图像之间具有的相同属性标签的个数;

子步骤s12-2:根据该样本图像与每张其余样本图像的属性相似度,将最大属性相似度所对应的其余样本图像确定为该样本图像的正样本图像,将最小属性相似度所对应的其余样本图像确定为该样本图像的负样本图像。

示例地,假设该组样本图像中包括50张样本图像,每张样本图像携带:是否长发、性别、是否戴帽子、是否打伞、是否背包、是否背双肩包、是否背单肩包、是否穿着短袖、是否穿着裙子、是否骑车、以及年龄等11个属性的属性标签。

例如首先为第1张样本图像确定正样本图像和负样本图像,此时第2至第50张样本图像作为其余样本图像。实施期间,首先将第1张样本图像与第2张样本图像的属性相似度置为0,然后将第1张样本图像的11个属性标签与第2张样本图像的11个属性标签进行一对一地对比。

具体地,将第1张样本图像的“是否长发”属性的属性标签与第2张样本图像的“是否长发”属性的属性标签进行对比,如果两个属性标签相同(例如均为“是”,或者均为“否”),则属性相似度加1,否则属性相似度加0。

再将第1张样本图像的“性别”属性的属性标签与第2张样本图像的“性别”属性的属性标签进行对比,如果两个属性标签相同(例如均为“男性”,或者均为“女性”),则属性相似度加1,否则属性相似度加0。

以此类推,按照同样的方式,实现属性标签的一对一对比,从而确定第1张样本图像与第2张样本图像的属性相似度。

以此类推,按照同样的方式,从而确定第1张样本图像与每张其余样本图像的属性相似度。

假设多个属性相似度中,第1张样本图像与第32张样本图像之间的属性相似度等于9,该属性相似度最大;第1张样本图像与第17张样本图像之间的属性相似度等于3,该属性相似度最小;于是将第32张样本图像确定为第1张样本图像的正样本图像,将第17张样本图像确定为第1张样本图像的负样本图像。

以此类推,按照同样的方式,从而依次为50张样本图像分别确定各自对应的正样本图像和负样本图像。

本申请通过以属性标签(即真实属性)为依据确定正样本图像和负样本图像,即使某一其余样本图像与样本图像不是同一个对象(例如不是同一行人或者同一辆车),也能在该其余样本图像与该样本图像的属性相似度高的情况下,将该其余样本图像确定为该样本图像的正样本图像。如此,可以在其余样本图像中不存在同一对象的情况下,也能为样本图像确定正样本图像。

沿用上述示例,例如第1张样本图像中的行人与第32张样本图像(正样本图像)中的行人可能是不同的人。例如第1张样本图像中的行人与第17张样本图像(负样本图像)中的行人甚至可能是同一个人。

步骤s13:针对每张样本图像,基于该样本图像、该样本图像的正样本图像、以及该样本图像的负样本图像,确定该样本图像对应的损失值。

其中,预设模型针对该样本图像提取的图像特征、与针对该正样本图像提取的图像特征之间的特征距离越近,和/或,预设模型针对该样本图像提取的图像特征、与针对该负样本图像提取的图像特征之间的特征距离越远,该样本图像对应的损失值越小。通常,在模型训练期间,每轮训练计算的损失值越小,模型的性能越好。

其中,特征距离可以是欧式距离(euclideandistance)、曼哈顿距离(manhattan)、或者马氏距离(mahalanobis)等等,其中优选为欧式距离。

如此,利用由正样本图像和负样本图像确定的损失值对预设模型进行更新,可以使最终获得的属性识别模型在进行特征提取时,针对属性相似的两张待识别图像,可以提取出更相近的图像特征;针对属性不相似的两张待识别图像,可以提取出更不相近的图像特征。该属性识别模型的精度更高,有利于提高属性识别准确性。

在某些实施例中,为了针对每张样本图像,确定该样本图像对应的损失值,可以执行以下子步骤:

子步骤s13-1:根据所述属性识别模型针对该样本图像提取的图像特征,和所述属性识别模型针对该正样本图像提取的图像特征,确定该样本图像与该正样本图像之间的第一特征距离;

子步骤s13-2:根据所述属性识别模型针对该样本图像提取的图像特征,和所述属性识别模型针对该负样本图像提取的图像特征,确定该样本图像与该负样本图像之间的第二特征距离;

子步骤s13-3:根据所述第一特征距离和所述第二特征距离之间的差值,确定该样本图像对应的损失值。

示例地,如图2所示,可以根据该样本图像的池化后的图像特征、和该正样本图像的池化后的图像特征,确定该样本图像与该正样本图像之间的第一特征距离。例如该样本图像的池化后的图像特征是一个1×1024的向量a,该正样本图像的池化后的图像特征也是一个1×1024的向量b,该负样本图像的池化后的图像特征也是一个1×1024的向量c。可以利用欧式距离(euclideandistance)的如下计算公式,计算第一特征距离:

其中,ρ1表示欧式距离,即第一特征距离;n表示向量的维数(本示例中n等于1024);xai表示向量a中的第i位,xbi表示向量b中的第i位。

利用欧式距离(euclideandistance)的如下计算公式,计算第二特征距离:

其中,ρ2表示欧式距离,即第二特征距离;n表示向量的维数(本示例中n等于1024);xai表示向量a中的第i位;xci表示向量c中的第i位。

然后可根据第一特征距离和第二特征距离,按照如下公式,计算样本图像对应的损失值loss:

loss=[ρ1-ρ2+α]+

其中,loss表示损失值;ρ1表示第一特征距离;ρ2表示第二特征距离;α表示调整系数,可人为预先设定;[ρ1-ρ2+α]+表示:在ρ1-ρ2+α小于或等于0的情况下,loss等于0,在ρ1-ρ2+α大于0的情况下,loss等于ρ1-ρ2+α。

如此,在ρ1≤ρ2-α的情况下,损失值loss等于0;在ρ1>ρ2-α的情况下,损失值loss等于ρ1-ρ2+α,是一个大于0的数。通过利用上述公式计算的损失值loss更新预设模型,可以使最终获得的属性识别模型在进行特征提取时,两张图像的属性越相似,其之间特征距离越小;两张图像的属性越不相似,其之间的特征距离越大。该属性识别模型的精度更高,有利于提高属性识别准确性。

步骤s14:根据每张样本图像各自对应的损失值,对所述预设模型进行更新。

其中,每张样本图像各自对应的损失值主要用于对预设模型的主干部分进行更新。以图2所示预设模型为例,其中特征提取模块和池化模块是该预设模型的主干部分,可利用每张样本图像各自对应的损失值对该特征提取模块和池化模块进行更新。对于图2中的各个属性识别单元,可利用现有技术中的更新方式进行更新,本申请对此不做限定。

在某些实施例中,考虑到一组样本图像的多个损失值中可能存在个别异常的损失值,为了降低异常损失值单独更新预设模型时对预设模型造成的负面影响,在根据每张样本图像各自对应的损失值对预设模型进行更新时,可以执行以下子步骤:

子步骤s14-1:根据所述一组样本图像包括的样本图像的数量,以及每张样本图像各自对应的损失值,确定多个损失值的平均值;

子步骤s14-2:根据所述多个损失值的平均值,对所述预设模型进行更新。

示例地,假设一组样本图像中包括50张样本图像,针对每张样本图像获得了其各自对应的损失值。如此,可以将50个损失值进行累加,然后将累加结果除以50,得到多个损失值的平均值。最后利用该平均值,对预设模型进行更新。

通过以多个损失值的平均值的更新预设模型,一方面,可以降低异常损失值单独更新预设模型时对预设模型造成的负面影响;另一方面,相比于利用每个损失值分别对预设模型进行更新,利用平均值进行更新可以明显缩短更新耗时,提高模型训练效率。

步骤s15:将经过多次更新后的预设模型确定为属性识别模型。

示例地,可以依次利用多组样本图像,分别对预设模型进行训练更新,在预设模型满足预设条件的情况下,停止训练,并将该预设模型确定为属性识别模型。在某些实施例中,预设条件可以是:对测试样本的识别正确率达到预设阈值。

如前所述,针对先后获得的多组样本图像中的每组样本图像,可以利用该组样本图像的多个样本图像对应的多个损失值的平均值,对预设模型进行更新。换言之,先后利用多组样本图像各自对应的损失值平均值,对预设模型进行更新。具体地,在利用每个损失值平均值更新预设模型时,具体可以将该损失值平均值回传,以梯度下降的方式更新预设模型的网络参数,实现通过最小化损失值来更新网络参数。

通过执行上述包括步骤s11至步骤s14的训练属性识别模型的方法,一方面,通过利用由正样本图像和负样本图像确定的损失值对预设模型进行更新,可以使最终获得的属性识别模型在进行特征提取时,针对属性相似的两张待识别图像,可以提取出更相近的图像特征;针对属性不相似的两张待识别图像,可以提取出更不相近的图像特征。该属性识别模型的精度更高,有利于提高属性识别准确性。

另一方面,以属性标签(即真实属性)为依据确定正样本图像和负样本图像,即使某一其余样本图像与样本图像不是同一个对象(例如不是同一行人或者同一辆车),也能在该其余样本图像与该样本图像的属性相似的情况下,将该其余样本图像确定为该样本图像的正样本图像。如此,可以在其余样本图像中不存在同一对象的情况下,也能为样本图像确定正样本图像。

参考图3,图3是本申请另一实施例提出的训练属性识别模型的方法的流程图。如图3所示,该方法包括以下步骤:

步骤s10:预先对多个属性进行分组,得到多个属性分组,每个属性分组中的各个属性在被识别时,图像上对属性识别结果起决定作用的图像区域的位置相同或相近;

其中,一组属性中通常包括两个或两个以上的属性。但在某些组属性中,也可以仅包括一个属性,本申请对此不做限定。例如某种属性在被识别时,图像上对属性识别结果起决定作用的图像区域的位置,与其他所有属性在识别时图像上对属性识别结果起决定作用的图像区域的位置,均不相同,因此可以将该种属性单独作为一组属性。

其中,图像上对属性识别结果起决定作用的图像区域的位置相同或相近是指:图像上对属性识别结果起决定作用的图像区域属于目标物上的同一部位。以目标物是行人为例,例如在识别是否长发属性和性别属性时,对属性识别结果起决定作用的图像区域均属于行人的脖子和肩膀部位,则可以认为:在识别是否长发属性和性别属性时,图像上对属性识别结果起决定作用的图像区域的位置相同或相近。

在某些实施例中,为了对多个属性进行分组,以得到多个属性分组,可以执行以下子步骤:

子步骤s10-1:针对预设图像的每种属性,获得该属性对应的激活图,该激活图用于表征:在识别该属性时,所述预设图像的各个区域对属性识别结果所起的决定作用的权重;

子步骤s10-2:根据每张激活图所表征的权重分布,将多种属性聚类成多个分组,每个分组包括的各种属性所对应的各张激活图像中,各个权重最高区域的位置相同。

示例地,可以利用现有的属性识别模型(以下统称现有模型)获得多种属性各自对应的激活图。具体地,可以将一张预设图像输入现有模型的特征提取模块,从而提取该预设图像的图像特征featuremap。然后对该图像特征做全局平均池化gap处理,得到池化后的图像特征。再将该图像特征输入该现有模型的多个属性识别单元,得到多个属性的预测结果。其中,每个属性识别单元用于识别一种属性,每个属性识别单元包括全连接层fc和分类输出层softmax。

最后针对每种属性,利用类激活图算法cam(classactivationmapping),将该属性对应的全连接层fc的权重乘到图像特征featuremap的通道channel上,换言之,将全连接层的权重fc当做每个通道channel的权重。再对各个通道channel加权求和,即得到该种属性对应的激活图。

参考图4,图4是本申请一实施例提出的多个类激活图的示意图。图4以针对行人图像的属性识别任务为例,如图4所示,是否长发、性别、是否戴帽子、以及是否打伞等属性各自的激活图中,高亮区域(即权重最高区域)均集中在行人的脖子和肩膀附近。换言之,在识别是否长发、性别、是否戴帽子、以及是否打伞等属性时,行人的脖子和肩膀区域对这些属性的识别结果起到最主要的决定作用。

如图4所示,是否背包、是否背双肩包、是否背单肩包、以及是否穿着短袖等属性各自的激活图中,高亮区域(即权重最高区域)均集中在行人的胳膊和上半身附近。换言之,在识别是否背包、是否背双肩包、是否背单肩包、以及是否穿着短袖等属性时,行人的胳膊和上半身区域对这些属性的识别结果起到最主要的决定作用。

如图4所示,是否穿着裙子、是否骑车、以及年龄等属性各自的激活图中,高亮区域(即权重最高区域)均集中在行人的全身区域。换言之,在识别是否穿着裙子、是否骑车、以及年龄等属性时,行人的全身区域对这些属性的识别结果起到最主要的决定作用。

如此,可以将是否长发、性别、是否戴帽子、以及是否打伞等属性聚类为第一属性分组,将是否背包、是否背双肩包、是否背单肩包、以及是否穿着短袖等属性聚类为第二属性分组,将是否穿着裙子、是否骑车、以及年龄等属性聚类为第三属性分组。

步骤s11:获得一组样本图像,将该组样本图像输入待训练的预设模型,其中,该组样本图像中的每张样本图像携带多个属性标签;

如前所述,由于本申请并不限定属性识别任务的具体应用场景,因此也不限定样本图像的主题。例如该组样本图像可以是以行人为主题的行人图像,或者该组样本图像可以是以车辆为主题的车辆图像。

示例地,假设属性识别任务的具体应用场景是:针对行人的属性进行识别。则训练方法的目标是:得到能自动识别行人图像中行人属性的属性识别模型。如此,所获得的一组样本图像是以行人为主题的行人图像。

或者示例地,假设属性识别任务的具体应用场景是:针对车辆的属性进行识别。则训练方法的目标是:得到能自动识别车辆图像中车辆属性的属性识别模型。如此,所获得的一组样本图像是以车辆为主题的车辆图像。

参考图5,图5是本申请一实施例提出的预设模型的示意图。如图5所示,该预设模型包括:该预设模型包括浅层特征提取模块和多个属性识别分支,多个属性识别分支均与浅层特征提取模块连接。示例地,图5中包括三个属性识别分支,从上至下依次为:第一属性识别分支、第二属性识别分支以及第三属性识别分支。

其中,每个属性识别分支用于对一个属性分组中的各个属性进行识别。每个属性识别分支可以包括:深层特征提取模块、池化模块以及至少一个属性识别单元。一个属性识别分支中的各个属性识别单元分别用于对一个属性分组中的各个属性进行识别。

其中,浅层特征提取模块和深层特征提取模块可以是一个卷积神经网络cnn的不同网络层次,例如卷积神经网络cnn具体选用resnet(residualneuralnetwork)网络,该resnet网络包括n个残差单元block。在建立预设模型时,可以将resnet网络的前n-1个block作为浅层特征提取网络,将resnet网络的第n个(即最后一个block)复制三份,分别配置于三个属性识别分支中。

在执行上述步骤s11时,可以在对该组样本图像进行预处理后(例如统一样本图像的通道数),将该组样本图像输入预设模型的浅层特征提取模块,该浅层特征提取模块针对每张样本图像,提取该样本图像的浅层图像特征,并将提取的浅层图像特征输入三个属性识别分支。每个属性识别分支的深层特征提取模块在获得浅层图像特征后,基于该浅层图像特征,进一步提取深层图像特征,并将提取到的深层图像特征输入至该属性识别分支的池化模块进行池化处理。池化模块将池化后的图像特征输入该属性识别分支的各个属性识别单元。每个属性识别单元在获得图像特征后,基于该图像特征获得属性的预估结果。

步骤s12':针对每张样本图像,执行以下步骤:针对每个属性分组,根据该样本图像的对应该属性分组的属性标签和其余样本图像各自的对应该属性分组的属性标签,从所述其余样本图像中,确定该样本图像对应该属性分组的正样本图像和负样本图像。

沿用上述示例,多个行人属性被划分为第一属性分组、第二属性分组以及第三属性分组等三个属性分组。假设该组样本图像中包括50张样本图像,依次为其中的每张样本图像确定正样本图像和负样本图像。

例如为第1张样本图像确定正样本图像和负样本图像,此时第2至第50张样本图像作为其余样本图像。实施期间,首先针对第一属性分组,根据第1张样本图像的是否长发属性标签、性别属性标签、是否戴帽子属性标签、以及是否打伞属性标签,并根据每张其余样本图像的是否长发属性标签、性别属性标签、是否戴帽子属性标签、以及是否打伞属性标签,从第2至第50张样本图像中,为第1张样本图像确定对应第一属性分组的正样本图像和负样本图像。

然后针对第二属性分组,根据第1张样本图像的是否背包属性标签、是否背双肩包属性标签、是否背单肩包属性标签、以及是否穿着短袖属性标签,并根据每张其余样本图像的是否背包属性标签、是否背双肩包属性标签、是否背单肩包属性标签、以及是否穿着短袖属性标签,从第2至第50张样本图像中,为第1张样本图像确定对应第二属性分组的正样本图像和负样本图像。

然后针对第三属性分组,根据第1张样本图像的是否穿着裙子属性标签、是否骑车属性标签、以及年龄属性标签,并根据每张其余样本图像的是否穿着裙子属性标签、是否骑车属性标签、以及年龄属性标签,从第2至第50张样本图像中,为第1张样本图像确定对应第三属性分组的正样本图像和负样本图像。

以此类推,按照同样的方式,从而依次为50张样本图像分别确定各自对应的三个正样本图像和三个负样本图像。

其中,在针对每个属性分组,确定该样本图像对应该属性分组的正样本图像和负样本图像时,具体可参考上述子步骤s12-1和子步骤s12-2。只不过在进行属性标签一对一地对比时,仅针对属性分组内的属性标签进行对比。

如图3所示,该方法还可以包括以下步骤:

步骤s13':针对每张样本图像,执行以下步骤:针对每个属性分组,基于该样本图像、该样本图像对应该属性分组的正样本图像、以及该样本图像对应该属性分组的负样本图像,确定该样本图像对应该属性分组的损失值。

沿用上述示例,多个行人属性被划分为第一属性分组、第二属性分组以及第三属性分组等三个属性分组。假设该组样本图像中包括50张样本图像,首先针对第1张样本图像,执行以下步骤:

从图5所示的第一属性识别分支的深层特征提取模块获得:针对第1张样本图像提取的深层图像特征(向量a)、针对该第1张样本图像的正样本图像提取的深层图像特征(向量b)、以及针对该第1张样本图像的负样本图像提取的深层图像特征(向量c)。

然后可以利用欧式距离(euclideandistance)的如下计算公式,计算第一特征距离:

其中,ρ1表示欧式距离,即第一特征距离;n表示向量的维数;xai表示向量a中的第i位,xbi表示向量b中的第i位。

利用欧式距离(euclideandistance)的如下计算公式,计算第二特征距离:

其中,ρ2表示欧式距离,即第二特征距离;n表示向量的维数;xai表示向量a中的第i位;xci表示向量c中的第i位。

然后可根据第一特征距离和第二特征距离,按照如下公式,计算样本图像对应第一属性分组的损失值loss:

loss=[ρ1-ρ2+α]+

其中,loss表示损失值;ρ1表示第一特征距离;ρ2表示第二特征距离;α表示调整系数,可人为预先设定;[ρ1-ρ2+α]+表示:在ρ1-ρ2+α小于或等于0的情况下,loss等于0,在ρ1-ρ2+α大于0的情况下,loss等于ρ1-ρ2+α。

以此类推,按照同样的方式,获得第1张样本图像对应第二属性分组的损失值,以及获得第1张样本图像对应第三属性分组的损失值。

以此类推,按照同样的方式,为50张样本图像分别计算出各自对应的三个损失值,总共获得150个损失值。其中的50个损失值是对应于第一属性分组的,另外50个损失值是对应于第二属性分组的,最后50个损失值是对应于第三属性分组的。

步骤s14'-1:针对所述预设模型的每个属性识别分支对应的属性分组,根据每张样本图像对应该属性分组的损失值,对该属性分组对应的属性识别分支进行更新。

沿用上述示例,并参考图5,利用150个损失值中对应于第一属性分组的50个损失值,对图5中的第一属性识别分支进行更新。利用150个损失值中对应于第二属性分组的50个损失值,对图5中的第二属性识别分支进行更新。利用150个损失值中对应于第三属性分组的50个损失值,对图5中的第三属性识别分支进行更新。

步骤s14'-2:根据每张样本图像的所有损失值,对所述特征提取模块进行更新。

沿用上述示例,并参考图5,利用150个损失值对图5中的浅层特征提取模块进行更新。

需要说明的是,本申请中预设模型的结构并不局限于图2和图5所示结构。例如预设模型也可以具体包括:特征提取模块和多个属性识别分支;该特征提取模块用于提取图像特征,并将提取的图像特征输入多个属性识别分支;每个属性识别分支用于基于该图像特征,对该属性识别分支对应的一个属性分组中的各个属性进行识别。

本申请通过对属性进行分组,由于每个属性识别分支对应一个属性分组,且同一个属性分组中的各个属性在被识别时,图像上对属性识别结果起决定作用的图像区域的位置相同。因此被同一个属性识别分支所识别的各个属性之间具有相互促进的效果,从而利于进一步提高模型训练的精准性,进而提高属性识别结果的准确性。

基于同一发明构思,本申请一实施例提供一种训练属性识别模型的装置。参考图6,图6是本申请一实施例提出的训练属性识别模型的装置的示意图。如图6所示,该装置包括:

样本图像获得模块61,用于获得一组样本图像,将该组样本图像输入待训练的预设模型,其中,该组样本图像中的每张样本图像携带多个属性标签;

正负样本确定模块62,用于针对每张样本图像,根据该样本图像的属性标签和该组样本图像中其余样本图像各自的属性标签,从所述其余样本图像中确定该样本图像的正样本图像和负样本图像;

损失值确定模块63,用于针对每张样本图像,基于该样本图像、该样本图像的正样本图像、以及该样本图像的负样本图像,确定该样本图像对应的损失值;

模型更新模块64,用于根据每张样本图像各自对应的损失值,对所述预设模型进行更新;

模型确定模块65,用于将经过多次更新后的预设模型确定为属性识别模型。

可选地,所述正负样本确定模块包括:

属性相似度确定子模块,用于将该样本图像的多个属性标签与所述一组样本图像中的每张其余样本图像的多个属性标签进行一对一地对比,以确定该样本图像与所述一组样本图像中的每张其余样本图像的属性相似度,其中,该样本图像与一张其余样本图像的属性相似度表征:该样本图像与该其余样本图像之间具有的相同属性标签的个数;

正负样本确定子模块,用于根据该样本图像与每张其余样本图像的属性相似度,将最大属性相似度所对应的其余样本图像确定为该样本图像的正样本图像,将最小属性相似度所对应的其余样本图像确定为该样本图像的负样本图像。

可选地,所述属性识别模型用于提取图像特征,并基于提取的图像特征,对多个属性进行识别;所述损失值确定模块包括:

第一特征距离确定子模块,用于根据所述属性识别模型针对该样本图像提取的图像特征,和所述属性识别模型针对该正样本图像提取的图像特征,确定该样本图像与该正样本图像之间的第一特征距离;

第二特征距离确定子模块,用于根据所述属性识别模型针对该样本图像提取的图像特征,和所述属性识别模型针对该负样本图像提取的图像特征,确定该样本图像与该负样本图像之间的第二特征距离;

损失值确定子模块,用于根据所述第一特征距离和所述第二特征距离之间的差值,确定该样本图像对应的损失值。

可选地,所述模型更新模块包括:

平均值确定子模块,用于根据所述一组样本图像包括的样本图像的数量,以及每张样本图像各自对应的损失值,确定多个损失值的平均值;

模型更新子模块,用于根据所述多个损失值的平均值,对所述预设模型进行更新。

可选地,所述装置还包括:

分组模块,用于预先对多个属性进行分组,得到多个属性分组,每个属性分组中的各个属性在被识别时,图像上对属性识别结果起决定作用的图像区域的位置相同;

所述正负样本确定模块具体用于:针对每个属性分组,根据该样本图像的对应该属性分组的属性标签和其余样本图像各自的对应该属性分组的属性标签,从所述其余样本图像中,确定该样本图像对应该属性分组的正样本图像和负样本图像。

可选地,所述分组模块包括:

激活图获得子模块,用于针对预设图像的每种属性,获得该属性对应的激活图,该激活图用于表征:在识别该属性时,所述预设图像的各个区域对属性识别结果所起的决定作用的权重;

聚类子模块,用于根据每张激活图所表征的权重分布,将多种属性聚类成多个分组,每个分组包括的各种属性所对应的各张激活图像中,各个权重最高区域的位置相同。

可选地,所述预设模型包括特征提取模块和多个属性识别分支;所述特征提取模块用于提取图像特征,并将提取的图像特征输入所述多个属性识别分支;每个属性识别分支用于基于该图像特征,对该属性识别分支对应的一个属性分组中的各个属性进行识别;

所述损失值确定模块具体用于:针对每个属性分组,基于该样本图像、该样本图像对应该属性分组的正样本图像、以及该样本图像对应该属性分组的负样本图像,确定该样本图像对应该属性分组的损失值;

所述模型更新模块包括:

属性识别分支更新子模块,用于针对所述预设模型的每个属性识别分支对应的属性分组,根据每张样本图像对应该属性分组的损失值,对该属性分组对应的属性识别分支进行更新;

特征提取模块更新子模块,用于根据每张样本图像的所有损失值,对所述特征提取模块进行更新。

基于同一发明构思,本申请另一实施例提供一种可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请上述任一实施例所述的训练属性识别模型的方法中的步骤。

基于同一发明构思,本申请另一实施例提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现本申请上述任一实施例所述的训练属性识别模型的方法中的步骤。

对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。

本领域内的技术人员应明白,本申请实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本申请实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例范围的所有变更和修改。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。

以上对本申请所提供的一种训练属性识别模型的方法、装置、电子设备及存储介质,进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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