Seguridad lista para empresas: Cumplimiento de ISO 27001 + SOC 2 Tipo I.

Link to this sectionDescripción general de los conjuntos de datos de estimación de profundidad#

Monocular depth estimation assigns a floating-point depth value in meters to every pixel in an image. The training target is a dense per-pixel depth map stored as a .npy float32 array. Each value represents the distance from the camera to the corresponding scene point.

Esta guía explica el formato de conjunto de datos utilizado por los modelos de estimación de profundidad de Ultralytics YOLO y enumera las configuraciones de conjuntos de datos integradas disponibles para el entrenamiento y la validación.

Link to this sectionFormato de conjunto de datos compatible#

Link to this sectionFormato de mapa de profundidad NPY#

Each training sample consists of one RGB image and one paired .npy depth file. The depth file stores a 2D float32 NumPy array with shape (H, W) where values are depths in meters.

  • Depth files must use the .npy extension and contain a float32 array.
  • Cada archivo de profundidad debe tener el mismo nombre base que su archivo de imagen correspondiente (p. ej., scene_001.npy se empareja con scene_001.jpg).
  • El cargador de conjuntos de datos encuentra los archivos de profundidad reemplazando el componente de directorio images con depth en la ruta del archivo y sustituyendo la extensión de la imagen por .npy.
  • Los píxeles con profundidad ≤ 0 se consideran no válidos y se excluyen del cálculo de la pérdida y las métricas.

El diseño estándar mantiene las imágenes y los mapas de profundidad en carpetas paralelas:

dataset/
├── images/
│   ├── train/
│   └── val/
└── depth/
    ├── train/
    └── val/

Por ejemplo, una imagen en images/train/scene_001.jpg se empareja con un mapa de profundidad en depth/train/scene_001.npy.

Link to this sectionFormato YAML del dataset#

Los conjuntos de datos de estimación de profundidad se configuran con archivos YAML. Los campos principales son:

ClaveDescripción
pathDirectorio raíz del dataset.
trainRuta de la imagen de entrenamiento relativa a path, o una ruta absoluta.
valRuta de la imagen de validación relativa a path, o una ruta absoluta.
testRuta de la imagen de prueba opcional.
ncNúmero de clases: siempre 1 para la estimación de profundidad.
namesMapeo de nombres de clases: siempre {0: depth}.
ultralytics/cfg/datasets/nyu-depth.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# NYU Depth V2 dataset for monocular depth estimation
# Documentation: https://cs.nyu.edu/~silberman/datasets/nyu_depth_v2.html
# 795 train + 654 val (Eigen test split) images, 480x640, indoor scenes, depth in meters
# Example usage: yolo depth train data=nyu-depth.yaml model=yolo26n-depth.pt
# parent
# ├── ultralytics
# └── datasets
#     └── nyu-depth  ← downloads here (≈1.5 GB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: nyu-depth # dataset root dir (relative to Ultralytics settings 'datasets_dir')
train: images/train # train images (relative to 'path') 795 images
val: images/val # val images (relative to 'path') 654 images

# Depth maps are paired .npy files (float32, meters) under depth/<split>/, resolved by
# swapping '/images/' -> '/depth/' on each image path.

# Classes
nc: 1
names:
  0: depth

channels: 3

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/nyu-depth.zip

Link to this sectionUso#

Entrena un modelo de estimación de profundidad YOLO26 con Python o la CLI:

Ejemplo
from ultralytics import YOLO

# Load a pretrained depth model
model = YOLO("yolo26n-depth.pt")

# Train on the NYU Depth V2 dataset
results = model.train(data="nyu-depth.yaml", epochs=100, imgsz=640)

Link to this sectionConjuntos de datos compatibles#

Los modelos de profundidad YOLO26 están preentrenados en una amplia combinación de múltiples conjuntos de datos (~2,19 millones de imágenes) que abarcan rangos desde interiores (≤10 m) hasta exteriores (~80 m), y luego se evalúan de forma zero-shot en cinco benchmarks. Cada conjunto de datos tiene una página dedicada:

Depuración

  • Depth8 — 8 imágenes SUN RGB-D en un archivo comprimido de 1,3 MB de descarga automática, para pruebas rápidas de tuberías

Fuentes de preentrenamiento

  • ARKitScenes — interiores reales, Apple ARKit LiDAR (la mayor fuente real)
  • SUN RGB-D — interiores reales, RGB-D multisensor
  • DIODE — interiores y exteriores reales, verdad fundamental de escáner láser denso
  • Hypersim — interiores sintéticos fotorrealistas
  • TartanAir — sintético, diversos entornos
  • Virtual KITTI 2 — conducción sintética en exteriores
  • KITTI — conducción real en exteriores, Velodyne LiDAR (también un benchmark de evaluación)
  • ImageNet (pseudo-labeled) — conjunto de destilación pseudoetiquetado, la mayor fuente única

Benchmarks de evaluación

  • NYU Depth V2 — benchmark principal de interiores
  • KITTI Eigen — benchmark de conducción en exteriores
  • ETH3D — alta precisión en interiores y exteriores
  • Make3D — exteriores, fuera de distribución
  • iBims-1 — interiores de alta calidad (bordes y superficies planas)

La precisión por modelo en estos benchmarks y los pesos preentrenados descargables se enumeran en la página de la tarea de estimación de profundidad. Un YAML de conjunto de datos cuyo campo train enumera múltiples directorios de imágenes combina estas fuentes para un entrenamiento mixto a gran escala.

Link to this sectionAñadir tu propio dataset#

  1. Guarda las imágenes RGB en carpetas divididas como images/train e images/val.
  2. Save one .npy float32 depth array per image under the matching depth/train and depth/val folders using the same file stem as the image.
  3. Asegúrate de que los valores de profundidad estén en metros y de que los píxeles no válidos o faltantes usen 0 o valores negativos.
  4. Crea un YAML de conjunto de datos con path, train, val, nc: 1 y names: {0: depth}.
path: path/to/my-depth-dataset
train: images/train
val: images/val

nc: 1
names:
    0: depth

Link to this sectionFAQ#

Link to this section¿Qué formato de archivo deben usar los mapas de profundidad?#

Depth maps must be saved as NumPy .npy files containing float32 arrays of shape (H, W). Each element stores the depth in meters for the corresponding image pixel. Do not use PNG or 16-bit integer formats — the loader expects raw float arrays.

Link to this section¿Cómo se manejan los píxeles de profundidad no válidos?#

Los píxeles con valores de profundidad ≤ 0 se tratan como no válidos y se enmascaran tanto en el cálculo de la pérdida como en la evaluación de las métricas. Esto cubre el ruido del sensor, las regiones del cielo y las superficies reflectantes donde la profundidad no puede medirse de forma fiable.

Link to this section¿Qué métricas se utilizan para la evaluación?#

La validación de la estimación de profundidad informa sobre el conjunto estándar de métricas de Depth Anything:

  • delta1 / delta2 / delta3 — porcentaje de píxeles dentro de los umbrales de 1,25×, 1,25²×, 1,25³×. Cuanto más alto, mejor.
  • abs_rel — error absoluto relativo medio. Cuanto más bajo, mejor.
  • rmse — error cuadrático medio en metros. Cuanto más bajo, mejor.
  • silog — error logarítmico invariante a la escala. Cuanto más bajo, mejor.

Link to this section¿Deben coincidir los nombres de los archivos de profundidad con los nombres de los archivos de imagen?#

Sí. Cada archivo de profundidad .npy debe compartir el mismo nombre base que la imagen correspondiente. El cargador deriva la ruta de profundidad reemplazando el componente de directorio images con depth y sustituyendo la extensión de la imagen por .npy. Las imágenes cuyo archivo de profundidad falte o no sea legible se descartan durante el escaneo (en caché) del conjunto de datos con una advertencia, exactamente igual que las imágenes corruptas; si no se encuentran pares imagen-profundidad válidos, se genera un error.

Colaboradores

Comentarios