docs: define live capture guidance roadmap

This commit is contained in:
fy59 2026-08-28 05:33:11 +02:00
parent edbc6e72e9
commit ba21f5eb83
2 changed files with 246 additions and 51 deletions

View file

@ -71,7 +71,10 @@ persistante, enrichissable et versionnable.
- publication durable dense/mesh et scratch SSD externe optionnel gouverné ; - publication durable dense/mesh et scratch SSD externe optionnel gouverné ;
- workflow TUI de confirmation/progression et sources mixtes multi-ScanSet ; - workflow TUI de confirmation/progression et sources mixtes multi-ScanSet ;
- vidéo/keyframes, coverage assistance, viewer et exports ; - vidéo/keyframes et **Capture Guidance / Live Coverage** : analyse et viewer de
couverture, suggestions de prises de vue puis assistance live, après
reconstruction mature ;
- exports et publication live ;
- DAG général, pools multiples et parallélisme inter-tâches restent différés. - DAG général, pools multiples et parallélisme inter-tâches restent différés.
## Architecture ## Architecture

View file

@ -175,72 +175,264 @@ pipeline scientifique parallèle :
asset vidéo SOURCE asset vidéo SOURCE
→ timeline et métadonnées déterministes → timeline et métadonnées déterministes
→ extraction bornée et déterministe de keyframes → extraction bornée et déterministe de keyframes
→ filtres blur/qualité/redondance → filtres blur/netteté/redondance
candidats Capture diversité de mouvement et de point de vue
→ représentations image sélectionnées et immuables → représentations frame sélectionnées / candidats Capture
→ pipeline scientifique Lardon3D existant → pipeline scientifique Lardon3D existant
``` ```
Le futur contrat devra lier chaque frame à l'asset vidéo source, définir une Le futur contrat devra lier chaque frame à l'asset vidéo source, définir une
identité d'extraction reproductible et retenir son timestamp. La sélection identité d'extraction reproductible et retenir le timestamp exact de chaque
combinera espacement temporel, netteté, rejet des frames redondantes, diversité frame. Les sujets de conception incluent espacement temporel, netteté, rejet
de mouvement/point de vue et couverture utile. Exécution, buffers et nombre de des frames redondantes, diversité de mouvement/point de vue, traitement borné,
frames resteront bornés ; reprise/checkpoint et admission appartiendront au reprise et admission par le Resource Governor. L'analyse de couverture pourra
Task Runtime et au Resource Governor existants. Il n'existera **aucun pipeline ultérieurement contribuer à la sélection :
SfM séparé pour la vidéo** : les keyframes validées rejoignent les mêmes
Capture, images, features, matching, tracks, Sparse SfM et étapes aval que les
photos Sony, Samsung ou autres.
### Coverage Viewer et assistance à l'acquisition — PLANNED
Cette frontière passive de visualisation et d'aide analysera une reconstruction
publiée afin d'identifier où des photographies supplémentaires sont réellement
nécessaires. Ses entrées pourront inclure poses caméra, provenance Capture,
géométrie sparse/dense, nombre d'observations par track, densité de features,
qualité de reprojection, triangulation/parallaxe, visibilité de surface et
historique des ScanSets.
Overlays planifiés :
- positions et frustums des caméras ;
- régions bien couvertes et faiblement couvertes ;
- zones invisibles ou manquantes ;
- régions à faible diversité angulaire ou mauvaise parallaxe ;
- zones de reconstruction à faible confiance ;
- heatmap de couverture.
Les diagnostics devront produire des indications actionnables, par exemple :
```text ```text
cette région demande plus de photographies besoin de couverture actuel + trajectoire caméra / frames vidéo
cette région demande un autre angle de vue → retenir les frames apportant une information géométrique utile
le nombre d'images suffit mais la parallaxe est insuffisante
cette cavité ou face est visible depuis trop peu de Captures
``` ```
Toute recommandation dérivera d'évidence géométrique et de reconstruction, Cette relation reste un sujet de recherche et d'ingénierie ; aucune politique
jamais d'un nombre de fichiers, de basenames ou d'une heuristique d'identité. de sélection n'est gelée. Il n'existera **aucun second pipeline SfM propre à la
Le workflow itératif visé est : vidéo** : les keyframes validées rejoindront les mêmes Capture, provenance,
images, features, matching, tracks, Sparse SfM et étapes aval que les photos.
### Capture Guidance / Live Coverage — PLANNED, LONG TERME
Le but à long terme n'est pas seulement de reconstruire ce qui a été
photographié, mais de guider activement l'opérateur vers les photographies qui
manquent encore pour obtenir une reconstruction fiable. Cette capacité est
postérieure à une reconstruction suffisamment mature ; elle ne fait pas partie
de S3 et ne remplace pas la prochaine tranche d'exécution durable de campagne.
```text ```text
ScanSet N photographies existantes
→ reconstruction Lardon3D
→ analyse de qualité de couverture
→ régions faibles ou manquantes
→ localisation de la caméra courante
→ projection dans la Live View
→ photographies supplémentaires par l'opérateur
→ ingestion / mise à jour de reconstruction
→ mise à jour de couverture ↺
```
#### Dépendances et niveaux de maturité
L'ordre conceptuel est :
```text
Sparse SfM
→ calibration et poses caméra
→ géométrie dense / mesh lorsque nécessaire
→ métriques de couverture
→ viewer et localisation live
→ Capture Guidance / Live Coverage
```
Une première analyse peut s'appuyer sur la géométrie sparse et les tracks ; un
mesh dense n'est donc pas une condition universelle. Les niveaux suivants sont
des paliers de roadmap, **pas de nouveaux Gates** :
1. **Offline Coverage Analysis** — calculer les régions faibles ou manquantes
depuis une reconstruction existante.
2. **Coverage Viewer** — afficher géométrie, caméras, qualité de couverture et
zones faibles.
3. **Suggested Supplementary Viewpoints** — associer une région faible à une
direction ou un cône de points de vue suggéré.
4. **Live Camera Localization** — estimer la pose de la caméra courante par
rapport à la reconstruction.
5. **Live Coverage Overlay** — reprojeter la couverture dans le flux vidéo.
6. **Closed Acquisition Loop** — guider, capturer, transférer, ingérer,
reconstruire, réévaluer puis guider à nouveau.
#### Coverage Analysis — PLANNED
L'analyse estimera à quel point une région de surface ou de géométrie
reconstruite est soutenue par des observations photographiques. Ses entrées
potentielles comprennent :
- nombre de Captures observant la région, angle et diversité angulaire ;
- parallaxe disponible et diversité des points de vue ;
- résolution effective projetée sur la surface ;
- netteté, exposition et qualité d'image ;
- support features/tracks et qualité de reprojection/triangulation ;
- confiance de reconstruction, visibilité et occlusions ;
- provenance et historique des ScanSets.
Une expression telle que la suivante n'est qu'une intuition
**NON CONTRACTUELLE** :
```text
coverage_score = f(
observation_count,
angle_quality,
parallax_quality,
effective_resolution,
sharpness,
viewpoint_diversity,
reconstruction_confidence
)
```
Les métriques exactes, poids, seuils et normalisations nécessitent une
validation expérimentale ultérieure. Aucun score scientifique n'est défini ou
gelé par cette roadmap.
#### Coverage Viewer — PLANNED
Le Coverage Viewer ne sera pas un simple viewer de mesh : il servira à examiner
la qualité d'acquisition et de reconstruction. Les overlays futurs pourront
montrer positions, directions et frustums des caméras, surfaces bien ou mal
couvertes, zones jamais vues, trous de reconstruction, faible nombre
d'observations, diversité angulaire ou parallaxe insuffisante, support
features/tracks faible, reconstruction peu fiable et contribution par ScanSet.
Une heatmap pourrait par exemple utiliser rouge pour une photographie
supplémentaire requise, orange pour un angle médiocre, violet pour une parallaxe
insuffisante, jaune pour un problème de qualité d'image et l'affichage normal
pour une couverture satisfaisante. Ces couleurs, catégories et significations
sont **des exemples seulement** : elles ne sont ni choisies ni gelées.
Lardon3D reste TUI-first. La TUI conserve le contrôle du projet, du workflow et
du runtime. Une frontière visuelle/acquisition séparée pourra posséder
l'affichage vidéo, le rendu points/mesh, les frustums, overlays et indications
live. Son architecture finale n'est pas définie ici ; elle devra préserver
l'isolation du viewer, consommateur de snapshots validés sans accès aux buffers
workers mutables.
#### Suggested Supplementary Viewpoints — PLANNED
Le résultat recherché dépasse la coloration d'une surface défaillante :
```text
région de surface faible + direction caméra / cône de points de vue suggéré
```
Il pourra exprimer « cette région demande des photographies supplémentaires »,
« photographier depuis une direction plus oblique », « le nombre d'images est
suffisant mais la diversité des points de vue ne l'est pas », « cette cavité
est vue par trop peu de Captures » ou « la géométrie d'acquisition fournit une
parallaxe insuffisante ». La recommandation devra dériver d'évidence géométrique
et de reconstruction, jamais du nombre de fichiers, de basenames similaires ou
d'heuristiques arbitraires déconnectées de la géométrie. L'algorithme
d'optimisation du point de vue n'est pas encore défini.
#### Live Camera Localization — PLANNED
Live Coverage dépendra de la localisation d'une vue nouvelle/live par rapport
à une reconstruction existante. Les prérequis probables incluent calibration
caméra, reconstruction sparse et points 3D existants, extraction de features
sur la frame live, correspondances 2D↔3D, estimation de pose calibrée, confiance
de pose et perte/réacquisition gracieuse du tracking. Cette capacité pourra
réutiliser la géométrie Sparse SfM, mais elle n'est ni conçue ni implémentée à
ce jour.
#### Live Coverage et boucle d'acquisition — PLANNED
La couche temps réel est distincte de l'analyse offline. Le déroulé cible est :
1. construire une reconstruction initiale et calculer l'évidence de couverture ;
2. recevoir sur le PC la Live View via une capture HDMI ;
3. estimer la pose de la caméra courante dans la reconstruction ;
4. projeter les régions 3D faibles/manquantes dans la frame vidéo ;
5. indiquer les acquisitions supplémentaires nécessaires pendant que
l'opérateur déplace la caméra ;
6. déclencher une photographie et transférer RAW/JPEG par le chemin
d'acquisition ;
7. faire entrer les nouveaux assets/Captures dans la provenance Lardon3D
existante ;
8. mettre à jour reconstruction et couverture, puis retirer progressivement de
l'overlay les régions corrigées.
L'expérience visée est conceptuellement : « les observations
photogrammétriques sont insuffisantes ici ; prendre une photographie
supplémentaire approximativement depuis cette direction ».
#### Frontière caméra HDMI / USB
Le Sony A6000 fournit un exemple concret de matériel cible, sans définir une
architecture scientifique propre à Sony :
```text
Sony A6000 ── HDMI → capture device → Live View ───────────┐
└─ USB → contrôle / shutter / RAW+JPEG ───────┤
Lardon3D sur PC
live camera pose + reconstruction/geometry/coverage
reprojection et Live View overlay
```
Le calcul lourd, la reconstruction et le mesh restent sur le PC. La caméra est
principalement le capteur d'image, la source Live View et un dispositif
d'acquisition potentiellement contrôlable ; elle ne transporte ni n'exécute la
reconstruction. HDMI vise une Live View à faible latence. USB pourra selon les
capacités réelles de l'appareil fournir contrôle, déclenchement, métadonnées et
transfert RAW/JPEG. Tous les appareils ne partagent pas le même protocole : les
transports et contrôles spécifiques resteront à la frontière des adaptateurs
d'acquisition, hors de l'identité Capture gelée et du cœur scientifique.
Sony A6000, Samsung S21/mobile et futures caméras consommeront le modèle commun :
```text
Capture physique ↔ assets SOURCE ↔ représentations scientifiques sélectionnées
```
Capture Guidance consommera le modèle projet/reconstruction commun, sans fork
scientifique par device.
#### Boucle multi-ScanSet / Phase H
```text
ScanSet 1
→ reconstruction → reconstruction
→ analyse de couverture → analyse de couverture
→ viewer des zones manquantes/faibles → zones faibles/manquantes
→ acquisition supplémentaire → acquisition supplémentaire
→ nouveau ScanSet → ScanSet 2
→ alignement/enrichissement Phase H → ingestion / reconstruction
→ réévaluation de la couverture → alignement et enrichissement Phase H
→ couverture mise à jour
→ répétition si nécessaire
``` ```
Cette boucle reliera les acquisitions Sony A6000, Samsung/mobile, ScanSets Cette boucle est particulièrement importante quand un objet ne peut être
mixtes et futures keyframes vidéo sans fork par device. La sélection future de capturé en une seule passe. Elle réutilise Phase H v1 sans le redéfinir.
keyframes pourra utiliser la couverture déjà reconstruite pour favoriser des
points de vue réellement complémentaires.
Lardon3D reste TUI-first. Le Coverage Viewer demeure un consommateur passif de Pour une baie moteur, l'opérateur pourra à terme viser avec l'A6000 une bride,
snapshots validés et une frontière séparée d'assistance ; il ne transforme pas une cavité ou une face mal observée mise en évidence dans la Live View, se
l'application principale en GUI et ne lit jamais les buffers workers mutables. déplacer selon l'indication et ajouter une image avant ingestion et mise à jour
de la couverture. La valeur pratique est forte lorsque l'accès disparaîtra,
qu'un moteur ou composant doit être retiré, ou que le démontage modifiera la
scène : découvrir les photographies manquantes après coup pourrait être coûteux
ou impossible. Ce scénario motive la direction produit ; ce n'est pas un
contrat scientifique.
#### État futur et ordre de dépendance
Cette roadmap ne prétend implémenter aujourd'hui ni capture HDMI, contrôle USB,
pose live, projection de mesh, score ou heatmap de couverture, recommandation
automatique, ingestion vidéo, sélection de keyframes, ni reconstruction live
incrémentale. Ces capacités restent planifiées, ultérieures ou exploratoires.
L'ordre demeure sans ambiguïté :
```text
CURRENT NEXT
exécution durable de campagne (Task / Queue / Scheduler / Governor,
confirmations durables, progression et reprise)
→ INTÉGRATION RÉELLE
campagnes A6000 + S21 → pipeline scientifique → dense/mesh → publication
→ LATER
Coverage Analysis → Coverage Viewer → suggestions de points de vue
→ localisation live → intégration HDMI/USB → Capture Guidance / Live Coverage
```
Vidéo/keyframes pourra progresser en parallèle lors d'une phase ultérieure,
mais réutilisera toujours la même provenance Capture et le même pipeline
scientifique.
- **Maintenance projet** : vérification de provenance, assets orphelins, - **Maintenance projet** : vérification de provenance, assets orphelins,
scrub/réconciliation et réclamation sûre du scratch. Aucun asset immuable scrub/réconciliation et réclamation sûre du scratch. Aucun asset immuable