Ultralytics YOLO27:

Bilgisayarlı Görü Modelleri Nasıl Test Edilir#

Giriş#

Model testi, eğitilmiş bir modelin özenle hazırlanmış bir kıyaslama veri kümesi yerine hareketli, yetersiz aydınlatılmış veya kısmen gizlenmiş nesneler gibi daha önce görülmemiş gerçek dünya verileri üzerindeki performansını kontrol eder. Model değerlendirmesi, etiketlenmiş bir veri kümesindeki metrikleri ölçerken test, dağıtımdan önce modelin öğrendiği davranışın uygulamanın hedefleriyle örtüşüp örtüşmediğini doğrular. Bu kılavuzda test verilerini hazırlama, Ultralytics YOLO26 modellerini test etme ve aşırı öğrenme, yetersiz öğrenme ve veri sızıntısını tespit etme konuları ele alınır.



Watch: How to Test Machine Learning Models | Avoid Data Leakage in Computer Vision 🚀

Model Testi ve Model Değerlendirmesi#

Model testi ve model değerlendirmesi, bir bilgisayarlı görü projesindeki iki farklı adımdır. Değerlendirme, etiketlenmiş bir veri kümesindeki performansı metriklerle ölçer; test ise modelin öğrendiği davranışın dağıtım koşullarına benzeyen koşullarda geçerliliğini koruyup korumadığını kontrol eder.

Kedileri ve köpekleri tanımak üzere bir bilgisayarlı görü modeli eğittiğini ve bu modeli hayvanları izlemek için bir evcil hayvan mağazasında dağıtmak istediğini varsayalım. Model değerlendirme aşamasında doğruluk, kesinlik ve duyarlılık gibi metrikleri hesaplamak için etiketlenmiş bir veri kümesi kullanırsın. Örneğin model, belirli bir veri kümesinde kedilerle köpekleri ayırt ederken %98 doğruluk gösterebilir.

Değerlendirmeden sonra, kedileri ve köpekleri daha çeşitli ve gerçekçi koşullarda ne kadar iyi tanımladığını görmek için modeli bir evcil hayvan mağazasından alınan görüntülerle test edersin. Hareket halindeyken, farklı aydınlatma koşullarında veya oyuncak ve mobilya gibi nesneler tarafından kısmen engellendiklerinde kedileri ve köpekleri doğru şekilde etiketleyip etiketleyemediğini kontrol edersin. Model testi, modelin kontrollü değerlendirme ortamının dışında beklendiği gibi davrandığını doğrular.

Model Testine Hazırlık#

Bilgisayarlı görü veri kümeleri, gerçek dünya koşullarını benzetmek için genellikle eğitim ve test kümelerine ayrılır: eğitim verileri modele öğretirken test verileri modelin daha önce hiç görmediği örneklerdeki davranışını doğrular. Ultralytics Platformu, veri kümesi düzenlemesini ve açıklamasını tek bir yerde tutar; bu da etiketlenmiş bir test kümesi oluştururken yardımcı olur.

Testten önce
  • Gerçekçi temsil: Daha önce görülmemiş test verileri, modelin dağıtıldığında işleyeceği verilere benzer olmalıdır. Bu, modelin yetenekleri hakkında gerçekçi bir fikir verir.
  • Yeterli boyut: Test veri kümesi, modelin ne kadar iyi performans gösterdiği hakkında güvenilir içgörüler sağlayacak kadar büyük olmalıdır.

YOLO26 Modeli Nasıl Test Edilir#

Eğitilmiş bir YOLO26 modelini test etmek, birbirini tamamlayan iki iş akışını içerir: nicel metrikler elde etmek için etiketlenmiş bir test bölümünde doğrulama yapmak ve davranışı niteliksel olarak incelemek için yeni görüntüler üzerinde tahmin çalıştırmak.

Etiketlenmiş Test Bölümünde Doğrulama Yapma#

Doğrulama modu, modelin tahminlerini gerçeklik etiketleriyle karşılaştırır ve algılama modelleri için kesinlik, duyarlılık, mAP50 ve mAP50-95 değerlerini raporlar. Ayrıca modelin iyi performans göstermiyor olabileceği belirli alanları fark etmene yardımcı olan karışıklık matrisi ve kesinlik-duyarlılık eğrisi gibi görsel yardımcıları da kaydeder.

Kullanım
from ultralytics import YOLO

# Load a pretrained model or your own trained checkpoint, e.g. "path/to/best.pt"
model = YOLO("yolo26n.pt")

# Validate; add split="test" if your dataset YAML defines a test split
metrics = model.val(data="coco8.yaml")
print(metrics.box.map)  # mAP50-95

Varsayılan olarak doğrulama, veri kümesinin val bölümü üzerinde çalışır. Ayrılmış bir test kümesindeki performansı ölçmek için veri kümesi YAML dosyanda bir test: bölümü tanımlayıp split="test" değerini ilet.

Yeni Görüntüler Üzerinde Tahmin Çalıştırma#

Tahmin modu, etiket gerektirmeden modeli yeni ve daha önce görülmemiş veriler üzerinde çalıştırır. Performans metrikleri üretmez; ancak açıklanmış çıktıları kaydetmek, modelin gerçek dünya görüntülerindeki davranışını incelemene olanak tanır — örneğin bir test görüntüleri klasörünün tamamını tek seferde işleyebilirsin.

Kullanım
from ultralytics import YOLO

# Load a pretrained model or your own trained checkpoint, e.g. "path/to/best.pt"
model = YOLO("yolo26n.pt")

# Run predictions on a folder of test images and save annotated results
results = model.predict(source="path/to/test_images", save=True)
Özel eğitimden önce önceden eğitilmiş bir modeli test etme

Özel eğitime yatırım yapmadan önce YOLO26'nın uygulamana uygun olup olmadığını kontrol etmek için kendi görüntülerin üzerinde önceden eğitilmiş bir ağırlık dosyasıyla tahmin modunu çalıştır. Modeller COCO gibi veri kümeleri üzerinde önceden eğitildiğinden sonuçlar, modelin özel bağlamında ne kadar iyi performans gösterebileceği hakkında hızlı bir fikir verir.

Doğrulama ve Tahmin Modu#

ModAmaçEtiket gerektirirÇıktı
DoğrulamaPerformansı gerçeklik etiketlerine göre nicelendirirEvetKesinlik, duyarlılık, mAP50, mAP50-95, karışıklık matrisi, kesinlik-duyarlılık eğrileri
TahminModelin yeni ve etiketlenmemiş verilerdeki davranışını incelerHayırAçıklanmış görüntüler ve tahmin sonuçları, metrik yok

Test Sonuçları Nasıl Analiz Edilir#

Tahminler ve metrikler eline ulaştığında modelin nerede ve neden başarısız olduğunu ayrıntılı olarak incele:

  • Yanlış sınıflandırılmış görüntüler: Modelin yanlış sınıflandırdığı görüntüleri belirleyip inceleyerek nerede hata yaptığını anla.
  • Hata analizi: Hata türlerini (ör. yanlış pozitifler ve yanlış negatifler) ve bunların olası nedenlerini anlamak için kapsamlı bir hata analizi gerçekleştir.
  • Önyargı ve adalet: Modelin tahminlerinde herhangi bir önyargı olup olmadığını kontrol et. Özellikle ırk, cinsiyet veya yaş gibi hassas özellikler içeriyorsa modelin veri kümesinin farklı alt kümelerinde eşit derecede iyi performans gösterdiğinden emin ol.

Makine Öğrenmesinde Aşırı Öğrenme ve Yetersiz Öğrenme#

Bir makine öğrenmesi modelini, özellikle bilgisayarlı görü alanında test ederken aşırı öğrenmeye ve yetersiz öğrenmeye dikkat etmek önemlidir. Bu sorunlar, modelinin yeni verilerle ne kadar iyi çalıştığını önemli ölçüde etkileyebilir.

SorunYaygın belirtilerNasıl giderilir
Aşırı öğrenmeYüksek eğitim doğruluğu ancak düşük doğrulama doğruluğu; görüntülerdeki küçük değişikliklere veya ilgisiz ayrıntılara aşırı duyarlılıkDropout gibi düzenlileştirme yöntemleri uygula, eğitim veri kümesinin boyutunu artır ve model mimarisini basitleştir
Yetersiz öğrenmeEğitim kümesinde bile düşük doğruluk; belirgin özellikleri veya nesneleri tanımada sürekli başarısızlıkDaha karmaşık bir model kullan, daha ilgili özellikler sağla ve eğitim epoch sayısını artır

Önemli olan, modelin hem eğitim hem de doğrulama veri kümelerinde iyi performans göstermesi için bir denge bulmaktır. Test sırasında metrikleri düzenli olarak izlemek ve tahminleri görsel olarak incelemek, bu iki uçtan birine doğru kaymayı fark etmene yardımcı olur.

Comparison of underfitting, appropriate fitting, and overfitting on the same dataset

Bilgisayarlı Görüde Veri Sızıntısı ve Bundan Kaçınma Yolları#

Veri sızıntısı, eğitim veri kümesinin dışındaki bilgilerin yanlışlıkla modeli eğitmek için kullanılmasıyla gerçekleşir. Veri sızıntısı olduğunda model eğitim sırasında çok doğru görünebilir, ancak yeni ve daha önce görülmemiş veriler üzerinde iyi performans göstermez.

Sızıntıyı fark etmek zor olabilir ve çoğunlukla eğitim verilerindeki gizli önyargılardan kaynaklanır:

Önyargı türüNasıl görünür
Kamera önyargısıFarklı açılar, aydınlatma, gölgeler ve kamera hareketleri istenmeyen örüntüler oluşturur
Kaplama önyargısıGörüntülerdeki logolar, zaman damgaları veya diğer kaplamalar modeli yanıltır
Yazı tipi ve nesne önyargısıBelirli sınıflarda sık görülen belirli yazı tipleri veya nesneler, modelin öğrenmesini çarpıtır
Mekânsal önyargıÖn plan-arka plan dengesizlikleri, sınırlayıcı kutu dağılımları ve nesne konumları eğitimi etkiler
Etiket ve alan önyargısıYanlış etiketler veya veri türlerindeki değişimler sızıntıya yol açar

Veri Sızıntısı Nasıl Tespit Edilir ve Önlenir#

Veri sızıntısını bulmak için model sonuçlarının şaşırtıcı derecede iyi olup olmadığını kontrol et, bir özelliğin diğerlerinden çok daha önemli olup olmadığını incele, modelin kararlarının sezgisel olarak anlamlı olduğunu tekrar kontrol et ve herhangi bir işlemden önce verilerin doğru şekilde bölündüğünü doğrula.

Bunu önlemek için farklı kamera ve ortamlardan alınmış görüntü veya videolar içeren çeşitli bir veri kümesi kullan ve verilerini, tüm pozitif örneklerin günün belirli bir saatinde alınması gibi gizli önyargılar açısından dikkatlice incele. Veri sızıntısından kaçınmak, bilgisayarlı görü modellerini gerçek dünya koşullarında daha güvenilir hale getirir.

Model Testinden Sonra Ne Olur#

Modelini test ettikten sonraki adımlar sonuçlara bağlıdır. Modelin iyi performans gösteriyorsa onu gerçek dünya ortamına dağıtabilirsin. Sonuçlar tatmin edici değilse iyileştirmeler yapman gerekir. Bu; hataları analiz etmeyi, daha fazla veri toplamayı, veri kalitesini artırmayı, hiperparametreleri ayarlamayı ve modeli yeniden eğitmeyi içerebilir.

Sonuç#

Titiz model testi — ayrılmış bir test bölümünde doğrulama yapmak, gerçek dünya görüntüleri üzerinde tahmin çalıştırmak ve aşırı öğrenme ile veri sızıntısını kontrol etmek — iyi değerlendirilmiş bir modeli güvenilir bir modele dönüştürür. Testin ortaya çıkardığı sorunları dağıtımdan önce gider; böylece modelinin üretimde amaçlandığı gibi performans gösterme olasılığı çok daha yüksek olur. Bu süreçte soruların olursa Ultralytics GitHub deposunda veya Ultralytics Discord sunucusunda topluluğa sor.

SSS#

  • Model değerlendirmesi, etiketlenmiş bir veri kümesinde performansı metriklerle ölçerken model testi, modelin dağıtım koşullarına benzeyen yeni ve daha önce görülmemiş verilerde nasıl davrandığını kontrol eder. Değerlendirme, kontrollü bir veri kümesinden kesinlik ve mAP gibi sayılar üretir; test ise öğrenilen davranışın değişken aydınlatma, hareket veya örtülme koşullarında geçerliliğini koruyup korumadığını ortaya çıkarır. Uygulamalı bir örnek için Model Testi ve Model Değerlendirmesi bölümüne bak.

  • Tahmin modunu kullan ve klasör yolunu source olarak ilet — YOLO26 klasördeki her görüntü üzerinde çalışır ve incelemen için açıklanmış sonuçları kaydedebilir. Tahmin modu metrik hesaplamaz; etiketlenmiş bir kümedeki performansı nicelendirmek için bunun yerine doğrulama modunu kullan. Her iki iş akışı da YOLO26 Modeli Nasıl Test Edilir bölümünde gösterilir.

  • Algılama modelleri için doğrulama; kesinlik, duyarlılık, mAP50 ve mAP50-95 değerlerini raporlar ve karışıklık matrisi ile kesinlik-duyarlılık eğrisi dahil grafikleri kaydeder. Varsayılan val bölümü yerine özel bir test bölümünde doğrulama yapmak için veri kümesi YAML dosyanda test: tanımlayıp split="test" değerini ilet. Her metriğin nasıl yorumlanacağını öğrenmek için performans metrikleri kılavuzuna bak.

  • Aşırı öğrenme için dropout gibi düzenlileştirme teknikleri uygula, eğitim veri kümesinin boyutunu artır veya model mimarisini basitleştir. Yetersiz öğrenme için daha karmaşık bir model kullan, daha ilgili özellikler sağla veya daha fazla epoch boyunca eğitim yap. Her sorunun belirtileri ve ilgili çözümler Makine Öğrenmesinde Aşırı Öğrenme ve Yetersiz Öğrenme bölümünde özetlenmiştir.

  • Test performansı şaşırtıcı derecede iyi göründüğünde, tek bir özellik tahminlere baskın olduğunda veya modelin kararları sezgisel olarak anlamlı gelmediğinde veri sızıntısından şüphelen. Farklı kamera ve ortamlardan gelen çeşitli veri kümeleri kullanarak, verileri gizli önyargılar açısından inceleyerek ve eğitim/test bölümlemesinin herhangi bir işlemden önce yapıldığını doğrulayarak bunu önle. Yaygın önyargı türleri için Bilgisayarlı Görüde Veri Sızıntısı bölümüne bak.

  • Sonuçlar proje hedeflerini karşılıyorsa modeli dağıt; karşılamıyorsa dağıtımdan önce iyileştir. Bu; hataları analiz etmeyi, daha çeşitli veriler toplamayı, veri kalitesini artırmayı, hiperparametreleri ayarlamayı ve yeniden eğitim yapmayı içerebilir. Düzeltmelerin işe yaradığını doğrulamak için her değişiklik turundan sonra testi tekrarla.

Yorumlar