Ultralytics YOLO27:
Get Started

Ultralytics YOLO ile Poz Tahmini#

Ultralytics YOLO pose estimation with human body keypoint detection

Poz tahmini, bir görüntüdeki belirli noktaların (genellikle anahtar noktalar olarak adlandırılır) konumunu belirlemeyi içeren bir görevdir. Anahtar noktalar; eklemler, işaret noktaları veya diğer ayırt edici özellikler gibi nesnenin çeşitli kısımlarını temsil edebilir. Anahtar noktaların konumları genellikle, isteğe bağlı olarak bir görünürlük bayrağı [x, y, visible] ile birlikte bir 2B [x, y] koordinat kümesi olarak gösterilir.

Poz tahmin modelinin çıktısı, görüntüdeki bir nesnenin anahtar noktalarını temsil eden bir nokta kümesidir ve genellikle her noktanın güven puanlarını da içerir. Bir sahnedeki nesnenin belirli kısımlarını ve bunların birbirlerine göre konumlarını belirlemen gerektiğinde poz tahmini iyi bir seçenektir.



İzle: Ultralytics YOLO26 ile Gerçek Zamanlı Poz Tahmini Nasıl Yapılır | Takip ve Anahtar Nokta Çıkarma 🕺
İpucu

YOLO26 Pose modellerinde -pose soneki kullanılır; örneğin yolo26n-pose.pt. Modeller COCO anahtar noktaları üzerinde önceden eğitilmiştir.

Modeller#

COCO anahtar noktaları veri kümesi üzerinde önceden eğitilmiş YOLO26 Pose modelleri aşağıda gösterilmiştir.

Modeller ilk kullanımda en güncel 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)
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 için verilmiştir.
    yolo pose val data=coco-pose.yaml device=0 nms=False ile yeniden üret
  • Hız değerleri, COCO val görüntülerinde CPU üzerinde ONNX ve NVIDIA T4 GPU üzerinde TensorRT10 kullanılarak hesaplanan ortalamalardır.
    yolo pose val data=coco-pose.yaml batch=1 device=0|cpu nms=False ile yeniden üret.
  • Parametre ve FLOP değerleri; Conv/BatchNorm katmanları birleştirildikten ve kullanılmayan tespit dalı kaldırıldıktan sonraki füzyonlu modeller içindir. Önceden eğitilmiş kontrol noktaları, eğitim mimarisinin tamamını korur ve daha yüksek sayılar gösterebilir.

Ön sonuçlar için yayımlanmamış YOLO27 önizlemesine bak.

Eğit#

YOLO26n-pose modelini COCO8-pose veri kümesinde, 640 görüntü boyutunda 100 epoch boyunca eğit. Kullanılabilir tüm argümanların listesi için Yapılandırma sayfasına bak.

Örnek
from ultralytics import YOLO

# Bir model yükle
model = YOLO("yolo26n-pose.yaml")  # YAML'den yeni bir model oluştur
model = YOLO("yolo26n-pose.pt")  # Önceden eğitilmiş bir model yükle (eğitim için önerilir)
model = YOLO("yolo26n-pose.yaml").load("yolo26n-pose.pt")  # YAML'den oluştur ve ağırlıkları aktar

# Modeli eğit
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)

train modunun tüm ayrıntılarını Eğitim sayfasında bulabilirsin. Poz modellerini Ultralytics Platform bulut eğitimi ile de eğitebilirsin.

Veri kümesi biçimi#

YOLO poz veri kümesi biçiminin ayrıntılarını Veri Kümesi Kılavuzu sayfasında bulabilirsin. Mevcut bir COCO anahtar noktaları JSON veri kümesini YOLO biçimine dönüştürmek için, COCO'dan YOLO'ya kılavuzunda açıklandığı gibi use_keypoints=True ile yerleşik convert_coco işlevini kullan. Ultralytics Platform açıklama aracı, kişi, el, yüz ve özel anahtar 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ğrula#

Eğitilmiş YOLO26n-pose modelinin doğruluğunu doğrula. model, eğitim data değerini ve argümanları model öznitelikleri olarak sakladığından argüman belirtmen gerekmez: Eğitim örneğindeki path/to/best.pt, COCO8-pose üzerinde doğrulama yapar. Resmî ağırlıklar, makinede bulunmayan bir eğitim veri kümesi yolunu kaydeder; bu nedenle uyarı vererek varsayılan görev coco8-pose.yaml değerine geri dönerler. Başka bir veri kümesinde doğrulama yapmak için data değerini belirt.

Örnek
from ultralytics import YOLO

# Bir model yükle
model = YOLO("yolo26n-pose.pt")  # Resmî bir modeli yükle
model = YOLO("path/to/best.pt")  # özel bir model yükle

# Modeli doğrula
metrics = model.val()  # Bağımsız değişken gerekmez; veri kümesi ve ayarlar hatırlanır
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # Her kategori için mAP50-95 içeren bir liste
metrics.box.image_metrics  # kutu için görüntü başına precision, recall, F1, TP, FP ve FN değerlerini içeren metrik sözlüğü
metrics.pose.map  # map50-95(P)
metrics.pose.map50  # map50(P)
metrics.pose.map75  # map75(P)
metrics.pose.maps  # her kategori için mAP50-95(P) değerini içeren bir liste
metrics.pose.image_metrics  # poz için görüntü başına precision, recall, F1, TP, FP ve FN değerlerini içeren metrik sözlüğü

Tahmin#

Görüntüler üzerinde tahmin yapmak için eğitilmiş bir YOLO26n-pose modeli kullan.

Örnek
from ultralytics import YOLO

# Bir model yükle
model = YOLO("yolo26n-pose.pt")  # Resmî bir modeli yükle
model = YOLO("path/to/best.pt")  # özel bir model yükle

# Modelle tahmin yap
results = model("https://ultralytics.com/images/bus.jpg")  # bir görüntü üzerinde tahmin yap

# Sonuçlara eriş
for result in results:
    xy = result.keypoints.xy  # x ve y koordinatları
    xyn = result.keypoints.xyn  # normalized
    kpts = result.keypoints.data  # x, y, görünürlük (varsa)

predict kipinin 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. Temel tahmin alanları, poz koordinatlarını içeren result.keypoints ve bu anahtar noktaların ait olduğu tespit edilmiş örnekleri içeren result.boxes alanlarıdır.

ÖznitelikTürŞekilAçıklama
result.keypointsKeypoints(N)Anahtar noktalar.
result.keypoints.datatorch.float32(N,K,2/3)x,y ve isteğe bağlı görünürlük/güven değeri.
result.keypoints.xytorch.float32(N,K,2)Piksel koordinatlarındaki anahtar noktalar.
result.keypoints.xyntorch.float32(N,K,2)Normalize edilmiş anahtar noktalar.
result.boxesBoxes(N)Örnek kutuları.

Tüm görevlerde göreve özgü Results alanları için Göreve Göre Tahmin Sonuçları bölümüne bak.

Anahtar nokta dizin eşlemesi#

Varsayılan YOLO26 Pose modelleri 17 COCO anahtar noktasını tahmin eder; bu nedenle result.keypoints.xy[:, k] içindeki k dizini şunu ifade eder:

  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

Dışa aktar#

Bir YOLO26n-pose modelini ONNX, CoreML vb. gibi farklı bir biçime aktar.

Örnek
from ultralytics import YOLO

# Bir model yükle
model = YOLO("yolo26n-pose.pt")  # Resmî bir modeli yükle
model = YOLO("path/to/best.pt")  # özel bir model yükle

# Modeli dışa aktar
model.export(format="onnx")

Kullanılabilir YOLO26-pose dışa aktarma biçimleri aşağıdaki tabloda yer alıyor. format argümanını, yani format='onnx' veya format='engine' değerini kullanarak herhangi bir biçime aktarabilirsin. Dışa aktarılan modeller üzerinde doğrudan tahmin yapabilir veya modelleri doğrulayabilirsin; örneğin yolo predict model=yolo26n-pose.onnx. Dışa aktarma tamamlandıktan sonra modelin için kullanım örnekleri gösterilir.

Biçimformat bağımsız değişkeniModelÜst verilerBağımsız değişkenler
PyTorch-yolo26n-pose.pt✅-
TorchScripttorchscriptyolo26n-pose.torchscript✅imgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n-pose.onnx✅imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-pose_openvino_model/✅imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n-pose.engine✅imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-pose.mlpackage✅imgsz, dynamic, quantize, nms, batch, device
Apple Core AIcoreaiyolo26n-pose.aimodel✅imgsz, batch, quantize
TF SavedModelsaved_modelyolo26n-pose_saved_model/✅imgsz, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-pose.pb❌imgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n-pose_edgetpu.tflite✅imgsz, quantize, opset, data, fraction, device
LiteRTlitertyolo26n-pose.tflite✅imgsz, quantize, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-pose_paddle_model/✅imgsz, batch, device
MNNmnnyolo26n-pose.mnn✅imgsz, 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.onnx✅imgsz, batch, name, quantize, simplify, opset, data, fraction, device
Hailohailoyolo26n-pose_hailo_model/✅imgsz, name, quantize, data, fraction, simplify, conf, iou, device
Huawei Ascendascendyolo26n-pose_ascend_model/✅imgsz, batch, name, quantize, opset, simplify, nms, device
AMD Xilinxxilinxyolo26n-pose_xilinx_model/✅imgsz, name, quantize, data, fraction, opset, simplify, device

nms=None, harici NMS için varsayılan olarak ham çıktılar üretir. Kullanılabilir bir NMS içermeyen başlık seçmek için nms=False değerini ayarla; desteklenmeyen biçimler yerel çıktı yoluna döner. Yukarıdaki nms girdileri, nms=True ile NMS içerebilen biçimleri tanımlar.

Ayrıntılı export bilgileri için Dışa Aktarma sayfasına bak.

Sık Sorulan Sorular#

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

  • YOLO26-pose modelini özel bir veri kümesinde eğitmek için YAML dosyasıyla tanımlanmış yeni bir model veya önceden eğitilmiş bir model yüklemen gerekir. Ardından belirttiğin veri kümesini ve parametreleri kullanarak eğitim sürecini başlatabilirsin.

    Örnek
    from ultralytics import YOLO
    
    # Bir model yükle
    model = YOLO("yolo26n-pose.yaml")  # YAML'den yeni bir model oluştur
    model = YOLO("yolo26n-pose.pt")  # Önceden eğitilmiş bir model yükle (eğitim için önerilir)
    
    # Modeli eğit
    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 bak. Ö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 saklanan aynı veri kümesi parametrelerini kullanarak modelin doğruluğunun değerlendirilmesini içerir. Örnek:

    Örnek
    from ultralytics import YOLO
    
    # Bir model yükle
    model = YOLO("yolo26n-pose.pt")  # Resmî bir modeli yükle
    model = YOLO("path/to/best.pt")  # özel bir model yükle
    
    # Modeli doğrula
    metrics = model.val()  # Bağımsız değişken gerekmez; veri kümesi ve ayarlar hatırlanır

    Daha fazla bilgi için Val Bölümünü ziyaret et.

  • Evet, bir YOLO26-pose modelini ONNX, CoreML, TensorRT ve daha pek çok biçime aktarabilirsin. Bunu Python veya Komut Satırı Arayüzü (CLI) kullanarak yapabilirsin.

    Örnek
    from ultralytics import YOLO
    
    # Bir model yükle
    model = YOLO("yolo26n-pose.pt")  # Resmî bir modeli yükle
    model = YOLO("path/to/best.pt")  # özel bir model yükle
    
    # Modeli dışa aktar
    model.export(format="onnx")

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

  • Ultralytics YOLO; 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. COCO anahtar noktası mAP değerlerini, hızı, parametreleri ve model başına FLOP sayılarını içeren tam liste için Modeller bölümüne bak.

Yorumlar