Big Logo

List of Student Projects


Comparaison de méthodes d'interpolation

Applet de démonstration en Java

Raphaël Marthe
Micro-engineering


Student Project

Semester Project, June 2001


1. Introduction

Le but de ce projet était de comparer l’efficacité et surtout la qualité de différents noyaux d’interpolation et, à cet effet, de créer une applet en Java qui réalise une transformation affine sur une image et qui permette de choisir parmi une large palette de fonctions de synthèse. Tout d’abord j’ai développé un plugin pour ImageJ qui permet de faire les différents tests des méthodes d’interpolations de manière plus aisée qu’à travers une applet. Les résultats obtenus sont comparés à des études préalables afin de tester leur validité [2]. Les méthodes d'interpolation implémentées sont également comparées pour chaque type de transformation (rotation, homothétie, etc.) [1].

2. La transformation affine

Pour une image quelconque en coordonnées homogènes f(k) = f(x,y,1), on calcule l’image résultante de la transformation g(k) de la manière suivante : g(k) = f(Ak), où la matrice de transformation affine à la forme suivante:

3. Expériences

Une fois l'implémentation validée, j'ai comparé en utilisant l'applet toutes les méthodes d'interpolation implantées et ceci pour chaque type de transformations suivantes:

A. Une suite de 3 translations de 12.2 pixels en x et de 9.8 pixels en y.
B. Une suite de 3 rotations de 33.5 degrés (annexe 2).
C. Une suite de 3 zooms d'un facteur de 110%.
D. Une suite de 3 zooms d'un facteur de 90%.
E. Une suite de 3 transformations combinant à chaque fois les trois premières

Comparaison qualité - efficacité : La figure suivante montre le SNR moyen de chaque méthode pour les expériences A à E en fonction du temps d’exécution dans mon applet, sans tenir compte des valeurs infinies pour la méthode du plus proche voisin.

4. Conclusions et perspectives

Le but de ce projet étant de créer une applet Java permettant de comparer les différentes méthodes d’interpolation, celui-ci est donc atteint. Bien qu’il existe beaucoup de noyaux d’interpolation différents, je pense que les méthodes d’interpolation que j’ai implémentées sont un échantillon représentatif. En ce qui concerne les expériences, la première a validé mon travail. La seconde, où je compare les méthodes entre elles pour différents types de transformations affines, a donné les résultats attendus, à part quelques cas isolés pour lesquels il faudrait peut-être un peu plus creuser. Peut-on conclure après l’expérience D qu’il vaut mieux utiliser la méthode de Schaum quadratique pour un zoom inférieur à 100%, plutôt que d’autres méthodes quadratiques comme celle des o-Moms ? Nous ne pouvons pas l’affirmer, un travail supplémentaire sur ce sujet serait nécessaire. C’est aussi le cas des transformations affines aléatoires : la hiérarchie entre les différentes méthodes en termes de qualité est-elle respectée ou non lorsque l’on applique une transformation avec des paramètres aléatoires sur une image ? Cette question mériterait qu’on s’y attarde. En résumé, ces expériences ont démontré la supériorité, lors d’une transformation affine, de l’interpolation avec la méthode de o-Moms cubique sur les autres, sauf pour une translation, où il vaut mieux utiliser l’interpolation du plus proche voisin, si la mesure de la qualité par le SNR définit dans ce rapport est efficace pour la comparaison des méthodes d’interpolation.

Je pense que l’interface de l’applet est complète. Cependant, il serait possible d’y rajouter quelques options, comme un mode rotation, un mode zoom, pour habituer l’utilisateur au maniement avant de s’attaquer à des transformations plus complexes, comme le mode Custom. Une amélioration appréciable pourrait être un mode dabs lequel l’utilisateur a la possibilité d’ajouter son propre noyau d’interpolation. Pour terminer, une dernière amélioration pourrait être l’implémentation des méthodes de Schaum et o-Moms quadratiques sur le même modèle que les autres, afin d’avoir une meilleure comparaison en terme de temps.