PROCEDE ET SYSTEME DE DETECTION D'EVENEMENTS DE NATURE METHOD AND SYSTEM FOR DETECTING EVENTS OF NATURE
CONNUE KNOWN
L'invention concerne un procédé et un système pour la détection d'événements. Elle est utilisée pour la détection d'événements de nature connue dans des signaux, par exemple des flux de données, temps réels ou enregistrés. Elle s'applique, par exemple, pour la détection d'activité de nature répertoriée d'une personne, des actions de la vie courante d'une personne d'intérêt, la détection des émotions de nature répertoriée d'une personne d'intérêt, la présence d'un objet de nature connue dans une scène, un événement sonore de nature connue, par analyse d'un signal typiquement une vidéo. Elle s'applique aussi pour des événements de type sismographie/géologique de nature connue. The invention relates to a method and a system for the detection of events. It is used for the detection of events of a known nature in signals, for example data streams, real time or recorded. It applies, for example, to the detection of activity of a listed nature of a person, actions of the everyday life of a person of interest, the detection of emotions of a listed nature of a person of interest , the presence of an object of known nature in a scene, a sound event of known nature, by analysis of a signal typically a video. It also applies to events of the seismography / geological type of known nature.
Le domaine de la détection et de la reconnaissance d'événements tels que l'activité humaine est devenu un axe important de recherche. La possibilité de détecter des activités humaines peut conduire au développement d'applications dans différents domaines, par exemple une protection médicale par vidéo, etc. The field of detection and recognition of events such as human activity has become an important focus of research. The ability to detect human activities can lead to the development of applications in different areas, such as video medical protection, etc.
Les systèmes connus de l'art antérieur mettent en jeu la détection de micro-événements qui sont caractéristiques d'un ou plusieurs événements différents, et l'accumulation pondérée dans le temps ou dans l'espace de ces micro-événements fait ressortir préférentiellement un événement, puis un autre et ainsi de suite. La détection d'un micro-événement génère des votes pondérés pour chacun des événements, à chaque localisation temporelle/spatiale. Dans les systèmes existants, le vote d'un micro- événement suit une distribution quelconque présentant un poids différent dans le domaine temps/espace. Cela nécessite donc une quantité importante de mémoire et d'opérations. La figure 1 est un schéma de principe de procédé de détection selon l'art antérieur. Pour chaque observation O, on associe à un instant donné t0, 10, une valeur de vote ou de confiance Vi0, 1 1 , qui va servir pour déterminer l'événement associé, 13 en t0. L'approche
générique de détection connue de l'art antérieur nécessite une mémoire de taille assez importante. Supposant que chacune des valeurs de la fonction représentative du score v soit stockée sur un double, c'est-à-dire sur 8 octets alors, selon le procédé générique de l'art antérieur, la quantité nécessaire pour stocker v est le produit de huit par le nombre de types d'événements intéressants (Ne), le nombre de micro-événements détectables (M), le domaine temporel des votes, c'est-à-dire Ne*M*(2d+1 ), où d est la demi-taille du domaine temporel sur lequel on regarde l'observation. De plus, la propagation de l'information nécessite Ne*(2d+1 ) opérations d'addition et de lecture de « doubles », la lecture d'un tableau v[Ne][mn][d0bs] où d0bs correspond à un instant d'observation et d'addition à une table d'événement S[e][tn+ dobs] par micro-événement. Par exemple, si Ne= 30, (il y a 30 événements différents possibles), M=1000 micro-événements, d=100, (équivalent de 5 secondes à 25 images par seconde), la mémoire nécessaire au détecteur générique est de 60 Mo et le nombre d'opérations de lecture égal à 15 000. Dans le cas de méthodes qui utilisent plus de micro- événements, la mémoire de stockage doit pouvoir stocker l'équivalent de 1 Go de votes, ce qui est en général peu compatible avec un microcontrôleur standard. L'une des approches connues pour diminuer la mémoire et les calculs requis est de compresser le tableau v, v[Ne][M][d], par exemple, par la méthode décrite dans le document intitulé « best piecewise constant approximation of a function of single variable » de Hiroshi Konno et al, Opérations Research Letters, volume 7, number 4, august 1988. Cette approche conduit à une modification aveugle des votes. En effet, les votes sont des intermédiaires entre les micro-événements et la segmentation. Modifier les votes sans tenir compte de l'effet sur la segmentation revient à faire des modifications à l'aveugle et peut conduire à une augmentation importante de l'erreur même pour de faibles modifications. The systems known from the prior art involve the detection of micro-events which are characteristic of one or more different events, and the weighted accumulation in time or in space of these micro-events brings out preferentially a event, then another and so on. The detection of a micro-event generates weighted votes for each event at each time / space location. In existing systems, voting for a micro event follows any distribution with a different weight in the time / space domain. This therefore requires a significant amount of memory and operations. Figure 1 is a block diagram of detection method according to the prior art. For each observation O, we associate at a given instant t 0 , 10, a vote or confidence value V i0 , 1 1, which will be used to determine the associated event, 13 at t 0 . The approach generic detection known from the prior art requires a memory of significant size. Assuming that each of the values of the function representative of the score v is stored on a double, that is to say on 8 bytes, then, according to the generic method of the prior art, the quantity necessary to store v is the product of eight by the number of types of interesting events (Ne), the number of detectable micro-events (M), the time domain of the votes, that is Ne * M * (2d + 1), where d is the half-size of the time domain on which we look at the observation. In addition, the propagation of information requires Ne * (2d + 1) addition and read operations of "doubles", reading a table v [Ne] [m n ] [d 0 bs] where d 0 bs corresponds to a moment of observation and addition to an event table S [e] [t n + dobs] by micro-event. For example, if Ne = 30, (there are 30 different events possible), M = 1000 micro-events, d = 100, (equivalent of 5 seconds at 25 frames per second), the memory required for the generic detector is 60 MB and the number of read operations equal to 15 000. In the case of methods that use more micro-events, the storage memory must be able to store the equivalent of 1 GB of votes, which is generally not very compatible with a standard microcontroller. One of the known approaches to reduce the memory and the computations required is to compress the table v, v [Ne] [M] [d], for example, by the method described in the document entitled "best piecewise constant approximation of a function of single variable "by Hiroshi Konno et al, Operations Research Letters, Volume 7, Number 4, August 1988. This approach leads to a blind change in votes. Indeed, the votes are intermediaries between micro-events and segmentation. Changing the votes without regard to the effect on the segmentation amounts to making changes to the blind and can lead to a significant increase in error even for small changes.
Le document intitulé « A Hough Transform-Based Voting Framework for Action Récognition » de Angela Yao et al, Conférence Computer vision and Pattern Récognition, June 13-18, 2010, IEEE, pages
2061 -2068 décrit une méthode pour classifier des actions ou observations contenues dans une séquence vidéo. The document entitled "A Hough Transform-Based Voting Framework for Action Recognition" by Angela Yao et al, Computer Vision and Pattern Recognition Conference, June 13-18, 2010, IEEE, pages 2061 -2068 describes a method for classifying actions or observations contained in a video sequence.
Le document intitulé « Simultaneous segmentation and classification for human actions in video streams using deeply optimized Hough transform » de Adrien Chan-Hong-Tong publié en 2014 décrit une méthode de détection d'actions prenant en compte la localisation temporelle des actions. Adrien Chan-Hong-Tong's "Simultaneous segmentation and classification for human actions in video streams using thee optimized optimized" describes a method for detecting actions that takes into account the temporal location of actions.
Les documents US 20130128045 et US 5430810 décrivent des méthodes de détection de ligne dans des images et portent sur la gestion optimisée des résultats intermédiaires. US 20130128045 and US 5430810 disclose line detection methods in images and relate to optimized management of intermediate results.
Les méthodes décrites dans l'art antérieur connues du demandeur requièrent une mémoire assez importante pour traiter les données. The methods described in the prior art known to the applicant require a large enough memory to process the data.
Un des objectifs de la présente invention est d'offrir un procédé et un système permettant de réduire la taille mémoire nécessaire au stockage de l'ensemble des votes, et de réduire le nombre d'opérations de traitement sans porter atteinte au niveau de performance du détecteur (c'est-à-dire en restant compatible avec les apprentissages réputés efficaces de la littérature). One of the objectives of the present invention is to provide a method and a system for reducing the memory size necessary for the storage of all the votes, and to reduce the number of processing operations without impairing the performance level of the system. detector (that is to say, remaining compatible with learning deemed effective literature).
Dans la suite de la description, on définit le terme « événement » comme un motif particulier contenu dans un signal, et le terme « micro- événement » comme une fraction de l'événement, plusieurs micro- événements constituant l'événement. Un micro-événement dépend de la taille de l'événement. Le procédé selon l'invention va rechercher dans un signal la présence un micro-événement. On associe au mot « vote » une confiance élémentaire qu'un micro-événement soit associé à un événement localisé et on associe au mot « score » d'un événement une valeur de confiance ou de probabilité que l'événement corresponde à l'observation effectuée sur un signal. Le score de l'événement E est la somme de tous les votes des micro-événements en faveur de cet événement E. On définira sous l'expression « domaine de vote » ou « étendue de vote » une plage dans laquelle un micro-événement ou un événement est possible.
L'idée de la présente invention est notamment d'améliorer les systèmes de détection d'événements en considérant des intervalles de temps pour lesquels on attribue une valeur de score constante. In the rest of the description, the term "event" is defined as a particular pattern contained in a signal, and the term "micro-event" as a fraction of the event, with several micro-events constituting the event. A micro-event depends on the size of the event. The method according to the invention will seek in a signal the presence of a micro-event. The word "vote" is associated with an elementary belief that a micro-event is associated with a localized event, and we associate with the word "score" an event a value of confidence or probability that the event corresponds to the observation. performed on a signal. The score of the event E is the sum of all the votes of the micro-events in favor of this event E. We will define under the expression "voting domain" or "voting range" a range in which a micro-event or an event is possible. The idea of the present invention is in particular to improve the event detection systems by considering time intervals for which a constant score value is assigned.
L'invention concerne un procédé pour détecter un ou plusieurs événements associés à un signal reçu sur un capteur de détection relié à un processeur, le procédé comportant au moins les étapes suivantes : The invention relates to a method for detecting one or more events associated with a signal received on a detection sensor connected to a processor, the method comprising at least the following steps:
• Etant donné des événements de nature connue
un domaine de votes D composé de I sous-domaines Di =[d,, d,+i[ avec i=1 ..I et un dictionnaire de micro-événements
• Given events of known nature a voting domain D composed of I subdomains Di = [d ,, d, + i [with i = 1 ..I and a dictionary of micro-events
• Initialiser à une valeur identique un tableau S contenant des valeurs de scores S[e][p] correspondant à un événement « e » localisé en p, où p est un indice désignant une position temporelle ou spatiale avec pe D, • Initialize to an identical value an array S containing score values S [e] [p] corresponding to an event "e" located in p, where p is an index designating a temporal or spatial position with pe D,
• Détecter un ou plusieurs micro-événements mn (n=1 ..N) localisés en tn (n=1 ..N) correspondant à une quantification d'une observation On du signal, Detecting one or more micro-events m n (n = 1 ..N) located in t n (n = 1 ..N) corresponding to a quantization of an observation O n of the signal,
• Pour chaque micro-événement mn, localisé en tn, pour chaque type d'événement « e » pour chaque sous-domaine D,, mettre à jour le tableau S[e][tn+p] en ajoutant une valeur constante pour toutes les localisations p avec pe [d,, di+i[, • For each micro event m n , located in t n , for each event type "e" for each subdomain D, update the array S [e] [t n + p] by adding a value constant for all locations p with pe [d ,, d i + i [,
• Déterminer un ensemble d'événements probable associés à une observation du signal à partir du tableau S, et détecter au sein du signal l'événement le plus probable associé à une observation. • Determine a set of probable events associated with a signal observation from Table S, and detect within the signal the most likely event associated with an observation.
Les localisations ti,..tN sont, par exemple, des instants temporels.The locations ti, .. t N are, for example, time instants.
Selon une variante de réalisation, on choisit les valeurs d'instants de détection des micro-événements comme des multiples d'une valeur « incrément » donnée. According to an alternative embodiment, the values of micro-event detection times are chosen as multiples of a given "increment" value.
Selon une autre variante de réalisation, le signal est traité en continu. According to another embodiment, the signal is continuously processed.
L'invention concerne aussi un système de détection d'événements associés à un signal comportant au moins les éléments suivants :
• Un capteur adapté à détecter un ou plusieurs micro-événements mn dans le signal, à des instants donnés ti ,..tN, correspondant à une observation Oi, The invention also relates to an event detection system associated with a signal comprising at least the following elements: A sensor adapted to detect one or more micro-events m n in the signal, at given instants ti, .t N , corresponding to an observation Oi,
• Une mémoire de stockage des résultats, • A storage memory of the results,
« Un processeur adapté à exécuter les étapes du procédé selon l'invention. "A processor adapted to perform the steps of the method according to the invention.
Le système peut comporter une mémoire tampon pour stocker le signal arrivant en continu. The system may include a buffer for storing the continuously arriving signal.
D'autres caractéristiques et avantages de la présente invention apparaîtront mieux à la lecture de la description qui suit d'exemples de réalisation donnés à titre illustratif et nullement limitatif, annexée des figures qui représentent : Other features and advantages of the present invention will appear better on reading the following description of exemplary embodiments given by way of illustration and in no way limiting, appended to the figures which represent:
• La figure 1 , un schéma du procédé selon l'art antérieur, FIG. 1, a diagram of the process according to the prior art,
• La figure 2, le principe mis en œuvre par le procédé selon l'invention, « La figure 3, un exemple d'architecture de détecteur selon l'invention, FIG. 2, the principle implemented by the method according to the invention, FIG. 3, an exemplary detector architecture according to the invention,
• La figure 4, une illustration d'une première variante du procédé, etFIG. 4, an illustration of a first variant of the process, and
• La figure 5, un exemple de construction de sous-domaines temporels. • Figure 5, an example of construction of temporal subdomains.
L'exemple détaillé qui va suivre est donné à titre illustratif pour la détection d'une action d'une personne à partir de données contenues dans un flux vidéo de taille donnée, une image par exemple, arrivant en continu sur un capteur de détection par exemple. L'action d'une personne couvre tout type d'événement dont la nature est répertoriée dans une base de données lors de la conception du système. La description qui va suivre peut être mise en œuvre, sans sortir du cadre de l'invention et avec éventuellement quelques adaptations, à tout type d'événements répertoriés lors d'une phase préalable d'apprentissage, par exemple. De manière plus générique, le procédé s'applique à un signal dans lequel on souhaite détecter des motifs prédéfinis. The following detailed example is given as an illustration for the detection of an action of a person from data contained in a video stream of a given size, an image for example, arriving continuously on a detection sensor by example. A person's action covers any type of event the nature of which is listed in a database when designing the system. The following description may be implemented, without departing from the scope of the invention and possibly with some adaptations, to any type of events listed during a prior learning phase, for example. More generically, the method applies to a signal in which it is desired to detect predefined patterns.
Chaque vidéo est vue comme une succession d'images/d'instants. A chaque instant correspond une image et réciproquement. Le procédé selon l'invention fait appel à un apprentissage statistique. Durant cet
apprentissage, chaque image de chaque vidéo est fournie avec une annotation indiquant quel est l'événement associé à l'image. Cette annotation est donnée, par exemple, par un expert qui peut utiliser la totalité des informations contenues dans la vidéo. L'apprentissage consiste notamment à paramétrer le détecteur de façon à ce qu'il produise de manière cohérente des sorties souvent équivalentes aux données préétablies. Lors de la conception du système, on va spécifier un ou plusieurs types ou une ou plusieurs catégories d'événements, et la mise en œuvre du procédé va conduire à détecter la présence d'un événement, par recherche des occurrences de ces événements dans le signal capté. Le signal présente des analogies avec les types d'événements, par exemple pour un type déclaré d'événement « voiture », le signal image peut contenir une partie de la voiture déformée. Each video is seen as a succession of images / moments. At each moment corresponds an image and vice versa. The method according to the invention makes use of statistical learning. During this learning, each image of each video is provided with an annotation indicating what is the event associated with the image. This annotation is given, for example, by an expert who can use all the information contained in the video. The learning consists in parameterizing the detector in such a way that it produces coherently outputs that are often equivalent to the pre-established data. During the design of the system, one or more types or one or more categories of events will be specified, and the implementation of the method will lead to detecting the presence of an event, by searching for the occurrences of these events in the event. signal picked up. The signal has analogies with the event types, for example for a declared type of "car" event, the image signal may contain a portion of the car deformed.
Le procédé et le système pour sa mise en œuvre vont chercher à détecter à chaque image de la vidéo quel ou quels événements semblent le plus en adéquation avec une observation. The method and system for its implementation will seek to detect at each frame of the video what events or events seem most in line with an observation.
La figure 2 représente un exemple d'architecture d'un système permettant la mise en œuvre des étapes du procédé selon l'invention. Le système comporte un processeur 20, une mémoire 21 adaptée à stocker à la fois le logiciel et les valeurs de vote obtenues par l'exécution du procédé et qui seront lues pour déterminer l'événement probable. Cette mémoire peut aussi contenir des données définies lors de la période d'apprentissage. Le système comporte aussi un capteur 22 de détection du signal (par exemple un flux de données) ou de la vidéo relié au processeur 20, une sortie 24 reliée par exemple à un système d'affichage 25 représentant l'événement retenu et associé à une observation. Le système peut aussi comporter une mémoire ou « Buffer » 26 pour stocker le flux à analyser lorsque l'on analyse en continu, sans interruption, le signal. FIG. 2 represents an exemplary architecture of a system for implementing the steps of the method according to the invention. The system comprises a processor 20, a memory 21 adapted to store both the software and the voting values obtained by the execution of the method and which will be read to determine the probable event. This memory can also contain data defined during the learning period. The system also comprises a signal detection sensor 22 (for example a data stream) or video connected to the processor 20, an output 24 connected for example to a display system 25 representing the event selected and associated with a signal. observation. The system may also include a memory or "buffer" 26 for storing the stream to be analyzed when continuously analyzing the signal without interruption.
Lors de la phase d'apprentissage, on aura fixé un dictionnaire de micro-évènements possibles {ΓΠΪ}Ϊ=Ι ..Μ de taille M et un nombre Ne de type (nature) d'événements possibles {Ee}e= . Ne.
Selon un premier mode de réalisation illustré à la figure 3, le procédé et son système vont mettre à jour le score pour chaque événement. Pour cela, le procédé extrait un ensemble de micro-événements localisés dans la vidéo. Chaque micro-événement augmente d'une certaine quantité le score de chaque événement (c'est-à-dire « vote » pour chaque événement) dans un voisinage temporel de son image d'extraction. Une fois que tous les micro-événements voisins d'un instant ont augmenté les scores des événements possibles de cet instant, un ensemble d'événements pertinents est sélectionné pour caractériser l'observation présente et passée. Par exemple, les événements dont le score dépasse une valeur seuil sont retenus, ou bien les Q événements ayant les Q meilleurs scores (singulièrement le meilleur si Q=1 ). Le type ou catégorie d'événements est spécifié lors de la conception du système. On détermine un ensemble de Types d'événements. Le signal analysé présente localement des analogies avec les types d'événements, par exemple, pour un type déclaré d'événement « voiture », le signal image pourra contenir par exemple une moitié de la voiture déformée, qui sera associé au type d'événement « voiture ». During the learning phase, we will have set a dictionary of possible micro-events {ΓΠ Ϊ } Ϊ = Ι ..Μ of size M and a number N e of type (nature) of possible events {E e } e =. Born. According to a first embodiment illustrated in FIG. 3, the method and its system will update the score for each event. For this, the method extracts a set of micro-events located in the video. Each micro-event increases by a certain amount the score of each event (i.e., "vote" for each event) in a temporal neighborhood of its extraction image. Once all nearby micro-events of a moment have increased the scores of the possible events of that moment, a set of relevant events is selected to characterize the present and past observation. For example, events whose score exceeds a threshold value are retained, or Q events with Q highest scores (singularly the best if Q = 1). The type or category of events is specified during system design. A set of Event Types is determined. The analyzed signal locally presents analogies with the types of events, for example, for a declared type of "car" event, the image signal may contain, for example, one half of the deformed car, which will be associated with the type of event " car ".
Pour simplifier la notation, on décrit le cas de sous-domaines, une dimension, étant entendu que, la méthode explicitée s'étend directement au cas de sous-domaines multidimensionnels tels que des zones deux dimensions dans une image, où les bornes du sous-domaine sont alors un multiple d'un incrément potentiellement défini pour chaque dimension. To simplify the notation, we describe the case of subdomains, a dimension, given that the explicit method extends directly to the case of multidimensional subdomains such as two-dimensional zones in an image, where the boundaries of the subdomain -domain are then a multiple of a potentially defined increment for each dimension.
Les données et paramètres utilisés pour la mise en œuvre du procédé illustré à la figure 3 sont donnés ci-après : The data and parameters used for the implementation of the method illustrated in FIG. 3 are given below:
mi,...,mN, un micro événement, avec N micro événements détectés aux instants ti ,...,tN, mi, ..., m N , a micro event, with N micro events detected at instants ti, ..., t N ,
T la taille de la vidéo, T the size of the video,
Ne le nombre de type d'événements recherchés, Do the number of types of events sought,
D est le domaine temporel des votes, composé de I sous-domaines Di={[di, di+i [}, avec i=1 ...I, -d = di < d2 < ... < di = d une décomposition du domaine
temporel en I sous-domaines, d correspond à un instant d'un sous-domaine Di, D is the time domain of the votes, composed of I subdomains D i = {[di, d i + i [}, with i = 1 ... I, -d = di <d 2 <... <di = a decomposition of the domain temporal I subdomains, d corresponds to a moment of a subdomain Di,
« Détection » est l'ensemble des prédictions renvoyées (une par image). Le procédé peut comporter les étapes suivantes : "Detection" is the set of predictions returned (one per image). The method can comprise the following steps:
Etant donné des événements possibles {Ee}e=i...Ne, de nature connue, le domaine de votes
et un dictionnaire de M micro-événements on va : Given possible events {E e } e = i ... Ne , of known nature, the field of votes and a dictionary of M micro-events we will:
Initialiser à une valeur identique, typiquement égale à zéro, un tableau S de taille T fois E : S[e][p=t] = K (K est typiquement égal à zéro) ; le tableau S contient les valeurs des variables de scores e correspondant à un événement, où p=t correspond à un instant d'observation donné dans cet exemple, Initialize to an identical value, typically equal to zero, an array S of size T times E: S [e] [p = t] = K (K is typically equal to zero); the table S contains the values of the score variables e corresponding to an event, where p = t corresponds to a given observation time in this example,
Pour n = 1 à N, N étant le nombre de micro-événements réellement détectés dans un signal reçu sur le capteur de détection, (pour chaque micro-événement mn localisé en tn), 30, For n = 1 to N, N being the number of micro-events actually detected in a signal received on the detection sensor, (for each micro-event m n located in t n ), 30,
Pour e de 1 à E, (boucle sur chaque type d'événement « e » possible), Pour i de 1 à I, (pour chaque sous-domaine D,), For e from 1 to E, (loop on each type of event "e" possible), for i from 1 to I, (for each subdomain D,),
On met à jour le tableau S en ajoutant une valeur v constante pour toutes les localisations p appartenant au sous-domaine D,, 31 , The table S is updated by adding a constant value v for all the locations p belonging to the subdomain D ,, 31,
S[e][tn+p] = S[e][tn+p] + v[e][mn][i] où v[e][mn][i] est une valeur constante pour toutes les localisations p=t appartenant au sous-domaine D,. On va déterminer ensuite (pour t=1 à T) un ensemble d'événements associés à une observation dans le signal, et détecter l'événement le plus probable dans le signal et associé à une observation par exemple en recherchant la valeur maximale sur e dans le tableau S, pour chaque valeur de t=p, 32 : S [e] [t n + p] = S [e] [t n + p] + v [e] [m n ] [i] where v [e] [m n ] [i] is a constant value for all the locations p = t belonging to the subdomain D ,. We will then determine (for t = 1 to T) a set of events associated with an observation in the signal, and detect the most probable event in the signal and associated with an observation, for example by searching for the maximum value on e in table S, for each value of t = p, 32:
Detection[t] = arg max sur e de S[e][p], ce qui permet de détecter l'événement caractéristique le plus probable associé à une observation Oi du signal reçu, par exemple, une vidéo. Detection [t] = arg max on e of S [e] [p], which makes it possible to detect the most likely characteristic event associated with an observation Oi of the received signal, for example, a video.
Toutes les valeurs de score associées à un couple {micro- événement, événement} sont imposées et identiques pour les instants
contenus dans le sous-domaine D, et sont stockées dans une seule valeur.All the score values associated with a pair {micro event, event} are imposed and identical for the moments contained in subdomain D, and are stored in a single value.
Le nombre de valeurs à stocker diminue de E*M*(2D+1 ) selon les méthodes connues de l'art antérieur à Ε*Μ . De même, le nombre d'opérations de lecture dans la mémoire est réduit. The number of values to be stored decreases by E * M * (2D + 1) according to the known methods of the prior art at Ε * Μ. Similarly, the number of read operations in the memory is reduced.
La variable p désigne de manière générique une variable temporelle t ou une variable spatiale. The variable p generically designates a temporal variable t or a spatial variable.
Selon un autre mode de réalisation illustré à la figure 4, le procédé suppose que les instants sur lesquels on définit les sous-domaines D, sont un multiple d'une valeur « incrément » plus connue dans le domaine technique par le terme anglo-saxon « step » donnée. According to another embodiment illustrated in FIG. 4, the method assumes that the instants on which the subdomains D are defined are a multiple of an "increment" value better known in the technical field by the Anglo-Saxon term. "Step" given.
Les paramètres et données d'entrée sont les suivantes : The parameters and input data are as follows:
M-i ,...,mN, N micro événements détectés aux instants ti ,...,tN en supposant que la valeur des instants choisis pour l'observation tn est multiple deMi, ..., m N , N micro events detected at instants ti, ..., t N assuming that the value of the instants chosen for observation t n is multiple of
« step », "Step",
T la taille de la vidéo, T the size of the video,
E est le nombre d'événements intéressant l'utilisateur, E is the number of events of interest to the user,
D est le domaine temporel des votes, -d = di < d2 < ... < di = d une décomposition du domaine temporel telle que pour tout i, d, est un multiple de « step », D is the time domain of the votes, -d = di <d 2 <... <di = d a decomposition of the time domain such that for all i, d, is a multiple of "step",
« Détection » est l'ensemble des prédictions renvoyées (une par image). Le procédé « INTERVALLES_STEP » comporte alors les étapes suivantes : Initialiser un tableau S de taille T/step fois E : S[e][t] = 0 ; "Detection" is the set of predictions returned (one per image). The process "INTERVALLES_STEP" then comprises the following steps: Initialize an array S of size T / step times E: S [e] [t] = 0;
Pour n = 1 à N, étape 40, For n = 1 to N, step 40,
Pour e de 1 à E For e from 1 to E
Pour i de 1 à I For i from 1 to I
Pour j de d, (inclus) à d,+i (exclu) par saut de step, étapes 41 , 42, tau = (tn + j)/step, instant multiple de step, For j from d, (inclusive) to d, + i (excluded) by step jump, steps 41, 42, tau = (t n + j) / step, multiple instant of step,
S[e][tau] = S[e][tau] + v[e][mn][i], étape 43, S [e] [tau] = S [e] [tau] + v [e] [m n ] [i], step 43,
Pour t = 1 à T For t = 1 to T
tau = partieEntiere(t/step) ;
Prediction[t] = arg max sur e de S[e][tau] ; on détecte l'événement pour une observation, étape 44. tau = integer part (t / step); Prediction [t] = arg max on e of S [e] [tau]; the event is detected for an observation, step 44.
Cette variante de réalisation permet de diviser par « step » le nombre d'additions de doubles. Dans le cas où « step » = 4, cela équivaut à une réduction de 75% du nombre d'addition de doubles. This variant embodiment makes it possible to divide the number of additions of doubles by "step". In the case where "step" = 4, this equates to a 75% reduction in the number of duplicates.
Le procédé peut être mis en œuvre pour détecter des événements ou des actions dans un flux de données vidéo observé en continu. L'algorithme mis en œuvre est alors une boucle infinie, puisque la vidéo arrive de façon infinie, et utilise une commande « Extraire » le micro- événement suivant pour obtenir le prochain mot extrait (processus indépendants). The method can be implemented to detect events or actions in a continuously observed video stream. The implemented algorithm is then an infinite loop, since the video arrives infinitely, and uses an "Extract" command the next micro-event to get the next extracted word (independent processes).
Les paramètres et données d'entrée du processus sont les suivantes : The parameters and input data of the process are as follows:
E est le nombre d'événements élus ou choisis, E is the number of events elected or chosen,
D est le domaine temporel des votes, -d = di < d2 < ... < di = d une décomposition du domaine temporel, D is the time domain of the votes, -d = di <d 2 <... <di = d a decomposition of the time domain,
« Détection » est l'ensemble des prédictions renvoyées (une par image) B une taille de buffer (typiquement 5*D). "Detection" is the set of predictions returned (one per image) B a buffer size (typically 5 * D).
Le procédé « INTERVALLE_FLUX » comprend par exemple les étapes suivantes : The process "INTERVALLE_FLUX" comprises for example the following steps:
Initialiser un tableau S de taille B fois E : S[e][t] = 0 ; Initialize an array S of size B times E: S [e] [t] = 0;
t = -d t = -d
Faire en boucle Make a loop
Extraire le micro-événement suivant m en t' Extract the next micro-event m in t '
Tant que t<t'-d As long as you're there
Detection[t] = arg max sur e de S[e][t%B] ; avec t%B désignant le reste de la division euclidienne de t par B, Detection [t] = arg max on e of S [e] [t% B]; with t% B denoting the rest of the Euclidean division of t by B,
S[e][t%B]=0 ; S [e] [t% B] = 0;
t = t+1 ; t = t + 1;
Pour e de 1 à E For e from 1 to E
Pour i de 1 à I
Pour d de d, (inclus) à d,+i (exclu) For i from 1 to I For d from (inclusive) to d, + i (excluded)
S[e][t'+d] = S[e][t'+d] + v[e][m][i]. S [e] [t '+ d] = S [e] [t' + d] + v [e] [m] [i].
Sans sortir du cadre de l'invention, les étapes principales du procédé selon l'invention s'appliquent, en les adaptant si nécessaire, dans le domaine spatial en localisant dans l'espace les micro-événements, en définissant un domaine de score spatial et en initialisant le tableau S dans l'espace. On considérera alors des localisations spatiales et non plus temporelles pour l'exécution des étapes. Without departing from the scope of the invention, the main steps of the method according to the invention apply, adapting them if necessary, in the spatial domain by locating micro-events in space, by defining a spatial score domain and initializing the array S in space. Spatial and not temporal locations will then be considered for the execution of the steps.
Quelques exemples de signaux et d'événements sont donnés à titre illustratifs pour aider à mieux faire comprendre l'invention : Some examples of signals and events are given for illustrative purposes to help better understand the invention:
1 - Signal = image 2D. 1 - Signal = 2D image.
TYPES d'événements : E1 = « voiture », E2 = « maison », E3 = « personne », E4 = « animal » ; TYPES of events: E1 = "car", E2 = "house", E3 = "person", E4 = "animal";
L'effet technique est l'envoi d'un message « E4 à une position (il , j1 ) dans l'image » et « E2 détecté à la position (i2, j2)» ; The technical effect is the sending of a message "E4 to a position (il, j1) in the image" and "E2 detected at the position (i2, j2)";
Ce message peut être visualisé sur un écran, ou stocké en mémoire. This message can be viewed on a screen, or stored in memory.
2 - Signal = flux vidéo 3D issu d'une caméra 3D montée à l'avant d'une voiture. 2 - Signal = 3D video stream from a 3D camera mounted on the front of a car.
TYPES d'événements: E1 = « vélo », E2 = « personne » TYPES of events: E1 = "bike", E2 = "person"
L'effet technique est l'envoi d'un message E1 à une position (x1 , y1 , z1 ) à l'instant t1 dans l'image et E2 à la position (x2, y2, z2) à l'instant t2, et à la position (x3, y3, z3) à l'instant t3; The technical effect is to send a message E1 to a position (x1, y1, z1) at time t1 in the image and E2 to position (x2, y2, z2) at time t2, and at the position (x3, y3, z3) at time t3;
Ce message peut être visualisé sur un écran pour informer le conducteur de présence de vulnérables, il peut être connecté à une alarme sonore. This message can be viewed on a screen to inform the driver of the presence of vulnerable, it can be connected to an audible alarm.
3 - Signal = flux de coordonnées 3D de points d'articulation d'un squelette humain (ces données provenant de capteurs positionnés sur la personne, ou d'un traitement vidéo). 3 - Signal = 3D coordinate flow of points of articulation of a human skeleton (these data coming from sensors positioned on the person, or a video processing).
TYPES d'événements : TYPES of events:
E1 = « la personne cuisine », E2 = « la personne prend son repas », E3 = « la personne se déplace » , E4 = « la personne se repose » ;
L'effet technique est l'envoi de messages successifs « E4 au temps t1 », « E3 en t2 », « E1 en t3 », « E2 en t4 », « E3 en t5 »,.... E1 = "person cooking", E2 = "person eating", E3 = "person is moving", E4 = "person is resting"; The technical effect is the sending of successive messages "E4 at time t1", "E3 at t2", "E1 at t3", "E2 at t4", "E3 at t5", ....
Un des avantages du procédé selon l'invention est que, quelque soit le sous-domaine temporel ou spatial choisi et quels que soient les sous- domaines de décompositions choisis (Di,...,Di), il est toujours possible de réaliser les apprentissages connus de la littérature. Durant la phase d'apprentissage, le procédé peut considérer tous les sous-domaines ou intervalles temporels comprenant zéro construits sur la décomposition: c'est- à-dire l'ensemble des sous-domaines [di, dj[ avec dkCkdj. Un traitement supplémentaire consistant à recombiner ces sous-domaines permet alors d'obtenir la valeur de vote recherchée sur chaque sous-domaine [d,, di+i [. Cette recombinaison consiste à associer à un sous-domaine [d,, d i+i [ la somme des variables associées aux sous-domaines [di, dj[ le contenant. One of the advantages of the method according to the invention is that, whatever the temporal or spatial subdomain chosen and whatever the subdomains of chosen decompositions (Di, ..., Di), it is always possible to realize the known learning from literature. During the learning phase, the method can consider all the subdomains or time intervals comprising zero constructs on the decomposition: that is to say the set of subdomains [di, dj [with dkCkdj. An additional processing consisting of recombining these subdomains then makes it possible to obtain the desired voting value on each subdomain [d ,, d i + i [. This recombination consists in associating with a subdomain [d ,, d i + i [the sum of the variables associated with the subdomains [di, dj [the container.
Les différentes variantes de mise en œuvre du procédé selon l'invention décrites précédemment peuvent être combinées les unes aux autres afin d'améliorer la détection d'événements. The different implementation variants of the method according to the invention described above can be combined with each other in order to improve the detection of events.
Dans le cas où un événement considéré est une action et une observation est le squelette d'une personne, un système possible pour la mise en œuvre du procédé selon l'invention comporte, par exemple, un ordinateur sur lequel est branchée une caméra active. La caméra active fournit une succession d'images de profondeur et le logiciel associé à la caméra extrait un ou plusieurs squelettes. Le processeur 20 de l'ordinateur effectue par exemple trois tâches: In the case where an event considered is an action and an observation is the skeleton of a person, a possible system for implementing the method according to the invention comprises, for example, a computer on which is connected an active camera. The active camera provides a succession of depth images and the software associated with the camera extracts one or more skeletons. The processor 20 of the computer for example performs three tasks:
• Extraire le squelette d'une personne observée image par image, et former la trajectoire de chaque articulation, • Extract the skeleton of a person observed image by image, and form the trajectory of each joint,
• Extraire de ces trajectoires, les positions, les vitesses et les suites de positions de taille, chaque fois que cela est possible, ou tous les « step » images. Chacune des ces informations est écrite par un vecteur selon une méthode connue de l'homme du métier. On associe ensuite chacun de ces vecteurs à leur plus proche voisin parmi une banque de vecteurs spécifiques à l'articulation et au type d'information
(position, vitesse ou suite). A la suite de cela, chaque information est associée à un symbole correspondant à un micro-évènement. • Extract from these trajectories, positions, velocities and sequences of positions of size, whenever possible, or all "step" images. Each of this information is written by a vector according to a method known to those skilled in the art. We then associate each of these vectors with their nearest neighbor among a bank of vectors specific to the articulation and the type of information. (position, speed or continuation). As a result, each information is associated with a symbol corresponding to a micro-event.
• Utiliser les micro-évènements extraits et les votes appris pour déterminer l'action effectuée par la personne dans l'image, l'événement, selon l'une des variantes du procédé selon l'invention décrite ci-avant. • Use micro-events extracted and learned votes to determine the action performed by the person in the image, the event, according to one of the variants of the method according to the invention described above.
Durant l'entraînement, un corpus de vidéos annotées est utilisé. Les annotations définissent quelles actions seront recherchées en test. Typiquement, les actions suivies peuvent être des actions de la vie de tous les jours : boire, manger, lire, se reposer, faire la cuisine, prendre des médicaments, etc. Un domaine de votes est décidé en fonction du nombre maximum d'images consécutives associées à la même action dans une vidéo. Ensuite, on choisit un nombre d'intervalles temporels pour décomposer le domaine de votes. On utilise alors l'apprentissage DOHT approximé (Deeply Optimized Hough Transform) ou toute autre méthode d'apprentissage statistique. L'utilisation de ces votes avec le procédé selon l'invention permet de conserver une faible erreur tout en utilisant que peu de ressources, peu de mémoire, peu de lectures de cette mémoire, et éventuellement peu d'additions dans le cas de la variante de procédé avec sous-échantillonnage. La figure 5 illustre ce mode de réalisation dans lequel, pour un événement, 50, on va choisir les sous-domaines ou intervalles souhaités, 51 , 52 et on va fournir, 53, au DOHT des intervalles approximés correspondant à l'ensemble des intervalles construit sur l'union des extrémités contenant 0. During the training, an annotated video corpus is used. Annotations define which actions will be searched for. Typically, the actions taken can be actions of everyday life: drinking, eating, reading, resting, cooking, taking medicine, etc. A voting domain is decided based on the maximum number of consecutive images associated with the same action in a video. Then, we choose a number of time intervals to decompose the domain of votes. This is done using the Deeply Optimized Hough Transform (DOHT) or any other statistical learning method. The use of these votes with the method according to the invention makes it possible to keep a small error while using only few resources, little memory, few readings of this memory, and possibly few additions in the case of the variant. process with subsampling. FIG. 5 illustrates this embodiment in which, for an event, 50, the desired subdomains or intervals, 51, 52 will be chosen and, at the DOHT, 53 will be provided with approximate intervals corresponding to the set of intervals. built on the union of the ends containing 0.
L'invention s'applique notamment à des signaux sismographiques ou sonores, à des images 2D ou des vidéos 2D, à des images 3D ou des vidéos 3D. Les signaux sont des signaux pleins dans une matrice de dimension N, ou encore locaux, en particulier dans le cas de données ponctuelles associées à un modèle (tels que le squelette du corps, un maillage sur un visage).
Le procédé et le système selon l'invention offrent notamment l'avantage de diminuer la mémoire et le temps de calcul nécessaires, tout en étant compatibles avec une structure d'optimisation des votes réputée performante. L'invention propose une structure pour la valeur de score qui induit un processus de vote particulier, lequel réduit à Ε*Μ , le nombre de valeurs à stocker, avec I très inférieur à (2d+1 ), et à seulement Ε , le nombre d'opérations de lecture par mots. Par rapport à l'exemple donné de l'art antérieur, la ressource nécessaire est diminuée à 3 Mo au lieu de 60 et le nombre d'opérations à 10 000 au lieu de 15 000. De plus, cette structure est compatible avec des sélections efficaces de v. Elle conduit donc à des modifications informées de v dont la pertinence est supérieure à celles des modifications aveugles de l'art antérieur.
The invention applies in particular to seismographic or sound signals, to 2D images or 2D videos, to 3D images or 3D videos. The signals are solid signals in an N-dimensional matrix, or local, especially in the case of point data associated with a model (such as the skeleton of the body, a mesh on a face). The method and the system according to the invention offer, in particular, the advantage of reducing the memory and the calculation time required, while being compatible with a reputation optimization structure that is deemed to be efficient. The invention proposes a structure for the score value that induces a particular voting process, which reduces to Ε * Μ, the number of values to be stored, with I being much smaller than (2d + 1), and only Ε, the number of read operations per word. Compared to the example given in the prior art, the resource required is decreased to 3 MB instead of 60 and the number of operations to 10,000 instead of 15 000. Moreover, this structure is compatible with selections effective of v. It therefore leads to informed modifications of v whose relevance is superior to those of the blind modifications of the prior art.