Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies



Documents pareils
Traitement bas-niveau

TITRE PARTIE TITRE SECTION. Faire des anaglyphes avec CatiaV5

L analyse d images regroupe plusieurs disciplines que l on classe en deux catégories :

Traitement numérique de l'image. Raphaël Isdant

Baccalauréat L spécialité, Métropole et Réunion, 19 juin 2009 Corrigé.

Comparaison de Relevés 3D issus de plusieurs Systèmes de Numérisation

Fonctions de plusieurs variables

Réussir et traiter ses photos sous UV avec Photoshop

Analyse de la vidéo. Chapitre La modélisation pour le suivi d objet. 10 mars Chapitre La modélisation d objet 1 / 57

Faire de la déformation interactive avec GIMP

Projet Matlab/Octave : segmentation d'un ballon de couleur dans une image couleur et insertion d'un logo

Manuel d utilisation NETexcom

pcon.planner 6 Préparer et présenter une implantation en toute simplicité

NOTIONS DE PROBABILITÉS

6.4. Les Ombres Raytracées (Raytraced Shadows) Shading Lamp Shadow and Spot Hemi Spot Sun Sun Scene F10 Shadow Render Ray Ray Shadow Shadow and Spot

Cours d Analyse. Fonctions de plusieurs variables

Introduction. I Étude rapide du réseau - Apprentissage. II Application à la reconnaissance des notes.

Reaper : utilisations avancées

L ANALYSE EN COMPOSANTES PRINCIPALES (A.C.P.) Pierre-Louis GONZALEZ

Géométrie dans l espace Produit scalaire et équations

Immersion - Vision 3D dans la RV.

Géométrie discrète Chapitre V

t 100. = 8 ; le pourcentage de réduction est : 8 % 1 t Le pourcentage d'évolution (appelé aussi taux d'évolution) est le nombre :

S.P.S.N. Lac du Der 2008

Utilisation du visualiseur Avermedia

ERGONOMIE ET OPTIMISATION DU TAUX DE CONVERSION D UN SITE INTERNET Partie 1/2

Utilisation du logiciel ImageJ gratuit

Extraction d informations stratégiques par Analyse en Composantes Principales

avec des nombres entiers

Vision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007

CAPTEURS - CHAINES DE MESURES

Dossier table tactile - 11/04/2010

UE 503 L3 MIAGE. Initiation Réseau et Programmation Web La couche physique. A. Belaïd

Exercices de dénombrement

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

Traitement par lot redimensionner des images

Les mesures à l'inclinomètre

Soit la fonction affine qui, pour représentant le nombre de mois écoulés, renvoie la somme économisée.

Choisir entre le détourage plume et le détourage par les couches.

Utilisation de XnView

Chapitre 4 : Guide de Mouvement et Masque

LES DIFFÉRENTS FORMATS AUDIO NUMÉRIQUES

DÉCOUVERTE DE CAPTURE ONE

Guide de l'utilisateur de l'utilitaire d'installation de caméra Avigilon

LE PROBLEME DU PLUS COURT CHEMIN

1 La visualisation des logs au CNES

A B C D. Wireless Mobile Utility (ios) Manuel d utilisation D600, D7100, D D3200, COOLPIX A Nikon 1 : V2, J3, S

Traitement des données avec Microsoft EXCEL 2010

TP Blender n 2 : Importation d un modèle SketchUp et animation

Classer et partager ses photographies numériques

Fonctions de plusieurs variables : dérivés partielles, diérentielle. Fonctions composées. Fonctions de classe C 1. Exemples

UTILISATION D'UN RADIOCHRONOMETRE POUR DATER DES GRANITES

- Enlever les imperfections de la peau avec l'outil clonage. - Donner plus d'impact à la chevelure du personnage

Charpente visible sous plafond et couverture isolée


1S9 Balances des blancs

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

PRODIGE V3. Manuel utilisateurs. Consultation des métadonnées

CHAPITRE VIII : Les circuits avec résistances ohmiques

X-Rite RM200QC. Spectrocolorimètre d'imagerie portable

G.P. DNS02 Septembre Réfraction...1 I.Préliminaires...1 II.Première partie...1 III.Deuxième partie...3. Réfraction

Fête de la science Initiation au traitement des images

2 Grad Info Soir Langage C++ Juin Projet BANQUE

Création de maquette web

A- Observez la vidéo A présentant le fonctionnement de deux objets techniques que nous

LECON 2 : PROPRIETES DE L'AFFICHAGE Version aout 2011

Utilisation du logiciel Epson Easy Interactive Tools

COPIER, COUPER, COLLER, SELECTIONNER, ENREGISTRER.

Angles orientés et trigonométrie

CNAM UE MVA 210 Ph. Durand Algèbre et analyse tensorielle Cours 4: Calcul dierentiel 2

Projet Matlab : un logiciel de cryptage

INTERFACEMICMAC DOCUMENTATION UTILISATEUR

Régime de retraite patronal-syndical (Québec) de l'association internationale des machinistes (A.I.M.)

Analyse en Composantes Principales

Créer des étiquettes avec les adresses d'un tableau Calc

7. Exemples de tests pour détecter les différents troubles de la vision.

TP SIN Traitement d image

CONJUGUÉ D'UN POINT PAR RAPPORT À UN TRIANGLE

Usage des photos pour Internet et pour la presse

Baccalauréat ES Polynésie (spécialité) 10 septembre 2014 Corrigé

Créer un diaporama avec Open Office. Sommaire

Raisonnement par récurrence Suites numériques

MODULES 3D TAG CLOUD. Par GENIUS AOM

l'ordinateur les bases

Un exemple avec WORKSPACE d'interwrite

IFO. Soleil. Antoine COUSYN 29/07/ /02/2015. Vidéo. Manipur, Inde. Saturation du capteur CMOS. 19 Juin h11 heure locale.

Par Richard Beauregard. Novembre 2011

Continuité et dérivabilité d une fonction

GMEC1311 Dessin d ingénierie. Chapitre 1: Introduction

Echantillonnage Non uniforme

Utiliser CHAMILO pour le travail collaboratif

Optimisation, traitement d image et éclipse de Soleil

F411 - Courbes Paramétrées, Polaires

Comment formater votre ebook avec Open Office

Lecture graphique. Table des matières

Copropriété: 31, rue des Abondances Boulogne-Billancourt

Fonctions de plusieurs variables, intégrales multiples, et intégrales dépendant d un paramètre

Synthèse d'images I. Venceslas BIRI IGM Université de Marne La

Structures algébriques

Ensemble léger de prise de photo sous UV-A Tam Photo Kit n 1 pour appareil photo compact

Transcription:

Projet de traitement d'image - SI 381 reconstitution 3D d'intérieur à partir de photographies Régis Boulet Charlie Demené Alexis Guyot Balthazar Neveu Guillaume Tartavel Sommaire Sommaire... 1 Structure de notre projet... 1 Détection des paramètres des caméras... 2 Stéréovision... 2 Principe : mesure de disparité = profondeur...2 Coordonnées 3D à partir de la disparité...2 Remarques... 3 Calcul des disparités... 4 L'appariement par corrélation... 4 Post-filtrage médian... 6 Validation par aller-retour... 7 Passage en géométrie épipolaire...8 Propriétés à respecter... 8 Ré-échantillonnage d'une image...9 Résultats... 10 Scène initiale... 10 Géométrie épipolaire... 12 Cartes de disparités et validation... 12 Nuage de point obtenu... 13 Précision de la reconstruction... 14 Code MATLAB... 14 Détection de plans dans un nuage de points 3D... 15 Reconstruction 3D... 15 Structure de notre projet

Détection des paramètres des caméras Stéréovision La génération d'une scène 3D à partir des photos est effectuée par stéréovision sur des couples d'images. Ceci suppose un traitement préalable permettant d'estimer les positions des prises de vues, ainsi que les directions de visée et paramètres d'ouvertures. Cette précédente étape n'ayant pas été suffisamment développée ni suffisamment concluante dans notre projet, les images utilisées dans cette partie sont des images de synthèse, générées avec Blender. Cette partie se décompose en quatre points : le principe de la stéréovision : retrouver la position 3D d'un point à partir d'une mesure de disparité ; le calcul des disparités en chaque point, par corrélation entre deux images en géométrie épipolaire ; le passage de deux images quelconques à des images en géométrie épipolaire ; les résultats sur nos images de synthèse. Principe : mesure de disparité = profondeur La stéréovision repose sur le principe suivant : en observant une scène depuis deux points de vue différents (nos deux yeux par exemple) et en comparant la position d'un objet sur chacune des deux images obtenues, on peut en déduire la profondeur à laquelle il se trouve. Coordonnées 3D à partir de la disparité La figure 2.1 illustre ce principe : en déplaçant la caméra latéralement du point au point, le point passe de la position à la position sur l'écran. Ce déplacement relatif d'une distance vers la gauche (matérialisé par le trait horizontal bleu) est appelé disparité, et nous permet de calculer la position du point.

Figure 2.1 : positions et d'un point sur les deux images prises depuis et. En effet, dans le cas où le déplacement de l'appareil photo est orthogonal à la direction de visée, les images de la scène sont prises dans un même plan (comme sur la figure 2.1) : on parle alors de géométrie épipolaire. Dans ce cas, les vecteurs (appelé base) et sont donc colinéaires. Le théorème de Thalès nous donne la relation suivante, en utilisant des distances signées (sur ou selon le cas) : En utilisant les relations et (la disparité est ici négative, car se déplace "vers la gauche"), il vient : D'où on en déduit la position du point : Remarques Cette expression donne la position du point en 3D à partir de sa position dans l'image, de la position du plan de l'image, de la base et de la disparité pour ce point. Toutefois, la disparité étant en pratique calculée comme un nombre de pixel (donc un entier), la position du point est échantillonnée selon une séquence de plans parallèles au plan de l'image. Cette conséquence fâcheuse est bien visible sur la figure 2.2 qui en montre un cas pathologique : le mur du fond est échantillonné en 6 plans. Il en est de même pour les objets dans la scène, ainsi que pour le sol qui donne une idée de la position de prise de vue.

Figure 2.2 : échantillonnage des profondeurs des points obtenus. La distance entre deux plans d'échantillonnage successifs augmente avec la profondeur, et dépend également de la base (voir l'expression précédente) : plus la base est petite et plus cette distance est élevée (pour la figure 2.2, la base était particulièrement petite). À l'inverse, les plans seront proches pour une base plus élevée, mais l'étape de calcul des disparités sera plus longue (recherche de dans un intervalle plus grand) et donnera moins de points corrects (car les images seront déformées du fait que les caméras sont plus espacées). Calcul des disparités Nous venons donc de calculer la position 3D d'un point en connaissant sa position dans les deux images. Il va maintenant falloir trouver, pour notre couple d'images, les couples de points correspondants : cette étape porte le nom d'appariement de points. Dans toute cette partie, nous travaillons avec des images qui sont déjà en géométrie épipolaire. Le passage d'une géométrie quelconque à une géométrie épipolaire sera détaillé dans la partie suivante. Cette étape d'appariement va se décomposer en trois : l'appariement à proprement parler, par corrélation, qui nous donnera une carte de disparités (la disparité en chaque pixel) ; un post-filtrage, pour diminuer le nombre de points aberrants ; une étape de validation, pour éliminer les points de disparité erronée. L'appariement par corrélation L'étape d'appariement à proprement parler va consister à construire, à partir d'une des deux images, une carte de disparité : cette carte nous donnera la disparité de chaque point de cette image (c'est à dire son décalage par rapport au point correspondant dans l'autre image). En reprenant les notations de la figure 2.1, cela revient à considérer chaque pixel de l'une des images comme un point, de rechercher le point correspondant dans l'autre image, et d'associer au pixel la valeur de ainsi obtenue. Cela nous donne donc une image avec les valeurs de prises en chaque pixel de l'image initiale.

Figure 2.3 : la recherche de associé à se fait sur un segment. La recherche de ne se fait pas dans toute l'image : étant données une profondeur minimale et une profondeur maximale, on en déduit une disparité minimale et une maximale par la formule liant disparité et profondeur (partie précédente). De plus, du fait de la géométrie épipolaire, on sait que le point associé à se trouvera sur la même ligne que ce dernier, comme l'illustre la ligne horizontale sur la figure 2.1. On sait donc que est à chercher dans un petit segment horizontal sur la seconde image, comme l'illustre la figure 2.3. Le point retenu est alors celui qui maximise un critère de ressemblance entre et : nous avons choisi comme critère la classique corrélation (centrée normée) entre les voisinages de ces deux points. En pratique, afin de diminuer le temps de calcul (assez conséquent en Matlab), les images sont au préalable filtrées (passe-bas) et décimées, afin de diminuer le nombre de points à appareiller.

Figure 2.4 : un auto-stéréogramme, image respectant par nature la géométrie épipolaire. Post-filtrage médian Une fois la carte de disparité obtenue, nous appliquons un léger filtre médian afin de réduire le nombre de valeurs aberrantes. En effet, la profondeur dans une image (et par conséquent la disparité) varie de manière continue par morceaux : on n'a jamais un point tout seul à une profondeur très différente de tout ses voisins. C'est pourquoi nous appliquons un filtrage médian à la carte de disparité. La figure 2.5 montre le gain apporté par cette méthode : la carte de disparité utilisée est calculée à partir de l'autostéréogramme en figure 2.4 (le choix d'un auto-stéréogramme vient du fait que la géométrie est déjà épipolaire, car une telle image est prévue pour être regardée de face).

Figure 2.5 : effet d'un (fort) filtrage médian sur les cartes de disparités. (les images ayant été égalisées différemment, les couleurs ne correspondent pas) Validation par aller-retour Afin d'éliminer les points aberrants restants, une méthode classique consiste à utiliser une validation "par aller-retour". Cette technique fonctionne de la manière qui suit. On part d'un point de la première image, et on recherche le point associé dans la seconde image (association déjà calculée et stockée dans la carte de disparité de la première image). On va ensuite effectuer le "retour" en recherchant dans la première image le point associé à (dans la carte de disparité de la seconde image). Normalement, les associations de points se font par paires valide pas., la paire est donc correcte et on valide l'association. Dans le cas contraire, on ne : si

Figure 2.6 : cartes de disparités (en haut) et point valides (en bas, couleur noire) pour les deux images. La figure 2.6 montre cette validation dans le cas de l'auto-stéréogramme en figure 2.4. Sur cet exemple, la plupart des points qui ne sont pas valides sont ceux masqués par l'effet de relief. Passage en géométrie épipolaire Les deux parties précédentes expliquaient comment passer d'un couple d'images en géométrie épipolaire à une carte de disparité, et d'en extraire un nuage de point. L'étape manquante pour généraliser cette méthode est le ré-échantillonnage d'un couple d'images quelconques pour passer en géométrie épipolaire : c'est l'objet de cette partie. Propriétés à respecter La première condition est bien visible sur la figure 2.1 : étant donnés les centres optiques et des caméras, il faut que pour tout point de l'espace, le plan intersecte les plans des images selon deux droites parallèles (les droites épipolaires) : il faut donc re-projeter les images dans un plan parallèle à. Notons qu'on pourrait utiliser une autre forme

qu'un plan comme support de projection afin de minimiser certaines déformations, mais par soucis de simplicité, nous nous contenterons d'un plan. De plus, pour simplifier la correspondance, on demande à ce que ces droites soient horizontales dans les images ré-échantillonnées (comme sur la figure 2.3). Cette contrainte nous fixe l'orientation des images dans cette nouvelle géométrie. Les deux paramètres qui restent à déterminer sont : l'orientation du plan de re-projection (qui est libre de tourner autour de ) ; la résolution de l'image ré-échantillonnée. Le premier point pourrait être amélioré en choisissant un critère de déformation à minimiser. Ré-échantillonnage d'une image Une fois le plan de projection fixé, il reste à projeter les deux images initiales sur ce plan et à ré-échantillonner le résultat afin d'obtenir une image exploitable. La figure 2.7 illustre cette projection : elle consiste à calculer la couleur de chaque point du plan de re-projection, connaissant la couleur des points du plan. Figure 2.7 : projection sur le plan respectant la géométrie épipolaire à partir de l'image initiale dans le plan. Partant d'un point sur une grille dans le plan de re-projection, notre but est de trouver la couleur du point correspondant dans le plan initial de l'image. Pour cela, basons-nous sur la figure 2.7 en vue "de dessus", dans laquelle est le vecteur entre le centre de la caméra et le centre de l'écran. Le théorème de Thalès nous donne le rapport de distances suivant : Une projection orthogonale nous donne l'expression du vecteur :

On déduit alors de ces expressions la position du point recherché : En notant et les bases respectives des grilles d'échantillonnage des deux plans, on trouve le point associé à un pixel de l'image re-projetée par : Inversement, la position du pixel correspondant au point dans l'image initiale est obtenue par projection orthogonale dans de : La couleur de ce point est alors obtenue par interpolation bilinéaire, les valeurs entières. n'étant pas Ceci nous permet d'obtenir, pour chacune des deux images, un ré-échantillonnage en géométrie épipolaire, et d'appliquer alors la méthode d'appariement précédente. Résultats Voici des images obtenues par notre implémentation de la stéréovision, obtenues sur un cube généré sous Blender. La stéréovision est effectuée sur deux couples de caméras : deux caméras sont situées d'un côté, et les deux autres de l'autre côté du cube, de sorte que toutes les faces soient à peu près visibles. Le cube est centré et ses faces sont positionnées sur les plans dont l'une des composantes est constante égale à. Scène initiale

Images initiales : 2 couples d'images, montrant en tout les 6 faces du cube. Image de la scène 3D. L'objet d'intérêt est le cube en noir. Les points de couleur représentent les centres des caméras. Les deux plans de couleur sont les écrans de deux des caméras.

Géométrie épipolaire Images en géométrie épipolaires : les lignes horizontales se correspondent dans les images. Cartes de disparités et validation Cartes de disparités des images. Disparités validées par aller-retour (en bleu).

Cartes de disparités (points validées uniquement). Nuage de point obtenu Nuage de points 3D obtenu.

Précision de la reconstruction Afin de mesurer la précision, j'ai calculé la norme infinie de chacun des points obtenus. Notons que le cube d'origine est l'ensemble des points de norme infinie égale à. Le centre du cube est le point de norme, et les caméras sont à une distance de unités environ. On note la présence de quelques points aberrants restants, peu nombreux. La très grande majorité des points sont bien sur le cube (norme très proche de ). Normes infinies des points. Code MATLAB Histogramme des valeurs des normes infinies. L'imprécision est d'à peine 0.5% de la distance aux caméras. Voici des fichiers de test proposés, présents soit dans le dossier "Stéréovision", soit dans le sous-dossier "Code" : LaunchMe.m : exemple du cube de la partie précédente, avec 4 images (2 couples) ;

LaunchExamples.m : le cube (avec 2 images) et la scène de la figure 2.2 (avec 2 images initialement en géométrie épilolaire) ; LaunchAppariement.m : l'auto-stéréogramme de la figure 2.4, avec affichages intermédiaires ; LaunchStereo1.m, puis LaunchStereo2.m : le cube (avec 2 images), avec affichages intermédiaires. Détection de plans dans un nuage de points 3D Reconstruction 3D