FR 2924560 A1 20090605 FR 0759466 A 20071130 PROCEDE DE SUIVI STEREOSCOPIQUE D'UN OBJET TEXTURE DESCRIPTION DOMAINE TECHNIQUE L'invention concerne un procédé de suivi stéréoscopique d'un objet texturé, c'est-à-dire d'un objet où des points caractéristiques peuvent être détectés. Le domaine de l'invention est notamment celui de la vision robotique, par exemple dans le cadre de l'assistance aux personnes handicapées. ETAT DE LA TECHNIQUE ANTERIEURE Il existe de nombreuses approches permettant de suivre un objet. La grande majorité suppose que le modèle 3D (en trois dimensions) de cet objet est une information connue, ce qui restreint le champ d'application de ces approches. D'autres approches, qui permettent de suivre des points caractéristiques d'un objet, ne permettent pas de remonter jusqu'à l'information de pose 3D, c'est-à-dire de position et d'orientation 3D, d'une caméra par rapport à un repère lié à cet objet. La majorité des publications traitant de l'utilisation d'un système de vision stéréoscopique s'intéresse à une reconstruction 3D dense d'une scène inconnue, ou bien à la localisation et à l'identification d'un objet dans une scène. Mais la problématique du suivi d'un objet dans une séquence d'images n'est pas explicitement traitée. Les publications traitant du suivi dans des images stéréoscopiques d'objet supposent que le modèle de celui-ci est connu, comme dans l'article [3]. Un document de l'art connu, référencé [1] en fin de description, propose une solution dans laquelle, d'un point de vue théorique, l'approche statistique utilisée repose sur plusieurs hypothèses contraignantes. L'objet doit être plan, et rester tout au long de la séquence vidéo parallèle au plan image des caméras. Les classes d'objets traitables par cette approche sont donc restreintes. L'invention a pour objet de pallier ces inconvénients et de permettre le suivi d'un objet texturé sans avoir de connaissance préalable sur celui- ci, le modèle 3D de l'objet n'étant pas une information à fournir mais une information que le système estime automatiquement, l'algorithme utilisé pouvant fonctionner pour n'importe quel objet, dès lors que celui-ci est suffisamment texturé. EXPOSÉ DE L'INVENTION L'invention concerne un procédé de suivi stéréoscopique d'un objet texturé à l'aide d'un système de saisie comprenant : - un calculateur associé à un écran de visualisation et à un organe de saisie, un ensemble de vision stéréoscopique comprenant deux caméras, dans lequel cet objet et/ou cet ensemble stéréoscopique sont en mouvement, caractérisé en ce qu'il comprend les étapes suivantes : - au cours d'une phase d'initialisation : a) amener l'objet dans le champ de vision des deux caméras, b) saisir deux images et visualiser la première de ces deux images, c) saisir une boite englobant l'objet dans cette première image, d) rechercher cette boite dans la seconde image, e) extraire des points caractéristiques dans la première image, f) rechercher les points caractéristiques correspondants dans la seconde image, g) éliminer les mauvais appariements entre les points caractéristiques correspondants appartenant aux deux images, h) estimer les coordonnées des points appariés, i) estimer la position 3D de la boite, - au cours d'une phase de traitement a') acquérir un couple de nouvelles images stéréoscopiques, b') réaliser le suivi des points caractéristiques dans les nouvelles images, c') déduire la position de l'ensemble stéréoscopique par rapport à l'objet, d') éventuellement mettre à jour la position 3D des points caractéristiques, e') éventuellement rejeter les mauvais points ; f') éventuellement enrichir le modèle des points caractéristiques en ajoutant de nouveaux points caractéristiques. L'invention porte sur la généricité de l'approche, et sa facilité d'utilisation puisque l'utilisateur n'a qu'à entourer l'objet avec une boite pour en lancer le suivi. La robustesse de cette approche permet d'utiliser des caméras à bas coût, comme des � webcams � du marché. Une telle caractéristique est très avantageuse puisque le système permettant de mettre en oeuvre le procédé de l'invention présente de ce fait un coût très faible. Le procédé de l'invention peut avoir de nombreuses applications et notamment : -l'assistance robotique aux personnes handicapées, par exemple dans le cadre de la saisie automatique d'objets par un bras robotisé muni d'un capteur stéréoscopique sur sa pince. - toute application de saisie d'objets qui peut être une application industrielle potentielle : il suffit que l'objet soit suffisamment texturé, et qu'il présente une même face aux caméras durant la phase d'approche du bras. Le suivi d'un objet par un système caméra déporté est aussi envisageable, des applications de suivi d'objets rigides (surveillance, suivi de plaques minéralogiques, suivi de voitures,...) . BRÈVE DESCRIPTION DES DESSINS La figure 1 illustre un système de saisie mettant en oeuvre le procédé de l'invention. Les figures 2A et 2B illustrent une étape du procédé de l'invention. La figure 3 illustre l'ensemble des étapes de la phase d'initialisation du procédé de l'invention. Les figures 4 et 5 illustrent schématiquement deux étapes du procédé de l'invention. La figure 6A et 6B illustrent des étapes de la phase d'initialisation et des résultats finaux de celle-ci. La figure 7 illustre l'ensemble des étapes de la phase de traitement du procédé de l'invention. 10 EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS Un système de saisie d'un objet 16 permettant de mettre en oeuvre le procédé de l'invention, comme illustré sur la figure 1, comprend : 15 un calculateur 10 associé à un écran de visualisation 11 et un organe de saisie, qui peut comprendre un clavier 12 et une souris 13, disposés sur une table 18, un ensemble de vision stéréoscopique 15 20 comprenant un couple stéréoscopique de caméras étalonnées 19, les paramètres intrinsèques (modélisations géométriques) et extrinsèques (position respective) des deux caméras étant connus. Les caméras peuvent, par exemple, être 25 montées sur la pince 20 d'un bras robotisé 17. Ce bras peut être monté sur le fauteuil roulant d'une personne handicapée, ou bien être monté sur une plateforme mobile indépendante, le suivi stéréoscopique étant alors employé pour guider le bras 17 vers un objet à 30 saisir 16. Selon le procédé de l'invention, l'utilisateur désigne sur une image retournée par une des deux caméras l'objet à saisir. Le bras 17 effectue ensuite la saisie automatique de celui-ci, et rapporte l'objet à l'utilisateur. Le procédé de l'invention concerne principalement la phase de suivi de l'objet durant la phase de déplacement du bras. Elle est primordiale, puisque c'est celle-ci qui donne les informations permettant de déduire les mouvements du bras. Le procédé de l'invention permet ainsi d'effectuer le suivi vidéo d'un objet observé 16 par l'ensemble de vision stéréoscopique 15 alors que cet objet et / ou cet ensemble de vision est en mouvement. La principale originalité d'une telle approche est que le modèle 3D de l'objet n'est pas nécessaire. La seule connaissance initiale de l'objet est donnée par l'utilisateur qui définit une boite 25 englobant cet objet 16, par deux � clics � sur un retour vidéo d'une des deux caméras 19. Par un traitement d'images, et après l'étalonnage de l'ensemble stéréoscopique, on localise, on met en correspondance et on triangule des points caractéristiques de l'objet dans les deux images 26 et 27 illustrées sur les figures 2A et 2B. La position 3D de ces points 30 est utilisée pour définir la position de chaque caméra 19 par rapport à l'objet 16 (pose). Une fois cette initialisation réalisée, chaque couple d'images stéréoscopiques acquis est traité. Les points caractéristiques 30 sont localisés dans les deux images. Puis, une technique dite d'asservissement visuel virtuel permet de déduire la pose de la caméra. On va à présent analyser plus précisément chacune des étapes du procédé de l'invention. Le procédé de suivi d'objet de l'invention se décompose en deux phases : - une phase d'initialisation, et - une phase de suivi. 1 Phase d'initialisation L'ensemble stéréoscopique effectue la saisie de deux images 25 et 26, dites gauche et droite et illustrées respectivement sur les figures 2A et 2B. L'utilisateur n'a besoin de visualiser qu'une des deux images (l'image de droite 26 dans l'exemple de la figure 2). Il désigne l'objet 16 dans cette image, grâce à la définition d'une boite englobante 27. Deux � clics � images sont nécessaires : un pour le coin inférieur gauche, un pour le coin supérieur droit, la boite étant alignée sur les axes de l'image. L'objet 16 est supposé être contenu dans cette boite 27. La robustesse du procédé permet de se satisfaire d'une boite approximative. Elle n'a pas besoin de correspondre exactement à l'objet. L'objet 16 doit être visible dans les images de droite et de gauche 25 et 26. La figure 3 présente la succession des étapes constituant la phase d'initialisation, à savoir : a) une étape (El) de saisie d'une boite 27 par l'utilisateur C'est la seule opération où l'utilisateur intervient. Il visualise l'image 26 (vue 25 30 droite), et réalise deux � clics � pour définir le coin supérieur gauche et le coin inférieur droit d'une boite 27 englobant la projection image de l'objet. b) Une étape (E2) de recherche de la boite correspondante dans la seconde image Ce traitement peut être effectué en utilisant une méthode classique de corrélation exhaustive. Elle fournit la position dans l'image 25 de la zone la plus similaire à celle de l'image 26. Un exemple de corrélation est une corrélation normalisée croisée. On cherche la zone image 1(x,y) permettant de maximiser la corrélation suivante : R x0= Où T(x',y') désigne la zone que l'on cherche à apparier dans la seconde image. c) Une étape (E3) d'extraction de points dans la première image 26 Ce traitement est très classique dans le domaine du traitement d'images. Des points dits de Harris (assimilables à des coins) sont recherchés dans la zone 27 délimitée par l'utilisateur. Ces points caractéristiques 30 sont rattachés à l'objet 16. Toutes les bibliothèques de traitement d'images proposent des outils d'extraction de points caractéristiques, comme décrit dans le document référencé [5]. d) Une étape (E4) de recherche des points correspondants dans la seconde image 25 La recherche des points correspondant dans la seconde image peut s'effectuer par des techniques classiques d'appariement d'images ou de suivi de points. L'utilisation de la position estimée de la boite 27 (étape E2) permet de limiter la zone de recherche. On obtient une liste de points dits appariés. La technique employée est une corrélation différentielle, comme proposée dans le document référencé [6]. e) Une étape (E5) de filtrage des appariements (E5) L'objectif de cette étape E5 est de détecter les mauvais appariements, c'est-à-dire les associations de points images qui ne correspondent pas au même point 3D de la scène. Des critères simples permettent de les détecter. Le fait d'employer un ensemble stéréoscopique 15 permet de définir des règles que doivent respecter tous les appariements. Ainsi, si l'on note (xl, yl) et (xr,yr) les coordonnées images de points appariés entre les images gauche et droite 25 et 26, on a alors : (a) xl > xr (b) la différence lyl - yrl doit être très faible La relation (b) découle du fait que, par construction de l'ensemble stéréoscopique, les images sont alignées verticalement, comme on le voit sur la figure 4. De plus, puisque tous les points appartiennent au même objet, les distances entre les points gauche et droite doivent toutes être du même ordre de grandeur. Des techniques d'estimation robuste permettent de dégager les points présentant des distances trop importantes, comme décrit dans le document référencé [2]. La figure 4 illustre ces règles classiques sur les appariements avec un système stéréoscopique. (P : point 3D de la scène. Cl & Cr : centre optique des caméras, pl(xl,xr) et pr(xr,yr) projection du point 3D dans les images gauche et droite). Ces règles sont bien connues de l'homme de métier. f) Une étape (E6) de triangulation des points appariés C'est une étape classique en vision par ordinateur. Connaissant les coordonnées images gauche et droite d'un même point de la scène, et avec les paramètres d'étalonnage de l'ensemble stéréoscopique, on peut par triangulation estimer les coordonnées 3D P1 des points, exprimés dans le repère de la première caméra. La figure 5 illustre le fait qu'il est facile de remonter à ces coordonnées 3D en connaissant le mouvement (R,t) entre les deux caméras, et les coordonnées images d'un point de la scène. Les profondeurs dans les deux repères caméras (Zi et Zr) sont déduites de la relation suivante : Z~ Zr Où le signe + désigne l'opérateur pseudo-inverse. g) Une étape (E7) d'estimation de la position 3D de la boite =[ù Rpl pr] t La boite 27 définie par l'utilisateur ne correspond pas nécessairement à des points physiques de la scène. L'objectif est d'estimer une position 3D de cette boite, en fonction des coordonnées 3D estimées dans l'étape précédente. Une solution pragmatique consiste à associer aux coins de la boite la profondeur médiane des points 3D estimés. Les figures 6A et 6B illustrent plusieurs de ces étapes à savoir El, E2, E3 et E4 dans les images gauche et droite 31 et 32 et les résultats finaux de la phase d'initialisation. 2 Phase de traitement La figure 7 illustre la succession des étapes de cette phase de traitement. L'objectif est de déduire l'attitude (position et orientation) de chaque caméra 19 par rapport à l'objet 16, connue par les points 3D et la boite 3D estimée lors de la phase d'initialisation. La phase de traitement est réalisée en continu, pour chaque couple d'image stéréoscopique acquise (étape E' 1) . A la fin de la boucle (étape E'3, les étapes E'4 à E'6 étant optionnelles), on connait exactement la position de l'objet 16 vis-à-vis de chaque caméra 19. Cette information est le résultat du procédé de l'invention. On peut juste informer l'utilisateur de ce résultat (en retraçant sur chaque couple d'images acquises la position courante de la boite ainsi obtenue par exemple), ou bien se servir de ce résultat comme donnée d'entrée d'un autre processus. La position courante de l'objet 16 ainsi obtenue peut être utilisée pour guider un bras robotisé 17 vers cet objet 16, en vue de sa saisie. On a ainsi les étapes suivantes a') une étape (E'1) d'acquisition d'un couple d'images stéréoscopiques b') une étape (E'2) de suivi des points caractéristiques Cette étape consiste à trouver la position des points caractéristiques 30 dans les nouvelles images, connaissant leurs positions dans les deux images précédentes. Des techniques classiques de corrélation permettent d'effectuer cette opération. La technique employée est un suivi différentiel KLT. Comme décrit dans le document référencé [6]. c') Une étape (E'3) de calcul de pose Cette étape consiste à déduire la pose de la caméra par rapport à l'objet. Les informations utilisées sont : la pose estimée de la caméra pour le couple d'images stéréoscopiques précédent, les coordonnées 3D des points caractéristiques de l'objet et les coordonnées 2D estimées à l'étape précédente. Cette étape peut être réalisée en utilisant des techniques d'asservissement visuel virtuel comme décrit dans le document [4]. L'asservissement visuel est une approche permettant de déduire le déplacement d'un système robotique en fonction d'une erreur mesurée entre un motif visuel mesuré dans l'image et la valeur désirée de ce motif. L'asservissement visuel virtuel reprend ce principe, mais au lieu de déplacer un robot, on met à jour la pose estimée de la caméra par rapport à la scène d'intérêt. Cette opération permet de mettre à jour la pose de chaque caméra vis-à-vis de l'objet. Ce principe s'adapte très facilement à une configuration stéréoscopique comme décrit dans le document référencé [3]. Pour ce faire, on utilise le formalisme ci-dessous. On suppose connaître : - la pose de la caméra vis-à-vis de l'objet à l'instant t = °M° - les positions 3D des points caractéristiques, obtenues lors de la triangulation à l'initialisation : °Pi (3D) Suite à l'acquisition de deux nouvelles images stéréo, l'étape E'2 de suivi fournit la nouvelle position 2D des points dans les images : °Pi. (2D) - A partir de la pose de la caméra par rapport à l'objet, on estime la position supposée des points par projection : ; =.,_`;lz; où A est un opérateur de projection de l'espace 3D vers l'espace image (grâce aux paramètres intrinsèques des caméras). - On obtient ainsi une erreur entre la position estimée et la position mesurée : Ap farû~, -L'asservissement visuel permet d'obtenir une vitesse de caméra permettant de réduire cette erreur : Àt-A, , où est un scalaire positif réglant la vitesse de convergence, et L+ la pseudo-inverse de la matrice d'interaction, reliant la variation des coordonnées images des points en fonction d'un mouvement de la caméra. - En appliquant cette vitesse à la position estimée, on obtient une mise à jour de la position estimée de la caméra `t l.,.T.. Ce processus est réitéré jusqu'à ce que l'erreur p soit estimee suffisamment petite. On obtient ainsi la position courante de la caméra vis-à-vis de l'objet. d') Une étape (E'4) de rejet mauvais points (optionnelle) Lors de la phase de suivi, certains points caractéristiques peuvent être perdus, c'est-à-dire que le suivi n'a pas réussi correctement à les localiser dans l'image courante. De plus, l'algorithme peut tout aussi bien donner un résultat erroné. Ces erreurs peuvent entacher le bon fonctionnement du procédé. Il peut donc être intéressant de détecter ces erreurs, et de rejeter ces points des prochains traitements. La détection et le rejet de ces mauvais points est effectuée par une approche statistique. Lors de la phase du calcul de pose, puisque l'objet est rigide, on peut, en effet, supposer que l'erreur entre la position estimée des points caractéristiques et leur position suivie dans l'image est du même ordre de grandeur pour tous les points considérés. Des techniques de M-estimation, comme décrit dans le document référencé [2], permettent de détecter les points qui ne respectent pas cette règle. e') Une étape (E'S) de mise à jour du modèle (optionnelle) L'objectif est de mettre à jour la position 3D des points caractéristiques, puisque le déplacement objet/caméra peut permettre d'avoir une connaissance plus précise sur les coordonnées images des points (plus on se rapproche d'un objet, plus sa description est fine). Il est possible de mettre à jour les coordonnées 3D des points suivis, en effectuant une triangulation à partir des coordonnées images des points suivis dans les deux images. f') Une étape (E'6) d'enrichissement du modèle (optionnelle) Au cours du déplacement, des points caractéristiques suivis peuvent disparaître, sortir du champ de vision d'une des caméras ou bien être occultés par un autre objet de la scène. Pour éviter que la connaissance de l'objet ne s'amenuise, il est possible de rajouter de nouveaux points dans le modèle. Cette opération s'effectue en reprenant les traitements de la phase d'initialisation, et en utilisant la position 3D courante de la boite, déduite de l'étape (c). Exemple de mise en oeuvre Le procédé de l'invention peut être utilisé dans le cadre de l'assistance aux personnes handicapées. Grâce à un bras robotisé, une personne handicapée peut saisir et manipuler des objets de son environnement. Un système commercialisé actuellement, par la société Exact Dynamics par exemple, est contrôlé au moyen d'un levier de commande (� joystick �), adapté au handicap de l'utilisateur. Ce mode de fonctionnement impose une forte maîtrise du système par l'utilisateur, tout en monopolisant toute son attention durant toute la phase de saisie (approche du bras, fermeture de la pince, retour du bras vers l'opérateur, .) Le procédé de l'invention permet d'envisager l'automatisation de ces tâches de saisie. Dans ce cadre, il est souvent proposé d'utiliser une ou plusieurs caméras pour contrôler et guider les mouvements du bras vers l'objet à saisir. Naturellement, le succès de la saisie repose majoritairement sur le suivi de l'objet dans le flot d'images acquis par la ou les caméras observant la scène...DTD: En effet, le procédé de l'invention permet de contrôler automatiquement les mouvements du bras vers l'objet. Cette nouvelle approche est plus générique et robuste que celle proposée dans le document référencé [1]. Les caractéristiques originales de ce nouveau procédé sont notamment: une initialisation très simple de l'algorithme, - aucune information préalable nécessaire sur l'objet à suivre. La première caractéristique est primordiale, puisque le procédé est développé pour être utilisé par des personnes non spécialistes. Il est donc très important que son utilisation soit très simple et ne nécessite aucune compétence scientifique particulière. La seconde caractéristique l'est tout aussi : le fait de ne pas imposer une connaissance préalable sur l'objet à suivre permet de considérer une très large gamme d'objets. De plus, cette seconde caractéristique permet d'envisager de nombreux champs d'application du procédé, en dehors du domaine de l'assistance aux personnes handicapées, puisque tout objet rigide (non déformable) et texturé peut être considéré par le procédé de l'invention. On peut ainsi penser au suivi de véhicule, au suivi de plaques minéralogiques par exemple. REFERENCES [1] EP 1614509 [2] "Statistically robust 2D visual servoing" de A.I. Comport, E. Marchand, F. Chaumette. (IEEE Trans. on Robotics, 22(2)), pages 415-421, Avril 2006 http://www.irisa.fr/lagadic/pdf/2006 ieee tro comport.p df) [3] "Robust model-based tracking with multiple cameras for spatial applications" de F. Dionnet, E. Marchand (In 9th ESA Workshop on Advanced Space Technologies for Robotics and Automation, ASTRA 2006, pages 287-294, Noordwijk, Pays-Bas, Novembre 2006 http://www.irisa.fr/lagadic/pdf/2006 astra dionnet.pdf) [4] "Virtual Visual Servoing: a framework for real-time augmented reality" de E. Marchand, F. Chaumette (Computer Graphics Forum, 21(3), pages 289-298, Septembre 2002 http://www.irisa.fr/lagadic/pdf/2002 eurographics march and.pdf) [5] "A combined corner and edge detector. In Alvey Vision" de C. Harris et M.J. Stephens (Conference, pages 147-152, 1988, http://www.csse.uwa.edu.au/-pk/research/matlabfns/Spati al/Docs/Harris/)30 19 [6] "Good Features to Track" de J. Shi et C. Tomasi.. (Conference on Computer Vision and Pattern Recognition (CVPR'94) http://www.ri.cmu.edu/pub files/pub2/shi jianbo 1994 1/ 5 shi jianbo 1994 1.pdf). REVENDICATIONS 1. Procédé de suivi stéréoscopique d'un objet texturé (16) à l'aide d'un système de saisie (14) comprenant : - un calculateur (10) associé à un écran de visualisation (11) et à un organe de saisie (12,13), - un ensemble de vision stéréoscopique (13) comprenant deux caméras (19), dans lequel cet objet (16) et /ou cet ensemble stéréoscopique (13) sont en mouvement, caractérisé en ce qu'il comprend les étapes suivantes - au cours d'une phase d'initialisation : a) amener l'objet dans le champ de vision des deux caméras, b) saisir deux images et visualiser la première de ces deux images, c) saisir une boite (27) englobant l'objet dans cette première image, d) rechercher cette boite dans la seconde image, e) extraire des points caractéristiques (30) dans la première image, f) rechercher les points caractéristiques correspondants dans la seconde image, g) éliminer les mauvais appariements entre les points caractéristiques correspondants appartenant aux deux images, h) estimer les coordonnées des points appariés, i) estimer la position 3D de la boite (27), - au cours d'une phase de traitementa') acquérir un couple de nouvelles images stéréoscopiques, b') réaliser le suivi des points caractéristiques dans les nouvelles images, c') déduire la position de l'ensemble stéréoscopique par rapport à l'objet. 2. Procédé selon la revendication 1 comprenant une étape supplémentaire suivante au cours de la phase de traitement d') mettre à jour la position 3D des points caractéristiques. 3. Procédé selon la revendication 1 comprenant une étape supplémentaire suivante au cours de la phase de traitement e') rejeter les mauvais points. 4. Procédé selon la revendication 1 comprenant une étape supplémentaire suivante au cours de la phase de traitement f') enrichir le modèle des points caractéristiques en ajoutant de nouveaux points caractéristiques. 5. Procédé de saisie d'objet à l'aide d'un bras robotisé utilisant le procédé selon l'une quelconque des revendications précédentes.