π Summary
Ultralytics v8.4.142 unifies YOLO inference and export behavior under the nms option, making it easier to choose between maximum accuracy and NMS-free speed while improving benchmark consistency and deployment documentation.
π Key Changes
-
π Unified
end2endintonmsnms=None(default) uses the one-to-many head with Ultralytics-managed NMS.nms=Trueuses the one-to-many head and embeds NMS in supported exports.nms=Falseselects the one-to-one NMS-free head when available.- The legacy
end2endargument is deprecated:end2end=Truemaps tonms=False.end2end=Falsemaps tonms=None, unless explicitly combined withnms=True.
- Both YOLO26 heads remain trained, while validation, checkpoint selection, and early stopping now follow the selected inference head.
-
π¦ Improved model fusion and export handling
- Model fusion now removes the unused detection branch regardless of which inference head is selected.
- Exported models preserve their native output behavior, while unsupported formats automatically fall back to compatible raw outputs.
- NMS options are now documented consistently across ONNX, TensorRT, CoreML, OpenVINO, MNN, Ascend, Hailo, and other integrations.
-
π More reliable cross-format benchmarks
- Benchmark validation now uses square inputs consistently across native and exported models.
- This ensures accuracy and latency comparisons are based on the same preprocessing rather than mixing rectangular and square inputs.
-
π Training resume fix
- Resuming training with Albumentations transforms no longer fails when saving arguments to YAML.
- The fix addresses argument normalization order without changing the training workflow.
-
π Expanded deployment documentation
- Added a new guide for deploying Ultralytics models on Luxonis OAK RVC2 and RVC4 cameras.
- Improved Ambarella CVflow deployment guidance, including SDK compilation, host validation, and Cavalry device deployment.
- Documented reliable DEEPX SDK installation using the vendor wheel repository.
-
π§ͺ Broader test coverage and maintenance
- Updated prediction, validation, export, Hailo, and model-head tests for the new
nmsbehavior. - Package version updated to
8.4.142.
- Updated prediction, validation, export, Hailo, and model-head tests for the new
π― Purpose & Impact
- β
Simpler API: One
nmssetting now controls head selection and export-time NMS across prediction, validation, tracking, benchmarking, and export. - π― Better default accuracy: YOLO26 now defaults to the one-to-many head with NMS, which generally provides higher accuracy than the NMS-free one-to-one head.
- β‘ Optional lower-latency deployment: Use
nms=Falsewhen you want NMS-free predictions and a simpler post-processing pipeline. - π§ Easier migration: Existing
end2endconfigurations continue to work through compatibility mapping, but new code should usenms. - π Fairer performance comparisons: Cross-format benchmark results are now more meaningful because all formats use matching square validation inputs.
- π Wider edge-device support: New and refined documentation makes deployment on Luxonis, Ambarella, DEEPX, Hailo, and other specialized platforms easier to follow.
- β οΈ Export consideration: Some runtimes or quantized configurations cannot support NMS-free or embedded-NMS graphs and will fall back to native raw outputs. Check the target integrationβs compatibility before deployment.
What's Changed
- Refine Ambarella integration documentation by @smohan-ambarella in #25465
- Add Luxonis OAK deployment documentation by @klemen1999 in #25452
- Document DEEPX SDK dependency installation by @Gornoka in #26067
- Use square validation inputs for cross-format benchmarks by @glenn-jocher in #26068
- Normalize augmentation overrides after restoring resume arguments by @glenn-jocher in #26069
- Unify
end2endundernms=True|False|Noneby @glenn-jocher in #26066
New Contributors
- @smohan-ambarella made their first contribution in #25465
- @klemen1999 made their first contribution in #25452
Full Changelog: v8.4.141...v8.4.142