Giter Site home page Giter Site logo

harrydobbs / urban_pointcloud_processing Goto Github PK

View Code? Open in Web Editor NEW

This project forked from liuxinren456852/urban_pointcloud_processing

0.0 0.0 0.0 113.83 MB

Repository for automatic classification and labeling of Urban PointClouds using data fusion and region growing techniques.

License: GNU General Public License v3.0

Python 100.00%

urban_pointcloud_processing's Introduction

Urban PointCloud Processing

This repository contains methods for the automatic classification and labeling of Urban PointClouds using data fusion. The methods can serve as inspiration, or can be applied as-is under some specific assumptions:

  1. Usage in The Netherlands (The "Rijksdriehoek coordinate system");
  2. Point clouds in LAS format and tiled following specific rules; and
  3. Fusion with AHN and BGT public data sources.

Example notebooks are provided to demonstrate the tools.

Example: automatic labeling of a point cloud.

Example: automatic labeling of ground, buildings, cars, trees, street lights, and traffic signs.

Project Goal

The goal of this project is to automatically locate and classify various assets such as street lights, traffic signs, and trees in street level point clouds. A typical approach would be to build and train a machine learning classier, but this requires a rich labeled dataset to train on. One of the main challenges in working with 3D point cloud data is that, in contrast to 2D computer vision, no general-purpose training sets are available. Moreover, the sparsity and non-uniform density of typical point clouds makes transferring results form one task to another difficult.

However, since we are working with urban street level data, we do have access to a large number of public datasets and registries that we can use to start labeling and create an initial training set. This repository contains several data fusion methods that combine public datasets and registries such as elevation data and building footprints to automatically label point clouds.

We also provide some post-processing methods that further fine-tune the labels. For example, we use region growing to extend the facade of buildings to include protruding elements such as balconies and canopies that are not included in the building footprint.

For a quick dive into this repository take a look at our complete solution notebook.


Folder Structure


Installation

  1. Clone this repository:

    git clone https://github.com/Amsterdam-AI-Team/Urban_PointCloud_Processing.git
  2. Install all dependencies:

    pip install -r requirements.txt

    Additionally, install cccorelib and pycc by following the instructions on their GitHub page.

  3. Check out the notebooks for a demonstration.


Usage

We provide tutorial notebooks that demonstrate how the tools can be used.

For visualisation of the resulting labelled point clouds we suggest CloudCompare. Simply open the labelled .laz in CloudCompare, select the cloud, and set Colors to the custom Scalar Field named label. For best results, use our custom color scale, and set "steps" to 100.


Citing our work

If you use (parts of) this repositiory in your work, please cite our paper:

@article{bloembergen2021automatic,
  title={Automatic labelling of urban point clouds using data fusion},
  author={Bloembergen, Daan and Eijgenstein, Chris},
  journal={arXiv preprint arXiv:2108.13757},
  year={2021}
}

Acknowledgements

This repository was created by Amsterdam Intelligence for the City of Amsterdam.

We owe special thanks to Dr. Sander Oude-Elberink for ideas and brainstorming regarding data fusion with AHN and BGT data.

urban_pointcloud_processing's People

Contributors

daanbl avatar chrise96 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.