Skip to content

Change detection pipeline for multi-year UAV LiDAR forest point clouds, identifying tree growth, decline, and morphological changes across space and time.

Notifications You must be signed in to change notification settings

Runan-Duan/uav-lidar-forest-change-detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Object-Based Change Detection for Forest Monitoring Using UAV LiDAR

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:

Installation

Prerequisites

Python 3.10, Rstudio, CloudCompare (for visualization)

Main packages

PDAL, Open3D, Laspy, Rasterio, Scipy, Geopandas, lidR

Environment setup

  1. Clone the repository:
git clone https://github.com/Runan-Duan/uav-lidar-forest-change-detection.git
  1. 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 open3d

Individual Tree Segmentation

Before 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.

2024: Forest point cloud acquired in 2024 2025: Forest point cloud acquired in 2025

Extrected crowns from both epochs: crown metrics

Object-based Change Analysis

For tree-level growth analysis, our OBCD workflow compose of four main stages:

  • Crowns Matching, using a pairwise cost function:

$$Cost(i, j) = (1 - IoU_{ij}) + \frac{d_{ij}}{{max_{dist}}} + \frac{|H_i - H_j|}{\max(H_i, H_j)}$$

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.

  • Change Classification (matched, lost, new, splits and merges) Classification
  • Growth Metric Calculation
  • Uncertainty Estimation

About

Change detection pipeline for multi-year UAV LiDAR forest point clouds, identifying tree growth, decline, and morphological changes across space and time.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published