Ultralytics v8.4.123: Expanded Depth Dataset Support
Ultralytics v8.4.123 makes depth-estimation datasets easier to adopt across training, NDJSON conversion, and Ultralytics Platform workflows. Standard scaled PNG files and floating-point NPY depth maps now work directly, reducing preprocessing and improving dataset portability. ![]()
New Features
Broader depth format support
- Use standard 16-bit grayscale PNG depth maps without Ultralytics-specific embedded metadata.
- Load floating-point
.npydepth maps containing values in meters. - Match depth files by filename stem across parallel
images/anddepth/directories. - Prefer PNG files automatically, with fallback to NPY files.
Configurable depth scaling
Dataset YAML files now support an optional depth_scale field:
depth_scale: 1000
The default value is 1000, interpreting PNG values as millimeters. Other native dataset conventions are also supported, including:
- KITTI:
256 - Virtual KITTI 2:
100
This preserves each dataset’s intended precision and depth range without requiring custom conversions.
NDJSON depth dataset support
- Depth records now require only a paired
depth.url. - Dataset-level
depth_scalevalues are retained during NDJSON-to-YOLO conversion. - Large downloads are processed in batches to reduce memory usage.
Ultralytics Platform Improvements
Depth datasets can now be uploaded, exported, and used for training through the Ultralytics Platform, enabling a more complete end-to-end depth workflow.
NDJSON exports now include:
- The depth task type
- Depth scaling configuration
- Paired depth URLs
Depth estimation is also fully listed among the Platform’s supported task types. ![]()
Validation and Reliability Improvements
- Depth maps may have a lower resolution than their paired RGB images when aspect ratios match.
- Invalid depth values—including zero, NaN, and infinity—are handled safely.
- PNG-to-NPY fallback improves compatibility with mixed-format datasets.
- Batched processing reduces memory pressure during large dataset downloads.
Dataset Configuration Updates
Built-in depth datasets now retain their native storage scales instead of converting all data into meter-based metadata PNGs.
Documentation and tests were updated across ARKitScenes, DIODE, KITTI, TartanAir, Virtual KITTI 2, Depth8, and additional depth datasets. The updated depth dataset format documentation explains the supported structure and scaling behavior in detail.
Migration Note
Older self-describing Ultralytics depth PNGs that depend on embedded metadata may need conversion to the new scaled PNG format. Review the depth dataset documentation before migrating existing pipelines.
What Changed
This release was implemented in PR #25859: Accept existing depth dataset formats, contributed by GitHub author @glenn-jocher.
You can review every change in the v8.4.122 to v8.4.123 full changelog, including the associated code, documentation, and test updates.
Try It Today
Upgrade to the latest release:
pip install -U ultralytics
Visit the Ultralytics v8.4.123 release page for the official release details, then try your existing PNG or NPY depth datasets and share your feedback with the community. ![]()