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

网状拓扑结构获取方法、装置、电子设备及存储介质与流程

2022-06-25 09:00:59 来源:中国专利 TAG:


1.本技术涉及计算机视觉和计算机图形学的技术领域,具体而言,涉及一种网状拓扑结构获取方法、装置、电子设备及存储介质。


背景技术:

2.动作捕捉(motion capture),又称为动态捕捉,是指记录并处理人或其他物体动作的技术。在电影制作和电子游戏开发领域,动作捕捉通常是记录人类演员的动作,并将其转换为数字模型的动作,并生成二维或三维的计算机动画。
3.目前使用动作捕捉技术来获取网状拓扑结构方法大都是,利用单视角彩色图像来获取网状拓扑结构;然而在具体的实践过程中发现,使用传统拟合迭代优化方式来制作网状拓扑结构,仅仅只能做到以11秒每帧的速度获取参数化人体模型对应的网状拓扑结构。当单视角彩色图像中存在多个演员时,多个演员的动作肢体会相互遮挡,单个演员自己的肢体有时候也有视角遮挡。


技术实现要素:

4.本技术实施例的目的在于提供一种网状拓扑结构获取方法、装置、电子设备及存储介质,用于改善视角遮挡的歧义性导致获得的网状拓扑结构的精度和实时性不高的问题。
5.本技术实施例提供了一种网状拓扑结构获取方法,包括:获取多个人体图像,多个人体图像是从不同的视角对人体区域进行拍摄的;对多个人体图像进行关键点检测和多视角重构,获得重构后的三维关键点数据;使用预先训练的深度学习网络模型对重构后的三维关键点数据进行旋转预测,获得三维旋转数据;获取拟合后的参数化人体模型,并将三维旋转数据输入参数化人体模型,获得参数化人体模型的网状拓扑结构。在上述的实现过程中,通过获取从不同的视角对人体区域进行拍摄的多个人体图像,并对多个人体图像进行关键点检测和多视角重构,从而使得参数化人体模型的制作过程中无需人为参与标注,通过自动化制作流程提高了制作网状拓扑结构的实时性,且有效地改善单视角拍照时演员的动作存在歧义性问题;进一步地,通过预测出重构后的三维关键点数据对应的三维旋转数据,并使用拟合后的参数化人体模型加载三维旋转数据,获得参数化人体模型的网状拓扑结构,从而利用多视角拟合的方式获得更加准确的参数化人体模型的身体姿态和尺寸,有效地提高了参数化人体模型的网状拓扑结构的精度。
6.可选地,在本技术实施例中,对多个人体图像进行关键点检测和多视角重构,获得重构后的三维关键点数据,包括:对多个人体图像中的每个人体图像进行关键点检测,获得多组二维关键点;根据相机阵标定的参数对多组二维关键点中的每组二维关键点进行多视角重构,获得重构后的三维关键点数据。在上述的实现过程中,通过对多个人体图像中的每个人体图像进行关键点检测,并根据相机阵标定的参数对多组二维关键点中的每组二维关键点进行多视角重构,从而利用多视角拟合的方式获得更加准确的参数化人体模型的身体
姿态和尺寸,有效地提高了参数化人体模型的网状拓扑结构的精度。
7.可选地,在本技术实施例中,对多个人体图像中的每个人体图像进行关键点检测,获得多组二维关键点,包括:针对多个人体图像中的每个人体图像,对人体图像中的人体区域进行定位目标检测,获得人体区域图像;对人体区域图像进行关键点检测,获得一组二维关键点。在上述的实现过程中,通过先对人体图像中的人体区域进行定位目标检测,然后才对人体区域图像进行关键点检测,从而避免了人体图像中的人体区域占比不大时导致关键点检测效果差的问题,事先提取出人体图像中的人体区域图像,再对人体区域图像进行关键点检测,提高了人体图像的关键点检测效果。
8.可选地,在本技术实施例中,获取拟合后的参数化人体模型,包括:获取未拟合人体模型,并将未拟合人体模型中的多个三维关键点投影至人体区域图像,获得投影后的多个二维关键点数据;将重构后的三维关键点数据投影到人体区域图像,获得重构后的多个二维关键点数据,并根据重构后的多个二维关键点数据对投影后的多个二维关键点数据进行修正,获得修正后的多个二维关键点;最小化拟合未拟合人体模型中的多个二维关键点与修正后的多个二维关键点之间的误差,获得参数化人体模型。在上述的实现过程中,通过最小化拟合未拟合人体模型中的多个二维关键点与修正后的多个二维关键点之间的误差,从而避免了使用未拟合人体模型来处理数据的问题,能够获得更加准确的参数化人体模型的身体姿态和尺寸,有效地提高了参数化人体模型的网状拓扑结构的精度。
9.可选地,在本技术实施例中,深度学习网络模型包括:特征提取网络和迭代误差反馈网络;使用预先训练的深度学习网络模型对重构后的三维关键点数据进行旋转预测,获得三维旋转数据,包括:使用特征提取网络对三维关键点数据进行特征提取,获得姿态特征和尺度特征;使用迭代误差反馈网络对姿态特征和尺度特征进行旋转预测,获得三维旋转数据。
10.可选地,在本技术实施例中,在使用预先训练的深度学习网络模型对重构后的三维关键点数据进行旋转预测之前,还包括:获取多个三维关键点数据,并获取多个三维关键点数据中的每个三维关键点数据对应的三维旋转数据;以三维关键点数据为训练数据,以三维旋转数据为训练标签,对深度学习神经网络进行训练,获得深度学习网络模型。
11.可选地,在本技术实施例中,获取多个三维关键点数据,并获取多个三维关键点数据中的每个三维关键点数据对应的三维旋转数据,包括:获取多个人体样本图像,并使用第一人体模型的关键点检测算法对多个人体样本图像中的每个人体样本图像进行关键点检测,获得多组二维关键点;根据相机阵标定的参数对多组二维关键点中的每组二维关键点进行多视角重构,获得重构后的三维关键点数据;使用第二人体模型对重构后的三维关键点数据进行罗德里格斯变换,获得三维关键点数据对应的三维旋转数据,第一人体模型与第二人体模型是不同的。
12.在上述方案的实现过程中,通过获得的二维关键点来生成三维关键点数据,该三维关键点数据是训练深度学习神经网络的训练数据,且使用第二人体模型对三维关键点数据进行罗德里格斯变换获得的三维旋转数据是训练深度学习神经网络的训练标签,从而达到输入第一人体模型(即openpose模型)的二维关键点数据给深度学习神经网络,但是深度学习神经网络输出的是符合人体运动学结构点位的第二人体模型(即smpl-x模型)三维旋转数据的技术效果。
13.可选地,在本技术实施例中,使用蒙皮多人线性第二人体模型对重构后的三维关键点数据进行罗德里格斯变换,包括:向重构后的三维关键点数据中的其中一个维度添加噪声,获得加噪后的三维关键点数据,或者,将重构后的三维关键点数据沿着其中一个维度旋转,获得旋转后的三维关键点数据;使用第二人体模型对加噪后的三维关键点数据或者旋转后的三维关键点数据进行罗德里格斯变换。
14.在上述方案的实现过程中,通过先获取加噪或者旋转后的三维关键点数据,再使用第二人体模型对加噪后的三维关键点数据或者旋转后的三维关键点数据进行罗德里格斯变换,能够有效地增加更多的三维旋转数据作为深度学习神经网络的训练标签,从而减少了深度学习神经网络的训练样本和训练标签不足的情况,提高了深度学习神经网络预测三维关键点数据的准确率。
15.在本技术实施例中,第一人体模型是openpose模型,第二人体模型是蒙皮多人线性smpl-x模型。
16.在上述方案的实现过程中,通过获得的二维关键点来生成三维关键点数据,该三维关键点数据是训练深度学习神经网络的训练数据,且使用smpl-x模型对三维关键点数据进行罗德里格斯变换获得的三维旋转数据是训练深度学习神经网络的训练标签,从而达到输入openpose模型的二维关键点数据给深度学习神经网络,但是深度学习神经网络输出的是符合人体运动学结构点位(即smpl-x模型)的三维旋转数据的技术效果。
17.可选地,在本技术实施例中,对深度学习神经网络进行训练,获得深度学习网络模型,包括:使用深度学习神经网络对三维关键点数据进行预测,获得预测旋转数据;分别计算预测旋转数据和三维旋转数据之间的旋转误差、关键点位置误差和尺度因子误差;对旋转误差、关键点位置误差和尺度因子误差进行计算,获得总损失值;根据总损失值对深度学习神经网络进行训练,获得深度学习网络模型。在上述的实现过程中,通过根据旋转误差、关键点位置误差和尺度因子误差计算出的总损失值来对深度学习网络模型进行训练,从而避免了只使用其中一个误差来训练深度学习网络模型的问题,有效地提高了深度学习网络模型预测三维旋转数据的准确率。
18.本技术实施例还提供了一种网状拓扑结构获取装置,包括:人体图像获取模块,用于获取多个人体图像,多个人体图像是从不同的视角对人体区域进行拍摄的;重构数据获得模块,用于对多个人体图像进行关键点检测和多视角重构,获得重构后的三维关键点数据;旋转数据获得模块,用于使用预先训练的深度学习网络模型对重构后的三维关键点数据进行旋转预测,获得三维旋转数据;网状拓扑获得模块,用于获取拟合后的参数化人体模型,并将三维旋转数据输入参数化人体模型,获得参数化人体模型的网状拓扑结构。
19.可选地,在本技术实施例中,重构数据获得模块,包括:二维关键点检测模块,用于对多个人体图像中的每个人体图像进行关键点检测,获得多组二维关键点;二维多视角重构模块,用于根据相机阵标定的参数对多组二维关键点中的每组二维关键点进行多视角重构,获得重构后的三维关键点数据。
20.可选地,在本技术实施例中,二维关键点检测模块,包括:区域图像检测模块,用于针对多个人体图像中的每个人体图像,对人体图像中的人体区域进行定位目标检测,获得人体区域图像;二维关键点获得模块,用于对人体区域图像进行关键点检测,获得一组二维关键点。
21.可选地,在本技术实施例中,网状拓扑获得模块,包括:三维关键点投影模块,用于获取未拟合人体模型,并将未拟合人体模型中的多个三维关键点投影至人体区域图像,获得投影后的多个二维关键点数据;关键点数据修正模块,用于将重构后的三维关键点数据投影到人体区域图像,获得重构后的多个二维关键点数据,并根据重构后的多个二维关键点数据对投影后的多个二维关键点数据进行修正,获得修正后的多个二维关键点;参数化模型获得模块,用于最小化拟合未拟合人体模型中的多个二维关键点与修正后的多个二维关键点之间的误差,获得参数化人体模型。
22.可选地,在本技术实施例中,深度学习网络模型包括:特征提取网络和迭代误差反馈网络;旋转数据获得模块,包括:数据特征提取模块,用于使用特征提取网络对三维关键点数据进行特征提取,获得姿态特征和尺度特征;旋转数据预测模块,用于使用迭代误差反馈网络对姿态特征和尺度特征进行旋转预测,获得三维旋转数据。
23.可选地,在本技术实施例中,网状拓扑结构获取装置,还包括:关键点数据获取模块,用于获取多个三维关键点数据;旋转数据获取模块,用于获取多个三维关键点数据中的每个三维关键点数据对应的三维旋转数据;网络模型获得模块,用于以三维关键点数据为训练数据,以三维旋转数据为训练标签,对深度学习神经网络进行训练,获得深度学习网络模型。
24.可选地,在本技术实施例中,网络模型获得模块,包括:关键点数据预测模块,用于使用深度学习神经网络对三维关键点数据进行预测,获得预测旋转数据;数据误差计算模块,用于分别计算预测旋转数据和三维旋转数据之间的旋转误差、关键点位置误差和尺度因子误差;总损失值获得模块,用于对旋转误差、关键点位置误差和尺度因子误差进行计算,获得总损失值;神经网络训练模块,用于根据总损失值对深度学习神经网络进行训练,获得深度学习网络模型。
25.本技术实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。
26.本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上面描述的方法。
附图说明
27.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
28.图1示出的本技术实施例提供的网状拓扑结构获取方法的流程示意图;
29.图2示出的本技术实施例提供的使用相机矩阵从不同的视角拍摄的示意图;
30.图3示出的本技术实施例提供的训练深度学习模型的流程示意图;
31.图4示出的本技术实施例提供的人体关键点的示意图;
32.图5示出的本技术实施例提供的深度学习神经网络的网络结构示意图;
33.图6示出的本技术实施例提供的迭代误差反馈(ief)层的网络结构示意图;
34.图7示出的本技术实施例提供的网状拓扑结构获取装置的结构示意图。
具体实施方式
35.下面将结合本技术实施例中附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术实施例一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本技术实施例的实施例的详细描述并非旨在限制要求保护的本技术实施例的范围,而是仅仅表示本技术实施例的选定实施例。基于本技术实施例的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本技术实施例保护的范围。
36.在介绍本技术实施例提供的网状拓扑结构获取方法之前,先介绍本技术实施例中所涉及的一些概念:
37.深度学习(deep learning),是机器学习中一种基于对数据进行表征学习的算法,深度学习是机器学习的分支,也是一种以人工神经网络为架构,对数据进行表征学习的算法。
38.目标检测网络,是指对图像中的目标对象进行检测的神经网络,即检测出图像中的目标对象,并给出目标对象在图像中的位置范围、分类和概率,位置范围具体可以为检测框的形式标注,分类是指目标对象的具体类别,概率是指检测框中的目标对象为具体类别的概率。
39.需要说明的是,本技术实施例提供的网状拓扑结构获取方法可以被电子设备执行,这里的电子设备是指具有执行计算机程序功能的设备终端或者上述的服务器,设备终端例如:智能手机、个人电脑、平板电脑、个人数字助理或者移动上网设备等。服务器是指通过网络提供计算服务的设备,服务器例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和unix服务器。
40.下面介绍该网状拓扑结构获取方法适用的应用场景,这里的应用场景包括但不限于:在对人体动作进行捕捉获得人体图像之后,可以使用该网状拓扑结构获取方法对人体图像进行计算,从而获取参数化人体模型的网状拓扑结构,提高参数化人体模型的网状拓扑结构的精度等。
41.请参见图1示出的本技术实施例提供的网状拓扑结构获取方法的流程示意图;该网状拓扑结构获取方法的主要思路是,通过获取从不同的视角对人体区域进行拍摄的多个人体图像,并对多个人体图像进行关键点检测和多视角重构,从而使得参数化人体模型的制作过程中无需人为参与标注,通过自动化制作流程提高了制作网状拓扑结构的实时性,且有效地改善单视角拍照时演员的动作存在歧义性问题;进一步地,通过预测出重构后的三维关键点数据对应的三维旋转数据,并使用拟合后的参数化人体模型加载三维旋转数据,获得参数化人体模型的网状拓扑结构,从而利用多视角拟合的方式获得更加准确的参数化人体模型的身体姿态和尺寸,有效地提高了参数化人体模型的网状拓扑结构的精度;上述的网状拓扑结构获取方法可以包括:
42.步骤s110:获取多个人体图像,多个人体图像是从不同的视角对人体区域进行拍摄的。
43.请参见图2示出的本技术实施例提供的使用相机矩阵从不同的视角拍摄的示意图;图中细线条的直线是墙沿,粗线条直线是框架(可以是铁制的或者钢制的),框架上安装
有多个相机,此处的多个相机可以组成一个相机矩阵,从而最大程度的拍摄到相机矩阵覆盖范围内的所有角落,实现多个不同视角拍摄的功能。上述的人体图像的获得方式包括:第一种获得方式,使用opencv或matlab自带的相机标定工具箱算法对摄像机、录像机或彩色照相机等组成的相机矩阵进行标定,可以获得该相机矩阵中的每个相机的内部参数和外部参数,然后,可以使用该相机矩阵从不同的视角对人体区域进行拍摄,获得多个人体图像;然后该终端设备向电子设备发送多个人体图像,然后电子设备接收并存储终端设备发送的多个人体图像;第二种获得方式,获取预先存储的多个人体图像,具体例如:从文件系统中获取多个人体图像,或者从数据库中获取多个人体图像,或者从移动存储设备中获取多个人体图像;第三种获得方式,使用浏览器等软件获取互联网上的多个人体图像,或者使用其它应用程序访问互联网获得多个人体图像。
44.步骤s120:对多个人体图像进行关键点检测和多视角重构,获得重构后的三维关键点数据。
45.在一些实施方式中,如果人体图像的质量足够好(即人体图像大部分都是人体区域,人体图像中的人体区域长和宽占人体图像的大部分,例如90%),那么就可以直接对人体图像进行关键点检测和多视角重构,获得重构后的三维关键点数据。由于此处的关键点检测和多视角重构的过程非常复杂,因此,其详细过程将在下面详细的描述。
46.在另一些实施方式中,通常人体图像的质量不够好,需要对人体图像进行定位目标检测,获得人体区域框,并根据人体区域框对人体图像进行裁剪,获得人体区域图像,最后,再对人体区域图像进行关键点检测和多视角重构,获得重构后的三维关键点数据。
47.步骤s130:使用预先训练的深度学习网络模型对重构后的三维关键点数据进行旋转预测,获得三维旋转数据。
48.深度学习网络模型是一个输入三维关键点数据,且输出三维旋转数据的神经网络模型;该深度学习网络模型可以预测出三维关键点数据对应的三维旋转数据。可以理解的是,在使用深度学习网络模型之前,还需要对深度学习网络模型进行训练,由于训练深度学习网络模型的实施方式比较复杂,因此,深度学习网络模型的训练过程放在后面详细地描述,深度学习网络模型的具体网络结果也在训练过程完后详细的介绍。
49.步骤s140:获取拟合后的参数化人体模型,并将三维旋转数据输入参数化人体模型,获得参数化人体模型的网状拓扑结构。
50.在上述步骤s110至步骤s140的实现过程中发现,传统拟合迭代优化方式仅仅只能做到以11秒每帧的速度获取参数化人体模型对应的网状拓扑结构。然而,本技术实施例可以通过预先训练的深度学习网络模型对重构后的三维关键点数据进行旋转预测,并将预测出来的三维旋转数据输入参数化人体模型,能够达到以1000每秒传输帧数(frames per second,fps)的速度获取参数化人体模型对应的网状拓扑结构。因此,相比于传统拟合迭代优化方式来获取参数化人体模型对应的网状拓扑结构,本技术实施例中的深度学习方式获取参数化人体模型对应的网状拓扑结构的实时性有了明显地提高。
51.在上述的实现过程中,通过获取从不同的视角对人体区域进行拍摄的多个人体图像,并对多个人体图像进行关键点检测和多视角重构,从而使得参数化人体模型的制作过程中无需人为参与标注,通过自动化制作流程提高了制作网状拓扑结构的实时性,且有效地改善单视角拍照时演员的动作存在歧义性问题;进一步地,通过预测出重构后的三维关
键点数据对应的三维旋转数据,并使用拟合后的参数化人体模型加载三维旋转数据,获得参数化人体模型的网状拓扑结构,从而利用多视角拟合的方式获得更加准确的参数化人体模型的身体姿态和尺寸,有效地提高了参数化人体模型的网状拓扑结构的精度。
52.请参见图3示出的本技术实施例提供的训练深度学习模型的流程示意图;可选地,在使用深度学习网络模型之前,还可以对深度学习网络模型进行训练,也可以在上面直接获取已经训练过的深度学习模型,下面介绍训练深度学习模型的过程,该过程可以包括:
53.步骤s210:获取多个三维关键点数据。
54.上述步骤s210的实施方式可以包括如下:
55.步骤s211:获取多个人体样本图像,并使用第一人体模型的关键点检测算法对多个人体样本图像中的每个人体样本图像进行关键点检测,获得多组二维关键点。
56.请参见图4示出的本技术实施例提供的人体关键点的示意图;上述步骤s211的实施方式例如:针对多个人体样本图像中的每个人体样本图像,使用目标检测网络模型对人体样本图像中的人体区域进行定位目标检测,获得人体区域图像;其中,可以使用的目标检测网络模型包括:特征融合单点多盒检测器(feature fusion single shot multi-box detector,fssd)、yolo网络模型、rcnn、fast rcnn和faster rcnn系列的网络模型。使用目标检测框架以及人体关键点检测算法(例如openpose模型的关键点检测算法)对人体区域图像进行关键点检测,获得一组二维关键点,此处的二维关键点是人体关键点的图像坐标。
57.可选地,在获取多个人体图像的过程中,可以从头开始制作多个人体图像的训练数据,具体例如:让演员朝着同一个方向表演动作,那么可以使用图2中的相机矩阵对演员进行拍照或者录制视频,获取多个人体图像的训练数据。也可以在已经获得一些人体图像的基础上,对这些人体图像进行图像增强,从而获得更多的人体图像,具体例如:向这些人体图像中添加随机噪声,从而扩充更多的训练数据,并且能够有效缓解神经网络模型的过拟合问题。同理地,这些随机噪声也可以增加到二维关键点、三维关键点和/或下面的三维旋转数据中,从而有效地扩充训练数据集,且改善深度学习神经网络对方向的依赖性(即过拟合问题)。因此,通过增加随机噪声能够有效地减少训练数据集的制作时间,以及减少深度学习神经网络的训练时间。
58.步骤s212:根据相机阵标定的参数对多组二维关键点中的每组二维关键点进行多视角重构,获得重构后的三维关键点数据。
59.上述的步骤s212的实施方式例如:上述的参数包括:相机矩阵中的每个相机的内部参数和外部参数;使用上面相机标定后获得的内部参数和外部参数,以及人体关键点的图像坐标,对人体区域图像中的二维关键点进行三维重建,获得人体关键点在世界坐标系下的三维(3d)坐标,此处的三维坐标可以记作detect_3d∈r
21
×3,此处的人体关键点在世界坐标系下的三维坐标就是重构后的三维关键点数据。
60.在步骤s210之后,执行步骤s220:获取多个三维关键点数据中的每个三维关键点数据对应的三维旋转数据。
61.上述步骤s220的实施方式例如:使用第二人体模型(可以是参数化人体模型)对三维关键点数据进行罗德里格斯变换,获得每个三维关键点数据对应的三维旋转数据,此处的第一人体模型与第二人体模型是不同的,且三维旋转数据包括每个关节的局部旋转矩阵,局部旋转矩阵可以表示为m
24
×3×3。其中,上述的参数化人体模型具体可以采用蒙皮多人
线性模型(skinned multi-person linear model-expressive,smpl-x)模型,smpl-x模型可以表示为body(θ,β),其中,θ∈r
32
为姿态参数,β∈r
10
为形状参数,两个参数均为向量。通过改变(θ,β),函数body(θ,β),可以输出不同姿态和形状的人体模型即网状拓扑(mesh)的顶点3d位置信息,记为v,也可以得到对应模型下的3d关键点的位置信息,记为key_points∈r
24
×3。
62.在上述方案的实现过程中,由于很难获取到符合人体运动学结构点位的人体样本图像(即如图4所示的图像数据),因此,使用openpose人体关键点检测算法对多个人体样本图像中的每个人体样本图像进行关键点检测,通过获得(容易标注且学术界通用的)openpose模型的二维关键点来生成三维关键点数据,该三维关键点数据是训练深度学习神经网络的训练数据,且使用smpl-x模型对三维关键点数据进行罗德里格斯变换获得的三维旋转数据是训练深度学习神经网络的训练标签,从而实现了openpose模型到smpl-x模型的骨架迁移效果,即达到输入openpose模型的二维关键点数据给深度学习神经网络,但是深度学习神经网络输出的是smpl-x模型的三维旋转数据(即符合人体运动学结构点位的三维旋转数据)。
63.由于深度学习神经网络在训练过程中,还接收到输入的骨骼方向(即3d点的orientation,表示父子节点之间的相对方向)以及层级结构(即3d点之间的父子节点关系),有效地根据骨架方向以及层级结构来改变openpose模型与smpl-x骨架模型的方向信息映射关系,避免了生成的最终网状拓扑结构出现穿膜(即骨架穿出贴膜皮肤)或者动作不标准(例如腰部直线僵硬或后空翻的动作十分僵硬)的情况,从而提高了最终获得参数化人体模型的网状拓扑结构的精度。
64.具体地,上述的使用smpl-x模型对重构后的三维关键点数据进行罗德里格斯变换,还可以是先进行图像数据增强(包括:加噪或者沿z轴旋转),再对增强后的三维关键点数据进行罗德里格斯变换;该实施方式具体例如:向重构后的三维关键点数据中的其中一个维度添加噪声,获得加噪后的三维关键点数据,或者,将重构后的三维关键点数据沿着其中一个维度旋转,获得旋转后的三维关键点数据;使用smpl-x模型对加噪后的三维关键点数据或者旋转后的三维关键点数据进行罗德里格斯变换。
65.在上述方案的实现过程中,通过先向重构后的三维关键点数据中的其中一个维度添加噪声,或者,将重构后的三维关键点数据沿着其中一个维度旋转,再使用smpl-x模型对加噪后的三维关键点数据或者旋转后的三维关键点数据进行罗德里格斯变换,能够有效地增加更多的三维旋转数据作为深度学习神经网络的训练标签,从而减少了深度学习神经网络的训练样本和训练标签不足的情况,提高了深度学习神经网络预测三维关键点数据的准确率。
66.在步骤s220之后,执行步骤s230:以三维关键点数据为训练数据,以三维旋转数据为训练标签,对深度学习神经网络进行训练,获得深度学习网络模型。
67.可以理解的是,三维关键点数据与三维旋转数据是一一对应的监督数据集,可以表示为{x|xi=(detect_3d,m)};其中,detect_3d表示三维关键点数据,m表示三维旋转数据,x表示监督数据集,xi表示监督数据集中的一对三维关键点数据和三维旋转数据。
68.上述步骤s230的实施方式可以包括:
69.步骤s231:使用深度学习神经网络对三维关键点数据进行预测,获得预测旋转数
据。
70.请参见图5示出的本技术实施例提供的深度学习神经网络的网络结构示意图;深度学习神经网络是可以预测出三维关键点数据对应的三维旋转数据的神经网络模型,其中,该深度学习网络模型包括:特征提取网络和迭代误差反馈网络,各个网络结构和网络层级的连接关系如图所示。特征提取网络包括:初始化姿态(init pose)、初始化尺度(init scale)、三维关键点位置信息j、骨骼方向以及层级结构d、参考关键点位置信息j
ref
、参考骨骼方向及层级结构d
ref
、全连接层(fully connected layer,fc)和特征(feature)层。迭代误差反馈网络包括:迭代误差反馈(iteration error feedback,ief)层、姿态预测(pred pose)层、尺度预测(scale)层和正向动力(forward kinetic,fk)层;其中,初始化姿态(init pose)其实是一个均值姿态,可以通过所有样本的姿态参数求均值得到。
71.请参见图6示出的本技术实施例提供的迭代误差反馈(ief)层的网络结构示意图;上述的迭代误差反馈(ief)层可以包括:第一剔除(dropout)层、第二全连接(fc)层(1024)、第二剔除(dropout)层、第三全连接(fc)层(24*6)和第四全连接(fc)层;其中,各个网络结构之间的连接关系如图5和图6所示。
72.上述步骤s231的实施方式例如:假设三维关键点数据中的第k个三维关键点坐标表示为bk,k的取值范围可以是0≤k≤24;该深度学习神经网络的输入是i=[j,d,j
ref
,d
ref
]∈r4×b×3,其中,b代表人体模型中的关节点数量,j是相对于根部节点且进行尺度归一化的三维关键点位置信息,d代表的骨骼方向以及层级结构,j
ref
和d
ref
则分别是从姿态模板(template pose,tpose)的关键点转化得到的参考关键点位置信息和参考骨骼方向及层级结构。如果只是输入关键点的话,对于深度学习网络模型来说就只有一堆离散的点,而缺少了这些点的结构信息,网络很难训练得到预期的结果。如果使用子节点相对于父节点的位置则可表示出这种层级结构和方向,具体例如:假设第k关节点的父节点标号用parentk表示,则示,则将姿态参数θ置为全零向量后得到的人体网状拓扑(mesh)为姿态模板(tpose),此时的关键点可以记为key_pointstpose,得到姿态模板(tpose)的网状拓扑(mesh)和关键点位置。
[0073]
上述的深度学习神经网络在输入初始化姿态(init pose)、初始化尺度(init scale)、三维关键点位置信息j、骨骼方向以及层级结构d、参考关键点位置信息j
ref
和参考骨骼方向及层级结构d
ref
之后,该深度学习神经网络的输出是对应于smpl-x模型中每个关节点的局部旋转信息以及为标量的尺度因子由于通常三维旋转信息是使用四元数、欧拉角或者3
×
3的旋转矩阵来表示的,需要注意的是,上面的表示方式在深度学习神经网络训练过程中的3d表达不是连续的,导致深度学习神经网络难以收敛,因此,可以将三维旋转信息转换为连续的6d表达形式。转换的过程使用公式来表达例如:可以使用公式将3
×
3的旋转矩阵转为6d表达式,然后再使用公式和和将6d表达式转到3
×
3的旋转矩阵。其中,n(
·
)表示归一化函数,n(q)=q/||q||。将网络输出的6d旋转信息转为每个关节的3
×
3的局部旋转矩阵得到
[0074]
步骤s232:分别计算预测旋转数据和三维旋转数据之间的旋转误差、关键点位置误差和尺度因子误差。
[0075]
需要注意的是,上述的尺度因子scale表征了smpl模型骨架与检测得到的3d点构成的骨架之间的缩放关系,也要作为损失值(loss)的一部分,否则网络训练得到的结果会出现镜像问题。因此,在构建损失函数计算总损失值时,将尺度因子scale作为损失值(loss)的一部分加入进来。
[0076]
上述步骤s232的实施方式包括:在获取预测旋转数据和三维旋转数据之后,可以使用公式计算预测旋转数据和三维旋转数据之间的旋转误差;其中,lossm表示旋转误差,表示三维旋转数据中的局部旋转矩阵,m
kij
表示预测旋转数据中的局部旋转矩阵。还可以使用公式计算预测旋转数据和三维旋转数据之间的关键点位置误差;其中,loss
xyz
表示关键点位置误差,表示三维旋转数据中的人体姿态的关键点估计位置,key_points
posed,ki
表示预测旋转数据中的人体姿态的关键点估计位置。还可以使用公式计算预测旋转数据和三维旋转数据之间的尺度因子误差;其中,loss
scale
表示尺度因子误差,表示三维旋转数据中的人体姿态的尺度因子,scale表示预测旋转数据中的人体姿态的尺度因子。
[0077]
步骤s233:对旋转误差、关键点位置误差和尺度因子误差进行计算,获得总损失值。
[0078]
上述的步骤s233的实施方式例如:使用公式total_loss=λmlossm λ
xyz
loss
xyz
λ
scale
loss
scale
对旋转误差、关键点位置误差和尺度因子误差进行加权求和,获得总损失值;其中,total_loss表示总损失值,lossm表示旋转误差,λm表示旋转误差的权重因子,loss
xyz
表示关键点位置误差,λ
xyz
表示关键点位置误差的权重因子,loss
scale
表示尺度因子误差,λ
scale
代表尺度因子误差的权重因子。
[0079]
步骤s234:根据总损失值对深度学习神经网络进行训练,获得深度学习网络模型。
[0080]
上述的步骤s234的实施方式例如:在根据总损失值对深度学习神经网络进行训练的过程中,可以采用随机梯度下降法,直至总损失值(即整个loss)收敛时,即可获得训练好的获得深度学习网络模型。
[0081]
在上述的实现过程中,通过根据旋转误差、关键点位置误差和尺度因子误差计算出的总损失值来对深度学习网络模型进行训练,从而避免了只使用其中一个误差来训练深度学习网络模型的问题,有效地提高了深度学习网络模型预测三维旋转数据的准确率。
[0082]
步骤s310:获取多个人体图像,多个人体图像是从不同的视角对人体区域进行拍摄的。
[0083]
其中,该步骤s310的实施原理和实施方式与步骤s110的实施原理和实施方式是类似的,因此,这里不再说明其实施原理和实施方式,如有不清楚的地方,可以参考对步骤
s110的描述。
[0084]
在步骤s310之后,执行步骤s320:对多个人体图像进行关键点检测和多视角重构,获得重构后的三维关键点数据。
[0085]
上述步骤s320的实施方式可以包括:
[0086]
步骤s321:对多个人体图像中的每个人体图像进行关键点检测,获得多组二维关键点。
[0087]
步骤s322:根据相机阵标定的参数对多组二维关键点中的每组二维关键点进行多视角重构,获得重构后的三维关键点数据。
[0088]
其中,该步骤s321至步骤s322的实施原理和实施方式与步骤s211至s212的实施原理和实施方式是类似的,因此,这里不再说明其实施原理和实施方式,如有不清楚的地方,可以参考对步骤s211至s212的描述。
[0089]
在步骤s320之后,执行步骤s330:使用预先训练的深度学习网络模型对重构后的三维关键点数据进行旋转预测,获得三维旋转数据。
[0090]
上述步骤s330的实施方式可以包括:可以理解的是,深度学习网络模型包括:特征提取网络和迭代误差反馈(ief)网络;可以使用特征提取网络对三维关键点数据进行特征提取,获得姿态特征和尺度特征。使用迭代误差反馈(ief)网络对姿态特征和尺度特征进行旋转预测,获得三维旋转数据。
[0091]
其中,该步骤s330的实施原理和实施方式与步骤s231的实施原理和实施方式是类似的,区别仅在于深度学习网络模型的输入和输出不同,因此,这里不再说明其实施原理和实施方式,如有不清楚的地方,可以参考对步骤s231的描述。
[0092]
在步骤s330之后,执行步骤s340:获取拟合后的参数化人体模型,并将三维旋转数据输入参数化人体模型,获得参数化人体模型的网状拓扑结构。
[0093]
上述步骤s340中的获取拟合后的参数化人体模型的实施方式可以包括:
[0094]
步骤s341:获取未拟合人体模型,并将未拟合人体模型中的多个三维关键点投影至人体区域图像,获得投影后的多个二维关键点数据。
[0095]
上述步骤s341的实施方式例如:可以接收其它设备发送的未拟合人体模型,或者,从网上下载未拟合人体模型,或者,从头开始制作工程拟合优化得到参数化的人体模型,并将未拟合人体模型中的多个三维关键点投影至人体区域图像,获得投影后的多个二维关键点数据;其中,上述的未拟合人体模型具体可以采用未拟合的smpl-x模型。
[0096]
步骤s342:将重构后的三维关键点数据投影到人体区域图像,获得重构后的多个二维关键点数据,并根据重构后的多个二维关键点数据对投影后的多个二维关键点数据进行修正,获得修正后的多个二维关键点。
[0097]
步骤s343:最小化拟合未拟合人体模型中的多个二维关键点与修正后的多个二维关键点之间的误差,获得参数化人体模型。
[0098]
上述步骤s343的实施方式例如:在上述对smpl-x模型进行最小化拟合的过程中,形状参数β可以是固定的,可以优化smpl-x模型中的姿态参数θ和尺度因子scale,以及全局位移量t,以使得人体模型中的多个二维关键点与修正后的多个二维关键点之间的误差最小化。
[0099]
上述步骤s340中的将三维旋转数据输入参数化人体模型,获得参数化人体模型的
网状拓扑结构的实施方式包括:假设经过上面的步骤得到的三维旋转数据表示为j(即旋转后的3d关键点位置信息),将三维旋转数据j输入参数化人体模型,获得参数化人体模型的网状拓扑(mesh)结构,并输出obj文件。在具体的实践过程中,该过程可以达到100fps,足以达到实时获取人体模型的网状拓扑结构的技术效果。
[0100]
请参见图7示出的本技术实施例提供的网状拓扑结构获取装置的结构示意图。本技术实施例提供了一种网状拓扑结构获取装置300,包括:
[0101]
人体图像获取模块310,用于获取多个人体图像,多个人体图像是从不同的视角对人体区域进行拍摄的。
[0102]
重构数据获得模块320,用于对多个人体图像进行关键点检测和多视角重构,获得重构后的三维关键点数据。
[0103]
旋转数据获得模块330,用于使用预先训练的深度学习网络模型对重构后的三维关键点数据进行旋转预测,获得三维旋转数据。
[0104]
网状拓扑获得模块340,用于获取拟合后的参数化人体模型,并将三维旋转数据输入参数化人体模型,获得参数化人体模型的网状拓扑结构。
[0105]
可选地,在本技术实施例中,重构数据获得模块,包括:
[0106]
二维关键点检测模块,用于对多个人体图像中的每个人体图像进行关键点检测,获得多组二维关键点。
[0107]
二维多视角重构模块,用于根据相机阵标定的参数对多组二维关键点中的每组二维关键点进行多视角重构,获得重构后的三维关键点数据。
[0108]
可选地,在本技术实施例中,二维关键点检测模块,包括:
[0109]
区域图像检测模块,用于针对多个人体图像中的每个人体图像,对人体图像中的人体区域进行定位目标检测,获得人体区域图像。
[0110]
二维关键点获得模块,用于对人体区域图像进行关键点检测,获得一组二维关键点。
[0111]
可选地,在本技术实施例中,网状拓扑获得模块,包括:
[0112]
三维关键点投影模块,用于获取未拟合人体模型,并将未拟合人体模型中的多个三维关键点投影至人体区域图像,获得投影后的多个二维关键点数据。
[0113]
关键点数据修正模块,用于将重构后的三维关键点数据投影到人体区域图像,获得重构后的多个二维关键点数据,并根据重构后的多个二维关键点数据对投影后的多个二维关键点数据进行修正,获得修正后的多个二维关键点。
[0114]
参数化模型获得模块,用于最小化拟合未拟合人体模型中的多个二维关键点与修正后的多个二维关键点之间的误差,获得参数化人体模型。
[0115]
可选地,在本技术实施例中,深度学习网络模型包括:特征提取网络和迭代误差反馈网络;旋转数据获得模块,包括:
[0116]
数据特征提取模块,用于使用特征提取网络对三维关键点数据进行特征提取,获得姿态特征和尺度特征。
[0117]
旋转数据预测模块,用于使用迭代误差反馈网络对姿态特征和尺度特征进行旋转预测,获得三维旋转数据。
[0118]
可选地,在本技术实施例中,网状拓扑结构获取装置,还包括:
[0119]
关键点数据获取模块,用于获取多个三维关键点数据。
[0120]
旋转数据获取模块,用于获取多个三维关键点数据中的每个三维关键点数据对应的三维旋转数据。
[0121]
网络模型获得模块,用于以三维关键点数据为训练数据,以三维旋转数据为训练标签,对深度学习神经网络进行训练,获得深度学习网络模型。
[0122]
可选地,在本技术实施例中,网络模型获得模块,包括:
[0123]
关键点数据预测模块,用于使用深度学习神经网络对三维关键点数据进行预测,获得预测旋转数据。
[0124]
数据误差计算模块,用于分别计算预测旋转数据和三维旋转数据之间的旋转误差、关键点位置误差和尺度因子误差。
[0125]
总损失值获得模块,用于对旋转误差、关键点位置误差和尺度因子误差进行计算,获得总损失值。
[0126]
神经网络训练模块,用于根据总损失值对深度学习神经网络进行训练,获得深度学习网络模型。
[0127]
应理解的是,该装置与上述的网状拓扑结构获取方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operating system,os)中的软件功能模块。
[0128]
本技术实施例提供的一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上的方法。
[0129]
本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上的方法。其中,计算机可读存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(static random access memory,简称sram),电可擦除可编程只读存储器(electrically erasable programmable read-only memory,简称eeprom),可擦除可编程只读存储器(erasable programmable read only memory,简称eprom),可编程只读存储器(programmable read-only memory,简称prom),只读存储器(read-only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘。
[0130]
本技术实施例提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅是示意性的,例如,附图中的流程图和框图显示了根据本技术实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以和附图中所标注的发生顺序不同。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这主要根据所涉及的功能而定。
[0131]
另外,在本技术实施例中的各个实施例的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0132]
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
[0133]
以上的描述,仅为本技术实施例的可选实施方式,但本技术实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术实施例的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献