Open Source Robotics

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

Event Camera

  • También llamado: dynamic vision sensor, DVS, neuromorphic camera, silicon retina
  • Categoría: Sensing › Exteroceptive
  • Etiquetas: computer-vision, sensors, neuromorphic, high-speed-perception, drones

Un sensor de visión cuyos píxeles informan de forma independiente de los cambios de brillo como eventos con marca de tiempo en lugar de fotogramas completos, lo que proporciona una temporización muy fina, un alto rango dinámico y ausencia de desenfoque de movimiento.

Definición

Una cámara de eventos (event camera) no captura imágenes a una frecuencia de fotogramas fija. Cada píxel funciona de forma independiente y emite un evento cuando el logaritmo de la intensidad de luz que ve ha cambiado más de un umbral establecido desde su último evento. Un evento contiene las coordenadas del píxel, una marca de tiempo con resolución del orden del microsegundo y una polaridad que indica si el brillo subió o bajó. La salida es un flujo asíncrono cuya tasa depende de cuánto cambia la escena: una escena estática frente a una cámara estática no produce casi nada, mientras que un movimiento rápido produce una tasa de eventos muy alta.

El primer sensor de este tipo de uso generalizado fue el sensor de visión dinámica (DVS) de Lichtsteiner, Posch y Delbruck (2008), inspirado en la forma en que la retina responde al cambio. Diseños posteriores como DAVIS también leen fotogramas de intensidad convencionales de la misma matriz de píxeles, y los sensores de tipo ATIS añaden medidas de intensidad por píxel. Como cada píxel responde a la intensidad logarítmica respecto a su propio pasado reciente, las cámaras de eventos manejan a la vez escenas con regiones muy brillantes y muy oscuras, y como no hay un tiempo de exposición compartido, el movimiento rápido no desenfoca la salida. La latencia y el consumo de energía también son bajos en comparación con las cámaras de fotogramas que funcionan a frecuencias altas.

El precio es que los algoritmos estándar de visión por computador no se aplican directamente. Los métodos o bien procesan los eventos uno a uno, por ejemplo en filtros evento a evento, o bien los acumulan en ventanas cortas en fotogramas de eventos, superficies temporales o rejillas de vóxeles que pueden alimentar cadenas de procesamiento convencionales o aprendidas. Las cámaras de eventos son ruidosas, sensibles al parpadeo de las luces alimentadas por la red eléctrica, suelen ofrecer menor resolución que las cámaras de fotogramas y responden principalmente a los bordes que se mueven respecto al sensor, por lo que las regiones sin textura y el movimiento a lo largo de un borde dan poca señal. Se usan para seguimiento a alta velocidad, odometría visual bajo rotación rápida y escenas con poca luz o alto contraste, a menudo junto con una cámara de fotogramas y una IMU.

Por qué importa

Muchos fallos de percepción en robots rápidos se deben al desenfoque de movimiento, a imágenes saturadas o subexpuestas y a la latencia de las cámaras de fotogramas. Las cámaras de eventos eliminan esos modos de fallo, lo que permite seguir características durante giros y maniobras rápidas o en escenas que mezclan luz intensa y sombra.

Aplicaciones clave

  • Odometría visual y SLAM durante el movimiento rápido
  • Detección y evitación de obstáculos de baja latencia para drones
  • Seguimiento de objetos y características a alta velocidad
  • Visión en escenas de alto rango dinámico y con poca luz
  • Estimación del flujo óptico

En la práctica

Un cuadricóptero que pierde una hélice puede seguir siendo controlable si gira rápidamente alrededor de su eje vertical, pero a esa velocidad de rotación las imágenes de una cámara de fotogramas se desenfocan, sobre todo con poca luz, y el seguimiento de características falla. Los trabajos sobre este problema comparan una cadena basada en fotogramas con otra que usa una cámara de eventos: los eventos se acumulan en ventanas cortas, las características se detectan y se siguen en esa representación, y los seguimientos se pasan junto con los datos de la IMU a un back end de odometría visual-inercial. Configurar el sensor implica calibrar los parámetros intrínsecos con un patrón parpadeante o en movimiento (un tablero de ajedrez estático no produce eventos), sincronizar las marcas de tiempo con la IMU y ajustar los umbrales de contraste y los parámetros de polarización para equilibrar la sensibilidad frente al ruido. Las luces de interior que parpadean generan eventos espurios que deben filtrarse antes del seguimiento.

Ideas erróneas comunes

  • Una cámara de eventos es solo una cámara de fotogramas muy rápida — no tiene fotogramas; cada píxel informa de los cambios de forma asíncrona, por lo que una escena estática no produce casi ninguna salida
  • Las cámaras de eventos lo ven todo en la escena — responden a cambios de brillo, sobre todo en bordes en movimiento, por lo que las superficies sin textura y el movimiento a lo largo de un borde dan poca señal
  • Los eventos son datos limpios — los umbrales varían entre píxeles, el ruido de fondo y el parpadeo de la luz producen eventos espurios, y el filtrado forma parte de toda cadena de procesamiento práctica

Quién debería saberlo

  • Ingenieros de percepción que trabajan con robots que se mueven rápido
  • Investigadores en autonomía de drones
  • Investigadores en visión por computador especializados en sensado neuromórfico
  • Ingenieros de estimación de estado

Tecnologías relacionadas

  • Sensor DAVIS (DAVIS Sensor)
  • Superficies temporales (Time Surfaces)
  • Redes neuronales de impulsos (Spiking Neural Networks)
  • Computación neuromórfica (Neuromorphic Computing)
  • Flujo óptico basado en eventos (Event-Based Optical Flow)

Términos relacionados

  • RGB Camera
  • Visual-Inertial Odometry
  • Visual Odometry
  • IMU
  • UAV

Proyectos relacionados

  • ArduPilot: World's most trusted open-source autopilot for drones, planes, rovers, and submarines
  • PX4 Autopilot: Open-source flight control software for drones and other unmanned vehicles
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • QGroundControl: Cross-platform ground control station for mission planning and drone flight monitoring
  • DimOS: Python robotics runtime with agents, SLAM and teleop, no ROS required
  • pySLAM: Hybrid Python/C++ visual SLAM pipeline with classic and deep-learning front-ends

Vídeos

  • Event Cameras: a New Way of Sensing - Davide Scaramuzza - ICCP 2024 Keynote: UZH Robotics and Perception Group

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