Discrepency between bone_list, JSON output and online documentation of joint connections, which to consider?

Ridwan Whitehead 0 Reputation points
2023-10-11T11:08:45.96+00:00

Hi all,

I am a researcher using Azure kinects to analyze posture behavior. I cloned the Azure Kinect Samples repo from GitHub, then built and used the offline_processor to work on my own .mkv videos captured using azure kinects to obtain body tracking output. On a test example I was working on, I realized some sort of issue. The JSON output for the body tacking includes a bone_list matrix array that has names of joints. The JSON output gave me 31 joints, however, the joint positions that is outputted includes 32 rows with values, indicating that there are 32 joints. When I looked up the official documentation (https://learn.microsoft.com/en-us/azure/kinect-dk/body-joints) there seems to be 32 joints (0 to 31). Now, the reason I am confused is I am not sure what to consider while determine what coordinates refer to which joints. I assume as well that the bone_list is probably not incomplete as well as the ordering is different, which is needed to identify corresponding coordinates.

I would appreciate any insight on what to consider. Below I have some screenshots, I am using R to process my data.

User's image

User's image

Thanks!

Azure Kinect DK
Azure Kinect DK
A Microsoft developer kit and peripheral device with advanced artificial intelligence sensors for sophisticated computer vision and speech models.
287 questions
0 comments No comments
{count} votes

1 answer

Sort by: Most helpful
  1. LeelaRajeshSayana-MSFT 13,621 Reputation points
    2023-10-11T20:52:02.83+00:00

    Hi @Ridwan Whitehead Greetings! Welcome to Microsoft Q&A forum. Thank you for posting this question here.

    The JSON output gave me 31 joints, however, the joint positions that is outputted includes 32 rows with values, indicating that there are 32 joints.

    Can you share more details on how you are capturing the body tracking joints though your code and pushing into a JSON file. What I believe is happening is that you are getting two sets of data here. One is the joint name data which would have 32 records in it. The other set of data is the parent joint data which would have 31 records in it. This is indicated in the Joint hierarchy section of the documentation.

    I also recommend reviewing the documentation on Get body tracking results where you can access body frame details which would give you the joint position and orientation details. Kindly observe the results using this approach and let us know if you notice any improvements.