pypi ultralytics 8.4.31
v8.4.31 - `ultralytics 8.4.31` INT8 calibration with non-square `imgsz` (#24028)

4 hours ago

🌟 Summary

Ultralytics v8.4.31 is a reliability-focused release that mainly fixes INT8 export calibration for non-square image sizes (the headline change), while also improving training stability, export maintainability, and documentation for deployment and dataset workflows πŸš€

πŸ“Š Key Changes

  • πŸ”₯ Main update (PR #24028 by @Y-T-G): INT8 calibration now works correctly with non-square imgsz

    • Fixes export calibration for commands like imgsz=640,480 with int8.
    • Affects multiple export targets: OpenVINO, TFLite, TensorRT engine, and IMX.
    • Calibration now uses the correct effective size and preserves rectangular shape during preprocessing (LetterBox behavior fixed).
  • 🧩 Export system refactor (PR #23914 by @onuralpszr)

    • Export logic was split from one large file into per-format utility modules (torchscript, openvino, coreml, ncnn, mnn, paddle, rknn, axelera, etc.).
    • No major user-facing CLI change, but big internal cleanup for maintainability.
  • 🍎 Apple Silicon stability improvement (PR #24038 by @Y-T-G)

    • More aggressive memory clearing on MPS devices to reduce leak-related OOM issues during train/val.
  • πŸ“¦ Better auto-batch with multi-scale (PR #24051 by @glenn-jocher)

    • Auto batch-size estimation now accounts for larger effective image sizes when multi_scale is enabled.
  • πŸ“š Docs and usability upgrades

  • πŸ› οΈ CI and environment robustness

    • CI runner migration to ubuntu-latest and Codecov v6 updates.
    • Added PyTorch 2.11.0 + Torchvision 0.26.0 slow-test coverage.
    • EdgeTPU install command improved for non-interactive environments (--no-tty).
  • βœ… Dataset conversion validation tightening (PR #24031 by @glenn-jocher)

    • Non-classification NDJSONβ†’YOLO conversion now expects a val split (instead of allowing test as substitute).

🎯 Purpose & Impact

  • Most important impact: users exporting INT8 models with rectangular inputs should see far fewer calibration mismatches and export failures βœ…
  • Deployment confidence improves across common edge/runtime formats (OpenVINO, TFLite, TensorRT, IMX) with non-square pipelines πŸ“ˆ
  • Training becomes more reliable on Apple Silicon and with multi-scale auto-batch settings πŸ’ͺ
  • Developer velocity increases thanks to cleaner export architecture, which should make future exporter fixes/features faster and safer 🧠
  • Onboarding gets easier through clearer guides (especially COCO conversion and YOLO26 training best practices), helping both new and advanced users get productive faster πŸ“˜βœ¨

What's Changed

Full Changelog: v8.4.30...v8.4.31

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.