pypi ultralytics 8.4.1
v8.4.1 - `ultralytics 8.4.1` Re-enable NCNN exports for ARM64 (#23211)

latest release: 8.4.2
9 hours ago

🌟 Summary (single-line synopsis)

Ultralytics v8.4.1 brings back NCNN export + inference on ARM64 (Apple Silicon/ARM servers/edge devices) 📱⚙️, plus stability fixes for pose/seg training 🛠️ and a big docs/benchmarks cleanup 📚✨.

📊 Key Changes

  • ✅ NCNN on ARM64 is re-enabled (current PR #23211 by @lakshanthad) 📱
    • Removed ARM64 “hard stop” errors for:
      • NCNN export (ultralytics/engine/exporter.py)
      • NCNN inference (ultralytics/nn/autobackend.py)
      • NCNN benchmarking (ultralytics/utils/benchmarks.py)
    • Added an NCNN safety workaround for end-to-end (NMS-free) heads: when exporting to NCNN, Ultralytics disables the end-to-end branch if present (since NCNN doesn’t support the required TopK behavior) ⚠️🧩
  • 🧠 Training stability improvements (Pose + Segmentation) 🛡️
    • YOLO26 pose loss crash fix: filters NaN/Inf values and clamps extreme pose errors to prevent RLE/RealNVP failures (PR #23205) 🧯
    • Segmentation loss crash fixes: safer proto unpacking and more robust handling when there are no foreground masks (PR #23205 and PR #23197) 🧩
  • 🧪 Export reliability + CI coverage improvements 🔁
    • OpenVINO int8 export fix and TFLite/TensorFlow wrapper refactor (moving decode logic into the TF export wrapper), plus CI “SlowTests” and “RaspberryPi” jobs re-enabled (PR #23185) ✅🍓
  • ⚙️ Inference ergonomics fix
    • model.fuse() is now idempotent (won’t re-fuse an already fused model), reducing wasted time and avoiding potential side effects (PR #23189) 🔧
  • 📚 Docs + benchmark table updates
    • Updated YOLO26 segmentation parameter counts and refreshed YOLO26 pose/OBB metrics across docs/README tables (PRs #23178, #23181, #23192) 📈
    • Many docs now point to YOLO11 blog content (instead of YOLO26 blog links) and various link/image fixes (PR #23212, plus link fixes in #23211) 🔗🖼️
    • Quickstart examples shifted to YOLO26 defaults in the CLI/Python snippets (seen in the diff) 🚀

🎯 Purpose & Impact

  • ARM64 + NCNN users can deploy again 📱🚀
    If you’re exporting to NCNN for mobile/edge/ARM environments, you can now run export, inference, and benchmarks without being blocked by Ultralytics.
  • Fewer training crashes for YOLO26 Pose/Seg 🧠✅
    Better handling of extreme/invalid values means more stable long trainings (especially with small images, tricky batches, or multi-GPU edge cases).
  • More reliable exports + better test coverage 🧪
    Re-enabled CI jobs (including Raspberry Pi) should catch platform-specific issues earlier, improving overall release stability.
  • Clearer, more consistent docs 📚✨
    Updated tables/links reduce confusion when choosing models (YOLO11 vs YOLO26 vs YOLOE-26) and following copy-paste examples.

If you want, tell me your target device (e.g., Raspberry Pi 5, Apple M2, ARM server) and whether you’re exporting YOLO11 or YOLO26, and I’ll suggest the safest export settings for NCNN ⚙️📦.

What's Changed

New Contributors

Full Changelog: v8.4.0...v8.4.1

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.