What to look for in a keypoint tool
Keypoints are less forgiving than boxes. A box drawn a little loose still trains a detector. A keypoint dataset where one annotator swaps left and right wrists, or skips the hidden elbow, trains a model to make the same mistakes. Four things decide how much cleanup you will do later:
- A skeleton the tool knows. Named points in a fixed order, and the edges between them, so every person is labeled the same way.
- Occluded points. COCO separates "labeled but not visible" (v = 1) from "not labeled" (v = 0). A tool that cannot record the difference loses information your model can use.
- Clean COCO keypoint export. Most pose models train on COCO's layout. Every conversion script you write is a place for points to get reordered.
- Review. Someone has to check the labels before they become training data.

The comparison
| CVAT | Label Studio | Roboflow | DataTorch | |
|---|---|---|---|---|
| Skeleton (points and edges) | yes, skeleton shapes | no built-in skeleton | yes, skeleton editor | yes, defined on the label |
| Occluded points | occluded, outside and hidden flags per point | not annotatable (per MMPose's guide) | not covered in the docs we checked | Shift+click stores visibility 1 |
| COCO keypoint export | COCO Keypoints | needs a parent rectangle and a model index per point | not covered in the docs we checked | COCO, with visibility flags |
| Where it runs | cloud, or self-hosted (open source, MIT) | cloud, or self-hosted (open source, Apache 2.0) | cloud | cloud, or on-prem deployment |
| Best at | free, open source self-hosting | many data types in one tool | labeling and training in one place | review, sign-off and audit history around the labels |
"Not covered in the docs we checked" means exactly that. If a feature matters to you, check the vendor's current documentation.
CVAT
CVAT has a dedicated skeleton shape. You define the points and edges once, then place whole skeletons. Each point behaves as its own object, with its own outside, occluded and hidden flags, and skeletons export as COCO Keypoints or in CVAT's own format. The Community edition is open source under the MIT license and self-hostable, with a paid Enterprise tier on top.
Choose it if you want a free tool you can run on your own servers and are comfortable maintaining it.
Label Studio
Label Studio handles text, audio, video and images in one tool, which is its real strength. For keypoints it uses KeyPointLabels, which are single points. Its community forum says there is no built-in skeleton grouping. COCO export works for keypoints when every point sits under a parent rectangle and each keypoint label has a model_index that sets its order. MMPose ships a conversion script and notes that visibility cannot be annotated, so labeled points come out as visible. The open source edition is Apache 2.0.
Choose it if keypoints are one task among many and you already use it for other data.
Roboflow
Roboflow supports keypoint detection projects with a skeleton editor. You place and name points, connect them with edges, and the skeleton sets the default positions, names and colors for every object. Any layout works, not only COCO's 17 points. Its main draw is that labeling, training and deployment live in one cloud product.
Choose it if you want to go from labels to a trained model without leaving one product.
DataTorch
In DataTorch the skeleton lives on the label: a keypoints list of names and a skeleton list of pairs. The annotator, the overlay and the export all follow that one definition. You click points in order while the cursor shows the next name. A plain click stores a visible point (v = 2) and a Shift+click stores an occluded one (v = 1). Export is COCO, with the visibility flags intact, and COCO keypoints can be imported too. Labels go through the same review and sign-off as boxes and polygons, every change is attributed in an append-only history, and DataTorch can be deployed on-prem.
Choose it if several people label and review together, or if your data has to stay in your own environment.
Step by step: how to annotate keypoints in DataTorch. The keypoint tool itself: keypoint annotation in DataTorch.
Sources
Checked 2026-10-24.
- CVAT skeletons: https://docs.cvat.ai/docs/manual/advanced/skeletons
- CVAT licensing: https://docs.cvat.ai/docs/getting_started/overview/
- Label Studio export guide (KeyPointLabels to COCO): https://labelstud.io/guide/export
- Label Studio forum, keypoint skeleton instances: https://community.labelstud.io/t/how-do-i-approach-keypoint-skeleton-instances/607
- Label Studio license: https://github.com/HumanSignal/label-studio
- MMPose, Label Studio keypoint guide: https://mmpose.readthedocs.io/en/latest/user_guides/label_studio.html
- Roboflow keypoint skeletons: https://docs.roboflow.com/annotate/edit-keypoint-skeletons
Try keypoint annotation with a skeleton
Define your skeleton once and label in the browser, with your team.
Frequently asked questions
What is the best free keypoint annotation tool?
It depends on where you want it to run. CVAT's Community edition is open source under the MIT license and can be self-hosted. Label Studio's open source edition is Apache 2.0. DataTorch lets you start a private project for free in the browser.
Which keypoint annotation tools support skeletons?
CVAT, Roboflow and DataTorch let you define a skeleton (named points and the edges between them). Label Studio's KeyPointLabels are single points, with no built-in skeleton, according to its community forum.
Which tools export COCO keypoints?
CVAT exports skeletons as COCO Keypoints. DataTorch exports COCO with visibility flags. Label Studio supports COCO export for keypoints only when each point is linked to a parent rectangle and given a model index.
Can I mark occluded keypoints?
In CVAT each skeleton point can be marked occluded or outside. In DataTorch a Shift+click stores an occluded point with COCO visibility 1. MMPose's Label Studio guide notes that visibility cannot be annotated there.
