Approfondir

De la deuxième à la troisième dimension

Les images qui se forment sur notre rétine ou sur une photo proviennent du monde tridimensionnel, mais le réduisent à deux dimensions, supprimant la profondeur. Pourtant, grâce principalement à la vision stéréoscopique, notre cerveau reconstruit cette troisième dimension. Ce problème géométrique se résoud désormais très bien aussi grâce à un ordinateur, capable de construire un modèle 3D à partir de quelques photos. Et les applications ne manquent pas !

Disposer d'une représentation en trois dimensions de notre environnement, c'est-à-dire connaître la position, les dimensions et l'orientation des objets et des volumes qui nous entourent, est souvent très utile.

C'est en particulier le cas lorsque l'on souhaite visualiser l'impact d'un nouveau bâtiment dans un environnement urbain, apprendre à un robot à se déplacer de façon autonome dans un lieu industriel ou encore réaliser certains effets spéciaux au cinéma.

Cette reconstitution d'un espace réel en trois dimensions est une tâche à la fois laborieuse et coûteuse.

C'est pourquoi la recherche en vision par ordinateur se consacre à ces problématiques : il s'agit de trouver une solution simple qui permette de construire, si possible en temps réel, le modèle 3D d'un environnement.

Il est, par exemple, assez facile de recueillir des informations sur un lieu ou un objet en le prenant en photos sous divers angles. Dès lors, ne serait-il pas possible, à partir de ces clichés, de reconstruire en trois dimensions un espace ou un volume fidèle à la réalité ?

 

Visionner la vidéo (Durée : 2 minutes 15).

Petite approche théorique

Géométriquement, en quoi consiste une prise de vues photographique ?

Prendre une photo c'est projeter chaque point visible de l'environnement 3D sur un point 2D du plan de la pellicule photo. Le rayon optique est la ligne qui relie entre eux ces deux points, en passant par le centre optique de l'appareil.

schema des points M m m'
Principe de la stéréoscopie.
On considère deux caméras dont les centres optiques sont notés C et C', dont la position relative est spécifiée par une translation T et l'orientation relative par une rotation R.
Pour chaque point de l'espace M, le fait que le rayon optique passant par m issu de C et le rayon optique passant par m' issu de C' se coupent en M induit une contrainte géométrique, dite « épipolaire ».

Imaginons maintenant que l'on prenne un deuxième cliché de la même scène, mais cette fois depuis un autre angle de vue ; chaque point visible de l'espace 3D sera alors le point de départ d'un nouvel axe optique, qui passera lui aussi par la cellule de l'appareil photo pour finir sa course sur la pellicule.

Appelons M un point quelconque de notre environnement en 3D : m et m' sont les images de M sur chacun des deux clichés. La position géométrique du point M se trouve alors à l'intersection des rayons optiques le reliant respectivement à m et à m'. Théoriquement, il est alors possible de reconstituer, à partir des seules photographies en 2D, la réalité 3D dont elles sont l'image, de faire « revivre » M dans un espace réel.

Comment ça marche ? L'ensemble formé par les trois points (M, m et m') et par les droites qui les relient définit ce que l'on appelle la contrainte épipolaire. C'est la tâche de la géométrie épipolaire que d'aider à reconstruire la « troisième dimension » de M.

Quels paramètres pour calibrer la géométrie ?

En pratique, bien sûr, les choses sont un peu plus compliquées. Lorsque l'on prend deux images d'un environnement réel, on ne connaît généralement pas de façon très précise les positions successives de l'appareil photo, ni ses paramètres optiques, ni enfin l'angle de chaque prise de vue. Pourtant, la géométrie épipolaire est entièrement dépendante de toutes ces données, qui constituent la base de ses calculs. C'est pourquoi il est nécessaire de « calibrer », c'est-à-dire d'estimer ces paramètres.

Le passage de la théorie à la pratique impose aussi de prendre en compte les distorsions optiques de la lentille, qui peuvent affecter les mesures, même si ces effets sont souvent négligeables.

Au total, ce ne sont pas moins de onze coefficients qu'il faut déterminer pour parvenir à connaître les relations entre un point de l'univers réel et son image sur un cliché.

Mais, on l'a vu, deux photos au moins sont nécessaires pour procéder à une reconstruction 3D. Dès lors, il faut calibrer les paramètres liés à chacune des projections, puis enfin les combiner entre eux.

Comment calibrer la géométrie épipolaire ?

Pour réaliser cette calibration, on définit un certain nombre de points de repère. L'objectif est de mettre en relation des couples de points issus des deux photos (par exemple m et m') et représentant dans la réalité le même point M. Les relations établies entre ces points de repère fournissent une ou plusieurs équations. Pour simplifier la tâche, on utilise des stratégies dites d'optimisation, afin de déterminer les paramètres les plus efficaces et les plus simples à manier.

Ce qui est très intéressant, c'est que n'importe quel élément de la scène visuelle peut être utilisé comme point de repère, à condition qu'il soit fixe et bien identifiable sur chacun des clichés.

Pour obtenir les points de repère, il faut définir les coordonnées des points correspondants dans les deux images. Les ordinateurs viennent ici nous simplifier la tâche : la sélection des points de repères dans les photos peut se faire en un seul clic et des méthodes de traitement d'image permettent de raffiner la correspondance entre ces points ou même de les déterminer automatiquement.

 

Pour tester vous-même une géométrie épipolaire : une applet Java réalisée par Luc Robert et Stéphane Laveau.
Cliquez sur un point dans une vue, vous verrez - grâce aux paramètres de calibration qui ont été estimés au préalable - la projection des rayons optiques s'afficher dans les autres images : ce sont les lignes épipolaires.
Cliquez alors sur le même point dans une des autres images : le voilà localisé à l'intersection de deux lignes, donc localisé dans toutes les vues.
En bas à droite, un petit afficheur 3D juste pour jouer : si vous faites tourner les points avec la souris, vous les verrez bouger en 3D.
Si vous avez de la patience, définissez une bonne dizaine de points pour regarder cet effet.

 

Les points cachés dans une vue et présents sur l'autre ne peuvent être mis en correspondance, ils sont alors détectés et mis de côté.

exemple
Deux images peuvent suffire à créer un modèle 3D.
En haut : deux photos du même lieu ;
En bas : deux images du modèle 3D reconstruit à partir de ces photos.

Malgré tout, il reste une marge d'erreur dans la localisation des points de repère, liée principalement au manque de précision des clichés photographiques. Pour compenser cet inconvénient et réduire ses effets, on utilise donc une multitude de points de repères.

Dans certains cas, le nombre de paramètres peut être facilement réduit, par exemple lorsque la focale de l'appareil photo ou de la caméra est connue, ou lorsque l'on connaît précisément les coordonnées de certains points M de l'environnement 3D.

Dans d'autres cas en revanche la calibration ne peut être calculée qu'à certains facteurs près. Ces paramètres résiduels restent à ajuster par l'utilisateur.

Une fois ces paramètres calibrés, deux points en correspondance dans deux images différentes suffisent effectivement pour déterminer la position 3D d'un point de l'environnement réel. Bien sûr, plus on multiplie les images et les correspondances, et plus le résultat sera précis.

Application en cinématographie

L'intégration d'objets virtuels dans un décor réel est à la base de nombreux effets cinématographiques : ce sont les fameux effets spéciaux.

exemple
Un hélicoptère « reconstitué » à l'aide d'ImageModeler.
Effets visuels © Artifex Studios Ltd

Il peut s'agir de reconstituer un objet à partir de photographies, par exemple un hélicoptère qui sera ensuite incrusté dans une séquence de vues aériennes. Il peut aussi s'agir d'intégrer à une scène réelle des éléments créés en images de synthèse, par exemple des dinosaures.

Pour commencer, il est nécessaire de reconstruire dans l'ordinateur les composantes soit de l'objet, soit du décor réel, c'est-à-dire d'en faire des formes géométriques virtuelles qui pourront être facilement manipulées. C'est ce que propose par exemple la société Realviz avec ImageModeler, un logiciel de modélisation par l'image qui s'appuie sur la géométrie épipolaire.

La manipulation est bien sûr particulièrement délicate dans le cas de plans en mouvement. Pour une vue panoramique, la caméra tourne sur place sans se déplacer, et le modèle doit lui aussi tourner. Si la caméra tourne autour d'une scène figée, la situation est plus complexe encore, car la translation induite génère de la parallaxe, des objets apparaissent ou disparaissent, etc.

Application en robotique

Si la localisation manuelle des points de repère se conçoit bien lorsqu'il s'agit de reconstituer un environnement architectural ou un décor de cinéma, elle devient par contre plus difficile en vision robotique.

caméras d'un robot mobile'
Trois caméras montées sur un robot mobile.
Ce système de vision rudimentaire lui permet de détecter les bords d'un couloir ou d'une chaussée.

En effet, le robot doit être capable de se repérer en permanence dans son environnement, ce qui constitue un défi d'une tout autre ampleur !

La localisation manuelle est alors remplacée par la reconnaissance de blocs de pixels dans les images. La recherche de mise en correspondance de blocs de pixels dans les images de deux caméras ou dans deux images successives d'une même caméra permet aux caméras de s'auto-calibrer. Sur cette base, sont déterminées la position du robot et la position des obstacles de l'environnement 3D réel. Dans ce cas, on ne cherche pas à reconstruire précisément l'environnement mais à obtenir des informations minimales permettant au robot de se situer dans l'espace, d'éviter les obstacles, d'identifier l'objet qu'il recherche, etc.

Ce sujet est traité plus en détail dans un autre document, intitulé La grenouille et le robot.

Le passage de la 2D à la 3D, on le voit, n'est pas simple et nécessite de nombreux calculs. S'il ne résout pas tout, il reste une première étape incontournable… pour le dinosaure comme pour le robot !

Pour en savoir plus sur la vision par ordinateur, nous vous proposons quelques références.

Niveau de lecture

Aidez-nous à évaluer le niveau de lecture de ce document.

Il vous semble :

Si vous souhaitez expliquer votre choix, vous pouvez ajouter un commentaire (qui ne sera pas publié).