3D Pose Reconstruction
Dec 12, 2018   |   3 min read   |   casual
The task of figuring out how a person’s body is arranged in space is commonly referred to as human pose estimation. Human pose estimation is important in computer vision since it helps computers understand how a person is situated in physical space, and it also aids in interpreting how they are moving. This ability is useful for security cameras, modeling historical footage, tracking social behavior in crowds, and for safely navigating around pedestrians. While three-dimensional human pose reconstruction is already routinely performed in cinematography and in video game development, this is typically accomplished with the aid of trackers and video capture from multiple perspectives. Inferring human pose from a monocular camera, which refers to a camera with only a single-view, is one of the ultimate goals for 3D human analysis since it requires no special equipment.
Usage Demonstration
After selecting an image, the application asks you to select the approximate locations of key joints along with a region of uncertainty for each. For two joints connected by a limb, it also needs to know which one is closer to the camera. If the joints are roughly equidistant from the camera, the limb is assumed to be in the plane of the image and neither should be selected.
The application optimizes the joint locations within the regions of uncertainty and reports the selected positions on the image.
An interactive ball-and-stick model of the pose is returned.
The position of the camera can be adjusted to view the pose from different perspectives.
Installation Instructions
The application requires a Python installation equipped with the packages Pillow, numpy, scipy, and vpython.
If you are using the Anaconda Python package manager (recommended), you can run these commands in a terminal to set up a conda environment called 3dpose
with the required package dependencies.
conda create -n 3dpose numpy scipy pillow
conda activate 3dpose
conda install -c vpython vpython
To run the application, you can then git clone
it from GitHub and run the file run.py
.
git clone https://github.com/cflamant/3d-pose-reconstruction.git
cd 3d-pose-reconstruction
cd code
python run.py
Additional information: 3D Pose Reconstruction on GitHub
Additional Technical Information
My method is an extension of Reconstruction of Articulated Objects from Point Correspondences in a Single Uncalibrated Image [Taylor, 2000]. A document detailing my approach and some tests is available on GitHub.
Follow @cflamant Watch Star Fork