Airborne Light Detection and Ranging (LiDAR) provides high-density, three-dimensional point clouds that capture detailed forest structure with centimetre-level vertical precision. Individual tree detection (ITD) from LiDAR data is a foundational workflow in forestry remote sensing, enabling applications such as tree-level biomass estimation, stem density mapping, and forest inventory validation.
This lab explores two fundamentally different ITD approaches implemented in the lidR R package: (1) a direct point-cloud-based method using the algorithm of Li et al. (2012), and (2) a Canopy Height Model (CHM)-based method using the algorithm of Dalponte and Coomes (2016). Both methods were applied to four 154 m diameter circular plots extracted from a 20-tile LAS catalog covering Malcolm Knapp Research Forest (MKRF), British Columbia.
The plots span a range of forest structures — from an open clearcut with isolated residual trees (Plot 1) to dense, multi-layered closed-canopy forest (Plots 2–4) — allowing comparison of algorithm performance across different stand conditions. For the CHM-based approach, the effect of raster resolution (0.5 m, 2 m, 4 m, and 10 m) on segmentation quality was also assessed.
Four plot locations were extracted from a pre-normalised LAS catalog of MKRF. Each plot was clipped as a 77 m radius circle using clip_circle(), and points below 0 m or above 65 m were removed as outliers using filter_poi(). Plot 1 (X = 531704.75, Y = 5462033) is located in a clearcut with well-separated residual trees. Plots 2–4 represent progressively denser closed-canopy conditions.
The segment_trees() function was applied with the li2012() algorithm to all four plots. This method operates directly on the 3D normalised point cloud without requiring any intermediate raster. It seeds from the tallest point in the cloud and grows tree segments downward using adaptive distance thresholds that switch at a height breakpoint (Zu). Default parameter values recommended by Li et al. (2012) were used throughout.
| Parameter | Value | Description |
|---|---|---|
dt1 | 1.5 m | Adaptive distance threshold for points below Zu |
dt2 | 2.0 m | Adaptive distance threshold for points above Zu |
R | 2 m | Search radius around local maxima seed points |
Zu | 15 m | Height breakpoint separating dt1 and dt2 thresholds |
hmin | 2 m | Minimum height for a point to initiate a new tree |
speed_up | 10 m | Maximum search area radius; caps computational cost |
For the CHM-based approach, pit-free CHMs were generated using rasterize_canopy() with the pitfree() algorithm. Triangulation height thresholds of 0, 10, 20, and 30 m were used with a 20 cm sub-circle radius to fill pits and a maximum edge length of 1 m. For Plot 1 a single 0.5 m CHM was produced. For Plot 2, CHMs were generated at four resolutions — 0.5 m, 2 m, 4 m, and 10 m — to assess resolution sensitivity.
Tree tops detected by the local maximum filter (lmf, 5 m circular window, 2 m minimum height) served as seed points for the dalponte2016() region-growing algorithm. Crown boundaries were grown from each seed using two fractional-height thresholds: th_seed for the initial seed region and th_cr for subsequent crown expansion. Segmentation was performed for Plot 2 at all four CHM resolutions to evaluate how pixel size affects tree delineation accuracy.
| Parameter | Value | Description |
|---|---|---|
ws | 5 m | Circular moving window radius for local maximum filter |
th_tree | 2 m | Minimum CHM height to be labelled as a tree |
th_seed | 0.45 | Fraction of tree-top height required for seed region |
th_cr | 0.55 | Fraction of tree-top height for crown expansion |
max_cr | 10 m | Maximum allowed crown radius |
The pit-free CHM at 0.5 m resolution clearly captured the isolated tree crowns within Plot 1's clearcut environment. Individual canopy clusters are well defined against the low-vegetation background, with tree heights ranging from approximately 10 m to 42 m. The yellow peaks in each crown blob correspond to the apex of each tree.
The local maximum filter detected 51 tree tops within Plot 1. Most red crosses (+) are correctly located at the apex of visible canopy blobs. A small number of false positives appear in the low-vegetation inter-crown areas, likely corresponding to small regenerating vegetation rather than mature trees. These could be reduced by increasing the hmin threshold.
CHMs generated for Plot 2 at four spatial resolutions highlight the trade-off between detail and generalisation. At 0.5 m, individual crown boundaries are clearly resolved and inter-crown gaps (low-return areas) are preserved. As resolution coarsens to 2 m and 4 m, adjacent crowns begin to merge and gaps fill in, making individual tree tops harder to distinguish. At 10 m, the CHM retains only broad height trends and most crown-scale variation is lost — making accurate tree-top detection and subsequent segmentation unreliable.
The Dalponte2016 algorithm was applied to Plot 2 using the 2 m CHM. The 3D point cloud coloured by tree ID shows distinct crown clusters, each assigned a unique colour. The segmentation performs well for the larger dominant trees whose crowns are clearly expressed in the CHM. Smaller suppressed trees in the understorey are more difficult to resolve and may be absorbed into the crown of a neighbouring dominant, which is a known limitation of CHM-based approaches in closed-canopy forests.
Li et al. (2012) begin classification at the tree top — the tallest point in the point cloud — because this is where neighbouring crowns are most spatially separated. Growing segments downward from the apex exploits the natural funnel geometry of conifer crowns. This top-down strategy reduces the misclassification risk that would arise from starting in the densely overlapping lower canopy.
The Dalponte and Coomes (2016) approach is inherently two-dimensional in its segmentation logic but benefits from an adjustable two-stage threshold: th_seed tightly constrains the initial seed region to the brightest canopy pixels near each tree top, while the more permissive th_cr then expands the crown boundary outward. This separation prevents small adjacent crowns from being prematurely absorbed during seeding while still allowing the full crown to be captured during expansion.
Across the four plots, Li2012 performed best in Plot 1, where the open clearcut structure matched the algorithm's design conditions of well-separated crowns. In denser Plots 2–4, both methods encountered increasing crown overlap and inter-tree competition for points. A 0.5 m CHM resolution is recommended for MKRF-wide Dalponte2016 segmentation, as it preserves the crown-scale structural detail necessary for accurate tree-top detection and crown boundary delineation.