一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于自蒸馏Transformer的人脸属性识别方法及系统

2022-11-14 01:06:54 来源:中国专利 TAG:

基于自蒸馏transformer的人脸属性识别方法及系统
技术领域
1.本发明属于计算机视觉技术领域,具体涉及一种基于自蒸馏transformer的人脸属性识别方法及系统。


背景技术:

2.基于卷积神经网络的人脸属性识别(far)方法已广泛应用于计算机视觉(cv)和模式识别,包括图像检索、人脸验证和人脸识别。人脸属性识别的任务是预测面部图像是否具有多个面部属性,例如戴帽子、戴眼镜和微笑。受transformer在自然语言处理和机器翻译任务中的成功启发,许多研究最近尝试将transformer应用于计算机视觉任务并取得了蓬勃发展。然而,很少有研究尝试使用编码器进行面部属性识别。因此,本发明将尝试将transformer应用于人脸属性识别,构建一个新型的应对与人脸属性识别的方法及系统。
3.近年来,自蒸馏作为知识蒸馏的一种方式得到了广泛的研究。虽然自蒸馏是知识蒸馏的一种蒸馏方法,但与一般知识蒸馏不同,自蒸馏不需要额外的教师网络预训练,也不用于模型压缩。自蒸馏可用于模型精度提高和模型内不同模块之间的知识转移。
4.视觉transformer将图像分割成块,然后将它们输入编码器以提取特征进行分类。由于模型的简单性和扩展性,它已成为transformer在计算机视觉领域应用的里程碑,许多工作都是基于传统的transformer进行改进。但是,它们忽略了transformer块之间的信息交换以及不同维度的信息交互。


技术实现要素:

5.本发明的目的在于提供一种基于自蒸馏transformer的人脸属性识别方法及系统,该方法及系统增强了不同编码器块之间的信息交互,以避免在迭代过程中忘记编码器块中的信息,同时提高人脸属性识别的性能。
6.为实现上述目的,本发明采用的技术方案是:一种基于自蒸馏transformer的人脸属性识别方法,包括以下步骤:
7.a.对获取的人脸属性数据图片进行预处理;
8.b.将预处理后的数据输入到transformer中,利用transformer促进不同层级之间特征的信息交互,以避免在网络迭代的过程中忽略重要信息;
9.c.将transformer进行分组,将每组transformer的编码器所提取的tokens中的分类token用于自蒸馏模块;
10.d.将transformer中最后一个编码器组输出的分类token归一化后输入到全连接层用于人脸属性识别;
11.e.将自蒸馏模块和人脸属性识别模块进行联合训练;
12.f.利用训练得到的网络模型进行人脸属性识别。
13.进一步地,所述步骤a具体包括以下步骤:
14.a1.分别获取人脸图片和人脸属性识别标签;
15.a2.对于每个待输入的人脸图像将其划分为一系列扁平化的图像块其中n表示图像块的数量,p是块的大小,c表示图像块的通道数;然后,通过可训练的线性投影将图像块映射到d维嵌入空间中;将分类token与图像块扁平化后所映射的tokens拼接一起;每个token对应的位置信息被嵌入到所有的tokens中;经过预处理后,该图像的嵌入信息表示为:
[0016][0017]
其中,代表第j个扁平化后的图像块。
[0018]
进一步地,所述步骤b的具体实现方法为:
[0019]
为了避免在迭代过程中编码器忽略浅层中的信息,在transformer的每组编码器中,每层的编码器保留前一个编码器的多头自注意力的信息键和值共同输入到时区自注意力中用于不同编码器块中的信息交互;假设transformer由g个编码器组构成,每个编码器组包含个堆叠的编码器,其中l表示transformer中编码器的总数;每个编码器由一个时区自注意力和一个多层感知机构成;则第l层的输出表示为:
[0020]z′
l
=zsa(ln(z
l-1
),k
l-1
,v
l-1
) z
l-1
,l=1,...,l
[0021]zl
=mlp(ln(z

l
)) z

l
,l=1,...,l
[0022]
其中,ln(
·
)表示层次归一化操作;z

l
和z
l
是编码器中的隐藏特征;k
l-1
和v
l-1
分别是第l-1个编码器获得的键和值;所述时区自注意力在第l个编码器中的时区自注意力也接收查询q
l
、键k
l
和值v
l
,第l层的编码器中的时区自注意力包含第l-1层的键k
l-1
和值v
l-1
,以增加不同层信息的交互,使得时区自注意力可以学习不同时区的特征信息之间的关系;第l个编码器中的时区自注意力表示为:
[0023]
zsa(ln(z
l-1
),k
l-1
,v
l-1
)
[0024]
=concat(head0,...,headn)wo[0025]
其中为一个可学习的线性映射器,concat(
·
)为一个拼接操作;并且,headi表示为:
[0026][0027]
其中和是headi的线性映射器;attn(
·
)的自注意力操作按照以下公式计算:
[0028][0029]
其中
[0030]
进一步地,所述步骤c的具体实现方法为:
[0031]
采用基于分类token的自蒸馏机制,以促进不同编码器组之间重要信息的交互;所述基于分类token的自蒸馏机制从最后一个编码器组获得的分类token的信息蒸馏到其他浅层的编码器组的分类token中;transformer中总共l个编码器被分成g组,每组有个编码器,第j组的编码器的输出为令其中表示的第0个token;使用最后一组的编码器得到的分类token,即作为教师来影响从第g组生成的分类token,即其中g={1,...,g-1};则基于kullback-leibler散度kl(
·
)的自蒸馏损失函数描述如下:
[0032][0033]
其中τ是温度参数,被设置为g=4和τ=2。
[0034]
进一步地,所述步骤d的具体实现方法为:
[0035]
transformer最后一个编码器组的分类token,即被输入层次归一化ln(
·
)和全连接层fc(
·
)以获得人脸属性的预测值给定人脸属性的预测值和真实值y,人脸属性识别的损失计算如下:
[0036][0037]
其中,m是训练图像的数量,a是人脸属性的数量。
[0038]
进一步地,所述步骤e的具体实现方法为:
[0039]
将自蒸馏模块和人脸属性识别模块进行联合训练,表示如下:
[0040]
l
total
=l
fac
λ
·
l
self
[0041]
其中λ是自蒸馏损失l
self
的超参数。
[0042]
本发明还提供了一种基于自蒸馏transformer的人脸属性识别系统,包括存储器、处理器以及存储于存储器上并能够被处理器运行的计算机程序指令,当处理器运行该计算机程序指令时,能够实现上述的方法步骤。
[0043]
与现有技术相比,本发明具有以下有益效果:本发明提出了一种基于自蒸馏transformer的人脸属性识别方法及系统,首次提出一种新的单纯基于transformer的人脸属性识别系统,实现不同transformer编码器之间的交互,避免在迭代过程中忽略transformer的编码器组之间的有效信息。此外,本发明中还提出了一种新的基于分类token的自蒸馏机制,该机制通过注意力与不同编码器之间的重要信息进行交互,将从transformer的最后一个编码器组获得的分类token的信息蒸馏到其他较为浅层的编码器组。因此,本发明提出的人脸属性识别方法及系统具有更加优异的人脸属性识别性能。
附图说明
[0044]
图1是本发明实施例的网络模型框架图。
[0045]
图2是本发明实施例中transformer的编码器组的框架图。
具体实施方式
[0046]
下面结合附图及实施例对本发明做进一步说明。
[0047]
应该指出,以下详细说明都是示例性的,旨在对本技术提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本技术所属技术领域的普通技术人员通常理解的相同含义。
[0048]
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0049]
如图1、2所示,本实施例提供了一种基于自蒸馏transformer的人脸属性识别方法,包括以下步骤:
[0050]
a.对获取的人脸属性数据图片进行预处理。
[0051]
在本实施例中,步骤a具体包括以下步骤:
[0052]
a1.分别获取人脸图片和人脸属性识别标签。
[0053]
a2.对于每个待输入的人脸图像它被划分为一系列扁平化(flattened)的图像块其中n表示图像块的数量,p是块的大小,c表示图像块的通道数。然后,通过可训练的线性投影将图像块映射到d维嵌入空间中。分类token是一种可学习的向量,与图像块扁平化后所映射的tokens拼接一起。分类token用于transformer的编码器组的自蒸馏;每个token对应的位置信息被嵌入到所有的tokens中;经过预处理后,该图像的嵌入信息表示为:
[0054][0055]
其中,代表第j个扁平化后的图像块。
[0056]
b.将预处理后的数据输入到transformer中,利用transformer促进不同层级之间特征的信息交互,以避免在网络迭代的过程中忽略重要信息。
[0057]
在本实施例中,所述步骤b的具体实现方法为:
[0058]
为了避免在迭代过程中编码器忽略浅层中的信息,在transformer的每组编码器中,每层的编码器将会保留前一个编码器的多头自注意力的信息键(key)和值(value)共同输入到时区自注意力(zsa)中用于不同编码器块中的信息交互。假设transformer由g个编码器组构成,每个编码器组包含个堆叠的编码器,其中l表示transformer中编码器的总数。每个编码器由一个时区自注意力(zsa)和一个多层感知机(mlp)构成。因此第l层的输出可以表示如下:
[0059]z′
l
=zsa(ln(z
l-1
),k
l-1
,v
l-1
) z
l-1
,l=1,...,l
[0060]zl
=mlp(ln(z

l
)) z

l
,l=1,...,l
[0061]
其中ln(
·
)表示层次归一化操作;z

l
和z
l
是编码器中的隐藏特征;k
l-1
和v
l-1
分别是第l-1个编码器获得的键和值。其中时区自注意力(zsa)与一般的多头自注意力类似,不同之处在于在第l个编码器中的时区自注意力也接收查询q
l
、键k
l
和值v
l
。不同之处在于第l层的编码器中的时区自注意力包含第l-1层的键k
l-1
和值v
l-1
。这样的设计增加了不同层信息的交互,使得时区自注意力可以学习不同时区的特征信息之间的关系。第l个编码器中的时区自注意力可以表示为:
[0062]
zsa(ln(z
l-1
),k
l-1
,v
l-1
)
[0063]
=concat(head0,...,headn)wo[0064]
其中是一个可学习的线性映射器,concat(
·
)是一个拼接操作。并且,headi可以表示为:
[0065][0066]
其中和是headi的线性映射器。attn(
·
)的自注意力操作可以按照以下公式计算:
[0067][0068]
其中
[0069]
c.将transformer进行分组,将每组transformer的编码器(encoder)所提取的tokens中的分类token用于自蒸馏模块。
[0070]
在本实施例中,所述步骤c的具体实现方法为:
[0071]
为了不同编码器组之间的重要信息进行交互,采用一种基于分类token的新自蒸馏机制。该机制将从最后一个编码器组获得的分类token的信息蒸馏到其他浅层的编码器组的分类token中。具体来说,transformer中总共l个编码器被分成g组,每组有个编码器,所以第j组的编码器的输出为我们令其中表示的第0个token。我们使用最后一组的编码器得到的分类token,即作为教师来影响从第g组生成的分类token,即其中g={1,...,g-1}。因此基于kullback-leibler散度(kl(
·
))的自蒸馏损失函数可以描述如下:
[0072][0073]
其中τ是温度参数,被设置为g=4和τ=2。
[0074]
d.将transformer中最后一个编码器组输出的分类token归一化后输入到全连接层用于人脸属性识别。
[0075]
在本实施例中,所述步骤d的具体实现方法为:
[0076]
transformer最后一个编码器组的分类token,即被输入层次归一化ln(
·
)和全连接层fc(
·
)以获得人脸属性的预测值因此,给定人脸属性的预测值和真实值y,人脸属性识别的损失可以计算如下:
[0077][0078]
其中,m是训练图像的数量,a是人脸属性的数量。
[0079]
e.将自蒸馏模块和人脸属性识别模块进行联合训练;其表示如下:
[0080]
l
total
=l
fac
λ
·
l
self
[0081]
其中λ是自蒸馏损失l
self
的超参数。
[0082]
f.通过训练得到的网络模型进行人脸属性识别。
[0083]
本发明还提供了一种基于自蒸馏transformer的人脸属性识别系统,包括存储器、处理器以及存储于存储器上并能够被处理器运行的计算机程序指令,当处理器运行该计算机程序指令时,能够实现如上述的方法步骤。
[0084]
在本实施例中,对本发明提出的方法与其它方法的人脸属性识别结果进行了比较。表1为在celeba数据集上,本发明提出的方法与其它人脸属性识别方法结果对比。表2为本发明在lfwa数据集上,本发明提出的方法与其它人脸属性识别方法结果对比。
[0085]
表1在celeba数据集上本发明方法与其它方法的识别结果对比
[0086]
属性(正确率%)pandalnets anetmcnn-auxaffairmcfasplitfacedmm-cnn本发明方法胡子88.0091.0094.5194.7994.0093.1394.8494.94柳叶眉78.0079.0083.4283.9983.0082.5684.5783.56吸引力81.0081.0083.0683.2183.0082.7683.3783.66眼袋79.0079.0084.9285.1685.0084.8685.8185.49秃头的96.0098.0098.9098.9399.0098.0399.0399.11刘海92.0095.0096.0596.1596.0095.7196.2296.16大嘴唇67.0068.0071.4771.8472.0069.2872.9372.20大鼻子75.0078.0084.5384.5484.0083.8184.7885.42黑发85.0088.0089.7890.1189.0089.0390.5090.72金发93.0095.0096.0196.1496.0095.7696.1396.31睡眼惺忪86.0084.0096.1796.4396.0095.9696.4096.39棕发77.0080.0089.1589.5588.0088.2589.4689.68浓眉86.0090.0092.8492.8992.0092.6693.0193.06丰满的86.0091.0095.6795.7896.0095.9495.8696.05
双下巴88.0092.0096.3296.4196.0095.8096.3996.49眼睛98.0099.0099.6399.71100.0099.5199.6999.72山羊胡子93.0095.0097.2497.6097.0096.6897.6397.38灰发94.0097.0098.2098.2498.0097.4598.2798.33浓妆90.0090.0091.5591.9292.0091.5991.8592.03高颧骨86.0088.0087.5888.1387.0087.6187.7387.86男性97.0098.0098.1798.4698.0097.9598.2998.82张嘴93.0092.0093.7494.2793.0093.7894.1694.20胡子(上唇)93.0095.0096.8897.0397.0095.8697.0396.87小眼睛84.0081.0087.2387.8487.0086.8887.7387.73胡子(下巴)93.0095.0096.0596.3796.0096.1796.4196.53瓜子脸65.0066.0075.8476.3175.0074.9375.8976.12白皮肤91.0091.0097.0597.1897.0097.0097.0097.06尖鼻子71.0072.0077.4777.4977.0076.4777.1978.18发际线后退85.0089.0093.8193.7594.0092.2594.1294.03红润的脸颊87.0090.0095.1695.3295.0094.7995.3295.21连鬓胡子93.0096.0097.8597.9398.0097.1797.9197.86微笑的92.0092.0092.7393.2393.0092.7093.2293.17直发69.0073.0083.5883.4685.0080.4184.7284.73卷发77.0080.0083.9184.0185.0081.7086.0185.52戴耳环78.0082.0090.4390.5190.0089.4490.7890.96戴帽子96.0099.0099.0599.1299.0098.7499.1299.11涂口红93.0093.0094.1194.0494.0093.2194.4994.29戴项链67.0071.0086.6386.4888.0085.6188.0386.16戴领带91.0093.0096.5195.2597.0096.0597.1595.79年轻84.0087.0088.4888.4488.0088.0188.9889.66平均准确率85.4387.3391.2991.4591.2390.6191.7091.66参数量->100m16m-260m26.09m90.77m85.83m
[0087]
表2在lfwa数据集上本发明方法与其它方法的识别结果对比
[0088]
属性(正确率%)pandalnets anetmcnn-auxaffairmcfasplitfacedmm-cnn本发明方法胡子84.0084.0077.0677.9875.0077.5979.1878.47柳叶眉79.0082.0081.7881.6379.0081.7282.7081.36吸引力81.0083.0080.3180.3177.0080.1681.1081.08眼袋80.0083.0083.4883.1279.0082.6282.7083.59秃头的84.0088.0091.9491.6791.0091.8891.9691.89刘海84.0088.0090.0891.0889.0090.7191.3091.10大嘴唇73.0075.0079.2478.9175.0078.9779.8279.87大鼻子79.0081.0084.9884.2081.0083.1383.6783.53黑发87.0090.0092.6391.6691.0092.4991.5591.49金发94.0097.0097.4197.5697.0097.4797.1797.46睡眼惺忪74.0074.0085.2386.8286.0086.4287.5887.79棕发74.0077.0080.8579.3577.0080.9381.5680.70浓眉79.0082.0084.9784.9076.0084.2685.3385.21丰满的69.0073.0076.8675.7174.0076.0677.6678.02双下巴75.0078.0081.5281.0077.0080.4980.9882.16
task learning of cascaded cnn for facial attribute classification,in:2018 24th international conference on pattern recognition(icpr),ieee,2018,pp.2069

2074.);
[0095]
splitface对应u.mahbub等人提出的方法(u.mahbub,s.sarkar,r.chellappa,segment-based methods for facial attribute detection from partial faces,ieee transactions on affective computing 11(4)(2018)601

613.);
[0096]
dmm-cnn对应l.mao等人提出的方法(l.mao,y.yan,j.-h.xue,h.wang,deep multi-task multi-label cnn for effective facial attribute classification,ieee transactions on affective computing.)。
[0097]
本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0098]
本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0099]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0100]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0101]
以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献