Guide utilisateur

Chapitre 2 — Inspecteur (Expert View)

Mode expert vide — Project Navigator à gauche (Images 0, Cameras, Log), viewport vide au centre, inspecteur à droite avec sections Presets / Training Configuration / Enhancements / Training Metrics
Mode expert vide — Project Navigator à gauche (Images 0, Cameras, Log), viewport vide au centre, inspecteur à droite avec sections Presets / Training Configuration / Enhancements / Training Metrics

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 »).

Inspecteur avec 60 images flowers chargées — la sidebar Image affiche les premiers noms de fichiers frame_0001.jpg etc., en-tête « 60 images ready »
Inspecteur avec 60 images flowers chargées — la sidebar Image affiche les premiers noms de fichiers 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 en cours d'entraînement — viewport en direct affichant la reconstruction du bouquet flowers, barre de métriques en bas (Loss / LR / Gaussian-Count / itérations), carte Preset « Preview » avec badge « Modified » si paramètres ajustés
Inspecteur en cours d'entraînement — viewport en direct affichant la reconstruction du bouquet flowers, barre de métriques en bas (Loss / LR / Gaussian-Count / itérations), carte Preset « Preview » avec badge « Modified » si paramètres ajustés

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 fin d'entraînement — viewport montrant la reconstruction du bouquet flowers terminée (2 991 gaussiennes après 5K itérations en 13 s), barre de titre « Training Complete — 2 991 Gaussians »
Inspecteur après fin d'entraînement — viewport montrant la reconstruction du bouquet flowers terminée (2 991 gaussiennes après 5K itérations en 13 s), barre de titre « Training Complete — 2 991 Gaussians »

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…

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

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)

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)

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…

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…

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)

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… »

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 »

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 »

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)

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)

Crop section Configuration d'entraînement uniquement
Crop section Configuration d'entraînement uniquement — Camera Alignment, Densification, Max Iterations / Densify Until, SSIM Weight, Render Scale

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

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)

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

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

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

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

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)

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

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

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

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)

Crop section Enhancements uniquement
Crop section Enhancements uniquement — Post-Training Compactification, MetalFX Spatial Upscaling, MPS Lanczos Scaling, Perceptual Loss

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

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

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

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

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)

Crop section Training Metrics après un entraînement terminé
Crop section Training Metrics après un entraînement terminé sur Bouquet — tableau avec métriques d'entraînement (Iteration, Loss, SSIM Loss, Combined Loss, Gaussian Count, Learning Rate, Elapsed, ETA)

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

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

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

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

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

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

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

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

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

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)

Crop section Loss History uniquement
Crop section Loss History uniquement après un entraînement terminé — Current, Min, courbe bleue de loss, et en dessous chart Gaussian Count en orange

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

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

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

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 couranteSectionIDs des contrôles
Charger un setup préfabriquéPréréglagesI7 (clic sur la ligne)
Enregistrer son propre setupPréréglagesI1 → I2 → I4
Partager un setupPréréglagesI5 (Export) ou I6 (Import)
Changer de backend SfMConfiguration d'entraînementI12 (voir chap. 9)
Images vidéo sans focale EXIFConfiguration d'entraînementI13 (FOV Override)
Performance COLMAPConfiguration d'entraînementI14
Classic à MCMCConfiguration d'entraînementI15
Faire tourner plus longtempsConfiguration d'entraînementI18 + I20 (couplés via I19)
Diviser le temps GPU par deuxConfiguration d'entraînementI22 (Render Scale à 50 %)
Qualité MCMC +6 %Configuration d'entraînementI16 (MCMC Quality)
Scène outdoor avec beaucoup de pointsConfiguration d'entraînementI17 (Auto-scale by scene)
Configurer chemin COLMAPConfiguration d'entraînementI23 / I24 / I25
Exports plus petitsEnhancementsI26
Viewport plus netEnhancementsI27 (MetalFX)
Alternative à MetalFXEnhancementsI28 (MPS Lanczos)
Détail fin sur structures délicatesEnhancementsI29 (Perceptual Loss 0.05-0.1)
Surveiller l'entraînementMétriquesI30, I36, I38
Estimer la qualité tôtMétriquesI31 (Loss < 0.05 après 5K = bien)
Soupçon de problème SfMMétriques + Diagramme de lossI31 + I39 (Loss > 0.08 après 5K)
Convergence vs blocageDiagramme de lossI39 + I40
Problème de densificationDiagramme de lossI41 (courbe Gaussian descend → bug)