IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement 2D, 3D et Jeux Discussion :

Logiciel pour génération d images de profondeurs


Sujet :

Développement 2D, 3D et Jeux

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 97
    Points : 55
    Points
    55
    Par défaut Logiciel pour génération d images de profondeurs
    Bonjour à tous,

    Je ne suis pas sur que je pose ma question au bon endroit (excusez moi dans ce cas).

    Je souhaiterais générer des images de profondeur (valeur des pixels = distance au capteur "virtuel") à partir d'un modèle 3D représentant un humain dans différentes positions. Mon but est de créer une base d'apprentissage pour un algorithme de traitement d images.

    Je me suis donc penché sur les logiciels permettant de créer des modèles 3D d'humain (Poser, Make Human par ex.) et je me demandais s'ils permettent de générer des images de profondeur et d'identifier les points correspondant aux "joints" des articulations.

    Ce que je souhaite faire est il facilement réalisable avec ce type de logiciels ? Dans ce cas, avez vous un logiciel à me conseiller ?

    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de wax78
    Homme Profil pro
    Chef programmeur
    Inscrit en
    Août 2006
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chef programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 073
    Points : 7 978
    Points
    7 978
    Par défaut
    Pour ce qui est de la carte de profondeur.

    Les logiciels cités, eux même, je ne pense pas que tu puisses générer une carte de profondeur directement avec.

    Par contre tu peux exporter ton modèle vers un modeler/renderer (Blender par exemple) et faire un rendu pour avoir cette carte des profondeur.
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    786
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 786
    Points : 602
    Points
    602
    Par défaut
    Salut on2101 que doit faire ton algo d'apprentissage de traitement d'image?

  4. #4
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par wax78 Voir le message
    Par contre tu peux exporter ton modèle vers un modeler/renderer (Blender par exemple) et faire un rendu pour avoir cette carte des profondeur.
    +1
    Voir ce lien par exemple, avec utilisation des nodes dans blender
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 97
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Mon algo a besoin de paires

    - image de profondeur de l individu
    - squelette ou points particuliers (articulations par exemple) en 3D par rapport au point de vue

    Il s'agit de couples (certaines caractéristiquesl image de profondeur afin de les associer à la solution qui est alors connue. Le but est donc de déterminer la position de points clés (ou skelette) sur un individu sur une image de profondeur.

    Je vais essayer d'utiliser conjointement MakeHuman / Blender. En effet les nodes dans blender permettent d'accéder au buffer de profondeur de la scène 3D.

    Il ne me reste plus qu'à générer des personnages dans différentes positions et de calculer le rendu avec Blender. Je vais essayer de me familiariser avec ces logiciels.

    Merci de votre aide

  6. #6
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 813
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 813
    Points : 7 638
    Points
    7 638
    Par défaut
    Citation Envoyé par on2101 Voir le message
    Je vais essayer d'utiliser conjointement MakeHuman / Blender.
    Si tu passes par MakeHuman, il va te falloir faire le rig de ton humain pour le mettre dans la position que tu veux (d'où un truc de plus à apprendre à faire avec blender, même si les dernières versions intègrent une version de rig de bipède qui simplifie un peu la chose).

    Essaye de voir si parmi les rigs existants il n'y en aurait pas un qui te conviendrait (faire une recherche sur "blender human rig" ou "blender biped rig", voir aussi dans les fichiers source des projets de la fondation blender avec elephants dream ou sintel)
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  7. #7
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 97
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Je pense finalement procéder comme suit :

    - creation d un personnage avec le l ogiciel Poser. J obtient une sequence d images en .obj

    - dans Blender : lecture de l image i (.obj), positionnement de la camera, puis rendu du buffer de profondeur

    - enregistrement du buffer de profondeur et des points d articulation dans un fichier

    Le traitement effectué dans Blender nécessite l'écriture d'un script en python appellant les fonctions Blender. Je pourrais en plus enregistrer les images de profondeur dans un format "maison" que je pourrais réutiliser facilement.

    Pourriez vous me donner votre avis sur la faisabilite de cela ?
    Le format ".obj" contient il le squelette (et la position des points d articulation dont j'ai besoin) ou un autre format serait il plus adapté ?

    Enfin, si vous conaissez le nom des modules / fonctions Blender permettant de réaliser le rendu du z buffer, cela pourrait me faire gagner un peu de temps.

    Merci pour vos avis !!

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    97
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 97
    Points : 55
    Points
    55
    Par défaut
    Bonjour,

    Les étapes de chargement du fichier .obj et de positionnement de la caméra sont assez simples par script Python (bpy.les_elements_concernes).

    En revanche, j'ai plus de mal avec le rendu et l'accès au z buffer.
    J effectue le rendu avec bpy.ops.render.opengl() et/ou bpy.ops.render.render(). J'essaie ensuite d'accéder au z buffer via "glReadPixels". Les valeurs obtenues sont censées être comprises entre 0 et 1. Je pensais ensuite utiliser un "gluUnProject" afin d'obtenir les vraies distances.

    Je n'obtiens pas de bons résultats, "glReadPixels" me donne pour chaque pixel 1.0 ou bien des valeurs étranges (10e35, 10e20, ...). Ci dessous une partie de mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    # chargement fichier ".obj" et placement camera 
    # les modifications sont bien opérées dans la fenetre de la scène 3D 
     
    # rendu 
    # faut il faire cela ? 
    bpy.ops.render.opengl()
    bpy.ops.render.render()
     
    # lecture z buffer 
    zbuffer = bgl.Buffer(bgl.GL_FLOAT, [largeur, hauteur])
    bgl.glReadPixels(0, 0, largeur, hauteur, bgl.GL_DEPTH_COMPONENT, bgl.GL_FLOAT, zbuffer)
    liste = bgl.Buffer.to_list(zbuffer) 
     
    # liste ne contient que des 1.0  ou bien des valeurs étranges
    La manière de faire vous semble t elle bonne ?
    Merci par avance pour votre aide

Discussions similaires

  1. Réponses: 0
    Dernier message: 25/01/2010, 17h24
  2. Réponses: 0
    Dernier message: 25/01/2010, 17h09
  3. Réponses: 4
    Dernier message: 25/01/2007, 16h38
  4. [Recherche] Recherche un logiciel pour assembler des images
    Par Furius dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 29/12/2005, 18h03
  5. Logiciel pour voir ses image en mode console
    Par Senaku-seishin dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 28/11/2004, 22h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo