π Summary
This release (v8.3.162) brings improved reliability and consistency to model loading, enhanced hardware compatibility, and several quality-of-life updates for both developers and users. ππ οΈ
π Key Changes
- **Standardized Model Loading:**
All direct uses of `torch.load` are replaced with Ultralytics' `torch_load` utility, ensuring consistent and robust model file handling throughout the codebase.
- **Improved Device Compatibility:**
Loading of cached text embeddings in YOLOE and YOLO-World now explicitly supports both CPU and GPU, preventing device mismatch errors.
- **Intel Hardware Detection:**
Added a new utility to detect Intel CPUs and GPUs, allowing Ultralytics tools to recommend OpenVINO exports for optimal performance on Intel hardware.
- **Enhanced Metrics Plotting:**
Metric plots for detection, segmentation, and pose tasks now include clearer labeling and improved processing, making evaluation results easier to interpret.
- **Relative Path Support for Grounding Datasets:**
Open-vocabulary model training now supports relative dataset paths, simplifying custom dataset management.
- **CopyPaste Augmentation Fix:**
The CopyPaste augmentation no longer modifies original images in-place, preserving data integrity during training.
- **Dependency Version Pinning:**
The `ai-edge-litert` package is now pinned to versions `>=1.2.0,<1.4.0` to ensure stable TensorFlow SavedModel exports.
- **Optional Typing Stubs:**
Introduced an optional dependency group for typing stubs, improving code completion and static analysis for developers.
- **Assorted Bug Fixes:**
Includes fixes for open-vocabulary evaluation, dataset handling, and minor code improvements.
π― Purpose & Impact
- **Reliability & Consistency:**
By standardizing model loading with `torch_load`, users and developers benefit from fewer bugs and more predictable behavior when working with PyTorch models.
- **Better Hardware Support:**
Users with Intel hardware now receive tailored export recommendations, and device-aware embedding loading prevents frustrating training errors.
- **Improved Usability:**
Clearer metric plots, support for relative dataset paths, and safer augmentations make the platform easier and safer to use for both new and advanced users.
- **Developer Experience:**
Optional typing stubs and codebase improvements enhance code quality, autocompletion, and maintainability.
- **Export Stability:**
Pinning dependencies reduces the risk of export failures, ensuring smoother model conversion workflows.
Overall, v8.3.162 delivers a more robust, user-friendly, and developer-friendly experience across the Ultralytics ecosystem! π
What's Changed
* Optional dependency group for typing stubs by jorenham in https://github.com/ultralytics/ultralytics/pull/21137
* YOLOE: specify device for text embedding cache loading by Laughing-q in https://github.com/ultralytics/ultralytics/pull/21237
* Fix `is_lvis` check for open-vocabulary models evaluation by ImJaewooChoi in https://github.com/ultralytics/ultralytics/pull/21245
* Fix metrics plotting for `Pose` and `Segment` tasks by Laughing-q in https://github.com/ultralytics/ultralytics/pull/21259
* Support intel XPU discovery by ambitious-octopus in https://github.com/ultralytics/ultralytics/pull/21242
* Add `DATASET_DIR` relative path compatibility for grounding datasets by Laughing-q in https://github.com/ultralytics/ultralytics/pull/21256
* Avoid modifying original image during `CopyPaste` augmentation by Y-T-G in https://github.com/ultralytics/ultralytics/pull/21262
* Pin `ai-edge-litert>=1.2.0,<1.4.0` by Laughing-q in https://github.com/ultralytics/ultralytics/pull/21265
* `ultralytics 8.3.162` Replace `torch.load` calls with patched `torch_load` method that defaults to `weights_only=False` by Y-T-G in https://github.com/ultralytics/ultralytics/pull/21260
New Contributors
* jorenham made their first contribution in https://github.com/ultralytics/ultralytics/pull/21137
**Full Changelog**: https://github.com/ultralytics/ultralytics/compare/v8.3.161...v8.3.162