Menus

menu d'accessibilité

Information sur le site

Auteurs

menu de navigation

Contenu

[allez au menu haut]
[allez au menu haut]

chemin : Expérience : Python & Scilab tout déplier

     

Sommaire

  1. Récupération des photos & Transformation des données
    1. Notre base de données contient 200 photos de portraits de visages expressifs
    2. Problèmes rencontrés [déplier le contenu de 1.2]
    3. Choix des points [déplier le contenu de 1.3]
    4. Pourquoi la bouche ?
  2. Programme Pycoord
    1. Pycoord, pourquoi ce programme ?
    2. Pourquoi le langage Python
      1. Les langages exclus [déplier le contenu de 2.2.1]
      2. Le langage Python [déplier le contenu de 2.2.2]
    3. Fonctionnalité [déplier le contenu de 2.3]
    4. Fonctionnement
      1. Installation [déplier le contenu de 2.4.1]
      2. Utilisation [déplier le contenu de 2.4.2]
      3. Fonctionnement interne [déplier le contenu de 2.4.3]
  3. Algorithme
    1. Rappel de l'objectif
    2. Comment avoir les degrés d'appartenance clés ? [déplier le contenu de 3.2]
    3. Quelles modifications leurs apporter ?
      1. En 200 photos, notre programme doit trouver le prototype et l'écart-type optimaux [déplier le contenu de 3.3.1]
      2. À la recherche du meilleur prototype [déplier le contenu de 3.3.2]
      3. À la recherche de la meilleure variance [déplier le contenu de 3.3.3]
    4. Résultats et Interprétation
      1. Premières sorties [déplier le contenu de 3.4.1]
      2. Analyse de l'influence de l'écart-type initial [déplier le contenu de 3.4.2]
      3. Que faire avec ces résultats si variables ? [déplier le contenu de 3.4.3]
      4. Critiques [déplier le contenu de 3.4.4]

Récupération des photos & Transformation des données

Notre base de données contient 200 photos de portraits de visages expressifs

Nous avons fait le choix de l'hétérogénéité. En effet, nous n'avons pas fait que piocher dans les bases de données existantes [voir référence 01]. Comme elles ne satisfaisaient pas nos attentes (qualité, crédibilité) et besoins (diversité), nous avons préféré compléter la base en prenant nous même des photos.

Problèmes rencontrés

Nous avons essayé de respecter une logique dans les quotas : identiques pour chaque émotions, et représentatifs de la population pour le sexe, les types, etc.

  [déplier le contenu de 1.2]

Pourquoi la bouche ?

Elle joue un role important dans les expressions faciales. Si on s'était focalisé sur une autre partie du visage (comme les yeux), nous aurions eu beaucoup plus de points caractéristiques. Rien qu'avec ces 2 ratios nous pouvons deviner des expressions.

Programme Pycoord :

Pycoord, pourquoi ce programme ?

Pycoord est le programme que nous avons décidé de dévolopper tant pour notre TER que pour notre projet d'Imagerie Numérique. Les objectifs que devait atteindre ce programme étaient simples :
  1. faire de la programmation orienté objet (POO) ;
  2. nous faire apprendre un nouveau langage (ici Python) ;
  3. être multiplate-formes (exécution et développement compris) ;
  4. avoir une interface graphique nous permettant de récupérer les coordonnées de 4 points clés de la bouche sur une image ;
  5. générer une matrice de données exploitables par Scilab.

Pourquoi le langage Python

Les langages exclus

Dans le cadre de notre licence, nous avons été mis en contact avec différents « langages » : Delphi, C++, Scheme et PHP, Maple, Scilab ; vous trouverez en dépliant cette section (lien ci-dessus) les raisons qui nous ont fait exclure ces différents langages, ainsi que les raisons qui ont fait que nous avons choisi de développer notre projet en Python.

  [déplier le contenu de 2.2.1]
le langage Python [voir référence 10]

Les enseignements de notre licence évoluant d'année en année, le langage Delphi à la base des enseignements d'informatique est finalement en train de laisser place au langage Python. Après quelques recherches et discussions avec nos enseignants et des amis, il s'est avéré que Python était tout à fait adapté à notre projet. Nous détaillons ci-dessus les intérêts de python, dans le cadre de notre projet :

  [déplier le contenu de 2.2.2]

Fonctionnalité

Cette section décrit les fonctionnalités et informations disponibles dans l'interface graphique. L'interface se découpe en deux parties majeures : le panneau d'actions (zoom, navigation dans la liste d'images, etc.) et d'informations (nom, dimensions, etc.) sur la partie gauche et panneau de l'image contenant le canvas et la barre de statut.

  [déplier le contenu de 2.3]

Fonctionnement

Installation

Certain modules python (logiciel) ne sont téléchargeables qu'au format tar.gz, on conseille l'installation du logiciel d'archivage 7zip. Nous détaillerons ici l'installation des applications nécessaires au fonctionnement de Pycoord sous Microsoft Windows et Ubuntu Linux.

  [déplier le contenu de 2.4.1]
Utilisation

L'utilisation est des plus simples, nous décrirons ici la procédure à suivre :

  [déplier le contenu de 2.4.2]
Fonctionnement interne

Nous allons décrire ici le schéma de fonctionnement de notre programme Pycoord, nous ne rentrerons pas dans les détails liés au langage python de façon à ce que des non-informaticiens puissent comprendre. Notre but est de générer une matrice au format scilab contenant quatre couples de coordonnées correspondant à des points caractéristiques de la bouche.

N.B. : la quasi-totalité des liens de cette section renvoient vers le code source du programme Pycoord présent en annexe. Lorsque vous les survolez, le nom de la fonction s'affiche.
  [déplier le contenu de 2.4.3]

Algorithme

avertissement : Si vous ne comprenez pas certaines des notions développées par la suite, référez vous au thème « logique floue ».

Rappel de l'objectif

Nous optons pour le moment pour une démarche floue. Nous ne désirons pas nommer immédiatement l'unique émotion cachée derrière une expression faciale mais nous souhaiterions pouvoir établir des affirmations comme « il[elle] est un peu joyeux mais aussi un peu triste ». Une interprétation supplémentaire pourrait cependant nous amener à créer des émotions hybrides, ici la mélancolie. En suivant les principes de la logique floue, il est nécessaire d'obtenir le degré d'appartenance de nos photos à chacune de nos quatre émotions.

Comment avoir les degrés d'appartenance clés ?

  [déplier le contenu de 3.2]

Quelles modifications leurs apporter ?

En 200 photos, notre programme doit trouver les prototypes et les écart-types optimaux
  [déplier le contenu de 3.3.1]
À la recherche du meilleur prototype
  [déplier le contenu de 3.3.2]
À la recherche de la meilleure variance
  [déplier le contenu de 3.3.3]

Résultats et Interprétation

Analyse de l'influence de l'écart-type initial
  [déplier le contenu de 3.4.2]
Que faire avec ces résultats si variables ?
  [déplier le contenu de 3.4.3]