Uživatelská příručka

Kapitola 2 — Inspektor (Expert View)

Expertní režim prázdný — Project Navigator vlevo (Images 0, Cameras, Log), prázdný náhled uprostřed, Inspektor vpravo se sekcemi Presets/Training Configuration/Enhancements/Training Metrics
Expertní režim prázdný — Project Navigator vlevo (Images 0, Cameras, Log), prázdný náhled uprostřed, Inspektor vpravo se sekcemi Presets/Training Configuration/Enhancements/Training Metrics

Prázdný Inspektor před importem: Levý sidebar ukazuje Images counter 0 a drop hint „Drop images here / or tap + to import". Inspektor vpravo je plně funkční, ale předvolby jsou pouze informativní (žádný aktivní trénink). Výchozí předvolba „Preview" (5K iter) je označená. Camera Alignment na Apple Photogrammetry, densifikace Classic, SSIM Weight 0.20, Render Scale 50 %. Prázdné stavy v Training Metrics („Start training to see live metrics") a Loss History („Loss curve will appear during training").

Inspektor s 60 načtenými obrázky — Image sidebar ukazuje první názvy souborů frame_0001.jpg ff, hlavička '60 images ready'
Inspektor s 60 načtenými obrázky — Image sidebar ukazuje první názvy souborů frame_0001.jpg ff, hlavička „60 images ready"

Inspektor po importu: Status v hlavičce „60 images ready". Image sidebar listuje všech 60 importovaných framů (frame_0001.jpgframe_0945.jpg, každý 16. frame datasetu jako podmnožina pro rychlé iterace). Logika auto render scale kontroluje rozlišení obrazu (1536×2048 = 3.1 MP) a tomu odpovídajícím způsobem upravuje Render Scale. Play tlačítko (zelené, vlevo dole) je nyní aktivní a spouští trénink s aktivní předvolbou.

Inspektor uprostřed tréninku — Live náhled ukazuje rekonstrukci, metric bar dole (Loss / LR / Gaussian Count / Iterace), karta předvolby 'Preview' s 'Modified' odznakem pokud byly parametry upraveny
Inspektor uprostřed tréninku — Live náhled ukazuje rekonstrukci, metric bar dole (Loss / LR / Gaussian Count / Iterace), karta předvolby „Preview" s „Modified" odznakem pokud byly parametry upraveny

Inspektor během tréninku: Titulní lišta ukazuje globální postup „RadianceKit — Training NN %". Náhled renderuje běžící Gaussian rekonstrukci v reálném čase (každých 50 iterací aktualizováno — interval Live Preview lze nastavit v Settings → General → Training → Live Preview). Metric bar pod náhledem: aktuální Loss, Learning Rate, Gaussian Count a counter iterací (např. 1,600/5,000 u Preview předvolby). Karta předvolby Inspektoru „Preview" nese odznak „Modified", jakmile se jakýkoli parametr odchýlí od built-in defaultu. Sidebar „Log" sbírá události fáze SfM a tréninku.

Inspektor po dokončení tréninku — Náhled ukazuje hotovou rekonstrukci (2 991 Gaussianů po 5K iteracích za 13 s), titulní lišta 'Training Complete — 2 991 Gaussians'
Inspektor po dokončení tréninku — Náhled ukazuje hotovou rekonstrukci (2 991 Gaussianů po 5K iteracích za 13 s), titulní lišta „Training Complete — 2 991 Gaussians"

Inspektor po tréninku: Titulní lišta ukazuje finální počet Gaussianů (zde 2 991 — velmi kompaktní, protože syntetická scéna na světlém pozadí má jednoduchou geometrii). Náhled ukazuje hotový mrak bodů — orbitální drag navigace aktivní (otáčí kolem středu scény). Sekce tréninkových metrik je nyní naplněna finálními hodnotami, Loss History chart ukazuje průběh celých 5 000 iterací. Sekce exportu dole je nyní aktivní (všechna tlačítka formátů enabled).

Inspektor je pravý postranní panel v Expert Mode (⌘2). Sdružuje všechny tréninkově relevantní parametry v pěti rozbalovatelných sekcích: Předvolby, Konfigurace tréninku, Enhancements, Metriky a Loss Diagram. Každou sekci lze kliknutím na hlavičku sbalit, pořadí přeuspořádat drag-and-drop (InspectorView.swift:81-97). Standardně jsou všechny sekce viditelné, App-State ukládá preference sbalení a pořadí přes restarty aplikace.

Řada ovládacích prvků z Inspektoru se v téměř identické formě objevuje i v Nastavení (Kapitola 3) — typicky SfM backend, Sky Masking a podobné defaulty. Rozdělení je záměrné: Nastavení dodává globální šablonu aplikace pro nově založené projekty, Inspektor tyto hodnoty přepisuje pro aktuálně otevřený projekt. Kdo zná logiku ovládání jedné strany, může druhou používat poslepu.

Levý sloupec v Expert Mode — Project Navigator — nepatří k Inspektoru, ale je jeho přímým sousedem. Tam lze vybírat importované obrázky kliknutím, prohlížet je mezerníkem v Quick Look a mazat přes tlačítko minus nebo klávesu Delete (s Cmd-Z pro vrácení akce). Inspektor sleduje aktuální výběr v sidebaru kontextově specifickými detailními informacemi, ale pět hlavních sekcí zůstává vždy viditelných.

Sekce Předvolby (I1–I11)

Sekce Předvolby je nejrychlejší cesta, jak použít ověřenou konfiguraci. Built-in předvolby (Classic, MCMC, Scene-Class) dodávají reprodukovatelné výchozí body z 560+ dokumentovaných experimentů; vlastní předvolby lze ukládat, exportovat, importovat a sdílet. Seznam je seskupený podle kategorií (Classic, MCMC, SceneClass, Custom) a více než jedna kategorie může být rozbalená současně. Přes mechanismus kontextového menu (pravý klik na řádek) jsou dostupné Export, Duplikace a — u vlastních předvoleb — Mazání.

I1Tlačítko Save…

KDE

Inspektor → Sekce předvoleb → Tlačítko Save… (akční lišta dole).

TECHNICKY

Otevírá popover s textovým polem a tlačítky Save/Cancel. Aktuální stav TrainingConfig se persistuje jako nová uživatelská předvolba (JSON kódovaná, ukládaná napříč aplikací). Save proces kopíruje všech 81 tréninkových parametrů plus aktuální strategii densifikace. Předvolba automaticky končí v kategorii Custom, bez ohledu na to, z jaké built-in předvolby byla odvozena. Prázdné názvy a vstupy z čisté bílé znaků se zahazují. Již existující názvy nejsou odmítány — každá předvolba má vlastní interní ID, duplicitní názvy jsou technicky povoleny, ale prakticky matoucí.

I2Textové pole Preset Name

KDE

Save popover → Textové pole „Preset Name".

TECHNICKY

Jednoduché textové pole se zaokrouhleným rámem, široká forma. Hodnota se při kliknutí na Save tlačítko přebírá jako název předvolby. Žádné omezení délky v UI, ale uložený název musí být JSON kódovatelný a zobrazitelný v UI seznamech — emoji a diakritika fungují. Obsah se při otevření popoveru automaticky resetuje na prázdný řetězec. Save tlačítko zůstává disabled, dokud je pole po trimu prázdné. Žádné auto-suggest a žádné předvyplnění názvem aktuálně aktivní předvolby.

I3Tlačítko Cancel (Save dialog)

KDE

Save popover → Tlačítko Cancel (vlevo).

TECHNICKY

Zavírá popover bez uložení. Zahazuje obsah textového pole — při příštím otevření se opět logikou Save tlačítka (I1) resetuje na prázdné. Standardní styl tlačítka, žádné potvrzovací dialogy, žádné hotkey. Aktuální TrainingConfig zůstává nezměněna, protože cesta Save se vůbec neprovedla.

I4Tlačítko Save (Save dialog)

KDE

Save popover → Tlačítko Save (vpravo, prominentní styl).

TECHNICKY

Spouští samotnou persistenci. Validuje znovu neprázdný název (obranná kontrola) a poté zapisuje aktuální TrainingConfig jako JSON do úložiště aplikace. Následně zavírá popover. Zvýrazněno modře, zašedlé, dokud je textové pole prázdné. Pokud selže ukládání (např. protože je úložiště aplikace plné — velmi nepravděpodobné), neexistuje aktuálně viditelný chybový dialog; předvolba by se pak při příštím spuštění aplikace prostě neobjevila.

I5Tlačítko Export…

KDE

Inspektor → Sekce předvoleb → Akční lišta → Tlačítko Export….

TECHNICKY

Exportuje aktuálně vybranou předvolbu jako .radiancepreset soubor (interně JSON). Disabled, pokud není vybrána žádná předvolba. Při kliknutí aplikace otevírá Save dialog s předvyplněným názvem souboru (název předvolby + přípona .radiancepreset). Uložený formát obsahuje kompletní TrainingConfig plus metadata (název, kategorie, ID, built-in flag). Dvojklik ve Finderu otevírá aplikaci — ale ne automaticky import; uživatel musí použít Import tlačítko (I6).

I6Tlačítko Import…

KDE

Inspektor → Sekce předvoleb → Akční lišta → Tlačítko Import….

TECHNICKY

Otevírá souborový dialog, který umožňuje pouze .radiancepreset soubory (vícenásobný výběr deaktivován). Při výběru se JSON soubor načte, validuje a vloží do kategorie Custom — s novým interním ID, aby nedošlo ke kolizím s built-ins. Import automaticky nastavuje kategorii na Custom, i když exportovaná předvolba původně byla např. built-in. Poškozené nebo nekompatibilní soubory se starší verzí schématu jsou tiše odmítány bez chybového dialogu (Console log ale informuje).

I7Řádek předvolby (aktivace kliknutím)

KDE

Inspektor → Sekce předvoleb → každý řádek předvolby v každé kategorii.

TECHNICKY

Kliknutí na řádek předvolby nahrazuje všechna pole TrainingConfig hodnotami z předvolby, pamatuje si ID aktivní předvolby a resetuje Modified status. Aktivní zaškrtnutí před řádkem se objevuje pouze tehdy, pokud je předvolba vybrána A je nemodifikovaná. Jakmile se změní hodnota v TrainingConfig (slider, stepper, toggle v jiných sekcích Inspektoru), objeví se za názvem oranžový odznak „Modified". Vestavěné předvolby nelze přepsat — při modifikaci se musí přes Save tlačítko (I1) založit vlastní kopie.

I8Kontextové menu „Export…"

KDE

Pravý klik na řádek předvolby → první položka „Export…".

TECHNICKY

Identická funkcionalita jako I5 (Export tlačítko), ale pohodlněji dostupná — aniž by musela být předvolba předtím vybraná. Exportuje přímo předvolbu, na kterou se v řádku kliklo. Funguje pro všechny kategorie předvoleb stejně (built-in nebo Custom), žádné omezení. Export obsahuje built-in flag a originální kategorii, ale při re-importu se kategorie podle popisu v I6 mapuje na Custom.

I9Kontextové menu „Duplicate"

KDE

Pravý klik na řádek předvolby → druhá položka „Duplicate".

TECHNICKY

Klonuje předvolbu do kategorie Custom. Generuje nové interní ID, připojuje „ Copy" k názvu a ukládá kopii. Funguje i pro built-in předvolby — klon je pak editovatelný. Originál zůstává nedotčen. TrainingConfig se kopíruje hodnota po hodnotě (JSON roundtrip), takže mezi originálem a kopií neexistují žádné referenční vazby.

I10Kontextové menu „Delete"

KDE

Pravý klik na vlastní řádky předvoleb → poslední položka „Delete" (červené, destruktivní).

TECHNICKY

Viditelné pouze u Custom předvoleb. Built-ins nelze smazat. Položka je označena jako destruktivní, v kontextovém menu se objevuje červeně a je oddělena dividerem, aby se na ni omylem nekliklo. Neexistuje žádný potvrzovací dialog — jedním kliknutím se předvolba okamžitě smaže. Smazaná předvolba není obnovitelná (Cmd-Z zde nefunguje — Undo v aktuálním buildu existuje pouze pro seznam obrázků, ne pro operace s předvolbami). Pokud byla smazaná předvolba právě aktivní, zůstává aktuální TrainingConfig nezměněna, jen aktivní výběr předvolby se vynuluje.

I11Hlavička kategorie (rozbalit/sbalit)

KDE

Inspektor → Sekce předvoleb → každá hlavička kategorie (Classic, MCMC, SceneClass, Custom).

TECHNICKY

Stav sbalení per kategorie s různým defaultem: Classic startuje rozbalená, MCMC, SceneClass a Custom startují sbalené. Stav se nepersistuje — při restartu aplikace jsou všechny kategorie opět ve výchozím stavu. Šipka chevron rotuje animovaně. Číslo vpravo v hlavičce ukazuje počet předvoleb v dané kategorii. Click hit area zahrnuje celou hlavičkovou oblast.

Sekce Konfigurace tréninku (I12–I22)

Crop pouze sekce Konfigurace tréninku — Camera Alignment (Apple Photogrammetry aktivní, Native (Beta) neaktivní), Densifikace (Classic aktivní), Max Iterations 5,000 / Densify Until 3,500 s ikonou link, slider SSIM Weight 0.20, slider Render Scale na 100 % (1,536×2,048 = 3.1 MP)
Crop pouze sekce Konfigurace tréninku — Camera Alignment (Apple Photogrammetry aktivní, Native (Beta) neaktivní), Densifikace (Classic aktivní), Max Iterations 5,000 / Densify Until 3,500 s ikonou link, slider SSIM Weight 0.20, slider Render Scale na 100 % (1,536×2,048 = 3.1 MP)

Zde přistávají centrální páky: které SfM backend má počítat, jak pracuje densifikace, kolik iterací, jak velká SSIM váha. U MCMC strategie se objevují dva další togglery („MCMC Quality" a „Auto-scale by scene"), které jsou v Classic režimu skryty. U Native SfM backendu se přidává pole FOV override, které je potřeba pouze pro video framy bez EXIF ohniska.

I12Picker Camera Alignment

KDE

Inspektor → Konfigurace tréninku → Camera Alignment (segmentovaný picker nahoře).

TECHNICKY

Segmentovaný picker se dvěma možnostmi: Apple Photogrammetry a Native (Beta). Výběr určuje použitý SfM backend při další rekonstrukci kamer. Zároveň ovlivňuje, které další prvky Inspektoru jsou viditelné: Native navíc ukazuje FOV override (I13), který je potřeba pouze u video framů bez EXIF. Poznámka: pro velmi velké outdoorové záběry můžeš výsledek externího nástroje (Metashape nebo COLMAP) zavést přes Workspace Import — viz Kapitola 1 (M5) a Kapitola 9 (Q3, Q6).

I13Pole FOV Override (Native SfM)

KDE

Inspektor → Konfigurace tréninku → FOV Override (viditelné pouze při Camera Alignment = Native).

TECHNICKY

Numerické textové pole (rozsah 0-170°), default 0 = automatické určení z EXIF nebo heuristiky. Ruční zadání je potřeba, pokud jsou vstupní obrázky extrahovány z videa, které neobsahuje metadata ohniska. Typické hodnoty: iPhone Wide ≈ 73°, DJI Mavic Wide-Crop ≈ 70°, dron s plnoformátovým senzorem ≈ 84°. Hodnota je clampována na [0, 170] — hodnoty mimo se přímo srážejí zpět. Působí pouze na nativní SfM pipeline (Q4/Q5); Apple Photogrammetry tuto hodnotu kompletně ignoruje.

I15Picker Densifikace

KDE

Inspektor → Konfigurace tréninku → Densifikace (segmentovaný picker, vždy viditelný).

TECHNICKY

Přepíná mezi dvěma strategiemi densifikace: Classic (originální 3DGS postup s Clone/Split/Prune a gradient thresholdem) a MCMC (Stochastic Gradient Langevin Dynamics s relokací, NeurIPS 2024). Při přepnutí z Classic na MCMC aplikace automaticky nastavuje MCMC specifická pole na ověřené default hodnoty (Reg-Weights = 0, MCMC cap multiplier 3.0, sample/noise schedule). Bez této automatické inicializace by relace se starými předvolbami trpěly bugem MCMC collapse v 1.4.4 (460K→5 Gaussianů, watchdog kill). Picker výběr navíc určuje, které prvky Inspektoru jsou viditelné — u MCMC se objevují I16/I17. Detailní účinek polí v Kapitole 6, T11–T16 (Classic) a T61–T73 (MCMC).

I16Toggle MCMC Quality

KDE

Inspektor → Konfigurace tréninku → MCMC Quality (pouze u Densifikace = MCMC).

TECHNICKY

Přepíná gradient accumulation na 2 kroky (aktivní) resp. 1 krok (neaktivní). Akumuluje gradienty ze dvou po sobě následujících kameraových pohledů, než se provede optimizer step. Empiricky (Session 33, V544a) to redukuje finální L1 chybu asi o 6 % (0.0246 s Quality vs 0.0261 bez, při průměru 3 trialů na Horse-Full-MCMC). Cena: zdvojnásobený tréninkový čas. U velmi dlouhých tréninků (200K iterací) to vede k dalším 10+ minutám čekání — vyplatí se tedy pouze tehdy, pokud jsou opravdu potřeba poslední procenta kvality. Působí pouze na trénink, ne na export formát nebo zobrazení v náhledu.

I17Toggle Auto-scale by scene

KDE

Inspektor → Konfigurace tréninku → Auto-scale by scene (pouze u MCMC).

TECHNICKY

Pokud aktivní, škáluje efektivní horní limit Max Gaussianů s SfM init point count × MCMC cap multiplier (default 3.0). Příklad: SfM dodává 250K init bodů, základní cap = 150K, multiplier 3.0 → efektivní horní limit = max(150K, 750K) = 750K. Pokud deaktivováno, platí striktně jen základ. Bylo zavedeno pro v1.4.5, protože velké outdoorové záběry s více než 1000 framy a odpovídajícím hustým SfM bodovým polem hladověly densifikaci s rigidním 150K cap defaultem — nadbytečné body zůstávaly, nové nesměly vzniknout. Default OFF v Custom předvolbách, ON v MCMC built-ins. Působí pouze v tréninkovém čase, ne v exportu.

I18Stepper Max Iterations

KDE

Inspektor → Konfigurace tréninku → GroupBox → Max Iterations.

TECHNICKY

Stepper s rozsahem 1 000–100 000, krok 1 000. Určuje celkový počet iterací optimizéru. Lineárně koreluje s tréninkovým časem (poloviční = asi 50 % času). Empirické sweet spots: 20K (Classic Balanced, L1≈0.028), 40K (Classic Quality, L1≈0.023), 200K (MCMC Full, L1≈0.0246). Nad 40K u Classic v průměru přináší sotva zlepšení — diminishing returns. Při změně se, pokud je funkce link (I19) aktivní, Densify Until proporcionálně táhne s sebou (default poměr: 0.5, tj. Densify-Until = Max/2).

I19Tlačítko Link/Unlink (Densify ↔ Iterations)

KDE

Inspektor → Konfigurace tréninku → GroupBox → malé link tlačítko mezi Max Iterations a Densify Until.

TECHNICKY

Toggle tlačítko, které zmrazí poměr Densify Until k Max Iterations. Při aktivním (link icon zvýrazněn) se při každé změně Max Iterations Densify Until proporcionálně dotáhne. Při unlink (link-plus icon) hodnoty zůstávají nezávislé. Default je linked, protože to odráží typickou korelaci — pokud trénink protáhneš na dvojnásobné iterace, většinou chceš nechat běžet densifikaci proporcionálně déle. Poměr se při nastavení link tlačítka počítá z aktuální hodnoty; typický poměr je 0.5 (Densify-Until = poloviční počet iterací).

I20Stepper Densify Until

KDE

Inspektor → Konfigurace tréninku → GroupBox → Densify Until.

TECHNICKY

Stepper s rozsahem 500–50 000, krok 500. Určuje iterační index, od kterého už nepřibývají nové Gaussiany skrze Clone/Split (Classic) nebo Relokaci (MCMC). Po dosažení se pouze zjemňuje pozice a barva. Vyšší hodnoty = více Gaussianů = větší soubor, delší per-iteration time (+30-60 % GPU time na krok). Typické hodnoty: 15K (pro 30K max-iter), 20K (pro 40K), 100K (pro 200K MCMC). Při aktivním link (I19) automaticky škáluje. Působí jinak u Classic vs MCMC: Classic úplně zastavuje růst, MCMC zastavuje relokační logiku, ale sample/noise adaptace běží dál.

I21Slider SSIM Weight

KDE

Inspektor → Konfigurace tréninku → GroupBox → SSIM Weight.

TECHNICKY

Slider 0.0–1.0 v krocích 0.05, zobrazení jako „0.20". Mísí L1 loss (0.0) a SSIM loss (1.0). L1 napíná jas na pixel, SSIM strukturální podobnost (hrany, lokální statistiky). Default 0.2 je hodnota z originálního 3DGS paperu (Kerbl 2023) a reverse-engineered jako robustní kompromis v řadě sezení. Vyšší hodnoty (0.5+) preferují zachování detailu, ale mohou ignorovat lokální jasové chyby. Nižší hodnoty (< 0.1) vedou ke ztrátě detailu na ostrých hranách. Výpočet SSIM běží v shaderu s 11×11 Gaussovským oknem. Výkon: při 0.0 (pouze L1) je trénink asi o 8-12 % rychlejší, protože SSIM výpočet v shaderu se přeskakuje.

I22Slider Render Scale

KDE

Inspektor → Konfigurace tréninku → GroupBox → Render Scale.

TECHNICKY

Slider 0.25–1.0 v krocích 0.25, zobrazení jako „100 %". Škáluje tréninkové render rozlišení relativně k velikosti zdrojového obrazu. Největší páka na výkon: 50 % redukuje GPU čas asi o 75 % (protože 4× méně pixelů), 25 % asi o 94 %. Gradient threshold se automaticky škáluje s ním. Pod sliderem se objevuje live zobrazení rozlišení v MP (např. „2304×1296 (3.0 MP)"). Pokud se aktuální hodnota odchyluje od doporučené, oranžovým písmem se vkládá „— recommended: 50 %". Doporučení cílí na ~3 MP efektivní rozlišení — oblast nejefektivněji zpracovávaná Apple Silicon GPU. 4K zdrojové obrázky dostávají např. automaticky doporučeno 25 %, FullHD obrázky 100 %. Změna navíc spouští realokaci bufferu.

Sekce Enhancements (I26–I29)

Crop pouze sekce Enhancements — čtyři řádky: Post-Training Compactification (toggle zapnut), MetalFX Spatial Upscaling (toggle vypnut), MPS Lanczos Scaling (toggle vypnut), Perceptual Loss (slider na 'Off'). Každý řádek se subtitle vysvětlujícím funkci
Crop pouze sekce Enhancements — čtyři řádky: Post-Training Compactification (toggle zapnut), MetalFX Spatial Upscaling (toggle vypnut), MPS Lanczos Scaling (toggle vypnut), Perceptual Loss (slider na „Off"). Každý řádek se subtitle vysvětlujícím funkci

Sekce Enhancements sdružuje čtyři funkce, které vylepšují kvalitu obrazu, aniž by měnily samotné jádro tréninkové smyčky. První tři (I26-I28) jsou post-training resp. viewport stupně: Compactification po skončení tréninku uklízí, MetalFX a MPS Lanczos jsou čisté viewport renderery, které neovlivňují běžící trénink. Perceptual Loss (I29) je přes svou sekční příslušnost součástí tréninku — aktivuje se během tréninku jako dodatečný loss term, proto oddělení od viewport togglů přes divider.

I26Toggle Post-Training Compactification

KDE

Inspektor → Enhancements → Post-Training Compactification.

TECHNICKY

Aktivuje V443 post-processing: po skončení tréninkových iterací se Gaussiany s opacity pod 0.01 (1 % viditelnost) mažou. Empiricky to redukuje velikost souboru asi o 55-58 % bez viditelné ztráty kvality — protože tyto Gaussiany vizuálně stejně nepřispívají. Compactification běží jako GPU compact pass a trvá podle počtu Gaussianů zlomky sekund až několik sekund. Neovlivňuje výkon tréninku. Pokud je tento toggle vypnut, exportují se i neviditelné Gaussiany — relevantní pouze tehdy, pokud chceš formát použít pro další tréninkovou fázi (Continue Training), jinak plýtvání pamětí.

I27Toggle MetalFX Spatial Upscaling

KDE

Inspektor → Enhancements → MetalFX Spatial Upscaling.

TECHNICKY

Aktivuje Apple MetalFX Spatial Upscaler v viewport rendereru. Pokud je tréninkové rozlišení (přes I22 Render Scale) nižší než velikost viewportu, MetalFX škáluje renderovaný frame ML-based nahoru na velikost zobrazení. Dodává nejostřejší výsledky ze všech škálovacích možností, protože ML upscaler model je optimalizován na ostré hrany. Renderer pipeline se při přepnutí živě překonfiguruje — viditelné okamžitě, bez restartu. Má přednost před MPS Lanczos (I28): pokud jsou oba aktivní, vyhrává MetalFX. Výkonová režie v viewportu asi 1-2 ms na frame na M3 GPU. Působí pouze na live viewport, ne na renderované exporty (orbit video, screenshoty) — ty se renderují v plném zdrojovém rozlišení.

I28Toggle MPS Lanczos Scaling

KDE

Inspektor → Enhancements → MPS Lanczos Scaling.

TECHNICKY

Aktivuje Apple Metal Performance Shaders s Lanczos resamplingem jako viewport upscaler. Lanczos je klasické resampling s 8-tap sinc filtrem — ostřejší než bilinear, klasický algoritmus bez ML. Renderer pipeline se při přepnutí živě překonfiguruje. Je ignorováno, pokud je MetalFX (I27) také aktivní. Minimální režie (< 0.5 ms na frame), ale kvalita je pod MetalFX. Použití: fallback pro scény, ve kterých MetalFX produkuje artefakty (např. silné liniové struktury, které ML upscaler občas „uhladí"). Působí jako I27 pouze v live viewportu, ne v exportech.

I29Slider Perceptual Loss

KDE

Inspektor → Enhancements → Perceptual Loss.

TECHNICKY

Slider 0.0–0.2 v krocích 0.01, zobrazení při 0.0 jako „Off", jinak jako „0.05" atd. Aktivuje dodatečný loss term, který porovnává multi-škálované Gaussian blur renderingu s ground truth obrazem (3 blur škály). Zachycuje strukturální rozdíly, které L1+SSIM samo o sobě nepoznává. V460 implementace. Empiricky hodnota 0.05-0.1 zlepšuje L1 skóre v relacích o pár procent, ale stojí ~5 % tréninkového času (dodatečný forward pass přes blur kernely). Nad 0.15 se trénink stává nestabilním a L1 se opět zhoršuje (loss term dominuje optimalizaci). Působí během tréninku, ne v post-processingu — přes pozici v sekci „Enhancements" tedy není čisté zlepšení následně.

Sekce Metriky (I30–I38)

Crop pouze sekce Training Metrics po dokončeném tréninku (5K iterací, 2 991 Gaussianů final) — Tabulka s tréninkovými metrikami (Iteration, Loss, SSIM Loss, Combined Loss, Gaussian Count, Learning Rate, Elapsed, ETA)
Crop pouze sekce Training Metrics po dokončeném tréninku (5K iterací, 2 991 Gaussianů final) — Tabulka s tréninkovými metrikami (Iteration, Loss, SSIM Loss, Combined Loss, Gaussian Count, Learning Rate, Elapsed, ETA)

Zatímco trénink běží, ukazuje sekce Metriky devět live hodnot z tréninkové smyčky. Před startem tréninku je sekce prázdná („Start training to see live metrics"). Všechny hodnoty se aktualizují každých ~30 iterací (frekvence aktualizace streamu). Sekce je read-only — žádný prvek není klikatelný nebo změnitelný. Pro hlubší analýzu použij JSONL tréninkové logy pod ~/Documents/RadianceKit/Logs/ (skript python3 scripts/analyze_logs.py best 5).

I30Iterace

KDE

Inspektor → Metriky → Iteration. Read-only.

TECHNICKY

Zobrazení ve formátu „4523 / 40000" — aktuální iterace přes celkové plánované iterace. Počítá synchronně s tréninkovou smyčkou, která pushuje hodnoty každých ~30 iter. Druhé číslo odpovídá hodnotě Max Iterations v okamžiku startu; už se nemění, ani když uživatel poté přesune stepper — běžící běh používá svoji vlastní snapshot kopii. Pokud aplikace přes menu Training přidává iterace (Continue Training +5K/+10K/+20K), jmenovatel se zvyšuje.

I31Loss

KDE

Inspektor → Metriky → Loss. Read-only.

TECHNICKY

Float hodnota se šesti desetinnými místy (např. „0.024385"). Měří kombinovaný L1+SSIM loss (mix kontrolovaný přes I21 SSIM Weight) plus volitelně Perceptual Loss (I29) a jiné regularizéry. Škála není absolutní, ale závislá na scéně — vyžaduje pro většinu srovnání stejný dataset. Typické koncové hodnoty u dobrých konfigurací: - Classic Quality 40K iter: 0.022–0.025 (Horse, Truck, Garden) - MCMC Full 200K iter: 0.024–0.028 - Outdoor dron 30K: 0.030–0.060 (geometricky horší) - Indoor apartmány: 0.018–0.025

Hodnoty nad 0.10 po 5K iterací naznačují SfM problémy (špatné pozice kamer) — přerušit a SfM přepočítat.

I32Learning Rate

KDE

Inspektor → Metriky → Learning Rate. Read-only.

TECHNICKY

Zobrazení vědeckým zápisem (např. „1.60e-04"). Aktuální learning rate pro position parametry (3DGS má šest nezávislých LR pro Position, SH-DC, SH-Rest, Opacity, Scale, Rotation — zobrazena zde je position LR jako reprezentativní velikost). Default počáteční hodnota 1.6e-4, která přes exponential decay klesá na ~1.6e-6 do konce tréninku. Pokles je nastavitelný přes LR schedule pole v konfiguraci tréninku (T pole v Kap. 6). Pokud LR zůstává neobvykle vysoké (např. 1e-3 nebo více po 10K iterací), může to naznačovat chybně načtenou konfiguraci.

I33SH Degree

KDE

Inspektor → Metriky → SH Degree. Read-only.

TECHNICKY

Celé číslo 0-3. Spherical Harmonics stupeň pro barevnou reprezentaci. Začíná na 0 (pouze DC komponenta, tj. směrově nezávislá barva na Gaussian — tedy jen RGB konstanta) a v průběhu tréninku progresivně roste na 3. Standardní schedule zvedá stupeň o 1 při iteracích 1000/2000/3000. SH-3 odpovídá 48 barevným koeficientům na Gaussian (3 RGB kanály × 16 SH bázových funkcí). Vyšší SH stupeň znamená více směrově závislých odrazů (lesklé povrchy vypadají správně různě pod různými úhly pohledu), ale také více paměti a pomalejší trénink.

I34Gaussians

KDE

Inspektor → Metriky → Gaussians. Read-only.

TECHNICKY

Aktuální počet Gaussianů v modelu, formátováno s locale separátorem (např. „524.318"). Růst: - Classic: startuje od SfM init bodů (typicky 50K-300K), roste skrze Clone/Split až krátce před Densify Until, poté statický až do konce tréninku (modulo pruning) - MCMC: sample body se přidávají až do MCMC capu, poté už jen relokace

Healthy koncové hodnoty: - Classic Quality: 400K-700K (Horse 524K, Garden 800K) - MCMC Full: přesně na capu (default 150K, s auto scale multiplier × SfM count podle scény 500K-1.5M)

U MCMC číslo klesá na < 60 % capu → anomálie (collapse indikátor, naznačuje příliš agresivní regularizéry).

I35GPU Memory

KDE

Inspektor → Metriky → GPU Memory. Read-only.

TECHNICKY

Odhad spotřeby paměti Gaussian bufferu jako Gaussian count × 616 bajtů (formátováno v memory stylu). 616 bajtů je empirická velikost plně vybaveného Gaussianu (pozice, scale, rotation, opacity, SH koeficienty stupeň 3, gradient akumulátor). Zobrazení nezachycuje renderer overhead (tile buffer, sort buffer, backward buffer) — reálná spotřeba GPU paměti leží typicky 2-3× nad touto hodnotou. U 500K Gaussianů: zobrazeno ~290 MB, reálně ~700 MB. U 1.5M Gaussianů: zobrazeno ~880 MB, reálně ~2.5 GB. Na M3 Max s 64+ GB Unified Memory nekritické, na M3 Pro s 18 GB už limit.

I36Speed

KDE

Inspektor → Metriky → Speed. Read-only.

TECHNICKY

Iterace za sekundu s jedním desetinným místem („24.3 it/s"). Vypočítáno trainerem jako klouzavý průměr přes posledních ~100 iterací. Typické hodnoty: - Quick předvolba (1K iter): 80-120 it/s (krátké, žádný steady-state) - Classic 20K @ 1.0 Render Scale (Truck scéna, M3 Max): 25-35 it/s - Classic 20K @ 0.5 Render Scale: 80-120 it/s - MCMC 200K @ 0.5 Render Scale: 25-50 it/s (pomalejší kvůli relokaci) - U 1M+ Gaussianů a plného rozlišení: < 10 it/s

Klesající Speed v průběhu tréninku je normální — víc Gaussianů = víc compute na iteraci. Náhlé propady (např. ze 30 → 5 it/s) naznačují GPU thermal throttling nebo konkurující aplikace.

I37Elapsed

KDE

Inspektor → Metriky → Elapsed. Read-only.

TECHNICKY

Již uplynulý čas jako „4:23" (m:ss) nebo „1:23:45" (h:mm:ss). Přepínání formátu od 1 hodiny. Měří pouze čistý tréninkový čas, ne předcházející fáze (SfM výpočet, import obrázků). Při pauze/resume hodiny běží dál — je to tedy wall-clock, ne CPU čas.

I38ETA

KDE

Inspektor → Metriky → ETA. Read-only.

TECHNICKY

Odhad zbývajícího času jako „17:42" nebo „1:12:35". Výpočet: (Max Iterations − aktuální iterace) / iterace za sekundu. Ukazuje „–", pokud je Speed momentálně nula (úplně na začátku nebo při pauze). Odhad se nepřizpůsobuje typickému zpomalení ke konci tréninku — právě u MCMC a Classic s velkými Densify Until hodnotami má trénink tendenci zpomalovat, protože ke konci přicházejí do obrazu stále další Gaussiany. Reálně zůstává typicky 10-20 % nad počáteční ETA.

Sekce Loss Diagram (I39–I41)

Crop pouze sekce Loss History po dokončeném tréninku — Current 0.0064, Min 0.0035 (zeleně), modrý průběh od 0.027 (Iterace 1) na 0.0035 (Iterace 5K) s charakteristickým zlomem kolem Iter 200, pod tím chart Gaussian Count oranžově
Crop pouze sekce Loss History po dokončeném tréninku — Current 0.0064, Min 0.0035 (zeleně), modrý průběh od 0.027 (Iterace 1) na 0.0035 (Iterace 5K) s charakteristickým zlomem kolem Iter 200, pod tím chart Gaussian Count oranžově

Sekce Loss Diagram vizualizuje tréninkový průběh přes čas. Sestává ze dvou chartů: Loss Curve chartu (velký, nahoře, modrý) a Gaussian Count chartu (menší, dole, oranžový). Oba se staví živě během tréninku a persistují do dalšího startu tréninku. Před prvním tréninkem je oblast prázdná („Loss curve will appear during training"). Charty jsou čisté SwiftUI path drawingy (žádný framework Swift Charts), aby plynně renderovaly i při 100K+ bodech.

I39Current Loss (zobrazení)

KDE

Inspektor → Loss Diagram → levá label oblast „Current: 0.0287". Read-only.

TECHNICKY

Float hodnota posledního loss sample bodu, formátovaná se čtyřmi desetinnými místy. Identické s I31 (Loss v sekci Metrics), jen zde kompaktněji formátováno. Zdrojem je Loss History — seznam, který každých ~30 iterací dostane záznam. Pouze konečné hodnoty se do seznamu přidávají — NaN/Infinity (velmi vzácné, v případě bugu gradient explosion) jsou filtrovány.

I40Min Loss (zobrazení)

KDE

Inspektor → Loss Diagram → pravá label oblast „Min: 0.0245" (zeleně). Read-only.

TECHNICKY

Minimum všech kdy viděných hodnot loss aktuálního tréninkového běhu. Přepočítává se živě z Loss History — žádná samostatná persistence. Zobrazuje se zeleným písmem, protože „Min" znamená „Best so far". Zelená přerušovaná čára na dolním okraji chartu značí tuto Y pozici vizuálně. Při Continue Training relacích sledování minima začíná znovu — stará history se v UI nahrazuje novou (ne připojuje). Pokud aktuální trénink běží hůř než předchozí, může být Min zobrazení tedy větší než předchozí konečný výsledek.

I41Gaussian Count Chart

KDE

Inspektor → Loss Diagram → druhý chart pod tím (oranžový). Read-only.

TECHNICKY

Liniový diagram počtu Gaussianů přes tréninkové iterace. Zdroj: Gaussian Count History (seznam dvojic (Iter, Count), naplňovaný trainerem každých ~30 iter). Y škála dynamická mezi minimem a maximem history. U Classic strategie křivka typicky vypadá takto: stále rostoucí až do Densify Until, poté plochá (s malými pruningovými výkyvy). U MCMC: strmý nárůst až k capu, poté horizontální čára (relokace drží počet konstantní). Pokud křivka klesá navzdory aktivnímu tréninku, densifikace příliš agresivně prune — indikátor špatných defaultů nebo známý MCMC collapse bug (téma hotfixu v1.4.4).

Jak číst loss křivku?

Loss chart je nejdůležitější diagnostický nástroj v Inspektoru — žádný jiný indikátor neukazuje tak přímo, zda trénink užitečně postupuje nebo visí. Typický zdravý tvar je rychlý pokles v prvních 1000-3000 iteracích (z ~0.15 na ~0.05), následovaný pomalým rovnoměrným poklesem až do konce tréninku (na 0.020-0.030). Logaritmicky působí křivka jako hladká diagonála.

Co znamená plató u lossu? Pokud křivka zůstává přes několik tisíc iterací plochá, jsou dvě možná čtení: (a) trénink je „konvergoval" — loss už nemůže významně klesat, protože model je tak dobrý, jak může s danými daty a nastavením být. To je žádoucí; to je „hotovo". (b) trénink „visí" — loss by ještě mohl klesat, ale optimalizace stagnuje (lokální minimum, learning rate příliš malá, densifikace vypnutá). Rozlišování: pokud hodnota lossu leží v typicky dobrém rozsahu (0.020-0.030 u indoor/object, 0.040-0.060 u outdoor) a křivka je už 5K iterací plochá, je to konvergováno. Pokud je hodnota výrazně vyšší než u srovnatelných scén (např. 0.08), visí.

Pozor Gaussian plató ≠ Loss plató. Plató v počtu Gaussianů neznamená „trénink je hotový". Znamená pouze, že densifikace přestala přidávat nové body — buď protože je dosaženo (Classic), nebo protože je MCMC cap plný. Trénink běží poté dál a zjemňuje pouze existující body. Skutečný signál „hotovo" čteš z loss křivky a z iteračního zobrazení (I30), ne zde.

Pravidlo pro přerušení: pokud loss křivka po 5000+ iteracích leží nad 0.08 a sotva ještě klesá, s velkou pravděpodobností je SfM rekonstrukce špatně. Trénink přerušit, v Kapitole 9 nahlédnout, zda zvolený SfM backend odpovídá scéně, popř. přepnout na COLMAP/Native, pak znovu spustit. Raději investovat 10 minut do lepšího SfM než 2 hodiny tréninku se špatným zarovnáním kamer.

Kdy sáhnout po Inspektoru?

Rychlá reference: která sekce + které ovládací prvky pro který typický use case?

Common taskSekceControl ID
Načíst předhotovený setupPředvolbyI7 (kliknout na řádek)
Uložit vlastní setupPředvolbyI1 → I2 → I4
Sdílet setup s kolegyPředvolbyI5 (Export) resp. I6 (Import)
Přepnout SfM backend (např. protože Apple-PG je nestabilní)Konfigurace tréninkuI12 (viz Kap. 9)
Zpracovat video framy bez EXIF ohniskaKonfigurace tréninkuI13 (FOV Override)
COLMAP výkon: GLOMAP místo klasikyKonfigurace tréninkuI14
Přepnout z Classic na MCMCKonfigurace tréninkuI15
Nechat trénink běžet déleKonfigurace tréninkuI18 (Max Iter) + I20 (Densify Until) — spárováno přes I19
Halve GPU časuKonfigurace tréninkuI22 (Render Scale na 50 %)
Tréninková kvalita +6 % (MCMC)Konfigurace tréninkuI16 (MCMC Quality)
Outdoor scéna s mnoha SfM bodyKonfigurace tréninkuI17 (Auto-scale by scene)
Nastavit / přepnout COLMAP cestuKonfigurace tréninkuI23 / I24 / I25
Zmenšit exportní souboryEnhancementsI26 (vždy nech zapnuté)
Ostrejší viewport bez více tréninkového časuEnhancementsI27 (MetalFX)
MetalFX hladí příliš → alternativaEnhancementsI28 (MPS Lanczos)
Poslední trocha detailu u jemných strukturEnhancementsI29 (Perceptual Loss 0.05-0.1)
Sledovat tréninkMetrikyI30 (postup), I36 (tempo), I38 (zbývající čas)
Posoudit kvalitu brzyMetrikyI31 (Loss < 0.05 po 5K = dobré)
Podezření na SfM problémMetriky + Loss chartI31 + I39 (Loss > 0.08 po 5K → SfM nově)
Rozlišit convergence vs stuckLoss DiagramI39 + I40 (číst loss plató)
Detekovat problém densifikaceLoss DiagramI41 (Gaussian křivka klesá → bug)