π Summary
Ultralytics v8.4.47 is a reliability-focused release that fixes a key CLI bug for heatmap colormaps π¨, while also improving RT-DETR post-processing, remote checkpoint loading, Edge TPU export behavior, and several stability edge cases across loaders and I/O β .
π Key Changes
-
π₯ Most important (current PR #24219 by @raimbekovm): CLI colormap parsing fixed for Solutions Heatmap
- Commands like
colormap=cv2.COLORMAP_INFERNOnow work as documented. - Previously, these values were passed as raw strings and could fail in OpenCV.
- Parser now safely resolves allowed
cv2.<UPPERCASE_CONSTANT>values to numeric constants, with security protections still in place π‘οΈ.
- Commands like
-
RT-DETR got a meaningful post-processing upgrade (PR #24403 by @artest08)
- Top-k selection moved into the decoder head (more aligned with DETR-style behavior).
- Inference output format is now cleaner and standardized as
[cx, cy, w, h, score, class]. - Predict/val code is simpler and more consistent.
-
Edge TPU export is now more robust and explicit (PR #24383 by @lakshanthad)
- If exporting to Edge TPU without
int8=True, Ultralytics now warns and auto-enables it early. - Reduces confusing late-stage failures during export.
- If exporting to Edge TPU without
-
Remote checkpoint URI support improved (PR #24395 by @glenn-jocher)
- Centralized supported remote prefixes and expanded consistency across loading paths.
pretrained=ul://...now resolves like other remote model references π.
-
Multiple bug fixes across data loading, hub session, and solutions (PR #24397 by @glenn-jocher)
- Fixed loader counter initialization and tensor path generation bugs.
- Fixed potential unbound variable in file speed checks.
- Fixed HUB warning message formatting.
- Minor analytics/heatmap cleanup for correctness and efficiency.
-
Safer image reading behavior (PR #24406 by @Y-T-G)
imread()now returnsNoneon missing/unreadable files (matching commoncv2.imreadexpectations), instead of crashing.
-
YOLOE validation guardrail added (PR #23982 by @ahmet-f-gumustas)
- Warns when refer-data class names donβt match eval dataset class names, helping catch silent validation mistakes β οΈ.
-
Results serialization improvements (PR #23909 by @glenn-jocher)
- Mask/keypoint summary values are normalized to Python floats and rounded cleanly for better JSON/API compatibility.
-
CI maintenance update (PR #24396 by @UltralyticsAssistant)
- Slack GitHub Action bumped from
v3.0.2tov3.0.3in workflows.
- Slack GitHub Action bumped from
π― Purpose & Impact
- For CLI users of
yolo solutions heatmap: documented colormap syntax now behaves correctly out of the box π. - For deployment workflows: Edge TPU exports and remote weight loading are more predictable and less error-prone.
- For RT-DETR users: post-processing is more model-native and maintainable, with potential quality/selection behavior benefits.
- For production pipelines: better failure handling (
imread), cleaner serialization, and several bug fixes reduce runtime surprises. - Overall: this release is less about flashy new UI and more about making Ultralytics tooling more trustworthy, consistent, and developer-friendly π.
What's Changed
- Fix Edge TPU INT8 calibration when
dataarg is not passed by @lakshanthad in #24383 - Bump slackapi/slack-github-action from v3.0.2 to v3.0.3 in /.github/workflows by @UltralyticsAssistant in #24396
- Fix latent bugs across loaders, hub session, and solutions by @glenn-jocher in #24397
- Resolve platform URIs for checkpoint loading by @glenn-jocher in #24395
- Add refer data and eval dataset class name consistency check for YOLOE validation by @ahmet-f-gumustas in #23982
- Return
Noneinimreadon read failure to matchcv2.imreadby @Y-T-G in #24406 - Add top-k post-processing to RT-DETR decoder head by @artest08 in #24403
- Truncate results to 5 decimals by @glenn-jocher in #23909
ultralytics 8.4.47Fix CLI parsing for solution colormap values by @raimbekovm in #24219
Full Changelog: v8.4.46...v8.4.47