This function is meant to be used inside stemSegmentation
. It applies a least squares cylinder fit algorithm in a RANSAC fashion over stem segments. More details are given in the sections below.
sgt.ransac.cylinder(tol = 0.1, n = 10, conf = 0.95, inliers = 0.9)
numeric
- tolerance offset between absolute radii estimates and hough transform estimates.
numeric
- number of points selected on every RANSAC iteration.
numeric
- confidence level.
numeric
- expected proportion of inliers among stem segments' point cloud chunks.
The RANdom SAmple Consensus algorithm is a method that relies on resampling a data set as many times as necessary to find a subset comprised of only inliers - e.g. observations belonging to a desired model. The RANSAC algorithm provides a way of estimating the necessary number of iterations necessary to fit a model using inliers only, at least once, as shown in the equation: k = log(1 - p) / log(1 - w^n)k = log(1 - p) / log(1 - w^n) where:
k: number of iterations
p: confidence level, i.e. desired probability of success
w: proportion of inliers expected in the full dataset
n: number of observations sampled on every iteration
The models reiterated in TreeLS usually relate to circle or cylinder fitting over a set of 3D coordinates, selecting the best possible model through the RANSAC algorithm
For more information, checkout this wikipedia page.
The cylinder fit methods implemented in TreeLS estimate a 3D cylinder`s axis direction and radius. The algorithm used internally to optimize the cylinder parameters is the Nelder-Mead simplex, which takes as objective function the model describing the distance from any point to a modelled cylinder`s surface on a regular 3D cylinder point cloud:
D_p = |(p - q) a| - rDp = abs((p - q) x a) - r
where:
Dp: distance from a point to the model cylinder`s surface
p: a point on the cylinder`s surface
q: a point on the cylinder`s axis
a: unit vector of cylinder`s direction
r: cylinder`s radius
The Nelder-Mead algorithm minimizes the sum of squared Dp from a set of points belonging to a stem segment - in the context of TreeLS.
The parameters returned by the cylinder fit methods are:
rho,theta,phi,alpha
: 3D cylinder estimated axis parameters (Liang et al. 2012)
Radius
: 3D cylinder radius, in point cloud units
Error
: model cylinder error from the least squares fit
AvgHeight
: average height of the stem segment's points
N
: number of points belonging to the stem segment
PX,PY,PZ
: absolute center positions of the stem segment points, in point cloud units (used for plotting)
Liang, X. et al., 2012. Automatic stem mapping using single-scan terrestrial laser scanning. IEEE Transactions on Geoscience and Remote Sensing, 50(2), pp.661<U+2013>670.
Olofsson, K., Holmgren, J. & Olsson, H., 2014. Tree stem and height measurements using terrestrial laser scanning and the RANSAC algorithm. Remote Sensing, 6(5), pp.4323<U+2013>4344.
Conto, T. et al., 2017. Performance of stem denoising and stem modelling algorithms on single tree point clouds from terrestrial laser scanning. Computers and Electronics in Agriculture, v. 143, p. 165-176.