0

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

作为项目的一部分,我的目标是读出身体的某些点(所谓的关节),例如颈部、肩部左手、眼睛右眼……。因此,我正在使用 Microsoft 的 Azure Kinect 摄像头和身体跟踪 SDK ( https://docs.microsoft.com/de-de/azure/Kinect-dk/body-sdk-setup )。作为我项目的一部分,我需要将身体跟踪功能包含到一个统一项目中。与相机连接起来效果很好,我可以直观地看到结果。但是,我有兴趣读出跟踪的各个关节的坐标,因为我需要在下一步中使用它们。因此我的问题是:

你们中是否有人在统一环境中使用身体跟踪功能有任何经验,并且可以帮助获取特定关节的坐标,例如在额外的本地数据库中?

4

1 回答 1

1

骨架数据可以按帧访问,并具有 4 个属性:

  1. 类型 - 关节的名称(例如“头部”);
  2. 跟踪状态 - 跟踪置信度;
  3. Position - 关节的 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.com/2020/03/19/azure-kinect/
  2. https://docs.microsoft.com/en-us/previous-versions/windows/kinect/dn758665(v=ieb.10)
  3. https://books.google.nl/books?id=Q7UwDwAAQBAJ&pg=PA105&lpg=PA105&dq=bodyframesource&source=bl&ots=5VEGYtRy3t&sig=ACfU3U1eVs28KsG6Xcegoq3X8eGK0Qxtag&hl=nl&sa=X&ved=2ahUKEwjpwcnW06rpAhUH3aQKHVjNCuwQ6AEwBHoECAoQAQ#v=onepage&q=bodyframesource&f=false ;
  4. https://kinect.github.io/tutorial/lab06/index.html
  5. https://docs.microsoft.com/en-us/azure/kinect-dk/body-joints
于 2020-05-11T01:46:53.243 回答