computer vision

YOLO İçin Dataset Oluşturma ve Etiketleme Süreci: Adım Adım Rehber

Bu yazıda YOLO algoritmasıyla nesne tespiti için gerekli olan veri seti oluşturma ve etiketleme süreci detaylıca ele alınmaktadır. Kaliteli veri toplamanın önemi, etiketleme araçlarının kullanımı, YOLO formatının yapısı, veri ayrımı (train/valid/test) ve overfitting ile mücadele yöntemleri örneklerle açıklanmıştır.

05.30.2025
6 mins

DATASET OLUŞTURMA VE DATA ETİKETLEME

Data Toplama

İyi bir model ortaya çıkarmanın en önemli kısmı kaliteli ve çeşitli bir datasete sahip olmaktır. Modelin kullanılacağı ortama benzer koşullarda ve yaşanabilecek tüm senaryoları içeren görüntülerin dataset içinde bulunması, başarımı ciddi şekilde artırır. Örneğin, dış ortamda çalışacak bir model için hava koşulları da göz önünde bulundurulmalı; sisli, kapalı, karlı ve yağmurlu hava gibi durumlar dataset içerisinde yer almalıdır.

crowded dataset screenshot

Data Etiketleme

Veriler, eğitim sürecinde algoritma tarafından anlamlandırılabilmesi için etiketlenmelidir. Kullanılan algoritmaya göre etiket formatı değişmektedir. YOLO için etiketleme yapılabilecek birçok araç vardır: LabelImg, Labelbox, Roboflow gibi çevrim içi platformlar. Aşağıda LabelImg ile yapılan bir etiketleme örneği ve çıktı olarak kaydedilen bir .txt dosyasının içeriği gösterilmektedir.

labelimg program screenshot

Bu örnekte YOLO formatı seçilmiş ve etiketleme bu formata uygun şekilde yapılmıştır. YOLO etiket formatı şu sırayla değer içerir: Sınıf ID’si, x_center, y_center, width, height.

  • Sınıf ID’si, ilgili nesneye karşılık gelir. Örneğin 0 değeri “person” sınıfını temsil eder.
  • x_center: Bounding box’ın merkezinin x eksenindeki normalize değeri
  • y_center: Bounding box’ın merkezinin y eksenindeki normalize değeri
  • width_norm: Bounding box’ın normalize genişliği
  • height_norm: Bounding box’ın normalize yüksekliği

Sınıf ID’si dışındaki tüm değerler 0 ile 1 arasında olmalıdır.

YOLO formatındaki etiket verileriyle görseldeki nesnenin konumu nasıl bulunur?
Üstteki görsel ve .txt dosyasını baz alarak, çözünürlüğü 640 × 480 olan bir resim için şu hesaplamalar yapılabilir:

  • X konumu: 640×Xcenter640 \times X_{\text{center}}
  • Y konumu: 480×Ycenter480 \times Y_{\text{center}}
  • Genişlik: 640×width_norm640 \times width\_norm
  • Yükseklik: 480×height_norm480 \times height\_norm

Etiketleme işlemi tamamlandıktan sonra dataset, eğitim formatına uygun şekilde hazırlanmalıdır. Dataset; eğitim (train), doğrulama (valid) ve test olarak bölünmelidir. Yaygın kullanılan oranlar: %85 train, %10 valid, %5 test.

Eğer sonradan test yapabileceğiniz videolar veya canlı test alma imkanınız varsa test setine gerek olmayabilir; bu durumda tüm veriler eğitim için kullanılabilir. Ayrıca dataset’in alt kümelere homojen şekilde dağılması da önemlidir. Bunun için Roboflow gibi çevrim içi araçlar kullanılabilir ya da lokal bir script ile shuffle işlemi gerçekleştirilerek dağılım sağlanabilir.

Train Seti: Modelin öğrenme sürecinde kullanılacak ana veri kümesidir. Model bu verilerle eğitilir ve ağırlıkları günceller.

Validation Seti: Eğitim sırasında modelin performansını izlemek ve overfitting’i engellemek amacıyla kullanılır. Modelin sadece eğitim verisine değil, genel veri kümesine de iyi genelleme yapabilmesi için gereklidir. Validation performansına göre erken durdurma (early stopping) uygulanabilir.

Overfitting: Modelin eğitim verisini ezberleyerek sadece bu veri üzerinde yüksek performans göstermesi, ancak gerçek zamanlı testlerde başarısız olması durumudur.
Overfitting’i azaltmak için:

  • Dataset’i çeşitlendirmek en etkili çözümdür. Tek tip veri overfitting’i artırır; farklı senaryo ve ortamlardan veri toplamak gerekir.
  • Eğitim ve test hataları arasındaki fark belirli bir eşiğe ulaştığında eğitimi durdurmak (early stopping).
  • YOLO gibi bazı algoritmalar eğitim sırasında bunu otomatik olarak yapar.

error-epochs graph

Test Seti: Eğitim tamamlandıktan sonra modelin daha önce görmediği veriler üzerinde nasıl çalıştığını değerlendirmek için kullanılır. Test süreci, modelin gerçek ortamlarda ne kadar başarılı olduğunu görmek ve eksik yönlerini belirlemek açısından kritiktir.

#Data #Veriseti #Train #Valid #Test #Overfitting #EarlyStopping #Model #YoloEğitim #LabelImg #Roboflow #Yolov5