Ultralytics YOLO ile Model Performans Değerlendirmesi#
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#
- mAP50-95: Nesne tespiti, segmentasyon ve poz tahmini için.
- accuracy_top1: Görüntü sınıflandırma için.
- Çıkarım Süresi: Milisaniye cinsinden her bir görüntü için geçen süre.
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.
- 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#
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.
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.
| Anahtar | Varsayılan Değer | Açıklama |
|---|---|---|
model | None | Model 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. |
data | None | Benchmark 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). |
imgsz | 640 | Model 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. |
quantize | None | İ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"). |
verbose | False | Günlük kaydı çıktısındaki detay düzeyini kontrol eder. Ayrıntılı günlükler için verbose=True ayarla. |
eps | 0.001 | Sı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() 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çim | format bağımsız değişkeni | Model | Meta veriler | Bağımsız değişkenler |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, quantize, dynamic, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, quantize, opset, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, opset, batch, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, quantize, opset, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, dynamic, quantize, simplify, opset, nms, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, quantize, simplify, opset, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n_qnn.onnx | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| LiteRT | litert | yolo26n.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
| Hailo | hailo | yolo26n_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou |
| Huawei Ascend | ascend | yolo26n_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms |
| Apple Core AI | coreai | yolo26n.aimodel | ✅ | imgsz, 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:
Örnekfrom 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çin8(uç cihazlar için yararlıdır); formatın desteklediği yerlerde32/ayarlanmamış olan FP32'dir — FP32 dışa aktaramayan bir format açık bir32değerini reddeder veya gerektirdiği hassasiyete geri döner. Yerel PyTorch satırı dışa aktarılmaz: yalnızca16bunu etkileyerek FP16 çıkarımını seçerken,8,32ve 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.