π 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
usingops.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 saveskpt_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)
- Uses
-
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
- Optimize box downsampling for Segment models by @glenn-jocher in #22417
- Change torch.load to include
weights_only
parameter by @glenn-jocher in #22421 - Support keypoint names metadata for pose models by @Y-T-G in #22411
- Add cover image for
model-yaml-config.md
by @RizwanMunawar in #22414 ultralytics 8.3.216
FasterAnnotator
mask plotting by @glenn-jocher in #22419
Full Changelog: v8.3.215...v8.3.216