Brevet FR2680620A1 — publié le 19930226

Procédé de calibration dynamique d'une caméra La présente invention concerne un procédé de calibration dynamique d'une caméra. Elle s'applique notamment à la réalisation de systèmes de vision par ordinateurs pour l'analyse et la compréhension d'objets évoluant dans un espace à trois dimensions, au contrôle industriel et à la navigation autonome de robots. Parmi les étapes algorithmiques indispensables à la réalisation d'un système de vision, la calibration des caméras a pour but d'estimer les relations géométriques existant entre les objets observés dans un espace à trois dimensions et leur projection bidimensionnelle obtenue sur le plan image des caméras. Les études connues sur ce sujet ont généralement trait à des configurations où la caméra est fixe par rapport à la scène observée. Elles permettent notamment de résoudre le problème de la calibration initiale des caméras. Les deux catégories de méthodes connues pour résoudre ce problème sont la méthode multiplans avec interpolation linéaire quadratique ou spline lineaire, telle que décrite par exemple dans l'article de H.A. MARTINS, J.R. BIRK et R.B. KELLEY ayant pour titre "Camera models based on data from two calibration planes" et édité par Computer Graphics and Images Processing volume 17, numéro 2, pages 173-180 ou encore dans l'article de K.D. GREMBAN, C.E. THORPE, T. KANADE ayant pour titre "Geometric camera calibration using system of linear équations" de la Revue Proceedings of Images Understanding works. DARPA, avril 1988, Massassuchets ou encore dans l'article de A. IZAGUIRRE, B. PU and J. SUMMERS ayant pour titre "A new development in camera calibration calibrating air of mobile cameras" de la revue Proceeding of IEEE, International Conference on Robotics and Automations pages 74 à 79 de 1985, ainsi que la méthode basée sur une modélisation de caméra, linéaire en modèle sténopé ou non linéaire avec prise en compte d'un coefficient de distorsion radiale telle que décrite dans l'article de O.D. FAUGERAS, G. TOSCANI intitulé "The calibration problem for stereo" de la Revue Proceeding of CVPR 86 MIAMI Beach Florida pages 15 à 20 de 1986 ou encore dans l'article F. CHAUMETTE et P. RIVES ayant pour titre "Réalisation et calibration d'un système expérimental de vision composé d'une caméra mobile embarquée sur un robot manipulateur" publié dans le rapport de recherche nO 454 de février 1989 ou encore dans l'article de P. PUGET et T. SKORDAS intitulé "An optimal solution for mobile camera calibration" de la Revue Proceeding of First European Conference of Computer vision, Antibes, France, Avril 1990, ou quadratique comme décrit dans l'article de M.E. BOWMAN et A.K. FORREST ayant pour titre "Transformation calibration of camera mounted on a robot" de la Revue Image and Vision Computing, volume 5, numéro 4 de novembre 1987. Lorsque la caméra est en mouvement l'estimation à tout instant des relations géométriques entre la caméra et la scène observée dans un espace à trois dimensions a lieu généralement en supposant que le mouvement de la caméra est connu ou peut être retrouvé et que la calibration de la caméra a bien été effectuée dans sa position initiale. Les méthodes existantes pour calibrer une caméra au cours de son déplacement cherchent à estimer au mieux les paramètres intrinsèques de la caméra, après calibration de celle-ci dans une position fixe, puis à évaluer une matrice de passage entre le repère de la caméra et le repère lié à son support afin d'en déduire l'évolution de la matrice de calibration après mouvement comme cela est décrit dans l'article de F. CHAUMETTE et P. RIVES cité précédemment. Cependant ces méthodes appliquées au cas où la caméra est montée à l'extrémité d'un bras manipulateur d'un robot sont d'autant plus difficiles à mettre en oeuvre que le nombre d'axes de rotation du bras manipulateur est important, et que les coefficients de la matrice de transformation entre le repère orthonormé lié à la caméra et celui du poignet la supportant à l'extrémité du bras de manipulation sont très difficiles à appréhender et rendent fausse l'estimation à chaque instant des relations géométriques liant la position de la caméra avec la scène observée. Le but de l'invention est de pallier au dernier inconvénient cité en le transformant en un autre problème plus simple à résoudre. A cet effet l'invention a pour objet un procédé de calibration dynamique d'une caméra placée sur le poignet d'un bras manipulateur d'une station de prise de vue relativement à un repère mire, caractérisé en ce qu'il consiste à déterminer une matrice de calibration Mcposi à partir d'une position initiale i déterminée de la caméra par transformation de coordonnées entre un point P quelconque d'un objet référencé dans le repère mire et sa projection dans le plan image de la caméra, à déterminer pour toute position, quelconque j de la caméra différente de la position i initiale, une matrice de passage M*ij de la position i à la position j de la caméra qui * dans le repère station projette le point P en un autre point P en mainte- nant la projection du point P au même endroit dans le plan image de la caméra - à calculer une matrice de passage Msm entre, les coordonnées du point P définies dans le repère mire avec les coordonnées de ce même point dans le repère station - à calculer la matrice inverse M-1Sm de la matrice de passage Msm et à calculer pour toute position nouvelle j de la caméra la matrice de calibration Mcposj correspondante en effectuant le produit matriciel de la matrice de calibration Mcposi de la caméra en position initiale i par les matrices M-1sm, M*ij et Msm précédentes. En basant le principe de l'invention sur l'idée que le mouvement d'une caméra autour d'un point fixe est équivalent au mouvement inverse du point autour de la caméra supposée fixe, le procédé selon l'invention a pour avantage qu'il permet de s'affranchir de la connaissance explicite des paramètres intrinsèques de la caméra et de remplacer l'estimation de la matrice de passage entre les repères à trois dimensions liés respectivement au poignet et à la caméra, par une estimation directe de la matrice de passage entre les repères à trois dimensions respectivement liés à un repère absolu formé par une mire et un repère station par rapport auquel est défini le mouvement du poignet. D'autres caractéristiques et avantages de l'invention apparaîtront ciaprès à l'aide de la description qui suit faite en regard des dessins annexés qui représentent - La figure 1 un exemple de montage d'une caméra sur le bras manipulateur d'un robot à six axes. - La figure 2 une représentation des différentes calibrations à effectuer entre un repère mire orthonormé et les différents repères liés à la caméra, au poignet et à la station du robot. - La figure 3 un exemple de projection d'un point référencé dans le repère à trois dimensions dans le plan image d'une caméra. - La figure 4 deux représentations différentes de repères intrinsèques liés à la caméra relativement à un repère mire. Le bras manipulateur de caméra qui est représenté à la figure 1 comporte un bras 1 articulé sur une première extrémité 1a autour d'un premier axe d'articulation 2 solidaire d'un fût 3, et un avant-bras 4 articulé autour d'un deuxième axe d'articulation 5 fixé sur une deuxième extrémité 1b du bras 1 et orienté dans une direction parallèle au premier axe d'articulation 2. L'avant-bras 4 est également orientable en rotation autour d'un axe longitudinal 6 s'étendant sur toute sa longueur. Un poignet 7 est monté mobile à une extrémité 4a de l'avant bras 4 autour d'un premier axe de rotation 8 s'étendant dans une direction perpendiculaire à l'axe longitudinal de rotation 6 du bras 4, et autour d'un deuxième axe de rotation 9 s'étendant dans une direction parallèle et éventuellement confondue avec le premier axe 6. Le poignet 7 supporte une caméra 10. Le fût 3 qui supporte le bras de manipulation qui vient d'être décrit est lui-même fixé sur une plate-forme 1 1 d'une station de prise de vue 14 par une liaison pivot 12 pour permettre à la caméra 10 supportée par le bras manipulateur de tourner autour d'un axe de rotation 13 orienté suivant une direction perpendiculaire à la plateforme 11. Comme le montre la figure 2, chacun des éléments formant l'ensemble du bras manipulateur, est représentable dans un repère à trois dimensions, chaque repère ayant une position déterminable à tout instant lors du mouvement du bras manipulateur par rapport à un trièdre de référence porté par la station 14. Les matrices qui permettent de passer d'un repère au suivant sont désignées sur la figure 2 par Msp, Mpc, MCm et Msm. Msp désigne la matrice de passage qui permet de passer du repère "poignet" au repère lié à la station. Mpc désigne la matrice de passage qui permet de passer du repère lié à la caméra 10 au repère du poignet 7. MCm désigne la matrice de passage qui permet de passer du repère géométrique d'une mire 15 servant à la calibration de la caméra à celui lié à la caméra 10. Enfin Msm désigne la matrice de passage permettant de passer du repère lié à la mire 15 à celui de la station.14 Le repère caméra formé par le trièdre (Oc, Xc, YCt Zc) est construit suivant le modèle sténopé représenté à la figure 3- Oc désigne le centre optique de la caméra, I'axe Xc représente l'axe optique de la caméra et des deux axes Ycf Zc sont respectivement parallèles aux axes U et V du plan image de la caméra. Le trièdre orthonormé formant le repère de la "station" par rapport auquel se réfère la position du poignet 7, est situé par exemple à la base de la station sur la plateforme 11. La matrice de calibration de la caméra permet dans ce système de repérage à tout point Pm de coordonnées (Xm, Ym, Zm) connu dans le repère mire, d'être projeté dans le plan image (u, v) de la caméra. Cette, matrice est décomposable en une matrice de projection perspective K référencée dans le repère caméra et la matrice Mcm reliant le repère mire au repère caméra. Les coordonnées U(su,sv,s) de la projection du point Pm dans le plan (U, V) de la caméra sont entièrement défini par la relation matricielle. U(su,sv,s)=K.Mcm.Pm(Xm, Ym,Zm) (1) dans lesquels Dyim et Dzim désignent respectivement la largeur et la hauteur d'un pixel de la caméra, correspondant aux dimensions de chaque élément photosensible de l'écran. - Rcm(3,3) est la matrice de rotation de dimensions 3x3 du repère mire autour dun repère caméra. - Tcm(3,1) est la matrice de translation de dimension 3x1 du repère mire par rapport au repère caméra. - Xm , Ym, Zm, 1 sont les coordonnées du point Pm dans le repère mire. et f la distance focale de la caméra. En tenant compte des dimensions des matrices, la relation matricielle (1) peut encore s'écrire: U(3,1) = K(3,4).Mcm(4,4).Pm(4,1) (2) Soit encore en définissant par Mc = K.Mcm, la matrice de calibration, la relation (1) s'écrit encore U = MCpm (3) La matrice de calibration est estimée à partir d'observation de projections d'un certain nombre de points Pm repérés dans le repère mire. En prenant un nombre suffisant de points cette matrice peut être évaluée en utilisant les méthodes connues de minimisation au sens des moindres carrés. Connaissant la matrice de calibration Mcpos pour une position i de la caméra, la matrice de calibration Mcposj pour une position j différente, telle que celle représentée dans l'exemple de la figure 4, peut être déduite de la précédente par la mise en oeuvre d'une relation F telle que Mcposj = F(Mcposi) (4) En considérant un point Pm de coordonnées (Xm, Ym, Zm) dans le repère mire, ses coordonnées dans le plan image Uposi(s.uposi,s) sont définies en application de la relation (3) par la relation Uposi = Mcposi.Pm (5) Lorsque le poignet entraînant la caméra passe dans la position j de la figure 4, le point Pm se projette suivant des coordonnées telles que Uposj = Mcposjf Pm (6) En désignant par Pm* le point qui est projeté en Uposj lorsque la caméra est dans la position i alors le point Pm* vérifle Uposj = Mcposi,Pm* (7) De la sorte les coordonnées du point P dans le repère caméra en position j (Pcposj) sont égales aux coordonnées de P* dans le repère caméra en position i (P*cposj). Si Pcam désigne ces coordonnées Pcposj = P*cposj = Pcam (8) Dans le repère station 11 les coordonnées Ps et Ps* du point P sont définies par les relations Ps = Msp; Mpc Pcam (9) Ps* = Mspi.Mpc.Pcam (10) qui correspondent respectivement aux positions j et i d'où il découle la relation Ps* = Mspi.Mspj-1.Ps (11) Dans le repère mire Pm* se déduit de Pm par la relation Pm* = Msm1.Mspi.Mspj1.Msm.Pm (12) et comme MCposi Pm = MCposj Pm la matrice de calibration pour une position j s'écrit: Mcposj = Msposi.Msm1.Mspi.Mspj1.Msm (13) En posant Mspi.Mspj1 = Mj* (14) la matrice de calibration pour la position j s'écrit encore Mcposj = Mcposi.Msm-1.Mj*.Msm (15) Les équations précédentes nécessitent la connaissance de la transformation, rotation-translation, entre le repère station et le repère mire. Ces équations permettent à l'aide de quelques calibrations en nombre, au moins égal à deux, d'estimer cette transformation. En estimant dans un premier temps; à l'aide de l'expression mathématique connue des quaternions, la rotation Rms indépendamment de la translation Tms entre le repère station et le repère mire et en posant L'équation (15) devient: Mj.Rsm-1= Mj.Rsm-1.Rij* (17) soit encore: MjTsm-1 + Mdcj = Mi((Rsm-1, Tij* + Tsm-1)) + Mdcj (18) où Mdci, Mdcj sont les dernières colonnes des matrices Mcposi, Mu pose respectivement et Mi, Mj désignent les trois premières. Mj'.mms*.qms = Mj'.@@ms*.qms.qTij*.qTij (19) En utilisant les propriétés des quaternions l'équation (17) devient où qms et qTij, sont les quaternions matriciels de dimension 4x4 respectivement associés aux matrices Rsm-1,R*ij et q*mst q*Tij les antiquaternions correspondants. En désignant par M'k (4,4) la matrice déduite d'une matrice Mk(3,3) par la relation la relation (19) s'écrit encore la relation (19) s'écrlt encore: Mj' = Mj'.qms*.qTij*.qms*.qms.qTij.qms (21) où q*ms et qTgj sont les quaternions conjuguées de qms et qTij.En notant que qms#qTij#q-=qij la relation (21) se simplifie et devient M'j = M@6i.q*ij.qij (22) d'où il ressort la relation ij*.qij = Mj*-1.Mj' (23) dans laquelle qij est le quaternion associé à la rotation defini n par le produit Mii-1.M'j En revenant à l'écriture vectorielle qij.qms-qms.qTij = O L'équation exacte précédente ne pouvant pas être résolue directement il faut minimiser pour plusieurs couples (i,j) de la matrice de calibration le critère C = || qij.qms - qms.qTij ||2 (26), ce qui peut être encore s'écrite sous la forme C = || qms(1,4).A(4,4) || 2 (27) avec En utilisant la contrainte Il qms 112 ||2 = 1 la relation (27) s'écrit C = ||qms.A||2 + #(1- ||qms||2) = qms.A.T.qTms - #.qms.qTms $(29) En annulant sa dérivée par rapport au quaternion qms,la relation (29) devient qmsA.A.T = #.qms (30) Dans la relation (30) qms a pour solution le vecteur propre associé à la plus petite valeur propre du produit matriciel AAT dont la première composante est positive. La translation est estimée par une simple minimisation aux moindres carrés à l'aide de la relation (18) qui peut s'écritre sous la forme C.Tsm-1 = C. Tms = B (31) avec B = (Mdcj-Mdci)-Mi.Rm5.T*ij et C = Mi-Mj d'où il se déduit la relation Tms = (CTC)-1CTB (32) L'estimation globale de la rotation et de la translation a lieu en utilisant l'équation générale (15) pour estimer, sous une contrainte simple, globalement la matrice de passage du repère mire au repere station Mms. Le procédé qui vient d'être décrit se prête naturellement bien à une mise en oeuvre programmée par microprocesseur ou tout dispositif équivalent dont la programmation est à la portée de l'homme de l'art. REVENDICATIONS 1. Procédé de calibration dynamique d'une caméra (10) placée sur le poignet (7) d'un bras manipulateur (1,4) d'une station de prise de vue (14) relativement à un repère mire (15), caractérisé en ce qu'il consiste à déterminer une matrice de calibration Mcposi à partir d'une position initiale i déterminée de la caméra (10) par transformation de coordonnées entre un point P quelconque d'un objet référencé dans le repère mire (15) et sa projection dans le plan image de la caméra (10), à déterminer pour toute position j, quelconque de la caméra (10) différente de la position i initiale, une matrice de passage M*ij de la position i à la position j de la caméra qui dans le repère station (11) projette le point P en un autre point P s en maintenant la projection du point P au même endroit dans le plan image de la caméra (10) - à calculer une matrice de passage Msm entre, les coordonnées du point P définies dans le repère mire (15) avec les coordonnées de ce même point dans le repère station (11) - à calculer la matrice inverse M-1Sm de la matrice de passage Msm et à calculer pour toute position nouvelle j de la caméra la matrice de calibration Mcposj correspondante en effectuant le produit matriciel de la matrice de calibration Mcposi de la caméra en position initiale i par les matrices M-1sml M*ij et Msm précédentes. 2. Procédé selon la revendication 1, caractérisé en ce qu'il consiste à déterminer la matrice de passage Msm entre le repère mire (15) et le repère station (11) à partir, de matrices de calibration obtenues pour plusieurs positions, supérieures à deux, de la caméra (10) et de la connaissance des matrices de transformation des mouvements de rotation et translation du poignet dans le repère rotation.. 3. Procédé selon la revendication 2, caractérisé en ce que les estimations de la rotation et de la translation de la caméra sont faites indépendamment. 4. Procédé selon la revendication 2, caractérisé en ce que les estimations de la rotation et de la translation de la caméra sont faites simultanément. 5. Procédé selon l'une quelconque des revendications 3 et 4, caractérisé en ce que les rotation et translation sont représentées par des quaternions et sont définies par mises en oeuvres de méthodes d'approximation par les moindres carrés.