3D Motion Capture and Analysis
Advisor: Jack Goldfeather
Background
Motion capture is one of the hottest areas in computer graphics today.
The general idea is to "acquire 3D data" from a real person in motion and use this
data to construct a virtual 3D animated computer model of this person. This model
can then be modified (e.g. capturing motion of an actor and creating the character
Gollum in Lord of the Rings), or analyzed (e.g. looking at force vectors at every
moving joint of an athlete in order to recognize flaws in the motion which can subsequently
be corrected to improve athletic performance).
The Project
Equipment for acquiring 3D motion data can be extremely expensive For example,
you can buy full-body "motion capture suits" embedded with sophisticated electronic tracking devices at
a cost of hundreds of thousands of dollars. But it can also be done (just not quite as precisely)
with several standard digital video cameras and some good programmers who know a little mathematics.
Software (often costing hundreds of thousands of dollars) can also be purchased that
allows you to modify and analyze this data in complex ways. But simple versions of this software
can also be written by some good programmers who know a little mathematics.
You are probably getting the idea of what this project will entail. Specifically:
- Data Acquisition
- A number of video cameras are placed strategically.
- By knowing the locations of several fixed points in view of a camera, it is possible to
"calibrate" the camera. That is you can figure out where the camera is located, what direction it is
pointing, and what the focal length of the camera lens is.
- Once the cameras are calibrated in this way, a person in motion is videotaped simultaneously from
each camera. The person has "marks" that can be seen by each camera. The video from each camera is
split into individual frames and the frames are synchronized between cameras.
- Data Processing
- Software is written to automatically "track" the marks in each frame.
- If two or more cameras can see a given mark at a given time, it is possible to compute the three
dimensional location of the mark. These 3D mark positions constitute the acquired 3D data.
Data Display
A GUI is written that:
- Displays the frame by frame video from each camera.
- Displays a "stick figure" constructed by connecting appropriate marks by lines.
- Animates the stick figure using the frame to frame change in the mark positions.
- Allows this animation to be viewed from any direction and position.
- Displays force vectors at each mark position.
Tools and Skills Needed
- You will be able to check out several video cameras and tripods from PEPS. Freeware is available to
split the video into frames. I recommend using openGL, a graphics software library, for display
and animation of the stick figure. You can create an openGL graphics window within other languages (C++, Java, Python).
- Some members of the group will need to know some mathematics, specifically, multivariable calculus
and linear algebra. All members of the group should be prepared to learn some mathematics.