Home

Awesome

Roof-GAN: Learning to Generate Roof Geometry and Relations for Residential Houses

Code for the CVPR 2021 paper by Yiming Qian, Hao Zhang, and Yasutaka Furukawa. Supplementary document is here.

Getting Started

Clone the repository:

git clone https://github.com/yi-ming-qian/roofgan.git

We use Python 3.7 and PyTorch 1.2.0 in our implementation, please install dependencies:

conda create -n roofgan python=3.7
conda activate roofgan
conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.0 -c pytorch
conda install -c conda-forge opencv
pip install -r requirements.txt

Dataset

Please download our dataset from here. Then, change the option "data_root" in both "scripts/train_gan.sh" and "scripts/test_gan.sh" to the directory containing the dataset.

Training

Run the following command to train Roof-GAN:

sh ./scripts/train_gan.sh

Generation

Run the following command to generate roof models:

sh ./scripts/test_gan.sh

The generated models will be saved under "experiments/{proj_dir}/results/". We also provide our pre-trained models here. To use it, please place it under "experiments/{proj_dir}/model_gan/".

Evaluation

Run the following commands to evaluate with the RMMD and FID metrics:

cd evaluate
sh evaluate_RMMD.sh
cd fid
sh evaluate_fid.sh

Our generated results can be downloaded from here, which should be placed at "experiments/" after unzipping.

Contact

https://yi-ming-qian.github.io/

Acknowledgements

We thank the authors of PQ-Net and of House-GAN. Parts of our implementation are modified based on their codes. The FID metric implmentation is copied from mseitzer/pytorch-fid.