pypi ultralytics 8.4.89
v8.4.89 - Fix 2D grayscale NumPy array prediction on color models (#24751)

3 hours ago

๐ŸŒŸ Summary

Ultralytics v8.4.89 improves prediction reliability for grayscale NumPy images, adds several important edge-case fixes, and makes training, benchmarking, AI Gym, and release publishing more robust ๐Ÿš€

๐Ÿ“Š Key Changes

  • ๐Ÿ–ผ๏ธ Fixed 2D grayscale NumPy prediction on color models by @maxime2476

    • Raw grayscale NumPy arrays shaped like (H, W) are now expanded correctly for 3-channel color models.
    • This makes NumPy inputs behave consistently with PIL images and file paths.
    • Prevents PyTorch channel mismatch crashes during prediction.
  • ๐Ÿ‹๏ธ Fixed AI Gym result alignment by @SuperMarioYL

    • workout_count, workout_stage, and workout_angle now only report currently visible tracked people.
    • Results now stay aligned with total_tracks, avoiding stale data from people who already left the frame.
  • โšก Improved multi-GPU training performance by @ExtReMLapin

    • Distributed training now uses broadcast_buffers=False by default.
    • This can reduce unnecessary GPU synchronization overhead, especially on non-NVLink systems or high-resolution training.
  • ๐Ÿงช Improved benchmark usability by @zhanghuiwan and @raimbekovm

    • Benchmark format values are now case-insensitive, so inputs like ONNX or TensorRT work as expected.
    • Benchmark docs now include the eps argument and clarify standalone benchmark() defaults, including model="yolo26n.pt" and imgsz=160.
  • ๐ŸŒ Fixed YOLOE and YOLO-World CLI class parsing by @ahmet-f-gumustas

    • Class names passed through the CLI now strip extra whitespace.
    • For example, classes="person, bus" now becomes ["person", "bus"] instead of ["person", " bus"].
  • ๐Ÿ”— Fixed signed model URL suffix validation by @diaz3z

    • URLs like model.pt?token=abc now pass .pt suffix checks correctly.
    • This improves compatibility with private or authenticated model downloads.
  • ๐Ÿ“ Fixed segment2box() for objects on the left image edge by @bujna94

    • Segments where all x-coordinates are 0 are no longer incorrectly dropped.
    • This improves bounding box generation for objects touching the image border.
  • ๐Ÿงฉ Improved installation reliability by @Nailujj

    • Excludes the known problematic opencv-python==4.13.0.90 package.
    • Helps avoid OpenCV-related crashes in environments such as Databricks.
  • ๐Ÿ› ๏ธ Hardened release publishing workflow by @glenn-jocher

    • Manual recovery runs are now safer after partial release failures.
    • Existing PyPI artifacts and release uploads are handled more gracefully.
    • Slack notifications now wait for publishing and SBOM generation to finish.

๐ŸŽฏ Purpose & Impact

  • โœ… More reliable inference inputs
    Users can now pass grayscale NumPy arrays directly to standard color YOLO models without manual channel conversion.

  • ๐Ÿ”„ More consistent behavior across input types
    NumPy, PIL, and file-based grayscale images are now normalized more consistently before prediction.

  • ๐Ÿš€ Better distributed training efficiency
    Multi-GPU users may see reduced synchronization bottlenecks, especially in bandwidth-limited setups.

  • ๐Ÿ“Š Clearer and more forgiving benchmarking
    Benchmark workflows are easier to use, with fewer avoidable errors from capitalization or undocumented defaults.

  • ๐Ÿ‹๏ธ Cleaner AI Gym analytics
    Workout tracking outputs are easier to consume because per-person lists now match the people currently visible in the frame.

  • ๐Ÿ” Better support for real-world deployment workflows
    Signed URLs and managed Python environments are handled more reliably, reducing friction for cloud and enterprise users.

  • ๐Ÿงช Stronger regression coverage
    New tests protect the grayscale NumPy fix, signed URL handling, segment2box() border behavior, and CLI class parsing from future regressions.

What's Changed

New Contributors

Full Changelog: v8.4.88...v8.4.89

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.