pypi ultralytics 8.4.99
v8.4.99 - Add Hailo inference backend (#25247)

8 hours ago

🌟 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:
      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.yaml file.
  • 🧠 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 requests dependency 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 urllib compatibility layer.
  • 🐍 Better Python 3.13 checkpoint compatibility

    • Restricted checkpoint loading now recognizes both native and stable public pathlib path 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-uv action.
    • Dataset license URLs are deduplicated through shared metadata.
    • Corrects LVIS class 666 from manager/through to the accurate manger/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

Full Changelog: v8.4.98...v8.4.99

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.