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ü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. - Maskeler varsayılan olarak
.pngolarak çözümlenir; eğer eksikse, diğer desteklenen görüntü uzantıları da kabul edilir..pngveya.tiffgibi 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 > 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 formatı#
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 etiketi formatına geçmek için bu anahtarı (veri kümesi kök dizininde masks/ klasörü olmadan) 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, 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#
- 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.- 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çindemasks_dirolmasa bile yükleyiciyi PNG maskesi moduna geçirir. 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: carUltralytics 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.