๐ Summary
v8.4.203 adds NXP i.MX95 Neutron NPU export for YOLO models, plus security improvements and fixes across training, inference, tracking, and visualization.
๐ Key Changes
- ๐ NXP i.MX95 export: Export with
format=nxpto create an INT8 LiteRT model compiled using Neutron SDK 3.3.0. The export supports all seven YOLO tasks and uses the existing LiteRT inference backend with NXPโs delegate. It targets i.MX95 only; unsupported operations may run on the CPU. - ๐ Safer loading: Dataset caches now use a restricted unpickler. Checkpoints no longer trigger automatic package installation, and SAM, NAS, YOLO-World, and YOLOE loading paths use safer weights-only loading where supported.
- ๐ง Training fixes: YOLOE text-prompt training now handles smaller class counts correctly, hand-keypoint flips preserve landmark assignments, and deterministic semantic-segmentation loss computation is faster.
- ๐ฏ Inference and tracking fixes: Tracker assignment now finds better matches in the SciPy fallback. FastSAM box prompts that miss all masks select none, and SAM prompts remain usable after an interrupted โsegment everythingโ call.
- ๐ผ๏ธ Utility improvements: Fixed mask-IoU behavior across data types, backend precision updates after model conversions, ExecuTorch capture issues, binary semantic-mask rendering, and PIL text placement.
- ๐ Dataset workflow updates: Argoverse now downloads and converts through Ultralytics Platform instead of Google Drive. Documentation also clarifies how dataset subsets are selected and adds NXP to the listed export options.
๐ฏ Purpose & Impact
- NXP i.MX95 users can compile YOLO models for Neutron hardware using the existing export and inference workflows. Validate accuracy, latency, and CPU fallback on the target board before deployment.
- Safer loading reduces risks from untrusted cache and model files; missing checkpoint dependencies now raise an error rather than being installed automatically.
- The reliability fixes address issues that could cause incorrect matches, unexpected masks, training failures, or plotting errors.
- Faster deterministic semantic-loss computation can reduce training overhead, though the reported speedups are focused measurements rather than guarantees of end-to-end training speed.
What's Changed
- Fix suboptimal matches in tracker assignment fallback and skip unused lap cost by @Y-T-G in #27026
- Runner CPU image: Chromium system libraries for Playwright screenshots by @glenn-jocher in #27030
- Remove Google Drive downloads and use Platform for Argoverse by @onuralpszr in #27033
- Use weights only loading for SAM and NAS checkpoints by @Y-T-G in #27032
- Check for sudo with shutil.which instead of a shell call by @onuralpszr in #27034
- Map hand-keypoints flip_idx to identity so flipped hands keep their landmarks by @raimbekovm in #27024
- Stop auto-installing packages named by untrusted checkpoints by @onuralpszr in #27035
- Clarify fraction subset selection for image-folder datasets by @JaypeeLan in #27029
- Remove duplicate Platform training command serialization by @laodouya in #27004
- Plot only the foreground of binary semantic masks by @raimbekovm in #27025
- Speed up semantic segmentation training 2.8x under deterministic mode by @Y-T-G in #27027
- Accept tuple coordinates in
Annotator.textwith PIL fonts by @MohammadHijjawi97 in #27038 - Load dataset cache files with a restricted unpickler by @onuralpszr in #27041
- Select nothing for FastSAM box prompts that overlap no mask by @raimbekovm in #27043
- Keep SAM prompts working after an interrupted segment-everything call by @raimbekovm in #27046
- Promote non-float masks to float32 in mask_iou by @cainiao33 in #27039
- Synchronize backend precision after module conversions by @aswanth-07 in #27040
- Capture ExecuTorch exports on CPU to fix wrong MPS output and CUDA crashes by @raimbekovm in #27044
- Load YOLO-World and YOLOE text embedding caches with weights_only by @onuralpszr in #27045
- Fix YOLOE prompt losses and CPU runner image builds by @raimbekovm in #27048
- Add NXP i.MX95 Neutron export by @glenn-jocher in #27047
New Contributors
- @JaypeeLan made their first contribution in #27029
Full Changelog: v8.4.202...v8.4.203