tudelft3d / City3D

Large-scale LoD2 Building Reconstruction from Airborne LiDAR Point Clouds
https://github.com/tudelft3d/City3D
GNU General Public License v3.0
223 stars 36 forks source link
building pointcloud surface-reconstruction urban-reconstruction

City3D: Large-scale Building Reconstruction from Airborne LiDAR Point Clouds

City3D implements the hypothesis-and-selection based building reconstruction method described in the following paper:

Jin Huang, Jantien Stoter, Ravi Peters, Liangliang Nan. 
City3D: Large-scale Building Reconstruction from Airborne LiDAR Point Clouds.
Remote Sensing. 14(9), 2254, 2022.

This implementation is based on PolyFit.

Despite being a research prototype, City3D has been used to create city-scale building models. This article explores its potential and limitations from a user's perspective, comparing results in Dutch and French datasets.


Obtaining City3D

You can build City3D from the source code˙

Run City3D

This repository includes three executable programs:


Data

The method has been evaluated on approximately 20,000 buildings, resulting in a new dataset consisting of the original point clouds and the reconstructed 3D models of all these buildings. The complete dataset can be found here.

This repository has included a few buildings from the above dataset for testing, which can be found in the data directory.

In our implementation, we assume the footprint of a building is a simple polygon. For a set of buildings, their footprint data consists of a set of polygonal faces, and these faces are stored in an OBJ file with Z coordinates set to 0.

Sources of footprint data may include:

In case you have a point cloud of a scene containing multiple buildings, but don't have access to the footprint of the buildings, you will need to segment out the individual buildings either manually or using an automatic approach. There are various published papers addressing instance segmentation of urban buildings from point clouds. You can explore these methods to find one that fits your purpose, and then CLI_Example_2 will be suitable for the reconstruction.


About the solvers

This demo program can use either the SCIP solver or the commercial solver Gurobi for the core optimization step. The entire source code of the SCIP solver is already included in this repository.

The Gurobi solver is faster than SCIP and is thus highly recommended. To use Gurobi, install it first and make sure the headers and libraries of Gurobi can be found by CMake. This can be done by specifying the paths of Gurobi in FindGUROBI.cmake. Note: you need to obtain a license to use Gurobi, which is free for academic use.


Citation

If you use the code/program (or part) of City3D in scientific work, please cite our paper:

@Article{HuangCity3d_2022,
    AUTHOR = {Huang, Jin and Stoter, Jantien and Peters, Ravi and Nan, Liangliang},
    TITLE = {City3D: Large-Scale Building Reconstruction from Airborne LiDAR Point Clouds},
    JOURNAL = {Remote Sensing},
    VOLUME = {14},
    YEAR = {2022},
    NUMBER = {9},
    ARTICLE-NUMBER = {2254},
}

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License or (at your option) any later version. The full text of the license can be found in the accompanying LICENSE file.


Should you have any questions, comments, or suggestions, please feel free to contact me at: J.Huang-1@tudelft.nl

Jin Huang

https://yidahuang.github.io/

June 28, 2022

Copyright (C) 2022