π Summary
v8.4.119 improves Intel NPU classification performance with OpenVINO, strengthens detection and tracking reliability, expands Platform integration, and refreshes documentation and developer tooling. π
π Key Changes
-
β‘ OpenVINO NPU_TURBO for classification
- Enables
NPU_TURBOautomatically for classification models running on supported Intel NPU devices. - Applies only when the device advertises support, preserving existing behavior for other tasks, devices, and drivers.
- Measured classification latency improvements of approximately 42β52% on an Intel Core Ultra 9 185H, with bit-identical accuracy across tested configurations.
- Turbo mode is intentionally limited to classification because larger image sizes showed little benefit and could consume unnecessary power.
- Enables
-
π Platform SDK exposed from
ultralytics- Python 3.11+ users can access
Platform,AsyncPlatform,APIError, andAPIConnectionErrordirectly from the main package. - Imports are lazy, so the SDK is loaded only when needed.
- Python 3.8β3.10 users receive a clear compatibility message when requesting Platform exports.
- Python 3.11+ users can access
-
π°οΈ More efficient Platform training callbacks
- Subsequent metrics, telemetry, and model uploads now reuse the registered model ID instead of repeatedly resolving project and model names.
- Reduces internal Platform traffic and improves reliability during long training runs.
-
π‘οΈ Improved tracking robustness
- BYTETracker now ignores detections with zero or negative width or height before creating tracks, preventing invalid Kalman filter states.
- Kalman filter operations were simplified to use direct slicing instead of unnecessary matrix operations.
- Removed redundant array copies in multi-object tracking paths.
-
π― Safer detection export postprocessing
- Detection top-k selection is now limited to the number of available anchors.
- Prevents export failures on very small input sizes while preserving normal behavior for standard inputs.
-
π§© Corrected CopyPaste augmentation probability
- The
CopyPastetransform now respects its configured probability in flip mode. - Previously, eligible images could receive the augmentation unconditionally.
- The
-
π Documentation and usability updates
- Updated supported-task banners to cover all seven supported tasks, including semantic segmentation and depth estimation.
- Added the
Cmd/Ctrl+Deleteimage-deletion shortcut to the Platform annotation guide. - Added a YOLO26 LiteRT export and mobile deployment tutorial video.
- Restored light, dark, and system theme controls in the documentation.
- Removed documentation embeds that did not render correctly on the live site.
- Improved ASCII string checks using Pythonβs built-in string operation for faster annotation rendering.
-
π§° CI maintenance
- Updated the self-hosted runner cleanup action used across several CI jobs.
π― Purpose & Impact
- π Faster edge inference: Supported Intel NPU users running classification models should see substantially lower latency without sacrificing accuracy.
- π Better power awareness: Restricting turbo mode to classification avoids enabling a potentially costly optimization where it provides little practical benefit.
- π€ Simpler Platform development: Python 3.11+ applications can use Platform SDK functionality through familiar top-level
ultralyticsimports. - π More reliable training runs: Model ID reuse reduces repeated lookup work and supports smoother metric streaming and checkpoint uploads.
- π‘οΈ Fewer runtime and export failures: Invalid tracking boxes and small-input detection exports are handled safely instead of producing corrupted states or indexing errors.
- ποΈ More predictable augmentation: CopyPaste now behaves according to its documented probability setting.
- π Improved user experience: Refreshed documentation, working theme controls, clearer task coverage, and better Platform guidance make the ecosystem easier to use for both new and experienced users.
What's Changed
- Update supported tasks banner by @raimbekovm in #25788
- Document Platform image delete shortcut by @glenn-jocher in #25791
- Use model IDs for Platform training callbacks by @glenn-jocher in #25793
- Bump eviden-actions/clean-self-hosted-runner from v1.4.36 to v1.4.37 in /.github/workflows by @UltralyticsAssistant in #25797
- Add https://youtu.be/FmgrfmZlhpY to docs by @RizwanMunawar in #25795
- Expose Platform SDK from ultralytics by @glenn-jocher in #25800
- Restore dark theme palette in docs configuration by @onuralpszr in #25802
- Replace the per-character
is_asciiloop withstr.isascii()by @raimbekovm in #25801 - Remove the two docs embeds that do not render on the live site by @raimbekovm in #25792
- fix: add probability guard to CopyPaste in flip mode by @Rahulbiradar9 in #25796
- Clamp detection top-k to available anchors by @Dorablank in #25771
- Replace selection-matrix matmuls with direct slicing in the Kalman filter by @JESUSROYETH in #25770
- Reject zero/negative-height detections before track creation in
BYTETrackerby @JESUSROYETH in #25769 - Enable OpenVINO NPU_TURBO for classification models on supported NPUs by @synml in #25784
New Contributors
- @Dorablank made their first contribution in #25771
Full Changelog: v8.4.118...v8.4.119