콘텐츠로 건너뛰기

포즈 추정

포즈 추정 예시

포즈 추정은 이미지에서 특정 지점의 위치를 식별하는 작업으로, 일반적으로 키포인트라고 합니다. 키포인트는 관절, 랜드마크 또는 기타 특징적인 특징과 같은 물체의 다양한 부분을 나타낼 수 있습니다. 키포인트의 위치는 일반적으로 일련의 2D [x, y] 또는 3D [x, y, visible] 좌표입니다.

포즈 추정 모델의 출력은 일반적으로 각 포인트에 대한 신뢰 점수와 함께 이미지에서 객체의 키포인트를 나타내는 포인트 집합입니다. 포즈 추정은 장면에서 객체의 특정 부분과 서로에 대한 위치를 식별해야 할 때 좋은 선택입니다.



Watch: Ultralytics YOLO11 포즈 추정 튜토리얼 | 실시간 오브젝트 추적 및 사람 포즈 감지

YOLO11 포즈 모델은 -pose 접미사, 즉 yolo11n-pose.pt. 이 모델은 COCO 키포인트 데이터 세트를 사용하며 다양한 포즈 추정 작업에 적합합니다.

기본 YOLO11 포즈 모델에는 17개의 키포인트가 있으며, 각 키포인트는 인체의 다른 부분을 나타냅니다. 다음은 각 인덱스와 해당 신체 관절의 매핑입니다:

  1. 왼쪽 눈
  2. 오른쪽 눈
  3. 왼쪽 귀
  4. 오른쪽 귀
  5. 왼쪽 어깨
  6. 오른쪽 어깨
  7. 왼쪽 팔꿈치
  8. 오른쪽 팔꿈치
  9. 왼쪽 손목
  10. 오른쪽 손목
  11. 왼쪽 엉덩이
  12. 오른쪽 엉덩이
  13. 왼쪽 무릎
  14. 오른쪽 무릎
  15. 왼쪽 발목
  16. 오른쪽 발목

모델

Ultralytics YOLO11 사전 학습된 포즈 모델이 여기에 나와 있습니다. 감지, 세그먼트 및 포즈 모델은 COCO 데이터 세트에서 사전 학습된 모델이며, 분류 모델은 ImageNet 데이터 세트에서 사전 학습된 모델입니다.

모델은 처음 사용할 때 최신 Ultralytics 릴리스에서 자동으로 다운로드됩니다.

모델 크기
(픽셀)
mAPpose
50-95
mAPpose
50
속도
CPU ONNX
(ms)
속도
T4TensorRT10
(ms)
매개변수
(M)
FLOPs
(B)
YOLO11n-pose 640 50.0 81.0 52.4 ± 0.5 1.7 ± 0.0 2.9 7.6
YOLO11s-pose 640 58.9 86.3 90.5 ± 0.6 2.6 ± 0.0 9.9 23.2
YOLO11m-pose 640 64.9 89.4 187.3 ± 0.8 4.9 ± 0.1 20.9 71.7
YOLO11l-pose 640 66.1 89.9 247.7 ± 1.1 6.4 ± 0.1 26.2 90.7
YOLO11x-pose 640 69.5 91.1 488.0 ± 13.9 12.1 ± 0.2 58.8 203.3
  • mAPval 값은 단일 모델 단일 스케일에 대한 것입니다. COCO 키포인트 val2017 데이터 세트.
    복제 대상 yolo val pose data=coco-pose.yaml device=0
  • 속도 를 사용하여 COCO 값 이미지에 대한 평균을 구합니다. Amazon EC2 P4d 인스턴스입니다.
    복제 대상 yolo val pose data=coco-pose.yaml batch=1 device=0|cpu

기차

COCO8-포즈 데이터셋으로 YOLO11 모델을 훈련합니다. COCO8-pose 데이터 세트는 포즈 추정 모델을 테스트하고 디버깅하는 데 적합한 작은 샘플 데이터 세트입니다.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.yaml")  # build a new model from YAML
model = YOLO("yolo11n-pose.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo11n-pose.yaml").load("yolo11n-pose.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.yaml pretrained=yolo11n-pose.pt epochs=100 imgsz=640

데이터 집합 형식

YOLO 포즈 데이터 세트 형식은 데이터 세트 가이드에서 자세히 확인할 수 있습니다. 기존 데이터 집합을 다른 형식(예: COCO 등)에서 YOLO 형식으로 변환하려면, Ultralytics JSON2YOLO 도구를 사용하세요.

맞춤형 포즈 추정 작업을 위해 동물 포즈 추정용 타이거 포즈, 손 추적용 손 키포인트, 개 포즈 분석용 개 포즈와 같은 전문 데이터 세트도 살펴볼 수 있습니다.

Val

학습된 YOLO11n 포즈 모델 검증하기 정확성 를 호출합니다. 인수가 필요하지 않으므로 model 교육 유지 data 및 인수를 모델 속성으로 사용합니다.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list contains map50-95 of each category
yolo pose val model=yolo11n-pose.pt # val official model
yolo pose val model=path/to/best.pt # val custom model

예측

학습된 YOLO11n-포즈 모델을 사용하여 이미지에 대한 예측을 실행합니다. 예측 모드를 사용하면 이미지, 동영상 또는 실시간 스트림에 대해 추론을 수행할 수 있습니다.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image

# Access the results
for result in results:
    xy = result.keypoints.xy  # x and y coordinates
    xyn = result.keypoints.xyn  # normalized
    kpts = result.keypoints.data  # x, y, visibility (if available)
yolo pose predict model=yolo11n-pose.pt source='https://ultralytics.com/images/bus.jpg' # predict with official model
yolo pose predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model

전체 보기 predict 모드 세부 정보에서 예측 페이지로 이동합니다.

내보내기

YOLO11n 포즈 모델을 ONNX, CoreML 등과 같은 다른 형식으로 내보냅니다. 이렇게 하면 실시간 추론을 위해 다양한 플랫폼과 디바이스에 모델을 배포할 수 있습니다.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolo11n-pose.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model

사용 가능 YOLO11-내보내기 형식은 아래 표에 나와 있습니다. 내보내는 형식은 format 인수, 즉 format='onnx' 또는 format='engine'. 내보낸 모델에서 직접 예측하거나 검증할 수 있습니다. yolo predict model=yolo11n-pose.onnx. 내보내기가 완료된 후 모델에 대한 사용 예가 표시됩니다.

형식 format 인수 모델 메타데이터 인수
PyTorch - yolo11n-pose.pt -
TorchScript torchscript yolo11n-pose.torchscript imgsz, optimize, nms, batch
ONNX onnx yolo11n-pose.onnx imgsz, half, dynamic, simplify, opset, nms, batch
OpenVINO openvino yolo11n-pose_openvino_model/ imgsz, half, dynamic, int8, nms, batch, data
TensorRT engine yolo11n-pose.engine imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data
CoreML coreml yolo11n-pose.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolo11n-pose_saved_model/ imgsz, keras, int8, nms, batch
TF GraphDef pb yolo11n-pose.pb imgsz, batch
TF Lite tflite yolo11n-pose.tflite imgsz, half, int8, nms, batch, data
TF Edge TPU edgetpu yolo11n-pose_edgetpu.tflite imgsz
TF.js tfjs yolo11n-pose_web_model/ imgsz, half, int8, nms, batch
PaddlePaddle paddle yolo11n-pose_paddle_model/ imgsz, batch
MNN mnn yolo11n-pose.mnn imgsz, batch, int8, half
NCNN ncnn yolo11n-pose_ncnn_model/ imgsz, half, batch
IMX500 imx yolo11n-pose_imx_model/ imgsz, int8, data
RKNN rknn yolo11n-pose_rknn_model/ imgsz, batch, name

전체 보기 export 세부 정보에서 내보내기 페이지로 이동합니다.

자주 묻는 질문

포즈 추정( Ultralytics YOLO11 )이란 무엇이며 어떻게 작동하나요?

Ultralytics YOLO11 을 사용한 포즈 추정에는 이미지에서 키포인트라고 하는 특정 지점을 식별하는 작업이 포함됩니다. 이러한 키포인트는 일반적으로 관절이나 객체의 다른 중요한 특징을 나타냅니다. 출력에는 다음이 포함됩니다. [x, y] 좌표와 각 포인트에 대한 신뢰도 점수를 제공합니다. YOLO11-모델은 이 작업을 위해 특별히 설계되었으며 -pose 접미사와 같은 yolo11n-pose.pt. 이러한 모델은 다음과 같은 데이터 세트에 대해 사전 학습됩니다. COCO 키포인트 다양한 포즈 추정 작업에 사용할 수 있습니다. 자세한 내용은 포즈 추정 페이지.

사용자 지정 데이터 집합에서 YOLO11-pose 모델을 학습하려면 어떻게 해야 하나요?

사용자 지정 데이터 세트에서 YOLO11-pose 모델을 학습하려면 YAML 파일로 정의된 새 모델 또는 사전 학습된 모델을 로드해야 합니다. 그런 다음 지정된 데이터 세트와 매개 변수를 사용하여 학습 프로세스를 시작할 수 있습니다.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.yaml")  # build a new model from YAML
model = YOLO("yolo11n-pose.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)

훈련에 대한 자세한 내용은 훈련 섹션을 참조하세요. 코드 없이 사용자 지정 포즈 추정 모델을 훈련하기 위해 Ultralytics HUB를 사용할 수도 있습니다.

훈련된 YOLO11-pose 모델의 유효성을 검사하려면 어떻게 하나요?

YOLO11-pose 모델의 유효성 검사에는 학습 중에 유지된 동일한 데이터 세트 매개 변수를 사용하여 정확도를 평가하는 것이 포함됩니다. 다음은 예시입니다:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered

자세한 내용은 Val 섹션을 참조하세요.

YOLO11-pose 모델을 다른 형식으로 내보낼 수 있으며 그 방법은 무엇인가요?

예, YOLO11-pose 모델을 ONNX, CoreML, TensorRT 등과 같은 다양한 형식으로 내보낼 수 있습니다. 이 작업은 Python 또는 명령줄 인터페이스(CLI)를 사용하여 수행할 수 있습니다.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")

자세한 내용은 내보내기 섹션을 참조하세요. 내보낸 모델은 피트니스 트래킹, 스포츠 분석, 로봇 공학 등의 실시간 애플리케이션을 위해 엣지 디바이스에 배포할 수 있습니다.

사용 가능한 Ultralytics YOLO11 -pose 모델과 해당 성능 지표는 무엇인가요?

Ultralytics YOLO11 YOLO11n-pose, YOLO11s-pose, YOLO11m-pose 등 다양한 사전 학습된 포즈 모델을 제공합니다. 이러한 모델은 크기, 정확도(mAP) 및 속도가 다릅니다. 예를 들어, YOLO11n-pose 모델은 mAPpose50-9550.0, mAPpose5081.0을 달성합니다. 전체 목록과 성능에 대한 자세한 내용은 모델 섹션을 참조하세요.

📅1 년 전 생성됨 ✏️ 업데이트 4 일 전

댓글