Link to this sectionAnlamsal Segmentasyon#
Anlamsal segmentasyon, bir görüntüdeki her piksele bir sınıf etiketi atayarak tüm sahneyi kapsayan yoğun bir sınıf haritası üretir. Bireysel nesneleri birbirinden ayıran örnek segmentasyonunun aksine, anlamsal segmentasyon, kaç tane farklı nesne olduğuna bakılmaksızın aynı sınıfa ait tüm pikselleri bir araya getirir.
Bir anlamsal segmentasyon modelinin çıktısı, her piksel değerinin tahmin edilen bir sınıf kimliğine karşılık geldiği tek bir yükseklik-genişlik sınıf haritasıdır. Bu, anlamsal segmentasyonu otonom sürüş, tıbbi görüntüleme ve arazi örtüsü haritalama gibi sahne çözümleme görevleri için ideal kılar.
Use task=semantic or the yolo semantic CLI task for semantic segmentation. YOLO26 semantic segmentation model files use the -sem suffix, such as yolo26n-sem.pt.
Link to this sectionModeller#
Cityscapes veri kümesi üzerinde önceden eğitilmiş YOLO26 anlamsal segmentasyon modelleri aşağıda gösterilmiştir.
Modeller, ilk kullanımda en son Ultralytics sürümünden otomatik olarak indirilir.
| Model | boyut (piksel) | mIoUval | Hız RTX3090 PyTorch (ms) | parametreler (M) | FLOPs (B) |
|---|---|---|---|---|---|
| YOLO26n-sem | 1024 × 2048 | 78.3 | 4.4 ± 0.0 | 1.6 | 22.7 |
| YOLO26s-sem | 1024 × 2048 | 80.8 | 8.4 ± 0.0 | 6.5 | 88.8 |
| YOLO26m-sem | 1024 × 2048 | 82.0 | 19.9 ± 0.1 | 14.3 | 304.5 |
| YOLO26l-sem | 1024 × 2048 | 82.9 | 26.5 ± 0.1 | 17.9 | 384.7 |
| YOLO26x-sem | 1024 × 2048 | 83.6 | 48.9 ± 0.2 | 40.2 | 861.7 |
- mIoUval değerleri, Cityscapes doğrulama kümesi üzerindeki tek model ve tek ölçekli değerlerdir.
yolo semantic val data=cityscapes.yaml device=0 imgsz=2048ile yeniden üretin - Hız metrikleri, bir RTX3090 örneği kullanılarak Cityscapes doğrulama görüntüleri üzerinde ortalaması alınmıştır.
yolo semantic val data=cityscapes.yaml batch=1 device=0|cpu imgsz=2048ile yeniden üretin - Parametreler ve FLOPs değerleri, Conv ve BatchNorm katmanlarını birleştiren
model.fuse()işleminden sonraki birleştirilmiş model içindir. Önceden eğitilmiş kontrol noktaları tam eğitim mimarisini korur ve daha yüksek sayılar gösterebilir.
Link to this sectionEğit#
YOLO26n-sem modelini Cityscapes8 veri kümesi üzerinde 1024 görüntü boyutunda 100 dönem boyunca eğit. Mevcut argümanların tam listesi için Yapılandırma sayfasına bak.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-sem.yaml") # build a new model from YAML
model = YOLO("yolo26n-sem.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo26n-sem.yaml").load("yolo26n-sem.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="cityscapes8.yaml", epochs=100, imgsz=1024)Tam train modu ayrıntılarını Eğitim sayfasında bulabilirsin.
Link to this sectionVeri kümesi formatı#
Anlamsal segmentasyon veri kümeleri, her piksel değerinin bir sınıf kimliğini temsil ettiği, genellikle PNG formatında olan tek kanallı maske görüntüleri kullanır. 255 değerine sahip pikseller "yoksay" olarak kabul edilir ve kayıp hesaplamasından hariç tutulur. Veri kümesi YAML dosyası, görüntülere ve bunlara karşılık gelen maske dizinlerine giden yolları belirtmelidir. Biçim ayrıntıları için Anlamsal Segmentasyon Veri Kümesi Kılavuzu sayfasına bak. Desteklenen veri kümeleri arasında Cityscapes ve ADE20K bulunur.
Link to this sectionDoğrula#
Eğitilmiş bir YOLO26n-sem modelinin doğruluğunu bir anlamsal segmentasyon veri kümesi üzerinde doğrula. Doğrulamanın hedeflenen veri kümesi YAML dosyasını kullanması için data parametresini açıkça belirt.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-sem.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Validate the model
metrics = model.val(data="cityscapes.yaml")
metrics.miou # mean Intersection over Union
metrics.pixel_accuracy # overall pixel accuracyLink to this sectionTahmin Et#
Görüntüler üzerinde tahminler çalıştırmak için eğitilmiş bir YOLO26n-sem modeli kullan.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-sem.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg") # predict on an image
# Access the results
for result in results:
semantic_mask = result.semantic_mask.data # class map, shape (H,W), integer dtype selected by class countTam predict modu ayrıntılarını Tahmin sayfasında bulabilirsin.
Link to this sectionSonuç Çıktısı#
YOLO anlamsal segmentasyonu, görüntü başına bir Results nesnesi döndürür. Her sonuç, nesne maskeleri listesi yerine tüm görüntü için tek bir yoğun sınıf haritası saklar. Tahmin edilen aynı sınıfa sahip pikseller, farklı nesnelere ait olsalar bile aynı sınıf kimliğini paylaşır.
| Nitelik | Tür | Şekil | Açıklama |
|---|---|---|---|
result.semantic_mask | SemanticMask | (H,W) | Yoğun sınıf haritası. |
result.semantic_mask.data | torch.uint8torch.int16torch.int32 | (H,W) | Sınıf kimlikleri; dtype sınıf sayısına göre seçilir. |
result.masks | - | - | Örnek maskesi yok. |
result.boxes | - | - | Örnek kutuları/güven puanları yok. |
result.masks.xy | - | - | Varsayılan çokgen yok. |
Her görevdeki göreve özel Results alanları için Göreve Göre Tahmin Sonuçları bölümüne bak.
Link to this sectionÖrnek ve Anlamsal Segmentasyon Karşılaştırması#
| Özellik | Örnek Segmentasyonu (task="segment") | Anlamsal Segmentasyon (task="semantic") |
|---|---|---|
| Tahmin amacı | Algılanan her nesneyi ayrı ayrı bölümlere ayır | Her piksele bir sınıf kimliği ata |
| Çıktı alanı | result.masks | result.semantic_mask |
| Ana veri | result.masks.data | result.semantic_mask.data |
| Şekil | (N,H,W) | (H,W) |
| Piksel değerleri | İkili maske değerleri: 0 veya 1 | Sınıf kimlikleri: 0, 1, 2, ... |
| Dtype | torch.uint8 | torch.uint8torch.int16torch.int32 |
| Aynı sınıf nesneleri | Ayrı örnekler olarak tutulur | Aynı sınıf bölgesinde birleştirilir |
| Çokgenler | Evet, result.masks.xy ve result.masks.xyn aracılığıyla | Varsayılan olarak çokgen çıktısı yok |
| Kutular ve güven | Evet, result.boxes aracılığıyla | Örnek başına kutu veya güven puanı yok |
| Tipik kullanım | Sayma, izleme, kırpma, nesne düzeyinde ölçüm | Yoğun sahne etiketleme, sürülebilir alan, arazi örtüsü, tıbbi bölgeler |
Link to this sectionDışa Aktar#
Bir YOLO26n-sem modelini ONNX, CoreML vb. gibi farklı bir biçime dışa aktar.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-sem.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom model
# Export the model
model.export(format="onnx")Mevcut YOLO26 anlamsal segmentasyon dışa aktarma biçimleri aşağıdaki tabloda yer almaktadır. format argümanını kullanarak, örneğin format='onnx' veya format='engine' ile herhangi bir biçime dışa aktarabilirsin. Dışa aktarılmış modeller üzerinde doğrudan tahmin veya doğrulama yapabilirsin, örneğin yolo predict model=yolo26n-sem.onnx. Dışa aktarma tamamlandıktan sonra modelin için kullanım örnekleri gösterilecektir.
| Format | format Argümanı | Model | Meta veriler | Argümanlar |
|---|---|---|---|---|
| PyTorch | - | yolo26n-sem.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-sem.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-sem.onnx | ✅ | imgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n-sem_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-sem.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-sem.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-sem_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-sem.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-sem.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-sem_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n-sem_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-sem_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-sem.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-sem_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-sem_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n-sem_rknn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
| ExecuTorch | executorch | yolo26n-sem_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-sem_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DEEPX | deepx | yolo26n-sem_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n-sem_qnn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
Tam export ayrıntıları için Dışa Aktarma sayfasına bak.
Link to this sectionSSS#
Link to this sectionÖzel bir veri kümesi üzerinde nasıl YOLO26 anlamsal segmentasyon modeli eğitebilirim?#
Özel bir veri kümesinde bir YOLO26 semantik segmentasyon modelini eğitmek için, her piksel değerinin bir sınıf kimliğini (0, 1, 2, ...) temsil ettiği ve 255 değerindeki piksellerin eğitim sırasında yoksayıldığı PNG maske görüntülerini hazırlaman gerekir. Görüntü ve maske dizinlerini işaret eden bir veri kümesi YAML dosyası oluştur, ardından modeli eğit:
from ultralytics import YOLO
# Load a pretrained YOLO26 semantic segmentation model
model = YOLO("yolo26n-sem.pt")
# Train the model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=512)Daha fazla kullanılabilir argüman için Configuration sayfasını kontrol et.
Link to this sectionÖrnek segmentasyonu ile semantik segmentasyon arasındaki fark nedir?#
Örnek segmentasyonu ve semantik segmentasyon, her ikisi de piksel düzeyinde görevlerdir ancak önemli bir noktada farklılık gösterirler:
- Semantik segmentasyon her piksele bir sınıf etiketi atar ancak aynı sınıftaki bireysel nesneleri birbirinden ayırt etmez. Örneğin, bir sahnedeki tüm arabalar aynı sınıf etiketini paylaşır.
- Örnek segmentasyonu, her nesneyi ayrı ayrı tanımlar ve aynı sınıfa ait olsalar bile her nesne için farklı maskeler üretir.
Semantik segmentasyon, otonom sürüş ve arazi örtüsü haritalama gibi sahne anlama görevleri için en uygun olanıyken, bireysel nesneleri saymanın veya takip etmenin önemli olduğu durumlarda örnek segmentasyonu tercih edilir.
Link to this sectionSemantik segmentasyonu eğitmek için örnek segmentasyonu verilerini kullanabilir miyim?#
Yes. If your dataset uses Ultralytics YOLO polygon labels (one .txt per image), omit masks_dir from the dataset YAML and the loader will convert polygons to per-image semantic masks on the fly. For multi-class datasets (N > 1) an extra background class is appended to names automatically. For single-class datasets (N == 1) training stays at 1 class — your declared class becomes 1 in the mask and uncovered pixels become 0. See the Semantic Segmentation Dataset Guide for details.
Link to this sectionSemantik segmentasyon için hangi veri kümeleri desteklenmektedir?#
Ultralytics YOLO26, birkaç semantik segmentasyon veri kümesi için yerleşik yapılandırmalar sunar:
- Cityscapes: Otonom sürüş araştırmalarında yaygın olarak kullanılan, 19 sınıflı kentsel sokak sahneleri.
- ADE20K: 150 sınıflı, büyük ölçekli bir sahne ayrıştırma veri kümesi.
Ayrıca piksel değerlerinin sınıf kimliklerine karşılık geldiği PNG maske açıklamaları sunan her türlü özel veri kümesini de kullanabilirsin.
Link to this sectionÖnceden eğitilmiş bir YOLO26 semantik segmentasyon modelini nasıl doğrularım?#
Önceden eğitilmiş bir YOLO26 semantik segmentasyon modelini, değerlendirme için kullanılan veri kümesi YAML dosyası ile doğrula:
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n-sem.pt")
# Validate the model
metrics = model.val(data="cityscapes.yaml")
print("Mean IoU:", metrics.miou)
print("Pixel Accuracy:", metrics.pixel_accuracy)Bu adımlar, semantik segmentasyon performansını değerlendirmek için standart ölçümler olan ortalama Kesişim Üzerinden Birleşim (mIoU) ve piksel doğruluğu gibi doğrulama metriklerini sana sağlayacaktır.
Link to this sectionBir YOLO26 semantik segmentasyon modelini nasıl ONNX formatına aktarabilirim?#
Bir YOLO26 semantik segmentasyon modelini Python veya CLI komutları ile ONNX formatına aktar:
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n-sem.pt")
# Export the model to ONNX format
model.export(format="onnx")Çeşitli formatlara aktarma hakkında daha fazla ayrıntı için Export sayfasına başvur.