🌟 Summary
v8.4.209 makes concurrent YOLO predictions more reliable and includes targeted fixes for validation, exports, and device-specific inference.
📊 Key Changes
- Correct results for concurrent requests: Each prediction now applies its own settings—such as confidence threshold, IoU threshold, and image size—while holding the predictor’s inference lock. This prevents one request from accidentally using another request’s settings. The shared predictor still processes calls one at a time, so this improves correctness rather than parallel throughput.
- More accurate validation filtering:
val(classes=[...])now filters predictions as well as ground-truth labels, so excluded classes are less likely to affect metrics or saved results. - Safer NCNN exports: NCNN does not support a batch axis. Requests to export with
batch > 1are now rejected before conversion, rather than potentially producing a model that crashes during prediction. - Fixes for specific hardware and precision cases: Updates address mask-IoU accuracy under mixed precision, ONNX Runtime thread usage, ONNX inference on Apple MPS, Core AI export on Apple silicon, and OpenVINO exports and benchmarks on Intel devices. Intel NPU INT8 exports also use a quantization setting intended to improve performance on supported models.
- Improved training and semantic-mask reliability: Fixes prevent large Platform training-completion requests from being rejected and preserve class IDs in certain palette-based semantic masks.
- Updated documentation and CI: Platform guidance and pricing pages were refreshed, DOTA licensing guidance was clarified, and GPU CI now reuses cached assets to reduce unnecessary downloads.
🎯 Purpose & Impact
- For teams serving many users: Shared-model prediction results are more dependable when requests use different settings, reducing the risk of returning incorrect detections.
- For model evaluation and deployment: Class-filtered validation better reflects the requested classes, while unsupported NCNN batch settings fail early with a clear error.
- For hardware users: Targeted backend fixes can prevent crashes, incorrect results, or slowdowns on affected Apple, Intel, and ONNX Runtime setups.
- For Platform and CI users: Training completion is more resilient for large-class datasets, and GPU CI is less dependent on repeated downloads from GitHub Releases.
What's Changed
- Keep Platform training completion under the request size limit and check requirement extras by @glenn-jocher in #27103
- Platform docs: Find similar license and private-dataset filters, Explore search by photo by @glenn-jocher in #27108
- Platform docs: Smart mode default, Explore table scrolling, token counts and export class colors by @pderrenger in #27110
- Platform docs: WeVisOne-VL 4B annotation model, DeepX runtime requirement, refreshed dialog screenshots by @pderrenger in #27112
- Cache YOLO11n weights before CI tests by @fcakyon in #27104
- docs: clarify DOTA model licensing and dataset provenance by @tandede in #27094
- Keep mask IoU accumulation outside caller autocast by @aswanth-07 in #27057
- Fix semantic masks saved with a short gray palette and
YOLO("rtdetr-l.yaml")builds by @cainiao33 in #27099 - Bound default ONNX Runtime thread pools by @fcakyon in #27090
- Install GPU CI requirements over the runner image's CUDA torch by @glenn-jocher in #27113
- Drop the GPU install step's unused pip flag by @glenn-jocher in #27114
- Remove hardcoded Platform GPU prices from docs by @glenn-jocher in #27115
- Platform docs: answer pricing and Enterprise License cost on the billing page by @pderrenger in #27119
- Platform docs: work-email signup credit, picker display names, refreshed model picker screenshot by @glenn-jocher in #27123
- Let GPU CI runners restore zstd-compressed Actions caches by @glenn-jocher in #27124
- Stop GPU CI from failing when GitHub Releases downloads fail by @glenn-jocher in #27125
- Platform docs: pose and OBB annotation screenshots on Hand Keypoints and DOTA v1.0 by @glenn-jocher in #27126
- Add Scene Text Platform dataset link by @Laughing-q in #27127
- Filter validation predictions by the requested classes by @raimbekovm in #27120
- Speed up assigner and semantic metric writes on MPS by @raimbekovm in #27050
- Reject batch>1 for NCNN export by @raimbekovm in #27116
- Run ONNX models on MPS as CoreML ML Programs to fix semantic crashes and CPU drift by @sohailshk in #27117
- Capture Core AI exports on CPU to fix failures with device=mps by @sohailshk in #27118
- Fix OpenVINO export and benchmark on Intel devices and use symmetric INT8 for NPU by @onuralpszr in #27128
- Add Claude Fable 5.2 to Platform annotation docs and fix LiteRT install on Python 3.14 by @glenn-jocher in #27133
- Platform docs: Annotate similar and Annotate all with visual examples, Hy4, Explore Images default, local monitoring dates by @pderrenger in #27134
- Update the Ultralytics Inference docs for ultralytics-inference 0.0.58 by @onuralpszr in #27139
- Correct results for every request when serving YOLO to many users at once by @glenn-jocher in #27140
New Contributors
- @sohailshk made their first contribution in #27117
Full Changelog: v8.4.208...v8.4.209