Skip to content

AInnovateLab/Context-aware-Indoor-PCG

Repository files navigation

Context-aware Indoor PCG

arXiv star badge

Official implementation of the ACM MM'24 paper "Context-Aware Indoor Point Cloud Object Generation through User Instructions".

Clone Repo

Pull the repo with submodules:

git clone --recurse-submodules <Our-Git-Repo>

Update submodules if not included:

git submodule update --init --recursive

Update only submodules if already exists:

git submodule update --recursive --remote

Dataset

Check Dataset for more details.

Setup

Create environment:

conda create -n pcg python=3.9
conda activate pcg
conda install -c conda-forge cudatoolkit-dev=11.7
pip install -r requirements.txt

We use accelerate to speed up the training process. Please read following instructions to configure your accelerate environment.

accelerate config

Compile modules for EMD-based metrics and PointNet:

pushd instruct-insertion/openpoints/cpp/chamfer_dist; python setup.py install; popd
pushd instruct-insertion/openpoints/cpp/emd; python setup.py install; popd
pushd instruct-insertion/openpoints/cpp/pointnet2_batch; python setup.py install; popd

Train & Evaluation

Train on Nr3D:

pushd instruct-insertion/scripts; bash train.sh; popd

Train on the combination of Sr3D and Nr3D:

pushd instruct-insertion/scripts; bash train_sr3d.sh; popd

If you need to turn on evaluation mode, please add --mode test to the end of the training script.

Visualization

Install jupyterlab and interative widgets:

pip install jupyterlab
pip install trame==2.5 jupyter-server-proxy

Check Visualization for details.

FAQ

If the error about gxx_linux occurs, especially when compiling emd_cuda, please install the following:

conda install -c conda-forge gxx_linux-64=11.4

Contribution

Install pre-commit-hooks before commits:

pip install pre-commit
pre-commit install