Poz Tahmini

YOLO pose estimation with human body keypoint detection

Poz tahmini, genellikle anahtar noktalar (keypoints) olarak adlandırılan, bir görüntüdeki belirli noktaların konumunu belirlemeyi içeren bir görevdir. Anahtar noktalar; eklemler, işaretler veya diğer ayırt edici özellikler gibi nesnenin çeşitli bölümlerini temsil edebilir. Anahtar noktaların konumları genellikle bir dizi 2D [x, y] veya 3D [x, y, visible] koordinatı olarak temsil edilir.

Bir poz tahmini modelinin çıktısı, görüntüdeki bir nesne üzerindeki anahtar noktaları temsil eden bir dizi noktadır; buna genellikle her nokta için güven puanları eşlik eder. Poz tahmini, bir sahnedeki bir nesnenin belirli kısımlarını ve birbirlerine göre konumlarını belirlemeniz gerektiğinde iyi bir seçimdir.



Watch: How to Run Real-Time Pose Estimation with Ultralytics YOLO26 | Tracking & Keypoints Extraction 🕺
İpucu

YOLO26 pose modelleri -pose sonekini kullanır, örneğin yolo26n-pose.pt. Bu modeller COCO keypoints veri kümesi üzerinde eğitilmiştir ve çeşitli poz tahmini görevleri için uygundur.

Varsayılan YOLO26 pose modelinde, her biri insan vücudunun farklı bir kısmını temsil eden 17 anahtar nokta bulunur. İşte her indeksin ilgili vücut eklemi ile eşleşmesi:

  1. Burun
  2. Sol Göz
  3. Sağ Göz
  4. Sol Kulak
  5. Sağ Kulak
  6. Sol Omuz
  7. Sağ Omuz
  8. Sol Dirsek
  9. Sağ Dirsek
  10. Sol Bilek
  11. Sağ Bilek
  12. Sol Kalça
  13. Sağ Kalça
  14. Sol Diz
  15. Sağ Diz
  16. Sol Ayak Bileği
  17. Sağ Ayak Bileği

Modeller

Ultralytics YOLO26 önceden eğitilmiş Pose modelleri burada gösterilmektedir. Detect, Segment ve Pose modelleri COCO veri kümesi üzerinde önceden eğitilmiştir, Semantic modelleri Cityscapes üzerinde önceden eğitilmiştir ve Classify modelleri ImageNet veri kümesi üzerinde önceden eğitilmiştir.

Modeller, ilk kullanımda en son Ultralytics sürümünden otomatik olarak indirilir.

Modelboyut
(piksel)
mAPpose
50-95(e2e)
mAPpose
50(e2e)
Hız
CPU ONNX
(ms)
Hız
T4 TensorRT10
(ms)
parametreler
(M)
FLOPs
(B)
YOLO26n-pose64057.283.340.3 ± 0.51.8 ± 0.02.97.5
YOLO26s-pose64063.086.685.3 ± 0.92.7 ± 0.010.423.9
YOLO26m-pose64068.889.6218.0 ± 1.55.0 ± 0.121.573.1
YOLO26l-pose64070.490.5275.4 ± 2.46.5 ± 0.125.991.3
YOLO26x-pose64071.691.6565.4 ± 3.012.2 ± 0.257.6201.7
  • mAPval değerleri, COCO Keypoints val2017 veri kümesi üzerinde tek modelli, tek ölçekli sonuçlardır.
    Şununla yeniden üretebilirsin: yolo val pose data=coco-pose.yaml device=0
  • Hız, bir Amazon EC2 P4d bulut örneği kullanılarak COCO val görüntüleri üzerinde ortalaması alınmıştır.
    Şununla yeniden üretebilirsin: yolo val pose data=coco-pose.yaml batch=1 device=0|cpu
  • Params ve FLOPs değerleri, Conv ve BatchNorm katmanlarını birleştiren ve uçtan uca modeller için yardımcı çoklu hedef tespit başlığını kaldıran model.fuse() sonrası birleştirilmiş model içindir. Önceden eğitilmiş kontrol noktaları tam eğitim mimarisini korur ve daha yüksek sayılar gösterebilir.

Eğit (Train)

COCO8-pose veri kümesi üzerinde bir YOLO26-pose modeli eğit. COCO8-pose veri kümesi, poz tahmini modellerini test etmek ve hatalarını ayıklamak için mükemmel olan küçük bir örnek veri kümesidir.

Örnek
from ultralytics import YOLO

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

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

Tam train modu ayrıntılarını Train sayfasında görebilirsin. Pose modelleri ayrıca Ultralytics Platform aracılığıyla bulut GPU'larında da eğitilebilir.

Veri kümesi biçimi

YOLO pose veri kümesi biçimi hakkında ayrıntılı bilgiye Dataset Guide kısmından ulaşabilirsin. Mevcut veri kümeni diğer biçimlerden (örneğin COCO vb.) YOLO biçimine dönüştürmek için lütfen Ultralytics tarafından sağlanan JSON2YOLO aracını kullan. Ultralytics Platform ayrıca kişi, el, yüz ve özel anahtar nokta düzenleri için yerleşik iskelet şablonlarıyla poz etiketlemeyi de destekler.

Özel poz tahmini görevleri için, hayvan poz tahmini için Tiger-Pose, el takibi için Hand Keypoints veya köpek poz analizi için Dog-Pose gibi özel veri kümelerini de inceleyebilirsin.

Doğrula (Val)

Eğitilmiş bir YOLO26n-pose modelinin doğruluğunu COCO8-pose veri kümesi üzerinde doğrula. model, eğitim datasını ve argümanlarını model özellikleri olarak koruduğu için herhangi bir argümana gerek yoktur.

Örnek
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-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 containing mAP50-95 for each category
metrics.box.image_metrics  # per-image metrics dictionary for box with precision, recall, F1, TP, FP, and FN
metrics.pose.map  # map50-95(P)
metrics.pose.map50  # map50(P)
metrics.pose.map75  # map75(P)
metrics.pose.maps  # a list containing mAP50-95(P) for each category
metrics.pose.image_metrics  # per-image metrics dictionary for pose with precision, recall, F1, TP, FP, and FN

Tahmin Et

Görüntüler üzerinde tahminler çalıştırmak için eğitilmiş bir YOLO26n-pose modeli kullan. predict modu, görüntüler, videolar veya gerçek zamanlı akışlar üzerinde çıkarım yapmanı sağlar.

Örnek
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-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)

predict modu ile ilgili tüm detaylar için Tahmin sayfasına bak.

Dışa Aktar (Export)

Bir YOLO26n Pose modelini ONNX, CoreML vb. farklı bir biçime dışa aktar. Bu, modelini çeşitli platformlarda ve cihazlarda gerçek zamanlı çıkarım için dağıtmanı sağlar.

Örnek
from ultralytics import YOLO

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

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

Mevcut YOLO26-pose dışa aktarma biçimleri aşağıdaki tablodadır. format argümanını kullanarak, örneğin format='onnx' veya format='engine' ile herhangi bir biçime dışa aktarabilirsin. Dışa aktarılan modeller üzerinde doğrudan tahmin veya doğrulama yapabilirsin, örneğin yolo predict model=yolo26n-pose.onnx. Dışa aktarma tamamlandıktan sonra modelin için kullanım örnekleri gösterilir.

Biçimformat ArgümanıModelÜstveriArgümanlar
PyTorch-yolo26n-pose.pt-
TorchScripttorchscriptyolo26n-pose.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-pose.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo26n-pose_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n-pose.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-pose.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n-pose_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-pose.pbimgsz, batch, device
TF Litetfliteyolo26n-pose.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-pose_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n-pose_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-pose_paddle_model/imgsz, batch, device
MNNmnnyolo26n-pose.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n-pose_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n-pose_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n-pose_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo26n-pose_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-pose_axelera_model/imgsz, batch, int8, data, fraction, device
DeepXdeepxyolo26n-pose_deepx_model/imgsz, int8, data, optimize, device

Eksiksiz export ayrıntılarını Export sayfasında bulabilirsin.

SSS

Ultralytics YOLO26 ile Poz Tahmini nedir ve nasıl çalışır?

Pose estimation with Ultralytics YOLO26 involves identifying specific points, known as keypoints, in an image. These keypoints typically represent joints or other important features of the object. The output includes the [x, y] coordinates and confidence scores for each point. YOLO26-pose models are specifically designed for this task and use the -pose suffix, such as yolo26n-pose.pt. These models are pretrained on datasets like COCO keypoints and can be used for various pose estimation tasks. For more information, visit the Pose Estimation Page.

Özel bir veri kümesi üzerinde nasıl YOLO26-pose modeli eğitebilirim?

Özel bir veri kümesi üzerinde YOLO26-pose modeli eğitmek, ya bir YAML dosyasıyla tanımlanan yeni bir modeli ya da önceden eğitilmiş bir modeli yüklemeyi içerir. Ardından, belirttiğin veri kümesini ve parametreleri kullanarak eğitim sürecini başlatabilirsin.

from ultralytics import YOLO

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

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

Eğitimle ilgili kapsamlı ayrıntılar için Train Section kısmına bak. Özel poz tahmini modellerini eğitmek için kod yazmadan kullanabileceğin Ultralytics Platform çözümünü de kullanabilirsin.

Eğitilmiş bir YOLO26-pose modelini nasıl doğrularım?

Bir YOLO26-pose modelinin doğrulanması, eğitim sırasında tutulan aynı veri kümesi parametreleri kullanılarak doğruluğunun değerlendirilmesini içerir. İşte bir örnek:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-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

Daha fazla bilgi için Val Section kısmını ziyaret et.

Bir YOLO26-pose modelini başka biçimlere aktarabilir miyim ve nasıl?

Evet, bir YOLO26-pose modelini ONNX, CoreML, TensorRT ve daha fazlası gibi çeşitli biçimlere aktarabilirsin. Bu işlem, Python veya Komut Satırı Arabirimi (CLI) kullanılarak yapılabilir.

from ultralytics import YOLO

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

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

Refer to the Export Section for more details. Exported models can be deployed on edge devices for real-time applications like fitness tracking, sports analysis, or robotics.

Mevcut Ultralytics YOLO26-pose modelleri ve performans metrikleri nelerdir?

Ultralytics YOLO26; YOLO26n-pose, YOLO26s-pose, YOLO26m-pose gibi çeşitli önceden eğitilmiş pose modelleri sunar. Bu modeller boyut, doğruluk (mAP) ve hız bakımından farklılık gösterir. Örneğin, YOLO26n-pose modeli 50.0 mAPpose50-95 ve 81.0 mAPpose50 değerlerine ulaşır. Tam liste ve performans detayları için Modeller Bölümünü ziyaret et.

Yorumlar