--- library_name: pytorch tags: - point-cloud - point-cloud-backbone - self-supervised-learning - lidar - forest - pytorch authors: - Yuanwen Yue - Stefano Puliti - Damien Robert - Atakan Topaloğlu - Binbin Xiang - Maciej Wielgosz - Jan Dirk Wegner - Rasmus Astrup - Christian Rupprecht - Konrad Schindler --- This repository contains model weights for the paper **Toward A Foundation Model for Forest Point Clouds**. ForPT pretrains a [LitePT](https://github.com/prs-eth/LitePT) backbone on a large corpus of unlabeled airborne (ALS), UAV (ULS) and mobile (MLS) laser scans covering diverse forest ecosystems. It is evaluated on four forestry tasks: semantic segmentation, instance segmentation, tree species classification and tree age regression. Self-supervised pretraining accelerates convergence, improves performance when annotations are scarce, and transfers better than task-specific supervised pretraining. ## Paper & Resources - **Arxiv:** [https://arxiv.org/abs/2609.24787](https://arxiv.org/abs/2609.24787) - **Project Page:** [https://prs-eth.github.io/ForPT](https://prs-eth.github.io/ForPT) - **Codebase:** [https://github.com/prs-eth/ForPT](https://github.com/prs-eth/ForPT) ## Models We release the pretrained backbone and the downstream models for the benchmarks reported in our paper. ### Pretrained backbone | Model | Params | Pretraining data | Config | Checkpoint | |:-|-:|:-:|:-:|:-:| | ForPT (LitePT-S) | 12.4M | ForPT corpus | [link](https://github.com/prs-eth/ForPT/blob/main/configs/00_ssl_pretrain/pretrain-forpt.py) | [Download](https://huggingface.co/prs-eth/ForPT/resolve/main/00_ssl_pretrain/pretrain-forpt/model/epoch_30.pth) | ### Downstream tasks (100% labels) | Task | Benchmark | Model | Config | Checkpoint | |:-|:-:|:-|:-:|:-:| | Semantic segmentation | FOR-instanceV2 | LitePT-scratch | [link](https://github.com/prs-eth/ForPT/blob/main/configs/01_forinstancev2_sem/semseg-litepts-scratch-p100.py) | [Download](https://huggingface.co/prs-eth/ForPT/resolve/main/01_forinstancev2_sem/semseg-litepts-scratch-p100/model/model_best.pth) | | | | ForPT-linear probing | [link](https://github.com/prs-eth/ForPT/blob/main/configs/01_forinstancev2_sem/semseg-forpt-lin-p100.py) | [Download](https://huggingface.co/prs-eth/ForPT/resolve/main/01_forinstancev2_sem/semseg-forpt-lin-p100/model/model_best.pth) | | | | ForPT-decoder probing | [link](https://github.com/prs-eth/ForPT/blob/main/configs/01_forinstancev2_sem/semseg-forpt-dec-p100.py) | [Download](https://huggingface.co/prs-eth/ForPT/resolve/main/01_forinstancev2_sem/semseg-forpt-dec-p100/model/model_best.pth) | | | | ForPT-finetune | [link](https://github.com/prs-eth/ForPT/blob/main/configs/01_forinstancev2_sem/semseg-forpt-ft-p100.py) | [Download](https://huggingface.co/prs-eth/ForPT/resolve/main/01_forinstancev2_sem/semseg-forpt-ft-p100/model/model_best.pth) | | Instance segmentation | FOR-instanceV2 | Coming soon | - | - | | Species classification | FOR-species20K | LitePT-scratch | [link](https://github.com/prs-eth/ForPT/blob/main/configs/03_forspecies20k/cls-litepts-scratch-allpts.py) | [Download](https://huggingface.co/prs-eth/ForPT/resolve/main/03_forspecies20k/cls-litepts-scratch-allpts/model/model_last.pth) | | | | ForPT-linear probing | [link](https://github.com/prs-eth/ForPT/blob/main/configs/03_forspecies20k/cls-forpt-lin-allpts.py) | [Download](https://huggingface.co/prs-eth/ForPT/resolve/main/03_forspecies20k/cls-forpt-lin-allpts/model/model_last.pth) | | | | ForPT-finetune | [link](https://github.com/prs-eth/ForPT/blob/main/configs/03_forspecies20k/cls-forpt-ft-allpts.py) | [Download](https://huggingface.co/prs-eth/ForPT/resolve/main/03_forspecies20k/cls-forpt-ft-allpts/model/model_last.pth) | | Age regression | FORage | LitePT-scratch | [link](https://github.com/prs-eth/ForPT/blob/main/configs/04_forage/age-litepts-scratch-p100.py) | [Download](https://huggingface.co/prs-eth/ForPT/resolve/main/04_forage/age-litepts-scratch-p100/model/model_best.pth) | | | | ForPT-linear probing | [link](https://github.com/prs-eth/ForPT/blob/main/configs/04_forage/age-forpt-lin-p100.py) | [Download](https://huggingface.co/prs-eth/ForPT/resolve/main/04_forage/age-forpt-lin-p100/model/model_best.pth) | | | | ForPT-finetune | [link](https://github.com/prs-eth/ForPT/blob/main/configs/04_forage/age-forpt-ft-p100.py) | [Download](https://huggingface.co/prs-eth/ForPT/resolve/main/04_forage/age-forpt-ft-p100/model/model_best.pth) | To download all checkpoints into the layout expected by the configs, run from the root of the [ForPT codebase](https://github.com/prs-eth/ForPT): ```shell hf download prs-eth/ForPT --local-dir weights --exclude ".gitattributes" --exclude "README.md" ``` ## Citation ``` @article{yue2026forpt, title={Toward a foundation model for forest point clouds}, author={Yue, Yuanwen and Puliti, Stefano and Robert, Damien and Topalo{\u{g}}lu, Atakan and Xiang, Binbin and Wielgosz, Maciej and Wegner, Jan Dirk and Astrup, Rasmus and Rupprecht, Christian and Schindler, Konrad}, journal={arXiv preprint arXiv:2609.24787}, year={2026} } ```