Depth Estimation
Aprende cómo la estimación de profundidad añade perspectiva 3D a la visión por computadora. Explora técnicas como la profundidad monocular y la visión estéreo usando modelos de Ultralytics YOLO26.
La estimación de profundidad es un proceso fundamental en visión artificial que determina la distancia de los objetos respecto a una cámara, añadiendo eficazmente 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 del píxel corresponde a la distancia. Esta capacidad imita la visión binocular humana, permitiendo a las máquinas percibir relaciones espaciales y geometría. Es una tecnología fundamental para que los sistemas autónomos naveguen con seguridad, comprendan su entorno e interactúen con objetos físicos.
Link to this sectionMecanismos y técnicas fundamentales#
Existen varias formas de lograr la estimación de profundidad, que van desde soluciones basadas en hardware hasta enfoques puramente basados en software mediante inteligencia artificial.
- Sistemas de visión estéreo: Al igual que los ojos humanos, la visión estéreo utiliza dos cámaras colocadas una al lado de la otra. Los algoritmos analizan las ligeras diferencias, o disparidad, entre las imágenes izquierda y derecha para triangular la distancia. Esto depende en gran medida de una coincidencia de características precisa para identificar los mismos puntos en ambos fotogramas.
- Estimación de profundidad monocular: Este método avanzado estima la profundidad a partir de una sola imagen. Dado que una foto 2D carece de datos de profundidad inherentes, los modelos de aprendizaje profundo se entrenan con vastos conjuntos de datos para reconocer pistas visuales como la perspectiva, el tamaño de los objetos y la oclusión. Las arquitecturas modernas, como las redes neuronales convolucionales (CNN), destacan en esta tarea, lo que hace posible derivar estructuras 3D a partir de cámaras estándar.
- LiDAR y tiempo de vuelo (ToF): Los sensores activos como LiDAR (Detección por luz y rango) 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 a menudo se utilizan para recopilar datos de referencia (ground truth) para entrenar modelos de aprendizaje automático.
Link to this sectionAplicaciones en el mundo real#
La capacidad de medir distancias es transformadora en muchas industrias, impulsando aplicaciones que requieren conciencia espacial.
- Conducción autónoma: Los coches autónomos dependen de la estimación de profundidad para detectar obstáculos, medir la distancia a otros vehículos y navegar con seguridad por complejas redes de carreteras. Es fundamental para la detección de objetos 3D a la hora de identificar peatones y ciclistas.
- Robótica y automatización: Los robots utilizan la percepción de profundidad para tareas como la planificación de trayectorias y la manipulación de objetos. Por ejemplo, un robot de almacén necesita saber exactamente a qué distancia está una estantería para recoger un paquete sin chocar con ella.
- Realidad aumentada (RA): Para colocar objetos virtuales de forma convincente en una escena del mundo real, los dispositivos de RA deben comprender la geometría 3D del entorno. La estimación de profundidad garantiza que los personajes virtuales puedan esconderse detrás de muebles reales, un concepto conocido como manejo de la oclusión.
Link to this sectionEjemplo de código: Estimación de profundidad monocular#
Aunque existen modelos de profundidad especializados, a menudo puedes inferir relaciones espaciales utilizando cuadros delimitadores de detección de objetos como referencia para la distancia en escenarios sencillos (los cuadros más grandes suelen significar objetos más cercanos). Aquí tienes cómo cargar un modelo usando el paquete ultralytics para detectar objetos, que es el primer paso en muchos flujos de trabajo de estimación 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}")Link to this sectionRelació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é y dónde está un objeto en el espacio 2D (usando un cuadro delimitador), la estimación de profundidad identifica qué tan lejos está (eje Z). Del mismo modo, la segmentación semántica clasifica los píxeles en categorías (por ejemplo, carretera, cielo, coche), mientras que la estimación de profundidad asigna un valor de distancia a esos mismos píxeles.
Link to this sectionAvances en IA espacial#
El reciente progreso en IA generativa está acortando la brecha entre la visión 2D y 3D. Técnicas como los campos de radiancia neuronal (NeRF) utilizan múltiples imágenes 2D para reconstruir escenas 3D complejas, basándose en gran medida en principios de profundidad subyacentes. Además, a medida que mejoran las técnicas de optimización de modelos, ejecutar una estimación de profundidad de alta precisión en dispositivos de IA de borde (edge AI) se está volviendo viable. Esto permite la computación espacial en tiempo real en hardware tan pequeño como drones o gafas inteligentes, facilitado por plataformas como la plataforma Ultralytics para el entrenamiento y despliegue eficiente de modelos.






