Skip to content
AF

ML Kit pose landmarks: the 33 PoseLandmark constants

33 landmarks · from ML Kit PoseLandmark (Android reference), page last updated 2024-10-31 · read 2026-10-17

ML Kit 33 has 33 landmarks, numbered from 0 NOSE to 32 RIGHT_FOOT_INDEX, as the int constants of com.google.mlkit.vision.pose.PoseLandmark (Android reference) defines them. The sources tie it to ML Kit Pose Detection (base and accurate SDKs). 31 of the 33 names match a point in another scheme once lowercased with separators removed; the other 2 stay unmapped. Read from the sources on 2026-10-17.

Models that output it

  • ML Kit Pose Detection (base and accurate SDKs) · ML Kit Pose DetectionEvidence: Detect poses with ML Kit on Android says “the pose detection API returns a Pose object with 33 PoseLandmarks.” (source).

All 33 landmarks

Names are copied exactly from the int constants of com.google.mlkit.vision.pose.PoseLandmark (Android reference). The index is the position the source assigns. The last column says whether another scheme on this site spells the same name, by the crosswalk rule.

IndexNameThe source’s descriptionSame name in
0NOSEThe landmark which corresponds to the nose.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, OpenPose BODY_25, OpenPose COCO 18, Apple Vision 2D
1LEFT_EYE_INNERThe landmark which corresponds to the inner left eye.BlazePose 33
2LEFT_EYEThe landmark which corresponds to the left eye.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D
3LEFT_EYE_OUTERThe landmark which corresponds to the outer left eye.BlazePose 33
4RIGHT_EYE_INNERThe landmark which corresponds to the inner left eye.BlazePose 33
5RIGHT_EYEThe landmark which corresponds to the left eye.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D
6RIGHT_EYE_OUTERThe landmark which corresponds to the outer left eye.BlazePose 33
7LEFT_EARThe landmark which corresponds to the left ear.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D
8RIGHT_EARThe landmark which corresponds to the right ear.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D
9LEFT_MOUTHThe landmark which corresponds to the left mouth.Unmapped
10RIGHT_MOUTHThe landmark which corresponds to the right mouth.Unmapped
11LEFT_SHOULDERThe landmark which corresponds to the left shoulder.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D, Apple Vision 3D
12RIGHT_SHOULDERThe landmark which corresponds to the right shoulder.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D, Apple Vision 3D
13LEFT_ELBOWThe landmark which corresponds to the left elbow.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D, Apple Vision 3D
14RIGHT_ELBOWThe landmark which corresponds to the right elbow.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D, Apple Vision 3D
15LEFT_WRISTThe landmark which corresponds to the left wrist.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D, Apple Vision 3D
16RIGHT_WRISTThe landmark which corresponds to the right wrist.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D, Apple Vision 3D
17LEFT_PINKYThe landmark which corresponds to the left pinky.BlazePose 33
18RIGHT_PINKYThe landmark which corresponds to the right pinky.BlazePose 33
19LEFT_INDEXThe landmark which corresponds to the left index finger.BlazePose 33
20RIGHT_INDEXThe landmark which corresponds to the right index finger.BlazePose 33
21LEFT_THUMBThe landmark which corresponds to the left thumb.BlazePose 33
22RIGHT_THUMBThe landmark which corresponds to the right thumb.BlazePose 33
23LEFT_HIPThe landmark which corresponds to the left hip.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D, Apple Vision 3D
24RIGHT_HIPThe landmark which corresponds to the right hip.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D, Apple Vision 3D
25LEFT_KNEEThe landmark which corresponds to the left knee.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D, Apple Vision 3D
26RIGHT_KNEEThe landmark which corresponds to the right knee.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D, Apple Vision 3D
27LEFT_ANKLEThe landmark which corresponds to the left ankle.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D, Apple Vision 3D
28RIGHT_ANKLEThe landmark which corresponds to the right ankle.BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, Apple Vision 2D, Apple Vision 3D
29LEFT_HEELThe landmark which corresponds to the left heel.BlazePose 33, Halpe26, COCO-WholeBody 133
30RIGHT_HEELThe landmark which corresponds to the right heel.BlazePose 33, Halpe26, COCO-WholeBody 133
31LEFT_FOOT_INDEXThe landmark which corresponds to the left foot index.BlazePose 33
32RIGHT_FOOT_INDEXThe landmark which corresponds to the right foot index.BlazePose 33

The source’s description of RIGHT_EYE_INNER, RIGHT_EYE and RIGHT_EYE_OUTER names the opposite side from the constant’s own name. The descriptions are copied as printed; the name and index are what the source defines.

What the sources say about the output

Copied from the sources, whitespace collapsed.

  • getPosition3D(): The Z value is an experimental feature that returns an extra Z coordinate along with X and Y. Please note that this value is less accurate than the X and Y values. (ML Kit PoseLandmark (Android reference))
  • getPosition3D(): The unit of measure for the Z value is the same as X and Y. (ML Kit PoseLandmark (Android reference))
  • getPosition3D(): The smaller the Z value, the closer that landmark is to the camera. (ML Kit PoseLandmark (Android reference))
  • getPosition3D(): Different from X and Y, Z does not have a fixed origin in the image space. The Z origin is approximately at the center of the subject’s hips. Z value will be negative if the landmark is in front of the Z origin and will be positive if the landmark is behind the Z origin. (ML Kit PoseLandmark (Android reference))
  • getPosition3D(): The Z value does not have a fixed lower or upper bound. (ML Kit PoseLandmark (Android reference))

How this list was checked

  • the Constant Values run 0 to N-1 with no gaps
  • 31 of the 33 constants have the same name and value as MediaPipe's PoseLandmark
  • 31 of 33 names are shared with another scheme; the rest are listed as unmapped.

Other schemes

Questions

What are the 33 ML Kit landmarks in index order?

The int constants of com.google.mlkit.vision.pose.PoseLandmark (Android reference) numbers them 0 NOSE, 1 LEFT_EYE_INNER, 2 LEFT_EYE, 3 LEFT_EYE_OUTER, 4 RIGHT_EYE_INNER, 5 RIGHT_EYE, 6 RIGHT_EYE_OUTER, 7 LEFT_EAR, 8 RIGHT_EAR, 9 LEFT_MOUTH, 10 RIGHT_MOUTH, 11 LEFT_SHOULDER, 12 RIGHT_SHOULDER, 13 LEFT_ELBOW, 14 RIGHT_ELBOW, 15 LEFT_WRIST, 16 RIGHT_WRIST, 17 LEFT_PINKY, 18 RIGHT_PINKY, 19 LEFT_INDEX, 20 RIGHT_INDEX, 21 LEFT_THUMB, 22 RIGHT_THUMB, 23 LEFT_HIP, 24 RIGHT_HIP, 25 LEFT_KNEE, 26 RIGHT_KNEE, 27 LEFT_ANKLE, 28 RIGHT_ANKLE, 29 LEFT_HEEL, 30 RIGHT_HEEL, 31 LEFT_FOOT_INDEX, 32 RIGHT_FOOT_INDEX.

Which pose models output ML Kit landmarks?

ML Kit Pose Detection (base and accurate SDKs): Detect poses with ML Kit on Android says “the pose detection API returns a Pose object with 33 PoseLandmarks.” Only models a fetched source ties to this scheme are listed.

How do ML Kit landmarks map to other pose keypoint schemes?

By name only. 31 of the 33 share an identical name, once lowercased with separators removed, with a point in BlazePose 33, COCO 17, Halpe26, COCO-WholeBody 133, OpenPose BODY_25, OpenPose COCO 18, Apple Vision 2D and Apple Vision 3D; 9 LEFT_MOUTH and 10 RIGHT_MOUTH do not and stay unmapped. A shared row means the names match, not that two models place the point in the same spot.

What coordinates come with ML Kit landmarks?

In the sources' words: “getPosition3D(): The Z value is an experimental feature that returns an extra Z coordinate along with X and Y. Please note that this value is less accurate than the X and Y values.” (ML Kit PoseLandmark (Android reference)); “getPosition3D(): The unit of measure for the Z value is the same as X and Y.” (ML Kit PoseLandmark (Android reference)); “getPosition3D(): The smaller the Z value, the closer that landmark is to the camera.” (ML Kit PoseLandmark (Android reference)); “getPosition3D(): Different from X and Y, Z does not have a fixed origin in the image space. The Z origin is approximately at the center of the subject’s hips. Z value will be negative if the landmark is in front of the Z origin and will be positive if the landmark is behind the Z origin.” (ML Kit PoseLandmark (Android reference)); “getPosition3D(): The Z value does not have a fixed lower or upper bound.” (ML Kit PoseLandmark (Android reference)).

Sources

Generated by scripts/fetch-pose-keypoints.mjs and compiled by AIFitnessAPI. The sources remain the authority.