pypi ultralytics 8.4.135
v8.4.135 - Respect dataset object counts when selecting max_det (#25993)

7 hours ago

🌟 Summary

v8.4.135 improves detection reliability by adapting max_det to dataset object counts and standardizing dataset fraction handling.

πŸ“Š Key Changes

  • πŸš€ Smarter max_det selection for detection, segmentation, pose, and OBB tasks

    • Training and validation now inspect the largest number of labeled objects found in a single image.
    • If the default max_det is too low, it is automatically increased to match the observed dataset maximum.
    • User-specified max_det values are preserved, but a warning is shown when they may limit validation recall.
    • The resolved value is propagated to native end-to-end model heads before validation, improving consistency for NMS-free models.
  • ⚠️ Clearer warnings for object-count mismatches

    • Users are notified when images contain more objects than max_det allows.
    • Warnings explain that a low limit can cap recall and produce misleading validation metrics.
    • Increasing max_det may increase validation cost, and cannot exceed the model or export format’s own capacity.
  • πŸ“ Consistent fraction boundary behavior

    • fraction=1 and fraction=1.0 now both mean β€œuse the full dataset.”
    • Integers greater than 1 continue to represent an image count.
    • 0 and 0.0 remain available for skipping an optional test split.
    • Training and validation splits must still contain at least one image.
    • Boolean values such as fraction=True are now rejected instead of being interpreted ambiguously.
  • πŸ“š Documentation and validation updates

    • Training, export, and cloud-training documentation now describe the normalized fraction semantics.
    • Additional tests cover configuration validation, dataset conversion, concatenated datasets, training pipelines, and end-to-end detection behavior.

🎯 Purpose & Impact

  • βœ… More trustworthy validation: Large-object-count images are less likely to be truncated by an unnoticed default limit.
  • πŸ“ˆ Better recall measurement: Automatically matching max_det to observed data helps prevent artificially low validation recall.
  • 🧩 More predictable configuration: Dataset behavior no longer depends on whether a serializer writes 1 as an integer or 1.0 as a float.
  • πŸ› οΈ Safer user overrides: Custom max_det settings continue to work, with warnings when they may restrict results.
  • ⚑ Potential performance trade-off: A higher detection limit can increase validation and inference post-processing cost, while model or deployment-format limits may still cap the maximum number of predictions.

What's Changed

Full Changelog: v8.4.134...v8.4.135

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.