Réseaux récurrents avec inhibition

Télécharger le fichier pdf d’un mémoire de fin d’études

Dévracage et intelligence artificielle

Choix technologiques

Dans le cadre du module de vision du dévracage, l’algorithme doit permettre de localiser (segmenter) un nombre prédéterminé de pièces dans la scène et d’estimer leur position et orientation associées. Le choix de la zone de préhension et le cal-cul de la trajectoire du robot sont réalisés par des algorithmes ad hoc et ne sont pas détaillés dans cette thèse. Le fonctionnement du module consiste dans un premier temps, à isoler les pièces du bac puis, à les découper afin de former un nombre dé-terminé d’instances de la pièce. Chaque instance est ensuite traitée pour estimer à la fois la position de la pièce dans le repère du bac et son orientation par rapport à un modèle 3D de référence. Contrairement au module industriel du commerce testé pré-cédemment, les estimations de pose de ces pièces doivent être réalisées en un temps court. Les calculs de pose sont donc effectués en parallèle par des composants de calculs adaptés notamment en utilisant des cartes graphiques (Graphics Processing Unit, GPU). Dans le but d’employer des technologies peu onéreuses et de limiter les défauts liés aux scanners 3D (Table 2), ces travaux de thèse proposent de se limiter à une image 2D en couleurs (Red Green Blue, RGB) du haut du vrac comme donnée d’entrée pour le module de vision. L’algorithme va donc chercher à établir deux cor-respondances principales : une image de bac vers une ou plusieurs images de pièces segmentées et une image d’une pièce segmentée vers une position et une orientation.
Ces deux correspondances sont complexes puisqu’un bac peut contenir un grand nombre de pièces enchevêtrées chacune présentant des réflexions lumineuses dif-férentes. Cependant, à partir d’exemples, l’apprentissage automatique doit permettre de construire automatiquement ces correspondances démontrant alors, la pertinence de l’intelligence artificielle pour ce processus. Afin de respecter les critères du module de vision (Table 1), l’algorithme doit être capable d’estimer une pose parmi toutes les orientations possibles d’une pièce mais il doit également être robuste aux différentes variations lumineuses que peut subir le matériau plastique. Pour cela, les exemples servant à l’apprentissage doivent être suffisamment hétérogènes afin de couvrir une large gamme de poses de pièce aux luminances variées. Néanmoins, construire un tel jeu de données est chronophage car l’apprentissage nécessite plusieurs centaines de milliers d’images pour fonctionner de façon optimale. De plus, il n’est pas simple d’obtenir en pratique toutes les orientations d’une pièce dans une scène et les tables tournantes, parfois utilisées dans de tels cas, sont limitées aux positions d’équilibre de l’objet. Enfin, toute session de prises de vue est dépendante de l’éclairage de la pièce et peut ne pas correspondre aux futures conditions d’utilisation en usine. En effet, le poste de dévracage peut être placé à n’importe quel emplacement d’une usine, sans contrôle d’éclairage, aussi bien en production de jour comme de nuit.
Face à ce constat, ces travaux de thèse proposent d’employer un apprentissage basé sur des images de synthèse du modèle 3D de la pièce. Un rendu 3D permet d’envisa-ger toutes les orientations possibles de l’objet tout en contrôlant à la fois l’éclairage de la scène virtuelle et les propriétés du matériau. Ces rendus peuvent être effectués par une carte graphique durant l’entraînement de l’algorithme ce qui ne nécessite pas de stockage de données au préalable. Les paramètres de scène sont modifiables dynami-quement et aléatoirement, ce qui permet à l’apprentissage automatique de constam-ment traiter des données différentes. Pour générer des bacs, un moteur de collision peut être injecté dans le rendu 3D afin de créer un vrac réaliste par l’intermédiaire d’un lancer de pièces. De plus, selon l’initialisation du lancer et le nombre de pièces souhaité, l’algorithme peut apprendre à traiter un vrac plus ou moins dense. Cepen-dant, le défaut majeur de la génération d’images est le biais introduit entre les données synthétiques et les données réelles. En effet, certaines pièces possèdent des défauts d’aspects (lignes de soudure dans le moule, traces des éjecteurs et injecteurs…) et des gravures de traçabilité (logo, numéro de lot…) relativement difficiles à simuler. Il convient donc de bien maîtriser les paramètres de scène afin de fournir des images réalistes anticipant les futures conditions d’exploitation en usine mais aussi, de pro-poser un algorithme d’apprentissage absorbant ce biais introduit. L’utilisation d’images de synthèse pour l’apprentissage permet également de s’affranchir de la production a priori de la pièce. L’entraînement peut alors être réalisé en connaissant le type de plastique employé ainsi que les pigments de couleur. Ceci est un avantage lorsque les délais de réponses aux clients sont courts et que l’entreprise doit s’assurer que la pièce finale peut être produite dans les meilleures conditions.

Manipulations du modèle

La manipulation du modèle CAO dans la scène se décompose en deux opérations : une rotation puis une translation. Le choix de la représentation de la rotation est pri-mordial pour assurer non seulement une couverture angulaire de tout l’espace des orientations de l’objet (pas de blocage de Cardan) mais également une bonne intégra-tion dans un réseau de neurones et un calcul d’erreur d’estimation de pose pertinent. Afin de simplifier la transformation d’un grand nombre de sommets dans le modèle, ces deux opérations peuvent être combinées en un tenseur facilement utilisable au sein d’un moteur de rendus dans une carte graphique.

Représentations de la rotation

Dans un espace 3D (l’espace Euclidien R3 ici), une succession de 3 rotations (en général axées sur la base orthonormée de l’espace) permet de couvrir toutes les orien-tations possibles d’un solide dans un repère (angles d’Euler). Chaque rotation peut modifier le repère précédent (rotations extrinsèques E) ou garder l’initial (intrinsèques ). Ainsi, pour une rotation sur ~ puis sur le nouvel axe ~ et enfin sur le nouvel axe ~ , IZXZ on note qu’il s’agit d’une rotation de convention E − Z − X − Z.
Toute rotation ou composition de rotations sur R3 peut être décrite par une rotation équivalente autours d’un vecteur unitaire ~u selon un angle θ (théorème des pôles Eu-lériens). Sous cette forme, la rotation d’un vecteur ∈ 3 en ~0 est obtenue par la ~v R v formule de Rodrigues (démonstration en annexe B) où . désigne le produit scalaire sur R3 et ∧ le produit vectoriel : v~0 = ~v cos(θ) + (~u ∧ ~v) sin(θ) + ~u(~u.~v)(1 − cos(θ)) (1.2)
Également, toute rotation ou composition de rotations sur R3 peut être décrite par une matrice R ∈ R3×3. Cette matrice est orthogonale RT R = I et son déterminant vaut 1. L’ensemble des matrices respectant ces critères appartiennent au groupe spécial orthogonal SO(3) également nommé groupe des rotations 3D, topologiquement iden-tique à la 3-sphère. Lorsque l’on effectue une rotation de θ autours d’un vecteur unitaire ~u = (ux, uy, uz)T ∈ R3, la matrice de rotation R est obtenue par l’équation 1.3 (démons-tration en annexe B). Tout vecteur de l’espace ∈ 3 devient ~0 par la rotation selon ~v R v R = la transformation v~0 R~v. c = cos(θ), s = sin(θ) x(1−c) + cx2(1−c)−xz(1−y(1.3)

Gammes d’objets considérés

La méthode d’estimation de pose proposée dans ces travaux nécessite d’employer des pièces ayant un matériau uniforme et faiblement texturé ainsi que des géométries peu symétriques. Une méthode de calcul de complexité du modèle CAO est proposée permettant de corréler l’erreur d’estimation de pose avec la distribution des courbures de l’objet. Une grande variété de courbures facilite l’extraction de caractéristiques par un réseau de neurones et des objets d’apparences trop simples ne sont pas forcément éligibles à une telle technique. Deux jeux de données sont introduits pour évaluer la méthode d’estimation de pose. Le premier, bien connu dans la littérature scientifique, comporte des objets disposés sur une table. Il permet de comparer les performances de l’estimation de pose proposée dans ces travaux avec celles de l’état de l’art. Le second est construit à l’aide d’une pièce de l’entreprise dont la demande en dévracage automatisé est la plus forte.
Géométrie
Matériaux et symétries
Les géométries des pièces industrielles sont variées et peuvent posséder des sy-métries radiales en particulier dans le cas des géométries tubulaires (Fig. 1.5). Dans ce cas précis, certaines métriques angulaires peuvent être modifiées pour prendre en compte l’invariance en pose sur un angle. Cependant, l’entreprise n’ayant pas de be-soin de dévracage de pièces à symétrie radiale, cette notion n’est pas abordée dans ces travaux.
Complexité
Les réseaux de neurones construisent des caractéristiques propres à une pièce pour inférer correctement son orientation et peuvent donc éprouver des difficultés à traiter des géométries peu complexes. Afin d’être corrélée avec l’estimation de pose, la complexité d’un modèle CAO peut être évaluée en utilisant la distribution des courbures de chaque vertex ??. Soient vi un vertex du modèle et ses voisins vj pris avec une connectivité en 1-anneau, le défaut angulaire du vertex est obtenu en sommant les angles αj formés par deux vertex voisins successifs (Fig. 1.6).
Ombrage de Phong
Le modèle d’ombrage de Phong permet de calculer empiriquement la couleur des pixels issus de la rastérisation. Ce modèle de coloration est défini d’après trois compo-santes :
• Ambiante : intensité renvoyée en tout point de l’espace
• Diffuse : intensité renvoyée selon l’angle d’une source lumineuse
• Spéculaire : intensité renvoyée selon l’angle d’une source lumineuse et le point d’observation
La scène possède une quantité de luminosité ambiante ia et une source lumineuse d’une quantité de luminosité diffuse id et spéculaire is. Il est également possible de compléter ce modèle en considérant des paramètres similaires pour le matériau d’un objet (ma, md, ms) en ajoutant un paramètre de brillance mb contrôlant la taille des saillances lumineuses. L’intensité lumineuse I d’une information sur une surface de normale ~n, vue selon ~v avec une lumière placée en ~ (Fig. 2.3) est obtenue selon l l’équation 2.4.
Intégration OpenGL
La génération d’images en OpenGL repose sur deux programmes exécutés suc-cessivement par la carte graphique appelés shaders : le vertex shader et le fragment shader. Le vertex shader place les vertex du modèle dans la scène et réalise la projec-tion dans le repère de la caméra. La rastérisation est ensuite effectuée avant de passer dans le fragment shader se chargeant de la coloration des pixels selon un modèle de luminosité.
Lors d’un rendu, toutes les surfaces de la pièce ne sont pas visibles. OpenGL se charge alors au travers d’un test sur Z appelé depth-test, de supprimer les informations ca-chées de la géométrie de l’objet. Ce processus nécessite de garder en mémoire la distance à la caméra PWz de chaque point. Afin d’homogénéiser les données proje-tées, les coordonnées sont normalisées sur [−1, 1] avant la rastérisation afin de former un cube OpenGL (3 coordonnées sur x, y et z). Toute information non contenue dans le cube n’est pas gardée en mémoire.
Normalisation des projections
La normalisation des projections {PC } → {P¯C } s’effectue en utilisant la taille de l’image souhaitée (Iw, Ih) : P¯C =  − IwPWzx + Iw − 1, IhPWzy + Ih − 1 ! ∈ [−1, 1]2 (2.5)
Augmentation des données
Une fois le vrac généré, un arrière-plan est inséré parmi des photos de bacs en plastique. Différents contrastes et rotations de 180◦ sont appliqués afin d’augmen-ter la variabilité du fond. La génération de données étant réalisée sur un GPU dédié aux calculs, elle nécessite l’émulation d’un écran pour assurer le bon fonctionnement d’OpenGL. Cependant, cette technique ne permet pas de réaliser des rendus à plu-sieurs échelles et l’anti-crénelage (anti-aliasing) n’est donc pas disponible. La frontière entre la pièce et l’arrière-plan apparaît alors grossière (Fig. 2.11). Un flou Gaussien est donc appliqué sur le canal alpha du rendu (Fig. 2.11) afin d’incruster un fond de façon réaliste (Fig. 2.12).
Jeu d’images réelles
Les réseaux de neurones étant entraînés sur des images synthétiques, il convient de tester leurs performances sur des images réelles. Si LINEMOD comporte des don-nées réelles annotées, ce n’est pas le cas pour MULTITUDE. Deux jeux de données sont alors construits : un premier pour la segmentation d’instances et un second pour l’estimation de pose d’une pièce isolée. La création d’un jeu d’images d’une pièce iso-lée annotée avec sa translation et son orientation dans la scène fait intervenir une technique d’estimation d’homographie par cibles.
Vracs de pièces
Pour créer un jeu de données réelles comportant des pièces en vrac, le masque bi-naire du premier plan est obtenu en annotant manuellement les images. Le processus étant chronophage, seulement 10 images sont disponibles comportant un nombre va-riable de pièces (25 au maximum). Pour augmenter les données, différents contrastes et luminosités sont appliqués ainsi que des rotations de 180◦ du plan image (Fig. 2.13).
Prises de vue
Afin d’évaluer quantitativement la méthode d’estimation de pose, un jeu d’images réelles de pièces industrielles est construit. Une pièce est placée au centre d’une scène comportant 4 cibles circulaires coplanaires et autours de laquelle, une caméra enre-gistre régulièrement des prises de vue. Un algorithme de détection de tâches (blobs) délimitant des zones connexes, permet dans un premier temps d’isoler les cibles dans l’image. Les cibles circulaires ayant des rayons croissants, leur identification dans les blobs est par la suite simplement basée sur leur aire respective dans l’image. En uti-lisant les coordonnées des cibles dans la scène, la matrice d’homographie est finale-ment calculée puis convertie en pose (R,~t) ∈ SE(3) (Fig. 2.14).

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela chatpfe.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Introduction
Intelligence artificielle et industries
Le dévracage industriel
Le processus
Automatisation du dévracage
Test d’une solution industrielle
Dévracage et intelligence artificielle
Choix technologiques
État de l’art
Problématique
I Génération de données 
1 Définition et manipulation des modèles 3D 
Introduction
1.1 Modèle CAO de l’objet
1.1.1 Maillage triangulaire
1.1.2 Unification et normales aux sommets
1.1.3 Nuage de points
1.2 Manipulations du modèle
1.2.1 Représentations de la rotation
1.2.2 Rotations et translations
1.3 Gammes d’objets considérés
1.3.1 Géométrie
1.3.2 Jeux de données
Synthèse et conclusion du chapitre
2 Création d’images 
2.1 Rendu 3D
2.1.1 Projection
2.1.2 Ombrage de Phong
2.1.3 Intégration OpenGL
2.2 Jeu d’images virtuelles
2.2.1 Génération de pose
2.2.2 Génération de vrac
2.2.3 Augmentation des données
2.3 Jeu d’images réelles
2.3.1 Vracs de pièces
2.3.2 Prises de vue
Synthèse et conclusion du chapitre
II Méthodes d’estimation de pose 
3 Segmentation de pièces 
Introduction
3.1 État de l’art
3.1.1 Analyses ascendantes et descendantes
3.1.2 Compréhension de scènes
3.1.3 Réseaux de neurones
3.1.4 Positionnement de nos travaux
3.2 Segmentation sémantique
3.2.1 Architecture
3.2.2 Inférence
3.2.3 Performances
3.3 Segmentation d’instances
3.3.1 Réseaux récurrents
3.3.2 Réseaux récurrents avec inhibition
3.3.3 Réseaux récurrents avec attention visuelle
3.3.4 Algorithme ad-hoc
4 Estimation de pose 
Introduction
4.1 État de l’art
4.1.1 Points à points
4.1.2 Caractéristiques locales
4.1.3 Modèles d’objets
4.1.4 Réseaux de neurones
4.1.5 Positionnement de nos travaux
4.2 Modalités des réseaux
4.3 Profondeur locale d’une pièce
4.3.1 Architecture
4.3.2 Performances
4.4 Orientation et translation sur Z
4.4.1 Équivalences en projection sur SO(3)
4.4.2 Architecture des réseaux
4.4.3 Apprentissage du réseau d’orientation
4.4.4 Performances
4.5 Rétro-projection et recalage
4.5.1 Initialisation
4.5.2 Estimation des normales
4.5.3 Fonctionnement
4.5.4 Performances
Synthèse et conclusion du chapitre
5 Déploiement du module de vision 
Introduction
5.1 Précision de la pose
5.1.1 Incrément angulaire
5.1.2 Matériel
5.2 Biais réel-virtuel
5.2.1 Paramètres de scène
5.2.2 Calibration
5.3 Implémentation
5.3.1 Déportation des calculs
5.3.2 Préhension
Synthèse et conclusion du chapitre
Conclusions et perspectives
Réalisme des données
Segmentation d’instances
Précision de l’estimation de pose
Implémentation robotique
Annexes 
A Ensemble des quaternions H
B Équivalences entre θ + ~u, SO(3) et Sp(1)
C Métriques sur SO(3) et Sp(1)
D Tirage homogène de points sur une sphère
Publications de l’auteur
Bibliographie 

Télécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *