ENSEIRB-MATMECA PG-113 2014. TP6: Optimisation au sens des moindres carrés



Documents pareils
Master IMA - UMPC Paris 6 RDMM - Année Fiche de TP

TP : Gestion d une image au format PGM

Traitement bas-niveau

IMAGES NUMÉRIQUES MATRICIELLES EN SCILAB

Opérations de base sur ImageJ

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

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

de calibration Master 2: Calibration de modèles: présentation et simulation d

Fonctions de plusieurs variables

Optimisation, traitement d image et éclipse de Soleil

Cours de numérisation sur Epson Perfection

Programmation linéaire

TP SIN Traitement d image

Résolution de systèmes linéaires par des méthodes directes

Projet de Traitement du Signal Segmentation d images SAR

I Stabilité, Commandabilité et Observabilité Introduction Un exemple emprunté à la robotique Le plan Problème...

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

Plan du cours Cours théoriques. 29 septembre 2014


Tp_chemins..doc. Dans la barre "arche 2" couleur claire 1/5 21/01/13

L espace de travail de Photoshop

Fonctions de deux variables. Mai 2011

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

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

4.2 Unités d enseignement du M1

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

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

Algorithme des fourmis appliqué à la détection et au suivi de contours dans une image

Chp. 4. Minimisation d une fonction d une variable

Calcul différentiel sur R n Première partie

FEN FICHE EMPLOIS NUISANCES

Cours d Analyse. Fonctions de plusieurs variables

Gestion de gros fichiers binaires (images) en APL*PLUS III

Projet : Recalage par maximisation de l information mutuelle

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

Echantillonnage Non uniforme

Utilisation de l éditeur.

TD de supervision. J.P. Chemla. Polytech Tours Département productique 2ème année

Géométrie discrète Chapitre V

Agrégation des portefeuilles de contrats d assurance vie

ÉdIteur officiel et fournisseur de ServIceS professionnels du LogIcIeL open Source ScILab

Python - introduction à la programmation et calcul scientifique

Initiation à linfographie

MATLAB : COMMANDES DE BASE. Note : lorsqu applicable, l équivalent en langage C est indiqué entre les délimiteurs /* */.

Quantification Scalaire et Prédictive

Calculs et Certificats de Quantités d Intérêts Non Linéaires d un Mousqueton Cédric Bellis

Résolution d équations non linéaires

Formats d images. 1 Introduction

Projet Matlab : un logiciel de cryptage

Réussir et traiter ses photos sous UV avec Photoshop

Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.

Introduction à MATLAB R

FONDEMENTS MATHÉMATIQUES 12 E ANNÉE. Mathématiques financières

TITRE PARTIE TITRE SECTION. Faire des anaglyphes avec CatiaV5

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

Correction du baccalauréat STMG Polynésie 17 juin 2014

NOTATIONS PRÉLIMINAIRES

CHAPITRE I. Modélisation de processus et estimation des paramètres d un modèle

3 Approximation de solutions d équations

Optimisation de la compression fractale D images basée sur les réseaux de neurones

Initiation à LabView : Les exemples d applications :


Séance 0 : Linux + Octave : le compromis idéal

CHAPITRE IV Oscillations libres des systèmes à plusieurs degrés de liberté

Découverte du tableur CellSheet

Business Intelligence

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

Guide de démarrage rapide. (pour la version 5.0.)

Systèmes de transmission

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

ANALYSE NUMERIQUE ET OPTIMISATION. Une introduction à la modélisation mathématique et à la simulation numérique

Bac Blanc Terminale ES - Février 2011 Épreuve de Mathématiques (durée 3 heures)

Le langage C. Séance n 4

Mathématique et Automatique : de la boucle ouverte à la boucle fermée. Maïtine bergounioux Laboratoire MAPMO - UMR 6628 Université d'orléans

Analyse d images. Edmond.Boyer@imag.fr. Edmond Boyer UFRIMA 1

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

Lecture graphique. Table des matières

Exemple d application en CFD : Coefficient de traînée d un cylindre

La classification automatique de données quantitatives

Annexe 6. Notions d ordonnancement.

TangibleData. Manipulation tangible et multitouch de bases de données

Sites web éducatifs et ressources en mathématiques

= constante et cette constante est a.

données en connaissance et en actions?

KompoZer. Composition du site : _ une page d'accueil : index.html. _ une page pour la théorie : theorie.html. _ une page pour les photos : photos.

Cours Informatique Master STEP

Guide d utilisation du ipad

EXCEL TUTORIEL 2012/2013

Présentation de Firefox

Chap17 - CORRECTİON DES EXERCİCES

Évaluation de la régression bornée

Dérivées d ordres supérieurs. Application à l étude d extrema.

Coup de Projecteur sur les Réseaux de Neurones

Simulation de variables aléatoires

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

Structure du format BMP, sa lecture, sa construction et son écriture

TOUT CE QU IL FAUT SAVOIR POUR LE BREVET

Les algorithmes de base du graphisme

Programmation Linéaire - Cours 1

Transcription:

ENSEIRB-MATMECA PG-113 014 TP6: Optimisation au sens des moindres carrés Le but de ce TP est d implémenter une technique de recalage d images qui utilise une méthode vue en cours d analyse numérique : la minimisation au sens des moindres carrés. Un recalage d images consiste à mettre spatialement en correspondance deux images, afin de pouvoir les comparer ou combiner leurs informations respectives. Cette technique est utilisée pour de nombreuses applications comme le traitement de vidéos pour le suivi de mouvement ou la compression, ou l imagerie médicale afin de fusionner plusieurs modalités d imagerie. Il existe dans la littérature un nombre considérable d approches permettant d estimer le mouvement entre deux images. Un algorithme de recalage d images, qu il s inscrive dans le cadre d une application interactive ou automatique, nécessite la définition de quatre critères: 1. Les structures homologues. Ce sont des informations extraites des images sur lesquelles va s appuyer l algorithme pour estimer le mouvement. Dans le cadre de ce TP, le mouvement est une variable cachée qui sera accessible par l analyse des variations spatio-temporelles des niveaux de gris entre une image de référence et une image à recaler.. La transformation spatiale à rechercher. Dans le cadre de ce TP, nous nous limiterons à l estimation d une transformation à deux paramètres: une translation horizontale notée X et une translation verticale notée Y. 3. Un critère caractérisant la qualité du recalage. Dans le cadre de ce TP, le principe sera de calculer les paramètres de la transformation spatiale définie en en minimisant la différence quadratique entre l image de référence et l image à recaler. 4. Une stratégie de résolution permettant de trouver la transformation optimisant le critère défini en 3. Nous exprimerons les paramètres de la transformation spatiale comme la solution d un système surdéterminé que nous résoudrons à l aide d une minimisation au sens des moindres carrés. Tout d abord, la première section de ce TP se consacrera à quelques manipulations préliminaires d images destinées à se familiariser avec les outils de base nécessaires pour la suite. Ensuite, la deuxième section visera à développer des routines permettant d appliquer des transformations spatiales sur une image. Enfin, la troisième et dernière section de ce TP s intéressera à estimer les paramètres d une transformation spatiale simulée entre deux images. I Manipulations d images Une image est modélisée par une matrice A, dont les valeurs sont des nombres réels compris entre 0 et 1, 0 correspondant au noir, 1 correspond au blanc, les autres valeurs correspondant à différents niveaux de gris. Nous allons d abord nous familiariser avec la manipulation des images stockées au format PGM. Téléchargez les deux fichiers suivants: tp6.f90 : Définition des traitements à appliquer à l image, c est le fichier que vous devrez modifier. image reference.pgm : Image en niveaux de gris sur laquelle vous travaillerez. 1

I.1 Négatif d une image Créez une routine qui prend en entrée une matrice A représentant l image en noir et blanc et qui la modifie en son négatif. Vous appellerez cette routine dans le programme principal pour la tester. Vous sauvegarderez l image modifiée à l aide de la routine save pgm afin de visualiser le résultat obtenu avec le logiciel de visualisation d images The Gimp qui se lance en tapant dans un terminal la commande gimp. I. Luminosité Pour modifier la luminosité d une image, il suffit de décaler toutes les valeurs des pixels soit vers le haut éclaircissement, soit vers le bas assombrissement. On note A ij la valeur d un pixel, sa nouvelle valeur sera A l ij où l représente la luminosité. Si l = 1, on ne change rien à l image. Si l < 1, on éclaircit l image et si l > 1, on l assombrit. Créez une routine implémentant un tel filtre. Sauvegardez l image au format PGM et visualisez le résultat obtenu avec The Gimp. I.3 Détection de contours Un filtre de détection de contours très simple est basé sur une approximation du Gradient. On considère que chaque pixel est la valeur en un point d une fonction D discrète. Un contour est détecté lorsque le gradient a une valeur élevée. On crée alors une nouvelle image dont chaque pixel contient la valeur du gradient en ce point donné. On peut prendre, par exemple, juste la composante en x du gradient: x A ij = A i+1,j A i,j Codez cette détection de contour et appliquez la sur lena.pgm. Variez les plaisirs en prenant plutôt une approximation de A i,j Enfin, on peut utiliser l approximation d un Laplacien qui ressemble à ce qu on a utilisé dans l approximation du Laplacien pour résoudre l équation de Poisson: A ij = A i+1,j + A i 1,j + A i,j+1 + A i,j 1 4A i,j Comparez les résultats donnés par ces différentes méthodes. II Application d une transformation spatiale sur une image II.1 Changement d échelle: Interpolation au plus proche voisin L interpolation au plus proche voisin consiste à attribuer à chaque pixel de l image d arrivée la valeur du pixel dans l image source le plus proche de son antécédent par la transformation inverse. C est une interpolation polynomiale d ordre 0. Compléter la fonction zoom image ppv permettant de zoomer dans une image reconstruite à l aide d une interpolation au plus proche voisin. Cette fonction prend comme arguments: une matrice stockant l image originale à agrandir image in, une matrice stockant l image agrandie que vous allez générer image out, les nombres de lignes et de colonnes des matrices images respectivement width et height, la variable réelle zoom factor qui détermine le facteur de changement d échelle à appliquer. On note x in, y in respectivement x out, y out les coordonnées des pixels dans l image d entrée respectivement l image de sortie. La fonction zoom image ppv parcourra l ensemble des pixels de l image de sortie x out, y out et calculera leurs coordonnées dans l image d entrée x in, y in de la manière suivante:

xout width x in, y in = zoom factor + width, y out height zoom factor + height Tester votre routine sur lena.pgm lorsque zoom factor=10 et visualisez avec The Gimp le résultat obtenu. II. Changement d échelle: Interpolation bilinéaire L interpolation bilinéaire consiste à attribuer à chaque pixel interpolé une combinaison linéaire des quatre pixels les plus proches. C est une interpolation polynomiale d ordre 1. Complétez la fonction interpolation bilineaire permettant de zoomer dans une image reconstruite à l aide d une interpolation bilinéaire. Cette fonction prend en entrée: une matrice stockant l image à interpoler image, les nombres de lignes et de colonnes de la matrice image respectivement width et height, les variables réelles x et y qui déterminent les coordonnées du pixels à interpoler. La valeur du niveau de gris interpolée sur les coordonnées réelles x, y est stockée dans la variable interpolation bilineaire puis retournée en sortie de la fonction. Complétez la fonction zoom image bl permettant de zoomer dans une image reconstruite à l aide d une interpolation bilinéaire les arguments d entrée/sortie sont identiques à ceux de la fonction zoom image ppv détaillés dans la section II.1. Comparez avec The Gimp la qualité d image obtenue pour zoom factor=10 lorsque l interpolation bilinéaire est utilisée. II.3 Translation horizontale et verticale Complétez la fonction translate image appliquant une translation sub-pixel sur une image. Cette fonction prend comme arguments: une matrice stockant l image originale à translater image in, une matrice stockant l image translatée que vous allez générer image out, le nombre de lignes et de colonnes des matrices images respectivement width et height, un tableau de nombres réels de taille qui stocke les valeurs de translation horizontale et verticale à appliquer. III Recalage d images à l aide d une minimisation au sens des moindres carrés On dispose de images: une image de référence I 1 et une image à recaler I. On note I 1 x, y p1 X la valeur du niveau de gris de I 1 au pixel x, y. On note également p = = le vecteur p Y des paramètres de translation recherchés. L algorithme consiste à translater I de p puis à calculer Dp = I 1 TranslatéI, p. D x,y p est donc la fonction décrivant la différence entre l image de référence et l image à recaler au pixel x, y lorsque le vecteur des paramètres transformation prend la valeur p. L objectif est de trouver t1 p tel que Dp = 0. Pour cela, on initialise p à 0, 0, on calcule Dp, puis on cherche t = tel que Dt + p = 0 à l aide d une approximation de Taylor au premier ordre de la manière suivante: D x,y p + t = D x,y p + t 1 D x,y p + t D x,y p +... L approximation de Taylor fournit ainsi le système surdéterminé à résoudre suivant: t 3

D,1p D,1p Pour simplifier les équations, on note: A = D,1p D,1p t1 t D 1,1 p D,1 p... D 1,1 p D,1 p B =... En utilisant l approximation au sens des moindres carrés, l estimation des paramètres peut donc être effectuée de la manière suivante: III.1 t = A T A 1 A T B Recalage d un mouvement de faible amplitude A l aide des routines écrites dans le paragraphe II.3, simulez à partir de l image originale lena.pgm une image translatée horizontalement de 1 pixels seulement. Estimez cette transformation à l aide d un recalage au sens des moindres carrés. Il est nécessaire pour cela d inverser la matrice A T A. Au lieu de l inverser, on la factorisera sous forme LU avec la sous-routine dgetrf, comme vu précédemment au TP. La résolution du système linéaire se fera avec dgetrs. On rappelle que, pour compiler le fichier Fortran, on n oubliera pas d inclure Lapack et Blas dans ligne de compilation de la manière suivante: gfortran -o run tp6.f90 -llapack -lblas III. Recalage d un mouvement de forte amplitude Simulez une image translatée horizontalement de 50 pixels. L estimation du mouvement est-elle satisfaisante? A cause des effets de bord sur l image, l approximation de Taylor décrite précédemment n est valide que pour de petites translations. Le t calculé au paragraphe III.1 ne vérifie donc pas exactement Dt + p = 0. On pose donc t 0 = t et p 0 = p, et p 1 = t 0 + p 0. On cherche ensuite t 1 tel que Dp 1 + t 1 = 0 et on se retrouve donc dans la situation de départ. On calcule ainsi une suite p n et l estimation des paramètres peut donc être effectuée à l aide du schéma itératif suivant: p n+1 = p n + t n = p n + A T A 1 A T B Implémentez ce schéma itératif. A chaque itération n, la norme de t n sera calculée. Le schéma itératif sera arrêté dès lors que t n se trouve inférieure à ɛ = 10 14. Vérifiez que le déplacement horizontal de 50 pixels est maintenant correctement estimé. III.3 Résolution numérique Implémentez et comparez les performances en terme de temps de calculs des différentes méthodes vues en cours pour la résolution en t du système A T At = A T B. 4

IV Optionnel: Recalage affine Modifiez votre code afin que l algorithme puisse simuler puis estimer une transformation spatiale affine. 5