pypi ultralytics 8.4.146
v8.4.146 - Fix RT-DETR inference for small and dynamic inputs (#26120)

3 hours ago

๐ŸŒŸ Summary

Ultralytics v8.4.146 improves RT-DETR reliability across small inputs, dynamic exports, and tracking, while updating export portability, Windows training behavior, data downloads, and GPU container environments. ๐Ÿš€

๐Ÿ“Š Key Changes

  • ๐Ÿ› ๏ธ RT-DETR inference fixes

    • Prevents failures when small images produce fewer anchors than the configured query count.
    • Keeps query counts, denoising masks, and learned query embeddings consistent.
    • Preserves the correct detection limit in dynamic ONNX and OpenVINO exports.
    • Makes RT-DETR tracking compatible with TrackTrack by avoiding an unsupported NMS recovery argument.
    • Validated across image sizes from 32 to 640 pixels, TorchScript, CoreML, ONNX, OpenVINO, training, validation, and tracking.
  • ๐Ÿ“ฆ More device-agnostic TorchScript exports

    • Removes hard-coded device assumptions from export-time tensor creation.
    • TorchScript models exported on CUDA or Apple MPS can now be loaded and used on other devices, such as CPU.
    • Fixes dynamic RT-DETR export behavior so bounding boxes remain correct at sizes different from the export size.
  • ๐ŸŽฏ Improved FP16 embedded-NMS inference

    • Converts end-to-end NMS output rows to float32.
    • Prevents segmentation, pose, and OBB FP16 exports from failing during mask or box processing.
  • ๐ŸชŸ Better Windows CUDA training defaults

    • Stops automatically enabling channels_last memory format on Windows, where it could significantly reduce performance.
    • Users can still explicitly enable it with channels_last=True.
  • ๐ŸŒ More reliable NDJSON image downloads

    • Replaces the previous 30-second total timeout with connection and socket-inactivity timeouts.
    • Large images on slow or shared connections are less likely to fail while downloading.
  • ๐Ÿณ Updated GPU and export environments

    • AMD64 GPU images now use PyTorch 2.14 with CUDA 13.2.
    • NVIDIA ARM64 images move to NVIDIA PyTorch 26.08 with CUDA 13.4 and updated ONNX Runtime GPU support.
    • GPU runner images now include g++ for compiled training workflows and TensorRT for CUDA 13.
    • LiteRT remains in the Python export image because its current dependencies are not compatible with PyTorch 2.14.
    • Conda Docker builds now use conda-forge PyTorch 2.13, torchvision 0.28, and CUDA 13.0.
  • ๐Ÿงช CI and maintenance updates

    • Restores the GPU CI workflow while keeping it temporarily disabled through an explicit condition.
    • Adds disk cleanup before isolated export setup.
    • Updates documentation for CUDA 13, JetPack, TensorRT, DLA, Conda images, and export compatibility.
    • Bumps the package version from 8.4.145 to 8.4.146.

๐ŸŽฏ Purpose & Impact

  • Greater RT-DETR stability: Small images and dynamically sized inputs should no longer trigger query or anchor-related inference failures. โœ…
  • More dependable deployment: Models exported on one accelerator can be used on another device more reliably, reducing device-specific TorchScript issues.
  • Safer FP16 workflows: Embedded-NMS exports for segmentation, pose, and OBB models now handle post-processing without dtype errors.
  • Faster Windows training in common cases: Windows CUDA users avoid an automatic memory layout optimization that was measured to slow training substantially.
  • Improved dataset conversion reliability: Large NDJSON image downloads can complete on constrained networks instead of repeatedly stopping at a total timeout.
  • Clearer GPU compatibility requirements: CUDA 13 containers may not support older Maxwell, Pascal, or Volta GPUs, and Jetson users must match TensorRT versions to their JetPack release.
  • Deployment caution: The updated GPU images require compatible NVIDIA host drivers, and TensorRT engines should be rebuilt or validated when the GPU, CUDA, TensorRT, or JetPack environment changes.

What's Changed

  • Update GPU Docker images to current PyTorch and CUDA releases by @glenn-jocher in #26115
  • Restore GPU CI with a temporary disable condition by @glenn-jocher in #26119
  • Time NDJSON image downloads by socket inactivity instead of a 30 s total deadline by @raimbekovm in #26113
  • Keep TorchScript exports device-agnostic by @raimbekovm in #26118
  • Cast end-to-end NMS rows to float32 so FP16 exports with embedded NMS decode segment masks by @raimbekovm in #26114
  • Skip channels_last auto-enable on Windows CUDA training by @Y-T-G in #26105
  • Fix RT-DETR inference for small and dynamic inputs by @glenn-jocher in #26120

Full Changelog: v8.4.145...v8.4.146

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.