Keypoint annotation
Reviewers click to place labelled points on an image: eyes, joints, corners, landmarks.
When to use it
- Facial landmarks
- Body pose joints
- Corners of a document or plate
- Anatomical landmarks
What your file looks like
Each row links one image. The labels for the points, such as pupil or corner, are defined in the form rather than in the file. A file like this is enough:
id,image
1,https://example.com/faces/001.jpgWhat reviewers see
The image, a row of label buttons and a list of the points placed. A click places a point with the selected label.
What a reviewer submits
A keypoint is one point as fractions of the image width and height, with a label.
{
"answer": {
"points": [
{
"label": "left eye",
"x": 0.35,
"y": 0.4
},
{
"label": "right eye",
"x": 0.62,
"y": 0.4
}
]
}
}What you get back
Points are the same when they carry the same label and lie within 0.05 of each other, measured as a fraction of the image. The exported point is the average of the group.
{
"n": 3,
"value": [
{
"label": "left eye",
"x": 0.35,
"y": 0.4
}
],
"agreement": null,
"tie": false
}Quality checks
- Majority filtering drops points only one person placed.
- Name the exact landmark in the label, for example pupil centre rather than eye.
- Check inter-reviewer distance on a sample before scaling up.
Tips
- Use images with enough resolution that a click lands within a few pixels of the target.
- Fix the order of the labels so reviewers build a rhythm.
- For skeletons with links between points, export the points and join them in your own pipeline.
Limits
Up to 100 points per image and 20 labels. Skeleton links between points are not stored.
Frequently asked questions
Can a keypoint have visibility flags?
Not as a field. Use separate labels such as left knee visible and left knee hidden if you need it.
How close must two points be to agree?
Within 0.05 of the image size, which is five percent of the width or height in the same coordinate space.