ML Kit Pose Detection API는 앱 개발자가 연속 동영상이나 정적 이미지에서 실시간으로 피사체의 자세를 감지할 수 있는 다목적 경량 솔루션입니다. 포즈는 일련의 골격 랜드마크 점과 함께 한 순간의 몸의 위치를 설명합니다. 랜드마크는 어깨 및 엉덩이와 같은 다양한 신체 부위에 해당합니다. 랜드마크의 상대적 위치를 사용하여 한 포즈를 다른 포즈와 구분할 수 있습니다.
ML Kit 자세 감지는 얼굴의 특징 (귀, 눈, 입, 코)과 손과 발을 가리키는 전신 33점 골격 일치 결과를 생성합니다.
아래의 그림 1은 카메라를 통해 사용자를 바라보는 랜드마크를 보여주므로 미러 이미지입니다. 사용자의 오른쪽이 이미지 왼쪽에 표시됩니다.
그림 1. 랜드마크
ML Kit 자세 감지는 뛰어난 결과를 얻기 위해 전문 장비나 ML 전문 지식이 필요하지 않습니다. 이 기술을 통해 개발자는 단 몇 줄의 코드로 사용자를 위한 독특한 환경을 만들 수 있습니다.
자세를 인식하려면 사용자의 얼굴이 있어야 합니다. 자세 감지는 피사체의 전신이 프레임에 보일 때 가장 잘 작동하지만 일부 신체 자세도 감지할 수 있습니다. 이 경우 인식되지 않는 랜드마크에 이미지 외부의 좌표가 할당됩니다.
주요 기능
교차 플랫폼 지원 Android와 iOS에서 동일한 환경을
즐길 수 있습니다.
전신 추적 이 모델은 손과 발의 위치를 포함하여 33개의 주요 골격 랜드마크 지점을 반환합니다.
InFrameLikelihood 점수 각 랜드마크에 대해 랜드마크가 이미지 프레임 내에 있을 확률을 나타내는 측정값입니다. 점수 범위는 0.0~1.0이며, 1.0은 신뢰도가 높음을 나타냅니다.
최적화된 SDK 2개: 기본 SDK는 Pixel 4 및 iPhone X와 같은 최신 휴대전화에서 실시간으로 실행됩니다. 각각 ~30 및 ~45fps의 속도로 결과를 반환합니다. 그러나 랜드마크 좌표의 정밀도는 다를 수 있습니다.
정확한 SDK는 느린 프레임 속도로 결과를 반환하지만 더 정확한 좌표 값을 생성합니다.
심도 분석을 위한 Z 좌표 이 값은 사용자의 신체 일부가 사용자의 엉덩이 앞에 있는지 아니면 뒤쪽에 있는지 확인하는 데 도움이 될 수 있습니다. 자세한 내용은 아래의 Z 좌표 섹션을 참고하세요.
Pose Detection API는 일련의 랜드마크와 위치를 반환한다는 점에서 Facial Recognition API와 유사합니다. 하지만 얼굴 인식은 웃는 입이나 벌리고 있는 눈과 같은 특징을 인식하려고 하지만 포즈 감지는 포즈의 특징이나 포즈 자체에 어떤 의미도 부여하지 않습니다. 포즈를 해석하는 자체 알고리즘을 만들 수 있습니다. 몇 가지 예는 포즈 분류 팁을 참고하세요.
자세 감지는 이미지 속 한 사람만 감지할 수 있습니다. 이미지에 두 사람이 있으면 모델은 신뢰도가 가장 높은 사람에게 랜드마크를 할당합니다.
Z 좌표
Z 좌표는 모든 랜드마크에 대해 계산되는 실험적 값입니다. X 및 Y 좌표와 같은 '이미지 픽셀'로 측정되지만 실제 3D 값은 아닙니다. Z축은 카메라와 직각을 이루며 피사체의 엉덩이 사이를 지나갑니다. Z축의 원점은 엉덩이 사이의 대략적인 중심점 (카메라를 기준으로 왼쪽/오른쪽 및 전면/후면)입니다.
음수 Z 값은 카메라 방향이고 양수 값은 카메라에서 멀어집니다.
Z 좌표에는 상한 또는 하한이 없습니다.
결과 샘플
다음 표는 오른쪽 포즈에 있는 몇 가지 랜드마크의 좌표와 InFrameLikelihood를 보여줍니다. 사용자의 왼손의 Z 좌표는 음수입니다. 피사체의 엉덩이 중앙 앞에 있고 카메라를 향하기 때문입니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-07-25(UTC)"],[[["\u003cp\u003eML Kit's Pose Detection API enables real-time body pose tracking in apps, using skeletal landmark points to identify body positions.\u003c/p\u003e\n"],["\u003cp\u003eIt offers cross-platform support, full-body tracking with 33 landmarks including hands and feet, and InFrameLikelihood scores for landmark accuracy.\u003c/p\u003e\n"],["\u003cp\u003eTwo SDK options are available: a base SDK for real-time performance and an accurate SDK for higher precision landmark coordinates.\u003c/p\u003e\n"],["\u003cp\u003eThe API is currently in beta and subject to change.\u003c/p\u003e\n"]]],[],null,["# Pose detection\n\nThis API is offered in beta, and is not subject to any SLA or deprecation policy. Changes may be made to this API that break backward compatibility. \n\nThe ML Kit Pose Detection API is a lightweight versatile solution for app\ndevelopers to detect the pose of a subject's body in real time from a\ncontinuous video or static image. A pose describes the body's position at one\nmoment in time with a set of skeletal landmark points. The landmarks\ncorrespond to different body parts such as the shoulders and hips. The relative\npositions of landmarks can be used to distinguish one pose from another.\n\n[iOS](/ml-kit/vision/pose-detection/ios)\n[Android](/ml-kit/vision/pose-detection/android)\n\nML Kit Pose Detection produces a full-body 33 point skeletal match that includes\nfacial landmarks (ears, eyes, mouth, and nose) and points on the hands and feet.\nFigure 1 below shows the landmarks looking through the camera at the user, so\nit's a mirror image. The user's right side appears on the left of the image: \n**Figure 1.**Landmarks\n\nML Kit Pose Detection doesn't require specialized equipment or ML expertise in\norder to achieve great results. With this technology developers can create one\nof a kind experiences for their users with only a few lines of code.\n\nThe user's face must be present in order to detect a pose. Pose detection works\nbest when the subject's entire body is visible in the frame, but it also\ndetects a partial body pose. In that case the landmarks that are not\nrecognized are assigned coordinates outside of the image.\n\nKey capabilities\n----------------\n\n- **Cross-platform support** Enjoy the same experience on both Android and iOS.\n- **Full body tracking** The model returns 33 key skeletal landmark points, including the positions of the hands and feet.\n- **InFrameLikelihood score** For each landmark, a measure that indicates the probability that the landmark is within the image frame. The score has a range of 0.0 to 1.0, where 1.0 indicates high confidence.\n- **Two optimized SDKs** The base SDK runs in real time on modern phones like the Pixel 4 and iPhone X. It returns results at the rate of \\~30 and \\~45 fps respectively. However, the precision of the landmark coordinates may vary. The accurate SDK returns results at a slower framerate, but produces more accurate coordinate values.\n- **Z Coordinate for depth analysis** This value can help determine whether parts of the users body are in front or behind the users' hips. For more information, see the [Z Coordinate](#z_coordinate) section below.\n\nThe Pose Detection API is similar to the [Facial Recognition API](/ml-%0Akit/vision/face-detection) in that it returns a set of landmarks and their\nlocation. However, while Face Detection also tries to recognize features such as\na smiling mouth or open eyes, Pose Detection does not attach any meaning to the\nlandmarks in a pose or the pose itself. You can create your own algorithms to\ninterpret a pose. See\n[Pose Classification Tips](/ml-kit/vision/pose-detection/classifying-poses) for\nsome examples.\n\nPose detection can only detect one person in an image. If two people are in the\nimage, the model will assign landmarks to the person detected with the highest\nconfidence.\n\nZ Coordinate\n------------\n\nThe Z Coordinate is an experimental value that is calculated for every landmark. It\nis measured in \"image pixels\" like the X and Y coordinates, but it is not a true\n3D value. The Z axis is perpendicular to the camera and passes between\na subject's hips. The origin of the Z axis is approximately the center point\nbetween the hips (left/right and front/back relative to the camera).\nNegative Z values are towards the camera; positive values are away from it.\nThe Z coordinate does not have an upper or lower bound.\n\nSample results\n--------------\n\nThe following table shows the coordinates and InFrameLikelihood for a few\nlandmarks in the pose to the right. Note that the Z coordinates for the user's\nleft hand are negative, since they are in front of the subject's hips' center\nand towards the camera. \n\n| Landmark | Type | Position | InFrameLikelihood |\n|----------|----------------|------------------------------------|-------------------|\n| 11 | LEFT_SHOULDER | (734.9671, 550.7924, -118.11934) | 0.9999038 |\n| 12 | RIGHT_SHOULDER | (391.27032, 583.2485, -321.15836) | 0.9999894 |\n| 13 | LEFT_ELBOW | (903.83704, 754.676, -219.67009) | 0.9836427 |\n| 14 | RIGHT_ELBOW | (322.18152, 842.5973, -179.28519) | 0.99970156 |\n| 15 | LEFT_WRIST | (1073.8956, 654.9725, -820.93463) | 0.9737737 |\n| 16 | RIGHT_WRIST | (218.27956, 1015.70435, -683.6567) | 0.995568 |\n| 17 | LEFT_PINKY | (1146.1635, 609.6432, -956.9976) | 0.95273364 |\n| 18 | RIGHT_PINKY | (176.17755, 1065.838, -776.5006) | 0.9785348 |\n\nUnder the hood\n--------------\n\nFor more implementation details on the underlying ML models for this API, check\nout our [Google AI blog post](https://ai.googleblog.com/2020/08/on-device-real-time-body-pose-tracking.html).\n\nTo learn more about our ML fairness practices and how the models were trained,\nsee our [Model Card](/static/ml-kit/images/vision/pose-detection/pose_model_card.pdf)"]]