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.
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
-
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 |
- 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).
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:
- Register on github.com (if you haven't already)
- Open the ODMSemantic3D repository
- Click on the Fork button in the top right corner
- Create the fork in your account
- In your fork, open the
datasets
folder
- In the top right corner, click on
Add file -> Upload files
- Upload the classified point cloud (.laz
only) by dragging them to the upload area or by clicking on
choose 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 onCommit changes
- Click on
compare across forks
and selectOpenDroneMap/ODMSemantic3D
repository as base andmain
as base branch. Add a title and a description for the pull request and click onCreate 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.
OpenDroneMap Contributors: ODMSemantic3D - An open photogrammetry dataset of classified 3D point clouds for automated semantic segmentation. https://github.com/OpenDroneMap/ODMSemantic3D