pypi ultralytics 8.3.216
v8.3.216 - `ultralytics 8.3.216` Faster `Annotator` mask plotting (#22419)

latest release: 8.3.217
2 days ago

🌟 Summary

Ultralytics 8.3.216 speeds up and stabilizes segmentation mask rendering, improves pose keypoint metadata handling, and enhances checkpoint loading compatibility across PyTorch versions. βš‘πŸ–ΌοΈπŸ§©

πŸ“Š Key Changes

  • Faster and more reliable mask plotting in the Annotator and Plotter

    • Refactored mask handling and tensor ops for efficient blending and correct device usage.
    • Proper upscaling and padding removal when retina_masks=False using ops.scale_masks.
    • Safer mask processing in ops.process_mask with broadcasted ratios and named arguments.
    • Early exits and streamlined conversions for improved performance.
    • PR: Faster Annotator mask plotting (#22419), Optimize box downsampling for Segment models (#22417)
  • Pose models: keypoint names metadata (kpt_names) support end-to-end

    • Dataset YAMLs updated with human, dog, hand, and tiger keypoint names.
    • Trainer attaches model.kpt_names; exporter saves kpt_names into model metadata.
    • AutoBackend can parse kpt_names for downstream use and exports.
    • PR: Support keypoint names metadata for pose models (#22411)
  • More compatible checkpoint loading for SAM/SAM 2

    • Uses torch.load(..., weights_only=False) when supported, with safe fallback for older PyTorch.
    • Reduces unexpected keyword errors and deprecation warnings across environments.
    • PR: Include weights_only parameter in torch.load (#22421)
  • Documentation enhancement

    • Added a visual cover to the Model YAML Configuration guide for clarity.
    • PR: Add cover image for model-yaml-config.md (#22414)

🎯 Purpose & Impact

  • Faster, cleaner segmentation overlays 🎨

    • Users see smoother, more accurate mask visuals with fewer device mismatches and better handling of non-retina masks.
    • Reduced overhead and improved stability for real-time and notebook visualizations.
  • Better pose model usability πŸ•Ί

    • Human-readable keypoint names seamlessly flow from datasets β†’ training β†’ exports β†’ inference, making results interpretation and downstream tooling easier.
    • Minimal code to use:
      from ultralytics import YOLO
      model = YOLO("yolo11n-pose.pt")
      print(model.kpt_names)
  • More robust model loading 🧠

    • SAM/SAM 2 checkpoints load reliably across PyTorch versions, decreasing friction during setup and deployment.
  • Improved learning experience πŸ“š

    • The YAML guide’s cover image helps newcomers and experts quickly grasp model configuration structure.

Version bump: 8.3.215 β†’ 8.3.216. πŸš€

What's Changed

Full Changelog: v8.3.215...v8.3.216

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.