pypi ultralytics 8.4.210
v8.4.210 - ultralytics 8.4.210 Use PyTorch device names for OpenVINO and LiteRT Intel CPU, GPU and NPU (#27136)

one hour ago

🌟 Summary

Release v8.4.210 makes hardware selection more consistent across model formats, improves OCR for rotated text, and fixes several deployment and inference issues.

📊 Key Changes

  • One device naming convention — the main change: OpenVINO and LiteRT now accept PyTorch-style device names. Use cpu for Intel CPU, xpu for Intel GPU, and npu for an Intel NPU with those runtimes. The intel:cpu, intel:gpu, and intel:npu names still work as deprecated aliases, with a warning. Device names are consistent, but their hardware mapping depends on the runtime—for example, PyTorch npu refers to Ascend, while OpenVINO and LiteRT use Intel NPU.
  • More capable OCR: The OCR solution now uses PP-OCRv6 through ONNX Runtime, with YOLO26x-Text as its default detector. It can handle pages rotated sideways or upside down, group words into lines, and return them in reading order, without requiring PaddlePaddle. The optimized recognizer requires Python 3.11+ and ONNX Runtime 1.26+.
  • More reliable INT8 exports: LiteRT and NXP exports keep detection, segmentation, pose, and OBB head outputs in FP32 while quantizing much of the rest of the model. This helps preserve confidence scores and box precision. For TensorRT INT8, RT-DETR’s transformer components are kept out of INT8 to avoid severe accuracy drops on TensorRT 11.3 and 11.4.
  • Inference and profiling fixes: Float64 NumPy and tensor inputs are converted safely for Apple MPS, which does not support float64. ONNX model profiling also preserves fixed input dimensions when other dimensions are dynamic.

🎯 Purpose & Impact

  • Simpler cross-format workflows: The same device spelling can be used for prediction, validation, and benchmarking, with each runtime mapping it to its supported hardware. OpenVINO’s explicit cpu selection also now reliably means CPU rather than automatic device selection.
  • OCR that works on more real-world images: Rotated documents and screenshots can be read and returned in a more useful reading order, with fewer extra framework dependencies.
  • Better quantized-model usability: Users can benefit from smaller or faster INT8 deployments while avoiding key accuracy problems in model outputs and RT-DETR TensorRT engines.
  • Fewer device-specific surprises: Float64 inputs are handled more consistently on MPS, and profiling is more compatible with ONNX models that have a mix of fixed and dynamic dimensions.

What's Changed

  • Read OCR text at any rotation with PP-OCRv6 on ONNX Runtime and benchmark-chosen YOLO26x-Text defaults by @glenn-jocher in #27141
  • Keep RT-DETR's AIFI and decoder out of INT8 so TensorRT 11.3 and 11.4 engines work by @atakann in #27122
  • Keep LiteRT INT8 head outputs in float by @raimbekovm in #27053
  • Preserve fixed ONNX input dimensions in model profiling by @aswanth-07 in #27130
  • Fix float64 NumPy and tensor predictions on MPS by @sohailshk in #27138
  • Keep PP-OCRv6 character probabilities on the GPU in TextRecognizer by @glenn-jocher in #27142
  • Use PyTorch device names for OpenVINO and LiteRT Intel CPU, GPU and NPU by @onuralpszr in #27136

Full Changelog: v8.4.209...v8.4.210

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.