PROCEDE ET SYSTEME DE DETECTION D'EVENEMENTS DE NATURE
CONNUE
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.
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.
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.
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.
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.
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.
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.
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).
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.
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 :
• 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
• 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,
• 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,
• 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[,
• 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.
Les localisations ti,..tN sont, par exemple, des instants temporels.
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.
Selon une autre variante de réalisation, le signal est traité en continu.
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,
• Une mémoire de stockage des résultats,
« Un processeur adapté à exécuter les étapes du procédé selon l'invention.
Le système peut comporter une mémoire tampon pour stocker le signal arrivant en continu.
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 :
• La figure 1 , un schéma du procédé selon l'art antérieur,
• 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,
• La figure 4, une illustration d'une première variante du procédé, et
• La figure 5, un exemple de construction de sous-domaines temporels.
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.
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.
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.
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.
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 ».
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.
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 :
mi,...,mN, un micro événement, avec N micro événements détectés aux instants ti ,...,tN,
T la taille de la vidéo,
Ne le nombre de type d'événements recherchés,
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étection » est l'ensemble des prédictions renvoyées (une par image). Le procédé peut comporter les étapes suivantes :
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 :
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,
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,
Pour e de 1 à E, (boucle sur chaque type d'événement « e » possible), Pour i de 1 à I, (pour chaque sous-domaine D,),
On met à jour le tableau S en ajoutant une valeur v constante pour toutes les localisations p appartenant au sous-domaine 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 :
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.
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.
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.
La variable p désigne de manière générique une variable temporelle t ou une variable spatiale.
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.
Les paramètres et données d'entrée sont les suivantes :
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 de
« step »,
T la taille de la vidéo,
E est le nombre d'événements intéressant l'utilisateur,
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é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 ;
Pour n = 1 à N, étape 40,
Pour e de 1 à E
Pour i de 1 à I
Pour j de d, (inclus) à d,+i (exclu) par saut de step, étapes 41 , 42, tau = (tn + j)/step, instant multiple de step,
S[e][tau] = S[e][tau] + v[e][mn][i], étape 43,
Pour t = 1 à 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.
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.
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).
Les paramètres et données d'entrée du processus sont les suivantes :
E est le nombre d'événements élus ou choisis,
D est le domaine temporel des votes, -d = di < d2 < ... < di = d une décomposition du domaine temporel,
« Détection » est l'ensemble des prédictions renvoyées (une par image) B une taille de buffer (typiquement 5*D).
Le procédé « INTERVALLE_FLUX » comprend par exemple les étapes suivantes :
Initialiser un tableau S de taille B fois E : S[e][t] = 0 ;
t = -d
Faire en boucle
Extraire le micro-événement suivant m en t'
Tant que t<t'-d
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,
S[e][t%B]=0 ;
t = t+1 ;
Pour e de 1 à E
Pour i de 1 à I
Pour d de d, (inclus) à d,+i (exclu)
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.
Quelques exemples de signaux et d'événements sont donnés à titre illustratifs pour aider à mieux faire comprendre l'invention :
1 - Signal = image 2D.
TYPES d'événements : E1 = « voiture », E2 = « maison », E3 = « personne », 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)» ;
Ce message peut être visualisé sur un écran, ou stocké en mémoire.
2 - Signal = flux vidéo 3D issu d'une caméra 3D montée à l'avant d'une voiture.
TYPES d'événements: E1 = « vélo », E2 = « personne »
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;
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.
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).
TYPES d'événements :
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 »,....
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.
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.
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:
• Extraire le squelette d'une personne observée image par image, et former la trajectoire de chaque articulation,
• 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.
• 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.
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.
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.