๐ Summary
๐ v8.4.116 improves installation reliability, expands YOLOE and Platform workflows, strengthens tracking and export support, and refreshes YOLO26 documentation.
๐ Key Changes
-
๐ง OpenCV compatibility fix โ current PR #25702 by @Y-T-G
- Raises the minimum
opencv-pythonversion from4.6.0to4.7.0. - Keeps the exclusion for
4.13.0.90, which is affected by a FIPS self-test crash. - Removes an outdated ONNX DNN backend requirement check.
- This aligns the dependency with
cv2.imdecodemulti, which Ultralytics uses internally.
- Raises the minimum
-
๐ง Reusable YOLOE prompt embeddings
- Adds
save_prompt_embeddings()andload_prompt_embeddings()for storing text or visual prompt configurations in NPZ files. - Profiles are validated against the source YOLOE model and can be reused before exporting to formats such as ONNX, OpenVINO, TensorRT, CoreML, LiteRT, and RKNN.
- Exported models remain standard single-input models and do not require the NPZ file at runtime.
- Adds
-
๐ Improved model guidance
- Reworks the model index into a task-and-mode comparison table.
- Positions YOLO26 as the recommended model for new projects, with YOLO11 as a mature production alternative.
- Clarifies support for YOLO12, OBB, SAM models, YOLOE, YOLO-World, RT-DETR, and other model families.
- Adds a YOLO26 custom-dataset training video and highlights monocular depth estimation.
-
๐ฏ Broader and safer tracking support
- Documents and supports OBB tracking alongside detection, segmentation, and pose.
- Rejects unsupported semantic and depth tracking tasks with a clear error before processing begins.
- Skips unnecessary camera-motion compensation work when
gmc_method: none. - Keeps OC-SORT observation history bounded on all track lifecycle paths.
-
๐ฆ More efficient model export
- Streams ONNX and QNN calibration data instead of retaining all transformed images in memory.
- Reduces calibration memory usage substantially for large datasets.
- Updates anchor creation to use CoreML-friendly tensor operations, improving dynamic CoreML export compatibility.
-
๐งช Depth and segmentation fixes
- Excludes ground-truth depth values outside the configured valid range during calibration, keeping calibration consistent with validation metrics.
- Fixes FP16 segmentation with class-agnostic NMS.
- Preserves YOLOE one-to-one classifier weights during linear probing, preventing a severe accuracy drop.
- Makes pose activation-map gradients compatible with autograd and
torch.compile.
-
๐ผ๏ธ Visualization and analytics improvements
- Restores percentage labels in analytics pie charts.
- Speeds up semantic-mask overlay rendering by replacing repeated full-image scans with a palette lookup.
-
โ๏ธ Expanded Ultralytics Platform workflows
- Adds documented custom metadata support for datasets, images, projects, and models.
- Supports nested metadata, metadata search, NDJSON image metadata, and Dataset Ingest API uploads.
- Refreshes Platform integration screenshots and documents native Platform support for YOLOv8 and YOLOv5.
- Refactors Platform callbacks to load only where needed, reducing unnecessary imports in prediction, validation, and export paths.
-
๐ก๏ธ Reliability and infrastructure
- Makes downloads atomic, preventing concurrent test or application processes from reading partially written files.
- Updates CI runner images to Node.js 24 for compatibility with newer tooling.
- Refreshes OpenVINO benchmark data across Intel CPUs and NPUs.
- Improves documentation deployment detection when configuration defaults change.
๐ฏ Purpose & Impact
- โ Fewer installation failures: Users relying on OpenCV image decoding now receive a compatible version automatically.
- ๐ Simpler YOLOE deployment: Prompt configurations can be prepared once and reused across multiple export targets.
- ๐พ Lower memory usage: Large ONNX and QNN calibration jobs are more practical, especially on limited-memory systems.
- ๐ฅ More capable tracking: OBB tracking is now clearly supported, while unsupported tasks fail with actionable messages instead of obscure runtime errors.
- ๐ Better model fine-tuning: YOLOE linear probing and depth calibration now preserve pretrained performance more reliably.
- ๐งฉ Improved deployment compatibility: Dynamic CoreML exports and FP16 segmentation workflows are more robust.
- ๐ Better Platform organization: Custom metadata helps teams track provenance, review status, equipment, projects, and deployment context.
- ๐ Clearer onboarding: The refreshed model documentation makes it easier to choose the right Ultralytics model and understand its supported modes.
What's Changed
- Fix analytics pie chart percentage labels by @rudrakumar07 in #25600
- Prevent concurrent download cache corruption by @glenn-jocher in #25612
- Fix dynamic CoreML anchor export by @glenn-jocher in #25619
- Refactor Ultralytics Platform integration by @glenn-jocher in #25622
- Fix FP16 end-to-end segmentation with class-agnostic NMS by @JESUSROYETH in #25613
- Preserve YOLOE one-to-one classifiers during linear probing by @Y-T-G in #25607
- Name the PyPI version check step by @MGPOCKY in #25606
- Stream ONNX and QNN calibration data by @amanharshx in #25617
- Exclude out-of-range ground truth from depth calibration by @JESUSROYETH in #25614
- Build semantic overlays in a single pass by @JESUSROYETH in #25585
- Add reusable YOLOE prompt embedding profiles by @zgh2022 in #25572
- Remove stale reproduce command from Chinese depth notes by @glenn-jocher in #25624
- Refresh Platform integration screenshots by @glenn-jocher in #25627
- Update
openvino 2026.2.1benchmarks with Intel 155H, 258V and 358H systems by @lakshanthad in #25360 - Docs: Update "What is Ultralytics Platform?" section (include YOLOv8 & YOLOv5) by @sergiuwaxmann in #25641
- Add https://youtu.be/7lZa3Yi2kbo to docs by @RizwanMunawar in #25642
- Update docs landing new banner to depth estimation by @raimbekovm in #25645
- docs: Update depth estimation tip to specify monocular depth estimation by @onuralpszr in #25649
- Bump eviden-actions/clean-self-hosted-runner from 1 to 1.4.34 in /.github/workflows by @dependabot[bot] in #25651
- Include OBB in the tracking task summaries by @raimbekovm in #25661
- Skip the GMC warp when a tracker sets
gmc_method: noneby @raimbekovm in #25636 - Bound the OC-SORT observation history on every recording path by @raimbekovm in #25638
- Refuse semantic and depth tracking instead of crashing by @raimbekovm in #25665
- Upgrade CI runner images to Node 24 by @glenn-jocher in #25673
- Bump eviden-actions/clean-self-hosted-runner from v1.4.34 to v1.4.35 in /.github/workflows by @UltralyticsAssistant in #25680
- Reorder the models nav and replace the index list with a task and mode chooser by @raimbekovm in #25659
- Document image upload metadata by @glenn-jocher in #25697
- Deploy docs when
ultralytics/cfg/default.yamlchanges by @raimbekovm in #25663 - Fix pose activation map gradients by @glenn-jocher in #25694
- Document custom metadata for platform resources by @glenn-jocher in #25700
- Raise minimum
opencv-pythonto 4.7.0 by @Y-T-G in #25702
New Contributors
Full Changelog: v8.4.115...v8.4.116