Jump to content
  • Advertisement
Sign in to follow this  
dgma9271

How mocap system figure out bones and joints?

This topic is 3086 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I'm just wondering how mocap system detect bones from markers. I mean the model just wears some markers and camera
detects their positions. What i don't understand is how the mocap system figure out say hand bones or elbow joints
specifically frame by frame from different angles and export it to bvh file? What process do they use? Thanks.

Share this post


Link to post
Share on other sites
Advertisement
Well, there's a lot going on there. The basic process:

1. Determine marker positions in 2D for each camera.
2. Use multiple camera views, combined with camera calibration information, to reconstruct 3D marker positions.
3. Use marker distances, temporal coherence, and other heuristics to uniquely identify markers (left wrist front marker, right pelvis marker, etc.)
4. Determine approximate limb transformations.
5. Solve for joint angles.

There's a lot of filtering and other sub-steps going on in there, though.

Share this post


Link to post
Share on other sites
Just adding to what Sneftel said, there are two distinct steps in mocap. The first one is figuring the 3D positions of a set of points using multiple well-calibrated cameras. This information is recorded as a simple point cloud: there's no information about which point corresponds to which body part.

The point cloud must then be mapped to a skeleton. This is usually done by taking a few frames or standard positions captured with the point cloud and manually positioning a skeleton to match each pose, creating an unique identification for each point. With this information, an algorithm can then analyze other frames in the point cloud data and try to track where each point moved to, and deduce the limb position.

It's not a perfect process, however. Even with a dozen cameras occlusion is an issue, and it may be necessary to manually pose the skeleton for additional frames in a recording to help the software when it becomes confused.

Share this post


Link to post
Share on other sites
Thanks Sneftel and Manoel Balbino for the info.

> Manoel Balbino said:
>The point cloud must then be mapped to a skeleton. This is usually done by taking a few frames or standard positions captured with the point cloud and manually
>positioning a skeleton to match each pose, creating an unique identification for each point. With this information, an algorithm can then analyze other frames in the
>point cloud data and try to track where each point moved to, and deduce the limb position.

Where can I get more information about the mathematical process for mapping skeleton to point clouds?

Share this post


Link to post
Share on other sites
Quote:
Original post by Storyyeller
If occlusion is an issue, why not use a nonvisible wavelength? Cost?

Mocap systems like that exist, but they're very susceptible to magnetic interference. Really, occlusion isn't a major issue as long as you have enough cameras, which you'd need anyway for robust reconstruction. Above a certain marker density, my guess is that occlusion is helpful for reconstruction.

Share this post


Link to post
Share on other sites
>Manoel Balbino said:
>The point cloud must then be mapped to a skeleton. This is usually done by taking a few
>
>frames or standard positions captured with the point cloud and manually positioning a
>
>skeleton to match each pose, creating an unique identification for each point. With this
>
>information, an algorithm can then analyze other frames in the point cloud data and try to
>
>track where each point moved to, and deduce the limb position.

But how do you manually position skeleton? Don't you first need to detect elbow marker or clav marker in each individual frame?

Because without that how would you know that my lower arm has moved and export the rotation angle(or translation) to bvh file?
My question is don't you first need to detect which marker is which in each frame? or you deduce it some other way? Can you
kindly explain the procedure? What i am meaning to say is: Say frame 1 captured the stable position of elbow. then in frame 2
elbow moved. Without detecting which marker is which how would it possible to know that in frame 2 my elbow moved? How can you
tell that frame 2's elbow is really frame 1's elbow?

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!