Skip to content

Releases: ultralytics/ultralytics

v8.3.82 - `ultralytics 8.3.82` ONNX `dynamic` and `half` export (#19464)

02 Mar 09:29
13c5bd5
Compare
Choose a tag to compare

🌟 Summary

Ultralytics v8.3.82 enhances ONNX model export functionality, improves preprocessing for ONNXRuntime examples, and streamlines compatibility across various hardware setups. 🚀

📊 Key Changes

  • ONNX FP16 Export Fix: Introduced a workaround (arange_patch) for exporting ONNX models with both dynamic and half options, avoiding incompatibilities in the PyTorch torch.arange function.
  • Preprocessing Accuracy Boost: Improved image handling (aspect ratio, resizing, and padding) for ONNXRuntime examples to ensure more precise object detection.
  • Broader MNN Test Coverage: Enabled MNN export testing on Raspberry Pi to ensure compatibility.
  • Dataset Configuration Streamlining: Refined open-images-v7.yaml to centralize dataset directory management for clarity and maintainability.

🎯 Purpose & Impact

  • ONNX Export Enhancements:

    • Purpose: Solve PyTorch incompatibility issues during ONNX model export with FP16 precision in dynamic mode.
    • Impact: Developers can now seamlessly export high-performance ONNX models while avoiding device-specific restrictions, improving workflows on GPUs.
  • Accurate Preprocessing:

    • Purpose: Fix preprocessing bugs in ONNXRuntime inference to ensure image resizing, aspect ratio, and padding align with expected outputs.
    • Impact: Results in more consistent and reliable object detection performance between PyTorch and ONNX models.
  • Compatibility Extension:

    • Purpose: Enable MNN export tests on Raspberry Pi to ensure cross-platform functionality.
    • Impact: Broader hardware compatibility for MNN format users, improving reliability on low-cost systems like Raspberry Pi.
  • Dataset Management Improvements:

    • Purpose: Streamline configuration for the Open Images V7 dataset.
    • Impact: Easier and more consistent dataset setup, particularly useful for developers managing large datasets.

This update improves model export workflows, ensures consistent inference results across platforms, and expands compatibility for developers using diverse environments. 🌐

What's Changed

New Contributors

Full Changelog: v8.3.81...v8.3.82

v8.3.81 - `ultralytics 8.3.81` Fix Metrics `on_plot` circular references (#19318)

28 Feb 12:22
3fceec5
Compare
Choose a tag to compare

🌟 Summary

The Ultralytics v8.3.81 release resolves a critical memory management issue in model validation while introducing key updates to documentation, testing workflows, and system reporting for enhanced usability and efficiency. 🚀✨


📊 Key Changes

  • 🧹 Memory Leak Fix in Validation Modules:
    Resolved circular references in metrics (on_plot) across validators (DetectionValidator, PoseValidator, etc.) to avoid CPU memory leaks during repeated evaluations.
  • 📚 Documentation Enhancements:
    Added examples for annotators in the library, and fixed/corrected metadata instructions for Triton guides and links in SAM 2 documentation.
  • 🐧 Raspberry Pi CI Improvements:
    Re-enabled Raspberry Pi CI workflow with improved benchmarks and added cleanup for self-hosted CI runners.
  • 🔍 Installation Diagnostics Update:
    Added project root installation path in the system environment summary for easier debugging.
  • 📊 Better Table Sorting in Docs:
    Improved table sorting functionality for file sizes, numbers, and dot-separated values.

🎯 Purpose & Impact

  • Memory Management Improvement:
    Eliminates residual memory accumulation when evaluating models repeatedly in scripts, preventing CPU overloading and Out-Of-Memory (OOM) errors. This fix improves the efficiency and reliability of long-running evaluation pipelines. 🧠🔥
  • User-Friendly Documentation:
    New usage examples and enhanced instructions make it easier for developers to understand and implement key features. Correcting SAM 2 links ensures access to the right research resources. 📚💡
  • Expanded Testing Coverage:
    Re-enabling Raspberry Pi CI and adding benchmarks enhances testing on diverse hardware, ensuring broader reliability across platforms. Improved CI cleanup reduces risks of resource conflicts. 🌐🔧
  • Debugging Simplification:
    Including installation paths in diagnostics facilitates resolving Python environment-related issues for developers. 🔍🛠️
  • Enhanced Sorting for Visual Data:
    Improved table sorting in docs boosts usability, especially when navigating large datasets or results with complex numbering or file size values. 📈✨

Overall, this update strengthens performance, stability, and developer experience, while prioritizing clarity and usability for the broader community. 🎉

What's Changed

New Contributors

Full Changelog: v8.3.80...v8.3.81

v8.3.80 - `ultralytics 8.3.80` Fix YOLO-NAS export (#19426)

26 Feb 12:09
3534c71
Compare
Choose a tag to compare

🌟 Summary (single-line synopsis)

Version 8.3.80 features crucial upgrades to YOLO-NAS handling, improved configuration merging for smoother exports, enhanced documentation interactivity, and compatibility refinements for key frameworks. 🚀


📊 Key Changes (bullet points highlighting any major changes)

  • 🔄 Model Export Enhancements: Fixed YOLO-NAS export by integrating default configs (DEFAULT_CFG_DICT) into model attributes for higher flexibility.
  • 🧠 RBOX Regularization: Refined bounding box angle calculations for consistency in the OpenCV definition.
  • 📋 Documentation Upgrades: Introduced sortable tables for performance data to improve clarity and usability across pages.
  • 🔧 Framework Compatibility: Constrained OpenVINO dependency to version >=2024.0.0,<2025.0.0 and updated outdated function calls for compatibility.
  • 🐳 Docker Workflow Fix: Removed deprecated numpy dependency to resolve CI errors and streamlined build conditions.

🎯 Purpose & Impact (bullet points explaining any benefits and potential impact to users)

  • 🌟 Improved Export Reliability: The configuration merging for YOLO-NAS ensures a more robust process, minimizing errors during model deployment and export.
  • 🧮 Better Prediction Accuracy: Regularizing rboxes improves detections by addressing angle inconsistencies in bounding boxes.
  • 🖱️ Enhanced User Experience: Sortable tables in documentation allow users to interactively organize performance metrics, making comparisons easier.
  • Smoother OpenVINO Exports: Version constraints and function updates enhance stability and prepare the platform for future releases without breaking changes.
  • 🔄 Cleaner CI Pipelines: Removing deprecated dependencies ensures more reliable builds, benefitting developers contributing to the codebase.

This update underscores Ultralytics' focus on improving usability, compatibility, and export-related functionalities for smoother workflows and precise model performance. 🚀

What's Changed

Full Changelog: v8.3.79...v8.3.80

v8.3.79 - `ultralytics 8.3.79` Fix shift in HSV augmentation (#19311)

25 Feb 14:23
c23f68a
Compare
Choose a tag to compare

🌟 Summary

The v8.3.79 release of the Ultralytics YOLO framework introduces crucial bug fixes, enhancements to performance, and documentation updates. The primary focus is on correcting HSV augmentation mechanics and refining various code components for better reliability and usability. 🛠️✨


📊 Key Changes

  • HSV Augmentation Fix: Resolved incorrect hue, saturation, and value shifts during data augmentation, ensuring consistent color transformations. 🎨
  • YOLO12 Benchmark Refinement: Fixed performance metrics for YOLO12 models in documentation, updating speed and mAP comparisons ensuring accurate representations. 📈
  • Docker Streamlining: Removed redundant tensorrt-cu12 dependency and added environment checks for better CI validation and Docker compatibility. 🐳
  • Comet Integration Fix: Corrected class mapping index misalignment in Comet logging to avoid errors and misinterpretations in visualized data. 📋
  • Single-Class Model Consistency: Enforced single-class model output alignment by adjusting nc and names parameters during training. 🚀
  • Documentation Updates: Improved accuracy in multiple areas, embedding a YouTube interactive guide for YOLO12, and updating outdated citation links for research credibility. 📚
  • General Code Cleanup: Enhanced readability by adhering to PEP8 conventions (snake_case), simplifying code for maintainability. 🖋️

🎯 Purpose & Impact

  • Improved Data Augmentation: Provides users with accurate HSV augmentations, leading to better model robustness and performance during training.
  • Benchmark Accuracy: Ensures users receive correct performance metrics allowing better model selection and easier comparison across versions.
  • Enhanced Docker Usability: Smoother image builds and reduced dependency issues result in a simplified development experience. Perfect for CI pipelines!
  • Better Logging: Developers benefit from accurate class mappings in Comet analytics, avoiding confusion when examining predictions.
  • Single-Class Models Alignment: Offers consistency in model behavior, improving usability for tasks like binary classification.
  • Improved Documentation: Users gain easier access to tutorials, accurate technical references, and a better learning experience overall.
  • Cleaner Codebase: Enhances long-term maintainability and aligns code with modern Python standards, beneficial for both contributors and end-users.

This release makes strides in improving accuracy, user experience, and usability for developers and researchers alike. 🚀🌟

What's Changed

New Contributors

Full Changelog: v8.3.78...v8.3.79

v8.3.78 - `ultralytics 8.3.78` new YOLO12 models (#19325)

20 Feb 12:43
216e6fe
Compare
Choose a tag to compare

🌟 Summary

This release, v8.3.78, brings an exciting new model to the family: YOLO12 🚀, featuring an attention-centric design for superior accuracy and efficiency across a variety of computer vision tasks.


📊 Key Changes

  • Introduction of YOLO12 Models:

    • New Architecture: Incorporates attention mechanisms like Area Attention, R-ELAN, and FlashAttention for optimized performance.
    • Comprehensive Task Support:
      • Object detection, segmentation, pose estimation, classification, and oriented bounding box (OBB) detection.
    • Benchmark Improvements:
      • Demonstrates higher mAP (mean Average Precision) and efficiency compared to YOLO10/YOLO11 and competitors like RT-DETR.
  • Model-Specific Enhancements:

    • Introduced multiple YOLO12 variants (n, s, m, l, x) catering to different computing environments such as cloud systems and edge devices.
    • Added new task-focused configurations for image classification, pose estimation, and segmentation.
  • Documentation Updates:

    • YOLO12 now included in detailed model documentation with performance metrics and usage examples.
    • Extensive references, including benchmarks for comparison with leading global detection models.
  • Code Simplifications and Bug Fixes:

    • ONNX Run-Time Fixes: Improved device handling and tensor reshaping for ONNX users.
    • TFLite Export Cleanup: Removed redundant parameters for simpler TensorFlow Lite export logic.
    • Code Refinement: Enhanced readability and maintainability across inference and export pipelines.

🎯 Purpose & Impact

  • Purpose:

    • YOLO12 brings a paradigm shift in accuracy and efficiency by adopting attention mechanisms tailored for real-time object detection.
    • Streamlines codebase for easier maintenance and integration in diverse projects.
  • Impact:

    • Developers gain access to cutting-edge state-of-the-art models excelling in versatility, speed, and precision.
    • Tasks like multi-object detection, segmentation, and pose estimation become more accessible for smaller devices (e.g., edge devices).
    • Improved user experience with easier model selection, robust export support, and refined prediction outputs.

🔮 This update is not only a leap forward in technological advancement but also a commitment to making intelligent vision accessible to all.

What's Changed

Full Changelog: v8.3.77...v8.3.78

v8.3.77 - `ultralytics 8.3.77` faster YOLOv8-Segment ONNX Runtime example (#19312)

19 Feb 15:06
3bb51b6
Compare
Choose a tag to compare

🌟 Summary

The YOLOv8 v8.3.77 release introduces a significant performance optimization for ONNX Runtime segmentation models, as well as essential compatibility enhancements and minor fixes. 🚀


📊 Key Changes

  • 🚀 YOLOv8-Segment Optimization (ONNX Runtime)

    • Post-processing was drastically improved for both GPU (91.7% faster) and CPU (58.9% faster), resulting in a total inference speedup of up to 32.4%.
  • 🔧 Optional thop Dependency Support

    • Made the thop library optional by handling its absence gracefully to avoid errors in environments lacking it.
  • 📂 ONNX Export Improvements

    • Streamlined ONNX dynamic model export logic by revising type handling, ensuring better reliability and maintainability.

🎯 Purpose & Impact

  • Faster and More Efficient Inference ⚡

    • The optimization of YOLOv8-Segment ONNX Runtime reduces latency significantly, improving user experiences in deployment scenarios where real-time performance is essential.
  • Increased Compatibility with Minimal Setups 🤝

    • By making thop optional, the release ensures broader support for systems, including lightweight environments like Conda setups, enhancing user flexibility.
  • Improved Developer Experience 🛠️

    • Simplified export logic and code maintainability ensures a more robust development and debugging process for ONNX users.

These updates collectively enhance usability, efficiency, and reliability for YOLOv8 users across diverse applications. 🎉

What's Changed

New Contributors

Full Changelog: v8.3.76...v8.3.77

v8.3.76 - `ultralytics 8.3.76` fix `dynamic` batch inference with NMS export (#19249)

18 Feb 13:31
e165933
Compare
Choose a tag to compare

🌟 Summary

The release of Ultralytics v8.3.76 introduces improved dynamic batch inference for ONNX models with NMS export, a better object tracking experience, and various code and documentation enhancements. 🚀


📊 Key Changes

  • Dynamic Batch Improvements:

    • Solved issues with dynamic=True and nms=True where the batch size was fixed at export.
    • Enabled dynamic input handling by introducing padding for unmatched batch sizes during ONNX exports.
  • Tracking Enhancements:

    • Addressed errors when processing Torch tensors in model.track().
    • Improved integration of original input images with trackers for accuracy.
  • Performance Accuracy:

    • Fixed GPU memory conversion errors for logging VRAM usage to ensure accurate reporting.
  • Documentation Updates:

    • Standardized formatting in documentation for better consistency.
    • Enhanced examples for interpreting prediction results across detection, pose, segmentation, and more.
  • Other Code Refinements:

    • Addressed layer miscount in logging by ensuring layers with no parameters are also displayed.
    • Enhanced GitHub issue templates for clearer differentiation between bug reports and feature requests.

🎯 Purpose & Impact

  • 🛠 Improved Model Deployment: Dynamic padding during export ensures robust handling of varying batch sizes while maintaining compatibility with ONNX workflows.
  • 🎥 Better Tracking: Smoother operation for streamed data and enhanced consistency in object tracking results benefit both developers and end-users.
  • 📋 Accurate Logging: Correct VRAM usage metrics improve debugging and resource optimization.
  • 📚 Developer Friendliness: Updated docs and examples make it easier for users to understand and utilize prediction results effectively.
  • 🚀 Efficiency Boost: Code tweaks and fixes culminate in faster, more accurate model handling without disruptions.

This release addresses several community-reported issues, focusing on operational accuracy and usability across export, tracking, and development workflows! 🙌

What's Changed

New Contributors

Full Changelog: v8.3.75...v8.3.76

v8.3.75 - `ultralytics 8.3.75` Comet update to new `comet_ml.start()` API (#19187)

13 Feb 04:46
675d370
Compare
Choose a tag to compare

🌟 Summary

The v8.3.75 release includes robust updates for improved model export compatibility, user experience, and error handling across platforms, alongside enhanced documentation and integration refinements. 🚀


📊 Key Changes

  • Enhanced CometML Integration:

    • Transitioned to the new comet_ml.start() API for smoother experiment handling.
    • Deprecated the COMET_MODE variable, introducing COMET_START_ONLINE for consistency.
  • Export Function Updates:

    • Protobuf Dependency: Added support for protobuf>=5 for TensorFlow and TFLite exports, resolving compatibility issues.
    • Edge TPU and TF.js: Addressed platform-specific limitations for ARM64 and Linux exports to prevent unsupported configuration errors.
  • Documentation Improvements:

    • Updated SAM auto-annotation, YOLOv8, and export format descriptions for clarity.
    • Redesigned inference examples to use accessible publicly hosted image URLs.
  • New CLI Solutions:

    • Introduced practical use cases, including object counting, workout monitoring, queue analysis, and browser-based inference with Streamlit.
  • Benchmarking Added:

    • Include new comparative performance metrics for popular object detection models like Gold-YOLO, YOLO-NAS, RTDETRv3, etc.
  • Windows-Specific Fix:

    • Resolved an async file write bug to improve caching reliability on Windows systems.
  • Improved Timing Precision:

    • Switched to time.perf_counter() for latency measurements, ensuring greater precision during benchmarking.

🎯 Purpose & Impact

  • Improved Experiment Tracking:

    • Seamless CometML integration provides better environment consistency and logging during training processes.
  • Enhanced Export Reliability:

    • Future-proofs TensorFlow and TFLite workflows while providing early error detection for ARM64/Linux users.
  • Streamlined User Experience:

    • Updated documentation and example consistency ensure clarity, especially for beginners, minimizing friction during model setup and usage.
  • Greater Platform Support:

    • Addressed critical Windows and platform-specific export edge cases, enhancing cross-platform usability.
  • Better Model Insights:

    • Added benchmarks empower users to make informed decisions about which object detection models to implement based on accuracy, speed, and computational cost.

This release focuses heavily on improving reliability, usability, and documentation quality while resolving critical bugs and adding more tools for diverse real-world applications.

What's Changed

New Contributors

Full Changelog: v8.3.74...v8.3.75

v8.3.74 - `ultralytics 8.3.74` Fix Ray Tune callback error (#19144)

09 Feb 23:18
845d500
Compare
Choose a tag to compare

🌟 Summary

Ultralytics v8.3.74 introduces updates to improve compatibility with modern tools (like Ray Tune), smooth errors, and enhance deterministic training and export flexibility. 🛠✨ Simplified workflows for developers with better usability.


📊 Key Changes

  • 🔧 Fixed Ray Tune Callback Issues: Replaced deprecated ray.tune.is_session_enabled() with ray.train._internal.session.get_session() ensuring compatibility with latest Ray versions.
  • 🛠 Enhanced Deterministic Training Control: Added unset_deterministic() to handle environment changes, and prevent unnecessary CUDA warnings.
  • 🖼 PIL Image Support in plot(): Allowed direct return of PIL images with annotator.im, improving compatibility with PIL workflows.
  • 🚀 Improved Export Flexibility: Adjusted model.export() to take a data parameter while simplifying predict() calls.
  • 🐳 Optimized Docker Workflow: Improved Docker token authentication and switched to docker build for better stability and security.
  • Streamlined Benchmarking: Cleaned dataset and metric assignments in benchmarking to avoid redundancy and improve reliability.

🎯 Purpose & Impact

  • 🚀 Greater Compatibility: Seamless integration with the latest versions of Ray ensures that errors linked to deprecated methods are resolved.
  • Workflow Flexibility: Managing deterministic settings dynamically boosts training adaptability while cleaning up workflow logs.
  • 📸 Visualization Improvements: Returning PIL images directly simplifies further processing in pipelines dependent on image outputs.
  • 🛠️ User-Friendly Model Exports: Configurable export makes model usage and testing more straightforward for developers.
  • 🔒 Stronger Security: Docker workflow improvements enhance authentication security, benefitting advanced build setups.
  • Clarity in Development: Benchmark logic cleanup minimizes confusion and potential errors, improving developer experience.

This version is packed with incremental improvements, making model training, testing, and deployment smoother and more user-friendly while preparing Ultralytics for the future. 🎉

What's Changed

Full Changelog: v8.3.73...v8.3.74

v8.3.73 - `ultralytics 8.3.73` GitHub Container Registry Images at `ghcr.io` (#19114)

07 Feb 08:53
35f0fde
Compare
Choose a tag to compare

🌟 Summary

The Ultralytics v8.3.73 release focuses on enhancing containerization workflows, updating library dependencies, improving documentation, and refining the development process. 🚀


📊 Key Changes

  • Containerization Enhancements:
    • Added support for publishing Docker images to both GitHub Container Registry (GHCR) and Docker Hub with rich metadata for better usability. 🐋
    • Removed Ubuntu 24.04 ARM in CI workflows for streamlined testing.
  • Dependency and Platform Updates:
    • Updated NVIDIA Jetson support with PyTorch 2.2.0 and Torchvision 0.17.2 for improved compatibility and performance. 🤖
    • Removed the beautifulsoup4 dependency, cleaning up the development environment. 🧹
  • Code Refactoring:
    • Improved SQL result export by simplifying insertion logic and fixing potential issues with empty results.
    • Enhanced type hinting for better code clarity.
  • Documentation and Tutorial Updates:
    • Added an embedded YouTube tutorial on Package Segmentation in the documentation. 🎥✨

🎯 Purpose & Impact

  • Containerization Accessibility:
    • Publishing images to both Docker Hub and GHCR ensures users have multiple options for pulling images, increasing global availability and reducing friction. 🌍
    • The inclusion of detailed metadata in Docker images improves clarity for end-users.
  • Better Hardware and Development Support:
    • NVIDIA Jetson users benefit from newer library versions for seamless deployment and better model performance.
    • Leaner development environments reduce installation times and maintenance burdens.
  • Improved Learning Resources:
    • The YouTube tutorial enriches the documentation and aids new and existing users in understanding package segmentation workflows visually. 📚👩‍💻

TL;DR: This version updates Docker container workflows, improves NVIDIA Jetson compatibility, cleans up dev dependencies, and enhances user education through new video tutorials. 🚀💡

What's Changed

Full Changelog: v8.3.72...v8.3.73