Journal Prédator: une bibliothèque GPL pour la détection d'images

Posté par .
8
21
avr.
2011

J'ai déjà posté envoyé une demande de dépèche mais au cas où ce serait refusé, je la poste aussi en journal. Et puis ici je peux utilisé un style de langage plus relaché.

Donc voilà: cette libraire de détection visuelle en temps réel parait drolement puissante, je vous laisse juger par vous-meme:

http://www.youtube.com/watch?v=1GhNXHCQGsM

Et c'est en licence GPL, en plus!

La page du projet:
http://info.ee.surrey.ac.uk/Personal/Z.Kalal/tld.html

  • # Joli

    Posté par . Évalué à 2.

    Wow,

    Joli travail. Ce n'est pas à proprement parler réellement impressionnant en terme de résultat, mais le fait que ce soit en GPL rend la chose très intéressante. Du temps réel en 320x240, ça devient utilisable.

    • [^] # Re: Joli

      Posté par (page perso) . Évalué à 2.

      Il n'y a pas une bibliothèque poussée par Intel qui est open source et qui permet de faire ce genre de chose ? Je n'arrive plus à me souvenir du nom de cette bibliothèque...

      Je crois qu'une dépêche la dessus était passée par ici l'annèe dernière (ou même celle d'avant).

  • # Cheese

    Posté par (page perso) . Évalué à 6.

    Faudrait en parler aux devs de cheese, je pense que cela peut fortement les intéresser...

  • # DÉPÊCHE TOI MODÉRATEUR RELECTEUR !!

    Posté par . Évalué à 10.

    Tu as posté cette dépêche 50 minutes avant ce journal. Je pense que durant la nuit les modérateurs / relecteurs, même si ce sont souvent des geeks, dorment d'un juste sommeil, donc à mon avis tu aurais pu attendre un peu avant ce journal.

    Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

  • # Excellent

    Posté par . Évalué à 3.

    Merci pour l'information, le projet a l'air super.

    Je trouve ça assez impressionnant quelque chose capable de tracker à peu près n'importe quoi en sélectionnant une région d'un simple clic, puis d'être capable de détecter les altérations, les modifications (genre quand il tourne la tête), le fait que la chose peut disparaitre (sortir du champs de vision ou être caché par quelque chose), on a même un panda (pas roux) qui fait demi tour sans que le software ne sourcille.

    En plus c'est sous double licence GPLv3/proprio commercial. Donc c'est fait par des gens qui comprennent comment fonctionne le libre. Bref, c'est cool.

    Ceci dit je ne comprends pas comment ça peut être implémenté via matlab et être disponible sous trois OS.

    Je n'ai pas compris non plus en quoi ça faciliterai la vie de personnes handicapées. C'est évoqué dans la vidéo et ça mentionne un pointeur virtuel. Mais je ne vois pas comment ça peut être plus accessible qu'une souris. Pour les handicapés moteur ? Pour les mal-voyants ? Pour les personnes mutilées ?

    Si c'est réellement le cas, je pense que ça pourrait être utile d'en discuter sur la liste accessibilité de l'April.
    http://www.april.org/wws/info/accessibilite http://wiki.april.org/w/Accessibilit%C3%A9_et_logiciels_libres

    • [^] # Re: Excellent

      Posté par . Évalué à 3.

      Je n'ai pas compris non plus en quoi ça faciliterai la vie de personnes handicapées. C'est évoqué dans la vidéo et ça mentionne un pointeur virtuel. Mais je ne vois pas comment ça peut être plus accessible qu'une souris. Pour les handicapés moteur ? Pour les mal-voyants ? Pour les personnes mutilées ?

      Identification de l'utilisateur devant le PC pour changer le comportement de l'OS ou son aspect (login auto, high contrast, résolution michu) ?

    • [^] # Re: Excellent

      Posté par . Évalué à 2.

      Ceci dit je ne comprends pas comment ça peut être implémenté via matlab et être disponible sous trois OS.

      D'après le Wiki, ça dépend de Matlab pour l'instant (Matlab tourne sous Linux), mais c'est en cours de portage sur Octave.

      • [^] # Re: Excellent

        Posté par . Évalué à 7.

        Si vous regardez les sources, le projet est écrit en c++. Le lien avec matlab est fait au travers des mex files (Matlab EXecutable), ce qui veut dire qu'il est tout à fait possible de prendre l'algo pour le mettre en c++ standard. Le problème vient du fait que MatLab a l'immense avantage de permettre d'avoir des outils pour charger les images travailler sur les matrices et tout un tas de fonctions internes qui peuvent faciliter la vie. Je n'ai pas encore examiner le code pour voir à quel point les routines spécifiques sont utilisées, mais en général un code MatLab n'est pas très dur à porter en Octave, un peu plus long à porter en python scipy,numpy,matplotlib, et vraiment chiant à porter en C++.
        La question que l'on est en droit de se poser est pourquoi ne pas avoir utiliser OpenCV, pour implémenter les algos. Si l'on se pose cette question, la réponse peut rapidement être trouvée, c'est chiant de coder avec OpenCV. La lib est vraiment optimisée pour les performances, le parcours de tableau est vraiment très rapide (plus que Qt par exemple), mais les différents binding font que cette lib est vraiment une plaie à utiliser dans les autre langages. J'ai travaillé dessus fut une époque en python, et un binding SWIG est vraiment désagréable. Je pense donc que le choix a été fait de la simplicité d'utilisation.
        Pour l'aspect temps réel, il faut voir ce qui a été utilisé pour l'interfaçage avec le matériel, le plus souvent sous linux c'est v4l2 qui est utilisé, ce choix réduit le champs des possibles en ne traitant pas des caméras IP et n'est pas multi-OS. Il existe une lib qui s'appelle gstreamer et qui est multiplateforme, elle permet de lire n'importe quel flux, que ce soit un fichier ou un/dev/video*, un /dev/dsp, ou une uri. J'essayerais de voir la publie pour comprendre un peu ce qu'il y a dérrière, car le trvail à l'air vraiment intéressant. Bien qu'il soit un peu éloigné des travaux que je fais (flot optique) ça peut toujours apporter du grain à moudre.

        • [^] # Re: Excellent

          Posté par (page perso) . Évalué à 2.

          Comme je le disais plus haut, Predator semble bien utiliser OpenCV (en tout cas, il faut l'installer...)

        • [^] # Re: Excellent

          Posté par (page perso) . Évalué à 2.

          Bien qu'il soit un peu éloigné des travaux que je fais (flot optique) ça peut toujours apporter du grain à moudre.

          justement il n'y a pas que ça mais c'est basé sur du Lucas-Kanade. A priori OpenCV est d'ailleurs utilisé uniquement pour ça (le fichier mex/lk.cpp), tout le reste est en matlab, y compris l'acquisition vidéo.

          • [^] # Re: Excellent

            Posté par . Évalué à 3.

            En effet, et c'est plutôt psitif, car le L-K set parmis les meilleurs en multipasse.
            Si j'ai bien compris ils calculent des vecteurs vitesses à l'intérieur de leur bounding-box, ils enclenchent ensuite un alogorithme d'apprentissage qui va évaluer les directions locales par rapport à la direction moyenne des vitesses, ils construisent ainsi au fur et à mesure une évolution de la texture à suivre. Personnellement je ne suis pas du tout au fait des techniques d'apprentissage, donc je ne peux pas trop évaluer leur performances ...

            En ce qui concerne mes activités, je pense que je peux y trouver un intérêt.
            Dans les algo de pilotages par vidéo que nous avons développés, il peut arriver que les zones d'intérêt se déplacent beaucoup ce qui amène des variations d'éclairement, cette méthode pourrait apprendre l'impacte de ces variations et ainsi éviter à l'algo de planter. De plus le fait de pouvoir détecter que l'objet n'est plus là, puis le retrouver après, est une fonctionnalité vraiment intéressante en cas de "boulets" (ha ben mince je suis passé devant la caméra ...), elle permet de déclencher des évennements de sécurité et de reprendre, c'est vraiment intéressant.

    • [^] # Re: Excellent

      Posté par (page perso) . Évalué à 4.

      Je n'ai pas compris non plus en quoi ça faciliterai la vie de personnes handicapées. C'est évoqué dans la vidéo et ça mentionne un pointeur virtuel. Mais je ne vois pas comment ça peut être plus accessible qu'une souris. Pour les handicapés moteur ? Pour les mal-voyants ? Pour les personnes mutilées ?

      Je pense que oui on peut trouver des applications pour les handicapés moteurs ou mutilés. Je me souviens d'un projet étudiant qui avec une wiimote reconnaissait les mouvements (infimes) des doigts et permettaient de contrôler un pointeur avec les actions habituelles (déplacements, clic…). Voir l'avant dernière vidéo sur cette page.

      D'autres étudiants du même professeur travaillaient sur un système d' « eye tracking » : ce qui avait pour but de pouvoir déplacer un pointeur à l'écran, avec les yeux…

      Il y a des personnes très handicapées qui ne savent bouger que leurs yeux ou quelques doigts, ou juste tourner la tête, par exemple. Ces personnes n'ont pas d'autre moyen de discussion que de répondre non ou oui à des questions avec un geste (baisser les yeux, cligner des paupières…). Pour leur permettre d'exprimer il existe quelques systèmes archaïques…

      J'ai par exemple en mémoire un système qui fait défiler des images sur un écran, la personne valide une image qui s'approche le plus de ce qu'elle veut dire en tapant de la tête sur un bouton… Quand la même personne possède la mobilité de ses yeux, on se dit que ce serait trop bête de s'en priver…

      ce commentaire est sous licence cc by 4 et précédentes

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.