pypi ultralytics 8.4.78
v8.4.78 - Remove scipy from core dependencies (#24927)

5 hours ago

🌟 Summary

Ultralytics v8.4.78 is mainly a lightweighting and usability release πŸš€β€”the biggest change removes SciPy from core dependencies, making installs smaller and simpler with no expected behavior changes, while docs were also improved for region counting, predictor argument persistence, and site navigation.

πŸ“Š Key Changes

  • Removed SciPy from core dependencies πŸͺΆ

    • PR #24927 by @glenn-jocher replaces the remaining SciPy-based operations with NumPy-based equivalents.
    • This includes an internal replacement for linear_sum_assignment, used in important matching logic across:
      • RT-DETR
      • SAM / mask matching
      • validation
      • tracking utilities
    • The new implementation was validated against SciPy to machine precision, so this is intended as a drop-in change without functional differences.
  • Smaller and cleaner installation footprint πŸ“¦

    • Since SciPy was one of the heaviest required packages, removing it reduces the base install size noticeably.
    • This can make setup faster and easier, especially in constrained or cloud environments.
  • Region counting documentation was reworked 🎯

    • PR #24816 by @raimbekovm refreshes the RegionCounter guide around actual usage.
    • It now better explains:
      • how region counting works frame by frame
      • how to define one or multiple regions
      • how to access counts in code
      • the difference between live occupancy and cumulative counting
  • Clarified model.embed() / predictor argument persistence πŸ“

    • PR #24926 by @raimbekovm adds an important note that a loaded model may reuse the same predictor across calls.
    • This means arguments like embed can persist unexpectedly unless reset, such as with embed=None.
  • Large documentation link cleanup across the docs site πŸ”—

    • PR #24915 by @raimbekovm converts many internal docs links from absolute URLs to relative links.
    • This helps docs work better in:
      • local builds
      • GitHub previews
      • translated/localized documentation

🎯 Purpose & Impact

  • Easier installs for everyone ⚑

    • Removing SciPy lowers dependency weight, which can help users install Ultralytics faster and with fewer environment issues.
  • Better portability and deployment 🌍

    • Smaller dependencies are especially useful for CI, Docker images, edge devices, notebooks, and cloud workflows.
  • No intended model behavior changes βœ…

    • The SciPy removal is an infrastructure improvement, not a model redesign, so users should get the same results with a leaner package.
  • Improved reliability for advanced workflows πŸ€–

    • Because the replaced matching logic is used in areas like RT-DETR, SAM, tracking, and validation, this update keeps those features working while reducing external dependency burden.
  • Fewer documentation gotchas πŸ“š

    • The updated RegionCounter guide should make multi-zone counting easier to understand and adopt.
    • The predictor persistence note may save users from confusing behavior when mixing model.embed() and model.predict().
  • Better docs experience across languages and previews 🌐

    • Relative linking improves navigation and helps non-English readers stay within the correct localized docs flow.

Overall, v8.4.78 is a quality-of-life release πŸ’‘: lighter installs, cleaner internals, and clearer documentation, with the SciPy removal being the standout improvement.

What's Changed

Full Changelog: v8.4.77...v8.4.78

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.