Ultralytics YOLO27:

Ultralytics YOLO ile Poz Tahmini#

Ultralytics YOLO pose estimation with human body keypoint detection

Poz tahmini, genellikle kilit noktalar olarak adlandırılan belirli noktaların bir görüntüdeki konumunu belirlemeyi içeren bir görevdir. Kilit noktalar; eklemler, işaret noktaları veya diğer ayırt edici özellikler gibi nesnenin çeşitli bölümlerini temsil edebilir. Kilit noktaların konumları genellikle bir dizi 2B [x, y] koordinatı ve isteğe bağlı olarak bir görünürlük bayrağı [x, y, visible] ile temsil edilir.

Bir poz tahmini modelinin çıktısı, görüntüdeki bir nesnenin kilit noktalarını temsil eden bir nokta kümesidir ve genellikle her nokta için güven skorlarını da içerir. Bir sahnedeki nesnenin belirli bölümlerini ve bunların birbirlerine göre konumlarını belirlemen gerektiğinde poz tahmini iyi bir seçimdir.



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

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

Varsayılan YOLO26 poz modelinde, her biri insan vücudunun farklı bir bölümünü temsil eden 17 kilit noktası bulunur. Her dizinin ilgili vücut eklemine eşlemesi aşağıda verilmiştir:

  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ş Poz modelleri burada gösterilmektedir. Algılama, Segmentasyon ve Poz modelleri COCO veri kümesi üzerinde, Semantik modeller Cityscapes üzerinde ve Sınıflandırma modelleri ImageNet veri kümesi üzerinde önceden eğitilmiştir.

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

Modelboyut
(piksel)
mAPpoz
50-95(e2e)
mAPpoz
50(e2e)
Hız
CPU ONNX
(ms)
Hız
T4 TensorRT10
(ms)
parametre
(M)
FLOPs
(B)
YOLO26n-pose64057.283.340.3 ± 0.51.8 ± 0.02.97.6
YOLO26s-pose64063.086.685.3 ± 0.92.7 ± 0.010.424.1
YOLO26m-pose64068.889.6218.0 ± 1.55.0 ± 0.121.573.3
YOLO26l-pose64070.490.5275.4 ± 2.46.5 ± 0.125.991.7
YOLO26x-pose64071.691.6565.4 ± 3.012.2 ± 0.257.6202.3
  • mAPval değerleri, COCO Keypoints val2017 veri kümesinde tek model ve tek ölçek kullanılarak elde edilmiştir.
    yolo val pose data=coco-pose.yaml device=0 nms=False ile yeniden üretin
  • Hız, bir Amazon EC2 P4d örneği kullanılarak COCO val görüntüleri üzerinde ortalanmıştır.
    yolo val pose data=coco-pose.yaml batch=1 device=0|cpu nms=False ile yeniden üretin
  • Parametreler ve FLOP değerleri, Conv/BatchNorm katlama işlemi ve kullanılmayan algılama dalının kaldırılmasından sonraki birleştirilmiş modeller içindir. Önceden eğitilmiş kontrol noktaları tam eğitim mimarisini korur ve daha yüksek sayılar gösterebilir.

COCO anahtar nokta sonuçlarının ön bilgisi için yayınlanmamış YOLO27 önizlemesine göz at.

Eğit#

COCO8-pose veri kümesi üzerinde bir YOLO26-pose modeli eğit. COCO8-pose veri kümesi, poz tahmini modellerini test etmek ve hata ayıklamak için ideal 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)

Eğit sayfasında train modunun tüm ayrıntılarına bak. Poz modelleri Ultralytics Platform bulut eğitimi ile de eğitilebilir.

Veri kümesi biçimi#

YOLO poz veri seti formatı Dataset Guide içinde ayrıntılı olarak bulunabilir. Mevcut bir COCO keypoints JSON veri setini YOLO formatına dönüştürmek için, COCO to YOLO guide içinde açıklandığı gibi convert_coco fonksiyonunu use_keypoints=True ile birlikte kullan. Ultralytics Platform annotation, insan, el, yüz ve özel kilit nokta düzenleri için yerleşik iskelet şablonlarıyla poz etiketlerini de destekler.

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

Doğrulama#

Eğitilmiş YOLO26n-pose modelinin doğruluğunu COCO8-pose veri kümesi üzerinde doğrula. model, eğitim data değerini ve bağımsız değişkenlerini model öznitelikleri olarak koruduğundan bağımsız değişken gerekmez.

Ö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#

Görüntüler üzerinde tahminler çalıştırmak için eğitilmiş bir YOLO26n-pose modeli kullan. Tahmin 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 modunun tüm ayrıntıları için Tahmin sayfasına bak.

Sonuç çıktısı#

Poz tahmini, her görüntü için bir Results nesnesi döndürür. Birincil tahmin alanları, poz koordinatları için result.keypoints ve bu kilit noktaların ait olduğu algılanan örnekler için result.boxes alanlarıdır.

ÖznitelikTürŞekilAçıklama
result.keypointsKeypoints(N)Kilit noktaları.
result.keypoints.datatorch.float32(N,K,2/3)x,y ve isteğe bağlı görünürlük/güven.
result.keypoints.xytorch.float32(N,K,2)Piksel kilit noktaları.
result.keypoints.xyntorch.float32(N,K,2)Normalleştirilmiş kilit noktaları.
result.boxesBoxes(N)Örnek kutuları.

Her görevdeki göreve özgü Results alanlarının tamamı için Göreve Göre Tahmin Sonuçları bölümüne bak.

Dışa aktarma#

Bir YOLO26n Pose modelini ONNX, CoreML vb. farklı bir biçime aktar. Bu, modelini çeşitli platform 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")

Kullanılabilir YOLO26-pose dışa aktarma biçimleri aşağıdaki tabloda verilmiştir. format bağımsız değişkenini, yani format='onnx' veya format='engine' değerini kullanarak herhangi bir biçime aktarabilirsin. Dışa aktarılan modeller üzerinde doğrudan tahmin veya doğrulama yapabilirsin; örneğin yolo predict model=yolo26n-pose.onnx. Modelin için kullanım örnekleri dışa aktarma tamamlandıktan sonra gösterilir.

Biçimformat bağımsız değişkeniModelMeta verilerBağımsız değişkenler
PyTorch-yolo26n-pose.pt-
TorchScripttorchscriptyolo26n-pose.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n-pose.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-pose_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n-pose.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-pose.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n-pose_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-pose.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n-pose_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n-pose_paddle_model/imgsz, batch, device
MNNmnnyolo26n-pose.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n-pose_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n-pose_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n-pose_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n-pose_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-pose_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n-pose_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n-pose_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n-pose.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n-pose_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n-pose_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms
Apple Core AIcoreaiyolo26n-pose.aimodelimgsz, batch, quantize

nms=None, harici NMS için varsayılan olarak ham çıktıları kullanır. Mevcut bir NMS'siz başlığı seçmek için nms=False değerini ayarla; desteklenmeyen formatlar yerel çıktı yollarına geri döner. Yukarıdaki nms girdileri, NMS'yi nms=True ile gömebilen formatları tanımlar.

Ayrıntıların tamamı için Dışa aktarma sayfasındaki export bilgilerine bak.

SSS#

  • Ultralytics YOLO26 ile poz tahmini, bir görüntüde anahtar noktalar olarak bilinen belirli noktaların belirlenmesini içerir. Bu anahtar noktalar genellikle nesnenin eklemlerini veya diğer önemli özelliklerini temsil eder. Çıktı, her nokta için [x, y] koordinatlarını ve güven skorlarını içerir. YOLO26-pose modelleri bu görev için özel olarak tasarlanmıştır ve -pose son ekini kullanır; örneğin yolo26n-pose.pt. Bu modeller COCO anahtar noktaları gibi veri kümeleriyle önceden eğitilmiştir ve çeşitli poz tahmini görevlerinde kullanılabilir. Daha fazla bilgi için Poz Tahmini Sayfasını ziyaret et.

  • Özel bir veri kümesi üzerinde YOLO26-pose modelini eğitmek; YAML dosyasıyla tanımlanan yeni bir modelin veya önceden eğitilmiş bir modelin yüklenmesini 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 Eğitim Bölümüne başvur. Özel poz tahmini modellerini kod yazmadan eğitmek için Ultralytics Platform bulut eğitimini de kullanabilirsin.

  • YOLO26-pose modelinin doğrulanması, eğitim sırasında korunan 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 Doğrulama Bölümünü ziyaret et.

  • 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ı Arayüzü (CLI) kullanılarak gerçekleştirilebilir.

    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")

    Daha fazla ayrıntı için Dışa Aktarma Bölümüne başvur. Dışa aktarılan modeller; fitness takibi, spor analizi veya robotik gibi gerçek zamanlı uygulamalar için uç cihazlarda dağıtılabilir.

  • Ultralytics YOLO26; YOLO26n-pose, YOLO26s-pose, YOLO26m-pose ve diğerleri gibi çeşitli önceden eğitilmiş poz modelleri sunar. Bu modeller boyut, doğruluk (mAP) ve hız bakımından farklılık gösterir. Örneğin YOLO26n-pose modeli 57,2 mAPpose50-95 ve 83,3 mAPpose50 değerine ulaşır. Tam liste ve performans ayrıntıları için Modeller Bölümünü ziyaret et.

Yorumlar