Method, device and machine readable storage medium for determining a stockpile volume
By constructing a quadtree and using the Kriging interpolation method to process point cloud data, the inaccuracy of UAV material stockpile estimation was solved, and fast and accurate material stockpile calculation was achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- ZOOMLION HEAVY INDUSTRY SCIENCE AND TECHNOLOGY CO LTD
- Filing Date
- 2025-04-18
- Publication Date
- 2026-06-30
AI Technical Summary
Existing methods for estimating the amount of material stockpiled by drones are inaccurate, leading to omissions or overestimations, which affects the progress of mining operations.
By acquiring point cloud data of the target material pile, performing dimensional transformation and rasterization, constructing a quadtree, determining the raster type based on boundary information, and using the Kriging interpolation method to determine the elevation of void nodes, the area and elevation of leaf nodes are accumulated to calculate the material pile volume.
It improves the accuracy of material stockpile quantity estimation, solves the problems of boundary error and uneven point cloud data density, and realizes fast and accurate material stockpile quantity calculation.
Smart Images

Figure CN120563589B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of material stockpile quantity technology, and specifically to a method, apparatus, and machine-readable storage medium for determining the material stockpile quantity. Background Technology
[0002] A stockpile refers to the storage of mined materials, such as coal, gangue, and waste rock, on the mine surface to balance fluctuations in fuel supply and demand over a longer period or for long-term storage. Calculating the stockpile volume is fundamental to assessing the quantity of mined material resources and helps understand their potential value and development potential. Most methods for calculating stockpile volume involve manual measurement or laser marking to collect data, then constructing a DEM (Digital Elevation Model) or DTM (Digital Terrain Model) for estimation. However, this method is labor-intensive, time-consuming, and often cannot be updated promptly when the stockpile volume changes. With the continuous improvement of industrial automation, UAV 3D scanning technology has been widely used in the field of measurement technology. This technology can quickly scan the stockpile area, rapidly build a 3D point cloud model of the stockpile, and calculate the stockpile volume faster and more accurately based on the 3D point cloud model.
[0003] However, existing methods for estimating stockpile volume using drones are inaccurate, leading to underestimation or overestimation of stockpile volume, which affects subsequent processes (such as mining tasks). Summary of the Invention
[0004] The purpose of this application is to provide a method, apparatus, and machine-readable storage medium for determining the amount of material piled up, so as to solve the technical problem that the methods for estimating the amount of material piled up in the prior art are inaccurate.
[0005] To achieve the above objectives, the first aspect of this application provides a method for determining the stockpile size, comprising:
[0006] Acquire point cloud data of the target stockpile;
[0007] The point cloud data is dimensionally transformed and rasterized to obtain the raster data corresponding to the point cloud data, where the raster data includes multiple rasters;
[0008] Construct a quadtree for each grid cell based on the points in each grid cell;
[0009] Based on the boundary information of the target material pile, determine the type of each leaf node in the quadtree of each grid, where the type includes boundary grid, internal grid and external grid.
[0010] Determine the area of each leaf node based on its type;
[0011] Determine the elevation of each leaf node based on the attributes of each leaf node in the quadtree of each grid, where the attributes include hollow nodes and non-hollow nodes;
[0012] The mass of the target material pile is obtained by using the area and elevation of each leaf node in the quadtree.
[0013] In this embodiment of the application, a quadtree for each grid cell is constructed based on the points in each grid cell, including:
[0014] Determine any one of the raster cells in the raster data as the root node and the current raster;
[0015] Based on the current grid's range, determine the quadrant center point of the current grid, where the range includes the maximum and minimum values of the horizontal coordinate, the maximum and minimum values of the vertical coordinate;
[0016] The four quadrants obtained by dividing the current grid based on the quadrant center point are taken as four leaf nodes, and all points in the current grid are assigned to the four leaf nodes according to their positions.
[0017] Determine whether the current level of the quadtree has reached the preset maximum level;
[0018] If the current layer number has not reached the preset maximum layer number, determine whether the number of points in each leaf node is greater than the preset minimum number;
[0019] If the number of points in any leaf node is greater than the preset minimum number, the target leaf node is taken as the new current grid, and the step of determining the quadrant center point of the current grid based on the range of the current grid is repeated until the number of points in any leaf node is less than or equal to the preset minimum number or the current level of the quadtree reaches the preset maximum level. The target leaf node is the leaf node whose number of points is greater than the preset minimum number.
[0020] Perform the above steps for each raster in the raster data to obtain a quadtree for each raster.
[0021] In this embodiment of the application, the type of each leaf node in the quadtree of each grid is determined based on the boundary information of the target stockpile, including:
[0022] The boundary information of the target stockpile is vectorized to obtain the boundary polygon corresponding to the boundary information;
[0023] Based on the two endpoints of each side of the boundary polygon, determine the location of the boundary corresponding to each column of the raster data, and obtain the boundary location container;
[0024] Based on the boundary location container and the ray method, determine the type of each leaf node in the quadtree of the raster.
[0025] In this embodiment, the boundary location of each column of raster data is determined based on the two endpoints of each edge of the boundary polygon, thus obtaining the boundary location container:
[0026] Determine the equation representing each side based on the two endpoints of each side of the boundary polygon;
[0027] For each column in the raster data, perform the following steps:
[0028] Traverse each edge of the boundary polygon and determine whether the column lies between the x-coordinates of the two endpoints of the edge;
[0029] Under the condition that the x-coordinates of the two endpoints of the column are between the x-coordinates, the maximum and minimum y-coordinates of the intersection point of the edge and the column are determined according to the equation representing the edge, and the coordinate range is obtained.
[0030] Associate a column with multiple coordinate ranges and add it to the boundary location container.
[0031] In this embodiment of the application, the type of each leaf node in the quadtree of the grid is determined based on the boundary location container and the ray method, including:
[0032] Within the container where the raster is located at the boundary position, the type of the leaf node is determined to be a boundary raster;
[0033] Draw a ray from the grid in the target direction, starting from the grid, within a container where the grid is not located at the boundary position.
[0034] When a ray intersects an odd number of edges, the leaf node type is determined to be an internal grid.
[0035] When a ray intersects an even number of edges, the type of the leaf node is determined to be an external grid.
[0036] In this embodiment of the application, determining the area of each leaf node based on its type includes:
[0037] When the leaf node type is internal grid, the area of the leaf node is determined to be the area of the grid.
[0038] When the leaf node type is outer grid, the area of the leaf node is determined to be 0;
[0039] When the leaf node type is a boundary grid, the area of the leaf node is determined based on the boundary information of the target stockpile.
[0040] In this embodiment of the application, the elevation of each leaf node is determined based on the attributes of each leaf node in the quadtree of each grid, including:
[0041] Determine the attributes of each leaf node of the quadtree corresponding to each grid cell based on whether there is a point in each leaf node;
[0042] If the leaf node is a non-hole node, the maximum elevation of all points included in the leaf node is taken as the elevation of the leaf node.
[0043] When the leaf node is a hollow node, the Kriging interpolation method is used to determine the elevation of the leaf node.
[0044] In this embodiment of the application, the attributes of each leaf node of the quadtree corresponding to each grid are determined based on whether a point exists in each leaf node of the quadtree corresponding to each grid, including:
[0045] If a leaf node exists, the leaf node is determined to be a non-hole node;
[0046] If there are no points in the leaf node, the leaf node is determined as an empty node.
[0047] In this embodiment of the application, the Kriging interpolation method is used to determine the elevation of the leaf nodes, including:
[0048] Obtain points from multiple non-hole nodes within a preset range around the leaf node to obtain the target point cloud;
[0049] Determine the first distance and the first semivariance between each point in the target point cloud to obtain the distance vector and the semivariance vector;
[0050] Determine the fitting functions for the distance vector and the semivariance vector;
[0051] Determine the second distance between the leaf node and each point in the target point cloud, and then determine the second semi-variance between the leaf node and each point in the target point cloud based on the fitted function;
[0052] Substitute the second semi-variance into the preset set of weight coefficient equations and solve for the weight coefficients.
[0053] The elevation of the leaf nodes is determined based on the elevation and weight coefficient of each point in the target point cloud.
[0054] In this embodiment of the application, the method further includes:
[0055] The point cloud data is preprocessed, including downsampling and denoising.
[0056] The point cloud data is dimensionally transformed and rasterized to obtain the corresponding raster data, including:
[0057] The preprocessed point cloud data is dimensionally transformed and rasterized to obtain the raster data corresponding to the point cloud data.
[0058] A second aspect of this application provides an apparatus for determining the stockpile size, comprising:
[0059] The memory is configured to store instructions;
[0060] The processor is configured to retrieve instructions from memory and, when executing the instructions, to implement the method for determining the amount of material piled up according to the first aspect.
[0061] A third aspect of this application provides a machine-readable storage medium storing instructions for causing a machine to perform the method for determining the quantity of a stockpile according to the first aspect.
[0062] By taking into account boundary information and using grid quadtree differentiation to solve the problem of uneven point cloud data density, the boundary error problem is solved. The material pile quantity is obtained by accumulating the storage of all leaf nodes, which improves the accuracy of the material pile quantity estimation result.
[0063] Other features and advantages of the embodiments of this application will be described in detail in the following detailed description section. Attached Figure Description
[0064] The accompanying drawings are provided to further illustrate the embodiments of this application and form part of the specification. They are used together with the following detailed description to explain the embodiments of this application, but do not constitute a limitation on the embodiments of this application. In the drawings:
[0065] Figure 1 The illustration shows a flowchart of a method for determining the stockpile size according to an embodiment of this application;
[0066] Figure 2 The illustration shows a schematic diagram of constructing a quadtree according to an embodiment of this application;
[0067] Figure 3 This illustration schematically shows a structural diagram of a quadtree according to an embodiment of this application;
[0068] Figure 4 This illustration schematically shows a structural diagram of a grid type division according to an embodiment of the present application;
[0069] Figure 5The schematic diagram illustrates the structure of a device for determining the amount of material pile according to an embodiment of this application. Detailed Implementation
[0070] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. It should be understood that the specific embodiments described herein are only for illustration and explanation of the embodiments of this application and are not intended to limit the embodiments of this application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without creative effort are within the scope of protection of this application.
[0071] It should be noted that if the embodiments of this application involve directional indicators (such as up, down, left, right, front, back, etc.), the directional indicators are only used to explain the relative positional relationship and movement of the components in a certain specific posture (as shown in the figure). If the specific posture changes, the directional indicators will also change accordingly.
[0072] Furthermore, if the embodiments of this application involve descriptions such as "first" or "second," these descriptions are for descriptive purposes only and should not be construed as indicating or implying their relative importance or implicitly specifying the number of technical features indicated. Therefore, features defined with "first" or "second" may explicitly or implicitly include at least one of those features. Additionally, the technical solutions of various embodiments can be combined with each other, but this must be based on the ability of those skilled in the art to implement them. If the combination of technical solutions is contradictory or impossible to implement, it should be considered that such a combination of technical solutions does not exist and is not within the scope of protection claimed in this application.
[0073] Figure 1 The illustration schematically shows a flowchart of a method for determining the stockpile size according to an embodiment of this application. Figure 1 As shown in the figure, this application provides a method for determining the stockpile size, which may include the following steps 110-170.
[0074] Step 110: Obtain point cloud data of the target stockpile.
[0075] In this embodiment, it is necessary to first acquire point cloud data of the target material pile, and then determine the pile size based on the point cloud data. Indicatively, a drone equipped with scanning devices (such as LiDAR and depth cameras) can be used to perform 3D scanning and reconstruction of the target material pile to obtain its point cloud data.
[0076] Step 120: Perform dimensional transformation and rasterization on the point cloud data to obtain the raster data corresponding to the point cloud data, wherein the raster data includes multiple rasters.
[0077] In this embodiment of the application, the point cloud data can be dimensionally transformed to the XOY plane, and then a grid can be constructed according to a certain grid radius to obtain the grid data corresponding to the point cloud data.
[0078] Specifically, first extract the value ranges of the planar point cloud data transformed to the XOY plane along the X and Y axes, including the minimum value X on the X axis. min The maximum value of the X-axis X max The minimum value of the Y-axis, Y min And the maximum value Y on the Y-axis max Then, raster data is constructed based on the raster radius R. The total number of rasters is determined by the number of rasters N on the X-axis. x and the number of grids N on the Y-axis y Determine, where N x =(X max -X min ) / R, N y =(Y max -Y min Therefore, the projected coordinates of any point A(x1, y1) in the point cloud data are N / R. x1 =(x1-X) min ) / R, N y1 =(y1-Y min ) / R.
[0079] Step 130: Construct a quadtree for each grid cell based on the points in each grid cell.
[0080] In this embodiment, a binary search method is used for segmentation, with the maximum number of levels and the minimum number of points as the termination conditions for constructing the quadtree. A quadtree is a tree-like data structure where each node has four sub-blocks. That is, a grid is divided into four parts, and each part is further subdivided until the segmentation is complete. It is understood that a quadtree typically includes at least a root node and four leaf nodes.
[0081] In one optional implementation, step 130 includes:
[0082] Determine any one of the raster cells in the raster data as the root node and the current raster;
[0083] Based on the current grid's range, determine the quadrant center point of the current grid, where the range includes the maximum and minimum values of the horizontal coordinate, the maximum and minimum values of the vertical coordinate;
[0084] The four quadrants obtained by dividing the current grid based on the quadrant center point are taken as four leaf nodes, and all points in the current grid are assigned to the four leaf nodes according to their positions.
[0085] Determine whether the current level of the quadtree has reached the preset maximum level;
[0086] If the current layer number has not reached the preset maximum layer number, determine whether the number of points in each leaf node is greater than the preset minimum number;
[0087] If the number of points in any leaf node is greater than the preset minimum number, the target leaf node is taken as the new current grid, and the step of determining the quadrant center point of the current grid based on the range of the current grid is repeated until the number of points in any leaf node is less than or equal to the preset minimum number or the current level of the quadtree reaches the preset maximum level. The target leaf node is the leaf node whose number of points is greater than the preset minimum number.
[0088] Perform the above steps for each raster in the raster data to obtain a quadtree for each raster.
[0089] Please refer to the embodiments in this application as well. Figure 2 and Figure 3 , Figure 2 This illustration schematically shows a diagram of constructing a quadtree according to an embodiment of this application. Figure 3 A schematic diagram illustrating the structure of a quadtree according to an embodiment of this application is shown. Figure 2 As shown, Figure 2 This represents any raster selected from the raster data, using that raster as the root node and the current raster, thus obtaining... Figure 3 The root node of the first layer from top to bottom. The quadrant center point of the current grid is determined based on the current grid's extent. Schematic, the current grid's extent can be determined by the coordinates of its four corner points. Therefore, based on the quadrant center point, the current grid can be divided into four quadrants, thus obtaining... Figure 3 The four child nodes of the second layer from top to bottom.
[0090] To prevent excessive number of layers from causing unnecessary partitioning and increased computational load, a preset maximum number of layers is provided in this embodiment. It is understood that the preset maximum number of layers can be set according to actual needs, for example, it can be 4 or 5, and this embodiment does not limit this.
[0091] If the preset maximum level is not reached, it is necessary to further determine whether the number of points in each child node is greater than the preset minimum level. If it is greater, it means there are too many points, and further subdivision is needed; if it is less than or equal to, further subdivision is not needed. Therefore, if the number is greater, the child node is taken as the new current grid, and the child node is divided according to the aforementioned steps to construct the subsequent structure of the quadtree. This process continues until the number of points in any child node is less than or equal to the preset minimum level or the current level of the quadtree reaches the preset maximum level, at which point the process stops, and the quadtree of a grid is obtained.
[0092] It is understood that the preset minimum quantity can also be set according to actual needs, for example, it can be 1 or 2, and this application embodiment does not limit it in this way.
[0093] Furthermore, by performing the above steps for each grid cell, a quadtree for each grid cell can be obtained.
[0094] For example Figure 2 The grid shown, when first divided, yielded four regions, corresponding to... Figure 3 The text lists four child nodes: A, B, C, and D. Taking child node A as an example, before reaching the preset maximum layer number of 4, child node A contains 3 points, which is greater than the preset minimum number of 1. Therefore, child node A needs further division. This results in four regions, corresponding to… Figure 3 The four child nodes are E, F, G, and H. The H child node contains two points, and it also needs further subdivision. This results in four regions, corresponding to… Figure 3 The grid has four child nodes: I, J, K, and L. The K child node contains two nodes. At this point, since the preset maximum level of 4 has been reached, the partitioning stops, resulting in the quadtree of the grid.
[0095] Using the method provided in the embodiments of this application, the quadtree of each grid can be obtained quickly and accurately.
[0096] Step 140: Based on the boundary information of the target stockpile, determine the type of each leaf node in the quadtree of each grid, where the type includes boundary grid, internal grid and external grid.
[0097] In this embodiment, the boundary information of the target material pile is used as the basis for classifying the type of each leaf node in the quadtree of the grid. It can be understood that leaf nodes located within the boundary information are internal grids, leaf nodes located outside the boundary information are external grids, and leaf nodes intersecting with the boundary information are boundary grids.
[0098] The type of each leaf node is classified to provide a basis for subsequent calculation of the stockpile volume.
[0099] In one optional implementation, step 140 includes:
[0100] Step 141: Vectorize the boundary information of the target stockpile to obtain the boundary polygon corresponding to the boundary information;
[0101] Step 142: Based on the two endpoints of each side of the boundary polygon, determine the location of the boundary corresponding to each column of the raster data, and obtain the boundary location container;
[0102] Step 143: Determine the type of each leaf node in the quadtree of the grid based on the boundary position container and the ray method.
[0103] In the embodiments of this application, please refer to the following: Figure 4 The figure schematically illustrates a grid type division according to an embodiment of this application. Figure 4 As shown, Figure 4 The red lines in the diagram represent the boundary polygons corresponding to the boundary information obtained in step 141. It is understood that in this embodiment, a hexagonal boundary polygon is used as an example for the subsequent description, with the six sides numbered A, B, C, D, E, and F. Based on the two endpoints of each side, the boundary position of each column of the raster data can be determined, resulting in a boundary position container. The boundary position container can be understood as a set of boundary positions. For each leaf node in the quadtree of each raster, its type can be determined based on the boundary position container obtained in step 142 and the ray casting method.
[0104] In one optional implementation, step 142 includes:
[0105] Determine the equation representing each side based on the two endpoints of each side of the boundary polygon;
[0106] For each column in the raster data, perform the following steps:
[0107] Traverse each edge of the boundary polygon and determine whether the column lies between the x-coordinates of the two endpoints of the edge;
[0108] Under the condition that the x-coordinates of the two endpoints of the column are between the x-coordinates, the maximum and minimum y-coordinates of the intersection point of the edge and the column are determined according to the equation representing the edge, and the coordinate range is obtained.
[0109] Associate a column with multiple coordinate ranges and add it to the boundary location container.
[0110] In this embodiment, based on the coordinates of the two endpoints of the i-th edge, the equation representing the i-th edge, y = k, can be obtained. i x+b iConstruct a coordinate system with the top left corner as the origin. The coordinates of the two endpoints of the side numbered A are (2, 2) and (4, 2).
[0111] Using the x-direction as a reference, for each column in the raster data, first traverse each edge to determine whether the column lies between the x-coordinates of the two endpoints of the edge. For example, the first column does not intersect with any edge and can be skipped.
[0112] The second column intersects with all three edges numbered A, E, and F. Taking edge A as an example, the second column clearly lies between the x-coordinates of the two endpoints of edge A, which are 2 and 4. Therefore, based on the equation representing edge A, we can determine the maximum and minimum y-coordinates of the intersection points of edge A and the second column. Thus, the resulting coordinate range is (2, 2). Here, the intersection point of an edge and a column refers to the intersection point of the line segments on both sides of the column. Taking the second column as an example, it refers to... Figure 4 The line segments between columns 1 and 2, and between columns 2 and 3, have only one intersection point with coordinate 2. Taking edge B as an example, it's clear that column 2 is not between the x-coordinates of the two endpoints of edge B, which is 4 and 5. Edges C and D are similar to edge B, so they will not be described further here. Column 2 lies between the x-coordinates of the two endpoints of edge E, which is 2 and 4. Therefore, based on the equation representing edge E, we can determine the maximum and minimum y-coordinates of the intersection point between edge E and column 2. Here, there is only one intersection point with coordinate 4, so the coordinate range is (2, 4). Column 2 lies between the x-coordinates of the two endpoints of edge F, which is 2 and 2. Therefore, based on the equation representing edge F, we can determine the maximum and minimum y-coordinates of the intersection point between edge F and column 2. Here, there is no intersection point, so the coordinate range cannot be obtained. Therefore, the coordinate range associated with the second column is (2, 2) to (2, 4).
[0113] The logic for the remaining columns is similar, and will not be repeated here.
[0114] In one optional implementation, step 143 includes:
[0115] Within the container where the raster is located at the boundary position, the type of the leaf node is determined to be a boundary raster;
[0116] Draw a ray from the grid in the target direction, starting from the grid, within a container where the grid is not located at the boundary position.
[0117] When a ray intersects an odd number of edges, the leaf node type is determined to be an internal grid.
[0118] When a ray intersects an even number of edges, the type of the leaf node is determined to be an external grid.
[0119] In this embodiment, for each grid cell, it is determined whether the grid cell is located within a boundary location container. If so, the grid cell is considered a boundary grid. If not, a ray is drawn from the grid cell as the starting point. (See reference...) Figure 4 In this embodiment, the preset direction is upward. It is understood that the preset direction can be changed according to actual needs, and this embodiment does not limit this. For example, a grid with coordinates (3, 3) has an upward ray that intersects with the edge numbered A; therefore, this grid is an internal grid. A grid with coordinates (3, 1) has no intersecting edges when a ray is drawn upward; therefore, this grid is an external grid. Figure 4 In the diagram, the blue grid is an outer grid, the yellow grid is a boundary grid, and the green grid is an inner grid.
[0120] Step 150: Determine the area of each leaf node based on its type.
[0121] In this embodiment of the application, different methods are used to determine the area of different types of leaf nodes in order to improve the accuracy of the determination of the subsequent material stacking amount.
[0122] In one optional implementation, step 150 includes:
[0123] When the leaf node type is internal grid, the area of the leaf node is determined to be the area of the grid.
[0124] When the leaf node type is outer grid, the area of the leaf node is determined to be 0;
[0125] When the leaf node type is a boundary grid, the area of the leaf node is determined based on the boundary information of the target stockpile.
[0126] In the embodiments of this application, it can be understood that for the inner grid, since it is entirely within the boundary information, the area should be the area of the grid; for the outer grid, since it is entirely outside the boundary information, the area should be 0; for the boundary grid, since some parts are within the boundary information and some parts are outside the boundary information, it is necessary to re-determine the area of the leaf node based on the boundary information, and only the part within the boundary information needs to be counted as the area of the leaf node.
[0127] Specifically, all edges contained in the column of the raster corresponding to the leaf node can be obtained from the boundary location container. For example, the raster at (2, 2) is in column 2, which contains three edges numbered A, E, and F. Calculate the intersection points of the equations representing all edges with the raster, as well as the intersection points between all edges. Then, determine the area of the leaf node based on the new polygon formed by these intersection points. It should be noted that the coordinates of each intersection point need to be obtained with more precise values, such as 1.7.
[0128] Step 160: Determine the elevation of each leaf node based on the attributes of each leaf node in the quadtree of each grid, where the attributes include hollow nodes and non-hollow nodes.
[0129] In the embodiments of this application, different methods are used to determine the elevation of leaf nodes with different attributes in order to improve the accuracy of the determination of the subsequent material stockpile quantity.
[0130] In one optional implementation, step 150 includes:
[0131] Step 151: Determine the attributes of each leaf node of the quadtree corresponding to each grid cell based on whether there is a point in each leaf node of each grid cell.
[0132] Step 152: If the leaf node is a non-hole node, take the maximum elevation of all points included in the leaf node as the elevation of the leaf node.
[0133] Step 153: When the leaf node is a hollow node, the Kriging interpolation method is used to determine the elevation of the leaf node.
[0134] In this embodiment, the attributes of each leaf node are first determined based on whether there are points within each leaf node. For non-hollow nodes, the maximum elevation among all points in the leaf node is used as the elevation of that leaf node; for hollow nodes, since there are no points in the leaf node, the elevation is difficult to determine. This embodiment provides a method for determining the elevation of the leaf node using the Kriging interpolation method.
[0135] In one optional implementation, step 151 includes:
[0136] If a leaf node exists, the leaf node is determined to be a non-hole node;
[0137] If there are no points in the leaf node, the leaf node is determined as an empty node.
[0138] In this embodiment, the attributes of leaf nodes are distinguished based on whether there are points in the leaf nodes. Hollow nodes indicate that there are no points in the leaf nodes and they are hollow; non-hollow nodes indicate that there are points in the leaf nodes and they are non-hollow.
[0139] In one optional implementation, the elevation of the leaf nodes is determined using the Kriging interpolation method, including:
[0140] Obtain points from multiple non-hole nodes within a preset range around the leaf node to obtain the target point cloud;
[0141] Determine the first distance and the first semivariance between each point in the target point cloud to obtain the distance vector and the semivariance vector;
[0142] Determine the fitting functions for the distance vector and the semivariance vector;
[0143] Determine the second distance between the leaf node and each point in the target point cloud, and then determine the second semi-variance between the leaf node and each point in the target point cloud based on the fitted function;
[0144] Substitute the second semi-variance into the preset set of weight coefficient equations and solve for the weight coefficients.
[0145] The elevation of the leaf nodes is determined based on the elevation and weight coefficient of each point in the target point cloud.
[0146] In this embodiment, for a leaf node o with the attribute of a hole node, points among multiple non-hole nodes near the leaf node are first obtained to obtain the target point cloud P. It is understood that the preset range can be set according to actual needs, and this embodiment does not limit it.
[0147] Then, calculate the distance between each point in the target point cloud P and the first semivariance to obtain the distance vector d and the semivariance vector γ. The specific calculation method can be found in the following formulas (1) and (2):
[0148]
[0149] In the formula, x i y i z i Let x represent the coordinates of the i-th point in the target point cloud P. j y j z j Let represent the coordinates of the j-th point in the target point cloud P, d represent the distance vector, and γ represent the semivariance vector.
[0150] A distance-semivariance scatter plot is drawn based on the distance vector d and the semivariance vector γ to obtain the fitting function.
[0151] Determine the second distance between the leaf node o and each point in the target point cloud P, and substitute the second distance into the fitting function to solve for the second semi-variance between the leaf node o and each point in the target point cloud P.
[0152] Substituting the second semi-variance into the preset weight coefficient equations and solving them yields the weight coefficients. The preset weight coefficient equations can be found in the following formula (3):
[0153]
[0154] In the formula, γ ij Let represent the semivariance between the i-th point and the j-th point, where i and j range from [1, n], n represents the number of points in the target point cloud P, and o represents a leaf node.
[0155] Finally, the elevation of the leaf nodes is determined based on the elevation and weight coefficient of each point in the target point cloud, as shown in the following formula (4):
[0156] h=∑λ i z i (4)
[0157] In the formula, h represents the elevation of the leaf node, and λ i z represents the weight coefficient of the i-th point. i Let represent the elevation of the i-th point.
[0158] Therefore, in this embodiment of the application, for empty nodes without points, the Kriging interpolation method is used to predict the elevation, thereby laying the foundation for subsequent calculation of the stockpile volume.
[0159] Step 170: Based on the area and elevation of each leaf node in the quadtree, obtain the target material pile quantity.
[0160] In this embodiment, since the grid has been divided into multiple leaf nodes in the preceding steps, based on the idea of differentiation, the smaller the quadtree partition radius of the grid, the higher the accuracy of the stockpile calculation. The overall stockpile volume can be regarded as the sum of the stockpile volumes of all leaf nodes. Therefore, the formula for calculating the stockpile volume of the target stockpile can be expressed as the following formula (5):
[0161] V=∑Sh (5)
[0162] In the formula, V represents the amount of the target material pile, S represents the area of each leaf node, and H represents the height of each leaf node.
[0163] That is, the amount of the target material pile is the sum of the products of the area and height of each leaf node.
[0164] In one optional implementation, the method further includes:
[0165] The point cloud data is preprocessed, including downsampling and denoising.
[0166] Step 120 includes:
[0167] The preprocessed point cloud data is dimensionally transformed and rasterized to obtain the raster data corresponding to the point cloud data.
[0168] In this embodiment, the obtained point cloud data can be preprocessed before subsequent steps. Indicatively, preprocessing includes downsampling and denoising, primarily to downsample the point cloud data and remove erroneous scans and interfering points within the data.
[0169] The specific preprocessing operations may include: first, downsampling the point cloud data using approximate voxel filtering; that is, constructing voxels based on the point cloud data at a certain voxel size, traversing all voxels, and randomly selecting a point within a voxel as its downsampling point when a point exists. Then, denoising the point cloud data based on the sampling radius; that is, traversing all point cloud data, acquiring points within the sampling radius for each target point; if the number of points obtained is less than the noise point threshold, the target point is considered to deviate significantly from other points, and therefore, it is considered a noise point, and all noise points are removed.
[0170] In this way, the preprocessed point cloud data can be processed in step 120, thereby improving the accuracy of the obtained raster data and further improving the accuracy of subsequent processing.
[0171] The method for determining the stockpile quantity provided in this application takes into account boundary information and solves the problem of uneven point cloud data density by using grid quadtree differentiation, thereby solving the boundary error problem. The stockpile quantity is obtained by accumulating the storage of all leaf nodes, which improves the accuracy of the stockpile quantity estimation result.
[0172] Figure 5 This schematically illustrates a structural block diagram of a device for determining the amount of material piled up according to an embodiment of this application. Figure 5 As shown in the figure, this application provides a device for determining the stockpile size, which may include:
[0173] Memory 510 is configured to store instructions;
[0174] The processor 520 is configured to retrieve instructions from the memory 510 and, when executing the instructions, to implement the aforementioned method for determining the amount of material piled up.
[0175] The device for determining the amount of material pile provided in this application embodiment can realize each process of the method for determining the amount of material pile in the method embodiment, and can achieve the same technical effect. To avoid repetition, it will not be described again here.
[0176] This application also provides a machine-readable storage medium storing instructions for causing a machine to execute the above-described method for determining the amount of material piled up.
[0177] Those skilled in the art will understand that embodiments of this application can be provided as methods, systems, or computer program products. Therefore, this application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, this application can take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, etc.) containing computer-usable program code.
[0178] This application is described with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, generate instructions for implementing the flowchart... Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0179] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable data processing device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0180] These computer program instructions may also be loaded onto a computer or other programmable data processing equipment to cause a series of operational steps to be performed on the computer or other programmable equipment to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable equipment for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0181] In a typical configuration, a computing device includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0182] Memory may include non-persistent memory in computer-readable media, such as random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of computer-readable media.
[0183] Computer-readable media includes both permanent and non-permanent, removable and non-removable media that can store information using any method or technology. Information can be computer-readable instructions, data structures, modules of programs, or other data. Examples of computer storage media include, but are not limited to, phase-change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, disk storage or other magnetic storage devices, or any other non-transferable medium that can be used to store information accessible by a computing device. As defined herein, computer-readable media does not include transient computer-readable media, such as modulated data signals and carrier waves.
[0184] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0185] The above are merely embodiments of this application and are not intended to limit the scope of this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of the claims of this application.
Claims
1. A method for determining the stockpile size, characterized in that, include: Acquire point cloud data of the target stockpile; The point cloud data is dimensionally transformed and rasterized to obtain the raster data corresponding to the point cloud data, wherein the raster data includes multiple rasters; Construct a quadtree for each of the grids based on the points in each grid; Based on the boundary information of the target material pile, determine the type of each leaf node in the quadtree of each grid, wherein the type includes boundary grid, internal grid and external grid; Determine the area of each leaf node based on its type; The elevation of each leaf node is determined based on the attributes of each leaf node in the quadtree of each grid, wherein the attributes include hollow nodes and non-hollow nodes; The amount of the target material pile is obtained based on the area and elevation of each leaf node in the quadtree. The step of determining the area of each leaf node based on its type includes: If the type of the leaf node is an internal grid, the area of the leaf node is determined to be the area of the grid. If the type of the leaf node is an outer grid, then the area of the leaf node is determined to be 0; When the leaf node is of type boundary grid, the area of the leaf node is determined based on the boundary information of the target material pile.
2. The method according to claim 1, characterized in that, The process of constructing a quadtree for each grid cell based on the points in each grid cell includes: Determine any one of the raster cells in the raster data as the root node and the current raster; Based on the range of the current grid, determine the quadrant center point of the current grid, wherein the range includes the maximum value of the horizontal coordinate, the minimum value of the horizontal coordinate, the maximum value of the vertical coordinate, and the minimum value of the vertical coordinate; The current grid is divided into four quadrants based on the center point of the quadrant, which are then used as four leaf nodes. All points in the current grid are then assigned to the four leaf nodes according to their positions. Determine whether the current level of the quadtree has reached the preset maximum level; If the current layer number has not reached the preset maximum layer number, determine whether the number of points in each leaf node is greater than the preset minimum number; If the number of points in any of the leaf nodes is greater than a preset minimum number, the target leaf node is taken as the new current grid, and the step of determining the quadrant center point of the current grid based on the range of the current grid is repeated until the number of points in any of the leaf nodes is less than or equal to the preset minimum number or the current level of the quadtree reaches the preset maximum level, wherein the target leaf node is a leaf node whose number of points is greater than the preset minimum number. Perform the above steps for each grid cell in the grid data to obtain a quadtree for each grid cell.
3. The method according to claim 1, characterized in that, The step of determining the type of each leaf node in the quadtree of each grid based on the boundary information of the target stockpile includes: The boundary information of the target material pile is vectorized to obtain the boundary polygon corresponding to the boundary information; Based on the two endpoints of each side of the boundary polygon, determine the boundary location of each column of the raster data to obtain the boundary location container; The type of each leaf node in the quadtree of the grid is determined based on the boundary location container and the ray method.
4. The method according to claim 3, characterized in that, The step of determining the boundary location of each column of the raster data based on the two endpoints of each side of the boundary polygon to obtain the boundary location container includes: Determine the equation representing each edge based on the two endpoints of each edge of the boundary polygon; For each column in the raster data, perform the following steps: Traverse each edge of the boundary polygon and determine whether the column is between the x-coordinates of the two endpoints of the edge; Under the condition that the column is between the x-coordinates of the two endpoints of the edge, the maximum and minimum y-coordinates of the intersection point of the edge and the column are determined according to the equation representing the edge, and the coordinate range is obtained; The column is associated with multiple coordinate ranges and added to the boundary location container.
5. The method according to claim 3, characterized in that, The step of determining the type of each leaf node in the quadtree of the grid based on the boundary position container and the ray method includes: When the grid is located in the boundary location container, the type of the leaf node is determined to be a boundary grid; When the grid is not located within the boundary location container, a ray is drawn from the grid as the starting point toward the target direction; When the ray intersects with an odd number of edges, the type of the leaf node is determined to be an internal grid; When the ray intersects with an even number of edges, the type of the leaf node is determined to be an outer grid.
6. The method according to claim 1, characterized in that, Determining the elevation of each leaf node based on the attributes of each leaf node in the quadtree of each grid includes: Determine the attributes of each leaf node of the quadtree corresponding to each grid cell based on whether there is a point in each leaf node; If the leaf node is a non-hollow node, the maximum elevation of all points included in the leaf node is taken as the elevation of the leaf node. When the leaf node is a hollow node, the elevation of the leaf node is determined using the Kriging interpolation method.
7. The method according to claim 6, characterized in that, The step of determining the attributes of each leaf node in the quadtree corresponding to each grid cell based on whether a point exists in each leaf node of the quadtree corresponding to each grid cell includes: If the leaf node has a point, the leaf node is determined to be a non-hole node; If no points exist in the leaf node, the leaf node is identified as a hollow node.
8. The method according to claim 6, characterized in that, The process of determining the elevation of the leaf node using the Kriging interpolation method includes: The target point cloud is obtained by acquiring points from multiple non-hollow nodes within a preset range around the leaf node; Determine the first distance and the first semivariance between each point in the target point cloud to obtain the distance vector and the semivariance vector; Determine the fitting function for the distance vector and the semivariance vector; Determine the second distance between the leaf node and each point in the target point cloud, and determine the second semi-variance between the leaf node and each point in the target point cloud based on the fitting function; Substitute the second semi-variance into the preset set of weight coefficient equations and solve to obtain the weight coefficients; The elevation of the leaf node is determined based on the elevation of each point in the target point cloud and the weighting coefficient.
9. The method according to claim 1, characterized in that, The method further includes: The point cloud data is preprocessed, wherein the preprocessing includes downsampling and denoising; The step of performing dimensional transformation and rasterization on the point cloud data to obtain the raster data corresponding to the point cloud data includes: The preprocessed point cloud data is dimensionally transformed and rasterized to obtain the raster data corresponding to the point cloud data.
10. A device for determining the amount of material piled up, characterized in that, include: The memory is configured to store instructions; The processor is configured to retrieve the instructions from the memory and, when executing the instructions, to implement the method for determining the stockpile quantity according to any one of claims 1 to 9.
11. A machine-readable storage medium, characterized in that, The machine-readable storage medium stores instructions for causing the machine to perform the method for determining the stockpile quantity according to any one of claims 1 to 9.