New Release: Ultralytics v8.4.47

Ultralytics v8.4.47 is out :tada:

Summary: Ultralytics v8.4.47 is a reliability-focused release that makes everyday workflows smoother and more predictable. Highlights include a fix for CLI heatmap colormap parsing :artist_palette:, improved RT-DETR post-processing, more robust Edge TPU export behavior, better remote checkpoint URI handling, and several stability fixes across loaders, I/O, and results serialization :white_check_mark:

If you’re building with Ultralytics YOLO, this release is all about reducing surprises and improving consistency across training, validation, export, and inference workflows. And if you’re starting something new, we recommend Ultralytics YOLO26, our latest stable model family, available across detect, segment, classify, pose, and OBB tasks.

Highlights

:artist_palette: CLI colormap parsing fixed for Solutions Heatmap

The biggest user-facing fix in this release is in #24219 by @raimbekovm.

Commands like colormap=cv2.COLORMAP_INFERNO now work as documented in yolo solutions heatmap. Previously, these values could be passed through as raw strings and fail inside OpenCV. With this update, allowed cv2.<UPPERCASE_CONSTANT> values are safely resolved to numeric constants while keeping parser protections in place :shield:

:robot: RT-DETR post-processing improved

In #24403, @artest08 moved top-k selection into the decoder head for cleaner, more DETR-aligned behavior.

This update also standardizes inference outputs to:

[cx, cy, w, h, score, class]

The result is simpler and more consistent predict and val logic, with better maintainability for RT-DETR users.

:package: Edge TPU export is more robust

In #24383, @lakshanthad improved Edge TPU export behavior.

If you export to Edge TPU without int8=True, Ultralytics now warns earlier and auto-enables it, helping prevent confusing failures later in the export pipeline. This should make deployment workflows more straightforward and easier to debug.

:globe_with_meridians: Remote checkpoint loading expanded

In #24395, @glenn-jocher improved remote checkpoint URI resolution.

Supported remote prefixes are now centralized and loading behavior is more consistent across paths, including support for pretrained=ul://... in the same way other remote model references are resolved.

Improvements

:broom: Stability fixes across loaders, Platform session handling, and solutions

#24397 by @glenn-jocher includes several bug fixes that improve correctness and reliability:

  • Fixed loader counter initialization issues
  • Fixed tensor path generation bugs
  • Fixed a possible unbound variable in file speed checks
  • Fixed Platform warning message formatting
  • Included small analytics and heatmap cleanups for correctness and efficiency

:warning: YOLOE validation guardrail

In #23982, @ahmet-f-gumustas added a helpful validation warning for YOLOE.

Ultralytics now warns when refer-data class names do not match evaluation dataset class names, helping users catch silent validation mistakes earlier.

:bar_chart: Cleaner results serialization

In #23909, @glenn-jocher improved results serialization by normalizing mask and keypoint summary values to Python floats and truncating them cleanly to 5 decimals.

This makes outputs more JSON- and API-friendly for downstream applications.

Bug Fixes

:framed_picture: Safer imread() behavior

In #24406, @Y-T-G updated imread() to return None on missing or unreadable files, matching common cv2.imread expectations instead of crashing.

This is a small but meaningful fix for production pipelines that need predictable failure handling.

:wrench: CI maintenance

#24396 by @UltralyticsAssistant bumps the Slack GitHub Action from v3.0.2 to v3.0.3 in workflows.

Quick impact

This release is especially helpful for:

  • CLI users using yolo solutions heatmap, where documented colormap syntax now works correctly :tada:
  • Deployment teams exporting to Edge TPU or loading remote checkpoints
  • RT-DETR users who benefit from cleaner post-processing behavior
  • Production pipelines that rely on safer I/O, cleaner serialization, and fewer edge-case failures

In short: v8.4.47 is less about flashy features and more about making Ultralytics tooling more trustworthy, consistent, and developer-friendly :rocket:

What changed

Try it out

You can upgrade with:

pip install -U ultralytics

Then explore the latest release on GitHub Releases for v8.4.47, or review the full diff in the v8.4.46 to v8.4.47 changelog.

As always, give it a try and let us know how it works for your workflows. Feedback, testing, and bug reports from the community help make Ultralytics YOLO better for everyone :raising_hands: