π Summary
v8.4.165 improves package compatibility, export and inference reliability, and dataset handling, with several targeted fixes for model outputs and vision workflows.
π Key Changes
- π¦ Cleaner Python wheel installation (current PR #26408): Test files are no longer installed as a top-level
testspackage, avoiding conflicts with other projects. Tests remain in the source distribution so Conda builds can still run them. - π More reliable exports and inference: ONNX export now checks that the requested opset is high enough for the model and reports a clear error if it is not. Windows OpenVINO inference also avoids a CPU instruction path that could crash on some machines.
- π Improved depth and semantic outputs: Depth resizing now follows the same alignment convention used during training and validation. Saved semantic prediction masks are restored to the original image size without letterbox padding, and invalid semantic class IDs are flagged during dataset scanning.
- π§Ή Safer, more consistent dataset processing: Fixes cover whitespace-only labels, distinct segmentation polygons that share a bounding box, repeatable classification dataset splits, older Albumentations versions, and nested paths in COCO/LVIS conversion. Multispectral conversion now keeps source images if outputs collide or fail to write.
- π― More accurate vision utilities: Corrected flips for left-top-width-height boxes, kept tracked pose keypoints colored by track ID, improved distance-calculation selection, and fixed class histories in analytics charts.
- π οΈ Documentation and CI updates: Clarified Platform annotation and image-search guidance, corrected Ascend device mappings, and updated runner versions and test behavior.
π― Purpose & Impact
- β
Fewer installation surprises: The wheel no longer shadows other packagesβ
testsimports, while source-based Conda builds retain the tests they need. - π§ͺ Clearer failure feedback and more dependable deployment: Unsupported ONNX opsets fail early with an actionable message, and Windows OpenVINO is less prone to native crashes.
- π More trustworthy training and evaluation: Dataset issues are caught earlier, repeated classification splits stay consistent, and saved semantic masks and depth outputs better match their intended image geometry.
- π‘οΈ Reduced risk of losing data: Failed or colliding multispectral conversions no longer silently delete original images.
What's Changed
- Fix Windows OpenVINO crashes and CI runtime warnings by @glenn-jocher in #26317
- Update GitHub Actions runner to 2.337.0 in runner images by @glenn-jocher in #26375
- Refresh AGENTS.md: stale docformatter claim and workflow guidance by @glenn-jocher in #26381
- Treat unreadable paths as missing in check_file by @glenn-jocher in #26382
- Docs: fix swapped Ascend310B1/B4 device mapping in Ascend export table by @Tsingxuan in #26394
- Fix custom spatial Albumentations lists on detection labels with older albumentations releases by @raimbekovm in #26399
- Fix flips of left-top-width-height instance boxes by @Nikhi00718 in #26397
- Cap oneDNN below AMX for Windows OpenVINO inference by @glenn-jocher in #26403
- Fail fast on xdist worker crashes in CI by @glenn-jocher in #26405
- Color tracked keypoints by track ID in
Results.plotinstance mode by @MohammadHijjawi97 in #26389 - Update Platform docs for annotator panning, blur faces, and similar image search by @raimbekovm in #26401
- Select one object per click in DistanceCalculation by @MohammadHijjawi97 in #26402
- Skip whitespace-only lines when parsing label files by @cainiao33 in #26391
- Use align_corners=True for depth export and predict resize by @cainiao33 in #26393
- Name the grounding data format for from-scratch World trainers and document the empty background class by @raimbekovm in #26398
- Keep classification auto-split deterministic so re-runs do not leak val into train by @MohammadHijjawi97 in #26387
- Fix Analytics area chart mixing up class histories by @MohammadHijjawi97 in #26386
- Create label subfolders in convert_coco when file_name has a directory by @MohammadHijjawi97 in #26388
- Keep originals when multispectral conversion collides or fails to write by @Vaishnavi220506 in #26406
- Write LVIS image lists relative to the list file in convert_coco by @MohammadHijjawi97 in #26390
- End the scale_masks crop at the letterbox content when the padding is odd by @Nicholas022400701 in #26379
- Write the semantic val PNG masks at the original image size without the letterbox padding by @Nicholas022400701 in #26385
- Ignore empty paths in TXT and CSV prediction sources by @aswanth-07 in #26371
- Compare the polygons, not their boxes, when dropping duplicate segment labels by @Nicholas022400701 in #26377
- Check minimum ONNX opset before export by @onuralpszr in #26396
- Reject semantic masks with unmapped class ids at scan by @cainiao33 in #26392
- Stop installing top-level
testspackage from the wheel by @Y-T-G in #26408
New Contributors
- @Tsingxuan made their first contribution in #26394
Full Changelog: v8.4.164...v8.4.165