RoofDiffusion: Constructing Roofs from Severely Corrupted Point Data via Diffusion

Kyle Shih-Huang Lo, Jorg Peters, Eric Spellman
2/14/2026

No official code found. Best implementation: kylelo/RoofDiffusion (39 stars, last commit 2024-10-02).

Abstract

Accurate completion and denoising of roof height maps are crucial to reconstructing high-quality 3D buildings. Repairing sparse points can enhance low-cost sensor use and reduce UAV flight overlap. RoofDiffusion is a new end-to-end self-supervised diffusion technique for robustly completing, in particular difficult, roof height maps. RoofDiffusion leverages widely-available curated footprints and can so handle up to 99\% point sparsity and 80\% roof area occlusion (regional incompleteness). A variant, No-FP RoofDiffusion, simultaneously predicts building footprints and heights. Both quantitatively outperform state-of-the-art unguided depth completion and representative inpainting methods for Digital Elevation Models (DEM), on both a roof-specific benchmark and the BuildingNet dataset. Qualitative assessments show the effectiveness of RoofDiffusion for datasets with real-world scans including AHN3, Dales3D, and USGS 3DEP LiDAR. Tested with the leading City3D algorithm, preprocessing height maps with RoofDiffusion noticeably improves 3D building reconstruction. RoofDiffusion is complemented by a new dataset of 13k complex roof geometries, focusing on long-tail issues in remote sensing; a novel simulation of tree occlusion; and a wide variety of large-area roof cut-outs for data augmentation and benchmarking.

View on arXivView PDF

Code Implementations(1)

[ECCV 2024] RoofDiffusion: Constructing Roofs from Severely Corrupted Point Data via Diffusion

393Shell, PythonApr 14, 20242 years ago

Similar Papers

Cite this paper

@article{lo2026roofdiffusion,
  title  = {RoofDiffusion: Constructing Roofs from Severely Corrupted Point Data via Diffusion},
  author = {Kyle Shih-Huang Lo and Jorg Peters and Eric Spellman},
  year   = {2026},
  eprint = {2404.09290},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/2404.09290},
  journal = {ECCV 2024 2024}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2404.09290.svg)](https://codeofpaper.com/paper/2404.09290)

Discussion