terlidar

TerLiDAR Dataset & Our work in LoRA for PointNet++ in Airborne LiDAR Semantic Segmentation

Parameter‑efficient fine‑tuning (LoRA) for 3D point cloud semantic segmentation with PointNet++, evaluated on airborne LiDAR datasets.

License: MIT License: CC BY 4.0 Python PyTorch

⬇️ TerLiDAR Dataset Download

Please respond to the form to receive the link to download the dataset: Link to form

💡 Overview

This repository contains code and assets accompanying the paper:

Efficient Task and Domain Adaptation in ALS Semantic Segmentation via LoRA for PointNet++
Semantic segmentation of airborne LiDAR point clouds enables a broad range of urban and environmental applications. However, domain shifts between training and operational data, as well as the frequent emergence of new semantic classes, pose significant challenges for deploying deep learning models effectively. In this work, we explore the integration of Low-Rank Adaptation (LoRA), a parameter-efficient fine-tuning technique, into the PointNet++ architecture to address these challenges. We evaluate LoRA in two realistic scenarios: domain adaptation and incremental learning with novel classes, using subsets of large-scale LiDAR datasets under constrained labeled data settings. Our experiments show that LoRA outperforms traditional full fine-tuning, achieving notable gains (+3.1 IoU for specific classes and +0.3 mIoU on TerLiDAR, +2.7 mIoU on DALES), while exhibiting greater resistance to catastrophic forgetting and improved generalization, particularly for underrepresented classes. Furthermore, LoRA exceeds baseline accuracy with substantially fewer trainable parameters (73.4% reduction), highlighting its suitability for resource-constrained deployment scenarios. We also present TerLiDAR, a publicly available annotated airborne LiDAR dataset covering 51.4 km^2 along the Ter River in Catalonia, Spain. It contributes to increasing the diversity of semantic segmentation benchmarks and advancing 3D scene understanding in remote sensing.

📄 Paper link: Read the paper on ScienceDirect

Model teaser

PN++ architecture. Set Abstraction (SA) layers sample input points, group them, and apply PointNet to obtain high-dimensional representations. Feature Propagation (FP) layers upsample points and propagate features back to the original resolution.

LoRA applied to PointNet++

Model teaser

Orange boxes indicate trainable modules. The input point cloud is represented as x ∈ ℝN×D, where N is the number of input points and D is the number of input features. Each layer processes local neighborhoods, where Nl is the number of sampled points at each level l, K is the number of neighboring points in the local region, and Din and Dout are the input and output feature dimensions. The output of the network is a per-point semantic prediction y ∈ ℝN×C, where C is the number of semantic classes.

✨ Key Contributions

TerLiDAR Dataset

We present TerLiDAR, a fully open and annotated airborne LiDAR dataset that covers 51.4 km² of urban and forested areas along the Ter River in Catalonia, Spain. The data were acquired in July 2021 using an ALS system mounted on a georeferenced aircraft operated by ICGC. The dataset comprises 692 million colorized 3D points, each annotated with one of the semantic classes listed in the paper.

TerLiDAR coverage area

Geographic coverage of the TerLiDAR dataset along the Ter River in Catalonia, Spain.

Model teaser

The classes are described as follows:

  1. Default – Points that could not be classified during the classification process.
  2. Ground – Points belonging to the terrain.
  3. Low vegetation – Points corresponding to low vegetation such as shrubs, crops, and the lower parts of trees (0.3 m < height ≤ 2.0 m).
  4. Medium vegetation – Points belonging to medium vegetation, which may include taller shrubs, crops, and parts of tree canopies (2.0 m < height ≤ 3.0 m).
  5. High vegetation – Points corresponding to high vegetation, primarily points within tree canopies (height > 3.0 m).
  6. Buildings – Points generally classified on building rooftops.
  7. Low Points – Points with negative height relative to the ground, usually sensor noise.
  8. Ground key points – Simplified points previously classified as ground (Class 2), used for constructing the Digital Terrain Model.
  9. Air points – Points detected above the terrain, often spurious returns.
  10. Other ground points – Points near the ground, such as those pertaining to grass, that could not be classified as ground.
  11. Power lines – Points representing electric power lines.
  12. Transmission tower – Points representing electrical towers.
  13. Façade – Points belonging mostly to building façades.
  14. Above buildings – Points located above buildings, such as chimneys, solar panels, or awnings.
  15. Other towers – Points corresponding to towers not classified as transmission towers (e.g. observation towers).
  16. Noise – Points identified as noise produced by the sensor.

TerLiDAR example point clouds TerLiDAR example point clouds

Visualization of a LAS tile using RGB values and corresponding semantic classes.

Proposed Split

📊 Proposed Data Split

To ensure reproducible results and a fair evaluation of the model, we propose the following split between training and testing data:

Split Type Block IDs Description
Test Set pt438656, pt438652, pt438658 Held-out blocks for final evaluation.
Train Set All remaining blocks Used for model optimization and cross-validation.

Please adhere to this split when reporting results to ensure benchmarks remain comparable across different runs.

📦Code and Environment

Code here

Environment:

Quick setup:

conda create -n lora-pn2 python=3.10 -y
conda activate lora-pn2
pip install -r requirements.txt

License

This project is dual-licensed:

Git Hub Pages

Git Hub Pages