Ultralytics YOLO27:
Get Started

Anlamsal Segmentasyon Veri Kümelerine Genel Bakış#

Anlamsal segmentasyon, görüntüdeki her piksele bir sınıf etiketi atar. Örnek segmentasyonundan farklı olarak anlamsal segmentasyon, aynı sınıftaki nesneleri birbirinden ayırmaz. Eğitim hedefi, her pikselin bir sınıf kimliği taşıdığı yoğun bir sınıf haritasıdır.

Bu kılavuz, Ultralytics YOLO anlamsal segmentasyon modellerinin kullandığı veri kümesi biçimini açıklar ve eğitim ile doğrulama için kullanılabilen yerleşik veri kümesi yapılandırmalarını listeler.

Desteklenen Veri Kümesi Biçimleri#

İki etiket biçimi desteklenir. Veri kümesi YAML dosyası bir masks_dir anahtarı tanımlıyorsa veya veri kümesi kök dizininde görüntülerin yanında bir masks/ klasörü zaten varsa, veri kümesi yükleyicisi PNG maskelerini seçer; aksi durumda YOLO poligon etiketlerine geçer.

PNG maske biçimi#

Anlamsal segmentasyon veri kümelerinde her örnek için bir görüntü dosyası ve bir maske dosyası kullanılır. Maske, genellikle PNG biçiminde olan tek kanallı bir görüntüdür; her pikselin değeri, karşılık gelen görüntü pikselinin sınıf indeksidir.

  • Piksel değerleri 0, 1, 2, ... veri kümesinin names eşlemesindeki sınıf kimliklerini temsil eder.
  • 255 piksel değeri, yok sayma etiketi olarak değerlendirilir ve kayıp ile metrik hesaplamalarının dışında tutulur.
  • Maske dosyaları, eşleştikleri görüntü dosyasıyla aynı dosya adına sahip olmalıdır; örneğin frankfurt_000000_000294.png.
  • Maskeler varsayılan olarak .png şeklinde çözümlenir; bu dosya yoksa desteklenen diğer görüntü uzantıları da kabul edilir. .png veya .tiff gibi kayıpsız biçimler kullan; çünkü kayıplı sıkıştırma (ör. .jpg) sınıf kimliği piksel değerlerini bozar.

Varsayılan düzen, görüntüleri ve maskeleri paralel klasörlerde tutar. Veri kümesi YAML dosyasındaki masks_dir değeri, maskeleri bulmak için images yol bileşeninin yerine kullanılır.

dataset/
├── images/
│   ├── train/
│   └── val/
└── masks/
    ├── train/
    └── val/

Örneğin, masks_dir: masks olduğunda images/train/aachen_000000_000019.png konumundaki bir görüntü, masks/train/aachen_000000_000019.png konumundaki bir maskeyle eşleştirilir.

YOLO poligon etiketi biçimi#

Veri kümenizde zaten Ultralytics YOLO poligon etiketleri varsa (her görüntü için bir .txt ve <class-index> <x1> <y1> <x2> <y2> ... satırları), PNG maskesi dönüşümüne gerek kalmadan doğrudan bu etiketlerle anlamsal segmentasyon eğitimi yapabilirsin. Satır düzeyindeki düzen için örnek segmentasyonu veri kümesi biçimine bak.

Bu yol, veri kümesi YAML dosyasında masks_dir belirtilmediğinde ve veri kümesi kök dizininde görüntülerin yanında bir masks/ klasörü bulunmadığında otomatik olarak seçilir — geride kalan masks/ klasörlerini sil veya yeniden adlandır; aksi hâlde yükleyici PNG maske moduna geçer ve maskeleri bunun yerine orada arar. Davranış:

  • Poligonlar yükleme sırasında her görüntü için anlamsal bir maskeye dönüştürülür ve örtüşme bölgelerinde küçük nesnelerin büyük nesnelerin üzerine yazması için alana göre sıralanır.
  • Çok sınıflı (names içinde N > 1): Herhangi bir poligonun kapsamadığı pikseller için tanımlı sınıflarından sonra ek bir background sınıfı eklenir. Model N + 1 çıkış kanalıyla oluşturulur ve son kanal arka planı temsil eder.
  • Tek sınıflı (names içinde N == 1): Eğitim yine 1 sınıfla yapılır. Maske ikilidir; tanımladığın sınıf 1, herhangi bir poligonun kapsamadığı pikseller ise 0 olarak gösterilir. names içine ek bir arka plan sınıfı eklenmez.
  • Artırma dolgusuyla eklenen pikseller (ör. rastgele kırpma) yine yok sayma etiketi olarak 255 kullanır.

Verilerin zaten örnek poligonlarıyla etiketlenmişse ve aynı dosyalardan anlamsal segmentasyon modeli oluşturmak istiyorsan bu yolu kullan.

Veri kümesi YAML biçimi#

Anlamsal segmentasyon veri kümeleri YAML dosyalarıyla yapılandırılır. Başlıca alanlar şunlardır:

AnahtarAçıklama
pathVeri kümesinin kök dizini.
trainpath konumuna göreli veya mutlak eğitim görüntüsü yolu.
valpath konumuna göreli veya mutlak doğrulama görüntüsü yolu.
testİsteğe bağlı test görüntüsü yolu.
masks_dirAnlamsal maskeler için kullanılan dizin adı. YOLO poligon etiketi biçimine geçmek için bu anahtarı (veri kümesi kök dizininde masks/ klasörü yokken) belirtme.
namesSınıf kimliğinden sınıf adına eşleme.
label_mappingKaynak veri kümesi kimliklerinden eğitim kimliklerine veya ignore_label değerine isteğe bağlı eşleme.
ultralytics/cfg/datasets/cityscapes8.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# Cityscapes semantic segmentation dataset (19 classes)
# Documentation: https://docs.ultralytics.com/datasets/semantic/cityscapes8
# Example usage: yolo semantic train data=cityscapes8.yaml model=yolo26n-sem.pt
# parent
# ├── ultralytics
# └── datasets
#     └── cityscapes8 ← downloads here (small subset)
#         └── images
#         └── masks

# Dataset root directory
path: cityscapes8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images

masks_dir: masks # semantic mask directory

# Cityscapes 19-class labels
names:
  0: road
  1: sidewalk
  2: building
  3: wall
  4: fence
  5: pole
  6: traffic light
  7: traffic sign
  8: vegetation
  9: terrain
  10: sky
  11: person
  12: rider
  13: car
  14: truck
  15: bus
  16: train
  17: motorcycle
  18: bicycle

# Map source label IDs to train IDs; ignore_label is converted to 255.
label_mapping:
  -1: ignore_label
  0: ignore_label
  1: ignore_label
  2: ignore_label
  3: ignore_label
  4: ignore_label
  5: ignore_label
  6: ignore_label
  7: 0
  8: 1
  9: ignore_label
  10: ignore_label
  11: 2
  12: 3
  13: 4
  14: ignore_label
  15: ignore_label
  16: ignore_label
  17: 5
  18: ignore_label
  19: 6
  20: 7
  21: 8
  22: 9
  23: 10
  24: 11
  25: 12
  26: 13
  27: 14
  28: 15
  29: ignore_label
  30: ignore_label
  31: 16
  32: 17
  33: 18

# Download URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/cityscapes8.zip

Kaynak maske kimlikleri zaten ardışık eğitim sınıfı kimlikleriyle eşleşmiyorsa label_mapping kullan. Cityscapes ve ADE20K, özgün etiket kimliklerini YOLO anlamsal segmentasyon eğitim kimliklerine dönüştüren ve kullanılmayan etiketleri yok sayan eşlemeler içerir.

Kullanım#

Python veya CLI ile YOLO26 anlamsal segmentasyon modeli eğit:

Örnek
from ultralytics import YOLO

# Önceden eğitilmiş bir anlamsal segmentasyon modelini yükle
model = YOLO("yolo26n-sem.pt")

# Cityscapes8 anlamsal segmentasyon veri kümesiyle eğit
results = model.train(data="cityscapes8.yaml", epochs=100, imgsz=1024)

Desteklenen Veri Kümeleri#

Ultralytics, bu veri kümeleri için anlamsal segmentasyon veri kümesi YAML dosyaları sağlar. Önceden eğitilmiş model kıyaslama tablosunun tamamı için anlamsal segmentasyon görev sayfasına bak.

  • Cityscapes: Eğitim için 19 sınıf içeren, kentsel sokak sahnelerine yönelik anlamsal segmentasyon veri kümesi.
  • Cityscapes8: Hızlı testler ve CI kontrolleri için Cityscapes'in 8 görüntülük bir alt kümesi.
  • ADE20K: 150 anlamsal sınıf içeren sahne ayrıştırma veri kümesi.

Kendi Veri Kümeni Ekleme#

Seçenek A — PNG maskeleri#

  1. Görüntülerini images/train ve images/val gibi bölme klasörlerine kaydet.
  2. Her görüntü için tek kanallı bir maskeyi, masks/train ve masks/val gibi karşılık gelen maske klasörlerine kaydet.
  3. Maske piksel değerlerinin sınıf kimlikleri olduğundan emin ol. Yok sayılması gereken pikseller için 255 kullan.
  4. path, train, val, masks_dir ve names alanlarını içeren bir veri kümesi YAML dosyası oluştur.
  5. Yalnızca maske kimliklerinin ardışık eğitim kimliklerine dönüştürülmesi gerekiyorsa label_mapping ekle.
path: path/to/my-semantic-dataset
train: images/train
val: images/val
masks_dir: masks

names:
    0: background
    1: road
    2: building

Seçenek B — Çokgen etiketleri#

  1. Görüntüleri ve .txt çokgen dosyalarını, örnek segmentasyonda olduğu gibi düzenle.
  2. path, train, val ve names alanlarını içeren bir veri kümesi YAML dosyası oluştur — masks_dir alanını çıkar.
  3. Veri kümesinin kök dizinindeki görüntülerin yanında masks/ klasörünün bulunmadığından emin ol — bu klasörün varlığı, YAML'de masks_dir olmasa bile yükleyiciyi PNG maske moduna geçirir.
  4. names alanına "background" girdisi ekleme. Çok sınıflı veri kümelerinde yükleyici bunu otomatik ekler; tek sınıflı veri kümelerinde eğitim 1 sınıf olarak kalır — tanımladığın sınıf, maskede 1 olur ve kapsanmayan pikseller 0 değerini alır.
path: path/to/my-polygon-dataset
train: images/train
val: images/val

names:
    0: person
    1: car

Ultralytics Platform, anlamsal görev için bir çokgen açıklama aracı ve SAM destekli Akıllı açıklama sunar — doğrudan tarayıcıda açıklama ekleyebilir, ardından bu klasör yapısını elle kurmadan çokgen etiketli veri kümesini dışa aktarabilir veya bununla eğitim yapabilirsin.

Sık Sorulan Sorular#

  • Anlamsal segmentasyon maskeleri, pikselleri yoğun biçimde eşleyen haritalardır. Her piksel bir sınıf kimliği içerir ve her eğitim görüntüsü için bir maske görüntüsü bulunur. Ultralytics YOLO'daki örnek segmentasyon etiketleri, nesne örneği başına bir satır içeren ve çokgen koordinatlarını tutan metin dosyalarıdır.

  • Yok sayma etiketi olarak 255 piksel değeri kullanılır. Bu pikseller, kayıp ve metrik hesaplaması sırasında atlanır; bu özellik, boş bölgeler, etiketsiz pikseller veya eğitim etiketi kümesinin dışındaki sınıflar için kullanışlıdır.

  • Evet. Her anlamsal maske, karşılık gelen görüntüyle aynı dosya adına sahip olmalıdır. Veri kümesi yükleyicisi, images dizin bileşenini masks_dir ile değiştirir ve eşleşen maske dosyalarını arar. .png maskesi bulunamazsa diğer desteklenen görüntü uzantılarını (.jpg, .tiff vb.) dener — ancak bu yedek arama biçim türünü doğrulamadığından yalnızca kayıpsız biçimler önerilir.

  • Evet, kimlikler zaten names sınıf kimliklerinle eşleşiyorsa kullanabilirsin. Kaynak veri kümesi ardışık olmayan kimlikler kullanıyorsa veya yok sayılması gereken etiketler içeriyorsa, kaynak piksel değerlerini eğitim kimliklerine dönüştürmek için label_mapping bölümü ekle.

  • Evet. Örnek segmentasyon veri kümeleri, görüntü başına .txt ve <class-index> <x1> <y1> <x2> <y2> ... satırları içeren Ultralytics YOLO çokgen etiketlerini kullanır; aynı dosyalar anlamsal segmentasyon için de kullanılabilir — veri kümesi YAML dosyasından masks_dir alanını çıkar ve veri kümesinin kök dizininde görüntülerin yanında masks/ klasörünün bulunmadığından emin ol (bu klasörün varlığı, masks_dir ayarlanmamış olsa bile PNG maske modunu etkinleştirir). Yükleyici daha sonra çokgenleri anlık olarak görüntü başına maskelere dönüştürür. Çok sınıflı veri kümelerine (N > 1) ek bir background sınıfı eklenir ve model N + 1 çıkış kanalıyla oluşturulur. Tek sınıflı veri kümelerinde (N == 1) eğitim 1 sınıf olarak kalır — maskede tanımladığın sınıf 1, kapsanmayan pikseller ise 0 olarak gösterilir.

  • Ultralytics, Cityscapes (19 kentsel sahne sınıfı), işlem hattı testleri için hafif Cityscapes8 alt kümesi ve ADE20K (150 sahne ayrıştırma sınıfı) için kullanıma hazır veri kümesi YAML dosyaları içerir. Her sayfada sınıf listesi, indirme adımları ve doğrulanmış bir eğitim örneği ayrıntılı olarak açıklanır.

Yorumlar