Brevet FR3033973A1 — publié le 20160923

PROCEDE DE RECONSTRUCTION 3D D'UNE SCENE La présente invention concerne le domaine de la reconstruction 3D d'une scène, notamment lorsque celle-ci est capturée à l'aide de capteurs asynchrones. Contrairement aux caméras classiques qui enregistrent des images successives à des instants d'échantillonnage réguliers, les rétines biologiques ne 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énement 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 événement ont pour avantage d'enlever de la redondance, de réduire les temps de latence et d'augmenter la gamme de dynamique temporelle et de niveaux de gris 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é lumineuse 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 associent les événements détectés à des mesures absolues 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 us). Si on utilise un tel 3033973 2 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. 5 Par ailleurs, dans le cadre de reconstruction 3D d'une scène, pour chacun des pixels des capteurs, un calcul de la position dans l'espace est réalisé. Afin de réaliser cette opération, il existe de nombreuses méthodes utilisant plusieurs caméras ou autres capteurs classiques. Dès lors, ces méthodes réalisent des déterminations à l'aide d'images 2D classiques dans lesquelles les pixels possèdent au moins une 10 valeur (i.e. sont définies). Pour les capteurs asynchrones, tels que définis précédemment, de telles méthodes sont inapplicables par nature, car aucune image 2D « classique » n'est disponible en sortie des capteurs : afin d'utiliser ces méthodes, il serait nécessaire de « reconstruire » artificiellement des images 2D à partir des informations asynchrones 15 des capteurs. Néanmoins, cette reconstruction peut être lourde et la manipulation d'images complètes peut nécessiter des moyens de traitement conséquents. De plus, cette reconstruction discrétise l'information temporelle et ainsi, la dépendance temporelle de l'information visuelle est pratiquement ignorée. Dès lors, il existe un besoin pour le développement de méthodes de 20 reconstruction de scène en 3D, méthodes adaptées aux capteurs asynchrones. La présente invention vise à améliorer la situation. À cet effet, la présente invention propose une méthode spécialement adaptée aux capteurs asynchrones pour reconstruire des scènes observées en 3D. La présente invention vise alors un procédé de reconstruction 3D d'une scène, le 25 procédé comprenant : - réception d'une première information asynchrone d'un premier capteur ayant une première matrice de pixels disposée au regard de la scène, la première information asynchrone comprenant, pour chaque pixel de la première matrice, des premiers événements successifs provenant dudit pixel ; 3033973 3 - réception d'une deuxième information asynchrone d'un deuxième capteur ayant une deuxième matrice de pixels disposée au regard de la scène, la deuxième information asynchrone comprenant, pour chaque pixel de la deuxième matrice, des deuxièmes événements successifs provenant dudit 5 pixel, le deuxième capteur étant distinct du premier capteur ; - appariement d'un premier événement parmi les premiers événements successifs avec un deuxième événement parmi les deuxièmes événements successifs en fonction d'une minimisation d'une fonction coût ; dans lequel la fonction coût comporte au moins une composante parmi: 10 - une composante de luminance, ladite composante de luminance étant fonction au moins : - d'un premier signal de luminance provenant d'un pixel du premier capteur convolué avec un noyau de convolution, la luminance dudit pixel étant fonction d'un écart entre des maximums dudit premier 15 signal ; et - d'un deuxième signal de luminance provenant d'un pixel du deuxième capteur convolué avec ledit noyau de convolution, la luminance dudit pixel étant fonction d'un écart entre des maximums dudit deuxième signal ; 20 - un composante de mouvement, ladite composante de mouvement étant fonction au moins : - de valeurs temporelles relatives à la survenance d'événements spatialement localisés à une distance prédéterminée d'un pixel du premier capteur ; 25 - de valeurs temporelles relatives à la survenance d'événements spatialement localisés à une distance prédéterminée d'un pixel du deuxième capteur. Ainsi, il n'est pas nécessaire, pour la reconstruction des scènes en 3D capturées à l'aide de plusieurs capteurs asynchrones de type DVS ou ATIS, de recréer des images 2D classiques pour l'utilisation des méthodes de l'art antérieur applicable à 3033973 4 ces images. Dès lors la précision d'une telle reconstruction 3D est très précise/grande, l'information temporelle asynchrone étant beaucoup plus précisément échantillonnée. 5 Par ailleurs, la fonction coût peut comporter en outre: - une composante temporelle, ladite composante temporelle étant fonction d'une différence entre : - une valeur temporelle relative à un événement du premier capteur; 10 - une valeur temporelle relative à un événement du deuxième capteur. Il est ainsi possible d'éviter que des événements temporellement trop éloignés puissent être associés. Dans un mode de réalisation particulier, la fonction coût peut comporter en outre: 15 - une composante géométrique, ladite composante géométrique étant fonction : - d'une distance spatiale d'un pixel du deuxième capteur à une droite épipolaire ou à une intersection de droites épipolaires définies par au moins un pixel du premier capteur. 20 Il est ainsi possible d'éviter que des événements ne correspondant pas au même point X(t) de la scène puissent être associés. Avantageusement, le signal de luminance du pixel du premier capteur et du pixel du deuxième capteur comportant un maximum codant un temps de survenance 25 d'une variation de luminance, le noyau de convolution peut être une gaussienne de variance prédéterminée. 3033973 5 Dans une réalisation particulière, ladite composante de luminance peut être fonction en outre : - de signaux de luminance de pixels du premier capteur spatialement localisés à une distance prédéterminée du premier pixel du premier capteur convolué 5 avec le noyau de convolution ; et - de signaux de luminance de pixels du deuxième capteur spatialement localisés à une distance prédéterminée du deuxième pixel du deuxième capteur convolué avec le noyau de convolution. Dès lors, la prise en compte d'événements proches des pixels à associer permet 10 de vérifier qu'il existe une correspondance d'ensemble et que le fait d'obtenir une correspondance locale pour deux pixels n'est pas un simple artefact ou une simple singularité. De plus, ladite composante de mouvement peut être fonction en outre : 15 - d'une valeur moyenne des valeurs temporelles relatives à la survenance d'événements de pixels du premier capteur spatialement localisés à une distance prédéterminée du pixel du premier capteur ; - d'une valeur moyenne des valeurs temporelles relatives à la survenance d'événements de pixels du deuxième capteur spatialement localisés à une 20 distance prédéterminée du pixel du deuxième capteur. Dans un mode de réalisation particulier, ladite composante de mouvement peut être fonction, pour un temps donné : - pour chaque valeur temporelle courante relative à la survenance 25 d'événements spatialement localisés à une distance prédéterminée d'un pixel du premier capteur, d'une valeur fonction de manière décroissante d'une distance dudit temps donné à ladite valeur temporelle courante ; - pour chaque valeur temporelle courante relative à la survenance 3033973 6 d'événements spatialement localisés à une distance prédéterminée d'un pixel du deuxième capteur, d'une valeur fonction de manière décroissante d'une distance dudit temps donné à ladite valeur temporelle courante. 5 Dans un mode de réalisation alternatif, ladite composante de mouvement peut être fonction : - d'une première convolution d'une fonction décroissante avec un signal comportant un Dirac pour chaque valeur temporelle relative à la survenance d'événements spatialement localisés à une distance prédéterminée d'un 10 pixel du premier capteur ; - d'une deuxième convolution d'une fonction décroissante avec un signal comportant un Dirac pour chaque valeur temporelle relative à la survenance d'événements spatialement localisés à une distance prédéterminée d'un pixel du deuxième capteur. 15 La présente invention vise également un dispositif de reconstruction 3D d'une scène, le procédé comprenant : - une interface pour la réception d'une première information asynchrone d'un premier capteur ayant une première matrice de pixels disposée au regard de 20 la scène, la première information asynchrone comprenant, pour chaque pixel de la première matrice, des premiers événements successifs provenant dudit pixel ; - une interface pour la réception d'une deuxième information asynchrone d'un deuxième capteur ayant une deuxième matrice de pixels disposée au regard 25 de la scène, la deuxième information asynchrone comprenant, pour chaque pixel de la deuxième matrice, des deuxièmes événements successifs provenant dudit pixel, le deuxième capteur étant distinct du premier capteur ; - un processeur adapté pour l'appariement d'un premier événement parmi les premiers événements successifs avec un deuxième événement parmi les 3033973 7 deuxièmes événements successifs en fonction d'une minimisation d'une fonction coût ; dans lequel la fonction coût comporte au moins une composante parmi: - une composante de luminance, ladite composante de luminance étant 5 fonction au moins : - d'un premier signal de luminance provenant d'un pixel du premier capteur convolué avec un noyau de convolution, la luminance dudit pixel étant fonction d'un écart entre des maximums dudit premier signal ; et 10 - d'un deuxième signal de luminance provenant d'un pixel du deuxième capteur convolué avec ledit noyau de convolution, la luminance dudit pixel étant fonction d'un écart entre des maximums dudit deuxième signal ; - une composante de mouvement, ladite composante de mouvement étant 15 fonction au moins : - de valeurs temporelles relatives à la survenance d'événements spatialement localisés à une distance prédéterminée d'un pixel du premier capteur ; - de valeurs temporelles relatives à la survenance d'événements 20 spatialement localisés à une distance prédéterminée d'un pixel du deuxième capteur. 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. 25 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 exemple, un langage-objet ou autre), et être sous la forme d'un code source 3033973 8 interprétable, d'un code partiellement compilé ou d'un code totalement compilé. La figure 6 décrite en détail ci-après peut former l'organigramme de l'algorithme général d'un tel programme informatique. 5 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 ; 10 - 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 exemple du calcul d'une composante de luminance pour deux points de deux capteurs distincts ; 15 - les figures 4a et 4b sont des exemples de représentation d'un signal d'activité d'un pixel donné ; - la figure 4c est une représentation de cartes de mouvement générées à l'aide de capteurs asynchrones distincts ; - les figures 5a et 5b sont des représentations d'exemples de calcul de 20 composantes géométriques dans un mode de réalisation de l'invention ; - la figure 6 illustre un ordinogramme présentant un mode de réalisation selon l'invention ; - la figure 7 illustre un dispositif pour la mise en oeuvre d'un mode de réalisation selon l'invention. 25 La figure 1 illustre le principe de l'ATIS. Un pixel 101 de la matrice constituant le capteur comporte deux éléments 3033973 9 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. 5 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 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 à 10 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 d'impulsions Po indique les 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 St indique 15 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 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. 20 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 manière asynchrone à un instant t au niveau d'un pixel p du capteur, de position = (x Y), par le mouvement d'une étoile tournant à vitesse angulaire constante comme 25 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 sans correspondre au mouvement effectif de l'étoile. Ces événements sont du bruit d'acquisition. 3033973 10 Les événements e(p,t) peuvent alors être définis par l'ensemble des informations suivantes : pE Cc e(p,t) =1 pol l(p,t) II: 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) 5 et I(p,t) le signal d'intensité lumineuse du point p à l'instant t. 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+,u et te_,' représente une valeur inversement proportionnelle à l'intensité lumineuse reçue, il est possible de coder l'intensité à 10 l'aide de trois Dirac ô de telle sorte que l(p,t) = 15(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 temporellement les informations de luminance. Cette information peut être directement issue du circuit électronique du capteur avec un minimum de transformation. 15 La figure 3 est un exemple du calcul d'une composante de luminance pour deux points p et q de deux capteurs u et y distincts. Afin de déterminer si deux points p et q de deux capteurs correspondent au même point de la scène observée, il est fait l'hypothèse que les surfaces composant la 20 scène observée sont des surfaces de Lambert (i.e. des surfaces dont la luminance est la même quel que soit l'angle d'observation). Dès lors, pour ces surfaces, l'intensité doit être la même sur les deux capteurs à un même instant, soit /u(p, t) = 1,(q, t). Il est, par exemple, possible de calculer une corrélation entre ces deux signaux 25 lu(p,t) et 1,40. Afin de pouvoir comparer simplement les signaux d'intensité lumineuse composés 3033973 11 de Dirac, il peut être avantageux de convoluer ces signaux par un noyau g ,(t) de support non vide. Il est alors possible de calculer une corrélation entre les deux signaux I u(p , t) * g ,(t) = ru(p, t) et 1,(q, t) * g ,(t) = t). Par ailleurs, il peut être utile de ne pas limiter la comparaison de deux uniques 5 points, mais de prendre également en compte les points situés à proximité de p et de (i.e. situés à une distance prédéterminée de p ou q, distance au sens mathématique du terme) : l'ensemble des points à proximité de p définissent un ensemble vu(p) et l'ensemble des points à proximité de q définissent un ensemble v(q) (N est le cardinal de ces ensembles). Ainsi, la composante de luminance peut 10 être exprimée comme suit : +. 1 f I (13 t) I (q t)dt = 1 - -N _oo U 1, V 1, PiEVU(P) ,\IFEC° ru(p dt +a.° (g t)2 dt qiEv v(q) Bien entendu, il est possible de réduire les bornes d'intégration en définissant w le support des fonctions convoluées 1'0 pour l'ensemble des points situés à proximité p ou q tels que définis plus haut. Tu(pi, t)T,(qi, t)dt = 1 - -11'; - P tEvu(p) f ru(pi, 02dt f(qj, t)2 dt q,Ev v(q) Enfin, il est possible de généraliser cette formule en utilisant plus de deux 15 capteurs. Par exemple, avec Q capteurs {u, y, w, ...}, il est possible d'écrire : 1 ru(pi, t)Tc (q t)dt E1=1 (Q - 1)N PiEvu(p) f ru(pi, 02dt ,\1 Tc(qci, 02dt qciEv Joh.) cEtzi ,w ,...} Le noyau g ,(t) est avantageusement une gaussienne de variance a. Il peut également être une fonction porte de largeur a. La figure 4c est une représentation de cartes 401 et 402 générées à l'aide de 20 capteurs asynchrones distincts. 3033973 12 Pour la génération de ces cartes, il est possible de définir la fonction S comme la Pi = P somme, pour chaque événement evp(i) = po_i 1 = pol d'un pixel p donné et pour une tP polarité pol donnée, à un instant t donné, de la fonction primitive Sprim(p,po/, t) = Imax(11 + 0. (tp - t), 0) si t tp, h étant une valeur prédéterminée et e étant un 0 sinon 5 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 comme une convolution : frnax(h - 0 - de la fonction primitive Sprim(p, t) = . t, 0) si t > 0 (ou plus 0 sinon 10 généralement de toute fonction décroissante), - avec un signal comportant un Dirac pour chaque temps tp auquel un Pi = P événement evp(i) =po_i 1 = Pol est survenu. tP A titre d'illustration, la figure 4a 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). 15 En l'absence d'événements, la valeur de S(pi, t), S(p2, t) ou S(p3, t) est nulle. Néanmoins, lors de la survenance d'un événement de polarité pol (par exemple, 410) 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 20 événement pour tendre vers 0. Il en va de même pour l'événement 411 pour le pixel pi, pour l'événement 412 pour le pixel p2, ou pour l'événement 413 /414 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 : 3033973 13 t- tP h. e Cette décroissance exponentielle peut être illustrée par la figure 4b (voir la courbe 4b 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 5 rapport à la valeur de h (ex. l'événement 421 est temporellement proche de l'événement 422). Dans un mode de réalisation, lors de la survenance de l'événement ultérieur 422, 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 422 (i.e. ho) et de h. Ainsi, la 10 décroissance de la courbe S partira de la valeur h+ho comme le montre la figure 4b. Par ailleurs, il est possible de prévoir que la valeur de h+ho soit capée à une valeur 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 422, la valeur de la courbe S est fixée à la valeur h quel que soit la valeur de ho (i.e. 15 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 référence (i.e. t). On peut alors définir, dans cet autre mode de réalisation, p -> S(p,pol, t) comme 3033973 14 é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 décroissante avec le temps t sur un intervalle comprenant comme borne inférieure 5 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 transformer la représentation des événements dans un domaine simple 10 d'appréhension. Dès lors, sa création simplifie la manipulation et la comparaison des événements. .Cette fonction S est représentative d'une « fraicheur » des événements survenus pour ce pixel. 15 Les cartes 401 et 402 de la figure 4c sont des représentations de cette fonction S pour un temps t donné et pour deux capteurs asynchrones capturant le mouvement d'une même main à partir de deux points de vue différents. Les points les plus foncés représentent des points dont les derniers événements sont les plus récents par rapport au temps t (i.e. ayant la valeur de S la plus grande). 20 Les points les plus clairs représentent des points dont les derniers événements sont les plus lointains par rapport au temps t (i.e. ayant la valeur de S la plus petite, le fond de l'image est grisé pour faire ressortir plus facilement les valeurs clairs bien que le fond corresponde à des valeurs nulles de la fonction S). Les points foncés dispersés correspondent à un bruit de capture des capteurs. 25 Pour chaque événement survenant à la date to, il est possible de déterminer une 3033973 15 carte de mouvement pour les pixel p. Dès lors chaque pixel p de la carte possède comme valeur S(p, t0). Afin de déterminer si deux points p et q de deux capteurs correspondent au même point de la scène observée, il est supposé que la valeur de S des deux capteurs aux 5 points respectifs p et q seront similaires (cela n'est pas nécessairement le cas dans certaines situations limites) soit S(p) = S (q) ou tout du moins S(p) S (g). Il est, par exemple, possible de calculer une corrélation entre ces deux valeurs S(p) et S(q) Par ailleurs, il peut être utile de ne pas limiter la comparaison de deux uniques 10 points, mais de prendre également en compte les points situés à proximité de p (403) et de q (404) (i.e. situés à une distance prédéterminée de p ou q, distance au sens mathématique du terme) : l'ensemble des points à proximité de p définissent un ensemble vu(p) (405) et l'ensemble des points à proximité de q définissent un ensemble v(q) (406) (N est le cardinal de ces ensembles). 15 Il est possible de déterminer la corrélation des deux cartes 405 et 406 à proximité des points p et q. De plus, il est possible, afin de s'affranchir de toute déviation temporelle d'un capteur, de soustraire à chacun des flots optiques 405 et 406 leur moyenne respective (respectivement Su(p) et Sv(q)). Ainsi, la composante de mouvement, pour un instant t donné, peut être exprimée 20 comme suit : 1 11 (S(p) Su(P))(S,(qi) - Sv(q)) Em - 1 - 2 ISu(Pi) Su(P) Isi,(qi) - Sv(q)I i=1 avec j l'index d'un point dans l'ensemble vu(p) et d'un point dans l'ensemble vv(q). Enfin, il est possible de généraliser cette formule en utilisant plus de deux capteurs. Par exemple, avec Q capteurs {u, y, w, }, il est possible d'écrire (en 25 utilisant les mêmes notations que précédemment pour la composante de luminance) : 3033973 16 1 Vv (su(p i) - - Sc(qc)) Em = 1 Q - 1 iSu(Pi) Su(P)iiSc(qci) Sc(qc)i cEtv,w,...} i=1 Les figures 5a et 5b sont des représentations d'exemples de calcul de composantes géométriques dans un mode de réalisation de l'invention. Lorsque deux capteurs 501 et 502 sont en regard d'une même scène (ex. d'une 5 scène comportant le point X(t), voir Figure 5a), et si le point pl' du premier capteur 501 représentatif du point X(t) (i.e. le point py, X(t) et Ru sont alignés), il est possible de définir une droite épipolaire /' sur le capteur 502. Ru est le centre de projection du capteur 501 et R, est le centre de projection du capteur 502. 10 Cette droite épipolaire /' est définie comme étant l'intersection du plan (X(t), Ru, R,) avec le capteur 502. De manière plus générale, un point p du premier capteur 501 définit une droite épipolaire 1,(p) sur le deuxième capteur 502 et un point q du deuxième capteur 502 définit une droite épipolaire lu(q) sur le premier capteur 501. 15 Dès lors, il est possible de définir une composante géométrique pour deux points p et q du premier et deuxième capteurs : EG= - (d(p lu(q)) + cl(q, lv(P))) 2eg Si le dispositif de prises de vues comporte trois capteurs (voir Figure 3b), deux droites épipolaires peuvent être définies par capteur, ces droites étant définies par les points considérés sur les deux autres capteurs. Ainsi, ces deux droites 20 épipolaires possèdent alors une intersection, que l'on appelle ci-dessous intersection épipolaire. Dès lors : - un point p du premier capteur et un point q du deuxième capteur définissent une intersection épipolaire w(p, q) sur le troisième capteur ; 3033973 17 - un point p du premier capteur et un point r du troisième capteur définissent une intersection épipolaire iv(p,r) sur le deuxième capteur ; - un point q du deuxième capteur et un point r du troisième capteur définissent une intersection épipolaire iu(q,r) sur le premier capteur. 5 Ainsi, il est possible de définir une composante géométrique pour trois points p, q et r du premier, deuxième et troisième capteurs : 1 EG = -(d(p, iu(q, r)) + d(q, iv(p,r)) + d(r, q))) 3eg avec E9 une valeur prédéterminée d'une distance représentative d'un écart géométrique maximale acceptable. Si le dispositif de prises de vues comporte plus de trois capteurs (ex. Q capteurs), 10 il est possible de généraliser la formule précédente en considérant que l'intersection épipolaire d'un capteur est le point situé au plus près de l'ensemble des droites épipolaires définies sur ce capteur par les points courants des autres capteurs (par exemple, en minimisant la somme des distances ou en minimisant le carré des distances desdit points aux droites épipolaires). 1 EG = - 1103c, ic({P cdclEfu,v,w,...}\c)) Qeg - 15 Il est également possible de déterminer une composante temporelle pour un événement e(p, tu) du premier capteur et un événement e (g, tv) du deuxième capteur : Itu - tvl ET- avec et un nombre ayant la dimension d'un temps et représentatif d'un écart temporel maximal acceptable entre ces deux événements. 20 Si le dispositif de prises de vues comporte plus de trois capteurs (ex. Q capteurs), il est possible de généraliser la formule précédente : Et 3033973 18 ET= Qet - tcl La figure 6 illustre un ordinogramme présentant un mode de réalisation selon l'invention. Sur réception de deux ensembles d'événements asynchrones 601 et 602 5 provenant de deux capteurs asynchrones distincts et mis en regard d'une même scène, il est possible de sélectionner deux événements de ces capteurs (étape 603, définis par le pixel pi et le temps tu pour le premier capteur et le pixel qj et le temps t21 pour le deuxième capteur). Une fois ces événements sélectionnés, il est possible de déterminer au moins une 10 composante parmi les composantes suivantes, comme évoqué ci-avant : - une composante géométrique (étape 604) ; - une composante temporelle (étape 605) ; - une composante de mouvement (étape 606) ; - une composante de luminance (étape 607). 15 Pour un événement el(pi,t1i) fixé pour le premier capteur, il est possible d'itérer (test 608, sortie j+1) sur un grand nombre d'événement e2(q1,t21) (en faisant varier l'index j, par exemple) : les itérations peuvent viser l'ensemble des événements du deuxième capteur ou avantageusement seulement un sous-ensemble de ces événements (par exemple, uniquement ceux situés à une distance géométrique 20 prédéterminée de la droite épipolaire ou de l'intersection épipolaire définie par au moins pi et/ou uniquement ceux situés à une distance temporelle prédéterminée du temps t1i). Une fois les itérations terminées (test 608, sortie OK), il est possible de déterminer l'événement e2(q1,t21) minimisant une fonction coût E pour un événement ei(pi,tii) 25 fixé (étape 609). La fonction coût peut être, par exemple, une somme simple (E = ET Em + EG E1) ou une somme pondérée (E = wTET + wmEm + wGEG + 3033973 19 co/E/) des composantes précédemment calculées (toute autre fonction faisant intervenir ces composantes est également possible). Il a été constaté expérimentalement qu'une fonction coût prenant en compte une composante de luminance et/ou une composante de mouvement permettait 5 d'augmenter significativement la précision des reconstructions 3D réalisées. Une fois la minimisation réalisée, il est possible d'associer les points pi et qj (étape 610), et ainsi de calculer les distances ou la position dans l'espace du point X(t) de la scène observée représentatif des points associés pi et qj (étape 611). Les distances calculées (ou la position du point X(t) dans l'espace) sont alors 10 retournées (612). 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 15 une mémoire 705 pour stocker des instructions permettant la mise en oeuvre du procédé, les données de mesures reçues, 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 : - un processeur apte à interpréter des instructions sous la forme de 20 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-Programmable Gate Array » en anglais). 25 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 distances 707. Enfin, l'ordinateur peut comporter, pour permettre une interaction aisée avec un utilisateur, un écran 701 et un clavier 702. Bien entendu, le clavier est 3033973 20 facultatif, notamment dans le cadre d'un ordinateur ayant la forme d'une tablette tactile, par exemple. Par ailleurs, le schéma fonctionnel présenté sur la figure 6 est un exemple typique 5 d'un programme dont certaines instructions peuvent être réalisées auprès de dispositif décrit. À ce titre, la figure 6 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 10 décrites ci-avant à titre d'exemple ; elle s'étend à d'autres variantes. D'autres réalisations sont possibles. Par exemple, l'ordinogramme de la figure 6 peut également comporter une itération sur les événements ei(pi,tii) afin d'associer plusieurs événements du premier capteur avec des événements du deuxième capteur. 15 REVENDICATIONS1. Procédé de reconstruction 3D d'une scène, le procédé comprenant : - réception (601) d'une première information asynchrone d'un premier capteur (501) ayant une première matrice de pixels disposée au regard de la scène, la première information asynchrone comprenant, pour chaque pixel (p) de la première matrice, des premiers événements successifs provenant dudit pixel ; - réception (602) d'une deuxième information asynchrone d'un deuxième capteur (502) ayant une deuxième matrice de pixels disposée au regard de la scène, la deuxième information asynchrone comprenant, pour chaque pixel (q) de la deuxième matrice, des deuxièmes événements successifs provenant dudit pixel, le deuxième capteur étant distinct du premier capteur ; - appariement (610) d'un premier événement parmi les premiers événements successifs avec un deuxième événement parmi les deuxièmes événements successifs en fonction d'une minimisation (609) d'une fonction coût (E) ; dans lequel la fonction coût comporte au moins une composante parmi: - une composante de luminance (E1), ladite composante de luminance étant fonction au moins : - d'un premier signal de luminance (lu) provenant d'un pixel du premier capteur convolué avec un noyau de convolution (g,(0), la luminance dudit pixel étant fonction d'un écart entre des maximums (t ,e-,u,te+,u) dudit premier signal ; et - d'un deuxième signal de luminance (lu) provenant d'un pixel du deuxième capteur convolué avec ledit noyau de convolution, la luminance dudit pixel étant fonction d'un écart entre des maximums (te-,v,te+,v) dudit deuxième signal ; 3033973 22 - un composante de mouvement (Em), ladite composante de mouvement étant fonction au moins : - de valeurs temporelles relatives à la survenance d'événements spatialement localisés à une distance prédéterminée d'un pixel du 5 premier capteur ; - de valeurs temporelles relatives à la survenance d'événements spatialement localisés à une distance prédéterminée d'un pixel du deuxième capteur. 10 2. Procédé selon la revendication 1, dans lequel la fonction coût (E) comporte en outre: - une composante temporelle (ET), ladite composante temporelle étant fonction d'une différence entre : - une valeur temporelle relative à un événement du premier capteur; 15 - une valeur temporelle relative à un événement du deuxième capteur. 3. Procédé selon l'une des revendications précédentes, dans lequel la fonction coût (E) comporte en outre: - une composante géométrique (EG), ladite composante géométrique étant 20 fonction : - d'une distance spatiale d'un pixel du deuxième capteur à une droite épipolaire ou à une intersection épipolaire définie par au moins un pixel du premier capteur. 25 4. Procédé selon l'une des revendications précédentes, dans lequel, le signal de luminance (lu, lv) du pixel du premier capteur et du pixel du deuxième capteur comportant un maximum codant un temps de survenance d'une variation de luminance, le noyau de convolution est une gaussienne de variance prédéterminée. 3033973 23 5. Procédé selon l'une des revendications précédentes, dans lequel ladite composante de luminance (E1) est fonction en outre : - de signaux de luminance de pixels du premier capteur spatialement localisés 5 à une distance prédéterminée du premier pixel du premier capteur convolué avec le noyau de convolution ; et - de signaux de luminance de pixels du deuxième capteur spatialement localisés à une distance prédéterminée du deuxième pixel du deuxième capteur convolué avec le noyau de convolution. 10 6. Procédé selon l'une des revendications précédentes, dans lequel ladite composante de mouvement (Em) est fonction: - d'une valeur moyenne ((p)) des valeurs temporelles relatives à la survenance d'événements de pixels du premier capteur spatialement 15 localisés à une distance prédéterminée du pixel du premier capteur ; - d'une valeur moyenne ((q)) des valeurs temporelles relatives à la survenance d'événements de pixels du deuxième capteur spatialement localisés à une distance prédéterminée du pixel du deuxième capteur. 20 7. Procédé selon l'une des revendications précédentes, dans lequel ladite composante de mouvement (Em) est fonction, pour un temps donné : - pour chaque valeur temporelle courante relative à la survenance d'événements spatialement localisés à une distance prédéterminée d'un pixel du premier capteur, d'une valeur fonction de manière décroissante 25 d'une distance dudit temps donné à ladite valeur temporelle courante ; - pour chaque valeur temporelle courante relative à la survenance d'événements spatialement localisés à une distance prédéterminée d'un pixel du deuxième capteur, d'une valeur fonction de manière décroissante 3033973 24 d'une distance dudit temps donné à ladite valeur temporelle courante. 8. Procédé selon l'une des revendications 1 à 6, dans lequel ladite composante de mouvement (Em) est fonction : 5 - d'une première convolution d'une fonction décroissante avec un signal comportant un Dirac pour chaque valeur temporelle relative à la survenance d'événements spatialement localisés à une distance prédéterminée d'un pixel du premier capteur ; - d'une deuxième convolution d'une fonction décroissante avec un signal 10 comportant un Dirac pour chaque valeur temporelle relative à la survenance d'événements spatialement localisés à une distance prédéterminée d'un pixel du deuxième capteur. 9. Dispositif de reconstruction 3D d'une scène, le procédé comprenant : 15 - une interface (703) pour la réception (601) d'une première information asynchrone d'un premier capteur (501) ayant une première matrice de pixels disposée au regard de la scène, la première information asynchrone comprenant, pour chaque pixel (p) de la première matrice, des premiers événements successifs provenant dudit pixel ; 20 - une interface (703) pour la réception (602) d'une deuxième information asynchrone d'un deuxième capteur (502) ayant une deuxième matrice de pixels disposée au regard de la scène, la deuxième information asynchrone comprenant, pour chaque pixel (q) de la deuxième matrice, des deuxièmes événements successifs provenant dudit pixel, le deuxième capteur étant 25 distinct du premier capteur ; - un processeur (704) adapté pour l'appariement (610) d'un premier événement parmi les premiers événements successifs avec un deuxième événement parmi les deuxièmes événements successifs en fonction d'une minimisation (609) d'une fonction coût (E) ; 3033973 25 dans lequel la fonction coût comporte au moins une composante parmi: - une composante de luminance (E1), ladite composante de luminance étant fonction au moins : - d'un premier signal de luminance (lu) provenant d'un pixel du premier capteur convolué avec un noyau de convolution (g,(0), la luminance dudit pixel étant fonction d'un écart entre des maximums (t ,e-,u,te+,u) dudit premier signal ; et - d'un deuxième signal de luminance (lu) provenant d'un pixel du deuxième capteur convolué avec ledit noyau de convolution, la luminance dudit pixel étant fonction d'un écart entre des maximums (te-,v,te+,v) dudit deuxième signal ; - un composante de mouvement (Em), ladite composante de mouvement étant fonction au moins : - de valeurs temporelles relatives à la survenance d'événements 15 spatialement localisés à une distance prédéterminée d'un pixel du premier capteur ; - de valeurs temporelles relatives à la survenance d'événements spatialement localisés à une distance prédéterminée d'un pixel du deuxième capteur. 20 10. 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 exécuté par un processeur. 5 10