๐ Summary
This release brings important improvements to YOLO tracking reliability, grayscale image support, dataset path handling, and model export stability. It also enhances code quality, test coverage, and user experience across Ultralytics tools. ๐
๐ Key Changes
- Tracking & Feature Extraction
- Fixed duplicated feature extraction hooks in YOLO tracking when re-identification (ReID) is used, preventing memory leaks and ensuring hooks are properly managed.
- Grayscale Image Support
- Improved handling of grayscale (single-channel) images in video streams, screenshots, tracking, and data augmentation, making workflows more robust and compatible.
- Dataset Path Resolution
- Enhanced dataset loading to search for YAML dataset paths relative to the current directory, reducing user errors and making dataset configuration more intuitive.
- Model Loading & Export
- Improved loading of pretrained weights, especially for custom or multi-channel models.
- Restricted ONNX export to versions below 1.18.0 to prevent compatibility issues.
- Temporarily removed INT8 quantization support for Rockchip RKNN exports to reflect current capabilities.
- Solutions & Testing
- Simplified and improved class-wise object counting and AI Gym workout tracking for multi-person scenarios.
- Added and expanded automated tests for results export formats and CLI solution modes.
- Other Improvements
- Cleaned up log messages for a more professional appearance.
- Set timeouts for Conda jobs in CI to prevent indefinite runs.
๐ฏ Purpose & Impact
- ๐ก๏ธ More Reliable Tracking: Prevents memory leaks and stale hooks in tracking, especially with BoT-SORT and ReID, resulting in smoother, more stable tracking for users.
- ๐ค Expanded Compatibility: Enables seamless processing of grayscale images and videos, supporting a wider range of cameras and datasets.
- ๐งญ Easier Dataset Setup: Users can now specify dataset paths more intuitively, reducing setup errors and frustration.
- ๐๏ธ Stable Model Export: Ensures ONNX and RKNN exports work reliably, avoiding known issues with unsupported versions or features.
- ๐งโ๐คโ๐ง Better Multi-Person Solutions: More accurate and robust tracking of individual workout progress and object counts in crowded scenes.
- ๐งช Higher Quality Assurance: Broader and deeper automated testing means users can trust that new features and export options work as expected.
- โจ Cleaner User Experience: Professional log messages and improved CI processes contribute to a smoother, more predictable experience for both users and developers.
Overall, this update makes Ultralytics tools more robust, user-friendly, and compatible with a wider range of workflows and environments. ๐๐ค
What's Changed
- Search relative YAML dataset paths in training by @Y-T-G in #20607
- Fix pretrained weights loading for first convolution layer by @Laughing-q in #20603
- Pin
onnx>=1.12.0,<1.18.0
in pyproject.toml by @glenn-jocher in #20608 - Temporarily disable Rockchip RKNN INT8 export support by @lakshanthad in #20609
- Remove emoji for
LOGGER.info
into_sql
method andsecurity-alarm
solution by @RizwanMunawar in #20619 - Add timeout for Conda CI to early stop extended runs by @lakshanthad in #20623
- Use
defaultdict
for classwise object counting by @RizwanMunawar in #20632 - Add
to_sql
andto_html
in pyteststest_results
method by @RizwanMunawar in #20635 - Replace list-based state tracking with
defaultdict
inAIGym
by @RizwanMunawar in #20633 - Add tests for solutions CLI examples by @RizwanMunawar in #20637
- Fix
grayscale
models tracking on videos by @Laughing-q in #20634 - Fix
copy_paste
for grayscale images by @Laughing-q in #20636 ultralytics 8.3.134
Fix ReID duplicated hooks whenpersist
isFalse
by @Y-T-G in #20618
Full Changelog: v8.3.133...v8.3.134