μ½˜ν…μΈ λ‘œ κ±΄λ„ˆλ›°κΈ°

포즈 μΆ”μ •

포즈 μΆ”μ • μ˜ˆμ‹œ

포즈 좔정은 μ΄λ―Έμ§€μ—μ„œ νŠΉμ • μ§€μ μ˜ μœ„μΉ˜λ₯Ό μ‹λ³„ν•˜λŠ” μž‘μ—…μœΌλ‘œ, 일반적으둜 ν‚€ν¬μΈνŠΈλΌκ³  ν•©λ‹ˆλ‹€. ν‚€ν¬μΈνŠΈλŠ” κ΄€μ ˆ, λžœλ“œλ§ˆν¬ λ˜λŠ” 기타 νŠΉμ§•μ μΈ νŠΉμ§•κ³Ό 같은 물체의 λ‹€μ–‘ν•œ 뢀뢄을 λ‚˜νƒ€λ‚Ό 수 μžˆμŠ΅λ‹ˆλ‹€. ν‚€ν¬μΈνŠΈμ˜ μœ„μΉ˜λŠ” 일반적으둜 일련의 2D [x, y] λ˜λŠ” 3D [x, y, visible] μ’Œν‘œμž…λ‹ˆλ‹€.

포즈 μΆ”μ • λͺ¨λΈμ˜ 좜λ ₯은 일반적으둜 각 ν¬μΈνŠΈμ— λŒ€ν•œ μ‹ λ’° μ μˆ˜μ™€ ν•¨κ»˜ μ΄λ―Έμ§€μ—μ„œ 객체의 ν‚€ν¬μΈνŠΈλ₯Ό λ‚˜νƒ€λ‚΄λŠ” 포인트 μ§‘ν•©μž…λ‹ˆλ‹€. 포즈 좔정은 μž₯λ©΄μ—μ„œ 객체의 νŠΉμ • λΆ€λΆ„κ³Ό μ„œλ‘œμ— λŒ€ν•œ μœ„μΉ˜λ₯Ό 식별해야 ν•  λ•Œ 쒋은 μ„ νƒμž…λ‹ˆλ‹€.


Watch: 포즈 μΆ”μ • Ultralytics YOLO .

Watch: 포즈 좔정을 μœ„ν•œ Ultralytics HUB.

팁

YOLO11 포즈 λͺ¨λΈμ€ -pose 접미사, 즉 yolo11n-pose.pt. 이 λͺ¨λΈμ€ COCO ν‚€ν¬μΈνŠΈ 데이터 μ„ΈνŠΈλ₯Ό μ‚¬μš©ν•˜λ©° λ‹€μ–‘ν•œ 포즈 μΆ”μ • μž‘μ—…μ— μ ν•©ν•©λ‹ˆλ‹€.

κΈ°λ³Έ YOLO11 포즈 λͺ¨λΈμ—λŠ” 17개의 ν‚€ν¬μΈνŠΈκ°€ 있으며, 각 ν‚€ν¬μΈνŠΈλŠ” 인체의 λ‹€λ₯Έ 뢀뢄을 λ‚˜νƒ€λƒ…λ‹ˆλ‹€. λ‹€μŒμ€ 각 μΈλ±μŠ€μ™€ ν•΄λ‹Ή 신체 κ΄€μ ˆμ˜ λ§€ν•‘μž…λ‹ˆλ‹€:

0: μ½” 1: μ™Όμͺ½ 눈 2: 였λ₯Έμͺ½ 눈 3: μ™Όμͺ½ κ·€ 4: 였λ₯Έμͺ½ κ·€ 5: μ™Όμͺ½ μ–΄κΉ¨ 6: 였λ₯Έμͺ½ μ–΄κΉ¨ 7: μ™Όμͺ½ νŒ”κΏˆμΉ˜ 8: 였λ₯Έμͺ½ νŒ”κΏˆμΉ˜ 9: μ™Όμͺ½ 손λͺ© 10: 였λ₯Έμͺ½ 손λͺ© 11: μ™Όμͺ½ 엉덩이 12: 였λ₯Έμͺ½ 엉덩이 13: μ™Όμͺ½ 무릎 14: 였λ₯Έμͺ½ 무릎 15: μ™Όμͺ½ 발λͺ© 16: 였λ₯Έμͺ½ 발λͺ©

λͺ¨λΈ

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-pose 데이터 μ„ΈνŠΈμ—μ„œ YOLO11-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 ν˜•μ‹μœΌλ‘œ λ³€ν™˜ν•˜λ €λ©΄ JSON2YOLO 도ꡬ( Ultralytics)λ₯Ό μ‚¬μš©ν•˜μ„Έμš”.

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
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 λͺ¨λ“œ μ„ΈλΆ€ μ •λ³΄μ—μ„œ 예츑 νŽ˜μ΄μ§€λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.

내보내기

ONNX, CoreML λ“±κ³Ό 같은 λ‹€λ₯Έ ν˜•μ‹μœΌλ‘œ 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 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, batch
ONNX onnx yolo11n-pose.onnx βœ… imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolo11n-pose_openvino_model/ βœ… imgsz, half, int8, batch
TensorRT engine yolo11n-pose.engine βœ… imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolo11n-pose.mlpackage βœ… imgsz, half, int8, nms, batch
TF SavedModel saved_model yolo11n-pose_saved_model/ βœ… imgsz, keras, int8, batch
TF GraphDef pb yolo11n-pose.pb ❌ imgsz, batch
TF Lite tflite yolo11n-pose.tflite βœ… imgsz, half, int8, batch
TF Edge TPU edgetpu yolo11n-pose_edgetpu.tflite βœ… imgsz
TF.js tfjs yolo11n-pose_web_model/ βœ… imgsz, half, int8, 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

전체 보기 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)

κ΅μœ‘μ— λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ ꡐ윑 μ„Ήμ…˜μ„ μ°Έμ‘°ν•˜μ„Έμš”.

ν›ˆλ ¨λœ 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-포즈, YOLO11s-포즈, YOLO11m-포즈 λ“± λ‹€μ–‘ν•œ 사전 ν•™μŠ΅λœ 포즈 λͺ¨λΈμ„ μ œκ³΅ν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ λͺ¨λΈμ€ 크기, 정확도(mAP) 및 속도가 λ‹€λ¦…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, YOLO11n-pose λͺ¨λΈμ€ mAPpose50-9550.4, mAPpose5080.1을 λ‹¬μ„±ν•©λ‹ˆλ‹€. 전체 λͺ©λ‘κ³Ό μ„±λŠ₯에 λŒ€ν•œ μžμ„Έν•œ λ‚΄μš©μ€ λͺ¨λΈ μ„Ήμ…˜μ„ μ°Έμ‘°ν•˜μ„Έμš”.

πŸ“…1 λ…„ μ „ 생성됨 ✏️ 1κ°œμ›” μ „ μ—…λ°μ΄νŠΈλ¨

λŒ“κΈ€