/ODMSemantic3D

An open photogrammetry dataset of classified 3D point clouds for automated semantic segmentation. CC BY-SA 4.0

Primary LanguageShellOtherNOASSERTION

ODMSemantic3D - An open photogrammetry dataset of classified 3D point clouds for automated semantic segmentation

Datasets are automatically trained and evaluated with OpenPointClass and the latest AI models can be downloaded from the releases page.

The resulting models are used to improve the automated classifier in ODM.

Contribute a point cloud

We recommend to process an image dataset with ODM or WebODM and turn on the pc-classify option, which will automatically assign classification values to a point cloud. Some will be incorrect, but it's easier than starting from scratch.

Once you have generated a point cloud (odm_georeferenced_model.laz), you can import it in CloudCompare. Use the latest stable release, not the alpha versions.

Then:

  • Select Properties > Scalar field > Classification.

If you are starting from an unclassified point cloud you can initialize the classification values by going to Edit > Add scalar field > Classification

add-scalar-field

  • Start classifying/cleaning the point cloud by going to Edit > Segment (press T)

  • Draw a polygon around the points you want to classify. Right click closes the polygon.

  • Press C to assign ASPRS LAS codes:

At a minimum, the point cloud should have the following classification codes:

Class Number Description
ground 2 Earth's surface such as soil, gravel, or pavement
low_vegetation 3 Any generic type of vegetation like grass, bushes, shrubs, and trees
building 6 Man-made structures such as houses, offices, and industrial buildings
human_made_object 64 Any artificial objects not classified as buildings, such as vehicles, street furniture

classify-proc

  • When you are done, you can export the point cloud by going to File > Save as... and selecting the .laz format. Select LAZ version 1.2 when exporting the file to .laz (not 1.3 or 1.4, which have issues with CloudCompare).

Open a pull request

You can contribute to this repository by adding new point clouds. They will be automatically evaluated and trained for you! To do so, you need to follow these steps:

create-fork

  • Create the fork in your account

create-fork-next

  • In your fork, open the datasets folder

click-on-datasets-folder

  • In the top right corner, click on Add file -> Upload files

upload-files

  • Upload the classified point cloud (.lazonly) by dragging them to the upload area or by clicking onchoose your files`.
  • If your point cloud is larger than 25MB, you will need to add the file by first making a local clone, add the file to the datasets folder, commit and then push
  • Describe the point cloud you are adding in the commit message field and select Create a new branch, then click on Commit changes

commit-changes

  • Click on compare across forks and select OpenDroneMap/ODMSemantic3D repository as base and main as base branch. Add a title and a description for the pull request and click on Create pull request

create-pull-request

  • Github will run the training automatically and will post evaluation statistics in the pull request as a comment.

  • If the PR is accepted, the point cloud will be added to the repository and the new model will be published in a new release.

Citation

OpenDroneMap Contributors: ODMSemantic3D - An open photogrammetry dataset of classified 3D point clouds for automated semantic segmentation. https://github.com/OpenDroneMap/ODMSemantic3D