vidéo : Réalité augmentée !

J’ai les yeux qui piquent, mais après quelques dizaines d’heures de lutte, je suis fier de vous présenter la première vidéo de réalité augmentée, réalisée avec Raydium !


http://raydium.cqfd-corp.org/captures/rayAugmentedReality.avi

Les explications viendront demain, j’en suis incapable pour l’heure…

edit : les saccades sont dûes à l’encodage à la volée de la vidéo, c’est du 30 FPS (fréquence de la webcam) sinon.


Publié

dans

par

Étiquettes :

Commentaires

11 réponses à “vidéo : Réalité augmentée !”

  1. Avatar de Sigis
    Sigis

    Ouaouh excellent. Ben j’attends les explications qui viennent demain :p

  2. Avatar de G.UNIT
    G.UNIT

    C’est bizarre il ne glisse pas, mais c’est un bon début, c’est sur qu’avec une webcam ça doit pas être la même.

  3. Avatar de Fabs
    Fabs

    Excellent dans ma tendre jeunesse j’avais tjr rêvé de ce genre de truc.

  4. Avatar de Jambon
    Jambon

    C’est du camera match, en gros ?

    La vraie réalité augmentée consisterait à pouvoir agir physiquement sur ton objet. Ou à lui donner un mouvement autonome dans un "local" ou sur un support qui serait facilement intégrable dans ton interface.

    Là je suppose que tu as placé tes 3 points sous ton objet 3D ?

    Tout ça pour dire que si tu as besoin de modèles 3D…on peut s’amuser un peu.

  5. Avatar de Xfennec
    Xfennec

    Jambon : J’ai du mal à saisir tes propos, mais le but de la réalité augmentée consiste bien à "augmenter" en temps réel la réalité filmée. L’interaction entre la réalité et les objets virtuels se fait avant tout dans la synchronisation du placement de ces derniers.

    Toujours est-il qu’il nous est maintenant possible de connaître assez précisément la position et l’orientation de la caméra (ou de n’importe quel autre marqueur) dans l’espace, et qu’a partir de là, beaucoup de portes sont ouvertes.

    Je suis en ce moment même en train de faire les premiers tests pour utiliser ODE (moteur physique) dans la partie augmentée de la scène.

  6. Avatar de Jambon
    Jambon

    Tu pourrais donc faire la même chose (bouger ton support) en même temps que tu déplaces ta caméra ?

  7. Avatar de Xfennec
    Xfennec

    La position d’un objet est toujours relative au point de vue. Il n’y a aucune différence entre bouger la caméra et bouger le support (matrice inverse).

  8. Avatar de Jambon
    Jambon

    "La position d’un objet est toujours relative au point de vue."
    Ben non, elle est relative à l’espace. C’est toi qui a choisi de la définir par rapport à un point de vue. Lorsque ton objet sort du champ, tu es baisé.

    Si tu fais tourner ta caméra à 360° sur l’axe Z, et que tu as 28° de champ avec, les quelques 330° ou ton objet sera hors champ et déplacé seront perdus. Tu ne récuperreras pas sa position au moment de revenir dessus.

    La formule exact serait d’après moi : La position de la caméra est définie dans l’espace. La position de l’objet est définie dans l’espace. Leurs mouvements sont alors liables entre eux. Avec le système de capteurs dont tu parles quelques articles plus bas, il faudrait que ton objet et ta caméra soient équipés, ou que tu puisses calculer la position de la cam dans son environnement lorsqu’elle se déplace. Je me trompe ?

  9. Avatar de Xfennec
    Xfennec

    Bon, on va pas se prendre le chou pendant 60 commentaires non plus 🙂

    En gros, (comme toujours en 3D temps réel) tout ce qui m’intéresse c’est d’obtenir une matrice (la Modelview en OpenGL).

    Cette matrice est calculée en général depuis 2 choses : la position de la caméra et la position de l’objets. Après, que tu recules la caméra ou l’objet, la matrice est la même (je vais te faire le coup de la relativité "cm2 style" ou on t’explique que dire que "la voiture avance sur la route" ou que "la route recule sous la voiture", c’est la même chose). Alors certes, puisqu’ici on passe par un méchanisme de reconnaissance optique, la contrainte est que le marqeur doit être dans le champs de la caméra, mais au delà de ça, il est inutile de faire la distinction entre la position de l’objet et la position de la caméra : seul le rapport de l’un à l’autre est nécessaire.

    Je compte bientot réaliser une vidéo démontrant le principe d’occlusion dans laquelle je te ferais une petite dédicace en bougeant la caméra ET le modèle 😉

    PS: quand tu exprimes des exemples avec des rotations sur des axes, donne ton repère (main gauche ou main droite, au minimum), sinon c’est chaud à décoder.

  10. Avatar de Jambon
    Jambon

    "il est inutile de faire la distinction entre la position de l’objet et la position de la caméra : seul le rapport de l’un à l’autre est nécessaire"
    ==> Tu dois voir plus grand ! Dans l’industrie, quand on bosse sur de la visée laser, par exemple, on se base sur un référentiel qui n’est ni l’émetteur, ni le récepteur, mais ce qui est commun aux deux : l’outillage qui maintient l’objet mesuré, ou même le sol. Si tu te bases uniquement sur une triangulation entre la camera et l’objet, tu t’imposes toi-même des limites, car comme tu le reconnais à contre-coeur (trois posts, quand même) ton système ne gère pas le hors champ.

    "quand tu exprimes des exemples avec des rotations sur des axes, donne ton repère (main gauche ou main droite, au minimum), sinon c’est chaud à décoder."
    ==> L’axe Z désigne rarement autre chose que la hauteur… donc un mouvement giratoire semblable à celui d’une toupie. Me dis pas que tu bosses sur une base ABC pour désigner tes axes de largeur, profondeur et hauteur.

    Et si je te casse les couilles en m’intéressant à ton projet, tu le dis.

  11. Avatar de Xfennec
    Xfennec

    Tu dois voir plus grand !
    Haha 🙂 Ca fait 5 ans que je bosse sur le moteur 3D, je crois que je commence à être assez habitué à faire la part des choses et savoir ou se trouvent les limites du raisonnable avec les moyens (quasi nuls) dont on dispose. Si tu pense pouvoir faire de la reconnaissance optique fiable sans marqueurs, libre à toi de te lancer dans l’aventure (les sources de Raydium sont libres, qui plus est). Si je disposais du Patriot (capteurs 6DOF), les contraintes seraient tout à fait différentes, bien sûr.

    Pour te poser le problème différement, explique moi comment tu fait (toujours avec le système de reco optique) pour avoir une information séparée entre, d’une part, les coords (pos/rot) de la caméra et d’autre part les coords des marqeurs. Question subsidiaire : à quoi ça sert ?

    L’axe Z désigne rarement autre chose que la hauteur
    Ah… pourtant dans 50% des repères que l’on trouve dans les projets 3D, le Z désigne la profondeur, étrange non ?

    Pour le reste, si tu me broutait les parties, je ne réponderai tout simplement pas à tes commentaires 🙂

Laisser un commentaire