Brevet FR3117239A1 — publié le 20220610

L’invention a pour objet un système comprenant : une caméra configurée pour émettre des impulsions représentant chacune un changement d’intensité lumineuse à un pixel donné ; au moins une unité de calcul configurée pour : obtenir des impulsions de ladite caméra; à l’occurrence d’une impulsion à un pixel de la caméra et un temps, fournir à un réseau de neurones à impulsions ayant au moins deux entrées pour chaque pixel de la caméra: une première impulsion, à une première entrée pour le pixel, audit temps ; une deuxième impulsion, à une deuxième entrée pour le pixel, à un délai prédéfini après ledit temps ; à la décharge d’un neurone dudit réseau de neurones à impulsions, réduire le potentiel d’activation des neurones appartenant à la même couche et partageant le même champ récepteur que ledit neurone, pendant une durée prédéfinie. Figure pour l’abrégé : Fig. 1 Entraînement et utilisation d’un réseau de neurones à impulsions pour la caractérisation de mouvements Domaine de l’invention La présente invention concerne le domaine de la vision par ordinateur, et plus particulièrement le domaine de la l’utilisation de réseaux de neurones pour la caractérisation de mouvements d’objets à partir d’une vidéo. Etat de l’art précédent L’analyse du mouvement est un champ en perpétuelle évolution, servant de socle à de nombreuses applications, telles que la prédiction de mouvement d’objets dans une vidéo. Les récents développements de ce champ permettent d’envisager de nouvelles applications, telles que la conduite autonome de véhicule. Cependant, l’analyse et la prédiction du mouvement d’un objet à partir d’une vidéo reste une problématique extrêmement complexe. De manière classique, des vidéos sont produites, en temps réel ou en différé par des caméras à trames, produisant, à fréquence prédéfinie (par exemple, 25 fois par seconde) des trames codant tout le champ visuel de la caméra sous forme de pixels. La vidéo se présente donc comme une suite d’images indépendante les unes des autres, représentant le champ visuel de la caméra à intervalle réguliers. De manière plus récente, des caméras dites événementielles ont été utilisées. Ces caméras produisent un signal représentant, non pas des images successives et indépendantes de son champ visuel, mais des impulsions (ou en anglais, spike) représentant des variations de celui-ci. Cela permet aux capteurs de générer des données extrêmement éparses, significatives et de réduire considérablement la latence de réponse. Les impulsions issues de ces caméras peuvent être traitées par des réseaux de neurones à impulsions (ou en anglais SNN, Spiking Neural Networks). Ces réseaux de neurones peuvent ainsi prendre en entrée les impulsions produites par la caméra, et en extraire des informations pertinentes. Cependant, l’utilisation de ces réseaux de neurones ne permet pas aujourd’hui de discriminer de manière fine des mouvements au sein de la vidéo. En particulier, la sélectivité des neurones aux caractéristiques d’un mouvement, telles que sa direction, sa vitesse, ou encore la forme de l’objet à l’origine du mouvement demeure limitée. Il y a donc besoin d’un réseau de neurones à impulsions dont les neurones ont une forte sélectivité aux caractéristiques d’un mouvement, afin d’analyser de manière plus fine les mouvements d’objets dans le champ de vision d’une caméra. A cet effet, l’invention a pour objet un système comprenant : une caméra configurée pour émettre des impulsions représentant chacune un changement d’intensité lumineuse à un pixel donné ; au moins une unité de calcul configurée pour : obtenir des impulsions de ladite caméra ; à l’occurrence d’une impulsion à un pixel de la caméra et un temps, fournir à un réseau de neurones à impulsions ayant au moins deux entrées pour chaque pixel de la caméra : une première impulsion, à une première entrée pour le pixel, audit temps ; une deuxième impulsion, à une deuxième entrée pour le pixel, à un délai prédéfini après ledit temps ; à la décharge d’un neurone dudit réseau de neurones à impulsions, réduire le potentiel d’activation des neurones appartenant à la même couche et partageant le même champ récepteur que ledit neurone, pendant une durée prédéfinie. Avantageusement, le réseau de neurones à impulsions est formé de neurones LIF. Avantageusement, la réduction du potentiel d’activation des neurones appartenant à la même couche et partageant le même champ récepteur que ledit neurone consiste à retrancher de leur potentiel membranaire une valeur d’inhibition instantanée audit temps, puis une valeur d’inhibition temporelle croissant puis décroissant au cours de ladite durée prédéfinie. Avantageusement, la valeur d’inhibition instantanée et les valeurs d’inhibition temporelle dépendent des potentiels d’activation des neurones du champ récepteur audit temps. Avantageusement, l’au moins une unité de calcul est de plus configurée pour prédire, à partir d’une impulsion dans le réseau de neurones à impulsions, une position future d’un objet dont le mouvement est à l’origine de l’impulsions. Avantageusement, ladite prédiction consiste à ajouter à la position de l’impulsion au moins une valeur de décalage caractéristique d’un filtre ayant généré l’impulsion. L’invention a également pour objet une méthode comprenant : la réception, d’impulsions émises par une caméra représentant chacune un changement d’intensité lumineuse à un pixel donné; à l’occurrence d’une impulsion à un pixel de la caméra et un temps (t), la fourniture à un réseau de neurones à impulsions ayant au moins deux entrées pour chaque pixel de la caméra ; une première impulsion, à une première entrée pour le pixel, audit temps; une deuxième impulsion, à une deuxième entrée pour le pixel, à un délai prédéfini après ledit temps ; à la décharge d’un neurone dudit réseau de neurones à impulsions, la réduction du potentiel d’activation des neurones appartenant à la même couche et partageant le même champ récepteur que ledit neurone, pendant une durée prédéfinie. L’invention a également pour objet une méthode d’entraînement d’un réseau de neurones à impulsions, comprenant : l’obtention d’une base de données d’entraînement comprenant : des impulsions émises par au moins une caméra représentant chacune un changement d’intensité lumineuse à un pixel donné ; l’occurrence d’une impulsion à un pixel de la caméra et un temps entraînant la fourniture à un réseau de neurones à impulsions ayant au moins deux entrées pour chaque pixel de l’au moins une caméra : d’une première impulsion, à une première entrée pour le pixel, audit temps; d’une deuxième impulsion, à une deuxième entrée pour le pixel, à un délai prédéfini après ledit temps ; l’application d’une règle de plasticité dépendante des pics au réseau de neurones à impulsions ; à la décharge d’un neurone dudit réseau de neurones à impulsions lors de ladite application, la réduction du potentiel d’activation des neurones appartenant à la même couche et partageant le même champ récepteur que ledit neurone, pendant une durée prédéfinie. Avantageusement, lors de l’application de la règle de plasticité dépendante des pics au réseau de neurones à impulsions, le poids d’une connexion entre un premier neurone d’une première couche, et un deuxième neurone de la couche suivante est : augmenté si, à l’émission d’une impulsion par le deuxième neurone, une impulsion précédente avait été émise par le premier neurone pendant une durée prédéfinie avant ladite impulsion ; diminué, dans le cas contraire. L’invention a également pour objet un programme d’ordinateur comprenant des instructions de code de programme enregistrées sur un support lisible par ordinateur, lesdites instructions de code de programme étant configurées, lorsque ledit programme fonctionne sur un ordinateur pour exécuter une méthode selon l’un des modes de réalisation de l’invention. D’autres caractéristiques, détails et avantages de l’invention ressortiront à la lecture de la description faite en référence aux dessins annexés donnés à titre d’exemple et qui représentent, respectivement : un système dans un ensemble de modes de réalisation de l’invention ; une architecture d’un réseau de neurones dans un ensemble de modes de réalisation de l’invention ; un exemple d’inhibition du potentiel d’activation de neurones à l’activation d’un neurone partageant le même champ récepteur, dans un ensemble de modes de réalisation de l’invention ; un exemple de règle d’inhibition temporelle du potentiel d’activation de neurones à l’activation d’un neurone partageant le même champ récepteur, dans un ensemble de modes de réalisation de l’invention ; une méthode d’utilisation d’un réseau de neurones à impulsion dans un ensemble de modes de réalisation de l’invention ; une méthode d’entraînement d’un réseau de neurones à impulsion dans un ensemble de modes de réalisation de l’invention ; un exemple de mise à jour des poids synaptiques lors de l’application d’une règle de plasticité dépendante des pics pour l’entraînement d’un réseau de neurones à impulsions dans un ensemble de modes de réalisation de l’invention ; un exemple de calcul de la sélectivité à la direction de filtres d’un réseau de neurones à impulsion, dans un ensemble de modes de réalisation de l’invention ; un exemple de calcul de la sélectivité à la vitesse de filtres d’un réseau de neurones à impulsion, dans un ensemble de modes de réalisation de l’invention ; un exemple de calcul de la sélectivité à la forme de filtres d’un réseau de neurones à impulsion, dans un ensemble de modes de réalisation de l’invention ; un exemple de vidéo d’un match de tennis, dans un exemple de mode de réalisation de l’invention pour la prédiction d’un point de réception d’une balle de tennis ; un exemple d’évolution d’une erreur de prédiction moyenne de la position d’arrivée d’une balle de tennis, dans un ensemble de modes de réalisation de l’invention en fonction de la couche à laquelle l’impulsion a eu lieu, dans un ensemble de modes de réalisation de l’invention ; un exemple d’évolution d’une erreur de prédiction moyenne de la position d’arrivée d’une balle de tennis, dans un ensemble de modes de réalisation de l’invention en fonction de la couche à laquelle l’impulsion a eu lieu, et d’un pourcentage de présentation de la trajectoire, dans un ensemble de modes de réalisation de l’invention. La représente système dans un ensemble de modes de réalisation de l’invention. Le système 100 comprend une caméra 110 configurée pour émettre des impulsions représentant chacune un changement d’intensité lumineuse à un pixel donné. Cette caméra peut être une caméra impulsionnelle (ou « spiking camera » en anglais) c’est-à-dire une caméra numérique générant nativement impulsions (ou « spikes » en anglais lors de modifications significatives de la luminosité d’un pixel et/ou de son environnement. Une impulsion est donc localisée au niveau d’un pixel sur lequel un changement d’intensité lumineuse a lieu. En pratique, la caméra émet, dès qu’un changement est détecté dans le champ lumineux d’un pixel, une impulsion. L’impulsion est associée à un temps, représentant le moment d’occurrence de l’impulsion, par rapport à un temps initial fixe. Dans un ensemble de modes de réalisation, la caméra peut émettre une impulsion correspondant au début des modifications significatives de luminosité (on pourra alors par exemple parler d’impulsion « ON »), et une impulsion à la fin des modifications significatives de luminosité (on pourra alors par exemple parler d’impulsion « OFF »). Cette caméra peut également être une caméra numérique émettant des trames successives de pixels d’intensité lumineuse, dans laquelle des différences entre pixels correspondants de trames successives permettent de générer des impulsions. Selon différents modes de réalisation, de nombreux types de caméras peuvent être utilisées. En particulier, les caméras peuvent avoir des résolutions et fréquences variables. Par exemple, une résolution de 128 par 120 pixels, et une fréquence de 240 image par seconde (ou « fps », de l’anglais « Frames per second », ayant pour traduction littérale « trames par seconde ») peut être utilisés. Dans un ensemble de modes de réalisation, un ou plusieurs filtres sont mis en œuvre par la caméra pour la génération d’impulsions. Par exemple, un filtre de réduction du bruit peut être utilisé. Dans un ensemble de modes de réalisation de l’invention, un filtre de détection de bords peut également être utilisé par la caméra. Par exemple, ce filtre peut être un filtre de différence de gaussiennes (appelé aussi en anglais DoG pour « Difference of Gaussians »). Ce type de filtre permet de de retourner en sortie de la caméra que les impulsions définissant une bordure, c’est-à-dire les impulsions caractérisant la limite d’un objet en mouvement. Dans un ensemble de modes de modes de réalisation, les impulsions sont calculées à une caméra capturant de manière native des trames d’intensités lumineuses de pixels, et non une caméra générant de manière native des impulsions. La caméra peut alors être configurée pour calculer l’occurrence d’impulsions à partir des différences entre les pixels de trame successives. Contrairement à des caméras générant des trames de pixels qui génèrent des trames à une fréquence donnée (par exemple 25 fps), les caméras impulsionnelles natives sont asynchrones, et génèrent des impulsions, associées à un temps, dès que les conditions d’émission de l’impulsion sont réunies. Une règle dite « d’intensité de la latence » peut alors être appliquée, pour affecter à chaque impulsion un temps entre deux trames. Cette règle consiste dans un premier temps à déterminer une « intensité » de l’impulsion, qui est généralement proportionnelle à la différence absolue des pixels entre deux trames successives, et assigner à chaque impulsion un temps entre les deux trames correspondant à une latence d’autant plus faible que l’intensité de l’impulsion est élevée. Par exemple la latence de l’impulsion entre deux trames, et le temps d’occurrence de l’impulsion peuvent se calculer comme : Avec : F : Index de la trame actuelle ; FPS : nombre de trames par seconde ; Δt s, rel : Temps relatif du spike s à la frame F ; I s : Intensité inversée de l’impulsion s ; I min : représente une intensité minimum sur l’ensemble des impulsions, par exemple un minimum absolu, ou l’intensité la plus faible parmi toutes les impulsions si cette donnée est disponible ; I max : intensité maximum sur l’ensemble des impulsions par exemple un maximum absolu, ou l’intensité la plus faible parmi toutes les impulsions si cette donnée est disponible ; t s : temps d’occurrence de l’impulsion s. Il convient de noter que, dans ces modes de réalisation, la notion d’intensité de l’impulsion est uniquement utilisée pour déterminer le temps d’occurrence t s de l’impulsion. Une fois celui-ci déterminé, l’impulsion est uniquement associée en entrée du réseau de neurones à une localisation (i.e pixel où elle est émise), et un temps d’émission, sans notion d’intensité. Ces modes de réalisation sont donnés à titre d’exemple uniquement : selon différents modes de réalisation de l’invention, d’autres méthodes pourraient être mises en œuvre pour associer à une impulsion issue d’une caméra retournant des trames de pixels un temps compris entre le temps d’occurrence de la trame à laquelle elle survient et le temps d’occurrence de la trame suivante. Le système 100 comprend également au moins une unité de calcul 120. L’au moins une unité de calcul 120 peut être n’importe quel type d’unité de calcul apte à effectuer des calculs informatiques. Par exemple, l’unité de calcul peut être un processeur configuré avec des instructions machine, un microprocesseur, un circuit intégré, un microcontrôleur, un circuit logique programmable, ou tout autre unité de calcul apte à être programmée pour effectuer des opérations de calcul. Afin de faciliter la lecture de ce document, l’au moins une unité de calcul pourra être décrite comme « l’unité de calcul », même dans des modes de réalisation impliquant plusieurs unités de calcul. Selon différents modes de réalisation de l’invention, l’au moins une unité de calcul peut être une unité de calcul unique, ou une pluralité d’unités de calcul, localisés dans un ou plusieurs dispositifs de calcul. En particulier, selon différents modes de réalisation de l’invention, l’au moins une unité de calcul peut être située dans la caméra 110 elle-même, ou dans un dispositif de calcul externe, par exemple un ordinateur ou un serveur. Dans le cas ou plusieurs unités de calcul sont utilisées, elles peuvent être réparties entre la caméra et un dispositif de calcul externe. L’au moins une unité de calcul 120 est configurée 121 pour obtenir des impulsions de la caméra 110. Comme indiqué ci-dessus, chaque impulsion est associée à un emplacement (généralement, le pixel auquel elle est survenue), et un temps, le temps étant déterminé à partir d’une origine prédéfinie, par exemple l’initialisation du système. Dans un ensemble de modes de réalisation de l’invention, deux types d’impulsion peuvent être émises : une impulsion « ON » en cas d’augmentation de la luminosité à un pixel donné, et une impulsion « OFF » en cas de diminution de la luminosité. L’au moins une unité de calcul est également configurée pour exécuter un réseau de neurones à impulsion 130. Le réseau de neurone à impulsions 130 comprend, pour chaque pixel de la caméra, au moins deux entrées : une première entrée pour les impulsions aux temps t auxquels elles sont émises ; une deuxième entrée pour les impulsions, avec un délai prédéfini δt après chaque temps t. Dit autrement, la couche d’entrée du réseau de neurones 130 comprend un nombre de neurones égal à au moins 2 fois le nombre de pixels : pour chaque pixel, un premier neurone correspond à l’impulsion initiale, et un deuxième neurone correspond à l’impulsion décalée du délai prédéfini. Dans un ensemble de modes de réalisation de l’invention, l’entrée du réseau de neurones comprend plusieurs entrées pour des impulsions décalées de plusieurs délais prédéfinis. Par exemple, elle peut comprendre pour chaque pixel une deuxième entrée correspondant à un décalage δt, et une troisième entrée pour un décalage plus élevé, par exemple 2* δt. Dans un ensemble de modes de réalisation de l’invention, la couche d’entrée du réseau de neurones peut comprendre, pour chaque pixel et pour chaque délai de décalage, une entrée correspondant à une impulsion « ON », et une entrée correspond à une impulsion « OFF ». Dans ce cas, si un unique délai prédéfini δt est utilisé en plus de l’entrée non décalée dans le temps, chaque pixel sera associé à 4 (2 * 2) entrées ; si deux délais prédéfinis sont utilisés en plus de l’entrée non décalée dans le temps, chaque pixel sera associé à 6 (3 * 2) entrées, etc. Un réseau de neurones à impulsion (ou, en anglais, « Spiking Neural Network », abrévié « SNN ») est un type de réseau de neurones artificiel (ou, en anglais, « Artificial Neural Network », abrévié « ANN »), dans lequel l’échange entre les neurones repose sur l’intégration des impulsions et la redescente de l’activation. Dans un réseau de neurones à impulsion, chaque neurone est caractérisé par un potentiel de membrane, également appelé potentiel membranaire ou potentiel d’activation, et, lorsque le potentiel d’activation d’un neurone dépasse un seuil, celui-ci « décharge », c’est-à-dire qu’il émet lui-même une impulsion vers les neurones de la couche suivante auxquels il est connecté, et son potentiel d’activation revient à une valeur initiale. L’au moins une unité de calcul 120 est plus précisément configurée pour fournir 122 en entrée du réseau de neurones à impulsion 130, à l’occurrence d’une impulsion à un pixel de la caméra et un temps (t) : une première impulsion, à une première entrée pour le pixel, audit temps (t) ; une deuxième impulsion, à une deuxième entrée pour le pixel, à un délai prédéfini (t+δt) après ledit temps. En pratique, pour chaque impulsion à un temps t, l’impulsion est fournie en entrée au temps t, et au moins une impulsion est fournie avec un décalage selon un délai prédéfini. Le nombre d’impulsions fournies en entrée, et leurs délais, dépendent des entrées prévues dans le réseau de neurone. Comme indiqué ci-dessus, l’impulsion peut être fournie sur plus de deux entrées différentes, au temps original et avec plus d’un décalage selon plus d’un délai prédéfini. La fourniture, pour un même pixel et une même impulsion initiale, de l’impulsion initiale et d’au moins une impulsion décalée sur deux sorties différentes permet au réseau de neurones 130 d’apprendre les corrélations spatio temporelles entre les impulsions, et donc d’effectuer, au fur et à mesure des couches du réseau, une sélection des caractéristiques pertinentes du mouvement. Dans les modes de réalisation selon lesquels des impulsions « ON » et « OFF » sont prévues, respectivement pour des augmentations et diminutions des intensités lumineuses sur les pixels, les impulsions « ON » et « OFF » seront envoyées, avec ou sans décalage, sur les entrées prévues pour les impulsions « ON » et « OFF » respectivement. L’utilisation de plus de deux délais prédéfinis de décalage temporel, et/ou d’impulsions « ON » et « OFF », permet d’effectuer des inférences spatio-temporelles plus complexes, et donc d’améliorer encore les prédictions spatio-temporelles réalisées par le réseau de neurones. Lors de l’exécution du réseau de neurones à impulsions 130, lorsqu’un neurone décharge, l’au moins une unité de calcul est configurée pour réaliser une inhibition spatiale et temporelle des neurones partageant le même champ récepteur. Cette inhibition spatiale et temporelle consiste à réduire le potentiel d’activation des neurones appartement à la même couche, et partageant le même champ récepteur que le neurone ayant déchargé. Ceci permet d’accroître la sélectivité des neurones aux différentes caractéristiques d’un mouvement (telles que la direction, la vitesse, ou la forme de l’objet à l’origine du mouvement), car la décharge d’un neurone sur un mouvement correspondant à une direction donnée réduit considérablement la probabilité qu’un neurone partageant le même champ récepteur ne décharge, pour le même mouvement. Le système 100 permet donc une détection fine des caractéristiques de mouvements, dans laquelle chaque neurone du réseau de neurones à impulsions est très sensible aux différentes caractéristiques du mouvement. Dans un ensemble de modes de réalisation de l’invention, l’au moins une unité de calcul est de plus configurée pour prédire 124, à partir d’une impulsion dans le réseau de neurones à impulsions, une position future d’un objet dont le mouvement est à l’origine de l’impulsions. En effet, chaque impulsion est liée à une position dans la vidéo, représentée par le neurone ayant émis l’impulsion, et des caractéristiques du mouvement, définies par la caractéristique, ou filtre, ayant émis l’impulsion. La connaissance de l’emplacement de l’impulsion et des caractéristiques du mouvement permet ainsi d’utiliser les informations disponibles pour le mouvement afin de prédire la position future de l’objet à l’origine du mouvement. Dans un ensemble de modes de réalisation de l’invention, ladite prédiction consiste à ajouter à la position de l’impulsion au moins une valeur de décalage caractéristique d’un filtre ayant généré l’impulsion. En substance, le neurone ayant reçu l’impulsion indique la position de l’impulsion, alors que les caractéristiques du mouvement, définies par la caractéristique, ou filtre, ayant émis l’impulsion permettent de définir une valeur de décalage, propre à chaque filtre, permettant de prédire une position future de l’objet à l’origine du mouvement. Il est par exemple possible d’associer à une caractéristique, ou filtre, une valeur de décalage de Δx pixels, pour un décalage temporel Δt. Il suffit alors d’ajouter cette valeur de décalage Δx à la position x d’un pixel pour prédire que l’objet se situera à une position x+ Δx à un instant Δt. Dans un ensemble de modes de réalisation de l’invention, cette valeur de décalage temporelle aura été préalablement déterminée durant une phase d’apprentissage, par exemple en apprenant, pour un filtre donné du réseau de neurones, si les positions exactes des objets à l’issue du délai Δt sont connues en phase d’apprentissage, les valeurs de décalage Δx permettant de minimiser une erreur de prédiction de ces positions. Par exemple, l’apprentissage peut se faire par régression linéaire ou polynomiale. La représente une architecture d’un réseau de neurones dans un ensemble de modes de réalisation de l’invention. Dans un ensemble de modes de réalisation de l’invention, le réseau de neurones 200 est formé de neurones LIF (de l’anglais « Leaky Integrate and Fire », littéralement en français « Fuite intégration et décharge »). Un neurone LIF est un neurone caractérisé par un potentiel d’activation, dont le potentiel s’accroît à la réception d’une impulsion, et décroît avec le temps en l’absence d’impulsion. Plus particulièrement, lorsqu’un neurone reçoit une impulsion entrante, sa valeur de potentiel de membrane augmente proportionnellement au poids de la connexion au neurone pré-synaptique d’où vient l’impulsion. Ensuite, cette valeur de potentiel membranaire fuit (ou décroit) avec le temps en l’absence de réception d’une impulsion. Par exemple, le potentiel membranaire peut décroître selon la formule suivante : Dans laquelle : est le potentiel d’activation d’un neurone i à un instant ; est le potentiel de repos. On a en général ; est le temps (précédent) auquel a eu lieu la dernière impulsion pour le neurone i ; est une constante de temps, représente la vitesse à laquelle le potentiel de membrane fuit ; est le poids de la connexion entre le neurone post-synaptique i et le neurone pré-synaptique j d’où l’impulsion est issue. Le neurone décharge lorsque son potentiel d’activation dépasse une valeur seuil . L’impulsion se propage alors à la couche suivante, et plus spécifiquement aux neurones auxquels le neurone i est connecté dans la couche suivante. Selon différents modes de réalisation, différents nombres et tailles de couches peuvent être utilisés. Dans l’exemple de la , une entrée 204 et 3 couches 210, 220, 230 sont utilisées, avec des connexions à propagations avant (dites connexions « feed-forward » en anglais). Ainsi, les impulsions se transmettent de couche en couche à l’activation des neurones. Par exemple, les impulsions 201, 202 et 203 sont respectivement transmisses de l’entrée 200 à la première couche 210, de la première couche 210 à la deuxième couche 220, et de la deuxième couche 220 à la troisième couche 230. Dans un ensemble de modes de réalisation de l’invention, les neurones sont organisés de manière rétinotopique, c’est-à-dire qu’un neurone d’une couche reçoit des entrées d’une zone de taille s x s x d (c’est-à-dire une zone de largeur et hauteur identiques s, et de profondeur d) de la couche précédente. Cette zone est appelé son champ récepteur (ou, en anglais « Receptive Field », abrévié « RF »). Ceci permet aux neurones d’être connecté à la partie locale des neurones de la couche précédente. Les autres neurones de la couche ont chacun un champ récepteur différent, un décalage d’un neurone, ou pixel dans une couche correspondant à un décalage d’un neurone, ou pixel, de son champ récepteur. Dans l’exemple de la , les hauteur, largeur et profondeur de chaque couche sont les suivantes (largeur x hauteur x profondeur) : entrée 204 : 120 x 120 x 6 ; 1 e couche 210 : 116 x 116 x 60 ; 2 e couche 220 : 112 x 112 x 80 ; 3 e couche 230 : 106 x 106 x 100 ; Sortie 231 : pour chacun des 106 x 106 pixels de la 3 e couche, un vecteur de sortie 231 peut être extrait, comprenant 231 éléments correspondant aux 100 caractéristiques et issu des 100 neurones de profondeur de la 3 e couche. Par exemple, l’entrée a une hauteur et une largeur de 120, et une profondeur de 6, alors que la première couche a une hauteur et une largeur de 116 et une profondeur de 60. Concernant l’entrée, les hauteur et largeur de 120 correspondent à une résolution de l’image d’entrée de 120 * 120 pixels, et la profondeur de 6 à la fourniture d’une impulsion à trois temps différent (temps t de l’impulsion, et deux délais prédéfinis de décalage), pour des impulsions « ON » et des impulsions « OFF ». Il y a donc dans cet exemple 86400 (120 * 120 * 6) neurones dans la couche d’entrée soit, pour chaque pixel de la caméra, 6 neurones : Impulsion « ON », temps t de l’impulsion ; Impulsion « ON », temps t de l’impulsion + premier délai prédéfini δt ; Impulsion « ON », temps t de l’impulsion + deuxième délai prédéfini δt’ ; Impulsion « OFF », temps t de l’impulsion ; Impulsion « OFF », temps t de l’impulsion + premier délai prédéfini δt ; Impulsion « OFF », temps t de l’impulsion + deuxième délai prédéfini δt’. Cet exemple est donné à titre d’exemple non limitatif uniquement, et d’autres tailles de couches peuvent être utilisées. On notera néanmoins que, de manière générale, entre chaque couche, la hauteur et la largeur diminue, alors que la profondeur augmente. En effet, la taille du champ récepteur diminue légèrement le nombre de pixels entre chaque couche. Par exemple, dans l’exemple de la , un champ récepteur de largeur et hauteur 5 est utilisé entre chaque couche : le nombre de pixels en hauteur en largeur et hauteur est donc diminué de 4 entre chaque couche. En parallèle, la profondeur augmente entre chaque couche, signifiant que la quantité d’information collectée pour chaque pixel augmente entre chaque couche. Dans un ensemble de modes de réalisation de l’invention, les neurones sont affectés par un mécanisme de partage de poids (ou, en anglais, « weight sharing » ou « WS »). Cela signifie, en pratique, que N RF neurones (N RF correspondant à la profondeur de la couche) connectés à un même champ récepteur ont respectivement les mêmes poids de connexion avec la couche précédente que N RF autres neurones connectés à un autre champ récepteur. On a donc, pour une couche donnée de profondeur N RF , N RF filtres définis par leur matrice de poids de connexion, chaque filtre codant pour une caractéristique. L'organisation rétinotopique et le partage de poids classent ce réseau de neurones à impulsions comme un réseau de neurones à impulsions convolutif. Comme indiqué ci-dessus, les impulsions reçues en entrée du réseau de neurones 200 correspondent, en fonction de leur position dans la couche d’entrée, soit à une émission directement émise par la caméra à un temps t, soit à l’impulsion décalée d’un délai prédéfini δt, δt’. Cela signifie, en pratique, que, dans la couche d’entrée 200, pour chaque pixel, un ensemble de neurones répartis sur la profondeur de la couche représentent les impulsions aux différents temps (initiaux ou décalages temporels). Ainsi, par l’optimisation des poids des filtres entre les différentes couches, l’apprentissage du réseau de neurones 200 conduit à détecter les cohérences spatio-temporelles entre les impulsions sous forme de caractéristiques de plus en plus hauts niveaux. Ainsi, en sortie sur la couche 3, chaque pixel est associé à un vecteur de caractéristiques 231 (de dimension 100 dans cet exemple), où chaque élément du vecteur correspond à une caractéristique de la couche de sortie, représentant une description de mouvement de haut niveau. La représente un exemple d’inhibition du potentiel d’activation de neurones à l’activation d’un neurone partageant le même champ récepteur, dans un ensemble de modes de réalisation de l’invention. Dans cet exemple, volontairement simplifié, deux champs récepteurs 311 et 312 d’une première couche 300 ont été représentés. Chaque disque de la couche 300 représente un neurone. Trois filtres F1, F2 et F3 s’appliquent à partir de cette couche, c’est-à-dire que trois matrices de poids sont appliquées à chaque champ récepteur pour parvenir à 3 neurones dans la couche suivante correspondant à ce champ récepteur. Compte tenu du mécanisme de partage de poids, les trois mêmes filtres sont appliqués à chaque champ récepteur. Dans cet exemple : L’application du filtre F1 au champ récepteur permet de transmettre les impulsions issues du champ récepteur 311 au neurone 3111 ; L’application du filtre F2 au champ récepteur permet de transmettre les impulsions issues du champ récepteur 311 au neurone 3112 ; L’application du filtre F3 au champ récepteur permet de transmettre les impulsions issues du champ récepteur 311 au neurone 3113 ; L’application du filtre F1 au champ récepteur permet de transmettre les impulsions issues du champ récepteur 312 au neurone 3121 ; L’application du filtre F2 au champ récepteur permet de transmettre les impulsions issues du champ récepteur 312 au neurone 3122 ; L’application du filtre F3 au champ récepteur permet de transmettre les impulsions issues du champ récepteur 312 au neurone 3123. Lorsqu’un neurone décharge, c’est-à-dire lorsque son potentiel d’activation dépasse un seuil et qu’il émet lui-même une impulsion, les neurones appartenant à la même couche et partageant le même champ récepteur sont inhibés (i.e leur potentiel d’activation est réduit). Par exemple, une décharge du neurone 3112 entraine une inhibition des neurones 3111 et 3113 partageant le même champ récepteur 311 ; une décharge du neurone 3121 entraîne une inhibition des neurones 3122 et 3123 partageant le même champ récepteur 312. Cette inhibition peut être de deux types : une inhibition instantanée consiste à soustraire, à la décharge d’un neurone, une valeur prédéterminée aux potentiels d’activation des neurones du même champ récepteur ; une inhibition temporelle consiste à diminuer le potentiel d’activation des neurones du même champ récepteur durant une période de durée prédéfinie. Cette inhibition temporelle, en combinaison avec la présence d’impulsions correspondant, en plus de l’impulsion initiale, à un ou plusieurs délais prédéfinis au sein de la couche d’entrée, permet d’éviter que des neurones correspondant à des caractéristiques différentes ne déchargent pour le même type de mouvement. Ceci accroît la sélectivité des neurones à la direction. Au cours de l’apprentissage du réseau de neurones, chaque caractéristique se spécialise donc pour la détection d’un type de mouvement, en particulier d’une direction et d’une vitesse. L’inhibition temporelle peut être de différents types. Par exemple, une valeur d’inhibition fixe peut être retranchée aux neurones du même champ récepteur pendant toute la période d’inhibition. Dans un ensemble de modes de réalisation de l’invention, une valeur d’inhibition temporelle variable est retranchée aux neurones du même champ récepteur, cette valeur étant croissante puis décroissante pendant la période d’inhibition. Ceci permet de lisser l’inhibition au cours du temps. En particulier, cela évite une inhibition trop forte au début du délai (l’inhibition instantanée étant déjà appliquée). La représente un exemple de règle d’inhibition temporelle du potentiel d’activation de neurones à l’activation d’un neurone partageant le même champ récepteur, dans un ensemble de modes de réalisation de l’invention. Le graphe 400 représente l’évolution d’une inhibition temporelle en fonction du temps, dans un ensemble de modes de réalisation de l’invention. L’axe horizontal 420 représente le temps écoulé à partir du moment de la décharge du neurone. Ce temps peut par exemple être exprimé en secondes, en millisecondes, etc. L’axe vertical 430 représente la valeur d’inhibition. Il convient de noter ici que l’axe est inversé, pour représenter l’effet sur le potentiel membranaire des neurones du champ récepteur : plus on est bas sur l’axe, plus l’inhibition est forte, et plus le potentiel d’activation des neurones du champ récepteur sera bas. Dans ce modèle, l’excitation d’un neurone d’indice à un instant est la somme de deux termes : , la valeur du potentiel de la membrane excitatrice du neurone à un instant . est une valeur positive : plus sa valeur absolue est élevée, plus le neurone sera excité et aura de chance d’émettre une impulsion ; , la valeur du potentiel de la membrane inhibitrice du neurone à un instant . est une valeur négative, plus sa valeur absolue est élevée, plus le neurone sera inhibé et moins il aura de chance d’émettre une impulsion. On dira donc que la valeur d’inhibition est croissante lorsque la valeur absolue de est croissante. On pourra dire, de manière équivalente, que l’on retranche cette valeur absolue, ou que l’on ajoute une valeur négative. Dans cet exemple, la valeur d’inhibition temporelle est croissante puis décroissante pendant la période d’inhibition. Plus spécifiquement, dans un ensemble de modes de réalisation de l’invention, elle croît linéairement pendant une première moitié de la période d’inhibition pour atteindre une valeur maximum à un temps , puis décroît linéairement pendant une deuxième moitié de la période d’inhibition, pour revenir à 0 à un temps 2 x . La valeur d’inhibition temporelle est donc dans cet exemple telle que : si , ; si , . Dans un ensemble de modes de réalisation, la valeur d’inhibition instantanée et les valeurs d’inhibition temporelle dépendent des potentiels d’activation des neurones du champ récepteur audit temps. Dit autrement, au moment de la décharge d’un neurone, plus les autres neurones du champ récepteur auront un potentiel d’activation élevé, plus les inhibitions instantanée et temporelle seront fortes. Ceci permet de générer de fortes inhibitions au début de la phase d'apprentissage et évite ainsi aux neurones d'apprendre des schémas similaires. En effet, comme les poids sont aléatoires au début de la phase d'apprentissage, tous les neurones peuvent être sollicités par un stimulus quelconque. Leur potentiel membranaire moyen au moment de la première impulsion est élevé. Au cours de l'apprentissage, la sélectivité devient plus forte. Lorsqu'un neurone génère une impulsion, la plupart des autres neurones connectés au même champ récepteur ont une valeur de potentiel de membrane plus faible, car ils ne sont pas sélectifs à ce stimulus, ce qui entraîne une inhibition plus faible. Par exemple, les valeurs d’inhibition instantanée , et la valeur d’inhibition temporelle maximale peuvent être toutes les deux proportionnelles à une valeur d’activation dépendant des potentiels d’activation des neurones du champ récepteur : Où : est le nombre de neurone en entrée d’un filtre où une impulsion s’est produite, c’est-à-dire dans le même champ récepteur que le neurone ayant déchargé. Il convient de noter que cela comprend le neurone ayant déchargé lui-même, et que sa valeur est ici prise avant décharge, c’est-à-dire avant propagation de l’impulsion et remise à zéro des potentiels et pour ce neurone ; représente l’indice du premier neurone connecté au même champ récepteur que le neurone ayant généré l’impulsion (dans une nomenclature où tous les neurones de la couche sont représentés par des indices croissants) ; les neurones du champ récepteur vont alors de l’indice à l’indice ; est la valeur, positive, du potentiel de la membrane excitatrice du neurone à un instant ; est la valeur, négative, du potentiel de la membrane inhibitrice du neurone à un instant . Selon différents modes de réalisation de l’invention, les valeurs d’inhibition instantanée et temporelle maximale sont égales. On a alors, par exemple, . On peut également avoir deux valeurs et différentes, en multipliant par deux facteurs différents et respectivement. On a alors , et . La représente une méthode d’utilisation d’un réseau de neurones à impulsion dans un ensemble de modes de réalisation de l’invention. La méthode 500 comprend une première étape 510 de réception d’impulsions émises par une caméra représentant chacune un changement d’intensité lumineuse à un pixel donné. La méthode 500 comprend ensuite, l’occurrence d’une impulsion à un pixel de la caméra et un temps (t), une seconde étape 520 de fourniture à un réseau de neurones à impulsions ayant au moins deux entrées pour chaque pixel de la caméra : première impulsion, à une première entrée pour le pixel, audit temps (t) ; une deuxième impulsion, à une deuxième entrée pour le pixel, à un délai prédéfini (t+δt) après ledit temps. La méthode 500 comprend ensuite une troisième étape 530 de réduction, à la décharge d’un neurone dudit réseau de neurones à impulsions, du potentiel d’activation des neurones appartenant à la même couche et partageant le même champ récepteur que ledit neurone, pendant une durée prédéfinie. Tous les modes de réalisation discutés aux figures 1 à 4 sont respectivement applicables à la méthode 500. L’ordre présenté dans la est fourni à titre d’exemple illustratif uniquement. Dans la pratique, de nombreuses impulsions peuvent être reçues, décharges effectuées, dans des ordres variables. La représente une méthode d’entraînement d’un réseau de neurones à impulsion dans un ensemble de modes de réalisation de l’invention. La méthode 600 permet d’entraîner un réseau de neurones à impulsion tel que le réseau de neurones 130. La méthode 600 comprend une première étape 610 d’obtention d’une base de données d’entraînement. Cette base d’entraînement est formé de données du même type qu’à la phase d’inférence, c’est-à-dire d’impulsions issues d’une ou plusieurs caméras semblables à la caméra 110. La base d’entraînement comprend donc des impulsions émises, par au moins une caméra représentant chacune un changement d’intensité lumineuse à un pixel donné. L’occurrence d’une impulsion à un pixel d’une caméra et un temps t entraîne la fourniture à un réseau de neurones à impulsions ayant au moins deux entrées pour chaque pixel de l’au moins une caméra : d’une première impulsion, à une première entrée pour le pixel, audit temps (t) ; d’une deuxième impulsion, à une deuxième entrée pour le pixel, à un délai prédéfini (t+δt) après ledit temps. Le réseau de neurones est entraîné par l’application d’une règle de plasticité dépendante des pics (ou, en anglais, Spike Timing Dependent Plasticity, STDP) au réseau de neurones à impulsions. La règle STDP est par exemple décrite par Bichler, O., Querlioz, D., Thorpe, S. J., Bourgoin, J. P., & Gamrat, C. (2012). Extraction of temporally correlated features from dynamic vision sensors with spike-timing-dependent plasticity. Neural networks , 32 , 339-348., ou Masquelier, T., & Thorpe, S. J. (2007). Unsupervised learning of visual features through spike timing dependent plasticity. PLoS Comput Biol , 3 (2), e3. La STDP consiste à modifier les poids des connexions entre les neurones en fonction du temps des impulsions, afin que le réseau de neurones apprenne des patterns temporels. La règle STDP est particulièrement efficace pour apprendre des patterns temporels. Comme lors de la phase d’inférence, lors de l’apprentissage, la méthode 600 comprend, à la décharge d’un neurone, une étape 630 de réduction du potentiel d’activation des neurones appartenant à la même couche et partageant le même champ récepteur que ledit neurone pendant une durée prédéfinie. Ceci permet, en combinaison avec la STDP, aux neurones de devenir particulièrement sélectifs à un type de mouvement, puisque, à la décharge d’un neurone sur un mouvement, la réduction du potentiel d’activation des autres neurones réduit considérablement leur probabilité d’émettre une impulsion pour le même mouvement. Le caractère temporel de l’inhibition évite également le sur-apprentissage de certains types de mouvement ayant généré beaucoup d’impulsions, et permet donc un apprentissage discriminant de manière efficace tous les types de mouvements. Tous les modes de réalisation décrits en référence aux figures 1 à 5 sont respectivement applicables à la méthode 600. En particulier, le partage des poids peut être appliqué lors de l’apprentissage. Comme expliqué ci-dessus, la phase d’apprentissage peut être suivie de l’entraînement d’un prédicteur d’une prédiction future d’un objet ayant émis une impulsion, à partir de la survenance de celle-ci. La représente un exemple de mise à jour des poids synaptiques lors de l’application d’une règle de plasticité dépendante des pics pour l’entraînement d’un réseau de neurones à impulsions dans un ensemble de modes de réalisation de l’invention. Dans un ensemble de modes de réalisation de l’invention, lors de l’application de la règle de plasticité dépendante des pics au réseau de neurones à impulsions, le poids d’une connexion entre un premier neurone d’une première couche, et un deuxième neurone de la couche suivante est : augmenté si, à l’émission d’une impulsion par le deuxième neurone, une impulsion précédente avait été émise par le premier neurone pendant une durée prédéfinie avant ladite impulsion ; diminué, dans le cas contraire. Dit autrement, le poids d’une connexion entre deux neurones sera renforcé si une impulsion du deuxième neurone de la couche suivante est fréquemment précédée d’une impulsion du premier neurone, et diminué dans le cas contraire. Ceci a pour effet de permettre de renforcer les corrélations temporelles entre les émissions d’impulsions entre les différentes couches. En effet, au fil de l’apprentissage, les poids des connexions seront renforcés lorsque des impulsions proches sont détectées. Dans l’exemple de la figure 7, l’axe horizontal 710 représente le temps, et l’axe vertical 720 la variation d’un poids de connexion entre un premier neurone i et un deuxième neurone j. Au temps 730, une impulsion est émise par le deuxième neurone j. Le fenêtre dite LTP (de l’anglais « Long Term Potentiation », en français « Potentialisation à Long Terme ») 740 correspond à une augmentation du poids de la connexion : si une impulsion avait été préalablement émise du premier neurone i pendant une durée (correspondant à la largeur de la fenêtre) avant le temps 730, c’est-à-dire si le temps de la dernière impulsion émise par le premier neurone i, et le temps 730 de l’impulsion courante émise par le deuxième neurones j sont telles que , le poids de la connexion entre le premier et le deuxième neurone est renforcé : , où est un facteur d’augmentation du poids. Dans le cas contraire, si , le poids de la connexion est diminué, on applique alors une « LTD » (de l’anglais « Long Term Depression », en français « Dépression à Long Terme ») : , où est un facteur de diminution du poids, en général plus faible que . Cette règle d’apprentissage est donc caractérisée par quelques paramètres, notamment , et . Ces paramètres peuvent être définis manuellement, ou déterminés automatiquement pour minimiser une fonction de coût. Dans un ensemble de modes de réalisation de l’invention, ces paramètres sont déterminés automatiquement par un algorithme génétique, pour minimiser la fonction de coût. Ceci permet d’identifier rapidement une combinaison optimale de paramètres, tout en évitant de tomber dans un optimum local. Différentes fonctions de coûts peuvent être utilisées. Par exemple, les paramètres peuvent être déterminés pour minimiser une prédiction d’erreur moyenne. La représente un exemple de calcul de la sélectivité à la direction de neurones de la couche finale d’un réseau de neurones à impulsion, dans un ensemble de modes de réalisation de l’invention. L’un des objectifs de l’invention est d’entraîner un réseau de neurones à impulsions, afin que les filtres de la dernière couche fournissent une information sur le mouvement d’un objet sur la vidéo. En particulier, chaque élément le vecteur de sortie pour chaque pixel de la dernière couche (par exemple, vecteur 231) doit coder une caractéristique distincte du mouvement, caractérisée notamment par une direction. La sélectivité à la direction représente la finesse avec laquelle chaque caractéristique de la couche de sortie représente une direction donnée de mouvement. Pour tester cette propriété, l’expérience suivante a été menée. Un jeu d’entraînement a été généré, en filmant des matches de tennis avec une caméra telle que la caméra 110, comprenant donc des mouvements très forts des balles. En parallèle de la capture vidéo, les trajectoires 3D des balles ont été enregistrées, à l’aide de cibles infrarouges placées sur les balles, et de caméra spécifiques mesurant la position 3D des cibles à une fréquence de 200 Hz. Un filtre de coupure de 6 Hz a été appliqué sur les positions. La série de position permet d’obtenir directement les direction et vitesse d’une balle à tout moment. Ceci a donc permis de déterminer une matrice Vk des positions Xvk et Yvk, des vitesses Svk, des directions θvk, pouvant être comparées aux sortie du réseau de neurones pour caractériser la sélectivité des filtres : V k = [Xv k Yv k θv k Sv k ]. Ainsi, chaque impulsion sur un filtre peut être associée à un mouvement défini par une direction : lorsqu’une impulsion est détectée en un point de coordonnées X, Y, à un instant t, il est possible d’identifier dans la matrice V k le mouvement correspondant, et associer les vitesses et directions au filtre. Ainsi, un filtre peut être associé à un ensemble de directions de mouvements l’ayant conduit à générer une impulsion. La représente ainsi la gamme des directions générant une impulsion pour chaque filtre : pour chaque filtre, une direction moyenne θ est calculée ; toutes les directions associées à ce filtre sont normalisées autour de θ, et représentées par un vecteur sur la . Par exemple, si la moyenne des directions pour le filtre est de 275, et qu’un vecteur associé à ce filtre a une direction de 277, on aura pour ce filtre θ = 275, et pour ce vecteur une direction θ + 2. La montre que les directions sont très peu dispersées, pour chaque filtre, autour de la direction moyenne θ. Cela signifie que les filtres du réseau de neurones entraîné ont une bonne sélectivité à la direction : les impulsions émises par un même filtre auront été générées par en ensemble de mouvements ayant des directions quasi identiques. La sélectivité à la direction peut également être exprimée par une métrique. Par exemple, comme expliqué ci- dessus, on peut pour un filtre n définir tous les vecteurs de V k concernant ce filtre. On aura alors des vecteurs Xfn, Yfn, θfn, Sfn, représentant respectivement toutes les positions X, Y, directions et vitesses d’une balle pour tous les impulsions du filtre n. La sélectivité à la direction DSn peut alors être estimée, pour un filtre n, comme l’écart-type du vecteur θfn. Il est alors possible de calculer une moyenne pondérée des sélectivités des filtres, en pondérant la sélectivité à la direction DSn d’un filtre n par le nombre d’impulsions Cn émises pour ce filtre. On obtient alors une moyenne pondérée : Dans un premier test, cette sélectivité a été calculée comme égale à 0,3 rad (17,5 degrés). Dans un second test, seules les impulsions situées à une distance de la position d’une balle inférieure à 10 pixels ont été utilisées. En effet, même si, dans le cadre de ce test, les mouvements des balles sont les plus importants, les filtres peuvent également générer des impulsions pour d’autres mouvements (bras des tennismen, etc). En ne prenant en compte que les impulsions très proches d’une balle, la sélectivité moyenne devient, dans cet exemple et cette simulation, 0,258 rad. Cet exemple démontre qu’un réseau de neurones à impulsions selon l’invention permet une excellente sélectivité à la direction. La représente un exemple de calcul de la sélectivité à la vitesse de filtres d’un réseau de neurones à impulsion, dans un ensemble de modes de réalisation de l’invention. Dans le cadre de la même expérience que celle décrite en référence à la , il est possible de tester la sélectivité des filtres à la vitesse. En effet, la connaissance des trajectoires réelles de balles permet d’associer, à chaque impulsion d’un filtre, une trajectoire de balle associée à une vitesse. Les courbes 910, 920, 930 représentent, pour trois filtres, une distribution de densité de probabilité des vitesses de balles ayant généré des impulsions. L’axe commun horizontal 940 représente la vitesse de balle, telle qu’indiquée par la caméra infrarouge. Les axes verticaux 912, 922, 923 représentent la densité de probabilité de vitesses de balles ayant généré une impulsion pour chacun des trois filtres respectivement. Les trois filtres choisis pour cette représentation ont une direction similaire. De plus, pour compléter la représentation, pour chaque neurone, une sélection aléatoire de trajectoires de balles ayant généré une impulsion pour une direction sensiblement égale à celle du neurone a été effectuée. Les distributions des vitesses des trajectoires de ces sélections aléatoires ont été représentées pour chaque neurone, respectivement par les courbes 911, 921, 931. Ces représentations montrent que, pour les trois filtres, les distributions 911, 921 et 931 des sélections aléatoires sont sensiblement équivalentes pour les trois filtres, et relativement homogènes sur la plage de vitesse. Au contraire, les distributions 910, 920 et 930 des trajectoires ayant généré des impulsions pour chacun des trois neurones sont beaucoup plus « resserrées », et chacune centrée sur une vitesse différente. Cela signifie que l’entraînement du réseau de neurones permet à ceux-ci de coder, non seulement des directions, mais aussi des vitesses différentes : même en ayant une direction globalement équivalente, les trois neurones ont ici codé des vitesses sensiblement différentes. Cet exemple montre la capacité de l’invention à discriminer non seulement la direction, mais également la vitesse de mouvements. La représente un exemple de calcul de la sélectivité à la forme de filtres d’un réseau de neurones à impulsion, dans un ensemble de modes de réalisation de l’invention. Dans le cadre de l’expérience décrite aux figures 8 et 9, un autre élément d’intérêt est la détermination de l’objet ayant généré les impulsions. En effet, si, dans le cadre d’une vidéo d’un match de tennis, la majorité des impulsions sont logiquement générées par des mouvements de la balle, d’autres mouvements, tels que des mouvements de raquettes, ou de bras des tennismen, peuvent générer des impulsions. Pour toutes les impulsions générées par chaque filtre de la couche finale du réseau de neurones, il est possible de déterminer une distance, en nombre de pixels, entre le neurone pour lequel cette impulsion a lieu, et la position du centre de la balle. à l’instant où cette impulsion a lieu. Ensuite, la moyenne des distances à la balle, pour les impulsions émises par chaque filtre, est ici déterminée. Un seuil de 10 pixels a été défini, pour caractériser les impulsions générées par un mouvement de la balle, et les impulsions émises par d’autres mouvements. Le graphe 1000 représente la distribution des distances moyennes à la balle pour les différents filtres. L’axe horizontal 1011 représente la distance moyenne, en pixels. L’axe vertical 1012 représente le nombre de filtres ayant ladite distance moyenne. Les distances sont groupées par groupe de 5 pixels. Par exemple, la barre 1020 indique que 35 filtres ont une distance moyenne comprise dans l’intervalle [0 pixels ; 5 pixels [ ; la barre 1021 indique que 27 filtres ont une distance moyenne comprise dans l’intervalle [5 pixels ; 10 pixels [, etc. Les barres 1020 et 1021 représentent les filtres associées à une distance moyenne à la balle de moins de 10 pixels, dont les impulsions sont considérées comme générées par des mouvements de la balle. Les autres barres représentent des filtres associés à une distance moyenne à la balle supérieure à 10 pixels, dont les impulsions sont considérées comme générées par d’autres objets. Les positions des impulsions générées par les différents filtres ont également été représentées, en superposition, sur une image de la vidéo du match de tennis. Ceci montre que certains filtres codent de phases de mouvement spécifiques, telles qu’une phase ascendante de la balle vers la droite. Ces exemples montrent que les filtres d’un réseau de neurones entraîné selon l’invention sont également sélectifs à la forme, puisque certains filtres correspondent à des mouvements de la balle, et d’autres filtres à des mouvements d’autres objets. La représente un exemple de vidéo d’un match de tennis, dans un exemple de mode de réalisation de l’invention pour la prédiction d’un point de réception d’une balle de tennis. L’image 1100 représente une trame d’une vidéo d’un match de tennis. La vidéo est capturée selon un plan parallèle aux deux joueurs, c’est-à-dire que les trajectoires de la balle sont substantiellement parallèles à la caméra. La traînée 1110 représente les trajectoires de balles capturées par la caméra. Les plans 1111 et 1112 représentent les plans dans lesquels les deux joueurs récupèrent respectivement les balles. L’objectif de cette expérience est de prédire, à partir d’une impulsion sur la dernière couche du réseau de neurone, la position à laquelle la balle sera réceptionnée. En effet, chaque impulsion est liée à un filtre et un neurone donné. Le neurone correspond à l’emplacement d’un pixel dans la vidéo, et le filtre à une caractéristique de mouvement. Connaissant le mouvement de la balle à un emplacement donné, il est envisageable de prédire l’emplacement de réception de la balle. Pour cela, une régression polynomiale est entraînée. Par exemple, la régression suivante peut être utilisée : Dans laquelle : représente la position verticale entre le neurone ayant généré l’impulsion et la position verticale prédite du point de réception de la balle, c’est-à-dire la position verticale sur l’un des axes 1111 (dans le cas où le mouvement va de droite à gauche) et 1112 (dans le cas où le mouvement va de gauche à droite). Cette position permet de connaître la position finale de réception de la balle, en s’additionnant à la position verticale du neurone pour lequel l’impulsion a été générée ; et représentent respectivement les positions verticales et horizontales du mouvement pour le filtre ayant généré l’impulsion. A l’étape d’entraînement, la position finale de réception est connue. Un jeu d’entraînement peut donc être constitué pour chaque filtre en associant, pour chaque impulsion du filtre, une différence observée entre la position verticale de l’impulsion et la position verticale de réception de la balle. Les paramètres , , , , et sont ainsi déterminés pour chaque filtre par régression linéaire. En phase d’inférence, les valeurs , , , , et associées au filtre permettent de déterminer directement la différence estimée de position verticale , et donc la position de la balle. La représente un exemple d’évolution d’une erreur de prédiction moyenne de la position d’arrivée d’une balle de tennis, dans un ensemble de modes de réalisation de l’invention en fonction de la couche à laquelle l’impulsion a eu lieu, dans un ensemble de modes de réalisation de l’invention. Le graphe 1200 représente l’erreur de prédiction sur la position de réception de la balle, en nombre de pixels, dans le cadre de l’expérience décrite en , en fonction de la couche où l’impulsion a eu lieu. L’axe horizontal liste les différentes couches possibles : en entrée ; sans apprentissage (quelle que soit la couche) ; dans la première couche ; dans la deuxième couche ; dans la troisième couche. L’axe vertical représente le nombre de pixels d’erreur moyenne, pour chacune de ces couches. Ce graphe montre que, pour un réseau de neurone entraîné, l’erreur diminue en fonction de la profondeur des couches : elle est déjà plus faible en 1 e couche qu’en entrée, puis diminue fortement pour les 2 e et 3 e couches. Ceci montre que, au fur et à mesure des couches, les neurones se spécialisent bien pour coder un mouvement de plus en plus spécifique, pouvant être associé à un mouvement déterminé d’un objet (en l’occurrence, de la balle). La représente un exemple d’évolution d’une erreur de prédiction moyenne de la position d’arrivée d’une balle de tennis, dans un ensemble de modes de réalisation de l’invention en fonction de la couche à laquelle l’impulsion a eu lieu, et d’un pourcentage de présentation de la trajectoire, dans un ensemble de modes de réalisation de l’invention. Le graphe 1300 présente, pour chacune des conditions évoquées en , l’évolution de la précision de prédiction en fonction du pourcentage de présentation de la trajectoire de la balle. L’axe vertical 1310 représente l’erreur moyenne, en pixels. L’axe horizontal 1320 représente le pourcentage de présentation de la trajectoire, c’est-à-dire le pourcentage de trajectoire déjà réalisé par la balle à l’occurrence d’une impulsion. Par exemple, un pourcentage de 50% signifie que l’impulsion considérée survient alors que la balle a déjà effectué la moitié de sa trajectoire. Les courbes 1330, 1331, 1332, 1333 et 1334 représentent respectivement : courbe 1330 : évolution de l’erreur moyenne, pour les impulsions émises en entrée ; courbe 1331 : évolution de l’erreur moyenne, pour les impulsions émises par un réseau avant apprentissage (quelle que soit la couche) ; courbe 1332 : évolution de l’erreur moyenne, pour les impulsions émises par la première couche, après apprentissage ; courbe 1333 : évolution de l’erreur moyenne, pour les impulsions émises par la première couche, après apprentissage ; courbe 1334 : évolution de l’erreur moyenne, pour les impulsions émises par la première couche, après apprentissage. Ce graphe montre que la précision devient plus importante avec le pourcentage de présentation. Ce résultat est logique puisque, plus l’impulsion est proche de la zone de réception, plus le mouvement sera prédit à court terme. De manière intéressante, ceci ne se retrouve pas sur l’entrée 1330, c’est-à-dire que la seule information de l’impulsion d’entrée ne permet pas de prédire l’emplacement d’arrivée de la balle. Au contraire, les 2 e et 3 e couches, représentées par les courbes 1333 et 1334 permettent, après entraînement, une prédiction efficace, descendant même jusqu’à une précision de 2 ou 3 pixels en fin de trajectoire pour la 3 e couche. Cet exemple montre que le réseau de neurones selon l’invention permet une prédiction efficace des mouvements, surtout dans sa dernière couche. Les exemples ci-dessus démontrent la capacité de l’invention à entraîner et utiliser un réseau de neurones pour obtenir une sensibilité forte aux caractéristiques de mouvements. Ils ne sont cependant donnés qu’à titre d’exemple et ne limitent en aucun cas la portée de l’invention, définie dans les revendications ci-dessous. Système (100) comprenant : une caméra (110) configurée pour émettre des impulsions représentant chacune un changement d’intensité lumineuse à un pixel donné ; au moins une unité de calcul (120) configurée pour : obtenir (121) des impulsions de ladite caméra ; à l’occurrence d’une impulsion à un pixel de la caméra et un temps (t), fournir (122) à un réseau de neurones à impulsions (130) ayant au moins deux entrées pour chaque pixel de la caméra : une première impulsion, à une première entrée pour le pixel, audit temps (t) ; une deuxième impulsion, à une deuxième entrée pour le pixel, à un délai prédéfini (t+δt) après ledit temps ; à la décharge d’un neurone dudit réseau de neurones à impulsions, réduire (123) le potentiel d’activation des neurones appartenant à la même couche et partageant le même champ récepteur que ledit neurone, pendant une durée prédéfinie. Système selon la revendication 1, dans lequel le réseau de neurones à impulsions est formé de neurones LIF. Système selon l’une des revendications 1 à 2, dans lequel la réduction du potentiel d’activation des neurones appartenant à la même couche et partageant le même champ récepteur que ledit neurone consiste à retrancher de leur potentiel membranaire une valeur d’inhibition instantanée audit temps, puis une valeur d’inhibition temporelle croissant puis décroissant au cours de ladite durée prédéfinie. Système selon la revendication 3, dans lequel la valeur d’inhibition instantanée et les valeurs d’inhibition temporelle dépendent des potentiels d’activation des neurones du champ récepteur audit temps. Système selon l’une des revendications 1 à 4, dans lequel l’au moins une unité de calcul est de plus configurée pour prédire (124), à partir d’une impulsion dans le réseau de neurones à impulsions, une position future d’un objet dont le mouvement est à l’origine de l’impulsions. Système selon la revendication 5, dans lequel ladite prédiction consiste à ajouter à la position de l’impulsion au moins une valeur de décalage caractéristique d’un filtre ayant généré l’impulsion. Méthode (500) comprenant : la réception (510), d’impulsions émises par une caméra représentant chacune un changement d’intensité lumineuse à un pixel donné ; à l’occurrence d’une impulsion à un pixel de la caméra et un temps (t), la fourniture (520) à un réseau de neurones à impulsions (130) ayant au moins deux entrées pour chaque pixel de la caméra : une première impulsion, à une première entrée pour le pixel, audit temps (t) ; une deuxième impulsion, à une deuxième entrée pour le pixel, à un délai prédéfini (t+δt) après ledit temps ; à la décharge d’un neurone dudit réseau de neurones à impulsions, la réduction (530) du potentiel d’activation des neurones appartenant à la même couche et partageant le même champ récepteur que ledit neurone, pendant une durée prédéfinie. Méthode (600) d’entraînement d’un réseau de neurones à impulsions (130), comprenant : l’obtention (610) d’une base de données d’entraînement comprenant : des impulsions émises par au moins une caméra représentant chacune un changement d’intensité lumineuse à un pixel donné ; l’occurrence d’une impulsion à un pixel de la caméra et un temps (t) entraînant la fourniture à un réseau de neurones à impulsions (130) ayant au moins deux entrées pour chaque pixel de l’au moins une caméra : d’une première impulsion, à une première entrée pour le pixel, audit temps (t) ; d’une deuxième impulsion, à une deuxième entrée pour le pixel, à un délai prédéfini (t+δt) après ledit temps ; l’application (620) d’une règle de plasticité dépendante des pics au réseau de neurones à impulsions ; à la décharge d’un neurone dudit réseau de neurones à impulsions lors de ladite application (620), la réduction (630) du potentiel d’activation des neurones appartenant à la même couche et partageant le même champ récepteur que ledit neurone, pendant une durée prédéfinie. Méthode selon la revendication 8, dans laquelle, lors de l’application de la règle de plasticité dépendante des pics au réseau de neurones à impulsions, le poids d’une connexion entre un premier neurone d’une première couche, et un deuxième neurone de la couche suivante est : augmenté si, à l’émission d’une impulsion par le deuxième neurone, une impulsion précédente avait été émise par le premier neurone pendant une durée prédéfinie avant ladite impulsion ; diminué, dans le cas contraire. Programme d’ordinateur comprenant des instructions de code de programme enregistrées sur un support lisible par ordinateur, lesdites instructions de code de programme étant configurées, lorsque ledit programme fonctionne sur un ordinateur pour exécuter une méthode selon l’une des revendications 7 à 9.