Chapitre 2 — Inspecteur (Expert View)

Inspecteur vide avant import : la sidebar gauche affiche le compteur Images 0 et l'indication « Drop images here / or tap + to import ». L'inspecteur à droite est pleinement fonctionnel mais les préréglages sont seulement informatifs (aucun entraînement actif). Le préréglage par défaut « Preview » (5K iters) est marqué. Camera Alignment sur Apple Photogrammetry, Densification Classic, SSIM Weight 0.20, Render Scale 50 %. États vides dans Training Metrics (« Start training to see live metrics ») et Loss History (« Loss curve will appear during training »).

frame_0001.jpg etc., en-tête « 60 images ready »Inspecteur après import : statut d'en-tête « 60 images ready ». La sidebar Image liste les 60 images importées (frame_0001.jpg à frame_0945.jpg, une image sur 16 du dataset 960-cam du bouquet comme sous-ensemble pour des itérations rapides). La logique auto-render-scale vérifie la résolution d'image (1536×2048 = 3,1 MP) et ajuste Render Scale en conséquence. Le bouton Play (vert, en bas à gauche) est désormais actif et démarre l'entraînement avec le préréglage actif.

Inspecteur pendant l'entraînement : la barre de titre affiche la progression globale « RadianceKit — Training NN % ». Le viewport rend la reconstruction gaussienne en cours en temps réel (actualisé toutes les 50 itérations — intervalle de Live Preview réglable dans Settings → General → Training → Live Preview). Barre de métriques sous le viewport : loss courant, learning rate, nombre de gaussiennes et compteur d'itérations (par ex. 1 600 / 5 000 avec le préréglage Preview). La carte de préréglage « Preview » de l'inspecteur arbore le badge « Modified » dès qu'un paramètre diverge du défaut intégré. La sidebar « Log » collecte les événements SfM et d'étape d'entraînement.

Inspecteur après l'entraînement : la barre de titre affiche le nombre final de gaussiennes (ici 2 991 — très compact, parce que la scène synthétique de bouquet Blender sur fond clair a une géométrie simple). Le viewport montre le nuage de points fini — navigation orbitale par glisser active (rotation autour du centre de scène). La section Training Metrics est maintenant remplie des valeurs finales, le Loss History Chart montre l'évolution sur les 5 000 itérations. La section Export en bas est maintenant active (tous les boutons de format activés).
L'inspecteur est la barre latérale droite en mode expert (⌘2). Il regroupe tous les paramètres pertinents pour l'entraînement en cinq sections repliables : Préréglages, Configuration d'entraînement, Enhancements, Métriques et Diagramme de loss. Chaque section se replie en cliquant sur l'en-tête, l'ordre peut être réagencé par glisser-déposer (InspectorView.swift:81-97). Par défaut, toutes les sections sont visibles ; l'app-state mémorise les préférences de pliage et d'ordre à travers les redémarrages d'app.
Une série de contrôles de l'inspecteur apparaît aussi sous forme quasi identique dans les Réglages (chapitre 3) — typiquement backend SfM, Sky Masking et défauts similaires. La séparation est voulue : les Réglages fournissent le modèle global de l'app pour les nouveaux projets, l'inspecteur écrase ces valeurs pour le projet actuellement ouvert. Qui connaît la logique d'un côté peut utiliser l'autre les yeux fermés.
La colonne gauche en mode expert — le Project Navigator — ne fait pas partie de l'inspecteur mais en est le voisin direct. On y sélectionne par clic les images importées, on peut les prévisualiser en Quick Look avec la barre d'espace et les supprimer via le bouton moins ou la touche Suppr (avec Cmd-Z pour annuler). L'inspecteur suit la sélection actuelle de la sidebar avec des informations de détail contextuelles, mais les cinq sections principales restent toujours visibles.
Section Préréglages (I1–I11)
La section Préréglages est la voie la plus rapide pour appliquer une configuration éprouvée. Les préréglages intégrés (Classic, MCMC, Scene-Class) fournissent des points de départ reproductibles issus de 560+ expériences documentées ; vos propres préréglages peuvent être enregistrés, exportés, importés et partagés. La liste est groupée par catégories (Classic, MCMC, SceneClass, Custom) et plus d'une catégorie peut être dépliée à la fois. Via le menu contextuel (clic droit sur une ligne), Export, Duplicate et — pour les préréglages personnels — Delete sont accessibles.
I1Bouton Save…
OÙ
Inspecteur → Section Préréglages → bouton Save… (barre d'action en bas).
TECHNIQUE
Ouvre un popover avec champ de texte et boutons Save/Cancel. L'état actuel de TrainingConfig est persisté comme nouveau préréglage personnalisé (encodé en JSON, enregistré globalement à l'app). L'opération de save copie les 81 paramètres d'entraînement plus la stratégie de densification actuelle. Le préréglage atterrit automatiquement dans la catégorie Custom, indépendamment du préréglage intégré dont il est dérivé. Les noms vides et les entrées uniquement whitespace sont rejetés. Les noms déjà existants ne sont pas refusés — chaque préréglage a son ID interne propre, les doublons de noms sont techniquement autorisés mais pratiquement déroutants.
I2Champ Preset Name
OÙ
Popover Save → champ de texte « Preset Name ».
TECHNIQUE
Champ de texte simple à bordure arrondie, forme large. La valeur est reprise comme nom de préréglage lors du clic sur Save. Aucune limite de longueur dans l'UI, mais le nom enregistré doit être encodable en JSON et affichable dans les listes UI — emoji et caractères accentués fonctionnent. Le contenu est automatiquement remis à zéro à l'ouverture du popover. Le bouton Save reste désactivé tant que le champ est vide après trim. Il n'y a pas d'auto-suggest ni de pré-remplissage avec le nom du préréglage actuellement actif.
I3Bouton Cancel (dialogue Save)
OÙ
Popover Save → bouton Cancel (à gauche).
TECHNIQUE
Ferme le popover sans enregistrer. Rejette le contenu du champ de texte — il sera de nouveau remis à zéro à la prochaine ouverture par la logique du bouton Save… (I1). Style de bouton standard, pas de dialogue de confirmation, pas de raccourcis. La TrainingConfig actuelle reste inchangée puisque le chemin Save n'a même pas été exécuté.
I4Bouton Save (dialogue Save)
OÙ
Popover Save → bouton Save (à droite, style proéminent).
TECHNIQUE
Déclenche la persistance proprement dite. Revérifie qu'un nom non vide est présent (check défensif) puis écrit la TrainingConfig actuelle en JSON dans le stockage de l'app. Ferme ensuite le popover. Mis en valeur en bleu, désactivé tant que le champ est vide. Si l'enregistrement échoue (par ex. parce que le stockage de l'app est plein — très peu probable), il n'y a actuellement pas de dialogue d'erreur visible ; le préréglage n'apparaîtrait simplement pas au prochain démarrage.
I5Bouton Export…
OÙ
Inspecteur → Section Préréglages → barre d'action → bouton Export….
TECHNIQUE
Exporte le préréglage actuellement sélectionné comme fichier .radiancepreset (JSON en interne). Désactivé si aucun préréglage n'est sélectionné. Au clic, l'app ouvre un dialogue Save avec le nom de fichier prédéfini (nom du préréglage + extension .radiancepreset). Le format enregistré contient la TrainingConfig complète plus les métadonnées (nom, catégorie, ID, flag built-in). Le double-clic dans le Finder ouvre l'app — mais pas automatiquement l'import ; l'utilisateur doit utiliser le bouton Import (I6).
I6Bouton Import…
OÙ
Inspecteur → Section Préréglages → barre d'action → bouton Import….
TECHNIQUE
Ouvre un dialogue de fichier qui n'autorise que des fichiers .radiancepreset (sélection multiple désactivée). À la sélection, le fichier JSON est chargé, validé et inséré dans la catégorie Custom — avec un nouvel ID interne pour éviter les collisions avec les built-ins. L'import définit automatiquement la catégorie sur Custom, même si le préréglage exporté était à l'origine un built-in. Les fichiers corrompus ou incompatibles avec une version de schéma plus ancienne sont silencieusement rejetés, sans dialogue d'erreur (le journal console donne cependant des indications).
I7Ligne de préréglage (activation par clic)
OÙ
Inspecteur → Section Préréglages → chaque ligne de préréglage dans chaque catégorie.
TECHNIQUE
Un clic sur une ligne de préréglage remplace tous les champs de la TrainingConfig par les valeurs du préréglage, mémorise l'ID du préréglage actif et remet le statut Modified à zéro. La coche d'activation devant la ligne n'apparaît que si le préréglage est sélectionné ET non modifié. Dès qu'une valeur de la TrainingConfig est changée (curseur, stepper, toggle dans d'autres sections de l'inspecteur), un badge orange « Modified » apparaît derrière le nom. Les préréglages intégrés ne peuvent pas être écrasés — en cas de modification, vous devez créer une copie personnelle via le bouton Save (I1).
I8Menu contextuel « Export… »
OÙ
Clic droit sur chaque ligne de préréglage → première entrée « Export… ».
TECHNIQUE
Fonctionnalité identique à I5 (bouton Export…) mais plus directement accessible — sans que le préréglage doive être sélectionné avant. Exporte directement le préréglage cliqué dans la ligne. Fonctionne de la même façon pour toutes les catégories de préréglages (built-in ou Custom), sans restriction. L'export contient le flag built-in et la catégorie d'origine, mais à la réimportation la catégorie est remappée sur Custom comme décrit sous I6.
I9Menu contextuel « Duplicate »
OÙ
Clic droit sur chaque ligne de préréglage → deuxième entrée « Duplicate ».
TECHNIQUE
Clone le préréglage dans la catégorie Custom. Crée un nouvel ID interne, ajoute « Copy » au nom et enregistre la copie. Fonctionne aussi pour les préréglages intégrés — le clone est alors éditable. L'original reste intact. La TrainingConfig est copiée valeur par valeur (roundtrip JSON), de sorte qu'aucune liaison de référence n'existe entre original et copie.
I10Menu contextuel « Delete »
OÙ
Clic droit sur les lignes de préréglages personnels → dernière entrée « Delete » (rouge, destructive).
TECHNIQUE
Visible uniquement pour les préréglages Custom. Les built-ins ne peuvent pas être supprimés. L'entrée est marquée destructive, apparaît en rouge dans le menu contextuel et est séparée par un divider pour qu'on ne la clique pas par mégarde. Il n'y a pas de dialogue de confirmation — un clic supprime le préréglage immédiatement. Le préréglage supprimé n'est pas récupérable (Cmd-Z ne fonctionne pas ici — l'Undo n'existe dans le build actuel que pour la liste d'images, pas pour les opérations sur les préréglages). Si le préréglage supprimé était actif, la TrainingConfig actuelle reste inchangée, seule la sélection active est mise à null.
I11En-tête de catégorie (déplier/replier)
OÙ
Inspecteur → Section Préréglages → chaque en-tête de catégorie (Classic, MCMC, SceneClass, Custom).
TECHNIQUE
Statut plié par catégorie avec un défaut différent : Classic démarre déplié, MCMC, SceneClass et Custom démarrent repliés. Le statut n'est pas persisté — au redémarrage de l'app, toutes les catégories sont de nouveau dans leur état par défaut. La flèche chevron pivote en animation. Le chiffre à droite dans l'en-tête indique le nombre de préréglages dans cette catégorie. La zone de clic couvre tout l'en-tête.
Section Configuration d'entraînement (I12–I22)

Ici atterrissent les leviers centraux : quel backend SfM doit calculer, comment travaille la densification, combien d'itérations, quel poids SSIM. En stratégie MCMC apparaissent deux toggles supplémentaires (« MCMC Quality » et « Auto-scale by scene »), masqués en mode Classic. Avec le backend Native SfM s'ajoute le champ FOV Override, nécessaire seulement pour des images vidéo sans focale EXIF.
I12Sélecteur Camera Alignment
OÙ
Inspecteur → Configuration d'entraînement → Camera Alignment (sélecteur segmenté en haut).
TECHNIQUE
Sélecteur segmenté avec deux options : Apple Photogrammetry et Native (Beta). La sélection détermine le backend SfM utilisé à la prochaine reconstruction caméra. Elle influence en même temps les autres éléments de l'inspecteur visibles : Native affiche en plus le FOV Override (I13), nécessaire seulement pour les images vidéo sans EXIF.
I13Champ FOV Override (Native SfM)
OÙ
Inspecteur → Configuration d'entraînement → FOV Override (visible uniquement si Camera Alignment = Native).
TECHNIQUE
Champ texte numérique (plage 0-170°), défaut 0 = détermination automatique depuis l'EXIF ou heuristique. La saisie manuelle est nécessaire quand les images d'entrée ont été extraites d'une vidéo qui ne contient pas de métadonnées de focale. Valeurs typiques : iPhone Wide ≈ 73°, DJI Mavic Wide-Crop ≈ 70°, drone avec capteur plein format ≈ 84°. La valeur est clampée sur [0, 170]. Affecte uniquement le pipeline SfM natif (Q4/Q5) ; Apple Photogrammetry ignore complètement cette valeur.
I15Sélecteur Densification
OÙ
Inspecteur → Configuration d'entraînement → Densification (sélecteur segmenté, toujours visible).
TECHNIQUE
Bascule entre les deux stratégies de densification : Classic (procédé 3DGS original avec clone/split/prune et seuil de gradient) et MCMC (Stochastic Gradient Langevin Dynamics avec relocation, NeurIPS 2024). Au passage de Classic à MCMC, l'app fixe automatiquement les champs spécifiques MCMC sur des valeurs par défaut éprouvées. La sélection détermine en plus quels éléments de l'inspecteur sont visibles — en MCMC, I16/I17 apparaissent. Effet détaillé des champs au chapitre 6, T11–T16 (Classic) et T61–T73 (MCMC).
I16Toggle MCMC Quality
OÙ
Inspecteur → Configuration d'entraînement → MCMC Quality (uniquement si Densification = MCMC).
TECHNIQUE
Bascule la gradient accumulation sur 2 étapes (actif) ou 1 étape (inactif). Accumule les gradients de deux vues caméra consécutives avant le step d'optimiseur. Empiriquement réduit l'erreur L1 finale d'environ 6 % au prix d'un temps doublé. Affecte uniquement l'entraînement.
I17Toggle Auto-scale by scene
OÙ
Inspecteur → Configuration d'entraînement → Auto-scale by scene (uniquement en MCMC).
TECHNIQUE
Si actif, met à l'échelle la limite supérieure effective Max-Gaussians avec le nombre de points d'init SfM × MCMC-cap-multiplier (défaut 3.0). Si désactivé, seule la base s'applique strictement. Introduit pour v1.4.5 parce que de grandes prises outdoor avec plus de 1000 images et une densité de points SfM élevée correspondante affamaient la densification avec le défaut rigide de cap 150K.
I18Stepper Max Iterations
OÙ
Inspecteur → Configuration d'entraînement → GroupBox → Max Iterations.
TECHNIQUE
Stepper avec plage 1 000–100 000, pas de 1 000. Détermine le nombre total d'itérations d'optimiseur. Sweet spots empiriques : 20K (Classic Balanced, L1 ≈ 0.028), 40K (Classic Quality, L1 ≈ 0.023), 200K (MCMC Full, L1 ≈ 0.0246). À la modification, si la fonction Link (I19) est active, Densify Until est tiré proportionnellement.
I19Bouton Link/Unlink (Densify ↔ Iterations)
OÙ
Inspecteur → Configuration d'entraînement → GroupBox → petit bouton Link entre Max Iterations et Densify Until.
TECHNIQUE
Bouton bascule qui fige le rapport Densify Until / Max Iterations. Défaut linked. Un rapport typique est 0.5.
I20Stepper Densify Until
OÙ
Inspecteur → Configuration d'entraînement → GroupBox → Densify Until.
TECHNIQUE
Stepper avec plage 500–50 000, pas de 500. Détermine l'index d'itération à partir duquel aucune nouvelle gaussienne n'est plus ajoutée par clone/split (Classic) ou relocation (MCMC). Valeurs typiques : 15K (pour Max-Iter 30K), 20K (pour 40K), 100K (pour 200K MCMC).
I21Slider SSIM Weight
OÙ
Inspecteur → Configuration d'entraînement → GroupBox → SSIM Weight.
TECHNIQUE
Slider 0.0–1.0 par pas de 0.05. Mélange L1-Loss (0.0) et SSIM-Loss (1.0). Défaut 0.2 est la valeur du papier 3DGS original (Kerbl 2023). Le calcul SSIM tourne dans le shader avec une fenêtre gaussienne 11×11. À 0.0 (L1 seulement), l'entraînement est environ 8-12 % plus rapide.
I22Slider Render Scale
OÙ
Inspecteur → Configuration d'entraînement → GroupBox → Render Scale.
TECHNIQUE
Slider 0.25–1.0 par pas de 0.25. Met à l'échelle la résolution de rendu d'entraînement par rapport à la taille de l'image source. 50 % réduit le temps GPU d'environ 75 %. Sous le slider apparaît un affichage live de résolution en MP. La recommandation vise environ 3 MP — la plage la plus efficacement traitable par les GPU Apple Silicon.
Section Enhancements (I26–I29)

La section Enhancements regroupe quatre fonctionnalités qui améliorent la qualité d'image sans modifier la boucle d'entraînement centrale. Les trois premières (I26-I28) sont des étapes post-entraînement ou viewport. La Perceptual Loss (I29) est un composant d'entraînement activé pendant l'entraînement comme terme de loss supplémentaire.
I26Toggle Post-Training Compactification
OÙ
Inspecteur → Enhancements → Post-Training Compactification.
TECHNIQUE
Active le post-processing V443 : à la fin des itérations d'entraînement, les gaussiennes d'opacité inférieure à 0.01 sont supprimées. Réduit la taille de fichier d'environ 55-58 % sans perte visible. Tourne comme passe GPU compact en fractions de seconde à quelques secondes.
I27Toggle MetalFX Spatial Upscaling
OÙ
Inspecteur → Enhancements → MetalFX Spatial Upscaling.
TECHNIQUE
Active l'upscaler spatial MetalFX d'Apple dans le renderer viewport. Si la résolution d'entraînement est plus basse que la taille du viewport, MetalFX met à l'échelle l'image rendue par ML. Fournit les résultats les plus nets. Prioritaire sur MPS Lanczos (I28). Overhead d'environ 1-2 ms par frame sur GPU M3. Agit uniquement sur le viewport live, pas sur les exports rendus.
I28Toggle MPS Lanczos Scaling
OÙ
Inspecteur → Enhancements → MPS Lanczos Scaling.
TECHNIQUE
Active Metal Performance Shaders d'Apple avec resampling Lanczos comme upscaler viewport. Lanczos est un resampling classique avec filtre sinc à 8 taps. Ignoré si MetalFX (I27) est aussi actif. Overhead minimal (<0.5 ms par frame) mais qualité inférieure à MetalFX.
I29Slider Perceptual Loss
OÙ
Inspecteur → Enhancements → Perceptual Loss.
TECHNIQUE
Slider 0.0–0.2 par pas de 0.01, affichage à 0.0 comme « Off ». Active un terme de loss supplémentaire qui compare un blur gaussien multi-échelle du rendu avec l'image ground-truth (3 échelles). Implémentation V460. Une valeur de 0.05-0.1 améliore le score L1 de quelques pourcents mais coûte environ 5 % de temps. Au-dessus de 0.15, l'entraînement devient instable.
Section Métriques (I30–I38)

Pendant qu'un entraînement tourne, la section Métriques affiche neuf valeurs live de la boucle d'entraînement. Avant le démarrage d'un entraînement, la section est vide. Toutes les valeurs sont actualisées toutes les ~30 itérations. La section est en lecture seule. Pour une analyse plus profonde, utilisez les logs JSONL dans ~/Documents/RadianceKit/Logs/.
I30Iteration
OÙ
Inspecteur → Métriques → Iteration. Lecture seule.
TECHNIQUE
Affichage au format « 4523 / 40000 » — itération courante sur itérations totales planifiées. Le deuxième nombre correspond à la valeur Max-Iterations au moment du démarrage.
I31Loss
OÙ
Inspecteur → Métriques → Loss. Lecture seule.
TECHNIQUE
Valeur flottante avec six décimales. Mesure le loss combiné L1+SSIM plus optionnellement Perceptual Loss. Valeurs finales typiques : Classic Quality 40K iters 0.022–0.025 ; MCMC Full 200K 0.024–0.028 ; drone outdoor 30K 0.030–0.060 ; appartements 0.018–0.025. Au-dessus de 0.10 après 5K → problème SfM.
I32Learning Rate
OÙ
Inspecteur → Métriques → Learning Rate. Lecture seule.
TECHNIQUE
Affichage en notation scientifique. Learning rate courante pour les paramètres de position. Démarre à 1.6e-4 et décroît exponentiellement à ~1.6e-6 à la fin.
I33SH Degree
OÙ
Inspecteur → Métriques → SH Degree. Lecture seule.
TECHNIQUE
Entier 0-3. Degré de spherical harmonics pour la représentation couleur. Démarre à 0 et monte progressivement à 3, typiquement aux itérations 1000, 2000 et 3000.
I34Gaussians
OÙ
Inspecteur → Métriques → Gaussians. Lecture seule.
TECHNIQUE
Nombre actuel de gaussiennes dans le modèle. Classic : démarre aux init SfM (50K-300K), croît jusqu'à Densify Until. MCMC : monte jusqu'au cap, puis relocation. En MCMC, le nombre tombe à < 60 % du cap → indicateur de collapse.
I35GPU Memory
OÙ
Inspecteur → Métriques → GPU Memory. Lecture seule.
TECHNIQUE
Estimation de la consommation buffer en Gaussian-Count × 616 octets. Ne capture pas l'overhead renderer — la consommation réelle est 2-3× supérieure. À 500K gaussiennes : affiché ~290 Mo, réel ~700 Mo.
I36Speed
OÙ
Inspecteur → Métriques → Speed. Lecture seule.
TECHNIQUE
Itérations par seconde. Moyenne glissante sur les ~100 dernières itérations. Classic 20K @ 1.0 sur M3 Max : 25-35 it/s. À 0.5 : 80-120 it/s. À 1M+ gaussiennes : < 10 it/s. Chutes soudaines → thermal throttling.
I37Elapsed
OÙ
Inspecteur → Métriques → Elapsed. Lecture seule.
TECHNIQUE
Temps écoulé en m:ss ou h:mm:ss. Mesure uniquement le temps d'entraînement pur. C'est du wall-clock, pas du temps CPU.
I38ETA
OÙ
Inspecteur → Métriques → ETA. Lecture seule.
TECHNIQUE
Temps restant estimé. Calcul : (Max Iterations − itération actuelle) / it/s. Ne tient pas compte du ralentissement typique en fin — réellement, la fin atterrit 10-20 % au-dessus.
Section Diagramme de loss (I39–I41)

La section Diagramme de loss visualise l'évolution de l'entraînement dans le temps. Elle se compose de deux charts : un chart de courbe de loss (grand, en haut, bleu) et un chart Gaussian Count (plus petit, en bas, orange). Les deux sont construits en direct pendant l'entraînement.
I39Affichage Current Loss
OÙ
Inspecteur → Diagramme de loss → label gauche. Lecture seule.
TECHNIQUE
Valeur flottante du dernier point sample de loss, formatée avec quatre décimales. Identique à I31 mais en plus compact.
I40Affichage Min Loss
OÙ
Inspecteur → Diagramme de loss → label droit « Min: 0.0245 » (vert). Lecture seule.
TECHNIQUE
Minimum de toutes les valeurs de loss jamais vues. Recomputé en direct depuis l'historique. La ligne pointillée verte au bord inférieur du chart marque cette position Y.
I41Chart Gaussian Count
OÙ
Inspecteur → Diagramme de loss → deuxième chart en dessous (orange). Lecture seule.
TECHNIQUE
Diagramme linéaire du nombre de gaussiennes sur les itérations. En Classic : montée continue jusqu'à Densify Until, puis plate. En MCMC : montée raide jusqu'au cap, puis ligne horizontale. Si la courbe descend → bug MCMC-Collapse.
Comment lit-on la courbe de loss ?
Le chart de loss est l'outil de diagnostic le plus important de l'inspecteur. La forme saine typique est une chute rapide dans les 1000-3000 premières itérations (d'environ 0.15 à environ 0.05), suivie d'une descente lente et régulière jusqu'à la fin (jusqu'à 0.020-0.030).
Que signifie un plateau sur le loss ? Si la courbe reste plate sur plusieurs milliers d'itérations, deux lectures possibles : (a) L'entraînement a « convergé » — c'est « fini ». (b) L'entraînement « bloque » — optimisation stagnante. Distinguer : si la valeur est dans une plage typiquement bonne (0.020-0.030 intérieur/objet, 0.040-0.060 outdoor) et la courbe plate depuis 5K, c'est convergé. Si nettement plus élevée (par ex. 0.08), ça bloque.
Attention plateau Gaussian ≠ plateau loss. Un plateau dans le nombre de gaussiennes signifie seulement que la densification a cessé d'ajouter de nouveaux points — pas que l'entraînement est terminé.
Règle d'arrêt : si la courbe de loss est au-dessus de 0.08 après 5000+ itérations et ne descend plus, il y a de fortes chances que la reconstruction SfM soit foireuse. Abandonnez, regardez au chapitre 9, basculez le cas échéant, puis redémarrez.
Quand utiliser l'inspecteur ?
Référence rapide : quelle section + quels contrôles pour quel cas d'usage typique ?
| Tâche courante | Section | IDs des contrôles |
|---|---|---|
| Charger un setup préfabriqué | Préréglages | I7 (clic sur la ligne) |
| Enregistrer son propre setup | Préréglages | I1 → I2 → I4 |
| Partager un setup | Préréglages | I5 (Export) ou I6 (Import) |
| Changer de backend SfM | Configuration d'entraînement | I12 (voir chap. 9) |
| Images vidéo sans focale EXIF | Configuration d'entraînement | I13 (FOV Override) |
| Performance COLMAP | Configuration d'entraînement | I14 |
| Classic à MCMC | Configuration d'entraînement | I15 |
| Faire tourner plus longtemps | Configuration d'entraînement | I18 + I20 (couplés via I19) |
| Diviser le temps GPU par deux | Configuration d'entraînement | I22 (Render Scale à 50 %) |
| Qualité MCMC +6 % | Configuration d'entraînement | I16 (MCMC Quality) |
| Scène outdoor avec beaucoup de points | Configuration d'entraînement | I17 (Auto-scale by scene) |
| Configurer chemin COLMAP | Configuration d'entraînement | I23 / I24 / I25 |
| Exports plus petits | Enhancements | I26 |
| Viewport plus net | Enhancements | I27 (MetalFX) |
| Alternative à MetalFX | Enhancements | I28 (MPS Lanczos) |
| Détail fin sur structures délicates | Enhancements | I29 (Perceptual Loss 0.05-0.1) |
| Surveiller l'entraînement | Métriques | I30, I36, I38 |
| Estimer la qualité tôt | Métriques | I31 (Loss < 0.05 après 5K = bien) |
| Soupçon de problème SfM | Métriques + Diagramme de loss | I31 + I39 (Loss > 0.08 après 5K) |
| Convergence vs blocage | Diagramme de loss | I39 + I40 |
| Problème de densification | Diagramme de loss | I41 (courbe Gaussian descend → bug) |