FR 3067496 A1 20181214 FR 1755232 A 20170612 PROCEDE D'APPRENTISSAGE DE DESCRIPTEURS POUR LA DETECTION ET LA LOCALISATION D'OBJETS DANS UNE VIDEO La présente invention concerne un procédé de détection et de localisation d'objets dans des vidéos numériques. La détection et la localisation automatique d'objets dans les vidéos numériques est un domaine particulièrement actif et complexe, pour lequel aucune solution existante n'arrive à concurrencer les performances humaines lorsque le catalogue d'objets à détecter et localiser est vaste. Le terme « objet » est à entendre au sens large et désigne toute entité cohérente et délimitée spatialement et temporellement dans les vidéos. Les personnes, les visages, les véhicules, les animaux, les bâtiments sont ainsi considérés, entre autres, comme des objets. Le problème de la détection et la localisation d'objets a été investigué dans le cadre des images, conduisant à des méthodes ayant des performances proches des performances humaines pour la détection d'objets. En particulier, la détection de chiffres manuscrits par des méthodes d'apprentissage automatique montre des performances égales ou supérieures aux performances humaines, comme décrit dans l'article de D. Ciresan et al «Multi-column Deep Neural Networks for Image Classification », Computer Vision and Pattern Recognition, 2012. La détection de visages a également atteint un niveau de maturité suffisant pour être utilisé dans différents appareils d'acquisition d'images, comme 20 montré dans l'article de Y. Taigman et al, « DeepFace: Closing the Gap to Human-Level Performance in Face Verification », Computer Vision and Pattern Recognition, 2014. Le problème de la détection et de la localisation d'objets dans les images numériques est à la fois lié et distinct du problème analogue dans les vidéos. En effet, dans les images, le problème est rendu plus difficile par le fait qu'il manque la dimension 25 temporelle permettant de faciliter la détection dans la mesure où le mouvement cohérent d'une entité aide à l'identifier comme telle. Par contre, il est rendu plus simple par la plus faible quantité de données à traiter. Le choix des descripteurs constitue un enjeu majeur, car ces derniers conditionnent fortement le résultat final de la recherche ou de la classification. Les 30 descripteurs de forme caractérisent les contours des objets et permettent de les séparer dans des classes. Une méthode pour reconnaître des objets dans les vidéos comme dans les images consiste à utiliser l'apprentissage automatique supervisé (« supervised machine 2 learning » en anglais). Cette technique nécessite une base de données annotée, dite base d'apprentissage, dans laquelle les objets que l'on cherche à localiser sont repérés et leur classe indiquée. La construction de bases de données annotées repose sur un travail humain fastidieux. Des efforts collaboratifs ont permis de mettre en place de telles bases de 5 données, de grande taille, pour les images, notamment décrites dans l'article de J. Deng et al, « ImageNet: A Large -Scale Hierarchical Image Database », Computer Vision and Pattern Recognition, 2009. Mais des bases de données d'envergure comparable permettant de détecter une large classe d'objets n'existent pas à l'heure actuelle pour les vidéos. Il est connu de la demande internationale WO 2016/081880 de chercher, dans 10 un grand volume de données vidéo, des vidéos contenant certains objets, à partir d'une requête client fournissant une relation à rechercher entre ces objets, par exemple un accident de la circulation entre un véhicule et un cycliste sur des vidéos de surveillance. Les brevets US 8 792 732 et US 8 254 699 décrivent des méthodes d'annotation utilisant les métadonnées de contenus vidéo, notamment de vidéos YouTube, 15 pour annoter automatiquement les bases de données vidéo afin de créer une base de descripteurs. La plupart des techniques actuelles connues pour la reconnaissance d'objets, que ce soit pour les images ou pour les vidéos, utilisent des réseaux de neurones dits « profonds », contenant à l'heure actuelle de plus en plus de paramètres, comme l'architecture décrite dans l'article de Q. V. Le et al, « Building high-level features using large scale unsupervised learning », International Conference on Machine Learning, 2012. Par exemple, l'architecture ResNet, décrite dans l'article de K. He et al, « Deep Residual Learning for Image Recognition », Computer Vision and Pattern Recognition, 2016, utilise 152 couches cachées pour reconnaître 1000 classes d'objets. Ce réseau de neurones profond montre de bonnes performances, toutefois non comparables aux performances humaines, pour le problème de la classification d'objets dans les images numériques, ainsi que les réseaux de neurones dérivés de l'architecture « Faster R-CNN », décrit dans l'article de S. Ren et al, « Faster R-CNN: towards real-time object detection with region proposal networks », Advances in Neural Information Processing Systems, 2015, tels que le réseau YOLO de l'article de J. Redmon et al, « You only look once: Unified, real-time object detection », Computer Vision and Pattern 3 Recognition, 2016, ou le réseau SSD de W. Liu et al (« SSD: Single shot multibox detector », European Conference on Computer Vision, 2016). Dans la mesure où ces architectures sont construites sur l'analyse d'une seule image, elles peuvent être utilisées pour une vidéo qui est une succession d'images, 5 appelées « trames » dans la suite, chaque trame étant analysée indépendamment des autres. La demande US 2012/0238254 décrit un procédé permettant à un utilisateur de sélectionner une zone d'une image d'une vidéo qu'il est en train de visionner sur un appareil mobile, afin d'identifier un objet se trouvant dans cette zone en utilisant une librairie d'objets, dans le but notamment de générer des offres publicitaires concernant 10 l'objet identifié et provenant d'au moins un site marchand. Il est connu du brevet US 7 246 314 de sélectionner interactivement une scène dans une vidéo afin de retrouver des scènes similaires dans le reste de la vidéo ou dans d'autres vidéos. Cette méthode, utilisant la segmentation et des modèles gaussiens, ne permet pas la détection précise d'objets. 15 Dans la majorité des vidéos d'intérêt pour les consommateurs, il y a une redondance importante entre deux trames successives d'une même vidéo. Cette redondance n'étant pas prise explicitement en compte dans ces solutions, des phénomènes d'oscillations peuvent apparaître : dans une trame, par exemple, un objet est correctement détecté, dans la suivante, à cause du bruit il ne l'est plus, puis il est à nouveau détecté 20 quelques trames plus loin. Il est tout au plus possible de régulariser a posteriori la détection, c'est-à-dire de privilégier les détections qu'on peut mettre en correspondance avec des détections précédentes. Pour entraîner les modèles associés à de telles architectures, il est nécessaire de distribuer les calculs, car la puissance de calcul requise est très élevée, et un très grand 25 nombre d'entités de calcul peut être utilisé, par exemple jusqu'à une centaine de processeurs graphiques (« GPU »). L'article de Dean et al, « Large Scale Distributed Deep Networks », Advances in Neural Information Processing Systems, 2012 décrit un système, représenté à la figure 1, utilisant un serveur de paramètres 101 qui alimente différentes entités de calcul 102, 103, 104, travaillant en parallèle chacune sur un fragment de données 30 106, 107, 108 (« shards » en anglais), et mettant à jour les paramètres w de façon asynchrone, les entités de calculs ne s'attendant pas les unes les autres. Plus précisément, chaque entité de calcul lit les paramètres courants w à travers une requête adressée au 4 serveur de paramètres, effectue ses calculs et renvoie les paramètres Aît2 mis à jour à travers une autre requête adressée au serveur de paramètres. Les paramètres finaux w' sont fonction des paramètres courants if, des paramètres Aît2 mis à jour sur chaque entité, et de n le taux d'apprentissage du modèle, dans cet exemple : w' = w - 7/Jw. Il y a ainsi 5 distribution des calculs et distribution des données. Ce système, s'il arrive bien à s'affranchir des dépendances de calculs par l'utilisation d'opérations de lecture/écriture asynchrone depuis et vers le serveur de paramètres, crée un point de souffrance à travers les requêtes adressées à l'unique serveur de paramètres qui devient le goulot d'étranglement du système. Plus il y a d'entités de 10 calculs qui travaillent en parallèle, plus cette difficulté de distribution des calculs prend de 1 ' ampleur. Il existe un besoin pour obtenir une méthode efficace de détection et de localisation d'objets dans des vidéos, qui permette le passage à l'échelle pour détecter et localiser aisément de nombreuses classes d'objets sur de nombreuses vidéos. 15 L'invention a ainsi pour objet, selon un premier de ses aspects, un procédé d'apprentissage de descripteurs de classe pour la détection et la localisation automatique d'objets dans une vidéo, chaque objet appartenant à une classe d'objets j parmi un ensemble J de classes, le procédé utilisant : une base d'apprentissage, constituée à partir de vidéos de référence et 20 contenant des trames annotées (xt, yt)i REVENDICATIONS1. Procédé d'apprentissage de descripteurs de classe pour la détection et la localisation automatique d'objets dans une vidéo, chaque objet appartenant à une classe d'objets (j) parmi un ensemble (J) de classes, le procédé utilisant : - une base d'apprentissage, constituée à partir de vidéos de référence et contenant des trames annotées ((xt, yt)i 2. Procédé selon la revendication 1, dans lequel la base d'apprentissage est constituée à partir de la détection et la localisation des objets trame par trame, dans chaque vidéo de référence. 3. Procédé selon la revendication 1 ou 2, dans lequel la base d'apprentissage contient des données ((xt, yt)i 4. Procédé selon l'une quelconque des revendications 1 à 3, dans lequel un premier réseau de neurones est utilisé pour apprendre la base d'apprentissage. 5. Procédé selon l'une quelconque des revendications 1 à 4, dans lequel le réseau de neurones de prétraitement est entraîné pour détecter des objets sur la dernière 5 trame d'un groupe de (h) trames successives (x, x_1, xt_h+i) issues de la base d'apprentissage en utilisant les trames précédentes du groupe afin d'apprendre les descripteurs (ew(xt, xt_h+i)) correspondants aux objets détectés. 6. Procédé selon la revendication précédente, dans lequel chaque groupe de trames comporte entre 2 et 32 trames, par exemple 4 trames. 10 7. Procédé selon l'une quelconque des revendications précédentes, dans lequel chaque entité de calcul (m) utilise une partie seulement des données d'entrée. 8. Procédé selon l'une quelconque des revendications précédentes, dans lequel chaque entité de calcul (m), qui utilise une version locale des paramètres (°ian) reçue d'un des serveurs de paramètres, calcule itérativement une descente de gradient 15 projetée : 0,72.,,n+112 = ivoim - ynvi(tVin)) où I1, désigne la projection sur 0, yn désigne une suite de scalaires appelée la suite des pas et / est la fonction de coût que l'on cherche à minimiser dans l'apprentissage. 9. Procédé selon l'une quelconque des revendications précédentes, dans 20 lequel, une fois que l'entité de calcul (m) a effectué son calcul, elle choisit aléatoirement une autre entité de calcul (m') et assure une mise à jour des paramètres suivant la règle : 01.1+1 _ on+1 fnn+1/2 - 10. Procédé selon l'une quelconque des revendications précédentes, dans lequel, chaque entité de calcul comportant au moins une zone de mémoire, la zone de 25 mémoire d'une entité de calcul (m ) est disponible pour être interrogée par une autre entité de calcul (m) et lui répondre, notamment dans le cadre d'une requête lecture/écriture sur le serveur de paramètres dont l'entité de calcul (m) dépend, même pendant que celle-ci est en train d'effectuer son propre calcul. 11. Procédé selon l'une quelconque des revendications précédentes, dans 30 lequel une partie seulement des réseaux de neurones de l'architecture est apprise de façon distribuée sur les différentes entités de calcul. 18 12. Procédé selon la revendication précédente, dans lequel seule la partie haute des couches des réseaux de neurones est apprise de façon distribuée. 13. Procédé selon l'une quelconque des revendications précédentes, dans lequel les réseaux de neurones utilisés sont des réseaux de neurones à convolution (CNN). 5 14. Procédé de détection et de localisation automatique d'objets dans une vidéo, chaque objet appartenant à une classe d'objets (j) parmi un ensemble (J) de classes, procédé dans lequel : - on utilise les descripteurs de classe (zef) appris lors du procédé d'apprentissage de descripteurs de classe selon l'une quelconque des revendications 10 précédentes, pour apprendre une fonction (f iiio e1', ) de calcul de descripteurs prenant en entrée au moins la vidéo de test, et - on obtient des scores de détection et de localisation dans la vidéo de test pour chaque classe d'objets (j). 15. Procédé d'apprentissage de descripteurs pour la détection et la localisation 15 automatique d'objets dans une vidéo, utilisant des vidéos de référence et au moins un réseau de neurones, procédé dans lequel : - une base d'apprentissage est constituée en détectant des objets dans chaque trame des vidéos de référence, et en enregistrant chaque trame annotée ((xt, yt)i 16. Dispositif (1) pour l'apprentissage de descripteurs de classe pour la 25 détection et la localisation automatique d'objets dans une vidéo, chaque objet appartenant à une classe d'objets (j) parmi un ensemble (J) de classes, le dispositif (1) utilisant : - une base d'apprentissage, constituée à partir de vidéos de référence et contenant des trames annotées ((xt, yt)i 17. Produit programme d'ordinateur pour la mise en oeuvre du procédé d'apprentissage de descripteurs de classe pour la détection et la localisation automatique d'objets dans une vidéo tel que défini aux revendications 1 à 13, chaque objet appartenant 15 à une classe d'objets (j) parmi un ensemble (J) de classes, le procédé utilisant : - une base d'apprentissage, constituée à partir de vidéos de référence et contenant des trames annotées ((xt, yt)i