Ultralytics YOLO27:
Get Started

Ultralytics YOLO ile Model Karşılaştırması#

Ultralytics YOLO ecosystem and integrations

Karşılaştırma Görselleştirmesi#

Giriş#

Modelin eğitilip doğrulandıktan sonra, sonraki mantıklı adım performansını çeşitli gerçek dünya senaryolarında değerlendirmektir. Ultralytics YOLO26'daki Benchmark modu, modelinin hızını ve doğruluğunu çeşitli dışa aktarma biçimlerinde değerlendirmek için güçlü bir çerçeve sunar.

İlk hız karşılaştırmaları için yayımlanmamış YOLO27 önizlemesine göz at.



İzle: Ultralytics YOLO26 Modellerini Karşılaştır | Farklı Donanımlarda Model Performansı Nasıl Karşılaştırılır?

Karşılaştırma Neden Önemlidir?#

  • Bilinçli Kararlar: Hız ve doğruluk arasındaki ödünleşimler hakkında bilgi edin.
  • Kaynak Tahsisi: Farklı dışa aktarma biçimlerinin farklı donanımlarda nasıl performans gösterdiğini anla.
  • Optimizasyon: Belirli kullanım senaryon için en iyi performansı hangi dışa aktarma biçiminin sunduğunu öğren.
  • Maliyet Verimliliği: Karşılaştırma sonuçlarına göre donanım kaynaklarını daha verimli kullan.

Karşılaştırma Modundaki Temel Ölçütler#

  • mAP50-95: Nesne tespiti, örnek segmentasyonu, poz tahmini ve OBB için.
  • mIoU: Anlamsal segmentasyon için.
  • delta1: Derinlik tahmini için.
  • accuracy_top1: Görüntü sınıflandırma için.
  • Çıkarım Süresi: Her görüntü için geçen süre, milisaniye cinsinden.

Desteklenen Dışa Aktarma Biçimleri#

  • ONNX: En iyi CPU performansı için
  • TensorRT: En yüksek GPU verimliliği için
  • OpenVINO: Intel donanım optimizasyonu için
  • CoreML, TensorFlow SavedModel ve Daha Fazlası: Çeşitli dağıtım ihtiyaçları için.
İpucu
  • CPU hızını 3 kata kadar artırmak için ONNX veya OpenVINO biçimine aktar.
  • GPU hızını 5 kata kadar artırmak için TensorRT biçimine aktar.

Kullanım Örnekleri#

Önerilen kurulum

Eksik paketlerle karşılaşmamak için karşılaştırma yapmadan önce Ultralytics'i dışa aktarma bağımlılıklarıyla birlikte yükle.

pip install ultralytics[export]

YOLO26n modellerini desteklenen tüm dışa aktarma biçimlerinde (ONNX, TensorRT vb.) karşılaştır. Dışa aktarma seçeneklerinin tam listesi için aşağıdaki Argümanlar bölümüne bak.

Örnek
from ultralytics.utils.benchmarks import benchmark

# GPU'da karşılaştırma yap
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

# Belirli bir dışa aktarma biçimini karşılaştır
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, format="onnx")

Bağımsız değişkenler#

model, data, imgsz, quantize, device, verbose ve format gibi argümanlar, kullanıcıların karşılaştırmaları kendi ihtiyaçlarına göre ince ayarlamasına ve farklı dışa aktarma biçimlerinin performansını kolayca karşılaştırmasına olanak tanır.

AnahtarVarsayılan DeğerAçıklama
modelNoneModel dosyasının yolunu belirtir. Hem .pt hem de .yaml biçimlerini kabul eder; örneğin, önceden eğitilmiş modeller veya yapılandırma dosyaları için "yolo26n.pt".
dataNoneKarşılaştırma için veri kümesi YAML dosyasının yolu; genellikle doğrulama verilerinin yollarını ve ayarlarını içerir. Örnek: "coco8.yaml". Sınıflandırma için bunun yerine bir veri kümesi dizini veya yerleşik veri kümesi adı kullanılır (ör. imagenet10).
imgsz640Modelin girdi görüntüsü boyutu. Kare görüntüler için tek bir tam sayı olmalıdır (ör. 640); benchmark() yalnızca kare görüntü boyutlarını destekler.
quantizeNoneİstenen hassasiyet: 16 (FP16) veya 8 (INT8; PTQ şemaları için kalibrasyon data/fraction gerekir, yalnızca ağırlık kullanan şemalar için gerekmez); biçimin desteklediği durumlarda 32/ayarlanmamış değer FP32 anlamına gelir — FP32 dışa aktaramayan bir biçim, açıkça belirtilen 32 değerini reddeder veya gerektirdiği hassasiyete döner. Yerel PyTorch satırı dışa aktarılmaz: yalnızca 16 bu satırı etkileyerek FP16 çıkarımı seçer; 8, 32 ve ayarlanmamış değer ise FP32 çalıştırır. Her biçim daha sonra kendi çalışma zamanı hassasiyetinde çıkarım yapar. Kullanımdan kaldırılan half/int8 bayraklarının yerini alır.
deviceNoneKarşılaştırma için hesaplama cihazını belirtir; örneğin "cpu" veya "cuda:0"; değer ayarlanmamışsa ilk kullanılabilir GPU'yu, yoksa CPU'yu kullanır.
verboseFalseDeğer True veya bir kayan noktalı sayıysa, karşılaştırma hataları (assertion hataları dışında) hata kaydı oluşturmak yerine istisna yükseltir; 0.25 gibi bir kayan noktalı sayı, ayrıca başarılı olan her biçimin ölçütünün bu eşik değeri aşmasını doğrular.
eps0.001Sıfıra bölmeyi önlemek için FPS'ye dönüştürmeden önce görüntü başına çıkarım süresine eklenen küçük epsilon (milisaniye). Nadiren değiştirilir.
format''Yalnızca belirtilen dışa aktarma biçimini karşılaştırır (ör. format=onnx). Desteklenen tüm biçimleri otomatik olarak test etmek için boş bırak.
Tek başına kullanılan `benchmark()` işlevinin varsayılanları

Tek başına kullanılan benchmark() işlevi (from ultralytics.utils.benchmarks import benchmark), yukarıdaki tablodaki değerler yerine kendi imza varsayılanlarını kullanır; özellikle model="yolo26n.pt", imgsz=160 ve device="cpu" değerlerini. yolo benchmark CLI ile eşleşmesi için imgsz ve device değerlerini açıkça ilet.

Dışa Aktarma Biçimleri#

Karşılaştırmalar, aşağıda listelenen tüm olası dışa aktarma biçimlerinde otomatik olarak çalıştırılmaya çalışılır. Alternatif olarak, aşağıdaki biçimlerden herhangi birini kabul eden format argümanını kullanarak belirli bir biçim için karşılaştırma çalıştırabilirsin.

Biçimformat bağımsız değişkeniModelÜst verilerBağımsız değişkenler
PyTorch-yolo26n.pt✅-
TorchScripttorchscriptyolo26n.torchscript✅imgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnx✅imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/✅imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engine✅imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackage✅imgsz, dynamic, quantize, nms, batch, device
Apple Core AIcoreaiyolo26n.aimodel✅imgsz, batch, quantize
TF SavedModelsaved_modelyolo26n_saved_model/✅imgsz, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pb❌imgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tflite✅imgsz, quantize, opset, data, fraction, device
LiteRTlitertyolo26n.tflite✅imgsz, quantize, batch, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/✅imgsz, batch, device
MNNmnnyolo26n.mnn✅imgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n_ncnn_model/✅imgsz, quantize, batch, device
IMX500imxyolo26n_imx_model/✅imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/✅imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n_executorch_model/✅imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/✅imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/✅imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnx✅imgsz, batch, name, quantize, simplify, opset, data, fraction, device
Hailohailoyolo26n_hailo_model/✅imgsz, name, quantize, data, fraction, simplify, conf, iou, device
Huawei Ascendascendyolo26n_ascend_model/✅imgsz, batch, name, quantize, opset, simplify, nms, device
AMD Xilinxxilinxyolo26n_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, modelinin farklı dışa aktarma biçimlerindeki performansını değerlendirmek için bir Benchmark modu sunar. Bu mod, ortalama Ortalama Kesinlik (mAP50-95), doğruluk ve milisaniye cinsinden çıkarım süresi gibi temel ölçütler hakkında bilgi sağlar. Karşılaştırmaları Python veya CLI komutlarıyla çalıştırabilirsin. Örneğin, GPU'da karşılaştırma yapmak için:

    Örnek
    from ultralytics.utils.benchmarks import benchmark
    
    # GPU'da karşılaştırma yap
    benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

    Karşılaştırma argümanları hakkında daha fazla bilgi için Argümanlar bölümünü ziyaret et.

  • YOLO26 modellerini ONNX, TensorRT ve OpenVINO gibi farklı biçimlere aktarmak, dağıtım ortamına göre performansı optimize etmene olanak tanır. Örneğin:

    • ONNX: CPU hızını 3 kata kadar artırır.
    • TensorRT: GPU hızını 5 kata kadar artırır.
    • OpenVINO: Özellikle Intel donanımı için optimize edilmiştir.

    Bu biçimler, hedef donanımlarında çıkarım hızını artırarak modellerini çeşitli gerçek dünya uygulamalarında daha verimli hâle getirir. Tüm ayrıntılar için Dışa Aktarma sayfasını ziyaret et.

  • YOLO26 modellerini karşılaştırmak çeşitli nedenlerle önemlidir:

    • Bilinçli Kararlar: Hız ve doğruluk arasındaki ödünleşimleri anla.
    • Kaynak Tahsisi: Farklı donanım seçeneklerindeki performansı değerlendir.
    • Optimizasyon: Belirli kullanım senaryoları için en iyi performansı hangi dışa aktarma biçiminin sunduğunu belirle.
    • Maliyet Verimliliği: Karşılaştırma sonuçlarına göre donanım kullanımını optimize et.

    mAP50-95, Top-1 doğruluğu ve çıkarım süresi gibi temel ölçütler bu değerlendirmeleri yapmaya yardımcı olur. Daha fazla bilgi için Temel Ölçütler bölümüne bak.

  • YOLO26, her biri belirli donanım ve kullanım senaryolarına göre uyarlanmış çeşitli dışa aktarma biçimlerini destekler:

    • ONNX: CPU performansı için en iyisi.
    • TensorRT: GPU verimliliği için ideal.
    • OpenVINO: Intel donanımı için optimize edilmiştir.
    • CoreML ve TensorFlow: iOS ve genel ML uygulamaları için kullanışlıdır.

    Desteklenen biçimlerin ve ilgili avantajlarının tam listesi için Desteklenen Dışa Aktarma Biçimleri bölümüne göz at.

  • Karşılaştırma çalıştırırken, belirli ihtiyaçlara uyacak şekilde çeşitli argümanlar özelleştirilebilir:

    • model: Model dosyasının yolu (ör. "yolo26n.pt").
    • data: Veri kümesi YAML dosyasının yolu (ör. "coco8.yaml"); sınıflandırma için bunun yerine bir veri kümesi dizini veya yerleşik veri kümesi adı kullanılır (ör. imagenet10).
    • imgsz: Kare girdi görüntüsünün boyutunu belirten tek bir tam sayı; örneğin 640. Adil bir karşılaştırma için Benchmark modu, PyTorch ve dışa aktarılmış biçimlerde aynı kare görüntü boyutunu kullanır.
    • quantize: İstenen hassasiyet: FP16 için 16, INT8 için (uç cihazlarda kullanışlıdır) 8; biçimin desteklediği durumlarda 32/ayarlanmamış değer FP32 anlamına gelir — FP32 dışa aktaramayan bir biçim, açıkça belirtilen 32 değerini reddeder veya gerektirdiği hassasiyete döner. Yerel PyTorch satırı dışa aktarılmaz: yalnızca 16 bu satırı etkileyerek FP16 çıkarımını seçer; 8, 32 ve ayarlanmamış değer ise FP32 çalıştırır. Her biçim daha sonra kendi çalışma zamanı hassasiyetinde çıkarım yapar.
    • device: Hesaplama cihazını belirt (ör. "cpu", "cuda:0").
    • verbose: Karşılaştırma hatalarını kaydetmek yerine hata yükselt; her biçimin ölçütünün bu eşiği aşmasını da zorunlu kılmak için kayan noktalı bir sayı ilet.

    Argümanların tam listesi için Argümanlar bölümüne bak.

Yorumlar