π Summary
Ultralytics v8.4.54 is led by a big new deployment feature: local Qualcomm QNN export for Snapdragon devices π±β‘, plus several quality-of-life improvements for Solutions, export docs, tuning compatibility, and data-loading reliability.
π Key Changes
-
π New
qnnexport format for Qualcomm Snapdragon devices- You can now export YOLO models to Qualcomm QNN with
format="qnn". - This compiles a model locally into a QNN-ready package using ONNX Runtimeβs QNN Execution Provider.
- No Qualcomm account, no cloud upload, and no separate Qualcomm SDK download are required.
- Works with Snapdragon targets including CPU, GPU, and Hexagon NPU paths.
- Example:
from ultralytics import YOLO model = YOLO("yolo26n.pt") model.export(format="qnn")
- You can now export YOLO models to Qualcomm QNN with
-
π¦ New QNN backend support for inference/validation workflows
- Exported QNN models can now fit into the normal Ultralytics workflow more cleanly.
- QNN is registered as a supported export target, with dedicated backend and docs support.
- End-to-end export is automatically disabled for QNN where unsupported, helping avoid invalid configurations.
-
π Major export documentation cleanup and standardization
- Integration docs across many formats were reorganized into a clearer Export / Predict / Validate structure.
- A full new guide for Qualcomm QNN was added.
- This makes deployment paths easier to understand across formats like ONNX, TensorRT, OpenVINO, NCNN, TFLite, CoreML, and more.
-
πΌοΈ
imgszadded to all Ultralytics Solutions- All Solutions now support the
imgszargument, giving users direct control over inference input size. - This also improves logging so reported input shapes better reflect the real model input.
- All Solutions now support the
-
π οΈ Better robustness for segmentation and image caching
- Fixed semantic segmentation mask loading when masks appear as
(H, W, 1)instead of plain single-channel arrays. - Fixed stale
.npyimage cache issues that could cause grayscale models to accidentally load RGB data.
- Fixed semantic segmentation mask loading when masks appear as
-
π§ Tracking utility optimization
- Reduced some SciPy dependency usage in tracking internals by replacing parts with NumPy equivalents.
- This helps simplify dependencies and improve maintainability.
-
π― Ray Tune compatibility improvement
- Updated tuner trial ID handling to work correctly with Ray 2.7+ while keeping support for older versions.
-
π§Ύ Small but useful documentation updates
- Validation docs now include
show_labelsandshow_conf. - Prediction docs now explicitly list
.jpeg2000as a supported image format.
- Validation docs now include
-
π¬ Semantic segmentation loss dtype fix
- Improved dtype consistency in segmentation loss computation, especially helpful for mixed-precision training paths.
π― Purpose & Impact
-
π± Big win for edge/mobile deployment
- The new QNN export makes it much easier to deploy YOLO on Qualcomm Snapdragon hardware.
- This is especially valuable for mobile, embedded, automotive, and low-power AI use cases.
-
β‘ Faster path to production on Snapdragon
- Users can now go from a standard YOLO model to a Snapdragon-ready export without extra accounts or vendor tooling setup.
- That lowers friction for developers evaluating on-device AI.
-
π§© More consistent deployment experience
- Standardized export docs make it easier for both beginners and experienced users to compare formats and follow the right steps.
-
ποΈ More control in packaged Solutions
- Adding
imgszto Solutions gives users a simple way to trade off speed vs. accuracy, just like in normal YOLO inference.
- Adding
-
π‘οΈ More reliable training and inference
- The mask-loading and grayscale cache fixes reduce confusing failures caused by edge-case dataset formats or stale cache files.
-
π Better compatibility with modern tooling
- Ray Tune improvements help users keep hyperparameter tuning workflows working across newer environments.
-
π Cleaner debugging and validation visuals
- The documented
show_labelsandshow_confoptions make validation outputs easier to customize for analysis.
- The documented
Overall, v8.4.54 is a strong release for anyone interested in device deployment, especially on Qualcomm Snapdragon, while also tightening up reliability and usability across the broader Ultralytics ecosystem π
What's Changed
- Docs: add show_labels and show_conf val args by @K-saif in #24571
- Scope scipy imports and optimize
embedding_distancewith NumPy by @Laughing-q in #24572 - Revert
_gaussian_smoothchanges by @Laughing-q in #24575 - Match aux_loss dtype to ce_loss in SemanticSegmentationLoss by @ahmet-f-gumustas in #24576
- Add
imgszsupport to all Ultralytics Solutions by @Laughing-q in #24579 - Fix: Squeeze single-channel 3D mask arrays from patched
cv2.imreadby @Laughing-q in #24582 - Fix grayscale test failure from stale .npy cache files by @Laughing-q in #24583
- Add jpeg2000 to predict images formats table by @raimbekovm in #24588
- Fix tuner trial ID retrieval for Ray 2.7+ compatibility by @lmycross in #24590
ultralytics 8.4.54Qualcomm QNN export by @glenn-jocher in #24591
Full Changelog: v8.4.53...v8.4.54