Scopitone 2007 : Tracking Laser

J’ai donc effectué quelques tests préliminaires pour la tracking de cible laser.
J’utilise pour ces tests une webcam Philips SPC900NC. Cette webcam se trouve être particulièrement douée dans les environnements sombres. Pour des raisons de vitesse de traitement d’image, la capture est réalisée en 320×240 24bpp à 30 FPS.

Le vidéoproj’ est un NEC VT58 (super lumineux, image gigantesque), merci Quiris.

En ce qui concerne le tracking, j’utilise une méthode toute bête, que j’ai envie de nommer "distance au rouge".
Explications :
L’impact du laser est rouge, l’idée est donc de rechercher les "points chauds" rouges dans l’image à chaque nouvelle image.


Scène de référence pour le test de l’algo

Si on se limite à extraire la composante rouge de l’image, le résultat n’est pas du tout le bon (un blanc pétant possède un rouge très élevé, sans pour autant être un point d’intérêt rouge, bien sûr)


Composante rouge

Jetez un oeil au rideau jaune, sous ma main, au fond : il est encore parfaitement visible … mais n’est pas rouge.
J’applique donc une formule toute bête qui consiste à mesurer la "distance" entre la composante rouge et les composantes vertes et bleues (pondérées). En pratique, il semble même que la composante bleue soit à peine même nécessaire pour la pertinence de ce calcul (probable problème avec le mauve ?). Le résultat est bien sur multiplié par la "luminosité" du pixel, pour qu’un pixel rouge clair soit plus représentatif qu’un rouge plus prononcé, mais plus sombre.

On arrive au résultat suivant :

"Distance au rouge" (résultat amplifié pour la présentation)

Les rideaux ne sont plus là, et seules les parties … roses restent (faute de rouge).

Il ne restait plus qu’a mettre tout ça en pratique :

Le vidéoproj’ affichait une image caratéristique d’une scène Raydium en extérieur, avec même quelques éléments rouges :

… et voilà le rendu auquel on arrive, sans réglages particluliers :

crade … mais de nuit, avec une webcam !

Le problème ici, c’est que mon petit laser acheté 2 euros au coin de la rue et dont les piles sont en fin de vie … eh bien il passe inaperçu !
J’ai donc fouillé la documentation de l’API Video4Linux du driver PWC de Luc Saillard pour la webcam, dans laquelle on trouve deux réglages intéressants : la balance automatique des blancs et le "temps d’ouverture". En désactivant la balance auto (remplacée par une valeur fixe empirique) et en réduisant fortement le temps d’ouverture depuis l’application, on arrive à un résultat beaucoup plus intéressant à traiter :


Si vous cherchez, l’impact du laser est visible sur cette image

L’image n’est pas "trop" sombre, mais belle et bien équilibrée. J’en ai profité pour baisser la luminosité du vidéoprojecteur pour augmenter le contraste avec l’impact du laser.

Si on active le filtre de distance au rouge, voilà le résultat :

(contraste et luminosité de la capture amplifiées pour la présentation)

Le pointeur ressort fortement de l’image, le tracking devient très simple !


Abstract Numeric Art

En bref, les résultats sont assez corrects, même si les tests doivent maintenant êtres poussés sur une scène de la simulation. Autre point, la qualité du laser compte beaucoup, et là notre marge de manoeuvre est énorme … Si vous connaissez des lasers (rouges) bien puissants, n’hésitez pas.

A suivre !


Publié

dans

par

Étiquettes :

Commentaires

7 réponses à “Scopitone 2007 : Tracking Laser”

  1. Avatar de QQQ
    QQQ

    C’est génial!

    Suis une bille en programmation et à peu près une boule de pétanque sous linux, compliqué sous windows?

  2. Avatar de Llyd
    Llyd

    A priori cpas tant la partie programmation (pure) qui est la plus dure, mais bien la partie traitement de l’image. Simple question, avec quoi t’as codé ca?

  3. Avatar de Xfennec
    Xfennec

    (Merci Mathieu. Il semble que les lasers soient tous verts, couleur qui risque de poser plus de problèmes. Je vais fouiller en détail)

    Le tout est codé pour (et "dans") Raydium, donc en C. Conséquence direct : la portabilité est immédiate (Linux ou win32 en l’occurence*). Le traitement d’image est franchement super simple, et l’ensemble du programme de tracking ne demande réellement aucune compétence particulière, ça reste du bricolage de codeur …

    *: mensonge, j’ai jamais eu le courage de coder la gestion des webcam sous windows .. Si ça intéresse qq1, contactez moi 🙂

  4. Avatar de Xfennec
    Xfennec

    QQQ: c’est sérieux ou c’est juste une vanne basée sur ton pseudo ? 🙂 Si tu as envie de te lancer sur ce sujet, fonce ouvrir un thread sur le forum, que je te fasse une présentation de la chose.

  5. Avatar de QQQ
    QQQ

    Absolument novanne ici, sur ton forum d’ici peu.

    EDIT: pas les vannes d’ici peu hein, smile.

Laisser un commentaire