Représentation 3D d'un mouvement

Représentation 3D d'un mouvement - Sciences - Discussions

Marsh Posté le 20-12-2015 à 20:54:13    

Bonjour,
 
Je cherche à représenter le mouvement d'une ou plusieurs articulations en fonction du temps.
 
Je capture avec une Kinect les coordonnées 3D d'un corps, j'obtiens un tableau de la forme suivante :  
 
Temps;Hanche gauche X;Hanche gauche Y;Hanche gauche Z;Genou gauche X;Genou gauche Y;Genou gauche Z
135435,424;0,243511;-0,481024;1,357363;0,062211;-0,465628;1,071296
135435,897;0,207737;-0,475493;1,31275;0,091286;-0,807293;1,067291
135436,81;0,191509;-0,469534;1,319132;0,126102;-0,845436;1,127634
135436,249;0,177094;-0,462065;1,323455;0,140786;-0,841689;1,136098
135436,409;0,165873;-0,46417;1,320342;0,148775;-0,846817;1,140831
135436,57;0,161253;-0,462258;1,321229;0,150626;-0,846375;1,151541
 
et je souhaiterai être capable de représenter un graphique de ce type : http://reho.st/gif/1693a2c4fbd4c00fa32ac1c9884c9e9146f52f64.gif
(même sans les lignes entre les articulations pour commencer).
 
Je ne vois pas du tout comment faire ce graphique. Ca me semble possible mais je ne trouve pas comment faire
(pour simplifier, on peut imaginer faire uniquement une vue de profil (en ne prenant pas en compte les Z par exemple).
 
Si quelqu'un a une idée d'un outil que je pourrais utiliser...
 
Merci,

Reply

Marsh Posté le 20-12-2015 à 20:54:13   

Reply

Marsh Posté le 21-12-2015 à 19:31:50    

En 2D comme outil ultra basique tu peux faire quelque chose avec Open Office Calc, insertion graphique (dispertion X/Y) et en mettant tes données en entrée.
Je sais pas si ça aide mais ça peut faire un début ...

Reply

Marsh Posté le 28-12-2015 à 21:01:16    

Salut,
 
En effet, c'était ma première piste, mais je n'arrivais pas à montrer le mouvement...  
Pour y parvenir, j'ai artificiellement fait évoluer l'axe des X (qui correspond à l'axe de déplacement avant/arrière), et en jouant avec cette simulation d'un déplacement, j'obtiens quelque chose de pas trop mal...
Prochaine étape, essayer de relier les articulations entre elles en "vertical" (comme sur l'image du premier post) plutôt qu'en "horizontal" )...

Reply

Marsh Posté le 29-12-2015 à 12:16:50    

Alors si t'es motivé, je suis presque sûr que ça peut se faire avec un script et Blender 3D (logiciel de modélisation 3D open source), là tout de suite je pourrais pas te dire quoi exactement mais je pense que c'est tout à fait dans les cordes de ce logiciel.

Reply

Marsh Posté le 31-12-2015 à 11:37:47    

Tu peux le faire directement en 3D de façon très simple avec la version gratuite de Unity. En plus, tu as déjà des avatars de disponibles surlesquels mapper ça. Il faut juste écrire un petit peu de scripts CSharp, mais là, visiblement t'as pas besoin de grand chose : écrire un parseur CSV pour ton format de fichier, puis affecter à chaque articulation de la hiérarchie 3D de l'avatar, la bonne orientation relative, à chaque instant. A vue de nez, en 2 heures, c'est plié :jap:


---------------
Prévenir HdV en cas d'SQFP ! - Quidquid latine dictum sit, altum sonatur.
Reply

Marsh Posté le 31-12-2015 à 19:04:41    

Hé hé... Je viens de télécharger Unity, j'ai trouvé un "squelette" gratuit qui propose dans un package (asset ?) quelques animations, dont la marche par exemple. J'ai réussi à afficher l'arborescence des articulations, par contre je ne vois pas à quel endroit on trouve les coordonnées des articulations...  
Suite des recherches demain, je pense que ça va me prendre un peu plus de 2h par contre ;-)
Je pense que Blender 3D est à peu près le même type d'outil, ce qui me plait avec Unity c'est l'intégration dans Visual Studio.

Reply

Marsh Posté le 31-12-2015 à 19:30:54    

Blender c'est un outil de création graphique avant tout qui s'appuie sur des scripts python pour faire des macros etc... Unity c'est un outil pour développer du logiciel (surtout du jeu de ce que j'en sais), qui donc s'appuie sur du C#.  
Et je pense que tu peux arriver à tes fins avec les 2 en effet.

Reply

Marsh Posté le 04-01-2016 à 15:19:39    

Tibar a écrit :

Hé hé... Je viens de télécharger Unity, j'ai trouvé un "squelette" gratuit qui propose dans un package (asset ?) quelques animations, dont la marche par exemple. J'ai réussi à afficher l'arborescence des articulations, par contre je ne vois pas à quel endroit on trouve les coordonnées des articulations...
Suite des recherches demain, je pense que ça va me prendre un peu plus de 2h par contre ;-)
Je pense que Blender 3D est à peu près le même type d'outil, ce qui me plait avec Unity c'est l'intégration dans Visual Studio.


Les coordonnées auriculaires, tu regardes le paramètre "orientation" de chaque noeud, qui donne l'orientation par rapport à l'objet parent dans la hiérarchie. Dans l'interface, c'est donné en angles d'Euler, mais en script, tu peux le renseigner en quaternion, matrice, ou axis angle.


---------------
Prévenir HdV en cas d'SQFP ! - Quidquid latine dictum sit, altum sonatur.
Reply

Marsh Posté le 05-01-2016 à 21:54:04    

Topik intéressant. [:drap]

Reply

Marsh Posté le 06-01-2016 à 02:23:31    

Drap :o

Reply

Marsh Posté le 06-01-2016 à 02:23:31   

Reply

Marsh Posté le 06-01-2016 à 02:32:56    

Merci, j'aimerais avoir plus de temps pour avancer plus vite, je m'y remets sérieusement demain, j'ai les formules pour calculer tous les paramètres (longueur de chaque membre, angle de chaque articulation, changement de référentiel, position absolue par rapport au point 0,0,0 du capteur Kinect), reste à prendre en main Unity pour faire quelque chose de tout ça et ensuite rendre les données exploitables...
 
Petite question, comment sont définies les longueurs des membres des squelettes dans Unity ?

Reply

Marsh Posté le 23-10-2017 à 19:03:34    

Bon bon, ça passe vite et ça a bien évolué depuis. Je gère 90% du besoin avec R Shiny, ça donne des résultats très propres sur toutes les parties graph 2d / 3d, les composants sont bien pensés et les résultats très fiables (On trouve des données cohérentes avec les mesures des podologues au 1/10 de mm sur un échantillon).
Reste à relancer la génération de l'animation, j'ai bidouillé un truc sous R mais c'est pas exploitable (Il faut installer un autre logiciel et le temps de traitement n'est clairement pas acceptable), du coup retour sur Unity, mais je suis complètement paumé.
Je cherche un tuto basique pour prendre en main l'outil mais je ne trouve rien qui réponde à mon besoin.

Reply

Marsh Posté le 23-10-2017 à 19:50:07    

Tibar a écrit :

Bon bon, ça passe vite et ça a bien évolué depuis. Je gère 90% du besoin avec R Shiny, ça donne des résultats très propres sur toutes les parties graph 2d / 3d, les composants sont bien pensés et les résultats très fiables (On trouve des données cohérentes avec les mesures des podologues au 1/10 de mm sur un échantillon).
Reste à relancer la génération de l'animation, j'ai bidouillé un truc sous R mais c'est pas exploitable (Il faut installer un autre logiciel et le temps de traitement n'est clairement pas acceptable), du coup retour sur Unity, mais je suis complètement paumé.
Je cherche un tuto basique pour prendre en main l'outil mais je ne trouve rien qui réponde à mon besoin.


Tu devrais essayer Elvis Presley, c'est lui qui a inventé la 3D !

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed