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 PDFInfo
- 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
Links
- 238000013528 artificial neural network Methods 0.000 title claims abstract description 89
- 230000033001 locomotion Effects 0.000 title claims description 64
- 238000012549 training Methods 0.000 title claims description 20
- 238000012512 characterization method Methods 0.000 title description 2
- 210000002569 neuron Anatomy 0.000 claims abstract description 178
- 230000004913 activation Effects 0.000 claims abstract description 43
- 238000004364 calculation method Methods 0.000 claims abstract description 27
- 230000008859 change Effects 0.000 claims abstract description 12
- 230000005764 inhibitory process Effects 0.000 claims description 43
- 238000012421 spiking Methods 0.000 claims description 22
- 230000002123 temporal effect Effects 0.000 claims description 22
- 239000012528 membrane Substances 0.000 claims description 20
- 238000000034 method Methods 0.000 claims description 20
- 230000001419 dependent effect Effects 0.000 claims description 10
- 230000003247 decreasing effect Effects 0.000 claims description 6
- 230000009467 reduction Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 2
- 230000000875 corresponding effect Effects 0.000 description 14
- 230000007423 decrease Effects 0.000 description 11
- 239000013598 vector Substances 0.000 description 11
- 235000021183 entrée Nutrition 0.000 description 10
- 230000006870 function Effects 0.000 description 10
- 230000001934 delay Effects 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000002474 experimental method Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 5
- 230000002401 inhibitory effect Effects 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- KRQUFUKTQHISJB-YYADALCUSA-N 2-[(E)-N-[2-(4-chlorophenoxy)propoxy]-C-propylcarbonimidoyl]-3-hydroxy-5-(thian-3-yl)cyclohex-2-en-1-one Chemical compound CCC\C(=N/OCC(C)OC1=CC=C(Cl)C=C1)C1=C(O)CC(CC1=O)C1CCCSC1 KRQUFUKTQHISJB-YYADALCUSA-N 0.000 description 2
- 241000897276 Termes Species 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000012550 audit Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002964 excitative effect Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 210000005215 presynaptic neuron Anatomy 0.000 description 2
- 230000000946 synaptic effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000003292 diminished effect Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 230000005284 excitation Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 230000020796 long term synaptic depression Effects 0.000 description 1
- 230000027928 long-term synaptic potentiation Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 235000012830 plain croissants Nutrition 0.000 description 1
- 230000001242 postsynaptic effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000284 resting effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000004584 weight gain Effects 0.000 description 1
- 235000019786 weight gain Nutrition 0.000 description 1
- 239000013585 weight reducing agent Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/254—Analysis of motion involving subtraction of images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30196—Human being; Person
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30232—Surveillance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30241—Trajectory
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
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édentThe 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:
La
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
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.
- 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.
- 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.
- 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
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 :
Dans laquelle :
Le neurone décharge lorsque son potentiel d’activation dépasse une valeur seuil
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
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
- 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.
- 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’.
- “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
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
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.
- 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
- une inhibition temporelle
- instant inhibition
- a temporal inhibition
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
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
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
On dira donc que la valeur d’inhibition est croissante lorsque la valeur absolue de
Dans cet exemple, la valeur d’inhibition temporelle
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
La valeur d’inhibition temporelle
- si
- si
- 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
Où :
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,
La
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
La
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.
- 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
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.
- 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
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
Dans le cas contraire, si
Cette règle d’apprentissage est donc caractérisée par quelques paramètres, notamment
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
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
La
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 :
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
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
Dans le cadre de la même expérience que celle décrite en référence à la
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
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
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 :
Dans laquelle :
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
En phase d’inférence, les valeurs
La
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
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.
- 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
Le graphe 1300 présente, pour chacune des conditions évoquées en
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.
- 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)
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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) |
-
2020
- 2020-12-04 FR FR2012725A patent/FR3117239A1/en not_active Withdrawn
-
2021
- 2021-12-02 WO PCT/EP2021/083929 patent/WO2022117712A1/en active Application Filing
Non-Patent Citations (4)
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 |