Depth Estimation
Aprende cómo la estimación de profundidad añade perspectiva 3D a la visión por ordenador. Explora técnicas como la profundidad monocular y la visión estereoscópica mediante modelos de Ultralytics YOLO26.
La estimación de profundidad es un proceso fundamental en la visión artificial que determina la distancia de los objetos respecto a una cámara, añadiendo de forma efectiva una tercera dimensión a las imágenes 2D. Al calcular a qué distancia se encuentra cada píxel de una imagen, esta técnica crea un mapa de profundidad, una representación en la que la intensidad de los píxeles corresponde a la distancia. Esta capacidad imita la visión binocular humana, lo que permite a las máquinas percibir las relaciones espaciales y la geometría. Es una tecnología fundamental para que los sistemas autónomos puedan desplazarse de forma segura, comprender su entorno e interactuar con objetos físicos.
Mecanismos y técnicas principales#
Hay varias formas de lograr la estimación de profundidad, desde soluciones basadas en hardware hasta enfoques exclusivamente basados en software que utilizan inteligencia artificial.
- Sistemas de visión estereoscópica: Al igual que los ojos humanos, la visión estereoscópica utiliza dos cámaras colocadas una junto a la otra. Los algoritmos analizan las pequeñas diferencias, o disparidad, entre las imágenes izquierda y derecha para triangular la distancia. Esto depende en gran medida de una correspondencia precisa de características para identificar los mismos puntos en ambos fotogramas.
- Estimación monocular de profundidad: Este método avanzado estima la profundidad a partir de una sola imagen. Como una única fotografía 2D no contiene datos de profundidad inherentes, los modelos de deep learning se entrenan con grandes conjuntos de datos para reconocer indicios visuales como la perspectiva, el tamaño de los objetos y la oclusión. Las arquitecturas modernas, como las redes neuronales convolucionales (CNNs), destacan en esta tarea, haciendo posible extraer una estructura 3D a partir de cámaras convencionales.
- LiDAR y tiempo de vuelo (ToF): Los sensores activos, como LiDAR (detección y medición de distancias mediante luz) y las cámaras de tiempo de vuelo, emiten pulsos de luz y miden el tiempo que tardan en regresar. Estos métodos generan nubes de puntos de gran precisión y suelen utilizarse para recopilar datos de referencia para entrenar modelos de machine learning.
Aplicaciones en el mundo real#
La capacidad de medir distancias está transformando numerosos sectores e impulsa aplicaciones que requieren percepción espacial.
- Conducción autónoma: Los vehículos autónomos dependen de la estimación de profundidad para detectar obstáculos, medir la distancia respecto a otros vehículos y desplazarse de forma segura por redes viarias complejas. Es fundamental para la detección de objetos 3D, que permite identificar a peatones y ciclistas.
- Robótica y automatización: Los robots utilizan la percepción de profundidad para tareas como la planificación de rutas y la manipulación de objetos. Por ejemplo, un robot de almacén necesita saber exactamente a qué distancia se encuentra una estantería para recoger un paquete sin chocar con ella.
- Realidad aumentada (AR): Para colocar objetos virtuales de forma convincente en una escena del mundo real, los dispositivos de AR deben comprender la geometría 3D del entorno. La estimación de profundidad garantiza que los personajes virtuales puedan ocultarse detrás de muebles reales, un concepto conocido como gestión de oclusiones.
Ejemplo de código: estimación monocular de profundidad#
Aunque existen modelos de profundidad especializados, a menudo puedes inferir relaciones espaciales utilizando cuadros delimitadores de detección de objetos como aproximación de la distancia en escenarios sencillos (los cuadros más grandes suelen indicar objetos más cercanos). A continuación se muestra cómo cargar un modelo utilizando el paquete ultralytics para detectar objetos, que es el primer paso en muchas canalizaciones con conciencia de profundidad.
from ultralytics import YOLO
# Load the YOLO26 model
model = YOLO("yolo26n.pt")
# Run inference on an image
results = model("path/to/image.jpg")
# Process results
for result in results:
# Get bounding boxes (xyxy format)
boxes = result.boxes.xyxy
# Iterate through detections
for box in boxes:
print(f"Detected object at: {box}")Relación con otros conceptos de visión artificial#
Es importante distinguir la estimación de profundidad de términos relacionados. Mientras que la detección de objetos identifica qué es un objeto y dónde se encuentra en el espacio 2D (mediante un cuadro delimitador), la estimación de profundidad identifica a qué distancia está (eje Z). Del mismo modo, la segmentación semántica clasifica los píxeles en categorías (por ejemplo, carretera, cielo o coche), mientras que la estimación de profundidad asigna un valor de distancia a esos mismos píxeles.
Avances en IA espacial#
Los avances recientes en IA generativa están reduciendo la brecha entre la visión 2D y 3D. Técnicas como los campos de radiancia neuronales (NeRF) utilizan múltiples imágenes 2D para reconstruir escenas 3D complejas y dependen en gran medida de los principios subyacentes de la profundidad. Además, a medida que mejoran las técnicas de optimización de modelos, resulta cada vez más viable ejecutar una estimación de profundidad de gran precisión en dispositivos de IA en el borde. Esto permite la computación espacial en tiempo real en hardware tan pequeño como drones o gafas inteligentes, con la ayuda de plataformas como Ultralytics Platform para entrenar y desplegar modelos de forma eficiente.









