pypi ultralytics 8.4.142
v8.4.142 - Unify `end2end` under `nms=True|False|None` (#26066)

4 hours ago

🌟 Summary

Ultralytics v8.4.142 unifies YOLO inference and export behavior under the nms option, making it easier to choose between maximum accuracy and NMS-free speed while improving benchmark consistency and deployment documentation.

πŸ“Š Key Changes

  • πŸ”„ Unified end2end into nms

    • nms=None (default) uses the one-to-many head with Ultralytics-managed NMS.
    • nms=True uses the one-to-many head and embeds NMS in supported exports.
    • nms=False selects the one-to-one NMS-free head when available.
    • The legacy end2end argument is deprecated:
      • end2end=True maps to nms=False.
      • end2end=False maps to nms=None, unless explicitly combined with nms=True.
    • Both YOLO26 heads remain trained, while validation, checkpoint selection, and early stopping now follow the selected inference head.
  • πŸ“¦ Improved model fusion and export handling

    • Model fusion now removes the unused detection branch regardless of which inference head is selected.
    • Exported models preserve their native output behavior, while unsupported formats automatically fall back to compatible raw outputs.
    • NMS options are now documented consistently across ONNX, TensorRT, CoreML, OpenVINO, MNN, Ascend, Hailo, and other integrations.
  • πŸ“ More reliable cross-format benchmarks

    • Benchmark validation now uses square inputs consistently across native and exported models.
    • This ensures accuracy and latency comparisons are based on the same preprocessing rather than mixing rectangular and square inputs.
  • πŸ› Training resume fix

    • Resuming training with Albumentations transforms no longer fails when saving arguments to YAML.
    • The fix addresses argument normalization order without changing the training workflow.
  • 🌐 Expanded deployment documentation

    • Added a new guide for deploying Ultralytics models on Luxonis OAK RVC2 and RVC4 cameras.
    • Improved Ambarella CVflow deployment guidance, including SDK compilation, host validation, and Cavalry device deployment.
    • Documented reliable DEEPX SDK installation using the vendor wheel repository.
  • πŸ§ͺ Broader test coverage and maintenance

    • Updated prediction, validation, export, Hailo, and model-head tests for the new nms behavior.
    • Package version updated to 8.4.142.

🎯 Purpose & Impact

  • βœ… Simpler API: One nms setting now controls head selection and export-time NMS across prediction, validation, tracking, benchmarking, and export.
  • 🎯 Better default accuracy: YOLO26 now defaults to the one-to-many head with NMS, which generally provides higher accuracy than the NMS-free one-to-one head.
  • ⚑ Optional lower-latency deployment: Use nms=False when you want NMS-free predictions and a simpler post-processing pipeline.
  • πŸ”§ Easier migration: Existing end2end configurations continue to work through compatibility mapping, but new code should use nms.
  • πŸ“Š Fairer performance comparisons: Cross-format benchmark results are now more meaningful because all formats use matching square validation inputs.
  • 🌍 Wider edge-device support: New and refined documentation makes deployment on Luxonis, Ambarella, DEEPX, Hailo, and other specialized platforms easier to follow.
  • ⚠️ Export consideration: Some runtimes or quantized configurations cannot support NMS-free or embedded-NMS graphs and will fall back to native raw outputs. Check the target integration’s compatibility before deployment.

What's Changed

New Contributors

Full Changelog: v8.4.141...v8.4.142

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.