A method for storing large-capacity point clouds of electricity and a rendering method

Through the n fork-tree model, object identification and classification of substation point cloud data is solved, resource waste problems in the existing technology are quickly stored and efficiently rendered large-capacity point cloud data, and user experience is improved.

CN115905586BActive Publication Date: 2025-07-29NARI TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202110974347.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-08-24
Publication Date
2025-07-29
Estimated Expiration
2041-08-24

AI Technical Summary

Technical Problem

When processing large-capacity point cloud data of substations, the prior art cannot effectively distinguish different objects, resulting in non-important objects occupying a large number of storage and rendering resources, affecting the user experience.

Method used

The n-forktree model is used to identify and classify point cloud data, and the n-forktree is set according to the object category. The n-forktree is built recursively written to the tile file during the construction process, combining breadth-first traversal and view cone intersection area to prioritize key objects.

Benefits of technology

It realizes the rapid storage and rendering of large-capacity point cloud data in low computing power and storage space devices, improving the user experience, especially the rendering speed and efficiency of key objects.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115905586B_ABST
    Figure CN115905586B_ABST
Patent Text Reader

Abstract

The present invention discloses a method for storing and rendering large-capacity power point clouds, including: obtaining the original point cloud data of a substation area; performing object recognition on the original point cloud data; reading the points in the original point cloud data, and sequentially inputting the read points into an n-ary tree model to construct an n-ary tree; serializing the hierarchical relationship between each node in the n-ary tree and the number of points stored in each node to a global hierarchical file in the order of breadth-first traversal; during the construction of the n-ary tree, if the number of points reaches a pre-set threshold for writing files, recursively write the points in the tree to a tile file. Advantages: It can quickly store, view, and analyze substation or other large-capacity point cloud data in terminal devices with low computing power and low storage space; key objects such as power lines are stored at a low hierarchical level and will be preferentially displayed during rendering, improving the user experience.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a method for storing and rendering large-capacity point clouds in electricity, belonging to the technical field of three-dimensional vision processing. Background Art

[0002] In the power system, inspection, maintenance management of substation equipment, and timely detection of problems existing in the equipment are one of the main tasks of substation operation and maintenance. Timely detecting problems existing in the equipment and improving power supply reliability and service level have become important means to improve the service level of power supply enterprises. In the currently widely carried out application of substation drone inspection, it is a trend to use lidar carried by inspection drones to scan and obtain point cloud data.

[0003] With the continuous development of three-dimensional laser scanning technology, various hard technical indicators such as the scanning accuracy, scanning speed, and angular resolution of lidar have been continuously improved. Under the condition of meeting the scanning density, the scanning data volume of laser scanners can reach hundreds of millions or even tens of billions, bringing challenges to data operation and processing. The point cloud data processing method lags behind the rapid development of hardware relatively and cannot meet the requirements for rapid processing of mobile measurement data in various surveying and mapping engineering applications.

[0004] Since the point cloud of a substation is usually too large to be integrated into memory, an out-of-core algorithm is usually used for processing. A possible out-of-core option is to split the data into multiple tiles and process one or several tiles at a time. For visualization, it is usually desired to display the entire data set.

[0005] Most methods adopt variants of a hierarchical spatial partitioning structure, also known as a multi-resolution structure, such as a kd-tree, an octree, or a quadtree, and fill all nodes with data representing the original model at different resolutions. Some of these methods redistribute the original point data in the hierarchical structure, while others only store the original data in leaf nodes and store the downsampled average values in internal nodes. For example, when the distance between a tree and a house on the ground gets closer and closer, the rendering resolution gets higher and higher, and the point cloud imaging gradually changes from blurred to clear.

[0006] The currently popular multi-resolution processing method has improved the rendering speed to a certain extent and saved memory resources. However, in the current tile hierarchical storage method, the differences between different types of objects are not considered when constructing the octree. For example, the same sampling and rendering strategies are adopted for unimportant objects (grassland) and important objects (power lines), resulting in not only a large amount of storage and rendering resources being occupied by unimportant objects, causing the picture to freeze, but also the important objects not being preferentially rendered, greatly reducing the user experience. Summary of the Invention

[0007] The technical problem to be solved by the present invention is to overcome the defects of the prior art and provide a method for storing and rendering large-capacity point clouds in the power field, which can quickly store, view, and analyze substation or other large-capacity point cloud data in terminal devices with low computing power and low storage space.

[0008] To solve the above technical problem, the present invention provides a method for storing large-capacity point clouds in the power field, including:

[0009] Obtain the original point cloud data of the substation area;

[0010] Perform object recognition on the original point cloud data to identify different object categories and the bounding box areas where each object category is located. Obtain the pre-set allowable neighbor threshold corresponding to the object category according to the object category, and cache the bounding box area and the neighbor threshold into the object data set;

[0011] Read the points in the original point cloud data, and sequentially input the read points into the n-ary tree model. Search the object data set according to the coordinates of the read points to determine the bounding box area of the point. Determine the object category to which the point belongs and the allowable neighbor threshold of the object category according to the bounding box area. Construct an n-ary tree according to the object category to which the point belongs and the allowable neighbor threshold of the object category until all points are input into the n-ary tree model to obtain the constructed n-ary tree;

[0012] After the n-ary tree is constructed, serialize the hierarchical relationship between the nodes in the n-ary tree and the number of points stored in each node to the global hierarchical file in the order of breadth-first traversal; during the construction of the n-ary tree, if the number of points reaches the pre-set file writing threshold, recursively write the points in the tree to the tile file; the file names of the tile files corresponding to the nodes at different levels of detail in the n-ary tree are named according to the levels where the nodes are located;

[0013] Among them, the construction of the n-ary tree includes: when the average distance between the points input to a certain node in the n-ary tree and the other points in the node is less than the allowable neighbor threshold of the object category of the point, move the point to the next sub-node of the node.

[0014] Further, the performing object recognition on the original point cloud data to identify different object categories and the bounding box areas where each object category is located includes:

[0015] Preprocess the original point cloud data to extract the effective point cloud data;

[0016] Perform elevation feature filtering on the effective point cloud data to obtain ground points and non-ground points;

[0017] Use the method of Euclidean space clustering segmentation to classify and partition the non-ground points into target entities;

[0018] The minimum spanning tree and the maximum critical path algorithm are used to extract the line model from the classified data;

[0019] Calculate the direction and cross-sectional radius of the line model, and determine the object category of the line model according to the direction and radius of the line model;

[0020] After the object category is determined, the cube containing the object is the bounding box area of the object.

[0021] Furthermore, the preprocessing includes:

[0022] Calculate the average distance from each point in the original point cloud data to all its adjacent points;

[0023] Calculate the global distance mean according to the average distance from all points to all their adjacent points;

[0024] Determine the retention interval according to the global distance mean and the preset discrete standard deviation, and regard the points outside the retention interval as outliers and remove them from the original point cloud data;

[0025] Use the point cloud voxel filter algorithm to downsample the original point cloud data after removing outliers, and extract the effective point cloud data.

[0026] Furthermore, the use of the minimum spanning tree and the maximum critical path algorithm to extract the line model from the classified data includes:

[0027] Use the Kruskal algorithm to find the minimum spanning tree for the classified data, and obtain several minimum spanning trees with different paths;

[0028] Calculate the endpoint distances of different paths, and take the longest path as the maximum critical path;

[0029] Process the point cloud of the extracted maximum critical path by compressing and averaging to obtain the approximate central axis of the current line point cloud, and determine the line model according to the approximate central axis.

[0030] Furthermore, it also includes:

[0031] During the construction of the n-ary tree, if the number of points reaches the preset threshold for writing files, recursively write the points in the tree to the tile file in las format.

[0032] Furthermore, the calculation process of the average distance between the point and other points in the node includes:

[0033] Find the neighbors of the point, including: in the same node, all points whose three-dimensional coordinate distances differ by less than a certain threshold are the neighbors of the point;

[0034] Add the neighbors to the hash table for caching, including: obtaining the three-dimensional coordinates of the current point, using the combination of the three-dimensional coordinates as an index, the retrieved hash value points to the cell address, if the cell does not exist, create a new cell, and then add all neighbors to the cell; insert the hash index and hash value into the hash table;

[0035] Neighbor relationship retrieval, including: according to the hash index combined by the three-dimensional coordinates of the current point, retrieve the corresponding hash value in the hash table, that is, the cell address; find all neighbors of the current point in the cell, and calculate the average distance between this point and its neighbors.

[0036] A method for rendering large-capacity power point clouds, including:

[0037] Obtain the global hierarchical file obtained by the method described in claim 1;

[0038] Obtain the rendering timing trigger instruction, and calculate the intersection area between the area that needs to be refreshed for the current rendering and the frustum;

[0039] According to the intersection area, search the global hierarchical file, determine the tile files that need to be loaded, after parsing the tile files, perform rendering with priorities.

[0040] Further, the rendering with priorities includes:

[0041] Within the intersection area, use the breadth-first recursive traversal method to traverse the octree, first traverse the data cache inside the octree, and then traverse its eight child nodes, and so on;

[0042] During the traversal, if a certain node is within the intersection area, calculate the sum of the bounding box volumes of the power line key objects included in the node's cache array, sort according to the size of the sum of the volumes, and add the node information to the priority queue, and start rendering from the nodes taken out of the queue in the order of the priority queue;

[0043] If the data of a certain node in the priority queue has not been loaded, create a loading thread to obtain the node data path from the node priority queue, read the point cloud data of the node and start parsing, after parsing, calculate the bounding box volume of the newly loaded node, and trigger the local rendering of the point cloud within the intersection range of the bounding box and the frustum.

[0044] A computer-readable storage medium storing one or more programs, the one or more programs include instructions, which when executed by a computing device, cause the computing device to execute any one of the storage method or the rendering method described above.

[0045] A computing device, including,

[0046] One or more processors, a memory, and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, and the one or more programs include instructions for executing any one of the storage method or the rendering method described above.

[0047] Advantages achieved by the present invention:

[0048] The present invention can store a data set of one billion points in many tile files in a hierarchical structure and at different resolutions. Users can view the data set in real time in a web browser without loading all the point clouds. By this method, it is possible to quickly store, view, and analyze substation or other large-capacity point cloud data on terminal devices with low computing power and low storage space;

[0049] Secondly, through preprocessing of the original point cloud, objects of different importance levels are identified, dense storage is achieved for important objects such as power lines, and sparse storage is achieved for unimportant objects, generally reducing the storage space of the point cloud on the hard disk and the memory space consumed during rendering;

[0050] Thirdly, key objects such as power lines are stored at a low hierarchical level and will be preferentially displayed during rendering, improving the user experience. Description of the Drawings

[0051] Figure 1 is the radius screening of the straight-line point cluster;

[0052] Figure 2 is the architecture of the hierarchical storage of the point cloud;

[0053] Figure 3 is the flowchart of the point cloud storage. Detailed Embodiments

[0054] The present invention will be further described below with reference to the drawings. The following embodiments are only used to more clearly illustrate the technical solution of the present invention and should not be used to limit the protection scope of the present invention.

[0055] A method for rendering large-capacity power point clouds includes:

[0056] 1. Object recognition. Detect objects in the original point cloud to obtain the area of the bounding box where the objects are located.

[0057] 2. Point cloud sharding storage. Use a multi-resolution storage structure of tile-based files for the original point cloud, load on demand, and avoid keeping the point cloud data in memory all the time; achieve dense storage for objects such as power lines and sparse storage for non-power line objects, generally reducing the storage space of the point cloud. The storage format of the tile files is in LAS format.

[0058] 3. Point cloud rendering. In addition to using frustum culling technology, multi-threaded dynamic scheduling technology, and local rendering technology to achieve view-point-based massive point cloud rendering, the rendering resolution of objects such as power lines is also increased, and the rendering priority is improved to enhance the user experience.

[0059] 1. Object recognition

[0060] To improve the efficiency and reliability of subsequent point cloud processing, preprocessing operations need to be performed on the original point cloud data. Filtering the ground is a basic preprocessing operation in lidar perception. Since our environmental perception is usually only interested in obstacles on the road surface, and the ground points can easily affect obstacle clustering, the ground points and non-ground points are usually separated before clustering.

[0061] Non-ground points usually contain objects such as power equipment, power lines, poles, buildings, and trees. Considering that the distance between objects is much greater than the distance between points within the same cluster, different point cloud clusters can be separated by the Euclidean clustering segmentation algorithm to obtain the spatial coordinates of the bounding box; for ground power lines, poles, and trees, the random sample consensus (RANSAC) algorithm can be used to fit the object classification, while for more complex power equipment, its category can be obtained through manual annotation based on the bounding box.

[0062] Specifically, it is divided into the following steps:

[0063] 1) Point cloud preprocessing. The elimination of sparse outliers is based on the calculation of the distribution of the distances from points in the input dataset to their neighbors. For each point, we calculate the average distance from it to all adjacent points. By assuming that the resulting distribution is a Gaussian distribution with a mean and standard deviation, all points whose average distance is outside the interval defined by the global distance mean and standard deviation (the standard deviation is the allowed degree of dispersion. For example, if the mean is 3 and the standard deviation is 1, then the range is 2 - 4) can be regarded as outliers and pruned from the dataset. Voxel downsampling is performed on the filtered point cloud image, and the point cloud is downsampled using the point cloud voxel (VoxelGrid) filter algorithm to extract the effective point cloud.

[0064] 2) Ground separation. The ground extraction method is to use elevation feature filtering. Since the elevation of ground points is lower than that of other surrounding features such as buildings and vegetation, point cloud filtering using this feature can distinguish road points from other non-ground points.

[0065] 3) Clustering segmentation. After the scanned point cloud passes through ground extraction, the non-ground data loses its connection with the ground and is independently distributed in space. According to this spatial distribution feature, the Euclidean space clustering segmentation method can be used to divide the target entities. This method uses the Euclidean distance between points as the measure function for judgment, that is, when the Euclidean distance between a point and any point in a certain class set is less than the threshold, it is classified into the same class.

[0066] 4) Straight line fitting. The minimum spanning tree and the maximum critical path algorithms are used to extract straight lines. For each sub-block, the minimum spanning tree is obtained based on the graph theory algorithm, and the longest path in the minimum spanning tree is taken as the approximate straight line of the wire. The central axis of the device is obtained by extracting the central axis.

[0067] i) Minimum spanning tree and maximum critical path

[0068] The minimum spanning tree originates from graph theory and is defined as follows: For a given connected undirected graph G=(V,E), if there is an acyclic subset A in E that contains all vertices and the sum of the weights of all edges is the smallest, then we call this subset the minimum spanning tree. In this paper, the Kruskal algorithm is used to obtain the minimum spanning tree, and the union-find set is used to determine whether the newly added vertices form a loop in the current path.

[0069] For the same graph, the extracted minimum spanning tree is not unique and needs to be further screened. To make the extracted path more conform to the original straight line model, it is necessary to make it "stretch" as much as possible towards both ends of the straight line, that is, calculate the endpoint distances of different paths and take the longest path as the representative.

[0070] ii) Central axis extraction

[0071] The point cloud on the minimum spanning tree path extracted can be smoothed to obtain the approximate central axis of the current straight line point cloud. Since the current path is not a "straight" line, the RANSAC straight line fitting method needs to be used to find a straight line that conforms to this path. The core of the RANSAC algorithm is to divide the points into "inliers" and "outliers". A matrix is obtained by random sampling and then it is verified whether other points conform to the model. Then the conforming points become "inliers" and the non-conforming points become "outliers". Next, points are still sampled from the "new inlier set" to construct a new matrix and the error is recalculated. Finally, the model with the smallest error and the largest number of points is the final model.

[0072] 5. Radius and direction filtering

[0073] In a substation, the objects that conform to the straight line model may be poles, trees, and power lines. Therefore, power lines, poles, and trees need to be identified from the straight line model. Poles, trees, and power lines have different directions and radii. The method for calculating the cross-sectional radius: At a certain point on the straight line, take the range of the coordinates of all points within a sphere with a certain radius (such as 1 meter) around it. The union of the spreading ranges of all points on the straight line can be regarded as the wire to which the straight line belongs. For example, if the average distance from all the red points within the sphere to the straight line is greater than a certain threshold (such as 20 cm), then it is considered that this straight line is not a power line. As Figure 1 shown.

[0074] The extraction results are stored in the database. The results after object recognition will be saved locally in the form of a database table. The table contains the classification of objects in the three-dimensional space, the bounding box space, and the maximum rendering level.

[0075] 2. Point cloud storage

[0076] The architecture of the tiled hierarchical storage is as Figure 2 shown. The nodes of the octree structure are represented by the file system in the computer, the depth of the octree structure is represented by the level of the folder directory, and the point cloud data file and index file contained in the node are stored in the node folder, recording the hierarchical information of the node. The tile file stores the point cloud data belonging to the node. Using this method for data storage, during data preprocessing, the original data only needs to be read once, and after calculating the node position, it can be written into the corresponding node folder. The data storage in each node is independent of each other, and the data update of any node will not affect the data of other nodes. At the same time, this tiled structure is also applicable to the software architecture of the C / S mode and supports parallel access.

[0077] Based on the current tiled hierarchical storage method, the present invention proposes a tiled storage structure oriented to object priorities. Different sampling and storage strategies are adopted for different types of objects in the original data, which not only reduces the storage space occupied by the point cloud, but also speeds up the rendering speed of key objects of power lines.

[0078] Initially, the points read from the original point cloud file are added to the root node. If the total number of points cached in the node is lower than the threshold, the point will be assigned to the node and stored in the cache; once enough points have accumulated in the potential new child node, a new child node is created. In this way, most empty nodes are avoided because new nodes are only created after accumulating a minimum amount of points for new children.

[0079] When a newly read point is added to a child node, it is necessary to judge the average distance between the point and its neighbors, and determine which layer of the octree the point should be stored in according to the distance. If the current average neighbor distance is greater than the neighbor distance threshold corresponding to the point, the point is directly stored in the current child node; otherwise, the point is stored in the next-level child node with a higher level of the current child node, and so on. It can be seen that the smaller the current neighbor distance, the denser the point, and the higher its level in the octree, which can realize the function of tiled hierarchical storage; for the points in non-key objects, if the assigned level is greater than the maximum level allowed by the system, the point is discarded, which can realize the function of downsampling non-key objects and reduce the point cloud storage space; the smaller the neighbor distance threshold is set, the greater the possibility that the point is placed in the low-level nodes of the octree, and it can be preferentially displayed during breadth-first traversal rendering, so as to realize the function of improving its rendering priority.

[0080] Among them, the calculation method of the distance between a point and its neighbors is as follows: to improve speed, a hash table is used to cache the neighbor distances. Indexed by three-dimensional coordinate combinations, the retrieved hash value is a cell address. Inside the cell, there are the coordinates of multiple points in this cell, as well as multiple neighbor cell addresses, which allows multiple points to share a cell, thus solving the hash conflict. Given the three-dimensional coordinates of a certain point, the average distance between it and multiple points in this cell and all points in each neighbor can be calculated.

[0081] The storage process of the point cloud described in the present invention is as follows:

[0082] (1) Read the object extraction result from the database

[0083] (2) Generate the root node root and set it as the current node

[0084] (3) Read a point point from the original point cloud file. If the reading is successful, go to 4; otherwise, if all the data has been read, go to 7

[0085] (4) Add the read point point to the current node. Determine whether the octree node being currently operated on is a leaf node. If it is, go to 5; otherwise, go to 6

[0086] (5) If the current node is a leaf node, put the new point into the data cache of the node. When the number of points in the cache exceeds a certain threshold, the leaf node splits into non-leaf nodes, and the points in the cache are gradually assigned to the child nodes, then go to 4;

[0087] (6) If the current node is not a leaf node, calculate the average distance between this point and its neighbors. If the average distance is greater than the neighbor threshold of the category to which this node belongs, it means this point is relatively sparse, then put the new point into the data cache of the node; otherwise, assign this point to the next-level child node, then go to 3;

[0088] (7) Construct a hierarchical file. The hierarchical file saves the hierarchical relationships between each node in the order of breadth-first traversal. The saved content includes how many points there are in this node itself, which child nodes this node has, etc.;

[0089] (8) During the construction of the hierarchical structure, serialize and store the nodes of the octree at regular intervals, and save the tile files at different levels of detail. The file names of the tile files are named according to their levels.

[0090] As can be seen from Step 6, the neighbor threshold for a point not only determines the sparseness of sampling but also the level at which the point is distributed in the octree. In practical applications, setting the maximum distance threshold for power lines to 10 centimeters and for other types to 1 meter allows power line data to be distributed as close to low-level nodes as possible. This not only reduces the size of the point cloud data but also prioritizes power lines during rendering, speeding up rendering.

[0091] 3. Point Cloud Rendering

[0092] Once the octree-based storage structure is built, the tile data, rendering webpage, and object database need to be deployed on the server. The web browser then loads the rendering module and tile data to render the point cloud data. When rendering point cloud data, the rendering webpage calculates the rendering resolution for different areas within the field of view based on the current viewing angle and field of view. This allows the rendering to find nodes at the corresponding level for loading, or eliminate nodes at the corresponding level based on the field of view distance.

[0093] In order to improve the rendering efficiency of point clouds, the present invention applies multi-threaded dynamic scheduling technology and local rendering technology in the rendering process:

[0094] 1) The rendering process is triggered periodically or by the loading thread. When the rendering time arrives, the intersection area of the area that needs to be refreshed and the viewing cone is calculated.

[0095] 2) In the intersection area, a breadth-first recursive traversal method is used to traverse the octree. First, the data cache in the octree is traversed, then its eight child nodes are traversed, and so on.

[0096] 3) During the traversal, if a node is within the intersection area, the sum of the projected areas of all key objects in the node's cache array is calculated, sorted by the sum of the areas, and the node information is added to the priority queue. Nodes are then removed from the queue and rendered in the order of the priority queue.

[0097] 4) If the data for a node in the priority queue has not been loaded, a loading thread is created to obtain the node data path from the node priority queue, read the node's point cloud data, and begin parsing. After parsing is complete, the bounding box volume of the newly loaded node is calculated, triggering local rendering of the point cloud within the intersection of the bounding box and the viewing frustum.

[0098] Correspondingly, the present invention also provides a computer-readable storage medium storing one or more programs, wherein the one or more programs include instructions, which, when executed by a computing device, enable the computing device to perform any one of the storage method and the rendering method.

[0099] Correspondingly, the present invention further provides a computing device, including

[0100] one or more processors, a memory, and one or more programs, where the one or more programs are stored in the memory and configured to be executed by the one or more processors, and the one or more programs include instructions for executing any one of the storage method or the rendering method described above.

[0101] Those skilled in the art should understand that the embodiments of the present application can be provided as a method, a system, or a computer program product. Therefore, the present application can take the form of a completely hardware embodiment, a completely software embodiment, or an embodiment combining software and hardware aspects. Moreover, the present application can take the form of a computer program product implemented 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.

[0102] The present application is described with reference to the flowcharts and / or block diagrams of methods, devices (systems), and computer program products according to the embodiments of the present application. It should be understood that each flow and / or block in the flowchart and / or block diagram can be implemented by computer program instructions, and the combination of the flows and / or blocks in the flowchart and / or block diagram can also be implemented by computer program instructions. These computer program instructions can be provided to the processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processing devices to generate a machine, so that the instructions executed by the processor of the computer or other programmable data processing devices generate a device for implementing the specified functions in one Figure 1 one process or multiple processes and / or blocks Figure 1 one block or multiple blocks.

[0103] These computer program instructions can also be stored in a computer-readable memory that can direct a computer or other programmable data processing device to work in a specific manner, so that the instructions stored in the computer-readable memory generate a manufactured product including an instruction device, and the instruction device implements the specified functions in one Figure 1 one process or multiple processes and / or blocks Figure 1 one block or multiple blocks.

[0104] These computer program instructions can also be loaded onto a computer or other programmable data processing device, so that a series of operation steps are executed on the computer or other programmable device to generate a computer-implemented process, and thus the instructions executed on the computer or other programmable device provide steps for implementing the specified functions in one Figure 1 one process or multiple processes and / or blocks Figure 1 one block or multiple blocks.

[0105] The above are only the preferred embodiments of the present invention. It should be noted that for those of ordinary skill in the art, without departing from the technical principle of the present invention, several improvements and modifications can be made, and these improvements and modifications should also be regarded as the protection scope of the present invention.

Claims

1. A method for storing large-capacity power point clouds, characterized in that include: Obtain the original point cloud data of the substation area; Perform object recognition on the original point cloud data, identify different object categories and the bounding box area of each object category, obtain the preset allowable neighbor threshold corresponding to the object category according to the object category, and cache the bounding box area and neighbor threshold in the object dataset; Read the points in the original point cloud data, input the read points into the n-ary tree model in sequence, search the object dataset based on the coordinates of the read points, determine the bounding box area of the point, determine the object category to which the point belongs and the allowable neighbor threshold of the object category based on the bounding box area, and construct the n-ary tree based on the object category to which the point belongs and the allowable neighbor threshold of the object category until all points are input into the n-ary tree model to obtain the constructed n-ary tree; After the n-ary tree is constructed, the hierarchical relationship between the nodes in the n-ary tree and the number of points stored in each node are serialized to the global hierarchical file in the order of breadth-first traversal. During the construction of the n-ary tree, if the number of points reaches the preset threshold for writing files, the points in the tree are recursively written to the tile file. The file names of the tile files corresponding to the nodes at different levels of detail in the n-ary tree are named according to the level of the node. The n-ary tree construction includes: when the average distance between a point input into a node of the n-ary tree and other points in the node is less than the permissible neighbor threshold of the object category of the point, moving the point to the next child node of the node; The object recognition is performed on the original point cloud data to identify different object categories and the bounding box area where each object category is located, including: Preprocess the original point cloud data and extract valid point cloud data; Perform elevation feature filtering on the valid point cloud data to obtain ground points and non-ground points; The Euclidean spatial clustering method is used to divide and classify non-ground points into target entities; The minimum spanning tree and maximum critical path algorithms are used to extract the linear model from the classified data; Calculating the direction and cross-sectional radius of the straight line model, and determining the object category described by the straight line model according to the direction and radius of the straight line model; After the object category is determined, the cube containing the object is the bounding box area of the object.

2. The power large-capacity point cloud storage method according to claim 1, characterized in that The preprocessing comprises: Calculate the average distance between each point in the original point cloud data and all its neighboring points; Calculate the global distance mean based on the average distance from all points to all their neighboring points; The retention interval is determined based on the global distance mean and the preset discrete standard deviation, and points outside the retention interval are regarded as outliers and removed from the original point cloud data; The point cloud voxel filter algorithm is used to downsample the original point cloud data after removing outlier points to extract valid point cloud data.

3. The method for storing large-capacity power point clouds according to claim 1, characterized in that The method of extracting a straight line model from the divided and classified data using a minimum spanning tree and a maximum critical path algorithm includes: The Kruskal algorithm is used to find the minimum spanning tree for the divided and classified data, and the minimum spanning trees of several different paths are obtained; Calculate the endpoint distances of different paths and take the longest path as the maximum critical path; The method of compressing and averaging the point cloud of the extracted maximum critical path is processed to obtain the approximate central axis of the current line point cloud, and the line model is determined according to the approximate central axis.

4. The power large-capacity point cloud storage method according to claim 1, characterized in that It also includes: During the construction of the n-ary tree, if the number of points reaches the preset threshold for writing files, the points in the tree are recursively written into the tile file in las format.

5. The method for storing large-capacity power point clouds according to claim 1, characterized in that, The calculation process of the average distance between the point and other points in the node includes: Finding the neighbors of the point, including: in the same node, all points within a certain threshold of the three-dimensional coordinate distance are the neighbors of the point; Adding the neighbors to the hash table for caching, including: obtaining the three-dimensional coordinates of the current point, using the three-dimensional coordinate combination as the index, the retrieved hash value points to the cell address, if the cell does not exist, a new cell is created, and then all neighbors are added to the cell; inserting the hash index and hash value into the hash table; Neighbor relationship retrieval, including: according to the hash index combined by the three-dimensional coordinates of the current point, retrieving the corresponding hash value in the hash table, that is, the cell address; finding all neighbors of the current point in the cell and calculating the average distance between the point and the neighbors.

6. A method for rendering large-capacity power point clouds, characterized in that, It includes: Obtaining the global hierarchical file obtained by the method described in claim 1; Obtaining the rendering timing trigger instruction, and calculating the intersection area between the area to be refreshed for the current rendering and the frustum; According to the intersection area, searching the global hierarchical file to determine the tile files to be loaded, and after parsing the tile files, performing rendering with priorities.

7. The power large-capacity point cloud rendering method according to claim 6, wherein The rendering with priorities includes: Within the intersection area, the octree is traversed using the breadth-first recursive traversal method. First, the data cache in the octree is traversed, and then its eight child nodes are traversed, and so on; During the traversal, if a node is within the intersection area, calculate the sum of the bounding box volumes of the power line key objects included in the node's cache array, sort according to the size of the sum of the volumes, and add the node information to the priority queue. According to the order of the priority queue, start rendering from the nodes taken out of the queue; If the data of a certain node in the priority queue has not been loaded, a loading thread is created to obtain the node data path from the node priority queue, read the point cloud data of the node and start parsing. After parsing, calculate the bounding box volume of the newly loaded node, and trigger the local rendering of the point cloud within the intersection range of the bounding box and the frustum.

8. A computer-readable storage medium storing one or more programs, characterized in that, The one or more programs include instructions that, when executed by a computing device, cause the computing device to execute the storage method according to any one of claims 1 to 5 or the rendering method according to any one of claims 6 to 7.

9. A computing device, characterized in that, It includes, One or more processors, a memory, and one or more programs, where the one or more programs are stored in the memory and configured to be executed by the one or more processors. The one or more programs include instructions for executing the storage method according to any one of claims 1 to 5 or the rendering method according to any one of claims 6 to 7.

Citation Information

Patent Citations

  • Method and device for storing point cloud data

    CN106874409A

  • Quick sectioning method based on point cloud, intelligent terminal and cloud platform

    CN112241998A