🌟 Summary
Release 8.4.174 fixes AutoBatch’s backward-pass profiling for YOLO26 and speeds up prediction summaries, alongside improvements to exports, inference, tracking, and data handling.
📊 Key Changes
- AutoBatch profiling — the main change: The profiler now finds tensors inside nested model outputs, so backward profiling works with YOLO26 detection heads and other task heads. Prediction summaries also avoid unnecessary tensor conversions, making their logs faster.
- More reliable inference and exports: Dynamic CoreML models can handle batches larger than their exported batch size by processing them in chunks. Hailo INT8 optimization now receives reusable calibration images, fixing calibration methods that need to revisit the data.
- Correct edge-case behavior: Fast-NMS now keeps detections when the IoU threshold is zero. Tracking hides unconfirmed tracks when appropriate without dropping first-frame detections. INT8 calibration warnings are limited to export formats that support calibration data.
- Improved data handling: Dataset splitting preserves the caller’s random state, DOTA splitting accepts images without label files, and image loading and shape calculations better handle EXIF rotations and Unicode paths. Saved crops also retain dotted source names.
- More dependable model setup: Predictors and trackers are rebuilt when relevant setup arguments change; model-format detection handles compound filenames more reliably. YouTube inputs no longer require a stream of at least 1080p.
- Documentation and packaging updates: Guides cover per-object depth estimates and newer Platform workflows, including image search and live-camera inference. Docker images can cache Python bytecode, while CI and Conda guidance were updated for more compatible dependency resolution.
🎯 Purpose & Impact
- AutoBatch can now measure YOLO26 training memory more accurately. Because backward profiling runs successfully, automatic batch-size selections may change; fixed-batch training and prediction are unaffected.
- Exported models are more practical across deployment targets. CoreML handles larger prediction batches, and Hailo calibration methods that revisit their input data can work as intended.
- Predictions and datasets are more consistent in edge cases, reducing unexpected missing detections, failed dataset splits, or crop files that are hard to match to their sources.
- No model architecture, checkpoint, or default changes are introduced.
What's Changed
- Fix misleading INT8 calibration warning for CoreML and MNN by @amanharshx in #26528
- Fix zero-threshold OBB suppression in Fast-NMS by @aswanth-07 in #26522
- Fix model.track leaking unconfirmed detections when no tracks are active by @wizzseen in #26525
- Keep dotted image and video names in
save_cropfile names by @MohammadHijjawi97 in #26524 - Document per-object depth with instance segmentation by @Vaishnavi220506 in #26521
- Revert "Fix model.track leaking unconfirmed detections when no tracks are active" (#26525) by @glenn-jocher in #26532
- Add YOLO26 Depth benchmarks to AMD documentation by @lakshanthad in #26518
- Restore nyu-depth.yaml to the PNG depth standard by @glenn-jocher in #26535
- Let Docker images cache Python bytecode and install with uv everywhere by @glenn-jocher in #26533
- Keep non-synset class names and sub-1080p YouTube streams by @glenn-jocher in #26536
- Solve conda Python and Ultralytics together in CI and docs by @glenn-jocher in #26542
- Pin AMD GPU CI to the ROCm 10.0.0 torch wheels that match the MIGraphX packages by @onuralpszr in #26550
- Treat images without a label file as backgrounds in split_dota by @MohammadHijjawi97 in #26539
- Preserve caller random state during autosplit by @Vaishnavi220506 in #26548
- Fix model.track unconfirmed leak without clearing first-frame dets by @wizzseen in #26543
- Sync docs with explore image search, live camera inference and class-name matching by @raimbekovm in #26538
- Rebuild the predictor and persisted trackers when their arguments change by @raimbekovm in #26541
- Fix dynamic CoreML inference above the export batch limit by @amanharshx in #26551
- Use rounded letterbox size for per-axis gains in
scale_boxesandscale_coordsby @MaverickTopG in #26546 - fix: materialize Hailo calibration set before optimization by @nivosco in #26544
- Detect model format from the terminal file suffix by @raimbekovm in #26549
- Cache EXIF-rotated image shapes as imread decodes them by @raimbekovm in #26545
ultralytics 8.4.174Fix AutoBatch backward profiling for YOLO26 and speed up prediction logs by @aswanth-07 in #26547
New Contributors
- @MaverickTopG made their first contribution in #26546
Full Changelog: v8.4.173...v8.4.174