🌟 Summary
This release introduces enhanced support for handling class imbalance with Focal Loss, improves data augmentation reliability, updates documentation, and modernizes core dependencies for a smoother user experience. ⚖️🚀
📊 Key Changes
- Focal Loss Multi-Class Support: Focal Loss now accepts both single and per-class weighting, allowing more precise control over class imbalance during training.
- CutMix Augmentation Fix: Corrected label selection logic in CutMix to prevent errors when mixing images with no valid labels.
- Augmentation Documentation Update: Improved guides for CutMix and CopyPaste, with clearer explanations and dynamic argument tables.
- Download Reliability: The system now checks if
curlis installed before using it for downloads, reducing potential errors. - TensorRT Export Calibration: Switched INT8 calibration from "Entropy" to "MinMax" for better hardware compatibility.
- Python 3.12 Support: Continuous integration and testing now use Python 3.12, ensuring compatibility with the latest Python features.
- OpenVINO INT8 Export: Improved dependency handling for smoother INT8 model exports.
🎯 Purpose & Impact
- Better Model Training: Users can now address class imbalance more effectively, especially on datasets with uneven class distributions, leading to potentially improved model accuracy.
- Increased Reliability: Fixes and safeguards in data augmentation prevent crashes and ensure smoother training workflows.
- Easier Learning: Updated documentation makes it simpler for users to understand and configure advanced augmentations.
- Seamless Experience: Improved download logic and dependency management reduce setup issues and errors across different environments.
- Future-Proofing: Upgrading to Python 3.12 and updating export processes ensures long-term compatibility and stability.
Overall, this update brings greater flexibility, reliability, and clarity to both new and advanced Ultralytics users. 🌟
What's Changed
- Update Cutmix augmentation docs by @picsalex in #20425
- Fix CutMix augmentation by @Laughing-q in #20420
- Check if
curlis installed before use by @glenn-jocher in #20426 - Use
MINMAX_CALIBRATIONalgo for TensorRT int8 calibration by @Laughing-q in #20345 - Update CI to Python 3.12 by @glenn-jocher in #20366
ultralytics 8.3.121Add FocalLoss multi-class support by @pow3rpi in #20388
Full Changelog: v8.3.120...v8.3.121