IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Réseau de neurones - reconnaissance visage


Sujet :

Algorithmes et structures de données

  1. #1
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 9
    Points
    9
    Par défaut Réseau de neurones - reconnaissance visage
    Bonjour à tous,

    Je dois faire une application utilisant un perceptron multi-couches et l'algorithme de rétro-propagation pour classifier 20 visages différents.

    Je dois utiliser des photos de 64x60 px², en 8 niveaux de gris, et il y a 8 photos différentes pour chacune des 20 personnes.
    80 photos sont utilisées pour entraîner le réseau et 60 pour le tester.

    J'ai cherché de la documentation sur internet, j'ai trouvé des exemples de code pour la rétropropagation, j'ai lu pas mal de trucs, mais je suis toujours aussi perdu!
    Par où commencer?

    Je ne sais pas quels vecteurs d'entrée utiliser... Faut-il faire un prétraitement de l'image?
    Je ne sais également pas quelle doit-être l'architecture du réseau.
    Apparemment le plus courant est de faire une couche d'entrée, une couche cachée et une couche de sortie, avec 20 neurones de sorties (autant que de personnes), mais combien mettre de neurones dans la couche d'entrée et dans celle cachée?

    La liste de mes questions est encore longue, toute information est la bienvenue!
    Merci d'avance!

  2. #2
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    A priori, on peut mettre l'image directement en entrée.
    Pour savoir combien mettre de neurones dans la couche intermédiaire, c'est un peu de l'essai erreur. moins de 20 n'est sans doute pas la bonne idée, mais trop spécialiserait sans doute le réseau.
    Ensuite, il faut aussi voir comment l'apprentissage est sensé se dérouler.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup pour cette réponse.

    En ce qui concerne la couche d'entrée, combien de neurones me conseilleriez-vous?

    Et ne vaut-il pas mieux traiter l'image avant de la faire passer dans le réseau?

    On peut trouver pas mal de documentation sur le sujet sur internet, mais je n'ai pas vu grand chose de concret en ce qui concerne ce genre de questions...

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Le réseau peut traiter lui-même l'image directement. De plus, il pourrait baser sa réponse sur des éléments que nous, pauvres humains, enlèverions lors d'un pré-traitement. Ca peut être gânant. Ou bien si les photos ont toutes été prises au même endroit.

  5. #5
    Membre averti Avatar de Flo.
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2002
    Messages : 379
    Points : 404
    Points
    404
    Par défaut
    Attention ,

    les réseaux de neurones ne sont pas des "générateurs de miracles".

    Je pense qu'il te faut pré-traiter les images voire même les analyser. Sinon tu vas travailler sur des images bruitées, dépendant de la luminance et de la teinte des éclairages, etc (même sur des images en niveaux de gris). Il faut pouvoir se ramener à un référentiel identique pour toutes les images (basé gradient, identification de caractéristiques, primitives, ...).

    Mais bon j'ai jamais travaillé sur un tel sujet (mais néanmoins intéressant) ....

    Flo.

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Tout à fait, les RN peuvent être capricieux. Mais je pense qu'on peut se passer de pré-traitement. Enfin, ça dépend du nombre d'images qu'on a aussi, il en faut plus si on ne pré-traite pas, puisqu'il y a plus d'info à discriminer.

  7. #7
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Merci à tous.

    Petite précision, les images utilisées sont toutes prises au même endroit, à peu près dans les mêmes conditons.
    Je pense peut-être au moins rendre le nombre de pixels en entrée un peu plus petit en n'utilisant que la partie de l'image où se situe le visage.

    Pour la couche d'entrée, dois-je utiliser autant de neurones qu'il y a de pixels dans le vecteur d'entrée?

  8. #8
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    49
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 49
    Points : 59
    Points
    59
    Par défaut
    Je pense qu'on a oublier une question fondamentale. qui est "Que veut on faire apprendre a ce réseau de neurones"
    On sais tous que les réseaux de neurones permettent d’avoir un modèle d’approximation d’une fonction de type F(X)=Y ; où X et Y sont des vecteurs (à N dimensions). Et dans ce lead, on a pas abordé la fonction «F». Si on suppose que X et une image, le Y on ne sait pas exactement de quoi il s’agit.

    Pour ma part je propose trois possibilités pour la fonction «F»:
    1. Premiére proposition : si le nombre de visages à reconnaître est fixe (dans ton cas 20 visages), l’entrée X est une image. Et le vecteur de sortie Y sera un tableau à 1 dimension avec 20 cases; chaque case prendra des valeurs de 0 à 1. La valeur prise par la case « N » pourra être interprété comme la probabilité que l’image donnée en entrée correspond au visage numéro N...
    2. Une autre possibilité c’est de construire un réseau pour chaque visage. Ce réseau aura comme entrée une image et un seul neurone en sortie; avec une valeur de sortie comprise entre 0 et 1. cette valeur n’est autre qu’une probabilité que l’image donnée en entrée correspond exactement au visage...
    3. Une dernière proposition : le réseau accepte deux image en entrée et une neurone en sortie. Le neurone de sortie donne une probabilité de correspondance...
    J‘ai pas trop détaillé les propositions. J’espère que cela donnera de la matière pour un débat plus approfondi.

  9. #9
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    En vrac.

    On ne peut jamais se passer de la phase de pré-traitements avec les RdNs. Ce n'est pas le cas avec d'autres approches "proches" comme les SVMs.
    Tes visages tu vas devoir obligatoirement les transformer en données plus réduites et denses en informations. Là, consulte la littérature sur ce sujet précis.

    Les PMC 3-couches avec la simple back-prop ne sont pas ce qu'il y a de plus efficace.

    Une heuritique "classique" pour dimensionner la couche intermédiaire, c'est d'extraire une dimension "pertinente" obtenue après une ACL sur l'espace d'entrée.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  10. #10
    Futur Membre du Club
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 9
    Points
    9
    Par défaut
    Merci beaucoup pour votre aide.

    Je pense comprendre le principe, mais je suis toujours aussi perdu pour implémenter tout ça dans une application...

    Une autre petite question:
    La fonction d'activation utilisée est souvent une sigmoïde, mais je vois de temps en temps la fonction tanh (tangente hyperbolique) qui permet d'avoir une sortie comprise entre -1 et 1 au lieu de 0 et 1. Cela permet-il d'obtenir de meilleurs résultats?

Discussions similaires

  1. Réponses: 1
    Dernier message: 28/04/2014, 14h52
  2. [Réseau de neurones] Reconnaissance de chiffres
    Par abdelilahraja dans le forum Méthodes prédictives
    Réponses: 1
    Dernier message: 01/03/2014, 04h40
  3. [Réseau de neurones] Reconnaissance lettre - entrées
    Par yaourtTop dans le forum Méthodes prédictives
    Réponses: 3
    Dernier message: 24/02/2014, 04h02
  4. Réponses: 0
    Dernier message: 03/08/2011, 13h22
  5. la reconnaissance par réseau de neurone
    Par fcboumi13 dans le forum MATLAB
    Réponses: 1
    Dernier message: 08/06/2009, 14h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo