3D Object Detection
La detección de objetos 3D sitúa una caja 3D alrededor de cada objeto e indica su posición, tamaño y orientación en metros. Sensores, métodos, benchmarks y un ejemplo de caja.
La detección de objetos 3D encuentra objetos en una escena y coloca una caja delimitadora 3D, o cuboide, alrededor de cada uno para indicar su posición, tamaño y orientación en unidades del mundo real. La detección de objetos 2D estándar proporciona una caja delimitadora en píxeles de imagen. Un detector 3D indica a qué distancia está un coche, en metros, cuánto mide de largo y de ancho y hacia dónde está orientado: información que necesitan los coches autónomos, los robots de reparto y los brazos robóticos de almacén para planificar movimientos y evitar colisiones.
Cómo se describe una caja 3D#
La mayoría de los detectores 3D generan siete números por objeto, además de una clase y una puntuación de confianza: el centro de la caja (x, y, z), su longitud, anchura y altura, y su orientación, o ángulo de guiñada, alrededor del eje vertical. Se presupone que el balanceo y el cabeceo son cero porque los coches, las personas y la mayoría de los objetos de interior están erguidos; además, los benchmarks de conducción como nuScenes también solicitan la velocidad de cada objeto. Convertir esos siete números en ocho puntos de esquina es el primer paso para dibujar una caja en una imagen o calcular su solapamiento con otra.
import numpy as np
# Una caja 3D: centro (m), tamaño (m) y orientación alrededor del eje z vertical (rad)
center = np.array([12.0, -3.0, 0.9])
length, width, height = 4.5, 1.9, 1.6
yaw = np.pi / 6
# Ocho esquinas de la caja antes de la rotación, respecto a su centro
signs = np.array([[sx, sy, sz] for sx in (1, -1) for sy in (1, -1) for sz in (1, -1)])
corners = signs * [length / 2, width / 2, height / 2]
# Girar según la orientación y, después, desplazar la caja hasta su centro
c, s = np.cos(yaw), np.sin(yaw)
rotation = np.array([[c, -s, 0], [s, c, 0], [0, 0, 1]])
corners = corners @ rotation.T + center
print(corners.round(2))Las ocho filas impresas son las esquinas de una caja del tamaño de un coche, centrada a 12 metros a lo largo del eje x y girada 30 grados: cuatro están en z = 1,7 m, a la altura del techo, y cuatro en z = 0,1 m, a la altura del suelo.
Sensores y métodos#
La detección 3D necesita profundidad, que los sistemas obtienen de tres tipos de entradas. Los escáneres Lidar miden directamente la distancia mediante pulsos láser y generan una nube de puntos de la escena. Los detectores Lidar dividen el espacio en vóxeles 3D, agrupan los puntos en columnas verticales, como hace PointPillars, y los procesan como una imagen en vista aérea mediante convoluciones 2D rápidas, o trabajan directamente con los puntos sin procesar.
Los métodos basados en cámaras estiman la profundidad a partir de imágenes. Una sola cámara no permite determinar la profundidad, porque un objeto pequeño cercano y otro grande lejano pueden parecer iguales; por eso, los detectores monoculares aprenden la profundidad a partir del tamaño de los objetos y del contexto de la escena. Los sistemas multicámara, como BEVFormer, proyectan características de varias vistas del entorno en una cuadrícula compartida de vista cenital. Las canalizaciones de cámara también pueden combinar cajas 2D de YOLO26 con un modelo de profundidad YOLO26, que predice un mapa de profundidad por píxel en metros a partir de una imagen RGB, para estimar la distancia a cada objeto detectado.
La fusión de sensores combina la geometría precisa del LiDAR con el color y la textura de las imágenes de cámara. BEVFusion combina las características de ambos sensores en un espacio compartido de vista cenital.
Detección 3D frente a tareas relacionadas#
- Estimación de profundidad: Predice una distancia para cada píxel, sin dividir la escena en objetos o clases.
- Cajas delimitadoras orientadas: Cajas 2D giradas en el plano de la imagen, utilizadas a menudo con imágenes aéreas, donde se parecen a la huella de una caja 3D vista desde arriba.
- Reconstrucción 3D: Recupera la geometría completa de una escena, como una malla o una nube de puntos, sin etiquetar objetos individuales.
Aplicaciones y retos#
Los vehículos autónomos utilizan la detección 3D para localizar coches, peatones y ciclistas a su alrededor y predecir sus trayectorias; los robots de almacén y logística la utilizan para encontrar la posición y orientación de las cajas antes de agarrarlas. Los casos difíciles son los objetos pequeños y lejanos, que reciben pocos puntos LiDAR; los objetos parcialmente ocluidos; los errores de profundidad monocular, que aumentan con la distancia; y el coste del etiquetado, ya que una persona encargada de anotar debe ajustar en 3D cada cuboide de entrenamiento.
Evaluación de detectores 3D#
La evaluación extiende a tres dimensiones la intersección sobre unión (IoU) y la precisión media (mAP). El benchmark 3D de KITTI exige un IoU de caja 3D de 0,7 para los coches y de 0,5 para los peatones y ciclistas; desde 2019, calcula la media de la precisión en 40 puntos de exhaustividad, en vez de 11. El benchmark nuScenes empareja las predicciones con las etiquetas según la distancia entre sus centros en el plano del suelo y calcula la AP media con umbrales de 0,5, 1, 2 y 4 metros. Su puntuación de detección nuScenes (NDS) combina esa mAP, ponderada con un 5, con cinco puntuaciones derivadas de los errores de traslación, escala, orientación, velocidad y atributos, cada una ponderada con un 1.










