Notes from my master thesis: conditioning Stable Diffusion on DTM + building mask to generate Digital Surface Models.
Why diffusion for DSM?
Classical photogrammetry pipelines need stereo imagery and a lot of compute. Diffusion models give us a way to synthesise plausible DSMs from much cheaper inputs.
The setup
We condition Stable Diffusion on two channels: a Digital Terrain Model (DTM) and a building footprint mask.
model.train_step(dtm, building_mask, target_dsm)
Evaluation
Geospatial fidelity matters more than pixel PSNR — so we built height-error histograms over building polygons.
This is paragraph 1. Data science work is part craft and part discipline — the best models are simple, well-validated, and easy to explain. In this post we walk through the intuition, the math just enough to be useful, and a clean implementation you can drop into your own pipeline.
This is paragraph 2. Data science work is part craft and part discipline — the best models are simple, well-validated, and easy to explain. In this post we walk through the intuition, the math just enough to be useful, and a clean implementation you can drop into your own pipeline.