Releases: ultralytics/ultralytics
v8.2.45 - `ultralytics 8.2.45` Fix YOLOv8 `augment` inference (#14017)
🌟 Summary
Ultralytics v8.2.45 enhances model training guidance and prediction functionalities.
📊 Key Changes
-
Documentation Enhancements:
- Improved explanations in model training tips including batch size adjustment, early stopping, and training environments.
- Consistent use of contractions for a more conversational tone.
-
Code Updates:
- Updated model prediction test to include an augmentation parameter.
- Small enhancement to internal model prediction function to check for 'end2end' attribute.
-
Contributor Update:
- Added a new contributor to the repository (
zhixuwei
).
- Added a new contributor to the repository (
🎯 Purpose & Impact
-
Documentation Clarity 💡:
- Purpose: Simplifies complex training concepts for better user understanding.
- Impact: Users can more easily optimize their model training, leading to better model performance and resource utilization.
-
Enhanced Testing ✅:
- Purpose: Ensures robustness in handling batch predictions with image augmentations.
- Impact: Enhances the reliability of prediction outputs, providing users with more dependable results.
-
Inclusivity & Acknowledgment 🌐:
- Purpose: Update contributor list, recognizing ongoing community support.
- Impact: Encourages more community contributions by fostering a welcoming environment.
What's Changed
ultralytics 8.2.45
Fix YOLOv8augment
inference by @Laughing-q in #14017
Full Changelog: v8.2.44...v8.2.45
v8.2.44 - `ultralytics 8.2.44` Increase Predict dataloader robustness (#14005)
🌟 Summary
The v8.2.44 release focuses on enhancing model training documentation, improving data loader error handling, and adding new model training tips.
📊 Key Changes
- GitHub Actions: Simplified workflow triggers by removing unnecessary push events.
- Documentation Updates:
- Added a new guide titled "Tips for Model Training" with extensive best practices and optimization strategies.
- Enhanced various sections by including more detailed instructions and formatting adjustments.
- Source Code Improvements:
- Improved image read error handling in data loaders by changing from raising errors to logging warnings.
- Added detailed docstrings and typing annotations in the plotting methods for better code readability and maintenance.
🎯 Purpose & Impact
- Improved Documentation:
- 🎓 The new model training tips guide provides comprehensive strategies for efficient training, benefiting both beginners and experienced users.
- 📚 Detailed and structured documentation enhances learning and application of YOLO models, helping users achieve better results.
- Better Error Handling:
- 🚀 Improved error handling in data loaders ensures smooth execution, making the system more robust against corrupt or missing image files.
- 🔍 Logging warnings instead of raising errors allows the training process to continue, minimizing interruptions and saving users’ time.
- Enhanced Code Quality:
- 🛠️ Improved documentations and added typing in the source code, leading to easier maintenance and better developer experience.
These updates collectively aim to streamline the user experience, boost model performance, and ensure more robust and reliable training workflows.
What's Changed
- Added a
max_size
parameter to theplot_images
function by @bobyard-com in #14002 - Add Tips for Model Training Docs Page by @abirami-vina in #14011
ultralytics 8.2.44
Increase Predict dataloader robustness by @zhixuwei in #14005
New Contributors
Full Changelog: v8.2.43...v8.2.44
v8.2.43 - `ultralytics 8.2.43` enable `classes` filter for end2end models (#13971)
🌟 Summary
Ultralytics has released version 8.2.43, bringing in improvements and new additions mostly focused on predictive functionality and innovative ways to process and display predictions.
📊 Key Changes
- Install Requirements Update: Added
pytest-cov
to the pip install command. - Prediction Enhancements:
- Added augment settings (
save_txt
,save_crop
,augment
) in model prediction. - Improved handling of augmented predictions and warnings for unsupported configurations.
- Added augment settings (
- Non-Max Suppression: Introduced
rotated
parameter for Oriented Bounding Boxes (OBB). - Mask Processing: Adjusted threshold for mask processing from
0.5
to0.0
. - Label Positioning:
- Enhanced text label fitting and positioning to ensure labels don't overlap or extend beyond image boundaries.
🎯 Purpose & Impact
- More Robust Testing: Including
pytest-cov
enhances code testing with better coverage reporting, leading to more reliable software. - Enhanced Prediction Flexibility: New augment settings in
model.predict
facilitate more detailed and varied output, aiding in diverse application scenarios. - ** Warning Visibility**: Clearer warning messages provide better understanding about what functionalities are or aren't supported, reducing user confusion.
- Optimized Non-Max Suppression: The
rotated
parameter enables better handling of complex bounding boxes, extending model applicability. - Accurate Mask Processing: Adjusting the mask threshold ensures all relevant masks are considered, improving accuracy in image segmentation tasks.
- Clearer Visualization: Improvements to label positioning prevent overlaps and ensure that labels are displayed properly, making visual outputs more readable and professional.
These updates collectively enhance the usability, accuracy, and robustness of the Ultralytics software, benefiting both developers and end-users. 🚀🔍
v8.2.42 - `ultralytics 8.2.42` NVIDIA TensorRT 10 default (#13943)
🌟 Summary
Release v8.2.42
of Ultralytics brings several critical updates to enhance the performance, security, and flexibility of the YOLO models, including Dockerfile improvements, support for OpenVINO C++ inference, and improved package dependencies.
📊 Key Changes
- Dockerfile Updates:
- PyTorch CUDA version updated from 2.2.2 to 2.3.1.
- Package installation improvements, switching
nvidia-tensorrt
totensorrt
. - Added
unzip
package for better compatibility.
- YOLOv10 Documentation:
- Enhanced examples with Python and CLI commands for better usability.
- OpenVINO Integration:
- Added support for YOLOv8 inference in C++ using OpenVINO and OpenCV APIs, complete with build instructions and usage examples.
- Dependency Management:
- Updated dependency checks and installations to ensure compatibility with the latest packages.
- Improved handling of TensorRT and other dependencies in different environments.
- Bug Fixes & Enhancements:
- Fixes for the loss function computation to handle bounding boxes correctly.
🎯 Purpose & Impact
- Improved Performance:
- Upgrading to PyTorch 2.3.1 with updated packages will leverage the latest performance and security enhancements.
- Better Compatibility:
- Adding the
unzip
package and refining package installations improves overall compatibility and setup processes on various systems.
- Adding the
- Developer Flexibility:
- The addition of the YOLOv8 OpenVINO C++ examples allows developers to integrate and leverage powerful YOLO models in their C++ projects, offering more flexibility and performance tuning options.
- Enhanced Usability:
- Detailed documentation for running YOLOv10 models via Python and CLI facilitates ease of use for both new and experienced users.
- Security and Stability:
- Ensuring that all packages are up-to-date reduces the risk of vulnerabilities and promotes more stable deployments.
This release is a significant step towards making the YOLO models more robust, easier to use, and performant in various environments. 🚀
What's Changed
- Add YOLOv8 OpenVINO C++ Inference example by @rlggyp in #13839
- Ultralytics TensorRT10 update by @glenn-jocher in #13933
- Dockerfile FROM
pytorch/pytorch:2.3.1-cuda12.1-cudnn8-runtime
by @glenn-jocher in #13937 - Add CLI commands for
predict
andtrain
YOLOv10 models. by @RizwanMunawar in #13940 ultralytics 8.2.42
NVIDIA TensorRT 10 default by @glenn-jocher in #13943
New Contributors
Full Changelog: v8.2.41...v8.2.42
v8.2.41 - `ultralytics 8.2.41` fix HUB unzip subdirectory bug (#13913)
🌟 Summary
Ultralytics v8.2.41 brings several optimizations and dependency updates, ensuring smoother performance and better compatibility.
📊 Key Changes
- Updated documentation images for better clarity and relevance.
- Adjusted
numpy
dependency to support versions>=1.23.5, <2.0.0
. - Removed some optional development dependencies (e.g.,
check-manifest
,pre-commit
). - Updated
hub-sdk
dependency to>=0.0.8
for improved Ultralytics HUB model integration. - Added
torch_distributed_zero_first
decorator in training to enhance distributed training by avoiding duplicate dataset downloads. - Improved session creation logic in
HUBTrainingSession
for better authentication handling and user guidance.
🎯 Purpose & Impact
- Enhanced Documentation: 📚 The updated images in the ROS Quickstart guide make it easier for users to follow along with clear visuals.
- Expanded Compatibility: 🔄 By tweaking the
numpy
dependency range, users experience fewer compatibility issues, ensuring the software runs smoothly across more environments. - Streamlined Development Environment: 🛠️ The removal of certain optional development dependencies helps to simplify the development setup, reducing potential setup issues for developers.
- Improved Model Integration: 🧩 The updated
hub-sdk
version and authentication improvements ensure that users have a smoother experience when interacting with Ultralytics HUB models, boosting overall productivity. - Optimized Distributed Training: 🚀 The addition of the
torch_distributed_zero_first
decorator helps prevent redundant dataset downloads during distributed training, saving time and resources. - Better User Guidance: 🔍 Enhanced session creation logic provides clearer warnings and instructions, ensuring that users can effectively resolve authentication issues with Ultralytics HUB.
These updates collectively ensure more efficient, stable, and user-friendly performance for both developers and non-expert users working with Ultralytics projects.
What's Changed
- Adjust
numpy<2.0.0
compatibility by @glenn-jocher in #13906 - Fix HUB session with DDP training by @Laughing-q in #13103
- Compress ROS Guide Images by @RizwanMunawar in #13914
ultralytics 8.2.41
fix HUB unzip subdirectory bug by @glenn-jocher in #13913
Full Changelog: v8.2.40...v8.2.41
v8.2.40 - `ultralytics 8.2.40` refactor HUB code into callbacks (#13896)
🌟 Summary
The v8.2.40 release of Ultralytics includes improvements and fixes aimed at enhancing the workflow for model training and documentation processes.
📊 Key Changes
- GitHub Actions Workflow: Added
git pull
command to ensure the latest branch state before making changes. - Documentation Updates: Minor spelling corrections and new callback documentation.
- Model and HUB Session Updates: Refined session management in
HUBTrainingSession
and imported it directly inmodel.py
.
🎯 Purpose & Impact
- Smoother CI Process: By pulling the latest branch state before committing, the continuous integration (CI) setup becomes more reliable, minimizing the risk of conflicts.
- Enhanced Documentation: Correction of spelling and addition of missing callbacks ensures that the documentation is more accurate and comprehensive for users.
- Improved HUB Interactions: The refactoring of
HUBTrainingSession
simplifies code, ensures robust session creation, and addresses possible issues with unauthenticated sessions, which should make the training process on the Ultralytics HUB more seamless and error-free.
These changes collectively aim to enhance the user experience by making the system more reliable and easier to use, especially for model training and collaboration on the Ultralytics HUB. 🚀
What's Changed
ultralytics 8.2.40
refactor HUB code into callbacks by @glenn-jocher in #13896
Full Changelog: v8.2.39...v8.2.40
v8.2.39 - `ultralytics 8.2.39` update `onnxslim>=0.1.31` (#13883)
🌟 Summary (v8.2.39 Release)
The latest release v8.2.39
from Ultralytics includes optimizations and updates across various files to enhance the overall functionality and performance.
📊 Key Changes
-
Documentation Updates:
- Updated links across the documentation to use consistent URLs, replacing shortened links with full URLs for better readability and maintenance.
- Added embedded YouTube video to the SAHI documentation for enhanced user guidance.
-
Code Optimization and Fixes:
- Adjusted layer configurations in
yolov8-p6.yaml
for more detailed memory and parameter utilization. - Refined data augmentation and normalization operations for classification tasks in
augment.py
. - Simplified code structure by replacing multiple
+=
operations withappend()
for clarity and performance. - Updated
exporter.py
dependencies for ONNX, ensuring compatibility with the latest versions and enhancements in export capabilities. - Improved segmentation handling and label generation in
converter.py
. - Enhanced model configuration handling for ROS integration and temporary module management.
- Adjusted layer configurations in
🎯 Purpose & Impact
-
Improved Documentation:
- Ensures that users have direct and clear access to resources and guidance, enhancing overall user experience.
- Video content helps users better understand complex processes visually.
-
Enhanced Model Configuration and Exports:
- Updated dependencies and configuration adjustments ensure that models utilize resources efficiently, improving performance metrics like GFLOPs and parameter counts.
- Optimized augmentation routines and classification tasks lead to faster and more accurate model training and predictions.
-
Code Maintenance and Clarity:
- Codebase improvements, such as using
append()
over+=
, make the code easier to read and maintain. - Better structure and handling of transformations and temporary modules prevent potential runtime errors and streamline development.
- Codebase improvements, such as using
These updates collectively ensure that the Ultralytics framework remains robust, user-friendly, and optimal for various AI and machine learning applications. 🚀
What's Changed
- Code refactor https://ultralytics.com/actions by @glenn-jocher in #13844
- ROS Quickstart, fixed code formatting by @ambitious-octopus in #13855
- Replace
+=
with faster list.append()
by @Kayzwer in #13849 - Fix ambiguous variable names by @glenn-jocher in #13864
- Add https://youtu.be/tq3FU_QczxE to docs by @RizwanMunawar in #13867
- Update yolov8-p6.yaml with model parameters and GFLOPs by @glenn-jocher in #13862
- Fix HUB link https://ultralytics.com/hub by @glenn-jocher in #13884
ultralytics 8.2.39
updateonnxslim>=0.1.31
by @glenn-jocher in #13883
Full Changelog: v8.2.38...v8.2.39
v8.2.38 - `ultralytics 8.2.38` official YOLOv10 support (#13113)
🌟 Summary
Release v8.2.38
introduces YOLOv10 models to the Ultralytics package, alongside enhancements and bug fixes.
📊 Key Changes
- Benchmarking YOLOv10 Models: Added benchmarks for YOLOv10 models.
- YOLOv10 Documentation: Detailed addition of YOLOv10 architecture and usage examples.
- YOLOv10 Support: Added YOLOv10 configurations (
.yaml
files) for different model sizes including YOLOv10n, YOLOv10s, YOLOv10m, YOLOv10l, and YOLOv10x. - New Modules: Introduced new neural network modules (e.g.,
RepVGGDW
,CIB
,C2fCIB
,Attention
,PSA
,SCDown
). - End-to-End Detect (E2EDetect) Loss: Added a new loss function for end-to-end detection.
- Extended Model Exports: Updated exporter configurations and limitations for new YOLOv10 operations.
- Bug Fixes & Optimizations: Addressed various bugs and performance enhancements (e.g., support for different export formats).
🎯 Purpose & Impact
- Improved Object Detection: The introduction of YOLOv10 models ensures optimized real-time object detection with high accuracy and low computational cost, beneficial for both current and future applications.
- Enhanced Flexibility: The addition of new modules and configurations allows users to tailor their models and training pipelines more precisely according to their needs.
- Better Performance: Benchmarking enhancements and end-to-end loss integration ensure more efficient and effective training and inference.
- Comprehensive Documentation: Detailed YOLOv10 documentation facilitates easier adoption and understanding for both new and existing users.
- Expanded Export Options: While not all formats are currently supported, the expanded export options provide more opportunities to deploy models across different platforms efficiently.
🚀 Next Steps
- Users are encouraged to explore the new YOLOv10 models and configurations for enhanced detection capabilities.
- Refer to the updated documentation for detailed guidance on utilizing the new features and modules effectively.
What's Changed
Full Changelog: v8.2.37...v8.2.38
v8.2.37 - `ultralytics 8.2.37` update `temporary_modules` and Remove YOLOv9e `Silence` module (#13819)
🌟 Summary
The v8.2.37
release focuses on enhancing developer experience and documentation consistency, with improvements in the Contributor License Agreement (CLA) workflow, better documentation formatting, and a refined ROS guide.
📊 Key Changes
- CLA Workflow Permissions: Enhancement in the
.github/workflows/cla.yml
with additional permissions and branch handling. - Documentation Formatting:
- Improved indentation and structure in
CONTRIBUTING.md
andREADME.md
. - Updated information and formatting in the Chinese
README
file (README.zh-CN.md
).
- Improved indentation and structure in
- ROS Quickstart Guide: Expanded step-by-step examples and usage scenarios for integrating YOLO with the Robot Operating System (ROS).
- Removed Unused Code:
- Elimination of the unused
Silence
class fromnn/modules/block.py
.
- Elimination of the unused
🎯 Purpose & Impact
- Simplified Contribution Process:
- The updated CLA workflow permissions ensure smoother handling of pull requests and contributions, benefiting both maintainers and contributors.
- Enhanced Documentation Readability:
- Improved indentation and formatting ensure that the documentation is easier to read and navigate, which is particularly helpful for new users and contributors.
- Comprehensive ROS Guide:
- More detailed examples and explanations in the ROS guide help users better understand the steps needed to integrate YOLO with robotics applications, making it easier for developers to implement and debug their systems.
- Codebase Cleanliness:
- The removal of the unused
Silence
class simplifies the codebase, making it more maintainable and reducing potential confusion for developers.
- The removal of the unused
In summary, this release focuses on improving the user and contributor experience through better documentation and workflow enhancements, making it easier for both new and experienced developers to work with the Ultralytics codebase. 🚀
What's Changed
- Update CLA Action by @glenn-jocher in #13831
- Update OpenCV image read error message by @blackhu in #13822
- ROS quickstart Docs page cleanup by @ambitious-octopus in #13835
- Annotator
txt_color
updates by @glenn-jocher in #13842 ultralytics 8.2.37
updatetemporary_modules
and Remove YOLOv9eSilence
module by @Laughing-q in #13819
New Contributors
Full Changelog: v8.2.36...v8.2.37
v8.2.36 - `ultralytics 8.2.36` update Ultralytics color palette (#13808)
🌟 Summary
Release v8.2.36 includes improvements to documentation, code formatting, and new guides for integrating YOLO models with various platforms.
📊 Key Changes
- Updated documentation strings and examples for better readability.
- Minor corrections and additions in the README badges and links.
- Integration guides for ROS and enhancements in existing guides.
- Cleaned up unused imports in several files.
🎯 Purpose & Impact
- Improved Documentation: Enhances clarity and understanding for both new and experienced users by fixing line breaks and providing more detailed examples.
- Enhanced Project Guides: Introduces a new ROS Quickstart guide, helping users integrate YOLO models with the Robot Operating System (ROS) for real-time applications.
- Streamlined Code: Removal of redundant imports and cleaner code formatting to maintain a high standard of code quality and maintainability.
- User-Friendly Experience: Better Badge descriptions in README make it easier to understand the status and integration options available, improving the onboarding experience.