FR 2985065 A1 20130628 FR 1162137 A 20111221 PROCEDE D'ESTIMATION DE FLOT OPTIQUE A PARTIR D'UN CAPTEUR ASYNCHRONE DE LUMIERE [00011 La présente invention concerne les méthodes d'estimation de flot optique dans les techniques d'imagerie. [0002] Le flot optique est une approximation du mouvement dans une séquence d'images variant dans le temps. Les premiers travaux en matière de flot optique ont été réalisés par des ingénieurs dans le domaine de la télévision et par des personnes s'intéressant à la modélisation de la vision biologique. Depuis lors, ces techniques ont trouvé leur place dans une grande variété de disciplines, incluant la vision informatisée et la navigation de robots. Elles servent notamment à réaliser de la détection de mouvement, de la segmentation d'objets, des calculs de temps de collision, du codage à compensation de mouvement, etc. [0003] De façon notoire, le flot optique est une mesure visuelle affectée de bruit. Il s'exprime couramment comme un champ de vitesses à l'intérieur de la séquence d'images. Mais l'estimation de ce champ suppose la résolution d'un problème mal posé, c'est-à-dire comportant trop d'inconnues par rapport au nombre d'équations. En conséquence, pour estimer les vecteurs de flot, des hypothèses et contraintes supplémentaires doivent être appliquées. Toutefois, ces hypothèses et contraintes ne sont pas toujours valides. En outre, la présence inévitable de bruit stochastique dans les séquences d'images naturelles non filtrées donne lieu à diverses difficultés pour son utilisation dans la boucle de commande d'un robot mobile. [0004] Les techniques de flot optique peuvent être réparties en quatre catégories (cf. J.L. Barron, et al., "Performance of Optical Flow Techniques", International Journal of Computer Vision, Vol. 12, No. 1, pp. 43-77): - les méthodes basées sur l'énergie expriment le flot optique d'après les sorties de filtres adaptés en vitesse définis dans le domaine de Fourier; - les méthodes basées sur la phase estiment les vitesses d'image en termes de sorties de filtres passe-bande; -2 - les méthodes à base de corrélation recherchent la meilleure correspondance entre des petits voisinages spatiaux dans des images temporellement adjacentes; - les méthodes différentielles, ou à base de gradient, utilisent des dérivées spatio-temporelles de l'intensité d'image et une hypothèse de constance de l'illumination. [0005] La majorité des travaux sur la conception, la comparaison et l'application des techniques de flot optique se concentre sur les approches à base de corrélation ou de gradient. Néanmoins, toutes ces méthodes souffrent de manière intrinsèque de lenteur d'exécution, de sorte qu'elles sont mal adaptées à des contraintes d'exécution en temps réel qui peuvent exister dans un certain nombre d'applications. Une autre solution pour la détection de mouvement repose sur un capteur visuel dénommé EMD ("Elementary Motion Detector", détecteur de mouvement élémentaire). Les EMD sont basés sur des modèles de détection de mouvement reproduisant des mécanismes de vision supposés des insectes. Deux photorécepteurs adjacents sont utilisés pour fournir des signaux d'image qui sont ensuite fournis à un banc de filtres temporels passe-haut et passe-bas. Les filtres passe-haut enlèvent la composante continue de l'illumination qui n'est pas porteuse d'information de mouvement. Puis le signal est subdivisé entre deux canaux dont un seul comporte un filtre passe-bas. Le retard appliqué par le filtre passe-bas est exploité pour fournir un signal d'image retardé qui est ensuite corrélé avec celui du canal adjacent non-retardé. Finalement, une soustraction entre les deux canaux fournit une réponse ayant une sensibilité à la direction de mouvement, pouvant donc être exploitée pour mesurer le mouvement visuel. La détection de mouvement par un EMD est sensible au contraste d'image, l'amplitude du mouvement détecté étant plus grande lorsqu'il y a un contraste élevé. Ceci perturbe à la précision de la mesure de mouvements visuels. Du fait de ce manque de précision, les EMD ne conviennent pas pour des applications générales de navigation, surtout pour des tâches requérant un contrôle fin du mouvement. [0006] Contrairement aux caméras classiques qui enregistrent des images successives à des instants d'échantillonnage prédéfinis, les rétines biologiques ne - 3 - transmettent que peu d'information redondante sur la scène à visualiser, et ce de manière asynchrone. Des capteurs de vision asynchrones basés sur événements délivrent des données numériques compressées sous forme d'événements. Une présentation générale de tels capteurs peut être consultée dans "Activity-Driven, Event-Based Vision Sensors", T. Delbrück, et al., Proceedings of 2010 IEEE International Symposium on Circuits and Systems (ISCAS), pp. 2426-2429. Les capteurs de vision basés sur événements ont pour avantage d'enlever de la redondance, de réduire les temps de latence et d'augmenter la gamme dynamique par rapport aux caméras classiques. [0007] La sortie d'un tel capteur de vision peut consister, pour chaque adresse de pixel, en une séquence d'événements asynchrones représentatifs des changements de réflectance de la scène au moment où ils se produisent. Chaque pixel du capteur est indépendant et détecte des changements d'intensité supérieurs à un seuil depuis l'émission du dernier événement (par exemple un contraste de 15% sur le logarithme de l'intensité). Lorsque le changement d'intensité dépasse le seuil fixé, un événement ON ou OFF est généré par le pixel selon que l'intensité augmente ou diminue. Le capteur n'étant pas échantillonné sur une horloge comme une caméra classique, il peut rendre compte du séquencement des événements avec une très grande précision temporelle (par exemple de l'ordre de 1 jas). Si on utilise un tel capteur pour reconstruire une séquence d'images, on peut atteindre une cadence d'images de plusieurs kilohertz, contre quelques dizaines de hertz pour des caméras classiques. [0008] Si les capteurs de vision basés sur événements ont des perspectives prometteuses, il n'existe pas à ce jour de méthode bien adaptée à la pratique pour déterminer un flot optique à partir des signaux délivrés par de tels capteurs. Dans "Frame-free dynamic digital vision", Proceedings of the International Conference on Secure-Life Electronics, Advanced Electronics for Quality Life and Society, Université de Tokyo, 6-7 mars 2008, pp. 21-26, T. Delbrück suggère d'utiliser des étiqueteurs ("labelers") pour donner des significations additionnelles aux événements détectés, comme des orientations de contours ou des directions de mouvement, sans toutefois fournir d'indication permettant d'envisager l'estimation d'un flot optique. -4 [0009] Il existe un besoin pour un procédé d'estimation de flot optique qui permette d'accélérer les estimations par rapport à ce qu'on sait faire à partir de caméras classiques. Un autre besoin est de fournir un procédé d'estimation de flot optique à partir des signaux issus d'un capteur de vision basé sur événements, afin de pouvoir utiliser diverses techniques et applications qui ont été mises au point en s'appuyant sur l'exploitation de flots optiques. [0010] Il est proposé un procédé d'estimation de flot optique, comprenant: - recevoir de l'information asynchrone provenant d'un capteur de lumière ayant une matrice de pixels disposée en regard d'une scène, l'information asynchrone comprenant, pour chaque pixel de la matrice, des événements successifs provenant de ce pixel et dépendant de variations de lumière dans la scène; - pour un lieu d'estimation dans la matrice de pixels et un temps d'estimation, sélectionner un ensemble d'événements provenant de pixels compris dans un voisinage spatial du lieu d'estimation et survenus dans un intervalle de temps défini par rapport au temps d'estimation, l'ensemble ayant au plus un événement par pixel du voisinage spatial; et - quantifier les variations des temps d'occurrence des événements de l'ensemble sélectionné en fonction des positions, dans la matrice, des pixels d'où proviennent ces événements. [0011] Le procédé exploite le fait que le temps d'occurrence du dernier événement en une position de pixel donnée est une fonction monotone croissante. Cette fonction définit, pour les différentes positions de pixel, une surface dont les variations locales renseignent sur le champ de vitesse dans la scène telle que la voit le capteur. La quantification de ces variations peut être effectuée de manière très rapide, avec un retard de l'ordre du temps de réponse des pixels du capteur, par exemple inférieur à ou de l'ordre de la milliseconde. [0012] Dans un mode de réalisation du procédé, la quantification des variations des temps d'occurrence des événements de l'ensemble sélectionné en fonction des positions des pixels d'où proviennent ces événements comprend l'estimation d'une pente que présentent les événements de l'ensemble - 5 - sélectionné dans une représentation espace-temps autour du lieu d'estimation. L'ensemble d'événements sélectionné peut préalablement avoir fait l'objet d'une opération de lissage dans la représentation espace-temps, afin d'atténuer certains effets du bruit. [0013] Lorsque la matrice de pixels est bidimensionnelle, une manière de quantifier les variations des temps d'occurrence des événements de l'ensemble sélectionné en fonction des positions des pixels comprend la détermination d'un plan présentant une distance minimale par rapport aux événements de l'ensemble sélectionné dans la représentation espace-temps. Dans le cas où la matrice de pixels est monodimensionnelle, c'est une droite et non un plan qu'il s'agit de déterminer dans la représentation espace-temps. [0014] Pour enrichir l'analyse spatio-temporelle des événements détectés par les pixels de la matrice, une possibilité est d'inclure dans la quantification des variations une estimation de dérivées secondes que présentent les événements de l'ensemble sélectionné dans la représentation espace-temps autour du lieu d'estimation. [0015] Dans un mode de réalisation, on mémorise, pour chaque pixel de la matrice, le temps d'occurrence de l'événement le plus récent provenu de ce pixel. La sélection de l'ensemble d'événements pour un lieu d'estimation et un temps d'estimation peut alors comprendre l'inclusion dans cet ensemble de chaque événement ayant un temps d'occurrence dans l'intervalle de temps défini par rapport au temps d'estimation et mémorisé pour un pixel du voisinage spatial du lieu d'estimation. Ce type de méthode permet une implémentation simple et rapide du procédé. [0016] Dans un mode de réalisation, les étapes de sélection d'un ensemble d'événements et de quantification des variations des temps d'occurrence sont exécutées en prenant comme lieu d'estimation la position d'un pixel où un événement est détecté et comme temps d'estimation un instant de détection de cet événement. On peut ainsi atteindre une très grande rapidité d'estimation du flot optique dans les zones pertinentes de la matrice de pixels où de l'activité est observée. - 6 - [0017] En particulier, la sélection de l'ensemble d'événements peut être effectuée en réponse à la détection d'un événement provenant d'un pixel de la matrice à un instant de détection. Afin de filtrer des événements qui ne représentent vraisemblablement que du bruit, on peut opérer ensuite la quantification des variations des temps d'occurrence pour mettre à jour une information de mouvement à condition que l'ensemble d'événements contienne un nombre d'événements supérieur à un seuil. [0018] Un autre aspect de la présente invention se rapporte à un dispositif d'estimation de flot optique, comprenant: - un capteur de lumière ayant une matrice de pixels à disposer en regard d'une scène et adapté pour délivrer de l'information asynchrone comprenant, pour chaque pixel de la matrice, des événements successifs provenant de ce pixel et dépendant de variations de lumière dans la scène; et - un calculateur pour exécuter les étapes suivantes pour un lieu d'estimation dans la matrice de pixels et un temps d'estimation: - sélectionner un ensemble d'événements provenant de pixels compris dans un voisinage spatial du lieu d'estimation et survenus dans un intervalle de temps défini par rapport au temps d'estimation, l'ensemble ayant au plus un événement par pixel du voisinage spatial; et - quantifier les variations des temps d'occurrence des événements de l'ensemble sélectionné en fonction des positions, dans la matrice, des pixels d'où proviennent ces événements. [0019] D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après d'un exemple de réalisation non limitatif, en référence aux dessins annexés, dans lesquels : - la figure 1 est un schéma synoptique d'un dispositif d'estimation de flot optique adapté à la mise en oeuvre de l'invention; - la figure 2A est un diagramme montrant un exemple de profil d'intensité lumineuse au niveau d'un pixel d'un capteur asynchrone; -7 - la figure 2B montre un exemple de signal délivré par le capteur asynchrone en réponse au profil intensité de la figure 2A; - la figure 2C illustre la reconstruction du profil intensité à partir du signal de la figure 2B; - les figures 3A-B sont des diagrammes analogues à ceux des figures 2A-B illustrant un mode d'acquisition lumineuse utilisable dans un autre exemple de réalisation du procédé; - la figure 4 est un diagramme illustrant un mode de réalisation du procédé d'estimation de flot optique; - la figure 5 est un diagramme montrant des événements générés par un capteur asynchrone placé en regard d'une scène comportant une barre tournante; - la figure 6 est un diagramme illustrant un autre mode de réalisation du procédé d'estimation de flot optique. [0020] Le dispositif d'estimation de flot optique représenté sur la figure 1 comporte un capteur de vision asynchrone basé sur événements 10 placé en regard d'une scène et recevant le flux lumineux de la scène à travers une optique d'acquisition 15 comprenant une ou plusieurs lentilles. Le capteur 10 est placé dans le plan image de l'optique d'acquisition 15. Il comporte un groupement d'éléments photosensibles organisés en une matrice de pixels. Chaque pixel correspondant à un élément photosensible produit des événements successifs dépendant des variations de lumière dans la scène. (021] Un calculateur 20 traite l'information asynchrone f issue du capteur 10, c'est-à-dire les séquences d'événements reçues de manière asynchrone des différents pixels, pour en extraire de l'information V sur le flot optique observé dans la scène. Le calculateur 20 fonctionne sur des signaux numériques. Il peut être implémenté par programmation d'un processeur approprié. Une implémentation matérielle du calculateur 20 à l'aide de circuits logiques spécialisés (ASIC, FPGA, ...) est également possible. [0022] Pour chaque pixel de la matrice, le capteur 10 engendre une séquence de signal asynchrone basé sur événement à partir des variations de lumière - 8 - ressenties par le pixel dans la scène apparaissant dans le champ de vision du capteur. Un tel capteur photosensible asynchrone permet dans certains cas d'approcher la réponse physiologique d'une rétine. On le désigne alors par l'acronyme DVS : "Dynamic Vision Sensor" (capteur de vision dynamique). [0023] Le principe d'acquisition par ce capteur asynchrone est illustré par les figures 2A-C. L'information consiste en une succession de temps tk (k = 0, 1, 2, ...) auxquels un seuil d'activation Q est atteint. La figure 2A montre un exemple de profil d'intensité lumineuse P1 vue par un pixel de la matrice du DVS. Chaque fois que cette intensité augmente d'une quantité égale au seuil d'activation Q à partir de ce qu'elle était au temps tk, un nouvel instant tk+1 est identifié et une raie positive (niveau +1 sur la figure 2B) est émise à cet instant tk+i . Symétriquement, chaque fois que l'intensité du pixel diminue de la quantité Q à partir de ce qu'elle était au temps tk', un nouvel instant tk,+1 est identifié et une raie négative (niveau -1 sur la figure 2B) est émise à cet instant tk,+1. La séquence de signal asynchrone pour le pixel consiste alors en une succession d'impulsions ou raies ("spikes") positives ou négatives positionnées dans le temps aux instants tk dépendant du profil lumineux pour le pixel. Ces raies peuvent être représentées mathématiquement par des pics de Dirac positifs ou négatifs et caractérisées chacune par un instant d'émission tk et un bit de signe. La sortie du DVS 10 est ainsi sous la forme d'une représentation adresse-événement (AER). La figure 2C montre le profil d'intensité P2 qu'on est capable de reconstruire comme une approximation du profil P1 par intégration dans le temps du signal asynchrone de la figure 2B. [0024] Le seuil d'activation Q peut être fixe, comme dans le cas des figures 2A-C, ou adaptatif en fonction de l'intensité lumineuse, comme dans le cas des figures 3A-B. Par exemple, le seuil ±0 peut être comparé aux variations du logarithme de l'intensité lumineuse pour la génération d'un événement ±1. [0025] À titre d'exemple, le DVS 10 peut être du genre décrit dans "A 128x128 120 dB 15µs Latency Asynchronous Temporal Contrast Vision Sensor", P. Lichtsteiner, et al., IEEE Journal of Solid-State Circuits, Vol. 43, No. 2, février - 9 - 2008, pp. 566-576, ou dans la demande de brevet US 2008/0135731 A1. La dynamique d'une rétine (durée minimum entre les potentiels d'action) de l'ordre de quelques millisecondes peut être convenablement reproduite avec un DVS de ce type. La performance en dynamique est en tout cas largement supérieure à celle qu'on peut atteindre avec une caméra vidéo classique ayant une fréquence d'échantillonnage réaliste. [0026] Il est à noter que la forme du signal asynchrone délivré pour un pixel par le DVS 10, qui constitue le signal d'entrée du calculateur 20, peut être différente d'une succession de pics de Dirac, les événements représentés pouvant avoir une largeur temporelle ou une amplitude ou une forme d'onde quelconque dans ce signal asynchrone basé sur événement. [0027] On notera que le procédé proposé ici est applicable à d'autres types de DVS, et aussi à des capteurs de lumière dont les signaux de sortie sont générés selon une représentation adresse-événement sans nécessairement chercher à reproduire le comportement de la rétine. [0028] La figure 4 montre très schématiquement un capteur asynchrone monodimensionnel 20, c'est-à-dire composé d'une rangée de pixels, devant lequel un objet 25 défile à une vitesse v. On suppose que l'arrivée du bord avant de l'objet 25 devant un pixel engendre dans ce pixel un événement ON (marqué "+" sur la figure 4) et que le bord arrière de l'objet 25 engendre en passant devant le pixel un événement OFF (marqué "-" sur la figure 4). On s'intéresse au flot optique vu par le capteur 10 en un lieu d'estimation p et à un temps d'estimation t. Pour cela, on prend en considération un voisinage spatial TC p du lieu d'estimation p, ainsi qu'un intervalle de temps 0 défini par rapport au temps d'estimation t. Dans le cas représenté sur la figure 4, le voisinage TC p est de la forme TCP = [p-R, p+R], et l'intervalle de temps 0 est une période de durée prédéfinie T se terminant au temps d'estimation: 0 = [t-T, t]. [0029] La figure 4 montre également l'ensemble So des événements reçus des pixels du capteur 10 en provenance du voisinage spatial TC p dans l'intervalle de temps O. On voit dans la représentation espace-temps du graphique situé à la -10- partie inférieure de la figure 4, que les événements de l'ensemble sont alignés. La pente de la droite passant par ces événements indique la vitesse v du bord avant de l'objet 25 vu par certains pixels du capteur 10. Cette vitesse v se retrouve aussi en d'autres points du capteur qui ont vu passer le bord arrière de l'objet 25 au cours de l'intervalle de temps O. C'est notamment la pente des événements de l'ensemble Spm reçus des pixels du capteur 10 en provenance du voisinage spatial 7C d'un autre lieu d'estimation p' dans l'intervalle de temps O. [0030] Dans la pratique, les événements ON ou OFF envoyés par les pixels du capteur 10 n'ont pas la régularité temporelle représentée dans le schéma idéalisé de la figure 4. Au contraire, les temps d'occurrence des événements ont un comportement relativement chaotique dû aux états électroniques non totalement prévisibles au sein des éléments photosensibles du capteur ainsi qu'au bruit d'acquisition. Ainsi, les événements de l'ensemble ont typiquement une dispersion autour de la droite dont la pente est représentative du flot optique au point (p, t). Ceci n'empêche pas l'estimation de la pente que présentent les événements de l'ensemble dans la représentation espace-temps. Une possibilité est de déterminer la droite qui approche au mieux les points de l'ensemble Sp,t au sens des moindres carrés, avec éventuellement une pondération plus forte des positions de pixels les plus proches du lieu d'estimation p. La pente de cette droite peut alors être déterminée puis inversée pour fournir une estimation de vitesse dans le champ de vision du capteur 10. [0031] La pente peut aussi être estimée de manière rapide par convolution des temps d'occurrence des événements de l'ensemble avec un noyau spatial de différentiation. Dans un tel cas, il peut être souhaitable d'atténuer les effets du bruit en appliquant, avant le noyau de convolution, une opération de lissage de l'ensemble d'événements dans la représentation espace-temps. Le lissage peut notamment être effectué en appliquant un filtre médian. [0032] Dans des applications d'imagerie, la matrice de pixels du capteur 10 est plus souvent bidimensionnelle que monodimensionnelle. La représentation espace-temps où on peut placer les événements ON ou OFF provenant des pixels est alors une représentation à trois dimensions telle que celle présentée sur la figure 5. Sur cette figure, chaque point indique un événement engendré de manière asynchrone à un instant t au niveau d'un pixel du capteur, de position , par le mouvement d'une barre tournant à vitesse angulaire constante comme schématisé dans l'encadré A. La majeure partie de ces points se répartissent à proximité d'une surface de forme générale hélicoïdale. Toutefois, les points ne sont pas exactement alignés sur cette surface compte tenu du comportement chaotique mentionné ci-dessus. En outre, la figure montre un certain nombre d'événements à distance de la surface hélicoïdale qui sont mesurés sans correspondre au mouvement effectif de la barre. Ces événements sont du bruit d'acquisition. [0033] Plus généralement, en présence de mouvements d'un ou plusieurs objets dans le champ de vision du capteur 10, des événements apparaissent dans la représentation tridimensionnelle (x, y, t), et on s'intéresse à rechercher le flot optique correspondant à ces mouvements. [0034] On désigne par e(p, t) un événement survenant au temps t en un pixel situé au lieu p = (x` . La valeur de e(p, t) est +1 ou -1 selon la polarité ON Y) (changement de contraste positif) ou OFF (changement de contraste négatif) de l'événement. À nouveau, on peut définir un voisinage spatial 7Cp du pixel p: 7Cp = { p' illiD1-1D11