Laser scanning is an effective tool for acquiring geometric attributes of trees and vegetation, which lays a solid foundation for 3-dimensional tree modelling. Existing studies on tree modelling from laser scanning data are vast. However, some works cannot guarantee sufficient modelling accuracy, while some other works are mainly rule-based and therefore highly depend on user inputs. In this paper, we propose a novel method to accurately and automatically reconstruct detailed 3D tree models from laser scans. We first extract an initial tree skeleton from the input point cloud by establishing a minimum spanning tree using the Dijkstra shortest-path algorithm. Then, the initial tree skeleton is pruned by iteratively removing redundant components. After that, an optimization-based approach is performed to fit a sequence of cylinders to approximate the geometry of the tree branches. Experiments on various types of trees from different data sources demonstrate the effectiveness and robustness of our method. The overall fitting error (i.e., the distance between the input points and the output model) is less than 10 cm. The reconstructed tree models can be further applied in the precise estimation of tree attributes, urban landscape visualization, etc. The source code of this work is freely available at

Trees are an important component throughout the world. They form and function in natural ecosystems such as forests, and also in human-made environments for instance parks and gardens [

The traditional way of measuring trees is to manually conduct fieldwork, which is usually expensive and time-consuming [

Recently, Light Detection and Ranging (LiDAR) technology have been widely used in forestry-related analysis and studies. As measurements from LiDAR can achieve millimeter-level of details from objects, it has become possible to directly capture 3D information and rapidly estimate tree attributes [

To achieve accurate tree modelling from laser scans, both the branch geometry and the tree topological structure are required. Among most literature studies, the common approach to obtain the tree branch geometry is cylinder-fitting [

Unlike segmentation-based approaches that reconstruct the tree topological structure from small segments and subsets, skeleton-based methods directly extract skeleton curves from raw input point clouds. Some works employ a rule-based procedural modelling approach to synthesize branches [

In this paper, we propose a skeleton-based approach to accurately reconstruct tree branches from individual tree point clouds. Our method employs a Minimum Spanning Tree (MST) algorithm to effectively extract the initial tree skeleton over input points. By iterative skeleton simplification and cylinder fitting, we obtain a tree model with reconstructed branches. Leaves and textures are added to enhance the realism of the tree model. One novelty of our work is that we construct the initial tree skeleton based on the intrinsic spatial distribution of input points. Furthermore, we develop a specific simplification strategy to maintain the natural topological structure of tree branches while collapsing redundant vertices and edges. Our experiments and various comparisons demonstrate both the geometrical correctness and the topological fidelity of the generated tree models.

This work focuses on 3D modeling of real-world trees from point clouds. Thus, the expected solution to this problem needs to fulfill the following requirements:

The input to our method is a point cloud of a single tree, which is typically contaminated by noise and outliers but is expected to convey the major branch structure of the tree. We assume that individual trees have already been segmented from the point cloud and the segmentation of multiple trees is out of the scope of this work. In practice, the segmentation can be achieved using an interactive technique or various machine learning approaches such as [

In

Based on the fact that points close to each other are likely to belong to the same branch, we construct an MST graph over the input point cloud to represent the initial tree skeleton. To extract an MST over input points, we first apply Delaunay triangulation to construct an initial graph. Delaunay triangulation lays the foundation for MST computation as most efficient approaches find a minimum spanning tree among edges in the Delaunay triangulation of the points [

We address this problem by intentionally centralizing points that belong to the main branches of the tree. The aim is to generate condensed branches for better skeleton extraction. Point density near bifurcations or branch tips often changes sharply, while points within a single branch have more stable point density (

The initial tree skeleton extracted from the input point cloud has a large number of redundant vertices and edges. Most redundant vertices and small edges do not contribute to the tree skeleton shape and thus are of little importance and should be removed to further simplify the tree skeleton. The simplification is conducted in two major steps. We first assign importance values to vertices and edges, based on which small noisy components can be removed. Then, we iteratively check the proximity between adjacent vertices and merge nearby vertices.

We assign importance values to vertices and edges in the initial tree skeleton to further guide the simplification process. Our goal is to keep important vertices and main branch edges while ignoring short branches and noisy points. Previous work [

Instead of weighting points based on the local point density, we weight each vertex according to the length of the subtree. The subtree of a given vertex

Having eliminated small noisy branches with relatively low importance, we notice that many redundant vertices and edges still exist as they have similar positions and orientations as vertices and edges within their neighborhood. To simplify those similar components, we iteratively check the proximity between adjacent vertices. A similarity indicator

For a vertex which has only one single child, the skeleton simplification becomes a line simplification problem. We apply Douglas-Peucker method to simplify line segments as it is regarded as the most effective line simplification algorithm [

For a vertex having multiple children vertices, the similarity indicator

The smaller the indicator value, the more similar the two vertices. If

Based on the simplified tree skeleton, we further reconstruct the tree geometry. To precisely model the geometry of tree branches, we apply a cylinder-fitting approach. According to [

The main trunk close to the tree base area typically has the highest density of supportive points. We exploit an optimization-based approach to obtain accurate branch geometry. First, the neighboring points lying within the trunk part are segmented and identified (

To further add realism, we add leaves and texture to the reconstructed tree models. Since it is almost impossible for us to capture the geometry and texture characteristics of leaves from laser scans, it becomes impossible to reconstruct accurate leaves purely from the point clouds. In this work, we generate oriented leaves at the end of each branch following the method in [

We implemented our tree reconstruction algorithm in C++. We select C++ because it enables high computation efficiency, also because many necessary libraries on graph algorithms and 3D model rendering are available in C++. Boost Graph Library [

To develop and test the proposed tree reconstruction method, 5 point cloud datasets have been collected. These test datasets contain point clouds from publicly available point cloud repositories, the Floriade Project of Almere, and the AHN dataset [

In this section, we provide the result analysis, aiming to test if our modelling results have fulfilled the functional and user requirements proposed in

We reconstructed a variety of trees of different species, sizes, and branch structure.

Besides, we also tested our method on scanned trees from various data sources, including mobile scanning, static scanning as well as airborne scanning. It is observed that point clouds collected by mobile scanning (

We quantified the geometrical accuracy of the modelling results by computing the mean distance between the input points and the generated tree branch model [

As described in

The simplification threshold

We compared our method to a few state-of-the-art approaches [

In

We also compare our modelling results to other tree modelling approaches publically accessible to us, such as PypeTree [

Our algorithm can successfully obtain accurate and detailed 3D tree models from point clouds. However, it still has some limitations. First of all, our approach depends on the quality of the input data. For poorly scanned data with sparse points, our method can reconstruct a plausible topological structure of the tree branches but is unable to achieve sufficient geometrical accuracy. Moreover, our work does not consider natural growing rules of tree branches (e.g., branch split angle, branch growing length). The incorporation of domain knowledge will further constrain the reconstructed models to be topologically correct and improve the fidelity of the models, improving both geometrical and topological accuracy.

Our proposed approach enables accurate reconstruction of 3D trees from point clouds. The generated tree models can be employed in many applications. The accurate tree models with synthesized leaves and textures can be directly applied in applications such as urban landscape design and entertainment, to convey the realism of the scenes. Our method also opens up the opportunity for automatically obtaining precise tree attributes (e.g., the height of a tree, the thickness of the trunks, and the diameter at a specified height). It enables to save a significant amount of time and laboring efforts compared to the traditional manual measuring method. With accurate 3D tree models, implicit tree attributes, such as wood volume, biomass, the amount of carbon dioxide to be absorbed and oxygen to be emitted, can also be automatically derived or estimated.

In this paper, we proposed an automatic approach to accurately reconstruct 3D tree branches from point clouds. During the reconstruction, both the geometrical accuracy and topological fidelity of the tree are taken into consideration. One novelty of our work is that we aid the skeleton construction process by the main-branch point centralization, which contributes to improving the quality of the generated tree branch structure. Moreover, an optimization-based approach is employed to accurately reconstruct the geometry of the tree branches. Experimental results revealed that our method is robust in dealing with various types and sizes of trees. As long as the input point clouds demonstrate clear branch structure, our method is capable of generating tree models of high quality.

In future work, we would like to perform automatic segmentation of trees. As our method only works for individual tree point clouds, involving existing automatic segmentation approaches will expand our algorithm to a broader range of applications. Besides, as there are many irregular shapes of tree branches in nature, we will further consider fitting free-form surfaces instead of cylinders to model the branch geometry more precisely.

S.D. performed the study and implemented the algorithms. R.L., H.L., and J.S. provided constructive comments and suggestions. L.N. proposed this topic and provided daily supervision.

This research received no external funding.

We thank Yufu Zang, Kaixuan Zhang, and Agung Indrajit for valuable comments. We also thank the Floriade Project for providing test datasets.

The authors declare no conflict of interest.

The following abbreviations are used in this manuscript:

An overview of the proposed methodology.

Skeleton initialization for two trees. (

Skeleton extraction from the centralized points. (

Skeleton simplification. (

Single child simplification.

Bidirectional similarity indicators. (_{1} to _{2}. (_{2} to _{1}.

Multi-children simplification. Grey edges on the right indicate newly generated branches.

Branch fitting. (

Parameters and objective in the cylinder fitting problem.

Adding leaves and texture.

Five different trees (from (

Visualization of the per-point error distribution.

Simplification results using different

Comparison between Livny’s method [

Comparison between PypeTree [

Statistics on the tree examples shown in

Figure | Height |
Complexity | Point Number | Sensor Type | Accuracy |
Stardard |
---|---|---|---|---|---|---|

5.52 | Medium | 11,855 | Mobile scanning | 2.76 | 2 | |

9.87 | Medium | 6992 | Mobile scanning | 10.04 | 8 | |

15.99 | Difficult | 28,993 | Mobile scanning | 6.59 | 6 | |

21.73 | Difficult | 137,407 | Static scanning | 6.50 | 6 | |

13.13 | Easy | 2488 | Airborne scanning | 11.88 | 7 |