| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| sbom.spdx.json | 2026-07-17 | 703.9 kB | |
| README.md | 2026-07-17 | 5.4 kB | |
| v8.4.99 - Add Hailo inference backend (#25247) source code.tar.gz | 2026-07-17 | 2.5 MB | |
| v8.4.99 - Add Hailo inference backend (#25247) source code.zip | 2026-07-17 | 3.3 MB | |
| Totals: 4 Items | 6.5 MB | 0 | |
🌟 Summary
🚀 v8.4.99 adds native Hailo inference support, allowing Ultralytics-exported Hailo models to run directly with predict and val, while also improving training memory usage, platform checkpoint handling, downloads, and compatibility.
📊 Key Changes
- 🧩 New Hailo inference backend
- Adds lazy HailoRT support for Ultralytics-exported HEF model directories.
- Supports YOLOv8, YOLO11, and YOLO26 detection outputs.
- Automatically converts Hailo NMS results and decodes YOLO26’s NMS-free outputs.
-
Enables commands such as: ```python from ultralytics import YOLO
model = YOLO("yolo11n_hailo_model") results = model.predict("image.jpg") ```
-
Adds Hailo backend documentation and removes outdated warnings and manual post-processing instructions.
-
Requires HailoRT on the target device and the exported directory’s
metadata.yamlfile. -
🧠 Lower training memory usage
- Reduces semantic segmentation target construction memory substantially, with measured temporary usage dropping from about 525 MB to 136 MB.
- Optimizes dense-dataset target assignment, reducing peak assigner memory from about 1.52 GB to 0.89 GB in the reported test.
-
These changes can make training large or densely annotated datasets, such as Objects365, more practical on GPUs with limited VRAM.
-
☁️ More reliable Platform checkpoint uploads
- Successful periodic checkpoint uploads are now recorded by Ultralytics Platform.
- Uploads remain asynchronous during training, while the final upload continues to wait safely for earlier uploads.
-
Checkpoints are associated with the correct server-issued training run, helping Platform maintain the canonical
best.pt. -
🔗 Improved download and redirect handling
- Uses the existing
requestsdependency for URL checks and downloads. -
HTTP 308 redirects now work reliably on older Python versions, including Python 3.8–3.10, without adding a custom
urllibcompatibility layer. -
🐍 Better Python 3.13 checkpoint compatibility
- Restricted checkpoint loading now recognizes both native and stable public
pathlibpath names. -
This prevents failures when checkpoints are created under one Python version or operating system and loaded under another.
-
🛠️ CI and documentation maintenance
- All workflows now use Ultralytics’ shared retried
setup-uvaction. - Dataset license URLs are deduplicated through shared metadata.
- Corrects LVIS class 666 from
manager/throughto the accuratemanger/trough. - Makes exporter output show prediction and validation commands only for formats with supported inference backends.
🎯 Purpose & Impact
- Hailo users can now use a more familiar Ultralytics workflow for exported edge models instead of manually integrating HailoRT output parsing. This simplifies deployment on Hailo hardware, although HailoRT installation and compatible hardware are still required.
- YOLO26 deployment is more streamlined, as its one-to-one, NMS-free outputs are decoded automatically by the Hailo backend.
- GPU training may require less VRAM, particularly for segmentation and dense detection datasets, enabling larger batch sizes or higher-resolution training in some environments.
- Ultralytics Platform training runs become more dependable, with fewer risks of stale or untracked checkpoint uploads.
- Downloads and model loading are more cross-version compatible, improving reliability for users on older Python releases and Python 3.13.
- Overall, this release strengthens deployment, training efficiency, and infrastructure reliability without changing existing model outputs.
What's Changed
- Fix Hailo post-export guidance by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/25245
- Deduplicate canonical dataset license URLs by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/25249
- Fix misspelled LVIS class 666 to
manger/troughby @Y-T-G in https://github.com/ultralytics/ultralytics/pull/25233 - Use shared setup-uv action everywhere by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/25251
- Reduce semantic segmentation target memory in v8SegmentationLoss by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/25244
- Reduce TaskAlignedAssigner peak memory on dense datasets by @Y-T-G in https://github.com/ultralytics/ultralytics/pull/25240
- Fix HTTP 308 redirect handling in safe_download on Python <=3.10 by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/25252
- Revert HTTP 308 urllib backport by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/25256
- Fix stale buffer lists in the
profile_opsmemory-envelope comment by @JESUSROYETH in https://github.com/ultralytics/ultralytics/pull/25235 - Use requests for redirecting downloads by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/25257
- Record successful Platform checkpoint uploads by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/25255
- Fix Python 3.13 pathlib checkpoint loading by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/25258
- Add Hailo inference backend by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/25247
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.98...v8.4.99