首页 / 专利库 / 电子零件及设备 / 人体模型 / 一种人体关键点识别方法、装置及电子设备

一种人体关键点识别方法、装置及电子设备

阅读:924发布:2020-05-11

专利汇可以提供一种人体关键点识别方法、装置及电子设备专利检索,专利查询,专利分析的服务。并且本 发明 实施例 提供了一种人体关键点识别方法、装置及 电子 设备。该方法包括:获取待识别人体关键点的目标图像;将目标图像输入至预先训练完成的神经网络模型,以使神经网络模型提取所述目标图像的特征矩阵,基于目标图像的特征矩阵识别目标图像中人体关键点的二维坐标,并基于目标图像的特征矩阵和目标图像中人体关键点的二维坐标,识别目标图像中人体关键点的三维坐标;获取神经网络模型所识别到的三维坐标,作为目标图像的人体关键点识别结果;神经网络模型为基于样本图像以及样本图像中人体关键点的真值三维坐标,所训练得到的模型。通过本方案可以实现提高人体关键点的三维坐标的识别精准度的目的。,下面是一种人体关键点识别方法、装置及电子设备专利的具体信息内容。

1.一种人体关键点识别方法,其特征在于,包括:
获取待识别人体关键点的目标图像;
将所述目标图像输入至预先训练完成的神经网络模型,以使所述神经网络模型提取所述目标图像的特征矩阵,基于所述目标图像的特征矩阵识别所述目标图像中人体关键点的二维坐标,并基于所述目标图像的特征矩阵和所述目标图像中人体关键点的二维坐标,识别所述目标图像中人体关键点的三维坐标;
获取所述神经网络模型所识别到的三维坐标,作为所述目标图像的人体关键点识别结果;
其中,所述神经网络模型为基于样本图像以及所述样本图像中人体关键点的真值三维坐标,所训练得到的模型;
其中,所述神经网络模型包括:特征提取网络、第一识别网络和第二识别网络;所述特征提取网络用于提取所述样本图像的特征矩阵,所述第一识别网络用于基于所述样本图像的特征矩阵,识别所述样本图像中人体关键点的二维坐标,所述第二识别网络用于基于所述样本图像的特征矩阵,以及所述样本图像中人体关键点的二维坐标,识别所述样本图像中人体关键点的三维坐标。
2.根据权利要求1所述的方法,其特征在于,所述神经网络模型的训练过程包括:
从样本图像库中,获取多个第一样本图像和多个第二样本图像;其中,所述第一样本图像为标注有人体关键点的真值二维坐标的样本图像,所述第二样本图像为标注有人体关键点的真值三维坐标的样本图像;
针对所述神经网络模型中的目标子网络,基于所述多个第一样本图像和每个第一样本图像中人体关键点的真值二维坐标,对所述目标子网络进行训练,得到所述目标子网络的网络参数;其中,所述目标子网络包括所述特征提取网络和第一识别网络;
在完成对所述目标子网络的训练之后,在训练得到的所述目标子网络的网络参数的基础上,基于所述多个第二样本图像和每个第二样本图像中人体关键点的真值三维坐标,对所述神经网络模型进行训练,得到用于识别人体关键点的三维坐标的神经网络模型。
3.根据权利要求2所述的方法,其特征在于,针对所述神经网络模型中的目标子网络,基于所述多个第一样本图像和每个第一样本图像中人体关键点的真值二维坐标,对所述目标子网络进行训练,得到所述目标子网络的网络参数,包括:
针对所述神经网络模型中的目标子网络,将每个第一样本图像输入至所述目标子网络,得到每个第一样本图像中人体关键点的预测二维坐标;
基于每个第一样本图像中人体关键点的真值二维坐标和预测二维坐标的差异,计算第一类损失值;
基于所述第一类损失值,判断所述目标子网络是否收敛,如果判断结果为是,结束训练,得到训练完成的所述目标子网络的网络参数;否则,调整所述目标子网络的网络参数,继续训练所述目标子网络。
4.根据权利要求2所述的方法,其特征在于,所述基于所述多个第二样本图像和每个第二样本图像中人体关键点的真值三维坐标,对所述神经网络模型进行训练,包括:
将每个第二样本图像输入至所述神经网络模型,得到每个第二样本图像中人体关键点的预测三维坐标;
基于每个第二样本图像中人体关键点的真值三维坐标和预测三维坐标的差异,计算第二类损失值;
基于所述第二类损失值,判断所述神经网络模型是否收敛,如果判断结果为是,结束训练,得到训练完成的所述神经网络模型;否则,调整所述神经网络模型中所述第二识别网络的网络参数,继续训练所述神经网络模型。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述第二识别网络包括:
顺次连接的浅层网络组和第三浅网络,所述浅层网络组包括作为并列分支的第一浅层网络和第二浅层网络;
所述第一浅层网络用于对所述特征提取网络所提取的特征矩阵进行编码,得到第一编码信息;
所述第二浅层网络用于对所述第一识别网络输出的人体关键点的二维坐标进行编码,第二编码信息;
所述第三浅层网络用于对所述第一编码信息和第二编码信息进行信息融合,并基于融合信息,生成所述样本图像中人体关键点的三维坐标。
6.一种人体关键点识别装置,其特征在于,包括:
图像获取模,用于获取待识别人体关键点的目标图像;
坐标识别模块,用于将所述目标图像输入至预先训练完成的神经网络模型,以使所述神经网络模型提取所述目标图像的特征矩阵,基于所述目标图像的特征矩阵识别所述目标图像中人体关键点的二维坐标,并基于所述目标图像的特征矩阵和所述目标图像中人体关键点的二维坐标,识别所述目标图像中人体关键点的三维坐标;
结果确定模块,用于获取所述神经网络模型所识别到的三维坐标,作为所述目标图像的人体关键点识别结果;
其中,所述神经网络模型为基于样本图像以及所述样本图像中人体关键点的真值三维坐标,所训练得到的模型;
其中,所述神经网络模型包括:特征提取网络、第一识别网络和第二识别网络;所述特征提取网络用于提取所述样本图像的特征矩阵,所述第一识别网络用于基于所述样本图像的特征矩阵,识别所述样本图像中人体关键点的二维坐标,所述第二识别网络用于基于所述样本图像的特征矩阵,以及所述样本图像中人体关键点的二维坐标,识别所述样本图像中人体关键点的三维坐标。
7.根据权利要求6所述的装置,其特征在于,所述神经网络模型通过模型训练模块训练得到,所述模型训练模块包括:
图像获取子模块,用于从样本图像库中,获取多个第一样本图像和多个第二样本图像;
其中,所述第一样本图像为标注有人体关键点的真值二维坐标的样本图像,所述第二样本图像为标注有人体关键点的真值三维坐标的样本图像;
第一训练子模块,用于针对所述神经网络模型中的目标子网络,基于所述多个第一样本图像和每个第一样本图像中人体关键点的真值二维坐标,对所述目标子网络进行训练,得到所述目标子网络的网络参数;其中,所述目标子网络包括所述特征提取网络和第一识别网络;
第二训练子模块,用于在完成对所述目标子网络的训练之后,在训练得到的所述目标子网络的网络参数的基础上,基于所述多个第二样本图像和每个第二样本图像中人体关键点的真值三维坐标,对所述神经网络模型进行训练,得到用于识别人体关键点的三维坐标的神经网络模型。
8.根据权利要求7所述的装置,其特征在于,所述第一训练子模块具体用于:
针对所述神经网络模型中的目标子网络,将每个第一样本图像输入至所述目标子网络,得到每个第一样本图像中人体关键点的预测二维坐标;
基于每个第一样本图像中人体关键点的真值二维坐标和预测二维坐标的差异,计算第一类损失值;
基于所述第一类损失值,判断所述目标子网络是否收敛,如果判断结果为是,结束训练,得到训练完成的所述目标子网络的网络参数;否则,调整所述目标子网络的网络参数,继续训练所述目标子网络。
9.根据权利要求7所述的装置,其特征在于,所述第二训练子模块具体用于:
在完成对所述目标子网络的训练之后,在训练得到的所述目标子网络的网络参数的基础上,将每个第二样本图像输入至所述神经网络模型,得到每个第二样本图像中人体关键点的预测三维坐标;
基于每个第二样本图像中人体关键点的真值三维坐标和预测三维坐标的差异,计算第二类损失值;
基于所述第二类损失值,判断所述神经网络模型是否收敛,如果判断结果为是,结束训练,得到训练完成的所述神经网络模型;否则,调整所述神经网络模型中所述第二识别网络的网络参数,继续训练所述神经网络模型。
10.根据权利要求6-9任一项所述的装置,其特征在于,所述第二识别网络包括:
顺次连接的浅层网络组和第三浅网络,所述浅层网络组包括作为并列分支的第一浅层网络和第二浅层网络;
所述第一浅层网络用于对所述特征提取网络所提取的特征矩阵进行编码,得到第一编码信息;
所述第二浅层网络用于对所述第一识别网络输出的人体关键点的二维坐标进行编码,第二编码信息;
所述第三浅层网络用于对所述第一编码信息和第二编码信息进行信息融合,并基于融合信息,生成所述样本图像中人体关键点的三维坐标。
11.一种电子设备,其特征在于,包括处理器、通信接口存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。

说明书全文

一种人体关键点识别方法、装置及电子设备

技术领域

[0001] 本发明涉及图像处理技术领域,特别是涉及一种人体关键点识别方法、装置及电子设备。

背景技术

[0002] 人体关键点识别是动作识别、异常行为检测、安防等的实现基础,其主要用于从给定的图像中定位人体的身体关键部位,例如头部、颈部、肩部、手部等部位。并且,为了反映人体在三维空间的运动状态,对于人体关键点的三维坐标的识别至关重要。
[0003] 现有技术中,在识别图像中人体关键点的三维坐标时,先利用预先训练的神经网络模型识别到人体关键点的二维坐标,然后,按照预定的转换公式将二维坐标转换为三维坐标,从而得到人体关键点的三维坐标。
[0004] 发明人在实现本发明的过程中发现,现有技术至少存在如下问题:
[0005] 现有技术将人体关键点的二维坐标转换为三维坐标时,仅仅利用二维坐标这种单一信息,导致人体关键点的三维坐标的识别精准度不高。

发明内容

[0006] 本发明实施例的目的在于提供一种人体关键点识别方法、装置及电子设备,以实现提高人体关键点的三维坐标的识别精准度的目的。具体技术方案如下:
[0007] 在本发明实施例的一方面,提供了一种人体关键点识别方法,包括:
[0008] 获取待识别人体关键点的目标图像;
[0009] 将所述目标图像输入至预先训练完成的神经网络模型,以使所述神经网络模型提取所述目标图像的特征矩阵,基于所述目标图像的特征矩阵识别所述目标图像中人体关键点的二维坐标,并基于所述目标图像的特征矩阵和所述目标图像中人体关键点的二维坐标,识别所述目标图像中人体关键点的三维坐标;
[0010] 获取所述神经网络模型所识别到的三维坐标,作为所述目标图像的人体关键点识别结果;其中,所述神经网络模型为基于样本图像以及所述样本图像中人体关键点的真值三维坐标,所训练得到的模型;
[0011] 其中,所述神经网络模型包括:特征提取网络、第一识别网络和第二识别网络;所述特征提取网络用于提取所述样本图像的特征矩阵,所述第一识别网络用于基于所述样本图像的特征矩阵,识别所述样本图像中人体关键点的二维坐标,所述第二识别网络用于基于所述样本图像的特征矩阵,以及所述样本图像中人体关键点的二维坐标,识别所述样本图像中人体关键点的三维坐标。
[0012] 可选地,所述神经网络模型的训练过程包括:
[0013] 从样本图像库中,获取多个第一样本图像和多个第二样本图像;其中,所述第一样本图像为标注有人体关键点的真值二维坐标的样本图像,所述第二样本图像为标注有人体关键点的真值三维坐标的样本图像;
[0014] 针对所述神经网络模型中的目标子网络,基于所述多个第一样本图像和每个第一样本图像中人体关键点的真值二维坐标,对所述目标子网络进行训练,得到所述目标子网络的网络参数;其中,所述目标子网络包括所述特征提取网络和第一识别网络;
[0015] 在完成对所述目标子网络的训练之后,在训练得到的所述目标子网络的网络参数的基础上,基于所述多个第二样本图像和每个第二样本图像中人体关键点的真值三维坐标,对所述神经网络模型进行训练,得到用于识别人体关键点的三维坐标的神经网络模型。
[0016] 可选地,针对所述神经网络模型中的目标子网络,基于所述多个第一样本图像和每个第一样本图像中人体关键点的真值二维坐标,对所述目标子网络进行训练,得到所述目标子网络的网络参数,包括:
[0017] 针对所述神经网络模型中的目标子网络,将每个第一样本图像输入至所述目标子网络,得到每个第一样本图像中人体关键点的预测二维坐标;
[0018] 基于每个第一样本图像中人体关键点的真值二维坐标和预测二维坐标的差异,计算第一类损失值;
[0019] 基于所述第一类损失值,判断所述目标子网络是否收敛,如果判断结果为是,结束训练,得到训练完成的所述目标子网络的网络参数;否则,调整所述目标子网络的网络参数,继续训练所述目标子网络。
[0020] 可选地,所述基于所述多个第二样本图像和每个第二样本图像中人体关键点的真值三维坐标,对所述神经网络模型进行训练,包括:
[0021] 将每个第二样本图像输入至所述神经网络模型,得到每个第二样本图像中人体关键点的预测三维坐标;
[0022] 基于每个第二样本图像中人体关键点的真值三维坐标和预测三维坐标的差异,计算第二类损失值;
[0023] 基于所述第二类损失值,判断所述神经网络模型是否收敛,如果判断结果为是,结束训练,得到训练完成的所述神经网络模型;否则,调整所述神经网络模型中所述第二识别网络的网络参数,继续训练所述神经网络模型。
[0024] 可选地,所述第二识别网络包括:
[0025] 顺次连接的浅层网络组和第三浅网络,所述浅层网络组包括作为并列分支的第一浅层网络和第二浅层网络;
[0026] 所述第一浅层网络用于对所述特征提取网络所提取的特征矩阵进行编码,得到第一编码信息;
[0027] 所述第二浅层网络用于对所述第一识别网络输出的人体关键点的二维坐标进行编码,第二编码信息;
[0028] 所述第三浅层网络用于对所述第一编码信息和第二编码信息进行信息融合,并基于融合信息,生成所述样本图像中人体关键点的三维坐标。
[0029] 在本发明实施例的又一方面,还提供了一种人体关键点识别装置,包括:
[0030] 图像获取模,用于获取待识别人体关键点的目标图像;
[0031] 坐标识别模块,用于将所述目标图像输入至预先训练完成的神经网络模型,以使所述神经网络模型提取所述目标图像的特征矩阵,基于所述目标图像的特征矩阵识别所述目标图像中人体关键点的二维坐标,并基于所述目标图像的特征矩阵和所述目标图像中人体关键点的二维坐标,识别所述目标图像中人体关键点的三维坐标;
[0032] 结果确定模块,用于获取所述神经网络模型所识别到的三维坐标,作为所述目标图像的人体关键点识别结果;
[0033] 其中,所述神经网络模型为基于样本图像以及所述样本图像中人体关键点的真值三维坐标,所训练得到的模型;
[0034] 其中,所述神经网络模型包括:特征提取网络、第一识别网络和第二识别网络;所述特征提取网络用于提取所述样本图像的特征矩阵,所述第一识别网络用于基于所述样本图像的特征矩阵,识别所述样本图像中人体关键点的二维坐标,所述第二识别网络用于基于所述样本图像的特征矩阵,以及所述样本图像中人体关键点的二维坐标,识别所述样本图像中人体关键点的三维坐标。
[0035] 可选地,所述神经网络模型通过模型训练模块训练得到,所述模型训练模块包括:
[0036] 图像获取子模块,用于从样本图像库中,获取多个第一样本图像和多个第二样本图像;其中,所述第一样本图像为标注有人体关键点的真值二维坐标的样本图像,所述第二样本图像为标注有人体关键点的真值三维坐标的样本图像;
[0037] 第一训练子模块,用于针对所述神经网络模型中的目标子网络,基于所述多个第一样本图像和每个第一样本图像中人体关键点的真值二维坐标,对所述目标子网络进行训练,得到所述目标子网络的网络参数;其中,所述目标子网络包括所述特征提取网络和第一识别网络;
[0038] 第二训练子模块,用于在完成对所述目标子网络的训练之后,在训练得到的所述目标子网络的网络参数的基础上,基于所述多个第二样本图像和每个第二样本图像中人体关键点的真值三维坐标,对所述神经网络模型进行训练,得到用于识别人体关键点的三维坐标的神经网络模型。
[0039] 可选地,所述第一训练子模块具体用于:
[0040] 针对所述神经网络模型中的目标子网络,将每个第一样本图像输入至所述目标子网络,得到每个第一样本图像中人体关键点的预测二维坐标;
[0041] 基于每个第一样本图像中人体关键点的真值二维坐标和预测二维坐标的差异,计算第一类损失值;
[0042] 基于所述第一类损失值,判断所述目标子网络是否收敛,如果判断结果为是,结束训练,得到训练完成的所述目标子网络的网络参数;否则,调整所述目标子网络的网络参数,继续训练所述目标子网络。
[0043] 可选地,所述第二训练子模块具体用于:
[0044] 在完成对所述目标子网络的训练之后,在训练得到的所述目标子网络的网络参数的基础上,将每个第二样本图像输入至所述神经网络模型,得到每个第二样本图像中人体关键点的预测三维坐标;
[0045] 基于每个第二样本图像中人体关键点的真值三维坐标和预测三维坐标的差异,计算第二类损失值;
[0046] 基于所述第二类损失值,判断所述神经网络模型是否收敛,如果判断结果为是,结束训练,得到训练完成的所述神经网络模型;否则,调整所述神经网络模型中所述第二识别网络的网络参数,继续训练所述神经网络模型。
[0047] 可选地,所述第二识别网络包括:
[0048] 顺次连接的浅层网络组和第三浅网络,所述浅层网络组包括作为并列分支的第一浅层网络和第二浅层网络;
[0049] 所述第一浅层网络用于对所述特征提取网络所提取的特征矩阵进行编码,得到第一编码信息;
[0050] 所述第二浅层网络用于对所述第一识别网络输出的人体关键点的二维坐标进行编码,第二编码信息;
[0051] 所述第三浅层网络用于对所述第一编码信息和第二编码信息进行信息融合,并基于融合信息,生成所述样本图像中人体关键点的三维坐标。
[0052] 在本发明实施例的又一方面,还提供了一种电子设备,包括处理器、通信接口存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
[0053] 存储器,用于存放计算机程序
[0054] 处理器,用于执行存储器上所存放的程序时,实现本发明实施例所提供的人体关键点识别方法的步骤。
[0055] 在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的人体关键点识别方法。
[0056] 在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的人体关键点识别方法。
[0057] 本发明实施例中,在识别目标图像中人体关键点的三维坐标时,将目标图像输入至预先训练的神经网络模型,以使神经网络模型提取目标图像的特征矩阵,基于目标图像的特征矩阵识别目标图像中人体关键点的二维坐标,并基于目标图像的特征矩阵和目标图像中人体关键点的二维坐标,识别目标图像中人体关键点的三维坐标,从而得到目标图像的人体关键点识别结果;其中,神经网络模型中的第一识别网络基于特征提取网络所提取的特征矩阵生成人体关键点的二维坐标,而第二识别网络用于基于特征提取网络所提取的特征矩阵,以及第一识别网络所识别的人体关键点的二维坐标,生成人体关键点的三维坐标。可见,本方案识别人体关键点所利用的神经网络模型,在识别三维坐标时结合人体关键点的二维坐标和生成二维坐标所依据的包含上下文信息的特征矩阵,使得三维坐标识别所依赖的信息较为丰富。因此,相对于相关技术仅仅考虑二维坐标,通过本方案可以实现提高人体关键点的三维坐标的精准度的目的。
[0058] 另外,本方案在利用神经网络模型识别三维坐标时,将识别任务拆分为先识别二维坐标再识别三维坐标两个子任务,即子任务一:基于目标图像的特征矩阵识别目标图像中人体关键点的二维坐标,以及,子任务二:基于目标图像的特征矩阵和目标图像中人体关键点的二维坐标识别目标图像中人体关键点的三维坐标,这样使得相对于从图像直接到三维坐标的端到端的识别,模型复杂度大大降低。附图说明
[0059] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
[0060] 图1为本发明实施例所提供的一种人体关键点识别方法的流程图
[0061] 图2(a)为本实施例所提供的神经网络模型的一种结构示意图;
[0062] 图2(b)为本实施例所提供的神经网络模型的另一种结构示意图;
[0063] 图3为本发明实施例所提供的神经网络模型的训练过程的流程图;
[0064] 图4为本发明实施例所提供的神经网络模型的训练过程的又一流程图;
[0065] 图5为本发明实施例所提供的一种人体关键点识别装置的结构示意图;
[0066] 图6为本发明实施例所提供的一种电子设备的结构示意图。

具体实施方式

[0067] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
[0068] 为了实现提高人体关键点的三维坐标的识别精准度的目的,本发明实施例提供了一种人体关键点识别方法、装置及电子设备。
[0069] 下面首先对本发明实施例所提供的一种人体关键点识别方法进行介绍。
[0070] 其中,本发明实施例所提供的一种人体关键点识别方法的执行主体可以为一种人体关键点识别装置。该人体关键点识别装置可以应用于电子设备中。在具体应用中,该电子设备可以为终端设备或者服务器,这都是合理的。
[0071] 另外,本发明实施例所涉及的人体关键点用于定位人体的身体关键部位,例如:头部、颈部、肩部、手部、腿部和/或脚部等部位;并且,针对任一身体关键部位,在定位该身体关键部位时,所需要的人体关键点可以为一个或多个。在不同的场景中,由于需要定位的身体关键部位不同,因此,人体关键点的具体位置以及数量可以不同,本发明实施例对此不做限定。
[0072] 并且,针对任一人体关键点而言,其存在二维坐标,即(x,y),同时也存在三维坐标,即(x,y,z)。本发明实施例所提供的人体关键点识别方法用于识别人体关键点的三维坐标。
[0073] 如图1所示,本发明实施例提供了一种人体关键点识别方法,可以包括如下步骤S101-S103:
[0074] S101,获取待识别人体关键点的目标图像;
[0075] 其中,待识别人体关键点的目标图像为包含人体区域的图像。并且,该目标图像的尺寸可以为预先训练的神经网络模型的输入图像的尺寸,这样使得目标图像在输入神经网络模型时,无需尺寸调整,从而后续通过位移图和热度图结合所得到的人体关键点的坐标,为人体关键点在该目标图像中的坐标。
[0076] 其中,获取待识别人体关键点的目标图像的方式存在多种。示例性的,获取待识别人体关键点的目标图像的方式可以包括:
[0077] 获取原始图像;其中,该原始图像可以为视频的视频,或者,设备采集的图像,或者,通过网络下载的图像,等等;
[0078] 对原始图像进行人体区域检测;
[0079] 从该原始图像中提取所检测到的人体区域,并将所提取到的人体区域进行尺寸调整处理,得到待识别人体关键点的目标图像,该尺寸调整处理用于将尺寸调整为该神经网络模型的输入图像的尺寸。
[0080] 其中,对该原始图像进行人体区域检测所采用的具体实现方式可以为任一种能够从图像中检测人体区域的方式。例如:利用预先训练的人体区域检测模型,从该原始图像中检测人体区域,当然并不局限于此。
[0081] 并且,由于从原始图像中所检测到的人体区域的大小不确定,而神经网络模型的输入图像为固定的尺寸,因此,为了作为神经网络模型的有效输入内容,在从该原始图像中提取所检测到的人体区域后,可以将所提取到的人体区域进行尺寸调整处理,得到待识别人体关键点的目标图像。所谓的尺寸调整处理所采用的算法可以为插值算法,该插值算法可以双线性插值或最邻近插值算法,当然并不局限于此。
[0082] S102,将该目标图像输入至预先训练完成的神经网络模型,以使神经网络模型提取该目标图像的特征矩阵,基于该目标图像的特征矩阵识别该目标图像中人体关键点的二维坐标,并基于该目标图像的特征矩阵和该目标图像中人体关键点的二维坐标,识别该目标图像中人体关键点的三维坐标;
[0083] S103,获取神经网络模型所识别到的三维坐标,作为目标图像的人体关键点识别结果。
[0084] 其中,该神经网络模型为基于样本图像以及该样本图像中人体关键点的真值三维坐标,所训练得到的模型;并且,该神经网络模型包括:特征提取网络、第一识别网络和第二识别网络;该特征提取网络用于提取该样本图像的特征矩阵,该第一识别网络用于基于该样本图像的特征矩阵,识别该样本图像中人体关键点的二维坐标,该第二识别网络用于基于该样本图像的特征矩阵,以及该样本图像中人体关键点的二维坐标,识别该样本图像中人体关键点的三维坐标。
[0085] 基于神经网络模型的结构可知,将该目标图像输入至预先训练完成的神经网络模型之后,该神经网络模型提取该目标图像的特征矩阵,基于该目标图像的特征矩阵识别该目标图像中人体关键点的二维坐标,并基于该目标图像的特征矩阵和该目标图像中人体关键点的二维坐标,识别该目标图像中人体关键点的三维坐标;从而,可以获取神经网络模型所识别到的三维坐标,作为目标图像的人体关键点识别结果。可以理解的是,利用本方案的神经网络模型识别三维坐标时,二维坐标也可以同时输出,也就是,将该目标图像输入至预先训练完成的神经网络模型,可以同时获得该目标图像中人体关键点的三维坐标和二维坐标,这样可以达到三维坐标和二维坐标的联合识别的效果。
[0086] 并且,第二识别网络基于该样本图像的特征矩阵,以及该样本图像中人体关键点的二维坐标,识别该样本图像中人体关键点的三维坐标,具体可以为:对该样本图像的特征矩阵进行编码,得到第一编码信息,对该样本图像中人体关键点的二维坐标进行编码,得到第二编码信息,进而,对第一编码信息和第二编码信息进行信息融合,并基于融合信息,生成样本图像中人体关键点的三维坐标。所谓的第一编码信息为该特征矩阵的浅层表达,也就是说,该第一编码信息属于一种浅层特征;而第二编码信息为对人体关键点的二维坐标的浅层表达,也就是说,该第二编码信息属于一种浅层特征。
[0087] 其中,该神经网络模型用于对目标图像进行人体关键点的三维坐标的识别;并且,为了解决现有技术问题,本方案中识别三维坐标时不但基于二维坐标,而且还基于识别二维坐标所需的特征矩阵,使得三维坐标的识别所考虑的信息较为丰富。另外,本方案在利用神经网络模型识别三维坐标时,将识别任务拆分为先识别二维坐标再识别三维坐标两个子任务,这样使得相对于从图像直接到三维坐标的端到端的识别,模型复杂度大大降低。
[0088] 为了方便理解该神经网络模型的具体结构,可以参见图2(a)。如图2(a)所示,该特征提取网络同时与第一识别网络和第二识别网络相连接,而第一识别网络除了与特征提取网络相连接,还与第二识别网络相连接。
[0089] 其中,特征提取网络可以包括但不局限于如下网络:LeNet、AlexNet、VGG、GoogLeNet、ResNet、MobileNet等特征提取网络。另外,特征提取网络的输入内容可以为wf×hf×3,输出内容可以为 的特征矩阵,cf为特征矩阵的数量,α为预设的缩小系数,α越小网络精度越高,越小网络精度越高。
[0090] 其中,第一识别网络的网络结构存在多种,任何一种能够实现基于特征矩阵来生成人体关键点的二维坐标的网络结构,均可以应用于本发明实施例。示例性的,该第一识别网络可以通过多个卷积组输出每个人体关键点的热度图,并通过热度图推理出每个人体关键点的二维坐标;或者,该第一识别网络可以通过两个卷积组分别输出每个人体关键点的热度图和位移图,并利用每个人体关键点的热度图和位移图,计算每个人体关键点的二维坐标。需要说明的是,任一人体关键点的热度图为该人体关键点可能存在的位置的概率分布图;而任一人体关键点的位移图中的每个点用于表征该点所在位置相对于目标点所在位置的偏移距离,该目标点为该人体关键点在该位移图中的映射点。
[0091] 另外,在具体应用中,第二识别网络的网络结构存在多种。为了方案清楚及布局清晰,后续对第二识别网络的网络结构进行示例性介绍。并且,为了方案清楚,后续对神经网络的训练过程进行示例性说明。
[0092] 本发明实施例中,在识别目标图像中人体关键点的三维坐标时,将目标图像输入至预先训练的神经网络模型,以使神经网络模型提取目标图像的特征矩阵,基于目标图像的特征矩阵识别目标图像中人体关键点的二维坐标,并基于目标图像的特征矩阵和目标图像中人体关键点的二维坐标,识别目标图像中人体关键点的三维坐标,从而得到目标图像的人体关键点识别结果;其中,神经网络模型中的第一识别网络基于特征提取网络所提取的特征矩阵生成人体关键点的二维坐标,而第二识别网络用于基于特征提取网络所提取的特征矩阵,以及第一识别网络所识别的人体关键点的二维坐标,生成人体关键点的三维坐标。可见,本方案识别人体关键点所利用的神经网络模型,在识别三维坐标时结合人体关键点的二维坐标和生成二维坐标所依据的包含上下文信息的特征矩阵,使得三维坐标识别所依赖的信息较为丰富。因此,相对于相关技术仅仅考虑二维坐标,通过本方案可以实现提高人体关键点的三维坐标的精准度的目的。
[0093] 另外,本方案在利用神经网络模型识别三维坐标时,将识别任务拆分为先识别二维坐标再识别三维坐标两个子任务,即子任务一:基于目标图像的特征矩阵识别目标图像中人体关键点的二维坐标,以及,子任务二:基于目标图像的特征矩阵和目标图像中人体关键点的二维坐标识别目标图像中人体关键点的三维坐标,这样使得相对于从图像直接到三维坐标的端到端的识别,模型复杂度大大降低。
[0094] 为了方案清楚,下述对本发明实施例所提供的神经网络模型的训练过程进行举例介绍。
[0095] 可选地,在一种实现方式中,如图3所示,本发明实施例所提供的神经网络模型的训练过程,可以包括S301-S304:
[0096] S301,从样本图像库中,获取多个样本图像;其中,该样本图像标注有人体关键点的真值三维坐标;
[0097] 其中,样本图像的尺寸为神经网络模型的输入图像的尺寸。并且,样本图像可以为:对人体图进行尺寸调整后所得到的图像,该人体图为从一图像中所提取的人体图像区域。
[0098] 可以理解的是,针对样本图像中人体关键点的三维坐标的确定方式可以存在多种。示例性的,在一种方式中,在获得样本图像的人体关键点的二维坐标后,可以通过推理得到与二维坐标对应的三维坐标。
[0099] S302,将每个样本图像输入至该神经网络模型,得到每个样本图像中人体关键点的预测三维坐标;
[0100] 在将每一样本图像输入至训练中的该神经网络模型后,该神经网络模型针对每一样本图像进行关键点信息识别。具体的,该神经网络模型中的特征提取网络对所接收到的样本图像提取特征矩阵,并将样本图像的特征矩阵输入至第一识别网络和第二识别网络;进而,第一识别网络基于该样本图像的特征矩阵,生成样本图像中每个人体关键点的预测二维坐标,并将样本图像中每个人体关键点的二维坐标输入至第二识别网络中;而第二识别网络基于该样本图像的特征矩阵以及该样本图像中人体关键点的二维坐标,识别该样本图像中人体关键点的预测三维坐标。
[0101] S303,基于每个样本图像中人体关键点的真值三维坐标和预测三维坐标的差异,计算损失值;
[0102] 其中,基于每个样本图像中人体关键点的真值三维坐标和预测三维坐标的差异,计算损失值的实现方式存在多种。
[0103] 可选地,在一种实现方式中,基于每个样本图像中人体关键点的真值三维坐标和预测三维坐标的差异,计算损失值,可以包括:
[0104] 针对每一样本图像,计算该样本图像中每个人体关键点的预测三维坐标和真值三维坐标的欧式距离;
[0105] 对所计算得到的各个欧式距离求平均,得到损失值。
[0106] 可选地,在另一种实现方式中,基于每个样本图像中人体关键点的真值三维坐标和预测三维坐标的差异,计算损失值,可以包括:
[0107] 针对每一样本图像,计算该样本图像中每个人体关键点的预测三维坐标和真值三维坐标的欧式距离,对所计算得到的各个欧式距离进行加权求平均,得到该样本图像对应的平均值;
[0108] 对各个样本图像对应的平均值进行求平均,得到损失值。
[0109] 上述的所述基于每个样本图像中人体关键点的真值三维坐标和预测三维坐标的差异,计算损失值的具体实现方式仅仅作为示例,并不应该构成对本发明实施例的限定。
[0110] S304,基于该损失值,判断该神经网络模型是否收敛,如果判断结果为是,结束训练,得到训练完成的该神经网络模型;否则,调整该神经网络模型中的网络参数,继续训练该神经网络模型。
[0111] 其中,基于该综合损失值,判断该神经网络模型是否收敛具体可以为:判断该综合损失值是否小于预设阈值,如果小于,判定该神经网络模型收敛,否则,判定该神经网络模型未收敛。当判定该神经网络模型未收敛时,可以调整该神经网络模型的网络参数,继续训练该神经网络模型。所谓继续训练该神经网络模型,即返回所述将每个样本图像输入至该神经网络模型,得到每个样本图像中人体关键点的预测三维坐标的步骤。另外,在该神经网络模型未收敛时,可以调整的网络参数可以包括但不局限于:卷积核权重,以及全连接层权重;并且,调整网络参数时所利用的调整方式可以存在多种,例如:梯度调节方式,或者,反向传播方式,等等。
[0112] 在具体应用中,样本图像中人体关键点的二维坐标的获取难度,相对于三维坐标的获取难度较低,因此,会存在少量的样本图像标注有人体关键点的真值三维坐标的情况。那么,针对少量的样本图像标注有人体关键点的三维坐标的情况下,为了完成快速有效的训练,可以利用大量的标注有人体关键点的真值二维坐标的样本图像,先对特征提取网络和第一识别网络训练,然后,在利用少量的标注有人体关键点的真值三维坐标的样本图像,对剩余的第二识别网络进行训练。
[0113] 基于该种处理思路,可选地,在另一种实现方式中,如图4所示,本发明实施例所提供的神经网络模型的训练过程,可以包括S401-S403:
[0114] S401,从样本图像库中,获取多个第一样本图像和多个第二样本图像;
[0115] 其中,该第一样本图像为标注有人体关键点的真值二维坐标的样本图像,该第二样本图像为标注有人体关键点的真值三维坐标的样本图像。
[0116] 其中,样本图像库中样本图像的尺寸为神经网络模型的输入图像的尺寸。并且,样本图像可以为:对人体图进行尺寸调整后所得到的图像,该人体图为从一图像中所提取的人体图像区域。
[0117] 可以理解的是,第一样本图像中每个人体关键点的二维坐标可以通过人工标注方式来确定,即通过人工标注方式,在第一样本图像中标注出各个人体关键点,从而获得第一样本图像中各个人体关键点的二维坐标。当然,由于第一样本图像可以为:对人体图进行尺寸调整后所得到的图像,因此,在一种实现方式中,第一样本图像中每个人体关键点的二维坐标的确定方式可以包括:
[0118] 步骤一,确定图像库中参考图像的每个人体关键点的二维坐标:令P={P1,P2,P3,...,Pn}为参考图像的人体关键点的组合,其中,n为人体关键点的个数,Pi=(xi,yi)为第i个坐标;
[0119] 其中,图像库中参考图像可以为视频中的视频帧,也可以为预先采集或下载的图像。
[0120] 步骤二,确定参考图像中人体区域的区域信息:令区域信息为(xbbox,ybbox,wbbox,hbbox);
[0121] 步骤三,将参考图像中每个人体关键点映射到人体区域中,得到人体区域中每个人体关键点的坐标:令P’={P’1,P’2,P’3,...,P’n}为人体区域的每个人体关键点的组合,P’i=(x’i,y’i)为第i个坐标,x’i=xi-xbbox,y’i=yi-ybbox;
[0122] 步骤四,将人体区域中每个人体关键点映射到该人体区域对应的第一样本图像中,得到第一样本图像中每个人体关键点的二维坐标。
[0123] 其中,将人体区域中每个人体关键点的坐标映射到人体区域对应的第一样本图像的具体实现方式,可以采用:将两个尺寸的图像之间坐标点进行映射方式。举例而言:人体区域对应的第一样本图像的尺寸为m*n,人体区域的尺寸为(m/d1)*(n/d1),对于人体区域中的点k1(x1,y1),将k1点映射到人体区域对应的第一样本图像中,点k1在人体区域对应的第一样本图像中的映射点的坐标为(x1*d1,y1*d1)。
[0124] 可以理解的是,参考图像中每个人体关键点的二维坐标可以通过人工标定方式来得到。
[0125] 另外,针对第二样本图像中人体关键点的三维坐标的确定方式而言,可以先获得第二样本图像中人体关键点的二维坐标,然后基于二维坐标推理得到第二样本图像中人体关键点的二维坐标,当然并不局限于此。
[0126] S402,针对该神经网络模型中的目标子网络,基于该多个第一样本图像和每个第一样本图像中人体关键点的真值二维坐标,对该目标子网络进行训练,得到该目标子网络的网络参数;其中,该目标子网络包括所述特征提取网络和第一识别网络;
[0127] 示例性的,针对该神经网络模型中的目标子网络,基于多个第一样本图像和每个第一样本图像中人体关键点的真值二维坐标,对该目标子网络进行训练,得到该目标子网络的网络参数,可以包括:
[0128] 针对神经网络模型中的目标子网络,将每个第一样本图像输入至目标子网络,得到每个第一样本图像中人体关键点的预测二维坐标;
[0129] 基于每个第一样本图像中人体关键点的真值二维坐标和预测二维坐标的差异,计算第一类损失值;
[0130] 基于第一类损失值,判断目标子网络是否收敛,如果判断结果为是,结束训练,得到训练完成的目标子网络的网络参数;否则,调整目标子网络的网络参数,继续训练目标子网络。
[0131] 所谓的继续训练目标子网络为返回所述将每个第一样本图像输入至目标子网络,得到每个第一样本图像中人体关键点的预测二维坐标的步骤,继续执行训练过程。
[0132] 其中,关于基于每个第一样本图像中人体关键点的真值二维坐标和预测二维坐标的差异,计算第一类损失值的具体实现方式可以参见上述的基于每个样本图像中人体关键点的真值三维坐标和预测三维坐标的差异,计算损失值的具体实现方式,在此不做赘述。类似的,基于第一类损失值,判断目标子网络是否收敛的具体实现方式,可以参见上述的基于损失值判断神经神经网络是否收敛的具体实现方式,在此不做赘述。
[0133] S403,在完成对该目标子网络的训练之后,在训练得到的该目标子网络的网络参数的基础上,基于该多个第二样本图像和每个第二样本图像中人体关键点的真值三维坐标,对该神经网络模型进行训练,得到用于识别人体关键点的三维坐标的神经网络模型。
[0134] 示例性,所述基于多个第二样本图像和每个第二样本图像中人体关键点的真值三维坐标,对神经网络模型进行训练,可以包括:
[0135] 将每个第二样本图像输入至该神经网络模型,得到每个第二样本图像中人体关键点的预测三维坐标;
[0136] 基于每个第二样本图像中人体关键点的真值三维坐标和预测三维坐标的差异,计算第二类损失值;
[0137] 基于该第二类损失值,判断该神经网络模型是否收敛,如果判断结果为是,结束训练,得到训练完成的该神经网络模型;否则,调整该神经网络模型中该第二识别网络的网络参数,继续训练该神经网络模型。
[0138] 所谓的继续训练该神经网络模型为返回所述将每个第二样本图像输入至该神经网络模型,得到每个第二样本图像中人体关键点的预测三维坐标的步骤,继续执行训练过程。另外,在该神经网络模型未收敛时,可以调整的网络参数可以包括但不局限于:卷积核权重,以及全连接层权重;并且,调整网络参数时所利用的调整方式可以存在多种,例如:梯度调节方式,或者,反向传播方式,等等。
[0139] 其中,关于基于每个第二样本图像中人体关键点的真值三维坐标和预测三维坐标的差异,计算第二类损失值的具体实现方式可以参见上述的基于每个样本图像中人体关键点的真值三维坐标和预测三维坐标的差异,计算损失值的具体实现方式,在此不做赘述。类似的,基于该第二类损失值,判断该神经网络模型是否收敛的具体实现方式,可以参见上述的基于损失值判断神经神经网络是否收敛的具体实现方式,在此不做赘述。
[0140] 上述的关于神经网络模型的两种训练过程仅仅作为示例,并不应该构成对本发明实施例的限定。
[0141] 另外,为了方便理解方案,下面对第二识别网络的网络结构进行示例性介绍。
[0142] 如图2(b)所示,该第二识别网络可以包括:
[0143] 顺次连接的浅层网络组和第三浅网络,所述浅层网络组包括作为并列分支的第一浅层网络和第二浅层网络;
[0144] 该第一浅层网络用于对该特征提取网络所提取的特征矩阵进行编码,得到第一编码信息;
[0145] 该第二浅层网络用于对该第一识别网络输出的人体关键点的二维坐标进行编码,第二编码信息;
[0146] 该第三浅层网络用于对该第一编码信息和第二编码信息进行信息融合,并基于融合信息,生成该样本图像中人体关键点的三维坐标。
[0147] 其中,第一浅层网络所输出的第一编码信息和第二编码信息可以为长度相同的特征内容。
[0148] 针对第一浅层网络而言,示例性的,该第一浅层网络可以包括顺次相接的多个第一全连接层。
[0149] 为了方便理解,以第一浅层网络包括三个第一全连接层为例,对第一浅层网络进行介绍:
[0150] 第一浅层网络包括全连接层1、全连接层2和全连接层3;
[0151] 其中,对于全连接层1而言,输入为wf×hf×cf的图像特征,即特征矩阵,输出为f×cl1的特征f1,f为特征的长度,cl1为特征的通道数;
[0152] 对于全连接层2而言,输入为f×cl1的特征f1,输出为f×cl1的特征f2;
[0153] 对于全连接层3而言,输入为f×cl1的f2,输出为f×cl1的特征f3,该特征f3为第一编码信息。
[0154] 可以理解的是,该示例中,每一全连接层的输出内容的长度和通道数量,与输入内容的长度和通道数量相同,但是,在具体应用中,每一全连接层的输出内容的长度和通道数量,与输入内容的长度和通道数量可以不同。
[0155] 可选地,为了利用更多的信息内容,从而提升模型识别的精准度,第一浅层网络还可以包括:第一拼接层;
[0156] 其中,该第一拼接层用于基于第一目标层的输出内容与第二目标层的输出内容,生成该第一编码信息,该第一目标层为多个第一全连接层中最后一个第一全连接层,该第二目标层为多个第一全连接层中除该第一目标层以外的一个第一全连接层。
[0157] 为了方便理解,以第一浅层网络包括三个全连接层和一个第一拼接层为例,对第一浅层网络进行介绍:
[0158] 第一浅层网络包括全连接层1、全连接层2、全连接层3和拼接层1;
[0159] 其中,对于全连接层1而言,输入为wf×hf×cf的图像特征,即特征矩阵,输出为f×cl1的特征f1,f为特征的长度,cl1为特征的通道数;
[0160] 对于全连接层2而言,输入为f×cl1的特征f1,输出为f×cl1的特征f2;
[0161] 对于全连接层3而言,输入为f×cl1的特征f2,输出为f×cl1的特征f3;
[0162] 对于拼接层1而言,将f1与f3拼接,输出f×2cl1的特征f4,该特征f4为第一编码信息。
[0163] 可以理解的是,该示例中,每一全连接层的输出内容的长度和通道数量,与输入内容的长度和通道数量相同,但是,在具体应用中,每一全连接层的输出内容的长度和通道数量,与输入内容的长度和通道数量可以不同。
[0164] 针对第二浅层网络而言,示例性的,该第二浅层网络可以包括顺次相接的多个第二全连接层。
[0165] 为了方便理解,以第二浅层网络包括三个第二全连接层为例,对第二浅层网络进行介绍:
[0166] 第二浅层网络包括全连接层4、全连接层5和全连接层6;
[0167] 其中,对于全连接层4而言,输入为k×2的二维坐标信息,输出为f×cl2的特征f5,k为人体关键点的数量,f为特征的长度,cl2为特征的通道数;
[0168] 对于全连接层5而言,输入为f×cl2的特征f5,输出为f×cl2的特征f6;
[0169] 对于全连接层6而言,输入为f×cl2的特征f6,输出为f×cl2的特征f7,该特征f7为第二编码信息。
[0170] 可以理解的是,该示例中,每一全连接层的输出内容的长度和通道数量,与输入内容的长度和通道数量相同,但是,在具体应用中,每一全连接层的输出内容的长度和通道数量,与输入内容的长度和通道数量可以不同。
[0171] 可选地,为了利用更多的信息内容,从而提升模型识别的精准度,所述第二浅层网络还可以包括:第二拼接层;
[0172] 其中,该第二拼接层用于基于第三目标层的输出内容和第四目标层的输出内容,生成该第二编码信息,该第三目标层为多个第二全连接层中最后一个第二全连接层,该第四目标层为多个第二全连接层中除该第三目标层以外的一个第二全连接层。
[0173] 为了方便理解,以第二浅层网络包括三个第二全连接层和一个第二拼接层为例,对第二浅层网络进行介绍:
[0174] 第二浅层网络包括全连接层4、全连接层5、全连接层6和拼接层2;
[0175] 其中,对于全连接层4而言,输入为k×2的二维坐标信息,输出为f×cl2的特征f5,k为人体关键点的数量,f为特征的长度,cl2为特征的通道数;
[0176] 对于全连接层5而言,输入为f×cl2的特征f5,输出为f×cl2的特征f6;
[0177] 对于全连接层6而言,输入为f×cl2的特征f6,输出为f×cl2的特征f7;
[0178] 对于拼接层2而言,将f5与f7拼接,输出f×2cl2的特征f8,该特征f8为第二编码信息。
[0179] 可以理解的是,该示例中,每一全连接层的输出内容的长度和通道数量,与输入内容的长度和通道数量相同,但是,在具体应用中,每一全连接层的输出内容的长度和通道数量,与输入内容的长度和通道数量可以不同。
[0180] 针对第三浅层网络而言,示例性的,该第三浅层网络可以包括:第三拼接层和顺次相接的多个第三全连接层;
[0181] 所述第三拼接层的输入内容为所述第一编码信息和所述第二编码信息;
[0182] 多个第三全连接层中的第一个第三全连接层的输入内容为所述第三拼接层的输出内容。
[0183] 为了方便理解,以第三浅层网络包括三个第三全连接层和一个第三拼接层为例,对第三浅层网络进行介绍:
[0184] 该第三浅层网络包括:拼接层3、全连接层7、全连接层8和全连接层9;并且,第一浅层网络的输出为f×2cl1,第二浅层网络的输出为f×2cl2;
[0185] 其中,对于拼接层3而言,将f×2cl1与f×2cl2拼接,输出f×2(cl1+cl2)的特征f9;
[0186] 对于全连接层7而言,输入为f×2(cl1+cl2)的特征f9,输出为f×2(cl1+cl2)的特征f10;
[0187] 对于全连接层8而言,输入为f×2(cl1+cl2)的特征f10,输出为f×2(cl1+cl2)的特征f11;
[0188] 对于全连接层9而言,输入为f×2(cl1+cl2)的特征f11,输出为k×3的三维坐标信息,k为人体关键点的数量。
[0189] 可以理解的是,该示例中,对于全连接层8和全连接层10而言,输出内容的长度和通道数量,与输入内容的长度和通道数量相同,但是,在具体应用中,输出内容的长度和通道数量,与输入内容的长度和通道数量可以不同。
[0190] 可选地,为了利用更多的信息内容,从而提升模型识别的精准度,该第三浅层网络还可以包括:
[0191] 第四拼接层和第四全连接层;
[0192] 其中,该第四拼接层用于拼接该第三拼接层的输出内容以及第五目标层的输出内容,该第五目标层为多个第三全连接层中的最后一个第三全连接层;
[0193] 该第四全连接层用于基于该第四拼接层的输入内容,生成该样本图像中人体关键点的三维坐标。
[0194] 为了方便理解,以第三浅层网络包括三个第三全连接层和一个第三拼接层为例,对第三浅层网络进行介绍:
[0195] 该第三浅层网络包括:拼接层3、全连接层7、全连接层、全连接层9、拼接层4和全连接层10;并且,第一浅层网络的输出为f×2cl1,第二浅层网络的输出为f×2cl2;
[0196] 其中,对于拼接层3而言,将f×2cl1与f×2cl2拼接,输出f×2(cl1+cl2)的特征f9;
[0197] 对于全连接层7而言,输入为f×2(cl1+cl2)的特征f9,输出为f×2(cl1+cl2)的特征f10;
[0198] 对于全连接层8而言,输入为f×2(cl1+cl2)的特征f10,输出为f×2(cl1+cl2)的特征f11;
[0199] 对于全连接层9而言,输入为f×2(cl1+cl2)的特征f11,输出为f×2(cl1+cl2)的特征f12;
[0200] 对于拼接层4而言,将特征f9和特征f12进行拼接,输出特征f×4(cl1+cl2)的特征f13;
[0201] 对于全连接层10而言,输入为f×4(cl1+cl2)的特征f13,输出为k×3的三维坐标信息,k为人体关键点的数量。
[0202] 可以理解的是,该示例中,对于全连接层8、全连接层9和全连接层10而言,输出内容的长度和通道数量,与输入内容的长度和通道数量相同,但是,在具体应用中,输出内容的长度和通道数量,与输入内容的长度和通道数量可以不同。
[0203] 需要强调的是,上述所提及的第一全连接层中的“第一”、第二全连接层中的“第二”和第三全连接层中的“第三”、第四全连接层中的“第四”,仅仅用于从命名区分下不同识别网络中的全连接层,或者,同一网络中的不同全连接层,并不具有任何限定性意义。类似的,上述所提及的第一拼接层中的“第一”、第二拼接层中的“第二”、第三拼接层中的“第三”和第四拼接层中的“第四”仅仅用于从命名上区分不同识别网络中的拼接层,或同一网络中的不同拼接层,并不具有任何限定性意义。
[0204] 另外,可以理解的是,全连接层在整个卷积神经网络中起到“分类器”的作用;如果卷积层、池化层和激活函数层等操作是将原始数据映射到隐层特征空间的话,全连接层则起到将学到的“分布式特征表示”映射到样本标记空间的作用。而拼接层用于实现数据的拼接。
[0205] 相应于上述方法实施例,本发明实施例还提供了一种人体关键点识别装置,如图5所示,可以包括:
[0206] 图像获取模块510,用于获取待识别人体关键点的目标图像;
[0207] 坐标识别模块520,用于将所述目标图像输入至预先训练完成的神经网络模型,以使所述神经网络模型提取所述目标图像的特征矩阵,基于所述目标图像的特征矩阵识别所述目标图像中人体关键点的二维坐标,并基于所述目标图像的特征矩阵和所述目标图像中人体关键点的二维坐标,识别所述目标图像中人体关键点的三维坐标;
[0208] 结果确定模块530,用于获取所述神经网络模型所识别到的三维坐标,作为所述目标图像的人体关键点识别结果;
[0209] 其中,所述神经网络模型为基于样本图像以及所述样本图像中人体关键点的真值三维坐标,所训练得到的模型;
[0210] 其中,所述神经网络模型包括:特征提取网络、第一识别网络和第二识别网络;所述特征提取网络用于提取所述样本图像的特征矩阵,所述第一识别网络用于基于所述样本图像的特征矩阵,识别所述样本图像中人体关键点的二维坐标,所述第二识别网络用于基于所述样本图像的特征矩阵,以及所述样本图像中人体关键点的二维坐标,识别所述样本图像中人体关键点的三维坐标。
[0211] 本发明实施例中,在识别目标图像中人体关键点的三维坐标时,将目标图像输入至预先训练的神经网络模型,以使神经网络模型提取目标图像的特征矩阵,基于目标图像的特征矩阵识别目标图像中人体关键点的二维坐标,并基于目标图像的特征矩阵和目标图像中人体关键点的二维坐标,识别目标图像中人体关键点的三维坐标,从而得到目标图像的人体关键点识别结果;其中,神经网络模型中的第一识别网络基于特征提取网络所提取的特征矩阵生成人体关键点的二维坐标,而第二识别网络用于基于特征提取网络所提取的特征矩阵,以及第一识别网络所识别的人体关键点的二维坐标,生成人体关键点的三维坐标。可见,本方案识别人体关键点所利用的神经网络模型,在识别三维坐标时结合人体关键点的二维坐标和生成二维坐标所依据的包含上下文信息的特征矩阵,使得三维坐标识别所依赖的信息较为丰富。因此,相对于相关技术仅仅考虑二维坐标,通过本方案可以实现提高人体关键点的三维坐标的精准度的目的。另外,本方案在利用神经网络模型识别三维坐标时,将识别任务拆分为先识别二维坐标再识别三维坐标两个子任务,即子任务一:基于目标图像的特征矩阵识别目标图像中人体关键点的二维坐标,以及,子任务二:基于目标图像的特征矩阵和目标图像中人体关键点的二维坐标识别目标图像中人体关键点的三维坐标,这样使得相对于从图像直接到三维坐标的端到端的识别,模型复杂度大大降低。
[0212] 可选地,在一种实现方式中,所述神经网络模型通过模型训练模块训练得到,所述模型训练模块包括:
[0213] 图像获取子模块,用于从样本图像库中,获取多个第一样本图像和多个第二样本图像;其中,所述第一样本图像为标注有人体关键点的真值二维坐标的样本图像,所述第二样本图像为标注有人体关键点的真值三维坐标的样本图像;
[0214] 第一训练子模块,用于针对所述神经网络模型中的目标子网络,基于所述多个第一样本图像和每个第一样本图像中人体关键点的真值二维坐标,对所述目标子网络进行训练,得到所述目标子网络的网络参数;其中,所述目标子网络包括所述特征提取网络和第一识别网络;
[0215] 第二训练子模块,用于在完成对所述目标子网络的训练之后,在训练得到的所述目标子网络的网络参数的基础上,基于所述多个第二样本图像和每个第二样本图像中人体关键点的真值三维坐标,对所述神经网络模型进行训练,得到用于识别人体关键点的三维坐标的神经网络模型。
[0216] 可选地,在一种实现方式中,所述第一训练子模块具体用于:
[0217] 针对所述神经网络模型中的目标子网络,将每个第一样本图像输入至所述目标子网络,得到每个第一样本图像中人体关键点的预测二维坐标;
[0218] 基于每个第一样本图像中人体关键点的真值二维坐标和预测二维坐标的差异,计算第一类损失值;
[0219] 基于所述第一类损失值,判断所述目标子网络是否收敛,如果判断结果为是,结束训练,得到训练完成的所述目标子网络的网络参数;否则,调整所述目标子网络的网络参数,继续训练所述目标子网络。
[0220] 可选地,在一种实现方式中,所述第二训练子模块具体用于:
[0221] 在完成对所述目标子网络的训练之后,在训练得到的所述目标子网络的网络参数的基础上,将每个第二样本图像输入至所述神经网络模型,得到每个第二样本图像中人体关键点的预测三维坐标;
[0222] 基于每个第二样本图像中人体关键点的真值三维坐标和预测三维坐标的差异,计算第二类损失值;
[0223] 基于所述第二类损失值,判断所述神经网络模型是否收敛,如果判断结果为是,结束训练,得到训练完成的所述神经网络模型;否则,调整所述神经网络模型中所述第二识别网络的网络参数,继续训练所述神经网络模型。
[0224] 可选地,在一种实现方式中,所述第二识别网络包括:
[0225] 顺次连接的浅层网络组和第三浅网络,所述浅层网络组包括作为并列分支的第一浅层网络和第二浅层网络;
[0226] 所述第一浅层网络用于对所述特征提取网络所提取的特征矩阵进行编码,得到第一编码信息;
[0227] 所述第二浅层网络用于对所述第一识别网络输出的人体关键点的二维坐标进行编码,第二编码信息;
[0228] 所述第三浅层网络用于对所述第一编码信息和第二编码信息进行信息融合,并基于融合信息,生成所述样本图像中人体关键点的三维坐标。
[0229] 本发明实施例还提供了一种电子设备,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
[0230] 存储器603,用于存放计算机程序;
[0231] 处理器601,用于执行存储器603上所存放的程序时,实现本发明实施例所提供的人体关键点识别方法的步骤。
[0232] 上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,简称PCI)总线或扩展工业标准结构(Extended Industry Standard Architecture,简称EISA)总线等。该通信总线可以分为地址总线数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0233] 通信接口用于上述电子设备与其他设备之间的通信。
[0234] 存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0235] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0236] 在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的人体关键点识别方法。
[0237] 在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的人体关键点识别方法。
[0238] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
[0239] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0240] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、设备及存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0241] 以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈