^{1}

^{*}

^{1}

^{1}

^{2}

^{2}

^{3}

^{3}

^{4}

^{4}

This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution license (

This paper presents a new method for constructing quickly and automatically precision tree models from point clouds of the trunk and branches obtained by terrestrial laser scanning. The input of the method is a point cloud of a single tree scanned from multiple positions. The surface of the visible parts of the tree is robustly reconstructed by making a flexible cylinder model of the tree. The thorough quantitative model records also the topological branching structure. In this paper, every major step of the whole model reconstruction process, from the input to the finished model, is presented in detail. The model is constructed by a local approach in which the point cloud is covered with small sets corresponding to connected surface patches in the tree surface. The neighbor-relations and geometrical properties of these cover sets are used to reconstruct the details of the tree and, step by step, the whole tree. The point cloud and the sets are segmented into branches, after which the branches are modeled as collections of cylinders. From the model, the branching structure and size properties, such as volume and branch size distributions, for the whole tree or some of its parts, can be approximated. The approach is validated using both measured and modeled terrestrial laser scanner data from real trees and detailed 3D models. The results show that the method allows an easy extraction of various tree attributes from terrestrial or mobile laser scanning point clouds.

The determination and prediction of tree characteristics and quality attributes is important in forest management, especially in pre-harvest measurements [

One way to estimate parameters that are hard to measure, particularly for a group of similar trees, is to use other simpler measures together with statistical models developed from detailed manual measurements. For example, the biomass of a tree can be estimated quickly and quite accurately from stem diameter at breast height and height of the tree [

With accurate and fast-to-use laser scanners, tree parameters can be determined with fewer practical difficulties [

TLS can produce 3D point clouds that allow the quantitative analysis of trees and the reconstruction of quantitative 3D tree models. These are required in forest research in general, and they can be also used to develop better statistical models for tree attributes. ¿From a TLS point cloud, one can measure tree and stand characteristics such as the location, height, crown coverage, species and stem curve [

Many problems in forestry, biomass estimation, forest research, and forest remote sensing could be more readily tackled if it were routinely possible to fit tree models to TLS measurements, such that a model is:

Modeling procedures fulfilling all the conditions above have hitherto not been available, although various methods have been developed to allow automated tree reconstruction [

In this paper, we present a new method that produces 3D tree models from TLS data fulfilling all the conditions above (see the examples of reconstructed models in

Our scheme is based on the principle of building the global model step by step by an advancing collection of small connected surface patches. These patches are small local subsets of the point cloud and their geometric properties and neighbors are easily defined. This building-brick approach makes the method robust as the procedure does not need to know what a tree is supposed to look like and the point density can be quite varying. An ordered collection of local connected surface patches automatically yields the global structure both qualitatively and quantitatively.

A key part of any modeling method is the segmentation of the point cloud into branches. The segmentation gives the topological tree structure and the resulting segments (branches) can be then geometrically reconstructed. Our segmentation procedure uses the surface patches and recognizes bifurcations along the tree surface by checking local connectivity of a moving surface region. Other methods for segmenting have been presented: one way is to use voxels and mathematical morphology [

The paper is organized as follows. The method is presented in Section 2; in Section 2.1 we describe our data, and the outline of the method is given in Section 2.2. In Sections 2.3–2.10 we describe the method in detail, with some algorithmic points covered in the

We have published two short conference papers [

A (laser scanner produced) _{M}^{3}. In this paper, each point _{M}_{M}^{3}. The surface M represents the surface of the scanned tree, and the point cloud PM is a finite but dense enough sample of M such that the point density varies little within distances of about the maximum trunk diameter. Notice also that the points in _{M}

In this paper, we have used scans from four trees: one Norway spruce [

We have also used a complex artificial tree model and simulated laser scanning to produce point clouds. This was done for controlled testing and validation of the method. The 3D structural tree model used here represents a 30-year-old Scots pine tree (see

Our method is based on covering the point cloud data with small sets corresponding connected patches on the tree surface. Then using a building-brick approach, the unknown global tree model is built by “growing” the tree surface step-by-step using the surface patches. After the patchwork over the tree has been obtained and the tree has been segmented into its branches, the remaining question is how to render it in a form suitable for fast computations and storage. The choice adopted here is the simplest one: the tree surface is reconstructed as an aggregate of small cylinders of varying size approximating parts of the trunk and branches. Cylinders (or their generalizations) are essentially a robust regularization choice that is sufficient for providing the essential attributes of the tree such as stem and branch diameters.

All the desired external characteristics of the tree can be readily approximated from the cylinder data. Moreover, the method is scale-independent because it uses only topological properties and relative sizes. Absolute size restrictions are related to cover set size (building brick size) and the accuracy and density of measurements. Thus, if the cover set size is small enough, the method can be used to reconstruct the model accurately down to the measurement accuracy of the laser scanning. From the point of view of information compression, the cylinder model retains most of the information of the original point cloud in a format that is hundreds to thousand times more compressed in size.

Constructing the tree model requires some assumptions and

The main steps of the method are the following (see

The point cloud sample may contain outliers and noisy points caused by various reasons such as interference effects. Such points are not regarded as samples of the actual surface we want to reconstruct, and the first step in our method is to filter some noise from the point cloud. Our approach to filtering is based on the covers of the point cloud that are defined in the next section.

To remove separate single points or few-point clusters, we cover the point cloud with small balls and reject points that are only included in balls that contain fewer than some small number of points. A more comprehensive version of this filtering scheme is to define a small ball for each point and then reject the points whose balls contain too few points. The size of the balls and the number of points depend on the density of the points in the data. We have used balls whose radius is 1.5 cm and removed all the balls with less than three points.

Another, and possibly additional, filtering scheme to remove small separate parts of the point cloud uses covers of larger balls to determine the connected components of the point cloud. Then the points in components with too few cover sets are removed. We have used balls whose radius is 3 cm and removed all the components with less than tree balls.

The values of the filtering parameters and their effects on resulting tree models depend on the noise level and its distribution in the data, the geometry of the tree,

The embedding space ℝ^{3} is endowed with the usual Euclidean distance _{P}_{M}_{M}_{M}_{P}_{M}_{M}_{P}_{i}_{M}_{i}_{M}_{M}_{i}

We aim to reconstruct the surface _{M}_{M}_{M}_{M}_{M}

We generate two mutually related covers which are used for different purposes. First, we generate a cover _{B}_{i}_{P}_{i}_{B}_{P}_{B}_{P}_{P}_{i}_{i}_{i}_{i}_{i}_{i}

The parameters _{M}

The neighbor-relation for the partition _{P}_{i}_{j}_{P}_{i}_{j}_{i}_{j}_{i}_{j}_{j}_{i}_{P}

Let

One of the applications of the cover set extension is to determine connected components or connectedness of a given group of cover sets: two cover sets of _{P}

Next, we present a number of useful geometric characterizations of the cover sets and other subsets _{M}_{1},_{2},_{3}} be the unit eigenvectors of _{1} ≥ λ_{2} ≥_{3}.

If _{1},_{2}} span the tangent space and _{3} approximates the _{3} can point to either side of the surface

We use the eigenvectors _{1}. For other sets we use the normals of ^{T}

For many trees, the trunk, at least near the base of the tree, is often almost straight and has generally a direction different from that of the most branches and the nearby ground. Thus, if the trunk direction can be estimated (globally) by a vector

The next step, after the generation of a cover, the determination of its neighbor-relation, and the geometric characterization of its sets, is to extract the cover sets pertaining to the tree. In other words, the point cloud may contain ground and other points which are not part of the tree. These parts are removed and the base of the trunk is defined. Furthermore, because of possible gaps in the data, the point cloud may have multiple (often hundreds or thousands) connected components of the tree. The bases of these other tree components also need to be defined because later on, starting from the base each component is segmented into its branches. Although we next present an automatic way to separate the surroundings from the tree, we still assume that the tree is the only (big) tree in the point cloud. Hence the manual removal of adjacent trees from the point cloud may be needed. An automated way to handle multiple trees is a subject of future development.

To determine the tree components, the trunk is first defined approximately as a set

Next, define the base

Next, determine the connected components of the point cloud from which

The bases of the other tree components need to be determined for the segmentation process. There is no easy and fast way to do this with full reliability, and for some components, the defined base may not be the right one. A wrong base can mix up the branching-relation,

When the tree components and their bases are determined, the next step is to segment these components into branches. Each component is partitioned into segments that correspond to the whole or part of a real branch or trunk. In particular, segments should not have any bifurcations. This kind of segmenting also defines the tree structure,

The segmentation process takes place at the level of the cover sets, and the basic tool is their neighbor-relation. The procedure starts from the base of a tree component and, step by step, a

Notice that each new segment base found also defines the tree structure step by step. Furthermore, because only neighbor-relations and relative sizes are needed, the process is scale independent. However, the accuracy and density of the scanned data points and the size of the cover sets define a limit for the separation: If the accuracy of the scanned points is of the order of the width of the gap between neighboring parallel branches, then the two branches are merged into one in the data. Also, if the density of the points is so small that the distance between the closest points is about the same as the gap between branches, then the gap and thus the branches are indistinguishable. Finally, if the branches are so small that they are contained (in the transversal direction) in a single cover set, they are also indistinguishable, because segments are collections of cover sets.

Because each segment is constructed one layer of cover sets at a time, these layers partition the segments. These layers should be saved so that they can be used in the cylinder reconstruction, where the segments are first divided into smaller regions. Furthermore, especially in the trunk where the cover sets are small compared to the segment size, gaps in the data due to self-shadowing may lead to wrong segments. These gaps may lead to small segments along the trunk which are classified as child segments of the trunk segment that continues past them,

Each segment is reconstructed with successive cylinders locally approximating the radius and orientation of the segment (branch). In the process, also the succession relations of the fitted cylinders are recorded so that the tree structure can be expressed in terms of the child/parent relation of the cylinders.

The cylinders are expressed parametrically with seven real numbers (the radius and the components of the axis direction vector and the axis position vector) and the parameters are optimized using the total least squares method [

Our adopted approach starts from the base of a segment and then subdivides it into small successive pieces. These pieces consist of layers of cover sets and, here, the partition of the segment into layers in the segmentation process can be used. The number of layers should be such that the length of the pieces is at least equal to the estimated diameter of the segment. The center points of the successive pieces define vectors that define the

When all the regions of a segment are approximated by an adjusted sequence of cylinders, the radii of the cylinders are checked using prior knowledge: the diameter of a branch is practically always smaller or only a little larger than the diameter of its parent, and the diameter of a branch usually decreases away from its base. Moreover, to make the sequence more continuous (e.g., to close small gaps between the cylinders) and to correct for the effects of radius changes, the starting points and the axes are modified when needed.

When all the segments are reconstructed with cylinders, the cylinder model may still be refined. The point cloud may have multiple connected components, in which case there are gaps between these components. There may also be clear gaps between a parent cylinder and its child cylinder which is not an extension. Thus there may be gaps in the cylinder model which can produce errors for the tree statistics. To reduce these errors, we identify small gaps between the fitted cylinders and then fit cylinders to these gaps using only the previously fitted cylinders as data.

There are two basic cases. In the first case, there are two nearby and nearly parallel cylinders, one without a parent (

In the second case, there is a cylinder

In this section we first define different tree metrics that can be approximated from completed tree models. Then we test our method using first simulated TLS data from artificial tree models. Next, we compare model results for caliper measurements of small branches of a real tree. Finally, we present complete models and results for real trees.

A large variety of (external) statistical measures and other characteristics of the tree can be approximated from the cylinder model. These are, e.g., the total volume of the whole tree or its parts such as the part of trunk with certain radii and the branches of certain size. The total volume and length of the trunk and branches can be also estimated, but depending on the quality of data (e.g., the extent of surface cover), the upper parts of the tree may be quite incomplete. Similarly, the sum of the lengths of the cylinders gives a good estimate of the total branch length in the tree. Trunk and branch profiles (taper functions) can also be easily estimated.

There are other statistical data that can be approximated from the cylinder model, e.g., the number of sub-branches originating from branches, the angles between child and parent branches, and the averages of these. An important concept is the branch size distribution, which characterizes a tree in many ways. From the cylinder models we determine the distribution as follows: we assign the branch cylinders according to their diameter into bins (under 1 cm, over 1 cm but under 2 cm, over 2 cm but under 3 cm,

The basic performance of the procedure for the parts existing in the data was validated in [

To test the method with more realistic data and the dependency of some results on the main input parameters, the cover parameters _{P}

Obviously, as the radius increases, the connectivity increases as well, which is reflected in the decreasing number of tree components. We also see that the total branch length and the number of branches are little affected by the increasing radius, but they decrease somewhat. This is again expected because of the increasing connectivity (larger neighborhoods). Because there are about 1,778 m of branches with a diameter under 1 cm in the original tree, it is clear that not all of them are sampled sufficiently by the point cloud. This explains the difference between the total branch lengths of the original and reconstructed. Nearly all or all the first-order branches (branches originating from the trunk) are found, and with a larger radius also some second-order branches very close to trunk are classified as first-order branches. The evaluation of the branching structures beyond the first order is complicated because there are lots of separate components and the order of the “base branch,” even if that exists, is unknown. However, visual inspection verifies that the branching structure is well defined inside the components in the sense of branch separation. We also see that, for a large radius, the trunk classification, due to, e.g., the segmentation and initial trunk component classification, varies quite a lot in the sense of trunk length. However, most of the trunk volume is still covered as the length differences pertain to thin parts. From the data we conclude that in this case the suitable radius

Next we used multiple different sizes for cover sets to see the effect of the diameter

There are many sources of errors in the scanning, particularly for small branches. The size of the laser spot is about 5 mm when it hits the branch (the spot size depends on the distance). There is also a small error when scans from different directions are registered into a common coordinate system (some millimeters). Windy conditions can add some error due to movement of the branches. Furthermore, the scanning beam can be reflected from parts outside the actual surface. For example, there is a certain amount of data noise in coniferous trees throughout the year due to needles. Thus, it is clear that the smallest branches (diameter under 3 cm) cannot be scanned very accurately. In order to check if the cylinder reconstruction works at all for branches whose diameter is near the scanning accuracy, we have measured some branch profiles for the spruce shown in

Assuming that the caliper measurements are accurate, the results show that the diameter measurement error for very small branches is of the order of one centimeter, and usually the computed diameter is larger than the measured one. There may, of course, be different biases in the two measurements (caliper and cylinders) which affect the results. For example, the cross-section of small branches is rarely circular. However, the accuracy of the cylinder fitting for branches whose diameter is near the scanning accuracy is as expected. Moreover, the orientations and locations of branches and the tree structure can still usually be reliably reconstructed for small branches, as can be seen from the bottom frames of

We have scanned four trees, a Norway spruce and maple, and two Scots pines, the first one shown in

The results from Section 3 demonstrate that our method is able to automatically build models that reconstruct the parts existing in the data. With near-perfect data, such as the simulated data, where potential error sources (registration, wind,

Most of the parts missing in the data are not reconstructed, and this affects different tree metrics estimated from the model. In particular, the top parts of (high) trees are usually poorly covered by TLS data (see

The method does not model the foliage or needles, and if these are present, they can add noise, make nearby branches indistinguishable, prevent the visibility of many parts,

The segmentation works well and the separation of the branches comparable or larger in sizes to the cover sets is nearly perfect. Large noise, if it cannot be properly removed, can affect the separation of branches but this cannot be helped. Thus individual branches can be analyzed and their topological relation to the other branches can be determined. However, gaps in the data breaks the data into separate components and the relations of the components is harder to determine accurately. The gap-filling procedure presented in Section 2.10 was realized so that only very clear cases were allowed. Thus, only a few tens of gaps were filled in any of the reconstructed models. This procedure will be developed further.

As shown in Section 3.2, the method is quite robust against the selection of the cover parameters

We have implemented the method with MATLAB, and the main inputs are the point cloud as well as the cover and filtering parameters. Other parameters determine, e.g., if a component is part of the tree, whose parts are initially classified as trunk, and converge criteria for cylinder fitting. If these parameters are approximately tuned, the method is automatic and no human intervention is needed. The computation time and memory required mainly depend on the number of cover sets used, and for most of the steps, the time depends linearly on the number of sets. Especially for the segmentation, which is the most time-consuming step, the required time is roughly proportional to the total length of the branches. However, the time and hardware requirements are modest; the whole process (with data sets of 1–5 million points) takes from minutes to half an hour (see the tables in Section 3) with a MacBook Pro (2.8 GHz, 8 GB).

In future work, we will apply our method to a larger number of trees to draw some statistical inferences, and we will analyze exposed stumps and roots of trees, for which there is so far very little size and structure data (Liski

We have presented the main steps and demonstrated the potential and operability of a method for constructing automatically comprehensive precision models of trees from TLS point clouds. The method is fast, producing almost immediately a model that is compact compared to the measurement data. In the model, the diameters and orientations of the trunk and branches are locally approximated with cylinders. The branching structure,

The cover-set approach is the driving engine behind our method. It renders the point cloud as a collection of topologically, geometrically, and hierarchically defined units that can be analyzed with standard fitting procedures to obtain orientations, sizes,

Using the model, we can carry out quantitative analysis of the structure and size properties of the tree. For example, the total volume of the whole tree or any of its parts, such as the trunk or branches, can be approximated from the model. The trunk and branch profiles, or statistical distributions such as the branching angle distribution, can be determined from the model. In particular, the model yields the branch size distributions, which can be used to improve tree quality and forest carbon cycle estimations.

The reference measurements from small real tree branches show that the method is able to reconstruct the branches with reasonable accuracy (error under 1 cm). The results from the modeled TLS data show that the volume of trunks and large branches can be reconstructed accurately (few percent error) even when large portions of tree parts are not sampled by measurements. The data need not be as comprehensive and dense as required for voxel-based methods.

In the future, we will validate the method further with a large number of trunk and branch measurements from real trees. We will also develop the method further, e.g., by utilizing generalized cylinder shapes.

Together with the computational method presented, laser scanning provides a fast and efficient means to collect essential geometric and topological data from trees, thereby substantially increasing the available data from trees.

This study was financially supported by the Academy of Finland projects:

We define variables that are sets containing cover sets:

Let

Initially

Set the variables as follows:

Define

If the cut region is not expanded much, _{i}

Each component _{i}_{i}_{i}_{i}_{i}_{i}_{i}_{i}_{i}_{i}_{i}_{i}_{i}

If no component is specifically classified as the continuation, then check if one could be found with the following criteria: (1) the angle between the component and the segment is small (e.g., under 25_{i}

To estimate the angles between the segment and the components, define a segment region _{i}

If there are components classified as branch, proceed to step 5, otherwise proceed to step 6.

For each component _{i}_{i}

_{i}

_{i}

Next, _{i}

Modfying the segment. Remove the appendage (red) resulting from the base of the branch (blue) from the segment. The black dotted line shows the axis of the branch.

When all the bases are saved and the segment is modified, proceed to step 6.

If

Then continue from step 2.

If

Next, if new bases of branches not yet segmented exist for this tree component, choose the

If no new bases of branches exist, the segmentation of the current tree component is finished. Then, if there are tree components not yet segmented, select the

Segmented point cloud (

Point clouds and their final cylinder models. The point cloud (

Determination of tree components and their bases. Left: The initial classification of trunk points (red). Middle: Part of the trunk point set (red) and its base (blue). The green denotes sets not part of the tree. Right: Final classification of components. The component starting from the base (red), the other tree components (cyan), and the points not part of the tree (green). The units of the axes in the left and right figure are meters.

The main steps of the method.

A cover which is a partition. Different colors denote different cover sets.

Comparison of the covers of a branch. The minimum diameters (d) of the cover sets are 2 cm (

Examples of segmented tree parts. (

A schematic picture of the bifurcation recognition process. The cut region (red) and its extension, the study region (light red), move along the tree component (brown) and construct the segment (green). When the cut and study regions move ahead through a bifurcation, such as a branch, the regions will no longer be connected, and the part of the cut region belonging to the branch becomes a new branch base.

The segmenting process.

Regions for cylinder fitting. Different colors denote the regions defined by the blue vectors.

Filling gaps. The green cylinder (

Filling gaps. The blue cylinder (

Trunk profiles.

Branch size distribution.

Comparison of measured and computed branch profiles for thin branches. The graphs below show the measured (blue) and computed (red) profiles: diameter in mm as a function of branch length in cm. Below are the fitted cylinders for the profiles B and E. The red points are the laser data points.

Branch size distribution.

Effects of the cover set radius. #comps, #branch, and #1st branch columns give the number of tree components, branches reconstructed with cylinders, and first-order branches, respectively. The time column gives the time for completing the model (MacBook Pro, 2.8 GHz, 8 GB).

^{3} |
^{3} |
^{3} |
|||||||
---|---|---|---|---|---|---|---|---|---|

orig | 665 | 348 | 316 | 17.2 | 2,665 | 1 | 13,102 | 99 | |

2.0 | 568 | 348 | 220 | 17.2 | 1,970 | 534 | 7,520 | 95 | 430 |

2.2 | 566 | 348 | 218 | 17.2 | 1,993 | 357 | 7,448 | 96 | 435 |

2.4 | 581 | 348 | 233 | 17.2 | 1,985 | 258 | 7,320 | 99 | 430 |

2.6 | 593 | 348 | 245 | 17.2 | 1,960 | 186 | 7,128 | 103 | 430 |

2.8 | 573 | 320 | 253 | 10.5 | 1,933 | 150 | 6,865 | 52 | 445 |

3.0 | 579 | 327 | 252 | 11.1 | 1,885 | 117 | 6,624 | 56 | 430 |

Effects of the cover set diameter, with columns as above.

^{3} |
^{3} |
^{3} |
|||||||
---|---|---|---|---|---|---|---|---|---|

orig | 665 | 348 | 316 | 17.2 | 2,665 | 1 | 13,102 | 99 | |

1.5 | 548 | 342 | 206 | 13.1 | 2,060 | 393 | 8,385 | 62 | 720 |

2.0 | 582 | 348 | 234 | 17.2 | 1,985 | 258 | 7,315 | 98 | 480 |

2.5 | 598 | 348 | 250 | 17.2 | 1,825 | 164 | 6,133 | 101 | 375 |

3.0 | 632 | 348 | 284 | 17.2 | 1,652 | 119 | 5,076 | 103 | 315 |

3.5 | 623 | 348 | 275 | 17.2 | 1,467 | 92 | 4,059 | 97 | 270 |

Tree measures computed from the cylinder models. The time column gives the time for model completion (MacBook Pro, 2.8 GHz, 8 GB). The cover parameters were

^{3} |
^{3} |
^{3} |
|||||
---|---|---|---|---|---|---|---|

spruce | 1,090 | 790 | 300 | 14.7 | 22.0 | 720 | 1,160 |

scots pine 1 | 410 | 370 | 40 | 13.4 | 20.5 | 150 | 245 |

scots pine 2 | 670 | 450 | 220 | 9.4 | 16.4 | 380 | 740 |

maple | 690 | 170 | 520 | 7.9 | 11.2 | 720 | 760 |