Skip to content

fix(deps): update dependency ultralytics ( 8.4.102 → 8.4.104 ) - #463

Merged
jazzlyn-bot[bot] merged 1 commit into
mainfrom
renovate/ultralytics-8.x
Jul 23, 2026
Merged

fix(deps): update dependency ultralytics ( 8.4.102 → 8.4.104 )#463
jazzlyn-bot[bot] merged 1 commit into
mainfrom
renovate/ultralytics-8.x

Conversation

@jazzlyn-bot

@jazzlyn-bot jazzlyn-bot Bot commented Jul 21, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Type Update Change OpenSSF
ultralytics (changelog) project.dependencies patch ==8.4.102==8.4.104 OpenSSF Scorecard

Release Notes

ultralytics/ultralytics (ultralytics)

v8.4.104: - New YOLO26-Depth monocular depth estimation task (#​25065)

Compare Source

🌟 Summary

YOLO26 gains a complete monocular depth estimation task, enabling per-pixel distance prediction, training, validation, visualization, calibration, and deployment alongside existing Ultralytics tasks. 🌍📐

📊 Key Changes

  • New YOLO26-Depth model family 🤖

    • Adds yolo26n-depth, yolo26s-depth, yolo26m-depth, yolo26l-depth, and yolo26x-depth.
    • Uses a DPT-style depth head that fuses multi-scale YOLO26 features to produce dense depth maps aligned with the input image.
    • Supports both unbounded log-depth output for short- and long-range scenes and bounded depth output modes.
  • Depth is now a first-class Ultralytics task 🆕

    • Available through the CLI:
      yolo depth train
      yolo depth val
      yolo depth predict
      yolo export
    • Fully supported through the Python Model API, including prediction, training, validation, export, and model.calibrate().
  • Improved depth training and evaluation 📊

    • Adds depth-specific loss functions combining scale-aware depth accuracy with multi-scale edge and gradient matching.
    • Adds standard depth metrics such as delta1, delta2, delta3, absolute relative error, RMSE, and SILog.
    • Handles sparse or invalid ground-truth pixels safely.
  • Depth-aware data pipeline 🗂️

    • Introduces paired RGB image and .npy float32 depth-map loading.
    • Applies geometric transformations and flips consistently to images and depth maps.
    • Adds validation for missing, corrupt, incorrectly shaped, or unreadable depth targets.
    • Adds Depth8, an 8-image dataset for rapid pipeline testing and debugging.
  • Large dataset and benchmark support 🌐

    • Adds configurations and documentation for NYU Depth V2, KITTI, SUN RGB-D, ARKitScenes, DIODE, Hypersim, TartanAir, Virtual KITTI 2, and others.
    • Documents zero-shot evaluation on NYU Depth V2, KITTI, ETH3D, Make3D, and iBims-1.
    • Released models are pretrained on a broad mix of approximately 2.19 million indoor, outdoor, synthetic, real-world, and pseudo-labeled images.
  • Depth visualization and results support 🎨

    • Adds DepthMap results, depth heatmap plotting, depth-aware result summaries, and access through result.depth.data.
    • Depth predictions can be converted through the existing .cpu() and .numpy() workflows.
  • Export and deployment support 🚀

    • Adds depth export support for formats such as ONNX and TensorRT.
    • Dynamic exported output shapes track the input image dimensions.
    • TensorRT documentation now correctly lists the supported opset and workspace arguments.
    • Explicitly prevents unsupported NMS or IMX export configurations for depth models.
  • More reliable training logs 🧾

    • Loss components are now returned as name-keyed dictionaries rather than positional tensors.
    • Fixes incorrect logging of l1_loss as dfl_loss when DFL is not used.
    • Makes loss reporting more robust across detection, segmentation, pose, distillation, classification, and depth tasks.
  • Performance and reliability improvements

    • Computes DFL log_softmax once instead of twice, improving the DFL loss path by approximately 1.5–1.75× in benchmarks.
    • Reduces TaskAlignedAssigner kernel launches by batching candidate accumulation.
    • Caches semantic-mask bit depth to avoid reopening mask files every epoch.
    • Makes plotting threads non-daemon so generated plots finish writing before interpreter shutdown.
  • Export, dataset, and workflow fixes 🛠️

    • Converts Path export arguments to strings, preventing exported ONNX metadata from failing to reload.
    • Fixes tar archive cleanup when using safe_download(..., delete=True).
    • Adds depth-target support to NDJSON dataset conversion.
    • Improves macOS CI stability and queues PyPI publishing with retry handling.
    • Adds documented pretrained YOLO26 detection and segmentation checkpoints for Objects365.

🎯 Purpose & Impact

  • Expands YOLO26 beyond object recognition 🌟
    Users can now infer scene geometry and approximate camera-to-surface distances from a single RGB image, supporting robotics, navigation, AR/VR, 3D reconstruction, and spatial awareness applications.

  • Handles a wider range of environments 🏠🚗
    The unbounded log-depth design avoids a fixed short-range ceiling, making the models better suited to both indoor scenes and long-range outdoor driving data such as KITTI.

  • Simplifies end-to-end development
    Depth estimation uses the same familiar Ultralytics workflow for dataset preparation, training, validation, prediction, export, and Python integration.

  • Improves custom-dataset adaptation 🎯
    Users can fine-tune pretrained YOLO26-Depth models and calibrate absolute depth scale without retraining the network, helping adapt predictions to a particular camera or environment.

  • Makes deployments more dependable 🔒
    Dynamic export shapes, corrected metadata serialization, more accurate TensorRT documentation, and safer archive handling reduce friction when moving models into production.

  • Benefits existing tasks as well ⚙️
    The loss-dictionary refactor, DFL optimization, assigner optimization, semantic-mask caching, and CI robustness fixes improve maintainability, logging accuracy, training speed, and reliability across the broader Ultralytics framework.

For production workflows, YOLO26 remains the recommended latest stable model family. Users who prefer managed annotation, training, and deployment can also use the Ultralytics Platform.

What's Changed

Full Changelog: ultralytics/ultralytics@v8.4.103...v8.4.104

v8.4.103: - Prevent training from ending during warmup (#​25321)

Compare Source

🌟 Summary

v8.4.103 improves training reliability, result handling, deployment workflows, and documentation—most importantly ensuring warmup finishes on schedule so short training runs reach their intended learning-rate behavior. 🚀

📊 Key Changes

  • Training warmup no longer consumes entire short runs 🎯

    • warmup_epochs is now treated as a true epoch count rather than being forced to at least 100 iterations.
    • Warmup is capped so at least the final planned epoch uses the regular learning-rate schedule.
    • Warmup calculations are centralized and remain consistent after batch-size changes, out-of-memory recovery, and timed-training adjustments.
    • Example: a 10-epoch run with 3 warmup epochs now warms up for 3 epochs instead of potentially staying in warmup for the entire run.
  • More accurate validation and experiment reporting 📈

    • Confusion matrices now honor the confidence threshold supplied by the validator instead of silently overriding it to 0.25.
    • Validation samples sent to the Platform now include evenly ranked F1 samples across the full image distribution, plus separate best and worst cohorts.
    • Segmentation, pose, and raw confusion-matrix plots are no longer dropped from experiment trackers such as W&B, ClearML, Neptune, and DVC.
  • Improved model construction and performance

    • Fixed backbone width scaling when a layer’s channel count happens to equal the number of classes, preventing unexpectedly oversized models.
    • Accelerated ModelEMA updates with batched PyTorch operations where supported.
    • Made model profiling safer by profiling copied layers rather than modifying shared model modules.
  • More robust results and mask processing 🖼️

    • Results methods such as plot(), save_txt(), save_crop(), summary(), and verbose() now work correctly with NumPy-backed results from Results.numpy().
    • Mask processing now binarizes masks before cropping while preserving output behavior.
    • Image-list prediction sources now follow HTTP 308 redirects on supported Python versions.
  • Safer and clearer exports 🔧

    • CoreML compatibility checks now run before conversion and reject unsupported dynamic classification and RT-DETR exports earlier.
    • Removed the unsupported Hailo opset argument.
    • RKNN exports now warn users when a requested opset above 19 is automatically reduced.
  • Expanded Platform and API capabilities ☁️

    • Platform REST API documentation now covers supported API-key operations across datasets, models, training, exports, deployments, storage, activity, and workspaces.
    • Added documentation for Slack alerts for training, export, and deployment results.
    • Updated Platform On Premise and Docker image references to use rolling latest tags.
    • Linux GPU Docker guidance now recommends CDI --device reservations for more reliable access across host daemon reloads.
  • Documentation and workflow improvements 📚

    • YOLO26 documentation now presents inference quickstarts above the fold and points open-vocabulary YOLOE-26 content to its dedicated page.
    • Guides are organized by project stage, from data preparation through deployment and edge hardware.
    • Added contextual “What’s Next” links across prediction, dataset, training, validation, and export pages.
    • Updated broken Tiger-Pose video links and moved YOLOv5 documentation into a clearly labeled legacy section.
    • Updated GitHub Actions workflows to use actions/setup-python@v7.

🎯 Purpose & Impact

  • Short training jobs now train as intended ✅ Users no longer risk spending an entire run in warmup with very low learning rates, which should improve optimization and make results more representative of the configured schedule.
  • Metrics and diagnostics are more trustworthy 📊 Confidence thresholds, confusion matrices, F1 samples, and tracker plots now better reflect actual validation settings and model behavior.
  • Model sizes are more predictable 🧠 Models created from YAML configurations will no longer become unexpectedly large in certain class-count configurations.
  • NumPy interoperability is substantially better 🔄 Users can convert results to NumPy and continue using common output, plotting, cropping, and export methods.
  • Deployment is safer and easier to troubleshoot 🛠️ Unsupported export combinations fail earlier, while RKNN overrides and Docker GPU requirements are now communicated clearly.
  • Platform users get better automation and integration options 🔔 Slack alerts and broader API-key support make it easier to monitor and manage training and deployment programmatically.
  • Recommended model: For new projects, use YOLO26, or streamline annotation, training, and deployment with Ultralytics Platform.

What's Changed

Full Changelog: ultralytics/ultralytics@v8.4.102...v8.4.103


Configuration

📅 Schedule: (in timezone Europe/Vienna)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

@jazzlyn-bot
jazzlyn-bot Bot force-pushed the renovate/ultralytics-8.x branch from fa267c8 to ca07bd1 Compare July 22, 2026 01:14
@jazzlyn-bot jazzlyn-bot Bot changed the title fix(deps): update dependency ultralytics ( 8.4.102 → 8.4.103 ) fix(deps): update dependency ultralytics ( 8.4.102 → 8.4.104 ) Jul 22, 2026
| datasource | package     | from    | to      |
| ---------- | ----------- | ------- | ------- |
| pypi       | ultralytics | 8.4.102 | 8.4.104 |
@jazzlyn-bot
jazzlyn-bot Bot force-pushed the renovate/ultralytics-8.x branch from ca07bd1 to 0f39fdf Compare July 22, 2026 13:14
@jazzlyn-bot
jazzlyn-bot Bot merged commit 9a69822 into main Jul 23, 2026
1 check passed
@jazzlyn-bot
jazzlyn-bot Bot deleted the renovate/ultralytics-8.x branch July 23, 2026 01:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants