Meet YOLO26: next-gen vision AI.

Link to this sectionSemantik Segmentasyon Veri Kümelerine Genel Bakış#

Semantik segmentasyon, bir görüntüdeki her piksele bir sınıf etiketi atar. Örnek segmentasyonunun aksine, semantik segmentasyon aynı sınıftaki nesneleri birbirinden ayırmaz. Eğitim hedefi, her pikselin bir sınıf kimliği (ID) sakladığı 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.

Link to this sectionDesteklenen Veri Kümesi Formatları#

İki etiket biçimi desteklenir. Veri kümesi yükleyicisi, veri kümesi YAML dosyasının bir masks_dir anahtarı tanımlayıp tanımlamadığına bağlı olarak yolu seçer.

Link to this sectionPNG 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, veri kümesi names eşlemesindeki sınıf kimliklerini temsil eder.
  • 255 piksel değeri, yok sayma etiketi olarak kabul edilir ve kayıp ve metrik hesaplamasının dışında tutulur.
  • Maske dosyaları, eşleşen görüntü dosyalarıyla aynı kök adı kullanmalıdır, örneğin frankfurt_000000_000294.png.
  • Masks are resolved as .png by default; if missing, other supported image extensions are also accepted. Use lossless formats such as .png or .tiff, since lossy compression (e.g. .jpg) corrupts the class ID pixel values.

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 yerini alır.

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

For example, an image at images/train/aachen_000000_000019.png is paired with a mask at masks/train/aachen_000000_000019.png when masks_dir: masks.

Link to this sectionYOLO çokgen etiket biçimi#

If your dataset already has Ultralytics YOLO polygon labels (one .txt per image with <class-index> <x1> <y1> <x2> <y2> ... rows), you can train semantic segmentation directly from them — no PNG mask conversion needed. See the instance segmentation dataset format for the row-level layout.

Bu yol, veri kümesi YAML dosyası masks_dir anahtarını atladığında otomatik olarak seçilir. 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.
  • Multi-class (N > 1 in names): an extra background class is appended after your declared classes for pixels not covered by any polygon. The model is built with N + 1 output channels and the last channel is background.
  • Single-class (N == 1 in names): still trained as 1 class. The mask is binary, with your declared class shown as 1 and pixels not covered by any polygon as 0. No extra background class is added to names.
  • Veri artırma dolgusu (örneğin rastgele kırpma) ile eklenen pikseller, yok sayma etiketi olarak 255 kullanmaya devam eder.

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

Link to this sectionVeri kümesi YAML biçimi#

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 öğesine göre eğitim görüntüsü yolu veya mutlak bir yol.
valpath öğesine göre doğrulama görüntüsü yolu veya mutlak bir yol.
testİsteğe bağlı test görüntüsü yolu.
masks_dirSemantik maskeler için kullanılan dizin adı. YOLO çokgen etiket biçimine geçmek için bu anahtarı atla.
namesSınıf kimliğinden sınıf adına eşleme.
label_mappingKaynak veri kümesi kimliklerinden eğitim kimliklerine veya ignore_label öğesine 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 halihazırda ardışık eğitim sınıfı kimlikleriyle eşleşmiyorsa label_mapping kullan. Cityscapes ve ADE20K, orijinal etiket kimliklerini YOLO semantik segmentasyon eğitim kimliklerine dönüştüren ve kullanılmayan etiketleri yok sayan eşlemeler içerir.

Link to this sectionKullanı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)

Link to this sectionDesteklenen Veri Kümeleri#

Ultralytics, şu veri kümeleri için semantik segmentasyon veri kümesi YAML dosyaları sağlar:

  • Cityscapes: 19 eğitim sınıfına sahip kentsel sokak sahnesi semantik segmentasyon veri kümesi.
  • Cityscapes8: Hızlı testler ve CI kontrolleri için 8 görüntülük bir Cityscapes alt kümesi.
  • ADE20K: 150 semantik sınıfa sahip sahne ayrıştırma veri kümesi.

Link to this sectionKendi Veri Kümeni Ekleme#

Link to this sectionSeçenek A — PNG maskeleri#

  1. Görüntülerini images/train ve images/val gibi bölünmüş klasörler altında kaydet.
  2. Görüntü başına bir tek kanallı maskeyi masks/train ve masks/val gibi yansıtılmış maske klasörleri altında 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 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 gerektiğinde 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

Link to this sectionSeçenek B — Çokgen etiketleri#

  1. Görüntüleri ve .txt çokgen dosyalarını tam olarak örnek segmentasyonu için olduğu gibi düzenle.
  2. path, train, val ve names içeren bir veri kümesi YAML dosyası oluştur; masks_dir öğesini atla.
  3. names içine bir "background" girişi ekleme. Çok sınıflı veri kümeleri için yükleyici bunu otomatik olarak ekler; tek sınıflı veri kümeleri için eğitim 1 sınıfta kalır; beyan ettiğin sınıf maskede 1 olur ve kapsanmayan pikseller 0 olur.
path: path/to/my-polygon-dataset
train: images/train
val: images/val

names:
    0: person
    1: car

Link to this sectionSSS#

Link to this sectionSemantik 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.

Link to this sectionEğitim sırasında hangi piksel değeri yok sayılır?#

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

Link to this sectionMaske dosyası adlarının görüntü dosyası adlarıyla eşleşmesi gerekiyor mu?#

Evet. Her semantik maske, karşılık gelen görüntüyle aynı dosya köküne 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.

Link to this sectionOrijinal veri kümesi etiket kimliklerini doğrudan kullanabilir miyim?#

Evet, eğer halihazırda names sınıf kimliklerinle eşleşiyorlarsa. 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 bir label_mapping bölümü ekle.

Link to this sectionSemantik segmentasyon eğitmek için örnek segmentasyon veri kümemi kullanabilir miyim?#

Yes. Instance segmentation datasets use Ultralytics YOLO polygon labels (one .txt per image with <class-index> <x1> <y1> <x2> <y2> ... rows), and the same files can be reused for semantic segmentation — just omit masks_dir from the dataset YAML. The loader converts polygons to per-image masks on the fly. For multi-class datasets (N > 1) an extra background class is appended and the model is built with N + 1 output channels. For single-class datasets (N == 1) training stays at 1 class — the mask shows your declared class as 1 and uncovered pixels as 0.

Katkıda bulunanlar

Yorumlar