Archives de catégorie : module: traitements

Module : Descripteurs audio MFCC

Module: descripteurs audio MFCC
proposé par :

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • Roland Badeau (roland.badeau_at_telecom-paristech.fr)
Descriptif
Le Cepstre d’un signal audio est une représentation qui permet de caractériser le timbredu son associé. Il s’obtient comme la transformée de Fourier inverse du logarithme du spectre d’amplitude du signal.Dans la plupart des systèmes de classification audio (cf rubrique classification), on exploite des caractéristiques calculées à partir du Cepstre : les MFCC (Mel Frequency Cepstral Coefficients). Il s’agit d’une variante de coefficients cepstraux qui exploite un modèle simple d’audition humaine et qui s’avère très efficace dans la plupart des problèmes de classification.
Ressources dont le module dépend
Exemples d’utilisation du module
  • dans un système de reconnaissance des instruments de musique,
  • de classification de musique en genres (classique, jazz, pop, etc.) ou en humeurs, (joyeux, triste, etc.),
  • de classification de sons en catégories générales (parole, musique, silence, sons environnementaux).
Résultats attendus
  • connaissances : calcul du Cepstre réel, fréquences Mel, calcul des MFCC
  • compétence :  à l’issue de ce module vous aurez  écrit en Java un programme qui charge des signaux audio et retourne une séquence de vecteurs MFCC (extraits sur des fenêtres d’analyse à court terme)
  • livrable 1: pseudo-code
  • livrable 2: code java + test de comparaison des MFCC obtenus par le programme développé à ceux calculés avec un autre programme (Matlab) de référence.
Volume
  • 4TH programmées pour un binôme

Module : Classification automatique

Contacts experts : 

Michel Roux (at telecom-paristech.fr)

Introduction :

La classification automatique vise à assigner des objets à des catégories ou classes. Dans PACT, ces objets peuvent être des images, des vidéos, des sons, des textes, etc. Ces classes peuvent être connues à l’avance ou non, on parle alors de classification supervisée ou non supervisée. Par exemple, lorsqu’on analyse un contenu sonore, on peut vouloir automatiquement assigner les sons à des classes telles que celles qui apparaissent sur la figure 1.

Classes sonores
Figure 1 – Exemple de schéma classification audio général

Le principe général des systèmes de classification supervisée (cf. figure 2) inclut deux étapes:

  • une étape d’apprentissage qui peut être vue comme une phase de développement aboutissant à la mise en oeuvre d’une stratégie de classification;
  • une étape de test par laquelle les performances du système de classification sont évaluées.

En général, un système n’est prêt pour une utilisation réelle qu’après une succession d’étapes d’apprentissage et de test permettant de mettre en place une stratégie de classification efficace.

Système de classification
Figure 2 – Architecture générale d’un système de classification (traitant dans cet exemple des signaux audio)

La phase d’apprentissage comprend:

  • l’extraction à partir d’une base de données de référence appelée base d’apprentissage, de descripteurs sous forme de paramètres numériques. Ces paramètres qui sont aussi appelés attributs ou caractéristiques (features en anglais) sont sensés caractériser des propriétés des signaux pouvant révéler leur appartenance à l’une des classes envisagées.
  • La sélection d’attributs efficaces; en pratique un nombre élevé de descripteurs « candidats » qui ne servent pas tous les performances de classification est considéré, il est alors intéressant d’avoir recours à des techniques permettant de retenir un sous-ensemble d’attributs (de plus petite taille) qui garantisse les meilleurs résultats de classification.
  • L’apprentissage à partir des attributs sélectionnés de fonctions de classification ou fonctions de décision, lesquelles fonctions serviront à assigner des observations d’attributs de nouveaux exemples (de test) à l’une des classes possibles.

Lors de l’étape de test il n’est nécessaire d’extraire des signaux que les attributs qui ont été retenus et de décider de l’appartenance de ces signaux aux classes possibles en utilisant les fonctions de décisions apprises.

Dans PACT deux modules de classification particuliers vous sont proposés : les kPPV et Adaboost.

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) ou MDI343 (Stéphan Clémençon).

Bibliographie :

Il existe de nombreux ouvrages de référence. Pour une introduction vous pouvez consulter  Pattern classification ou Pattern Recognition

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, …)
  • Soufiane Rital (ancien membre de TII) vous conseille JavaCV ou ImageJ sur son blog ou ici
  • 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).

Module : Filtrage à réponse impulsionnelle finie

Titre du module : Filtrage RIF de données
proposé par :

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • Roland Badeau (roland.badeau_at_telecom-paristech.fr)
Descriptif
A l’aide d’une somme pondérée de N échantillons d’entrée, il est possible de réaliser un filtrage de ces mêmes données. Ceci permet par exemple de renforcer les graves dans un morceau de musique, d’isoler une bande de fréquence données ou même de simuler l’opération de différentiation.
Ressources dont le module dépend
Exemples d’utilisation du module
  • dans les composants pact :
    • banc de filtres
    • détection d’enveloppe
    •  préaccentuation
    • dérivateur
  • dans des applications  :
    • convertisseur de fréquence d’échantillonnage
    • égaliseur
    • démodulation numérique
Résultats attendus
  • connaissances : convolution, réponse impulsionnelle, réponse en fréquence, filtrage, RIF vs RII, équation aux différences, passe-bas/haut/bande, transformée de Fourier, transitoire, retard
  • compétence : être capable de réaliser en java un filtre à RIF dont on connais les coefficients, être capable de prévoir théoriquement son comportement par le calcul, être capable de démontrer son fonctionnement à l’aide d’exemples bien choisis
  • livrable : pseudo-code du filtrage à RIF, programmation de ce pseudo-code en java, programmation d’un test avec affichage graphique des spectres entrée/sortie.

Bibliographie : Synthèse et Reconnaissance de la parole

Contact:

  • Geoffroy Peeters (geoffroy.peeters_at_telecom-paristech.fr)
  • Roland Badeau (roland.badeau_at_telecom-paristech.fr)

Descriptif

Cette page donne quelques liens vers des documents en synthèse et reconnaissance de la parole.

Présentation succincte sur la synthèse et Reconnaissance de la parole

Traitement de la parole

  • R. Boite, H. Bourlard, T. Dutoit, J. Hancq, and H. Leich. Traitement de la parole. Presses polytechniques et universitaires romandes,Lausanne, 2000.
  • Calliope, « La parole et son Traitement Automatique, 1989
  • J. Benesty, M. Sondhi, Y. Huang, « Handbook of Speech Processing », Springer, 2008 (1176 pages !!)
  • G. Richard, « traitement de la parole », polycopié Télécom ParisTech

Reconnaissance de la parole

Synthèse de la parole

Travaux pratiques (cycle master) qui peuvent être utiles

Module : La synthèse d’images 3D

La synthèse 3D
proposé par :

  • Jean Le Feuvre, jean.lefeuvre_at_telecom-paris.fr
  • Jean-Marc Thiery (jean-marc.thiery_at_telecom-paris.fr)
Descriptif
L’informatique graphique connaît depuis quelques années un formidable essor. Popularisées par les jeux vidéo et l’industrie des effets spéciaux, les images de synthèses sont de plus en plus utilisées dans des domaines allant du divertissement, à l’art en passant par les simulations d’entraînement, la visualisation scientifique et l’aide à l’analyse (par exemple pour l’investigation d’hypothèses archéologiques). Même si les données en entrée sont toujours les mêmes (une description 3D des objets obtenus par acquisition automatique ou par modélisation manuelle) les algorithmes qui leurs sont appliqués sont de plus en plus variés: affichage dans différents styles (physiquement réaliste, stylisé), détection de collisions,  analyse géométrique, etc. plusieurs de ces algorithmes étant souvent effectuées en parallèle au sein d’une même application.  En outre, la complexité des modèles ne cesse de croître (environnements virtuels très grands, modèles très détaillés) et même si les capacités des ordinateurs et cartes spécialisées évoluent en conséquence, ces algorithmes doivent être sans-cesse optimisés pour tourner le plus rapidement possible.Notez par ailleurs que les techniques proposées dans ce module peuvent servir à la synthèse d’image 2D n’exploitant pas les effets de perspectives.
Ressources
Littérature d’initiation

Un mini-cours autour de la synthèse 3D et d’openGL est disponible ici.

Comme point d’entrée en informatique graphique, il peut être intéressant de regarder le red book qui est un guide d’introduction à openGL. OpenGL est une API qui permet de communiquer avec la carte graphique pour créer des images sur l’écran. Comme sous-langage GLSL offre la possibilité d’écrire des petits programmes (shadeurs) qui sont exécutes sur la carte graphique et qui permet notamment de réaliser des images beaucoup plus convaincantes.

Code

OpenGL et les shadeurs peuvent être utilisé avec JAVA en utilisant la librairie: lwjgl. Plusieurs exemples et démos se retrouvent ici: potatoland
Quelques Sujets en Informatique Graphique

  • Photo-Réalisme

La création des images photo-réaliste n’est pas facile et il est nécessaire de simuler proprement les modèles physiques pour assurer une haute qualité.

La lumière interagit avec les objets de la scène. Selon le matériel, cette interaction peut être très complexe et plusieurs modèles ont été proposé pour simuler les effets de matériaux. Ensuite la lumière rebondit des surfaces de la scène (par exemple un objet rouge proche d’un mur blanc va souvent réfléchir une tache rouge sur le mur). Cet éclairage  s’appelle illumination globale. Un des grands problèmes est le calcul de la visibilité (des occultations) car la lumière renvoyé ne va pas atteindre directement des surfaces cachées de la source. Le même problème se pose au moment qu’on calcul les ombres dans une scène.

En combinant tous ses effets (et encore plus…), on s’approche de la création d’une image réaliste.

Un survey sur les modèles des matériaux est disponible ici: survey materiaux

Une introduction à l’illumination global est disponible ici: introduction global illumination

Un survey des techniques de calcul d’ombres est disponible ici: calcul d’ombres

Un shader GLSL pour le calcul d’ombres à la ShadowMap: shader glsl

  • Rendu non-photoréaliste

Pour obtenir un aspect artistique, un rendu réaliste n’est pas le meilleur choix. En NPR (non photorealistic rendering), le but est souvent de reproduire un style particulier (aquarel, crayons, …) ou d’inventer un nouveau style tout court. Souvent une image non-réaliste peut être plus facile à comprendre par un observateur et peut être jugé plus intéressant qu’une simple reproduction de la réalité.

Ce domaine est très vaste et il y a des nombreux sujets différents qui font partie de cette catégorie.

Un survey sur le NPR est disponible ici: cours NPR

  • Géométrie

Une partie très importante en informatique graphique est la création et la modification des données géométriques. En particulier, la déformation de modèles pour l’animation mais aussi pour la modélisation.

INFOGRAPHIE

Si vous êtes intéressé par la création de modèle (ou la converison en format lisible par votre application), essayez de télécharger Blender! C’est un logiciel très performant de l’infographie. Ce programme vous permet de créer, rendre et animer des scènes. Vous pouvez donc créer vos propres films 3D.

Comme celui-ci: Big Buck Bunny

  • Modèles

Pour charger un model 3DS en JAVA consultez: Model Loading

(pour créer des 3DS dans Blender: export->3DS)

Pour charger un model OBJ en JAVA consultez: OBJ Loader

(pour créer des OBJ dans Blender: export->Wavefront OBJ)

Un tutoriel vidéo est ici: Tutoriel ou pour la version précedente: Tutoriel <2.5

Il y a plusieurs ressources de modèles de haute qualité: aim@shape, inria gamma repository, or turbosquid.

  • Théorie

Comme point d’entrée à la théorie derrière les coulisses est le cours Geometric Modeling Based on Polygonal Meshes

Exemples d’utilisation du module
  • Affichage de mondes virtuels
  • Jeux
  • Effets visuels
  • Aide au traitement des images
Objectifs Pédagogiques
  • Informatique graphique : savoir expliquer et manipuler le calcul vectoriel, les transformations d’espace, les modèles de couleurs et d’éclairage, les images et textures
  • Compréhension des coprocesseurs graphiques : savoir expliquer le pipeline graphique, comprendre la programmation par shaders et la gestion de mémoire sur un GPU
  • Application: savoir expliquer comment les connaissances acquises sont mise en place dans le code
Résultats attendus (A affiner selon vos besoins)
  • PAN1 :
    • Décrire les données 3D issues du prototype
    • Expliquer comment ces données sont exploitées via OpenGL.
  • PAN2 :
    • Expliquer calcul matriciel 2D/3D, les vertex, les VBO, les formats de couleurs et textures
    • Livrable: animation 3D d’un objet simple par modification de position ou modification de caméra, utilisation de textures
  • PAN3 :
    • Livrable : Utilisation des programmes de rendu OpenGL (aka shaders) pour l’animation et le dessin d’objets
    • Expliquer le fonctionnement des lumières et ombrages
    • Décrire le fonctionnement et l’intégration du module dans le prototype allégé
  • PAN4 :
    • Analyser comment le module est intégré dans le prototype, quelles pistes d’améliorations seraient à envisager (performance, simplicité,)
    • livrable biblio : les principes de fonctionnement du GPU et d’OpenGL