FR 3033914 A1 20160923 FR 1552155 A 20150316 1 PROCEDE DE TRAITEMENT D'UN SIGNAL ASYNCHRONE La présente invention concerne le domaine du traitement de signal asynchrone, notamment pour la détection de formes dans ce signal. Diverses techniques de traitement de signal vidéo ont été historiquement développées. Elles reposent en général sur l'approche tramée traditionnelle. Il existe des capteurs asynchrones (DVS, ATIS). Ces capteurs peuvent remplacer avantageusement des caméras traditionnelles. Mais le traitement du signal est moins intuitif que dans le monde des caméras tramées. Si certains algorithmes ont été mis au point pour traiter certaines familles de problèmes (ex. flot optique, suivi de formes), d'autres problèmes restent peu ou pas explorés ou sont d'une résolution plus délicate. Cela est notamment le cas pour la reconnaissance de formes. Afin de détecter des formes et/ou des mouvements, les procédés actuels (i.e. utilisant des données vidéo en provenance de caméras classiques) cherchent à identifier certaines caractéristiques visuelles propres à un ensemble de pixels situés à proximité dans les données vidéo en question. Ces caractéristiques visuelles sont le plus souvent appréhendées par l'homme de l'art comme une information spatiale d'une image (même si cette information spatiale peut être en mouvement). Dès lors, l'information temporelle de données vidéo est souvent négligée : tout au plus, il peut être recherché une variation/évolution d'une caractéristique visuelle entre deux ou plusieurs images (ou trames) des données vidéo. La négligence de la composante temporelle peut s'expliquer principalement par la technologie d'acquisition habituelle des vidéo : les données vidéo sont le fruit d'une acquisition produisant un grand nombre d'images statiques (ou frame en anglais, 3033 914 2 trame en français). Cette technologie d'acquisition des vidéos a conditionné historiquement la manière dont sont traitées ou affichées les vidéos. L'existence de cette succession d'images statiques rend les informations temporelles (ou dynamiques) des données 5 vidéo difficilement manipulables. S'il est possible d'augmenter le nombre d'images par seconde des données vidéo, il est rare que la fréquence de ces images dépasse 100Hz, tant pour des questions de limites matérielles au niveau de l'acquisition que pour des questions de traitement en temps réel de ces données avec les outils classiques de détection de forme. 10 Il existe ainsi un besoin pour la détection de formes fiable et pouvant être utilisé en exploitant au mieux l'information temporelle des données vidéo. La présente invention vient ainsi améliorer la situation. Contrairement aux caméras classiques qui enregistrent des images successives à des instants d'échantillonnage réguliers, il a été développé des rétines biologiques 15 inspirées du fonctionnement de l'oeil humain. Les rétines biologiques ne transmettent que peu d'informations redondantes sur la scène à visualiser, et ce de manière asynchrone. Des capteurs de vision asynchrones basés sur événement délivrent des données numériques compressées sous forme d'événements. 20 Une présentation 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énement ont pour avantage d'enlever de la redondance, de réduire les temps de latence et d'augmenter la gamme dynamique 25 par rapport aux caméras classiques. 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é 3033914 3 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 (capteurs DVS). Certains capteurs asynchrones 5 associent les événements détectés à des mesures d'intensité lumineuse (capteurs ATIS). 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 ils). Si on utilise un tel 10 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. La grande précision temporelle de ces caméras peut permettre d'exploiter au mieux l'information temporelle d'une vidéo. 15 Néanmoins, le traitement des événements en provenance de ces capteurs peut être complexe, car les événements sont des concepts ponctuels en temps (t) et dans l'espace (x,y). Dès lors, leur traitement et leur analyse peuvent être difficiles. Il existe ainsi un besoin de créer des instruments simples et manipulables pour faire une analyse pertinente d'un signal issu d'un capteur asynchrone. 20 L'analyse doit notamment inclure les dimensions spatiales et la dimension temporelle pour faciliter l'identification de caractéristiques spatio-temporelles dans les événements extrêmement nombreux que délivre un tel capteur, sans perdre la dynamique de celui-ci. 25 À cet effet, la présente invention propose un procédé de traitement d'un signal asynchrone produit par un capteur de lumière, le capteur ayant une matrice de pixels disposée en regard d'une scène, le procédé comprenant : - recevoir du capteur de lumière le signal asynchrone comprenant, pour chaque pixel de la matrice, des événements successifs issus dudit pixel ; 3033914 4 - analyser le signal asynchrone à l'aide de profils d'activité au fur et à mesure de la réception d'événements dans le signal asynchrone. Le profil d'activité comprend au moins, pour chaque pixel du capteur, une valeur d'activité qui décroît en fonction du temps écoulé depuis un événement le plus récent 5 parmi les événements successifs issus dudit pixel. Le « profil d'activité » d'un pixel peut être vu comme une courbe fonction du temps dont la valeur est représentative, au moins, du temps du dernier événement reçu pour ce pixel (éventuellement filtré sur une polarité donnée). Les profils d'activité ainsi établis constituent des outils d'analyse qui résument 10 l'apparition des événements en conservant localement leur structure spatio-temporelle. Il a été constaté que la morphologie des profils d'activité dénote la présence de certaines formes élémentaires dans la scène observée par le capteur. Ces profils évoluent au fur et à mesure de la réception des événements 15 asynchrones et conservent donc la dynamique du capteur. L'ensemble des profils d'activité constitue ce que l'on peut appeler une « carte de fraicheur » du capteur. De nombreuses applications de traitement de signal peuvent être mises au point avec l'analyse utilisant les profils d'activité. De façon non limitative, il est possible de 20 les utiliser pour : - la reconnaissance de formes: il est fait référence à une bibliothèque de profils types traduisant des mouvements prédéfinis de formes élémentaires prédéfinies. Si l'analyse révèle un profil d'activité similaire à un profil type de la bibliothèque, une reconnaissance de forme a lieu et une indication de 25 vitesse de déplacement de cette forme est estimée ; - estimation de mouvement dans la scène : si un profil d'activité est détecté une première fois puis peu après (ou un profil d'activité très similaire) dans une région proche, une estimation sur la vitesse de déplacement d'un objet dans le champ de vision du capteur peut être déterminée ; 3033914 5 - estimation de profondeur dans une image (stéréo) : si un même profil d'activité (ou similaire) est détecté dans deux images provenant de deux capteurs capturant la même scène, il est possible de considérer que les pixels associés aux profils d'activités correspondent au même point de la 5 scène capturé et ainsi déterminer la profondeur de ce point ; - etc. Le « signal asynchrone » peut être l'ensemble des événements provenant d'un capteur rétinien donné ou un sous-ensemble de ces événements (sous-ensemble spatial : limité à certains pixels seulement ; ou/et sous-ensemble temporel : limité à 10 une période de temps donné). En outre, le profil d'activité peut décroître exponentiellement en fonction du temps écoulé depuis un événement le plus récent parmi les événements successifs issus dudit pixel. 15 Cette décroissance exponentielle peut permettre de mieux mettre en évidence les derniers événements reçus par le capteur. Dans un mode de réalisation particulier, le profil d'activité peut être en outre en fonction du temps écoulé depuis un événement antérieur à l'événement le plus 20 récent parmi les événements successifs issus dudit pixel. Il est même possible de prendre en compte tous les événements reçus pour ce pixel afin de déterminer le profil d'activité associé. La présente invention propose également un procédé de reconnaissance de 25 formes spécialement adapté aux capteurs rétiniens, et utilisant le traitement du signal asynchrone précédemment présenté. La présente invention peut également viser un procédé de reconnaissance de formes comprenant : /a/ l'exécution du procédé de traitement d'un signal asynchrone présenté 3033914 6 précédemment ; /b/ au fur et à mesure de la réception des événements, pour chaque pixel courant dudit capteur : /b1/ détermination d'un contexte pour ledit pixel courant, ledit contexte 5 étant défini comme un ensemble de profils d'activité de pixels situés à moins d'une distance prédéterminée dudit pixel courant, /b2/ détermination d'un contexte type parmi un ensemble de contextes types prédéterminés, le contexte type déterminé ayant, parmi l'ensemble des contextes types, une distance au contexte déterminé 10 à l'étape /b1/ minimum, /c/ détermination d'une signature fonction d'un nombre d'occurrences de détermination des contextes types à l'étape /b2/; /d/ détermination d'une forme par une comparaison de ladite signature avec une base de signature types. 15 Les distances peuvent être des distances au sens mathématique. Ainsi, les distances peuvent être des distances euclidiennes, des distances de Manhattan, des distances de Minkoswski, des distances de Tchebychev ou toutes autres distances. Le plus souvent, il est possible de représenter un « contexte » comme une surface dans un espace à trois dimensions (deux axes représentatifs des coordonnées des 20 pixels et un axe sans dimension (fonction d'un temps)). Ce contexte permet d'appréhender l'environnement proche de l'événement considéré (i.e. courant) spatialement et temporellement. Un contexte peut être vu comme un ensemble de valeurs associées à des coordonnées des pixels situés à moins d'une distance prédéterminée d'un pixel dont provient l'événement courant (dit 25 « pixel courant »), relativement au pixel courant. 3033914 7 Le plus souvent, il est possible de représenter un « ensemble de composantes » graphiquement comme un « histogramme ». La terminologie « histogramme » ou « signature » est également utilisée dans la suite de la description. 5 Dans un autre mode de réalisation, il est possible de prendre en compte un modèle hiérarchique pour les contextes types utilisés. La présente invention peut ainsi viser un procédé de reconnaissance de formes comprenant (un modèle hiérarchique de contextes types étant définis, chaque contexte type étant associé à une pluralité de niveau du modèle hiérarchique) : 10 /a/ utilisation des événements du signal asynchrone du capteur comme événements courants et utilisation des contextes types du premier niveau du modèle hiérarchique comme contextes types courants ; /b/ exécution du procédé de traitement d'un signal asynchrone comme indiqué précédemment avec les événements courants ; 15 /c/ au fur et à mesure de la réception des événements courants, pour chaque pixel courant dudit capteur : /cl/ détermination d'un contexte pour ledit pixel courant, ledit contexte étant défini comme un ensemble de profils d'activité utilisés à l'étape /b/ pour des pixels situés à moins d'une distance prédéterminée dudit 20 pixel courant, /c2/ détermination d'un contexte type (Ck) parmi les contextes types courants (504), le contexte type déterminé ayant, parmi l'ensemble des contextes types courants, une distance au contexte déterminé à l'étape Ici! minimum, 25 /c3/ génération d'un événement fonction du contexte type identifié à l'étape /c2/ ; /d/ si un niveau du modèle hiérarchique n'a pas été utilisé : - utilisation des événements générés à l'étape /c3/ comme événements courants, 3033 914 8 - utilisation des contextes types d'un niveau du modèle hiérarchique non encore utilisé comme contextes types courants ; - réexécution des étapes /b/ à le!; /e/ si tous les niveaux du modèle hiérarchique ont été utilisés : 5 - détermination (521) d'une signature fonction d'un nombre d'occurrences de détermination des contextes types à la dernière occurrence de l'étape 1c21; - détermination (524) d'une forme par une comparaison de ladite signature avec une base de signatures types. 10 Ces niveaux hiérarchiques permettent de procéder à une reconnaissance de proche en proche : le premier niveau hiérarchique permet d'identifier des formes très basiques, les niveaux hiérarchiques d'ordre supérieur permettant d'identifier des formes plus complexes à partir des niveaux inférieurs. 15 Dans un mode de réalisation particulier, la détermination d'un contexte prend en compte, séparément, les événements ayant des polarités différentes. Par exemple, la polarité peut correspondre au fait qu'une intensité de pixel varie (ex. +1 en cas d'augmentation ou -1 en cas de diminution). La polarité peut également correspondre au contexte type identifié pour le niveau hiérarchique 20 immédiatement inférieur. Le fait de prendre en compte séparément les événements ayant des polarités différentes permet d'augmenter la pertinence des contextes déterminés. Dans ce cas, un contexte peut être vu comme un ensemble de valeurs associées : - à des coordonnées des pixels situés à moins d'une distance prédéterminée 25 d'un « pixel courant », relativement au pixel courant ; et - à une polarité donnée. 3033914 9 Avantageusement, la distance utilisée à l'étape /e/ est une distance de Bhattacharyya ou une distance normalisée. 5 Un programme informatique, mettant en oeuvre tout ou partie du procédé décrit ci- avant, installé sur un équipement préexistant, est en lui-même avantageux. Ainsi, la présente invention vise également un programme informatique comportant des instructions pour la mise en oeuvre du procédé précédemment décrit, lorsque ce programme est exécuté par un processeur. 10 Ce programme peut utiliser n'importe quel langage de programmation (par exemple, un langage-objet ou autre), et être sous la forme d'un code source interprétable, d'un code partiellement compilé ou d'un code totalement compilé. La figure 5 décrite en détail ci-après peut former l'organigramme de l'algorithme général d'un tel programme informatique. 15 D'autres caractéristiques et avantages de l'invention apparaîtront encore à la lecture de la description qui va suivre. Celle-ci est purement illustrative et doit être lue en regard des dessins annexés sur lesquels : - la figure 1 est un schéma synoptique d'un capteur asynchrone de lumière de 20 type ATIS ; - la figure 2 est un diagramme montrant des événements générés par un capteur asynchrone placé en regard d'une scène comportant une étoile tournante ; - les figures 3a et 3b sont des exemples de représentation d'un « signal 25 d'activité » pour les événements d'un pixel donné ; - la figure 3c est un exemple d'une surface 3D représentant une carte de « fraicheur » donnée selon un mode de réalisation de l'invention ; - la figure 3d est un exemple d'une surface 3D représentant un contexte selon 3033914 10 un mode de réalisation de l'invention ; - la figure 4 illustre la survenance d'événements dans le flux d'événements lorsque des cartes à jouer sont retournées ; - la figure 5 est un exemple d'ordinogramme d'un mode de réalisation possible 5 de l'invention ; - les figures 6a à 6c sont des exemples de contextes types dans un mode de réalisation possible de l'invention ; - la figure 7 illustre un dispositif pour la mise en oeuvre d'un mode de réalisation selon l'invention ; 10 - les figures 8a à 8c sont des exemples de performances de détection de formes pour différentes formes à reconnaitre. La figure 1 illustre le principe de l'ATIS. Un pixel 101 de la matrice constituant le capteur comporte deux éléments 15 photosensibles 102a, 102b, tels que des photodiodes, respectivement associés à des circuits électroniques de détection 103a, 103b. Le capteur 102a et son circuit 103a produisent une impulsion Po lorsque l'intensité lumineuse reçue par la photodiode 102a varie d'une quantité prédéfinie. L'impulsion Po marquant ce changement d'intensité déclenche le circuit 20 électronique 103b associé à l'autre photodiode 102b. Ce circuit 103b génère alors une première impulsion P1 puis une deuxième impulsion P2 dès qu'une quantité de lumière donnée (nombre de photons) est reçue par la photodiode 102b. L'écart temporel St entre les impulsions P1 et P2 est inversement proportionnel à l'intensité lumineuse reçue par le pixel 101 juste après l'apparition de l'impulsion Po. 25 L'information asynchrone issue de l'ATIS comprend deux trains impulsions combinées pour chaque pixel (104) : le premier train des impulsions Po indique les instants où l'intensité lumineuse a changé au-delà du seuil de détection, tandis que 3033 914 11 le second train se compose des impulsions P1 et P2 dont l'écart temporel St indique les intensités lumineuses, ou niveaux de gris, correspondants. Un événement e(p, t) issu d'un pixel 101 de position p dans la matrice de l'ATIS comporte alors deux types d'information: une information temporelle donnée par la 5 position de l'impulsion Po, donnant l'instant t de l'événement, et une information de niveau de gris donnée par l'écart temporel St entre les impulsions P1 et P2. On peut alors placer les événements provenant des pixels dans une représentation espace-temps à trois dimensions telle que celle présentée sur la figure 2. Sur cette figure, chaque point p repère un événement e(p, t) engendré de 10 manière asynchrone à un instant t au niveau d'un pixel p du capteur, de position (xy), par le mouvement d'une étoile 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. En outre, la figure montre un certain nombre d'événements à distance de la surface hélicoïdale qui sont mesurés 15 sans correspondre au mouvement effectif de l'étoile. Ces événements sont du bruit d'acquisition. Les événements e(p,t) peuvent alors être définis par l'ensemble des informations suivantes : tp E C c e(p, t) = pol l(p,t) II: avec C le domaine spatial du capteur, pol la polarité représentant la direction du 20 changement de luminance (ex. 1 pour une augmentation ou -1 pour une diminution) et I (p,t) le signal d'intensité lumineuse du point p. Le signal d'intensité lumineuse peut être ainsi l'ensemble des trains d'impulsions combinées 104 tel que décrit en Figure 1. Si tu représente le temps de survenance de l'événement, et l'écart entre te+,, et te_,, représente une valeur inversement 25 proportionnelle à la variation d'intensité, il est possible de coder l'intensité à l'aide de trois Dirac ô de telle sorte que I (p, t) = 8(t - tu) + 8(t - te+,u)+ 8(t - te_,u). Le signal d'intensité du pixel situé à la coordonnée p permet alors de coder 3033914 12 temporellement les informations de luminance. Il est possible de noter le ième événement d'un capteur comme ev(i), ev(i) étant alors défini par l'ensemble des informations suivantes : ev(i) E C v(i) = c po , ti li(pi,ti) 11: avec C le domaine spatial du capteur, pi le point du capteur concerné par le ième 5 événement, poli la polarité représentant un type d'événements (par exemple, la direction du changement de luminance pour le ième événement, ex. 1 pour une augmentation ou -1 pour une diminution), ti le temps de survenance du ième événement et li(p,t) le signal d'intensité lumineuse du point pi (si cette valeur est disponible). 10 Afin de manipuler de manière plus simple les événements, il est possible de définir pour chaque pixel p et pour chaque polarité pol une fonction S représentative d'une « fraicheur » des événements, S(p,pol) étant fonction au moins du temps t de survenance du dernier événement pour ce pixel et ayant cette polarité pol. Il est possible de définir la fonction S comme la somme, pour chaque événement Pi P 15 ev(i) = poli =Pol d'un pixel p donné et pour une polarité pol donnée, à un instant tP t donné, de la fonction primitive Sprim(p,p0/, t) = max(11 + e. (t - t), 0) si t tp, h 0 sinon étant une valeur prédéterminée et 0 étant un facteur prédéterminé correspondant à la vitesse de la décroissance de, la fonction primitive. La « somme » de la fonction primitive peut être également vue mathématiquement 20 comme une convolution : frnax(h - 0 - de la fonction primitive Sprim(p, t) = . t, 0) si t > 0 (ou plus 0 sinon généralement de toute fonction décroissante), - avec un signal comportant un Dirac pour chaque temps tp auquel un 3033914 13 Pi = P événement evp(i) = po i = Po/ est survenu. tP A titre d'illustration, la figure 3a montre trois signaux d'activité possibles t -> S, pour trois pixels pi, p2 et p3du capteur (et pour une valeur de polarité pol donnée). En l'absence d'événements, la valeur de S(pi, t), S(p2, t) ou S(p3, t) est nulle. 5 Néanmoins, lors de la survenance d'un événement de polarité pol (par exemple, 310) au niveau du pixel pi, S(pi, t) prend une valeur seuil prédéterminé (ici h, cette valeur h pouvant être unitaire). La valeur du signal d'activité S(pi, t) décroît alors progressivement après cet événement pour tendre vers 0. 10 Il en va de même pour l'événement 311 pour le pixel pi, pour l'événement 312 pour le pixel p2, ou pour l'événement 313 / 314 pour le pixel p3, Si la décroissance du signal d'activité S est ici linéaire, il est possible de prévoir tout type de décroissance comme une décroissance exponentielle : t- tP h. e Cette décroissance exponentielle peut être illustrée par la figure 3b (voir la courbe 15 3b et l'événement 320). Par ailleurs, il est possible que, lors de la survenance d'un événement pour le pixel considéré (ex. p4 ici), la valeur de la fonction S ne soit pas négligeable par rapport à la valeur de h (ex. l'événement 321 est temporellement proche de l'événement 322). 20 Dans un mode de réalisation, lors de la survenance de l'événement ultérieur 322, la valeur du signal d'activité S peut être fixée à la somme (éventuellement pondérée) de la valeur courante de S juste avant l'événement 322 (i.e. ho) et de h. Ainsi, la décroissance de la courbe S partira de la valeur h+ho comme le montre la figure 3b. Par ailleurs, il est possible de prévoir que la valeur de h+ho soit capée à une valeur 25 hl prédéterminée (i.e. min(hi, h+ho)) Dans un autre mode de réalisation, lors de la survenance de l'événement ultérieur 3033914 14 322, la valeur de la courbe S est fixée à la valeur h quelle que soit la valeur de ho (i.e. les événements antérieurs au dernier événement (i.e. l'événement ultérieur) sont ignorés). Dans cet autre mode de réalisation, il est possible de définir un temps dit « temps de dernier événement » défini comme suit : T (p, pol, i) = max(ti) 11 T(p,pol, t) définit une carte des temps des derniers événements de même polarité survenus temporellement juste avant un temps de 10 référence (i.e. t). On peut alors définir, dans cet autre mode de réalisation, p -> S(p,pol, t) comme étant une fonction de cet ensemble de temps T(p,pol,t). Par exemple, p S(p,pol,t) : t-T(p,pol,t) p -> S (p, pol, t):111. e T Si t T(p,pol,t) 0 sinon avec r et h une constante temporelle prédéterminée (S peut être toute fonction 15 décroissante avec le temps t sur un intervalle comprenant comme borne inférieure T(p,pol,t)). La création d'une carte S de pixels représentative de la « fraicheur » d'événements de ces pixels est avantageuse, car elle permet une représentation continue et simple de concepts discontinus (i.e. les événements). Cette carte créée permet de 20 transformer la représentation des événements dans un domaine simple d'appréhension. Dès lors, sa création simplifie la manipulation et la comparaison des événements. 3033914 15 Une fois la carte de pixels p -> S(p,pol,t) déterminée, il est possible de réaliser un graphique en 3D de l'amplitude de S en fonction des coordonnées p, pour un temps t et pour une valeur de polarité pol fixés (voir Figure 3c). Bien entendu, S peut comprendre N jeux de valeurs séparés (i.e. (p,pol) -> 5 S(p, pol, t), une pour chaque valeur de polarité pol possible (s'il existe N valeurs de polarité possibles). On appelle Sp le « contexte » du pixel p l'ensemble des valeurs de (q,pol)-> S(q,pol,t) pour les pixels g à proximité du pixel p (i.e. situé à une distance 10 prédéterminée du pixel p, ex. distance au sens mathématique, par exemple dans un carré de côté 2R+1 centré sur le pixel p). Afin de représenter visuellement le contexte (comprenant plusieurs valeurs de polarité possibles), il est possible de juxtaposer plusieurs représentations de q -> S(q,pol,t) pour les différentes valeurs de pol possibles. 15 Par exemple, la figure 3d peut être représentative du « contexte » 350 du pixel p: le plateau 351 est alors représentatif d'une valeur de la fonction q -> S(q,1,t) et le plateau 352 est représentatif d'une valeur de la fonction g -> S(q,-1,t) (bien entendu, les plateaux peuvent avoir toutes formes, le choix du plateau permettant simplement de faciliter la visualisation). De même, le point 353 et 354 correspond à 20 une valeur de la fonction S pour un même pixel mais pour une polarité différente. Il est possible de définir un contexte Sp pour tout pixel p. Afin de pouvoir caractériser les différents contextes possibles, il est possible de définir des contextes dits « types ». 25 Ces contextes types peuvent être prédéterminés ou peuvent être déterminés sur la base de l'algorithme fourni par le document D. Ballard and J. Jehee, « Dynamic coding of signed quantities in cortical feedback circuits » Frontiers in Psychology, vol. 3 n°254, 2012 ou en utilisant une autre méthode (méthode des « k-means » par exemple). 3033914 16 Pour chaque contexte Sp identifié pour un pixel p, il est possible d'associer au pixel p un contexte type correspondant au contexte type le plus proche de S. La distance entre le contexte Sp et un contexte type peut être, par exemple, déterminé en calculant une somme des distances euclidiennes entre les valeurs du contexte Sp et 5 du contexte type pour des mêmes pixels p et des mêmes polarités pol. La distance peut être également fonction de la somme des distances euclidiennes au carré. Si la distance calculée est au-dessus d'un certain seuil prédéterminé, il est possible de n'associer aucun contexte type au pixel p. Ces contextes types {Ck} sont définis sur un domaine spatial limité comme 10 précédemment évoqué pour les contextes Sp (ex. sur des carrés de côté 2R + 1). Il est également possible de définir plusieurs niveaux hiérarchiques de contextes types, chaque niveau hiérarchique m définissant une pluralité de contextes types {Ck m}. L'intérêt de tels niveaux hiérarchiques est détaillé au regard de la description de la figure 5. 15 A titre d'illustration, la figure 6a illustre un premier niveau hiérarchique de contextes types possibles (i.e. taille 5x5 pixels pour une polarité de 1 (zone de gauche de chacun des contextes types) ou pour une polarité de -1 (zone de droite de chacun des contextes types)). 20 De plus, à un instant t donné, et après identification des contextes types {Ck} (ou plus généralement {Ck m} pour un niveau hiérarchique m fixé) associés à chaque pixel p, il est possible de calculer un nombre d'occurrences de chacun des contextes types pour l'ensemble des pixels p possibles. Ces nombres d'occurrences calculés permettent de créer des signatures / 25 histogrammes g-C caractérisant le flux d'événements (en ordonné, le nombre d'occurrences, en abscisse, l'indice du contexte type identifié). La caractérisation du flux d'événements permettant la reconnaissance de forme peut aussi utiliser d'autres méthodes telles des Echo-State Networks ou des Réseaux de neurones récurrents. 3033914 17 À titre d'illustration, la figure 4 illustre la survenance d'événements « ON » (points blancs) et d'événements « OFF » (points noirs) lorsque des cartes à jouer comportant un trèfle, un carreau, un coeur, et un pique sont retournées. Les histogrammes respectivement associés à chacun de flux d'événements (a), (b), (c) et 5 (d) sont également affichés en dessous de ces flux d'événements : ces histogrammes constituent une sorte de « signature » des formes à reconnaitre dans le flux d'événements. Il est possible de construire ces histogrammes durant un nombre prédéterminé d'entrainements (i.e. génération d'histogrammes par la présentation d'un flux 10 d'événements représentatifs d'une même forme) : ainsi, il est possible de déterminer un « histogramme type » en moyennant les histogrammes obtenus durant l'entrainement pour une même forme et/ou un même mouvement. Une fois ces histogrammes types déterminés, il est alors possible de déterminer à nouveau un histogramme courant à partir d'un flux d'événements et de comparer cet 15 histogramme avec les histogrammes types déterminés durant la phase d'entrainement. L'histogramme type ayant une distance la plus proche avec l'histogramme courant peut alors permettre d'identifier la forme correspondant au flux d'événements. Il est en outre possible que les k-plus proches histogrammes types soient 20 retournées (éventuellement avec une note correspondant à leur proximité). La distance entre deux histogrammes 1-C1 et gt2 peut être calculée comme une distance mathématique entre deux vecteurs ayant pour coordonnées les nombres d'occurrences pour chacun des contextes types : d(1-C1; .7-C2) = II1Ci- g-c211 Il est également possible de calculer une distance normalisée comme suit : dNP-Ci; /12) = card(g-C1) card(g-C2)11 25 avec card(g-Ci) le nombre de contextes types (i.e. barre verticale) de l'histogramme 3033914 18 La distance de Bhattacharyya peut également être utilisée en remplacement de la distance classique : dB (1f1;1-C2) ln (11card1(g-Ci) 1). card2((g-Ci) 2)11) avec 1-t) (i) le nombre d'occurrences du ième contexte type de l'histogramme gi). Toute autre distance mathématique peut également être utilisée. 5 Dès lors, il est possible de considérer que la forme correspondant à l'histogramme type associé est survenue dans le flux d'événements. Grâce à cet histogramme type, une reconnaissance de forme est ainsi possible. La figure 5 est un exemple d'ordinogramme d'un mode de réalisation possible de 10 l'invention. Sur réception d'un événement i d'un flux d'événement 500 provenant d'un capteur asynchrone et associé à temps ti, il est possible de déterminer ou de mettre à jour (étape 501) les valeurs de S(p,pol,ti) pour chaque pixel p du capteur et pour chaque valeur de pol, comme cela est indiqué précédemment : cette étape permet de créer 15 ou de mettre à jour la carte de « fraicheur » du capteur. Pour l'étape 501, la constante de temps utilisée pour la décroissance de la fonction primitive de S est notée Tl. Ainsi, nous pouvons, par exemple, avoir : S(p,pol,ti) = h.e Une fois cette détermination effectuée, il est possible, pour chaque pixel p du capteur, d'extraire un contexte Sp (étape 502) de la carte de fraicheur précédemment 20 calculée à l'étape 501 : cette extraction permet d'isoler certaines valeurs de S(q,pol,ti) pour les pixels q à proximité spatiale Np du pixel p considéré et pour une valeur de polarité pol donnée. À titre d'illustration, Np 1 peut définir un carré ou un rectangle centré autour de la position spatiale p considérée. La proximité spatiale Np 1 peut être définie afin que les contextes ainsi extraits soient de dimensions 3033914 19 égales aux dimensions des contextes types du premier niveau hiérarchique 503 (Ck 1), afin d'être comparées à ces derniers. A titre d'illustration, la figure 6a illustre un premier niveau hiérarchique de contextes types possibles (i.e. taille 5x5 pixels pour une polarité de 1 (zone de 5 gauche de chacun des contextes types) ou pour une polarité de -1 (zone de droite de chacun des contextes types)). La comparaison du contexte déterminé Sp 1 et associé au pixel p avec les contextes types possibles {Ck il du premier niveau hiérarchique permet d'identifier le contexte type le plus proche de Sp 1 (étape 504) comme indiqué précédemment. 10 Cette identification du contexte type le plus proche Ck iprOX parmi avec les contextes types possibles {Ck il du premier niveau hiérarchique permet de générer, pour le pixel p, un événement evi indiquant le contexte type associé à ce pixel p (étape 505) : evl(p) ={ Ck lprox avec t le temps courant. 15 Si aucun contexte type le plus proche n'est identifié (voir supra), aucun événement n'est généré. La génération de ces événements evi(p) constitue également un flux asynchrone d'événements (506). Dès lors, il est possible de traiter ces événements 506 de manière similaire aux 20 événements 500 en provenance du capteur. Ainsi, sur réception de chaque événement j du flux d'événement 506 et associé à temps t, il est possible de déterminer ou de mettre à jour (étape 511) les valeurs d'une nouvelle carte de « fraicheur » (i.e. carte pour le deuxième niveau hiérarchique) ayant comme valeur (p,pol) -> S2(p,pol,t1) pour chaque pixel p du 25 capteur et pour chaque valeur de pol (sachant que pour cette étape 511 les valeurs de pol sont représentatives du contexte type identifié lors de l'étape 504 pour le 3033914 20 premier niveau hiérarchique, i.e. 4 contextes types possible dans le cadre de la figure 6a, chaque contexte type ayant deux polarités), comme cela est indiqué précédemment. Pour l'étape 511, la constante de temps utilisée pour la décroissance de la 5 fonction primitive est notée r2 avec r2 > ri. Ainsi, nous pouvons, par exemple, avoir : t1-T(p,ti) S2(p,t1) = h. e T2 Une fois cette détermination effectuée, il est possible, pour chaque pixel p du capteur, d'extraire un contexte Sp2 (étape 512) de la carte de fraicheur précédemment calculée à l'étape 511 : cette extraction permet d'isoler certaines valeurs de S2(q,pol,ti) pour les pixels q à proximité spatiale Np 2 du pixel 10 p considéré et pour une valeur de polarité pol donnée. À titre d'illustration, Np 2 peut définir un carré ou un rectangle centré autour de la position spatiale p considérée. La proximité spatiale Np 2 peut être définie afin que les contextes ainsi extraits soient de dimensions égales aux dimensions des contextes types du deuxième niveau hiérarchique 513 (Ck 2), afin d'être comparées à ces derniers. 15 A titre d'illustration, la figure 6b illustre un deuxième niveau hiérarchique de huit contextes types possibles. Si chaque contexte type du premier niveau hiérarchique possède deux zones (une zone pour les événements de polarité -1 (OFF) et une zone pour les événements de polarité 1 (ON), voir Figure 6a), les contextes types du deuxième niveau hiérarchique 20 possèdent autant de zones (i.e. 4) que de contexte types dans le niveau hiérarchique immédiatement inférieur (i.e. le premier niveau hiérarchique, ici, voir Figure 6b). Par ailleurs, les contextes types du deuxième niveau hiérarchique peuvent être tels que la proximité spatiale Np 2 définisse une zone plus grande que celle définie par la proximité spatiale Np 1 (ex. si Np 1 est définie par un carré de côté 2R1+1 alors 25 si Np 2 peut être définie par un carré de côté 2R2+1 avec R2 R1). La comparaison du contexte déterminé Sp2 et associé au pixel p avec les contextes types possibles {Ck 2} du premier niveau hiérarchique permet d'identifier le 3033914 21 contexte type le plus proche de Sp 2 (étape 514) comme indiqué précédemment. Cette identification du contexte type le plus proche Ck 2prox parmi avec les contextes types possibles {Ck 2} du deuxième niveau hiérarchique permet de générer, pour le pixel p, un événement ev2 indiquant le contexte type associé à ce 5 pixel p (étape 515) : ev2(p) = I e Ck 2 prox avec t le temps courant. Si aucun contexte type le plus proche n'est identifié (voir supra), aucun événement n'est généré. La génération de ces événements ev2(p) constitue également un flux asynchrone 10 d'événements (516). Dès lors, il est possible de traiter ces événements 516 de manière similaire aux événements 506 : s'il existe un niveau hiérarchique supérieur (test 517, sortie OK, par exemple le niveau hiérarchique de niveau trois représenté par la figure 6c (6(c)(1) et 6(c)(2))), il est possible de réitérer les étapes 511 à 515 en prenant en 15 entrée les événements générés par le niveau hiérarchique immédiatement inférieur et en utilisant les contextes types de ce niveau hiérarchique supérieur (voir 513). S'il n'existe pas de niveau hiérarchique supérieur, il est possible de compter le nombre d'occurrences des contextes types (513) identifiés pour tous les pixels p et pour un temps t fixé. Comme expliqué ci-dessus, ce comptage permet la 20 détermination d'un histogramme g-C représentatif du nombre d'occurrences des contextes types identifiés (étape 521). À partir des histogrammes déterminés à l'étape 513, il est alors possible de calculer une distance entre des histogrammes types (523) représentatifs de formes et/ou de mouvements, et ainsi déterminer l'histogramme type le plus proche (étape 25 522). Grâce à cet histogramme type déterminé, il est possible de déterminer la forme et/ou le mouvement associé à celui-ci (étape 524) et ainsi retourner cette forme et/ou 3033 914 22 ce mouvement (525). Bien entendu, si l'ordinogramme de la figure 5 montre l'exécution des étapes 520 à 524 après l'analyse d'au moins un deuxième niveau hiérarchique de contextes types, ces étapes 520 à 524 peuvent tout à fait être exécutées après les étapes 501 5 à 505 (i.e. avec l'analyse d'un seul niveau hiérarchique). La figure 7 illustre un dispositif pour la mise en oeuvre d'un mode de réalisation selon l'invention. Dans ce mode de réalisation, le dispositif comporte un ordinateur 700, comprenant 10 une mémoire 705 pour stocker des instructions permettant la mise en oeuvre du procédé, les données relatives au flux d'événements reçu, et des données temporaires pour réaliser les différentes étapes du procédé tel que décrit précédemment. L'ordinateur comporte en outre un circuit 704. Ce circuit peut être, par exemple : 15 - un processeur apte à interpréter des instructions sous la forme de programme informatique, ou - une carte électronique dont les étapes du procédé de l'invention sont décrites dans le silicium, ou encore - une puce électronique programmable comme une puce FPGA (pour « Field- 20 Programmable Gate Array » en anglais). Cet ordinateur comporte une interface d'entrée 703 pour la réception des événements des capteurs, et une interface de sortie 706 pour la fourniture des formes 707 identifiées dans le flux d'événement. Enfin, l'ordinateur peut comporter, pour permettre une interaction aisée avec un utilisateur, un écran 701 et un clavier 25 702. Bien entendu, le clavier est facultatif, notamment dans le cadre d'un ordinateur ayant la forme d'une tablette tactile, par exemple. La figure 8a est un exemple de performance de détection de formes (trèfle, 3033 914 23 carreau, coeur et pique). Chaque ligne (voir ordonnée 801) correspond aux données relatives à une forme particulière ayant été apprise (i.e. histogramme type, voir supra). Chaque colonne (voir abscisse 802) correspond aux données relatives à une 5 forme particulière devant être reconnues (i.e. histogramme à reconnaitre). L'intersection d'une ligne et d'une colonne (correspondant à l'ensemble 803, par exemple) permet de visualiser la distance de l'histogramme type avec l'histogramme à reconnaitre pour plusieurs présentations de la forme (ici, 9 présentations de la forme, ces présentations sont séparées par un trait vertical pointillé) : 10 - la barre blanche (barre de gauche) correspond à une distance classique ; - la barre grise (barre du milieu) correspond à une distance normalisée ; - la barre noire (barre de droite) correspond à une distance de Bhattacharyya. Les trois distances (respectivement classique, normalisée, et de Bhattacharyya) ainsi représentées possèdent une performance respective de 94%, 100% et 97% 15 pour ces formes. La figure 8b est un exemple de performance de détection de formes (chiffres et lettres majuscules). Chaque ligne (voir ordonnée 804) correspond aux données relatives à une forme 20 particulière ayant été apprise (i.e. histogramme type, voir supra). Chaque colonne (voir abscisse 805) correspond aux données relatives à une forme particulière devant être reconnues (i.e. histogramme à reconnaitre). L'intersection d'une ligne et d'une colonne (correspondant à l'ensemble 806, par exemple) permet de visualiser la distance de l'histogramme type avec l'histogramme 25 à reconnaitre pour une présentation de la forme : - la barre blanche (barre de gauche) correspond à une distance classique ; - la barre grise (barre du milieu) correspond à une distance normalisée ; 3033914 24 - la barre noire (barre de droite) correspond à une distance de Bhattacharyya. Les trois distances (respectivement classique, normalisée, et de Bhattacharyya) ainsi représentées possèdent toutes une performance de 100% pour ces formes. 5 La figure 8c est un exemple de performance de détection de formes (visages). Chaque tableau (807, 808 et 809) présente le nombre d'occurrences de reconnaissance d'un visage présenté (abscisse) à l'aide de visage appris (ordonnées) pour 19 présentations de ce visage. Le tableau 807 utilise une distance classique pour effectuer la reconnaissance de 10 visage (taux de reconnaissance : 37%). Le tableau 808 utilise une distance normalisée pour effectuer la reconnaissance de visage (taux de reconnaissance : 78%). Le tableau 808 utilise une distance de Bhattacharyya pour effectuer la reconnaissance de visage (taux de reconnaissance : 79%). Par ailleurs, le schéma fonctionnel présenté sur la figure 5 est un exemple typique d'un programme dont certaines instructions peuvent être réalisées auprès du dispositif décrit. À ce titre, la figure 5 peut correspondre à l'organigramme de l'algorithme général d'un programme informatique au sens de l'invention. Bien entendu, la présente invention ne se limite pas aux formes de réalisation décrites ci-avant à titre d'exemple ; elle s'étend à d'autres variantes. D'autres réalisations sont possibles. Par exemple, les contextes types des figures 6a à 6c peuvent être de n'importe 25 quelles dimensions. Par ailleurs, la description mentionne principalement des sources d'événements en provenance d'un capteur de lumière/vidéo. Néanmoins, l'invention décrite se 15 20 3033914 25 généralise à tout ensemble de sources d'évènements comme par exemple un réseau de capteurs à pression qui fonctionneraient sur un tel mode asynchrone et dont l'agencement spatial serait assimilable à un capteur vidéo. REVENDICATIONS1. Procédé de traitement d'un signal asynchrone produit par un capteur de lumière, le capteur ayant une matrice de pixels disposée en regard d'une scène, le 5 procédé comprenant : - recevoir du capteur de lumière le signal asynchrone (500) comprenant, pour chaque pixel de la matrice, des événements successifs issus dudit pixel ; - analyser (501) le signal asynchrone à l'aide de profils d'activité au fur et à mesure de la réception d'événements dans le signal asynchrone ; 10 dans lequel le profil d'activité comprend au moins, pour chaque pixel (p) du capteur, une valeur d'activité (S (p)) qui décroît en fonction du temps (t) écoulé depuis un événement le plus récent (310, 311, 312, 313, 314, 320, 321, 322) parmi les événements successifs issus dudit pixel. 15 2. Procédé selon la revendication 1, dans lequel le profil d'activité décroît exponentiellement en fonction du temps (t) écoulé depuis un événement le plus récent (310, 311, 312, 313, 314, 320, 321, 322) parmi les événements successifs issus dudit pixel. 20 3. Procédé selon l'une des revendications précédentes, dans lequel le profil d'activité est en outre en fonction du temps (t) écoulé depuis un événement antérieur à l'événement le plus récent (310, 311, 312, 313, 314, 320, 321, 322) parmi les événements successifs issus dudit pixel. 25 4. Procédé de reconnaissance de formes, le procédé comprend : /a/ l'exécution du procédé de traitement d'un signal asynchrone selon l'une des revendications précédentes ; /b/ au fur et à mesure de la réception des événements, pour chaque pixel (p) 3033914 27 courant dudit capteur : /b1/ détermination (501) d'un contexte (Su) pour ledit pixel courant, ledit contexte (V étant défini comme un ensemble de profils d'activité de pixels situés à moins d'une distance prédéterminée dudit pixel (p) courant, /b2/ détermination d'un contexte type (Ck) parmi un ensemble de contextes types (504) prédéterminés, le contexte type déterminé ayant, parmi l'ensemble des contextes types, une distance au contexte déterminé à l'étape /b1/ minimum, /c/ détermination (521) d'une signature fonction d'un nombre d'occurrences de détermination des contextes types à l'étape 1b21; /d/ détermination (524) d'une forme par une comparaison de ladite signature avec une base de signature types. 5. Procédé de reconnaissance de formes, le procédé comprend, un modèle hiérarchique de contextes types étant définis, chaque contexte type étant associé à une pluralité de niveau du modèle hiérarchique : /a/ utilisation d'événements du signal asynchrone du capteur comme événements courants et utilisation des contextes types du premier niveau du modèle hiérarchique comme contextes types courants ; /b/ exécution du procédé de traitement d'un signal asynchrone selon l'une des revendications 1 à 3 avec les événements courants ; /c/ au fur et à mesure de la réception des événements courants, pour chaque pixel (p) courant dudit capteur : /cl/ détermination (501) d'un contexte (Su) pour ledit pixel courant, ledit contexte (V étant défini comme un ensemble de profils d'activité utilisés à l'étape /b/ pour des pixels situés à moins d'une distance prédéterminée dudit pixel (p) courant, 3033914 28 /c2/ détermination d'un contexte type (Ck) parmi les contextes types courants (504), le contexte type déterminé ayant, parmi l'ensemble des contextes types courants, une distance au contexte déterminé à l'étape /cl/ minimum, 5 /c3/ génération d'un événement fonction du contexte type identifié à l'étape /c2/ ; /d/ si un niveau du modèle hiérarchique n'a pas été utilisé : - utilisation des événements générés à l'étape /c3/ comme événements courants, 10 - utilisation des contextes types d'un niveau du modèle hiérarchique non encore utilisé comme contextes types courants ; - réexécution des étapes /b/ à lei; /e/ si tous les niveaux du modèle hiérarchique ont été utilisés : - détermination (521) d'une signature fonction d'un nombre 15 d'occurrences de détermination des contextes types à la dernière occurrence de l'étape /c2/ ; - détermination (524) d'une forme par une comparaison de ladite signature avec une base de signatures types. 20 6. Procédé selon l'une des revendications 4 à 5, dans lequel la détermination d'un contexte prend en compte, séparément, les événements ayant des polarités différentes. 7. Procédé selon l'une des revendications 5 et 6, dans lequel la comparaison de 25 l'étape /e/ comporte le calcul d'une distance de Bhattacharyya. 8. Procédé selon l'une des revendications 5 et 6, dans lequel la comparaison de 3033914 29 l'étape /e/ comporte le calcul d'une distance normalisée. 9. Produit-programme informatique comportant des instructions pour la mise en oeuvre du procédé selon l'une des revendications 1 à 8, lorsque ce programme est 5 exécuté par un processeur.