TreeLearn
Code for the paper "TreeLearn: A deep learning method for segmenting individual trees from ground-based LiDAR forest point clouds"
Install / Use
/learn @ecker-lab/TreeLearnREADME
TreeLearn: A deep learning method for segmenting individual trees from ground-based LiDAR forest point clouds
Laser-scanned point clouds of forests make it possible to extract valuable information for forest management. To consider single trees, a forest point cloud needs to be segmented into individual tree point clouds. Existing segmentation methods are usually based on hand-crafted algorithms, such as identifying trunks and growing trees from them, and face difficulties in dense forests with overlapping tree crowns. In this study, we propose TreeLearn, a deep learning-based approach for tree instance segmentation of forest point clouds. TreeLearn is trained on already segmented point clouds in a data-driven manner, making it less reliant on predefined features and algorithms. Furthermore, TreeLearn is implemented as a fully automatic pipeline and does not rely on extensive hyperparameter tuning, which makes it easy to use. Additionally, we introduce a new manually segmented benchmark forest dataset containing 156 full trees. The data is generated by mobile laser scanning and contributes to create a larger and more diverse data basis for model development and fine-grained instance segmentation evaluation. We trained TreeLearn on forest point clouds of 6665 trees, labeled using the Lidar360 software. An evaluation on the benchmark dataset shows that TreeLearn performs as well as the algorithm used to generate its training data. Furthermore, the performance can be vastly improved by fine-tuning the model using manually annotated datasets. We evaluate TreeLearn on our benchmark dataset and the Wytham Woods dataset, outperforming the recent SegmentAnyTree, ForAINet and TLS2Trees methods. The TreeLearn code and all datasets that were created in the course of this work are made publicly available.
The paper can be found here. The data associated with the paper can be found here and here.
Updates!! 🚀
- 【2024/01/16】 Provide a new version of
model_weights_diverse_training_data.pththat produces visually more appealing results. - 【2024/06/19】 Faster algorithm for propagation of results to original point cloud (speeds up inference⚡).
- 【2024/12/17】 📊 Updated evaluation script so that the evaluation protocol from the paper can be run with arbitrary methods and forest point clouds.
- 【2024/12/17】 🆕 Added new model weights that were trained on crops without statistical outlier filtering (speeds up inference⚡).
- 【2025/01/02】 🆕 Our pipeline now also supports hdbscan for more flexible clustering with only a single hyperparameter.
Demo [Currently non-functional]
For a quick demo of the capabilities of TreeLearn without any manual setup, we prepared a google colab notebook:
<a target="_blank" href="https://colab.research.google.com/github/ecker-lab/TreeLearn/blob/main/TreeLearn_Pipeline.ipynb"> <img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab"/> </a>Due to an incompatibility between cuda 12.2 and spconv the colab notebook is currently non-functional.
Installation
To set up the environment we recommend Conda. If Conda is set up and activated, run the following:
source setup/setup.sh
Depending on the specific gpu and cuda version of your system, you might need to adjust the spconv version specified in setup/requirements.txt.
Segmentation pipeline
If you are not interested in training your own models, but only want to use pre-trained weights for forest segmentation, we refer to the segmentation pipeline guide.
Training
If you want to train a custom model for forest segmentation, we refer to the training guide
Evaluation
To evaluate the segmentation results of arbitrary methods on arbitrary benchmark datasets, we refer to the evaluation guide
Acknowledgements
Related Skills
YC-Killer
2.7kA library of enterprise-grade AI agents designed to democratize artificial intelligence and provide free, open-source alternatives to overvalued Y Combinator startups. If you are excited about democratizing AI access & AI agents, please star ⭐️ this repository and use the link in the readme to join our open source AI research team.
best-practices-researcher
The most comprehensive Claude Code skills registry | Web Search: https://skills-registry-web.vercel.app
groundhog
398Groundhog's primary purpose is to teach people how Cursor and all these other coding agents work under the hood. If you understand how these coding assistants work from first principles, then you can drive these tools harder (or perhaps make your own!).
isf-agent
a repo for an agent that helps researchers apply for isf funding
