π Summary
YOLO 8.4.190 improves YOLO26 segmentation training by making label assignment consider mask quality as well as box overlap, alongside fixes for model export, inference, training utilities, and data handling.
π Key Changes
- π YOLO26-seg mask-aware training: Positive training matches now account for both box and mask overlap. The implementation limits mask decoding and uses safer precision to control memory use and avoid numerical overflow. Other segmentation models and inference/export behavior are unchanged.
- π± More reliable CoreML support: Fixes address duplicate detections in segmentation exports, floating-point output crashes on MPS, and unnecessary NumPy downgrades during inference. Oriented-box NMS also receives a precision fix.
- π§ RKNN depth INT8 export: Depth models can now be exported in INT8, with hybrid precision to keep error-prone layers in FP16. Calibration should use paired depth maps covering the deployment sceneβs depth range.
- β‘ Inference and training improvements: OpenVINO CPU inference can load upcoming batches while the current batch runs. AutoBatch better accounts for GPU memory available to the process when selecting a batch size.
- ποΈ Data and usability fixes: NDJSON conversion skips unlabeled classification images instead of treating them as class 0. FastSAM handles text prompts when no masks qualify, and region-drawing solutions accept floating-point coordinates.
- π Faster segmentation validation: COCO mask RLE encoding is vectorized, reducing encoding time in tested workloads.
- π Documentation and tooling: Platform docs clarify dataset and project cloning options, mobile export links, and annotation model comparisons. The CPU runner also includes English Tesseract data for scanned-PDF workflows.
π― Purpose & Impact
- YOLO26 segmentation training can make assignments that better reflect mask quality, while keeping mask-specific work bounded in computation and memory.
- Users exporting or running models on Apple and Rockchip hardware should encounter fewer precision-related issues and gain support for depth-model INT8 export on RKNN.
- Better batch sizing and CPU prefetching may improve GPU utilization and OpenVINO CPU throughput, while the data and prompting fixes prevent common failures or misleading labels.
What's Changed
- Link docs VLM copy to the VLM Leaderboard and Platform model pages by @glenn-jocher in #26884
- Skip unlabeled NDJSON classification images instead of assigning class 0 by @reubenjrouse in #26865
- Avoid unnecessary NumPy downgrade during CoreML inference by @amanharshx in #26863
- Fix duplicate detections in CoreML segmentation NMS exports by @amanharshx in #26862
- Add Tesseract OCR to the CPU runner image by @glenn-jocher in #26893
- Vectorize the RLE string encoding in segment val save_json by @raimbekovm in #26898
- Raise semantic single_cls rejection before the mask scan by @raimbekovm in #26891
- Align Platform docs with partial clones, predict examples, providers and the mobile import link by @raimbekovm in #26888
- Fix SolutionAnnotator crash on floating-point region coordinates by @Rahulbiradar9 in #26895
- Fix float64 CoreML outputs crashing inference on MPS by @amanharshx in #26896
- Prefetch images during OpenVINO CPU inference by @var1914 in #26897
- Allow RKNN INT8 export for depth models by @Bovey0809 in #26885
- Handle FastSAM text prompts with no eligible masks by @aswanth-07 in #26830
- Fix AutoBatch memory accounting and size batches from available GPU memory by @raimbekovm in #26894
- Fix FP16 OBB embedded NMS precision by @wpyaoxueros in #26823
- Parse YOLO_AUTODEVICE_FRACTION_FREE as a float in CUDA tests by @fcakyon in #26900
ultralytics 8.4.190Mask-IoU-aware label assignment for YOLO26-seg by @Bovey0809 in #26773
New Contributors
- @var1914 made their first contribution in #26897
- @reubenjrouse made their first contribution in #26865
- @wpyaoxueros made their first contribution in #26823
Full Changelog: v8.4.189...v8.4.190