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ümesinameseşlemesindeki sınıf kimliklerini temsil eder.255piksel 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
.pngby default; if missing, other supported image extensions are also accepted. Use lossless formats such as.pngor.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 > 1innames): an extrabackgroundclass is appended after your declared classes for pixels not covered by any polygon. The model is built withN + 1output channels and the last channel is background. - Single-class (
N == 1innames): still trained as 1 class. The mask is binary, with your declared class shown as1and pixels not covered by any polygon as0. No extra background class is added tonames. - Veri artırma dolgusu (örneğin rastgele kırpma) ile eklenen pikseller, yok sayma etiketi olarak
255kullanmaya 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:
| Anahtar | Açıklama |
|---|---|
path | Veri kümesi kök dizini. |
train | path öğesine göre eğitim görüntüsü yolu veya mutlak bir yol. |
val | path öğ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_dir | Semantik maskeler için kullanılan dizin adı. YOLO çokgen etiket biçimine geçmek için bu anahtarı atla. |
names | Sınıf kimliğinden sınıf adına eşleme. |
label_mapping | Kaynak veri kümesi kimliklerinden eğitim kimliklerine veya ignore_label öğesine isteğe bağlı eşleme. |
# 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.zipKaynak 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:
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#
- Görüntülerini
images/trainveimages/valgibi bölünmüş klasörler altında kaydet. - Görüntü başına bir tek kanallı maskeyi
masks/trainvemasks/valgibi yansıtılmış maske klasörleri altında kaydet. - Maske piksel değerlerinin sınıf kimlikleri olduğundan emin ol. Yok sayılması gereken pikseller için
255kullan. path,train,val,masks_dirvenamesiçeren bir veri kümesi YAML dosyası oluştur.- Yalnızca maske kimliklerinin ardışık eğitim kimliklerine dönüştürülmesi gerektiğinde
label_mappingekle.
path: path/to/my-semantic-dataset
train: images/train
val: images/val
masks_dir: masks
names:
0: background
1: road
2: buildingLink to this sectionSeçenek B — Çokgen etiketleri#
- Görüntüleri ve
.txtçokgen dosyalarını tam olarak örnek segmentasyonu için olduğu gibi düzenle. path,train,valvenamesiçeren bir veri kümesi YAML dosyası oluştur;masks_diröğesini atla.namesiç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 maskede1olur ve kapsanmayan pikseller0olur.
path: path/to/my-polygon-dataset
train: images/train
val: images/val
names:
0: person
1: carLink 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.