explaingit

cmu-perceptual-computing-lab/openpose

Analysis updated 2026-06-20

34,060C++Audience · researcherComplexity · 4/5LicenseSetup · hard

TLDR

OpenPose detects and tracks human body joints, hands, and facial landmarks in photos and videos in real time, drawing a skeleton over each person without any wearable equipment.

Mindmap

mindmap
  root((OpenPose))
    What it does
      Body keypoints
      Hand tracking
      Face landmarks
      3D reconstruction
    How it works
      CNN confidence maps
      Multi-person detection
      Skeleton assembly
    Use cases
      Motion capture
      Sports analysis
      Sign language
      Fitness apps
    Tech
      C++
      Python
      CUDA
      Caffe
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Track athletes' joint positions in video for sports biomechanics analysis without motion capture suits.

USE CASE 2

Build a fitness app that detects whether a user is performing an exercise with correct posture using a phone camera.

USE CASE 3

Detect hand gestures in real time for a sign language recognition or human-computer interaction system.

USE CASE 4

Generate body pose keypoint data from video footage for animation, robotics, or movement research.

What is it built with?

C++PythonCUDACaffe

How does it compare?

cmu-perceptual-computing-lab/openposethealgorithms/c-plus-pluscarbon-language/carbon-lang
Stars34,06034,19033,676
LanguageC++C++C++
Setup difficultyhardeasyhard
Complexity4/51/54/5
Audienceresearcherdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1day+

Requires a CUDA-compatible NVIDIA GPU for real-time use, academic and non-commercial use only without a separate license.

Free for academic and non-commercial research only, commercial use requires a separate license from Carnegie Mellon University.

In plain English

OpenPose is a real-time computer vision library developed at Carnegie Mellon University that automatically detects and tracks the positions of human body parts in images and videos. Given a photo or a video frame, OpenPose identifies where a person's joints are, shoulders, elbows, wrists, knees, ankles, and many more, by drawing a "skeleton" of keypoints over each person in the scene. It handles multiple people simultaneously and was among the first systems to do this in real time. The library detects up to 135 keypoints across four categories: 25 points for the body and feet (covering the major joints), 21 points per hand (for detailed finger tracking), and 70 points for the face (for precise facial landmark positions). There is also a 3D reconstruction module that, when multiple camera views are available, can estimate where those joints are in three-dimensional space rather than just on a flat image. The technical approach uses deep learning models trained on large human pose datasets. A convolutional neural network (CNN) processes the image and produces confidence maps indicating where each type of joint is likely to be, then a separate algorithm assembles those detections into coherent skeletons for each individual in the scene. The body detection runtime stays constant regardless of how many people appear in the frame, which is what makes it fast enough for real-time use. You would use OpenPose for motion capture without special suits or equipment, sign language recognition, human-computer interaction systems, sports biomechanics analysis, fitness apps, animation, robotics, and any research requiring detailed understanding of how people move. It is written in C++ with Python bindings, supports CUDA-accelerated GPUs for maximum speed, and can also run on CPU-only machines at reduced speed. It is free for academic and non-commercial use.

Copy-paste prompts

Prompt 1
Run OpenPose on a video file and export the (x, y) coordinates of each body keypoint for every frame as JSON.
Prompt 2
How do I set up OpenPose with Python bindings to detect body keypoints from a single image file?
Prompt 3
Use OpenPose to compare two people's body poses frame by frame in a video and highlight differences.
Prompt 4
What is the output format of OpenPose's JSON keypoint files and how do I parse them to draw skeletons in Python?
Prompt 5
How do I run OpenPose on CPU only without a CUDA GPU, and how much slower is it?

Frequently asked questions

What is openpose?

OpenPose detects and tracks human body joints, hands, and facial landmarks in photos and videos in real time, drawing a skeleton over each person without any wearable equipment.

What language is openpose written in?

Mainly C++. The stack also includes C++, Python, CUDA.

What license does openpose use?

Free for academic and non-commercial research only, commercial use requires a separate license from Carnegie Mellon University.

How hard is openpose to set up?

Setup difficulty is rated hard, with roughly 1day+ to a first successful run.

Who is openpose for?

Mainly researcher.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub cmu-perceptual-computing-lab on gitmyhub

Verify against the repo before relying on details.