Open Source Robotics

Una colección curada de proyectos, herramientas y software de robótica de código abierto de alta calidad.

Range Image

  • También llamado: range view, spherical range image
  • Categoría: Sensing › Perception outputs
  • Etiquetas: lidar, 3d-perception, semantic-segmentation, point-cloud, data-representation

Una imagen 2D de un escaneo 3D de distancias en la que cada píxel almacena la distancia medida a lo largo de una dirección de haz, lo que da al escaneo una rejilla de imagen para procesarlo rápidamente.

Definición

Imagen de distancia (range image) almacena un escaneo 3D como una matriz 2D en la que cada píxel corresponde a una dirección de observación y contiene la distancia medida a lo largo de ella. En un LiDAR giratorio de varios haces, las filas suelen corresponder a los haces láser, o ángulos de elevación, y las columnas a los ángulos de azimut a lo largo de la rotación, de modo que cada punto se sitúa mediante una proyección esférica de su dirección. Canales adicionales suelen contener las coordenadas x, y y z, la intensidad del retorno y una máscara de validez.

La disposición en imagen hace baratas las relaciones de vecindad. Los puntos cercanos en la imagen suelen estar cercanos en el espacio, por lo que las normales, los bordes, la segmentación del suelo y el agrupamiento pueden calcularse con operaciones de imagen sencillas en lugar de búsquedas de vecinos más cercanos en 3D. También permite que las redes convolucionales 2D estándar procesen datos LiDAR: redes como SqueezeSeg y RangeNet++ etiquetan cada píxel, y las etiquetas se proyectan después de vuelta a los puntos 3D. SuMa y SuMa++ usan imágenes de distancia por otro motivo: renderizan el mapa de surfels en la misma disposición de imagen para que los nuevos escaneos puedan asociarse con el mapa por la posición del píxel.

La proyección tiene costes. Cuando varios puntos caen en un mismo píxel, solo se conserva uno, normalmente el más cercano, por lo que algunos puntos deben etiquetarse después a partir de sus vecinos. Los píxeles sin retorno, por cielo, vidrio o superficies absorbentes, necesitan una máscara. En los bordes de los objetos, los vecinos de un píxel pueden estar sobre superficies muy separadas en profundidad, lo que hace que las etiquetas se filtren entre el primer plano y el fondo; RangeNet++ añade una limpieza por k vecinos más cercanos en 3D para reducirlo. Una imagen de distancia se diferencia de una imagen de profundidad de cámara en la proyección y en el valor: una cámara de profundidad usa una proyección estenopeica y suele almacenar la distancia a lo largo del eje óptico, mientras que una imagen de distancia LiDAR usa coordenadas angulares y almacena la distancia a lo largo de cada haz.

Por qué importa

Las imágenes de distancia convierten las nubes de puntos LiDAR, dispersas y desordenadas, en una rejilla densa que pueden procesar los algoritmos de imagen rápidos y las redes convolucionales. Muchas cadenas de segmentación, odometría y compresión LiDAR en tiempo real dependen de ellas.

Aplicaciones clave

  • Segmentación semántica de escaneos LiDAR con redes 2D
  • Asociación de datos proyectiva en SLAM LiDAR
  • Eliminación del suelo y agrupamiento de obstáculos
  • Estimación de normales y bordes para las características de la odometría LiDAR
  • Compresión y almacenamiento de datos LiDAR

En la práctica

Un equipo de conducción autónoma necesita etiquetar en tiempo real cada punto LiDAR como carretera, coche, peatón o vegetación. Proyectan cada escaneo a una imagen de distancia con una fila por láser y un número fijo de columnas, y almacenan la distancia, x, y, z y la intensidad en cinco canales. Una red de segmentación 2D predice una clase por píxel, las etiquetas se proyectan de vuelta a los puntos, y una votación por vecinos más cercanos en 3D corrige los puntos que la proyección descartó o que se etiquetaron mal en los bordes de los objetos. La misma imagen de distancia se reutiliza más adelante en la cadena para eliminar el suelo y para agrupar obstáculos por regiones de píxeles conectados.

Ideas erróneas comunes

  • Una imagen de distancia es lo mismo que una imagen de profundidad de cámara — la proyección es angular en lugar de estenopeica, y los píxeles almacenan la distancia a lo largo del haz en lugar de a lo largo del eje óptico
  • La proyección conserva todos los puntos — los puntos que comparten un píxel se descartan, por lo que hay que propagarles de vuelta las etiquetas
  • Los píxeles vecinos siempre son superficies vecinas — en las discontinuidades de profundidad, píxeles adyacentes pueden estar muy separados, lo que provoca que las etiquetas se filtren
  • Las imágenes de distancia solo sirven para LiDAR giratorios — cualquier sensor con una rejilla regular de direcciones de haz, incluidos algunos LiDAR de estado sólido, puede almacenarse así

Quién debería saberlo

  • Ingenieros de percepción LiDAR
  • Equipos de segmentación para conducción autónoma
  • Desarrolladores de SLAM y de odometría
  • Ingenieros de aprendizaje automático que trabajan con datos 3D

Tecnologías relacionadas

  • RangeNet++
  • SqueezeSeg
  • Proyección esférica (Spherical Projection)
  • Proyección de vista de pájaro (Bird's-Eye-View Projection)
  • Semantic KITTI

Términos relacionados

  • LIDAR
  • Point Cloud
  • Depth Camera
  • Surfel
  • LiDAR Odometry
  • Semantic Map

Proyectos relacionados

  • Open3D: Modern library for 3D point cloud processing, mesh operations, and 3D machine learning
  • oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
  • PCL: Industry-standard C++ library for point cloud processing in robotics perception
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO

Este sitio web requiere JavaScript. Por favor, habilite JavaScript para explorar nuestros proyectos de robótica.