Plan de travail sur 4 semaines
Deux stagiaires : Jupyter & Python
Résumé
Ce document détaille un planning de 4 semaines réparti entre deux stagiaires :
— Stagiaire A (Jupyter) : exploration, documentation et conversion des notebooks en
scripts.
— Stagiaire B (Python) : installation, tests, automatisation et orchestration du pipeline
Python.
Chaque semaine précise les objectifs, les tâches concrètes, les flux de données (entrants / sortants)
et les livrables attendus.
Semaine 1 : Installation & Prise en main
Stagiaire A (Jupyter)
Objectifs Installer Jupyter et exécuter les notebooks 00 à 04 sans erreur.
Tâches 1. Créer un venv ou conda env et installer les dépendances (NumPy, SciPy, Open3D,
CGAL, libigl).
2. Ouvrir et valider l’exécution des notebooks :
— 00_UnrealCV_pipeline.ipynb
— 01_Processing_MVE_output.ipynb
— 02_Registering_reconstruction_space.ipynb
— 03_Registering_Poisson_space.ipynb
— 04_Generating_camera_graph.ipynb
3. Rédiger 5 fiches synthèses (Markdown) : rôle, entrées, sorties, points d’attention.
Flux — Entrants : notebooks, path_utils.py
— Sortants : fiches synthèses, captures d’écran d’exécution
Livrables — 5 fiches synthèse PDF/Markdown.
— Captures d’écran attestant de l’exécution sans erreurs.
Stagiaire B (Python)
Objectifs Compiler les outils C++ et préparer le dossier python/cluster.
Tâches 1. Installer les dépendances Python : fastkml, h5py, LatLon, pillow, plyfile,
shapely, sklearn, utm.
2. Dans code/cpp/tools, pour chaque sous-dossier (compute_visibility, . . .) :
— Copier [Link] en [Link], adapter les chemins.
— Lancer make.
3. Copier cluster/[Link] en cluster/[Link] et l’ajuster pour
un dataset test.
4. Exécuter 00_extract_features.py sur 5 images de test.
Flux — Entrants : sources C++, example configs, images test.
— Sortants : binaires C++, [Link], logs de compilation, fichiers de features.
Livrables — Captures d’écran des compilations réussies.
— Résultat de 00_extract_features.py (features enregistrées).
1
Semaine 2 : Exploration approfondie & Tests unitaires
Stagiaire A (Jupyter)
Objectifs Cartographier les notebooks 05–11 et leur correspondance avec cluster et debug.
Tâches 1. Exécuter et analyser : 05_Sampling, 06_ROIs, 07_Orientations, 08_Raycasting,
09_Coverage, 10_LazyGreedy, 11_DebugOptimalOrientations.
2. Pour chaque notebook, noter :
— Entrées (fichiers HDF5, images. . . )
— Sorties (matrices, plots. . . )
— Script Python équivalent (ex. debug/120_visualize_visibility.py)
3. Produire un tableau de mapping Notebook → Script (Markdown/CSV).
Flux — Entrants : notebooks 05–11, code cluster/ et debug/.
— Sortants : tableau de mapping, commentaires d’automatisation.
Livrables — Tableau de correspondance.
— Proposition d’un script de transformation pour un notebook.
Stagiaire B (Python)
Objectifs Tester et corriger les scripts cluster/ et debug/.
Tâches 1. Enchaîner : 00_extract_features.py, 01_match_features.py, 02_depth_map_reconstruction.
2. Lancer trois scripts dans debug/ (ex. 090, 120, 140).
3. Corriger les chemins ou formats via path_utils.py.
4. Documenter les anomalies et corrections (issues GitHub).
Flux — Entrants : images test, HDF5/NPZ, path_utils.py.
— Sortants : depth-maps, images debug, logs d’exécution.
Livrables — Rapport de corrections (issues listées).
— Exemple de figures générées.
Semaine 3 : Expérimentations & Visualisations
Stagiaire A (Jupyter)
Objectifs Comprendre les formulations avancées (notebooks 12–19) et préparer une synthèse.
Tâches 1. Exécuter : 12_ILP1, 13_ILP2, 14_ILP3, 15_ApproxTSP, 17_ApproxTSP_var, 19_Orienteering.
2. Pour chaque :
— Décrire la formulation mathématique.
— Noter l’API/solveur utilisé (Gurobi, GLPK, Mosek).
3. Rédiger un document pédagogique (5 à 7 pages).
Flux — Entrants : notebooks 12–19.
— Sortants : document de synthèse, extraits de code.
Livrables — PDF “Formulations d’optimisation”.
— Code exemple prêt à être réutilisé.
2
Stagiaire B (Python)
Objectifs Lancer les protocoles d’experiments et finaliser les plots.
Tâches 1. Exécuter : experiments/00_reward_vs_budget/[Link], experiments/01_greedy_vs_lazy_.../
2. Lancer : plots/00_quantitative/[Link] . . .plots/03_visual_error/[Link].
3. Annoter et enrichir un des PDF finaux (axes, légendes, titres).
Flux — Entrants : HDF5/NPZ, scripts [Link].
— Sortants : CSV de résultats, PDF annoté.
Livrables — Tableaux comparatifs (CSV/Markdown).
— Version annotée d’un PDF.
Semaine 4 : Intégration & Automatisation
Stagiaire A (Jupyter)
Objectifs Transformer des notebooks clés en scripts autonomes et documenter.
Tâches 1. Choisir 3 notebooks (ex. 07, 09, 10).
2. Extraire le code et créer : generate_orientations.py, compute_coverage.py,
lazy_greedy.py.
3. Rédiger pour chacun un [Link] : usage, entrées, sorties.
Flux — Entrants : notebooks, path_utils.py.
— Sortants : scripts .py, READMEs.
Livrables — 3 scripts prêts à l’emploi.
— Documentation associée.
Stagiaire B (Python)
Objectifs Orchestrer et tester l’exécution complète du pipeline.
Tâches 1. Créer run_all.py à la racine de python/ appelant successivement :
i. cluster (00...02)
ii. ground_truth (000...020)
iii. debug (mode silencieux)
iv. experiments ([Link])
v. plots ([Link])
2. Préparer un mini-dataset (5 images) et un script de test (pytest ou assert).
3. Ajouter un Makefile ou un petit script Bash pour lancer tout.
Flux — Entrants : tous scripts Python, mini-dataset.
— Sortants : logs complets, artefacts finaux (depth-maps, PDFs).
Livrables — run_all.py opérationnel.
— Scripts de test ou Makefile.
— Rapport de validation.
Suivi et diffusion
— Réunions hebdomadaires (30 min) pour valider les livrables.
— [Link] mis à jour dans chaque dossier avec instructions “Comment lancer ?”.
— Tests automatisés sur un mini-dataset pour garantir la non-régression.