This repository offers a synthetic point cloud dataset with ground truth skeletons of multiple species. Our library enables you to open, visualize, and assess the accuracy of the skeletons. To gain insight into how we created the data and the evaluation metrics employed, please refer to our published paper, available at this link. Our dataset consists of two parts: one with point clouds that feature foliage, which is particularly useful for training models that can handle real-world data that includes leaves; the other contains only the branching structure and is less affected to occlusion.
Sapling Cherry Point Cloud. | Apple Tree Point Cloud. | Pine Tree Point Cloud. |
Sapling Cherry Ground Truth Skeleton. | Apple Tree Ground Truth Skeleton. | Pine Tree Ground Truth Skeleton. |
You can download the data by following this link. The dataset includes synthetic point clouds and ground truth skeletons, along with a JSON file that specifies the training, validation, and test sets. For evaluation purposes, we have provided "cleaned" point clouds and skeletons in the evaluation folder, which are suitable for assessment.
To install: Create a conda environment:
conda create -n synthetic-trees python=3.8
then:
pip install .
To visualize the data, use the visualize.py
script. You can call it using either:
view-synthetic-trees -p=file_path -lw=linewidth
or
view-synthetic-trees -d=directory -lw=linewidth
where:
file_path
is the path of the.npz
file of a single tree.directory
is the path of the folder containing.npz
files.linewidth
is the width of the skeleton lines in the visualizer.
To evaluate your method against the ground truth data, use the evaluate.py
script. You can call it using:
evaluate-synthetic-trees -d_gt=ground_truth_directory -d_o=output_directory -r_o=results_save_path
where:
ground_truth_directory
is the directory of the ground truth.npz
files.output_directory
is the directory of the folder containing your skeleton outputs (in.ply
format).results_save_path
is the path of the.csv
file to save your results to.
After running the evaluation, you can use the process_results.py
script to post-process the raw results and obtain metrics across the dataset. Call it using:
process-synthetic-trees-results -p=path
where: path
is the path of the results .csv
file from the evaluation step.
Please use the following BibTeX entry to cite our work:
@inproceedings{dobbs2023smart,
title={Smart-Tree: Neural Medial Axis Approximation of Point Clouds for 3D Tree Skeletonization},
author={Dobbs, Harry and Batchelor, Oliver and Green, Richard and Atlas, James},
booktitle={Iberian Conference on Pattern Recognition and Image Analysis},
pages={351--362},
year={2023},
organization={Springer}
}
Should you have any questions, comments or suggestions please use the following contact details: harry.dobbs@pg.canterbury.ac.nz