pypi ultralytics 8.4.114
v8.4.114 - Surface Platform error messages and stop the console-output retry loop (#25581)

3 hours ago

🌟 Summary

v8.4.114 improves reliability across Platform workflows, exported models, validation, edge inference, and advanced vision tasksβ€”while delivering clearer errors and faster, more robust execution. πŸš€

πŸ“Š Key Changes

  • Clearer Ultralytics Platform errors and quieter retries β€” PR #25581 by @glenn-jocher:

    • Platform URI resolution now uses GET instead of HEAD, preserving the detailed error messages returned by the Platform.
    • API errors such as invalid credentials, inaccessible datasets, and malformed pose labels now include actionable details.
    • Console-output upload failures no longer create a feedback loop where logged retry warnings trigger additional failed uploads.
    • Platform requests now stop early when no API key is available, and invalid credentials disable further attempts.
  • Improved exported-model validation:

    • Static ONNX, TensorRT, OpenVINO, and similar models now automatically reuse the image size stored in export metadata.
    • Users no longer need to manually provide the exact export imgsz during validation. βœ…
  • More reliable model export and deployment:

    • Fixed GPU device mismatches during TorchScript inference by ensuring generated anchors follow the runtime device.
    • Prompt-free YOLOE exports now work correctly with NCNN and Paddle formats.
    • Loading a TorchScript archive as if it were a PyTorch checkpoint now produces a clearer error message.
    • Paddle export compatibility was improved for newer Python and x2paddle environments.
  • Faster LiteRT CPU inference:

    • LiteRT now uses the configured number of CPU threads, enabling multi-core inference.
    • Raspberry Pi 5 LiteRT benchmarks were corrected for YOLO26n and YOLO26s, showing substantially lower latency than previously reported. ⚑
  • Fixes for SAM3, visualization, and pose rendering:

    • SAM3 semantic prediction now defines the required mask threshold and avoids an AttributeError.
    • Class activation maps safely handle class IDs outside a model’s output range.
    • Pose keypoints and limbs located exactly on image borders are now rendered correctly instead of being silently dropped.
  • Improved training and data pipelines:

    • BGR augmentation now applies correctly to semantic segmentation and depth training.
    • Distributed validation no longer crashes when the total batch size exceeds the number of validation images.
    • Dataset YAML validation handles empty names fields more safely.
    • Analytics line charts now accumulate counts across the configured update window instead of resetting every frame.
  • Documentation and maintenance updates:

    • Added missing validation documentation for channels_last.
    • Documented class remapping and depth-loss training parameters.
    • Updated augmentation support tables for semantic and depth tasks.
    • Fixed Intel DL Streamer installation links and similarity-search examples.
    • Removed several redundant regression tests to reduce test-suite maintenance overhead. πŸ“š

🎯 Purpose & Impact

  • πŸ› οΈ Faster troubleshooting: Platform failures now explain what went wrong, helping users fix dataset, authorization, and configuration issues without repeated trial and error.
  • πŸ” More stable automation: Console logging will no longer feed failed messages back into Platform upload retries, reducing noisy logs and unnecessary network traffic.
  • βœ… Simpler validation: Exported models can generally be validated without manually matching their original image size and batch settings.
  • πŸš€ Better edge performance: Multi-core LiteRT support can significantly improve CPU inference speed on devices such as Raspberry Pi 5.
  • πŸ“¦ Broader deployment compatibility: TorchScript, NCNN, Paddle, and other export paths are more dependable across devices and Python environments.
  • 🎯 More robust vision workflows: SAM3, pose visualization, CAM generation, depth, semantic segmentation, and distributed validation now handle common edge cases more gracefully.
  • πŸ“– Clearer documentation: Users can more easily discover supported arguments and follow current Intel and similarity-search setup instructions.

What's Changed

  • Enable multi-core Google LiteRT CPU inference by @lakshanthad in #25562
  • Update Raspberry Pi 5 benchmarks with Google LiteRT using multi-cores by @lakshanthad in #25564
  • Fix AttributeError on mask_threshold in SAM3 semantic prediction by @JESUSROYETH in #25563
  • Fix installation guide links in Intel DL Streamer documentation by @onuralpszr in #25574
  • Remove tests added alongside small bug-fix PRs by @Laughing-q in #25578
  • Reuse imgsz from export metadata when validating static exported models by @synml in #25559
  • Document channels_last in the validation args table by @synml in #25561
  • Apply the bgr augmentation to semantic and depth training by @raimbekovm in #25580
  • Fix IndexError in class_activation_map with out-of-range classes by @leoventuroso in #25582
  • Fix Annotator.kpts() dropping keypoints and limbs on image borders by @JESUSROYETH in #25565
  • Fix: Analytics line chart total_counts resets before update_graph consumes it by @Zenka737 in #25567
  • Fix NCNN and Paddle export of prompt-free YOLOE models by @Y-T-G in #25568
  • Fix DDP error when total batch size is higher than validation images by @Y-T-G in #25576
  • Document depth loss gains and attribute semantic and depth in the argument tables by @raimbekovm in #25577
  • fix Python syntax error in similarity-search solution by @RizwanMunawar in #25579
  • Fix TorchScript GPU inference device mismatch by @Y-T-G in #25569
  • Surface Platform error messages and stop the console-output retry loop by @glenn-jocher in #25581

New Contributors

Full Changelog: v8.4.113...v8.4.114

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.