1. Extracting the unorganized point clouds data from the original geological sampling data and using the improved local plane fitting method to estimate the normal of the point clouds. To ensure that the normals of the point clouds all face the exterior of the geological model, the improved minimum spanning tree (MST) method is used to redirect the normals of the point clouds.
3. The geological engineer is allowed to adjust the normals to obtain certain points with known normal directions, according to prior knowledge, dynamically. Then, the updated geological model can be reconstructed by re-executing the first and second steps above.
This paper focuses on the dynamic estimation of the normal of the point clouds. In the geological modeling task, the geological engineer is allowed to dynamically adjust the normals of certain data points according to the geological rules. The point, whose normal has been adjusted manually, will affect the normal estimation of other points. First, this paper improves the point clouds normal estimation method based on the local fitting plane. It can be assumed that the normals tend to be in the same direction if their points are relatively close. Therefore, if the normal vector of the point to be solved computes inner product with the vector in the tangent plane of the neighboring point with a known normal, the result should be close to zero, which is added to the objective function of constructing the local fitting plane as a constraint item. Second, this paper improves the MST-based normal redirection method proposed by Hoppe et al. [
16]. The normal directions of the points that have been dynamically adjusted to normal are viewed as the right directions, which can be used as the starting point of the normal propagation in the improved MST method.
2.1. Normal Estimation
This paper improves the point clouds normal estimation method based on local plane fitting to cause the result of normal estimation to be more accurate. The traditional method based on local plane fitting does not consider the influence of the points whose normals have been adjusted manually on the normal estimation of the rest of the point clouds. For geological modeling, the normals of certain points can be adjusted manually, and the points whose normals have been adjusted manually will affect the normal estimation of the neighboring points, as shown in
Figure 2. For neighboring points whose normals have been adjusted manually, a tangent plane is calculated according to the normal of the neighboring point, and the plane is marked as a reference plane. Since the local plane fitting method assumes that the local neighborhood of any point can be well-fitted with a plane, the normal of the point to be solved should be perpendicular to this reference plane. According to this assumption, the inner product of a normal vector of the point to be solved and a vector
on the reference plane should be close zero. It is a constraint imposed on the point to be solved by those points whose normals have been adjusted manually.
If the distance between two points is close enough, the normals of the two points should tend to be in the same direction. Therefore, the normals of the two points should be perpendicular to the same plane. At the same time, because the distance from each neighborhood point to the point to be solved is different, each neighborhood point has a different influence on the point to be solved. This paper uses the inverse distance weight to express the different degrees of influence. The neighborhood points that are close to the point to be solved have a greater influence, while the neighborhood points that are far away from the point to be solved have less influence.
In the calculation process, the first step is to calculate the coordinates of a vector
in the reference plane. The second step is to perform the inner product between the vector
and normal vector of the point to be solved and assign the corresponding inverse distance weight. Then, the result is introduced as a constraint item into the objective function based on the local plane fitting method. By solving the improved objective function, the normal estimation result will be more accurate. The calculation formula for the coordinates of vector
is as follows:
where
,
,
represent the coordinates of vector
to be calculated, and
,
,
represent the normal coordinates of the point whose normal direction has been adjusted manually.
The coordinates of vector have three components to be solved, and Formula (1) has only one equation. Therefore, it is necessary to manually specify two components. All the neighboring points of the point to be solved are numbered sequentially (). Number value (n) of the neighboring point and number 1 are used to represent the two components of corresponding vector . The third component can be solved by Formula (1). After obtaining the coordinates of vector , it needs to be normalized.
In the process of solving the Formula (1), we need to consider that a certain component of the coordinates is equal to zero. Therefore, it is necessary to compare the absolute value of three components to find the component with the largest absolute value. If ∣
∣
∣
∣ and ∣
∣
∣
∣, then the maximum of three components is
component and its value must not be zero. Therefore, the coordinates can be set to the form of
(
, 1, n), and the value of
can be calculated according to Formula (2).
If ∣
∣
∣
∣ and ∣
∣
∣
∣, then maximum of three components is
component and its value must not be zero. Therefore, the coordinates can be set to the form of
(1,
,
), and the value of
can be calculated according to Formula (3).
If ∣
∣
∣
∣ and ∣
∣
∣
∣, then the maximum of the three components is
component and its value must not be zero. Therefore, the coordinates can be set to the form of
(1,
,
), and the value of
can be calculated according to Formula (4).
The goal of the original method based on local plane fitting is to minimize the sum of distance from each neighborhood point to the fitting plane. The improvement of this paper is that when the normal of the neighborhood point is adjusted manually, a vector
needs to be selected in the tangent plane of the neighborhood point to compute inner product with the normal vector of the point to be solved. The result of the inner product should be given corresponding to the inverse distance weight and then added to the objective function as a constraint item. The vector formed by the neighborhood point and the point to be solved is not normalized; thus, its own length has an impact on the result of the inner product operation. However, the vector
is a normalized vector; thus, it should be multiplied by a length coefficient
, which represents the distance from a corresponding neighborhood point to the point to be solved. The improved objective function is shown in Formula (5):
Among them, represents the neighborhood point of the point to be solved; represents the point to be solved; represents normal of the point to be solved, which is also normal of the fitting plane; represents the total number of all neighborhood points; represents the vector in the tangent plane of a neighboring point whose normal direction has been adjusted manually; represents total number of neighboring points whose normals have been adjusted manually; and represent the inverse distance weight; represents the distance from the i-th neighborhood point to the point to be solved; represents the distance from the j-th neighborhood point whose normal direction has been adjusted manually to the point to be solved.
Further derivation of the objective function:
where
,
=
.
where
,
The final form of the objective function is:
The improved objective function is the same in form as the original objective function based on the local surface fitting method; thus, its solution method is the same. The three eigenvectors are obtained by eigenvalue decomposition of matrix , and the eigenvector corresponding to the smallest eigenvalue is the normal vector to be solved.
2.2. Consistent Normal Orientation
The normal obtained by the local plane fitting method is ambiguous, because only the line where the normal is located is obtained. The normal direction is not determined. In geological modeling, the correct normal direction of the point clouds should be toward the outside of the model. When the normal direction of the point clouds is toward the inside of the model, the normal direction needs to be flipped. The minimum spanning tree method proposed by Hoppe et al. [
16] is a common normal redirection method. This method uses the sampled data points and the adjacent relationship between the points to construct a Riemann graph. The cost of the edges of the Riemann graph is
, where
and
are respectively the unit normal vector of point
and point
. If the normal directions of two adjacent points are the same, the cost of the edge is small. The normal propagation is performed by calculating the minimum spanning tree of the Riemann graph and traversing the minimum spanning tree.
Although researchers have improved this method [
31,
32], this method has inherent flaws. First, when the normal directions of two adjacent points are both toward the inside of the model, the inner product of the normal vectors of the two points is greater than 0, and the normal directions of the two points will not be flipped to facing the correct direction outside the model. Second, when selecting the starting point of normal propagation, if the normal direction of the starting point is toward the inside of the model, it will have a wrong effect on the normal directions of the following points. In this paper, the normal direction of certain points can be adjusted dynamically. The normal directions of the points whose normal directions are adjusted are correct and can be used as the starting point of the normal propagation process. This paper improves the minimum spanning tree method to produce the result of normal propagation to be more accurate.
Figure 3 shows the process of the improved minimum spanning tree method.
The first step of the method is to construct a Riemann graph. All points in the point clouds are regarded as the vertexes of the Riemann graph. If two points and are each other’s k neighboring points, then the adjacency relationship between the two points is regarded as the edge of the Riemann graph. After constructing the Riemann graph, the cost of the edges is set to , where and are respectively the unit normal vector of point and point .
The second step of the method is to construct a virtual tree
TV for those points whose normal has been adjusted manually. By using a set
P to represent those points whose normal has been adjusted manually, a point
p in the set
P is selected as the parent node of all the remaining points in the set
P, and the remaining points in the set
P are all child nodes of the node
p. By using these nodes to construct a virtual tree, each node in the tree is numbered in order (
), where
represents the total number.
Figure 4a shows the structure of the virtual tree. This paper uses an array
A to store the node information using the method of union-find sets. The index value
i of each element in the array corresponds to the node numbered
i in the virtual tree, and the element value corresponding to each index value
i in the array represents the number of the parent node of the node numbered i in the virtual tree. The parent node in the virtual tree does not have its own parent node. To ensure that the element with index 0 in the array exists, this paper assumes a virtual parent node for the parent node in the virtual tree, and the corresponding value is
.
Figure 4b shows the structure of array
A.
The third step of the method is to calculate the minimum spanning tree TM. This paper presents an improved Kruskal method. The initial state of the Kruskal method only contains all vertexes, and each vertex is regarded as an independent tree to form a forest. At each iteration, a minimum cost edge that satisfies the condition is selected to be added to the forest. Finally, the minimum spanning tree is obtained.
This paper modifies the initial state of the Kruskal method. The virtual tree and other isolated points in the Riemann graph form the initial state of the improved Kruskal method. Then, the Kruskal method is used to add edges to obtain the minimum spanning tree.
Figure 5 shows the structure of this minimum spanning tree.
There are two types of edges in the minimum spanning tree. One is that the normal of the two vertexes connected on the edge has not been adjusted manually. It can be represented as a reversible edge, which means that the normal of the two vertexes on the edge needs to be processed. The other is that the normal of one vertex of the two vertexes connected on the edge has been adjusted manually. It can be represented as a fixed edge, which means that the normal of a vertex on the edge is correct. The points on the fixed edges whose normals have been adjusted manually are selected as starting points in the process of normal propagation, which are represented as reference vertexes.
The fourth step of the method is to remove virtual tree
TV from minimum spanning tree
TM to obtain multiple subtrees
Ti. The normals of nodes in the virtual tree
TV have been adjusted manually. The normals of nodes in the virtual tree can be considered to be facing outside of the model correctly, and there is no need to flip them in the process of normal propagation. Therefore, before performing normal propagation, the virtual tree
TV needs to be removed from the minimum spanning tree
TM to obtain multiple subtrees
Ti. The normal propagation is performed by selecting the reference vertexes on the fixed edges of the subtrees as the starting points.
Figure 6 shows the structure of the subtrees.
The fifth step of the method is to perform normal propagation. Each subtree has a fixed edge, which connects a reference vertex and a to-be-processed vertex. For each subtree, a reference vertex is used as the starting point, and the breadth-first search method is used to traverse all nodes of the tree. If the inner product of the normal vectors of two adjacent vertexes is negative, the normal toward the inside of the model is flipped to make it toward the outside of the model.
2.3. Implicit Modeling
The main ideas of the implicit modeling method [
33] of ore body based on geological sampling data are as follows. First, the method uses discretization to convert corresponding types of geological data into interpolation constraints at a certain sampling interval. Second, the method obtains the implicit function that characterizes the geological model by solving the interpolation equation constructed by the interpolation constraint. Finally, the method uses the contour surface extraction method to reconstruct the implicit function that characterizes the geological model.
Figure 7 shows the implicit modeling process.
After determining the normal direction of the constraint point, the existing implicit modeling method can be directly used to reconstruct geological model. Considering that the radial basis function interpolation method has superior extrapolation performance, this paper uses the radial basis function to interpolate the constraint points whose normal directions are determined.
The radial basis interpolation function
has the following form:
where
is a set of different interpolation points, and
is the weight coefficient to be determined.
is a radial basis kernel function.
is the kernel function, and
is the polynomial.
The radial basis interpolation function
is usually used for interpolation to satisfy the following constraints.
where
is the function value at the interpolation point
.
To interpolate the normal direction of the constraint points, the method of adaptive off-plane constraints can be used to transform the normal constraint into the point constraints. The constraint point
on the geological surface satisfies the on-surface constraint
. The parameter
is selected as the offset distance of the constraint point, and the constraint point is offset along its normal direction
by a distance of
to obtain the following off-surface constraints.
By solving the interpolation equation composed of the above on-surface constraints and off-surface constraints, the radial basis interpolation function that represents the geological model can be obtained.
To visualize the radial basis interpolation function that implicitly expresses the geological body model, it is necessary to reconstruct the surface of the abstract implicit function according to the needs of the practical applications to obtain a polygonal mesh model. After solving the implicit function, the method of surface reconstruction can be used to obtain geological mesh models with different sizes.