FR 3060170 A1 20180615 FR 1662455 A 20161214 SYSTÈME DE RECONNAISSANCE D'OBJETS BASÉ SUR UN MODÈLE GÉNÉRIQUE 3D ADAPTATIF Domaine technique L'invention est relative aux systèmes de reconnaissance d'objets mobiles, et notamment 5 aux systèmes basés sur un apprentissage machine. Arrière-plan L'isolation et le suivi d'un objet mobile dans une séquence d'images peuvent être effectués par des algorithmes génériques relativement peu sophistiqués basés, par exemple, sur la soustraction d'arrière-plan. Par contre, il est plus difficile de classer les 10 objets ainsi isolés dans des catégories que l'on souhaite détecter, c'est-à-dire reconnaître si l'objet est une personne, une voiture, un vélo, un animal, etc. En effet, les objets peuvent avoir une grande variété de morphologies dans les images de la séquence (position, taille, orientation, distorsion, texture, configuration d'éventuels appendices et éléments articulés, etc.). Les morphologies dépendent en outre de l'angle de vue et de 15 l'objectif de la caméra qui filme la scène à surveiller. Parfois on souhaite également reconnaître des sous-classes (modèle de voiture, genre d'une personne). Pour classer et détecter les objets on a généralement recours à un système d'apprentissage machine. Le classement s'appuie alors sur une base de connaissances ou un jeu de données élaboré par apprentissage. Un jeu de données initial est 20 généralement généré lors d'une phase d'apprentissage dit supervisé, où un opérateur visionne des séquences d'images produites en contexte et annote manuellement les zones d'image correspondant aux objets à reconnaître. Cette phase est généralement longue et fastidieuse, car on cherche idéalement à capturer toutes les variantes possibles de la morphologie des objets de la classe, du moins suffisamment de variantes pour 25 obtenir un taux de reconnaissance satisfaisant. Pour alléger cette tâche initiale d'apprentissage supervisé, on a proposé des techniques d'apprentissage automatique où, plutôt que d'alimenter le jeu de données avec des images réelles annotées, on l'alimente avec des images synthétisées auto-annotées générées à partir de modèles tridimensionnels des objets à reconnaître. Une telle 30 technique est décrite pour configurer un détecteur de piétons dans l'article ["Learning Scene-Specific Pedestrian Detectors without Real Data", Hironori Hattori et al. 2015 IEEE Conference on Computer Vision and Pattern Recognition (CVPR)]. Une technique similaire est décrite pour configurer un détecteur de voitures dans l'article 3060170 2 ["Teaching 3D Geometry to Deformable Part Models", Bojan Pepik et al. 2012 IEEE Conference on Computer Vision and Pattern Recognition (CVPR)]. Une caractéristique de ces techniques est qu'elles génèrent de nombreuses images synthétisées qui, bien qu'elles soient conformes aux paramètres et contraintes des 5 modèles 3D, ont des morphologies improbables. Cela encombre le jeu de données avec des images inutiles et peut ralentir la reconnaissance. En outre, certains objets ont une morphologie tellement variable qu'il est difficile de reproduire de façon réaliste toutes les possibilités avec un modèle 3D ayant un nombre gérable de paramètres et contraintes. Il en résulte des lacunes dans le jeu de données et 10 des défauts de détection de certains objets. Résumé On prévoit de façon générale un procédé de configuration automatique d'un système de reconnaissance d'une classe d'objets de morphologie variable, comprenant les étapes suivantes : prévoir un système d'apprentissage machine avec un jeu de données initial 15 suffisant pour reconnaître des instances d'objets de la classe dans une séquence d'images d'une scène cible ; prévoir un modèle tridimensionnel générique spécifique à la classe d'objets, dont la morphologie est définissable par un jeu de paramètres ; acquérir une séquence d'images de la scène à l'aide d'une caméra ; reconnaître des instances d'image d'objets de la classe dans la séquence d'images acquise en utilisant le 20 jeu de données initial ; conformer le modèle tridimensionnel générique à des instances d'image reconnues ; enregistrer des plages de variation des paramètres résultant des conformations du modèle générique ; synthétiser de multiples objets tridimensionnels à partir du modèle générique en faisant varier les paramètres dans les plages de variation enregistrées ; et compléter le jeu de données du système d'apprentissage par des 25 projections des objets synthétisés dans le plan des images. Le procédé peut comprendre les étapes suivantes : définir des paramètres du modèle tridimensionnel générique par les positions relatives d'amers d'un maillage du modèle, les positions des autres noeuds du maillage étant liées aux amers par des contraintes ; et opérer des conformations du modèle tridimensionnel générique en positionnant des 30 amers d'une projection du modèle dans le plan des images. 3060170 3 Le procédé peut comprendre en outre les étapes suivantes : enregistrer des textures à partir de zones des instances d'image reconnues ; et plaquer sur chaque objet synthétisé une texture parmi les textures enregistrées. Le jeu de données initial du système d'apprentissage peut être obtenu par un 5 apprentissage supervisé impliquant au moins deux objets de la classe dont les morphologies sont à des extrêmes opposés d'un domaine de variation constaté des morphologies. Description sommaire des dessins Des modes de réalisation seront exposés dans la description suivante, faite à titre non 10 limitatif en relation avec les figures jointes parmi lesquelles : - la figure 1 représente un modèle générique tridimensionnel schématique d'un objet, projeté en différentes positions d'une scène vue par une caméra ; et - la figure 2 illustre schématiquement une phase de configuration d'un système d'apprentissage machine pour reconnaître des objets selon le modèle générique 15 de la figure 1. Description de modes de réalisation Pour simplifier la phase de configuration initiale d'un détecteur d'objets, on propose, comme l'article susmentionné de Hironori Hattori, de configurer un système d'apprentissage machine à l'aide d'images synthétisées et auto-annotées à partir de 20 modèles tridimensionnels. Cependant, pour améliorer le taux de reconnaissance, les modèles tridimensionnels sont obtenus à partir d'un modèle générique paramétrable qui a été au préalable conformé aux images d'objets réels filmés en contexte. La figure 1 illustre un modèle générique simplifié d'un objet, à titre d'exemple une voiture, projeté sur une image en différentes positions d'un exemple de scène surveillée 25 par une caméra fixe. La scène est ici, pour des raisons de simplicité, une rue traversant horizontalement le champ de vision de la caméra. À l'arrière-plan, le modèle est projeté en trois positions alignées, au centre et près des bords gauche et droit de l'image. Au premier plan, le modèle est projeté dans une position légèrement à gauche. Toutes ces projections sont issues d'un même modèle du 30 point de vue des dimensions et montrent les variations de morphologie des projections dans l'image en fonction de la position dans la scène. Dans une scène plus complexe, 3060170 4 par exemple une rue courbe, on verrait également des variations de morphologie en fonction de l'orientation du modèle. Les variations de morphologie en fonction de la position sont définies par la projection du plan sur lequel évoluent les objets, ici la rue. La projection du plan d'évolution est 5 définie par des équations qui dépendent des caractéristiques de la caméra (angle de vue, focale et distorsion de l'objectif). Les arêtes perpendiculaires à l'axe de la caméra changent de taille homothétiquement en fonction de la distance à la caméra, et les arêtes parallèles à l'axe de la caméra suivent des lignes de fuite. Il en résulte que, lors d'un déplacement latéral d'une voiture dans la vue illustrée, la face avant de la voiture, 10 initialement visible, est cachée à partir du centre de l'image, tandis que la face arrière, initialement cachée, devient visible à partir du centre de l'image. La face supérieure de la voiture, toujours visible dans cet exemple, se déforme en cisaillement selon des lignes de fuite. En résumé, les projections d'un même objet dans l'image à des positions ou orientations 15 différentes ont une morphologie variable, même si l'objet réel a une morphologie fixe. Bien entendu, les objets réels peuvent également avoir une morphologie variable, que ce soit d'un objet à l'autre (entre deux voitures de modèles différents), ou au cours du déplacement d'un même objet (piéton). Les systèmes à apprentissage sont bien adaptés à cette situation lorsqu'ils ont été configurés avec suffisamment de données pour 20 représenter l'éventail de morphologies projetées les plus probables. Le modèle générique tridimensionnel envisagé, par exemple de type PDM (« Point Distribution Model » ou modèle à distribution de points), peut comporter un maillage de noeuds liés les uns aux autres par des contraintes, c'est-à-dire des paramètres qui établissent les déplacements relatifs entre des noeuds adjacents ou les déformations du 25 maillage que provoquent les déplacements de certains noeuds, dits amers (« landmarks »). Les amers sont choisis pour que leurs déplacements permettent d'atteindre toutes les morphologies souhaitées du modèle à l'intérieur des contraintes définies. Comme le représente la figure 1, dans le premier plan, un modèle générique simplifié de 30 voiture peut comporter, pour la carrosserie, un maillage de 16 noeuds définissant 10 surfaces rectangulaires et comportant 10 amers. Huit amers KO à K7 définissent l'une des faces latérales de la voiture, et les deux amers restants K8 et K9, situés sur l'autre face latérale, définissent la largeur de la voiture. Un seul amer suffirait à définir la largeur de la voiture, mais la présence de deux amers ou plus permettra de conformer le 3060170 modèle à une projection d'un objet réel en tenant compte des déformations de la projection. Les roues sont un élément caractéristique d'une voiture et on peut leur attribuer un jeu d'amers spécifique, non représenté, définissant l'entre-axe, le diamètre et les points de contact avec la route. 5 Diverses contraintes peuvent être affectées à ces amers pour que le modèle soit conforme à la gamme de voitures à détecter, par exemple, maintenir le parallélisme entre les deux faces latérales ; maintenir le parallélisme entre les faces avant et arrière ; maintenir le parallélisme entre les arêtes perpendiculaires aux faces latérales ; assurer que les noeuds K3 et K5 soient au-dessus des noeuds K1 et K6 ; assurer que les noeuds K3 et K4 soient au-dessus des noeuds K2 et K5 ; assurer que les noeuds K2 et K3 soient à droite des noeuds K1 et K2 ; assurer que les noeuds K4 et K5 soient à gauche des noeuds K5 et K6, etc. Comme on l'a précédemment indiqué, le modèle 3D générique illustré est simpliste, cela pour clarifier l'exposé. Dans la pratique, le modèle comprendra un maillage plus 15 fin et permettant de définir des arêtes et des surfaces courbes. La figure 2 illustre schématiquement une phase de configuration d'un système d'apprentissage machine pour reconnaître des voitures selon le modèle générique de la figure 1, à titre d'exemple. Le système d'apprentissage comprend un jeu de données 10 associé à une caméra 12 installée pour filmer une scène à surveiller, par exemple celle 20 de la figure 1. La phase de configuration peut démarrer à partir d'un jeu de données 10 existant, qui peut être sommaire et n'offrir qu'un faible taux de reconnaissance. Ce jeu de données existant peut avoir été produit par un apprentissage supervisé rapide et peu contraignant. Les étapes qui suivent servent à compléter le jeu de données pour atteindre un taux de 25 reconnaissance satisfaisant. Le système de reconnaissance est mis en marche et se met à reconnaître et suivre des voitures dans les images successives capturées par la caméra. Une instance d'image de chaque voiture reconnue est extraite en 14. Pour simplifier l'exposé, seule une face latérale des voitures est illustrée dans les instances - en réalité chaque instance est une 30 projection en perspective dans laquelle d'autres faces sont le plus souvent visibles. 3060170 6 La caméra produit généralement plusieurs images qui contiennent chacune une instance de la même voiture, à des positions différentes. On peut choisir l'instance la plus grande, qui aura la meilleure résolution pour les opérations ultérieures. Ensuite, le modèle 3D générique est conformé à chaque instance d'image ainsi extraite. 5 Cela peut être effectué par un algorithme classique de conformation (« fitting ») qui cherche, par exemple, les meilleures correspondances entre l'image et les amers du modèle tel que projeté dans le plan de l'image. On peut également utiliser des algorithmes basés sur la détection d'amers, comme cela est décrit, par exemple, dans ["One Millisecond Face Alignment with an Ensemble of Regression Trees", Vahid 10 Kazemi et al. IEEE CVPR 2014]. Bien entendu, il est préférable que d'autres faces des voitures soient visibles dans les instances pour que le modèle puisse être défini de manière complète. Ces opérations de conformation produisent des modèles 3D censés être à l'échelle des objets réels. Pour cela, les opérations de conformation peuvent utiliser les équations de la projection du plan d'évolution de l'objet. Ces équations peuvent être déterminées manuellement à partir des caractéristiques de la caméra et de la configuration de la scène, ou bien estimées par le système dans une phase d'étalonnage utilisant, le cas échéant, des outils adaptés comme des caméras de profondeur. En sachant que les objets évoluent sur un plan, les équations peuvent être déduites à partir de la variation de la taille en fonction de la position des instances d'un objet suivi. A l'issue de chaque conformation, on produit en 16 un modèle 3D représentant la voiture reconnue à l'échelle. Les modèles sont illustrés en deux dimensions, en correspondance avec les faces latérales extraites 14. (On remarque que le modèle 3D générique utilisé est conformable aussi bien à des voitures qu'à des fourgonnettes, voire à des autobus. Ainsi, le système est ici plutôt prévu pour reconnaître tout véhicule à quatre roues.) Pendant l'étape de conformation, on peut également échantillonner les zones d'image correspondant aux différentes faces de la voiture, et stocker ces zones d'image sous forme de textures en 18. Au bout d'une certaine durée d'acquisition, on aura collectionné sans supervision une multitude de modèles 3D représentant des voitures différentes, ainsi que leurs textures. Si le taux de reconnaissance offert par le jeu de données initial est faible, il suffit de 3060170 7 prolonger la durée d'acquisition pour atteindre une collection ayant un nombre satisfaisant de modèles. Lorsque la collection de modèles 16 est jugée satisfaisante, on compare les modèles entre eux en 20 et on relève pour chaque amer une plage de variation. On a illustré un 5 exemple de plage de variation pour l'amer K6. Les plages de variation peuvent définir des variations relatives affectant la forme du modèle lui-même, ou des variations absolues comme la position et l'orientation du modèle. L'un des amers, par exemple KO, peut servir de référence absolue. On peut lui attribuer des plages de variation absolue qui déterminent les positions et orientations 10 possibles de la voiture dans l'image. Ces plages ne sont en fait pas directement déductibles des modèles enregistrés, puisque qu'un modèle enregistré peut être issu d'une seule instance choisie sur une multitude d'instances produites au cours du déplacement d'une voiture. On peut estimer les variations de position et d'orientation en les déduisant des multiples instances d'une voiture suivie, sans pour cela devoir 15 effectuer une conformation complète du modèle générique à chaque instance. Pour un amer diamétralement opposé à KO, par exemple K6, on pourra établir une plage de variation relativement à l'amer KO, qui détermine la longueur de la voiture. Pour un autre amer diamétralement opposé, par exemple K8, on pourra établir une plage de variation relativement à l'amer KO, qui détermine la largeur de la voiture. La plage de 20 variation de chacun des autres amers peut être établi relativement à l'un de ses amers adjacents. Une fois que les plages de variation sont établies, on synthétise en 22 une multitude de voitures 3D virtuelles à partir du modèle générique en faisant varier les amers dans leurs plages de variation respectives. Sur chaque voiture virtuelle on peut en outre plaquer 25 l'une des textures 18. Les variations des amers peuvent être aléatoires, incrémentales, ou une combinaison des deux. En 24, chaque voiture synthétisée est projetée dans le plan de l'image de la caméra pour former une instance d'image auto-annotée servant à compléter le jeu de données 10 du système d'apprentissage. Ces projections utilisent également les équations de la 30 projection du plan d'évolution des voitures. Une même voiture synthétisée peut être projetée en plusieurs postions et orientations différentes, selon les plages de variation absolues précédemment déterminées. En général, les orientations sont corrélées aux positions, de sorte qu'on ne fera pas varier les deux paramètres de façon indépendante, 3060170 8 sauf si on souhaite détecter des situations anormales, comme une voiture en travers de la route. Si le jeu de données initial était insuffisant, le jeu de données complété par cette procédure pourrait encore comporter des lacunes empêchant la détection de certains 5 modèles de voiture. Dans ce cas, on peut réitérer une phase de configuration automatique en partant du jeu de données complété. Ce jeu de données offre normalement un taux de reconnaissance supérieur au jeu initial, ce qui conduira à la constitution d'une collection de modèles 16 plus variée, permettant d'affiner les plages de variation de paramètres et de synthétiser des modèles 22 à la fois plus précis et variés 10 pour alimenter de nouveau le jeu de données 10. Comme on l'a précédemment indiqué, le jeu de données initial peut être produit par un apprentissage supervisé simple et rapide. Dans une telle procédure, un opérateur visionne des images de la scène filmée et, à l'aide d'une interface graphique, annote les zones d'image correspondant à des instances des objets à reconnaître. 15 Comme la procédure de configuration ultérieure est basée sur les variations morphologiques du modèle générique, l'opérateur peut avoir intérêt à annoter les objets exhibant les variations les plus importantes. Il peut ainsi annoter au moins deux objets dont les morphologies sont à des extrêmes opposés d'un domaine de variation qu'il aurait constaté visuellement. 20 L'interface peut être conçue pour établir les équations de la projection du plan d'évolution avec l'assistance de l'opérateur. L'interface peut ensuite proposer à l'opérateur de conformer manuellement le modèle générique à des zones d'image, offrant à la fois une annotation et la création des premiers modèles dans la collection 16. Cette phase d'annotation est sommaire et rapide, l'objectif étant d'obtenir un jeu de 25 données initial restreint permettant le démarrage de la phase de configuration automatique qui complétera le jeu de données. De nombreuses variantes et modifications des modes de réalisation décrits ici apparaîtront à l'homme du métier. Bien que ces modes de réalisation concernent essentiellement la détection de voitures, la voiture n'est présentée qu'à titre d'exemple 30 d'objet que l'on souhaite reconnaître. Les principes décrits sont applicables à tout objet que l'on peut modéliser de façon générique, notamment des objets déformables, comme des animaux ou des humains. REVENDICATIONS1. Procédé de configuration automatique d'un système de reconnaissance d'une classe d'objets de morphologie variable, comprenant les étapes suivantes : - prévoir un système d'apprentissage machine avec un jeu de données initial (10) suffisant pour reconnaître des instances d'objets de la classe dans une séquence d'images d'une scène cible ; - prévoir un modèle tridimensionnel générique spécifique à la classe d'objets, dont la morphologie est définissable par un jeu de paramètres ; - acquérir une séquence d'images de la scène à l'aide d'une caméra (12) ; - reconnaître des instances d'image (14) d'objets de la classe dans la séquence d'images acquise en utilisant le jeu de données initial ; - conformer le modèle tridimensionnel générique (16) à des instances d'image reconnues (14) ; - enregistrer des plages de variation des paramètres (20) résultant des conformations du modèle générique ; - synthétiser de multiples objets tridimensionnels (22) à partir du modèle générique en faisant varier les paramètres dans les plages de variation enregistrées ; et - compléter le jeu de données (10) du système d'apprentissage par des projections des objets synthétisés (24) dans le plan des images. 2. Procédé selon la revendication 1, comprenant les étapes suivantes : - définir des paramètres du modèle tridimensionnel générique par les positions relatives d'amers (K0-K9) d'un maillage du modèle, les positions des autres noeuds du maillage étant liées aux amers par des contraintes ; et - opérer des conformations du modèle tridimensionnel générique en positionnant des amers d'une projection du modèle dans le plan des images. 3060170 10 3. Procédé selon la revendication 1, comprenant les étapes suivantes : - enregistrer des textures (18) à partir de zones des instances d'image reconnues ; et - plaquer sur chaque objet synthétisé (22) une texture parmi les textures 5 enregistrées. 4. Procédé selon la revendication 1, dans lequel le jeu de données initial du système d'apprentissage est obtenu par un apprentissage supervisé impliquant au moins deux objets de la classe dont les morphologies sont à des extrêmes opposés d'un domaine de variation constaté des morphologies.