pypi ultralytics 8.4.15
v8.4.15 - `ultralytics 8.4.15` HEIC/HEIF image support (#23714)

5 hours ago

๐ŸŒŸ Summary (single-line synopsis)

Ultralytics v8.4.15 improves real-world image ingestion (adds HEIC/HEIF + HEIF support with lazy decoding + better EXIF handling) and includes several quality fixes for metrics, exports, and docs ๐Ÿ–ผ๏ธโš™๏ธโœ…

๐Ÿ“Š Key Changes

  • HEIC/HEIF image support (priority change) ๐Ÿ–ผ๏ธ๐Ÿ“ฑ
    • Added ultralytics.utils.patches.image_open and monkey-patched PIL.Image.open to lazily enable HEIC/HEIF decoding via pi-heif only when needed (i.e., on first decode failure) โฑ๏ธ
    • Expanded supported extensions to include .heif (in addition to .heic) โœ…
    • Removed HEIC-specific loading code from dataset loaders (now unified through the standard image reading pathway) ๐Ÿงน
  • Better plotting for nonโ€‘Latin text ๐Ÿˆถ๐Ÿ–‹๏ธ
    • Improves matplotlib defaults by prioritizing Arial Unicode MS and auto-registering .ttf fonts from the Ultralytics user config directory for stronger multilingual rendering.
  • EXIF auto-rotation fix for list-of-path sources ๐Ÿ”„๐Ÿ–ผ๏ธ
    • Applies ImageOps.exif_transpose() when loading images from lists of paths/URLs, reducing โ€œsideways phone photoโ€ issues.
  • Validation/metrics correctness fix (important for accuracy reporting) ๐ŸŽฏ๐Ÿ“ˆ
    • Fixes SciPy-based matching (match_predictions) to maximize IoU during assignment (previously could choose the worst matches), which can affect TP/FP classification and mAP when use_scipy=True.
  • IMX (Sony IMX500) export improvements ๐Ÿ“ฆ๐Ÿค–
    • Enables IMX export on Linux ARM64 (removes an ARM64 block), adds dependency support, and improves test gating.
    • Adds segmentation as a supported IMX export/benchmark task โœ…
  • Usability improvement: Results.save() ๐Ÿ’พ๐Ÿ“
    • Adds create_dir parameter (default True) to control auto-creation of parent directories when saving annotated outputs.
  • Dev/CI reliability updates ๐Ÿงช๐Ÿ—๏ธ
    • CI now tests newer PyTorch versions (2.8/2.9) and makes export tests less flaky by skipping TFLite export tests unless torch>=1.13 on Linux.

๐ŸŽฏ Purpose & Impact

  • More โ€œit just worksโ€ image input ๐Ÿ–ผ๏ธโœ…
    • HEIC/HEIF (common on iPhones) can be used directly for training/inference with fewer manual conversions, while lazy loading avoids paying the dependency cost unless you actually need it.
  • Fewer confusing orientation bugs ๐Ÿ“ฑโžก๏ธ๐Ÿ–ฅ๏ธ
    • EXIF transpose handling reduces rotated/sideways images that can break visualization, training data review, and inference outputs.
  • More trustworthy evaluation metrics ๐Ÿ“ˆ๐Ÿง 
    • The IoU matching fix ensures SciPy-based evaluation behaves as intended, preventing artificially worse results or incorrect TP/FP assignment when that path is enabled.
  • Better edge/export support on ARM ๐Ÿงฉ๐Ÿš€
    • IMX export on ARM64 + segmentation support expands deployment options for embedded and edge workflows.
  • Smoother workflows & sharing outputs ๐Ÿ’พโœจ
    • Results.save(create_dir=True) makes saving predictions into new folders simpler (fewer โ€œdirectory not foundโ€ errors).
  • Improved global documentation and plots ๐Ÿˆถ๐Ÿ“š
    • Better multilingual font defaults help teams with nonโ€‘Latin labels produce clearer charts/figures.

If youโ€™re deploying/training with mixed photo sources (phones, HEIC libraries, multilingual labels), 8.4.15 is a practical upgrade ๐Ÿ› ๏ธ๐Ÿš€

What's Changed

New Contributors

Full Changelog: v8.4.14...v8.4.15

Don't miss a new ultralytics release

NewReleases is sending notifications on new releases.