Ultralytics YOLO ile Poz Tahmini#
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 🕺
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.
| Model | boyut (piksel) | mAPpose 50-95(e2e) | mAPpose 50(e2e) | Hız CPU ONNX (ms) | Hız T4 TensorRT10 (ms) | parametre (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-pose | 640 | 57.2 | 83.3 | 40.3 ± 0.5 | 1.8 ± 0.0 | 2.9 | 7.6 |
| YOLO26s-pose | 640 | 63.0 | 86.6 | 85.3 ± 0.9 | 2.7 ± 0.0 | 10.4 | 24.1 |
| YOLO26m-pose | 640 | 68.8 | 89.6 | 218.0 ± 1.5 | 5.0 ± 0.1 | 21.5 | 73.3 |
| YOLO26l-pose | 640 | 70.4 | 90.5 | 275.4 ± 2.4 | 6.5 ± 0.1 | 25.9 | 91.7 |
| YOLO26x-pose | 640 | 71.6 | 91.6 | 565.4 ± 3.0 | 12.2 ± 0.2 | 57.6 | 202.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=Falseile 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=Falseile 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.
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.
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.
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.
| Öznitelik | Tür | Şekil | Açıklama |
|---|---|---|---|
result.keypoints | Keypoints | (N) | Anahtar noktalar. |
result.keypoints.data | torch.float32 | (N,K,2/3) | x,y ve isteğe bağlı görünürlük/güven değeri. |
result.keypoints.xy | torch.float32 | (N,K,2) | Piksel koordinatlarındaki anahtar noktalar. |
result.keypoints.xyn | torch.float32 | (N,K,2) | Normalize edilmiş anahtar noktalar. |
result.boxes | Boxes | (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:
- Burun
- Sol göz
- Sağ göz
- Sol kulak
- Sağ kulak
- Sol omuz
- Sağ omuz
- Sol dirsek
- Sağ dirsek
- Sol bilek
- Sağ bilek
- Sol kalça
- Sağ kalça
- Sol diz
- Sağ diz
- Sol ayak bileği
- Sağ ayak bileği
Dışa aktar#
Bir YOLO26n-pose modelini ONNX, CoreML vb. gibi farklı bir biçime aktar.
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çim | format bağımsız değişkeni | Model | Üst veriler | Bağımsız değişkenler |
|---|---|---|---|---|
| PyTorch | - | yolo26n-pose.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-pose.torchscript | ✅ | imgsz, quantize, dynamic, nms, batch, device |
| ONNX | onnx | yolo26n-pose.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n-pose_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-pose.engine | ✅ | imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-pose.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| Apple Core AI | coreai | yolo26n-pose.aimodel | ✅ | imgsz, batch, quantize |
| TF SavedModel | saved_model | yolo26n-pose_saved_model/ | ✅ | imgsz, quantize, opset, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-pose.pb | ❌ | imgsz, opset, batch, device |
| TF Edge TPU | edgetpu | yolo26n-pose_edgetpu.tflite | ✅ | imgsz, quantize, opset, data, fraction, device |
| LiteRT | litert | yolo26n-pose.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-pose_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-pose.mnn | ✅ | imgsz, batch, dynamic, quantize, simplify, opset, nms, device |
| NCNN | ncnn | yolo26n-pose_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n-pose_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n-pose_rknn_model/ | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| ExecuTorch | executorch | yolo26n-pose_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-pose_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n-pose_deepx_model/ | ✅ | imgsz, quantize, simplify, opset, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n-pose_qnn.onnx | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| Hailo | hailo | yolo26n-pose_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou, device |
| Huawei Ascend | ascend | yolo26n-pose_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms, device |
| AMD Xilinx | xilinx | yolo26n-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-posesoneki kullanılır; örneğinyolo26n-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.
Örnekfrom 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:
Örnekfrom 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ırDaha 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.
Örnekfrom 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.