YOLO Vision 2026:

Semantik Segmentasyon Veri Kümelerine Genel Bakış#

Semantic segmentation bir görüntüdeki her piksele bir sınıf etiketi atar. Instance segmentation özelliğinin aksine, semantic segmentation aynı sınıftaki bireysel nesneleri birbirinden ayırmaz. Eğitim hedefi, her pikselin bir sınıf kimliği (ID) depoladığı yoğun bir sınıf haritasıdır.

Bu kılavuz, Ultralytics YOLO semantik segmentasyon modelleri tarafından kullanılan veri kümesi biçimini açıklar ve eğitim ve doğrulama için mevcut olan yerleşik veri kümesi yapılandırmalarını listeler.

Desteklenen Veri Kümesi Formatları#

İki etiket biçimi desteklenir. Veri seti yükleyicisi, veri seti YAML dosyası bir masks_dir anahtarı tanımladığında veya veri seti kök dizininde görsellerinizin yanında zaten bir masks/ klasörü mevcut olduğunda PNG maskelerini seçer; aksi takdirde YOLO çokgen (polygon) etiketlerine geri döner.

PNG maske biçimi#

Semantik segmentasyon veri kümeleri, örnek başına bir görüntü dosyası ve bir maske dosyası kullanır. Maske, genellikle PNG olan ve her piksel değerinin karşılık gelen görüntü pikseli için sınıf dizini olduğu tek kanallı bir görüntüdür.

  • 0, 1, 2, ... piksel değerleri, names veri seti eşlemesindeki sınıf kimliklerini (ID) temsil eder.
  • 255 piksel değeri yoksayma (ignore) etiket olarak kabul edilir ve kayıp (loss) ile metrik hesaplamasının dışına tutulur.
  • Maske dosyaları, eşleşen görsel dosyalarıyla aynı kök adı (stem) kullanmalıdır, örneğin frankfurt_000000_000294.png.
  • Maskeler varsayılan olarak .png olarak çözümlenir; eksikse, desteklenen diğer görsel uzantıları da kabul edilir. Kayıplı sıkıştırma (ör. .jpg) sınıf kimliği piksel değerlerini bozabildiğinden, .png veya .tiff gibi kayıpsız formatlar kullan.

Varsayılan yerleşim, görselleri ve maskeleri paralel klasörlerde tutar. Maskeleri bulmak için veri seti YAML dosyasındaki masks_dir değeri, images yol bileşeninin yerini alır.

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

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

YOLO çokgen etiket biçimi#

Veri setinde zaten Ultralytics YOLO çokgen etiketleri varsa (her görsel için <class-index> <x1> <y1> <x2> <y2> ... satırına sahip bir .txt), herhangi bir PNG maske dönüştürmesine gerek kalmadan doğrudan bunlardan anlamsal segmentasyon eğitimi alabilirsin. Satır düzeyi yerleşimi için örnek segmentasyonu veri seti formatına göz at.

Bu yol, veri seti YAML dosyası masks_dir değerini atladığında ve veri seti kök dizininde görsellerinizin yanında hiçbir masks/ klasörü bulunmadığında otomatik olarak seçilir; kalan herhangi bir masks/ klasörünü kaldırın veya yeniden adlandırın, aksi takdirde yükleyici PNG maskesi moduna geri döner ve maskeleri orada arar. Davranış:

  • Çokgenler, yükleme sırasında görüntü başına semantik maskeye dönüştürülür ve örtüşen bölgelerde daha küçük nesnelerin daha büyük olanları geçersiz kılması için alana göre sıralanır.
  • Çok sınıflı (names içindeki N > 1): Herhangi bir çokgenin kapsamadığı pikseller için, tanımladığın sınıflardan sonra ek bir background sınıfı eklenir. Model N + 1 çıkış kanallarıyla oluşturulur ve son kanal arkaplandır.
  • Tek sınıflı (names içindeki N == 1): Yine 1 sınıf olarak eğitilir. Maske ikilidir; tanımladığın sınıf 1 olarak ve herhangi bir çokgenin kapsamadığı pikseller 0 olarak gösterilir. names öğesine ekstra bir arkaplan sınıfı eklenmez.
  • Artırma (augmentation) dolgusu (örneğin rastgele kırpma) tarafından eklenen pikseller, yoksayma etiketi olarak yine 255 kullanır.

Verilerin halihazırda örnek çokgenleri olarak etiketlendiğinde ve aynı dosyalardan bir semantik segmentasyon modeli istediğinde bu yolu kullan.

Veri kümesi YAML formatı#

Semantik segmentasyon veri kümeleri YAML dosyalarıyla yapılandırılır. Ana alanlar şunlardır:

AnahtarAçıklama
pathVeri kümesi kök dizini.
trainpath değerine göreli eğitim görseli yolu veya mutlak bir yol.
valpath değerine göreli doğrulama görseli yolu veya mutlak bir yol.
testİsteğe bağlı test görüntüsü yolu.
masks_dirSemantic maskeler için kullanılan dizin adı. YOLO çokgen etiket formatına geçiş yapmak için bu anahtarı (veri seti kök dizininde masks/ klasörü olmaksızın) atlayın.
namesSınıf kimliğinden sınıf adına eşleme.
label_mappingKaynak veri seti 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 ardışık eğitim sınıfı kimlikleriyle henüz eşleşmediğinde label_mapping kullanın. Cityscapes ve ADE20K, orijinal etiket kimliklerini YOLO semantic segmentation eğitim kimliklerine dönüştüren ve kullanılmayan etiketleri yoksayan eşlemeler içerir.

Kullanım#

Python veya CLI ile bir YOLO26 semantik segmentasyon modeli eğit:

Örnek
from ultralytics import YOLO

# Load a pretrained semantic segmentation model
model = YOLO("yolo26n-sem.pt")

# Train on the Cityscapes8 semantic segmentation dataset
results = model.train(data="cityscapes8.yaml", epochs=100, imgsz=1024)

Desteklenen Veri Kümeleri#

Ultralytics, bu veri setleri için semantic segmentation veri seti YAML dosyaları sağlar. Önceden eğitilmiş model kıyaslama tablosunun tamamı için semantic segmentation görev sayfasına bakın.

  • Cityscapes: 19 eğitim sınıfına sahip kentsel sokak sahneleri semantic segmentation veri seti.
  • Cityscapes8: Hızlı testler ve CI kontrolleri için 8 görselllik bir Cityscapes alt kümesi.
  • ADE20K: 150 semantic sınıfa sahip sahne ayrıştırma (scene parsing) veri seti.

Kendi Veri Kümeni Ekleme#

Seçenek A — PNG maskeleri#

  1. Görsellerinizi images/train ve images/val gibi bölünmüş (split) klasörlerin altında saklayın.
  2. masks/train ve masks/val gibi yansıtılmış maske klasörleri altında görsel başına tek kanallı bir maske kaydedin.
  3. Maske piksel değerlerinin sınıf kimlikleri olduğundan emin olun. Yoksayılması gereken pikseller için 255 kullanın.
  4. path, train, val, masks_dir ve names içeren bir veri seti YAML dosyası oluşturun.
  5. label_mapping değerini yalnızca maske kimliklerinizin ardışık eğitim kimliklerine dönüştürülmesi gerektiğinde ekleyin.
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örselleri ve .txt çokgen dosyalarını tam olarak instance segmentation için olduğu gibi düzenleyin.
  2. path, train, val ve names içeren bir veri seti YAML dosyası oluşturun — masks_dir değerini atlayın.
  3. Veri seti kök dizininde görsellerinizin yanında hiçbir masks/ klasörünün bulunmadığından emin olun; bu klasörün varlığı, YAML içinde masks_dir olmasa bile yükleyiciyi PNG maskesi moduna geçirir.
  4. names içine bir "background" girdisi eklemeyin. Çok sınıflı veri setleri için yükleyici otomatik olarak bir tane ekler; tek sınıflı veri setleri için eğitim 1 sınıfta kalır — bildirdiğiniz sınıf maskede 1 olur ve kapsanmayan pikseller 0 haline gelir.
path: path/to/my-polygon-dataset
train: images/train
val: images/val

names:
    0: person
    1: car

Ultralytics Platform, semantic görevi için bir çokgen açıklama (annotation) aracının yanı sıra SAM destekli Akıllı açıklama (Smart annotation) sağlar — bu düzeni elle kurmadan doğrudan tarayıcılarda açıklama ekleyin ve elde edilen çokgen etiketli veri setini dışarı aktarın veya üzerinde eğitim yapın.

SSS#

Semantik segmentasyon maskeleri ile örnek segmentasyon etiketleri arasındaki fark nedir?#

Semantik segmentasyon maskeleri yoğun piksel haritalarıdır. Her piksel bir sınıf kimliği saklar ve eğitim görüntüsü başına bir maske görüntüsü bulunur. Ultralytics YOLO'daki örnek segmentasyonu etiketleri, nesne örneği başına bir satır olmak üzere çokgen koordinatları içeren metin dosyaları kullanır.

Eğitim sırasında hangi piksel değeri yok sayılır?#

255 piksel değeri yoksayma etiketi olarak kullanılır. Bu pikseller; boş (void) bölgeler, etiketlenmemiş pikseller veya eğitim etiket kümesinin dışındaki sınıflar için faydalı olan kayıp ve metrik hesaplaması sırasında atlanır.

Maske dosyası adlarının görüntü dosyası adlarıyla eşleşmesi gerekiyor mu?#

Evet. Her anlamsal maske, ilgili görselle aynı dosya gövdesine sahip olmalıdır. Veri seti yükleyicisi, images dizin bileşenini masks_dir ile değiştirir ve eşleşen maske dosyalarını arar; bir .png maskesi bulunamazsa desteklenen diğer görsel uzantılarına (.jpg, .tiff vb.) geri döner (yedekleme mekanizması bunu zorunlu kılmadığından yalnızca kayıpsız formatlar önerilir).

Orijinal veri kümesi etiket kimliklerini doğrudan kullanabilir miyim?#

Evet, eğer names sınıf kimliklerinizle zaten eşleşiyorlarsa. Kaynak veri seti ardışık olmayan kimlikler kullanıyorsa veya yoksayılması gereken etiketler içeriyorsa, kaynak piksel değerlerini eğitim kimliklerine dönüştürmek için bir label_mapping bölümü ekleyin.

Semantik segmentasyon eğitmek için örnek segmentasyon veri kümemi kullanabilir miyim?#

Evet. Örnek segmentasyonu veri setleri Ultralytics YOLO çokgen etiketlerini kullanır (her görsel için <class-index> <x1> <y1> <x2> <y2> ... satırlı bir .txt) ve aynı dosyalar anlamsal segmentasyon için yeniden kullanılabilir; veri seti YAML dosyasından masks_dir öğesini kaldırman yeterlidir ve veri seti kök dizininde görsellerinin yanında hiçbir masks/ klasörünün bulunmadığından emin ol (masks_dir ayarlanmamış olsa bile bunun varlığı doğrudan PNG maske modunu tetikler). Yükleyici daha sonra çokgenleri anında görsel başına maskelere dönüştürür. Çok sınıflı veri setleri için (N > 1) ekstra bir background sınıfı eklenir ve model N + 1 çıkış kanallarıyla oluşturulur. Tek sınıflı veri setleri için (N == 1) eğitim 1 sınıfta kalır; maske, tanımladığın sınıfı 1 olarak ve kaplanmamış pikselleri 0 olarak gösterir.

Hangi veri kümeleri Ultralytics ile semantik segmentasyon için birlikte gelir?#

Ultralytics; Cityscapes (19 kentsel sahne sınıfı), boru hattı (pipeline) testi için hafif Cityscapes8 alt kümesi ve ADE20K (150 sahne ayrıştırma sınıfı) için kullanıma hazır veri seti YAML dosyaları içerir. Her sayfa tam sınıf listesini, indirme adımlarını ve doğrulanmış bir eğitim örneğini belgeler.

Yorumlar