Ultralytics v8.4.164 is here
Quick overview: Ultralytics YOLO v8.4.164 makes FLOPs reporting more efficient, speeds up parts of export and CUDA video prediction, catches dataset issues earlier, and fixes several reliability bugs. No model architectures are changed in this release.
Performance and workflow improvements
- Lighter FLOPs reporting: THOP 2.2.0 profiles at smaller strides, reducing the overhead of model information checks and training startup logging for affected models, including YOLO11 and YOLO26. PR #26373 by @glenn-jocher.
- Faster exports: CoreML skips redundant trace checking, with reported trace times around 2.8–3× faster. PR #26337 by @amanharshx. The exporter also removes a duplicate dry-run forward pass in PR #26334 by @amanharshx.
- Smoother CUDA video prediction: Frame prefetching can overlap loading with GPU processing, while batches stay within a single video to avoid mixed-FPS issues. PR #26349 by @JESUSROYETH.
- Faster SAM processing:
batched_mask_to_boxis reported to be 86% faster on CPU. PR #26364 by @Y-T-G.
Dataset and input handling
- OBB dataset scans now reject box-only labels earlier. PR #26330 by @Nicholas022400701.
- Detection training can use pose datasets by dropping keypoints during label verification. PR #26357 by @Nicholas022400701.
- Dataset scans reject fractional class IDs. PR #26367 by @Nikhi00718.
- Valid
.jp2images are no longer incorrectly marked corrupt during scans. PR #26355 by @cainiao33. - Multi-row CSV prediction sources now parse correctly. PR #26360 by @Nikhi00718.
- Tar-family dataset download URLs now go through
safe_download. PR #26361 by @cainiao33. - Segments fully outside an image return early from
segment2box. PR #26331 by @raimbekovm.
Reliability and bug fixes
- Fixed memory growth in
Annotator(pil=True). PR #26346 by @Y-T-G. - Prediction writers and sources are released when streams end early. PR #26348 by @cainiao33.
- Tracker callbacks no longer run during plain prediction. PR #26352 by @aswanth-07.
- YOLOv9 distillation now handles different teacher and student head layouts. PR #26338 by @Nikhi00718. Distillation checkpoints also re-derive teacher feature indices when unpickled in PR #26362 by @cainiao33.
- Export options apply to mixed-case and alias format names. PR #26358 by @MohammadHijjawi97.
- Stale TensorRT INT8 calibration caches are no longer reused. PR #26368 by @amanharshx.
ObjectCropperno longer crashes with OBB models. PR #26359 by @MohammadHijjawi97.- Model parsing restores
Conv.default_actafter an override. PR #26347 by @cainiao33. - Resume keeps the checkpoint dataset, and export validation hints omit host paths. PR #26335 by @raimbekovm.
- Bracketed CLI values are joined after
=merging. PR #26365 by @MohammadHijjawi97. - An unused
labelsautolabel path was removed fromnon_max_suppression. PR #26356 by @cainiao33.
Documentation and release infrastructure
- Platform documentation now covers 21 export formats. PR #26344 by @glenn-jocher.
- Rust inference documentation updates
ultralytics-inferenceto 0.0.48 and adds quantization guidance. PR #26345 by @onuralpszr. - Core AI export guidance now covers Linux and Platform, alongside duplicate-resource-name
409responses. PR #26343 by @raimbekovm. - A package audit updated docstrings and export documentation and arguments, and fixed identified bugs. PR #26370 by @glenn-jocher.
- Publishing better handles PyPI outages and avoids repeated Slack alerts. PR #26340 by @glenn-jocher.
- Jetson CI settings are isolated per runner in PR #26366 by @glenn-jocher, while superseded hardware runs are canceled to reduce CI time in PR #26369 by @glenn-jocher.
- The CI status table now includes lite, OpenAPI, and skills in PR #26372 by @glenn-jocher, and
test_trainauto-selects idle GPUs at DDP launch in PR #26374 by @glenn-jocher.
Give v8.4.164 a try! Explore the release or full changelog, and let us know how the improvements work in your workflows. ![]()