1.一种面向房间VR的全身三维姿态跟踪方法,其特征在于,包括以下步骤:(1)建立人体关节运动链模型,将人体17个关节划分为五条运动链C1、C2、C3、C4和C5;
其中,C1、C3链由双臂构成,C2链由头和躯干构成,C1、C2和C3三条运动链构成上肢姿态,C4和C5两条运动链构成下肢姿态,以骨盆根关节为公共根关节;
(2)由VR HMD提供的头显位置信息,根据二臂铰链关节结构,利用逆运动学获得C2链上各个关节的位置,通过角度插值进行平滑IK表现;
(3)由VR手柄提供的手柄位置信息,即C1、C3运动链上末端关节手掌的位置信息,根据三臂铰链关节结构,利用雅克比矩阵进行IK解算,获得C1、C3运动链的姿态;
(4)由C4、C5运动链建立下肢运动学模型,由9个关节8个骨骼组成,自由度为16,并利用神经网络模型对下肢运动学模型进行训练;建立下肢运动学模型的过程如下:(4‑1)下肢运动学模型由9个关节组成,由8根骨骼铰接成下肢骨架, 代表8个骨骼长度的集合,骨骼长度固定且作为先验知识;假设第i个关节的旋转角度为θi,运动参数Θ包括全局位置p、全局方向ο和所有旋转角度,其中, 正向运动学函数完成从运动参数空间到关节位置空间的映射;
(4‑2)每个关节与运动参数中定义的局部坐标变换相关联,包括从其旋转角度和从其延伸骨骼的平移;通过沿着根关节到其自身的路径乘以一系列变换矩阵来获得关节的最终坐标,关节u的全局位置表示为:
其中,Pa(u)是关节u运动树上父节点的集合,Ο是同质坐标的原点;对于3D运动模型,每个旋转分配{X,Y,Z}轴中的一个,且在每个关节处可以有多个旋转;局部坐标系中定义了平移方向,其中运动参数皆设置为0;
所述神经网络模型的结构采用五层卷积神经网络,以3个卷积层开始,内核大小分别为
5,5,3,紧跟着步长分别为4,2,1的池化;所有卷积层都含有8个通道,最后有两个完全连接层,每个层有1024个神经元,然后是一个dropout层,激活函数为ReLU;在网络末端增加运动层,网络预测对象的运动参数,由关节位置损失引导控制;
所述关节位置损失的公式如下:
其中,Y∈y是输入图像的真实关节位置, 为运动参数;
利用神经网络模型对下肢运动学模型进行训练的过程如下:首先从输入图像中获得人物边界框,将图像大小调整为224×224,使用边框填充来保持实际的图像高宽比不变,训练目标也通过边界框大小进行标准化;在ImageNet上预训练的50层残差网络作为初始模型,随机抽取1000K帧进行训练,训练网络70回合,学习率设置为在50个周期后降至0.0003,批尺寸为52,权重衰减为0.0002,动量为0.9;(5)对Kinect V2捕获的下肢图像流采用截止频率自适应低通滤波器进行处理;
(6)将滤波处理后的下肢图像传入训练好的模型中进行识别,得到下肢9个关节点的3D位置信息;
(7)将步骤(2)、步骤(3)得到的上肢关节位置与步骤(6)得到的下肢关节位置以骨盆关节为公共根关节统一到同一坐标系下。
2.根据权利要求1所述的面向房间VR的全身三维姿态跟踪方法,其特征在于,步骤(2)中,利用逆运动学获得C2链上各个关节的位置的具体过程为:根据躯干颈椎长度L1和脖子长度L2,确定C2链两个关节的偏转角度θ1和θ2,计算出两个角度后,进一步确定C2链上各个关节的位置,角度的计算公式如下:其中,L1为躯干颈椎长度,L2为脖子长度,X,Y为HMD返回的头部坐标。
3.根据权利要求1所述的面向房间VR的全身三维姿态跟踪方法,其特征在于,步骤(3)中,获得C1、C3运动链的姿态具体过程如下:(3‑1)C1、C3运动链为标准的三臂铰链关节结构,假定其结构中所有关节约束在xy平面,约束轴向量(0,0,1);
(3‑2)根据V=Jθ,θ指代运动链上各个关节的速度,J指雅可比矩阵,向量V表示末端关节的线速度和角速度,C1运动链末端关节为右手掌,C3运动链末端关节为左手掌,其对应的线速度和角速度都与其当前的位置和朝向以及目标位置相关,以三维空间形式表示为:其中,E表示末端关节,G为所移动到的目标位置;
由当前姿势下各个关节变化导致的末端关节变化的矩阵,求出雅可比矩阵J的逆矩阵J+,进一步得到各个关节的速度θ;
(3‑3)计算关节自由度的改变Δθ=J+·Δe,将更改应用于自由度,末端关节移动一小步,距离变化为αΔθ:θ=θ+αΔθ,从而平滑逆运动学恢复双臂运动姿态;其中,α为平滑系数。