π Summary
Ultralytics v8.4.7 adds AVIF training support and a new COCO12-Formats mini-dataset to continuously verify that all supported image types load correctly end-to-end (especially in CI) π§ͺπΌοΈ
π Key Changes
- AVIF is now a supported training image format β
π·
IMG_FORMATSexpanded to includeavif
- More robust image decoding for modern formats π‘οΈ
- Adds a Pillow-based fallback image reader (
_imread_pil) for cases where OpenCV canβt decode AVIF/HEIC
- Adds a Pillow-based fallback image reader (
- New βCOCO12-Formatsβ dataset + generator script π§°
- A tiny 12-image dataset covering all supported extensions (AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP)
- Includes a dataset YAML and a generator (
generate_coco12_formats.py) to build the set for testing/validation - Adds a dedicated docs page and links it in the dataset index π
- Training and tooling reliability improvements π§
- Fixes loss image-size calculation for OBB and Pose26 multi-scale training π
- Fixes semantic segmentation masking/indexing for overlapping instances π§©
- More accurate optimizer parameter-group logging π§Ύ
- Adds retry + validation for dataset image downloads (NDSON) ππ₯
- Install/export stability & experiment tracking π¦π
- Pins torch < 2.10 to prevent ExecuTorch export incompatibilities π§·
- Saves runs under
runs/by default for relative projects + improves W&B traceability ποΈ
- Docs updates (large) πβ‘
- Docs images migrated to a CDN and improved alt text for accessibility/SEO
π― Purpose & Impact
- Train directly on AVIF images without manual conversion π
- Useful for modern web/phone pipelines where AVIF is common
- Fewer βit works on my machineβ image-loading failures π§―
- The new COCO12-Formats dataset is designed to catch format-specific decoding issues early, especially in CI/CD
- Better resilience across environments π
- Pillow fallback reduces dependence on how OpenCV was built (many prebuilt OpenCV wheels lack AVIF support)
- More reliable training & clearer debugging π
- Fixes reduce subtle scaling bugs (Pose/OBB), segmentation masking issues, and misleading optimizer logs
- Smoother installs/exports and cleaner run management π
- Dependency pin helps prevent breakage; run folder changes improve organization and experiment tracking
What's Changed
- Fix docs images content disposition by @glenn-jocher in #23322
- Docs images cleanup by @glenn-jocher in #23323
- Fix the length of optimizer params group print by @Laughing-q in #23314
- Platform docs by @glenn-jocher in #23338
- Route outputs to
runs/by default and improve W&B run traceability by @artest08 in #23026 - fix image size calculation in OBB and Pose26 loss for multi-scale training by @lmycross in #23342
- fix: π pin torch version to <2.10 for executorch export by @onuralpszr in #23353
- fix semantic segmentation loss indexing error by @lmycross in #23330
- Retry NDSON download failures by @glenn-jocher in #23354
- Fix
multi_scalerange sampling and clarify docs by @artest08 in #23284 ultralytics 8.4.7AVIF training and new COCO12-Formats dataset by @glenn-jocher in #23358
New Contributors
Full Changelog: v8.4.6...v8.4.7