YOLO Vision 2026:

Model Değerlendirme ve İnce Ayar Hakkında Bilgiler#

Bir YOLO modelini eğittikten sonraki adım, ne kadar iyi performans gösterdiğini ölçmek ve eksiklikleri gidermek için modelde ince ayar yapmaktır. Değerlendirme, doğruluğu nicel olarak belirlemek için mAP ve IoU gibi metrikleri kullanırken; ince ayar, modelin proje hedefinizi karşılamasını sağlamak amacıyla zayıf noktaları güçlendirmek için eğitim parametrelerini ayarlar. Bu kılavuz, temel değerlendirme metriklerini, bunların nasıl okunacağını ve modelinizin yeteneklerini artıran ince ayar tekniklerini açıklamaktadır.



Watch: Insights into Model Evaluation and Fine-Tuning | Tips for Improving Mean Average Precision

Değerlendirme ve ince ayar, eğitim başladıktan sonra ve modelin doğru, verimli ve dağıtıma hazır olduğundan emin olmanız gerektiğinde, bilgisayarlı görü proje iş akışının sonuna doğru yer alır.

Temel Değerlendirme Metrikleri#

Çeşitli metrikler bir modelin ne kadar etkiyle performans gösterdiğini ölçer. Bu performans metrikleri, modelin amaçlanan hedeflerini karşıladığından emin olmaya yönelik iyileştirmelere rehberlik eden net, sayısal içgörüler sağlar.

Güven Puanı#

Güven puanı, modelin tespit edilen bir nesnenin belirli bir sınıfa ait olduğu konusundaki kesinliğini temsil eder. 0 ile 1 arasında değişir ve yüksek puanlar daha fazla güveni gösterir. Güven puanı, tahminleri filtrelemeye yardımcı olur; yalnızca güven puanı belirli bir eşiğin üzerinde olan tespitler geçerli kabul edilir.

Tahmin göremiyor musun?

Çıkarım (inference) çalıştırırken hiçbir tahmin göremiyorsan ve diğer her şeyi kontrol ettiysen, güven eşiğini (confidence threshold) düşürmeyi dene. Bazen eşik çok yüksektir ve bu durum modelin geçerli tahminleri göz ardı etmesine neden olur. Eşiği düşürmek, modelin daha fazla olasılığı değerlendirmesine izin verir. Bu, nihai proje hedeflerini karşılamayabilir ancak modelin neler yapabildiğini görmek ve nasıl ince ayar yapacağına karar vermek için iyi bir yoldur.

Kesişim Üzerinden Birleşim#

Kesişimin Birleşime Oranı (IoU), nesne tespiti alanında, tahmin edilen sınırlayıcı kutunun gerçek nesne sınırlayıcı kutusuyla ne kadar iyi örtüştüğünü ölçen bir metriktir. IoU değerleri 0 ile 1 arasında değişir ve bir, mükemmel bir eşleşmeyi temsil eder. IoU, tahmin edilen sınırların gerçek nesne sınırlarıyla ne kadar yakından eşleştiğini ölçtüğü için esastır.

Intersection over Union Overview

Ortalama Hassasiyet (Mean Average Precision)#

Ortalama Duyarlılık Ortalaması (mAP), bir nesne tespiti modelinin genel olarak ne kadar iyi performans gösterdiğini ölçer. Her nesne sınıfını tespit etme duyarlılığını inceler, bu puanların ortalamasını alır ve modelin nesneleri ne kadar doğrulukla tanımlayıp sınıflandırabileceğini gösteren tek bir sayı verir.

En yaygın olarak rapor edilen iki mAP metriği şunlardır:

  • mAP@.5: 0.5'lik tek bir IoU eşiğinde ortalama hassasiyeti ölçer. Bu metrik, modelin daha esnek bir doğruluk gereksinimiyle nesneleri doğru şekilde bulup bulamadığını kontrol eder. Nesnenin tam yerinde olup olmadığına değil, yaklaşık olarak doğru yerde olup olmadığına odaklanır ve modelin genel olarak nesneleri tespit etmede başarılı olup olmadığını görmeye yardımcı olur.
  • mAP@.5:.95: 0,5'ten 0,95'e kadar 0,05'lik artışlarla hesaplanan mAP değerlerinin ortalamasını alır. Bu metrik daha ayrıntılı ve katıdır. Modelin nesneleri farklı kesinlik seviyelerinde ne kadar doğru bulabildiğine dair daha kapsamlı bir resim sunar ve özellikle hassas nesne tespiti gerektiren uygulamalar için kullanışlıdır.

Diğer mAP metrikleri arasında, 0,75'lik daha katı bir IoU eşiği kullanan mAP@0.75 ve farklı boyutlardaki nesneler genelinde hassasiyeti değerlendiren mAP@small, medium ve large yer alır.

Mean average precision mAP metric

Bir YOLO26 Modelini Değerlendirme#

Eğitilmiş bir YOLO26 modelini doğrulama modunu kullanarak değerlendirebilirsiniz. Her metriğin nasıl hesaplandığı ve yorumlandığına dair daha derinlemesine bir bakış için YOLO26 performans metrikleri kılavuzuna bakın.

Değişken Görüntü Boyutlarını Yönetme#

Modelinizi farklı boyutlardaki görüntüler üzerinde değerlendirmek, onun çeşitli veri setlerindeki performansını anlamanıza yardımcı olur. rect=true doğrulama parametresi, görüntüleri en boy oranına göre gruplandırır ve her bir bütünü sığan en küçük şekle göre doldurur; böylece dikdörtgen görüntüler kareye zorlanmadan değerlendirilir.

imgsz parametresi, kare olarak uygulanan, doğrulama sırasında kullanılan görüntü boyutunu belirler. Bunu açıkça ayarlamazsanız, YOLO26 modelin ayarlarında kaydedilen değeri yeniden kullanır (resmi önceden eğitilmiş modeller için 640 veya özel bir kontrol noktasının eğitildiği boyut her neyse). rect=true ile YOLO26, daha uzun kenarı imgsz değerine sınırlar ve daha kısa kenarı bir adım katına (stride multiple) doldurarak en boy oranını korur. imgsz değerini veri setinizin boyutlarına ve mevcut GPU belleğine göre ayarlayın.

YOLO26 Metriklerine Erişim#

Modelinin performansını detaylı olarak anlamak için birkaç satır Python kodu ile belirli değerlendirme metriklerine erişebilirsin. Aşağıdaki kod parçası bir modeli yükler, doğrulamayı çalıştırır ve en yararlı metrikleri yazdırır.

Kullanım
from ultralytics import YOLO

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

# Run validation on your dataset
results = model.val(data="coco8.yaml")

# Overall metrics
print("mAP50-95:", results.box.map)  # mAP at IoU 0.50:0.95
print("mAP50:", results.box.map50)  # mAP at IoU 0.50
print("mAP75:", results.box.map75)  # mAP at IoU 0.75
print("Mean precision:", results.box.mp)
print("Mean recall:", results.box.mr)
print("Fitness:", results.box.fitness())  # weighted score used for model selection

# Per-class metrics
print("Class indices evaluated:", results.box.ap_class_index)
print("Per-class mAP50-95:", results.box.maps)

# Per-image precision, recall, F1, TP, FP, and FN
print("Per-image metrics:", results.box.image_metrics)

# Per-stage timing breakdown in milliseconds per image
print("Timing breakdown (ms/image):", results.speed)

fitness() öğesinin bir yöntem olduğuna ve parantezle çağrılması gerektiğine dikkat edin; buna karşılık map, map50 ve mp gibi metrikler doğrudan erişilen özelliklerdir.

results.box.image_metrics özniteliği, görüntü dosya adıyla anahtarlanmış ve her görüntü için IoU 0.5'te precision, recall, f1, tp, fp ve fn barındıran görüntü başına bir sözlüktür. Ön işleme, çıkarım, kayıp ve son işleme süreleri ayrı olarak results.speed sözlüğünde raporlanır. Bunlar birlikte, modelin hangi görüntülerle zorlandığını tam olarak belirlemenize ve buna göre ince ayar yapmanıza olanak tanır.

Modeline İnce Ayar Yapma#

İnce ayar, önceden eğitilmiş bir modeli alır ve belirli bir görev veya veri kümesi üzerindeki performansını iyileştirmek için parametrelerini ayarlar. Modelin yeniden eğitilmesi olarak da bilinen bu işlem, modelin gerçek dünya uygulamalarında karşılaşacağı veriler için sonuçları daha iyi anlamasını ve tahmin etmesini sağlar. Değerlendirme sonuçlarına dayanarak, birkaç önemli parametreye ve tekniğe çok dikkat ederek optimum sonuçlara ulaşmak için modeli yeniden eğitirsin.

Daha Yüksek Bir Öğrenme Oranıyla Başlama#

Normal eğitim sırasında, öğrenme oranı düşük başlar ve erken güncellemeleri dengelemek için ilk birkaç epoch boyunca kademeli olarak artar. İnce ayar yaparken, model ön eğitimden zaten yararlı özellikler taşır; bu nedenle bu ısınmayı atlayabilir ve hemen yeni verilerinize uyum sağlamaya başlayabilirsiniz.

Isınma aşamasını devre dışı bırakmak için model.train() içindeki warmup_epochs eğitim argümanını 0 olarak ayarla. Eğitim daha sonra, bu değere kademeli olarak ulaşmak yerine, yapılandırılmış taban öğrenme oranında (lr0) önceden eğitilmiş ağırlıklardan devam eder ve yeni verilerinin nüanslarına uyum sağlar.

Öğrenme oranı ısınması olmadan ince ayar yap
from ultralytics import YOLO

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

# Fine-tune with the warmup phase disabled
model.train(data="coco8.yaml", epochs=10, warmup_epochs=0)

Küçük Nesneler İçin Görüntü Döşeme (Tiling)#

Görüntü döşeme (tiling), küçük nesneler için tespit doğruluğunu artırabilir. Daha büyük görüntüleri daha küçük segmentlere bölerek, örneğin 1280x1280 görüntüleri birden çok 640x640 segmente ayırarak, orijinal çözünürlüğü korursunuz ve modelin yüksek çözünürlüklü parçalardan öğrenmesini sağlarsınız. Ultralytics bunu çıkarım sırasında SAHI döşemeli çıkarım yoluyla destekler. Döşenmiş görüntüler üzerinde eğitim yaparken, her yeni segment için etiketlerinizi doğru şekilde ayarladığınızdan emin olun.

Sonuç#

Değerlendirme ve ince ayar, eğitilmiş bir modeli güvenilir, dağıtılabilir bir modele dönüştüren şeylerdir: mAP ve IoU gibi metrikler zayıflıkları ortaya çıkarır ve hedeflenen parametre değişiklikleri bunları ele alır. Modelinizi kıyaslamak için doğrulama modu ile başlayın, ardından yukarıdaki ince ayar tekniklerini uygulayın ve yeni parametreler, teknikler ve veri setleriyle yinelemeye devam edin. Yol boyunca sorularınız ortaya çıkarsa, Ultralytics GitHub deposunda veya Ultralytics Discord sunucusunda topluluğa sorun.

SSS#

YOLO26 model performansını değerlendirmek için temel metrikler nelerdir?#

YOLO26 model performansını değerlendirmek için önemli metrikler arasında Güven Puanı (Confidence Score), Kesişimin Birleşime Oranı (IoU) ve Ortalama Duyarlılık Ortalaması (mAP) yer alır. Güven Puanı, modelin tespit edilen her nesne sınıfı için kesinliğini ölçer. IoU, tahmin edilen sınırlayıcı kutunun gerçek değerle ne kadar iyi örtüştüğünü değerlendirir. Ortalama Duyarlılık Ortalaması (mAP), değişen IoU eşikleri için mAP@.5 ve mAP@.5:.95 olmak üzere iki yaygın türle sınıflar arasındaki duyarlılık puanlarını toplar. Bu metrikler hakkında daha fazla bilgiyi YOLO26 performans metrikleri kılavuzumuzda edinin.

Önceden eğitilmiş bir YOLO26 modeline kendi veri kümem için nasıl ince ayar yapabilirim?#

Önceden eğitilmiş bir YOLO26 modeline ince ayar yapmak, belirli bir görev veya veri kümesindeki performansı artırmak için parametrelerini ayarlamayı içerir. Modelini metriklerle değerlendirerek başla, ardından öğrenme oranının kademeli olarak artmak yerine hemen yapılandırılmış taban değerinden başlaması için model.train() içindeki warmup_epochs eğitim argümanını 0 olarak ayarla. Değerlendirme sırasında, rect=true gibi parametreler farklı görüntü boyutlarıyla etkili bir şekilde başa çıkmana yardımcı olur. Daha ayrıntılı rehberlik için modeline ince ayar yapma hakkındaki bölümümüze göz at.

YOLO26 modelimi değerlendirirken değişken görüntü boyutlarını nasıl yönetebilirim?#

Değerlendirme sırasında değişken görüntü boyutlarını ele almak için, YOLO26'da her görüntüyü bir kareye zorlamak yerine görüntüleri en boy oranına göre gruplandıran ve her bir bütünü dolduran rect=true parametresini kullanın. imgsz parametresi doğrulama için görüntü boyutunu belirler; eğer üzerine yazmazsanız, YOLO26 modelin kaydedilen değerini (resmi önceden eğitilmiş modeller için 640) yeniden kullanır. imgsz değerini veri setinize ve GPU belleğinize uyacak şekilde ayarlayın. Daha fazla ayrıntı için değişken görüntü boyutlarını ele alma bölümümüzü ziyaret edin.

YOLO26 modelim için ortalama hassasiyeti artırmak adına hangi pratik adımları atabilirim?#

YOLO26 modeli için ortalama hassasiyeti (mAP) artırmak birkaç adım içerir:

  1. Hiperparametreleri Ayarlama: Farklı öğrenme oranları, toplu iş boyutları (batch sizes) ve görüntü artırmaları ile deneyler yapın.
  2. Veri Artırma (Data Augmentation): Çeşitli eğitim örnekleri oluşturmak için Mosaic ve MixUp gibi teknikler kullanın.
  3. Görüntü Döşeme: Küçük nesneler için algılama doğruluğunu artırmak amacıyla daha büyük görüntüleri daha küçük döşemelere ayır.

Belirli stratejiler için modelinizde ince ayar yapma hakkındaki ayrıntılı bölümümüze bakın.

Python'da YOLO26 model değerlendirme metriklerine nasıl erişebilirim?#

Doğrulamayı çalıştırdıktan sonra Python kullanarak YOLO26 model değerlendirme metriklerine erişebilirsin:

Kullanım
from ultralytics import YOLO

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

# Run validation
results = model.val(data="coco8.yaml")

# Access key metrics
print("Mean average precision at IoU=0.50:", results.box.map50)
print("Mean average precision at IoU=0.50:0.95:", results.box.map)
print("Mean recall:", results.box.mr)
print("Class indices evaluated:", results.box.ap_class_index)

Bu metrikleri analiz etmek, YOLO26 modelinize ince ayar yapmanıza ve optimize etmenize yardımcı olur. Daha derinlemesine bir inceleme için YOLO performans metrikleri kılavuzumuza göz atın.

Yorumlar