Ultralytics v8.4.84 is here!
Ultralytics v8.4.84 is focused on training reliability, OBB stability, RT-DETR benchmark correctness, and improved LiteRT/mobile deployment documentation. The headline fix: valid training runs are now much less likely to finish without saved checkpoints after transient NaN/Inf events. ![]()
You can review the full release on the Ultralytics v8.4.84 GitHub release page.
Highlights
More reliable checkpoint saving
A production issue was fixed where training could complete successfully but fail at the end because no best.pt or last.pt checkpoint was saved. This could happen when transient NaN/Inf values affected the EMA model state.
Ultralytics now sanitizes the saved checkpoint path more robustly, helping ensure completed training jobs preserve usable weights.
Improved OBB stability for tiny rotated boxes
OBB training is now more stable for very small oriented objects. A small numerical floor was added inside probabilistic IoU covariance calculations, helping prevent loss divergence in edge cases involving tiny rotated boxes.
Correct RT-DETR benchmarking after export
Exported RT-DETR models are now reloaded with the correct RTDETR wrapper during benchmarking instead of YOLO, ensuring the proper validator and postprocessing are used. This fixes cases where benchmark mAP incorrectly showed 0.
Cleaner imgsz validation errors
Invalid image size strings such as imgsz=640x480 now raise a clearer ValueError explaining the accepted formats, rather than exposing a raw Python parsing error.
Deployment and Documentation Improvements
Expanded LiteRT and mobile guidance
LiteRT documentation now includes improved Android deployment guidance and highlights the official Ultralytics YOLO Flutter plugin for running LiteRT .tflite exports on Android.
The docs now cover real-time camera inference, single-image prediction, GPU acceleration, and YOLO26 task support. YOLO26 is the latest recommended Ultralytics model family for new projects, while YOLO11 remains fully supported.
New Android LiteRT performance tables
New measured Android LiteRT performance tables were added for YOLO26n models across detection, segmentation, semantic segmentation, classification, pose, and OBB tasks. These should help users better understand real-world CPU/GPU mobile performance.
TensorFlow.js and TF SavedModel docs refreshed
Deprecated TensorFlow.js export guidance now points to Googleβs official LiteRT.js web runtime documentation, and TF SavedModel docs now consistently refer to LiteRT where appropriate.
Example Updates
The Axelera YOLO11 segmentation example now handles numeric camera sources more reliably by mapping them to /dev/video<N> and using the OpenCV backend. Single-image sources also now keep the display window open properly.
Whatβs Changed
Fixed --sourcecamera handling and single-image display in the YOLO11 segmentation example by @tatsuya-toyoda in PR #24969
Fixed RT-DETR benchmark mAP=0after export by @artest08 in PR #24998
Bumped the MkDocs plugin requirement by @glenn-jocher in PR #25002
Fixed the LiteRT.js documentation link by @glenn-jocher in PR #25000
Added a mobile-apps notice to LiteRT docs and completed the TF SavedModel LiteRT rename by @glenn-jocher in PR #25004
Fixed sub-stride OBB loss divergence via a ProbIoU floor by @lmycross in PR #25007
Fixed EMA-NaN no-checkpoint loss and improved unhelpful imgszerrors by @glenn-jocher in PR #25005
New Contributor
Welcome @tatsuya-toyoda, who made their first contribution in PR #24969! ![]()
Upgrade and try it
Upgrade with:
pip install -U ultralytics
Then try your training, benchmarking, OBB, RT-DETR, or LiteRT export workflows again with v8.4.84.
Thanks to the YOLO community and all contributors for the reports, testing, and improvements that made this release possible. Please share feedback, issues, or results after upgrading! ![]()
For the complete diff, see the full changelog from v8.4.83 to v8.4.84.