Skip to content

v8.4.123 - Accept existing depth dataset formats (#25859)

Latest

Choose a tag to compare

@github-actions github-actions released this 19 Aug 13:46
c00fbea

🌟 Summary

Ultralytics 8.4.123 expands depth-estimation dataset compatibility, allowing standard scaled PNG and floating-point NPY depth maps to be used directly across training, NDJSON conversion, and Ultralytics Platform workflows. 🚀

📊 Key Changes

  • 🗂️ Broader depth format support

    • Accepts plain 16-bit grayscale PNG depth maps.
    • Adds support for floating-point .npy depth maps with values stored in meters.
    • PNG files no longer require Ultralytics-specific embedded metadata.
  • ⚙️ Configurable depth scaling

    • Adds the optional depth_scale dataset YAML field.
    • Defaults to 1000, meaning PNG values are interpreted as millimeters.
    • Supports datasets with other conventions, such as KITTI (256) and Virtual KITTI 2 (100).
  • 🔗 Improved dataset pairing and validation

    • Depth files are matched by filename stem in parallel images/ and depth/ directories.
    • PNG files are preferred, with automatic fallback to NPY files.
    • Depth maps may use a smaller resolution than RGB images when their aspect ratios match.
    • Invalid values, including zero, NaN, and infinity, are safely handled.
  • 📥 NDJSON depth dataset support

    • Depth records now only require a paired depth.url.
    • Dataset-level depth_scale is preserved when converting NDJSON to YOLO format.
    • Large downloads are processed in batches to reduce memory usage.
  • ☁️ Ultralytics Platform integration

    • Depth datasets can now be uploaded, exported, and used for training on the Platform.
    • NDJSON exports include the depth task, scaling configuration, and paired depth URLs.
    • Depth estimation is now fully listed among the Platform’s supported task types.
  • 🧰 Dataset configurations updated

    • Built-in depth datasets now preserve their native storage scales instead of converting everything to meter-based metadata PNGs.
    • Documentation and tests were updated for ARKitScenes, DIODE, KITTI, TartanAir, Virtual KITTI 2, Depth8, and other depth datasets.

🎯 Purpose & Impact

  • Easier dataset adoption: Existing depth datasets can be used with less preprocessing and fewer custom conversion scripts.
  • 📦 Simpler, more portable files: Plain PNG and NPY formats work with common tools and do not depend on special PNG metadata.
  • 🎯 More accurate dataset handling: Dataset-specific scales preserve the intended precision and depth range.
  • 🚀 End-to-end depth workflows: Users can now prepare, upload, convert, and train depth datasets through the Ultralytics Platform.
  • ⚠️ Migration consideration: Older self-describing Ultralytics depth PNGs that rely on embedded metadata may need to be converted to the new scaled PNG format. See the depth dataset format documentation.

What's Changed

Full Changelog: v8.4.122...v8.4.123