pypi ultralytics 8.4.124
v8.4.124 - Restore dynamic image sizes for NMS exports (#25874)

3 hours ago

🌟 Summary

🚀 Ultralytics v8.4.124 restores reliable dynamic-size inference for exports with embedded NMS, while improving training stability, deployment compatibility, performance, and documentation.

📊 Key Changes

  • Dynamic NMS exports restored — PR #25874

    • ONNX, OpenVINO, and TensorRT exports with dynamic=True and nms=True once again support runtime image heights and widths.
    • Exported NMS now consistently respects the configured max_det limit instead of using the number of anchors from the export image size.
    • NMS coordinate normalization now uses the actual input dimensions at inference time.
    • Dynamic ONNX OBB exports are padded appropriately so candidate selection is not limited by the traced image size.
    • The existing export test matrix remains unchanged, preserving broad backend coverage.
  • Improved CoreML attention export

    • CoreML mlprogram exports now use a more compatible attention implementation to avoid GPU compilation crashes on recent Apple systems.
    • This is scoped to CoreML export and does not alter normal model execution.
  • More efficient RT-DETR training and TensorRT inference

    • RT-DETR denoising queries are capped at the configured query budget, preventing dense images from causing excessive memory use.
    • RT-DETR TensorRT Top-K processing now uses grouped selection for faster candidate filtering.
  • Training reliability fixes

    • Resumed training now preserves the weights from the checkpoint instead of accidentally reloading the original pretrained weights.
    • Training seeds now reach dataloader workers, making different seeds produce different augmentation and sampling sequences while preserving reproducibility.
    • Dataset construction no longer mutates shared training configuration values.
    • Deterministic training settings are always cleared when training finishes or fails.
    • AutoBatch now raises a clear error when no tested batch size fits, rather than silently falling back to an unrelated default.
  • Prediction and result-processing improvements

    • Reusing a model for predict() or track() no longer carries filters such as classes, max_det, or NMS settings into later calls.
    • GPU-to-CPU transfers in Results.save_txt(), save_crop(), and summary() are consolidated, reducing per-object synchronization overhead.
    • Segmentation mask encoding now transfers data to the CPU more efficiently.
    • Depth tensor inputs now use the expected BGR image order.
    • Coordinate restoration now handles stretched, nonuniform resizing correctly.
  • Export and platform updates

    • ONNX INT8 export uses less peak memory by releasing intermediate graphs earlier.
    • TensorRT dynamic optimization profiles now handle dynamic input dimensions more safely.
    • macOS dependency constraints avoid affected NumPy releases associated with Accelerate warnings.
    • Platform documentation now describes depth datasets, depth-map viewing, training requirements, and updated workflow behavior.
    • Hailo documentation now reflects current hardware names, AI HAT+ support, compiler generations, precision notes, and fixed-shape deployment requirements.
    • Tracking documentation now identifies TrackTrack as the default tracker for documented workflows.
    • CoreML documentation includes an updated YOLO26 INT8 deployment tutorial.

🎯 Purpose & Impact

  • More dependable deployment across input sizes 📐 — Dynamic exported models can process images at runtime sizes without silently bypassing confidence filtering or the max_det limit.
  • Correcter detections and coordinates 🎯 — Runtime-aware normalization and nonuniform scaling fixes help ensure boxes, keypoints, and OBB predictions remain accurately positioned.
  • Lower memory use and faster execution ⚡ — RT-DETR query capping, grouped Top-K selection, consolidated GPU transfers, and improved ONNX memory handling benefit both training and inference.
  • Safer long-running workflows 🔁 — Reused prediction models, resumed training, seeded dataloaders, and deterministic settings now behave more predictably.
  • Better edge and Apple deployment 🍎📦 — CoreML and Hailo export guidance and compatibility improvements make it easier to move YOLO models to supported hardware.
  • Clearer user guidance 📚 — Updated documentation better reflects actual defaults, supported tasks, deployment limitations, and Platform workflows.

What's Changed

New Contributors

Full Changelog: v8.4.123...v8.4.124

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.