5.8 KiB
5.8 KiB
Roadmap Lardon3D
Precision features
- IMPLEMENTED v1A : ORB coarse stable, SIFT/RootSIFT OpenCV 5, Feature File v2 F32×128, grille/coverage, tâches récupérables et consolidation intra-image.
- IMPLEMENTED : Candidate Pair Generator, matching précis et vérification géométrique.
- PLANNED / BLOCKED : ALIKED, en attente de provenance modèle et d'un export ONNX reproductible validé contre un oracle upstream.
Direction générale
Lardon3D suit une feuille de route ordonnée qui privilégie la stabilité et la consolidation avant l'ajout de fonctionnalités complexes.
Étapes terminées (DONE)
Phase 1 : Fondations
- ✅ TUI modulaire avec ncursesw
- ✅ Gestion persistante des projets
- ✅ Import d'images migré vers le scheduler générique, borné et reconstructible
- ✅ Catalogue d'images et vues
- ✅ Moteur de tâches avec pause/reprise, annulation, checkpoints
- ✅ File FIFO avec sélection adaptative et backpressure
- ✅ Profil matériel et snapshots de ressources
- ✅ Resource Governor avec réservations opaques
- ✅ Intégration scheduler ↔ governor
- ✅ Sélection de la première tâche admissible
Travaux d'infrastructure en cours (CURRENT FOUNDATION)
Phase 2 : Consolidation
- 🔄 Documentation architecturale
- 🔄 Tests et validation
- 🔄 Optimisations mémoire
Prochaines étapes décidées (NEXT)
Phase 3 : Persistance
- ✅ Fondation versionnée des checkpoints de tâches
- ✅ Project Database v7 (tâches, catalogue, Feature Store, Visual Index et precision features)
- ✅ Branchement Project Database au cycle de vie projet et inventaire de reprise
- ✅ Registry durable des types métier de tâches
- ✅ Premier type métier reconstructible (
import.images) - ✅ Resoumission automatique contrôlée et bornée des tâches récupérables
- ✅ ScanSet v1 et Image Catalog persistant v1
Phase 4 : Pipeline avancé
- ✅ Feature Store v1/v2, ORB, SIFT/RootSIFT et consolidation intra-image
- ✅ Visual Index v1 segmenté et persistant
- ✅ Candidate Pair Generator
- ✅ Matching et vérification géométrique
- ✅ Track Model / Track Builder v1
- ✅ Sparse SfM : primitives géométriques Gate C et noyau incrémental Gate D implémentés
- ✅ Sparse SfM Gate E : Bundle Adjustment final par composante PASS / FROZEN
- ✅ Sparse SfM Gate F : orchestration durable et publication atomique PASS / FROZEN
- ✅ Sparse SfM Gate G : politique et cœur PASS / FROZEN
Phase 5 : Reconstruction
- ✅ Orchestration de reconstruction incrémentale H v1 — PASS / FROZEN
- 🔄 Capture / Asset Provenance v1 — IMPLEMENTED / VALIDATION PENDING : Project DB v19 ajoute les Captures par ScanSet, les associations source/dérivé et la sélection explicite d'une image logique, sans changer le pipeline scientifique. L'ingestion RAW et vidéo reste PLANNED.
- ✅ MVS-M1 — PASS / FROZEN : identité dense
L3DMDID2v2 (220 octets) liant reconstruction de base, jeu d'images source,calibration_scope_identityhistorique, binding numérique exactL3DMCAL1v1, backend et paramètres ; les octets source restent liés séparément ; frontière OpenMVS v2.4.0 externeInterfaceCOLMAP/DensifyPointCloud; export COLMAP déterministe avec undistortion OpenCV, observations transformées et tracks réels ; texte COLMAP exporté en flux et tracks déterministes indexés sans rescan quadratique des observations. Le binding de calibration trie lesimage_id, encode des champs little-endian explicites à largeur fixe, rejette NaN/Inf et canonise-0. Chaque invocation crée sous le staging appelant un espace de travail privé neuf, sans réemployer scène, profondeur, cache ou sortie antérieure. Le PLY par défaut OpenMVS v2.4.0, binaire little-endian, est validé avec listesview_indices/view_weightsbornées, nombres indépendants de la locale, en-tête <= 1 MiB en octets bruts (CRLF = deux octets), lignes <= 64 KiB, LF/CRLF acceptés et CR seul malformé rejeté ; le PLY fusionné est requis en mode de fusion 0. Une coordonnée source undistordue non finie estINVALID_SOURCE_IMAGE, une pose snapshot invalide resteINVALID_SNAPSHOT. Capacité CPU-only conditionnelle et--max-threadssupporté ; bornes locales. Le SHA-256 source est complet et borné à 1 GiB par fichier régulier, sans budget agrégé du jeu de sources ; le hashage des deux binaires backend relève d'un budget partagé distinct. Sans nouveau sous-système. Restent différés : publication Project DB/durable, Task Runtime, Queue/Governor,ResourceEstimate, annulation, mesh, texturing, viewer, scratch/SSD et infrastructure backend généralisée. - 📋 Mesh
- 📋 Contraintes externes
- 📋 Consolidation
Étapes futures (LATER)
Phase 6 : Production
- ⏳ Viewer intégré
- ⏳ Publication live validée
- ⏳ Export multi-formats
- ⏳ Optimisations performances
Phase 7 : Avancé
- ⏳ Priorités entre tâches
- ⏳ Pools de workers multiples (CPU/GPU/IO)
- ⏳ DAG de dépendances complet
- ⏳ Parallélisme inter-tâches
Sujets exploratoires (RESEARCH)
- 🔬 Intégration avec des sources de données externes
- 🔬 Support de formats d'entrée variés
- 🔬 Optimisation pour machines à très faible mémoire
- 🔬 Distribution de calcul
Principes directeurs
- Stabilité avant performance : ne jamais saturer le système hôte
- Séquençage avant parallélisme : lots adaptatifs et workers uniques d'abord
- Réservation atomique : aucune exécution sans contrat valide
- Persistance progressive : chaque résultat doit pouvoir être repris
- Documentation vivante : la documentation suit le code, pas l'inverse
Vérification
Cette roadmap est vérifiée contre l'état réel du code. Les fonctionnalités déjà implémentées ne sont pas marquées comme NEXT ou LATER.