本技术涉及人脸关键点(landmark)检测,更具体地,涉及一种检测人脸图像的关键点坐标的方法和装置。
背景技术:
1、近年来,由于深度神经网络的快速发展,人脸图像关键点(landmark)检测技术取得了显著的进步。现有的人脸图像关键点检测方法主要包括基于热图回归的方法和基于坐标回归的方法。基于热图回归的方法首先根据给定的关键点坐标生成热图,其中每个热图代表一个关键点位置的概率,然后根据热图上的峰值概率位置获取关键点。基于热图的方法可以保留图像特征的空间结构,从而获得良好的性能。基于坐标回归的方法直接将输入图像映射为关键点坐标。在深度学习框架中,输入图像被输入cnn模型以获取图像特征。然后通过全连接的预测层直接将特征映射为坐标。近来,图形神经网络、变换器(transformer)被用于学习人脸图像中的关键点结构,从而提高检测精度。
2、然而,现有方法通过一个模型仅能检测或预测一种风格或类型的关键点。为了获得不同风格或类型的关键点,需要训练不同的模型,这会导致时间和内存的浪费。此外,不同的数据集具有不同的标注类型。在一个数据集上训练的模型不能很好地应用于其它数据集。
技术实现思路
1、本发明的目的在于提供一种检测人脸图像的关键点坐标的方法和装置,以至少解决上述相关技术中的问题,也可以不解决任何上述问题。
2、根据本公开示例性实施例的一个方面,提供一种检测人脸图像的关键点的方法,包括:通过卷积神经网络层获取所述人脸图像的多级特征图;通过全连接层将所述多级特征图中的最后一级特征图进行全连接以获取初始查询矩阵;通过对多级特征图进行展平和连接操作获取记忆特征矩阵;以及基于用于指定多个关键点风格中的至少一个关键点风格的用户输入、所述记忆特征矩阵和初始查询矩阵,利用级联的至少一个解码器层确定所述人脸图像的与所述至少一个关键点风格相应的第一关键点的坐标。
3、根据本公开的实施例,可通过一个模型即可检测用户指定的多种风格的中至少一种风格的关键点的坐标,相较于现有技术中的一个模型仅能检测一种类型的关键点,本技术技术可以降低训练多个不同模型导致的时间和内存的浪费。
4、可选地,每个解码器层包括级联的掩码模块、自注意力模块、可变形注意力模块和关键点坐标预测块,以及其中,确定第一关键点的坐标的步骤包括:基于所述用户输入指定的所述多个关键点风格中的所述至少一个关键点风格,获得所述至少一个关键点对应的掩码矩阵;基于所述掩码矩阵,对输入到所述自注意力模块的查询矩阵、键矩阵和值矩阵进行掩码,以用于预测第一关键点的坐标。
5、可选地,初始查询矩阵中元素的数量等于n,n指示所述多个关键点风格中的各关键点风格对应的关键点的数量之和;其中,确定第一关键点的坐标的步骤包括:基于所述掩码矩阵利用第一解码器层的掩码模块将初始查询矩阵、与初始查询矩阵相应的位置信息进行掩码,以将初始查询矩阵和所述位置信息中的部分元素置为零,其中,所述部分元素与对应于所述多个关键点风格的关键点中的除第一关键点之外的关键点相应;将嵌入了掩码后的位置信息的掩码后的初始查询矩阵、嵌入了掩码后的位置信息的掩码后的初始查询矩阵和掩码后的初始查询矩阵作为第一个解码器层的自注意力模块的查询矩阵、键矩阵和值矩阵输入到第一解码器层的自注意力模块;将当前解码器层的自注意力模块的输出矩阵、所述记忆特征矩阵和掩码后的上一解码器层预测的第一关键点的坐标输入到当前解码器层的可变形注意力模块以获得当前解码器层的可变形注意力模块的输出矩阵,其中,当前解码器层的自注意力模块的输出矩阵和所述记忆特征矩阵为当前解码器层的可变形注意力模块的查询矩阵和值矩阵,其中,输入到第一解码器层的可变形注意力模块的掩码后的上一解码器层预测的第一关键点的坐标为基于所述掩码矩阵对基于初始查询矩阵获得的初始关键点坐标进行掩码获得的关键点坐标,其中,掩码后的上一解码器层预测的第一关键点的坐标通过所述掩码模块基于所述掩码矩阵对上一解码器层预测的第一关键点的坐标中的部分元素置零获得,其中,所述部分元素与对应于所述多个关键点风格的关键点中的除第一关键点之外的关键点相应;基于所述掩码矩阵利用当前解码器层的下一解码器层的掩码模块将当前解码器层的可变形注意力模块的输出矩阵和与当前解码器层的可变形注意力模块的输出矩阵相应的位置信息进行掩码以使得当前解码器层的可变形注意力模块的输出矩阵和与当前解码器层的可变形注意力模块的输出矩阵相应的位置信息中的部分元素置零,其中,所述部分元素与对应于所述多个关键点风格的关键点中的除第一关键点之外的关键点相应;将掩码后的当前解码器层的可变形注意力模块的输出矩阵、嵌入了掩码后的位置信息的掩码后的当前解码器层的可变形注意力模块的输出矩阵和嵌入了掩码后的位置信息的当前解码器层的可变形注意力模块的掩码后的输出矩阵作为下一解码器层的自注意力模块的值矩阵、查询矩阵和键矩阵输入到下一解码器层的自注意力模块;以及将当前解码器层的可变形注意力模块的输出矩阵以及掩码后的上一解码器层预测的第一关键点的坐标输入到当前解码器层的关键点坐标预测模块以获得当前解码器层预测的第一关键点的坐标,其中,所述至少一个解码器层中的最后一个解码器层预测的第一关键点的坐标作为最终的第一关键点的坐标。
6、根据本公开的实施例,通过执行掩码操作,可以获取的用户指定风格的关键点的坐标。
7、可选地,每个解码器层的自注意力模块的输出矩阵qe通过以下公式获得:
8、
9、其中,表示输出矩阵qe中的第i个行向量,αij表示对输入到自注意力模块的查询矩阵的第i个行向量与输入到自注意力模块的键矩阵的第j个行向量的点积执行归一化获得的注意力权重,qj表示掩码后的初始查询矩阵或掩码后的上一解码器层的可变形注意力模块的输出矩阵中的第j个行向量。
10、根据本公开的实施例,自注意力模块学习关键点之间的结构依赖性。该信息对于关键点定位是重要的,从而提高关键点坐标的预测准确度
11、可选地,每个解码器层的可变形注意力模块的输出矩阵qd通过以下公式获得:
12、
13、其中,fi表示qd中第i个关键点的更新的特征,βik表示对输入到可变形注意力模块的查询矩阵执行全连接操作和softmax操作而获得的注意力权重,xik表示所述记忆特征矩阵中的与第k个参考点坐标相应的特征,其中,第k个参考点坐标与掩码后的上一解码器层预测的第一关键点的坐标中的第i个关键点坐标之间的位置偏移是通过对输入到可变形注意力模块的查询矩阵执行全连接操作得到的,其中,k为预设值。
14、可变形注意力模块不是计算自注意力模块的输出矩阵中的每个元素与记忆特征矩阵之间的关系,而是仅关注通过根据上一层解码器层预测的关键点坐标对记忆特征进行采样而获得的一小组特征,这极大地减少了特征搜索的面积,从而加快了模型的收敛速度。
15、可选地,每个解码器层预测的第一关键点的坐标通过以下公式获得:
16、y=σ(yo+σ-1(yr))
17、其中,y表示当前解码器层预测的第一关键点的坐标,yr表示掩码后的上一解码器层预测的第一关键点的坐标,yo指示y相对于yr的偏移。
18、根据本公开示例性实施例的一个方面,提供了一种检测人脸图像的关键点的装置,包括:编码器,被配置为通过卷积神经网络层获取所述人脸图像的多级特征图,通过全连接层将所述多级特征图中的最后一级特征图进行全连接以获取初始查询矩阵,并通过对多级特征图进行展平和连接操作获取记忆特征矩阵;解码器,包括级联的至少一个解码器层,其中,所述至少一个解码器层被配置为基于用于指定多个关键点风格中的至少一个关键点风格的用户输入、记忆特征矩阵和初始查询矩阵,确定所述人脸图像的与所述至少一个关键点风格相应的关键点的坐标。
19、可选地,每个解码器层包括级联的掩码模块、自注意力模块、可变形注意力模块和关键点坐标预测块,以及其中,所述解码器被配置为:基于所述用户输入指定的所述多个关键点风格中的所述至少一个关键点风格,获得所述至少一个关键点对应的掩码矩阵;以及基于所述掩码矩阵,对输入到所述自注意力模块的查询矩阵、键矩阵和值矩阵进行掩码,以用于预测第一关键点的坐标。
20、可选地,初始查询矩阵中元素的数量等于n,n指示所述多个关键点风格中的各关键点风格对应的关键点的数量之和;其中,所述解码器被配置为:基于所述掩码矩阵利用第一解码器层的掩码模块将初始查询矩阵、与初始查询矩阵相应的位置信息进行掩码,以将初始查询矩阵和所述位置信息中的部分元素置为零,其中,所述部分元素与对应于所述多个关键点风格的关键点中的除第一关键点之外的关键点相应;将嵌入了掩码后的位置信息的掩码后的初始查询矩阵、嵌入了掩码后的位置信息的掩码后的初始查询矩阵和掩码后的初始查询矩阵作为第一个解码器层的自注意力模块的查询矩阵、键矩阵和值矩阵输入到第一解码器层的自注意力模块;将当前解码器层的自注意力模块的输出矩阵、所述记忆特征矩阵和掩码后的上一解码器层预测的第一关键点的坐标输入到当前解码器层的可变形注意力模块以获得当前解码器层的可变形注意力模块的输出矩阵,其中,当前解码器层的自注意力模块的输出矩阵和所述记忆特征矩阵为当前解码器层的可变形注意力模块的查询矩阵和值矩阵,其中,输入到第一解码器层的可变形注意力模块的掩码后的上一解码器层预测的第一关键点的坐标为基于所述掩码矩阵对基于初始查询矩阵获得的初始关键点坐标进行掩码获得的关键点坐标,其中,掩码后的上一解码器层预测的第一关键点的坐标通过所述掩码模块基于所述掩码矩阵对上一解码器层预测的第一关键点的坐标中的部分元素置零获得,其中,所述部分元素与对应于所述多个关键点风格的关键点中的除第一关键点之外的关键点相应;基于所述掩码矩阵利用当前解码器层的下一解码器层的掩码模块将当前解码器层的可变形注意力模块的输出矩阵和与当前解码器层的可变形注意力模块的输出矩阵相应的位置信息进行掩码以使得当前解码器层的可变形注意力模块的输出矩阵和与当前解码器层的可变形注意力模块的输出矩阵相应的位置信息中的部分元素置零,其中,所述部分元素与对应于所述多个关键点风格的关键点中的除第一关键点之外的关键点相应;将掩码后的当前解码器层的可变形注意力模块的输出矩阵、嵌入了掩码后的位置信息的掩码后的当前解码器层的可变形注意力模块的输出矩阵和嵌入了掩码后的位置信息的当前解码器层的可变形注意力模块的掩码后的输出矩阵作为下一解码器层的自注意力模块的值矩阵、查询矩阵和键矩阵输入到下一解码器层的自注意力模块;以及将当前解码器层的可变形注意力模块的输出矩阵以及掩码后的上一解码器层预测的第一关键点的坐标输入到当前解码器层的关键点坐标预测模块以获得当前解码器层预测的第一关键点的坐标,其中,所述至少一个解码器层中的最后一个解码器层预测的第一关键点的坐标作为最终的第一关键点的坐标。
21、可选地,每个解码器层的自注意力模块的输出矩阵qe通过以下公式获得:
22、
23、其中,表示输出矩阵qe中的第i个行向量,αij表示对输入到自注意力模块的查询矩阵的第i个行向量与输入到自注意力模块的键矩阵的第j个行向量的点积执行归一化获得的注意力权重,qj表示掩码后的初始查询矩阵或掩码后的上一解码器层的可变形注意力模块的输出矩阵中的第j个行向量。
24、可选地,每个解码器层的可变形注意力模块的输出矩阵qd通过以下公式获得:
25、
26、其中,fi表示qd中第i个关键点的更新的特征,βik表示对输入到可变形注意力模块的查询矩阵执行全连接操作和softmax操作而获得的注意力权重,xik表示所述记忆特征矩阵中的与第k个参考点坐标相应的特征,其中,第k个参考点坐标与掩码后的上一解码器层预测的第一关键点的坐标中的第i个关键点坐标之间的位置偏移是通过对输入到可变形注意力模块的查询矩阵执行全连接操作得到的,其中,k为预设值。
27、可选地,每个解码器层预测的第一关键点的坐标通过以下公式获得:
28、y=σ(yo+σ-1(yr))
29、其中,y表示当前解码器层预测的第一关键点的坐标,yr表示掩码后的上一解码器层预测的第一关键点的坐标,yo指示y相对于yr的偏移。
30、根据本公开的实施例,提供了一种存储有计算机程序的计算机可读存储介质,其中,当所述计算机程序被处理器执行时实现如上所述的检测人脸图像的关键点坐标的方法。
1.一种检测人脸图像的关键点的方法,包括:
2.如权利要求1所述的方法,其中,每个解码器层包括级联的掩码模块、自注意力模块、可变形注意力模块和关键点坐标预测块,以及
3.如权利要求2所述的方法,其中,初始查询矩阵中元素的数量等于n,n指示所述多个关键点风格中的各关键点风格对应的关键点的数量之和;
4.如权利要求3所述的方法,其中,每个解码器层的自注意力模块的输出矩阵qe通过以下公式获得:
5.如权利要求4所述的方法,其中,每个解码器层的可变形注意力模块的输出矩阵qd通过以下公式获得:
6.如权利要求3所述的方法,其中,每个解码器层预测的第一关键点的坐标通过以下公式获得:
7.一种检测人脸图像的关键点的装置,包括:
8.如权利要求7所述的装置,其中,每个解码器层包括级联的掩码模块、自注意力模块、可变形注意力模块和关键点坐标预测块,以及
9.如权利要求8所述的装置,其中,初始查询矩阵中元素的数量等于n,n指示所述多个关键点风格中的各关键点风格对应的关键点的数量之和;
10.一种存储有计算机程序的计算机可读存储介质,其中,当所述计算机程序被处理器执行时实现如上所述的检测人脸图像的关键点坐标的方法。
