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

Bibliothèques d'apprentissage profond Discussion :

Etude de projet : detection labiale


Sujet :

Bibliothèques d'apprentissage profond

  1. #1
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 7
    Points : 11
    Points
    11
    Par défaut Etude de projet : detection labiale
    Bonjour à tous,

    Je vous écrit ici car je suis en plein démêlé avec python que je ne connais pas encore. Bon j'ai un bon niveau dans d'autre langages mais l'on ne s'improvise pas développeur python si facilement, cependant il y a un début a tout et là je débute probablement avec un gros projet - je vous explique :

    Contexte : J'ai récemment rencontré une personne tétraplégique, n'ayant plus que l'usage de ses yeux et lèvres pour communiquer.
    Avant de la rencontrer il m'a été demandé si il existait dans le monde de l'informatique un moyen de permettre a une personne dans cette situation de contrôler un ordinateur, et la réponse est oui, par le biais de l'eyes tracking.

    Cette solution couplée avec des logiciels d'aides a la communication (regardez la société tobii) permettraient a cette personne de contrôler son environnement (télé ordinateur ...) par le regard.
    Encore faut il tester l'eyes tracking en lui même afin de voir si c'est suffisent (admettons puisque c'est commercialisé et même implémenté dans le jeu vidéo).
    Même avec une précision grossière (de l'ordre de 2 à 4 cm), cet outils peut se révéler être une porte d'entrée dans le monde pour un tétraplégique, c'est un bout de frontière qui disparaît, la personne peut décider d'allumer ou non la télé (...), voir même peut crier a l'aide, ce qui n'est pas rien. Partant de là il deviens aisé d'imaginer de développer un programme simple (la recherche étant l’efficacité et le repos visuel maximum car la personne fatigue vite) qui permettrait d'offrir une télécommande adaptée aux contraintes de l'eyes tracking et qui serait assez simple d'utilisation.

    Mais après ma première rencontre avec cette personne, il m'a semblé totalement décalé de lui proposer uniquement de l'eyes tracking car il ne lui manque que le son de ses cordes vocales, les lèvres bougent et forment les lettre syllabes mots phrases...

    Du coup ni une ni deux j'ai fouillé si il existait un logiciel de lecture sur les lèvres, mais hors mis de la recherche fondamentalement il n'y a pas.
    D’après ce que j'ai lut, l'angle d'attaque des développeurs google et/ou lipnet est de lire sur les lèvres avec un échantillon large d'individus, c'est a dire que le programme tente de comprendre tout le monde, mais ce n'est pas mon objectif. Le mien est de comprendre Une personne et donc de calibrer l'outils sur cette personne unique pour ensuite transmettre a l'assistance vocale les phrases détectées et de les dires.

    Lipnet a annoncé un taux de 95% de réussite dans la compréhension, reste a tester. Il est développé en python, mais déjà premier problème, impossible de faire tourner leur programme.
    J'ai beau faire les instals a la mano, utiliser anaconda nada, rien!

    Du coup je me suis mis a regarder python de prés pour debugger le code éventuellement et en parallèle j'ai regardé la librairie Dlib et ses "facial landmarks", mais bon, il y a moult angles de recherche possible...


    Du coup je viens vous demander votre avis ici, voir si vous avez des pistes a me donner (voir carrément si vous arrivez a faire tourner lipnet)

    Donc grosso modo, voila ce que je cherche a réaliser :
    1 - capturer une vidéo de la personne qui parle
    2 - analyser les images pour déterminer les mots phrases (...)
    3 - restituer un texte

    Evidemment là c'est une approche simpliste car si c'est réalisable il peut être intéressant de coupler l'eyes tracking avec un tel programme afin d'affiner/rectifier si besoin.

    Autre point, c'est que cette personne sera H24 devant ce dispositif, et de ce fait il y a la possibilité d'obtenir beaucoup de données pour affiner avec le temps, donc il me semblais eventuellement interessant d'ajouter une dose d'IA afin que ce processus se realise de lui même.

    Que pensez vous de tout cela?
    Auriez vous des pistes ou seriez vous prêt a me filer un coud de main?
    Et si qq arrive il a faire tourner lipnet (dispo sur git) qui d'ailleurs a publié dans un pdf ses algos.

    Merci de votre aide

  2. #2
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 7
    Points : 11
    Points
    11
    Par défaut
    Ha pour info j'ai ce code d'érreur dans ma console lorsque je tente d'instaler lipnet :
    (github : LipNet )


    Could not find a version that satisfies the requirement tensorflow-gpu==1.0.1 (from lipnet==0.1.6) (from versions: 1.2.0rc2, 1.2.0, 1.2.1, 1.3.0rc0, 1.3.0rc1, 1.3.0rc2, 1.3.0, 1.4.0rc0, 1.4.0rc1, 1.4.0, 1.5.0rc0)
    No matching distribution found for tensorflow-gpu==1.0.1 (from lipnet==0.1.6)


    j'ai pourtant créé un environemement tensorflow dans anaconda.

    Je suis sous windows 10 pour info (si le pb viens de là mais j'en doute, c'est la librairie qui est manquante ce me semble)

  3. #3
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    salut,

    le projet que tu décris ici est vraiment super, et typiquement le genre de truc qui m'intéresse tant sur le plan éthique que technique

    concernant l'eye tracking, faut voir mais niveau code c'est probablement pas la mer à boire, en revanche il doit falloir s'assurer que la caméra a une résolution suffisante pour détecter les variations infimes de l'oeil, ou le cas échéant avoir carrément des lunettes spéciales sur le front (et la caméra au plus près de l'oeil donc), idem pour la lecture labiale, il faudrait alors possiblement envisager 2 caméras - avis perso, et je précise, avis autodidacte et non-spécialiste.
    une recherche sur github pour "eye tracking" retourne quelques résultats, dont notamment https://github.com/pupil-labs/pupil, à voir si c'est intéressant ou non...

    pour ce qui est de tester/installer LipNet sous Windows, effectivement il te manque pour le moins des modules, c'est marqué dans la doc en fait, ça repose en grande partie sur Keras et Tensorflow, avec leurs extensions GPU qui plus est (pour gagner en puissance de traitement), là encore à voir, mais quelque chose me dit que sous Windows ça peut être pénible à installer
    quant à Anaconda, je pourrais pas te dire je l'utilise pas, de ce que je sais c'est un environnement "facilité" de Python avec notamment des modules scientifiques, mais c'est complètement séparé d'une installation classique
    ce genre de lien te sera peut-être utile, on y voit une commande pour installer un des modules manquants sous Anaconda

    D’après ce que j'ai lut, l'angle d'attaque des développeurs google et/ou lipnet est de lire sur les lèvres avec un échantillon large d'individus (...) ce n'est pas mon objectif. Le mien est de comprendre Une personne et donc de calibrer l'outils sur cette personne unique
    sauf erreur ça ne sera de toutes façons pas une option, le projet est fourni avec un dataset pour la lecture labiale sur des anglophones qui ne conviendra probablement pas à une personne francophone

    Autre point, c'est que cette personne sera H24 devant ce dispositif, et de ce fait il y a la possibilité d'obtenir beaucoup de données pour affiner avec le temps, donc il me semblais eventuellement interessant d'ajouter une dose d'IA afin que ce processus se realise de lui même.
    même intellectuellement on sent bien que ça peut représenter un problème, d'un coté on lit une expression à laquelle on doit faire correspondre un mot, une phonème etc. en étant pas certain qu'on a raison, de l'autre on envisage de prendre ce résultat incertain et l'intégrer au jeu de données (censé être fiable) sur lequel on se base pour émettre un diagnostic, il y a des cas où ça peut s'avérer utile, dans ce cas précis ça ne semble pas du tout une bonne idée

    Que pensez vous de tout cela?
    qu'au delà de Python c'est du machine learning qu'il va falloir ingurgiter, en quantité suffisante pour comprendre pourquoi les dev partent sur ce principe, ce qu'est un réseau de neurones etc. qu'il s'agisse du suivi oculaire ou de la lecture labiale on est en plein dedans

  4. #4
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 7
    Points : 11
    Points
    11
    Par défaut
    Merci de ton intervention BufferBob ^^

    Alors je précise, l'eye tracking existe et est déjà exploité par la société tobii (yep je me répète - sait on jamais ^^), il sera difficile de faire mieux que ce qu'ils proposent de toute évidence sur cette technologie car d'un côté ils ont les codes, la recherche et la technologie qui va avec, et d'un autre ils ont le logiciel d'assistance de communication. Pour avoir été en stage dans une société qui fait exactement la même application mais pour autistes et sur tablette ios, c'est déjà un gros morceau que de traiter la problématique du langage ^^

    Donc de but en blanc l'idée n'est pas de refaire cela (eye tracking), cette technologie existe déjà finalement, c'est juste que l'application technique n'en est qu'a ses balbutiements et certainement que son arrivée dans le monde du jeu vidéo va lui permettre de faire un bond en avant pour peut que les développeurs s'en saisissent. Que cela soit pour le jeu vidéo, la reconnaissance ou la surveillance des conducteurs l'eye tracking est au point et si je ne me plante pas ils utilisent l'infrarouge.

    De plus, j'ai lu sur une de leurs pages qu'ils ont permis des ouvertures pour que les développeurs de jeu video puissent se servir du périphérique, donc je suppose que c'est la même punition pour une application simple. Bref j'ai a enquêter et tester ce matériel en amont car la personne pour qui je recherche cela est assez émotif et dans une situation complexe, donc il me faut absolument éviter de lui donner de faux espoir. (J’espère par contre qu'il pourra lire ces lignes un jours ^^)

    => Sur cette page il y a le périphérique basique version réglette, mais sur d'autres version de produit, notamment la tablette tactile, la camera infrarouge est directement intégré (...le prix.. excessivement cher pour des gents dans le besoin a mon goût d'ailleurs...).

    => D'ailleurs, l'infrarouge peut être une gêne a la longue pour quelqu'un qui aura les yeux rivés dessus, donc effectivement des caméras me semblaient une approche idéale et douce, d'autant plus que l’environnement de la personne ne variera pas trop, seul son visage (fatigue) et la lumière (nuit jour) variera bien que c'est possible de figer ce dernier paramètre. Lui ne bouge pas dans l'absolut, donc une fois que le cadre est "posé" il y aura peu de variations ou tout du moins peu de paramètres extérieurs parasites.


    Mon cheval de bataille est surtout de lire sur les lèvres là ^^


    -- Pour ce qui est d'anaconda --
    Le liens que tu m'a donné je l'ai effectivement déjà utilisé et il m'a permis d'instaler tensorflow, il me reste maintenant a configurer ma machine pour CUDA et je ne sais plus quoi, là encore je rame, mais je sais ou, et surtout que mon materiel est éligible donc en principe en reprenant tout a tête reposée je devrais finir par m'en sortir - il me faut reposer tout a plat et reconfigurer. Mais si quelqu'un peu me dire "Moi je l'ai fait tourner c'est certifié" alors j'y arriverai forcement un jour - process in progress ^^


    Citation Envoyé par BufferBob Voir le message
    sauf erreur ça ne sera de toutes façons pas une option, le projet est fourni avec un dataset pour la lecture labiale sur des anglophones qui ne conviendra probablement pas à une personne francophone
    De ce que j'ai put lire sur des docs des recherches de google sur ce sur domaine, l’avantage d'une IA permet justement de passer au delà de la problématique de la langue, mais j'ai potentiellement mal lut. Effectivement les dataset sont en anglais pour lipnet, qui plus est ils sont loin d'être complet, ils ont réalisés le programme avec peu de mots si je ne me trompe pas. Donc de toute évidence il faudra enregistrer les datasets pour pouvoi l'utiliser en l'état

    Citation Envoyé par BufferBob Voir le message
    même intellectuellement on sent bien que ça peut représenter un problème, d'un coté on lit une expression à laquelle on doit faire correspondre un mot, une phonème etc. en étant pas certain qu'on a raison, de l'autre on envisage de prendre ce résultat incertain et l'intégrer au jeu de données (censé être fiable) sur lequel on se base pour émettre un diagnostic, il y a des cas où ça peut s'avérer utile, dans ce cas précis ça ne semble pas du tout une bonne idée
    Et oui, c'est d'ailleurs pour cela que je me suis dit qu'il faut absolument ajouter l'eyes tracking a ce dispositif pour que la personne qui s'en sert puisse aller rectifier les mots en "mode fastidieux" (en eyes tracking) faute d'une bonne interprétation.

    Pour ce qui est de la frustration, la personne l'est déjà, pour illustrer, par exemple, la personne(le tétra) lorsqu'elle veux dire quelque chose genre "il fait beau" :

    - le tétra tente de dire le mot "Il", => si l’interlocuteur a compris il répète le mot et le tétra passe au mot suivant
    - le tétra tente de dire le mot "fait" => si l’interlocuteur a compris le tétra passe au mot suivant mais si non, alors :
    -- l’interlocuteur dit colonne 1, puis 2 puis 3 puis... jusqu’à tomber dans la bonne colonne de l'alphabet, le tétra fait signe quant c'est le cas
    -- l’interlocuteur dit les lettres de la colonne et s’arrête quant le tétra fait signe que c'est la bonne lettre
    et ainsi de suite...

    "c'est juste génial pour les fan du jeu du pendu", je dis cela car en face, l'interlocuteur peut perdre patience tout comme le tétraplégique, donc cela peut être source de frustration, alors qu'avec un ordinateur, une machine, l'on ne peut pas se fâcher avec, si elle ne comprend pas c'est due a une incapacité de la machine, pas une impatience ou une distraction, d'ou l’intérêt de faire faire cette simple tâche de l'alphabet via ordinateur, et tenter pourquoi pas d'aller plus loin

    Donc la personne tétra est souvent réduite a épeler mots a mots et elle m'a dit, "le pire c'est que je dois écrire sans fautes car sinon l'on ne me comprend pas et que je dois tout le temps anticiper 'Comment' le dire pour être comprit".
    Et même avec cela, il n'arrive pas a tout faire comprendre a moins de faire des efforts en permanence.
    En observant cela, je me suis dit que commencer par une reconnaissance labiale de l'alphabet ça serait un grand pas, car a cela l'on ajoute de la saisie semis automatique et l'on divise les effort par 2, ce qui est en soit un pas de géant pour un tétra. Et si a cela l'on ajoute un dictionnaire qui se classe en fonction des récurrences des mots utilisé par la personne, avec le temps et l'utilisation du dispositif, le panel des mots couramment utilisés devraient être identités relativement rapidement.

    Citation Envoyé par BufferBob Voir le message
    au delà de Python c'est du machine learning qu'il va falloir ingurgiter, en quantité suffisante pour comprendre pourquoi les dev partent sur ce principe, ce qu'est un réseau de neurones etc. qu'il s'agisse du suivi oculaire ou de la lecture labiale on est en plein dedans
    Yep effectivement j'ai commencé a m’intéresser au machine learning, c'est sur ma liste ^^
    M'enfin je ne vois pas par quel bout commencer et surtout je n'ai pas le recul sur python et les réseaux neuronaux pour bien comprendre tout les enjeux mais oui on est en plein dedans (et je n'ai que çela a faire de mes 10 doigts depuis un petit moment).

    Perso j'ai suivit quelque cours cnam en licence en développement informatique et eut droit a quelque notions (dont je ne me souvients déjà plus les nom d'ailleurs) qui se rapproche de ce que j'ai put lire jusqu’à maintenant mais la route est encore longue ^^

    Pour résumer ben je suis un bleu en python et en machine learning et j'ai un projet reste a m'y atteler

    Des suggestions piste?.......... on se fait un truc participatif? des motivés?^^

  5. #5
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    je t'ai envoyé un mp aussi dans la foulée, t'as pas du le voir

  6. #6
    Membre à l'essai
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2018
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2018
    Messages : 7
    Points : 11
    Points
    11
    Par défaut
    non en effet - je jette un oeil - ma nuit a été longue et pythonilleuse donc je te répondrais probablement en fin de journée après une bonne nuit de sommeil - merci a toi et bonne journée

Discussions similaires

  1. Etude de marché pour projet de création d'une entreprise
    Par melcom_dev dans le forum Société
    Réponses: 27
    Dernier message: 27/01/2014, 10h42
  2. Chahier de Charge & Etude de Projet
    Par pcland31 dans le forum ALM
    Réponses: 0
    Dernier message: 29/03/2011, 13h31
  3. Réponses: 1
    Dernier message: 03/03/2010, 20h58
  4. [Etude de projet] Compétences et technologies
    Par Joubarbe dans le forum Développement 2D, 3D et Jeux
    Réponses: 5
    Dernier message: 20/04/2009, 15h52
  5. [ETUDES] BTS opt admin-réseaux exemples de projets
    Par skudero dans le forum Sujets
    Réponses: 5
    Dernier message: 15/07/2005, 20h12

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