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, eğitilmiş modellerinin kalitesini değerlendirmeni sağlayan machine learning sürecinde kritik bir adımdır. Ultralytics YOLO26'daki Val modu, object detection modellerinin performansını değerlendirmek için sağlam 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 adına 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:

  • Doğruluk: Modelini kapsamlı bir şekilde değerlendirmek için mAP50, mAP75 ve mAP50-95 gibi doğru metrikler elde et.
  • Kolaylık: Eğitim ayarlarını hatırlayan yerleşik özellikleri kullanarak doğrulama sürecini basitleştir.
  • Esneklik: Modelini aynı veya farklı veri kümeleri ve görüntü boyutlarıyla doğrula.
  • Hyperparameter Tuning: Daha iyi performans için modelini ince ayar yapmak amacıyla doğrulama metriklerini kullan.

Link to this sectionVal Modunun Temel Özellikleri#

Bunlar, YOLO26'nın Val modu tarafından sunulan önemli 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 tercihinize göre komut satırı arayüzü veya Python API arasından seçim yap.
  • Veri Uyumluluğu: Eğitim aşamasında kullanılan veri kümeleriyle ve özel veri kümeleriyle 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 kolayca aynı görüntü boyutunda ve orijinal veri kümesi üzerinde doğrulayabilirsin.

Link to this sectionKullanım Örnekleri#

Eğitilmiş bir YOLO26n modelini COCO8 veri kümesi üzerinde accuracy açısından doğrula. model nesnesi, eğitim data'sını ve bağımsız değişkenlerini model nitelikleri olarak koruduğu için herhangi bir ek 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 bir RuntimeError alabilirsin. Bunu çözmek için doğrulama kodunun önüne 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ğrulaması için 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 giriş görüntüsü boyutu, toplu işleme (batch) ve performans eşikleri gibi unsurları kontrol eder. Doğrulama ayarlarını etkili bir şekilde özelleştirmene yardımcı olması için her argümanın ayrıntılı dökümü aşağıdadır.

ArgümanTürVarsayılanAçıklama
datastrNoneVeri kümesi yapılandırma dosyasının (örneğin coco8.yaml) yolunu belirtir. Bu dosya, validation data yolunu içermelidir.
imgszint640Giriş görüntülerinin boyutunu tanımlar. Tüm görüntüler işlenmeden önce bu boyuta yeniden ölçeklendirilir. Daha büyük boyutlar küçük nesneler için doğruluğu artırabilir ancak hesaplama süresini uzatır.
batchint16Toplu iş (batch) başına düşen 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, sonuçları daha fazla analiz, diğer araçlarla entegrasyon veya COCO gibi değerlendirme sunucularına gönderim için bir JSON dosyasına kaydeder.
conffloat0.001Tespitler 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 (false positive) ortaya çıkarabilir. Hassasiyet-geri çağırma (precision-recall) eğrilerini hesaplamak için validation sırasında kullanılır. Bellek kullanımını azaltmak amacıyla OBB doğrulaması için varsayılan değeri 0.01'dir.
ioufloat0.7Sets the Intersection Over Union threshold for Non-Maximum Suppression. Controls duplicate detection elimination.
max_detint300Görüntü başına maksimum tespit sayısını sınırlar. Yoğun sahnelerde aşırı tespiti önlemek ve hesaplama kaynaklarını yönetmek için kullanışlıdır.
halfboolFalseYarı precision (FP16) hesaplamasını etkinleştirir; bu, bellek kullanımını azaltır ve accuracy üzerinde minimum etkiyle hızı potansiyel olarak artırı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.
dnnboolFalseTrue ise, ONNX model çıkarımı için OpenCV DNN modülünü kullanır ve PyTorch çıkarım yöntemlerine bir alternatif sunar.
plotsboolTrueTrue olarak ayarlandığında, model performansının görsel değerlendirmesi için tahminlerin gerçek değerlerle karşılaştırıldığı grafikler, karışıklık matrisleri (confusion matrices) ve PR eğrileri oluşturur ve kaydeder.
classeslist[int]NoneDeğerlendirilecek sınıf kimliklerinin bir listesini belirtir. Değerlendirme sırasında belirli sınıfları filtrelemek ve yalnızca onlara odaklanmak için kullanışlıdır.
rectboolTrueTrue ise, toplu işleme için dikdörtgen çıkarımı kullanır; bu, görüntüleri orijinal en-boy oranlarında işleyerek dolguyu (padding) azaltır ve hızı ve 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 segmentini seçmede 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 ise, sınıf bazlı metrikler, toplu ilerleme durumu ve ek hata ayıklama bilgileri dahil olmak üzere doğrulama süreci sırasında ayrıntılı bilgileri görüntüler.
save_txtboolFalseTrue ise, tespit sonuçlarını görüntü başına bir dosya olacak şekilde metin dosyalarına kaydeder; bu, daha fazla analiz, özel son işleme veya diğer sistemlerle entegrasyon için kullanışlıdır.
save_confboolFalseTrue ise ve save_txt etkinleştirilmişse, kaydedilen metin dosyalarına güven değerlerini dahil eder ve analiz ve filtreleme için daha ayrıntılı çıktı sağlar.
workersint8Veri yükleme için çalışan iş parçacığı (worker) sayısı. Daha yüksek değerler veri ön işlemeyi hızlandırabilir ancak CPU kullanımını artırabilir. 0 olarak ayarlamak ana iş parçacığını kullanır, bu 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ından ödün vererek tespit doğruluğunu potansiyel olarak artırır.
agnostic_nmsboolFalseSınıftan bağımsız Non-Maximum Suppression özelliğini etkinleştirir; bu, tahmin edilen sınıf ne olursa olsun örtüşen kutuları birleştirir. Örnek odaklı uygulamalar için kullanışlıdır. Uçtan uca modeller (YOLO26, YOLOv10) için bu özellik, 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ği tabanlı bastırma uygulamaz.
single_clsboolFalseDoğrulama sırasında tüm sınıfları tek bir sınıf olarak ele alır. İkili tespit görevlerinde model performansını değerlendirmek veya sınıf ayrımlarının önemli olmadığı durumlar için kullanışlıdır.
visualizeboolFalseHer görüntü için gerçek değerleri, gerçek 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 ayarla.
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 temiz bir görünümü için False olarak ayarla.
compilebool veya strFalseEnables PyTorch 2.x torch.compile graph compilation with backend='inductor'. Accepts True"default", False → disables, or a string mode such as "default", "reduce-overhead", "max-autotune-no-cudagraphs". Falls back to eager with a warning if unsupported.
end2endboolNoneNMS'siz çıkarımı destekleyen YOLO modellerinde (YOLO26, YOLOv10) uçtan uca modu geçersiz kılar. False olarak ayarlamak, geleneksel NMS hattını kullanarak doğrulama yapmanı sağlar ve ayrıca iou argümanından yararlanmana olanak tanır.

Bu ayarların her biri, YOLO modellerinin özelleştirilebilir ve verimli bir şekilde değerlendirilmesini sağlayarak doğrulama sürecinde hayati bir rol oynar. Bu parametreleri özel ihtiyaçlarına ve kaynaklarına göre ayarlamak, doğruluk ve performans arasında en iyi dengeyi kurmana 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 model 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 sağlanan kodu kullanarak ConfusionMatrix sonuçlarını 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 görüntü başına hassasiyet, geri çağırma, F1, TP, FP ve FN metriklerini (0.5 IoU eşiğinde) depolar. Doğrulama tamamlandıktan sonra tespit ve OBB için results.box.image_metrics, segmentasyon için results.seg.image_metrics ve poz tahmini için results.pose.image_metrics üzerinden bunlara eriş.

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 puanı (tp / (tp + fp)).
recallGörüntü için geri çağırma puanı (tp / (tp + fn)).
f1Hassasiyet ve geri çağırmanın harmonik ortalaması.
tpGörüntü için gerçek pozitiflerin sayısı.
fpGörüntü için yanlış pozitiflerin sayısı.
fnGörüntü için yanlış negatiflerin sayısı.

Bu özellik tespit, segmentasyon, poz tahmini 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 dizesini döndürür.
to_json()strDoğrulama sonuçlarını JSON formatında dışa aktarır ve JSON dizesini döndürür.

Daha fazla ayrıntı için DataExportMixin sınıfı belgelerine 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 kullanarak bir model yükleyebilir ve doğrulamayı şununla ç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 imgsz, batch ve conf gibi çeşitli bağımsız değişkenleri hem Python hem de CLI modlarında ayarlayabilirsin. Parametrelerin tam listesi için YOLO Model Doğrulaması için Bağımsız Değişkenler bölümüne göz at.

Link to this sectionYOLO26 model doğrulamasından hangi metrikleri alabilirim?#

YOLO26 model doğrulaması, model performansını değerlendirmek için birkaç önemli 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 çok IoU eşiğinde ortalama Hassasiyet)

Python API kullanarak bu metrikleri ş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çirmen çok önemlidir. Daha fazla ayrıntı için Val Modunun Temel Özellikleri bölümüne başvur.

Link to this sectionDoğrulama için Ultralytics YOLO kullanmanın avantajları nelerdir?#

Doğrulama için Ultralytics YOLO kullanmanın birçok avantajı vardır:

  • 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 kümelerine ve görüntü boyutlarına göre doğrulama yapabilirsin.
  • Hiperparametre Ayarı: Doğrulama metrikleri, modellerin daha iyi performans için 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 bulabilirsin.

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

Evet, YOLO26 modelini özel bir veri kümesi kullanarak doğrulayabilirsin. data bağımsız değişkenini, veri kümesi 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 kümesi 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 Bağımsız Değişkenlerle Doğrulama Örneği bölümüne bak.

Link to this sectionYOLO26'da doğrulama sonuçlarını bir JSON dosyasına nasıl kaydedebilirim?#

Doğrulama sonuçlarını bir JSON dosyasına kaydetmek için, doğrulamayı çalıştırırken save_json bağımsız değişkenini True olarak ayarlayabilirsin. Bu işlem hem Python API hem de CLI ile 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 analiz veya diğer araçlarla entegrasyon için özellikle yararlıdır. Daha fazla ayrıntı için YOLO Model Doğrulaması için Bağımsız Değişkenler bölümünü kontrol et.

Yorumlar