This project presents a 3D change detection framework for long-term forest monitoring using multi-temporal UAV LiDAR datasets. This approch identifies tree growth, decline and mortality, by analyzing spatial and temporal variations in forest point clouds.
The overall workflow consists of two main procedures:
- Individual tree segmentation and feature extraction
- Object-based change analysis and with uncertainty estimation.
Python 3.10, Rstudio, CloudCompare (for visualization)
PDAL, Open3D, Laspy, Rasterio, Scipy, Geopandas, lidR
- Clone the repository:
git clone https://github.com/Runan-Duan/uav-lidar-forest-change-detection.git- Create and activate conda environment. We need to install Open3D via Pip because Conda doesn't support the latest package.
conda env create -f env.yml
conda activate forest_change
pip install open3dBefore segmentation, we first performed outlier removal, ground classification and registration on all epochs of the multitemporal point clouds, by executing JSON files in the preprocessing folders using PDAL commands.
pdal pipline preprocessing/classification.json --readers.las.filename="epoch1.laz" --writers.las.filename="epoch1_classified.laz"Individual tree segmentation follows the lidR tutorials, involving
- CHM generation and refinement
- Local maxima detection
- Crown delineation
- Crown metric extraction
The detailed functions calling could be found in file segmentation.Rmd
The side profiles of the two point clouds, acquired in 07, June 2024 and 13, June 2025, respectively, are shown below. The UAV-based point clouds were acquired in the same study area, Sandhausen, Heidelberg, Germany.
Visualization of segmented tree clusters in CloudCompare.
Extrected crowns from both epochs:

For tree-level growth analysis, our OBCD workflow compose of four main stages:
- Crowns Matching, using a pairwise cost function:
where IoU quantifies the geometric overlap, the normalized distances between the crown centroids and the normalized difference in tree heights capture the similarity between the pairs.


