docs/en/datasets/depth/diode.md
DIODE (Dense Indoor/Outdoor DEpth) is a real-world dataset with very high-quality dense depth ground truth captured by a FARO Focus survey-grade laser scanner. Uniquely, it covers both indoor and outdoor scenes with the same sensor, making it a high-precision bridge between short-range indoor and long-range outdoor depth for monocular depth estimation.
The DIODE depth dataset is split into two subsets:
Each sample consists of one RGB image and one paired uint16 depth PNG with 256 units per meter (depth_scale: 256), following the Ultralytics depth dataset format. This provides 3.90625 mm resolution while representing the full 80 m outdoor range.
DIODE is a training source in the Ultralytics YOLO26-Depth multi-dataset pretraining mix of roughly 2.19M image–depth pairs. It contributes high-precision dense ground truth that bridges indoor and outdoor domains within a single sensor, helping the model generalize across both short-range and long-range scenes. The resulting models are evaluated on the standard NYU, KITTI, Make3D, ETH3D, and iBims-1 benchmarks.
A YAML file is used to define the dataset configuration. It contains information about the dataset's paths, classes, and other relevant information.
!!! example "ultralytics/cfg/datasets/depth-diode.yaml"
```yaml
--8<-- "ultralytics/cfg/datasets/depth-diode.yaml"
```
To train a YOLO26n-depth model on the DIODE dataset with an image size of 640, you can use the following code snippets. For a comprehensive list of available arguments, refer to the model Training page.
!!! example "Train Example"
=== "Python"
```python
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-depth.pt") # load a pretrained depth model (recommended for training)
# Train the model
results = model.train(data="depth-diode.yaml", epochs=100, imgsz=640)
```
=== "CLI"
```bash
# Start training from a pretrained *.pt model
yolo depth train data=depth-diode.yaml model=yolo26n-depth.pt epochs=100 imgsz=640
```
The YOLO26 depth family is trained on the broad multi-dataset depth pretraining mix that DIODE is part of. These models auto-download from the latest Ultralytics release, for example YOLO26x-depth from v8.4.0, and span a range of sizes for different accuracy and resource requirements.
If you use the DIODE dataset in your research or development work, please cite the following paper:
!!! quote ""
=== "BibTeX"
```bibtex
@article{vasiljevic2019diode,
title={DIODE: A Dense Indoor and Outdoor DEpth Dataset},
author={Vasiljevic, Igor and Kolkin, Nick and Zhang, Shanyi and Luo, Ruotian and Wang, Haochen and Dai, Falcon Z. and Daniele, Andrea F. and Mostajabi, Mohammadreza and Basart, Steven and Walter, Matthew R. and Shakhnarovich, Gregory},
journal={arXiv preprint arXiv:1908.00463},
year={2019}
}
```
We would like to acknowledge the authors for creating and maintaining this valuable resource for the computer vision community.
DIODE captures both indoor and outdoor scenes with the same FARO Focus survey-grade laser scanner, producing very dense and accurate depth ground truth across short indoor and long outdoor ranges. This single-sensor coverage makes it a high-precision bridge between the indoor and outdoor domains in the YOLO26-Depth training mix.
The Ultralytics configuration provides 25,458 training and 771 validation image-depth pairs. Depth is stored as uint16 PNGs with 256 units per meter (depth_scale: 256), which keeps 3.9 mm resolution while covering the full 80 m outdoor range described in the Ultralytics depth dataset format.
Load a pretrained depth checkpoint and point data at the bundled YAML, for example yolo depth train data=depth-diode.yaml model=yolo26n-depth.pt epochs=100 imgsz=640. See the Usage section for the Python equivalent and the Training page for all arguments.