Skip to main content
The Keypoint tool annotates object pose with keypoints and skeleton connections. It is used for pose estimation tasks such as human body pose, hand pose, and face landmarks.

When to Use

Use keypoints when:
  • The task requires pose estimation (human, animal, or custom skeletons)
  • You need to annotate body landmarks (joints, facial features, hand points)
  • The downstream model expects keypoint annotations (e.g., OpenPose, HRNet, MediaPipe)
  • You need to track articulated objects across video frames
Consider a different tool when:
  • You need object localization without pose — use the Bounding Box tool
  • You need pixel-level masks — use the Segmentation tool
  • You need to outline an object shape — use the Polygon tool

Usage

  1. Press J or select the Keypoint tool from the toolbar
  2. A skeleton template appears based on your project’s keypoint definition
  3. Click to place the first keypoint
  4. Place subsequent keypoints following the skeleton structure
  5. The viewer draws connections between keypoints automatically based on the skeleton definition
  6. Assign a label

Skeleton Definitions

Skeleton definitions are configured at the project level. A skeleton specifies:
  • Keypoint names: e.g., nose, left_eye, right_eye, left_shoulder
  • Connections: which keypoints are connected by edges
  • Visibility: each keypoint can be marked as visible, occluded, or not present
Example skeleton for human pose:
{
  "keypoints": [
    "nose", "left_eye", "right_eye", "left_ear", "right_ear",
    "left_shoulder", "right_shoulder", "left_elbow", "right_elbow",
    "left_wrist", "right_wrist", "left_hip", "right_hip",
    "left_knee", "right_knee", "left_ankle", "right_ankle"
  ],
  "connections": [
    ["left_shoulder", "right_shoulder"],
    ["left_shoulder", "left_elbow"],
    ["left_elbow", "left_wrist"],
    ["right_shoulder", "right_elbow"],
    ["right_elbow", "right_wrist"],
    ["left_hip", "right_hip"],
    ["left_hip", "left_knee"],
    ["left_knee", "left_ankle"],
    ["right_hip", "right_knee"],
    ["right_knee", "right_ankle"],
    ["left_shoulder", "left_hip"],
    ["right_shoulder", "right_hip"]
  ]
}

Editing Keypoints

  • Move a keypoint: Click and drag it
  • Set visibility: Right-click a keypoint to toggle between visible, occluded, and not present
  • Move entire skeleton: Select all keypoints and drag

Shortcuts

ShortcutAction
JActivate the Keypoint tool
Delete / BackspaceDelete selected skeleton
Ctrl+Z / ⌘ZUndo
Ctrl+Shift+Z / ⌘⇧ZRedo

Visibility States

Each keypoint has one of three visibility states:
StateMeaningWhen to use
VisibleThe keypoint is clearly visible in the imageDefault for most keypoints
OccludedThe keypoint exists but is hidden behind another objectYou can estimate its location from context
Not presentThe keypoint is not in the image at allThe body part is outside the frame or does not exist

Common Mistakes

  • Guessing occluded locations: Mark keypoints as “not present” rather than guessing their location if they are fully hidden with no contextual clues
  • Wrong skeleton assignment: Make sure the keypoint you are placing matches the correct body part in the skeleton definition
  • Inconsistent occluded vs. not present: Use occluded when you can reasonably estimate the location (e.g., hand behind back), not present when you cannot
  • Placing on clothing instead of body: Keypoints should be placed on the anatomical joint location, not on the surface of clothing

Advanced Tips

  • Place the most visible keypoints first, then fill in occluded ones
  • Use zoom for precise placement on small or distant subjects
  • Keypoints can be tracked across video frames for pose tracking workflows
  • For crowd scenes, place each person’s skeleton separately, even when they overlap
  • Use the camera projection in multi-camera setups to verify 3D keypoint positions