Kurumsal kullanıma hazır güvenlik: ISO 27001 + SOC 2 Tip I uyumlu.

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 formatı desteklenir. Veri kümesi yükleyici, veri kümesi YAML dosyasında bir masks_dir anahtarı tanımlandığında veya veri kümesi kök dizininde görsellerinizin yanında bir masks/ klasörü zaten mevcut olduğunda PNG maskelerini seçer; aksi takdirde YOLO çokgen etiketlerine geri döner.

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.
  • Maskeler varsayılan olarak .png olarak çözümlenir; eğer eksikse, diğer desteklenen görüntü uzantıları da kabul edilir. .png veya .tiff gibi kayıpsız formatlar kullan, çünkü kayıplı sıkıştırma (örneğin .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 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#

Veri setin zaten Ultralytics YOLO çokgen etiketlerine (görüntü başına bir .txt dosyası ve <class-index> <x1> <y1> <x2> <y2> ... satırları ile) sahipse, bunları kullanarak doğrudan anlamsal segmentasyon eğitebilirsin; PNG maske dönüştürmesine gerek yoktur. Satır düzeyindeki düzen için instance segmentation dataset format kısmına bak.

Bu yol, veri kümesi YAML dosyası masks_dir anahtarını içermediğinde ve veri kümesi kök dizininde görsellerinizin yanında herhangi bir masks/ klasörü bulunmadığında otomatik olarak seçilir. Artık kullanılmayan masks/ klasörlerini kaldır veya yeniden adlandır, aksi takdirde yükleyici PNG maskesi moduna geçiş yapar ve maskeleri orada aramaya başlar. 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 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 öğ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 etiketi formatına geçmek için bu anahtarı (veri kümesi kök dizininde masks/ klasörü olmadan) 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, bu veri kümeleri için semantik segmentasyon veri kümesi YAML dosyaları sağlar. Tam önceden eğitilmiş model karşılaştırma tablosu için semantik segmentasyon görev sayfasına bak.

  • 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. Veri kümesi kök dizininde, görsellerinizin yanında hiçbir masks/ klasörünün bulunmadığından emin ol; 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" 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

Ultralytics Platform, semantik görev için bir çokgen açıklama aracının yanı sıra SAM destekli Akıllı açıklama özelliği sunar; doğrudan tarayıcı üzerinden açıklama ekle ve bu düzeni manuel olarak ayarlamak zorunda kalmadan sonuçta ortaya çıkan çokgen etiketli veri kümesini dışa aktar veya bu veri kümesi üzerinde eğitim yap.

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?#

Yes. Each semantic mask should have the same file stem as the corresponding image. The dataset loader replaces the images directory component with masks_dir and searches for matching mask files, falling back to other supported image extensions (.jpg, .tiff, etc.) if a .png mask isn't found — though only lossless formats are recommended, since the fallback doesn't enforce this.

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, and make sure no masks/ folder exists next to your images at the dataset root (its presence alone triggers PNG-mask mode even without masks_dir set). The loader then 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.

Link to this sectionHangi veri kümeleri Ultralytics ile semantik segmentasyon için birlikte gelir?#

Ultralytics, Cityscapes (19 kentsel sahne sınıfı), hat 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 kümesi YAML dosyalarını içerir. Her sayfa tam sınıf listesini, indirme adımlarını ve doğrulanmış bir eğitim örneğini belgeler.

Yorumlar