๐ Summary
Ultralytics v8.4.21 improves reliability for Rockchip RKNN exports (main change) and also adds better tuning isolation, expanded C++ pose example support, and clearer YOLO26 optimizer guidance. ๐
๐ Key Changes
-
โ Main priority (PR #23806 by @Laughing-q): RKNN export path fix
- RKNN filename generation was refactored to use safer path handling (
Path(...).stem) instead of fragile string replacement. - Export output naming is now cleaner and more consistent, especially for unusual file names/paths.
- Version bumped from 8.4.20 โ 8.4.21.
- RKNN filename generation was refactored to use safer path handling (
-
๐งช Ray Tune reliability improvement (PR #23793 by @Y-T-G)
- Each hyperparameter trial now resets trainer state (
trainer = None) before running. - Prevents stale state leakage between trials.
- Each hyperparameter trial now resets trainer state (
-
๐ง ONNXRuntime C++ example gains pose support for YOLOv8-family pose models (PR #23786 by @chendao12138)
- Adds pose tensor parsing, keypoint decoding/scaling, NMS for pose results, and visualization.
- Supports FP32 and FP16 in the example pipeline.
- Note: YOLO26 is not yet supported in this specific C++ example flow.
-
๐ YOLO26 training docs improved around MuSGD (PRs #23800, #23804 by @deriiinjv and @monkeyjack123)
- Clearer explanation of when MuSGD is used with
optimizer=auto. - Better practical guidance on when to try MuSGD vs standard options.
- Clearer explanation of when MuSGD is used with
๐ฏ Purpose & Impact
-
For deployment users on Rockchip ๐ฆ
RKNN exports should now fail less often due to naming/path edge cases, making deployment workflows more dependable. -
For ML engineers tuning models ๐
Ray Tune trials are more isolated and reproducible, reducing hard-to-debug inconsistencies. -
For C++/edge developers โ๏ธ
Easier starting point for pose inference in ONNXRuntime C++ projects using YOLOv8-style pose models. -
For YOLO26 trainers ๐ง
Optimizer behavior is easier to understand, helping users make better training choices faster.
What's Changed
- Reset trainer before each trial with Ray Tune by @Y-T-G in #23793
- Add YOLOv8 pose estimation support to ONNXRuntime C++ example by @chendao12138 in #23786
- Docs: Add explanation for when MuSGD optimizer is used by @deriiinjv in #23800
- docs: clarify MuSGD usage in training optimizer guide by @monkeyjack123 in #23804
ultralytics 8.4.21Fix Rockchip RKNN export path by @Laughing-q in #23806
New Contributors
- @deriiinjv made their first contribution in #23800
- @chendao12138 made their first contribution in #23786
- @monkeyjack123 made their first contribution in #23804
Full Changelog: v8.4.20...v8.4.21