๐ Summary
This release brings enhanced loss function customization for advanced model training, improved export options, clearer documentation, and several usability and performance upgrades across the Ultralytics ecosystem. ๐
๐ Key Changes
- Customizable Loss Functions: Added
gamma
andalpha
parameters to FocalLoss and VarifocalLoss, allowing users to better handle class imbalance and focus on hard-to-classify examples. - YOLOE Model Naming Consistency: Updated all YOLOE references and documentation to use the latest YOLO11-based naming (e.g.,
yoloe-11s-seg.pt
), making it easier to select and use the correct models. - TorchScript Export Enhancement: Added support for exporting models in half-precision (
half
argument) for TorchScript, improving performance on compatible hardware. - Improved Non-Max Suppression (NMS): Fixed class filtering logic in NMS to ensure more accurate and reliable detection results when filtering by class.
- Export Flexibility: Introduced explicit control over bounding box output format (xyxy vs. xywh) during export, reducing confusion and making integration with deployment environments smoother.
- Ultralytics Solutions Label Customization: Added options to show/hide labels and confidence scores in Solutions modules, with a unified label formatting method for consistent output.
- Docker Image Update: Upgraded the base Docker image to PyTorch 2.7.0 for better compatibility and performance.
- Documentation Improvements: Refined docstrings, clarified return types, and updated code examples for better developer experience.
- Security Upgrade: Set GitHub workflow permissions to read-only for improved CI/CD security.
๐ฏ Purpose & Impact
- Greater Training Flexibility: Fine-tune loss function behavior to address challenging datasets, leading to potentially better model accuracy and robustness.
- Easier Model Selection: Consistent YOLOE naming reduces user confusion and errors in both code and documentation.
- Faster, Leaner Exports: Half-precision TorchScript exports enable faster inference and lower memory usage, especially on modern GPUs.
- More Reliable Detections: Improved NMS and class filtering logic ensure users get accurate results when working with specific object classes.
- Seamless Deployment: Explicit bounding box format control and Docker updates make it easier to deploy models in diverse environments.
- Customizable Visual Outputs: Solutions users can now tailor label and confidence display to their needs, enhancing presentation and clarity.
- Better Developer Experience: Improved documentation and code clarity help both new and experienced users work more efficiently.
- Enhanced Security: Workflow permission changes follow best practices, reducing risk in automated processes.
This update is packed with improvements for both model developers and end users, making Ultralytics tools more powerful, flexible, and user-friendly. ๐กโจ
What's Changed
- Update
Tuple
return type annotations indocstrings
by @RizwanMunawar in #20274 - Fix YOLOE usage in
model.py
by @RizwanMunawar in #20321 - Fix
non_max_suppression
when applyingclasses
argument by @RizwanMunawar in #20322 - Add
half
argument to Torchscript export allowlist by @seungjlee in #20313 - Add
show_conf
andshow_labels
for Solutions by @RizwanMunawar in #20282 - FROM pytorch/pytorch:2.7.0-cuda12.6-cudnn9-runtime by @glenn-jocher in #20335
- Remove redundant coordinate conversions for
nms=True
by @Y-T-G in #20334 - Add workflow-level CI permissions for security by @glenn-jocher in #20336
ultralytics 8.3.116
RTDETR VarifocalLossgamma
andalpha
parameterization by @pow3rpi in #20292
New Contributors
- @seungjlee made their first contribution in #20313
- @pow3rpi made their first contribution in #20292
Full Changelog: v8.3.115...v8.3.116