Ultralytics YOLO
Description
🌟 Summary
Ultralytics 8.4.158 improves YOLO26 training reliability, model export compatibility, data handling, inference backends, and Ultralytics Platform workflows. 🚀
📊 Key Changes
🔄 Mosaic augmentation now stays closed after OOM recovery
- Fixed a training issue where automatic batch-size reduction rebuilt the dataloader and unintentionally re-enabled Mosaic augmentation.
- The trainer now re-arms the mosaic-closing logic after rebuilding the pipeline, ensuring the augmentation state matches the training log and configuration.
⚙️ More reliable AutoBatch sizing
- AutoBatch no longer treats a failed batch-one probe caused by BatchNorm at very small image sizes as a GPU memory limit.
- Added CUDA coverage for small image sizes to prevent regressions.
🧠 Improved data loading and caching
- RAM image caches can now be shared more efficiently with
spawnandforkserverDataLoader workers. - Linux DataLoader workers start lazily, reducing the risk of image-decoder deadlocks during initialization.
- Dataset hyperparameters are copied before transforms modify them, preventing one dataset from changing settings used by later datasets.
- Disk caching now uses a smaller safety margin and handles failed cache writes more safely.
- RAM image caches can now be shared more efficiently with
📦 Stronger download and dataset handling
safe_download()can resume interrupted downloads with HTTP Range requests, handle encoded responses, and better tolerate temporary server errors.- Invalid files named as archives are now returned as files instead of being mistaken for extracted datasets.
- NDJSON conversion keeps at least one image when a valid nonzero fraction would otherwise select none.
📤 More accurate model exports
- Exported models with missing or invalid class names now infer the correct class count from the model head instead of defaulting to 999 names.
- This improves metadata consistency for legacy detection and classification checkpoints.
- TorchScript inference is stabilized on older PyTorch versions by avoiding a repeated-inference crash.
- TensorRT now raises clear errors when dynamic shapes are rejected or inference execution fails.
🎭 Better SAM2 video masks
- SAM2 video predictions now correctly enforce non-overlapping masks before thresholding.
- The highest-scoring object owns each pixel, preventing tracked objects from incorrectly covering one another.
- CPU semantic segmentation postprocessing is also faster through improved class-index selection.
🍎 Expanded Apple deployment support
- Core AI assets now include model descriptions and are documented as an opt-in path in the Ultralytics iOS SDK and Flutter plugin.
- Core ML remains the default and recommended Apple deployment format, especially for broader device compatibility.
- Core AI remains limited to newer Apple operating systems and Apple silicon export environments.
🛠️ Ultralytics Platform improvements
- Added class-prompted annotation using hosted open-source models and paid vision providers for detection datasets with one to 100 classes.
- Agents workflows now support HTTPS webhook actions in addition to Slack notifications.
- TIFF originals can be stored without re-encoding.
- Platform documentation now covers provider API keys, annotation behavior, upload handling, and the corrected ARKitScenes raw-data workflow.
📚 Documentation and compatibility updates
- ExecuTorch guidance now explains that Ultralytics installs a compatible version automatically.
- ARKitScenes documentation now uses the raw subset and its approximately two-hertz frame sampling process.
- System font lookup rescans installed fonts when Matplotlib's cached list is outdated.
🎯 Purpose & Impact
- More predictable training: Mosaic augmentation remains disabled when expected, even after automatic OOM recovery, improving reproducibility and avoiding misleading training behavior.
- Fewer training failures: AutoBatch, caching, DataLoader startup, and dataset conversion fixes make training more robust across hardware, operating systems, and small image sizes.
- Safer deployment: Exported metadata now matches the actual model, while TorchScript and TensorRT failures produce clearer and earlier errors.
- Cleaner segmentation results: SAM2 video users should see fewer overlapping tracked masks and more consistent object ownership.
- Broader platform workflows: Users can annotate datasets with natural-language or vision-language models, connect workflows to web services, and preserve TIFF source files.
- Better Apple integration: Core AI is usable as an opt-in for supported iOS 27 devices, while Core ML remains the safest default for most Apple deployments. 🍎
What's Changed
- Ignore AutoBatch probe failures below the first successful size by @fcakyon in https://github.com/ultralytics/ultralytics/pull/26224
- Cover AutoBatch at imgsz below 2x stride in the GPU tests by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/26248
- Set the Core AI asset description and document Core AI as an SDK opt-in by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/26230
- Remove Core AI from the Platform export format docs by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/26249
- Resume
safe_downloadretries with Range requests by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/26250 - Avoid fork-inherited image decoder deadlocks in Linux data loaders by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/26085
- Share RAM image caches across DataLoader workers by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/26086
- Make
safe_downloadrobust to encoded responses,curlresumes, and 5xx bursts by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/26251 - Add class names fallback for legacy checkpoints on export by @venu-banaras in https://github.com/ultralytics/ultralytics/pull/24715
- Reduce the disk cache safety margin and guard failed cache writes by @Swish78 in https://github.com/ultralytics/ultralytics/pull/26112
- Remove the ExecuTorch upgrade advice that installs a runtime the package rejects on torch < 2.13 by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/26263
- Fix repeated TorchScript inference crash on torch<2.1 by @glenn-jocher in https://github.com/ultralytics/ultralytics/pull/26264
- Apply the SAM2 video non-overlapping mask constraint on the float masks and select the mask owner with max indices by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/26262
- Select semantic class indices with max instead of argmax on CPU by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/26261
- Document the ARKitScenes raw subset and its 2 Hz frame sampling by @Bovey0809 in https://github.com/ultralytics/ultralytics/pull/26260
- Align Platform docs with tiff passthrough, agents webhooks and class-prompted annotation models by @raimbekovm in https://github.com/ultralytics/ultralytics/pull/26258
- Rescan system fonts in check_font when the cached font list misses by @cainiao33 in https://github.com/ultralytics/ultralytics/pull/26256
- Raise on rejected TensorRT shapes and executions by @aswanth-07 in https://github.com/ultralytics/ultralytics/pull/26268
- Return the file itself when an archive-suffixed download is not a zip or tar by @cainiao33 in https://github.com/ultralytics/ultralytics/pull/26255
- Keep a nonzero ndjson conversion fraction from selecting zero images by @cainiao33 in https://github.com/ultralytics/ultralytics/pull/26254
- Stop dataset construction from mutating the caller's hyp namespace by @cainiao33 in https://github.com/ultralytics/ultralytics/pull/26266
- Preserve model class counts in export name fallbacks by @aswanth-07 in https://github.com/ultralytics/ultralytics/pull/26253
ultralytics 8.4.158Keep mosaic closed after an OOM batch auto-reduction by @rahultechenable in https://github.com/ultralytics/ultralytics/pull/26257
New Contributors
- @Swish78 made their first contribution in https://github.com/ultralytics/ultralytics/pull/26112
- @venu-banaras made their first contribution in https://github.com/ultralytics/ultralytics/pull/24715
- @rahultechenable made their first contribution in https://github.com/ultralytics/ultralytics/pull/26257
Full Changelog: https://github.com/ultralytics/ultralytics/compare/v8.4.157...v8.4.158
Notes
Files
ultralytics/ultralytics-v8.4.158.zip
Files
(3.6 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:073126e1aebae0a775f5de41672ca7fa
|
3.6 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/ultralytics/ultralytics/tree/v8.4.158 (URL)
Software
- Repository URL
- https://github.com/ultralytics/ultralytics