New Release: Ultralytics v8.4.210

:rocket: Ultralytics v8.4.210: Consistent Device Names, Smarter OCR, and More Reliable Deployment

Ultralytics YOLO v8.4.210 is here! This release unifies device naming across model formats, improves OCR for rotated text, and addresses INT8 export, Apple MPS inference, and ONNX profiling issues. Explore the v8.4.210 release notes for the full release details.

:bullseye: Main Update: Consistent Device Names

OpenVINO and LiteRT now accept PyTorch-style device names, simplifying prediction, validation, and benchmarking workflows:

  • cpu selects an Intel CPU.
  • xpu selects an Intel GPU.
  • npu selects an Intel NPU.

The older intel:cpu, intel:gpu, and intel:npu names remain supported as deprecated aliases and emit a warning. Explicit OpenVINO cpu selection also reliably selects CPU rather than automatic device selection.

Same spelling, runtime-specific hardware: PyTorch npu refers to Ascend, while OpenVINO and LiteRT npu refer to Intel NPU.

In PR #27136, @onuralpszr implemented this unified naming convention.

:memo: More Capable OCR

The OCR solution now uses PP-OCRv6 through ONNX Runtime, with YOLO26x-Text as its default detector. It can read sideways and upside-down pages, group words into lines, and return text in reading order—without requiring PaddlePaddle.

Requirements: The optimized recognizer needs Python 3.11+ and ONNX Runtime 1.26+.

:high_voltage: More Reliable INT8 Exports

  • LiteRT and NXP: Detection, segmentation, pose, and OBB head outputs stay in FP32 while much of the remaining model is quantized, helping preserve confidence scores and box precision. In PR #27053, @raimbekovm contributed the head-output precision fix.
  • TensorRT: RT-DETR’s AIFI and decoder remain outside INT8 quantization to avoid severe accuracy drops on TensorRT 11.3 and 11.4. In PR #27122, @atakann addressed this deployment issue.

:hammer_and_wrench: Inference and Profiling Fixes

  • Apple MPS: Float64 NumPy arrays and tensors are safely converted for inference on MPS, which does not support float64. In PR #27138, @sohailshk fixed this input compatibility issue.
  • ONNX profiling: Fixed input dimensions are preserved when other dimensions are dynamic. In PR #27130, @aswanth-07 improved support for mixed fixed and dynamic shapes.

:raising_hands: Try It and Share Your Feedback

Install this release with:

pip install --upgrade ultralytics==8.4.210

Review the full changelog for all changes, then try the update in your workflows.

How does it work for you? Share your OCR results, deployment experiences, or any issues in the replies. Thanks to all our contributors and community members! :tada: