Brevet FR3026526A1 — publié le 20160401

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 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, la 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 0; on associe à un instant donné to, 10, une valeur de vote ou de confiance V;0, 11, qui va servir pour déterminer l'évènement associé, 13 en to. 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 8 par, le nombre d'évènements intéressants (E), le nombre de micro-évènements détectables (M), le domaine temporel des votes (2D+1), c'est-à-dire E*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 E*(2D+1) opérations d'addition et de lecture de « doubles », la lecture d'un tableau v[E][mn][d], où d correspond à un instant d'observation relatif et d'addition à une table d'évènement S[e][tn+d] par micro-évènement. Par exemple, si E= 30 (il y a 30 évènements différents possibles), M=1000 micro-évènements différents possibles, 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[E][mn][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, Operations 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 30 Framework for Action Recognition » de Angela Yao et al, Conference Computer vision and Pattern Recognition, 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 2012/0128045, US 5,430,810 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 taille de 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 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. 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 des évènements dans un flux de données, le procédé comportant au moins les étapes suivantes : - définir un domaine de votes dans lequel on recherche un ou des évènements possibles associés à une observation dans le flux de données décomposé en I intervalles [Di, Di+1 [ ou sous domaines, - initialiser un tableau S contenant des valeurs de scores S[e][t] correspondant à un évènement « e » localisé en t, - détecter un ou plusieurs micro-évènements mn dans le flux de données, localisés en ti,..tN, (20) et correspondant à une observation On, - pour chaque micro-évènement mn, pour chaque évènement « e» possible, pour chaque intervalle i, [Di, Di+1[, et pour toutes les localisations d contenues dans un intervalle [Di, Di+1 [, mettre à jour le tableau S[e][t] des variables « e » correspondant à un évènement en utilisant une même valeur v de confiance, par exemple par en ajoutant la valeur, pour un micro-évènement mn et pour un intervalle i, et pour chaque données localisées en ti,..tN, - déterminer un ensemble d'évènements probables associés à une observation locale dans le flux de données à partir du tableau S[e][t],(32). 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. Le procédé prend en compte un flux de données de taille T donnée. Selon une autre variante de réalisation, le flux de données est traité en continu. On peut définir les intervalles en utilisant les instants spécifiques associés aux maximums obtenus par la mise en oeuvre des étapes suivantes : PrecalculGain(D,I) si I = 0 retourner 0 si D = 0 retourner 1 retourner le max sur D' de (2D'+1 )(D-D'+1 )2 + PrecalculGain (D'-1 ,I-1 ) GAIN(D,I) soit D' tel que (2D'+1)(D-D'+1)2 + Precalcul (D'-1 ,l-1) = Precalcul(D,I) afficher D' GAIN(D'-1,I-1) L'invention concerne aussi un système pour détecter des évènements dans un flux de données comportant au moins les éléments suivants : - un capteur adapté à détecter un ou plusieurs micro-évènements mn dans le flux de données, à des localisations données ti,..tN, correspondant à une observation 0i, - 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 flux à analyser, dans le cas où le flux de données est un flux 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 oeuvre 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 d'intervalles 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 ou arrivant en continu sur un capteur de détection ou d'une image. L'action d'une personne couvre tout type d'évènement dont la nature est connue. La description qui va suivre peut être mise en oeuvre, 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. 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 une suite d'images autour de l'image considérée, voire 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 annotées. Le procédé et le système pour sa mise en oeuvre 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 oeuvre 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. Le système comporte aussi un capteur 22 de détection du signal ou de la vidéo relié au processeur, 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 tampon ou « Buffer » 26 pour stocker le flux à analyser lorsque l'on effectue une analyse en continu d'un flux de données. 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 type d'é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 ou spatial 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 la valeur de score dépasse une valeur seuil sont retenus, ou bien les Q évènements ayant les Q meilleurs scores (singulièrement le meilleur si 0=1). Les données et paramètres utilisés pour la mise en oeuvre du procédé illustré à la figure 3 sont donnés ci-après : m1,...,mN, un micro évènement, avec N micro événements détectés aux instants ti,...,tN, T la taille de la vidéo, E le nombre d'événements dont la présence potentielle est recherchée, D est le domaine temporel des votes, -D = D1 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 = D1 Sans sortir du cadre de l'invention, les étapes principales du procédé selon l'invention s'appliquent en les adaptant si nécessaire en travaillant 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. Un des avantages du procédé selon l'invention est que, quelque soit le domaine temporel ou spatial choisi (par exemple [-D, D]) et quels que soient les intervalles de décompositions choisis (D1,...,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 intervalles temporels comprenant 0 construits sur la décomposition: c'est-à-dire l'ensemble des [Di,Dj[ avec Di 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 détermine alors les intervalles Di associée à la fonction « GAIN » présentée ci-avant. 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 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 vidéos 2D, à des images 3D ou vidéo 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 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 compatible 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 à E*M*I, le nombre de valeurs à stocker, avec I très inférieur à (2D+1), et à seulement E*I, 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 vote. Elle conduit donc à des modifications informées de vote dont la pertinence est supérieure à celles des modifications aveugles de l'art antérieur.5 REVENDICATIONS1 - Procédé de détection d'évènements dans un flux de données comportant au moins les étapes suivantes : - définir un domaine de votes dans lequel on recherche un ou des évènements possibles associés à une observation dans le flux de données décomposé en I intervalles [Di, Di+1[ ou sous domaines, - initialiser un tableau S contenant des valeurs de scores S[e][t] correspondant à un évènement « e » localisé en t, - détecter un ou plusieurs micro-évènements mn dans le flux de données localisés en (20) et correspondant à une observation On, - pour chaque micro-évènement mn, pour chaque évènement « e » possible, pour chaque intervalle i, [Di, Di+1[, et pour toutes les localisations d contenues dans un intervalle [Di, Di+1[, mettre à jour le tableau S[e][t] des variables « e » correspondant à un évènement en utilisant une même valeur de confiance, pour un micro-évènement mn et pour un intervalle i, et pour chaque donnée localisée en - déterminer un ensemble d'évènements probables associés à une observation locale dans le flux de données à partir du tableau S[e][t],(32). 2 - Procédé selon la revendication 1 caractérisé en ce que les localisations sont des instants temporels. 3 - Procédé selon la revendication 2 caractérisé en ce que l'on choisit les valeurs d'instants de détection des micro-évènements comme des multiples d'une valeur « incrément » donnée. 4 - Procédé selon la revendication 2 caractérisé en ce que le flux de données traité est de taille T donnée. - Procédé selon la revendication 2 caractérisé en ce que le flux de données est traité en continu. 6 - Procédé selon la revendication 2 caractérisé en ce que l'on détermine l'évènement le plus probable en recherchant l'argument maximal sur e du tableau S[e] [1] . 7 - Procédé selon l'une des revendications 1 à 6 caractérisé en ce que le flux de données se présente sous la forme de signaux sismographiques ou sonores, à des images 2D ou vidéos 2D, à des images 3D ou vidéo 3D. 8 - Système de détection d'évènements dans un flux de données comportant au moins les éléments suivants : - un capteur adapté à détecter un ou plusieurs micro-évènements mr, dans le flux de données, à des positions de localisation données ti,..tN, correspondant à une observation 0i, - un processeur (20) adapté à exécuter les étapes du procédé selon l'une des revendications 1 à 7, - une mémoire (21) de stockage des résultats obtenus par l'exécution des étapes. 9 - Système de détection selon la revendication 8 caractérisé en ce qu'il comporte une mémoire tampon (26) pour stocker le flux de données arrivant en continu. 10 - Système de détection selon l'une des revendications 8 et 9 caractérisé en ce qu'il comporte une caméra active connectée à un micro-ordinateur.