Archives de catégorie : module: traitement d’image

Module : Création d’une carte de pertinence avec kPPV

Titre du module : Création d’une carte de pertinence avec kPPV
proposé par :

  • Michel Roux (_at_telecom-paristech.fr, Poste 96 84, bureau 5B60)
Descriptif
Ce module prend en entrée une image photographique (RGB), ainsi qu’une liste de points dont la pertinence est qualifiée. Il renvoie une image de même taille que l’image originale, contenant, pour chaque pixel, une information de pertinence selon la qualification proposée en entrée.A partir des pixels qualifiés (par exemple selon 3 classes : très pertinent, pertinent, non pertinent), nous allons exploiter les propriétés de l’image originale (couleur essentiellement) afin d’appendre la relation existant entre la notion de pertinence définie et les propriétés de l’image. Cette relation est capturée par un classificateur qui permet ensuite de classer tous les pixels de l’image selon les classes de pertinence envisagées. Nous préconisons l’usage d’un classificateur kPPV (k Plus Proches Voisins), pour sa simplicité de mise en oeuvre.Le kPPV recherche, pour chaque pixel à classer, ses k (paramètre à déterminer) plus proches voisins parmi ceux de la liste de pixels qualifiés. Cette notion de voisinage est traduite mathématiquement par une mesure de distance (ou de similarité) entre les descriptions vectorielles associées à chaque pixel (qualifiant par exemple sa couleur, sa position). La classe finalement attribuée est la classe majoritaire au sein des k voisins.
Ressources dont le module dépend
  • Notions de base : définition mathématique d’une distance, d’une mesure de similarité et caractérisation des pixels d’une image.
  • Le polycopié de SI221 peut être utile
Exemples d’utilisation du module
  • Dans le projet, ce module sera utilisé pour différencier des zones d’une image selon un critère de pertinence défini par l’utilisateur : cette information est disponible sous forme d’une liste de pixels qualifiés selon des classes de pertinence prédéfinies.
  • D’une façon plus générale, le kPPV est un classificateur supervisé : il doit donc disposer d’une base de données étiquetées (les classes sont connues à l’avance) et il peut fonctionner pour différents types d’étiquettes. On pourrait imaginer l’utiliser, par exemple, pour qualifier la pertinence d' »envoyer des bombes de peinture » mais également la « quantité de bleu » à privilégier au niveau de chaque pixel.
Résultats attendus
  • connaissances : classification, supervisé-non supervisé, pixel, caractérisation vectorielle d’un pixel, mesure de distance et de similarité
  • compétence : à l’issue de ce module je saurai construire/utiliser un classificateur kPPV en Java, afin de produire une carte de pertinence exploitable dans le projet Splash Painter.
  • livrable :
  1. Une étude bibliographique (présentation orale avec support ppt, à partager avec les autres membres du groupe) sur les mesures de distances et la caractérisation des pixels d’une image
  2. Une base de données d’images et des listes de points qualifiés allant avec, en variant les situations
  3. Du code Java permettant de stocker les données nécessaires, de traiter l’image d’entrée, de créer le classificateur et de prédire la classe de chaque pixel de l’image.
  4. Un rapport (écrit) d’expérimentation décrivant la base de données, le protocole des tests, les résultats obtenus et les conséquences sur le projet du groupe.

Date de début :   26 novembre 2012

Date de fin : 22 janvier 2013

Signatures :

Module : Images vectorielles

Module: Images Vectorielles
proposé par :

  • Jean Le Feuvre (jean.lefeuvre@telecom-paristech.fr, 96 94, bureau 5D33)
Descriptif
A la différence des images bitmap qui utilisent une représentation à base de pixels pour décrire les objets à afficher, les images vectorielles s’appuient sur des représentations mathématiques (rectangles, cercles, courbes) et sur des remplissages particulier (dégragés, …). La représentation vectorielle présente l’avantage de conserver une qualité parfaite quel que soit le facteur de zoom utilisé, mais ne peut pas représenter toutes les images, telles que capturées par un appareil photo. Elles sont plutôt réservées à la représentation d’images issues d’une création informatique. Le format appelé SVG (Scalable Vector Graphics) est le format ouvert le plus utilisé, notamment sur le web.
Ressources dont le module dépend
  • Bibliographie
    • Artcile Wikipedia: http://en.wikipedia.org/wiki/Scalable_Vector_Graphics
    • Batik: http://xmlgraphics.apache.org/batik/
Exemples d’utilisation du module
  • Visualisation interactive de données graphiques et animées
Résultats attendus
  • connaissances: Principes des formats d’images vectorielles
  • compétence : Savoir créer des images vectorielles au format SVG.
  • livrable 1: Mise en oeuvre du logiciel Batik pour convertir une image vectorielle en image bitmap

Module : Streaming Multimedia

Module: Streaming Multimedia
proposé par :

  • Jean Le Feuvre (jean.lefeuvre_at_telecom-paristech.fr, 9694, bureau 5D33)
Descriptif
Pour certaines applications multimédia, il est parfois nécessaire de diffuser ou de lire en temps-réel des données audio-vidéo, sous-titres, etc. Cette diffusion et cette lecture mettent en oeuvre des techniques dites de streaming qui décomposent les données en portion d’un flux audio/vidéo. Chaque portion est capturée, diffusé et lues à des instants précis. Cela permet à la fois de commencer la lecture des données avant de les avoir toutes reçues, mais aussi de limiter la quantité de données à stocker, ce qui peut être intéressant pour des périphériques mobiles.
Ressources dont le module dépend
  • Bibliographie
    • Java Media Framework: http://www.oracle.com/technetwork/java/javase/tech/index-jsp-140239.html
    • Android Media Player API: http://developer.android.com/guide/topics/media/mediaplayer.html
Exemples d’utilisation du module
  • Réalisation d’un système client/serveur de capture, diffusion et lecture  audio/vidéo
  • Diffusion en temps réel d’informations pour la télévision
Résultats attendus
  • connaissances: principes de base du streaming et de certains protocoles associés
  • compétence : écriture d’un programme en Java manipulant les protocoles de streaming.
  • livrable 1: programme qui diffuse une vidéo en streaming, lue par un lecteur mutlimédia type VLC
  • livrable 2: programme qui lit une vidéo en streaming

Module : Recalage d'images

proposé par :

  • Expert : Michel Roux (at telecom-paristech.fr, 96 84, bureau 5B60)
Descriptif
Pour beaucoup d’applications, il peut être intéressant de superposer deux images, voire plus, afin de comparer et de combiner les informations qu’elles contiennent, pixel à pixel. Il est alors nécessaire d’estimer d’une façon ou d’une autre la déformation à appliquer sur l’une des images pour la positionner précisément sur la seconde. En fonction de la nature de la scène visualisée, du type de capteur utilisé et des conditions de prises de vue, les méthodes mises en oeuvre peuvent être plus ou moins complexes.
Ressources dont le module dép
Exemples d’utilisation du module
  • La création de mosaïques d’images nécessite le recalage partiel des images les unes avec les autres.
  • La détection de changements sur la scène visualisée suppose, entre autres,  un parfait recalage entre les images.
  • L’interprétation d’images médicales provenant de différentes modalités (rayon X, IRM, tomographie, …) suppose que les images ont été recalées au préalable les unes avec les autres.
Résultats attendus
  • connaissances : points caractéristiques, appariements, transformation d’images
  • compétence : compréhension du recalage des images et de ses limites,
  • livrable 1 : un code java portant sur une sous-partie du recalage d’images,
  • livrable 2 : un jeu de test montrant les possibilités et les limitations de la méthode.

 

Module : Classification par kPPV

Classification par k Plus Proches Voisins (kPPV)
proposé par :
Michel Roux (at telecom-paristech.fr, 96 84, bureau 5B60)
complexité : moyenne, cumulable avec d’autres modules
Descriptif
Lorsque l’on dispose d’un nombre important de données, il peut être envisagé de les classer, en exploitant un critère de similarité entre ces données. Par exemple, on peut vouloir créer une classe d’images qui se ressemblent en termes de couleurs ou créer une classe de sons qui ont des similarités acoustiques. Ces classes peuvent être connues à l’avance ou non, on parle alors de classification supervisée ou non supervisée. Les kPPV sont une méthode de classification supervisée, pour laquelle les classes souhaitées sont connues à l’avance et l’on dispose d’exemples de données associées à ces classes. Le terme kPPV désigne finalement la méthodologie employée pour classer une nouvelle donnée : cette donnée est comparée à toutes celles dont la classe est connue ; cette comparaison nécessite une mesure (distance, similarité) permettant de trouver les voisins, ie les données les plus proches selon cette mesure. La classe prédite pour la nouvelle donnée est généralement la classe majoritaire parmi ses k plus proches voisins. La valeur de k est un paramètre important dont la valeur est à discuter. Les données que nous manipulerons seront vectorielles. Il est possible de faire des opérations similaires sur des graphes, mais cela serait trop lourd à mettre en oeuvre dans PACT. Il est à noter qu’il existe de nombreux autres classificateurs (supervisés ou non). Différentes UE du cycle master vous sont proposées pour les découvrir, en particulier SI221 (Laurence Likforman).
Ressources dont le module dépend
  • aucune dépendance a priori mais possibilité d’exploiter une librairie JAVA (à choisir avec l’expert) pour développer le code de la classification.
  • UE de reconnaissance des formes (SI221)
  • définition mathématique d’une mesure, d’une distance, d’une similarité
  • une base de données (vectorielles) définie dans le projet du groupe
Exemples d’utilisation du module
  • sur des signatures d’images ou sons, en vue d’une classification ou pour retrouver une signature similaire dans une base de données
 Objectifs d’apprentissag
  • Notion en apprentissage automatique : distances, similarités, apprentissage, évaluation, validation croisée
  • Compétence à développer : à l’issue de ce module vous aurez défini et programmé un classificateur kPPV en Java et vous saurez l’évaluer sur une base de données
 Résultats attendus
  • PAN1 :
    • Savoir définir les termes suivants : une distance, une similarité, apprentissage automatique, classification.
    • Savoir expliquer en quoi cet outil de classification est a priori intéressant dans le projet du groupe.
  • PAN2 :
    • Livrable : Etude bibliographique sur les notions de distance et similarité
    • Livrable : Pseudo code implémentant la classification par kPPV, en Java et le programme de test afférant.
  • PAN3 :
    • Livrable : code Java et premières mesures de performance sur des données standards (par forcément en lien avec votre projet).
  • PAN4 : Livrable : rapport de performance, en situation d’usage.

Module : Indexation des images

Caractérisation globale des images par leur couleur
proposé par :

  • Expert : Michel Roux (@telecom-paristech.fr, 96 84, bureau 5B60)
  • Difficulté : moyenne, cumulable avec un autre module
Descriptif
Lorsque l’on travaille avec des images, il peut être utile (pour les comparer, les stocker et les retrouver) de caractériser leur contenu à l’aide d’une signature numérique. Cette signature contient souvent des informations (globales ou locales) sur les formes, couleurs et textures présentes dans l’image.Dans ce module, il vous est proposé de développer quelques programmes Java permettant d’extraire, d’un ensemble d’images, une signature globale reposant sur un histogramme de couleurs. Vous serez également amenés à comparer les signatures entre elles afin de vérifier leur pouvoir discriminant.
Ressources dont le module dépend
  • Chapitre 2 du livre « Sémantique et multimodalité en analyse de l’information »
  • Cours de Java
  • librairies Java2D et ImageJ par exemple
  • différentes démos en ligne (INRIA, image sat,  logos, …)
  • Cours en ligne : partie 1 et partie 2
Exemples d’utilisation du module
  • utile dans un système de reconnaissance d’images
  • le processus peut être étendu à d’autres types de signatures (formes, textures)
Objectifs d’apprentissage
  • Notions : image, couleur, histogramme, distance et similarité
  • Compétence à développer : à l’issue de ce module vous saurez :
    • caractériser le contenu d’une image à l’aide d’une signature contenant une information relative à la couleur contenue dans l’image.
    • saurez comparer deux images, en exploitant leurs signatures de couleur.
    • en déduire le meilleur espace de couleur pour votre projet (analyse et synthèse des résultats obtenus).
Résultats attendus
  • PAN1 :
    • Savoir définir les termes suivants : espace de couleur, histogramme de couleur, comparer des images, indexer.
    • Savoir expliquer en quoi cet outil d’indexation est a priori intéressant dans le projet du groupe.
  • PAN2 :
    • Livrable : Etude bibliographique sur les notions d’espaces de couleur et de mesure de comparaison de signatures de couleur, recenser différentes façons de caractériser l’information de couleur contenue dans une image.
    • Pseudo-codes pour l’implémentation d’une procédure de calcul de signature de couleur pour une image et pour la comparaison de deux signatures.
  • PAN3 :
    • Livrable : code Java implémentant l’extraction d’une signature de couleur d’une image et code Java implémentant la mesure de comparaison de deux signatures + bonus : code Java permettant d’organiser une base d’images en exploitant leurs signatures de couleur (K-Means).
  • PAN4 :
    • Livrable : rapport justifiant l’usage d’un espace de couleur et code Java correspondant aux simulations mises en œuvre (comparaison de différentes signatures, pour un ensemble conséquent d’images utiles à votre projet).