New Release: Ultralytics v8.3.190

Ultralytics v8.3.190 β€” Torch-native NMS, faster inference, smoother UX :rocket:

Quick summary: This release delivers a faster, torchvision-free NMS pipeline optimized for YOLO11, plus stability and UX upgrades across CoreML, progress bars, macOS handling, and reproducibility. See the highlights below and check the full details in the Ultralytics v8.3.190 release notes.

YOLO11 remains our latest stable and recommended model for all use cases.

:glowing_star: Highlights

  • Torch-native NMS in ultralytics/utils/nms.py speeds up post-processing on CPU and GPU, removing the hard dependency on torchvision.ops.nms.
  • Cleaner AutoBackend(model=...) API with unified PyTorch loading and safer no-grad defaults.
  • CoreML inference reliability via a coremltools>=8.0 gate and clear logging.
  • Better progress bars (ETA, stable rate), faster startup (DNS-based connectivity checks), and improved reproducibility with Git commit hashes in checkpoints.

:new_button: New Features

  • PyTorch-native NMS for YOLO:
    • Exact-match TorchNMS.nms and vectorized TorchNMS.fast_nms.
    • Refactored non_max_suppression with rotated NMS support via fast_nms + batch_probiou.
    • Updated imports across predict, val, examples to from ultralytics.utils import nms.
    • OBB pipelines and exporter use TorchNMS.fast_nms for rotated boxes.

:gear: Improvements

  • AutoBackend API cleanup:
    • Renamed parameter to model= for consistency and to avoid duplicate memory usage.
    • Unified handling for in-memory torch.nn.Module and .pt files; gradients disabled by default.
    • Clearer CoreML logging and version gating.
  • Platform performance and stability:
    • Safe reintroduction of in-place ops (sigmoid_(), clamp_()) on non-macOS 14 systems.
    • New MACOS14/NOT_MACOS14 flags to handle Apple MPS quirks.
  • Faster, cleaner startup:
    • DNS-based connectivity checks for quicker, more reliable startup.
    • Heavy imports (e.g., requests, psutil, HUB utils) scoped to runtime to reduce import overhead.
  • Geometry and data handling:
    • Robust shape handling for HW/HWC paths, clarified padding logic, fewer redundant index ops.
  • UX and docs:
    • TQDM now shows ETA, stable rates, and a clearer final state.
    • Docs/scripts/datasets migrate to subprocess.run(...) for safer command execution.
  • Reproducibility and CI:
    • Trainer saves git_commit in checkpoints, with cached utils.get_git_commit().
    • CI runs for PRs targeting any branch, speeding up feedback.

:lady_beetle: Bug Fixes

  • OBB logging corrected for clearer prediction info.

:package: Quick Start and Examples

  • Upgrade to the latest release:
    pip install -U ultralytics
    
  • Use the new NMS utilities:
    from ultralytics.utils import nms
    
    # preds: [B, C+4(+M), N]
    out = nms.non_max_suppression(preds, conf_thres=0.25, iou_thres=0.45)
    
  • Updated AutoBackend parameter:
    from ultralytics.nn.autobackend import AutoBackend
    
    model = AutoBackend(model="yolo11n.pt", device="cuda")
    
  • Ensure CoreML tools are up-to-date:
    pip install -U "coremltools>=8.0"
    

:magnifying_glass_tilted_left: What’s Changed (PRs)

:raising_hands: New Contributor

We welcome a new contributor to the project: @Bovey0809, whose first contribution landed in PR #21836: Save git commit hash in checkpoints. Thank you!

:megaphone: Try it and share feedback

Upgrade to v8.3.190 and let us know how the torch-native NMS and platform improvements work for you. You can review everything in the full changelog comparing v8.3.189 β†’ v8.3.190 and continue the conversation in Ultralytics Discussions. Your feedback helps the community and the team keep improving YOLO for everyone.