FR3117239A1 - Training and use of an impulse neural network for the characterization of movements - Google Patents

Training and use of an impulse neural network for the characterization of movements Download PDF

Info

Publication number
FR3117239A1
FR3117239A1 FR2012725A FR2012725A FR3117239A1 FR 3117239 A1 FR3117239 A1 FR 3117239A1 FR 2012725 A FR2012725 A FR 2012725A FR 2012725 A FR2012725 A FR 2012725A FR 3117239 A1 FR3117239 A1 FR 3117239A1
Authority
FR
France
Prior art keywords
pulse
neuron
pixel
neural network
time
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
FR2012725A
Other languages
French (fr)
Inventor
Guillaume DEBAT
Tushar CHAUHAN
Timothée MASQUELIER
Benoît COTTEREAU
Simon Thorpe
Robin BAURES
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Centre National de la Recherche Scientifique CNRS
Universite Toulouse III Paul Sabatier
Original Assignee
Centre National de la Recherche Scientifique CNRS
Universite Toulouse III Paul Sabatier
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Centre National de la Recherche Scientifique CNRS, Universite Toulouse III Paul Sabatier filed Critical Centre National de la Recherche Scientifique CNRS
Priority to FR2012725A priority Critical patent/FR3117239A1/en
Priority to PCT/EP2021/083929 priority patent/WO2022117712A1/en
Publication of FR3117239A1 publication Critical patent/FR3117239A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/254Analysis of motion involving subtraction of images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30196Human being; Person
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30232Surveillance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30241Trajectory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Biophysics (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)
  • Optical Radar Systems And Details Thereof (AREA)

Abstract

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. 1The subject of the invention is a system comprising: a camera configured to emit pulses each representing a change in light intensity at a given pixel; at least one calculation unit configured to: obtain pulses from said camera; on the occurrence of a pulse at a camera pixel and a time, provide a pulse neural network having at least two inputs for each camera pixel: a first pulse, at a first input for the pixel, said time; a second pulse, at a second input for the pixel, at a predefined delay after said time; upon discharge of a neuron from said pulsed neural network, reducing the activation potential of neurons belonging to the same layer and sharing the same receptive field as said neuron, for a predefined period. Figure for the abstract: Fig. 1

Description

Entraînement et utilisation d’un réseau de neurones à impulsions pour la caractérisation de mouvementsTraining and use of an impulse neural network for the characterization of movements

Domaine de l’inventionField of 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
The present invention relates to the field of computer vision, and more particularly to the field of the use of neural networks for the characterization of movements of objects from a video.
Previous state of the art

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.Motion analysis is a constantly evolving field, serving as the basis for many applications, such as the prediction of object movement in a video. Recent developments in this field make it possible to envisage new applications, such as autonomous vehicle driving. However, the analysis and prediction of the movement of an object from a video remains an extremely complex problem.

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.Conventionally, videos are produced, in real time or delayed by frame cameras, producing, at a predefined frequency (for example, 25 times per second) frames encoding the entire visual field of the camera in the form of pixels. The video is therefore presented as a sequence of images independent of each other, representing the visual field of the camera at regular intervals.

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.More recently, so-called event cameras have been used. These cameras produce a signal representing, not successive and independent images of its visual field, but pulses (or in English, spike) representing variations of it. This allows the sensors to generate extremely sparse, meaningful data and dramatically reduce response latency.

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.The pulses from these cameras can be processed by spiking neural networks (SNN). These neural networks can thus take the pulses produced by the camera as input, and extract relevant information from them.

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.However, the use of these neural networks does not currently make it possible to finely discriminate movements within the video. In particular, the selectivity of neurons to the characteristics of a movement, such as its direction, its speed, or the shape of the object at the origin of the movement remains limited.

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.There is therefore a need for an impulse neural network whose neurons have a strong selectivity to the characteristics of a movement, in order to analyze in a finer way the movements of objects in the field of vision of a camera.

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.To this end, the subject of the invention is a system comprising: a camera configured to emit pulses each representing a change in light intensity at a given pixel; at least one computing unit configured to: obtain pulses from said camera; on the occurrence of a pulse at a pixel of the camera and a time, providing a pulse neural network having at least two inputs for each pixel of the camera: a first pulse, at a first input for the pixel, said time; a second pulse, at a second input for the pixel, at a predefined delay after said time; upon discharge of a neuron from said pulsed neural network, reducing the activation potential of neurons belonging to the same layer and sharing the same receptive field as said neuron, for a predefined period.

Avantageusement, le réseau de neurones à impulsions est formé de neurones LIF.Advantageously, the pulsed neural network is formed of LIF neurons.

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.Advantageously, the reduction in the activation potential of neurons belonging to the same layer and sharing the same receptive field as said neuron consists in subtracting from their membrane potential an instantaneous inhibition value at said time, then a temporal inhibition value increasing then decreasing during said predefined duration.

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.Advantageously, the instantaneous inhibition value and the temporal inhibition values depend on the activation potentials of the neurons of the receptive field at said time.

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.Advantageously, the at least one calculation unit is further configured to predict, from a pulse in the pulse neural network, a future position of an object whose movement is at the origin of the pulses .

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.Advantageously, said prediction consists in adding to the position of the pulse at least one offset value characteristic of a filter having generated the pulse.

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.The invention also relates to a method comprising: the reception of pulses emitted by a camera, each representing a change in light intensity at a given pixel; upon occurrence of a pulse at a camera pixel and a time (t), providing a pulse neural network having at least two inputs for each camera pixel; a first pulse, at a first input for the pixel, at said time; a second pulse, at a second input for the pixel, at a predefined delay after said time; upon discharge of a neuron from said pulsed neural network, the reduction of the activation potential of neurons belonging to the same layer and sharing the same receptive field as said neuron, for a predefined duration.

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.The invention also relates to a method for training a pulse neural network, comprising: obtaining a training database comprising: pulses emitted by at least one camera each representing a change in luminous intensity at a given pixel; the occurrence of a pulse at a pixel of the camera and a time resulting in the supply to a pulsed neural network having at least two inputs for each pixel of the at least one camera: of a first pulse, at a first entry for the pixel, at said time; a second pulse, at a second input for the pixel, at a predefined delay after said time; applying a peak-dependent plasticity rule to the spiking neural network; upon discharge of a neuron from said pulsing neural network during said application, reducing the activation potential of neurons belonging to the same layer and sharing the same receptive field as said neuron, for a predefined duration.

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.Advantageously, when applying the peak-dependent plasticity rule to the pulsed neural network, the weight of a connection between a first neuron of a first layer, and a second neuron of the following layer is: increased if , when a pulse is emitted by the second neuron, a previous pulse had been emitted by the first neuron for a predefined duration before said pulse; decreased, otherwise.

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.The invention also relates to a computer program comprising program code instructions recorded on a computer-readable medium, said program code instructions being configured, when said program operates on a computer to execute a method according to the one of the embodiments of the 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 :Other characteristics, details and advantages of the invention will become apparent on reading the description given with reference to the appended drawings given by way of example and which represent, respectively:

un système dans un ensemble de modes de réalisation de l’invention ; a system in one set of embodiments of the invention;

une architecture d’un réseau de neurones dans un ensemble de modes de réalisation de l’invention ; an architecture of a neural network in one set of embodiments of the 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 ; an example of inhibiting the activation potential of neurons upon activation of a neuron sharing the same receptive field, in one set of embodiments of the 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 ; an example of a rule for temporal inhibition of the activation potential of neurons upon activation of a neuron sharing the same receptive field, in a set of embodiments of the invention;

une méthode d’utilisation d’un réseau de neurones à impulsion dans un ensemble de modes de réalisation de l’invention ; a method of using a pulsed neural network in one set of embodiments of the 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 ; a method of training a pulsed neural network in one set of embodiments of the 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 ; an example of updating synaptic weights when applying a peak-dependent plasticity rule for training a spiking neural network in one set of embodiments of the 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 ; an example of calculating the selectivity to the direction of filters of a pulsed neural network, in a set of embodiments of the 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 ; an example of calculating the selectivity at the rate of filters of a spiking neural network, in a set of embodiments of the 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 ; an example of calculation of the selectivity to the form of filters of a pulsed neural network, in a set of embodiments of the 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 ; an exemplary video of a tennis match, in an exemplary embodiment of the invention for predicting a landing point of a tennis ball;

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 ; an example of evolution of an average prediction error of the arrival position of a tennis ball, in a set of embodiments of the invention as a function of the layer at which the pulse took place, in a set of embodiments of the 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. an example of evolution of an average prediction error of the arrival position of a tennis ball, in a set of embodiments of the invention as a function of the layer at which the pulse took place, and a path presentation percentage, in one set of embodiments of the invention.

La représente système dans un ensemble de modes de réalisation de l’invention.There represents system in one set of embodiments of the 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é.System 100 includes a camera 110 configured to emit pulses each representing a change in light intensity at a given pixel.

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 »).This camera can be a pulse camera (or "spiking camera"), that is to say a digital camera natively generating pulses (or "spikes" in English during significant changes in the brightness of a pixel and/or of its environment. A pulse is therefore located at the level of a pixel on which a change in light intensity takes place. In practice, the camera emits, as soon as a change is detected in the light field of a pixel, a pulse.The pulse is associated with a time, representing the time of occurrence of the pulse, relative to a fixed initial time.In one set of embodiments, the camera may emit a pulse corresponding to the onset of significant changes of luminosity (we can then for example speak of an “ON” pulse), and a pulse at the end of the significant modifications of luminosity (we can then for example speak of an “OFF” pulse).

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.This camera can also be a digital camera emitting successive frames of pixels of light intensity, in which differences between corresponding pixels of successive frames make it possible to generate pulses.

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.According to different embodiments, many types of cameras can be used. In particular, the cameras can have varying resolutions and frequencies. For example, a resolution of 128 by 120 pixels, and a frame rate of 240 images per second (or “fps”, from English “Frames per second”, having for literal translation “frames per second”) can be used.

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é.In one set of embodiments, one or more filters are implemented by the camera for pulse generation. For example, a noise reduction filter can be used.

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.In one set of embodiments of the invention, an edge detection filter may also be used by the camera. For example, this filter can be a difference of Gaussians filter (also called in English DoG for “Difference of Gaussians”). This type of filter makes it possible to return at the output of the camera only the pulses defining a border, that is to say the pulses characterizing the limit of a moving object.

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.In one set of embodiments, pulses are computed to a camera natively capturing frames of pixel light intensities, not a camera natively generating pulses. The camera can then be configured to calculate the occurrence of pulses from the differences between successive frame pixels. Unlike cameras generating frames of pixels which generate frames at a given frequency (for example 25 fps), native pulse cameras are asynchronous, and generate pulses, associated with a time, as soon as the emission conditions of the impulse are united. A so-called “latency intensity” rule can then be applied, to assign each pulse a time between two frames. This rule consists initially in determining an "intensity" of the pulse, which is generally proportional to the absolute difference of the pixels between two successive frames, and assigning to each pulse a time between the two frames corresponding to a latency of as much weaker as the intensity of the impulse is high.

Par exemple la latence de l’impulsion entre deux trames, et le temps d’occurrence de l’impulsion peuvent se calculer comme : For example latency of the pulse between two frames, and the time of occurrence of the impulse can be calculated as:

Avec :

  • F : Index de la trame actuelle ;
  • FPS : nombre de trames par seconde ;
  • Δts, rel: Temps relatif du spikesà la frameF ;
  • Is: Intensité inversée de l’impulsions ;
  • Imin: 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 ;
  • Imax: 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 ;
  • ts: temps d’occurrence de l’impulsions.
With :
  • F: Index of the current frame;
  • FPS: number of frames per second;
  • Δt s, rel : Relative time from spike s to frame F;
  • I s : Inverted intensity of pulse s;
  • I min : represents a minimum intensity over all the pulses, for example an absolute minimum, or the lowest intensity among all the pulses if this data is available;
  • I max : maximum intensity over all the pulses, for example an absolute maximum, or the lowest intensity among all the pulses if this data is available;
  • t s : time of occurrence of pulse 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 tsde 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.It should be noted that, in these embodiments, the notion of intensity of the pulse is only used to determine the occurrence time t s of the pulse. Once this has been determined, the pulse is only associated at the input of the neural network with a location (ie pixel where it is emitted), and an emission time, without any notion of intensity. These embodiments are given by way of example only: according to different embodiments of the invention, other methods could be implemented to associate with a pulse from a camera returning frames of pixels a time comprised between the occurrence time of the frame at which it occurs and the occurrence time of the following frame.

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.The system 100 also includes at least one calculation unit 120. The at least one calculation unit 120 can be any type of calculation unit capable of performing computer calculations. For example, the calculation unit can be a processor configured with machine instructions, a microprocessor, an integrated circuit, a microcontroller, a programmable logic circuit, or any other calculation unit capable of being programmed to perform calculation operations. In order to facilitate the reading of this document, the at least one calculation unit may be described as the “calculation unit”, even in embodiments involving several calculation units.

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.According to different embodiments of the invention, the at least one calculation unit can be a single calculation unit, or a plurality of calculation units, located in one or more calculation devices. In particular, according to different embodiments of the invention, the at least one calculation unit can be located in the camera 110 itself, or in an external calculation device, for example a computer or a server. In the case where several calculation units are used, they can be distributed between the camera and an external calculation device.

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é.The at least one computing unit 120 is configured 121 to obtain pulses from the camera 110. As indicated above, each pulse is associated with a location (usually the pixel at which it occurred), and a time, the time being determined from a predefined origin, for example the initialization of the system. In one set of embodiments of the invention, two types of pulse can be emitted: an "ON" pulse in the event of an increase in brightness at a given pixel, and an "OFF" pulse in the event of a decrease in brightness. the luminosity.

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.
The at least one calculation unit is also configured to execute a pulse neural network 130. The pulse neural network 130 comprises, for each pixel of the camera, at least two inputs:
  • a first input for the pulses at the times t at which they are emitted;
  • a second input for the pulses, with a predefined delay δt after each time 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.In other words, the input layer of the neural network 130 comprises a number of neurons equal to at least twice the number of pixels: for each pixel, a first neuron corresponds to the initial impulse, and a second neuron corresponds to the pulse shifted by the predefined delay.

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.In one set of embodiments of the invention, the input to the neural network includes multiple inputs for pulses shifted by multiple predefined delays. For example, it can comprise for each pixel a second entry corresponding to an offset δt, and a third entry for a higher offset, for example 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.In one set of embodiments of the invention, the input layer of the neural network may comprise, for each pixel and for each shift delay, an input corresponding to an "ON" pulse, and an input corresponding to a “OFF” impulse. In this case, if a single predefined delay δt is used in addition to the non-time-shifted input, each pixel will be associated with 4 (2 * 2) inputs; if two predefined delays are used in addition to the non-timeshifted input, each pixel will be associated with 6 (3 * 2) inputs, 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.A spiking neural network (or, in English, "Spiking Neural Network", abbreviated "SNN") is a type of artificial neural network (or, in English, "Artificial Neural Network", abbreviated "ANN"), in which the exchange between neurons is based on the integration of impulses and the descent of activation. In a spiking neural network, each neuron is characterized by a membrane potential, also called membrane potential or activation potential, and when the activation potential of a neuron exceeds a threshold, it “fires” , that is, it itself emits an impulse to the neurons of the next layer to which it is connected, and its activation potential returns to an initial value.

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.
The at least one calculation unit 120 is more precisely configured to provide 122 as input to the impulse neural network 130, on the occurrence of an impulse at a pixel of the camera and a time (t):
  • a first pulse, at a first input for the pixel, at said time (t);
  • a second pulse, at a second input for the pixel, at a predefined delay (t+δt) after said time.

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.In practice, for each pulse at time t, the pulse is inputted at time t, and at least one pulse is inputted with an offset according to a predefined delay. The number of pulses provided as input, and their delays, depend on the inputs provided in the neural network. As indicated above, the pulse can be provided on more than two different inputs, at the original time and with more than one offset according to more than one predefined delay.

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.The supply, for the same pixel and the same initial pulse, of the initial pulse and of at least one shifted pulse on two different outputs allows the neural network 130 to learn the spatio-temporal correlations between the pulses, and therefore to carry out, as the layers of the network progress, a selection of the relevant characteristics of the movement.

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.In the embodiments according to which "ON" and "OFF" pulses are provided, respectively for increases and decreases in the light intensities on the pixels, the "ON" and "OFF" pulses will be sent, with or without offset, on the inputs provided for “ON” and “OFF” pulses respectively.

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.Using more than two predefined time-shift delays, and/or “ON” and “OFF” pulses, allows for more complex spatio-temporal inferences, and thus further improves spatio-temporal predictions performed by the neural network.

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.During execution of the spiking neural network 130, when a neuron fires, the at least one computing unit is configured to perform spatial and temporal inhibition of neurons sharing the same receptive field.

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é.This spatial and temporal inhibition consists in reducing the activation potential of neurons belonging to the same layer, and sharing the same receptive field as the neuron having discharged.

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.This makes it possible to increase the selectivity of the neurons to the different characteristics of a movement (such as the direction, the speed, or the shape of the object at the origin of the movement), because the discharge of a neuron on a movement corresponding to a given direction greatly reduces the probability that a neuron sharing the same receptive field will fire, for the same movement.

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.The system 100 therefore allows a fine detection of the characteristics of movements, in which each neuron of the network of impulse neurons is very sensitive to the different characteristics of the movement.

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.In one set of embodiments of the invention, the at least one calculation unit is further configured to predict 124, from a pulse in the pulse neural network, a future position of an object whose the movement is at the origin of the impulses.

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.Indeed, each impulse is linked to a position in the video, represented by the neuron having emitted the impulse, and characteristics of the movement, defined by the characteristic, or filter, having emitted the impulse.

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.Knowledge of the location of the pulse and the characteristics of the movement thus makes it possible to use the information available for the movement in order to predict the future position of the object at the origin of the movement.

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.In one set of embodiments of the invention, said prediction consists in adding to the position of the pulse at least one offset value characteristic of a filter having generated the pulse.

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.In essence, the neuron having received the impulse indicates the position of the impulse, while the characteristics of the movement, defined by the characteristic, or filter, having emitted the impulse make it possible to define an offset value, specific to each filter. , making it possible to predict a future position of the object at the origin of the movement.

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.It is for example possible to associate with a characteristic, or filter, a shift value of Δx pixels, for a time shift Δt. It then suffices to add this offset value Δx to the position x of a pixel to predict that the object will be located at a position x+ Δx at a time Δ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.In one set of embodiments of the invention, this time shift value will have been previously determined during a learning phase, for example by learning, for a given filter of the neural network, whether the exact positions of the objects at the at the end of the delay Δt are known in the learning phase, the offset values Δx making it possible to minimize a prediction error of these positions. For example, learning can be done by linear or polynomial regression.

La représente une architecture d’un réseau de neurones dans un ensemble de modes de réalisation de l’invention.There depicts an architecture of a neural network in one set of embodiments of the 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 »).In one set of embodiments of the invention, the neural network 200 is formed of LIF (Leaky Integrate and Fire) neurons.

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.An LIF neuron is a neuron characterized by an activation potential, the potential of which increases on receipt of an impulse, and decreases with time in the absence of an impulse.

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.More specifically, when a neuron receives an incoming impulse, its membrane potential value increases in proportion to the weight of the connection to the presynaptic neuron from which the impulse originates. Then, this value of membrane potential leaks (or decreases) over time in the absence of reception of an impulse.

Par exemple, le potentiel membranaire peut décroître selon la formule suivante : For example, the membrane potential can decrease according to the following formula:

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.
In which :
  • is the activation potential of a neuron i at a time ;
  • is the resting potential. We have in general ;
  • is the (previous) time at which the last pulse occurred for neuron i;
  • is a time constant, represents the rate at which the membrane potential leaks;
  • is the weight of the connection between postsynaptic neuron i and presynaptic neuron j from which the impulse originated.

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.The neuron fires when its activation potential exceeds a threshold value . The impulse then propagates to the next layer, and more specifically to the neurons to which neuron i is connected in the next layer.

Selon différents modes de réalisation, différents nombres et tailles de couches peuvent être utilisés.According to different embodiments, different numbers and sizes of layers can be used.

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.In the example of the , an input 204 and 3 layers 210, 220, 230 are used, with forward propagation connections (known as “feed-forward” connections). Thus, the impulses are transmitted from layer to layer with the activation of the neurons. For example, pulses 201, 202, and 203 are respectively transmitted from input 200 to first layer 210, from first layer 210 to second layer 220, and from second layer 220 to third layer 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.In one set of embodiments of the invention, the neurons are retinotopically organized, i.e. a neuron in one layer receives inputs from an area of size s x s x d (i.e. that is, an area of identical width and height s, and of depth d) of the previous layer. This area is called its receptive field (or, in English “Receptive Field”, abbreviated “RF”). This allows the neurons to be connected to the local part of the neurons of the previous layer. The other neurons in the layer each have a different receptive field, an offset of a neuron, or pixel in a layer corresponding to an offset of a neuron, or pixel, from its receptive field.

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 ;
  • 1ecouche 210 : 116 x 116 x 60 ;
  • 2ecouche 220 : 112 x 112 x 80 ;
  • 3ecouche 230 : 106 x 106 x 100 ;
  • Sortie 231 : pour chacun des 106 x 106 pixels de la 3ecouche, 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 3ecouche.
In the example of the , the height, width and depth of each layer are as follows (width x height x depth):
  • input 204: 120x120x6;
  • 1st layer 210: 116 x 116 x 60;
  • 2nd layer 220: 112 x 112 x 80;
  • 3rd layer 230: 106 x 106 x 100;
  • Output 231: for each of the 106 x 106 pixels of the 3rd layer, an output vector 231 can be extracted, comprising 231 elements corresponding to the 100 characteristics and coming from the 100 depth neurons of the 3rd layer.

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.For example, the input has a height and width of 120, and a depth of 6, while the first layer has a height and width of 116, and a depth of 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’.
Regarding the input, the height and width of 120 correspond to an input image resolution of 120 * 120 pixels, and the depth of 6 to the delivery of a pulse at three different times (time t of the pulse, and two predefined offset times), for “ON” pulses and “OFF” pulses. There are therefore in this example 86400 (120 * 120 * 6) neurons in the input layer, i.e., for each pixel of the camera, 6 neurons:
  • “ON” pulse, time t of the pulse;
  • “ON” pulse, time t of the pulse + first predefined delay δt;
  • “ON” pulse, time t of the pulse + second predefined delay δt';
  • “OFF” pulse, time t of the pulse;
  • “OFF” pulse, time t of the pulse + first predefined delay δt;
  • “OFF” pulse, time t of the pulse + second predefined delay δt'.

Cet exemple est donné à titre d’exemple non limitatif uniquement, et d’autres tailles de couches peuvent être utilisées.This example is given by way of non-limiting example only, and other diaper sizes can be used.

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.It will nevertheless be noted that, in general, between each layer, the height and the width decrease, while the depth increases. Indeed, the size of the receptive field slightly decreases the number of pixels between each layer. For example, in the example of the , a receptive field of width and height 5 is used between each layer: the number of pixels in height in width and height is therefore reduced by 4 between each layer. In parallel, the depth increases between each layer, meaning that the amount of information collected for each pixel increases between each layer.

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 NRF neurones (NRFcorrespondant à 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 NRFautres neurones connectés à un autre champ récepteur. On a donc, pour une couche donnée de profondeur NRF, NRFfiltres 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.In one set of embodiments of the invention, the neurons are affected by a weight sharing mechanism (or, in English, “weight sharing” or “WS”). This means, in practice, that NRF neurons (NRFcorresponding to the depth of the layer) connected to the same receiving field have respectively the same connection weights with the previous layer as NRFother neurons connected to another receptive field. We therefore have, for a given layer of depth NRF, NOTRFfilters defined by their connection weight matrix, each filter encoding a feature. Retinotopic organization and weight sharing classify this spiking neural network as a convolutional spiking neural network.

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).As indicated above, the pulses received at the input of the neural network 200 correspond, depending on their position in the input layer, either to an emission directly emitted by the camera at a time t, or to the shifted pulse of a predefined delay δt, δt'. This means, in practice, that in the input layer 200, for each pixel, a set of neurons distributed over the depth of the layer represent the pulses at the different times (initials or time offsets).

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.Thus, by optimizing the weights of the filters between the different layers, the training of the neural network 200 leads to the detection of the spatio-temporal coherences between the pulses in the form of increasingly high-level characteristics. Thus, in output on layer 3, each pixel is associated with a vector of characteristics 231 (of dimension 100 in this example), where each element of the vector corresponds to a characteristic of the output layer, representing a description of movement of height level.

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.There depicts an example of inhibiting the activation potential of neurons upon activation of a neuron sharing the same receptive field, in one set of embodiments of the 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.In this example, deliberately simplified, two receptive fields 311 and 312 of a first layer 300 have been represented. Each disc in layer 300 represents a neuron.

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.Three filters F1, F2 and F3 are applied from this layer, i.e. three weight matrices are applied to each receptive field to arrive at 3 neurons in the next layer corresponding to this receptive field. Due to the weight sharing mechanism, the same three filters are applied to each receptive field.

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.
In this example:
  • The application of the filter F1 to the receptive field makes it possible to transmit the impulses coming from the receptive field 311 to the neuron 3111;
  • The application of the filter F2 to the receptive field makes it possible to transmit the impulses coming from the receptive field 311 to the neuron 3112;
  • The application of the filter F3 to the receptive field makes it possible to transmit the impulses coming from the receptive field 311 to the neuron 3113;
  • The application of the filter F1 to the receptive field makes it possible to transmit the impulses coming from the receptive field 312 to the neuron 3121;
  • The application of the filter F2 to the receptive field makes it possible to transmit the impulses coming from the receptive field 312 to the neuron 3122;
  • The application of the filter F3 to the receptive field makes it possible to transmit the impulses coming from the receptive field 312 to the neuron 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.When a neuron fires, i.e. when its activation potential exceeds a threshold and it itself emits an impulse, the neurons belonging to the same layer and sharing the same receptive field are inhibited (i.e. their activation potential is reduced). For example, a discharge of neuron 3112 causes inhibition of neurons 3111 and 3113 sharing the same receptive field 311; a discharge of neuron 3121 leads to an inhibition of neurons 3122 and 3123 sharing the same receptive field 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.
This inhibition can be of two types:
  • instant inhibition consists in subtracting, from the discharge of a neuron, a predetermined value from the activation potentials of the neurons of the same receptive field;
  • a temporal inhibition consists of reducing the activation potential of neurons in the same receptive field for a predefined period of time.

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.This temporal inhibition, in combination with the presence of pulses corresponding, in addition to the initial pulse, to one or more predefined delays within the input layer, makes it possible to prevent neurons corresponding to different characteristics from unload for the same type of movement. This increases the selectivity of the neurons to the direction. During the training of the neural network, each characteristic therefore specializes in detecting a type of movement, in particular a direction and a speed.

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.Temporal inhibition can be of different types. For example, a fixed inhibition value can be subtracted from neurons in the same receptive field throughout the inhibition period.

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.In one set of embodiments of the invention, a variable temporal inhibit value is subtracted from the neurons of the same receptive field, this value being increasing then decreasing during the period of 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).This allows the inhibition to be smoothed out over time. In particular, this avoids excessive inhibition at the start of the delay (the instantaneous inhibition being already applied).

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.There shows an example of a rule for temporal inhibition of the activation potential of neurons upon activation of a neuron sharing the same receptive field, in a set of embodiments of the 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.The graph 400 represents the evolution of a temporal inhibition as a function of time, in a set of embodiments of the 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.The horizontal axis 420 represents the time elapsed from the moment of neuron firing. This time can for example be expressed in seconds, in milliseconds, 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.The vertical axis 430 represents the inhibition value. It should be noted here that the axis is inverted, to represent the effect on the membrane potential of the neurons of the receptive field: the lower one is on the axis, the stronger the inhibition, and the greater the activation potential. receptive field of neurons will be low.

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.
In this model, the excitation of an index neuron at a moment is the sum of two terms:
  • , the value of the excitatory membrane potential of the neuron at a moment . is a positive value: the higher its absolute value, the more the neuron will be excited and will have a chance of emitting an impulse;
  • , the value of the inhibitory membrane potential of the neuron at a moment . is a negative value, the higher its absolute value, the more the neuron will be inhibited and the less likely it will be to emit an impulse.

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.We will therefore say that the inhibition value is increasing when the absolute value of is increasing. We could say, in an equivalent way, that we subtract this absolute value, or that we add a negative value.

Dans cet exemple, la valeur d’inhibition temporelle est croissante puis décroissante pendant la période d’inhibition.In this example, the time inhibit value increases then decreases during the inhibition period.

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 .More specifically, in a set of embodiments of the invention, it increases linearly during a first half of the inhibition period to reach a maximum value at a time , then decreases linearly for a second half of the inhibition period, to return to 0 at a time 2 x .

La valeur d’inhibition temporelle est donc dans cet exemple telle que :

  • si , ;
  • si , .
The temporal inhibit value is therefore in this example such that:
  • whether , ;
  • whether , .

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.In one set of embodiments, the instantaneous inhibition value and the temporal inhibition values depend on the activation potentials of the receptive field neurons at that time.

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.In other words, when a neuron fires, the more the other neurons in the receptive field have a high activation potential, the stronger the instantaneous and temporal inhibitions will be.

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.This makes it possible to generate strong inhibitions at the beginning of the learning phase and thus prevents neurons from learning similar patterns. Indeed, as the weights are random at the beginning of the learning phase, all the neurons can be solicited by any stimulus. Their average membrane potential at the time of the first pulse is high. During learning, selectivity becomes stronger. When one neuron generates an impulse, most other neurons connected to the same receptive field have a lower membrane potential value because they are not selective to that stimulus, resulting in lower inhibition.

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 : For example, instantaneous inhibition values , and the maximum temporal inhibition value can both be proportional to an activation value depending on the activation potentials of the neurons of the receptive field:

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 .
Or :
  • is the number of neurons at the input of a filter where an impulse has occurred, that is to say in the same receptive field as the neuron having discharged. It should be noted that this includes the neuron having discharged itself, and that its value is here taken before discharge, that is to say before propagation of the impulse and reset of the potentials And for this neuron;
  • represents the index of the first neuron connected to the same receptive field as the neuron having generated the impulse (in a nomenclature where all the neurons of the layer are represented by increasing indices); the neurons of the receptive field then go from the index at the index ;
  • is the value, positive, of the potential of the excitatory membrane of the neuron at a moment ;
  • is the negative value of the inhibitory membrane potential of the neuron at a moment .

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 .According to different embodiments of the invention, the maximum instantaneous and temporal inhibition values are equal. We then have, for example, . We can also have two values And different, by multiplying by two different factors And respectively. We then have , And .

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.There depicts a method of using a spiking neural network in one set of embodiments of the 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é.The method 500 includes a first step 510 of receiving pulses emitted by a camera each representing a change in light intensity at a given pixel.

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.The method 500 then comprises, the occurrence of a pulse at a camera pixel and a time (t), a second step 520 of providing a pulse neural network having at least two inputs for each camera pixel : first pulse, at a first input for the pixel, at said time (t); a second pulse, at a second input for the pixel, at a predefined delay (t+δt) after said time.

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.The method 500 then comprises a third step 530 of reduction, upon discharge of a neuron of said pulsed neural network, of the activation potential of neurons belonging to the same layer and sharing the same receptive field as said neuron, for a predefined duration.

Tous les modes de réalisation discutés aux figures 1 à 4 sont respectivement applicables à la méthode 500.All of the embodiments discussed in Figures 1 through 4 are respectively applicable to the 500 method.

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.The order presented in the is provided as an illustrative example only. In practice, many pulses can be received, discharges carried out, in variable orders.

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.There shows a method of training a pulsed neural network in one set of embodiments of the invention.

La méthode 600 permet d’entraîner un réseau de neurones à impulsion tel que le réseau de neurones 130.The 600 method is used to train a pulsed neural network such as the 130 neural network.

La méthode 600 comprend une première étape 610 d’obtention d’une base de données d’entraînement.Method 600 includes a first step 610 of obtaining a training database.

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.This training base is made up of data of the same type as in the inference phase, i.e. pulses from one or more cameras similar to camera 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é.The training base therefore comprises pulses emitted by at least one camera, each representing a change in light intensity at a given pixel.

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.
The occurrence of a pulse at a pixel of a camera and a time t results in the supply to a pulse neural network having at least two inputs for each pixel of the at least one camera:
  • a first pulse, at a first input for the pixel, at said time (t);
  • of a second pulse, at a second input for the pixel, at a predefined delay (t+δt) after said time.

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.The neural network is trained by applying a Spike Timing Dependent Plasticity (STDP) rule to the spiking neural network.

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.The STDP rule is for example described by Bichler, O., Querlioz, D., Thorpe, SJ, Bourgoin, JP, & Gamrat, C. (2012). Extraction of temporally correlated features from dynamic vision sensors with spike-timing-dependent plasticity. Neural networks , 32 , 339-348., or Masquelier, T., & Thorpe, SJ (2007). Unsupervised learning of visual features through spike timing dependent plasticity. PLoS Comput Biol , 3 (2), e3. The STDP consists in modifying the weights of the connections between the neurons according to the time of the impulses, so that the neural network learns temporal patterns. The STDP rule is particularly effective for learning temporal patterns.

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.As during the inference phase, during learning, the method 600 comprises, when a neuron is discharged, a step 630 of reducing the activation potential of the neurons belonging to the same layer and sharing the same field receptor than said neuron for a predefined period.

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.This allows, in combination with STDP, neurons to become particularly selective to one type of movement, since, when one neuron fires on a movement, the reduction in the activation potential of other neurons considerably reduces their probability of emit an impulse for the same movement.

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.The temporal nature of the inhibition also avoids the over-learning of certain types of movement having generated a lot of impulses, and therefore allows learning to effectively discriminate all types of movements.

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.All the embodiments described with reference to FIGS. 1 to 5 are respectively applicable to method 600. In particular, weight sharing can be applied during learning.

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.As explained above, the learning phase can be followed by the training of a predictor of a future prediction of an object having emitted a pulse, from the occurrence of the latter.

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.There depicts an example of updating synaptic weights when applying a spike-dependent plasticity rule for training a spiking neural network in one set of embodiments of the 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.
In one set of embodiments of the invention, when applying the peak-dependent plasticity rule to the spiking neural network, the weight of a connection between a first neuron of a first layer, and a second neuron of the next layer is:
  • increased if, when a pulse is emitted by the second neuron, a previous pulse had been emitted by the first neuron for a predefined duration before said pulse;
  • decreased, otherwise.

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.In other words, the weight of a connection between two neurons will be reinforced if an impulse from the second neuron of the next layer is frequently preceded by an impulse from the first neuron, and diminished otherwise.

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.This has the effect of making it possible to strengthen the temporal correlations between the pulse emissions between the different layers. Indeed, over the course of learning, the weights of the connections will be reinforced when nearby pulses are detected.

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.In the example of figure 7, the horizontal axis 710 represents the time, and the vertical axis 720 the variation with a connection weight between a first neuron i and a second neuron j.

Au temps 730, une impulsion est émise par le deuxième neurone j.At time 730, an impulse is emitted by the second neuron 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.The so-called LTP window (from the English “Long Term Potentiation”, in French “Potentialisation à Long Terme”) 740 corresponds to an increase in the weight of the connection: if an impulse had been previously emitted from the first neuron i for a duration (corresponding to the width of the window) before time 730, i.e. if the time of the last impulse emitted by the first neuron i, and the time 730 of the current impulse emitted by the second neuron j are such that , the weight of the connection between the first and the second neuron is reinforced: , Or is a weight gain factor.

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 .Otherwise, if , the weight of the connection is reduced, we then apply an “LTD” (from English “Long Term Depression”, in French “Dépression à Long Terme”): , Or is a weight reduction factor, generally lower than .

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.This learning rule is therefore characterized by a few parameters, in particular , And . These parameters can be defined manually, or determined automatically to minimize a cost function.

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.In one set of embodiments of the invention, these parameters are determined automatically by a genetic algorithm, to minimize the cost function. This makes it possible to quickly identify an optimal combination of parameters, while avoiding falling into a local optimum. Different cost functions can be used. For example, the parameters can be determined to minimize an average error prediction.

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.There shows an example of calculating the selectivity to the direction of neurons of the final layer of a spiking neural network, in a set of embodiments of the 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.One of the objectives of the invention is to train a neural network with impulses, so that the filters of the last layer provide information on the movement of an object on the video. In particular, each element of the output vector for each pixel of the last layer (for example, vector 231) must encode a distinct characteristic of the movement, characterized in particular by a direction. Direction selectivity represents how well each feature in the output layer represents a given direction of motion.

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.To test this property, the following experiment was conducted. A training game was generated, filming tennis matches with a camera such as the 110 camera, therefore including very strong movements of the balls. In parallel with the video capture, the 3D trajectories of the bullets were recorded, using infrared targets placed on the bullets, and specific cameras measuring the 3D position of the targets at a frequency of 200 Hz. 6 Hz has been applied to the positions. The position series allows you to directly obtain the direction and speed of a ball at any time.

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 : Vk= [XvkYvkθvkSvk].This therefore made it possible to determine a matrix Vk of positions Xvk and Yvk, speeds Svk, directions θvk, which can be compared to the output of the neural network to characterize the selectivity of the filters: 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 Vkle 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.Thus, each pulse on a filter can be associated with a movement defined by a direction: when a pulse is detected at a point of coordinates X, Y, at a time t, it is possible to identify in the matrix V k the corresponding movement, and associate the speeds and directions to the filter. Thus, a filter can be associated with a set of movement directions having led it to generate an impulse.

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.There thus represents the range of directions generating a pulse for each filter: for each filter, an average direction θ is calculated; all the directions associated with this filter are normalized around θ, and represented by a vector on the . For example, if the average of the directions for the filter is 275, and a vector associated with this filter has a direction of 277, we will have for this filter θ = 275, and for this vector a 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.There shows that the directions are very little dispersed, for each filter, around the mean direction θ. This means that the filters of the trained neural network have good direction selectivity: the pulses emitted by the same filter will have been generated by a set of movements having almost identical directions.

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 Vk 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.Directional selectivity can also be expressed by a metric. For example, as explained above, we can for a filter n define all the vectors of Vk about this filter. We will then have vectors Xfn, Yfn, θfn, Sfn, representing respectively all the X, Y positions, directions and speeds of a ball for all the pulses of the filter 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 : The selectivity in the direction DSn can then be estimated, for a filter n, as the standard deviation of the vector θfn. It is then possible to calculate a weighted average of the selectivities of the filters, by weighting the selectivity in the direction DSn of a filter n by the number of pulses Cn emitted for this filter. We then obtain a weighted average:

Dans un premier test, cette sélectivité a été calculée comme égale à 0,3 rad (17,5 degrés).In a first test, this selectivity was calculated as equal to 0.3 rad (17.5 degrees).

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.In a second test, only pulses located at a distance of less than 10 pixels from the position of a ball were used. Indeed, even if, within the framework of this test, the movements of the balls are the most important, the filters can also generate impulses for other movements (arms of the tennis players, etc). Considering only impulses very close to a bullet, the average selectivity becomes, in this example and this 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.This example demonstrates that a spiking neural network according to the invention allows excellent direction selectivity.

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.There shows an example of calculating the selectivity at the rate of filters of a spiking neural network, in a set of embodiments of the 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.Within the framework of the same experiment as that described with reference to the , it is possible to test the selectivity of the filters at speed.

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.Indeed, the knowledge of the real trajectories of bullets makes it possible to associate, with each pulse of a filter, a bullet trajectory associated with a speed.

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.The curves 910, 920, 930 represent, for three filters, a probability density distribution of the speeds of bullets having generated pulses.

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.The horizontal common axis 940 represents the ball speed, as indicated by the infrared camera. The vertical axes 912, 922, 923 represent the probability density of ball velocities having generated a pulse for each of the three filters respectively.

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.The three filters chosen for this representation have a similar direction. In addition, to complete the representation, for each neuron, a random selection of ball trajectories having generated an impulse for a direction substantially equal to that of the neuron was carried out. The distributions of the speeds of the trajectories of these random selections have been represented for each neuron, respectively by the curves 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.These representations show that, for the three filters, the distributions 911, 921 and 931 of the random selections are substantially equivalent for the three filters, and relatively homogeneous over the speed range.

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.On the contrary, the distributions 910, 920 and 930 of the trajectories having generated impulses for each of the three neurons are much “tighter”, and each centered on a different speed.

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.This means that the training of the neural network allows them to code not only directions, but also different speeds: even with an overall equivalent direction, the three neurons here have coded significantly different speeds.

Cet exemple montre la capacité de l’invention à discriminer non seulement la direction, mais également la vitesse de mouvements.This example shows the ability of the invention to discriminate not only the direction, but also the speed of movements.

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.There represents an example of calculation of the selectivity to the form of filters of a pulsed neural network, in a set of embodiments of the 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.In the context of the experiment described in Figures 8 and 9, another element of interest is the determination of the object that generated the pulses. Indeed, if, within the framework of a video of a tennis match, the majority of the impulses are logically generated by movements of the ball, other movements, such as movements of rackets, or of the arms of tennis players , can generate pulses.

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.For all the impulses generated by each filter of the final layer of the neural network, it is possible to determine a distance, in number of pixels, between the neuron for which this impulse takes place, and the position of the center of the ball. when this impulse occurs. Then, the average of the distances to the ball, for the pulses emitted by each filter, is here determined.

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.A threshold of 10 pixels was defined, to characterize the impulses generated by a movement of the ball, and the impulses emitted by other movements.

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.The graph 1000 represents the distribution of the average distances to the ball for the various filters. The horizontal axis 1011 represents the average distance, in pixels. The vertical axis 1012 represents the number of filters having said average distance. The distances are grouped by group of 5 pixels. For example, the bar 1020 indicates that 35 filters have an average distance between [0 pixels; 5 pixel [ ; bar 1021 indicates that 27 filters have an average distance in the interval [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.Bars 1020 and 1021 represent the filters associated with an average distance to the ball of less than 10 pixels, whose pulses are considered to be generated by movements of the ball. The other bars represent filters associated with an average distance to the ball greater than 10 pixels, whose pulses are considered to be generated by other objects.

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.The positions of the pulses generated by the various filters were also represented, superimposed, on an image of the video of the tennis match. This shows that some filters encode specific motion phases, such as an upward phase of the ball to the right.

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.These examples show that the filters of a neural network trained according to the invention are also shape-selective, since some filters correspond to movements of the ball, and other filters to movements of other objects.

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.There depicts an exemplary video of a tennis match, in an exemplary embodiment of the invention for predicting a receiving point of a tennis ball.

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.Image 1100 represents a frame from a video of a tennis match. The video is captured in a plane parallel to the two players, i.e. the trajectories of the ball are substantially parallel to the camera. Trail 1110 represents bullet trajectories captured by the camera. The planes 1111 and 1112 represent the planes in which the two players respectively recover the balls.

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.The objective of this experiment is to predict, from an impulse on the last layer of the neural network, the position at which the ball will be received. Indeed, each pulse is linked to a filter and a given neuron. The neuron corresponds to the location of a pixel in the video, and the filter to a motion characteristic. Knowing the movement of the ball at a given location, it is possible to predict the location of the reception of the ball.

Pour cela, une régression polynomiale est entraînée. Par exemple, la régression suivante peut être utilisée : For this, a polynomial regression is trained. For example, the following regression can be used:

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.
In which :
  • represents the vertical position between the neuron having generated the impulse and the predicted vertical position of the point of reception of the ball, that is to say the vertical position on one of the axes 1111 (in the case where the movement goes from right to left) and 1112 (in the case where the movement is from left to right). This position makes it possible to know the final position of reception of the ball, by being added to the vertical position of the neuron for which the impulse was generated;
  • And respectively represent the vertical and horizontal positions of the movement for the filter having generated the pulse.

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.At the training step, the final receiving position is known. A training game can therefore be constituted for each filter by associating, for each pulse of the filter, a difference observed between the vertical position of the impulse and the vertical position of reception of the ball. The settings , , , , And are thus determined for each filter by linear regression.

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.In the inference phase, the values , , , , And associated with the filter make it possible to directly determine the estimated difference in vertical position , and therefore the position of the ball.

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.There represents an example of evolution of an average prediction error of the arrival position of a tennis ball, in a set of embodiments of the invention as a function of the layer at which the impulse took place , in a set of embodiments of the 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.The graph 1200 represents the prediction error on the reception position of the ball, in number of pixels, within the framework of the experiment described in , depending on the layer where the impulse took place.

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.
The horizontal axis lists the different possible layers:
  • entrance ;
  • without learning (regardless of the layer);
  • in the first layer;
  • in the second layer;
  • in the third layer.

L’axe vertical représente le nombre de pixels d’erreur moyenne, pour chacune de ces couches.The vertical axis represents the number of average error pixels, for each of these layers.

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 1ecouche qu’en entrée, puis diminue fortement pour les 2eet 3ecouches.This graph shows that, for a trained neural network, the error decreases as a function of the depth of the layers: it is already lower in the 1 st layer than at the input, then decreases sharply for the 2 nd and 3 rd layers.

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).This shows that, as the layers progress, the neurons do indeed specialize in coding an increasingly specific movement, which can be associated with a determined movement of an object (in this case, the ball).

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.There represents an example of evolution of an average prediction error of the arrival position of a tennis ball, in a set of embodiments of the invention as a function of the layer at which the impulse took place , and a percentage of presentation of the trajectory, in a set of embodiments of the 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.The graph 1300 presents, for each of the conditions mentioned in , the evolution of the prediction accuracy as a function of the percentage of presentation of the trajectory of the ball.

L’axe vertical 1310 représente l’erreur moyenne, en pixels.The vertical axis 1310 represents the average error, in 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.The horizontal axis 1320 represents the percentage of presentation of the trajectory, that is to say the percentage of trajectory already achieved by the ball on the occurrence of an impulse. For example, a percentage of 50% means that the impulse considered occurs when the ball has already completed half of its trajectory.

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.
Curves 1330, 1331, 1332, 1333 and 1334 represent respectively:
  • curve 1330: evolution of the mean error, for the pulses emitted at the input;
  • curve 1331: evolution of the average error, for the pulses emitted by a network before learning (regardless of the layer);
  • curve 1332: evolution of the mean error, for the pulses emitted by the first layer, after learning;
  • curve 1333: evolution of the average error, for the pulses emitted by the first layer, after learning;
  • curve 1334: evolution of the mean error, for the pulses emitted by the first layer, after learning.

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.This graph shows that the precision becomes more important with the percentage of presentation. This result is logical since the closer the impulse is to the reception zone, the more the movement will be predicted in the short term. Interestingly, this is not found on entry 1330, i.e. the information of the input pulse alone does not predict the arrival location of the ball.

Au contraire, les 2eet 3ecouches, 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 3ecouche.On the contrary, the 2 nd and 3 rd layers, represented by the curves 1333 and 1334 allow, after training, an effective prediction, even descending to a precision of 2 or 3 pixels at the end of the trajectory for the 3 rd layer.

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.This example shows that the neural network according to the invention allows efficient prediction of movements, especially in its last layer.

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.
The examples above demonstrate the ability of the invention to train and use a neural network to achieve strong sensitivity to movement characteristics. However, they are only given by way of example and in no way limit the scope of the invention, defined in the claims below.

Claims (10)

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.
System (100) comprising:
  • a camera (110) configured to emit pulses each representing a change in light intensity at a given pixel;
  • at least one calculation unit (120) configured for:
    • obtaining (121) pulses from said camera;
    • upon occurrence of a pulse at a camera pixel and a time (t), providing (122) to a pulse neural network (130) having at least two inputs for each camera pixel:
      • a first pulse, at a first input for the pixel, at said time (t);
      • a second pulse, at a second input for the pixel, at a predefined delay (t+δt) after said time;
    • upon discharge of a neuron from said pulsed neural network, reducing (123) the activation potential of neurons belonging to the same layer and sharing the same receptive field as said neuron, for a predefined duration.
Système selon la revendication 1, dans lequel le réseau de neurones à impulsions est formé de neurones LIF.A system according to claim 1, wherein the spiking neural network is formed of LIF neurons. 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.System according to one of Claims 1 to 2, in which the reduction of the activation potential of the neurons belonging to the same layer and sharing the same receptive field as the said neuron consists in subtracting from their membrane potential an instantaneous inhibition value at the said time, then an increasing and then decreasing temporal inhibition value during said predefined duration. 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.A system according to claim 3, wherein the instantaneous inhibition value and the temporal inhibition values depend on the activation potentials of the receptive field neurons at said time. 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.System according to one of Claims 1 to 4, in which the at least one calculation unit is further configured to predict (124), from a pulse in the pulse neural network, a future position of an object whose movement is at the origin of the impulses. 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.System according to Claim 5, in which the said prediction consists of adding to the position of the pulse at least one offset value characteristic of a filter having generated the pulse. 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.
Method (500) comprising:
  • receiving (510) pulses emitted by a camera each representing a change in light intensity at a given pixel;
  • upon the occurrence of a pulse at a camera pixel and a time (t), providing (520) to a pulse neural network (130) having at least two inputs for each camera pixel:
    • a first pulse, at a first input for the pixel, at said time (t);
    • a second pulse, at a second input for the pixel, at a predefined delay (t+δt) after said time;
  • upon discharge of a neuron from said pulsed neural network, reducing (530) the activation potential of neurons belonging to the same layer and sharing the same receptive field as said neuron, for a predefined duration.
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.
A method (600) of training a spiking neural network (130), comprising:
  • obtaining (610) a training database comprising:
    • pulses emitted by at least one camera each representing a change in light intensity at a given pixel;
    • the occurrence of a pulse at a pixel of the camera and a time (t) causing the provision to a pulsed neural network (130) having at least two inputs for each pixel of the at least one camera:
      • a first pulse, at a first input for the pixel, at said time (t);
      • a second pulse, at a second input for the pixel, at a predefined delay (t+δt) after said time;
  • applying (620) a peak-dependent plasticity rule to the spiking neural network;
  • upon discharge of a neuron from said pulsing neural network during said application (620), reducing (630) the activation potential of neurons belonging to the same layer and sharing the same receptive field as said neuron, for a predefined duration.
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.
A method according to claim 8, wherein, upon applying the peak-dependent plasticity rule to the spiking neural network, the weight of a connection between a first neuron of a first layer, and a second neuron of the next layer is:
  • increased if, when a pulse is emitted by the second neuron, a previous pulse had been emitted by the first neuron for a predefined duration before said pulse;
  • decreased, otherwise.
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.A computer program comprising program code instructions recorded on a computer-readable medium, said program code instructions being configured, when said program runs on a computer to execute a method according to one of claims 7 to 9.
FR2012725A 2020-12-04 2020-12-04 Training and use of an impulse neural network for the characterization of movements Withdrawn FR3117239A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR2012725A FR3117239A1 (en) 2020-12-04 2020-12-04 Training and use of an impulse neural network for the characterization of movements
PCT/EP2021/083929 WO2022117712A1 (en) 2020-12-04 2021-12-02 Method for training a spiking neural network for characterisation of movements and use thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR2012725A FR3117239A1 (en) 2020-12-04 2020-12-04 Training and use of an impulse neural network for the characterization of movements
FR2012725 2020-12-04

Publications (1)

Publication Number Publication Date
FR3117239A1 true FR3117239A1 (en) 2022-06-10

Family

ID=74758972

Family Applications (1)

Application Number Title Priority Date Filing Date
FR2012725A Withdrawn FR3117239A1 (en) 2020-12-04 2020-12-04 Training and use of an impulse neural network for the characterization of movements

Country Status (2)

Country Link
FR (1) FR3117239A1 (en)
WO (1) WO2022117712A1 (en)

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BICHLER, O.QUERLIOZ, D.THORPE, S. J.BOURGOIN, J. P.GAMRAT, C.: "Extraction of temporally correlated features from dynamic vision sensors with spike-timing-dependent plasticity", NEURAL NETWORKS, vol. 32, 2012, pages 339 - 348, XP055064709, DOI: 10.1016/j.neunet.2012.02.022
DEBAT GUILLAUME ET AL: "Event-Based Trajectory Prediction Using Spiking Neural Networks", FRONTIERS IN COMPUTATIONAL NEUROSCIENCE, vol. 15, 24 May 2021 (2021-05-24), XP055831403, DOI: 10.3389/fncom.2021.658764 *
GEHRIG MATHIAS ET AL: "Event-Based Angular Velocity Regression with Spiking Networks", 2020 IEEE INTERNATIONAL CONFERENCE ON ROBOTICS AND AUTOMATION (ICRA), IEEE, 31 May 2020 (2020-05-31), pages 4195 - 4202, XP033826465, DOI: 10.1109/ICRA40945.2020.9197133 *
MASQUELIER, T.THORPE, S. J.: "Unsupervised learning of visual features through spike timing dépendent plasticity", PLOS COMPUT BIOL, vol. 3, no. 2, 2007, pages e3

Also Published As

Publication number Publication date
WO2022117712A1 (en) 2022-06-09

Similar Documents

Publication Publication Date Title
CA2859900C (en) Method of estimating optical flow on the basis of an asynchronous light sensor
Guo et al. Low cost and latency event camera background activity denoising
EP3138079A1 (en) Method of tracking shape in a scene observed by an asynchronous light sensor
FR3017481A1 (en) METHOD FOR DETECTING AND TRACKING TARGETS
FR3091358A1 (en) Device for generating a simulated sea clutter data set, method and computer program therefor
EP3271869B1 (en) Method for processing an asynchronous signal
FR3058548A1 (en) DRONE COMPRISING A DEVICE FOR DETERMINING A REPRESENTATION OF A TARGET VIA A NEURON NETWORK, DETERMINING METHOD AND COMPUTER PROGRAM THEREFOR
EP2257924B1 (en) Method for generating a density image of an observation zone
EP1792278B1 (en) Method for detecting and tracking punctual targets, in an optoelectronic surveillance system
WO2015110762A1 (en) Method for determining the trajectory of a point of a moving object
FR3095042A1 (en) PROCESS FOR DEFINING A PATH
FR2996668A1 (en) METHOD FOR ACCELERATING MONTE CARLO DELIVERIES
WO2021191148A1 (en) Method for generating a sea-clutter stream, associated programmable device and computer program
WO2019129568A1 (en) Processing method for multi-target detection, characterisation and tracking, and associated device
EP4179469A1 (en) Electronic device and method for processing data based on reversible generative networks, associated electronic detection system and associated computer program
FR3117239A1 (en) Training and use of an impulse neural network for the characterization of movements
FR2939207A1 (en) METHOD OF MULTIDIMENSIONAL TIME CINEMA FILTERING OF RADAR PLOTS, ANTENNA TOWER ANTENNA TOWER
EP3718082B1 (en) Method for detecting and tracking targets
EP3324361B1 (en) Method for detecting and tracking targets
FR3114718A1 (en) Device for compensating the movement of an event sensor and associated observation system and method
EP4150574B1 (en) Method for processing images
WO2008149047A2 (en) Device and method for processing images to determine a signature of a film
EP4235570A1 (en) Method, device and system for real time and multi-camera monitoring of a target object
FR3140958A1 (en) Method for detecting an anomaly in an observed time series of values of a physical quantity representative of the performance of a system.
CA3035520A1 (en) Method for pattern recognition in a plurality of signals

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20220610

ST Notification of lapse

Effective date: 20230808