FR 3086428 A1 20200327 FR 1858743 A 20180925 La présente invention concerne un procédé de détection et de localisation tridimensionnelle d'au moins une instance d'au moins un objet dans des données de représentation d'une scène tridimensionnelle. Elle concerne également un programme d'ordinateur et un système correspondants. D'une façon générale, elle s'inscrit dans le domaine industriel de la reconnaissance d'objets rigides ou quasi-rigides en vision tridimensionnelle par ordinateur. Elle nécessite une comparaison des données de représentation de la scène tridimensionnelle avec celles d'au moins un modèle d'objet rigide ou quasi-rigide à détecter et localiser dans la scène, pour une détection et localisation d'objet par recalage, c'est-à-dire par la détermination d'au moins un jeu de paramètres de transformation en translation et rotation pour la mise en correspondance d'au moins une instance d'objet dans la scène tridimensionnelle avec le modèle d'objet correspondant, ce dernier étant éventuellement défini dans un macro-modèle tridimensionnel. Par « modèle d'objet » dans ce contexte tridimensionnel, on entend une représentation prédéterminée d'un objet faisant référence. Elle peut consister en une représentation modélisée, par exemple par ordinateur, en trois dimensions spatiales d'un objet réel sous forme de nuage tridimensionnel de points, d'ensemble maillé de faces (de l'anglais « mesh ») ou de toute autre représentation mathématique (implicite, paramétrique, etc.) pouvant être convertie en un nuage tridimensionnel de points. Elle peut aussi être issue d'une capture de scène réelle, à l'aide d'un ou plusieurs capteurs, dans laquelle la représentation de l'objet en nuage tridimensionnel de points et sa disposition sont suffisamment contrôlées pour faire référence. Par « macro-modèle », on entend une scène modélisée ou réelle de référence comportant un ou plusieurs modèles d'objets dont la disposition dans cette scène modélisée ou réelle de référence est prédéfinie et connue. Les applications concrètes sont multiples et incluent : la localisation tridimensionnelle, par exemple en réalité virtuelle, augmentée ou mixte, d'un système tel qu'un véhicule, notamment un véhicule autonome, un piéton, un robot ou un dispositif portatif, par des techniques de cartographie et localisation simultanées (de l'anglais Simultaneous Localization And Mapping »), la reconstitution tridimensionnelle d'une scène à partir d'observations partielles complémentaires, 2 la reconstitution tridimensionnelle de scène par recalage tridimensionnel d'une scène sur une autre, l'une de ces deux scènes faisant référence, l'analyse d'une scène tridimensionnelle incluant une reconnaissance et une localisation d'objets dans cette scène, 5 l'inspection automatique et temps réel d'objets fabriqués industriellement, en particulier pour une recherche de défauts, - la préhension robotique et la manipulation robotisée d'objets dans l'espace, à l'aide notamment d'au moins un bras articulé industriel et/ou dans une chaîne d'assemblage par exemple. 10 La dernière application inclut notamment le dévracage (de l'anglais « bin picking ») consistant à reconnaître puis déplacer successivement ou simultanément, à l'aide d'un ou plusieurs bras de robots, des objets en vrac dans une chaîne de production ou dans un lieu de stockage. Le principe de la détection et de la localisation d'objet par recalage rigide sur 15 un modèle est très étudié dans l'état de la technique. Selon une chaîne de traitement bien établie et enseignée par exemple dans le document de brevet US 8,830,229 B2, il comporte les étapes suivantes : - obtention de jeux de paramètres de transformation en translation et rotation pour des mises en correspondance tridimensionnelle respectives de points 20 particuliers de chaque instance supposée dudit au moins un objet dans la scène tridimensionnelle avec leurs dispositions dans le macro-modèle tridimensionnel, - à partir de ces jeux de paramètres point à point et si au moins une instance d'objet est effectivement présente dans la scène tridimensionnelle, 25 détermination d'au moins un jeu de paramètres de transformation en translation et rotation pour la mise en correspondance tridimensionnelle d'au moins une instance d'objet de la scène tridimensionnelle avec au moins un modèle d'objet du macro-modèle tridimensionnel, et de façon optionnelle, vérification de la ou des transformations déterminées. 30 En ce qui concerne la première étape, elle consiste généralement à prétraiter les données de représentation de la scène tridimensionnelle obtenues par un ou plusieurs capteurs, à sélectionner des points particuliers d'intérêt à mettre en correspondance dans la scène et dans le macro-modèle, à calculer des descripteurs locaux ou globaux destinés à être associés à ces points particuliers sélectionnés pour faciliter et améliorer la mise en correspondance, puis à réaliser la mise en 3 correspondance proprement dite. Le détail de cette étape fait l'objet de nombreuses recherches et propositions de solutions dans l'état de la technique, mais il ne fait pas l'objet principal de la présente invention. En ce qui concerne la deuxième étape, elle est également le sujet de 5 nombreuses recherches dans l'état de la technique. Mais les solutions proposées souffrent généralement de limitations en termes de sensibilité aux données d'initialisation, de nombre d'instances ou modèles d'objets pouvant être traités simultanément, de représentation des paramètres de transformation en translation et rotation, de discrétisation de l'espace des transformations, etc. 10 Par exemple, une première famille de solutions est enseignée dans l'article de Bos' et al, intitulé c, A method for registration of 3-D shapes », publié dans IEEE Transactions on Pattern Analysis and Machine Intelligence, volume 14, n° 2, février 1992, pages 239 à 256. Cette méthode appelée ICP (de l'anglais « Iterative Closest Point ») aboutit à une très bonne convergence locale, mais dépend donc très 15 fortement des données d'initialisation. Pour cela, elle est souvent retenue pour être exécutée lors de la troisième étape de vérification, après application d'une autre méthode plus robuste mais moins précise en deuxième étape. En outre, pour un recalage de plusieurs instances d'objets sur plusieurs modèles d'objets, plusieurs initialisations et plusieurs régularisations a posteriori sont successivement 20 nécessaires. Une deuxième famille de solutions est enseignée dans l'article de Papazov et al, intitulé 1 - RS alors on passe à une étape 114, sinon directement à une étape 116. 15 L'étape 114 consiste à dupliquer tout vecteur de transformation normalisé VN proche de la césure +/- u en dupliquant son sous-vecteur de rotation normalisé RN en deux instances liées par un facteur additif de modulo de la façon suivante : RN [1] = RN = , et RN [2] = (-° - 2) û . Le facteur additif de modulo est 2 en valeurs normalisées et 2u en valeurs non normalisées. Il en résulte : 20 VN[1] = (TN, RN [1], aN) à sept dimensions ou VN[1] = (TN, RN [1]) à six dimensions, et VN[2] = (TN, RN [2], aN) à sept dimensions ou VN[2] = (TN, RN [2]) à six dimensions. Avantageusement, les deux instances VN [1] et VN [2] du vecteur de transformation normalisé VN restent indiquées comme liées et représentatives du même jeu de paramètres de transformation. 25 L'étape 116 succède à l'étape 112, ou à l'étape 114 en cas de rotation proche de la césure +/- u. Elle consiste à indexer le vecteur de transformation normalisé VN, ou ses deux instances VN[1] et VN[2] en cas de rotation proche de la césure +/- 17 dans la structure de recherche initialisée à l'étape 100. L'étape 116 est suivie d'un retour à l'étape 104 pour le traitement d'une autre matrice 4x4 restante, le cas échéant. La structure de recherche progressivement complétée par l'exécution de la 5 boucle d'étapes 104 à 116 ne sera pas détaillée car connue de l'état de l'art. Elle représente l'espace des vecteurs de transformation obtenus par traitement des jeux de paramètres de transformation issus de l'étape 102. Il s'agit par exemple d'un arbre binaire, notamment un arbre k-d, avantageusement associé à une distance euclidienne. On notera à cet égard que l'expression des vecteurs de transformation 10 telle que définie précédemment, notamment grâce à l'expression des sous-vecteurs de rotation conformément à la présente invention, est particulièrement bien adaptée à une telle distance euclidienne. En variante, la structure de recherche peut prendre une autre forme qu'un arbre : par exemple une représentation graphique ou en réseau hiérarchique, avantageusement associée à une distance euclidienne pour que 15 l'expression des vecteurs de transformation définie précédemment reste adaptée à une telle représentation. En effet, deux translations proches vectoriellement et en amplitude présentent une distance euclidienne proche exprimée de la façon suivante : D(T1:13) = f2)II. Mais de même, grâce à l'expression vectorielle proposée pour les rotations, 20 deux rotations proches vectoriellement et en amplitude angulaire présentent une distance euclidienne proche exprimée de la façon suivante : D(121, R2) = 11RJ. R211= 11011W. - 02r1211. Notamment on remarque que deux rotations d'amplitudes angulaires faibles proches de l'angle nul seront considérées comme proches selon cette distance quelle que soit leurs directions. 25 Ces deux distances sont qualitativement très cohérentes dans l'espace des transformations. De plus, grâce à la normalisation proposée des sous-vecteurs de translation et rotation, elles sont en outre quantitativement très cohérentes, de sorte qu'une distance euclidienne pour les vecteurs de transformation complets peut aisément en être déduite par relation de Pythagore impliquant ces deux distances. 30 Intuitivement, une troisième distance euclidienne entre changements d'échelles peut être très simplement définie et combinée aux deux premières si besoin. 18 Mais la distance euclidienne entre rotations mérite toutefois d'être adaptée compte tenu de la gestion proposée à l'étape 114 des rotations proches de la césure +/- u. En théorie, elle devrait avantageusement s'exprimer sous la forme : D(Ri, R2) = j,mkeiNn2 11(01 - 2ft° - (02 - ou de façon normalisée sous la forme : 02 D R1, R2) = j,kekmin 11(- - 2j)-( - - 2k) 1. 12 1T rr 5 Une telle distance est complexe à calculer compte tenu de l'ensemble infini des valeurs possibles pour les indices j et k. Mais en pratique, il peut être démontré que cet ensemble peut être largement réduit à j, k E {0,1}2,j + k REVENDICATIONS1. Procédé de détection et de localisation tridimensionnelle d'au moins une instance (22, 24, 26, 28, 30) d'au moins un objet dans des données de représentation d'une scène tridimensionnelle (20) par comparaison avec au moins un modèle (12, 14, 16) dudit au moins un objet dans des données de représentation d'un macromodèle tridimensionnel (10) dudit au moins un objet, comportant les étapes suivantes : obtention (102) de jeux de paramètres de transformation en translation et rotation pour des mises en correspondance tridimensionnelle respectives de points particuliers de chaque instance (22, 24, 26, 28, 30) supposée dudit au moins un objet dans la scène tridimensionnelle (20) avec leurs dispositions dans le macromodèle tridimensionnel (10), expression (106, 108, 110, 112, 114, 116) de chaque jeu de paramètres de transformation dans un système de coordonnées à plusieurs dimensions incluant au moins une dimension pour la translation et au moins une dimension pour la rotation, classification automatique (118, 120, 122, 124, 126, 128, 130, 132, 134, 136) desdits jeux de paramètres de transformation, chaque classe éventuellement obtenue étant représentative d'une unique instance (22, 24, 26, 28, 30) dudit au moins un objet trouvée dans la scène tridimensionnelle (20) et d'un unique jeu de paramètres de transformation pour une mise en correspondance avec un unique modèle (12, 14) dans le macro-modèle tridimensionnel (10), caractérisé en ce que : l'expression (106, 108, 110, 112, 114, 116) de chaque jeu de paramètres de transformation se fait (108) sous la forme d'un vecteur de transformation incluant une expression de ladite au moins une dimension de rotation en tant que coordonnée(s) d'un sous-vecteur de rotation de ce vecteur de transformation, telle que l'orientation du sous-vecteur de rotation est normale au plan de rotation et sa norme est en relation monotone croissante avec l'angle de rotation exprimé entre 0 et TE, 27 la classification automatique (118, 120, 122, 124, 126, 128, 130, 132, 134, 136) est exécutée sur la base d'une fonction de mesure de distances entre lesdits vecteurs de transformation. 2. Procédé de détection et de localisation selon la revendication 1, dans 5 lequel ladite au moins une dimension de translation est exprimée en tant que coordonnée(s) d'un sous-vecteur de translation du vecteur de transformation et : chaque coordonnée du sous-vecteur de translation est normalisée (110) sur une dimension des données du macro-modèle (10) et/ou de la scène tridimensionnelle (20), de sorte qu'une amplitude de 10 variations de la norme de ce sous-vecteur de translation reste inférieure ou égale à 1, et chaque coordonnée du sous-vecteur de rotation est normalisée (110) en imposant que la norme du sous-vecteur de rotation soit égale à l'angle de rotation divisé par rr lorsqu'il est exprimé entre 0 et rr. 15 3. Procédé de détection et de localisation selon la revendication 1 ou 2, dans lequel la classification automatique (118, 120, 122, 124, 126, 128, 130, 132, 134, 136) desdits jeux de paramètres de transformation est une classification itérative par expansion progressive de classe. 4. Procédé de détection et de localisation selon la revendication 3, dans 20 lequel : l'étape (106, 108, 110, 112, 114, 116) d'expression de chaque jeu de paramètres de transformation comporte une indexation (116) de chaque vecteur de transformation obtenu dans une structure de recherche, notamment un arbre de recherche, notamment un arbre 25 binaire, notamment un arbre k-d, l'expansion progressive de chaque classe au cours de l'étape itérative de classification automatique (118, 120, 122, 124, 126, 128, 130, 132, 134, 136) est exécutée par recherche (130) de voisins dans la structure de recherche à l'aide de ladite fonction de mesure de 30 distances entre lesdits vecteurs de transformation. 5. Procédé de détection et de localisation selon la revendication 4, dans lequel, lors de l'étape (106, 108, 110, 112, 114, 116) d'expression de chaque jeu de paramètres de transformation, on détecte (112) pour chaque sous-vecteur de rotation si sa norme est proche d'une valeur de césure à un premier paramètre de voisinage près et on duplique (114) chaque vecteur de transformation en deux instances dont 28 les sous-vecteurs de rotations sont liés par un facteur additif de modulo que l'on indexe (116) dans la structure de recherche. 6. Procédé de détection et de localisation selon la revendication 5, dans lequel, lors de l'étape de classification automatique (118, 120, 122, 124, 126, 128, 5 130, 132, 134, 136), chaque vecteur de transformation ayant un nombre de voisins inférieur à un deuxième paramètre de voisinage prédéterminé (118, 132) est considéré comme une donnée aberrante et écarté de toute classe résultant de la classification automatique. 7. Procédé de détection et de localisation selon l'une quelconque des 10 revendications 1 à 6, dans lequel, lors de l'expression (106, 108, 110, 112, 114, 116) de chaque jeu de paramètres de transformation dans le système de coordonnées à plusieurs dimensions, on impose que la norme du sous-vecteur de rotation soit proportionnelle à l'angle de rotation exprimé entre 0 et rr. 8. Procédé de détection et de localisation selon l'une quelconque des 15 revendications 1 à 7, dans lequel les données de représentation de la scène tridimensionnelle (20) comportent une représentation numérique en imagerie tridimensionnelle de cette scène et les données de représentation du macro-modèle tridimensionnel (10) comportent une représentation numérique en imagerie tridimensionnelle de ce macro-modèle. 20 9. Programme d'ordinateur (54, 56, 58, 60) téléchargeable depuis un réseau de communication et/ou enregistré sur un support (52) lisible par ordinateur et/ou exécutable par un processeur (50), caractérisé en ce qu'il comprend des instructions pour l'exécution des étapes d'un procédé de détection et de localisation selon l'une quelconque des revendications 1 à 8, lorsque ledit programme est exécuté sur un 25 ordinateur. 10. Système (40) de détection et de localisation tridimensionnelle d'au moins une instance (22, 24, 26, 28, 30) d'au moins un objet dans des données de représentation d'une scène tridimensionnelle (20) par comparaison avec au moins un modèle (12, 14, 16) dudit au moins un objet dans des données de représentation d'un 30 macro-modèle tridimensionnel (10) dudit au moins un objet, le système comportant : au moins une mémoire (44) de stockage des données de représentation de la scène tridimensionnelle (20) et des données de représentation du macro-modèle tridimensionnel (10), et un processeur (50) de mise en correspondance de chaque instance 35 (22, 24, 26, 28, 30) dudit au moins un objet dans la scène 29 tridimensionnelle (20) avec un unique modèle (12, 14) dans le macromodèle tridimensionnel (10), programmé pour l'exécution des étapes d'un procédé de détection et de localisation selon l'une quelconque des revendications 1 à 8. 5