首页 / 技术领域 / 动作捕捉 / 基于单目视频的多阶段人体动作捕捉方法、设备及介质

基于单目视频的多阶段人体动作捕捉方法、设备及介质

热词 人体 关节点 关节 三维 估计 相机 触地 姿态 节点 姿态估计
专利类型 发明公开 法律事件 公开; 实质审查;
专利有效性 实质审查 当前状态 实质审查
申请号 CN202310329938.7 申请日 2023-03-30
公开(公告)号 CN116386141A 公开(公告)日 2023-07-04
申请人 南京大学; 申请人类型 学校
发明人 王利民; 田雅婷; 武港山; 第一发明人 王利民
权利人 南京大学 权利人类型 学校
当前权利人 南京大学 当前权利人类型 学校
省份 当前专利权人所在省份:江苏省 城市 当前专利权人所在城市:江苏省南京市
具体地址 当前专利权人所在详细地址:江苏省南京市栖霞区仙林大道163号 邮编 当前专利权人邮编:210023
主IPC国际分类 G06V40/20 所有IPC国际分类 G06V40/20G06V10/46G06V10/82G06T17/00G06V10/762
专利引用数量 0 专利被引用数量 8
专利权利要求数量 10 专利文献类型 A
专利代理机构 南京天翼专利代理有限责任公司 专利代理人 奚铭;
摘要 基于单目视频的多阶段人体 动作捕捉 方法、设备及介质,对于固定相机情境下拍摄的单目RGB视频,将人体动作捕捉分为多个阶段:第一阶段使用人体 姿态 检测器对输入的单目视频逐 帧 估计二维的人体关 节点 ;第二阶段利用 深度学习 来获取视频序列中的空间与时序信息,学习从二维的人体关节点到相机空间中的三维人体关节点的映射关系,并 感知 人体在三维空间中的运动轨迹和触地情况;第三阶段引入反向运动学思想,通过制定合理的惩罚策略,将三维的人体 网格模型 拟合到三维骨骼上,以更真实地刻画运动序列。本 发明 显著地提升重建出的人 体模 型与输入的RGB图像的对齐程度,并且更加真实地估计双脚与地面的 接触 情况,视觉上有明显的提升。
权利要求

1.基于单目视频的多阶段人体动作捕捉方法,其特征是对于固定相机情境下拍摄的单目RGB视频,将人体动作捕捉分为多个阶段:第一阶段对输入的单目视频逐进行人体姿态检测,估计二维的人体关键点,并构建三维人体模型SMPL的相机坐标系下的局部空间;第二阶段利用深度学习方法来获取视频序列中的空间与时序信息,学习从视频帧图像二维的人体关键点到相机空间中的三维人体关节点的映射关系,并检测感知人体在三维空间中的运动轨迹和触地情况;第三阶段根据反向动学,通过制定惩罚策略,将三维的人体网格模型拟合到三维骨骼上,以刻画运动序列,实现动作捕捉。
2.根据权利要求1所述的基于单目视频的多阶段人体动作捕捉方法,其特征是第一阶段通过预处理模实现数据预处理,对单目视频逐帧检测二维的人体关键点,并对二维人体关键点序列归一化,另外将三维人体模型SMPL的24个关节点的坐标由世界坐标系转换到相机坐标系,并以根节点为基础,将其他关节点转化为相对于根节点的相对坐标,构建局部空间;同时,通过聚类方法对左右脚关节点高度进行聚类以估计地面的高度,生成左右脚关节的触地标签;第二阶段通过相机校正模块、人体姿态估计模块、人体轨迹估计模块进行姿态估计,人体姿态估计模块用于估计三维人体关节点在局部空间中的位置,根据二维人体关键点序列得到三维人体姿态序列,相机校正模块基于单目视频获取相机的内参和外参,用于获得视频的视,人体轨迹估计模块用于预测在相机坐标系下的人体位移和触地情况,根据二维人体关键点序列和相机内外参得到三维人体轨迹序列和触地概率;第三阶段通过模型拟合模块,基于反向动力学,综合三维人体姿态序列、三维人体轨迹序列和触地概率进行拟合,获得三维人体模型运动序列。
3.根据权利要求2所述的基于单目视频的多阶段人体动作捕捉方法,其特征是第一阶段的数据预处理包括提取二维人体关键点、转换三维人体关节点、生成触地标签三个子任务:
S11提取二维人体关键点并归一化:对训练集中的原始视频降采样并进行抽帧,将视频帧送入人体姿态检测器中估计出25个二维人体关键点的图像坐标序列 T
为视频帧数,之后在保持横纵比的情况下,将x轴的坐标由[0,w]归一化到[‑1,1],即其中w,h为视频帧的宽和高;
S12转换三维人体关节点:通过视点变换将三维人体关节点坐标由世界坐标系转换到相机坐标系下以用于监督,记Rcam和Tcam为相机的旋转矩阵和位移量, 为三维人体模型SMPL的24个关节点在世界坐标系下的位置坐标,转换公式为:
其中P表示在相机坐标系下人体的三维关节点的空间坐标;最
后,保留根节点在相机坐标系中的空间位置坐标,将其他关节点的三维坐标减去根节点的三维坐标,转化为相对于根节点的相对坐标,即P[:,1:]=P[:,1:]‑P[:,:1],三维轨迹的真值为根节点在相机坐标系下的三维坐标序列,即traj=P[:,:1],根节点的深度为depth=traj[:,:,2],其中[:]表示沿对应维度的切片操作;
S13生成二分类触地标签:对于三维关节点序列,首先相邻两帧做差来计算关节点的位移速度,若节点的速度小于设定阈值,则认为在此帧中该关节处于静止状态,之后使用机器学习中的DBSCAN方法对静止的左、右脚关节的高度进行聚类,以最小的中位数减去一个偏移常量作为地面的高度,对于左脚、右脚、左脚踝、右脚踝、左膝、右膝、左手腕、右手腕八个关节点,如果速度小于设定阈值,并且关节与地面的高度差在设定范围内,则认为该关节点处于触地状态,触地标签置为1。
4.根据权利要求2所述的基于单目视频的多阶段人体动作捕捉方法,其特征是人体姿态估计模块包括编码和解码两个阶段,将归一化二维人体姿态关键点坐标序列(0,…,T‑1)作为输入,提取输入序列的特征,之后将特征送入解码器预测中间帧,即第 帧的人体关节点在三维空间中的相对位置,具体为:
在编码阶段,在通道维度上按照运动链分组、在时域维度上进行空洞卷积来提取长时特征,编码器为全卷积网络,采用空洞卷积操作和残差学习实现:将人体骨骼分为六个局部运动链:头部运动链、根节点运动链、左臂运动链、右臂运动链、左腿运动链和右腿运动链,各自的运动相对独立,将输入沿通道维度分为6组以分组提取特征,在编码器中,每一层网络输出分为7个部分,包括6个局部特征φg,g=1,…,6,和一个全局特征ψ,第i层网络的输i i+1
出记为 从第i层网络l到第i+1层网络l 的计算过程如下:使用全
局卷积来提取全局的信息,同时在{全局,分组}连结特征上分组进行卷积,即:
其中, 均为步长为3、卷积核大小为3、空洞系数为3的空洞卷积操作,concate为沿通道维度的连结操作,编码器最终输出一个联合的分组特征
之后在解码阶段,以多分支的形式分区域回归参数化的三维人体模型中的24个关节点,分组的局部特征φg分别输入到6个独立的解码器 中预测人体模型的对应的局部运动链上的关节的位置 即:
5.根据权利要求2所述的基于单目视频的多阶段人体动作捕捉方法,其特征是相机校正模块采用预训练的ResNet‑50模型作为主干网络,并把最后一层网络替换为三个独立的MLP头部网络,分别用于估计相机的垂直视野vfov、沿x轴的旋转量pitch和沿z轴旋转角度roll,相机焦距通过vfov来计算: 则相机的内参矩阵为:
根据相机的内参和外参得到相机的投影矩阵,在训练阶段,投影矩阵将网络预测得到的人体的三维节点投影到二维平面上得到对应关节在图像上的二维坐标,并与二维真值计算距离损失加以监督;
对于vfov、pitch和roll中的每一个量的预测,预先定义一个取值范围[min,max],并且在这个范围内均匀采样256个候选值,三个MLP头部网络均输出一个256维的向量pred代表候选值的概率,pred向量通过softargmax函数近似求出最大概率对应的索引IDsoft∈(0,
256),将IDsoft归一化到[‑1,1]范围内得到归一化后的索引IDsoft_normalized,之后将索引映射到候选值范围[min,max]中得到对应位置的候选值 即为网络的预测结果,计算过程如下:
训练时,对于pitch和roll的预测,采用标准的 损失函数;对于vfov的预测,采用Geman‑McClure损失函数,即
6.根据权利要求5所述的基于单目视频的多阶段人体动作捕捉方法,其特征是对于实时动作捕捉的应用场景,相机拍摄的当前时刻的图像送入相机校正模块估计相机参数,记基于过去帧的估计值为 在网络估计出基于当前帧的估计值xt后,对 进行更新,更新规则为: 其中momentum=0.1,将 作为最
新的相机估计值以供后续模块使用。
7.根据权利要求2所述的基于单目视频的多阶段人体动作捕捉方法,其特征是人体轨迹估计模块包括编码和解码两个阶段,基于归一化二维人体姿态关键点中的坐标序列(0,…,T‑1),只取其中的左腿运动链和右腿运动链上的关键点作为输入,在编码阶段,编码器使用空洞卷积网络来提取输入序列的特征;在解码阶段,提取的特征分别经过两个不同的头部网络,来预测中间帧中的人体根节点在相机坐标系下的三维坐标 和人体各关节点的触地概率 根据相机校正模块估计出的相机内参矩阵 人体姿态估计模块预测出的相对于根节点的三维关节点坐标 人体轨迹预测模块预测的根节点的三维空间坐标求得经过投影在二维图像平面的关节点坐标 计算过程如下:
8.根据权利要求2所述的基于单目视频的多阶段人体动作捕捉方法,其特征是模型拟合模块根据预测得到的三维人体姿态序列、三维人体轨迹序列和触地概率,分步骤迭代优化出人体网格模型的形状参数和关节旋转量,并赋值给参数化三维人体模型以得到真实的驱动结果,分为四个步骤,具体如下:
S51迭代拟合三维人体形状参数:进行实时动作捕捉时,人体的骨骼长度动态更新,视频帧输入人体姿态估计模块估计得到三维关节点坐标 计算得人体的各骨骼长度L,记基于过去帧的人体骨骼长度的估计值为 在人体姿态估计模块估计计算出基于当前帧的估计值Lt后,对 进行更新,更新规则为:
其中momentum=0.1,将 作为最新的人体骨骼长度,以供三维人体模型拟合阶段使用;
通过人体模型的三维关节点位置Psmpl得到骨骼向量 将 视为拟合目标,SMPL模型的形状参数θ为待更新的参数,损失函数定义如下:
其中λ1=1,λ2=0.005,迭代后得到最终的拟合结果;
S52计算全局旋转量R0:R0对应SMPL模型姿态参数β中的w0, 表示全局旋转量,以SMPL模型的三个关节点确定一个刚性结构,基于这三个关节点的初始位置(t1,t2,t3)和预测的位置(p1,p2,p3)求得一个旋转矩阵R,使(t1,t2,t3)经旋转变换后得到的向量(Rt1,Rt2,Rt3)与预测的位置(p1,p2,p3)距离和最小,使得距离最小化的R即为R0,用公式表述如下:
其中SO(3)表示由三维旋转矩阵构成的三维旋转群,上述公式通过奇异值分解SVD得到闭式解;
S53计算各关节的旋转量:三维人体模型中的父节点沿着人体运动骨骼链定义,记节点k在三维人体模型的初始位置为tk,目标位置为pk,重建的模型中节点k的位置为qk,记节点k所在的骨骼向量为 姿态参数wk表示节点k相对于其父节点f(k)的旋转量Rf(k),k,则节点k的绝对旋转量 首先将SMPL模型的根节点对齐,
有q0=p0;经过S52得到全局旋转量R0后,沿着三维人体模型的运动骨骼链从根节点向叶子节点移动,逐步计算每个节点的相对旋转量Rf(k),k,若当前计算的节点为k,重建后的节点k的父节点的位置为 初始骨骼向量为 抵
消父节点的旋转影响后得到目标骨骼向量为 记
转轴为n,旋转角度为α,则 通过罗德里格斯
公式求得旋转矩阵:

其中I表示3×3单位矩阵,n 表示n的反对称矩阵,则相对旋转量Rf(k),k即为
S54基于检测的二维关键点和触地标签进行优化:经S51、S52、S53步骤求得的形状参数β与姿态参数θ,得到SMPL模型,SMPL模型经过线性映射回归出三维坐标J3D,再结合相机校正模块估计出的相机内参矩阵 即可求出SMPL模型投影后的二维关键点坐标J2D,本步骤结合归一化的二维人体关键点序列X和人体轨迹预测模块预测的触地概率 进一步对人体模型进行迭代优化,待更新的参数为姿态参数β、姿态参数θ,损失函数定义如下:
其中λ3=0.001,λ4=10,λ5=0.01,迭代得到最终优化后的结果。
9.一种电子设备,其特征是包括存储介质和处理器,用于根据单目视频进行人体动作捕捉,所述存储介质用于存储计算机程序,处理器用于执行所述计算机程序,计算机程序被执行时,实现权利要求1‑8任一项所述的基于单目视频的多阶段人体动作捕捉方法。
10.一种计算机可读存储介质,其特征是所述计算机可读存储介质上存储有计算机程序,该计算机程序被执行时,实现权利要求1‑8任一项所述的基于单目视频的多阶段人体动作捕捉方法。

说明书全文

基于单目视频的多阶段人体动作捕捉方法、设备及介质

技术领域

[0001] 本发明属于计算机软件技术领域,涉及单目相机下的人体动作捕捉技术。具体为在一个相机位置固定的场景中,基于单目RGB视频上预测人体关节的三维旋转量,进而驱动参数化三维人体模型的方法。

背景技术

[0002] 动作捕捉(Motion Capture)是一种新兴的动画技术,在准确地估计人的动作的同时生成相对应的虚拟资产动作动画。如今这项技术在娱乐、体育、医疗等领域有着广泛应用。其中,单目动作捕捉技术由于对设备的要求低,部署简单,极大地降低了使用槛,因此拥有更大的市场。随着深度学习技术的发展,单目动作捕捉技术的精度不断地得到提升。SMPL(Skinned Multi‑Person Linear Model)是一种基于顶点的人体三维模型,能够精确地表示人体的不同形状和姿态,SMPL模型含有24个关节点,包括23个关节点和1个根节点。
[0003] 在深度学习领域,现有的单目动作捕捉方法根据阶段状态可以分为两大类。第一类是单阶段的方法,如HMR、PyMAF,这类方法使用神经网络从原始的RGB输入中端到端地回归人体模型所需的姿态旋转参数,流程中没有显式的中间状态与中间监督。但是从原始图片到抽象的模型参数的映射是高度非线性的,这导致预测的结果往往与图片对齐得不够精准。第二类是多阶段的方法,如NBF、Pose2Mesh,这类方法通过分解任务来降低网络每一步的拟合难度,网络逐步地输出些中间表达,如人体关节点,并在此基础上继续预测直至得到目标结果。由于多阶段方法中的每个阶段将上一阶段的输出值作为输入进行预测,因此预测误差会逐阶段累计。
[0004] 此外,现有的动作捕捉方法多是基于图像的,对于单目视频输入,基于图像的方法只能逐进行预测,由于无法提取并利用时序信息,估计出的视频结果往往会有抖动,且对遮挡敏感。此外,主流方法采用的是弱透视投影相机,即假设相机离人很远,忽略了人体自身的深度,这与真实场景不符,无法表现透视投影的特性。并且,主流的回归网络简单地略去对人与环境的接触的监督,容易导致视觉上的不一致与不真实。

发明内容

[0005] 本发明要解决的问题是:现有的单目视频动作捕捉方法采用的深度学习方案精度不能满足需求,另一方面现有动作捕捉方法基于图像,未考虑视频的时序信息及场景深度信息,也会影响动作捕捉的有效性及捕捉结果的准确性。
[0006] 本发明的技术方案为:基于单目视频的多阶段人体动作捕捉方法,对于固定相机情境下拍摄的单目RGB视频,将人体动作捕捉分为多个阶段:第一阶段对输入的单目视频逐帧进行人体姿态检测,估计二维的人体关键点,并构建三维人体模型SMPL的相机坐标系下的局部空间;第二阶段利用深度学习方法来获取视频序列中的空间与时序信息,学习从视频帧图像二维的人体关键点到相机空间中的三维人体关节点的映射关系,并检测感知人体在三维空间中的运动轨迹和触地情况;第三阶段根据反向动学,通过制定惩罚策略,将三维的人体网格模型拟合到三维骨骼上,以刻画运动序列,实现动作捕捉。
[0007] 进一步的,第一阶段通过预处理模实现数据预处理,对单目视频逐帧检测二维的人体关键点,并对二维人体关键点序列归一化,另外将三维人体模型SMPL的24个关节点的坐标由世界坐标系转换到相机坐标系,并以根节点为基础,将其他关节点转化为相对于根节点的相对坐标,构建局部空间;同时,通过聚类方法对左右脚关节点高度进行聚类以估计地面的高度,生成左右脚关节的触地标签;第二阶段通过相机校正模块、人体姿态估计模块、人体轨迹估计模块进行姿态估计,人体姿态估计模块用于估计三维人体关节点在局部空间中的位置,根据二维人体关键点序列得到三维人体姿态序列,相机校正模块基于单目视频获取相机的内参和外参,用于获得视频的视,人体轨迹估计模块用于预测在相机坐标系下的人体位移和触地情况,根据二维人体关键点序列和相机内外参得到三维人体轨迹序列和触地概率;第三阶段通过模型拟合模块,基于反向动力学,综合三维人体姿态序列、三维人体轨迹序列和触地概率进行拟合,获得三维人体模型运动序列。
[0008] 本发明还提供一种电子设备,包括存储介质和处理器,用于根据单目视频进行人体动作捕捉,所述存储介质用于存储计算机程序,处理器用于执行所述计算机程序,计算机程序被执行时,实现上述的基于单目视频的多阶段人体动作捕捉方法。
[0009] 本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被执行时,实现上述的基于单目视频的多阶段人体动作捕捉方法。
[0010] 本发明在固定的单目相机的场景下,对捕获的人体运动视频进行动作捕捉,即预测人体关节点的三维旋转量,最终生成驱动后的三维人体模型序列。对于单目视频输入,本发明研究如何估计得到视觉上真实可感的三维人体模型的运动序列,即如何实现高效地捕捉长时的时序信息以提升精确度、减少帧间抖动,同时本发明还提出估计透视投影相机的参数、人体关节旋转量、在相机坐标系下的位移量和触地情况,以提高捕捉的效果。
[0011] 本发明与现有技术相比有如下优点。
[0012] 1)相机设定:使用相机校准模块估计相机的焦距与旋转量,估计出的相机参数在合理的范围内,从而能较真实地刻画透视投影效果,而非弱透视投影。并且相机参数会送入人体轨迹估计模块中以用于转换坐标系计算损失函数。
[0013] 2)网络设计:人体姿态估计模块与人体轨迹估计模块均为全卷积网络,使用空洞卷积近一步提高网络的感受野,使得可以在充分融合了前序帧和后续帧信息的基础上对当前帧进行预测。由于人的四肢运动具有局部属性,人体姿态估计模块的编码器依照运动链分组对主干、头部与四肢进行编码,相对应地,解码器的6个分支独立地输出主干、头部与四肢上的关节点的预测值;人体轨迹估计模块的解码器分为2个分支分别预测人体根节点的位移量和触地标签。
[0014] 3)结合位移量和触地标签的模型拟合:现有的单目模型拟合方法的损失函数通常只考虑人体本身的关节点,如三维人体关节点位置与人体姿态估计模块输出的关节点位置之间的距离、相邻帧之间关节位置的平滑度等,却没有考虑地面的位置、人与地面之间的接触作用。本发明估计了人的运动轨迹和触地概率,并拟合世界坐标系下地面的高度,可以对左右脚关节点的高度与速度进行约束。附图说明
[0015] 图1是本发明的整体框架图。
[0016] 图2是OpenPose估计出的二维人体关键点的输出格式。
[0017] 图3是三维人体模型包含的六个相对独立的运动链。
[0018] 图4是本发明提出的人体姿态估计模块的框架图,(a)为编码器部分,(b)为解码器部分。
[0019] 图5是本发明提出的人体轨迹估计模块的框架图。

具体实施方式

[0020] 本发明提出了一种基于单目视频的多阶段人体动作捕捉方法。应用场景为固定相机情境下拍摄的单目RGB视频。本发明将人体动作捕捉分为多个阶段。第一阶段使用人体姿态检测器对输入的单目视频逐帧估计二维的人体关键点;第二阶段利用深度学习来获取视频序列中的空间与时序信息,学习从二维的人体关键点到相机空间中的三维人体关节点的映射关系,并感知人体在三维空间中的运动轨迹和触地情况;第三阶段基于反向动力学(Inverse kinematics),通过制定惩罚策略,将三维的人体网格模型拟合到三维骨骼上,以更真实地刻画运动序列。本发明显著地提升重建出的人体模型与输入的RGB图像的对齐程度,并且更加真实地估计双脚与地面的接触情况,视觉上有明显的提升。本发明中涉及二维人体图像和三维人体模型,将二维平面上的计算节点称为“关键点”,三维人体模型的计算节点称为“关节点”。
[0021] 本发明的多阶段人体动作捕捉方法,第一阶段通过预处理模块实现数据预处理,对单目视频逐帧检测人体关键点,并对二维人体关键点序列归一化,在训练人体姿态检测器时,对于有标签的数据,将三维人体关节点位置标签转换到相机坐标系下;同时,通过聚类方法对左右脚关节点高度进行聚类以估计地面的高度,生成左右脚关节的触地标签。第二阶段通过相机校正模块、人体姿态估计模块、人体轨迹估计模块进行姿态估计,人体姿态估计模块用于预测在三维空间下的人体关节点的相对位置,根据二维人体关键点序列得到三维人体姿态序列,相机校正模块基于单目视频获取相机的内参和外参,用于获得视频的视角,人体轨迹估计模块用于预测在相机坐标系下的人体位移和各关节的触地情况,根据二维人体关键点序列和相机内外参得到三维人体轨迹序列和触地概率。第三阶段通过模型拟合模块,基于反向动力学,综合三维人体姿态序列、三维人体轨迹序列和触地概率进行拟合,获得三维人体模型运动序列。图1是本发明的整体框架图,显示了各阶段中的预处理模块、相机校正模块、人体姿态估计模块、人体轨迹估计模块、模型拟合模块的关系。下面通过一个具体实施例来说明本发明的实施。本实施例在Human3.6M数据集上进行训练和测试,使用PyTorch1.12框架进行深度神经网络的训练和推理,姿态估计网络参考了VideoPose3D代码库的实现,并在此基础上加以修改
[0022] S10数据预处理:此阶段包括提取二维人体关键点、转换三维人体关节点、生成触地标签三个子任务:
[0023] S11提取二维人体关键点并归一化:Human3.6M数据集中的原始视频帧率为50fps,降采样为10fps并使用ffmpeg工具进行抽帧。将视频帧送入开源的人体姿态检测器OpenPose中估计出25个二维人体关键点的图像坐标序列 如图2所示的关键点0~24,T为视频帧数,之后在保持横纵比的情况下,将x轴的坐标由[0,w]归一化到[‑1,
1],即 其中w,h为视频帧的宽和高。
[0024] S12转换三维人体关节点:在训练阶段,需要预处理时将三维人体关节点标签由世界坐标系转换到相机坐标系下以用于监督,即为视点变换。记Rcam,Tcam为相机的旋转矩阵和位移量, 为三维人体模型的24个关节点在世界坐标系下的位置坐标,如图3所示,包括H0骨盆,H1左臀,H2右臀,H3脊柱1,H4左膝,H5右膝,H6脊柱2,H7左脚踝,H8右脚踝,H9脊柱3,H10左脚,H11右脚,H12颈部,H13左颈,H14右颈,H15头,H16左胳膊,H17右胳膊,H18左肘,H19右肘,H20左手腕,H21右手腕,H22左手和H23右手。转换公式为:
P表示在相机坐标系下人体的三维关节点的空间坐标,P的维度
为(N,24,3),N表示视频的帧数。最后保留根节点在相机坐标系中的绝对位置,根节点即图3中的H0骨盆节点,进行切片操作,将其他关节点的空间坐标减去根节点的空间坐标,转化为相对于根节点的相对坐标,有P[:,1:]=P[:,1:]‑P[:,:1],三维轨迹的真值traj为根节点在相机坐标系下的三维坐标序列,traj=P[:,:1],traj的维度为(N,1,3),根节点的深度为depth=traj[:,:,2],traj[]表示对traj在相应维度上的切片操作,其中[:]表示沿对应维度的切片操作。
[0025] S13生成二分类触地标签:对于三维关节点序列,首先相邻两帧做差来计算关节点的位移速度,若节点的速度小于设定阈值,则认为在此帧中该关节处于静止状态。之后使用机器学习中的DBSCAN方法对静止的左、右脚关节的高度进行聚类,以最小的中位数减去一个偏移常量作为地面的高度。对于H10左脚、H11右脚、H7左脚踝、H8右脚踝、H4左膝、H5右膝、H20左手腕、H21右手腕八个关节点来说,如果速度小于设定阈值,并且关节与地面的高度差在某个范围内,则认为该关节点处于触地状态,触地标签c=1。
[0026] S20相机校正模块:我们采用预训练的ResNet‑50模型作为主干网络,并把最后一层网络替换为三个独立的MLP头部网络,分别用于估计相机的垂直视野vfov、沿x轴的旋转量pitch、沿z轴旋转角度roll,相机焦距可通过vfov来计算: 则相机的内参矩阵为:
[0027]
[0028] 根据相机的内参和外参得到相机的投影矩阵,投影矩阵将网络预测得到的人体的三维节点投影到二维平面上得到对应关节在图像上的二维坐标,并与二维真值计算距离损失加以监督。因为针对vfov、pitch或roll这三个变量的处理是一致的,用x代指其中任意一个变量。对于vfov、pitch和roll中的每一个量的预测,预先定义一个合理的取值范围[min,max],并且在这个范围内均匀采样了256个候选值。在算法设计方面,网络不需要回归具体值,而是预测候选值对应的概率,最大概率的位置对应的候选值即视为网络的预测结果。在网络结构方面,三个MLP头部网络均输出一个256维的向量pred代表候选值的概率,pred向量通过softargmax函数可近似求出最大概率对应的索引IDsoft∈(0,256),将IDsoft归一化到[‑1,1]范围内得到归一化后的索引IDsoft_normalized,之后将索引映射到候选值范围[min,max]中得到对应位置的候选值 即为网络的预测结果。
[0029]
[0030]
[0031]
[0032] 其中pred指vfov、pitch或roll分支的网络预测的概率,指vfov、pitch或roll的预测值。vfov的取值范围为[0.2,1.8],pitch的取值范围为 roll的取值范围为训练时,对于pitch和roll的预测,采用标准的 损失函数;对于vfov的预测,本实施例采用Geman‑McClure损失函数,即
[0033] 进一步的,对于实时动作捕捉的应用场景,将相机拍摄的当前时刻的图像送入相机校正模块估计相机参数,记基于过去帧的估计值为 在网络估计出基于当前帧的估计值xt后,对 进行更新,更新规则为: 其中momentum=0.1。将 作为最新的相机估计值以供后续模块使用。
[0034] S30人体姿态估计模块:本模块用于估计三维关节点在局部空间中的位置,具体来讲,图3中H0骨盆节点的三维坐标为(0,0,0),其他关节点的三维坐标即是相对于骨盆节点的相对位置。本模块包括编码和解码两个阶段,在编码阶段,本模块将经S11处理得到的归一化二维人体姿态关键点坐标序列(0,…,T‑1)作为输入,提取输入序列的特征,其中帧数T=27。之后将特征送入解码器预测中间帧,即第 帧的人体关节点在三维空间中的相对位置。宏观上,本模块的编码器为全卷积网络,为了进一步增大感受野,采用了空洞卷积操作和残差学习的思路。具体来讲,由于人体骨骼可以分为六个局部运动链,对应到图3的24个关节点为:头部运动链{H12,H13}、根节点运动链{H0,H3,H6,H9}、左臂运动链{H12,H14,H17,H19,H21,H23}、右臂运动链{H13,H16,H18,H18,H20,H22}、左腿运动链{H2,H5,H8,H11}、以及右腿运动链{H1,H4,H7,H10},各自的运动相对独立,如图3所示,因此将输入沿通道维度分为6组以分组提取特征。在编码器中,每一层网络输出分为7个部分,包括6个局部特征φg(g=1,…,6)和一个全局特征ψ,如图4(a)所示,第i层网络的输出记为i i+1从第i层网络l 到第i+1层网络l 的计算过程如下:使用全局卷积
来提取全局的信息,同时在{全局,分组}连结特征上分组进行卷积,即:
[0035]
[0036]
[0037] 其中, 均为步长为3、卷积核大小为3、空洞系数(dilation)为3的空洞卷积操作,concate为沿通道维度的连结操作。编码器最终输出一个联合的分组特征之后在解码阶段,如图4(b)所示,分组的特征φg分别输入到6个独立的解
码器 中预测三维人体模型的对应的局部运动链上的关节的位置 即:
[0038]
[0039] S40人体轨迹估计模块:本模块用于预测根节点,即图3中的H0骨盆节点在相机坐标系下的空间坐标,以得到人体轨迹。与S30类似,本模块包括编码和解码两个阶段。本模块将经S11处理得到的归一化二维人体姿态关键点中的坐标序列(0,…,T‑1)作为输入,其中帧数T=27,不同的是,本模型只输入左腿运动链和右腿运动链上的二维关键点。在编码阶段,编码器同样使用空洞卷积网络来提取输入序列的特征;在解码阶段,如图5所示,提取的特征分别经过两个不同的头部网络来预测中间帧,即第 帧的人体关节点在相机坐标系下的三维位移 和触地概率 如图5所示,网络的一个分支估计一个23维的向量,每个向量表示一个关节点的触地概率。根据S20相机校正模块估计出的相机内参矩阵 S30人体姿态估计模块预测出的相对于骨盆节点的三维关节点坐标 S40人体估计预测模块预测的骨盆节点的三维空间坐标 即可求得经过投影在二维图像平面的关节点坐标 计算过程如下:
[0040]
[0041]
[0042] 训练人体姿态估计模块和轨迹估计模块时,我们采用全监督和半监督相结合的训练方式。Human3.6M数据集中S1、S5、S6、S7、S8、S9、S11数据有真值标签,而S2、S3、S4部分只有视频数据,没有真值标签。因此在训练人体姿态估计模块和人体轨迹模块时,我们使用S1、S5、S6、S7、S8用于全监督训练,同时并入S2、S3、S4数据以半监督方式来训练,最后使用S9、S11来测试。损失函数包括人体三维关节点的误差 三维位移的误差 触地概率误差 和重投影后二维关节点误差 具体表述为:
[0043]
[0044]
[0045]
[0046]
[0047] 其中,‖·‖2表示均方误差函数, 表示向量的按位乘法运算,BCELoss表示二元交叉熵,σ(·)表示sigmoid函数, 为触地概率估计值,c为触地标签真值。我们对有标签的样本数据施加 和 惩罚,对没有标签的样本施加 惩罚。为了保证训练初期网络参数能稳定地更新,在前10个周期中只使用有标签的数据进行全监督训练,在后续的周期中引入无标签数据和重投影损失进行半监督学习
[0048] S50模型拟合模块:在此模块中,采用SMPL来表示人体。如图3所示,它是一个参数化的人体模型,可通过形状参数和姿态参数来控制整个人体网格。形状参数 表示的是经过主成分分析(PCA)后的前10个主成分的系数,姿态参数 刻画了一个由24个节点构成的人体骨架,其中 表示k号节点相对于其父节点的旋转量,其中k=
1,…,23, 表示全局旋转量。SMPL提供了一个可微函数 形状参数θ和姿态
参数β作为输入,输出一个具有N=6980个顶点的三维网格 SMPL的三维关节点
位置Psmpl可以通过正向运动学原理(FK)获得,即Psmpl=FK(θ,β,T),其中T表示人体骨架的初始状态。
[0049] 模型拟合模块根据预测得到的三维人体姿态序列、三维人体轨迹序列和触地概率,分步骤迭代优化出人体网格模型的形状参数和关节旋转量,并赋值给参数化三维人体模型以得到真实的驱动结果,分为四个步骤:1)拟合人体形状参数,经过此步可确定各骨骼长度;2)计算人体全局旋转量,经过此步可确定人体的朝向;3)沿骨骼运动链依次计算各关节的旋转量,经过此步可确定每个关节的旋转情况,即可表现出运动着的三维人体;4)将三维关节点投影到二维平面内,结合检测的二维关键点加以约束,进一步优化三维模型与二维图像的对齐情况。此模块将三维人体模型拟合到S40人体姿态估计模块预测的人体三维关节点上,以更真实地展现运动状态。拟合过程分为四个阶段。在每个阶段中,定义待更新的参数和目标函数,设定迭代周期数,使用L‑BFGS优化器进行迭代更新。
[0050] S51迭代拟合三维人体形状参数:进行实时动作捕捉时,人体的骨骼长度均动态更新,将相机拍摄的当前时刻的图像送入人体姿态估计模块估计三维关节点坐标 显然,根据人体关节点坐标可算出人体的各骨骼长度L。记基于过去帧的人体骨骼长度的估计值为在人体姿态估计模块估计出基于当前帧的估计值Lt后,我们对 进行更新,更新规则为:为当前帧的估计值。通过所有三维关节
点位置Psmpl易得骨骼向量 将 视为拟合目标,形状参数θ为待更新的参数。损失函数定义如下,其中λ1=1,λ2=0.005,迭代100次后得到最终的拟合结果。
[0051]
[0052] S52计算全局旋转量R0:R0即对应着姿态参数β中的w0。SMPL模型中的H1左臀、H2右臀、H3脊柱1确定了一个刚性结构,基于这三个关节点的初始位置(t1,t2,t3)和预测的位置(p1,p2,p3)求得一个旋转矩阵R,使(t1,t2,t3)经旋转变换后得到的向量(Rt1,Rt2,Rt3)与预测的位置(p1,p2,p3)距离和最小,使得距离最小化的R即为R0,计算得到R0,通过奇异值分解(SVD)可以得到该式的闭式解。
[0053]
[0054] 其中SO(3)∈{R|RTR=I,det(R)=±1}表示由三维旋转矩阵构成的三维旋转群。
[0055] S53计算各关节的旋转量:三维人体模型中的父节点是沿着人体运动骨骼链定义的,如图3所示,H0是H1,H2,H3的父节点,H1是H4的父节点,H2是H5的父节点,H3是H6的父节点,以此类推。记节点k在三维人体模型的初始位置为tk,目标位置为pk,重建的模型中节点k的位置为qk,记节点k所在的骨骼向量为 姿态参数wk表示节点k相对于其父节点f(k)的旋转量Rf(k),k,则节点k的绝对旋转量 首先将模型的根节点(即H0骨盆节点)对齐,有q0=p0。S52步骤得到R0后,沿着三维人体模型的树状运动链从根节点向叶子节点移动,逐步计算每个节点的相对旋转量Rf(k),k。若当前正在考虑的节点为k,重建后的节点k的父节点的位置为 初始骨骼向量
为 抵消父节点的旋转影响后得到目标骨骼向量为
记旋转轴为n,旋转角度为α,则
通过罗德里格斯公式(Rodrigues'formula)求得旋转矩阵:
[0056]
[0057] 其中I表示3×3单位矩阵,n∧表示n的反对称矩阵。则相对旋转量Rf(k),k即为[0058] S54基于检测的二维关节点和触地标签进行优化:经S51、S52、S53步骤求得的形状参数β与姿态参数θ,可得到对应的SMPL模型,SMPL模型经过线性映射回归出对应OpenPose定义关键点(见图2)的三维坐标J3D,再结合相机校正模块估计出的相机内参矩阵 即可求出SMPL模型投影后的二维关键点坐标J2D,使SMPL模型回归出的二维关键点坐标J2D与输入的二维关键点坐标X尽可能地接近。本步骤结合S11步骤生成的二维关键点检测结果X和人体轨迹预测模块预测的触地概率 进一步对人体模型SMPL进行迭代优化。待更新的参数为姿态参数β、形状参数θ,损失函数定义如下:
[0059]
[0060]
[0061]
[0062]
[0063]
[0064]
[0065] 其中thresh为设置的惩罚阈值,如一个关节点被判断为触地,但是它的高度高于这个阈值,就会对它进行惩罚。λ3=0.001,λ4=10,λ5=0.01,迭代100次得到最终优化后的结果。
[0066] 根据得到的SMPL模型参数以及旋转量参数,将三维的人体网格模型拟合到三维骨骼上,实现动作捕捉。
[0067] 综上所述,本发明提供了一种基于单目视频的多阶段人体动作捕捉方法,优势在于结合了视频时序及场景深度,通过单个摄像头捕捉动态人体动作,是一种经济高效的解决方案。本发明基于计算机程序实现,因此能基于本发明方法得到对应的人体动作捕捉电子设备或相关的计算机可读存储介质。本发明利用深度学习来获取视频序列中的空间与时序信息,学习从二维的人体关节点到相机空间中的三维人体关节点的映射关系,并感知人在三维空间中的运动轨迹,之后将三维的人体网格模型拟合到三维骨骼上。本发明明显提升了人体模型与输入图像的对齐程度,并且更真实地估计了双脚与地面的接触情况,提升了视觉效果。
QQ群二维码
意见反馈