Meet YOLO26: next-gen vision AI.

Link to this sectionUltralytics YOLO ile Model Doğrulama#

Ultralytics YOLO ecosystem and integrations

Link to this sectionGiriş#

Doğrulama, makine öğrenimi hattında eğitilmiş modellerinin kalitesini değerlendirmeni sağlayan kritik bir adımdır. Ultralytics YOLO26 içindeki Val modu, nesne algılama modellerinin performansını değerlendirmek için güçlü bir araç ve metrik paketi sunar. Bu kılavuz, modellerinin hem doğru hem de güvenilir olduğundan emin olmak için Val modunu nasıl etkin bir şekilde kullanacağını anlamanı sağlayacak eksiksiz bir kaynak görevi görür.



Watch: Ultralytics Modes Tutorial: Validation

Link to this sectionNeden 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.
  • Hiperparametre Ayarı: Daha iyi performans için modeline ince ayar yapmak amacıyla doğrulama metriklerini kullan.

Link to this sectionVal 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 yolo val model=yolo26n.pt veya YOLO("yolo26n.pt").val() komutlarıyla bir modeli aynı görüntü boyutunda ve orijinal veri setinde kolayca doğrulayabilirsin.

Link to this sectionKullanım Örnekleri#

Eğitilmiş bir YOLO26n modelinin doğruluğunu COCO8 veri setinde doğrula. model, eğitim data'sını ve argümanlarını model öznitelikleri olarak koruduğu için herhangi 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.

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

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

Ö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

Link to this sectionYOLO 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ına (örneğin coco8.yaml) giden yolu belirtir. Bu dosya, doğrulama verilerine giden yolu 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_jsonboolFalseTrue 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.001Algılamalar için minimum güven eşiğini ayarlar. Daha düşük değerler geri çağırmayı (recall) 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ı için varsayılan olarak 0.01 değerindedir.
ioufloat0.7Sets the Intersection Over Union threshold for Non-Maximum Suppression. Controls duplicate detection elimination.
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 niceleme, dışa aktarma sırasında yapılandırılır ve 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, otomatik olarak mevcut en iyi cihazı seçer. Birden çok CUDA cihazı virgülle ayrılarak belirtilebilir.
dnnboolFalseTrue değerine ayarlandığında, ONNX model çıkarımı için OpenCV DNN modülünü kullanır ve PyTorch çıkarım yöntemlerine bir alternatif sunar.
plotsboolTrueTrue değerine ayarlandığında, model performansının görsel değerlendirmesi için tahminlerin gerçek değerlere karşı çizimlerini, 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.
rectboolTrueTrue değerine ayarlandığında, toplu işlemler için dikdörtgen çıkarım kullanır; bu da görüntüleri orijinal en-boy oranlarında işleyerek dolguyu azaltır ve hız ile verimliliği potansiyel olarak artırır.
splitstr'val'Doğrulama için kullanılacak veri kümesi bölümünü (val, test veya train) belirler. 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.
verboseboolTrueTrue değerine ayarlandığında, doğrulama süreci boyunca sınıf başına metrikler, toplu ilerleme ve ek hata ayıklama bilgileri dahil olmak üzere ayrıntılı bilgileri görüntüler.
save_txtboolFalseTrue değerine ayarlandığında, tespit sonuçlarını her görüntü için bir dosya olacak şekilde metin dosyalarına kaydeder; bu, ileri analiz, özel son işlem veya diğer sistemlerle entegrasyon için kullanışlıdır.
save_confboolFalseTrue değerine ayarlandığında, save_txt etkinleştirildiğinde kaydedilen metin dosyalarına güven değerlerini dahil eder ve analiz ile 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_nmsboolFalseSınıf bağımsız Non-Maximum Suppression özelliğini etkinleştirir; bu, tahmin edilen sınıfına bakılmaksızın çakışan kutuları birleştirir. Örnek odaklı uygulamalar için yararlıdır. Uçtan uca modeller (YOLO26, YOLOv10) için bu, yalnızca aynı tespitin birden fazla sınıf etiketiyle görünmesini engeller (IoU=1.0 kopyaları) ve farklı kutular arasında IoU eşiğine dayalı eleme 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 net bir görünümü için False olarak ayarlayın.
show_confboolTruevisualize=True olduğunda doğrulama görselleştirmelerinde güven puanlarını görüntüler. Eşleşmelerin ve hataların daha net 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ırakır veya "default", "reduce-overhead", "max-autotune-no-cudagraphs" gibi bir dize modu kabul eder. Desteklenmiyorsa bir uyarı ile eager moduna geri döner.
end2endboolNoneNMS içermeyen çıkarımı destekleyen YOLO modellerindeki (YOLO26, YOLOv10) uçtan uca modu geçersiz kılar. False olarak ayarlamak, doğrulamayı geleneksel NMS hattını kullanarak çalıştırmanıza ve ayrıca iou argümanını kullanmanıza olanak tanır.

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.

Link to this sectionArgü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 hariç tüm görevler için (IoU eşiği 0.5'te) görüntü başına hassasiyet, geri çağırma, F1, TP, FP ve FN metriklerini saklar. Doğrulama tamamlandıktan sonra algılama ve OBB için results.box.image_metrics üzerinden, segmentasyon için results.seg.image_metrics üzerinden ve poz için results.pose.image_metrics üzerinden bunlara erişebilirsin.

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 girdi aşağıdaki anahtarları içerir:

AnahtarAçıklama
precisionGörüntü için hassasiyet skoru (tp / (tp + fp)).
recallGörüntü için geri çağırma 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 sınıf dokümantasyonuna bak.

Link to this sectionSSS#

Link to this sectionYOLO26 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ı ayarlayabilirsin. Parametrelerin tam listesi için YOLO Model Doğrulama Argümanları bölümüne göz at.

Link to this sectionYOLO26 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 Val Modunun Temel Özellikleri kısmına başvur.

Link to this sectionUltralytics YOLO'yu doğrulama için kullanmanın avantajları nelerdir?#

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

  • Hassasiyet: 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, modellerinin kapsamlı bir şekilde değerlendirilmesini ve üstün sonuçlar için optimize edilebilmesini sağlar. Bu avantajlar hakkında daha fazla bilgiyi Neden Ultralytics YOLO ile Doğrulama Yapmalısın bölümünde öğren.

Link to this sectionYOLO26 modelimi özel bir veri seti kullanarak doğrulayabilir miyim?#

Evet, YOLO26 modelini bir özel veri seti kullanarak doğrulayabilirsin. data argümanını veri seti yapılandırma dosyanın yolu ile belirt. Bu dosya, doğrulama verisine giden yolu içermelidir.

Not

Doğrulama, model.names kullanarak görüntüleyebileceğin 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 özelleştirilebilir seçenekler için Argümanlarla Örnek Doğrulama bölümüne bak.

Link to this sectionYOLO26'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ğrulama çalıştırırken save_json argümanını True olarak ayarlayabilirsin. 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, ileri analizler veya diğer araçlarla entegrasyon için özellikle kullanışlıdır. Daha fazla ayrıntı için YOLO Model Doğrulama Argümanları bölümüne göz at.

Yorumlar