Brevet FR3042292A1 — publié le 20170414

PROCEDE D'OPTIMISATION DE DECOMPOSITION D'UN SIGNAL ASYNCHRONE La présente invention concerne le domaine du traitement de signal asynchrone, 5 notamment pour le calcul d'une décomposition de ce signal sur une base de référence. 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. 10 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 15 explorés ou sont d'une résolution plus délicate. Cela est notamment le cas pour le calcul de transformées (i.e. décomposition d'un signal sur une base d'une transformée, par exemple de Fourrier ou en ondelettes). Afin de calculer les décompositions d'images d'une vidéo sur une base donnée (notamment pour déterminer les fréquences spatiales dans une vidéo à un instant 20 donné ou pour réaliser une compression), les procédés actuels (i.e. utilisant des données vidéo en provenance de caméras classiques) les calculent en utilisant les trames de la vidéo : par exemple, les transformées de Fourrier de la vidéo sont calculées en identifiant une trame dans la vidéo et en effectuant le calcul de décomposition sur cette trame. 25 Par exemple, la transformée de Fourrier d'une trame (signal 2D) est calculée de la manière suivante (écriture fonctionnelle) : 3042292 2 N -1 M-1 X(v, kt) = x(u,v)e 2Tc eC u=o v=o avec N et M les dimensions de la trame, x(u, v) une valeur d'un pixel de la trame pour les coordonnées (u, v), v, p. les différentes fréquences possibles. Si une nouvelle trame est reçue, la décomposition est intégralement recalculée. Ce mode de calcul s'explique principalement par la technologie d'acquisition habituelle des vidéos : les données vidéo sont le fruit d'une acquisition produisant un grand nombre d'images statiques (ou frame en anglais, trame en français). Cette technologie d'acquisition des vidéos a conditionné historiquement la manière dont sont traitées les vidéos. À l'inverse, des capteurs de vision asynchrones basés sur des événements 10 délivrent des données numériques compressées sous forme d'événements. 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 des événements ont pour avantage d'enlever par 15 construction la redondance spatiale et temporelle, de réduire les temps de latence et d'augmenter la gamme dynamique par rapport aux caméras classiques fonctionnant sur le principe des « trames ». 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 20 réflectance/luminance 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 25 l'intensité augmente ou diminue (capteurs DVS). Certains capteurs asynchrones associent les événements détectés à des mesures d'intensité lumineuse (capteurs ATIS). 3042292 3 Le capteur n'étant pas échantillonné sur une horloge comme une caméra classique, ce capteur peut rendre compte du séquencement des événements avec une très grande précision temporelle (par exemple, de l'ordre de 1 i_ts). Si on utilise un tel capteur pour reconstruire une séquence d'images, on peut atteindre une 5 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. Afin de calculer la décomposition d'un signal, il est naturel d'utiliser les algorithmes optimisés connus (comme les FFT (pour « Fast Fourier Transform » en anglais) pour les transformées de Fourrier). Dans le cadre de caméras asynchrones, l'homme du métier serait ainsi incité à utiliser les algorithmes proposés antérieurement en prétraitant la vidéo en amont (i.e. en créant des « trames » à partir du flux asynchrone et de calculer les transformations à partir de ces trames reconstituées). Néanmoins, ces calculs de transformées (i.e. la décomposition d'un signal donné sur les bases des transformées) sont lourds et il peut être difficile de les effectuer dès qu'un nouvel événement survient dans le flux asynchrone (plusieurs milliers d'événements peuvent survenir chaque seconde). Dès lors, il existe un besoin pour effectuer le calcul des transformées de manière optimisée pour les caméras asynchrones afin d'éviter des calculs trop lourds et/ou une consommation mémoire trop importante. La présente invention vient ainsi améliorer la situation. La présente invention vise alors un procédé d'optimisation de décomposition d'un 25 signal asynchrone produit par un capteur de lumière sur une base de décomposition propre à une transformation, le capteur ayant une matrice de pixels disposée en regard d'une scène, le procédé comprenant : /a/ obtenir une décomposition dudit signal asynchrone pour un premier temps donné sur la base de décomposition ; 3042292 4 /b/ recevoir du capteur de lumière le signal asynchrone comprenant au moins un événement issu d'un pixel de la matrice, l'au moins un événement ayant été produit par le capteur entre le premier temps et un deuxième temps ultérieur ; 5 /c/ déterminer une première valeur dudit pixel pour le premier temps; /d/ déterminer une deuxième valeur dudit pixel pour le deuxième temps en fonction du au moins un événement ; /e/ déterminer une mise à jour de la décomposition obtenue en fonction de ladite décomposition obtenue, d'une différence entre la première valeur et de 10 la deuxième valeur et d'un terme fonction de coordonnées dudit pixel et de la base de décomposition de ladite transformation. Par exemple, la base de décomposition de la transformée de Fourrier est un ensemble d'exponentiel complexe (i.e. e-i2irif;r avec k prenant plusieurs valeurs). La décomposition peut être obtenue lors de l'étape /a/ à l'aide d'une base de 15 données. Cette décomposition peut être précalculée à l'aide d'algorithme(s) classique(s). Le capteur asynchrone peut être un capteur de type ATIS ou de type DVS ou de tout autre type asynchrone. La détermination de l'étape /c/ peut être effectuée en réalisant une requête dans 20 une base de données ou en interrogeant une mémoire. Le plus souvent, les décompositions effectuées sur les signaux vidéo concernent la composante de luminosité ou de luminance. Ainsi, la première et deuxième valeurs sont le plus souvent des valeurs de luminosité / luminance. L'événement portant le plus souvent une information de variation de luminosité par rapport à un état précédent (i.e. par rapport à la valeur de luminosité du pixel avant la survenance de l'événement), il est possible de déterminer la nouvelle luminosité du pixel en connaissant la valeur du pixel juste avant la survenance de l'événement. Le « terme fonction de coordonnées dudit pixel et de la base de décomposition de 3042292 5 ladite transformation » peut être exprimé sous la forme d'une matrice ou sous la forme d'une somme de fonctions. Ainsi, le calcul de la nouvelle décomposition (i.e. prenant en compte la modification liée à la survenance de l'événement) peut être très rapide car elle n'est 5 pas recalculée complètement. Seul un terme correcteur est calculé. Dans un mode de réalisation possible, ladite transformation peut être dans le groupe suivant : une transformation de Fourrier, une transformation en ondelettes, ou toute transformation linéaire. 10 De manière alternative, ladite transformation peut être une transformation non linéaire, la base de décomposition propre à cette transformation étant un développement d'ordre un de ladite transformation. 15 Par ailleurs, les étapes /a/ à /e/ peuvent être réitérées: - en utilisant la mise à jour de l'étape /e/ comme décomposition de l'étape /a/, - en utilisant le deuxième temps comme premier temps, un troisième temps ultérieur au deuxième temps étant utilisé comme deuxième temps. 20 Dans une mode de réalisation avantageux, un unique événement peut être reçu à l'étape /b/. Ainsi, dès la réception du moindre événement, la décomposition est immédiatement mise à jour sans attendre. 25 Dans un mode de réalisation particulier, la mise à jour peut être calculée comme une somme matricielle : 3042292 6 - de ladite décomposition obtenue, et exprimée sous forme matricielle ; - d'une différence entre la première valeur et de la deuxième valeur et multipliée par une première matrice dont les termes ne sont fonction que des coordonnées dudit pixel et de la base de décomposition de ladite 5 transformation. En outre, le procédé peut comprendre une étape préalable à l'étape /e/ : /f/ pour chaque pixel dudit capteur, précalculer et enregistrer dans une mémoire la première matrice. 10 La présente invention vise également un dispositif de calcul optimisé de décomposition d'un signal asynchrone produit par un capteur de lumière sur une base de décomposition propre à une transformation, le capteur ayant une matrice de pixels disposée en regard d'une scène, le dispositif comprenant : 15 /a/ une interface adaptée pour obtenir une décomposition dudit signal asynchrone pour un premier temps donné par ladite transformation ; /b/ une interface adaptée pour recevoir du capteur de lumière, le signal asynchrone comprenant au moins un événement issu d'un pixel de la matrice, l'au moins un événement ayant été produit par le capteur entre le 20 premier temps et un deuxième temps ultérieur ; /c/ un circuit adapté pour déterminer une première valeur dudit pixel pour le premier temps donné ; /d/ un circuit adapté pour déterminer une deuxième valeur dudit pixel pour le deuxième temps en fonction du au moins un événement ; 25 /e/ un circuit adapté pour déterminer une mise à jour de la décomposition obtenue en fonction de ladite décomposition obtenue, d'une différence entre la première valeur et de la deuxième valeur et d'un terme fonction de coordonnées dudit pixel et de la base de décomposition de ladite 3042292 7 transformation. 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, dès lors 5 qu'il permet la mise en oeuvre d'un mode de réalisation de l'invention. 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. Ce programme peut utiliser n'importe quel langage de programmation (par 10 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 3, 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 type ATIS ; 20 - 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 ; - la figure 3 est un ordinogramme présentant un processus d'optimisation de calcul de décomposition d'un signal sur une base de la transformée selon un 25 mode de réalisation de l'invention. - la figure 4 représente un exemple de dispositif permettant de mettre en oeuvre un mode de réalisation de l'invention. 3042292 8 La figure 1 illustre le principe de l'ATIS. Un pixel 101 de la matrice constituant le capteur comporte deux éléments photosensibles 102a, 102b, tels que des photodiodes, respectivement associés à des circuits électroniques de détection 103a, 103b. 5 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 é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 10 lumière donnée (nombre de photons) est reçue par la photodiode 102b. L'écart temporel Ôt 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. 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 15 instants où l'intensité lumineuse a changé au-delà du seuil de détection, tandis que le second train se compose des impulsions P1 et P2 dont l'écart temporel Ôt 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 20 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 Ôt 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 25 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 3042292 9 sans correspondre au mouvement effectif de l'étoile. Ces événements représentent du bruit d'acquisition. Les événements e(p,t) peuvent alors être définis par l'ensemble des informations suivantes : pE Cc e(p,t) = pol l(p,t) 5 avec C le domaine spatial du capteur, pol la polarité représentant la direction du 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 asynchrone 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 10 l'événement, et l'écart entre te+,u et te_,u représente une valeur inversement proportionnelle à la variation d'intensité, il est possible de coder l'intensité à l'aide de trois Dirac 8 de telle sorte que l(p,t) = 8(t - tu) + 8(t - te+x)+ 8(t - te_x). Le signal d'intensité du pixel situé à la coordonnée p permet alors de coder temporellement les informations de luminance. 15 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 : pi E C c ev(i) = poli ti li(pi,ti) avec C le domaine spatial du capteur, pi le point du capteur concerné par le ième é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 20 augmentation ou -1 pour une diminution), t, 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). 3042292 10 La Figure 3 est un ordinogramme présentant un processus d'optimisation de calcul de décomposition d'un signal x sur une base de la transformée selon un mode de réalisation de l'invention. Dans ce mode de réalisation, il est supposé que le calcul de décomposition de ce 5 signal sur la base de la transformée a déjà été effectuée pour un temps donné to de la vidéo : le calcul de cette décomposition a été soit effectué sur la base d'une trame (éventuellement reconstruite) soit à l'aide du procédé de mise à jour de la transformée et décrit ci-dessous. Cette décomposition est notée X (élément 301). 10 La transformée considérée peut être toute transformation linéaire effectuée, par exemple, sur une image/trame de la vidéo (ex. une transformée de Fourrier, une transformée en ondelette, etc.) ou même toute transformée non-linéaire. Lors de la réception d'un événement e(p, t0) = e(1, c, t0) en provenance du capteur asynchrone et pour le pixel p de coordonnées (I,c), il est possible de déterminer 15 (étape 303a) la valeur précédente de ce pixel (notée x(1, c), i.e. juste avant la survenance de l'événement, avant le temps to) : cette valeur précédente peut être déterminée à l'aide d'une base de données ad hoc (élément 304) ou par tout autre moyen. De même, il est possible d'obtenir / de déterminer la valeur 5Z(1, c) dudit pixel p 20 (élément 302) juste après la survenance de l'événement (au temps to) connaissant la valeur précédente du pixel (i.e. x(1, c)) ainsi que l'événement. Bien entendu, les valeurs 5Z(1, c) et x(1, c) peuvent être déterminées par le processus ou simplement reçues comme entrées de celui-ci. Une fois la valeur courante du pixel (i.e 5Z(1, c)) ainsi que la valeur précédente du 25 pixel déterminées/reçues (i.e. x(1, c)), il est possible de calculer g défini comme étant : g = x + [x(1, c) - x(1, c)] E1,c avec E1,c une matrice complexe propre au pixel de coordonnées (I,c) et fonction de 3042292 11 la base de décomposition pour la transformation correspondante : la matrice E1,, n'est fonction que des coordonnées du pixel (I,c) et de la transformation considérée. Cette formule peut se démontrer en soustrayant deux décompositions effectuées sur deux signaux, les signaux n'étant différents que pour un pixel de coordonnées 5 (I,c). Après simplification et réarrangements des membres, la matrice E1,, peut être aisément déterminée et cela pour n'importe quelle transformation linéaire. Il est ainsi possible de déterminer (étape 305) la matrice E1,, à utiliser à partir d'une base de données de matrices précalculées 306 (ou par tout autre moyen comme en effectuant un re-calcul à la demande de la matrice E1,c). 10 Le calcul de g (étape 307) permet d'obtenir de manière efficace (i.e. en limitant notamment le nombre de calculs) la décomposition 308 à un instant to donné (i.e. correspondant au temps de survenance de l'événement) de la vidéo. La décomposition 308 peut être réutilisée en tant que décomposition 301 lors de la survenance de l'événement suivant. 15 Dès lors, à chaque événement, le calcul habituel pour calculer la décomposition est évité : seul un coefficient modificateur (i.e. [5Z(1, c) - x(1, c)] E1,c) de la décomposition antérieure est calculé et permet de mettre à jour cette décomposition tout en limitant la complexité des calculs. 20 Par exemple, pour une transformation de Fourrier, il est classique d'écrire la matrice complexe E1x. sous la forme suivante : [_1271.(1> REVENDICATIONS1. Procédé d'optimisation de décomposition d'un signal asynchrone (104) produit par un capteur de lumière sur une base de décomposition propre à une transformation, le capteur ayant une matrice de pixels (101) disposée en regard 5 d'une scène, le procédé comprenant : /a/ obtenir une décomposition (301) dudit signal asynchrone pour un premier temps donné sur la base de décomposition ; /b/ recevoir du capteur de lumière le signal asynchrone comprenant au moins un événement (302) issu d'un pixel de la matrice, le au moins un événement 10 ayant été produit par le capteur entre le premier temps et un deuxième temps ultérieur ; /c/ déterminer (303a) une première valeur dudit pixel (x(1, c)) pour le premier temps; /d/ déterminer (303b) une deuxième valeur dudit pixel (x°, c)) pour le 15 deuxième temps en fonction du au moins un événement (302) ; /e/ déterminer une mise à jour de la décomposition (308) obtenue en fonction de ladite décomposition obtenue, d'une différence entre la première valeur et de la deuxième valeur et d'un terme (E1,c) fonction de coordonnées dudit pixel (I,c) et de la base de décomposition de ladite transformation. 20 2. Procédé selon la revendication 1, dans lequel ladite transformation est dans le groupe suivant : une transformation de Fourrier, une transformation en ondelettes, une transformation linéaire. 25 3. Procédé selon la revendication 1, dans lequel ladite transformation est une transformation non linéaire, la base de décomposition propre à cette transformation étant un développement d'ordre un de ladite transformation. 3042292 16 4. Procédé selon l'une des revendications précédentes, dans lequel les étapes /a/ à /e/ sont réitérées: - en utilisant la mise à jour de l'étape /e/ comme décomposition de l'étape /a/, - en utilisant le deuxième temps comme premier temps, un troisième temps ultérieur au deuxième temps étant utilisé comme deuxième temps. 5. Procédé selon l'une des revendications précédentes, dans lequel un unique événement (302) est reçu à l'étape /b/. 6. Procédé selon l'une des revendications précédentes, dans lequel la mise à jour est calculée comme une somme matricielle : - de ladite décomposition obtenue, et exprimée sous forme matricielle ; - d'une différence entre la première valeur et de la deuxième valeur et multipliée par une première matrice dont les termes ne sont fonction que des coordonnées dudit pixel et de la base de décomposition de ladite transformation. 7. Procédé selon la revendication 6, dans lequel, le procédé comprend en outre une étape préalable à l'étape /e/ : /f/ pour chaque pixel dudit capteur, précalculer et enregistrer dans une mémoire la première matrice. 8. Produit programme informatique comportant des instructions pour la mise en 25 oeuvre du procédé selon l'une des revendications 1 à 7, lorsque ce programme est exécuté par un processeur. 3042292 17 9. Dispositif de calcul optimisé de décomposition d'un signal asynchrone produit par un capteur de lumière sur une base de décomposition propre à une transformation, le capteur ayant une matrice de pixels disposée en regard d'une 5 scène, le dispositif comprenant : /a/ une interface (403) adaptée pour obtenir une décomposition (301) dudit signal asynchrone pour un premier temps donné par ladite transformation ; /b/ une interface (403) adaptée pour recevoir du capteur de lumière le signal asynchrone comprenant au moins un événement (302) issu d'un pixel de la 10 matrice, le au moins un événement ayant été produit par le capteur entre le premier temps et un deuxième temps ultérieur ; /c/ un circuit (404) adapté pour déterminer (303) une première valeur dudit pixel (x(1, c)) pour le premier temps donné ; /d/ un circuit (404) adapté pour déterminer une deuxième valeur dudit pixel 15 (X(1, c)) pour le deuxième temps en fonction du au moins un événement ; /e/ un circuit (404) adapté pour déterminer une mise à jour de la décomposition (308) obtenue en fonction de ladite décomposition obtenue, d'une différence entre la première valeur et de la deuxième valeur et d'un terme fonction de coordonnées dudit pixel (I,c) et de la base de 20 décomposition de ladite transformation.