1. Introduction
In forestry, decision-making often hinges on measurements obtained from individual trees. Given that such decisions can substantially influence both environmental and economic outcomes at broad scales, minimizing measurement errors and biases, and securing ample data to sufficiently decrease estimation errors are essential. Yet, due to the vast spatial reach of forests, the cost-effective collection of measurements remains a formidable challenge, making the reconciliation of these conflicting demands a central issue in forest inventory.
The emergence of contemporary sensor technologies, including digital photography and laser ranging, has considerably augmented our capacity to rapidly amass large data sets, often at decreased costs. These technologies have been employed in aerial surveys aimed at quantifying forest structure [
1], estimating attributes [
2,
3,
4], and mapping stems [
5,
6]. While aerial surveys provide extensive spatial information, they often depend on allometric correlations between sub-canopy attributes, such as diameter, and observations like tree height and crown width. However, allometric models utilizing aerial observations may only yield accurate predictions for select sub-canopy dendrometric variables of interest, falling short in providing data related to under-story density and composition. Consequently, there is a burgeoning interest in harnessing sensor technologies in terrestrial surveys to augment data collection efficiency and consistency.
One of the earliest instances of terrestrial remote sensing applications in dendrometry was introduced by Shelbourne and Namkoong [
7]. They utilized two photographs of a tree stem, captured at 90-degree angles, to compute stem straightness in three dimensions (3D) by using the center-line of the two-dimensional (2D) projections. This approach was later refined by Hapca et al. [
8], who integrated digital photography and extended the method to include stem taper profiles. They showcased the potential to automatically classify 3D stem reconstructions into form classes using their method [
9].
Presently, terrestrial remote sensing research is primarily focused on the application of light detection and ranging (LiDAR) systems. Researchers have established the potential for constructing highly precise and intricate tree models [
10,
11] and automating stem detection and measurement [
12,
13,
14] using LiDAR. However, despite the efficacy and accuracy of LiDAR systems in various forestry applications, their high cost and data processing demands render them impractical for certain uses.
The recent development of sophisticated computer vision algorithms and the availability of publicly accessible software has incited renewed research interest in photogrammetric approaches to dendrometry, specifically in the application of multi-view stereo and structure-from-motion (MVS-SFM) algorithms. This method involves converting a sequence of 2D images into a 3D point cloud, akin to data captured by a LiDAR sensor. The initial demonstrations of MVS-SFM application to dendrometry by [
15,
16] utilized a camera mounted on an unmanned aerial system (UAV) to acquire images of tree stems from various perspectives, reconstructing 3D point clouds and surface models. Subsequent studies by [
17,
18], using handheld cameras, discovered that diameter at breast height (DBH) estimations from MVS-SFM point clouds matched those estimated using terrestrial LiDAR. Later investigations into MVS-SFM-derived point clouds centered on detailed accuracy assessments [
19], amalgamating aerial and terrestrial data [
20], multi-camera configurations [
21], and taper modeling [
22].
To date, all applications of MVS-SFM for dendrometry follow a general workflow that includes data acquisition, offline processing for point cloud generation, and analysis of the point cloud through manual or automated measurements. While this approach offers satisfactory accuracy for most forestry applications and requires relatively inexpensive equipment, the computational expense of offline processing for point cloud generation can be significant, often taking hours or even days to complete. As such, in scenarios where immediate stem measurements are required, MVS-SFM may prove impractical. One such instance is markless prescriptions, wherein a description of the silvicultural treatment is provided to the operator of a harvesting machine tasked with selecting the trees to be cut. Such prescriptions frequently specify diameter limits, species preferences, and spacing requirements. In this context, a terrestrial remote sensing system that can deliver real-time, reliable measurements of trees within close proximity could prove advantageous for operators.
This paper presents a novel method for photogrammetric dendrometry, differing significantly from recent multi-view stereo and structure-from-motion (MVS-SFM) approaches. Our algorithm, based on fundamental photogrammetric principles, provides 3D reconstructions of tree stems and enables quantification of diameter, taper, sweep, and crook. This approach echoes earlier methods for analyzing tree stems in photographs [
7] and incorporates the core principles of the active contour model presented in [
23]. The inputs to the algorithm are the images from a calibrated stereo camera and the output of a bounding box object detector, trained on tree stems [
24]. The algorithm automatically localizes the occluding contours of the tree stems within the bounding box in both the left and right stereo images, reconstructs the stems, and maps their positions to the object coordinate frame. Running in real-time on a modest graphics processing unit (GPU), the algorithm can provide reliable measurements for trees up to 20 m from the camera.
Aside from its direct applications in dendrometry, the approach presented here can also facilitate the creation of a training dataset for machine learning (ML) algorithms capable of segmenting tree stems in digital images. Although our method effectively localizes occluding contours in stereo images, the parameters of the algorithm require manual tuning specific to the problem domain. An ML-based approach, such as a region-based convolutional neural network (RCNN) [
25], could offer a more generalizable and scalable solution. By using the 2D segmentation masks generated by our algorithm as training data for an ML-based segmentation model, we can develop a more robust system capable of segmenting tree stems under various environmental conditions and among different tree species. Consequently, this paper does not only present a novel photogrammetric approach to dendrometry but also lays the groundwork for future research that can integrate our work with state-of-the-art ML algorithms.
In this paper, we provide a comprehensive description of the algorithm, detailing the model, energy formulation, and optimization technique. We also delve into various algorithmic properties, showcase the results of a diameter measurement validation study, and discuss potential approaches to assess stem form and optimize product value from wood property inference.
Figure 1 visually illustrates the major components of our proposed method.
2. Algorithm Description
We are given a stereo-rectified and row-aligned image pair,
, acquired from a stereo camera in the fronto-parallel configuration. Images are represented in function notation,
, where
is the set of pixel coordinates in the image plane. We are also given the output of an object detector trained to detect tree stems [
24]. The object detector outputs
n bounding boxes,
, where each
. For example, we use the notation
to specify an image function within the domain of some arbitrary bounding box and
to specify the entire image. We use upright, bold Greek letters to represent vector-valued functions in
, e.g.,
, bold capital letters for matrices, e.g.,
, and lowercase bold letters for vectors, e.g.,
. We use the notation
as shorthand for
, the Euclidean norm. Other notational conventions are apparent in context.
2.1. Deformable Stem Model
We use a set of parametric curves to represent the occluding contours of a tree stem projected on the image plane. We assume that there exists a curve of symmetry such that for all points on the curve, the unit normal, multiplied by some scalar, i.e., the radius, can be rotated about the tangent axis to the edge of the tree. Such a curve does not exist in 3D space, as the cross-section of a tree stem can only be approximated by a circle. However, this assumption holds for the two-dimensional case, and we exploit this symmetry to construct a shape model for tree stems.
Consider two curves,
, representing the left and right contours of a tree stem projected in the
plane. We can construct these contours using the curve of symmetry,
, and a taper function,
, representing the change in radius along the stem. The left and right contours are defined as
where
s is the parameterization,
, and the unit tangent and unit normal vectors of
are given by
Modeling the curves as presented requires an arbitrary number of parameters that depend on the level of discretization. In practice, discretization is often performed at the pixel level, resulting in hundreds of parameters that significantly increase computational demands during iterative optimization presented in
Section 2.5. To address this challenge, we introduce a layer of abstraction to model tree stems that allows for efficient and compact representations without sacrificing the generality of the approach, even for instances of highly varied forms.
Let
denote an ordered set of coordinates in the plane. We use vectors to describe first and second entries independently, i.e.,
and
. The coordinates in
correspond to
n points on the curve of symmetry describing a tree stem. We fix the elements of
to be equally spaced along the height of the stem by
where
h is the height of the stem, equivalent to the number of pixel rows in the bounding box. We treat the vector
as a free parameter that can take on arbitrary values to represent an instance of the model. A curve can be constructed by interpolating
with a cubic spline interpolant
of the form
where each
is a polynomial of degree three. We require that the interpolant passes through
, i.e.,
for all
, and constrain
to specify natural boundary conditions. The coefficients of the polynomials can be solved in
using the tridiagonal matrix algorithm [
27]. Using
to denote the spline function that depends on the parameter vector
, the curve of symmetry can now be defined as
where
s is the parameterization,
.
Now that the curve of symmetry is specified, we define the taper curve in a similar manner. Let
be a set of
n coordinates where the first entry elements,
, specifies the radius of the stem at each corresponding second entry
, and each
is defined by Equation (
3). Using
we construct a cubic spline,
, satisfying the same conditions as for
, but in terms of the free parameter
. Following from Equation (
5), a taper function describing the change in radius along the length of the stem is given by
Computing the unit tangent and unit normal vectors as shown in Equation (2) with respect to , we can use Equation (1) to define the curves representing the left and right contours of the stem, and ; however, now they depend only on the parameter set .
Figure 2 illustrates five instances of the Deformable Stem Model. Each instance is constructed using a different number of control points,
n. As the number of control points increases, the number of parameters required to specify the model increases linearly by
. Although an instance with a larger
n can represent more complex stem forms, all stems we encountered during experimentation were sufficiently represented with 5–7 control points.
Extension to 3D
To extend our model to the object coordinate frame,
, we can construct two sets of curves in stereo such that one corresponds to the left camera and the second to the right. We use superscripts
L and
R on the functions to denote a curve in the left and right image, respectively. Assuming that the stereo pair is rectified and row-aligned, the curves can be back-projected to the object coordinate frame via triangulation. First, we compute the inverse disparity,
, given by
where the subscript on the functions index the corresponding position in the output vector. Using the inverse disparity and the stereo calibration parameters, the curve of symmetry in the left camera coordinate frame is representing in object coordinates by the function
, defined as
where
is the principal point of the left image,
f is the focal length in pixels and
b is the baseline distance between the optical axes of the left and right cameras. The taper function is scaled to object coordinates by
where
. Given the back-projected curve of symmetry,
, and the scaled taper function,
, we can define a parametric surface function,
, based on Rodrigues’ rotation formula to reconstruct the tree stem to 3D:
where
s and
are the parameterizations,
and
,
is a
identity matrix,
and
are the unit tangent and normal vector functions of
, and
is a skew symmetric matrix of the unit tangent vector defined as
2.2. External Energy
Active contour models use an external energy to attract contours to desirable features in the image. External energy is derived from the input image in such a way that minimum values correspond to the desirable features. Our objective is to localize the edges of tree stems, so we will formulate the external energy to be minimal near vertical edges in the input image. We also introduce a secondary external energy to add robustness to local minima during curve evolution.
2.2.1. Edge Map and Gradient Flow
We define an edge map
by differentiating the image
w.r.t
x and taking the absolute value,
In practice, it is recommended to denoise the image prior to computing gradients via Gaussian smoothing or bilateral filtering. We avoid computing the gradient vector
(differentiating
w.r.t
x and
y) as edges that represent the boundaries of the stem will only have strong gradients in the
x direction while gradients in the
y direction could introduce spurious forces that adversely influence the convergence of the contours.
Differentiating the edge map,
, w.r.t
x gives a function where the zero-crossings correspond to edges in the image. If we consider this as a functional taking a parametric curve as an input, then the sign and magnitude of the scalar values returned by the functional indicate the direction and speed in which to move the curve. This, however, assumes that the curve, at some point during evolution, is within the capture range of a boundary in the edge map, which is generally an unrealistic assumption. Xu and Prince [
28] present an alternative formulation for external energy, called gradient vector flow (GVF), that overcomes issues with insufficient capture range by filling in regions where gradients are not present, effectively increasing the capture range of the edge map.
GVF is a vector field
that minimizes the energy
where
is a regularization parameter that controls the relative importance of the first and second terms in the integrand. Since the Deformable Stem Model considers updates only in the
x direction, we simplify the expression by omitting the
y-component of the vector field yielding
where
is defined as
As shown by Xu and Prince [
28],
u can be found by expressing Equation (
14) as a Euler equation,
where
is the Laplacian operator, and then solving via iteration by treating
u as a function of time,
Through experimentation, we found
to be a sufficient setting for the regularization parameter. We use the function
to represent the steady-state solution to
. We refer to
as the gradient flow force function to indicate that it is not a vector field as originally proposed by Xu and Prince [
28].
returns a signed scalar value where the sign denotes the direction of the force and the value denotes the magnitude of the force queried at the position variables
x and
y.
2.2.2. Contraction Energy
The edge map
has the property that large values correspond to abrupt intensity changes in the horizontal direction. Ideally, large values would represent the boundaries of the stem while the rest of the domain exhibits small values. However,
is likely to contain large values elsewhere; large values might exist in the background of the image caused by adjacent stems, branches, or other features in the image. We formulate a contraction energy based on the stereo disparity map to make the contours robust to local minima that do not correspond to gradients along the tree stem boundary. We compute an integer stereo disparity map for the entire image domain,
, using semi-global matching [
29]. We use a real-time GPU implementation of the semi-global matching algorithm presented by [
30].
Let
be a logical function defined as
where
is the stereo disparity map within the domain of the bounding box,
. The threshold value
d can be readily found by computing the histogram of
and taking
d as the argument maximum of the histogram. The range value
is the expected range above and below
d used to capture pixels of the tree stem projected on disparity planes other than
d, typically 3 to 5. Next, we compute a row-wise distance transform,
, given by
The form of Equation (
19) becomes apparent when taking its derivative w.r.t.
x,
gives the signed distance in pixels along the
x-axis to the closest pixel in
. This is a desirable property since it guides the contours towards a coarse segmentation of the tree stem given by the disparity map making the evolution of the contours robust to local minima in the image.
We now have the necessary components to define the external energy functionals. For the left image we combine the negative of the edge map,
, so that strong edges correspond to minima, and the negative of the contraction energy,
, so that the pixels where
are minimum. We also scale the contraction energy by the scalar
to balance it with the edge map so that the contraction energy becomes small as the contours approach the boundaries of
. For the right image, we simply use the negative of the edge map since the contraction force is derived from the disparity map that corresponds to the left image frame. The stem model corresponding to the right image will be influenced by the contraction energy through the stereo constraints introduced in
Section 2.4. Formally, the external energy for the left and right images are defined as
The energy maps can be converted to horizontal force maps by taking their derivatives w.r.t.
x. The gradient flow of the edge map,
, defined in the previous section is used as the force map for edges while
is used for the contraction force,
We found
to be good values for scaling the contraction energy.
Figure 3 illustrates the progression from an input image to the force maps. Note that the capture range in
,
Figure 3d, is far greater than the capture range in the force map
,
Figure 3c.
2.2.3. External Forces on the Deformable Stem Model
In this section we show how the external force map is used to calculate the external forces acting on the Deformable Stem Model. Recall the parameters
and
used to specify an instance of the model. These parameters are used to construct the left and right contours of a tree stem,
and
, respectively. Since our external energy function,
, is intended to be minimal at the boundary of the tree stem, our objective is to evolve the contours in such a way that each subsequent state results in a lower energy when integrated along the length of the contours. We can achieve this by subdividing the contours and integrating over the subintervals such that each subinterval corresponds to the control points in
and
. The integrals along the subintervals are averaged and placed in the force vectors
and
, then used to update
and
. This is similar to the approach taken by Wang and Boyer [
31] in the Active Geometric Shape Model.
We use
to represent the subintervals where each element is given by
The individual force components can be computed by integrating over the gradient flow force function along the sub-intervals for the left and right contours:
where, again,
is the parameterization. The components of the force vectors can be interpreted as the average force acting on the subinterval of the curve. So, if the part of the curve bounded by the subinterval is positioned to the left of a boundary in the energy function, then the force will be greater than 0; a force less than 0 indicates that the part of the curve is positioned to the right of the boundary. A force of zero means that the curve segment is balanced on the boundary.
The parameter vector
, representing the control points for the curve of symmetry, can be updated to a state of lower energy by adding
and the vector sum of the forces acting on the left and right curves,
The parameter vector
, representing the control points for the taper curve, can be updated by adding the vector with the forces acting on the right contour less the forces acting on the left,
To better understand these update equations, it is recommended that the reader uses
Figure 3d,e to visualize different configurations of the left and right curves and how the update equations apply. Note that darker colors in the figures correspond to negative values while lighter colors correspond to positive values.
2.3. Internal Energy
We have yet to constrain the parameter set used to construct an instance of the Deformable Stem Model; the parameters and are controlled entirely by the external forces, some of which might not correctly represent the boundary of the tree stem. In this section, we introduce two biomechanically-inspired internal energy formulations that are simple analogies to how trees respond to physical forces in their environment.
2.3.1. Straightness Force
Trees have a natural tendency to grow straight. This is influenced by an internal control process called gravitropism, first recorded by Charles Darwin in 1880 [
32]. Trees that grow against the gravity vector have the advantage that their weight is centered over the stem, thus the downward forces acting on the stem can be distributed. Trees also grow toward light sources through a weaker process, called phototropism, which can cause trees to lean or sweep toward openings in the canopy. Our objective here is to formulate an internal force for the stem model to encourage it to be straight while allowing for slight deviations to account for irregular stem forms.
We derive straightness energy using the normal equations for linear least squares regression. The energy of straightness corresponds to the sum of squared residuals from the best-fit line relating the parameter vector
and the arithmetic sequence
defined by Equation (
3). Since the linear least squares model is undefined for a vertical line, we exchange the axes and define the design matrix on
by
and take
as the vector of dependent variables. The notation
denotes a vector of ones with the same dimension as
. Rearranging the normal equations for linear regression, we can get the predicted values for the best-fit line by
where
is the Hat matrix defined as
The Hat matrix can also be used to compute the residuals,
, by subtracting it from the identity matrix and right multiplying with the dependent vector,
We take the Euclidean norm of the residual vector as the straightness energy,
If the straightness energy is zero, then it is implied that the coordinates
, defined in
Section 2.1, are co-linear.
In order for the straightness energy to interact with other forces in the model, it is necessary to consider the force components that make up the scalar quantity describing the energy. This can be accomplished by discretization of the individual forces in the time domain and taking small steps in the direction of the forces. We can subtract
from
, where
, to transition
to a state with lower energy. For example, if
, then
, and if
, then
. Using
to index
at time
t, we have the following update rule for minimizing the straightness energy in the time domain,
Figure 4 illustrates an example of the internal straightness force acting on an instance of the Deformable Stem Model. The instance (a) has a straightness energy of 8.82. After 10 iterations with
the energy of the stem model shown in (c) is decreased to 3.07.
2.3.2. Monotonic Radii Force
In 1893, Metzger [
33] provided an biomechanical explanation for the taper of tree stems. Metzger hypothesized that trees distribute radial growth along their stem to uniformly counterbalance the mechanical stress acting on the tree caused by lateral forces, e.g., wind. A beam of uniform resistance to these forces is a cubic paraboloid, a geometric shape that closely resembles that of a tree stem. In reality, trees have more complicated taper functions, as indicated in numerous studies [
34,
35,
36]. Here, we enforce a simple constraint on the stem model to encourage the radius parameters to be monotonically decreasing with height to allow for variations among species and individuals.
Let
be a backwards difference matrix. We can construct this matrix by subtracting an
identity matrix,
, by a super-diagonal shift matrix,
, of the same shape,
If we take the matrix-vector product
, then the positive values in the resulting vector indicate that the corresponding element in the radius vector,
, has a larger subsequent element, i.e., the projected width of the stem is increasing with height, which is generally not how trees taper. Negative values indicate that the width is decreasing, while zero indicates a constant taper. Our objective here is to formulate an energy that is zero when the radius vector of the stem is monotonically decreasing with height, and positive otherwise. We can achieve this by first passing the matrix-vector product
through a linear rectifier to truncate all negative values to zero. The rectifier is a vector-valued function,
, defined as
where
is a placeholder for the product of
. Next, we average bidirectional differences of increasing values with the operation
. The sign and magnitude of the elements in the resulting vector guide the movement of the control points for the taper curve to a state of lower energy, where the energy,
, is given by
We can discretize the movement of
in the time domain by introducing the step size parameter,
, leading to the following update rule for minimizing taper energy:
Figure 5 shows the internal taper force acting on an instance of the Deformable Stem Model. The instance shown in (a) has an energy of 2.34. The resulting model following 10 iterations with
, instance (c) in the figure, has an energy of 0.72.
2.4. Stereo Energy
In this section we introduce the two final energy formulations. The energy terms presented here create a connection between the models in the left and right images. Specifically, information regarding the contours in one image is used to localize the contours in the other. This is especially useful when there are desirable features missing in one image that are present in the other.
We define a stereo smoothness constraint on the curves of symmetry in the left and right image as
This ensures that the disparities between the curves vary smoothly.
means that the derivatives of the curves w.r.t.
x are exactly the same, while
means the disparities diverge somewhere along the length of the curves. Since
is a spline interpolation of the parameter vector
, we can define force update equations for the left and right model parameters as
where
is the step size parameter and
is a finite difference matrix. We use the step size parameter to make a soft constraint on the differences. This allows the disparity between the curves to vary slightly when the tree stem is not exactly vertically aligned with the image plane.
The second stereo constraint forces the taper curve of the left and right model to be proportional,
where
is some scalar that, when multiplied by one of the taper curves, minimizes their differences. Since the two taper profiles are projections of essentially the same face of the stem offset by a small baseline, we expect their taper functions to be identical. However, depending on the angle at which the stem is positioned w.r.t. the optical axes of the camera, the distance from the stem to the left camera can be different than the distance from the stem to the right camera. Thus, we allow the scale of the taper function to differ. This constraint can be converted to force update equations and applied to the left and right radius parameter vectors by first taking the average of the two vectors and then adding the sum of their difference divided by
,
2.5. Optimization
In this section we show how we minimize the external, internal and stereo energy of the Deformable Stem Model via gradient descent. First, the parameters for the model,
, are initialized according to the width of the image domain
. We set all values of
and
, for both the left and right models, equal to
, where
w is the number of pixel columns in
. Thus, the left and right contours, when computed using Equation (1), are initialized at the left and right edges of the bounding box. We also initialize
with Equation (
3) where
h in the equation is set to the number of pixel rows in
. The matrices
, and
are constants, so they are initialized and stored. The external force maps for the left and right images are computed using Equation (22).
Next, we concatenate all the force update equations for the left and right parameter vectors
and
,
and for the parameter vectors
and
,
We iterate these equations and during each iteration we construct a cubic spline interpolant through
and
in order to compute the edge contours
, and
. This is necessary for calculating the external force vectors—the last terms in Equations (41) and (42). After each iteration, we check for convergence, where the convergence value is given by
The iteration is terminated when
is less than some threshold, e.g.,
. We do this to avoid issues with numerical instability when the parameters oscillate around a minimum. Once the model parameters have converged, we use the stereo calibration parameters to reconstruct the model using Equations (
7)–(
10).
Refer to
Figure 6 for a diagram showing the flow of operations in the algorithm. We have referenced the core equations used in the text boxes between the visual representations.
Figure 7 illustrates curve evolution during optimization of the Deformable Stem Model on six example trees. For each example, we show 5 snap-shots of the contours corresponding to 1, 5, 15, 30, and 50 iterations, respectively. The left-most image in each subfigure shows the position of the left and right edge contour following the first update after initialization based on the given bounding box. The right-most image shows the edge contours after convergence. The images in between are intermediate time steps. We also alternate left and right stereo images, so images 1, 3, 5 are from the left camera and 2 and 4 are from the right camera.
5. Conclusions
In this paper, we demonstrated how 2D projections of tree stems in stereo images can be automatically reconstructed into 3D models in real time. We show how dendrometric attributes can be calculated from the models and provide an accuracy assessment of diameter measurements for 21 tree stems. The algorithm presented is based on the active contour model, a well-developed computer vision framework for boundary localization. The algorithm runs in real-time on a modest GPU and is intended to be used during forest harvesting operations for diameter measurement and stem form analysis of standing trees.
There are many attributes of a tree stem that influence its value. Stem size and shape are among the most important variables and can also be used to make optimal decisions regarding bucking positions and milling routines [
45,
46]. The algorithm presented in this paper can provide 3D stem models for product value optimization. Although our approach only provides caliper measurements for the sub-canopy portion of the stem, the shape of the stem is calculated in 3D. Since these models can be generated in real-time, they can be used in harvesting operations to make optimal bucking decisions and to calculate the value of the stem.
Research has also been conducted to relate standing tree shape to the spatial distribution of internal wood characteristics. Constant et al. [
47] presented an analysis of poplar trees that suggests a strong relationship between local tree slope and the position of the pith in relation to the center of the stem. They also found that the concentration of reaction wood is related to the local slope of the stem. Since reaction wood and the eccentricity of annual rings are directly related to the quality and price of the products derived from trees, 3D models like those provided by our algorithm can be useful in determining the value of logs prior to harvesting.
The data used in our diameter validation experiment were collected in a park-like forest where the trees were uniformly distributed and similar in age class. We have also tested our algorithm in a natural forest where trees are clustered and vary in age class. Although our algorithm performs well in natural forests, it is unclear what density of trees or level of understory vegetation will limit the performance of the algorithm.
A limitation of this work is that it is based on only two unique views of the stem as opposed to many in the case of MVS-SFM, essentially providing caliper measurements of the stem. We do not, however, consider this to be a major limitation as caliper and d-tape measurements have been shown to be statistically similar [
48]. Another limitation is that our method does not provide tree height, which is an important dendrometric variable. We recommend that future research in this arena consider the use of fish-eye or hemispherical lenses to capture the upper portions of tree stems.
The analysis presented in this paper did not provide insight to the maximum distance a tree can be from the camera before errors render the estimates unreliable. We found that diameter errors do not increase with distance for trees up to 20 m from the camera, but further distances might be possible. Increasing the resolution of the camera will certainly increase the working distance and accuracy of contour localization; however, at the cost of increased processing time. An alternative is to increase the baseline between the cameras; however, this will increase the minimum working distance and trees close to the camera might not appear in both stereo images. Further research is needed to study the relationship between camera configuration, resolution, processing time and accuracy.