YOLO26 - Semantic Segmentation¶
YOLO26 is the latest addition to the Ultralytics YOLO model series. The semantic segmentation variant assigns a class label to every pixel in an image, producing dense scene-level masks rather than per-object instances.
Overview¶
YOLO26 for semantic segmentation pairs the efficient YOLO26 backbone with a dense per-pixel prediction head. Key features include:
- Per-pixel classification - Every pixel is assigned a single class label.
- Efficient YOLO26 backbone - Shares the NMS-free, DFL-free YOLO26 architecture for fast inference and broad edge compatibility.
- Cityscapes pre-trained checkpoints - Public weights trained on the 19-class Cityscapes dataset, available across all model sizes.
- Binary and multi-class - Supports a single foreground class (binary head) or many foreground classes, alongside an implicit background.
- Multiple model sizes - From nano to extra-large variants.
License¶
AGPL-3.0
Commercial Licensing
- AGPL-3.0: Free for open-source projects. Requires derivative works to be open-sourced.
- Paid Roboflow customers: Automatically get access to use any YOLO26 models trained on or uploaded to the Roboflow platform for commercial use.
- Free Roboflow customers: Can use YOLO26 via the serverless hosted API, or commercially self-hosted with a paid plan.
Learn more: Roboflow Licensing | YOLO26 License Details
Pre-trained Model IDs¶
Public YOLO26 semantic segmentation checkpoints are trained on the Cityscapes dataset (19 classes) at 1024×1024 and are open access (no API key required).
| Model Size | 1024×1024 |
|---|---|
| Nano | yolo26n-sem-1024 |
| Small | yolo26s-sem-1024 |
| Medium | yolo26m-sem-1024 |
| Large | yolo26l-sem-1024 |
| Extra-Large | yolo26x-sem-1024 |
Custom model ID format: project-url/version (e.g., my-project-abc123/2)
Supported Backends¶
| Backend | Extras Required |
|---|---|
onnx |
onnx-cpu, onnx-cu12, onnx-cu118, onnx-jp6-cu126 |
torch-script |
torch-cpu, torch-cu118, torch-cu124, torch-cu126, torch-cu128, torch-jp6-cu126 |
trt |
trt10 |
Roboflow Platform Compatibility¶
| Feature | Supported |
|---|---|
| Training | ✅ Train custom models on Roboflow |
| Upload Weights | ✅ Upload pre-trained weights |
| Serverless API (v2) | ✅ Deploy via hosted API |
| Edge Deployment (Jetson) | ✅ Deploy on NVIDIA Jetson devices |
| Self-Hosting | ✅ Deploy with inference-models |
Usage Example¶
import cv2
import numpy as np
from inference_models import AutoModel
# Load a public Cityscapes checkpoint (open access, no API key required)
model = AutoModel.from_pretrained("yolo26n-sem-1024")
image = cv2.imread("path/to/image.jpg")
# Run inference
results = model(image)
# Per-pixel class IDs and confidence
seg_map = results[0].segmentation_map # (H x W) class id per pixel
confidence = results[0].confidence # (H x W) per-pixel confidence
# Colour the mask and overlay on the original image
colors = np.random.randint(0, 255, size=(len(model.class_names), 3), dtype=np.uint8)
colored_mask = colors[seg_map.cpu().numpy()]
overlay = cv2.addWeighted(image, 0.5, colored_mask, 0.5, 0)
cv2.imwrite("segmentation_result.jpg", overlay)
To run a custom-trained model, pass your project-url/version and a Roboflow API key:
Output Format¶
The model returns a list of SemanticSegmentationResult objects with:
| Field | Type | Description |
|---|---|---|
segmentation_map |
torch.Tensor |
Class ID for each pixel (H x W) |
confidence |
torch.Tensor |
Confidence score for each pixel (H x W) |
image_metadata |
dict |
Optional metadata about the image |
Semantic vs Instance Segmentation
Semantic segmentation labels every pixel with a class but does not separate individual objects (all cars share the "car" label). For per-object masks, counting, or tracking, use an instance segmentation model such as YOLO26 - Instance Segmentation.