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.
- 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.
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-95Varsayı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.
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ğ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#
| Mod | Amaç | Etiket gerektirir | Çıktı |
|---|---|---|---|
| Doğrulama | Performansı gerçeklik etiketlerine göre nicelendirir | Evet | Kesinlik, duyarlılık, mAP50, mAP50-95, karışıklık matrisi, kesinlik-duyarlılık eğrileri |
| Tahmin | Modelin yeni ve etiketlenmemiş verilerdeki davranışını inceler | Hayır | Açı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.
| Sorun | Yaygın belirtiler | Nasıl giderilir |
|---|---|---|
| Aşırı öğrenme | Yü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ık | Dropout gibi düzenlileştirme yöntemleri uygula, eğitim veri kümesinin boyutunu artır ve model mimarisini basitleştir |
| Yetersiz öğrenme | Eğitim kümesinde bile düşük doğruluk; belirgin özellikleri veya nesneleri tanımada sürekli başarısızlık | Daha 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.
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
sourceolarak 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
valbölümü yerine özel bir test bölümünde doğrulama yapmak için veri kümesi YAML dosyandatest:tanımlayıpsplit="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.