Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ and time-consuming. Labelformat aims to solve this pain.
- [YOLOv9](https://labelformat.com/formats/object-detection/yolov9/)
- [YOLOv10](https://labelformat.com/formats/object-detection/yolov10/)
- [YOLOv11](https://labelformat.com/formats/object-detection/yolov11/)
- [YOLOv26](https://labelformat.com/formats/object-detection/yolov26/)
- instance-segmentation
- COCO
- YOLOv8
Expand Down
1 change: 1 addition & 0 deletions docs/features.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ Labelformat offers a robust set of features tailored to meet the diverse needs o
- **[YOLOv9](formats/object-detection/yolov9.md)**
- **[YOLOv10](formats/object-detection/yolov10.md)**
- **[YOLOv11](formats/object-detection/yolov11.md)**
- **[YOLOv26](formats/object-detection/yolov26.md)**

---

Expand Down
3 changes: 2 additions & 1 deletion docs/formats/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,5 @@
- [YOLOv8](./object-detection/yolov8.md)
- [YOLOv9](./object-detection/yolov9.md)
- [YOLOv10](./object-detection/yolov10.md)
- [YOLOv11](./object-detection/yolov11.md)
- [YOLOv11](./object-detection/yolov11.md)
- [YOLOv26](./object-detection/yolov26.md)
1 change: 1 addition & 0 deletions docs/formats/object-detection/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,4 @@ Labelformat supports converting between major object detection annotation format
- [YOLOv9](./yolov9.md)
- [YOLOv10](./yolov10.md)
- [YOLOv11](./yolov11.md)
- [YOLOv26](./yolov26.md)
43 changes: 43 additions & 0 deletions docs/formats/object-detection/yolov26.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# YOLOv26 (YOLO26) Object Detection Format

## Overview

**YOLOv26** (also known as **YOLO26**) is the latest evolution in the **You Only Look Once (YOLO)** series, engineered specifically for edge and low-power devices. It introduces a streamlined design that removes unnecessary complexity while integrating targeted innovations to deliver faster, lighter, and more accessible deployment. YOLOv26 uses the **same object detection format** as YOLOv8-v12, utilizing normalized coordinates in text files for seamless compatibility.

> **Info:** YOLOv26 is currently in preview and under development. Performance numbers are preliminary and final releases will follow soon. For the latest updates, see: [GitHub Repository: ultralytics/ultralytics](https://github.com/ultralytics/ultralytics)

## Key YOLOv26 Features

YOLOv26 maintains full compatibility with the YOLOv8-v12 label format while introducing several breakthrough innovations:

- **End-to-End NMS-Free Inference:** Native end-to-end model producing predictions directly without non-maximum suppression, reducing latency and simplifying deployment
- **DFL Removal:** Eliminates Distribution Focal Loss module for better export compatibility and broader hardware support on edge devices
- **MuSGD Optimizer:** Hybrid optimizer combining SGD with Muon, inspired by Moonshot AI's Kimi K2 breakthroughs in LLM training
- **ProgLoss + STAL:** Enhanced loss functions with notable improvements in small-object detection accuracy
- **43% Faster CPU Inference:** Specifically optimized for edge computing with significant CPU performance gains

## Format Specification

YOLOv26 uses the **identical format** as YOLOv8, YOLOv9, YOLOv10, YOLOv11, and YOLOv12. Please refer to the [YOLOv8 format documentation](yolov8.md) for complete format specifications, including:

- Text file structure with normalized coordinates
- Directory organization patterns
- Configuration via `data.yaml`
- Coordinate normalization formulas
- Example annotations
Comment on lines +23 to +27
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why is that kept so short while for YOLO12 all details are listed?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wanted to make only a minimal version now. YOLOv26 has not much info as of now anyway


## Converting Annotations to YOLOv26 Format

Since YOLOv26 uses the same format as YOLOv8-v11, you can convert from other formats using Labelformat:

```bash
labelformat convert \
--task object-detection \
--input-format coco \
--input-file dataset/annotations/instances_train.json \
--output-format yolov26 \
--output-folder dataset/yolov26_labels \
--output-split train
```

The converted output will be fully compatible with YOLOv26 training and inference pipelines.
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ nav:
- YOLOv9 Format: formats/object-detection/yolov9.md
- YOLOv10 Format: formats/object-detection/yolov10.md
- YOLOv11 Format: formats/object-detection/yolov11.md
- YOLOv26 Format: formats/object-detection/yolov26.md
- Tutorials:
- Converting COCO to YOLOv8: tutorials/converting-coco-to-yolov8.md
- About Us: about-us.md
Expand Down
2 changes: 1 addition & 1 deletion src/labelformat/cli/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def main() -> None:
The CLI interface is available as the `labelformat` command.

Supported label formats for object detection:
- YOLOv5, YOLOv6, YOLOv7, YOLOv8, YOLOv9, YOLOv10, YOLOv11
- YOLOv5, YOLOv6, YOLOv7, YOLOv8, YOLOv9, YOLOv10, YOLOv11, YOLOv26
- COCO
- VOC
- Labelbox
Expand Down
6 changes: 6 additions & 0 deletions src/labelformat/formats/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,10 @@
YOLOv11ObjectDetectionInput,
YOLOv11ObjectDetectionOutput,
)
from labelformat.formats.yolov26 import (
YOLOv26ObjectDetectionInput,
YOLOv26ObjectDetectionOutput,
)

__all__ = [
"COCOInstanceSegmentationInput",
Expand Down Expand Up @@ -80,5 +84,7 @@
"YOLOv10ObjectDetectionOutput",
"YOLOv11ObjectDetectionInput",
"YOLOv11ObjectDetectionOutput",
"YOLOv26ObjectDetectionInput",
"YOLOv26ObjectDetectionOutput",
"MaskPairInstanceSegmentationInput",
]
17 changes: 17 additions & 0 deletions src/labelformat/formats/yolov26.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
from labelformat.cli.registry import Task, cli_register

from .yolov8 import YOLOv8ObjectDetectionInput, YOLOv8ObjectDetectionOutput

"""
YOLOv26 format follows the same specs as YOLOv11.
"""


@cli_register(format="yolov26", task=Task.OBJECT_DETECTION)
class YOLOv26ObjectDetectionInput(YOLOv8ObjectDetectionInput):
pass


@cli_register(format="yolov26", task=Task.OBJECT_DETECTION)
class YOLOv26ObjectDetectionOutput(YOLOv8ObjectDetectionOutput):
pass