π Summary
Ultralytics v8.4.64 makes tracking easier and more reliable π―βespecially with new auto-downloaded YOLO26 ReID ONNX encodersβwhile also improving QNN export, multi-GPU training stability, logging, and export robustness π
π Key Changes
-
Tracking got a major usability upgrade with auto-downloaded YOLO26 ReID ONNX encoders π€π¦
You can now use built-in tracking ReID models likeyolo26n-reid.onnxthroughyolo26x-reid.onnxwithout manually downloading or exporting them first. -
Tracking ReID matching is more reliable when appearance features are missing π
TrackTrack now treats missing embeddings as βunknownβ instead of assuming they are bad matches, so it can fall back to motion cues more intelligently. -
QNN export for Qualcomm devices was significantly improved π±β‘
QNN models now export as a single self-contained*_qnn.onnxfile instead of a folder, with metadata embedded inside. The release also fixes architecture mapping, improves backend loading compatibility, and updates quantization behavior for better Snapdragon deployment. -
YOLO26x distributed training stability was fixed π§ π₯οΈ
A DDP deadlock issue affecting some multi-GPU training runs was resolved by restoring handling for unused parameters in conditional branches. -
MLflow failures no longer crash training ππ‘οΈ
If MLflow tracking setup or logging fails, training now continues instead of aborting the run. -
TensorFlow export subprocess calls are safer π
Edge TPU and TensorFlow.js export commands now avoid shell-based path handling issues, reducing problems with unusual file paths and improving security. -
Progress/logging output was cleaned up π₯οΈβ¨
Fixed premature100%progress display and console log duplication issues, especially useful in platform or remote logging environments. -
Version checking is more accurate β
parse_version()now consistently returns 3-part version tuples, fixing incorrect version comparisons like6.0vs6.0.0. -
FP16 quantization/export reliability was improved βοΈ
ONNX mixed-precision conversion now uses the correct input name and sample input shape, helping TensorRT/ModelOpt workflows work more consistently. -
Docs were refreshed across several areas π
Updates include clearer tracking/ReID docs, QNN docs, Conda install guidance, hyperparameter tuning explanations, TrackZone behavior, custom trainer checkpoint loading, OpenVINO benchmark references, and terminal visualization guidance.
π― Purpose & Impact
-
Easier multi-object tracking setup π
The headline change removes a common setup headache: users can now enable tracking ReID with ready-made YOLO26 ONNX encoders directly, making advanced tracking more accessible to both beginners and production teams. -
Better tracking quality in difficult scenes π₯
The ReID fallback improvement should reduce bad associations when objects are briefly occluded or appearance features are unavailable. -
Simpler Qualcomm deployment π±
QNN export is now easier to manage and deploy thanks to the single-file output format and improved compatibility across Snapdragon targets. -
More dependable training at scale π₯οΈ
Teams training larger YOLO26 models on multiple GPUs should see fewer hangs and more stable runs. -
Fewer pipeline interruptions π οΈ
MLflow and export-related fixes help ensure optional integrations do not stop core training or deployment workflows. -
Cleaner user experience β¨
Console logging and progress bar fixes make training output easier to trust and monitor, especially in shared platforms and dashboards. -
Lower friction for installation and documentation π
Updated guides make setup, tuning, export, and custom workflows easier to understand and reproduce.
In short, v8.4.64 is a tracking-focused quality-of-life release with especially strong benefits for users working with YOLO26 tracking, Qualcomm QNN deployment, and stable training/export pipelines π
What's Changed
- Fix
parse_versionto always return a 3-tuple by @bujna94 in #24680 - Update OpenVINO benchmarks version with
openvino==2026.2.0by @lakshanthad in #24691 - Fix MLflow callback crashing training when tracking backend setup fails by @raimbekovm in #24705
- docs: clarify tuning iterations and population size by @xiazl1993 in #24706
- Use argv lists for TensorFlow export subprocess calls by @raimbekovm in #24767
- Add note on reloading models with custom trainer classes by @Harshxth in #24739
- fix(trackers): TrackTrack ReID falls back to motion for missing-feature pairs by @Laughing-q in #24768
- Fix DDP deadlock for YOLO26x: re-add find_unused_parameters by @MeVeryHandsome in #24620
- Fix premature 100% in TQDM and ANSI clear-line leak in ConsoleLogger by @glenn-jocher in #24773
- Exclude boot/firmware partitions from SystemLogger drive list by @glenn-jocher in #24764
- Fix QNN HTP arch mapping, monolithic EP loading, and A16W8 quantization by @glenn-jocher in #24775
- Specify calibration data shape for FP16 quantization by @Y-T-G in #24779
- Improve Conda quickstart guide by @raimbekovm in #24781
- Improve terminal inference results guide by @raimbekovm in #24778
- Convert QNN export to a single ONNX file by @glenn-jocher in #24780
- Refactor TrackZone guide: fix FAQ example and document zone region behavior by @raimbekovm in #24772
- Update conda CUDA install pin to pytorch-cuda=12.1 by @raimbekovm in #24782
- Tracker ReID ONNX encoders autodownload by @onuralpszr in #24774
New Contributors
- @xiazl1993 made their first contribution in #24706
- @bujna94 made their first contribution in #24680
- @MeVeryHandsome made their first contribution in #24620
- @Harshxth made their first contribution in #24739
Full Changelog: v8.4.63...v8.4.64