Archives de catégorie : module: traitements

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 : Banc de filtres

Titre du module : Banc de filtres
proposé par :

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • Roland Badeau (roland.badeau_at_telecom-paristech.fr)
Descriptif
Un signal audio comprend des composantes fréquentielles perceptibles allant de 20Hz à 20kHz. Dans de nombreux traitements, il est utile de se concentrer sélectivement sur des gammes de fréquences plus restreintes. Par exemple 100Hz à 300Hz. L’opération linéaire qui consiste à extraire sélectivement les composantes fréquentielle dans cette gamme restreinte à partir du signal original est un filtrage passe-bande de bande utile 100-300Hz. Lorsque cette opération de filtrage est effectuée en parallèle plusieurs fois pour des gammes (ou bandes) de fréquences distinctes comme par exemple : 0-200 / 200-500 / 500-1000 etc, on obtient autant de signaux extraits que de bandes et on parle de banc de filtres. Un schéma d’exemple est donné ci-dessous :Pour réaliser cette fonctionnalité, 3 possibilités  : par filtrages à RIF (Réponse Impulsionnelle Finie), par filtrages à RII (Réponse Impulsionnelle Infinie) ou à l’aide de la TFCT (Transformée de Fourier à Court Terme). Les deux premières renvoient aux modules correspondants.
Ressources dont le module dépend
  • wikipédia : filterbank, spectrogram, filter, cours oasis (SI101) filtrage
  • bibliothèques JAVA à mettre en oeuvre : math common api
Exemples d’utilisation du module
  • dans des composants pact :
    • dans la détection du rythme
    • pour fabriquer un égaliseur
  • dans des systèmes existants :
    • codage audio (mp3, aac)
    • en conversion de cadence (changement de fréquence d’échantillonnage)
    • jpeg2000 en image
    • éditeurs audio
Résultats attendus
  • connaissances : convolution discrète, filtrage, réponse impulsionnelle, réponse en fréquence, RII, RIF, banc de filtres, TFCT, spectrogramme, canal fréquentiel, bande de fréquences, sous-bande.
  • compétence : expliquer pourquoi la TFCT est équivalente à un banc de filtres, savoir justifier des choix de paramètres (nombre de bandes,  choix de fenêtre, hopsize), savoir expliquer les caractéristiques d’un spectrogramme de signal audio.
  • PAN 2 : notice descriptive précise (choix de paramètres, justifications des choix, description mathématique, description informatique) contenant le pseudo-code à mettre en oeuvre, et une première implémentation en matlab/octave sour forme de fonction.
    Constitution d’une collection de signaux test à différents tempo, au format wav pour tester les algorithmes. Il s’agira à la fois de signaux de type horloge et de signaux réalistes (musicaux ou adaptés à votre projet).
  • PAN3 :
    • code java commenté et structuré de manière à être lisible.
    • tests du banc de filtre :
      • sur un bruit blanc : afficher le spectre en entrée et les spectres des signaux de sortie,
      • sur des signaux de votre choix, enregistrer en format wav les sorties obtenues pour chaque voie du banc de filtre

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 : Visualisation de données, en particulier de test

Module: Visualisation de données, en particulier de test
proposé par :

  • Jean-Claude Dufourd (dufourd_at_telecom-paris.fr, 9691, bureau 5D30)
Descriptif
Il y a plusieurs bibliothèques de dessin de courbes et de représentations de données en Java:

Ces bibliothèques permettent d’afficher à peu près n’importe quel type de données de manière très évoluée. Par exemple, vous avez un tableau de valeurs représentant un spectre, vous aimeriez bien visualiser ce spectre comme une courbe à l’écran pour voir si votre programme fonctionne.

Si vous avez un besoin ponctuel d’affichage de test pendant vos développements, inutile d’en faire un module. Si par contre vous avez des besoins variés et/ou une utilité de la visualisation dans le produit fini, alors créons un module.

jFreeChart est très complète, mais la doc est payante.

jmathplot est beaucoup plus facile à utiliser, mais plus limitée, et pour de la représentation 2D.

jzy3d fait de l’affichage 3D en perspective, c’est mieux pour certains types de données.

GraphView et MPAndroidChart sont des bonnes bibliothèques pour faire l’équivalent sous Android.

Ressources dont le module dépend
  • Bibliographie
    • voir les liens ci-dessus
Exemples d’utilisation du module
  • pour afficher des données audio, de spectre, d’histogramme, …
  • pour afficher des résultats d’enquêtes SES, d’étude de marché
  • pour afficher un tableau de bord complexe pour votre programme
Résultats attendus
  • il s’agit de déterminer les besoins de votre sujet, de créer une série de mises en oeuvre de la bibliothèque dans des situations qui seront réutilisables dans votre projet, et de tester ces mises en oeuvre sur des exemples.
Séquencement
Le séquencement précis de ce module par rapport aux PANs est flexible et sera négocié au début du module.

Module : Vidéo 3D

Vidéo 3D
proposé par :

  • Marco Cagnazzo (cagnazzo@telecom-paristech.fr)

 

Descriptif
La Vidéo 3D est un mode de communication immersive, qui donne à l’utilisateur l’impression de plus en plus réaliste « d’être dans la scène ». Cela peut être obtenu avec la vidéo stéréoscopique (deux vues), multi-vues (N>2 vues), et MVD (multi-vues plus profondeur, ou depth).Ce module permettra de connaître les formats les plus communs pour la vidéo 3D.
Ressources dont le module dépend

 

Exemples d’utilisation du module
  • Utilisation : vidéo 3D
  • Vidéo conférence 3D, appels vidéo 3D
  • TNT 3D
  • Blu-ray Discs 3D

 

Résultats attendus
  • Connaissances : Formats de vidéo 3D
  • Compétence : Capacité de lire et manipuler des vidéo dans les formats 3D
  • Livrable : Synthèse de points de vue virtuels

Module : Estimation du mouvement

Représentation et compression de la vidéo
proposé par :

  • Marco Cagnazzo (cagnazzo@telecom-paristech.fr)

Experts :

  • Li Wang, Marco Cagnazzo

 

Descriptif
L’estimation de mouvement est un outil dont l’objectif est de donner une description robuste et précise du mouvement qui existe dans une vidéo numérique.Exemples :

  •     Match de tennis : mouvement des joueurs et de la balle
  •     Film : mouvement des personnages, du fond, des objets, …

Cette définition est intuitive, mais vague. Pour avoir des algorithmes utilisables en pratique, il est nécessaire donner une formalisation mathématique au problème.

En représentant les images d’une vidéo numérique comme des matrices de nombres (qui définissent la couleur de chaque pixel), les principales méthodes d’estimation du mouvement sont basée sur le « block-matching » (BM), c’est-à-dire sur la correspondance de blocs de pixels de deux images.

Les algorithmes BM, améliorés avec des contraintes de régularisation, sont à la base de beaucoup de technique d’estimation de mouvement, et permettent d’avoir des bons (souvent très bons) résultats, pour une complexité raisonnable.

Le résultat d’une opération de estimation de mouvement est un champ de vecteur de mouvement, c’est-à-dire une fonction qui associe à chaque position de l’image un vecteur, qui décrit le mouvement de l’objet en cette position.

Ressources dont le module dépend

 

Exemples d’utilisation du module
  • Compression vidéo
  • Analyse vidéo
  • Surveillance
Résultats attendus
  • Connaissances : Techniques d’estimation, compromis entre qualité, débit et complexité
  • Compétence : capacité de comprendre et mettre en place des algorithmes d’estimation de mouvement
  • Livrable : Code java pour l’estimation de mouvement par block-matching

Module : Représentation et compression de la vidéo

Représentation et compression de la vidéo
proposé par :

  • Marco Cagnazzo (cagnazzo@telecom-paristech.fr)

 

Descriptif
Comme pour les images numériques, la vidéo aussi peut être représentée sous des formats variés:

  • Formats non compressés (YUV 4:4:4, YUV 4:2:0, …)
  • Formats compressés (MPEG-1, MPEG-2, MPEG-4, H.264, …)
  • Résolutions et débits d’images différents

Les formats non-compressés n’ont pas de dégradation de qualité, mais leur taille est énorme : 1 heure de vidéo non-compressée à résolution HD nécessite de environ 400 Go.

Des nombreux formats existent, permettant de gérer les compromis entre plusieurs critères importants :

  • La qualité de la vidéo (subjective ou objective)
  • Le débit (c’est-à-dire la taille en octets)
  • La complexité de la technique de codage
  • La robustesse par rapport aux pertes de données
  • Le retard imposé par le système de codage/décodage

Ce module permettra de connaître les éléments de base des techniques de compression, ainsi que les formats vidéo les plus communs. Un autre module est proposé pour les problématiques liées à l’estimation du mouvement dans une vidéo.

Ressources dont le module dépend
  • A. Bovik. Handbook of Image and Video Processing. Academic Press
  • Gonzales, Woods. Digital Image Processing. Prentice Hall.
  • Module de représentation des images
  • Cours de compression dans l’UE SI350
  • Librairies Java

 

Exemples d’utilisation du module
  • Utilisation : en tout module portant sur la vidéo
  • Vidéo conférence, appels vidéo
  • Streaming vidéo
  • TNT
  • DVD, Blu-ray Discs

 

Résultats attendus
  • Connaissances : Formats MPEG, H.264, compromis entre qualité, taille, robustesse, complexité, retard
  • Compétence : capacité de lire et manipuler des vidéo dans les formats les plus communs
  • Livrable : Code java pour la lecture/écriture de la vidéo en formats différents (transcoding)

Module : Représentation et compression d'image

Représentation et compression d’image
proposé par :

  • Marco Cagnazzo (cagnazzo@telecom-paristech.fr)

 

Descriptif
Les images numériques peuvent être représentés sous plusieurs formats :

  • Formats non compressés (BMP, RAW, PGM, PPM, …)
  • Formats compressés (JPEG, GIF, …)

Les images en format non-compressé sont plus faciles à manipuler et ont une qualité parfaite. Par contre elles ont une taille très importante : ces formats sont donc adéquat pour le traitement, mais pas pour la transmission ou le stockage.

Les images en format compressé peuvent être jusqu’à 30 fois plus petites en termes de nombre d’octets nécessaires pour la représentation, sans que cela en affecte la qualité. Toutefois ces formats sont relativement complexes, et au delà d’un certain rapport de compression la qualité peut devenir insuffisante.

La compréhension et la familiarité avec ces formats est nécessaire pour tout application visant le traitement, la transmission ou le stockage d’images.

Ressources dont le module dépend
  • A. Bovik. Handbook of Image and Video Processing. Academic Press
  • Gonzales, Woods. Digital Image Processing. Prentice Hall.
  • Cours de compression dans l’UE SI222
  • Librairies Java2D, ImageJ, …

 

Exemples d’utilisation du module
  • Utilisation : en tout module portant sur les images
  • En particulier les formats compressés (et notamment JPEG) sont incontournables pour le stockage et la transmission

 

Résultats attendus
  • Connaissances : Format BMP, format JPEG, représentation des images couleur, compromis qualité/taille
  • Compétence : capacité de lire et manipuler des images dans les formats les plus communs
  • Livrable : Code java pour la lecture/écriture d’images en formats différents (transcoding)