pypi ultralytics 8.4.154
v8.4.154 - Fix CoreML dynamic anchor export and static multi-image inference, release 8.4.154 (#26199)

5 hours ago

🌟 Summary

v8.4.154 improves CoreML export and inference reliability, restores accurate RT-DETR INT8 deployment, reduces training overhead, and strengthens dataset and Platform workflows. πŸš€

πŸ“Š Key Changes

  • πŸ› οΈ CoreML dynamic export fixed β€” PR #26199

    • YOLO detection, segmentation, pose, and OBB models can now export with dynamic=True without triggering a coremltools arange conversion error.
    • Static CoreML models now correctly process batches of multiple images instead of running inference only on the first image.
    • Supports proper output stacking for raw predictions, embedded NMS, segmentation, and classification models.
    • CoreML export documentation now clarifies restrictions for dynamic inputs, NMS, classification, RT-DETR, and batch sizes.
  • ⚑ RT-DETR OpenVINO INT8 export repaired

    • Keeps the RT-DETR decoder in floating point while applying NNCF transformer-aware quantization.
    • Reported RT-DETR-L accuracy improved from approximately 0.0002 to 0.6513 mAP50-95, with nearly unchanged CPU inference speed.
  • 🏎️ Faster training, especially on GPUs

    • Avoids unnecessary memory initialization, activation copies, host-device synchronization, and repeated EMA state reconstruction.
    • Enables fused Adam and AdamW optimizers where supported.
    • A measured YOLO26x COCO training step on a B200 GPU improved from 228.9 ms to 183.5 msβ€”about a 1.25Γ— speedup in that test environment.
  • 🧠 More memory-efficient SAM3 mask processing

    • Large semantic masks are upscaled in bounded chunks rather than all at once.
    • This prevents multi-gigabyte temporary allocations while preserving mask results.
  • 🎯 Classification validation now prevents class-index mistakes

    • Validation and training splits are aligned to the model’s class names instead of relying on each folder’s local alphabetical ordering.
    • Classes missing from the model are skipped with a warning, preventing silently incorrect accuracy and model-selection metrics.
  • πŸ“‘ Platform training callbacks now use the Platform SDK

    • Replaces duplicated raw HTTP and retry logic with the generated SDK.
    • Adds controlled POST retries while preserving authentication handling, cancellation, checkpoint signing, payload sanitization, and quiet console-error behavior.
    • Requires ultralytics-platform>=0.1.45.
  • βœ… Clearer dataset and validation checks

    • Segment datasets now reject box-only labels or mismatched polygon and box counts.
    • Pose validation reports an actionable error when kpt_shape is missing, including when stale label caches are present.
    • save_json=True now reports small-, medium-, and large-object mAP on detection datasets using faster-coco-eval.
    • Training resume behavior is documented: the checkpoint dataset is restored unless an explicit data= override is provided.
  • 🌐 Platform workflow and documentation updates

    • Documents semantic PNG mask imports, similar-image search, generated image variations, model moves between projects, remembered training settings, and verified dataset uploads.
    • Clarifies API rate limits, exact dataset slugs, upload integrity checks, and CoreML limitations.

🎯 Purpose & Impact

  • Apple users can export and run models more reliably with dynamic CoreML inputs and multi-image inference now functioning as expected. 🍎
  • Deployment accuracy improves for RT-DETR on Intel hardware, making OpenVINO INT8 a more practical option.
  • GPU training can be faster and more efficient, particularly for larger workloads, although the reported speedup was measured on a specific B200 setup and may vary by hardware.
  • Large-image SAM3 workloads use less peak memory, reducing the risk of out-of-memory errors.
  • Classification metrics become trustworthy when train, validation, and test folders contain different class sets.
  • Dataset and pose errors are easier to diagnose, reducing time spent tracking down malformed labels or configuration issues.
  • Platform training integrations are more maintainable and resilient through centralized SDK behavior and configurable retries. πŸ”’

What's Changed

  • Use Platform SDK for training callbacks by @JaviChulvi in #26190
  • Document segment label rejection, resume data override, size mAP with save_json and CoreML dynamic limits by @raimbekovm in #26198
  • Upscale SAM3 semantic masks in memory-bounded chunks by @BSchilperoort in #26200
  • Fix RT-DETR OpenVINO INT8 export by keeping its decoder float and quantizing with NNCF by @onuralpszr in #26191
  • Mirror the trainer's missing-kpt_shape error in standalone pose val by @cainiao33 in #26193
  • Document Platform similar image search, mask import, model moves and verified uploads by @raimbekovm in #26195
  • [perf] yolo26x COCO training on B200: 228.9 to 183.5 ms per step at 1 GPU, mostly from deterministic mode filling every new tensor by @TarzanZhao in #26180
  • Fix silent wrong-class scoring when classification split classes differ from the model by @cainiao33 in #26192
  • Fix CoreML dynamic anchor export and static multi-image inference, release 8.4.154 by @raimbekovm in #26199

New Contributors

Full Changelog: v8.4.153...v8.4.154

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.