This repository contains methods for the automatic extraction of urban street furniture from labeled PointClouds. It serves as a post-processing toolbox for our data fusion labeling approach, but it can also be used for point clouds that were labeled manually or by semantic segmentation algorithms, with minor modifications.
This is work in progress: for now, we only provide code to extract the location of pole-like objects. Further methods to extract other types of street furniture will follow. For more background on this project, please have a look at our accompanying blog post.
Example: visualization of one extracted pole.datasets
Demo dataset to get startedahn
AHN elevation databgt
Example building and tree datasets (from the BGT)pointcloud
Example urban point cloudspredictions
Example labels for urban point clouds
media/examples
Visualsnotebooks
Jupyter notebook tutorialssrc/upc_analysis
Python source code
-
Clone this repository:
git clone https://github.com/Amsterdam-AI-Team/Urban_PointCloud_Analysis.git
-
Install the dependencies:
pip install -r requirements.txt # optional requirements for Jupyter notebooks: pip install -r requirements-notebooks.txt
-
Additionally, install our Urban PointCloud Processing package:
pip install https://github.com/Amsterdam-AI-Team/Urban_PointCloud_Processing/releases/download/v0.1/upcp-0.1-py3-none-any.whl
-
Finally, install
cccorelib
andpycc
by following the instructions on their GitHub page. Please note, these two packages are not available on the Python Package Index (PyPi). -
Check out the notebooks for a demonstration.
The code has been tested with Python 3.8 on Linux, MacOS and Windows.
We provide tutorial notebooks that demonstrate how the tools can be used. Labeled example point clouds are provided to get started.
- Get labeled point clouds (for example with UPCP or RandLA-Net).
- Run Extract_poles.ipynb to extract all individual poles with some properties. It returns a csv file with one row per pole.
- Run Visualize_poles.ipynb (or visualize_poles.py) to create images for each pole. It returns 3 images per pole.
- Run the pole tagger tool to check and correct all individual poles visually.
NB. The notebooks Dataset_statistics is for additional analysis.
Feel free to help out! Open an issue, submit a PR or contact us.
This repository was created by Amsterdam Intelligence for the City of Amsterdam.
This project is licensed under the terms of the European Union Public License 1.2 (EUPL-1.2).