INPI-France/Brevets-Francais-2024-Chunked huggingface dataset:
avec Cov(X, Y) désignant la covariance des variables X (correspondant par exemple à la première série de valeurs d’abondance) et Y (correspondant par exemple à la deuxième série de valeurs d’abondance), s x correspondant à l’écart type de la variable X et s y correspondant à l’écart type de la variable Y. Typiquement, l’écart type de la variable considéré correspond à l’écart type déterminé à partir de toutes les valeurs d’abondances de la série d’abondance considérée.
En pratique, suivant ce mode de réalisation, l’unité de traitement 120 calcule, pour chaque paire de séries de valeurs d’abondance, la covariance entre la première série de valeurs d’abondance et la deuxième série de valeurs d’abondance selon la formule de la covariance de variable aléatoire définie selon suivante :
avec E() correspondant à l’espérance mathématique de la variable donnée, ici l’espérance mathématique de l’ensemble des valeurs d’abondance de la série d’abondance considérée.
Ensuite, l’unité de traitement 120 détermine un écart type de la variable X et un écart type de la variable Y, l’écart type considéré étant défini selon la formule suivante :
avec X la variable considérée (ici la première série de valeurs d’abondance ou deuxième série de valeurs d’abondance), E(X) l’espérance de la variable aléatoire considérée, Var(X) la variance de la variable aléatoire considérée.
Ainsi, dans ce mode de réalisation, l’unité de traitement 120 calcule pour chaque paire de séries de valeurs d’abondance, la covariance comme définie dans l’équation Math. 24 ainsi que l’écart type s x associée à la première série d’abondance et l’écart type s y associé à la deuxième série de valeurs d’abondance. Elle détermine ensuite le coefficient de corrélation Cor xy pour chaque paire de séries de valeurs d’abondance.
Comme l’étape de calcul 1040 est réalisée de manière itérative en réitérant l’étape de calcul sur chaque paire de séries de valeurs d’abondance ou en parallèle sur l’ensemble des paires de série d’abondance, une multitude de corrélations Cor xy sont fournies à la fin de l’étape 1040.
De manière similaire au mode de réalisation utilisant un score de correspondance basé sur le calcul de l’information mutuelle, l’ensemble des coefficients de corrélation calculés sur l’ensemble des paires de série de valeurs d’abondance sont regroupés (étape 1042) sur une matrice en deux dimensions (correspondant à une carte de score) de forme similaire à celle obtenues dans le cadre de l’information mutuelle. Ainsi, par rapport à la , la matrice est faite de coefficients de corrélation Cor xy . L’échelle d’une telle carte de score est toutefois différente de l’exemple avec l’information mutuelle, puisque les coefficients de corrélation calculés peuvent être négatifs ou positifs (à la différence de l’information mutuelle où les valeurs de score sont positives).
En outre, bien que cela ne soit pas nécessaire, il est aussi possible de déterminer les coefficients de corrélation à partir de séries de valeurs d’abondance normalisées. Par exemple, le coefficient de normalisation peut correspondre au paramètre d’invariance de la série considérée et calculé de manière similaire à l’exemple de l’information mutuelle.
Il va maintenant être décrit, un deuxième mode de réalisation de l’étape 1044.
Corrélation partielle
Selon une autre variante du procédé 1000, l’unité de traitement 120 peut calculer le coefficient de corrélation partielle Cor xyz entre deux variables X, Y et une troisième variable Z. Cette troisième variable étant similaire à la variable Z utilisée dans le calcul de l’information mutuelle. Autrement dit, la variable Z est une série de valeurs du TIC ou une série de valeurs d’abondance d’un autre ion, différent de l’ion associé à la première et deuxième séries de valeurs d’abondance. Cela peut être également une série faite de valeurs constantes ou une série de valeurs relatives à l'intensité d'un faisceau laser, une pression de gaz, etc,. Utiliser une troisième variable Z permet de s’affranchir d’une grandeur affectant les mesures.
Dans ce cas, l’étape de calcul du coefficient de corrélation 1044 peut être implémentée comme suit.
En pratique, le coefficient de corrélation partielle de chaque paire de séries de valeurs d’abondance est défini selon l’équation suivante :
avec Cor (), le coefficient de corrélation entre les variables considérées.
A cet effet, l’unité de traitement 120 calcule pour chaque paire de série de valeurs d’abondance, les coefficients de corrélation Cor yx , Cor xz et Cor yz comme déterminé précédemment à l’aide de la formule Math. 23 puis applique la formule Math. 26 pour déterminer le coefficient de corrélation partielle entre trois variables.
La représente schématiquement un système de détection et de traitement basé sur événement 100 selon un exemple de mode de réalisation de la présente description. Le système 100 comprend un détecteur basé sur événement (EVENT-BASED SENSOR) 102 configuré pour générer des données d'événements temporelles (TEMPORAL EVENT DATA), et un dispositif de traitement d'événements (EVENT PROCESSING DEVICE) 104 configuré pour recevoir les données d'événements temporelles et pour les traiter afin de générer une prédiction basée sur événements (EVENT-BASED PREDICTION).
Par exemple, le détecteur basé sur événement 102 est une caméra basée sur événement, ou caméra d'événement, telle qu'une caméra d'événement en lumière visible ou infra-rouge. Selon une variante, le détecteur basé sur événement pourrait être un détecteur audio basé sur événement, tel qu'un microphone basé sur événement. D'autres types de détecteur basé sur événement seraient également possible.
Les données d'évènements temporelles comprennent par exemple des événements asynchrones, chaque événement comprenant par exemple un horodatage et une valeur de données d'événements ayant une ou plusieurs dimensions. Par exemple, dans le cas où le détecteur basé sur événement 102 est une caméra, la valeur de données d'événements pourraient être l'adresse x et y du pixel qui a capturé l'événement, et l'événement est, par exemple, généré au moment où une modification de niveau de lumière dépasse un seuil par rapport au niveau de lumière au moment où l'événement précédent a été généré au niveau du pixel. De plus, un niveau de lumière détecté du pixel pourrait fournir une dimension supplémentaire de la valeur de données d'événements, par exemple la polarité de la modification ou le niveau de lumière absolu au moment où l'événement a été généré. Dans le cas où le détecteur basé sur événement 102 est un microphone, des événements sont générés par exemple en raison de modifications relatives du signal analogique généré par le microphone et les caractéristiques de chaque événement peuvent également comprendre un horodatage, la valeur absolue du signal et/ou, si le signal est filtré en plusieurs bandes de fréquence, la plage de la bande de fréquence de l'événement.
Le dispositif de traitement basé sur événement 104 est par exemple configuré pour traiter les données d'événements temporelles en temps réel ou en temps quasi réel, par exemple avec un retard de traitement de moins d'une centaine de microsecondes, et de préférence moins de cinq microsecondes.
Dans le cas où les données temporelles sont des données d'image, la prédiction basée sur événements fournie en sortie du dispositif de traitement d'événements 104 est par exemple une prédiction de flux optique par événement généré, ou une classification d'objet pour tout le flux d'événements, ou une détection d'objet par événement. Dans le cas où les données temporelles sont des données audio, la prédiction basée sur événements fournie en sortie du dispositif de traitement d'événements 104 est par exemple un repérage de mots clefs par groupe d'événements ou une reconnaissance de classe sonore.
La représente schématiquement le dispositif de traitement d'événements 104 de la plus en détail selon un exemple de mode de réalisation de la présente description.
Le dispositif 104 comprend par exemple un dispositif de traitement (P) 202 comprenant un ou plusieurs processeurs, et un ou plusieurs dispositifs mémoire, tels qu'une mémoire volatile (RAM) 204 et/ou une mémoire non volatile (FLASH) 206. Dans certains modes de réalisation, la mémoire volatile 204 est une mémoire vive, et/ou la mémoire non volatile 206 est une mémoire Flash, bien que d'autres types de mémoire volatile et non volatile puissent être présentes.
Le dispositif de traitement 202 et les mémoires 204, 206 sont par exemple reliés par un bus 208. La mémoire non volatile 206 stocke par exemple un code logiciel, qui est exécuté par le dispositif de traitement 202.
Le dispositif de traitement d'événements 104 comprend en outre, par exemple, une interface de détecteur (SENSOR INTERFACE) 210 reliée au bus 208, l'interface de détecteur 210 étant par exemple configurée pour communiquer avec le détecteur basé sur événement 102 sur une interface de communications câblée ou sans fil.
Dans certains modes de réalisation, le dispositif de traitement d'événements 104 comprend en outre un réseau neuronal graphique (GRAPH NEURAL NETWORK) 212, qui est par exemple également relié au bus 208, et est configuré pour générer la prédiction basée sur événements (EVENT-BASED PREDICTION) au niveau d'une sortie du dispositif de traitement d'événements 104. Par exemple, bien que cela ne soit pas représenté en , la prédiction basée sur événements est fournie par le réseau neuronal graphique à une interface de sortie du dispositif 104 reliée au bus 208.
Le réseau neuronal graphique 212 est par exemple un circuit matériel configuré pour mettre en œuvre un procédé de génération d'une prédiction basée sur des données d'événements capturées par le détecteur basé sur événement 102 décrit plus en détail ici. Selon des variantes de mode de réalisation, le réseau neuronal graphique est mis en œuvre dans un logiciel, et le procédé de génération d'une prédiction basée sur des données d'événements capturées par le détecteur basé sur événement 102 est mis en œuvre par un logiciel stocké dans la mémoire 204 ou 206 et exécuté par le dispositif de traitement 202. Selon une variante, le processeur lit des données provenant du détecteur à base d'événements, traite ces données puis fournit ces données au réseau neuronal graphique dans le format approprié pour effectuer une prédiction basée sur événements.
Dans certains modes de réalisation, la prédiction basée sur événements générée par le réseau neuronal graphique 212 est utilisée pour commander un ou plusieurs actionneurs (ACTUATOR(S)) 214 reliés au dispositif 104. Les un ou plusieurs actionneurs 214 comprennent par exemple un système robotisé, tel qu'un bras robotisé entraîné pour arracher des mauvaises herbes ou pour cueillir un fruit pourri sur un arbre, des systèmes automatiques de direction ou de freinage dans un véhicule, ou un actionneur électronique, qui est par exemple configuré pour commander le fonctionnement d'un ou de plusieurs circuits, tel qu'un réveil d'un circuit depuis un mode de veille, l'action d'amener un circuit à entrer en mode de veille, l'action d'amener un circuit à générer une sortie textuelle, à effectuer une opération de codage ou de décodage de données, etc. Selon un autre exemple, le dispositif 104 est une unité de poursuite oculaire qui détermine la zone dans une scène que regarde un utilisateur et commande les actionneurs en fonction de la zone déterminée, par exemple afin de modifier le foyer du stéréogramme.
La est un graphe représentant un exemple du nuage d'événements généré par un enregistrement de caméra d'événement. En particulier, le graphe de la est un graphe 3D représentant, sur un axe x, une coordonnée de pixel (X PIXEL) dans une direction x d'une matrice de pixels de la caméra, sur un axe y, une coordonnée de pixel (Y PIXEL) dans une direction y de la matrice de pixels et, sur un axe z, le temps en secondes (TIME(s)). La spirale des données représentée en résulte d'un déplacement circulaire d'une main d'une personne dans l'image.
En analysant la structure de données 3D des événements de données de la , ou de façon similaire en analysant une structure de données 2D, 4D ou de dimension supérieure de données d'événements, il est possible d'effectuer des opérations de prédiction, telles qu'une classification afin de déterminer quel type d'objet a créé les événements, ou une prédiction de flux optique, par exemple pour déterminer le vecteur de vitesse de l'objet, ou la détection, par exemple, de si un certain objet est présent dans la scène.
La est un graphe représentant un exemple d'un graphe d'événements dans lequel le nombre de k sauts entre des événements connectés indirectement est indiqué. La création du graphe d'événements implique, en particulier, la génération d'une structure d'arbre, suivie d'une recherche de voisins les plus proches dans l'arbre qui permet à des bords entre des événements (c'est-à-dire des sommets) d'être définis. Par exemple, la création d'une structure d'arbre KD est décrite plus en détail dans la publication de Zhou, Kun et al. intitulée "Real-time KD-Tree Construction on Graphics Hardware”, ACM Transactions on Graphics (TOG) 27.5 (2008) :1-11. Un ensemble d'événements est enregistré et la structure d'arbre est créée. Cette structure d'arbre est utilisée pour rechercher un ensemble de voisins les plus proches pour chaque événement. Des bords sont formés entre ces événements (c'est-à-dire des nœuds) sur la base d'une mesure de distance dans les dimensions de pixels (par exemple, x,y) et la dimension temporelle (t). Par exemple, un bord dirigé est connecté entre les M événements les plus proches dans un rayon de recherche fixe.
Ce procédé est illustré en figure 4, qui montre le temps (TIME) sur l'axe x et une position x,y (XY POSITION) de données de pixel sur l'axe y. Un nouvel événement pour un pixel donné est détecté par un détecteur basé sur événement à un instant . D'autres événements (EVENTS) sont également représentés sur ce graphe. Un volume de recherche est défini comme étant dans une distance temporelle par rapport à l'instant du nouvel événement, et dans une distance spatiale par rapport au nouvel événement, comme cela est représenté par une ellipse S. La moitié de ce volume de recherche S est antérieure à l'instant du nouvel événement , et l'autre moitié du volume de recherche S est postérieure à l'instant d'arrivée du nouvel événement . Ainsi, comme cela est représenté en figure 4, le volume de recherche comprend des événements dans un rayon du nouvel événement . Parmi les événements qui rentrent dans le volume de recherche, les K voisins les plus proches sont connectés au nouvel événement par des bords. Ces bords peuvent être bidirectionnels ou unidirectionnels de façon inhérente, bien que souvent deux bords unidirectionnels formeront entre des paires d'événements avec un tel paradigme de recherche à base euclidienne. En outre, surtout, dans la mesure où de nombreux événements sont générés, les configurations de bord des événements existants dans l'arbre sont également mis à jour dans le cas où de nouveaux événements deviennent un des voisins les plus proches des évènements existants. Comme cela sera expliqué plus en détail ci-après en relation avec la figure 5, le graphique d'événements est ensuite mis à jour au vu du nouvel événement et des nouveaux bords. En particulier, l'effet du nouvel événement sur des incorporations de nœuds du graphe d'événements existantes est évalué pour toutes les L couches du réseau neuronal graphique d'événements et éventuellement un grand nombre de fois. En fonction du procédé de mise à jour des incorporations de nœuds, cela peut être très coûteux en termes de calcul et impliquer une latence importante. Pour éviter la mise à jour des incorporations de nœuds de tout le graphe d'événements actif chaque fois qu'un nouvel événement est généré, une fonction de recherche graphique à k sauts récursive peut par exemple être appliquée afin de trouver le sous-ensemble clairsemé de nœuds impactés dans chacune des L couches. Seulement ce sous-ensemble de nœuds sera mis à jour au moment de l'arrivée de chaque nouvel événement, ce qui peut faciliter légèrement la charge de calcul. Comme cela est représenté, en figure 4, les connexions directes avec le nouvel événement sont connectées par un seul saut, correspondant à k=0, et un nombre entier K de sauts supplémentaires est déterminé au moyen de nœuds connectés intermédiaires. Dans l'exemple de la figure 4, K=4 entre l'événement central et l'événement dans le coin le plus en haut à gauche du diagramme.
La est un organigramme représentant un exemple d'étapes d'un procédé de détermination d'une prédiction de flux optique selon l'approche représentée par le graphe de la .
Dans une étape 501, un nouvel événement est reçu.
Dans une étape 502, un sous-ensemble d'événements passés est déterminé dans la distance et de l'événement . En d'autres termes, les événements passés qui tombent dans le volume de recherche S de la sont identifiés.
Dans une étape 503, pour chaque événement passé , une recherche des K voisins les plus proches est effectuée , et des bords sont créés. En particulier, des bords sont créés depuis chaque événement passé des K voisins les plus proches jusqu'au nouvel événement . En outre, des bords sont créés depuis le nouvel événement jusqu'à chacun des K voisins les plus proches dans le passé, et les incorporations de nœuds de tous les nœuds impactés sur un nombre entier de K sauts à partir d'un événement doivent être mises à jour. L'événement sera dans la suite susceptible d'être modifié plusieurs fois lorsque plusieurs évènements nouveaux sont générés dans un délai égal au rayon de recherche temporel, ce qui forme des connections directes K=0 avec des événements futurs, multipliés par le nombre de couches (par l'intermédiaire de modifications au travers de nœuds connectés par un certain nombre de K sauts).
Dans une étape 504, l'effet d'un nouvel événement sur des incorporations de nœuds de graphe d'événements existantes pour toutes les L couches du réseau neuronal graphique d'événements est évalué. Cela implique la fonction de recherche graphique à k sauts récursive , qui trouve le sous-ensemble clairsemé de nœuds impacté dans chaque couche l du graphe d'évènements, comme cela est représenté en .
Dans une étape 505, des incorporations de nœuds affectés dans chaque couche sont mis à jour en utilisant une fonction de convolution graphique. La fonction de convolution graphique, , peut être par exemple la convolution graphique spectrale proposée dans la publication "SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS" Kipf 2017, , où , A est la matrice de contiguïté qui stocke le 0 ou 1 dans chaque cellule de matrice indiquant si des nœuds sont connectés et D est la matrice des degrés.
Dans une étape 506, après un retard égal au rayon de la fenêtre de recherche multiplié par le nombre de couches du réseau neuronal graphique, temps pendant lequel de nouveaux événements supplémentaires qui impactent l'événement peuvent être reçus et traités, une fonction est appliquée aux incorporations de nœuds pour générer une prédiction de sortie , par exemple une prédiction de flux optique, en relation avec le nouvel événement .
Le procédé de la peut par exemple être représenté par l'algorithme suivant.
où est le nouvel événement, , sont des valeurs de données de la valeur de données d'événements, est l'horodatage de l'événement, est la polarité d'événement, est le graphe d'événements, est un sous-ensemble égal à , sont les bords du graphe d'événements connectant les événements , est une fonction utilisée pour extraire le sous-ensemble de l'étape 502 précédente, est la recherche des K voisins les plus proches, est une fonction qui prend comme entrée l'état du graphe précédent, le nouvel événement, et des bords nouveaux et recalculés et fournit en sortie un graphe d'événements mis à jour, est la fonction de recherche graphique à k sauts récursive, et sont les incorporations de nœud dans une couche donnée l.
Un inconvénient majeur du procédé de la figure 5 est qu'il en résulte un nombre excessif de calculs et une latence relativement importante entre l'instant d'apparition du nouvel événement et la fourniture en sortie de la prédiction. Cela est dû en partie à la complexité du traitement, et également à la latence de construction d'un graphe, comprenant le retard , qui est typiquement de plusieurs centaines de millisecondes.
La figure 6 est un graphe représentant un exemple de création de graphe d'événements selon un exemple de mode de réalisation de la présente description. Le graphe de la figure 6 est similaire à celui de la figure 4 si ce n'est que le volume de recherche S est remplacé par un volume de recherche S', et les bords (EDGES) entre des évènements passés (EVENTS) et le nouvel événement sont strictement unidirectionnels, comme cela sera expliqué maintenant plus en détail.
Selon le mode de réalisation représenté en , la latence de construction d'un graphe est réduite en limitant la création de bords dans des graphes d'événements de sorte que des bords unidirectionnels dirigés soient formés seulement depuis des événements passés jusqu'à un événement nouvellement arrivé dans un rayon de recherche hémisphérique ou hémi-elliptique S' autour de l'événement nouvellement arrivé. Autrement dit, lorsqu'un nouvel événement arrive, des évènements avec lesquels il se connectera et à partir desquels il obtiendra de données sont recherchés seulement dans le voisinage passé. Les bords vers les événements passés, qui étaient créés selon le procédé précédent, ne sont plus créés, et par conséquent les bords sont unidirectionnels dans le temps, depuis le passé vers le futur, comme cela est représenté en par des flèches pointant vers l'avant dans le temps uniquement. Cela permet de calculer une prédiction pour un événement immédiatement pour un événement généré. En effet, on peut garantir que ni les incorporations de nœud de cet événement, ni ses bords, ne changeront dans le futur. Cela réduit grandement la latence ainsi que la quantité de calcul.
Dans le cas d'un réseau neuronal graphique, ces bords sont utilisés pour calculer immédiatement les incorporations de nœuds uniquement de l'événement nouvellement généré pour chaque couche du réseau. Des événements passés ne modifient maintenant plus leur incorporation une fois calculée. Cela diffère des approches précédentes dans lesquelles un grand nombre d'événements passés doivent être recalculés au moment de l'arrivée de chaque événement. Seules les incorporations provenant des événements passés dans un certain rayon de recherche de temps et d'espace auquel il est connecté sont utilisées dans ce procédé.
Selon l'approche de la , les bords, c'est-à-dire les identités de deux événements reliés par le bord ainsi que toutes les propriétés de bord telles qu'une différence temporelle, ne sont par exemple pas stockés explicitement dans la mémoire car les informations relatives à ces bords sont représentées implicitement par les incorporations de nœuds d'événements générés précédemment. Ainsi, cette approche permet d'économiser du stockage mémoire, tel que la mémoire 204 et/ou 206 de la , qui peut être considérablement plus petit. De plus, les événements passés qui tombent à l'extérieur du rayon de recherche de temps ne sont par exemple pas stockés. Cela diffère des approches précédentes dans lesquelles des événements dans une fenêtre temporelle égale au rayon de recherche multiplié par le nombre de couches du réseau neuronal sont stockés, et tous les bords reliant ces événements sont également stockés.
Les imageurs présentés ci-avant présentent tous l’inconvénient d’introduire de la latence dans le traitement d’analyse d’images.
La demande de brevet EP 3971979 A1 décrit une architecture de circuit intégré tridimensionnel permettant d’optimiser la répartition des composants analogiques et numériques dans un empilement d’au moins trois couches de semi-conducteur. Une telle architecture peut notamment être adaptée à la réalisation d’un circuit intégré pour un imageur (capteur d’images).