FR 3087033 A1 20200410 FR 1859175 A 20181003 Procédés d'apprentissage de paramètres d'un réseau de neurones à convolution et de détection d'éléments d'intérêt visibles dans une image DOMAINE TECHNIQUE GENERAL La présente invention concerne le domaine de l'apprentissage supervisé, et en particulier un procédé d'apprentissage de paramètres d'un réseau de neurones à convolution et un procédé de détection d'éléments d'intérêt visibles dans une image au moyen d'un réseau de neurones à convolution. ETAT DE L'ART Les réseaux de neurones sont massivement utilisés pour la classification de données. Lors d'une phase d'apprentissage automatique (généralement supervisé, c'est-à-dire sur une base de données de référence déjà classifiées), un réseau de neurones « apprend » et devient tout seul capable d'appliquer la même classification à des données inconnues. Les réseaux de neurones à convolution, ou CNN (Convolutional Neural Networks) sont un type de réseau de neurones dans lequel le motif de connexion entre les neurones est inspiré par le cortex visuel des animaux. Ils sont ainsi particulièrement adaptés à un type particulier de tâche qui est l'analyse d'image, ils permettent en effet avec efficacité la reconnaissance d'éléments d'intérêt tels que des objets ou des personnes dans des images, en particulier dans des applications de sécurité (surveillance automatique, détection de menace, etc.). Pour cela, on apprend le CNN sur des bases d'images d'apprentissage, c'est-à-dire des images dans lesquelles les éléments d'intérêt ont été déjà « annotés », c'est-à-dire mis en évidence et étiquetés avec la catégorie d'élément correspondant. On connait tout particulièrement une utilisation des CNN pour faire ce que l'on appelle de la « détection » d'objets, c'est-à-dire localiser dans une image des objets d'intérêt (piéton, visage, véhicule par exemple) au travers notamment d'une 2 boite englobante. Une deuxième utilisation est le « tracking », c'est-à-dire du suivi temporel de ces éléments d'intérêt tels que des personnes ou des objets. Aujourd'hui, ces techniques apportent satisfaction mais restent perfectibles. En effet, pour des applications de sécurité, il serait par exemple souhaitable de 5 pouvoir détecter simultanément des personnes, leur visage et des véhicules à partir d'un seul et unique détecteur CNN. Cela n'est possible aujourd'hui notamment pour les deux raisons suivantes : Les algorithmes CNN reposent sur des bases d'apprentissages qui doivent être entièrement annotées (on parle d'apprentissage supervisé) 10 et il est généralement difficile ou extrêmement coûteux d'avoir une seule et même base contenant l'ensemble des annotations. De même il n'est pas possible de fusionner deux bases de données d'apprentissage car celles-ci sont « partiellement » annotées l'une par rapport à l'autre. Par exemple si l'on considère une base de personnes et une base de 15 véhicules, les véhicules ne sont pas annotés dans la base de personnes et vice-versa, ce qui constitue des faux négatifs qui perturberaient complètement l'apprentissage. Il faudrait manuellement ajouter les annotations manquantes, ce qui est un travail titanesque. On citera par exemple la base MS-COCO (la plus utilisée) qui contient seulement des 20 annotations de personnes, de quelques animaux et de quelques objets, mais pas d'annotation de visages. On citera également par exemple la base de données WIDER qui contient des annotations de visage uniquement. L'état de l'art en termes de détection d'objets implique, que si l'une 25 d'une première et d'une deuxième catégorie d'élément d'intérêt que l'on cherche à détecter est une sous-partie de l'autre (par exemple une personne et son visage), même en créant une base ad hoc il ne serait pas possible d'apprendre simultanément à un CNN à détecter les deux catégories du fait de leur inclusion. En effet, la partie commune se 30 trouve en situation de « conflit » entre les deux catégories. Cela est notamment lié à la fonction de coût principale utilisée pour l'apprentissage, qui est la fonction « softmax cross entropy », qui n'est 3 pas capable de gérer des catégories qui ne seraient pas mutuellement exclusives Aujourd'hui la seule solution est de générer plusieurs « détecteurs », i.e. d'apprendre plusieurs CNN chacun sur une base de données d'apprentissage 5 différente (par exemple un pour les personnes, un pour les visages, et un pour les véhicules), plus d'analyser chaque image avec tous les CNN de sorte à détecter toutes les catégories d'éléments souhaitées. Cela complexifie le procédé et peut poser problème en cas de conflit entre les détections. De plus si l'on veut une qualité de détection constante pour un même temps de traitement, cela demande 10 des ressources informatiques supplémentaires (processeur, carte graphique, mémoire) puisque plusieurs CNN sont lancés plutôt qu'un seul CNN. Il serait par conséquent souhaitable de disposer d'une nouvelle solution d'apprentissage d'un réseau de neurones à convolution qui puisse être « multi- 15 catégories » tout en restant simple et fiable. PRESENTATION DE L'INVENTION Selon un premier aspect, la présente invention concerne un procédé 20 d'apprentissage de paramètres d'un réseau de neurones à convolution, CNN, pour détection d'éléments d'intérêt visibles dans une image ou plusieurs images, le procédé comprenant la mise en oeuvre par des moyens de traitement de données d'au moins un serveur, pour détection d'éléments d'intérêt visibles dans des images, le procédé étant caractérisé en ce qu'il est mis en oeuvre à partir d'une 25 pluralité de bases d'images d'apprentissage dans lesquelles lesdits éléments d'intérêt sont déjà annotés, le CNN étant un CNN commun à ladite pluralité de bases d'images d'apprentissage, et présentant un tronc commun et une pluralité de couches d'encodage chacune spécifique d'une de ladite pluralité de bases d'images d'apprentissage. 30 Selon d'autres caractéristiques avantageuses et non limitatives : - le procédé comprend l'utilisation d'une pluralité de fonctions de coût chacune spécifique d'une de ladite pluralité de bases d'images d'apprentissage 4 - le procédé comprend le tirage aléatoire itératif d'images d'apprentissage dans la pluralité de bases, et pour chaque image d'apprentissage tirée, et le calcul d'une erreur d'apprentissage sur la base de la fonction de coût spécifique de la base de laquelle vient ladite image d'apprentissage tirée ; 5 - le procédé comprend en outre, pour un ensemble desdites images d'apprentissages tirées aléatoirement dans la pluralité de base, la somme des erreurs d'apprentissage calculées pour chacune des images d'apprentissage dudit ensemble, et la mise à jour des paramètres du CNN en fonction de ladite somme ; - ledit tronc commun du CNN comprend toutes les couches présentant des 10 paramètres variables autres que les couches d'encodage ; - chaque couche d'encodage est une couche de convolution ou une couche entièrement connectée, générant un vecteur de représentation des éléments d'intérêt détectés ; - chaque base d'images d'apprentissage est associée à un ensemble de 15 catégories d'élément d'intérêt, les éléments d'intérêt annotés dans les images d'une base étant ceux présentant une catégorie dudit ensemble associé à la base, lesdits ensembles de catégories étant différents d'une base à l'autre ; - ladite pluralité de bases d'images d'apprentissage comprend au moins une première base, une deuxième base et une troisième base, l'ensemble de 20 catégories d'élément d'intérêt associé à la première base comprenant la catégorie visage, l'ensemble de catégories d'élément d'intérêt associé à la deuxième base comprenant la catégorie personne, et l'ensemble de catégories d'élément d'intérêt associé à la troisième base comprenant la catégorie véhicule ou au moins une sous-catégorie de la catégorie véhicule ; 25 - au moins une base d'images d'apprentissage présente des images d'apprentissage dans lesquelles des structures géométriques caractéristiques d'éléments d'intérêt sont également annotées, la couche d'encodage spécifique de cette base d'images d'apprentissage générant un vecteur de représentation des éléments d'intérêt détectés comprenant, pour au moins une catégorie donné 30 d'élément d'intérêt à détecter, au moins une valeur descriptive d'au moins une structure géométrique caractéristique de ladite catégorie d'élément d'intérêt ; 5 - ledit vecteur de représentation comprend deux valeurs de position et une valeur de visibilité de l'au moins une structure géométrique caractéristique de ladite catégorie donné d'élément d'intérêt ; 5 - ledit vecteur de représentation comprend des valeurs descriptives d'au moins trois structures géométriques caractéristiques de ladite catégorie d'élément d'intérêt. Selon un deuxième aspect, l'invention concerne un procédé de détection 10 d'éléments d'intérêt visibles dans une image, par des moyens de traitement de données d'un équipement, au moyen d'un CNN appris conformément au procédé selon le premier aspect. Selon d'autres caractéristiques avantageuses et non limitatives : - le procédé comprend en outre la détection, pour chaque élément d'intérêt 15 d'une première catégorie détecté, des structures géométriques caractéristiques de ladite première catégorie d'élément d'intérêt, visibles dans ladite image ; - le procédé comprend en outre la détection des éléments d'intérêt d'une deuxième catégorie différente de la première catégorie telle que la deuxième catégorie est une sous-partie de la première catégorie, et telle que les structures 20 géométriques caractéristiques de la première catégorie d'élément d'intérêt sont également des structures géométriques caractéristiques de la deuxième catégorie d'élément d'intérêt ; - soit la deuxième catégorie est la catégorie visage et la première catégorie est la catégorie personne, soit la deuxième catégorie est la catégorie plaque 25 d'immatriculation et la première catégorie est la catégorie véhicule ou une sous- catégorie de la catégorie véhicule. Selon un troisième et un quatrième aspect, l'invention propose un produit programme d'ordinateur comprenant des instructions de code pour l'exécution 30 d'un procédé selon le premier ou le deuxième aspect d'apprentissage de paramètres d'un réseau de neurones à convolution, CNN, ou de détection d'éléments d'intérêt visibles dans une image ; et un moyen de stockage lisible par un équipement informatique sur lequel un produit programme d'ordinateur 6 comprend des instructions de code pour l'exécution d'un procédé selon le premier ou le deuxième aspect d'apprentissage de paramètres d'un réseau de neurones à convolution, CNN, ou de détection d'éléments d'intérêt visibles dans une image. 5 PRESENTATION DES FIGURES D'autres caractéristiques et avantages de la présente invention apparaîtront à la lecture de la description qui va suivre d'un mode de réalisation préférentiel. Cette description sera donnée en référence aux dessins annexés dans lesquels : 10 la figure 1 est un schéma d'une architecture pour la mise en oeuvre des procédés selon l'invention ; - la figure 2 représente un exemple d'architecture sur laquelle est basée un CNN pour la mise en oeuvre d'un mode de réalisation d'un procédé de détection de l'invention ; 15 - la figure 3 illustre schématiquement la mise en oeuvre d'un procédé d'apprentissage selon un mode de réalisation préféré de l'invention ; la figure 4 représente un exemple de vecteur de représentation généré lors de la mise en oeuvre d'un procédé d'association selon un mode de réalisation préféré de l'invention. 20 DESCRIPTION DETAILLEE Notions 25 Selon plusieurs aspects complémentaires la présente invention peut impliquer : - un procédé d'apprentissage d'un réseau de neurones à convolution (CNN) ; - un procédé de détection d'éléments d'intérêt visibles dans une image ; - un procédé d'association d'éléments d'intérêt visibles dans une image ; 30 - un procédé de suivi d'éléments d'intérêt visibles dans une vidéo constituée d'une séquence de K images (i.e. de frames). 7 Ici, le terme « élément d'intérêt » désigne toute représentation dans l'image/vidéo d'une entité dont on souhaite la détection/association/suivi dans une image/vidéo. Chaque élément d'intérêt est d'une catégorie donnée, correspondant 5 à un type au sens sémantique. Par exemple, les catégories personne, visage, véhicule, plaque d'immatriculation, etc. peuvent être considérées : la catégorie véhicules recouvre l'ensemble de tous les véhicules (voiture/camion/bus...) quel que soit le modèle, la couleur, etc., la catégorie plaque d'immatriculation recouvre l'ensemble de toutes les plaques quel que soit le pays/région d'émission, la 10 couleur, etc. La « détection », ou « reconnaissance », est l'opération la plus basique, et désigne le simple marquage d'un élément d'intérêt d'une catégorie connue dans une image. La détection combine ainsi la localisation (détermination de la position et la taille d'une boite englobant l'élément d'intérêt, dite boite de détection) et la 15 classification (détermination de sa catégorie). Par « suivi », on entend comme expliqué avant le « tracking » de ces éléments d'intérêt pendant la durée de la vidéo, c'est-à-dire l'identification continue d'un même élément détecté d'image en image où il est présent de sorte à déterminer le déplacement de l'entité correspondante au cours du temps. 20 Pour cela, on référence chaque élément d'intérêt avec un identifiant, l'ensemble des occurrences d'un élément d'intérêt pour un identifiant donné étant appelé une « track ». On fera la différence entre la « détection » et « l'identification » : alors que 25 la détection se fait image par image, et ne fait pas de distinction entre les différents éléments d'une même catégorie, l'identification affecte aux détections les bons identifiants de sorte à ce que deux détections de la même entité sur deux images différentes aient le même identifiant, i.e. fasse partie de la même track. Par exemple, supposant que sur une première image soient identifiés comme 30 « personne 1 » et « personne 2 » deux éléments de catégorie personne et que soient détectés dans une deuxième image à nouveau deux éléments de catégorie personne, l'identification permet de déterminer dans la deuxième image lequel est la personne 1/2 (voire même une personne 3) B L'identification peut en d'autres termes être vue comme la mise en correspondance d'un élément détecté avec une entité, c'est-à-dire la distinction entre les différents éléments de la même catégorie détectables dans une ou 5 plusieurs images. Par « association », on entend la mise en correspondance de deux éléments d'intérêt de catégories différentes mais liés. Un premier élément d'intérêt d'une première catégorie et un deuxième élément d'intérêt d'une deuxième catégorie peuvent être associés s'ils présentent 10 un lien, notamment s'ils font partie d'une même entité. En général, deux éléments d'intérêts de catégorie différentes associés sont référencés par un même identifiant, i.e. il y a un identifiant unique par entité. Dans la suite de la description, on considèrera le mode de réalisation préféré d'une association de nature « sous-partie ». En d'autres termes, l'une de 15 la première et de la deuxième catégorie d'élément d'intérêt est une sous-partie de l'autre, i.e. en fait partie. Arbitrairement, la présente description considère la deuxième catégorie comme étant une sous-partie de la première catégorie, mais l'inverse pourra naturellement être considéré. Selon un exemple, la deuxième catégorie est la catégorie visage et la première catégorie est la catégorie 20 personne. Selon un autre exemple, la deuxième catégorie est la catégorie plaque d'immatriculation et la première catégorie est la catégorie véhicule. A noter que l'invention ne sera pas limitée à une association de nature sous-partie, et on pourra par exemple considérer une association de deux catégories elles-mêmes sous-parties d'une troisième catégorie (par exemple une 25 association visage-main). On peut même envisager des cas d'association où il n'y a aucune relation partie/sous-partie que ce soit directement ou indirectement, par exemple personne et bagage. Dans un cas où il y a plus de deux catégories d'élément d'intérêt qui 30 peuvent être associées (par exemple, personne/visage/main), en particulier une première catégorie, une deuxième catégorie et une troisième catégorie, il suffit de définir une catégorie principale (la « partie ») et des catégories secondaires (les « sous-parties »), et on associera chaque catégorie secondaire à la catégorie 9 principale. Par exemple, s'il y a personne/visage/main, chaque main sera associée à une personne et chaque visage sera associé à une personne, mais on ne tentera pas d'associer les mains et les visages (dans la mesure où cette association est connue par transitivité à partir des deux autres). 5 Les présents procédés sont mis en oeuvre au sein d'une architecture telle que représentée par la figure 1, grâce à un ou plusieurs serveurs 1 a, 1 b, lc et un terminal 2. Comme l'on verra, le procédé peut comprendre l'apprentissage d'un ou plusieurs réseaux de neurones à convolution, CNN, et le cas échéant le ou les 10 serveurs 1 a, 1 b, lc sont des équipements d'apprentissage associés. Le terminal 2 est quant à lui un équipement d'utilisation à proprement parler c'est-à-dire mettant en oeuvre tout ou partie du présent procédé), par exemple un équipement de traitement de données de vidéo-surveillance. Dans tous les cas, chaque équipement 1 a, 1 b, lc, 2 est typiquement un 15 équipement informatique distant relié à un réseau étendu 10 tel que le réseau internet pour l'échange des données. Chacun comprend des moyens de traitement de données 11 a, 11 b, 11c, 21 de type processeur, et des moyens de stockage de données 12a, 12b, 12c, 22 telle qu'une mémoire informatique, par exemple un disque. 20 Au moins un des éventuels serveurs 1 a, 1 b, lc stocke une base de données d'apprentissage, i.e. un ensemble d'images d'apprentissage, c'est-à-dire sur lesquelles des éléments d'intérêt ont été déjà annotés avec la catégorie d'élément correspondante (par opposition à l'image/vidéo dite d'entrée sur laquelle on cherche à faire la détection). Présentement, on a au moins deux, voire au 25 moins trois, bases d'images d'apprentissage, stockées sur autant de serveurs distincts (exemple de deux serveurs la et lb dans la figure 1). Dans la figure 1, le serveur lc est un serveur optionnel qui ne dispose quant à lui pas de base d'images d'apprentissage et qui met en oeuvre l'obtention du ou des CNN à partir des bases de données des serveurs 1 a, 1 b. Le rôle de ce 30 serveur lc peut cependant tout à fait être accompli par l'un ou l'autre des serveurs 1 a, 1 b. 10 CNN Un CNN contient généralement quatre types de couches traitant successivement l'information : 5 - la couche de convolution qui traite des blocs de l'entrée les uns après les autres ; - la couche non linéaire qui permet d'ajouter de la non linéarité au réseau et donc d'avoir des fonctions de décision beaucoup plus complexes ; 10 - la couche de mise en commun (appelée « pooling ») qui permet de regrouper plusieurs neurones en un seul neurone ; la couche entièrement connectée qui relie tous les neurones d'une couche à tous les neurones de la couche précédente. La fonction d'activation de couche non linéaire NL est typiquement la 15 fonction ReLU (Rectified Linear Unit, i.e. Unité de Rectification Linéaire) qui est égale à f(x)= max(0, x) et la couche de pooling (notée POOL) la plus utilisée est la fonction MaxPool2x2 qui correspond à un maximum entre quatre valeurs d'un carré (on met en commun quatre valeurs en une seule). La couche de convolution, notée CONV, et la couche entièrement 20 connectée, notée FC, correspondent généralement à un produit scalaire entre les neurones de la couche précédente et les poids du CNN. Les architectures typiques de CNN empilent quelques paires de couches CONV NL puis ajoutent une couche POOL et répètent ce schéma [(CONV NL) P POOL] jusqu'à obtenir un vecteur de sortie de taille suffisamment petite, 25 puis terminent par une ou deux couches entièrement connectées FC. En analyse d'image, il n'y a pas toujours de couches non-linéaires NL ni même de couches entièrement connectées FC. L'homme du métier pourra par exemple se référer aux CNN décrits dans les documents YOL09000: Better, Faster, Stronger - Joseph Redmon, Ali Farhadi 30 https://arxiv.onglabs/1612.08242, Faster R-CNN: Towards Real-Time Object Detection with Region Proposai Networks, https://arxiv.orq/abs/1506.01497, ou leurs dérivés. 11 Dans la suite de la présente description, on prendra en particulier un exemple de CNN basé sur l'architecture « Darknet-19 » représentée dans la figure 2 et décrite dans le document YOL09000, qui comprend 19 couches de convolution CONV, 5 couches de pooling MaxPool2x2 (Alternativement, on pourra 5 également citer la version « Darknet-53 », à 53 couches de convolution CONV, ou n'importe quelle architecture de type VGG, RESNET, DENSNET, etc.). En reprenant l'exemple de Darknet-19, on pourra construire un CNN de détection en prenant son tronc commun (i.e. la partie s'étendant jusqu'au double trait horizontal dans la figure 2) et en y ajoutant éventuellement trois couches de 10 convolution présentant 1024 filtres de taille 3x3, et surtout une dernière couche de convolution CONV présentant avantageusement des filtres de taille 1x1, qui agit comme couche dite « d'encodage » et présente une sortie de taille C (i.e. présente un nombre de filtres égale à la taille souhaitée du vecteur de représentation en sortie, voir plus loin). Alternativement, une couche entièrement connectée FC peut 15 être utilisée comme couche d'encodage. En effet, l'objectif d'une méthode à base de CNN est de décrire le plus précisément possible et de façon répétable le contenu d'une image sous forme d'un vecteur contenant toutes les informations des éléments à détecter, c'est ce que permet la couche d'encodage. Ainsi, la couche d'encodage génère un vecteur 20 de représentation des éléments d'intérêt détectés. L'image est découpée spatialement en S cellules (par exemple des cellules de 7x7), chaque cellule dispose de B 'boites de description' (typiquement, 8=2 ou 3), qui indiquent la présence d'un ou plusieurs éléments d'intérêt (jusqu'à B éléments) dans cette cellule, et constituent ainsi des boites de détection 25 « candidates ». La bonne boite de détection est celle qui englobe au mieux (c'est- à-dire au plus près) l'élément d'intérêt correspondant. La présence d'une entité dans une boite de description se traduit à minima par la donnée de sa position dans la cellule et de sa catégorie, codée sous la forme du vecteur dit « de représentation » de C valeurs généré par la couche 30 d'encodage. Généralement, le vecteur comprend au moins cinq valeurs : - Coordonnées x/y du centre de la boite de description (en fraction de la taille de la cellule) ; 12 - Longueur/largeur vv/h de la boite (en fraction de la taille de la cellule) ; - Identifiant c de la catégorie de l'élément d'intérêt 5 Le code total de description d'une image est la concaténation de tous les vecteurs de représentation des boites de description, soit de longueur S*B*C. De façon préférée, en référence à la figure 4, au moins certains vecteurs de représentation (ceux pour un élément d'intérêt d'une catégorie donnée, par exemple les personnes) sont allongés, i.e. se voient concaténer des valeurs 10 descriptives d'au moins une structure géométrique caractéristique de ladite catégorie, en particulier lesdites valeurs descriptives comprennent avantageusement au moins deux valeurs de position (coordonnées KPx/KPy) et/ou une valeur de visibilité (valeur booléenne KPv). De façon particulièrement préférée, il y a au moins trois structures géométriques caractéristiques, c'est-à- 15 dire au moins neuf valeurs descriptives additionnelles, comme l'on verra plus loin. Ainsi, la détection des structures géométriques caractéristiques peut être accomplie de façon simultanée avec la détection des éléments d'intérêt, sans surcout de temps et sans dégradation des performances. Par « structure géométrique caractéristique », on entend tout 20 particulièrement un point caractéristique (en anglais « keypoint »), mais également une forme telle qu'un polygone, un maillage, etc. et de façon générale tout objet graphique facilement repérable sur tous les éléments de cette catégorie. De façon particulièrement préférée, lorsque l'un de la première catégorie et de la deuxième catégorie est une sous-partie de l'autre, on choisit des structures géométriques 25 caractéristiques communes à la première catégorie et à la deuxième catégorie. Dans l'exemple visage/personne, on pourra ainsi par exemple prendre les deux yeux et le nez : en effet, il s'agit de structures géométriques d'une forme très particulière, caractéristiques aussi bien d'une personne que d'un visage. L'utilisation de ces structures géométriques caractéristiques « communes » 30 permet très astucieusement de réaliser comme on va le voir plus tard l'association d'éléments de deux catégories dans l'image, et ce de façon très fiable. 13 Dans la suite de la description, on prendra l'exemple dans lequel lesdites structures géométriques sont des points, et par exemple on annotera les yeux ou le nez d'un visage comme des points. Avantageusement on peut encoder d'autres informations sur ce code sur le 5 vecteur de représentation (d'autres boites englobantes, une information sur l'action en cours, un numéro de plaque immatriculation d'un véhicule, etc.) Procédé d'apprentissage 10 Selon un premier aspect, l'invention concerne un procédé d'apprentissage de paramètres d'au moins un réseau de neurones à convolution, CNN, pour détection d'éléments visibles dans des images, à partir d'une pluralité de base d'images d'apprentissage dans lesquels lesdits éléments sont déjà annotés, i.e. localisés et classifiés (la catégorie est déterminé). Chaque base d'images est en 15 effet avantageusement associée à un ensemble de catégories d'élément d'intérêt, les éléments d'intérêt annotés dans les images d'une base étant ceux appartenant à une catégorie dudit ensemble de catégories associé à la base. On cherche en particulier à détecter les éléments d'intérêts d'au moins deux catégories, dont une première catégorie et une deuxième catégorie. 20 Comme expliqué avant, pour les éléments d'au moins une catégorie donnée peuvent être déjà annotées une ou plusieurs structures géométriques caractéristiques, i.e. leurs coordonnées dans l'image connues. On comprend que les structures géométriques caractéristiques ne sont pas toujours visibles et donc ne sont renseignés que s'ils sont visibles. Par exemple une personne de profil 25 peut être détectée en tant qu'élément de catégorie personne (son visage aussi), mais son oeil gauche ou droit ne sera pas visible car derrière la tête. Le présent procédé contourne astucieusement le problème de l'incompatibilité des différentes bases et permet d'avoir un CNN commun appris directement à partir d'une pluralité de bases d'images d'apprentissage, et ce en un 30 seul apprentissage. Cela est avantageusement réalisé par les moyens de traitement de données 11c du serveur ic connecté aux autres serveurs 1 a, lb des bases de données. Ledit CNN est dit « commun » à plusieurs bases de données (en d'autres termes on a un seul CNN qui apprend à la fois sur plusieurs bases de 14 données), par opposition aux CNN connus qui ne pouvaient apprendre chacun que sur une base (il fallait alors autant de CNN que de bases). En référence à la figure 3, ladite pluralité de bases d'images d'apprentissage comprend avantageusement au moins une première base 5 d'images d'apprentissage (dans lesquelles au moins les éléments d'intérêt de la première catégorie sont déjà annotés) et une deuxième base (dans lesquelles au moins les éléments d'intérêt de la deuxième catégorie sont déjà annotés), voire une troisième base. En particulier, l'ensemble de catégories d'élément d'intérêt associé à la 10 première base comprend la catégorie personne (la première catégorie dans les exemples), l'ensemble de catégories d'élément d'intérêt associé à la deuxième base comprend la catégorie visage (la deuxième catégorie), et l'ensemble de catégories d'élément d'intérêt associé à l'éventuelle troisième base comprend une ou plusieurs catégories d'objets inanimés, comme la catégorie véhicule ou au 15 moins une sous-catégorie de véhicule (par exemple, les sept catégories voiture, camion, bus, deux roue, bicyclette, avion et bateau). On comprend cependant que l'on n'est limité à aucun choix de bases/catégories. Pour cela, on utilise comme CNN commun un CNN présentant un tronc 20 commun et une pluralité de couches d'encodage chacune spécifique d'une de ladite pluralité de bases d'images d'apprentissage. En d'autres termes, comme l'on voit dans la figure 3, l'architecture du CNN présente non pas une couche d'encodage commune à l'ensemble des modalités (c'est-à-dire les différents ensembles de catégories), mais une couche d'encodage 25 spécifique à certaines des modalités. De façon particulièrement préférée, ledit tronc commun comprend toutes les couches présentant des paramètres variables autres que la couche d'encodage, et en particulier début le début. Dans l'exemple de la figure 2, le tronc commun s'étend jusqu'au double trait horizontal 30 En d'autres termes, en supposant qu'on a trois bases d'images d'apprentissage comme dans l'exemple de la figure 3, alors on a trois couches d'encodage et pour chaque image d'apprentissage prise en entrée on utilise la couche d'encodage correspondant à la base dont vient l'image d'apprentissage. 15 On comprend donc que toutes les images d'apprentissage participent à l'apprentissage du tronc commune, mais que seules les images d'une base participent à l'apprentissage de chaque couche d'encodage. Les diverses couches d'encodage sont comme expliqué composées 5 chacune avantageusement d'une couche de convolution avec des filtres préférentiellement de taille 1x1, et dont la taille de sortie G (le nombre de filtres) correspond à la taille du vecteur de représentation (typiquement 8 pour les personnes et les visages, et 14 pour les véhicules s'il y a 7 sous-catégories comme dans l'exemple ci-dessus, plus lesdites valeurs descriptives d'au moins 10 une structure géométrique caractéristique pour au moins l'une d'entre elles). Les diverses couches d'encodage sont typiquement disposées en parallèle. En complément, on utilise avantageusement comme représenté sur la figure 3 une pluralité de fonctions de coût à nouveau chacune spécifique d'une de ladite pluralité de bases d'images d'apprentissage. 15 On rappelle qu'une fonction de coût (dite de « loss », c'est-à-dire de perte) spécifie comment l'apprentissage du CNN pénalise l'écart entre le signal prévu et réel. Plus précisément, pour une donnée d'entrée (image d'apprentissage), la fonction de coût permet de quantifier une « erreur » entre la sortie obtenue par le CNN (les éléments détectés) et la sortie théorique (les éléments annotés). 20 L'apprentissage vise à modifier les paramètres du CNN de sorte à diminuer graduellement l'erreur telle que calculée par la fonction de coût. On connait par exemple la fonction Softmax (ou fonction exponentielle normalisée), ou encore la fonction de Huber, des normes comme la norme Li, etc. Pour réaliser l'apprentissage à proprement parler, la technique classique 25 dite de rétropropagation du gradient propage « vers l'arrière » l'erreur calculée de sorte à mettre à jour les paramètres de toutes les couches. Dans le présent mode de réalisation, on utilise pour ce faire des fonctions de coût différentes selon la base d'où vient chaque image d'apprentissage. Plus précisément, on tire aléatoirement de façon itérative des images d'apprentissage 30 dans la pluralité de base (i.e. chaque image peut être issue de n'importe quelle base), et on fait varier pour chacune les poids et paramètre du CNN sur la base de la fonction de coût correspondant à la base dont elle provient. 16 De façon particulièrement préférée, on met en oeuvre un paradigme d'apprentissage dit en « batch », c'est-à-dire que pour un ensemble d'images d'apprentissage issues indifféremment des diverses bases l'on calcule d'abord les erreurs (avec la fonction de coût correspondante) sans mettre à jour les 5 paramètres, puis on additionne ces différentes erreurs, et lorsque l'ensemble des images dudit ensemble est passé une fois dans le CNN, on applique la rétropropagation dans tout le CNN en utilisant l'erreur totale (sommée). Le CNN commun pourra être utilisé comme détecteur « multi-catégories » lorsqu'appliqué aux images d'entrée. Naturellement il est déjà possible de faire 10 des détecteurs multi-catégories à partir d'une seule base de données si celle-ci a déjà les éléments de plusieurs catégories annotés, mais on est limité à ces catégories. Le CNN commun de la présente invention permet de combiner n'importe quelles bases de données d'apprentissage, et donc d'être multicatégories de façon complètement libre. 15 On comprend que le fait de multiplier les couches d'encodage et les fonctions de coût permet, sans augmenter sensiblement la taille du réseau, de ne pas avoir une détection pénalisée par une autre et d'avoir la même efficacité qu'avec une pluralité de détecteurs. De plus on a un gain de temps significatif dans l'apprentissage puisque celui-ci peut être simultané pour toutes les bases. 20 A noter qu'il reste tout à fait possible, si l'on souhaite détecter un nombre élevé de catégories différents, d'apprendre d'autres CNN, qu'ils soient chacun conforme à l'invention (CNN commun à plusieurs bases de données) ou conformes à l'état de l'art (CNN spécifique à une base de données). Par exemple ou pourrait avoir un premier CNN commun détecteur multi-catégories, et un 25 deuxième CNN détecteur dédié à une autre catégorie complexe à identifier apprise par conséquent sur une base de données particulière. En complément, l'apprentissage du ou des CNN peut être mis en oeuvre à partir d'au moins une base d'images d'apprentissage dans lesquelles sont en 30 outre déjà annotées des structures géométriques caractéristiques, en particulier les structures géométriques caractéristiques d'un au moins une catégorie donnée (la première catégorie). 17 Comme expliqué avant, le CNN comprend alors une couche d'encodage pour la génération d'un vecteur de représentation des éléments d'intérêt à détecter comprenant pour au moins ladite première catégorie d'élément d'intérêt à détecter, au moins une (avantageusement trois, en particulier cordonnées et 5 visibilité) valeur descriptive d'au moins une (avantageusement trois) structure géométrique caractéristique (en particulier point caractéristique) de ladite première catégorie d'élément d'intérêt. On comprendra à nouveau que toutes les structures géométriques caractéristiques ne sont pas forcément visibles et que naturellement seuls celles qui le sont peuvent être détectées. Ainsi, même si l'on tente de 10 détecter trois points caractéristiques, on n'y arrivera pas forcément pour les trois (mais on indiquera alors le ou lesquels ne sont pas visibles). Détection 15 Selon un deuxième aspect est proposé un procédé de détection d'éléments d'intérêt visibles dans une image (d'entrée, par opposition aux images d'apprentissage), par les moyens de traitement de données 21 du terminal 2, au moyen d'au moins un CNN appris conformément au procédé selon le premier aspect. 20 Ce procédé de détection comprend deux étapes : dans une première étape est mis en oeuvre l'apprentissage d'un CNN tel que défini précédemment, et dans une deuxième étape les moyens de traitement de données 21 du terminal 2 traitent ladite image, au moyen du CNN, de sorte à détecter le ou les éléments d'intérêt qui y sont visibles. 25 Ce procédé est mis en oeuvre de façon classique, on comprend juste comme expliqué que la détection peut être « multi-catégories ». A nouveau, d'autres CNN peuvent être utilisés comme détecteurs d'éléments d'intérêt d'autres catégories. 30 Association & suivi 18 Le présent procédé de détection peut être utilisé dans un procédé d'association d'éléments d'intérêt visibles dans une image, mis en oeuvre par les moyens de traitement de données 21 du terminal 2. Plus précisément, peut être mise en oeuvre la détection d'au moins un 5 élément d'intérêt d'une première catégorie et d'au moins un élément d'intérêt d'une deuxième catégorie différente de la première catégorie visibles dans ladite image, conformément au procédé de détection selon le deuxième aspect, puis chaque élément d'intérêt de la première catégorie détecté dans ladite image est associé avec un élément d'intérêt de la deuxième catégorie détecté dans ladite 10 image. On rappelle que deux éléments associés sont considérés comme étant liés à, et en particulier faisant partie de, la même entité, comme expliqué précédemment. On notera qu'il est toujours possible qu'il reste un élément de la première 15 ou de la deuxième catégorie « orphelin » s'il n'y pas le même nombre d'éléments de la première et de la deuxième catégorie ayant été détectés, i.e. si par exemple celui avec lequel un élément aurait dû être associé est masqué ou que la détection n'a pas fonctionné. Chaque élément d'intérêt est avantageusement référencé avec un 20 identifiant, et de façon préférée l'association de deux éléments se traduit en associant au second l'identifiant du premier (i.e. les deux sont référencés sous le même identifiant). L'association peut être mise en oeuvre de façon classique (typiquement par détection d'inclusion d'un deuxième élément dans le premier élément), mais de 25 façon particulièrement préférée, on utilisera un procédé innovant d'association d'éléments d'intérêt dans une image tel que décrit dans la demande FR1859162, impliquant le CNN à vecteur de représentation allongé décrit ci-avant. L'idée astucieuse est de ne pas comparer directement les éléments de la première catégorie et les éléments de la deuxième catégorie, mais partant du 30 principe que la deuxième catégorie est une sous-partie de la première catégorie et que les points caractéristiques de la première catégorie d'élément d'intérêt sont également des points caractéristiques de la deuxième catégorie d'élément d'intérêt, de comparer directement les points caractéristiques de la première 19 catégorie avec les éléments de la deuxième catégorie : les points caractéristiques peuvent être vus comme une « deuxième détection » d'un élément de la deuxième catégorie, qu'il est facile de mettre en correspondance avec celui-ci. 5 Enfin, le présent procédé d'association peut être utilisé dans un procédé de suivi d'éléments d'intérêt visibles dans une vidéo constituée d'une séquence de K images. Produit programme d'ordinateur 10 Selon un troisième et un quatrième aspects, l'invention concerne un produit programme d'ordinateur comprenant des instructions de code pour l'exécution (en particulier sur les moyens de traitement de données 11a, 11 b, 11c, 21 d'un ou plusieurs serveurs la, 1 b, 1 c ou du terminal 2) d'un procédé selon le premier 15 aspect de l'invention d'apprentissage de paramètres d'un CNN ou un procédé selon le deuxième aspect de l'invention de détection d'éléments d'intérêt visibles dans une image ; ainsi que des moyens de stockage lisibles par un équipement informatique (une mémoire 12a, 12b, 12c, 22 d'un ou plusieurs serveurs 1 a, 1 b, 1 c ou du terminal 2) sur lequel on trouve ce produit programme d'ordinateur. REVENDICATIONS1. Procédé d'apprentissage de paramètres d'un réseau de neurones à convolution, CNN, par des moyens de traitement de données (11 a, 11 b, 11c) d'au moins un serveur (1 a, 1 b, 1c), pour détection d'éléments d'intérêt d'au moins deux catégories d'éléments d'intérêts visibles dans une ou plusieurs images, le procédé étant caractérisé en ce qu'il est mis en oeuvre à partir d'une pluralité de bases d'images d'apprentissage dans lesquelles lesdits éléments d'intérêt sont déjà annotés, le CNN étant un CNN commun à ladite pluralité de bases d'images d'apprentissage, et présentant un tronc commun et une pluralité de couches d'encodage chacune spécifique d'une de ladite pluralité de bases d'images d'apprentissage. 2. Procédé selon la revendication 1, comprenant l'utilisation d'une pluralité de fonctions de coût chacune spécifique d'une de ladite pluralité de bases d'images d'apprentissage. 3. Procédé selon la revendication 2, comprenant le tirage aléatoire itératif d'images d'apprentissage dans la pluralité de bases, et pour chaque image d'apprentissage tirée, et le calcul d'une erreur d'apprentissage sur la base de la fonction de coût spécifique de la base de laquelle vient ladite image d'apprentissage tirée. 4. Procédé selon la revendication 3, comprenant en outre, pour un ensemble desdites images d'apprentissages tirées aléatoirement dans la pluralité de base, la somme des erreurs d'apprentissage calculées pour chacune des images d'apprentissage dudit ensemble, et la mise à jour des paramètres du CNN en fonction de ladite somme. 5. Procédé selon l'une des revendications 1 à 4, dans lequel ledit tronc commun du CNN comprend toutes les couches présentant des paramètres variables autres que les couches d'encodage. 21 6. Procédé selon l'une des revendications 1 à 5, dans lequel chaque couche d'encodage est une couche de convolution ou une couche entièrement connectée, générant un vecteur de représentation des éléments 5 d'intérêt détectés. 7. Procédé selon l'une des revendications 1 à 6, dans lequel chaque base d'images d'apprentissage est associée à un ensemble de catégories d'élément d'intérêt, les éléments d'intérêt annotés dans les images d'une base 10 étant ceux appartenant à une catégorie dudit ensemble associé à la base, lesdits ensembles de catégories étant différents d'une base à l'autre. 8. Procédé selon la revendication 7, dans lequel ladite pluralité de bases d'images d'apprentissage comprend au moins une première base, une 15 deuxième base et une troisième base, l'ensemble de catégories d'élément d'intérêt associé à la première base comprenant la catégorie visage, l'ensemble de catégories d'élément d'intérêt associé à la deuxième base comprenant la catégorie personne, et l'ensemble de catégories d'élément d'intérêt associé à la troisième base comprenant la catégorie véhicule ou au moins un sous-catégorie 20 de la catégorie véhicule. 9. Procédé selon l'une des revendications 1 à 8, au moins une base d'images d'apprentissage présente des images d'apprentissage dans lesquelles des structures géométriques caractéristiques d'éléments d'intérêt sont 25 également annotées, la couche d'encodage spécifique de cette base d'images d'apprentissage générant un vecteur de représentation des éléments d'intérêt détectés comprenant, pour au moins une catégorie donnée d'élément d'intérêt à détecter, au moins une valeur descriptive d'au moins une structure géométrique caractéristique de ladite catégorie d'élément d'intérêt. 30 10. Procédé de détection d'éléments d'intérêt visibles dans une image, par des moyens de traitement de données (21) d'un terminal (2), au moyen d'un CNN appris conformément au procédé selon l'une des revendications 1 à 9. 22 11. Produit programme d'ordinateur comprenant des instructions de code pour l'exécution d'un procédé selon l'une des revendications 1 à 10 d'apprentissage de paramètres d'un réseau de neurones à convolution, CNN, ou 5 de détection d'éléments d'intérêt visibles dans une image, lorsque ledit programme est exécuté par un ordinateur. 12. Moyen de stockage lisible par un équipement informatique sur lequel un produit programme d'ordinateur comprend des instructions de code pour 10 l'exécution d'un procédé selon l'une des revendications 1 à 10 d'apprentissage de paramètres d'un réseau de neurones à convolution, CNN, ou de détection d'éléments d'intérêt visibles dans une image.