Open Source Robotics

Une collection organisée de projets, outils et logiciels robotiques open source de haute qualité.

Event Camera

  • Aussi appelé: dynamic vision sensor, DVS, neuromorphic camera, silicon retina
  • Catégorie: Sensing › Exteroceptive
  • Mots-clés: computer-vision, sensors, neuromorphic, high-speed-perception, drones

Un capteur de vision dont les pixels signalent indépendamment les variations de luminosité sous forme d'événements horodatés plutôt que d'images complètes, ce qui donne une résolution temporelle très fine, une grande plage dynamique et aucun flou de bougé.

Définition

La caméra événementielle (event camera) ne capture pas d'images à une fréquence fixe. Chaque pixel fonctionne indépendamment et émet un événement lorsque le logarithme de l'intensité lumineuse qu'il perçoit a varié de plus d'un seuil fixé depuis son dernier événement. Un événement porte les coordonnées du pixel, un horodatage d'une résolution de l'ordre de la microseconde et une polarité qui indique si la luminosité a augmenté ou diminué. La sortie est un flux asynchrone dont le débit dépend de l'ampleur des changements dans la scène : une scène statique devant une caméra immobile ne produit presque rien, tandis qu'un mouvement rapide produit un débit d'événements très élevé.

Le premier capteur de ce type largement utilisé a été le dynamic vision sensor (DVS) de Lichtsteiner, Posch et Delbruck (2008), inspiré de la façon dont la rétine réagit au changement. Des conceptions ultérieures comme DAVIS lisent aussi des images d'intensité conventionnelles à partir de la même matrice de pixels, et les capteurs de type ATIS ajoutent des mesures d'intensité par pixel. Comme chaque pixel réagit à l'intensité logarithmique par rapport à son propre passé récent, les caméras événementielles gèrent des scènes qui comportent à la fois des zones très claires et très sombres, et comme il n'y a pas de temps d'exposition commun, un mouvement rapide ne rend pas la sortie floue. La latence et la consommation sont aussi faibles comparées à celles de caméras à images fonctionnant à haute fréquence.

La contrepartie est que les algorithmes standard de vision par ordinateur ne s'appliquent pas directement. Les méthodes traitent soit les événements un par un, par exemple dans des filtres événement par événement, soit les accumulent sur de courtes fenêtres en images d'événements, surfaces temporelles ou grilles de voxels qui peuvent alimenter des chaînes classiques ou apprises. Les caméras événementielles sont bruitées, sensibles au scintillement des éclairages alimentés par le secteur, offrent généralement une résolution plus faible que les caméras à images, et réagissent surtout aux contours qui se déplacent par rapport au capteur, si bien que les zones sans texture et les mouvements le long d'un contour donnent peu de signal. Elles servent au suivi à haute vitesse, à l'odométrie visuelle en rotation rapide et aux scènes peu éclairées ou très contrastées, souvent en complément d'une caméra à images et d'une IMU.

Pourquoi c'est important

De nombreuses défaillances de perception sur des robots rapides viennent du flou de bougé, d'images saturées ou sous-exposées et de la latence des caméras à images. Les caméras événementielles suppriment ces modes de défaillance, ce qui permet de continuer à suivre des points d'intérêt pendant des rotations et des manœuvres rapides, ou dans des scènes mêlant forte lumière et ombre.

Applications principales

  • Odométrie visuelle et SLAM pendant des mouvements rapides
  • Détection et évitement d'obstacles à faible latence pour les drones
  • Suivi d'objets et de points d'intérêt à haute vitesse
  • Vision dans des scènes à grande plage dynamique et à faible luminosité
  • Estimation du flot optique

En pratique

Un quadrirotor qui perd une hélice peut rester commandable en tournant rapidement autour de son axe vertical, mais à cette vitesse de rotation les images d'une caméra à images deviennent floues, surtout en faible lumière, et le suivi des points d'intérêt s'effondre. Les travaux sur ce problème comparent une chaîne fondée sur les images à une chaîne qui utilise une caméra événementielle : les événements sont accumulés sur de courtes fenêtres, les points d'intérêt sont détectés et suivis dans cette représentation, et les pistes sont transmises avec les données de l'IMU à un module arrière d'odométrie visuelle-inertielle. La mise en place du capteur implique d'étalonner les paramètres intrinsèques avec un motif clignotant ou mobile (un damier statique ne produit aucun événement), de synchroniser les horodatages avec l'IMU et de régler les seuils de contraste et les réglages de polarisation pour équilibrer sensibilité et bruit. Les éclairages intérieurs qui scintillent génèrent des événements parasites qu'il faut filtrer avant le suivi.

Idées reçues

  • Une caméra événementielle n'est qu'une caméra à images très rapide — elle n'a pas d'images ; chaque pixel signale les changements de façon asynchrone, de sorte qu'une scène statique ne produit presque aucune sortie
  • Les caméras événementielles voient tout dans la scène — elles réagissent aux variations de luminosité, surtout sur les contours en mouvement, de sorte que les surfaces sans texture et les mouvements le long d'un contour donnent peu de signal
  • Les événements sont des données propres — les seuils varient d'un pixel à l'autre, le bruit de fond et le scintillement de l'éclairage produisent des événements parasites, et le filtrage fait partie de toute chaîne pratique

Qui devrait le savoir

  • Ingénieurs en perception travaillant sur des robots rapides
  • Chercheurs en autonomie des drones
  • Chercheurs en vision par ordinateur dans le domaine de la détection neuromorphique
  • Ingénieurs en estimation d'état

Technologies associées

  • Capteur DAVIS (DAVIS Sensor)
  • Surfaces temporelles (Time Surfaces)
  • Réseaux de neurones à impulsions (Spiking Neural Networks)
  • Calcul neuromorphique (Neuromorphic Computing)
  • Flot optique événementiel (Event-Based Optical Flow)

Termes associés

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

Projets associés

  • 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

Vidéos

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

Ce site nécessite JavaScript. Veuillez activer JavaScript pour explorer nos projets de robotique open source.