YOLO Vision 2026:

Etiketli Bilgisayarlı Görü Verileri için Veri Ön İşleme Teknikleri#

Veri ön işleme, ham ve etiketlenmiş görüntüleri, bir computer vision modelinin iyi eğitilmesi için ihtiyaç duyduğu temiz ve tutarlı girdilere dönüştürür. Ultralytics YOLO26 ile temel piksel işlemleri — RGB dönüşümü, [0, 1] değerine ölçekleme ve yeniden boyutlandırma — eğitim boru hattı içinde otomatik olarak çalışır; bu nedenle geriye kalan iş, veri setini doğru şekilde bölmek, sınıfları dengelemek ve veri artırma yöntemlerini seçmektir. Bu kılavuz şu temel teknikleri kapsar: yeniden boyutlandırma, normalizasyon, veri seti bölme, veri artırma ve keşifsel veri analizi (EDA).



Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀

Bu adım, projenin hedeflerini belirledikten ve verilerini toplayıp etiketledikten sonra gelir ve bilgisayarlı görü proje iş akışının erken aşamalarında yer alır.

Ön İşleme Neden Önemlidir?#

Ön işleme, verilerini hesaplama yükünü azaltan ve model performansını iyileştiren bir formata getirir. Ham verilerdeki şu üç yaygın sorunu ele alır:

  • Gürültü: Verideki ilgisiz veya rastgele değişimler.
  • Tutarsızlık: Görüntü boyutlarındaki, biçimlerindeki ve kalitesindeki değişiklikler.
  • Dengesizlik: Veri kümesi genelinde sınıfların veya kategorilerin eşit olmayan dağılımı.

Ön İşleme Teknikleri#

Ana teknikler yeniden boyutlandırma, normalizasyon, veri kümesi bölme ve veri artırmadır. YOLO26 ile ilk ikisi otomatiktir; bölme ve veri artırma ise seçimlerinin en önemli olduğu kısımlardır.

Görüntüleri Yeniden Boyutlandırma#

Birçok model tutarlı bir girdi boyutu gerektirir, bu nedenle yeniden boyutlandırma görüntüleri tekdüze hale getirir ve hesaplama karmaşıklığını azaltır. İki yaygın interpolasyon yöntemi şunlardır:

  • İki Doğrusal (Bilinear) İnterpolasyon: En yakın dört pikselin ağırlıklı ortalamasını alarak piksel değerlerini yumuşatır.
  • En Yakın Komşu: Piksel değerini ortalamasını almadan kopyalar; daha hızlıdır ancak daha bloklu bir görüntü oluşturur.

OpenCV ve PIL (Pillow) gibi kütüphaneler bu fonksiyonları sağlar, ancak YOLO26 ile genellikle manuel olarak yeniden boyutlandırma yapman gerekmez. Model eğitimi sırasındaki imgsz argümanı bunu halleder: 640 gibi bir değere ayarlandığında, YOLO en büyük boyutu 640 piksel olacak ve en-boy oranını koruyacak şekilde her görüntüyü ölçeklendirir, ardından kare bir 640 × 640 girdisine ulaşmak için kısa kenarı doldurur (varsayılan gri, 114 değeri).

Piksel Değerlerini Normalleştirme#

Normalizasyon, piksel değerlerini standart bir aralığa ölçekler; bu da modelin eğitim sırasında daha hızlı yakınsamasına yardımcı olur. İki yaygın teknik şunlardır:

  • Min-Max Ölçeklendirme: Piksel değerlerini 0 ile 1 arasına ölçeklendirir.
  • Z-Skoru Normalleştirmesi: Piksel değerlerini ortalamalarına ve standart sapmalarına göre ölçeklendirir.

YOLO26, ön işleme boru hattının bir parçası olarak normalizasyonu otomatik olarak gerçekleştirir: görüntüleri RGB'ye dönüştürür ve 255'e bölerek piksel değerlerini [0, 1] aralığına ölçekler (min-max ölçekleme). YOLO, varsayılan olarak ImageNet tarzı ortalama/standart sapma (z-score) normalizasyonu uygulamaz, bu nedenle manuel bir normalizasyon adımına gerek yoktur.

Veri Kümesini Bölme#

Verileri eğitim, doğrulama ve test setlerine ayırmak, modeli görünmeyen veriler üzerinde değerlendirmene ve genelleme yeteneğini ölçmene olanak tanır. Yaygın bir bölme oranı eğitim için %70, doğrulama için %20 ve test için %10'dur. scikit-learn veya TensorFlow gibi araçlar bunu kolaylaştırır.

Bölme yaparken şu noktaları aklında bulundur:

  • Sınıf dağılımını koru: Her sınıfın eğitim, doğrulama ve test kümelerinde orantılı olarak temsil edildiğinden emin ol.
  • Sınıfları dengele: Dengesiz veri kümeleri için, yalnızca eğitim kümesi içinde olacak şekilde azınlık sınıfını aşırı örneklemeyi (oversampling) veya çoğunluk sınıfını eksik örneklemeyi (under-sampling) değerlendir.
Veri sızıntısından kaçın

Veri kümesini herhangi bir veri artırma veya diğer ön işleme işlemlerini uygulamadan önce böl ve bu dönüşümleri yalnızca eğitim kümesine uygula. Bölme işleminden önce veri artırma yapmak, doğrulama veya test görüntülerinden gelen bilgilerin eğitimi etkilemesine izin vererek gerçek dünya verilerinde çöken yanıltıcı derecede yüksek puanlar üretir.

Veri Kümesini Artırma#

Veri artırma, mevcut görüntülerin değiştirilmiş versiyonlarını oluşturarak bir veri setinin boyutunu yapay olarak artırır. Overfitting (aşırı öğrenme) durumunu azaltmaya yardımcı olur ve çeşitli avantajlarla birlikte genellemeyi iyileştirir:

  • Daha sağlam modeller: Işık, yön ve ölçekteki değişimler, modeli gerçek dünyadaki bozulmalara karşı dirençli hale getirir.
  • Uygun maliyetli: Yeni veri toplamak ve etiketlemek zorunda kalmadan eğitim kümesini genişletirsin.
  • Verinin daha iyi kullanımı: Her etiketli görüntü birden fazla eğitim varyasyonu sağlar.

Examples of data augmentation techniques including flips, rotations, scaling, and color adjustments applied to a sample image

YOLO26 ile veri artırımı, model.train()'e veya eşdeğer CLI bayraklarına iletilen eğitim argümanları aracılığıyla kontrol edilir — yolları, sınıf adlarını ve bölümleri tanımlayan veri seti YAML dosyasını düzenleyerek değil. Yerleşik veri artırımları şunları içerir:

  • Mosaic, MixUp ve CutMix (mosaic, mixup, cutmix): Birden fazla görüntüyü tek bir eğitim örneğinde birleştirir.
  • Flips (fliplr, flipud): Görüntüleri yatay veya dikey olarak yansıtır.
  • Geometrik dönüşümler (degrees, translate, scale, shear, perspective): Görüntüleri döndürür, kaydırır, yakınlaştırır ve büker.
  • HSV renk kayması (hsv_h, hsv_s, hsv_v): Ton, doygunluk ve parlaklığı değiştirir.
  • Copy-paste (copy_paste): Segmentasyon için nesneleri görüntüler arasında kopyalayıp yapıştırır.
Eğitim sırasında veri artırma gücünü ayarla
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# Augmentation is configured with training arguments, not the dataset YAML
model.train(data="coco8.yaml", epochs=10, hsv_h=0.015, fliplr=0.5, mosaic=1.0, degrees=10.0)

Veri artırma argümanlarının tam listesi ve varsayılan değerleri için veri artırma ayarları referansına ve özel YOLO veri artırma kılavuzuna göz at. Eğer albumentations paketi kuruluysa, YOLO yerleşik Albumentations tabanlı veri artırma özelliklerini de otomatik olarak etkinleştirir.

Bir Örnek Olay: Araç Tespiti için Ön İşleme#

Bounding box (sınırlayıcı kutular) ve etiketlerle işaretlenmiş görüntülerden başlayarak, YOLO26 ile trafik görüntülerindeki araçları tespit edip sınıflandırmak için bir projeyi ele alalım. Her ön işleme kararının görünümü şu şekildedir:

  • Yeniden boyutlandırma: Manuel işlem yok — YOLO26, eğitim sırasında görüntüyü imgsz boyutuna getirir.
  • Normalizasyon: Manuel işlem yok — YOLO26, piksel değerlerini otomatik olarak [0, 1] aralığına ölçekler.
  • Bölme: Veri kümesini %70 eğitim, %20 doğrulama ve %10 test olarak ayır, sınıf dağılımını bölümler genelinde tutarlı tut.
  • Veri artırma: Trafik sahnelerine uygun eğitim argümanları ayarla — örneğin yön değişmezliği için fliplr, gece/gündüz aydınlatması için hsv_v ve değişen nesne yoğunluğu için mosaic.

Bu kararlar alındıktan sonra veri kümen Keşifçi Veri Analizi (EDA) için hazırdır.

Keşifçi Veri Analizi (EDA)#

EDA, verilerindeki kalıpları ve dağılımları ortaya çıkarmak için istatistik ve görselleştirmelerden yararlanır; böylece eğitim öncesinde sınıf dengesizliği veya aykırı değerler gibi sorunları yakalamana yardımcı olur.

İstatistiksel EDA Teknikleri#

İstatistiksel EDA, piksel yoğunluğu dağılımları gibi özellikler üzerinden hesaplanan ortalama, medyan, standart sapma ve aralık gibi temel metriklerle başlar. Bunlar, veri kümenin kalitesine dair hızlı bir genel bakış sunar ve düzensizlikleri erkenden yüzeye çıkarır.

Görsel EDA Teknikleri#

Görselleştirmeler, özet istatistiklerin gözden kaçırdığı sınıf dengesizliği ve aykırı değerler gibi kalıpları ortaya çıkarır. Yaygın araçlar şunlardır:

  • Histogramlar ve kutu grafikleri: Piksel değerlerinin dağılımını gösterir ve yoğunluk veya özellik dağılımlarındaki aykırı değerleri işaretler.
  • Çubuk grafikler: Her sınıfın kaç örneği olduğunu karşılaştırarak sınıf dengesizliğini ortaya çıkarır.
  • Dağılım grafikleri (Scatter plots): Görüntü özellikleri veya etiketler arasındaki ilişkileri keşfetmeni sağlar.
  • Isı haritaları: Piksel yoğunluğu dağılımlarını veya etiketlerin görüntüler üzerindeki uzamsal dağılımını görselleştirir.

EDA için Ultralytics Platformu#

Kod yazmadan EDA yapmak için veri setini Ultralytics Platform üzerine yükle. Veri setinin Charts sekmesi; dağılımı bölme, en üst sınıf sayıları, görüntü genişlik/yükseklik histogramları ve etiket konumları ile görüntü boyutlarının 2D ısı haritaları gibi temel EDA görselleştirmelerini otomatik olarak oluşturur. Images sekmesi, etiket katmanlarıyla birlikte verilerini ızgara, kompakt veya tablo görünümlerinde incelemene olanak tanır; böylece herhangi bir kod yazmadan yanlış etiketlenmiş örnekleri veya dengesiz sınıfları kolayca fark edebilirsin.

Sonuç#

Doğru şekilde bölünmüş, normalleştirilmiş ve veri artırımı uygulanmış veriler gürültüyü azaltır ve genellemeyi iyileştirerek ham bir görüntü koleksiyonunu güvenilir bir eğitim setine dönüştürür. Veri setinin ön işlemesi tamamlandığına göre, sonraki adım modelini eğitmek. Süreç boyunca soruların olursa, Ultralytics GitHub deposunda veya Ultralytics Discord sunucusunda topluluğa sorabilirsin.

SSS#

  • Ön işleme; verilerinin temiz, tutarlı ve eğitim için optimize edilmiş bir biçimde olmasını sağlar. Ham verilerdeki gürültüyü, tutarsızlığı ve sınıf dengesizliğini ele alarak yeniden boyutlandırma, normalizasyon, veri artırma ve veri seti bölme gibi adımlar hesaplama yükünü azaltır ve model performansını artırır. Bunun daha geniş iş akışına nasıl uyduğunu görmek için bilgisayarlı görü projesinin adımlarına göz at.

  • Veri artırımını veri seti YAML dosyasıyla değil, eğitim argümanları aracılığıyla yapılandır. Her dönüşümün olasılığını ve gücünü ayarlamak için model.train()'e (veya eşdeğer CLI bayraklarına) fliplr, mosaic, hsv_h ve degrees gibi argümanlar aktar. Bunlar veri artırımı ayarlarında tanımlanmıştır ve YOLO veri artırımı kılavuzunda açıklanmıştır.

  • En yaygın iki teknik min-max ölçekleme (pikselleri 0 ile 1 arasına yeniden ölçeklendirme) ve z-skoru normalizasyonudur (ortalama ve standart sapmaya göre yeniden ölçeklendirme). YOLO26, görüntüleri RGB'ye dönüştürüp piksel değerlerini 255'e bölerek min-max ölçeklemeyi otomatik uygular, bu nedenle manuel bir normalizasyon adımına ihtiyacın yoktur. Varsayılan olarak z-skoru normalizasyonu uygulamaz.

  • Yaygın bir uygulama eğitim için %70, doğrulama için %20 ve test için %10 kullanmaktır. Sınıf dağılımını her üç bölmede de koru ve veri artırmayı yalnızca bölme işleminden sonra eğitim setine uygulayarak data leakage (veri sızıntısı) durumunun önüne geç. scikit-learn veya TensorFlow gibi araçlar bölme işlemini verimli bir şekilde gerçekleştirir. Kaynak veri seti hazırlığı için veri toplama ve etiketleme kılavuzuna bak.

  • Evet. imgsz argümanı, eğitim ve çıkarım sırasında görüntüleri, en boy oranını korurken en uzun boyutları belirtilen boyuta (örn. 640 piksel) uyacak şekilde yeniden boyutlandırır ve ardından kısa kenarı doldurur. Görüntüleri kendin yeniden boyutlandırmana gerek yok — ayrıntılar için model eğitimi belgelerine göz at.

Katkıda Bulunanlar

Yorumlar