ultralytics
Ultralytics YOLO π for SOTA object detection, multi-object tracking, instance segmentation, pose estimation and image classification.
Description
<div align="center"> <p> <a href="https://platform.ultralytics.com/?utm_source=github&utm_medium=referral&utm_campaign=platform_launch&utm_content=banner&utm_term=ultralytics_github" target="_blank"> <img width="100%" src="https://raw.githubusercontent.com/ultralytics/assets/main/yolov8/banner-yolov8.png" alt="Ultralytics YOLO banner"></a> </p> [δΈζ](https://docs.ultralytics.com/zh/) | [νκ΅μ΄](https://docs.ultralytics.com/ko/) | [ζ₯ζ¬θͺ](https://docs.ultralytics.com/ja/) | [Π ΡΡΡΠΊΠΈΠΉ](https://docs.ultralytics.com/ru/) | [Deutsch](https://docs.ultralytics.com/de/) | [FranΓ§ais](https://docs.ultralytics.com/fr/) | [EspaΓ±ol](https://docs.ultralytics.com/es) | [PortuguΓͺs](https://docs.ultralytics.com/pt/) | [TΓΌrkΓ§e](https://docs.ultralytics.com/tr/) | [TiαΊΏng Viα»t](https://docs.ultralytics.com/vi/) | [Ψ§ΩΨΉΨ±Ψ¨ΩΨ©](https://docs.ultralytics.com/ar/) <br> <div> <a href="https://github.com/ultralytics/ultralytics/actions/workflows/ci.yml"><img src="https://github.com/ultralytics/ultralytics/actions/workflows/ci.yml/badge.svg" alt="Ultralytics CI"></a> <a href="https://clickpy.clickhouse.com/dashboard/ultralytics"><img src="https://static.pepy.tech/badge/ultralytics" alt="Ultralytics Downloads"></a> <a href="https://discord.com/invite/ultralytics"><img alt="Ultralytics Discord" src="https://img.shields.io/discord/1089800235347353640?logo=discord&logoColor=white&label=Discord&color=blue"></a> <a href="https://community.ultralytics.com/"><img alt="Ultralytics Forums" src="https://img.shields.io/discourse/users?server=https%3A%2F%2Fcommunity.ultralytics.com&logo=discourse&label=Forums&color=blue"></a> <a href="https://www.reddit.com/r/ultralytics/"><img alt="Ultralytics Reddit" src="https://img.shields.io/reddit/subreddit-subscribers/ultralytics?style=flat&logo=reddit&logoColor=white&label=Reddit&color=blue"></a> <br> <a href="https://console.paperspace.com/github/ultralytics/ultralytics"><img src="https://assets.paperspace.io/img/gradient-badge.svg" alt="Run Ultralytics on Gradient"></a> <a href="https://colab.research.google.com/github/ultralytics/ultralytics/blob/main/examples/tutorial.ipynb"><img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open Ultralytics In Colab"></a> <a href="https://www.kaggle.com/models/ultralytics/yolo26"><img src="https://kaggle.com/static/images/open-in-kaggle.svg" alt="Open Ultralytics In Kaggle"></a> <a href="https://mybinder.org/v2/gh/ultralytics/ultralytics/HEAD?labpath=examples%2Ftutorial.ipynb"><img src="https://mybinder.org/badge_logo.svg" alt="Open Ultralytics In Binder"></a> </div> </div> <br> [Ultralytics](https://www.ultralytics.com/) creates cutting-edge, state-of-the-art (SOTA) [YOLO models](https://www.ultralytics.com/yolo) built on years of foundational research in computer vision and AI. Constantly updated for performance and flexibility, our models are **fast**, **accurate**, and **easy to use**. They excel at [object detection](https://docs.ultralytics.com/tasks/detect/), [tracking](https://docs.ultralytics.com/modes/track/), [instance segmentation](https://docs.ultralytics.com/tasks/segment/), [image classification](https://docs.ultralytics.com/tasks/classify/), and [pose estimation](https://docs.ultralytics.com/tasks/pose/) tasks. Find detailed documentation in the [Ultralytics Docs](https://docs.ultralytics.com/). Get support via [GitHub Issues](https://github.com/ultralytics/ultralytics/issues/new/choose). Join discussions on [Discord](https://discord.com/invite/ultralytics), [Reddit](https://www.reddit.com/r/ultralytics/), and the [Ultralytics Community Forums](https://community.ultralytics.com/)! Request an Enterprise License for commercial use at [Ultralytics Licensing](https://www.ultralytics.com/license). <a href="https://platform.ultralytics.com/ultralytics/yolo26" target="_blank"> <img width="100%" src="https://raw.githubusercontent.com/ultralytics/assets/refs/heads/main/yolo/performance-comparison.png" alt="YOLO26 performance plots"> </a> <div align="center"> <a href="https://github.com/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-github.png" width="2%" alt="Ultralytics GitHub"></a> <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space"> <a href="https://www.linkedin.com/company/ultralytics/"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-linkedin.png" width="2%" alt="Ultralytics LinkedIn"></a> <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space"> <a href="https://twitter.com/ultralytics"><img src="https://github.com/ultralytics/assets/raw/main/social/logo-social-twitter.png" width="2%" alt="Ultralytics Twitter"></a> <img src="https://github.com/ultralytics/assets/raw/main/social/logo-transparent.png" width="2%" alt="space"> <a href="https://www.youtube.com/ultralytics?sub_confirmation=1"><img s
Release History
| Version | Changes | Urgency | Date |
|---|---|---|---|
| 8.4.41 | Imported from PyPI (8.4.41) | Low | 4/21/2026 |
| v8.4.41 | ## π Summary Ultralytics `v8.4.41` focuses on a **key SAM3 video tracking quality fix** (fewer ghost IDs) plus a **data pipeline reliability improvement for NDJSON datasets**, with a large refresh of docs and Ultralytics Platform guidance πβ¨ ## π Key Changes - π― **Major tracking fix (current PR, #24249 by @Y-T-G):** - SAM3 tracking now enables **masklet confirmation filtering** by default to reduce false positive βghostβ object IDs. - Tracker keep-alive settings were tightened (`init_tr | High | 4/21/2026 |
| v8.4.40 | ## π Summary Ultralytics `v8.4.40` introduces **per-image precision/recall/F1 tracking during validation** (led by PR #24089 from @Laughing-q), making it much easier to see exactly which images your model handles well or poorly. ππΌοΈ ## π Key Changes - **New per-image validation metrics** added to results: - `precision`, `recall`, `f1`, `tp`, `fp`, `fn` for each image. - Exposed via `metrics.box.image_metrics` (and also for `seg` and `pose` where applicable). β - **Detection validation p | High | 4/20/2026 |
| v8.4.39 | ## π Summary Ultralytics **v8.4.39** is a quality-and-usability release focused on clearer run naming (`exp-2`), better CLI coverage for Solutions, safer rotated-box training behavior, and broad documentation/platform clarity improvements. π ## π Key Changes - **(Most important) Dashed run path increments are now default** via PR #24193 by @glenn-jocher β - `increment_path()` now creates names like `exp-2` and `results-2.txt` (instead of `exp2`, `results2.txt`). - Added regression test | High | 4/18/2026 |
| v8.4.38 | ## π Summary Ultralytics **v8.4.38** is a stability-focused release that mainly improves **model export reliability and consistency** across many deployment formats, with additional fixes for training, tracking, and SAM3 behavior. π ## π Key Changes - **Top priority (PR #24120 by @Laughing-q): Unified standalone export behavior** across CoreML, ONNX, OpenVINO, TensorFlow, TorchScript, ExecuTorch, Axelera, RKNN, IMX, NCNN, MNN, and Paddle. π¦ - CoreML now uses the modelβs real input name (i | High | 4/16/2026 |
| v8.4.37 | ## π Summary Ultralytics `v8.4.37` is a **quality + workflow-focused release**: the tag PR itself is a version bump, while the main substance is improved hyperparameter tuning (now NDJSON-based for multi-dataset runs), better handling of class imbalance, stronger training reliability, and clearer docs/UI guidance. π ## π Key Changes > [!WARNING] > The mAP calculation has been revised in this release. Reported mAP may be slightly lower than in previous Ultralytics versions, but now mor | Medium | 4/10/2026 |
| v8.4.36 | ## π Summary Ultralytics `v8.4.36` is a **stability-focused release** that fixes an important training regression for checkpoint-based workflows (especially Ultralytics Platform/HUB usage), plus several documentation clarifications for Platform, Explorer, and Jetson guides. β ## π Key Changes - π§ **Critical training fix in `Model.train()` (PR #24167 by @glenn-jocher)** - Restores checkpoint-backed model seeding so if a `.pt` model is already loaded, training reuses that loaded model dire | Medium | 4/8/2026 |
| v8.4.35 | ## π Summary Ultralytics `v8.4.35` is a **stability-focused release** that makes training recovery smarter, dataset caching safer, and inference/runtime behavior more reliableβespecially when runs hit NaNs or dataset metadata is inconsistent. ππ‘οΈ ## π Key Changes - **NaN training recovery improved (most important, PR #24154 by @glenn-jocher)** π - Training now recovers from `last_good.pt` instead of retrying a potentially corrupted `last.pt`. - Checkpoint saves are now skipped if EMA | Medium | 4/7/2026 |
| v8.4.34 | ## π Summary Ultralytics `v8.4.34` is a **tuning and stability-focused release** π, led by a major new feature: **multi-dataset hyperparameter tuning** in one run, plus several important reliability fixes and broad YOLO26 documentation updates. ## π Key Changes - **π§ Major feature (PR #24067 by @Laughing-q): Multi-dataset hyperparameter tuning** - `model.tune()` now accepts `data` as either a single dataset or a list. - During each tuning iteration, training runs across each dataset, th | Medium | 4/6/2026 |
| v8.4.33 | ## π Summary Ultralytics **v8.4.33** focuses on a key training reliability fix for end-to-end YOLO workflows, plus improvements to Ray Tune flexibility and CoreML export stability π ## π Key Changes - **π§ Major fix (current PR #24074 by @Laughing-q): Resume-training for end-to-end models now restores loss state correctly** - Updated `resume_training()` to properly reinitialize and sync the modelβs loss criterion when loading checkpoints. - Restores internal loss update counters so one-t | Medium | 3/31/2026 |
| v8.4.32 | ## π Summary v8.4.32 is mainly an **Axelera AI export expansion release** πβit significantly improves how Ultralytics models (including more tasks) are exported and deployed on Axelera hardware, with supporting docs and usability updates across the Ultralytics ecosystem. ## π Key Changes - **Major (Current PR #23844): Axelera export pipeline refactor and expansion** π§ βοΈ - Axelera export logic was moved out of the main exporter into a dedicated utility module: `ultralytics/utils/export/a | Medium | 3/30/2026 |
| v8.4.31 | ## π Summary Ultralytics `v8.4.31` is a reliability-focused release that mainly fixes **INT8 export calibration for non-square image sizes** (the headline change), while also improving training stability, export maintainability, and documentation for deployment and dataset workflows π ## π Key Changes - **π₯ Main update (PR #24028 by @Y-T-G): INT8 calibration now works correctly with non-square `imgsz`** - Fixes export calibration for commands like `imgsz=640,480` with `int8`. - Affects | Medium | 3/28/2026 |
| v8.4.30 | ## π Summary Ultralytics **v8.4.30** is a focused stability release that fixes and hardens **training resume** behavior, making interrupted training runs much more reliable πβ . ## π Key Changes - **Main update (PR #24027 by @glenn-jocher):** Refactored resume logic in `trainer.py` to correctly restore training arguments from `last.pt` earlier in the resume flow. - **Better checkpoint arg handling:** Resume now loads checkpoint config immediately and rebuilds runtime args from it more consi | Medium | 3/26/2026 |
| v8.4.29 | ## π Summary Ultralytics `v8.4.29` is mainly a **training reliability release** π§βit makes `resume=True` much safer and clearer, while also adding a helpful new COCO JSON training guide and small CI/docs/test maintenance updates. ## π Key Changes - **Major (current PR #24021 by @glenn-jocher): safer training resume flow** πβ - `resume=True` now only resumes if the checkpoint truly contains resumable training state (like epoch + optimizer state). - If the loaded file is just a model we | Medium | 3/26/2026 |
| v8.4.28 | ## π Summary Ultralytics **v8.4.28** improves training reliability on small datasets by making autobatch smarter, while also strengthening network robustness, backend efficiency, and docs/test stability. π ## π Key Changes - **(Most important) Autobatch now respects dataset size** π¦ From PR #24020 by @glenn-jocher: automatic batch-size selection is now capped to the number of training images. - Added `dataset_size` through `Trainer.auto_batch()`, `check_train_batch_size()`, and `autob | Medium | 3/26/2026 |
| v8.4.27 | ## π Summary Ultralytics `v8.4.27` focuses on **more reliable Ultralytics Platform training control** (especially cancellation handling) β , plus several stability fixes for data conversion, postprocessing alignment, Paddle compatibility, and Docker runtime updates π. ## π Key Changes - **π΄ Priority update (PR #24008 by @glenn-jocher): Improved Platform training integration** - Added a new sanitizer to clean callback payloads before sending them to the Ultralytics Platform. - Non-JSON-sa | Medium | 3/25/2026 |
| v8.4.26 | ## π Summary **v8.4.26 focuses on reliability and usability improvements**: smarter Platform dataset handling (auto-validation split for NDJSON), more robust Platform URL resolution, and an important FP16 SAM inference crash fixβplus CI and docs polish. π ## π Key Changes - **β Platform NDJSON auto-split (PR #23990, @glenn-jocher)** If a dataset has a `train` split but no `val`/`test`, Ultralytics now automatically creates a small validation split from training data instead of failing im | Medium | 3/23/2026 |
| v8.4.25 | ## π Summary (single-line synopsis) Ultralytics `v8.4.25` mainly restores **TensorFlow.js export** for most users β , while also improving training speed paths, visualization behavior, box alignment accuracy, CI reliability, and YOLO26/platform documentation clarity ππ. ## π Key Changes - **(Top priority) TF.js export restored for supported systems** π§ From PR #23985 by @glenn-jocher: - Added dependency pin `ydf<0.13.0` (non-ARM64) to avoid a TensorFlow/protobuf conflict. - Removed | Medium | 3/23/2026 |
| v8.4.24 | ## π Summary **Ultralytics `v8.4.24` improves training reliability and clarity on Ultralytics Platform π―, while also aligning tuning defaults and docs with YOLO26 best practices π.** ## π Key Changes - **(Most important) Better Platform training error surfacing** π οΈ - Platform callback error handling now shows the **actual server-side error message** when available (instead of generic HTTP text). - If a Platform training session fails to register, users now get a clearer message: | Low | 3/19/2026 |
| v8.4.23 | ## π Summary Ultralytics **v8.4.23** is mainly a big under-the-hood inference upgrade π: `AutoBackend` was fully redesigned into modular backend classes, making multi-format model deployment cleaner, easier to maintain, and more reliable across platforms. ## π Key Changes - **Major architecture refactor (PR #23790 by @Laughing-q) π§©** - `AutoBackend` moved from one large file to a **modular backend system** (`ultralytics/nn/backends/`). - Added dedicated backend classes for many runtimes | Low | 3/16/2026 |
| v8.4.22 | ## π Summary Ultralytics **v8.4.22** focuses on better hardware support and reliability, led by a key new feature: **basic Huawei Ascend NPU device support** in `select_device` π. ## π Key Changes - **π₯ Major (Current PR #23902 by @GiantAxeWhy): Huawei Ascend NPU parsing added** - You can now use `device=npu` or `device=npu:0` in Ultralytics. - Added checks for `torch_npu` installation and NPU availability. - Validates NPU index and gives clearer errors for invalid inputs. - Explici | Low | 3/14/2026 |
| v8.4.21 | ## π Summary Ultralytics **v8.4.21** improves reliability for **Rockchip RKNN exports** (main change) and also adds better tuning isolation, expanded C++ pose example support, and clearer YOLO26 optimizer guidance. π ## π Key Changes - **β Main priority (PR #23806 by @Laughing-q): RKNN export path fix** - RKNN filename generation was refactored to use safer path handling (`Path(...).stem`) instead of fragile string replacement. - Export output naming is now cleaner and more consistent, e | Low | 3/5/2026 |
| v8.4.20 | ## π Summary Ultralytics `v8.4.20` is a stability-and-usability release focused on cleaner hyperparameter tuning, more reliable deployment/export workflows, and improved docs for both YOLO models and the Ultralytics Platform π ## π Key Changes - **(Most important) Ray Tune cleanup in current PR #23772** π§Ή - Removed hardcoded `tuner_callbacks` and dropped built-in W&B callback wiring from `RunConfig` in tuning. - Version bumped from `8.4.19` β `8.4.20`. - **RKNN export reliability imp | Low | 3/5/2026 |
| v8.4.19 | ## π Summary (single-line synopsis) Ultralytics `v8.4.19` focuses on **much more reliable Ultralytics Platform training sync** (especially model tracking via `model_id`), plus a few quality improvements for SAM outputs, lightweight model stability, and clearer YOLO26 end-to-end docs π ## π Key Changes - **π΄ Most important (current PR #23761 by @glenn-jocher): Platform training `model_id` fix** - Training callbacks now **consistently pass `model_id`** during model uploads and training even | Low | 2/28/2026 |
| v8.4.18 | ## π Summary Ultralytics `v8.4.18` is a reliability-focused release that improves downloads and dependency installs, while also adding stronger ExecuTorch export support (including Pose) for smoother edge/mobile deployment π. ## π Key Changes - **π§ Priority fix (current PR): `safe_download()` now handles URLs with spaces** by encoding spaces as `%20` (PR #23736 by @glenn-jocher). - Prevents broken downloads from links like file paths or hosted assets containing spaces. - **π± Major export | Low | 2/26/2026 |
| v8.4.17 | ## π Summary (single-line synopsis) Ultralytics **v8.4.17** makes NDJSON dataset conversions *resplit-friendly*βreusing existing images, cleaning stale labels, and avoiding unnecessary downloads for faster iteration ππ¦ ## π Key Changes - **NDJSON dataset re-split support (priority change)** β»οΈπ§Ή - Detects when the dataset output folder already exists and **reuses previously downloaded images** when you change `train/val/test` splits. - For non-classification tasks (detect/segment/po | Low | 2/25/2026 |
| v8.4.16 | ## π Summary (single-line synopsis) Ultralytics **8.4.16** mainly improves **Windows β Linux/macOS `.pt` model portability** by fixing `pathlib` pickle issues, with a small docs update for **HEIC/HEIF** image support π§©πΎπΈ ## π Key Changes - πͺπ₯οΈ **Cross-platform `.pt` loading fix (PR #23725 by @glenn-jocher):** - Updated `torch_safe_load()` to **remap `pathlib.WindowsPath` β `pathlib.PosixPath`** during unpickling, preventing common load failures when models are created on one OS and loa | Low | 2/24/2026 |
| v8.4.15 | ## π Summary (single-line synopsis) Ultralytics **v8.4.15** improves real-world image ingestion (adds **HEIC/HEIF + HEIF** support with lazy decoding + better EXIF handling) and includes several quality fixes for metrics, exports, and docs πΌοΈβοΈβ ## π Key Changes - **HEIC/HEIF image support (priority change)** πΌοΈπ± - Added `ultralytics.utils.patches.image_open` and **monkey-patched `PIL.Image.open`** to lazily enable HEIC/HEIF decoding via **`pi-heif` only when needed** (i.e., on first d | Low | 2/24/2026 |
| v8.4.14 | ## π Summary (single-line synopsis) Ultralytics 8.4.14 adds **Ultralytics Platform βCancel trainingβ support** so you can stop runs quickly *and still keep/upload partial results* βοΈπ€ ## π Key Changes - **Platform-driven training cancellation (priority change)** π - Detects cancellation **even before training starts** (during session registration) and prevents wasted startup time. - Checks for cancellation at **epoch end** via a send-and-check response flow, then sets `trainer.stop=Tr | Low | 2/10/2026 |
| v8.4.13 | ## π Summary (single-line synopsis) Ultralytics **v8.4.13** makes training more resilient by **automatically recovering from CUDA out-of-memory (OOM) errors** during the first epoch by retrying with a smaller batch size ππ§ π₯ ## π Key Changes - **Auto-retry on CUDA OOM during training (major change)** π₯π οΈ - If a CUDA OOM happens in the **first epoch on single-GPU**, Ultralytics will retry up to **3 times**, **halving the batch size each time** (down to 1). - Training pipeline is re | Low | 2/8/2026 |
| v8.4.12 | ## π Summary (single-line synopsis) Ultralytics **v8.4.12** streamlines **YOLOE-26** class/text-prompt handling to avoid redundant updates, while improving multispectral (grayscale) training reliability and multi-GPU auto-selection π§ β‘οΈπ₯οΈ ## π Key Changes (major updates) - **YOLOE-26: Skip redundant `set_classes()` when prompts already match** π§ β‘οΈ - Adds a guard in `ultralytics/models/yolo/model.py` to **avoid re-running `set_classes()`** if `model.names` already matches the requested ` | Low | 2/5/2026 |
| v8.4.11 | ## π Summary (single-line synopsis) Ultralytics **v8.4.11** makes **Ultralytics Platform training uploads far more reliable** by adding **retryable model uploads + metrics posting**, plus a new reusable upload helper and docs ππΆ ## π Key Changes - **Robust Platform upload + metrics retries (PR #23538 by @glenn-jocher)** π - Added a new utility: `ultralytics/utils/uploads.py` with `safe_upload()` that supports **retries, timeouts, and optional progress bars** β³π¦ - Platform callback net | Low | 2/3/2026 |
| v8.4.10 | ## π Summary (single-line synopsis) Ultralytics `8.4.10` improves **YOLOE-26** out-of-the-box predictions by defaulting to **class-agnostic NMS**, plus several export, OpenVINO, HUB, SAM, and docs reliability upgrades ππ§ ## π Key Changes - π§ **YOLOE-26 inference default change (most important):** YOLOE predictions now default to `agnostic_nms=True`, reducing overlapping duplicate boxes across different classes (set in `ultralytics/models/yolo/model.py`). - π¦ **Version bump:** `8.4.9` β `8 | Low | 2/2/2026 |
| v8.4.9 | ## π Summary (single-line synopsis) Ultralytics **v8.4.9** improves **segmentation CopyPaste augmentation reliability** (especially for **grayscale/hyperspectral-style single-channel inputs**) and strengthens the broader export/training ecosystem with better ExecuTorch + Torch support ππ§© ## π Key Changes - π§ͺ **(Priority) Segmentation CopyPaste mask fix** in `ultralytics/data/augment.py`: - Builds the contour mask as a **2D (HΓW) array** instead of matching the full image tensor shape. | Low | 1/29/2026 |
| v8.4.8 | ## π Summary (single-line synopsis) Ultralytics **v8.4.8** makes **end-to-end (NMS-free) YOLO26/YOLOv10 inference actually honor `max_det` and `agnostic_nms`**, giving you predictable control over how many detections you get and how classes are handled β π ## π Key Changes - **End2end now supports `max_det` + `agnostic_nms` (PR #23396 by @Y-T-G)** ποΈ - Adds a safe `set_head_attr(**kwargs)` helper to set head/last-layer attributes like `end2end`, `max_det`, `agnostic_nms` π§© - When `e | Low | 1/27/2026 |
| v8.4.7 | ## π Summary Ultralytics **v8.4.7** adds **AVIF training support** and a new **COCO12-Formats** mini-dataset to continuously verify that *all supported image types* load correctly end-to-end (especially in CI) π§ͺπΌοΈ ## π Key Changes - **AVIF is now a supported training image format** β π· - `IMG_FORMATS` expanded to include **`avif`** - **More robust image decoding for modern formats** π‘οΈ - Adds a **Pillow-based fallback image reader** (`_imread_pil`) for cases where **OpenCV canβt de | Low | 1/21/2026 |
| v8.4.6 | ## π Summary (single-line synopsis) Ultralytics **v8.4.6** is a reliability-focused release that fixes a **multi-GPU DDP training crash** and improves **Ultralytics HUB/Platform dataset URI handling**, plus several documentation upgrades ππ οΈ ## π Key Changes - **β Fixed DDP multi-GPU training crash (PR #23301 by @pfabreu)** - Added missing `PosixPath` import to the generated temporary DDP training script (`ultralytics/utils/dist.py`). - Prevents `NameError: name 'PosixPath' is not d | Low | 1/18/2026 |
| v8.4.5 | ## π Summary (single-line synopsis) Ultralytics **8.4.5** makes **2D pose `Results.summary()` safer and more compatible** by correctly handling keypoints **with or without visibility flags** π§ββοΈβ ## π Key Changes - π§© **Pose Results summary now supports keypoints missing visibility**: `Results.summary()` checks `kpt.has_visible` and only outputs `"visible"` when it exists (otherwise returns just `"x"` and `"y"`), preventing crashes in mixed keypoint formats. - π **Version bump**: `8.4.4` β | Low | 1/17/2026 |
| v8.4.4 | ## π Summary (single-line synopsis) Ultralytics **v8.4.4** refines **MuSGD training behavior** (better scaling for short vs. long runs) and includes several quality-of-life fixes for **exports, segmentation outputs, logging, and filesystem side effects** ππ§ ## π Key Changes - π§ **MuSGD optimizer scaling update (PR #23279 by @Laughing-q)** MuSGD scale factors are now chosen more appropriately based on total training iterations: - **> 10,000 iterations:** `(muon=0.1, sgd=1.0)` - **β€ | Low | 1/16/2026 |
| v8.4.3 | ## π Summary (single-line synopsis) Ultralytics `v8.4.3` boosts **Ultralytics Platform NDJSON dataset downloads/conversion speed** π, improves **training metric correctness** π§ , and refreshes defaults/docs around **YOLO26** π. ## π Key Changes - π **Faster NDJSON β YOLO dataset conversion (Ultralytics Platform data) β PR #23257 by @glenn-jocher** - Lazy-loads `aiohttp` only when NDJSON conversion is used (faster startup, fewer unnecessary deps) π¦ - Simplifies async image download cod | Low | 1/15/2026 |
| v8.4.2 | ## π Summary (single-line synopsis) Ultralytics **v8.4.2** mainly fixes **Ultralytics Platform (`ul://` / NDJSON) classification training** by converting datasets into the correct on-disk layout and validating them properly, plus a few quality-of-life and docs/CI tweaks π οΈβ ## π Key Changes - **(Most important) Platform Classification Training Fix (PR #23217, @glenn-jocher)** π§©π·οΈ - NDJSON conversion now detects `task == "classify"` and creates an **ImageNet-style folder layout**: `{spl | Low | 1/15/2026 |
| v8.4.1 | ## π Summary (single-line synopsis) Ultralytics **v8.4.1** brings back **NCNN export + inference on ARM64** (Apple Silicon/ARM servers/edge devices) π±βοΈ, plus stability fixes for pose/seg training π οΈ and a big docs/benchmarks cleanup πβ¨. ## π Key Changes - **β NCNN on ARM64 is re-enabled** (current PR #23211 by @lakshanthad) π± - Removed ARM64 βhard stopβ errors for: - **NCNN export** (`ultralytics/engine/exporter.py`) - **NCNN inference** (`ultralytics/nn/autobackend.py`) | Low | 1/14/2026 |
| v8.4.0 | ## π Summary **Ultralytics YOLO26 has arrived.** Re-engineered from the ground up by @glenn-jocher, @Laughing-q, and the Ultralytics YOLO team, YOLO26 is purpose-built for edge and low-power environments. This release introduces a streamlined, **native end-to-end NMS-free architecture**, delivering faster, lighter, and more accessible deployment across all platforms.  Ultralytics 8.3.253 adds **explicit Vulkan GPU device selection for NCNN inference** (plus safer PaddlePaddle/NCNN dependency handling) to improve cross-vendor GPU acceleration and reliability β‘π₯οΈπ οΈ ## π Key Changes - **NCNN + Vulkan device targeting (main feature) β‘** - You can now pass a device string like `device="vulkan:0"` or `device="vulkan:1"` to **choose which Vulkan-capable GPU** NCNN uses (helpful on AMD/Intel/non-NVIDIA systems and multi-GPU | Low | 1/13/2026 |
| v8.3.252 | ## π Summary v8.3.252 polishes Ultralytics console output by fixing a `tqdm` progress-bar issue that could print β100% completeβ twice β π ## π Key Changes - π§Ή **Fix duplicated final progress-bar render (PR #23158)**: adds a safeguard in `ultralytics/utils/tqdm.py` to *skip* the final βcompleteβ redraw if `100%` was already printed. - π§ **Export reliability improvement**: resets cached export input shape (`m.shape = None`) in `ultralytics/engine/exporter.py` to avoid stale shapes when expor | Low | 1/10/2026 |
| v8.3.251 | ## π Summary (single-line synopsis) v8.3.251 improves training/integration reliability by initializing Trainer callbacks earlier (so Ultralytics HUB/Platform sees the original `data` input like `ul://...`) while also polishing profiling accuracy, tuning stability, and device/dataset/docs support π§©π ## π Key Changes - **Earlier Trainer callback initialization (PR #23155, @glenn-jocher)** π§ - `on_pretrain_routine_start` now runs **before** dataset resolution (`get_dataset()`), keeping th | Low | 1/10/2026 |
| v8.3.250 | ## π Summary (single-line synopsis) Ultralytics v8.3.250 adds **out-of-the-box support for the TT100K traffic sign dataset** π¦βplus smoother Ultralytics HUB dataset handling, better run directory behavior, and a few quality/build/docs fixes π οΈπ ## π Key Changes - **π¦ New TT100K dataset integration (PR #22892 by @PrashantDixit0)** - Adds `ultralytics/cfg/datasets/TT100K.yaml` with **221 classes** and full dataset metadata. - Includes an **auto download + conversion pipeline** that | Low | 1/8/2026 |
| v8.3.249 | ## π Summary (single-line synopsis) Ultralytics 8.3.249 adds an official **NVIDIA ARM64 Docker image** for running **YOLO11 on JetPack 7 / ARM64 GPUs** (plus a few usability + contributor/docs improvements) ππ³ ## π Key Changes - π³ **New Docker image for NVIDIA ARM64 (JetPack 7 / ARM64 GPUs)** - Added `docker/Dockerfile-nvidia-arm64` based on NVIDIAβs PyTorch NGC image (`nvcr.io/nvidia/pytorch:25.10-py3`) - CI now builds & publishes **`ultralytics/ultralytics:latest-nvidia-arm64`** - | Low | 1/7/2026 |
| v8.3.248 | ## π Summary (single-line synopsis) Ultralytics `v8.3.248` makes auto-installation more reliable by ensuring `uv pip install` installs into the *currently running Python environment* (plus a couple of small quality-of-life fixes) π§°β ## π Key Changes - **Auto-install now targets the active interpreter explicitly (PR #23118)** π§ͺπ― - `check_requirements()` runs `uv pip install` with `--python {sys.executable}` so installs go to the right environment (venv/conda/system). - **Removed** the | Low | 1/4/2026 |
| v8.3.247 | ## π Summary (single-line synopsis) Ray Tune + Weights & Biases (W&B) tuning runs now get **unique, trial-specific names** in Ultralytics 8.3.247, making hyperparameter sweeps much easier to track π§ͺπ ## π Key Changes - **(Priority / Current PR #23084)** Ray Tune trials logged to W&B no longer all show up as **`train`** π·οΈ - Saves the original run name before it gets removed from training args - Uses Ray Tuneβs `trial_id` to append a unique suffix - Naming format: **`{base_name} | Low | 1/3/2026 |
| v8.3.246 | ## π Summary (single-line synopsis) Ultralytics **v8.3.246** upgrades training reporting for **Ultralytics HUB** by uploading **rich, interactive plot data + class names** at the end of training, making results easier to explore and understand ππ·οΈβ¨ ## π Key Changes - **(Priority) Rich plot-data upload on train completion** π§©π€ At `on_train_end()`, Ultralytics now **collects plots from both the trainer and validator** and sends them with the final `"training_complete"` event (e.g., **co | Low | 1/2/2026 |
