Unity中的Azure Kinect身体跟踪功能坐标。

问题描述 投票:0回答:1

我是一个使用C#、Unity和Azure Kinect SDK编程的完全新手。

作为项目的一部分,我的目标是读出身体的某些点(所谓的关节),例如脖子、肩膀_左、眼睛_右......。因此,我的工作与微软的Azure Kinect相机与身体跟踪SDK(https:/docs.microsoft.comd-deazureKinect-dkbody-sdk-setup。). 作为我的项目的一部分,我需要在unity项目中加入身体跟踪功能。在与相机的连接中,这工作非常好,我可以直观地看到结果。 然而,我对读取被跟踪的单个关节的坐标很感兴趣,因为我需要在下一步工作中使用它们。因此我的问题是。

你们谁有在Unity环境下使用Body Tracking Function的经验,并能帮助获得特定关节的坐标,例如在一个额外的本地数据库中?

c# unity3d azurekinect
1个回答
1
投票

骨架数据可以每帧访问,有4个属性。

  1. 类型--关节的名称(如 "头")。
  2. 跟踪状态--跟踪置信度。
  3. 位置--关节的XYZ坐标。
  4. 方向--关节相对于其父关节的方向。

每个关节可以通过以下方式访问。

List bodies = frame.BodyFrameSource.Bodies; // Gets all the skeleton data from a specific frame...

foreach (Body body in bodies) // Itterates through every body object in the frame...
{
    Joint head = body.Joints[JointType.Head]; // Gets the joint data for specifically the head joint...
    Vector3 position = head.Position; // Gets the position data of the head joint...
}

来源:

  1. https:/pterneas.com20200319azure-kinect。;
  2. https:/docs.microsoft.comen-usprevious-versionswindowskinectdn758665(v=ieb.10);
  3. https:/books.google.nlbooks? id=Q7UwDwAAQBAJ&pg=PA105&lpg=PA105&dq=bodyframesource&source=bl&ots=5VEGYtRy3t&sig=ACfU3U1eVs28KsG6Xcegoq3X8eGK0Qxtag&amp。 hl=nl&sa=X&ved=2ahUKEwjpwcnW06rpAhUH3aQKHVjNCuwQ6AEwBHoECAoQAQ#v=onepage&q=bodyframesource&f=false。;
  4. https:/kinect.github.iotutoriallab06index.html。;
  5. https:/docs.microsoft.comen-usazurekinect-dkbody-joints。;
© www.soinside.com 2019 - 2024. All rights reserved.