Skip to content

Synthetic tree dataset, links to data and scripts for processing and evaluation

License

Notifications You must be signed in to change notification settings

uc-vision/synthetic-trees

Repository files navigation

🌳🌲🌴 Synthetic-Trees 🌴🌲🌳

📝 Description

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.

🔍 Usage

💾 Downloading

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.

🖥️ Installation

To install: Create a conda environment:

conda create -n synthetic-trees python=3.8

then:

pip install .

🕵️‍♂️ Visualizing

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.

📊 Evaluation

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.

📋 Processing Results

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.

📜 Citation

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}
}

📥 Contact

Should you have any questions, comments or suggestions please use the following contact details: harry.dobbs@pg.canterbury.ac.nz

About

Synthetic tree dataset, links to data and scripts for processing and evaluation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages