The Deciduous Tree Crown Segmentation Challenge
Deciduous tree crown segmentation is widely recognized as a particularly challenging task. While various approaches for conifer crown delineation have proven successful, their transferability to deciduous forest stands remains limited. Accurate crown segmentation constitutes a critical prerequisite for assessing the vitality of individual deciduous trees based on spectral or structural metrics. In particular, in dense deciduous stands characterized by closed canopy cover, methods relying on local height maxima of the canopy surface model (e.g., local maxima and region-growing approaches) or template-matching techniques have shown only limited success.
More effective concepts published for TLS, MLS and UAV based LiDAR data are based on a bottom-up strategy, originating from the stem base rather than following a top-down approach initiated from canopy height maxima. Such methods require both leaf-off and leaf-on acquisitions of the deciduous stands, or TLS measurements with clearly detectable stem bases in the LiDAR dataset.
Within the Park3D project, all park areas were surveyed using UAV-based LiDAR (DJI L2 LiDAR) with approx 800 pnts/sqm under both leaf-on and leaf-off conditions. The resulting point clouds were systematically processed to the canopy height model (CHM) level.
For crown delineation in in the historical park regions of Park3D, a procedure was developed that automatically detects crown stem-bases by point density/cluster properties and subsequently reconstructs the three-dimensional branch architecture up to the crown periphery using a voxel-based approach. Crown segments are then generated on the basis of the reconstructed branch structure. The approach is comparable to that implemented by Trochta et al. 2017 im 3D Forest software for TLS data but mainly relies on voxel descriptions. Every Voxel is a node in a graph, edge search is fully controlled by a set of transparent control variables. The concept is controlled by 1. the possible crown diameter range and tree height range (this excludes very small trees below 5m f.e. and crowns below 9 sqm area), 2. the stem diameter range, 3. delta height calculations for stand gap detection (avoids growing of crowns into stand gaps), 4. minimum point density for tree detection (a filtering step, the pipeline avoids very low point density trees to be included) and 5. maximum horizontal stem-to-tree-crown height-max distance (this excludes trees with tops far away horizontally from the stem position). The resulting crown segmentation and individual tree point cloud files could directly be included in quantitative tree structure models (QSM).
The full workflow is implemented in R/Python with Metal GPU support using PyTorch MPS (Metal Performance Shaders), reticulate, future.apply, parallelly (lidR, sf, terra, DBSCAN, NumPy, Scipy, Torch, MPS) on Apples M4Max architecture (16 Cores: 12P + 4E, 128 GB RAM),
Larger datasets create a “vector memory exhausted” error. For larger datasets a tile wrapper is used (lidR clip_rectangle with overlap) that tiles into multiple overlapping tile-sets and always neglects stems in the respective buffer zone. The tile management starts parallel tile processing instead of sequential tile processing and effectively uses the full hardware processing power.
- Wrapper for tiles generation (no. of points versus memory),
- import of leaf-on and leaf-off CHM point cloud datasets,
- estimation of stem coordinates at breast height (by density),
- voxelation of the point cloud,
- neighborhood graph analysis using Dijkstra algorithm for every voxel from stem positions,
- export of shapefile polygons, individual LAS files per tree, and voxel-based 3D PLY models,
- automatic export of stand-level analytics based on voxel-derived metrics, including frequency analysis of tree height, DBH, crown diameter versus height relationships, voxel sum volume, and the spatial (horizontal) distance between treetop coordinates and stem coordinates.
Compared to conventional top-down approaches, this concept provides a highly reliable individual tree delineation within the full point cloud and enables fully automated segmentation into individual tree point cloud files using fused leaf-on/off datasets. The approach is fully structural based and does not rely on deep learning with external training tree objects. However, since the pipeline is mainly leaf-off based the crown extends and volume are usually underestimated.



Fig. 3: Buttom-Up tree crown segmentation results using stem positions – including shader visualization and ground height removed.

Fig. 4: Full Park Sanssouci area – segmented into individual tree objects (15306 trees) using a voxel based bottom-up approach (buildings were filtered out using a building mask – no automatic building detection).
The next logical step is the reconstruction of quantitative structural tree models (QSMs) from the segmented crowns. Applying TreeQSM to these UAV-derived point clouds will remain challenging due to the substantially lower point density and increased occlusion compared with terrestrial laser scanning (TLS) data. Nevertheless, integrating QSM-based reconstruction represents a crucial methodological advancement for this type of dataset.
Even under reduced geometric completeness, QSM approaches may enable the extraction of biologically and ecologically relevant structural descriptors such as branch length distributions, branching topology, crown dimensionality, volume allocation and structural complexity metrics. Especially 3D topolgy-aware metrics and mechanistic structure-function relationships are very strong justifications for this approach both in ecology and forestry. These parameters could substantially improve the detection and quantification of crown vitality, drought stress responses, biomechanical adaptation, and early decline processes in deciduous trees.
R-Libs: lidR: LAS-I/O, Kronendachmodellrasterung (Roussel et al.). sf: Shapefile-Export, räumliche Operationen (Pebesma 2018). terra: Rasteroperationen und Lückenmaske (Hijmans 2024). data.table: hochperformante tabellarische Operationen und Voxel-Indexierung (Dowle & Srinivasan). dbscan: DBSCAN-Clustering und Fixed-Radius-Nachbarsuche (Hahsler et al.). concaveman: Konkave-Hüll-Polygone (Mapbox-Implementierung). reticulate: R-Python-Schnittstelle (Ushey et al.). future und future.apply: parallelisierte Berechnungen.
Python-Module: numpy: Array-Operationen. scipy: cKDTree für 3D-Nachbarschaftssuche, sparse CSR-Matrix für den Graphen, torch: Metal Performance Shaders (MPS) GPU-Beschleunigung auf Apple Silicon.
Algorithms: DBSCAN: Ester, M., Kriegel, H.-P., Sander, J. & Xu, X. (1996). Kåsa-Kreisfit: Kåsa, I. (1976). Multi-Source Dijkstra: Dijkstra, E. W. (1959), Multi-Source-Variante mit Python heapq auf scipy.sparse CSR-Graphen. Concaveman: Park, J.-S. & Oh, S.-J. (2012). p2r-Rasterisierung: Point-to-Raster via lidR.
Jan Trochta, Martin Krcek, Tomas Vrska, and Kamil Kral, 2017. 3D Forest: An application for descriptions of three-dimensional forest structures using terrestrial LiDAR. PloS one, 12(5):e0176871, 2017. doi: https://doi.org/10.1371/journal.pone.0176871.