This repository contains methods for the automatic detection of rooms in interior PointClouds. The methods can serve as inspiration, or can be applied as-is.
The goal of this project is to automatically detect rooms in interior point clouds. One of the main challenges in working with interior 3D point cloud data is detecting walls and defining a room boundaries.
This repository contains a five-staged pipeline that preprocesses, split into floors, detects rooms, reconstructs the surface, and computes volume and area
For a quick dive into this repository take a look at our Complete Pipeline.
ipcp
datasets
Example datasets of interior pointcloudsnotebooks
Jupyter notebook tutorialssrc
Python source codeutils
Utility functions
modules
Pipeline modulescpp_modules
Pipeline C++ modulespreprocessors
Pre-processor modules
The sample pointcloud provided is a subsampled version of the "Apartment, merged & resampled" from the Redwood Indoor Lidar-RGBD Scan Dataset. When using this dataset, please cite the original source:
Jaesik Park, Qian-Yi Zhou and Vladlen Koltun, Colored Point Cloud Registration Revisited. ICCV, 2017.
There are two ways for using this repository. The easiest and recommended way is to build and use the provided docker image (see instructions below). Option 2 is to build to pipeline from scratch for OS of preference.
-
Clone this repository
-
Build docker image (the building can take a couple of minutes):
docker build -f Dockerfile . -t t3d_docker:latest
-
Run docker container (as jupyter server on port 8888):
docker run -v `pwd`/ipcp:/usr/app/ipcp -it -p 8888:8888 t3d_docker:latest
-
Check out the notebooks in jupter on port 8888 for a demonstration.
-
Clone this repository
-
Install CGAL and GLPK by following the instructions on their pages.
-
Build the C++ modules located in the cpp_modules folder using CMake.
-
Install the python dependencies (requires Python >=3.8):
python -m pip install -r requirements.txt
-
Using the notebook Complete Pipeline
-
Using command line
python script.py [-h] --in_file path [--out_folder path]
, e.g.:
python script.py --in_file './datasets/apt_subsampled.ply'
This repository was created by Falke Boskaljon for the City of Amsterdam.