The algorithm is described in a CVPR 2018 paper (supplementary materials).
Tested with VMWare workstation 14.1.1. VirtualBox should also work https://drive.google.com/file/d/12hRpv07lvorx9-Yv6fSrMPAECFJlxWHm/view?usp=sharing Login password: cvpr
Tested in Ubuntu 16.04
- OpenCV, Boost library, CGAL, Eigen
sudo apt-get install libopencv-dev libcgal-dev libcgal-qt5-dev libboost-all-dev libeigen3-dev
- Download the following file and save to folder
src/metatdata/
- Modify the paths in the
main
function insrc/cpp/main.cpp
. Make sure yourworkspacePath
ends with a slash "/". - Build and run the sampler:
cd src/cpp
mkdir build && cd build
cmake ..
make -j8
./cpp/cpp 0
- The sampled results are saved as txt and json files in `tmp/samples'. The txt files can be opened and viewed by RoomArranger (free to use on Linux).
- Open RoomArranger (tested on 9.4.1), click "Start New Project" -> "OK".
- Click "Project" -> "Import" -> "Object Listing", and select the sample txt file you want to visualize as "Source".
- Check the box of "Column Headings". You should see a change of "Assign attributes". Click "OK".
- The sample file should be loaded by now. You can change the room size to match the sampled room size. The sampled room is represented by a box like other objects, and you can see its size by click on it. The room size can be changed by clicking on "Project Properties" on the tool bar or pressing ctrl+T.
- Change the paths in
src/python/config.py
- Run
src/python/visualize_activity.py
. The visualization results will be saved in 'tmp/figures'.
If you find this code useful, please cite our work with the following bibtex:
@inproceedings{qi2018human,
title={Human-centric Indoor Scene Synthesis Using Stochastic Grammar},
author={Qi, Siyuan and Zhu, Yixin and Huang, Siyuan and Jiang, Chenfanfu and Zhu, Song-Chun},
booktitle={Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2018}
}