Vision par ordinateur



Documents pareils
Fonctions de plusieurs variables

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

Découverte du logiciel ordinateur TI-n spire / TI-n spire CAS

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

Formes quadratiques. 1 Formes quadratiques et formes polaires associées. Imen BHOURI. 1.1 Définitions

Exercices Corrigés Premières notions sur les espaces vectoriels

NOTATIONS PRÉLIMINAIRES

FONCTIONS DE PLUSIEURS VARIABLES (Outils Mathématiques 4)

Cours d Analyse. Fonctions de plusieurs variables

05/09/2015. M Ponctualité : CM TD TP & Projet Æ En cas d absence : récupérer!!! 3 05/09/2015

LA PHYSIQUE DES MATERIAUX. Chapitre 1 LES RESEAUX DIRECT ET RECIPROQUE

Fonctions de deux variables. Mai 2011

Souad EL Bernoussi. Groupe d Analyse Numérique et Optimisation Rabat http ://

Correction de l examen de la première session

I - PUISSANCE D UN POINT PAR RAPPORT A UN CERCLE CERCLES ORTHOGONAUX POLES ET POLAIRES

Exercices du Cours de la programmation linéaire donné par le Dr. Ali DERBALA

3 Approximation de solutions d équations

Table des matières. I Mise à niveau 11. Préface

1 Complément sur la projection du nuage des individus

Optimisation non linéaire Irène Charon, Olivier Hudry École nationale supérieure des télécommunications

1 Définition. 2 Systèmes matériels et solides. 3 Les actions mécaniques. Le système matériel : Il peut être un ensemble.un sous-ensemble..

= 1 si n = m& où n et m sont souvent des indices entiers, par exemple, n, m = 0, 1, 2, 3, 4... En fait,! n m

Résolution d équations non linéaires

La Licence Mathématiques et Economie-MASS Université de Sciences Sociales de Toulouse 1

Cours de Mécanique du point matériel

Programmation linéaire

PARTIE NUMERIQUE (18 points)

CONSTRUCTION DES PROJECTIONS TYPES DE PROJECTION. Projection => distorsions. Orientations des projections

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

Calcul différentiel sur R n Première partie

Une réponse (très) partielle à la deuxième question : Calcul des exposants critiques en champ moyen

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

Enoncé et corrigé du brevet des collèges dans les académies d Aix- Marseille, Montpellier, Nice Corse et Toulouse en Énoncé.

F411 - Courbes Paramétrées, Polaires

Sujet proposé par Yves M. LEROY. Cet examen se compose d un exercice et de deux problèmes. Ces trois parties sont indépendantes.

Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables

Cours 02 : Problème général de la programmation linéaire

Items étudiés dans le CHAPITRE N5. 7 et 9 p 129 D14 Déterminer par le calcul l'antécédent d'un nombre par une fonction linéaire

1 radian. De même, la longueur d un arc de cercle de rayon R et dont l angle au centre a pour mesure α radians est α R. R AB =R.

Contexte. Pour cela, elles doivent être très compliquées, c est-à-dire elles doivent être très différentes des fonctions simples,

Structures algébriques

Chapitre 0 Introduction à la cinématique

Corrigé du baccalauréat S Asie 21 juin 2010

Chapitre 1 Régime transitoire dans les systèmes physiques

Chapitre 3 : Repères et positionnement 3D

Exo7. Matrice d une application linéaire. Corrections d Arnaud Bodin.

Programmation linéaire

Fonctions de plusieurs variables

Introduction. Mathématiques Quantiques Discrètes

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

modélisation solide et dessin technique

M2 IAD UE MODE Notes de cours (3)

Catalogue des connaissances de base en mathématiques dispensées dans les gymnases, lycées et collèges romands.

Sujet. calculatrice: autorisée durée: 4 heures

Master de Recherche première année. Programme de cours

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

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Rappels et compléments, première partie : Nombres complexes et applications à la géométrie

a et b étant deux nombres relatifs donnés, une fonction affine est une fonction qui a un nombre x associe le nombre ax + b

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

Calcul intégral élémentaire en plusieurs variables

Oscillations libres des systèmes à deux degrés de liberté

CHAPITRE V SYSTEMES DIFFERENTIELS LINEAIRES A COEFFICIENTS CONSTANTS DU PREMIER ORDRE. EQUATIONS DIFFERENTIELLES.

La programmation linéaire : une introduction. Qu est-ce qu un programme linéaire? Terminologie. Écriture mathématique

C f tracée ci- contre est la représentation graphique d une

Section «Maturité fédérale» EXAMENS D'ADMISSION Session de février 2014 RÉCAPITULATIFS DES MATIÈRES EXAMINÉES. Formation visée

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Notes du cours MTH1101N Calcul I Partie II: fonctions de plusieurs variables

Notion de fonction. Résolution graphique. Fonction affine.

Calcul matriciel. Définition 1 Une matrice de format (m,n) est un tableau rectangulaire de mn éléments, rangés en m lignes et n colonnes.

Deux disques dans un carré

Comment tracer une droite représentative d'une fonction et méthode de calcul de l'équation d'une droite.

Analyse en Composantes Principales

Angles orientés et trigonométrie

Programme de la classe de première année MPSI

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

Introduction : Cadkey

INTRODUCTION À L ANALYSE FACTORIELLE DES CORRESPONDANCES

Optimisation, traitement d image et éclipse de Soleil

Fonctions linéaires et affines. 1 Fonctions linéaires. 1.1 Vocabulaire. 1.2 Représentation graphique. 3eme

Sites web éducatifs et ressources en mathématiques

Différentiabilité ; Fonctions de plusieurs variables réelles

Programmation linéaire et Optimisation. Didier Smets

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

Chapitre 2. Matrices

I. Programmation I. 1 Ecrire un programme en Scilab traduisant l organigramme montré ci-après (on pourra utiliser les annexes):

Chapitre 4: Dérivée d'une fonction et règles de calcul

Fonction inverse Fonctions homographiques

Analyse des Systèmes Asservis

GMEC1311 Dessin d ingénierie. Chapitre 1: Introduction

La perspective conique


PHYSIQUE 2 - Épreuve écrite

IV- Equations, inéquations dans R, Systèmes d équations

SOCLE COMMUN - La Compétence 3 Les principaux éléments de mathématiques et la culture scientifique et technologique

Détection des points d intérêt et Segmentation des images RGB-D. Présentée par : Bilal Tawbe. Semaine de la recherche de l UQO

Les algorithmes de base du graphisme

AC AB. A B C x 1. x + 1. d où. Avec un calcul vu au lycée, on démontre que cette solution admet deux solutions dont une seule nous intéresse : x =

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

Algorithmique avec Algobox

Transcription:

Vision par ordinateur Géométrie de la vision Frédéric Devernay

Géométrie projective

Géométrie projective pour la vision Utilisations de la géométrie projective Dessin Mesures Mathématiques de la projection Dé-distordre les images Focus of expansion Estimation de pose de la caméra, suivi Reconnaissance d'objets utilisant des invariants Géométrie projective pour une seule caméra Représentation projective Dualité point-droite Points/lignes de fuite Homographies Le birapport Ensuite : stéréoscopie et multi-vues

Mesures sur des plans 4 3 2 1 1 2 3 4 Approche: transformation inverse puis mesure

Transformations Projectives du Plan Projection perspective d'un plan différents noms: homographie, placage de texture, colinéation se représente facilement grâce aux coordonnées homogènes " # % & " # % & = " # % & 1 * * * * * * * * * ' ' y x s sy sx H p p Pour appliquer une homographie H calculer p = Hp p = p /s normaliser en divisant par la 3ième composante

Rectification d'une image Pour rectifier une image calculer H étant donnés les p et p résoudre des équations de la forme : sp = Hp linéaires en les inconnues: s et coefficients de H besoin d'au moins 4 points

Le plan projectif Pourquoi les coordonnées homogènes? Permettent de représenter les points à l'infini, les homographies, la projection perspective, les relations multi-vues Quelle est l'intuition géométrique? Un point de l'image est un rayon dans l'espace projectif (0,0,0) z y x (x,y,1) (sx,sy,s) plan image Chaque point (x,y) du plan est representé par un rayon (sx,sy,s) tous les points du rayon son équivalents : (x, y, 1) (sx, sy, s)

Les droites projectives Qu'est-ce qu'une droite dans l'espace projectif? Une droite est un plan formé de rayons passant par l'origine tous les rayons (x,y,z) satisfont: ax + by + cz = 0 & x# en notation vectorielle : 0 = [ a b c] y % z " l p Une droite est donc aussi représentée par un vecteur de dimension 3 en coordonnées homogènes l

Principe de dualité point / droite Une droite l est vecteur à 3 coordonnées (un rayon) Elle est à tout point (rayon) p sur la droite: l p=0 l p 1 p 2 l 2 l 1 p Quelle est la droite l passant par les rayons p 1 et p 2? l est à p 1 et p 2 l = p 1 p 2 (produit vectoriel) l est la normale au plan formé par les deux rayons Quelle est l'intersection de deux droites l 1 et l 2? p est à l 1 et l 2 p = l 1 l 2 Les pts et les droites sont duaux dans l'espace projectif: toute propriété sur les points s'applique aux droites

Points et droites idéaux y (sx,sy,0) (sx,sy,0) y z x plan image z x plan image Point à l'infini (ou point idéal) p (x, y, 0) parallèle au plan image Il a des coordonnées image infinies : c'est une "direction" Droite idéale l (a, b, 0) parallèle au plan image Correspond à une droite passant par l'origine de l'image

Homographies de points et de droites Multiplication par une matrice 3x3 Pour transformer un point : p = Hp Pour transformer une droite : lp=0 l p =0 0 = lp = lh -1 Hp = lh -1 p l = lh -1 les droites sont transformées par multiplication à droite par H -1 Les homographies sont des objets courants: Transformation perspective d un plan «Texture mapping» Rectification pour la stéréoscopie Construction de panorama

Géométrie projective 3D Ces concepts se généralisent en 3D Coordonnées homogènes Les points 3D projectifs ont quatre coords : P = (X,Y,Z,W) Dualité Un plan L est aussi représenté par un vecteur de dim. 4 Les points et les plans sont duaux en 3D: L P=0 Transformations projectives Toutefois Représentées par des matrices 4x4 T: P = TP, L = L T -1 Par de produit vectoriel en 4D. On a besoin de nouveaux outils Algèbre de Grassman-Cayley» généralisation du produit vectoriel, interactions entre points, droites et plans via les opérateurs join et meet Dépasse le cadre de ce cours (cf. Faugeras & Luong 2001)

3D vers 2D: Projection perspective Projection matricielle: DP p = " # % & " # % & = " # % & = 1 * * * * * * * * * * * * Z Y X s sy sx Il est utile de décomposer en T R projection A " # % & " # % & " # % & " # % & ' ' = 1 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 0 0 0 3 1 1 3 3 3 3 1 1 3 3 3 x x x x x x y y x x f t s t s 0 0 0 T I R D projection intrinsèques orientation position

Modèles de projection Orthographique Perspectif faible " i x i y i z t x % ' D = j x j y j z t y ' # 0 0 0 1& ' " i x i y i z t x % ' D = f j x j y j z t y ' # 0 0 0 1& ' Affine Perspectif Projectif "* * * *% ' D = * * * * ' # 0 0 0 1& ' D = [ R t] "* * * *% ' D = * * * * ' # * * * *&'

Propriétés de la projection Conserve Droites et coniques Intersection Invariants (birapport) Ne conserve pas Distances Angles Parallélisme

Points de fuite plan image point de fuite centre optique plan du sol Point de fuite projection d'un point à l'infini

Points de fuite (2D) plan image point de fuite centre optique droite sur le plan du sol

Points de fuite plan image point de fuite V centre optique C droite sur le plan du sol droite sur le plan du sol Propriétés Deux droites parallèles ont le même point de fuite Le rayon issu de C passant par v est parallèle aux droites Une image peut avoir plus d'un point de fuite

Lignes de fuite v 1 v 2 De nombreux points de fuite Un ensemble de droites // du plan définit un point de fuite L'union de tous ces points de fuite est la ligne d'horizon aussi appelée ligne de fuite (article de Criminisi) Différents plans définissent différentes lignes de fuite

Lignes de fuite De nombreux points de fuite Un ensemble de droites // du plan définit un point de fuite L'union de tous ces points de fuite est la ligne d'horizon aussi appelée ligne de fuite (article de Criminisi) Différents plans définissent différentes lignes de fuite

Calcul des points de fuite Propriétés P est un point à l'infini, v est sa projection Ils dépendent seulement de la direction de la droite Des droites parallèles P 0 + td, P 1 + td s'intersectent en P V D P P t + = 0 " # % & ' ) ( " # % & + + + ' " # % & + + + = ( 0 1/ / / / 1 Z Y X Z Z Y Y X X Z Z Y Y X X t D D D t t D t P D t P D t P td P td P td P P P v = DP P 0 D

Calcul des lignes de fuite C l Propriétés plan du sol l est l'intersection du plan horizontal passant par C avec le plan image Calcul de l à partir de deux ensemble de droites // du plan du sol Tous les points situés à la même hauteur que C se projettent en l Permet de comparer les hauteurs des objets de la scène

S'amuser avec les points de fuite

Indices de perspective

Indices de perspective

Indices de perspective

Comparer les hauteurs Point de fuite

Mesurer la hauteur 5 4 3 2 5.4 Hauteur de la caméra 3.3 2.8 1

Calcul des points de fuite v 1 Intersection de 2 droites ou plus Droites A 1 + td 1,..., A n + td n (D i vecteurs unitaires) Minimiser la somme des distances au carré aux droites A n minimiser #(X " A i ) T (I " D i D T i ) T (I " D i D T i )(X " A 144424443 i ) i=1 dérivée par rapp. à X égale à 0 C i % ' & n # i=1 C i DD T (X-A) D i X-A ( n * X = # C i A i ) i=1 (I-DD T )(X-A) X

Mesurer la hauteur sans mètre C Y plan du sol Mesurer Y à partir des images On a besoin de plus que des points de fuite pour y arriver

Le birapport Un invariant projectif Quelque chose qui n'est pas affecté par les transformations projectives (y compris la projection perspective) Le birapport de 4 points collinéaires P 1 P 2 P 3 P 4 PP 1 PP 1 3 4 P2 P P P 2 4 3 On peut permuter l'ordre des points 4 = 24 ordres différent (mais seulement 6 valeurs distinctes) C'est l'invariant fondamental de la géométrie projective tous les autres invariants sont dérivés du birapport

Le birapport Birapport de points non-collinéaires :

Mesurer la hauteur C v Z b r t H T (haut de l'objet) R (point de référence) R B (bas de l'objet) Birapport dans la scène T" B # " R H = R " B # " T R Birapport dans l'image t " b v Z " r H = r " b v Z " t R plan du sol points scène representés par P & X # Y = Z % 1 " points image p = & x# y % 1 "

Mesurer la hauteur v z r ligne de fuite (horizon) v x v t 0 H t R H v y b 0 b birapport dans l'image

Mesurer la hauteur v z r ligne de fuite (horizon) t 0 v x t 0 v v y m 0 t 1 b 0 b 1 Et si le point sur le plan du sol b 0 est inconnu? L'homme est debout sur une boîte, dont la hauteur est inconnue Utiliser un côté de la boîte pour trouver b 0 comme ci-dessus b

3D projective geometry These concepts generalize naturally to 3D Homogeneous coordinates Projective 3D points have four coords: P = (X,Y,Z,W) Duality A plane N is also represented by a 4-vector Points and planes are dual in 3D: N P=0 Projective transformations Represented by 4x4 matrices T: P = TP, N = N T -1

Jusqu'ici... On sait mesurer La position sur un plan La hauteur plus générallement, la distance entre deux plans parallèles On dispose d'outils suffisants pour la modélisation 3D à partir d'une vue Il reste cependant à calculer la matrice de projection de la caméra

Mesures sur un plan de référence C [ u v 1] T [ X Y 0 1] T plan de référence Transformation perspective plane (homographie) H H transforme les coordonnées X-Y du plan en coords u-v de l'image Déterminée à partir de 4 points connus du plan du sol Option A: mesurer physiquement 4 points du sol Option B: trouver un carré, deviner sa taille Option C: Noter H = [av X bv Y l] (colonnes 1,2,4 de Π )» jouer avec les facteurs a et b jusqu'à ce que ça ait l'air correct Étant donnés u-v, on peut calculer X-Y par H -1

Mesures sur un plan parallèle C [ u v 1] T [ X Y Z 1] T Z plan de référence Transformation perspective plane (homographie) H Z H Z transforme les coordonnées X-Y du plan en coords u-v de l'image [ a v bv Z v l] H + Z = X Y Z Étant donnés u-v, on peut calculer X-Y par H Z -1 Autre technique, transformer d'abord le plan parallèle vers le plan de référence : plans parallèles reliés par une homologie (homog. à 5 paramètres) Ĥ = H Z H -1 = I + αz v Z T l va des coords u-v du plan parallèle vers les coords u-v du plan de ref.

Points de fuite et matrice de projection D = [" 1 " 2 " 3 " ] 4 1 = D 1 [ 0 0 0] T = v x (X point de fuite) de la même manière, " 2 = v Y, " 3 = v Z " 4 = "[ 0 0 0 1] T = projection de l'origine du monde " on choisit # 4 = v X v Y v X v Y D = [ v v v l] X Y, qu'on appelle l Z Pas si vite On connaît les v à un facteur d'échelle D = [ a v bv v l] X Y Déterminée complètement à partir de 3 longueurs de référence Z

Single View Metrology A. Criminisi, I. Reid and A. Zisserman (ICCV 99) Mesures dans la scène à partir d'une seule image Application: 3D à partir d'une image Suppositions 1 3 ensembles orthogonaux de droites parallèles 2 4 points connus sur le sol 3 1 hauteur dans la scène On peut obtenir une reconstruction affine sans 2 et 3

Criminisi et al., ICCV 99 Approche complète Charger une image Cliquer des droites parallèles définissant les directions X Y Z Calculer les points de fuite Indiquer des points sur le plan de ref. et une hauteur de ref. Calculer les positions 3D de plusieurs points Créer un modèle 3D à partir de ces points Extraire des cartes de texture Écrire un modèle VRML

Modèle 3D à partir d'une photographie http://www.robots.ox.ac.uk/~vgg/projects/singleview/

Modèle 3D à partir d'une photographie

Coniques Conique (= courbe quadratique) Définie par une équation matricielle Peut aussi être définie en utilisant des birapports de droites Conservée par les transformations projectives L'homographie d'un cercle est Version 3D : les surfaces quadriques sont conservées D'autres propriétés intéressantes (Sec. 23.6 de Mundy/Zisserman) Tangence Droites bipolaires Silhouettes "* * *%" x% ' ' [ x y 1] * * * ' y ' = 0 # * * *&' # 1& '