Écran multitouch : détection de doigts

Les choses bougent raisonnablement du coté de la réalisation de l’écran FTIR (épisode précédent). J’ai placé toutes les LEDs (40 !) sur le bas de l’écran, et il s’avère que ça crache tellement d’infrarouges que je ne vais probablement pas avoir besoin de placer de nouvelles LEDs sur la partie haute de l’écran. A voir à terme, mais je pense qu’une bande réfléchissante serait suffisante, dans le pire des cas.

J’ai eu l’occasion de trouver un peu de temps pour me pencher sur l’algo de détection des blobs. L’idée est d’arriver à détecter les « impacts » infrarouges laissés par les doigts en contact avec la plaque, pour déterminer combien de doigts (ou n’importe quelle autre extrémité composée de peau, bien sûr) sont posés sur la plaque de plexi, ainsi que la position, pression, et la vélocité de chaque doigt.

En environ une semaine (1h/jour ?), je suis arrivé à un truc pas trop mal. Étant en déplacement, je bossais avec une vidéo pré-enregistrée d’une minute, sur laquelle j’arrivais à un taux de réussite de 100%. L’algo offre des événements (OnTouch, OnUntouch, OnMove) très simples à utiliser ensuite. Hier soir, à l’aide de RyLe, nous sommes passés à un test grandeur nature, en temps réel. Nous avons massacré un volant Wii (les trucs à 10 euros vendus pour Mario-Kart [jeu de merde, soit dit en passant]) pour en extraire le filtre infrarouge que nous avons ensuite collé sur l’objectif de la webcam. Malgré de multiples essais (voir articles précédents), je n’ai jamais eu un résultant aussi probant : le filtre est excellent, et ne laisse quasi rien passer de la lumière visible ! En revanche, l’aglo a montré ses limites, étant très dépendant de l’éclairage ambiant et des réglages de la webcam (fps, taille de l’image, réglages de contraste, balance des blancs et autres).

La journée d’aujourd’hui a été l’occasion de pousser tout ça plus en avant, avec une belle découverte : la webcam (Philips SPC900NC) dispose d’un capteur d’excellente qualité qui, si on balance les bons réglages au driver (le non moins excellent « pwc » de Luc Saillard), fait ressortir différemment l’infrarouge « naturel » (soleil et la majorité des lumières artificielles, y compris halogènes) de l’infrarouge des LED (longueur d’onde différente, probablement), ces dernières générant à l’écran une teinte bleutée ! (à la différence du reste des IR, en gris). J’ai ainsi eu l’occasion de ré-écrire l’algo en tenant compte de cette nouvelle donne, et le résultat est maintenant excellent, même en pleine lumière.

Voilà, sous forme d’une toute petite vidéo très sombre (faizez péter le gamma !), ce que ça donne :

Sympa, non ? 🙂
Il reste un tas de choses à faire, mais c’est plutôt une belle avancée. Suite : trouver un vidéo-projecteur, et surtout une surface qui permette de projeter sur la plaque sans perturber le passage des IR.


Publié

dans

par

Étiquettes :

Commentaires

6 réponses à “Écran multitouch : détection de doigts”

  1. Avatar de skaven
    skaven

    J’aurais mis Oxygen en musique de fond.
    Beau boulot.

  2. Avatar de SaMuRiZe
    SaMuRiZe

    Pas mal du tout comme boulot, surtout que ça a l’air particulièrement réactif, sans lag ni rien.
    J’aimerai bien réaliser quelque chose du genre, mais ça attendra le mois d’août.

  3. Avatar de El_Porico
    El_Porico

    http://www.youtube.com/v/4uklUQ_Mjoc

    Ce qu’on fait mes camarades de promo pour laval virtual :p

  4. Avatar de Anonyme
    Anonyme

    salut !
    deja un grand bravo pour ton ecran multi touch.
    j’ ai deux petite question et sa sera sympa si tu pouvais mis repondre:
    -quel est le logiciel utilisé ?
    -est-ce que on peut controller windows avec ?

    Je te laisse mon email
    killiansoscoso@hotmail.fr

    Merci d’ avance.

  5. Avatar de Anonyme
    Anonyme

    Salut,

    merci pour le post et bravo pour la prouesse!

    j’aurai juste une question concernant la webcam Philips SPC900NC, as-tu enlevé le filtre anti infrarouge de la webcam?
    si oui, comment as tu fait? je ne vois pas d’une part où il se trouve et ,comme tout est collé, j’ai peur de casser la webcam.
    si non, comment as tu fait? tu as changer l’objectif?

    voila, je suis un peu bloqué pour mon projet en ce moment à cause de ça,

    si il était possible d’avoir une réponse ce serait sympathique (en espérant pas être le seul à me poser cette question)…

    Merci d’avance, voila mon mail perso: jason.nicolle@hotmail.fr

    good bye

  6. Avatar de Anonyme
    Anonyme

    salut,

    comme déja 2 personnes mon posé la question de savoir si j’avais eu une réponse à ma question juste au dessus.
    Je viens faire un nouveau post:
    – Tout d’abord non je n’ai pas eu de réponse via le post précédent…
    – Cela dit, j’ai tout de même trouvé une solution:

    1) Déja, précaution, ne pas essayer de démonter le filtre infrarouge de l’objectif d’origine de la SPC900NC (j’ai un peu rayé la lentille en forçant dessus comme une brute, et ça n’a rien donné….). Il vaut peut être mieux le garder intact surtout si on veut s’en resservir plus tard en webcam.
    2) Après il faut trouver un autre objectif à mettre dessus:
    soit achat sur ebay objectif sans filtre IR pour philips spc900nc (j’ai pas cherché car ça me semblait etre une solution trop lente (delai de livraison))
    soit ce que j’ai fait, prendre l’objectif d’une autre webcam (le pas de vis est standard sur les capteurs "à priori"…) dont le filtre est facile à enlever. Pour ma part webcam logitech quickcam, démontage facile et le prix pas exorbitant.
    3) Ensuite bricolage de l’objectif si choix d’achat d’une autre webcam. J’entends par là retrait du filtre infrarouge et ajout de deux couches de pellicules photo si besoin de filtrer la lumière visible.
    4) ENFIN!! Capacités de la philips spc900nc avec un objectif infrarouge!!!!

    En espérant avoir aidé quelques-uns
    voila mon mail perso au cas où: jason.nicolle@hotmail.fr

    a+

Laisser un commentaire