pypi ultralytics 8.4.97
v8.4.97 - Add direct Hailo HEF export (#25231)

latest release: 8.4.98
4 hours ago

🌟 Summary

🚀 Ultralytics 8.4.97 adds direct Hailo HEF export, making it much easier to compile YOLOv8, YOLO11, and YOLO26 detection models for Hailo edge accelerators while also delivering several export fixes, inference improvements, and documentation updates.

📊 Key Changes

  • Direct Hailo HEF export

    • Added model.export(format="hailo") and the equivalent CLI command.
    • Supports Hailo-8, Hailo-8L, Hailo-10H, Hailo-15H, and Hailo-15L.
    • Supports standard YOLOv8, YOLO11, and YOLO26 detection models, including custom detection models.
    • Automatically generates parser settings, calibration data, HailoRT post-processing, metadata, and the final .hef file.
    • YOLOv8 and YOLO11 exports use HailoRT NMS, while YOLO26 retains its NMS-free output path.
    • Replaces the previous lengthy manual ONNX-to-DFC workflow with Python, CLI, and Ultralytics Platform workflows.
    • Hailo exports are INT8-only and recommend at least 1,024 representative calibration images for production accuracy.
    from ultralytics import YOLO
    
    model = YOLO("yolo11n.pt")
    model.export(format="hailo", name="hailo8l", data="my_dataset.yaml")
  • CoreML export reliability improvements

    • Embedded CoreML NMS is now restricted to object detection models.
    • Segmentation and pose exports automatically disable incompatible NMS settings with a warning.
    • CoreML NMS exports now preserve class names and other model metadata.
    • NMS-based ML Program exports default to FP16 when no precision is specified, helping maintain Xcode Preview and Neural Engine compatibility.
  • Inference and export bug fixes

    • Fixed TorchScript segmentation inference crashes caused by tensors being split between CPU and GPU.
    • save_crop=True now reliably writes crops even when save, save_txt, and show are disabled.
    • Reduced GPU-to-CPU synchronization overhead in Results.plot(), improving visualization performance for detection, segmentation, and pose results.
    • Restored the user-selected torch.compile() mode, including max-autotune.
    • Fixed custom PyTorch modules whose fuse() method does not accept Ultralytics-specific arguments.
    • INT8 calibration now correctly validates the requested dataset split.
    • Albumentations spatial transforms now correctly transform semantic masks.
    • YOLOE-Seg visual-prompt training no longer crashes when using end-to-end loss settings.
    • Dataset downloads now respect HTTP_PROXY and HTTPS_PROXY environment variables.
  • Deployment and ecosystem updates

    • LiteRT is now used in new export examples, while the historical TFLite guide is clearly marked deprecated.
    • Added ROS2 rclpy examples alongside the existing ROS1 workflow.
    • Updated Jetson TensorRT documentation with device-specific export targets and clearer engine portability warnings.
    • Added verified creator and license metadata across dataset documentation.
    • Refreshed the documentation homepage around common user goals, including training, prediction, deployment, tracking, and the Ultralytics Platform.
    • Updated OpenVINO benchmark references to version 2026.2.1.
    • Updated Slack GitHub Actions used by release and CI workflows.

🎯 Purpose & Impact

  • Simpler Hailo deployment: Users can now move from a trained YOLO model to a deployable Hailo HEF with one supported export command instead of manually managing ONNX graphs, end nodes, model scripts, and NMS configuration.
  • 🎯 Better edge accuracy: Automatic calibration handling and the recommendation to use representative datasets help reduce accuracy loss from INT8 quantization.
  • 🧩 Broader hardware coverage: Direct export supports multiple Hailo accelerator generations, while Ultralytics Platform provides a convenient alternative when local Hailo compiler dependencies are unavailable.
  • 🍎 More dependable CoreML models: Detection exports retain NMS behavior and metadata, while non-detection models avoid unsupported pipelines.
  • 🚄 Faster visualization: Results.plot() now performs fewer per-box and per-keypoint device synchronizations, which can improve rendering performance on GPU workloads.
  • 🛠️ More predictable workflows: Fixes to calibration splits, proxy-aware downloads, TorchScript devices, crop saving, and custom module fusion address failures that could otherwise be confusing or silent.
  • 📚 Improved accessibility: Updated documentation makes it easier for both new and experienced users to train, export, and deploy Ultralytics models across Hailo, Jetson, ROS2, LiteRT, CoreML, and other platforms.

What's Changed

New Contributors

Full Changelog: v8.4.96...v8.4.97

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.