3DGS-pipeline: drone-geo-registratie & validatie

Validatierapport vooraf aan de eerste dure productie-run (RWZI Nieuwveer): kan de pipeline DJI-drone-telemetrie automatisch omzetten in een metrisch geschaald Gaussian-splat-model, en levert de trainer aantoonbaar referentiekwaliteit?

Waarom geo-registratie

Structure-from-Motion is per definitie schaal-ambigu: een reconstructie ligt maar vast tot op één similarity-transformatie (rotatie + translatie + één globale schaal). Zonder metrisch anker krijgt het model een willekeurige schaal; achteraf per as “rechttrekken” maakt de verhoudingen kapot (praktijkles). DJI-drones schrijven per videoframe GPS-telemetrie in een SRT-“ondertitel”-spoor. De pipeline leest die telemetrie, koppelt hem via interpolatie aan de geëxtraheerde frames en fit met colmap model_aligner (ENU) één uniforme similarity naar meters — metrische schaal én georeferentie in één stap. Ontbreekt de telemetrie, dan stopt de pipeline in minuut 1 met een expliciete accept-poort in plaats van stil een ongeschaald model te bouwen.

Validatie 1 — echte DJI-telemetrie (12 firmware-generaties)

Parser getest op 15 echte DJI-SRT-bestanden uit het veld (testset dji_srt_parser, MIT):

bestandresultaatfixesspreidinghoogtebron
MAVIC3OK12.318958 mabs_alt
Mini SEOK27228 mH
Air 2SOK175 maltitude
Mavic 2 ZoomOK7.113215 maltitude
Matrice 300OK381422 mbarometer
Mavic 2-stijl (zonder tijdlijn)OK463591 m
Mavic 2 Pro (nieuw)OK8.9522.642 m— (waarschuwing)
Mavic MiniOK117173 mH
Mavic ProOK468591 mbarometer
P4 RTK-mixOK12112 m
oud formaat (GPS/Hb)OK468591 mHb
Mavic Air (SRT zónder GPS-velden)geweigerdcorrect: geen coordinaten aanwezig
bevroren GPS / lege bestanden (3×)geweigerdcorrect: <3 m beweging of geen fixes

De test op echte data leverde direct drie formaat-fixes op (Matrice-GPS(lat,lon,altM)-volgorde, datum/tijd-fallback zonder -->-tijdlijn, Hb:-hoogte) — precies waarom er tegen veldbestanden gevalideerd wordt en niet alleen tegen synthetische voorbeelden.

Validatie 2 — end-to-end drone-tak (smoke-run)

Volledige keten gedraaid met een synthetische drone-video + kloppende SRT naast de 360°-grondcapture: 101/101 views geregistreerd in één COLMAP-model (96 grond + 5 drone), grond en drone elk met een eigen camera (SIMPLE_PINHOLE vast resp. OPENCV vrij) in dezelfde database, brugparen grond↔drone aanwezig. De geo-alignment weigerde de nep-GPS correct (residu > drempel) en viel terug op de expliciete accept-poort — het vangnet werkt dus aantoonbaar in beide richtingen.

Validatie 3 — trainerkwaliteit vs. gepubliceerde referentie

De trainer (gsplat MCMC, exact het productierecept incl. CUDA-13-toolchain) is gebenchmarkt op de standaardscene truck uit Tanks&Temples — dezelfde scene waarop de 3DGS-literatuur rapporteert (Kerbl et al. 2023: PSNR 23,51 bij 7k stappen, 25,19 bij 30k).

PSNR @ 30k stappen
26,02 dB
referentie 25,19 → +0,83 boven
SSIM @ 30k
0,891
referentie 0,879 → boven
LPIPS @ 30k
0,088
lager = beter
Tussenstand @ 7k
24,15 dB
referentie 23,51 → +0,64 boven
Links: ground-truth-foto. Rechts: render uit het getrainde splat-model (7k stappen).
Links de echte foto (ground truth), rechts de render uit het getrainde model op een niet-getrainde validatiecamera, na de volledige 30.000 stappen (1,0M gaussians).

Interactieve 3D-weergave van het getrainde model

Dit is het getrainde splat-model zélf — alle 1,0M gaussians, met view-dependent kleur (spherical harmonics graad 2: glans en spiegelingen draaien mee met je kijkhoek) — live gerenderd in de browser, geen video. Zelfde viewer-stack als de thegoldenbasket-splatlaag. Slepen = draaien, scrollen = zoomen, cijfertoetsen = springen naar echte cameraposities uit de opname.

Open de viewer op volledig scherm ↗  ·  model: 69 MB (incl. SH2), laadt progressief

Wat dit betekent voor de Nieuwveer-run

Go. De drie risico’s zijn afgedekt: (1) telemetrie-inname werkt op alle gangbare DJI-generaties en weigert onbruikbare GPS expliciet; (2) de fusie- en geo-registratieketen draait end-to-end met werkend vangnet; (3) de trainer haalt referentiekwaliteit. Voorwaarden voor de opname: DJI-instelling video-ondertitels aan (anders geen SRT), en één lage orbit die de grondcapture overlapt (de “brug” waardoor de GPS-schaal ook de grond-/binnencapture bereikt). Verwachte schaalnauwkeurigheid met standaard-GNSS: enkele procenten; cm-niveau vergt RTK.

Pipeline-broncode: git.wbd-rd.nl/RnD/3DGS (o.a. parse_drone_geo.py, gen_pairs_drone.py, run_video.sh, runbook README_VIDEO.md). Benchmark: Tanks&Temples truck, 251 beelden, RTX 4090, gsplat MCMC cap 1,0M, 2026-07-21.