Bilgisayarlı Görü Modelleri Nasıl Test Edilir#
Giriş#
Model testi, seçilmiş bir kıyaslama yerine; hareketli, zayıf ışıklı veya kısmen gizlenmiş nesneler gibi daha önce görülmemiş, gerçek dünyadan veriler üzerinde eğitilmiş bir modelin nasıl performans gösterdiğini kontrol eder. Model değerlendirmesi etiketlenmiş bir veri setindeki metrikleri ölçerken, test etme, modelin öğrendiği davranışın dağıtımdan önce uygulamanızın hedefleriyle eşleştiğini doğrular. Bu kılavuz, test verilerini hazırlamayı, Ultralytics YOLO26 modellerini test etmeyi ve aşırı öğrenmeyi, az öğrenmeyi ve veri sızıntısını yakalamayı kapsar.
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 bilgisayarla görü projesindeki iki farklı adımdır. Değerlendirme, etiketlenmiş bir veri setinde metriklerle performansı ölçer; test etme ise modelin öğrendiği davranışın dağıtımı andıran koşullarda geçerli olup olmadığını kontrol eder.
Kedileri ve köpekleri tanımak için bir bilgisayarla görü modeli eğittiğinizi ve hayvanları izlemek için bu modeli bir evcil hayvan mağazasında dağıtmak istediğinizi varsayalım. Model değerlendirme aşamasında; doğruluk, kesinlik ve duyarlılık gibi metrikleri hesaplamak için etiketlenmiş bir veri seti kullanırsınız. Örneğin model, belirli bir veri setindeki kediler ile köpekleri ayırt etmede %98 oranında doğru sonuç verebilir.
Değerlendirmeden sonra, modelin daha değişken ve gerçekçi koşullarda kedi ve köpekleri ne kadar iyi tanımladığını görmek için bir pet shop'tan alınan görüntüleri kullanarak modeli test edersin. Hareket halindeyken, farklı ışık koşullarında veya oyuncak/mobilya gibi nesneler tarafından kısmen gizlendiklerinde kedi 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 davranıp davranmadığını denetler.
Model Testine Hazırlık#
Bilgisayarla görü veri setleri, gerçek dünya koşullarını simüle etmek için genellikle eğitim ve test setlerine bölünür: eğitim verisi modele öğretirken, test verisi daha önce hiç görmediği örnekler üzerindeki davranışını doğrular. Ultralytics Platform, veri seti düzenlemesini ve etiketlemesini tek bir yerde tutar; bu da etiketlenmiş bir test seti oluştururken yardımcı olur.
- Gerçekçi temsil: Daha önce görülmemiş test verileri, model dağıtıldığında karşı karşıya kalacağı verilere benzer olmalıdır. Bu, modelin yeteneklerine dair gerçekçi bir tablo sunar.
- Yeterli boyut: Test veri kümesinin, modelin ne kadar iyi performans gösterdiğine dair güvenilir içgörüler sağlayacak kadar büyük olması gerekir.
Bir YOLO26 Modeli Nasıl Test Edilir#
Eğitilmiş bir YOLO26 modelini test etmek iki tamamlayıcı iş akışı içerir: nicel metrikler elde etmek için etiketli bir test setinde doğrulama yapmak ve davranışı nitel olarak incelemek için yeni görüntüler üzerinde tahmin yürütmek.
Etiketli Bir Test Setinde Doğrulama#
Doğrulama modu, modelin tahminlerini temel gerçeklik etiketleriyle karşılaştırır ve algılama modelleri için kesinlik, duyarlılık, mAP50 ile mAP50-95 değerlerini bildirir. Ayrıca, modelin iyi performans göstermediği belirli alanları fark etmenize yardımcı olan bir karışıklık matrisi ve kesinlik-duyarlılık eğrisi gibi görsel araçlar 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 setinin val bölümünde çalışır. Ayrılmış bir test setindeki performansı ölçmek için veri seti YAML dosyanızda bir test: bölümü tanımlayın ve split="test" argümanını geçirin.
Yeni Görüntüler Üzerinde Tahmin#
Tahmin modu, modeli etiket gerektirmeden yeni ve görülmemiş veriler üzerinde çalıştırır. Performans metrikleri üretmez ancak etiketlenmiş çıktıları kaydetmek, modelin gerçek dünya görüntülerinde — örneğin test görüntülerinden oluşan bütün bir klasörde tek seferde — nasıl davrandığını incelemenizi sağlar.
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 bir eğitime yatırım yapmadan önce YOLO26'nın uygulamanıza uygun olup olmadığını kontrol etmek için, önceden eğitilmiş bir kontrol noktasıyla kendi görüntüleriniz üzerinde tahmin modunu çalıştırın. Modeller COCO gibi veri setlerinde önceden eğitilmiştir, bu nedenle sonuçlar modelin belirli bağlamınızda ne kadar iyi performans gösterebileceğine dair hızlı bir fikir verir.
Doğrulama ve Tahmin Modu Karşılaştırması#
| Mod | Amaç | Etiket gerektirir | Çıktı |
|---|---|---|---|
| Doğrulama | Performansı gerçek değerlere göre nicelleştirme | Evet | Kesinlik, duyarlılık, mAP50, mAP50-95, karmaşıklık matrisi, PR eğrileri |
| Tahmin | Yeni ve etiketsiz veriler üzerinde model davranışını inceleme | Hayır | Etiketli görüntüler ve tahmin sonuçları, metrik yok |
Test Sonuçları Nasıl Analiz Edilir#
Tahminler ve metrikler elindeyken, modelin nerede ve neden başarısız olduğunu derinlemesine incele:
- Yanlış sınıflandırılmış görüntüler: Modelin yanlış sınıflandırdığı görüntüleri belirle ve nerede hata yaptığını anlamak için gözden geçir.
- Hata analizi: Hata türlerini (örneğin, yanlış pozitifler ve yanlış negatifler) ve bunların olası nedenlerini anlamak için kapsamlı bir hata analizi yap.
- Önyargı ve adillik: Modelin tahminlerindeki önyargıları kontrol et. Modelin, özellikle ırk, cinsiyet veya yaş gibi hassas nitelikler içeriyorsa, verinin farklı alt kümelerinde eşit derecede iyi performans gösterdiğinden emin ol.
Makine Öğreniminde Aşırı Öğrenme ve Eksik Öğrenme#
Bir makine öğrenimi modelini test ederken, özellikle bilgisayarla görü alanında, aşırı öğrenmeye ve az öğrenmeye karşı dikkatli olmak önemlidir. Bu sorunlar, modelinizin yeni verilerle ne kadar iyi çalıştığını önemli ölçüde etkileyebilir.
| Sorun | Yaygın belirtiler | Nasıl çözülür |
|---|---|---|
| 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 karşı aşırı hassasiyet | Dropout gibi düzenlileştirme teknikleri uygulayın, eğitim veri setinin boyutunu artırın, model mimarisini basitleştirin |
| Eksik öğrenme | Eğitim setinde bile düşük doğruluk; bariz özellikleri veya nesneleri tanımada tutarlı başarısızlık | Daha karmaşık bir model kullanın, daha ilgili özellikler sağlayın, eğitim dönemi sayısını artırın |
Anahtar nokta, modelin hem eğitim hem de doğrulama veri kümelerinde iyi performans göstermesi için bir denge bulmaktır. Metrikleri düzenli olarak izlemek ve test sırasında tahminleri görsel olarak incelemek, uç durumlara kaymaları yakalamana yardımcı olur.
Bilgisayarlı Göründe Veri Sızıntısı ve Bundan Nasıl Kaçınılır#
Veri sızıntısı, eğitim veri kümesinin dışından gelen bilgilerin yanlışlıkla modeli eğitmek için kullanılması durumunda meydana gelir. Model eğitim sırasında çok doğru görünebilir, ancak veri sızıntısı olduğunda yeni ve görülmemiş veriler üzerinde iyi performans göstermez.
Sızıntıyı tespit etmek zor olabilir ve genellikle eğitim verilerindeki gizli önyargılardan kaynaklanır:
| Önyargı türü | Nasıl görünür |
|---|---|
| Kamera önyargısı | Farklı açılar, ışıklandırma, gölgeler ve kamera hareketleri istenmeyen desenler ortaya çıkarır |
| Kaplama önyargısı | Görüntülerdeki logolar, zaman damgaları veya diğer bindirmeler modeli yanıltır |
| Yazı tipi ve nesne önyargısı | Belirli sınıflarda sıklıkla görünen özel yazı tipleri veya nesneler, modelin öğrenimini saptırır |
| Mekansal ö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 kaymalar 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 modelin sonuçlarının şaşırtıcı derecede iyi olup olmadığını kontrol et, bir özelliğin diğerlerinden çok daha önemli olup olmadığına bak, modelin kararlarının sezgisel olarak mantıklı olup olmadığını tekrar kontrol et ve herhangi bir işleme başlamadan önce verilerin doğru şekilde ayrıldığını doğrula.
Bunu önlemek için farklı kameralardan ve ortamlardan gelen görüntü veya videoların bulunduğu çeşitli bir veri kümesi kullan ve verilerini tüm pozitif örneklerin günün belirli bir saatinde alınması gibi gizli önyargılara karşı dikkatlice incele. Veri sızıntısından kaçınmak, bilgisayarlı görü modellerini gerçek dünya durumlarında daha güvenilir hale getirir.
Model Testinden Sonra Ne Yapılır#
Modelinizi test ettikten sonraki adımlar, sonuçlara bağlıdır. Modeliniz iyi performans gösterirse onu gerçek dünya ortamına dağıtabilirsiniz. Sonuçlar tatmin edici değilse iyileştirmeler yapmanız gerekir. Bu süreç; hataları analiz etmeyi, daha fazla veri toplamayı, veri kalitesini artırmayı, hiperparametreleri ayarlamayı ve modeli yeniden eğitmeyi içerebilir.
Sonuç#
Titiz bir model testi — ayrılmış bir test bölümünde doğrulama yapma, gerçek dünya görüntüleri üzerinde tahmin yürütme ve aşırı öğrenme ile veri sızıntısını kontrol etme — iyi değerlendirilmiş bir modeli güvenilir bir modele dönüştüren şeydir. Testin ortaya çıkardığı sorunları dağıtımdan önce çözün; böylece modelinizin prodüksiyon ortamında amaçlandığı gibi performans gösterme olasılığı çok daha yüksek olur. Yol boyunca sorularınız olursa Ultralytics GitHub deposunda veya Ultralytics Discord sunucusunda topluluğa sorun.
SSS#
Model değerlendirmesi etiketlenmiş bir veri setinde metriklerle performansı ölçerken, model testi modelin dağıtım koşullarını andıran yeni ve görülmemiş veriler üzerinde nasıl davrandığını kontrol eder. Değerlendirme kontrollü bir veri setinden kesinlik ve mAP gibi sayılar üretir; test etme ise öğrenilen davranışın değişen aydınlatma, hareket veya kapanma durumları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ın.
Tahmin modunu kullanın ve argüman olarak bir klasör yolu geçirin (
source): YOLO26 klasördeki her görüntü üzerinde çalışır ve incelenmek üzere etiketlenmiş sonuçları kaydedebilir. Tahmin modu metrikleri hesaplamaz; etiketlenmiş bir set üzerindeki performansı ölçmek için bunun yerine doğrulama modunu kullanın. Her iki iş akışı da YOLO26 Modeli Nasıl Test Edilir bölümünde gösterilmektedir.Algılama modelleri için doğrulama; kesinlik, duyarlılık, mAP50 ve mAP50-95 değerlerini bildirir, ayrıca bir karışıklık matrisi ile kesinlik-duyarlılık eğrisi dahil olmak üzere grafikler kaydeder. Varsayılan
valbölümü yerine ayrılmış bir test bölümünde doğrulama yapmak için, veri seti YAML dosyanızdatest:tanımlayın vesplit="test"argümanını geçirin. Her bir metriğin nasıl yorumlanacağı hakkında bilgi için performans metrikleri kılavuzuna bakın.Aşırı öğrenme için dropout gibi düzenlileştirme teknikleri uygulayın, eğitim veri setinin boyutunu artırın veya model mimarisini basitleştirin. Az öğrenme için daha karmaşık bir model kullanın, daha ilgili özellikler sağlayın veya daha fazla dönem boyunca eğitin. Her sorunun işaretleri ve ilgili çözümleri Makine Öğreniminde Aşırı Öğrenme ve Az Öğrenme başlığı altında özetlenmiştir.
Test performansı şaşırtıcı derecede iyi göründüğünde, tek bir özellik tahminlere hakim olduğunda veya modelin kararları sezgisel olarak mantıklı gelmediğinde veri sızıntısından şüphelenin. Farklı kameralardan ve ortamlardan çeşitli veri setleri kullanarak, verileri gizli önyargılara karşı inceleyerek ve eğitim/test ayrımının herhangi bir işlemden önce yapıldığını doğrulayarak bunu önleyin. Yaygın önyargı türleri için Bilgisayarla Görürde Veri Sızıntısı bölümüne bakın.
Sonuçlar proje hedeflerinizi karşılıyorsa modeli dağıtın; karşılamıyorsa dağıtımdan önce iyileştirin. Bu durum; hataları analiz etmeyi, daha çeşitli veriler toplamayı, veri kalitesini artırmayı, hiperparametreleri ince ayar yapmayı ve yeniden eğitmeyi içerebilir. Düzeltmelerin işe yaradığını doğrulamak için her değişiklik turundan sonra test etme işlemini tekrarlayın.