De tels systèmes de contrôle par le regard existent déjà, principalement dans le domaine médicale et d'aide aux personnes handicapées. Cependant, leurs prix élevés les rendent inaccessibles à de nombreux particuliers. C'est donc en partant de cet constat que des membres du Free Art and Technology (FAT), de OpenFrameworks, du Graffiti Research Lab, et de la Ebeling Group communities se sont regroupés pour travailler sur un projet de EyeTracking à très bas coût. Leur motivation: venir en aide à Tony Quan (Alias Temp1), un graffeur de L.A. atteint de sclérose latérale amyotrophique depuis 2003.

The Eyewriter from Evan Roth on Vimeo.

Le principe de base est très simple. Il s'agit d'une simple webcam qui « zoom » sur l'œil de l'utilisateur. La webcam étant branchée en USB, ils suffit alors d'effectuer le traitement sur l'image récupérée avec des bibliothèques OpenFramWorks. Le logiciel repèrer ainsi la position de la pupille par rapport à l'œil et en déduit la directions du regard.

Au niveau de la fabrication, il est possible:

  • soit de fixer la webcam à l'ordinateur (zoom important)
  • soit de fixer la webcam directement en face d'un œil, par exemple en l'installant sur une monture de lunette (zoom plus raisonnable).


glasses2.jpg

Dans tous les cas, il faudra effectuer quelques modifications mineures dont les détails sont expliqués plus bas.

  • Étape 1: Démonter la webcam pour la miniaturiser
  • Étape 2: Ajouter un filtre InfraRouge
  • Étape 3: Changer l'optique de la caméra en fonction du zoom souhaité
  • Étape 4: Ajouter des LED InfraRouges
  • Étape 5: Fixer l'ensemble sur le support

Vous trouverez tous les détails du projet (informations, photos, vidéos, sources, etc ... ) sur leur site web: eyewriter.org
ainsi qu'un tutoriel de fabrication en anglais tiré du site insructables: Version PDF à télécharger ici


« Alors pourquoi tu écris un billet la dessus si le tuto existe déjà ? »

  1. Parce que je trouve l'idée tout simplement géniale, et que je souhaite faire connaître ce système à d'autres personnes.
  2. Parce que je l'ai fabriqué et que je veux faire mon retour d'expérience et donner quelques conseils supplémentaires pour les suivant (principe de la communauté DIY)
  3. Pour montrer que c'est facile à mettre en place et que ça fonctionne plutôt pas mal. Si le temps et les connaissances me le permettent, j'aimerais travailler sur l'amélioration du système (cf la fin du billet)
  4. Et puis parce que j'écris ce que je veux :)



Donc sans plus tarder, la liste du matériel nécessaire:

  • tournevis, fer à souder, étain (~0€ si vous avez déjà)
  • 1 paire de lunette (~1€)
  • 1 webcam USB compatible VGA et sensible aux IR (~10€)
  • 1 filtre InfraRouge (IR): une vielle disquette fera l'affaire (0€)
  • 1 lot d'optiques (lentille) pour caméra de sécurité CCTV, disponible ici sur DealExtrem (~10€)
  • entre 2 et 4 LED IR et les résistances qui vont avec. (~2€)


IMG_2234.jpg
IMG_2235.jpg
IMG_8188.JPG
IMG_8189.JPG

Le cout revient donc à environ 23€ (sans compter l'ordinateur) ce qui n'est vraiment rien comparé aux produits professionnel qui existent sur le marché.

Dans le tuto de l'« EyeWriter », il est conseillé d'utiliser la webcam de la Playstation3. Cependant, j'ai pu effectuer des essais avec trois webcam (compatible VGA) et les trois fonctionnaient. Je ne comprend donc pas vraiment l'intérêt d'utiliser la webcam PS3 qui vaut entre 30 et 40€ alors qu'une simple webcam premier prix fonctionne correctement.
De plus, le lot d'optiques pour caméra que j'ai acheté sur DX est compatible avec cette webcam alors que dans le tuto « EyeWriter », ils sont obligés d'ajouter une pièce en plastique supplémentaire ("lens holder") pour adapter ces optiques à la webcam PS3.


Étape 1:Démonter la webcam pour la miniaturiser

Je ne pense pas qu'il y ait besoin de plus d'explication pour ça, un simple tournevis vous suffira pour désosser la pièce maitresse de ce projet. Et pour information, plus votre webcam est de bonne facture (produit "no name" ou copie chinoise grotesque) plus il vous sera facile de la démonter (le fabricant ne s'étant pas embêté à cacher les vis ou à avoir un système de montage sophistiqué).



Étape 2: Ajouter un filtre InfraRouge

Votre caméra mise à nu, il ne devrait maintenant plus vous rester que le PCB et le système de maintient de l'optique. C'est ce dernier qu'il faut maintenant démonter. C'est sans doute l'étape la plus délicate. En effet, une fois l'optique ôtée, le capteur CCD se trouve à l'air libre sans aucune protection. Faites donc attention à bien le protéger de la poussière et à ne pas mettre les doigts dessus. Notre but est de placer un filtre IR entre ce capteur et son optique. Mais alors je vous entend d'ici, « à quoi il sert ce filtre IR ? »

Aparté: Nous avons dis tout à l'heure, que le traitement de l'image consiste à évaluer la position de la pupille. Ors, la pupille se trouve au milieu de l'iris ce qui rend l'identification de la pupille difficile par le logiciel. On a alors recourt à cette petit astuce: Les LED IR éclairent l'œil. En tant que bon opticien, vous savez que le noir absorbe la lumière alors que le blanc la réfléchie. Ça tombe justement bien puisque la pupille est de couleur foncée alors que l'iris et la conjonctive bulbaire sont plutôt de couleurs claires. Et c'est maintenant qu'intervient notre filtre IR situé devant le capteur CCD. Ce filtre ne laisse passer que le rayonnement infra-rouge, c'est à dire, la lumière réfléchie par les parties blanches de l'oeil. Donc grâce au combo LED IR + filtre IR, notre webcam affichera déjà une image d'un rond sombre (pupille) dans un milieu claire (œil). C'est donc un premier filtre qui facilite la détection de la pupille dans le traitement logiciel. Vous pouvez vous amuser à faire des essais avec et sans ce système LED+filtre et vous remarquerez assez rapidement la différence.
Maintenant, que vous avez compris son intérêt continuons les explications du montage. Nous disions donc …

Notre but est de placer un filtre IR entre ce capteur et son optique. Des filtres IR s'achètent dans des magasins spécialisés dans les optiques ou des magasin de photo. Cependant, au vu des prix et surtout de la surface ridicule dont nous avons besoin, le disque d'une veille disquette conviendra parfaitement. Découpez en un morceau de taille adéquate et fixez le sur le support de la lentille (le filtre ne doit pas toucher le capteur CCD). Faites attention à ne pas rayer ou poser vos doigts sur le filtre pendant cette étape, sinon vous aurez des traces sur l'image fourni par la caméra. Une fois de plus, évitez au maximum le contact avec la poussière.



Étape 3: Changer l'optique de la caméra en fonction du zoom souhaité

Il vous faudra surement changer la lentille en fonction de la distance à laquelle se trouve la caméra par rapport à l'œil. L'achat d'un kit d'optique générique pour caméra est donc sans doute la meilleure option. Si vous êtes chanceux, l'optique d'origine de votre webcam est démontable et vous pourrez directement fixer la lentille de focale souhaitée à sa place. Sinon vous devrait bricoler un système de fixation.
Pour ma part, j'ai remplacé l'optique d'origine par une lentille de focale 8mm (la caméra étant située à environ 10cm de l'œil). Le réglage du focus s'effectue en faisant varier la distance entre la lentille et la capteur (donc en vissant l'optique plus ou moins sur son support). Cependant, avec l'ajout du filtre et le changement d'optique, vous aurez sans doute des difficultés pour faire la mise au point de l'image mais ne vous en faites pas trop pour cela car le logiciel de traitement vidéo fait quand même bien son boulot même si l'image n'est pas tout à fait nette.



Étape 4: Ajouter des LED InfraRouges

La dernière étape consiste à ajouter les LED IR pour éclairer l'œil. Il faut donc les fixer sur le PCB de la webcam en direction de l'œil. Au niveau de leur alimentation, j'ai effectué une petite modification par rapport au tuto du « Eye Writer ». Dans le tuto, les LED sont alimentées avec des piles, fixées sur la monture de lunette. Pour améliorer la portabilité du système, j'ai préféré les alimenter avec la tension de 5V fourni par le port USB de l'ordinateur. Si vous choisissez également cette solution, attention à ne pas tirer trop de courant car les ports USB de l'ordinateur ne sont pas vraiment fait pour ça. Avant de brancher la webcam assurez vous également qu'il n'y ait aucun court-circuit, sous peine d'endommager votre ordinateur.
Comme moi, vous vous demandez surement si l'éclairage de l'œil avec des LED IR à si courte distance n'est pas dangereux. C'est une question que l'on retrouve beaucoup sur les forums de discussion et dans les commentaires d'internautes. Apparemment, aucune étude ne montre qu'il y ait un danger. Surtout dans le cas d'une utilisation non intensive, je ne pense pas qu'il y ait de risque. Si cela vous rassure, il est possible de diminuer la puissance des LED en limitant le courant les traversant.



Étape 5: Fixer l'ensemble sur le support

Quelque soit le choix de votre support (monture de lunette ou support fixe) il est maintenant temps d'y fixer la webcam. Dans le cas des montures de lunettes, faites en sorte que la webcam n'oscille pas trop lors d'un mouvement de la tête. Il vous faut donc choisir une tige de fixation dans un matériau assez rigide et la couper assez courte.


IMG_8228.jpg
IMG_8227.jpg
IMG_8229.jpg
IMG_8230.jpg
IMG_8233.jpg

Video de la fabrication


IMG_8238.jpg
IMG_8239.jpg

Test de fonctionnement:

Maintenant que votre système est prêt et branché (normalement reconnu comme une webcam classique), vous pouvez réaliser des test avec le logiciel EyeTracking. Rendez-vous dans la section développement du site eyewriter.org pour télécharger les sources des logiciels de traitement (compilé ou non, multi-plateforme).

Voici la Vidéo de présentation du logiciel EyeTracking

eyewriter tracking software walkthrough from zach lieberman on Vimeo.


Il faut dans un premier temps régler quelques paramètres tels que le contraste, la luminosité, la taille des masques, etc …
Vous pouvez ensuite positionner la caméra et passer à l'étalonnage. Naturellement, plus votre étalonnage comportera de points, plus il sera long mais plus il sera précis.
Enfin, le dernier onglet du logiciel de tracking, permet de tester la calibration avec un « catchme ». Une boite verte apparaît et vous devez placer votre regard dessus pour l'activer.


Et donc, que dire après ces premiers test ?
Déjà, que ça fonctionne pas trop mal. Si la calibration est faite correctement, le pointeur vert affiché à l'écran suit votre regard.
Par contre, l'inconvénient majeur de ce système est qu'il faut garder la tête immobile. Un léger mouvement engendre un décalage significatif du pointeur vert et il faut recalibrer le logiciel.

Je n'ai jamais eu l'occasion d'essayer des produit équivalent dans la gamme professionnel, mais d'après les documents constructeurs, notice et article, la contrainte d'immobilité de la tête peut-être supprimer par un asservissement de position de la caméra filmant l'œil. Par exemple, avec le système "VisioBoard", deux caméras sont utilisées: la « caméra visage » détecte les mouvements de la tête et ajuste la « caméra œil » afin qu'elle reste en face de la pupille.
Visioboard.JPG

Une perspective d'évolution du EyeWriter low-cost pourrait donc être de mettre en place un asservissement dans ce même principe. Cela serait peut-être possible avec un système de servo-moteur commandé en USB ou RS232 par l'ordinateur en fonction des mouvement détectés par la « caméra visage ».


Pour résumer

Les avantages:

  • Un système de détection du regard à prix imbattable
  • Matériel nécessaire facilement trouvable
  • Temps de fabrication très court
  • Sources en licence libre, facilement modifiable
  • Domaines d'utilisations très vaste

Les inconvénients:

  • Nécessite un re-calibrage régulier
  • Impose de garder la tête dans une position fixe
  • Obligation de passer par un ordinateur (sauf développement majeur)


Pour allez plus loin: Voilà une liste (non exhaustive) de liens et de documents que vous pouvez consulter si vous souhaitez approfondir le sujet.
- Un autre tutoriel de fabrication d'EyeTracking low-cost - Human and Computer Vision Laboratory
- État de l'art des systèmes de pointage à l'oeil (février 2011)
- Présentation du système VisioBoard (2001)
- VisioBoard: a new gaze command system for handicapped subjects - Medical and Biological Engineering and Computing (1997)
- Commande par le regard et handicap, principes et performances - XIème congrès national de la SOFMEER (1996)
- Un système de communication par le regard - INFI-INFO (1994)
- Site web regroupant un très grand nombre de publication sur le moniteur ophtalmologique et le tracking

Et enfin, deux petites vidéos d'autre exemple d'application d'un système EyeTracker.

N'hésitez pas à faire part de vos remarques / idées pour l'amélioration du système.

Commentaires

1. Gravatar de Simonet Le samedi 25 février 2012, 18:01 par Simonet

Bonjour,
Elève de Premiere S, j'effectue un TPE sur le handicap.
Je souhaiterai lors de l'oral présenter le modèle analogique du VisioBoard comme vous l'avez effectué dans votre site.
J'ai tous les éléments nécessaires, cependant je n'arrive pas à trouver un lien de téléchargement de L'EyeTracking Software.
Avec mes remerciements,
SIMONET Orianne

2. Gravatar de simon chaudeurge Le vendredi 23 mars 2012, 17:07 par simon chaudeurge

Bonjour,
Pour retrouver les sources du soft EyeTracking il suffit de se rendre dans la section developer sur site officiel (http://eyewriter.org/developer/).
Il y a un lien de redirection vers le github: https://github.com/eyewriter/

Simon

3. Gravatar de yann Le mardi 2 avril 2013, 16:34 par yann

Bonjour Simon,

As tu réussi à interfacer eyewriter avec un autre logiciel. Dans la version originale, ils parlent de Eye-Drawing Software mais sauf erreur de ma part il n'est pas sur github ? Sais tu où on peut le trouver ?

D'avance merci.

4. Gravatar de Simon Le mardi 25 juin 2013, 23:11 par Simon

Je n'ai pas retouché à ce projet depuis, donc pas plus de test sur la façon d'interfacer les lunettes avec un autre logiciel (j'aimerais l'utiliser comme un simple souris - déplacement - click droit - click gauche).
Il y a effectivement le logiciel Eye-Drawing mais je n'ai pas non plus réussi à le DL. Tu peux peut-être contacter les membres du Graffiti Research Lab - ou bien sur le google code, il y a des adresses email des contributeurs, c'est une piste : http://code.google.com/p/eyewriter/...
Tiens moi au courant de tes recherches !

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

La discussion continue ailleurs

URL de rétrolien : http://simon.chaudeurge.free.fr/DIY/index.php/trackback/7

Fil des commentaires de ce billet