자세 감지

ML Kit Pose Detection API는 앱 개발자가 연속 동영상이나 정적 이미지에서 실시간으로 피사체의 자세를 감지할 수 있는 다목적 경량 솔루션입니다. 포즈는 일련의 골격 랜드마크 점과 함께 한 순간의 몸의 위치를 설명합니다. 랜드마크는 어깨 및 엉덩이와 같은 다양한 신체 부위에 해당합니다. 랜드마크의 상대적 위치를 사용하여 한 포즈를 다른 포즈와 구분할 수 있습니다.

iOS Android

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 좌표는 음수입니다. 피사체의 엉덩이 중앙 앞에 있고 카메라를 향하기 때문입니다.

명소유형직위InFrameLikelihood
11LEFT_SHOULDER(734.9671, 550.7924, -118.11934)0.9999038
12 RIGHT_SHOULDER (391.27032, 583.2485, -321.15836) 0.9999894입니다.
13 LEFT_ELBOW (903.83704, 754.676, -219.67009) 0.9836427
14 RIGHT_ELBOW (322.18152, 842.5973, -179.28519) 0.99970156
15 LEFT_WRIST (1073.8956, 654.9725, -820.93463) 0.9737737
16 RIGHT_WRIST (218.27956, 1015.70435, -683.6567) 0.995568입니다.
17 LEFT_PINKY (1146.1635, 609.6432, -956.9976) 0.95273364
18 RIGHT_PINKY (176.17755, 1065.838, -776.5006) 0.9785348

자세히 들여다보기

이 API의 기본 ML 모델 구현에 대한 자세한 내용은 Google AI 블로그 게시물을 참조하세요.

ML 공정성 관행과 모델 학습 방법에 대한 자세한 내용은 모델 카드를 참조하세요.