• Aucun résultat trouvé

Les paragraphes suivants décrivent les contributions que nous avons essayées d’obtenir pendant la préparation de cette thèse.

2.4.1

Contribution à la Reconstruction 3D.

La reconstruction d’objets 3D nécessite plusieurs étapes ; nous nous limitons ici à la modélisation exploitant des données visuelles 3D denses. Les étapes sont :

– Acquisition d’images stéréo ;

– Obtention des données 3D par stéréo corrélation. – Décimation des images de points 3D.

– Recalage dans un nuage de points 3D, des images 3D décimées, obtenues depuis divers points de vue.

– Construction d’un maillage triangulaire à partir du nuage.

Signalons que les étapes mentionnées ci-dessus sont spécifiques à notre choix initial d”exploiter un capteur stéréo pour acquérir des données. Ces étapes seraient différentes, par exemple en considérant les méthodes récentes développées en Vision monoculaire, exploitant l’algorithme Sparse Bundle Adjustment (SBA) [85].

Acquisitions 3D.

En relation à l’acquisition d’images 3D, nous avons intégré une fonction qui calcule la discrétisation de la sphère unité (souvent appelée sphère de Gauss), cela pour discrétiser à intervalles réguliers, les points de vue sur une scène à analyser. En réalité, nous n’utilisons qu’un quart de cette sphère du fait des contraintes d’accessibilité des positions discrétisées sur la sphère, par le bras robotique. Comme nous avons une plate-forme mobile, nous pourrions la déplacer afin d’atteindre tous les points de vue souhaités, mais dans un premier temps, le système robotique reste en position fixe et nous ne déplaçons que le bras. La discrétisation de la demi sphère est obtenue par rapport au centre de gravité de la scène que le robot doit analyser ; cette sphère discrétisée sera exploitée aussi bien pour apprendre le modèle géométrique que pour apprendre la modèle d’apparence. L’algorithme global procède donc de la manière suivante :

– Acquisition d’une première image 3D de la scène. – Segmentation de la zone d’intérêt.

– Calcul des points de vue sur la sphère autour du centre de gravité.

Nous supposons que l’objet d’intérêt est posé sur une table, ce qui facilité l’étape de segmentation. Le rayon de la sphère centrée sur le centre de gravité des points 3D acquis sur l’objet, est choisi en fonction du champ de vue des caméras, donc des focales de leurs objectifs : ici, ce rayon est de 60cm.

Le capteur stéréo monté sur l’organe terminal du bras de JIDO comme on peut le voir en figure 2.7, sera donc placé dans des positions discrétisées sur cette sphère. Ces positions d’abord définies dans le repère de la sphère, seront ensuite exprimées via des transformations, dans le repère du bras, afin de vérifier leur accessibilité et de calculer les trajectoires du bras.

Décimation

Les algorithmes de décimation qu’on peut trouver dans la littérature, traitent principalement de la réduction des polygones ou des triangles dans un maillage, et non de la réduction de points dans un nuage de points. Il n’existe pas de travaux sur la décimation des nuages de points, comme cela est indiqué par Volodine et al. [153] qui ont abordé ce sujet.

Mais il nous fallait une solution qui soit rapide et efficace ; nous avons donc proposé l’algorithme suivant :

– Nous prenons des points à intervalles réguliers – Nous calculons les K voisins les plus proches.

– Ensuite, pour chaque point sélectionné et ses K-voisins : 1. Nous estimons le plan qui passe par le point et ses voisins. 2. Nous projetons tous ces points sur le plan .

3. Nous rejetons les voisins qui sont les plus proches du plan. 4. Nous retournons sur l’espace de l’objet.

5. On garde les points restants. Le Recalage entre deux points de vue

Dans le domaine du recalage d’images acquises depuis des points de vue différents, beaucoup de travaux ont visé à résoudre cette problématique [32] [24] [141]. L’algorithme le plus connu et donc, le plus utilisé est appelé Iterative Closest Points (ICP). Au LAAS cet algorithme de recalage a été étudié et développé par A. Restrepo [133] ; cette méthode converge seulement dans les cas où les différences d’angles de vue entre les deux positions du capteur, ne sont pas très grandes, ou quand on dispose d’une estimée initiale de cette différence.

Nous avons implémenté une variante de l’algorithme, variante appelée ICP Pseudo-couleur exploitant la couleur pour apparier des points acquis depuis deux positions du capteur. Nous l’avons appelé ainsi car nous assignons à chaque point 3D des nuages à recaler, une information couleur virtuelle, en fonction de leur position dans l’espace. A l’aide de ces informations de pseudo-couleurs, nous utilisons l’algorithme développé par Druon et al. [44], algorithme qui lui, exploite une vraie couleur.

Paramétrisation sphérique pour la construction du maillage.

Un capteur 3D (scanner 3D, stéréovision. . . ) permet d’acquérir une grande quantité de points 3D échantillonnés sur la surface 3D de l’objet que l’on souhaite modéliser en 3D. Ces points sont généralement organisés sous forme d’une image 3D, ce qui donne des informations de voisinage partiel. Malgré cela, après le recalage de plusieurs images 3D, on obtient un nuage de points 3D inorganisés, sans aucune structure exploitable pour la saisie d’un objet. Il faut donc construire une représentation surfacique ; ce sera un maillage pour un objet de forme libre, représentation définie par un ensemble de polygones (généralement des triangles) et par une structure de connectivité entre eux.

Le maillage peut-être obtenu en utilisant les différents algorithmes qui existent actuellement, déjà cités ci-dessus, par exemple Marching Cubes. Mais dans notre cas, dans un premier temps nous ne voulons pas avoir une représentation la plus fidèle possible, mais plutôt avoir une représentation grossière de l’objet que nous allons modéliser. Tout cela parce que la fonction de planification des positions de prise sur l’objet, connaissant la géométrie de la pince ou de la main montée sur le manipulateur, n’a pas besoin d’avoir autant de polygones. En plus cette fonction a besoin d’un modèle surfacique complètement fermé pour éviter, au moment de planifier la trajectoire de prise, une mauvaise planification du mouvement

du bras depuis la position initiale jusqu’à la position de prise : or de nombreuses méthodes classiques, Marching Cubes, Alpha Shapes, Ball Pivoting..., ne garantissent pas l’absence de trous dans le maillage. C’est la raison pour laquelle nous avons implémenté un algorithme de reconstruction qui soit en même temps rapide et qui produise un modèle exploitable pour planifier la saisie de l’objet. Cet algorithme est appelé Paramétrisation Sphérique. Les différentes étapes sont :

– Estimer la normale en chaque point, par approximation d’un plan local. – Projeter le point 3D sur une sphère unitaire.

– En utilisant un algorithme de recherche d’enveloppe convexe, trianguler la sphère. – Récupérer les informations des arêtes.

– En utilisant l’information des points 3D et les arêtes, obtenir le maillage 3D de l’objet.

Cet algorithme est rapide, mais il a un inconvénient important : il travaille sur des objets convexes ou quasi-convexes (pas de repliement de la surface de l’objet, par rapport au centre de la sphère englobante). Cela nous restreint sur la nature des objets que nous pouvons modéliser ; comme la plupart des objets d’usage courant sont convexes, nous pourrons modéliser une large gamme d’objets avec la méthode proposée.

2.4.2

Contribution à la reconnaissance d’objets 3D de forme libre.

Notre contribution dans le domaine de la reconnaissance d’objets est focalisée sur la reconnaissance active d’objets. Nous proposons une approche probabiliste fondée sur la Maximisation de l’Information Mutuelle [41] [40]. Cette approche exploite des histogrammes pour chacune des caractéristiques que l’on veut utiliser pour discriminer des objets : durant un travail préliminaire, nous l’avons d’abord appliquée en exploitant uniquement les histogrammes couleur.

Ensuite, nous avons pris en compte, pour représenter chaque classe d’objets à reconnaître, en plus des caractéristiques colorimétriques, des informations géométriques apprises depuis différents points de vue autour de ces objets. Ces caractéristiques sont apprises hors ligne, sur des séquences d’images dans lesquels l’objet à apprendre est isolé, posé sur une table non texturée et de couleur uniforme. Dans chaque image on extrait la région image de l’objet ; cette région est séparée du fond, par une méthode de contours actifs ; ce contour converge sur la silhouette de l’objet. De cette région, sont extraits les caractéristiques sur la silhouette décrite par la signature polaire, ou Shape Signature, sur les contours extraits à l’intérieur de la région, décrits par le descripteur appelé Shape Context [21], et sur des points d’intérêt extraits dans cette région par les détecteurs proposés soit par Harris & Stephens, soit par D.Lowe (DOG en multi-résolution), puis caractérisés par les descripteurs SIFT [86].

De plus, pour être robuste aux occultations, nous adoptons une approche hiérarchique pour décrire chaque point de vue sélectionné en phase d’apprentissage sur chaque objet. D’abord au plus haut niveau, l’objet est décrit par la région entière délimitée par sa silhouette ; cette région ne sera reconnue que si l’objet est vu entièrement et est non accolé à un autre objet (la silhouette n’englobe pas plusieurs objets). Puis aux niveaux suivants, l’objet est décrit par des sous-régions obtenus par découpage récursif de cette région entière. En utilisant les points SIFTs nous obtenons un système plus robuste encore : les SIFTs sont également associés aux sous-régions auxquelles ils appartiennent.

Finalement, dans notre base de connaissances, le modèle de chaque classe d’objet est mémorisé, pour chaque point de vue, par un ensemble d’histogrammes différents et par une liste de points dotés de leurs descripteurs SIFT. Le robot dispose donc d’une base de données avec les modèles des objets décrits de manière hiérarchique ; nous proposons une méthode de reconnaissance séquentielle, active, robuste aux occultations.

Initialement, notre robot a donc détecté un ou plusieurs TRUCs posés sur la table. A chaque itération, le système acquiert une image et extrait de l’image les silhouettes de ces TRUCs, grâce à une méthode de contours actifs ; si rien de significatif n’est extrait, alors le système conclut de suite qu’il n’y a rien sur la table. Sinon il essaye d’identifier chacun des TRUCs extraits en comparant leurs caractéristiques avec ce qui a été mémorisé en phase d’apprentissage. S’il ne peut conclure, il choisit le prochain point de vue qui permettra d’avancer vers une décision : cette sélection se fait par maximisation de l’information mutuelle, en fonction de l’état courant du processus de reconnaissance et des modèles appris en phase d’apprentissage pour tous les objets que le robot est susceptible de reconnaître. Le système s’arrête quand tous les TRUCs détectés sur la table ont été identifiés avec une probabilité suffisante ; une classe Null permet de détecter qu’un TRUC est inconnu.

avec notre robot JIDO, la plupart de ces validations ont été menées à partir de bases d’images acquises depuis un appareil photo numérique, donc en considérant uniquement une acquisition monoculaire pour la reconnaissance. De ce fait, nous n’avons pas exploité au niveau de la reconnaissance, des caractéristiques 3D qui pourraient être apprises, pour chaque point de vue, depuis des données stéréo : seul un attribut, la densité sphérique, a été proposé et évalué en simulation.