Anlamsal Segmentasyon Veri Kümelerine Genel Bakış#
Anlamsal segmentasyon, görüntüdeki her piksele bir sınıf etiketi atar. Örnek segmentasyonundan farklı olarak anlamsal segmentasyon, aynı sınıftaki nesneleri birbirinden ayırmaz. Eğitim hedefi, her pikselin bir sınıf kimliği taşıdığı yoğun bir sınıf haritasıdır.
Bu kılavuz, Ultralytics YOLO anlamsal segmentasyon modellerinin kullandığı veri kümesi biçimini açıklar ve eğitim ile doğrulama için kullanılabilen yerleşik veri kümesi yapılandırmalarını listeler.
Desteklenen Veri Kümesi Biçimleri#
İki etiket biçimi desteklenir. Veri kümesi YAML dosyası bir masks_dir anahtarı tanımlıyorsa veya veri kümesi kök dizininde görüntülerin yanında bir masks/ klasörü zaten varsa, veri kümesi yükleyicisi PNG maskelerini seçer; aksi durumda YOLO poligon etiketlerine geçer.
PNG maske biçimi#
Anlamsal segmentasyon veri kümelerinde her örnek için bir görüntü dosyası ve bir maske dosyası kullanılır. Maske, genellikle PNG biçiminde olan tek kanallı bir görüntüdür; her pikselin değeri, karşılık gelen görüntü pikselinin sınıf indeksidir.
- Piksel değerleri
0,1,2, ... veri kümesininnameseşlemesindeki sınıf kimliklerini temsil eder. 255piksel değeri, yok sayma etiketi olarak değerlendirilir ve kayıp ile metrik hesaplamalarının dışında tutulur.- Maske dosyaları, eşleştikleri görüntü dosyasıyla aynı dosya adına sahip olmalıdır; örneğin
frankfurt_000000_000294.png. - Maskeler varsayılan olarak
.pngşeklinde çözümlenir; bu dosya yoksa desteklenen diğer görüntü uzantıları da kabul edilir..pngveya.tiffgibi kayıpsız biçimler kullan; çünkü kayıplı sıkıştırma (ör..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 yerine kullanılır.
dataset/
├── images/
│ ├── train/
│ └── val/
└── masks/
├── train/
└── val/Örneğin, masks_dir: masks olduğunda images/train/aachen_000000_000019.png konumundaki bir görüntü, masks/train/aachen_000000_000019.png konumundaki bir maskeyle eşleştirilir.
YOLO poligon etiketi biçimi#
Veri kümenizde zaten Ultralytics YOLO poligon etiketleri varsa (her görüntü için bir .txt ve <class-index> <x1> <y1> <x2> <y2> ... satırları), PNG maskesi dönüşümüne gerek kalmadan doğrudan bu etiketlerle anlamsal segmentasyon eğitimi yapabilirsin. Satır düzeyindeki düzen için örnek segmentasyonu veri kümesi biçimine bak.
Bu yol, veri kümesi YAML dosyasında masks_dir belirtilmediğinde ve veri kümesi kök dizininde görüntülerin yanında bir masks/ klasörü bulunmadığında otomatik olarak seçilir — geride kalan masks/ klasörlerini sil veya yeniden adlandır; aksi hâlde yükleyici PNG maske moduna geçer ve maskeleri bunun yerine orada arar. Davranış:
- Poligonlar yükleme sırasında her görüntü için anlamsal bir maskeye dönüştürülür ve örtüşme bölgelerinde küçük nesnelerin büyük nesnelerin üzerine yazması için alana göre sıralanır.
- Çok sınıflı (
namesiçindeN > 1): Herhangi bir poligonun kapsamadığı pikseller için tanımlı sınıflarından sonra ek birbackgroundsınıfı eklenir. ModelN + 1çıkış kanalıyla oluşturulur ve son kanal arka planı temsil eder. - Tek sınıflı (
namesiçindeN == 1): Eğitim yine 1 sınıfla yapılır. Maske ikilidir; tanımladığın sınıf1, herhangi bir poligonun kapsamadığı pikseller ise0olarak gösterilir.namesiçine ek bir arka plan sınıfı eklenmez. - Artırma dolgusuyla eklenen pikseller (ör. rastgele kırpma) yine yok sayma etiketi olarak
255kullanır.
Verilerin zaten örnek poligonlarıyla etiketlenmişse ve aynı dosyalardan anlamsal segmentasyon modeli oluşturmak istiyorsan bu yolu kullan.
Veri kümesi YAML biçimi#
Anlamsal segmentasyon veri kümeleri YAML dosyalarıyla yapılandırılır. Başlıca alanlar şunlardır:
| Anahtar | Açıklama |
|---|---|
path | Veri kümesinin kök dizini. |
train | path konumuna göreli veya mutlak eğitim görüntüsü yolu. |
val | path konumuna göreli veya mutlak doğrulama görüntüsü yolu. |
test | İsteğe bağlı test görüntüsü yolu. |
masks_dir | Anlamsal maskeler için kullanılan dizin adı. YOLO poligon etiketi biçimine geçmek için bu anahtarı (veri kümesi kök dizininde masks/ klasörü yokken) belirtme. |
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 değerine 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 zaten ardışık eğitim sınıfı kimlikleriyle eşleşmiyorsa label_mapping kullan. Cityscapes ve ADE20K, özgün etiket kimliklerini YOLO anlamsal segmentasyon eğitim kimliklerine dönüştüren ve kullanılmayan etiketleri yok sayan eşlemeler içerir.
Kullanım#
Python veya CLI ile YOLO26 anlamsal segmentasyon modeli eğit:
from ultralytics import YOLO
# Önceden eğitilmiş bir anlamsal segmentasyon modelini yükle
model = YOLO("yolo26n-sem.pt")
# Cityscapes8 anlamsal segmentasyon veri kümesiyle eğit
results = model.train(data="cityscapes8.yaml", epochs=100, imgsz=1024)Desteklenen Veri Kümeleri#
Ultralytics, bu veri kümeleri için anlamsal segmentasyon veri kümesi YAML dosyaları sağlar. Önceden eğitilmiş model kıyaslama tablosunun tamamı için anlamsal segmentasyon görev sayfasına bak.
- Cityscapes: Eğitim için 19 sınıf içeren, kentsel sokak sahnelerine yönelik anlamsal segmentasyon veri kümesi.
- Cityscapes8: Hızlı testler ve CI kontrolleri için Cityscapes'in 8 görüntülük bir alt kümesi.
- ADE20K: 150 anlamsal sınıf içeren sahne ayrıştırma veri kümesi.
Kendi Veri Kümeni Ekleme#
Seçenek A — PNG maskeleri#
- Görüntülerini
images/trainveimages/valgibi bölme klasörlerine kaydet. - Her görüntü için tek kanallı bir maskeyi,
masks/trainvemasks/valgibi karşılık gelen maske klasörlerine 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_dirvenamesalanlarını içeren bir veri kümesi YAML dosyası oluştur.- Yalnızca maske kimliklerinin ardışık eğitim kimliklerine dönüştürülmesi gerekiyorsa
label_mappingekle.
path: path/to/my-semantic-dataset
train: images/train
val: images/val
masks_dir: masks
names:
0: background
1: road
2: buildingSeçenek B — Çokgen etiketleri#
- Görüntüleri ve
.txtçokgen dosyalarını, örnek segmentasyonda olduğu gibi düzenle. path,train,valvenamesalanlarını içeren bir veri kümesi YAML dosyası oluştur —masks_diralanını çıkar.- Veri kümesinin kök dizinindeki görüntülerin yanında
masks/klasörünün bulunmadığından emin ol — bu klasörün varlığı, YAML'demasks_dirolmasa bile yükleyiciyi PNG maske moduna geçirir. namesalanına "background" girdisi ekleme. Çok sınıflı veri kümelerinde yükleyici bunu otomatik ekler; tek sınıflı veri kümelerinde eğitim 1 sınıf olarak kalır — tanımladığın sınıf, maskede1olur ve kapsanmayan pikseller0değerini alır.
path: path/to/my-polygon-dataset
train: images/train
val: images/val
names:
0: person
1: carUltralytics Platform, anlamsal görev için bir çokgen açıklama aracı ve SAM destekli Akıllı açıklama sunar — doğrudan tarayıcıda açıklama ekleyebilir, ardından bu klasör yapısını elle kurmadan çokgen etiketli veri kümesini dışa aktarabilir veya bununla eğitim yapabilirsin.
Sık Sorulan Sorular#
Anlamsal segmentasyon maskeleri, pikselleri yoğun biçimde eşleyen haritalardır. Her piksel bir sınıf kimliği içerir ve her eğitim görüntüsü için bir maske görüntüsü bulunur. Ultralytics YOLO'daki örnek segmentasyon etiketleri, nesne örneği başına bir satır içeren ve çokgen koordinatlarını tutan metin dosyalarıdır.
Yok sayma etiketi olarak
255piksel değeri kullanılır. Bu pikseller, kayıp ve metrik hesaplaması sırasında atlanır; bu özellik, boş bölgeler, etiketsiz pikseller veya eğitim etiketi kümesinin dışındaki sınıflar için kullanışlıdır.Evet. Her anlamsal maske, karşılık gelen görüntüyle aynı dosya adına sahip olmalıdır. Veri kümesi yükleyicisi,
imagesdizin bileşeninimasks_dirile değiştirir ve eşleşen maske dosyalarını arar..pngmaskesi bulunamazsa diğer desteklenen görüntü uzantılarını (.jpg,.tiffvb.) dener — ancak bu yedek arama biçim türünü doğrulamadığından yalnızca kayıpsız biçimler önerilir.Evet, kimlikler zaten
namessınıf kimliklerinle eşleşiyorsa kullanabilirsin. 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çinlabel_mappingbölümü ekle.Evet. Örnek segmentasyon veri kümeleri, görüntü başına
.txtve<class-index> <x1> <y1> <x2> <y2> ...satırları içeren Ultralytics YOLO çokgen etiketlerini kullanır; aynı dosyalar anlamsal segmentasyon için de kullanılabilir — veri kümesi YAML dosyasındanmasks_diralanını çıkar ve veri kümesinin kök dizininde görüntülerin yanındamasks/klasörünün bulunmadığından emin ol (bu klasörün varlığı,masks_dirayarlanmamış olsa bile PNG maske modunu etkinleştirir). Yükleyici daha sonra çokgenleri anlık olarak görüntü başına maskelere dönüştürür. Çok sınıflı veri kümelerine (N > 1) ek birbackgroundsınıfı eklenir ve modelN + 1çıkış kanalıyla oluşturulur. Tek sınıflı veri kümelerinde (N == 1) eğitim 1 sınıf olarak kalır — maskede tanımladığın sınıf1, kapsanmayan pikseller ise0olarak gösterilir.Ultralytics, Cityscapes (19 kentsel sahne sınıfı), işlem hattı testleri 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ı içerir. Her sayfada sınıf listesi, indirme adımları ve doğrulanmış bir eğitim örneği ayrıntılı olarak açıklanır.