Skip to content

Projet Argos - Analyses des besoins

Etudiants : - Cedric SAZOS - Clement BINET - Erwann BRICET - Victor BOURGAUD - Xavier BAUBET

1. Contexte du projet

Le projet vise à développer un ensemble d’outils logiciels en C++ permettant la conversion entre différentes représentations 3D :

  • Maillage 3D (Mesh)
  • Nuage de points (Point Cloud)
  • Vidéo → reconstruction en nuage de points

L’objectif final est d’obtenir un pipeline capable de : - Transformer une acquisition vidéo en nuage de points exploitable.

L’environnement actuel repose sur Blender (scripts Python) pour la visualisation.

2. Parties prenantes

Clients

Chercheurs - Doctorant

Utilisateurs souhaitant comparer des algorithmes de conversion 3D

Potentiellement intégration dans pipeline scientifique

Attentes : - Résultats fiables - Comparaison claire des performances - Visualisation des résultats - Simplicité d’utilisation (documentation) - Modularité des algorithmes - Build simplifié (CMakeLists)

3. Contour fonctionnel du logiciel

Objectif principal

Créer un framework de conversion 3D modulaire, permettant : - Lire un fichier .obj - Le convertir en : - Maillage - Nuage de points - Reconvertir dans l’autre sens - Comparer plusieurs algorithmes pour chaque transformation - Affichage graphique des résultats

4. Jalon technique

Jalon 1 - Maillage → Nuage de points

Objectif : Échantillonnage de surface d’un maillage 3D.

Tâches : 1. Algo modulaire : création d'une interface / patron d'implémentation pour les algorithmes. 2. Naïf : retourne simplement les sommets du maillage. 3. Centroid : - Découpe des faces en triangle (éventaille) - Ajout du centroïde de chaque triangle - resultat : on découpe chaque face en triangle, on ajoute un point au centre de chaque triangle, on retourne la liste des points centroides. 4. UniformAreaSampler : - Nombre N de points demandé - Répartition proportionnelle à l’aire des triangles - Échantillonnage uniforme de surface - ex : l'utilisateur demande 10 points, l'objet possède 2 faces, une face représente 80% de la surface global de l'objet et l'autre face 20%, on retourne un nuage de points avec 8 points sur la première face et 2 points sur la deuxième. 5. UniformPerface : - Nombre N de points demandé - Répartition proportionnelle par face - Échantillonnage uniforme par face - ex : l'utilisateur demande 10 points, l'objet possède 5 faces, on retourne un nuage de points avec 2 points par face. 5. UniformPerFace 2 : - Nombre N de points par face demandé - Répartition proportionnelle par face - Échantillonnage uniforme par face - ex : l'utilisateur demande 10 points par face, l'objet possède 5 faces, on retourne un nuage de points avec 10 points par face. 6. DensitySampler : - Densité d demandé - Échantillonnage uniforme par unité de surface - ex : l'utilisateur demande d = 5, on applique 5 points sur l'objet par unité de surface et on retourne la listes des points appliquées.

Sortie : - Nuage de points (format standard interne) - Export possible (ex : .obj) - Affichage dans blender

Remarques : - les algorithmes travaillent sur des faces qui sont découpés en triangles (transformation d'un face en éventaille). - l'ajout des points est aléatoire dans les faces parcourues (hormis pour les algorithmes Naif et Centroid).

Jalon 2 - Nuage de points → Maillage

Objectif : Reconstruire une surface à partir d’un ensemble de points.

Algorithmes potentiels : - Triangulation Delaunay - Alpha Shapes

Contraintes : - Gestion du bruit - Gestion des trous

Jalon 3 — Vidéo → Nuage de points

Non définie

6. Fonctionnalités détaillées

Import / Export

  • Lecture .obj
  • Conversion vers structure interne
  • Export maillage / nuage

Conversion

  • Mesh → Point Cloud
  • Point Cloud → Mesh
  • Vidéo → Point Cloud

Benchmark

  • Mesure temps d’exécution
  • Comparaison mémoire
  • Comparaison densité / qualité
  • Export résultats CSV

Visualisation

  • Affichage 3D intégré OU
  • Visualisation via Blender (script Python) (solution visée)