One Click Focus estimation de la position d’un objet inconnu à partir d’un clic
Représentation géométrique
L’outil de saisie One Click que nous proposons est un robot manipulateur qui perçoit son environnement via deux caméras : l’une est montée sur le support du bras et donne une vue globale de la scène, et l’autre, montée sur la pince, ore une vue des détails. Pour estimer la position d’un objet à partir d’un système de vision, il est nécessaire d’établir la relation entre le monde tridimensionnel (3D) et sa représentation bidimensionnelle (2D) dans une image acquise par une caméra.
Ce chapitre rappelle les fondements théoriques de la géométrie perspective pour une, puis deux caméras. Elle présente également les principales notations qui sont associées à notre système. Ensuite la stratégie adoptée pour permettre la localisation d’un objet à partir d’un seul clic est présentée. Les méthodes permettant de la mettre en ÷uvre seront développées dans les chapitres suivantes.
Rappels mathématiques et géométriques
En vision par ordinateur, la géométrie projective est préférée à la géométrie euclidienne car elle permet de rendre linéaire une grande partie des transformations de l’espace euclidien, notamment la projection centrale qui est le modèle de projection le plus souvent utilisé. Dans ce paragraphe, nous montrerons comment exprimer la position et l’orientation, autrement dit la pose, d’un objet ou d’une caméra dans l’espace euclidien, noté E 3 et dans l’espace projectif, noté P 3 .
De l’espace euclidien à l’espace projectif
En général, les points de l’espace 3D ne sont pas directement exprimés dans le repère de la caméra mais dans un repère diérent, généralement le repère de référence Rb ou dans le repère attaché à l’objet Ro. La transformation entre le repère de la caméra et un autre repère d’expression est appelée la pose de la caméra. Dans le reste de ce document, elle sera exprimée par une matrice homogène. La pose d’un solide, un objet ou une caméra, est la description de sa position et de son orientation dans un repère de référence. Elle permet par exemple de transformer les coordonnées d’un point d’un repère donné à un repère de référence. Son expression sera présentée dans l’espace euclidien, puis dans l’espace projectif. 48 Représentation géométrique
Expression euclidienne de la pose
Soit X un point 3D. En géométrie euclidienne, sa position dans le repère orthonormé direct Rb est notée sous la forme d’un vecteur bX¯ à trois composantes selon les axes cartésiens i, j et k : bX¯ = X Y Z (2.1) Ces coordonnées sont appelées les coordonnées cartésiennes d’un point. Soit S un solide. En plus de sa position, l’expression de son orientation peut être établie. Elle peut être exprimée par une matrice de rotation bRs, c’est-à-dire la rotation du solide dans le repère de base. C’est une matrice orthogonale directe, ce qui signie que ses colonnes forment une base orthonormée directe de l’espace vectoriel euclidien E 3 , ou encore : bRs T bRs = I bRs bRs T = I det(bRs) = 1
Il existe plusieurs manières de construire la matrice de rotation. Par exemple, l’orientation de S par rapport à Rb peut être exprimée en écrivant les vecteurs unitaires qui portent ses axes principaux dans le repère Rb. La matrice de rotation sRb est obtenue en concaténant ces trois vecteurs qui sont les trois projections d’une base orthonormée dans une autre. Dans l’espace euclidien, un changement du repère d’expression d’un point, par exemple du repère Rs au repère Rb s’exprime de la manière suivante : bX¯ = b ts + bRs sX¯ (2.2) où b ts est le vecteur de translation et bRs est la matrice de rotation qui permettent d’exprimer bX¯ dans Rb à partir de sX¯ dans Rs.
Dans l’espace euclidien de dimension 3, les matrices de rotation suivantes correspondent à des rotations autour des axes i,j,k (respectivement) : sRb(i, θ) = 1 0 0 0 cos θ − sin θ 0 sin θ cos θ sRb(j, θ) = cos θ 0 sin θ 0 1 0 − sin θ 0 cos θ sRb(k, θ) = cos θ − sin θ 0 sin θ cos θ 0 0 0 1 et la matrice de rotation bRs peut s’exprimer de diérentes manières par composition de ces trois matrices, selon la convention choisie (angles d’euler, roulis tangage lacet, etc.). Par exemple, bRs = sRb(i, θi) sRb(j, θj ) sRb(k, θk).