Ultralytics YOLO27:

Ultralytics YOLO ile Model Performans Değerlendirmesi#

Ultralytics YOLO ecosystem and integrations

Performans Görselleştirme#

Giriş#

Modelin eğitilip doğrulandıktan sonraki mantıksal adım, çeşitli gerçek dünya senaryolarındaki performansını değerlendirmektir. Ultralytics YOLO26 içindeki Benchmark modu, modelinin hızını ve doğruluğunu bir dizi dışa aktarım formatında değerlendirmek için sağlam bir çerçeve sağlayarak bu amaca hizmet eder.

Ön hazırlık hız kıyaslamaları için yayınlanmamış YOLO27 önizlemesine göz at.



Watch: Benchmark Ultralytics YOLO26 Models | How to Compare Model Performance on Different Hardware?

Benchmark Neden Çok Önemlidir?#

  • Bilinçli Kararlar: Hız ve doğruluk arasındaki ödünleşimler hakkında içgörüler elde et.
  • Kaynak Dağılımı: Farklı dışa aktarım formatlarının farklı donanımlarda nasıl performans gösterdiğini anla.
  • Optimizasyon: Özel kullanım durumun için hangi dışa aktarım formatının en iyi performansı sunduğunu öğren.
  • Maliyet Verimliliği: Benchmark sonuçlarına dayanarak donanım kaynaklarını daha verimli kullan.

Benchmark Modundaki Temel Metrikler#

Desteklenen Dışa Aktarma Formatları#

  • ONNX: Optimum CPU performansı için
  • TensorRT: Maksimum 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
  • 3 kata kadar CPU hız artışı için ONNX veya OpenVINO formatına aktar.
  • 5 kata kadar GPU hız artışı için TensorRT formatına aktar.

Kullanım Örnekleri#

Önerilen kurulum

Eksik paketlerden kaçınmak için benchmark işlemlerinden önce Ultralytics paketini dışa aktarım bağımlılıklarıyla birlikte kur.

pip install ultralytics[export]

Desteklenen tüm dışa aktarım formatlarında (ONNX, TensorRT vb.) YOLO26n benchmark'larını çalıştır. Tüm dışa aktarım seçeneklerinin tam listesi için aşağıdaki Argümanlar bölümüne göz at.

Örnek
from ultralytics.utils.benchmarks import benchmark

# Benchmark on GPU
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

# Benchmark specific export format
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ılara benchmark'ları kendi özel ihtiyaçlarına göre ince ayarlarla uyarlama ve farklı dışa aktarım formatlarının performansını kolayca karşılaştırma esnekliği sağlar.

AnahtarVarsayılan DeğerAçıklama
modelNoneModel dosyasının yolunu belirtir. Ön eğitimli modeller veya yapılandırma dosyaları için "yolo26n.pt" gibi hem .pt hem de .yaml formatlarını kabul eder.
dataNoneBenchmark için veri kümesi YAML dosyasının yolu; tipik olarak doğrulama verileri için yolları ve ayarları içerir. Örnek: "coco8.yaml". Sınıflandırma ise bunun yerine bir veri kümesi dizini veya yerleşik bir veri kümesi adı alır (örn. imagenet10).
imgsz640Model için girdi görüntü boyutu. Kare görüntüler için tek bir tamsayı olmalıdır (örn. 640); benchmark() yalnızca kare görüntü boyutlarını destekler.
quantizeNoneİstenen hassasiyet: 16 (FP16) veya 8 (INT8; PTQ şemaları data/fraction kalibrasyonu gerektirir, yalnızca ağırlık içerenler gerektirmez); formatın desteklediği yerlerde 32/ayarlanmamış olan FP32'dir — FP32 dışa aktaramayan bir format açık bir 32 değerini reddeder veya gerektirdiği hassasiyete geri döner. Yerel PyTorch satırı dışa aktarılmaz: yalnızca 16 bunu etkileyerek FP16 çıkarımını seçerken, 8, 32 ve ayarlanmamış değerler FP32 çalıştırır. Her format daha sonra kendi çalışma zamanı hassasiyetinde çıkarım çalıştırır. Kullanımdan kaldırılan half/int8 bayraklarının yerini alır.
device'cpu'Benchmark için hesaplama cihazını veya cihazlarını belirtir (örn. "cpu" veya "cuda:0").
verboseFalseGünlük kaydı çıktısındaki detay düzeyini kontrol eder. Ayrıntılı günlükler için verbose=True ayarla.
eps0.001Sıfıra bölünmeyi önlemek için, FPS'ye dönüştürülmeden ö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 aktarım formatı için benchmark çalıştırır (örn. format=onnx). Desteklenen tüm formatları otomatik olarak test etmek için boş bırak.
Bağımsız `benchmark()` fonksiyon varsayılanları

Bağımsız benchmark() fonksiyonu (from ultralytics.utils.benchmarks import benchmark), yukarıdaki tablo değerleri yerine kendi imza varsayılanlarını kullanır (özellikle model="yolo26n.pt" ve imgsz=160); yolo benchmark CLI ile eşleşmesi için açıkça imgsz aktar.

Dışa Aktarma Biçimleri#

Benchmark'lar aşağıda listelenen tüm olası dışa aktarım formatlarında otomatik olarak çalışmayı deneyecektir. Alternatif olarak, aşağıda belirtilen formatlardan herhangi birini kabul eden format argümanını kullanarak belirli bir format için benchmark çalıştırabilirsin.

Biçimformat bağımsız değişkeniModelMeta verilerBağımsız değişkenler
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, 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.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms
Apple Core AIcoreaiyolo26n.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, modelinin performansını farklı dışa aktarım formatlarında değerlendirmek için bir Benchmark modu sunar. Bu mod; ortalama Duyarlılık (mAP50-95), doğruluk ve milisaniye cinsinden çıkarım süresi gibi temel metrikler hakkında içgörüler sağlar. Benchmark çalıştırmak için Python veya CLI komutlarını kullanabilirsin. Örneğin, bir GPU üzerinde benchmark çalıştırmak için:

    Örnek
    from ultralytics.utils.benchmarks import benchmark
    
    # Benchmark on GPU
    benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

    Benchmark argümanları hakkında daha fazla detay için Argümanlar bölümünü ziyaret et.

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

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

    Bu formatlar modellerinin hem hızını hem de doğruluğunu artırarak çeşitli gerçek dünya uygulamaları için onları daha verimli hale getirir. Eksiksiz ayrıntılar için Dışa Aktar sayfasını ziyaret et.

  • YOLO26 modellerini benchmark yapmak birkaç nedenle esastır:

    • Bilinçli Kararlar: Hız ve doğruluk arasındaki ödünleşimleri anla.
    • Kaynak Dağılımı: Farklı donanım seçenekleri arasındaki performansı ölç.
    • Optimizasyon: Belirli kullanım durumları için hangi dışa aktarım formatının en iyi performansı sunduğunu belirle.
    • Maliyet Verimliliği: Benchmark sonuçlarına dayanarak donanım kullanımını optimize et.

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

  • YOLO26, her biri belirli donanım ve kullanım durumları için uyarlanmış çeşitli dışa aktarım formatlarını 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 & TensorFlow: iOS ve genel makine öğrenimi uygulamaları için kullanışlıdır.

    Desteklenen formatların tam listesi ve ilgili avantajları için Desteklenen Dışa Aktarım Formatları bölümüne göz at.

  • Benchmark çalıştırırken, özel ihtiyaçlara uyacak şekilde birkaç argüman özelleştirilebilir:

    • model: Model dosyasına giden yol (örn. "yolo26n.pt").
    • data: Veri kümesi YAML dosyasına giden yol (örn. "coco8.yaml"); sınıflandırma ise bunun yerine bir veri kümesi dizini veya yerleşik bir veri kümesi adı alır (örn. imagenet10).
    • imgsz: Tek bir tamsayı olarak kare girdi görüntü boyutu, örneğin 640. Benchmark modu, adil bir karşılaştırma için PyTorch ve dışa aktarılan formatlar arasında aynı kare görüntü boyutunu kullanır.
    • quantize: İstenen hassasiyet: FP16 için 16, INT8 için 8 (uç cihazlar için yararlıdır); formatın desteklediği yerlerde 32/ayarlanmamış olan FP32'dir — FP32 dışa aktaramayan bir format açık bir 32 değerini reddeder veya gerektirdiği hassasiyete geri döner. Yerel PyTorch satırı dışa aktarılmaz: yalnızca 16 bunu etkileyerek FP16 çıkarımını seçerken, 8, 32 ve ayarlanmamış değerler FP32 çalıştırır. Her format daha sonra kendi çalışma zamanı hassasiyetinde çıkarım çalıştırır.
    • device: Hesaplama cihazını belirt (örn. "cpu", "cuda:0").
    • verbose: Günlük kaydı detay düzeyini kontrol et.

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

Yorumlar