YOLO Vision 2026:

Ultralytics YOLO ile Model Doğrulama#

Ultralytics YOLO ecosystem and integrations

Giriş#

Doğrulama, eğitilmiş modellerinizin kalitesini değerlendirmenize olanak tanıyan machine learning işlem hattında kritik bir adımdır. Ultralytics YOLO26 içindeki Val modu, object detection modellerinizin performansını değerlendirmek için güçlü araçlar ve metrikler sunar. Bu kılavuz, modellerinizin hem doğru hem de güvenilir olmasını sağlamak için Val modunu nasıl etkili bir şekilde kullanacağınızı anlamanız adına eksiksiz bir kaynak görevi görür.



Watch: Ultralytics Modes Tutorial: Validation

Neden Ultralytics YOLO ile Doğrulama Yapmalısın?#

YOLO26'nın Val modunu kullanmanın avantajları şunlardır:

  • Hassasiyet: Modelini kapsamlı bir şekilde değerlendirmek için mAP50, mAP75 ve mAP50-95 gibi doğru metrikler elde et.
  • Kolaylık: Doğrulama sürecini basitleştiren ve eğitim ayarlarını hatırlayan yerleşik özellikleri kullan.
  • Esneklik: Modelini aynı veya farklı veri setleri ve görüntü boyutlarıyla doğrula.
  • Hyperparameter Tuning: Daha iyi performans için modelinizi ince ayarlarla optimize etmek üzere doğrulama metriklerini kullanın.

Val Modunun Temel Özellikleri#

Bunlar, YOLO26'nın Val modunun sunduğu kayda değer işlevlerdir:

  • Otomatik Ayarlar: Modeller, basit bir doğrulama için eğitim yapılandırmalarını hatırlar.
  • Çoklu Metrik Desteği: Modelini çeşitli doğruluk metriklerine göre değerlendir.
  • CLI ve Python API: Doğrulama için tercihine bağlı olarak komut satırı arayüzü veya Python API arasından seçim yap.
  • Veri Uyumluluğu: Eğitim aşamasında kullanılan veri setleriyle ve özel veri setleriyle sorunsuz çalışır.
İpucu
  • YOLO26 modelleri eğitim ayarlarını otomatik olarak hatırlar; böylece yalnızca yolo val model=yolo26n.pt veya YOLO("yolo26n.pt").val() kullanarak bir modeli aynı görüntü boyutunda ve orijinal veri setinde kolayca doğrulayabilirsiniz.

Kullanım Örnekleri#

COCO8 veri seti üzerinde eğitilmiş bir YOLO26n modelinin accuracy değerini doğrulayın. model, eğitim data değerlerini ve argümanlarını model özellikleri olarak koruduğundan hiçbir argümana gerek yoktur. Doğrulama argümanlarının tam listesi için aşağıdaki Argümanlar bölümüne bakın.

Windows Çoklu İşlem (Multi-Processing) Hatası

Windows'ta, doğrulamayı bir betik olarak başlatırken RuntimeError alabilirsiniz. Bunu çözmek için doğrulama kodunuzdan önce bir if __name__ == "__main__": bloğu ekleyin.

Örnek
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list containing mAP50-95 for each category
metrics.box.image_metrics  # per-image metrics dictionary with precision, recall, F1, TP, FP, and FN

YOLO Model Doğrulama Argümanları#

YOLO modellerini doğrulerken, değerlendirme sürecini optimize etmek için çeşitli argümanlara ince ayar yapılabilir. Bu argümanlar; girdi görüntüsü boyutu, toplu işleme ve performans eşikleri gibi yönleri kontrol eder. Doğrulama ayarlarını etkili bir şekilde özelleştirmene yardımcı olmak için her bir argümanın ayrıntılı dökümü aşağıdadır.

ArgümanTipVarsayılanAçıklama
datastrNoneVeri kümesi yapılandırma dosyasının yolunu belirtir (örn. coco8.yaml). Bu dosya doğrulama verilerinin yolunu içermelidir.
imgszint640Girdi görüntülerinin boyutunu tanımlar. Tüm görüntüler işlenmeden önce bu boyuta yeniden boyutlandırılır. Daha büyük boyutlar küçük nesneler için doğruluğu artırabilir ancak işlem süresini uzatır.
batchint16Yığın başına görüntü sayısını ayarlar. Daha yüksek değerler GPU belleğini daha verimli kullanır ancak daha fazla VRAM gerektirir. Kullanılabilir donanım kaynaklarına göre ayarla.
save_jsonboolFalseEğer True ise, daha fazla analiz, diğer araçlarla entegrasyon veya COCO gibi değerlendirme sunucularına gönderim için sonuçları bir JSON dosyasına kaydeder.
conffloat0.001Tespitler için minimum güven eşiğini ayarlar. Daha düşük değerler geri çağırmayı artırır ancak daha fazla yanlış pozitif getirebilir. Hassasiyet-geri çağırma eğrilerini hesaplamak için doğrulama sırasında kullanılır. Bellek kullanımını azaltmak için OBB doğrulaması varsayılan olarak 0.01 değerindedir.
ioufloat0.7Non-Maximum Suppression için Intersection Over Union eşiğini belirler. Yinelenen tespitlerin elemesini kontrol eder.
max_detint300Görüntü başına maksimum algılama sayısını sınırlar. Aşırı algılamaları önlemek ve bilgi işlem kaynaklarını yönetmek için yoğun sahnelerde kullanışlıdır.
quantizeint veya strNoneDoğrulama hassasiyeti: 16/"fp16" desteklenen GPU'larda FP16 doğrulamasını etkinleştirir; 32/"fp32"/ayarlanmamış ise FP32'dir. INT8/PTQ nicelemesi dışa aktarma sırasında yapılandırılır, ardından dışa aktarılan model doğrulanarak kullanılır. Kullanımdan kaldırılan half bayrağının yerini alır.
devicestrNoneDoğrulama için cihazı belirtir (cpu, cuda:0, npu, npu:0 vb.). None olduğunda, mevcut en iyi cihazı otomatik olarak seçer. Virgülle ayırarak birden fazla CUDA cihazı belirtilebilir.
dnnboolFalseEğer True ise, ONNX modeli çıkarımı için OpenCV DNN modülünü kullanarak PyTorch çıkarım yöntemlerine bir alternatif sunar.
plotsboolTrueTrue olarak ayarlandığında, model performansının görsel olarak değerlendirilmesi için yertruth'a karşı tahminlerin grafiklerini, karışıklık matrislerini ve PR eğrilerini oluşturur ve kaydeder.
classeslist[int]NoneDeğerlendirilecek sınıf kimliklerinin listesini belirtir. Değerlendirme sırasında sadece belirli sınıflara odaklanmak ve diğerlerini filtrelemek için kullanışlıdır.
rectboolTrueEğer True ise, toplu işlem için dikdörtgen çıkarım kullanır, dolguyu azaltır ve görüntüleri orijinal en-boy oranında işleyerek potansiyel olarak hızı ve verimliliği artırır.
splitstr'val'Doğrulama için kullanılacak veri kümesi bölümünü belirler (val, test veya train). Performans değerlendirmesi için veri segmenti seçiminde esneklik sağlar.
projectstrNoneDoğrulama çıktılarının kaydedildiği proje dizininin adı. Farklı deneylerden veya modellerden gelen sonuçları düzenlemeye yardımcı olur.
namestrNoneDoğrulama çalıştırmasının adı. Proje klasörü içinde doğrulama günlüklerinin ve çıktılarının depolandığı bir alt dizin oluşturmak için kullanılır.
verboseboolTrueEğer True ise, sınıf başına metrikler, yığın ilerlemesi ve ek hata ayıklama bilgileri dahil olmak üzere doğrulama süreci sırasında ayrıntılı bilgi görüntüler.
save_txtboolFalseEğer True ise, tespit sonuçlarını görüntü başına bir dosya olacak şekilde metin dosyalarına kaydeder; bu, daha ileri analiz, özel son işlem veya diğer sistemlerle entegrasyon için faydalıdır.
save_confboolFalseEğer True ise, save_txt etkinleştirildiğinde kaydedilen metin dosyalarına güven değerlerini dahil ederek analiz ve filtreleme için daha ayrıntılı çıktı sağlar.
workersint8Veri yükleme için çalışan iş parçacığı sayısı. Daha yüksek değerler veri ön işlemesini hızlandırabilir ancak CPU kullanımını artırabilir. 0 olarak ayarlanması ana iş parçacığını kullanır, bu da bazı ortamlarda daha kararlı olabilir.
augmentboolFalseDoğrulama sırasında test zamanı artırmayı (TTA) etkinleştirir. Girdinin dönüştürülmüş sürümleri üzerinde çıkarım çalıştırarak, çıkarım hızı maliyetiyle tespit doğruluğunu potansiyel olarak artırır.
agnostic_nmsboolFalseTahmin edilen sınıflarından bağımsız olarak örtüşen kutuları birleştiren sınıftan bağımsız Maksimum Olmayan Bastırma özelliğini etkinleştirir. Örnek odaklı uygulamalar için kullanışlıdır. Uçtan uca modeller için (YOLO26, YOLOv10) bu yalnızca aynı deteksiyonun birden fazla sınıf etiketiyle görünmesini engeller (IoU=1.0 kopyaları) ve farklı kutular arasında IoU eşiğine dayalı bastırma gerçekleştirmez.
single_clsboolFalseDoğrulama sırasında tüm sınıfları tek bir sınıf olarak ele alır. İkili tespit görevlerinde veya sınıf ayrımlarının önemli olmadığı durumlarda model performansını değerlendirmek için yararlıdır.
visualizeboolFalseHer görüntü için gerçek değerleri, doğru pozitifleri, yanlış pozitifleri ve yanlış negatifleri görselleştirir. Hata ayıklama ve model yorumlama için kullanışlıdır.
show_labelsboolTruevisualize=True olduğunda doğrulama görselleştirmelerinde sınıf etiketlerini görüntüler. Eşleşmelerin ve hataların daha temiz bir görünümü için False olarak ayarlayın.
show_confboolTruevisualize=True olduğunda doğrulama görselleştirmelerinde güven skorlarını görüntüler. Eşleşmelerin ve hataların daha temiz bir görünümü için False olarak ayarlayın.
compilebool veya strFalsePyTorch 2.x torch.compile grafik derlemesini backend='inductor' ile etkinleştirir. True"default", False → devre dışı bırakma veya "default", "reduce-overhead", "max-autotune-no-cudagraphs" gibi bir dize modu kabul eder. Desteklenmiyorsa bir uyarı ile eager moduna geri döner.
channels_lastboolFalseDoğrulama sırasındaki evrişimler için channels_last (NHWC) bellek biçimini kullanır, sonuçlarda hiçbir değişiklik olmadan CUDA Tensor Core GPU'ları hızlandırır. Yalnızca yerel PyTorch modelleri için geçerlidir; CPU, MPS ve TensorRT ile ONNX gibi dışarı aktarılan biçimler için yok sayılır.
end2endboolNoneNMS içermeyen çıkarımı destekleyen YOLO modellerinde uçtan uca modu geçersiz kılar (YOLO26, YOLOv10). Bunu False olarak ayarlamak, geleneksel NMS boru hattını kullanarak doğrulama çalıştırmanıza olanak tanır ve ayrıca iou argümanını kullanmanıza imkan sağlar.

Bu ayarların her biri doğrulama sürecinde hayati bir rol oynar ve YOLO modellerinin özelleştirilebilir ve verimli bir şekilde değerlendirilmesine olanak tanır. Bu parametreleri özel ihtiyaçlarına ve kaynaklarına göre ayarlamak, doğruluk ve performans arasında en iyi dengeyi yakalamana yardımcı olabilir.

Argümanlarla Örnek Doğrulama#



Watch: How to Export Model Validation Results in CSV, JSON, SQL, Polars DataFrame & More

Google Colab'da model doğrulamasını ve farklı dışa aktarma yöntemlerini keşfet

Aşağıdaki örnekler, Python ve CLI'da özel argümanlarla YOLO modeli doğrulamasını göstermektedir.

Örnek
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Customize validation settings
metrics = model.val(data="coco8.yaml", imgsz=640, batch=16, conf=0.25, iou=0.7, device="0")
ConfusionMatrix'i Dışa Aktar

Ayrıca ConfusionMatrix sonuçlarını sağlanan kodu kullanarak farklı formatlarda kaydedebilirsin.

from ultralytics import YOLO

model = YOLO("yolo26n.pt")

results = model.val(data="coco8.yaml", plots=True)
print(results.confusion_matrix.to_df())
Görüntü Başına Hassasiyet, Geri Çağırma ve F1

Doğrulama, sınıflandırma dışındaki tüm görevler için görüntü başına hassasiyet, geri çağırma, F1, TP, FP ve FN metriklerini (0.5 IoU eşiğinde) saklar. Doğrulama tamamlandıktan sonra algılama ve OBB için results.box.image_metrics, segmentasyon için results.seg.image_metrics ve poz için results.pose.image_metrics üzerinden bunlara erişin.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Validate and access per-image metrics
results = model.val(data="coco8.yaml")

# image_metrics is a dictionary with image filenames as keys
print(results.box.image_metrics)
# Output: {'image1.jpg': {'precision': 0.85, 'recall': 0.92, 'f1': 0.88, 'tp': 17, 'fp': 3, 'fn': 1}, ...}

# Access metrics for a specific image
results.box.image_metrics["image1.jpg"]  # {'precision': 0.85, 'recall': 0.92, 'f1': 0.88, 'tp': 17, 'fp': 3, 'fn': 1}

image_metrics içindeki her bir girdi şu anahtarları içerir:

AnahtarAçıklama
precisionGörüntü için hassasiyet (precision) skoru (tp / (tp + fp)).
recallGörüntü için geri çağırma (recall) skoru (tp / (tp + fn)).
f1Hassasiyet ve geri çağırmanın harmonik ortalaması.
tpGörüntü için doğru pozitif sayısı.
fpGörüntü için yanlış pozitif sayısı.
fnGörüntü için yanlış negatif sayısı.

Bu özellik; algılama, segmentasyon, poz ve OBB görevleri için kullanılabilir.

YöntemDönüş TürüAçıklama
summary()List[Dict[str, Any]]Doğrulama sonuçlarını özetlenmiş bir sözlüğe dönüştürür.
to_df()DataFrameDoğrulama sonuçlarını yapılandırılmış bir Polars DataFrame olarak döndürür.
to_csv()strDoğrulama sonuçlarını CSV formatında dışa aktarır ve CSV dizisini döndürür.
to_json()strDoğrulama sonuçlarını JSON formatında dışa aktarır ve JSON dizisini döndürür.

Daha fazla ayrıntı için DataExportMixin class documentation sayfasına bakın.

Sırada ne var#

Metriklerden memnun musun? Modeli bir dağıtım formatına dışa aktar. Doğruluk düşükse, farklı hiperparametreler veya daha fazla eğitim verisiyle geri dön ve yeniden eğit.

SSS#

YOLO26 modelimi Ultralytics ile nasıl doğrularım?#

YOLO26 modelini doğrulamak için Ultralytics tarafından sağlanan Val modunu kullanabilirsin. Örneğin, Python API'sini kullanarak bir model yükleyebilir ve şu şekilde doğrulama çalıştırabilirsin:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Validate the model
metrics = model.val()
print(metrics.box.map)  # map50-95

Alternatif olarak, komut satırı arayüzünü (CLI) kullanabilirsin:

yolo val model=yolo26n.pt

Daha fazla özelleştirme için hem Python hem de CLI modlarında imgsz, batch ve conf gibi çeşitli argümanları ayarlayabilirsiniz. Parametrelerin tam listesi için Arguments for YOLO Model Validation bölümünü kontrol edin.

YOLO26 modeli doğrulamasından hangi metrikleri alabilirim?#

YOLO26 modeli doğrulaması, model performansını değerlendirmek için birkaç temel metrik sağlar. Bunlar şunları içerir:

  • mAP50 (IoU eşiği 0.5'te ortalama Hassasiyet)
  • mAP75 (IoU eşiği 0.75'te ortalama Hassasiyet)
  • mAP50-95 (0.5'ten 0.95'e kadar birden fazla IoU eşiği boyunca ortalama Hassasiyet)

Python API'sini kullanarak bu metriklere şu şekilde erişebilirsin:

metrics = model.val()  # assumes `model` has been loaded
print(metrics.box.map)  # mAP50-95
print(metrics.box.map50)  # mAP50
print(metrics.box.map75)  # mAP75
print(metrics.box.maps)  # list of mAP50-95 for each category
print(metrics.box.image_metrics)  # per-image metrics dictionary with precision, recall, F1, TP, FP, and FN

Eksiksiz bir performans değerlendirmesi için tüm bu metrikleri gözden geçirmek çok önemlidir. Daha fazla ayrıntı için Key Features of Val Mode bölümüne bakın.

Ultralytics YOLO'yu doğrulama için kullanmanın avantajları nelerdir?#

Ultralytics YOLO'yu doğrulama için kullanmak çeşitli avantajlar sağlar:

  • Precision: YOLO26; mAP50, mAP75 ve mAP50-95 dahil olmak üzere doğru performans metrikleri sunar.
  • Kolaylık: Modeller eğitim ayarlarını hatırlar, bu da doğrulamayı basit hale getirir.
  • Esneklik: Aynı veya farklı veri setleri ve görüntü boyutlarına göre doğrulama yapabilirsin.
  • Hiperparametre Ayarı: Doğrulama metrikleri, daha iyi performans için modellerin ince ayarının yapılmasına yardımcı olur.

Bu avantajlar, modellerinizin kapsamlı bir şekilde değerlendirilmesini ve üstün sonuçlar için optimize edilebilmesini sağlar. Bu avantajlar hakkında daha fazla bilgi edinmek için Why Validate with Ultralytics YOLO bölümünü inceleyin.

YOLO26 modelimi özel bir veri seti kullanarak doğrulayabilir miyim?#

Evet, custom dataset kullanarak YOLO26 modelinizi doğrulayabilirsiniz. Veri seti yapılandırma dosyanızın yoluyla birlikte data argümanını belirtin. Bu dosya validation data yolunu içermelidir.

Not

Doğrulama, model.names kullanarak görüntüleyebileceğiniz ve veri seti yapılandırma dosyasında belirtilenlerden farklı olabilecek modelin kendi sınıf adları kullanılarak gerçekleştirilir.

Python'da örnek:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Validate with a custom dataset
metrics = model.val(data="path/to/your/custom_dataset.yaml")
print(metrics.box.map)  # map50-95

CLI kullanarak örnek:

yolo val model=yolo26n.pt data=path/to/your/custom_dataset.yaml

Doğrulama sırasında daha fazla özelleştirilebilir seçenek için Example Validation with Arguments bölümüne bakın.

YOLO26'da doğrulama sonuçlarını nasıl JSON dosyasına kaydederim?#

Doğrulama sonuçlarını bir JSON dosyasına kaydetmek için doğrulamayı çalıştırırken save_json argümanını True olarak ayarlayabilirsiniz. Bu işlem hem Python API hem de CLI'da yapılabilir.

Python'da örnek:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")

# Save validation results to JSON
metrics = model.val(save_json=True)

CLI kullanarak örnek:

yolo val model=yolo26n.pt save_json=True

Bu işlevsellik, daha ileri analizler veya diğer araçlarla entegrasyon için özellikle yararlıdır. Daha fazla ayrıntı için Arguments for YOLO Model Validation bölümünü kontrol edin.

Yorumlar