Massive point cloud data tile space dynamic management method
By constructing a multi-scale octree and state control variables, combined with a point data index table, dynamic management of massive point cloud data was achieved. This solved the problems of accurate mutual positioning of point cloud data at multiple scales and consistency of cross-scale operations, and improved the real-time interaction efficiency and data management efficiency of point cloud data.
Patent Information
- Application Number
- CN202511085005.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-08-04
- Publication Date
- 2025-11-21
AI Technical Summary
Existing point cloud data management technologies are mainly static, making it difficult to achieve dynamic updates of massive point cloud data, especially changes in color, attributes, and geometric information. This results in poor coordination between dynamic management and static updates of massive data, and fails to effectively support engineering design and survey optimization.
A tile-based spatial dynamic management method for massive point cloud data is adopted. By constructing a multi-scale octree and combining state control variables and point state vectors, dynamic loading and unloading of point cloud data is realized. The spatial association of parent and child nodes and data synchronization updates are realized through the point data index table, which supports the precise management of multi-scale point cloud data.
It achieves accurate mutual positioning and consistent cross-scale operations for massive point cloud data at multiple scales, improves the real-time interaction efficiency of point cloud data, reduces response latency and invalid data transmission for changes in field of view, and supports sub-second global effective operations in scenarios with hundreds of millions of point clouds.
Smart Images

Figure CN120997388A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of point cloud data management technology, specifically to a method for dynamic spatial management of massive point cloud data in a tile-based manner. Background Technology
[0002] In the surveying and design of large-scale projects such as railways and highways, the large-scale application of airborne and vehicle-mounted LiDAR and oblique photogrammetry technologies has completely revolutionized traditional surveying methods. These technologies, through emitting laser pulses or densely matching multi-view images, can capture hundreds of thousands to millions of three-dimensional spatial points per second, forming high-precision, high-density point cloud data. For a single railway or highway survey project spanning several kilometers, the point cloud can reach hundreds of millions of points, easily exceeding TB levels in data volume, completely recording millimeter-level details of surface topography, features, structures, and even vegetation. However, the emergence of massive point clouds also brings severe challenges. The raw, discrete data is difficult to utilize directly and requires efficient system management technologies to facilitate the transformation from data to information and from information to knowledge. Among these, display rendering, dynamic control, and spatial management constitute the core technological triangle.
[0003] Display rendering serves as a "visual window" for data value. Facing billions of discrete points, it requires overcoming hardware limitations to achieve smooth multi-scale navigation (from macroscopic displays of hundreds of kilometers of routes to microscopic examinations of bolt-level components), multi-mode presentation (true color, elevation gradients, intensity rendering, and classification coloring), and multi-source data fusion (overlaying BIM design models, geological profiles, and land acquisition boundaries), providing engineers with a "what you see is what you get" decision-making environment. Dynamic control is the "nerve center" of interactive analysis, assisting in dynamic measurement, intelligent annotation (marking geological risk points and demolition structures), and real-time attribute filtering (filtering point sets by elevation and category), enabling surveyors to instantly explore the inherent patterns in the data. Spatial management is the "intelligent warehouse" of data assets, requiring the establishment of efficient spatial indexes (such as octrees and KD-trees) to achieve millisecond-level spatial retrieval, and the design of streaming loading mechanisms to dynamically schedule terabyte-level data.
[0004] The synergy of these three capabilities directly determines whether point cloud data can truly empower the entire surveying and design process. Without efficient management, massive point clouds are merely a storage burden; however, mature management technologies can transform them into a digital twin foundation, supporting route optimization, accurate quantity calculation, construction collision detection, and geological disaster early warning, fundamentally improving engineering design quality, shortening construction periods, and reducing construction risks. Therefore, point cloud management technology has become an indispensable core engine for the digital and intelligent transformation of modern transportation infrastructure. However, existing technologies are primarily static management technologies, facing technical barriers to coordinating massive data volumes with dynamic updates, lacking technologies that both support dynamic management and achieve efficient operation of massive amounts of data.
[0005] To address the issue of efficient management of massive point clouds, existing scholars have made numerous efforts in dynamic point cloud management. However, these efforts have only solved the problems of static data management and dynamic data loading, without addressing the issue of dynamic changes and updates in massive point information, such as changes in color, attributes, and geometric information. Summary of the Invention
[0006] To address the need for comprehensive dynamic management of massive point cloud data, this invention provides a method for dynamic spatial management of massive point cloud data in a tile-based manner, thereby solving the above-mentioned technical problems existing in the prior art.
[0007] According to the first aspect, one embodiment provides a method for dynamic spatial management of massive point cloud data in a tile-based manner, the method comprising:
[0008] Acquire massive amounts of point cloud data from the work area and perform preprocessing;
[0009] A spatial octree is constructed, and the preprocessed massive point cloud data is spatially segmented to obtain point cloud blocks, where each leaf node corresponds to a point cloud block.
[0010] Starting from the leaf node, downsample sequentially from bottom to top to the root node, so that each node corresponds to point cloud block data of a specified scale, generating a multi-scale octree, and generating corresponding tile data by adding header file information to the point cloud block of each node in the multi-scale octree.
[0011] Create state control variables for each tile data node to enable dynamic loading and unloading of tile data at different detail levels as needed, and perform lifecycle management;
[0012] Create a multi-functional state control vector for each point cloud point in the tile data node to refine the control granularity from the tile level to the point level;
[0013] Create a point data index table in the parent node to record the correspondence between data points in the parent and child nodes, so as to realize the spatial association and synchronous update of tile data points in the parent and child nodes.
[0014] Furthermore, massive point cloud data from the work area is acquired and preprocessed, specifically including:
[0015] First, the data quality and coordinate system compliance of the acquired point cloud data are checked. Then, the original data is stored in an appropriate format to ensure data accuracy and integrity. Next, noise reduction is performed by calculating the statistical characteristics of the neighborhood of each point, removing points whose distance from the mean exceeds several times the standard deviation, and eliminating noisy points on the surface.
[0016] Furthermore, a spatial octree is constructed, and the preprocessed massive point cloud data is spatially segmented to obtain point cloud blocks, where each leaf node corresponds to a point cloud block, specifically including:
[0017] The spatial range and data volume of the massive point cloud are obtained by using the header information of the massive point cloud. First, the data is super-segmented using the binary search method so that the theoretical data volume of the leaf node at the end of the binary tree is less than the preset value, and the deepest layer number of the binary tree at this time is obtained. Then, the initial spatial octree is constructed according to the layer number, and the data volume of the point cloud points contained in each octree node and the information of the outer bounding shell are recorded.
[0018] The initial spatial octree is filled with massive point cloud data, the point cloud data volume of each node is updated, and the spatial octree is structurally optimized by deleting nodes with a point cloud data volume of 0, deleting all leaf nodes whose parent node has a point cloud data volume of less than a preset threshold, and at the same time, the original parent node becomes a leaf node; and the spatial octree is optimized from bottom to top.
[0019] Merge nodes in a spatial octree whose sum of point cloud data is less than a preset threshold to construct the optimal spatial octree structure.
[0020] The massive point cloud data file is read again, and the point cloud data is split through the optimal spatial octree, so that each point cloud data is split into the corresponding spatial octree leaf node. Each leaf node corresponds to an external point cloud block file, thus realizing the physical segmentation of the massive data.
[0021] Furthermore, starting from the leaf nodes, downsampling is performed sequentially from bottom to top up to the root node, so that each node corresponds to point cloud block data of a specified scale, generating a multi-scale octree. Then, header information is added to the point cloud blocks of each node in the multi-scale octree to generate corresponding tile data, specifically including:
[0022] Based on the anisotropic curvature Poisson sampling method, the spatial octree node point cloud data is downsampled, and the data of the parent node is all derived from the sampling of the child node data, thereby constructing a multi-scale octree.
[0023] Based on the original massive point cloud header information, the point cloud data stored in the nodes of the multi-scale octree, and the hierarchical relationship of the multi-scale octree, header information is added to the point cloud block file corresponding to each node to generate tile data. Finally, the tile data is compressed in blocks.
[0024] Furthermore, the anisotropic curvature Poisson sampling method downsamples the spatial octree node point cloud data, where all data for the parent node comes from sampling data from the child nodes, thereby constructing a multi-scale octree, specifically including:
[0025] First, calculate the curvature coefficient and principal curvature direction vector of each point in the nodal point cloud data;
[0026] When performing Poisson sampling on a local area, a new metric matrix M is constructed based on curvature information, and the 3D Euclidean distance L spherical neighborhood is mapped to an anisotropic irregular shape, and the neighborhood range of the current point cloud point is calculated.
[0027] Based on the metric matrix M, a non-Euclidean metric space Od is constructed in the domain of node point cloud data. Suitable candidate sampling points are selected in the neighborhood of the current sampling point within the non-Euclidean metric space Od.
[0028] If the candidate sampling point is not in the sampling point set C If the distance is within the specified range, the sample point is stored in the sampling point set C and used as the new current sampling point; otherwise, the corresponding candidate sampling point is discarded. It is a spatial direction vector, and its magnitude is a multiple of the spatial resolution corresponding to the current scale;
[0029] The set of sampling points C formed after the sampling is completed is used as the low-scale data of the current node point cloud data, and together with the point cloud data of the sibling nodes at the same low scale, they fill the parent node point cloud data.
[0030] The corresponding sampling algorithms are executed sequentially to construct a multi-scale octree.
[0031] Furthermore, state control variables are created for each tile data node to enable dynamic loading and unloading of tile data at different detail levels on demand, and to perform lifecycle management, specifically including:
[0032] Create a state control variable for each tile data node, which includes four states: "visible, update, delete, and lock". The visible state value is used to control the visualization of the tile data node, the update state value is used to control the update of the tile data node, the delete state value is used to control the deletion of the tile data node, and the lock state value is used to precisely control the update range of the point cloud tile data, limit the number of point cloud data participating in the calculation during user interactive operation, and protect the point cloud data that does not need to be updated.
[0033] The visibility status includes visible, invisible, and partially visible. Visibility includes: visualization of the dynamic view frustum clipping range, where only tile data within the clipping range is considered candidate visible; detail level visibility, where only tile data within a reasonable visibility range is considered candidate visible, where the visibility range is determined by the visibility range parameter of each tile data; and hidden surface removal visualization, which determines the visibility status of the current tile data based on the occlusion relationship between different tile data.
[0034] Furthermore, a multi-functional state control vector is created for each point cloud point in the tile data node, refining the control granularity from the tile level to the point level. Specifically, this includes:
[0035] Create a multi-functional state control vector of 1 byte in length for each point cloud point in the tile data node, containing "delete bit, selected bit, visible bit, locked bit, update bit, extension bit 1, extension bit 2, and extension bit 3";
[0036] The deletion bit is used to mark logical deletion points to avoid index reconstruction caused by physical removal; the selection bit is used to support box selection / circle selection interaction and highlight user-specified point sets in real time; the visibility bit is used to implement local point cloud display control; the lock bit is used to freeze key points to prevent accidental editing; the update bit is used to identify points to be refreshed; and the three extension bits are used to enable customization.
[0037] Furthermore, a point data index table is created in the parent node to record the correspondence between data points in the parent and child nodes, thereby realizing the spatial association and synchronous update of tile data points between the parent and child nodes. Specifically, this includes:
[0038] A point data index table is created in the parent node to record the correspondence between data points in the parent and child nodes. To further compress the data volume, an array is used. By default, the length of the parent node data index table is the same as the number of data points in the parent node. The child node point index is recorded directly in the point data index table. When the data of a node changes, the parent node and child node data are updated synchronously in the multi-scale octree according to the information in the point data index table.
[0039] Furthermore, the method also includes:
[0040] When loading and displaying massive numbers of data points, it is only necessary to load the root node data of the multi-scale octree and dynamically obtain the corresponding data through the parent and child node data indexes recorded in each tile data node.
[0041] Quickly filter valid visible tile data based on the view frustum range and the visible range of node tile data;
[0042] The established display node buffering mechanism accelerates tile data loading speed. By maintaining a node cache list in memory, the system preloads higher-level, lower-level, and same-level scale spatial neighbor tile data according to the current tile data node. The tile data in the node cache list is dynamically updated in real time, and expired tile data is replaced in real time.
[0043] Furthermore, the method also includes:
[0044] When a node status change is detected, all spatially related and potentially affected tile data are automatically calculated and located based on the data space mapping relationship within the corresponding node, triggering the update process for the relevant tile data; while updating the point cloud data content of the affected tiles, the point data index table is updated synchronously to ensure that the physical storage and logical index structure of the point cloud data remain consistent at all times.
[0045] The rendering engine achieves linkage with underlying data updates through flexible control of the rendering pipeline; it filters tiles to be rendered based on the latest node status; it organizes and updates the vertex data buffer or shader storage buffer to be sent to the graphics processor based on the synchronously updated point data index table; and it dynamically configures the shader programs, drawing parameters, and rendering queues in the rendering pipeline.
[0046] According to the second aspect, one embodiment provides a massive point cloud data tile-based spatial dynamic management system, the system comprising:
[0047] The point cloud data preparation and preprocessing module is used to acquire massive amounts of point cloud data from the work area and perform preprocessing.
[0048] The massive point cloud spatial segmentation module is used to construct a spatial octree and perform spatial segmentation on the preprocessed massive point cloud data to obtain point cloud blocks, where each leaf node corresponds to a point cloud block.
[0049] The tile data construction module is used to downsample sequentially from the leaf node to the root node, so that each node corresponds to point cloud block data of a specified scale, generating a multi-scale octree, and generating corresponding tile data by adding header file information to the point cloud block of each node in the multi-scale octree.
[0050] The tile data node state creation module is used to create state control variables for each tile data node, enabling dynamic loading and unloading of tile data at different detail levels as needed, and performing lifecycle management.
[0051] The point status list creation module is used to create a multi-functional status control vector for each point cloud point in the tile data node, thereby refining the control granularity from the tile level to the point level.
[0052] The tile data spatial mapping module is used to create a point data index table in the parent node to record the correspondence between data points in the parent and child nodes, thereby realizing the spatial association and synchronous update of tile data points between the parent and child nodes.
[0053] According to a third aspect, one embodiment provides an electronic device, the device comprising: a processor and a memory;
[0054] The memory is used to store one or more program instructions;
[0055] The processor is configured to run one or more program instructions to perform the steps of a method for dynamic spatial management of massive point cloud data tiles as described in any of the preceding claims.
[0056] This invention provides a method for dynamic spatial management of massive point cloud data in a tile-based manner, which has the following beneficial effects:
[0057] 1) To address the problem of point cloud tile data lacking topological relationships across scales, leading to difficulties in point cloud point localization during cross-scale tile switching, this embodiment innovatively introduces a data index table mechanism. This index table accurately records the mapping relationship between point cloud points in tiles of different scales (parent and child nodes), achieving accurate mutual localization of point cloud points across scales. This effectively solves the problem of not being able to guarantee global consistency when performing operations such as deletion and updating on multi-scale tile data.
[0058] 2) Addressing the two core bottlenecks of low efficiency in fine-grained operations and difficulty in cross-scale state synchronization in massive point cloud scenarios, this embodiment pioneers a point cloud state vectorized control architecture. By constructing a binary compressed state list for each tile node, key operation states (delete / select / visible / locked / updated, etc.) in the point cloud point lifecycle are encoded into lightweight bit tags with millisecond-level responsiveness, and lossless cascading synchronization of state bits is achieved in conjunction with cross-scale topology indexes. As the core control layer of the point cloud processing system, this architecture achieves sub-second global effectiveness of operation commands for the first time in a scenario with hundreds of millions of point clouds, solving the performance collapse problem caused by redundant state management in traditional solutions.
[0059] 3) Addressing the industry challenges of delayed response to changes in field of view and redundant transmission of invalid data in real-time interaction with massive point clouds, this embodiment pioneers a streaming loading engine that links geometric association with visible range. By establishing a real-time binding relationship between the state bits (visible bit / update bit), spatial index, and view frustum parameters of point cloud tile data nodes, dynamic calculation driven by view frustum is achieved. The view frustum bounding box is calculated in real time based on the camera pose, automatically triggering the activation of the state bits (visible bit = 1) of visible tile data nodes; incremental transmission of geometric association is achieved, loading only valid associated topology data with visible tile data as the root node; and state-aware resource reclamation is achieved, automatically releasing cached resources for tiles with visible bit = 0 for N consecutive (threshold) frames. Attached Figure Description
[0060] Figure 1 A flowchart illustrating a method for dynamic spatial management of massive point cloud data in tile format, as provided in one embodiment of the present invention;
[0061] Figure 2 This is a schematic diagram of the spatial segmentation and data structure of massive point cloud data in a method for dynamic spatial management of massive point cloud data in tile-style arrangement, provided in an embodiment of the present invention.
[0062] Figure 3 This is a schematic diagram of parent-child node data space sampling in a method for dynamic spatial management of massive point cloud data tiles provided in an embodiment of the present invention;
[0063] Figure 4 This is a schematic diagram of the node data point status list attributes in a method for dynamic spatial management of massive point cloud data tiles provided in an embodiment of the present invention;
[0064] Figure 5 This invention provides an embodiment of a method for dynamic spatial management of massive point cloud data using tile-based methods, illustrating the representation of node data indexes.
[0065] Figure 6 This is a schematic diagram of the display and caching of massive point cloud tile data in a method for dynamic spatial management of massive point cloud data tiles provided in an embodiment of the present invention. Detailed Implementation
[0066] The present invention will now be described in further detail with reference to specific embodiments and accompanying drawings. Similar elements in different embodiments are referred to by associated similar element reference numerals. In the following embodiments, many details are described to facilitate a better understanding of the invention. However, those skilled in the art will readily recognize that some features may be omitted in different situations, or may be replaced by other elements, materials, or methods. In some cases, certain operations related to the present invention are not shown or described in the specification. This is to avoid obscuring the core parts of the invention with excessive description. For those skilled in the art, detailed description of these related operations is not necessary; they can fully understand the related operations based on the description in the specification and general technical knowledge in the art.
[0067] Furthermore, the features, operations, or characteristics described in the specification can be combined in any suitable manner to form various embodiments. At the same time, the steps or actions in the method description can be rearranged or adjusted in a manner obvious to those skilled in the art. Therefore, the various orders in the specification and drawings are only for the clear description of a particular embodiment and do not imply a necessary order, unless otherwise stated that a particular order must be followed.
[0068] To address the need for comprehensive dynamic management of massive point clouds, this invention fully incorporates the advantages and disadvantages of existing technologies, analyzes the static and dynamic changes in display, updating, and control of massive point clouds, and provides a tile-based spatial dynamic management method for massive point cloud data in its first embodiment. First, the massive point cloud is spatially segmented, and then spatially organized and topologically reconstructed to form point cloud blocks. Next, the original high-resolution point cloud blocks are downsampled at multiple low scales, and relationships between different scales are established. Simultaneously, low-resolution point cloud blocks are merged according to a data volume threshold to complete the construction of tile data nodes. Within each tile data node, state attributes are created and geometric associations are established for each point (point in the point cloud), and the visible range and state control bits of the tile data node are set. During dynamic display, the visible range assists in efficiently replacing the inner and outer kernels of the tile data, the state attributes precisely control the display state of each tile data point, and the geometric association information enables the association of the same point at different scales, achieving continuity in state and control operations. This approach avoids dependence on hardware devices (such as large memory and expensive graphics cards), efficiently achieving full-process control and management of massive point clouds, and promoting the popularization and application of new digital and intelligent technologies based on laser scanning point clouds. The following section combines... Figure 1 Please provide a detailed explanation.
[0069] In step S100, massive point cloud data of the work area is acquired and preprocessed.
[0070] The above steps specifically include:
[0071] Data preparation and preprocessing: In this embodiment, a massive amount of point cloud data from the work area is acquired, and the point cloud data undergoes data quality checks and noise reduction processing. Details are as follows:
[0072] S110 acquires massive point cloud data of the work area, such as airborne laser scanning point cloud data, or point cloud data obtained by dense matching of oblique photogrammetric images.
[0073] S120: The acquired point cloud data is first checked for data quality (such as accuracy, completeness, density, etc.) and coordinate system compliance; then, a suitable format is selected to store the raw data (such as LAS or LAZ format) to ensure data accuracy and data information integrity.
[0074] S130, noise reduction processing, calculates the statistical characteristics (mean distance, geometric characteristics) of the neighborhood (e.g., K nearest neighbors) of each point, removes points whose mean distance exceeds several times the standard deviation (e.g., 3 times the variance σ), and removes surface noisy points.
[0075] In step S200, a spatial octree is constructed, and the preprocessed massive point cloud data is spatially segmented to obtain point cloud blocks, where each leaf node corresponds to a point cloud block.
[0076] The above steps specifically include:
[0077] Massive point cloud spatial segmentation: In this embodiment, the "super segmentation-adaptive-optimization" strategy is used to further segment the massive point cloud spatially, generate a set of point cloud block files with balanced data volume, and construct its corresponding optimal spatial octree.
[0078] Spatial partitioning (blocking / partitioning) of massive point clouds is a core foundational step in processing ultra-large-scale point cloud data. Its purpose is to divide data that cannot be loaded into memory all at once into manageable subsets (point cloud blocks) for parallel processing, distributed computing, or step-by-step operations. This embodiment employs a "super-segmentation-adaptive-optimization" strategy, unlike other technical solutions (such as KD-Tree segmentation), which completes the segmentation of massive point cloud data through only two data reads. Figure 2 As shown, the details are as follows:
[0079] S210: Obtain the spatial range (spatial_range) and data volume (point_count) of the massive point cloud from the header information. First, use a binary search method to super-segment the data, making the theoretical data volume of the last leaf node of the binary tree less than a certain threshold t (e.g., 10 million). Obtain the deepest layer number (deep) of the binary tree at this point. Based on the deep layer number, construct an initial spatial octree (octree). In each octree node, record the data volume (node_cnt) of the point cloud points contained in the node and the information of the outer bounding shell (node_box).
[0080] S220: Fill the initial spatial octree (octree) with massive amounts of data and update the node_cnt of each node. Then, optimize the structure of the spatial octree (octree) by deleting nodes with node_cnt equal to 0; deleting all child nodes (leaf nodes) of the parent node whose node_cnt is less than a threshold (e.g., 10 million), and making the original parent node a leaf node; and optimizing the spatial octree (octree) from bottom to top (leaf node to root node).
[0081] S230 merges nodes in the spatial octree (octree) whose sum of node_cnt records between two sibling nodes is less than a threshold (e.g., 10 million). This constructs the optimal spatial octree structure, ensuring information balance in each node and reducing the overhead caused by fragmented data later on.
[0082] S240, Massive Data Segmentation. The massive data file is read again, and the point cloud data is split using an optimized spatial octree (octree). Each point cloud data point is routed to a corresponding leaf node of the octree. Each leaf node corresponds to an external point cloud block file. This spatial splitting method achieves the physical segmentation of the massive data.
[0083] In step S300, starting from the leaf node, downsampling is performed sequentially from bottom to top to the root node, so that each node corresponds to point cloud block data of a specified scale, generating a multi-scale octree, and generating corresponding tile data by adding header file information to the point cloud block of each node in the multi-scale octree.
[0084] The above steps specifically include:
[0085] Tile data construction: In this embodiment, the leaf node point cloud block data is downsampled to fill the non-leaf nodes of the spatial octree to generate a multi-scale octree. Then, header information is added to each node point cloud block to generate tile data, and the tile data is compressed.
[0086] The massive point cloud spatial segmentation process only divides the massive point cloud data into a set of point cloud blocks of the same original scale. This only achieves planar tileization, leaving data redundancy and congestion issues at different scales. Therefore, it's necessary to construct a pyramid data structure by sequentially downsampling the point cloud blocks. This involves downsampling all leaf nodes of the original-scale spatial octree (octree) from bottom to top to the root node, ensuring that each octree node corresponds to point cloud data of a specified scale and an external point cloud block file. Then, header information is added to the point cloud block file to construct a complete set of tile data at the full scale. Furthermore, to further reduce the size of the tile data and decrease I / O (input / output) loading time, the tile data is compressed in blocks. The details are as follows:
[0087] S310, construct a multi-scale octree.
[0088] Anisotropic curvature Poisson sampling method downsamples spatial octree node point cloud data, such as... Figure 3 As shown, the data of the parent node is all derived from sampling the data of the child nodes, thereby constructing a multi-scale octree.
[0089] First, calculate the curvature coefficients {kx, ky, kz} and the principal curvature direction vector for each point in the nodal point cloud data. To describe the surface curvature and local geometric properties, this embodiment limits the curvature coefficient to a range of [1,3]. The larger the curvature coefficient, the more curved the corresponding direction. When the local area is a plane, the curvature coefficient is 1, and when the local area is a corner or edge, the value is 3.
[0090] When performing Poisson sampling on the local area, a new metric matrix M is constructed based on the curvature information to map the spherical neighborhood of the three-dimensional Euclidean distance L into an anisotropic irregular shape, as shown in formula (1). Here, {Lx,Ly,Lz} are the three-dimensional components of the Euclidean distance L in Euclidean space, and {L'x,L'y,L'z} are the three-dimensional components in non-Euclidean space. The neighborhood range of the current point cloud point is calculated through {L'x,L'y,L'z}.
[0091]
[0092] Based on the metric matrix M, a non-Euclidean metric space Od is constructed in the domain of the node point cloud data. Within this non-Euclidean metric space Od, the neighborhood of the current sampled point (point cloud point) is defined. Select suitable candidate sampling points from the pool;
[0093] If the candidate sampling point is not in the sampling point set C If a point is within the specified distance, it is added to the sampling point set C and used as the new current sampling point; otherwise, the candidate sampling point is discarded. It is a spatial direction vector, the magnitude of which is a multiple of the spatial resolution at the current scale;
[0094] The set of sampled points C formed after sampling is completed is used as the low-scale data of the current node's point cloud data. Together with the point cloud data of its sibling nodes at the same low scale (child nodes under the same parent node), they fill the parent node's point cloud data. This sampling algorithm is executed sequentially to construct a multi-scale octree.
[0095] S320 generates tile data.
[0096] Based on the original massive point cloud header information, the point cloud data stored in the nodes of the multi-scale octree, and the hierarchical relationship of the multi-scale octree, header information is added to the point cloud block file corresponding to each node. This includes the block file name named according to the multi-scale octree structure information, data type, data translation and scaling factor, single-point storage size of the cloud point, data volume (number of point cloud points), block file name corresponding to child nodes (child node data index), block file name corresponding to parent nodes (parent node data index), visible range, node status, point status list, point data index table, etc., to generate tile data. The data translation and scaling factor is a strategy to reduce the storage space of large coordinate number point cloud points. By translating and scaling this massive data, the original double-precision storage is changed to single-precision storage, saving 50% of storage space while maintaining high floating-point precision. Finally, the tile data is block-compressed to further reduce the storage size of the tile data file. A massive amount of point cloud multi-scale spatial tile data (i.e. multi-scale octree nodes) is constructed. During subsequent loading, all scale point cloud data can be addressed by simply using the tile data of the root node.
[0097] In step S400, a state control variable is created for each tile data node to enable dynamic loading and unloading of tile data at different detail levels as needed, and to perform lifecycle management.
[0098] The above steps specifically include:
[0099] Tile data node status creation and operation mechanism: In this embodiment, a node status list is created in the tile data, which includes four statuses: "visible, updated, deleted, and locked". This allows the point cloud management system to dynamically load and unload data blocks (tiles) at different levels of detail (LOD) as needed and manage their lifecycle.
[0100] To accelerate the efficient loading of massive point clouds and reduce the amount of real-time data processing, this embodiment creates a state control variable for each tile data node, including four states: "visible, updated, deleted, and locked". The core idea is to dynamically load and unload data blocks (tiles) of different levels of detail (LOD) on demand and manage their lifecycle.
[0101] S410, the visible status of tile data nodes.
[0102] The visibility status of tile data nodes allows for efficient management of tile data visualization. Visibility status values range from 1 (visible), -1 (invisible), to 0 (partially visible). Visualization is categorized into three cases: ① Dynamic frustum clipping range visualization, where only tiles within the clipping range are considered candidate visible; ② Detail level visualization, where only tiles within a reasonable visibility range are considered candidate visible, with the visibility range determined by the visibility range parameter of each tile; ③ Hidden face removal visualization, which determines the visibility status of the current tile data based on the occlusion relationship between different tiles. By comprehensively considering these three visibility cases, the visibility status of tile data is dynamically managed. Setting the visibility status not only reduces the pressure on video memory but also accelerates subsequent interactive operations.
[0103] S420, tile data node update status.
[0104] In tile data management, the update state control variable of tile data nodes is the core mechanism for achieving data consistency, resource scheduling, and hierarchical coordination. By precisely controlling the update state variable of tile data nodes, the system achieves kernel-external kernel data consistency, dynamic synchronization of parent-child node dependencies, and dynamic synchronization of parent-child node dependencies. When the current tile data node needs to be updated, it simultaneously triggers the update of its parent and child node tile data, and also triggers the point state list update mechanism within the current node.
[0105] S430, tile data node deletion status.
[0106] The tile data node deletion status control variable is used for the continuation control of interactive deletion and update of nodes in the later stage. First, the deletion status of the kernel synchronously drives the deletion operation of the outer kernel data to ensure the consistency between the tile data space node structure and the outer kernel data. Second, setting the node deletion status can buffer the final deletion operation of the data to facilitate the effect of interactive undoing and realize the kernel's virtual deletion operation.
[0107] S440, tile data node locked state.
[0108] The tile data node lock status control variable is used to precisely control the update range of point cloud tile data, limit the number of point clouds participating in the calculation during user interactive operations, and protect point cloud data that does not need to be updated.
[0109] In step S500, a multi-functional state control vector is created for each point cloud point in the tile data node, thereby refining the control granularity from the tile level to the point level.
[0110] The above steps specifically include:
[0111] Point state list creation and operation mechanism: In this embodiment, a point state list is created in the tile data, and a multi-functional state control vector with a length of 1 byte (8 binary bits) is created for each point (point cloud point) in the tile data node, thus constructing an atomic operation-level binary vector control framework.
[0112] like Figure 4 As shown, a multi-functional status control vector with a length of 1 byte (8 binary bits) is created for each point in the tile data node, containing "delete bit, selected bit, visible bit, locked bit, update bit, extension bit 1, extension bit 2, and extension bit 3". As a supplement to the status control of the tile data node, the control granularity is refined from the tile level to the point level, achieving nanometer-level precise management.
[0113] Among these features, the delete bit marks logically deleted points (e.g., noise filtering) to avoid index reconstruction caused by physical removal; the select bit supports box / circle selection interaction, highlighting user-specified point sets in real time; the visible bit enables local point cloud visibility control (e.g., building sectioning); the lock bit freezes key points (e.g., measurement benchmarks) to prevent accidental editing; and the update bit identifies points to be refreshed (e.g., dynamically added LiDAR points). Three extended bits (E1-E3) are customizable, allowing for features such as custom semantic labels and analysis status.
[0114] The advantages of using a multi-functional state control vector include atomic operations, low storage overhead, parallel processing, and dynamic expansion. It is also a crucial core mechanism supporting diverse interactive operations.
[0115] In step S600, a point data index table is created in the parent node to record the correspondence between data points in the parent and child nodes, thereby realizing the spatial association and synchronous update of tile data points between the parent and child nodes.
[0116] The above steps specifically include:
[0117] Tile data spatial mapping: In this embodiment, a data index table is created in the tile data to realize the spatial association of tile data points between parent and child nodes, which is used to quickly synchronize and map the collaborative operation between parent and child nodes.
[0118] The method of controlling the state of tile data nodes and point state attributes can only finely control the content of the tile data, and cannot simultaneously control tile data associated with multiple scales. Therefore, this embodiment proposes to use the spatial mapping method of tile data to realize the spatial association of tile data points of parent and child nodes.
[0119] like Figure 5As shown, a point data index table is created in the parent node to record the correspondence between data points in the parent and child nodes. To further compress the data volume, an array is used. By default, the length of the parent node data index table is the same as the number of data points (point cloud points) in the parent node, and the child node point indexes are directly recorded in this point data index table. When the data of a certain node changes, the data of the parent node and the child node are synchronously updated in the multi-scale octree according to the information in the point data index table.
[0120] S700, Massive point cloud display: In this embodiment, the effective visible tile data is quickly filtered according to the frustum range and the visible range of node tile data, and the tile data loading speed is accelerated through the node cache list mechanism, improving the display response effect.
[0121] When loading and displaying massive points, only the root node data of the multi-scale octree needs to be loaded, and the corresponding data is dynamically obtained through the parent and child node data indexes recorded in each tile data node. The opportunity to trigger the dynamic switching (LOD switching) of multi-scale tile data is that the current tile data has exceeded the frustum range and the visible range.
[0122] To accelerate the switching speed of multi-scale tile data in the video memory, this embodiment establishes a display node buffer mechanism. A node cache list list is maintained in the memory, and the tile data of the next higher level (×1), the next lower level (×1), and the same-level scale space neighborhood (×26) are pre-loaded through the current node tile data, as Figure 6 shown. The tile data in the node cache list list is updated in real time and dynamically, and the expired tile data is replaced in real time. Through this pre-loading method, the tile data loading process changes from "external core storage → video memory" to "kernel storage → video memory", indirectly improving the data loading ability from the external core to the display kernel.
[0123] S800, Tile data dynamic update: Through the dual control mechanisms of "node state - point state" and "data space mapping", the refined and differential update of tile data at different spatial scales is driven. The synchronous update of the point cloud data and the index ensures that the physical storage of the point cloud data and its logical index structure are always consistent, providing a solid foundation for subsequent efficient spatial range queries, attribute retrievals, and fast rendering based on indexes. The linkage with the underlying data update is achieved using the rendering pipeline control of the display state update.
[0124] The core problem faced by the prior art is how to efficiently and accurately achieve the dynamic update of tiled point cloud data, especially in dealing with massive point cloud editing (adding, deleting, modifying), multi-scale tile loading / unloading caused by perspective transformation, and there are significant challenges in ensuring data consistency and real-time rendering performance. Traditional methods often adopt full-scale updates or coarse-grained tile refreshes, resulting in waste of computing resources, update delays, and it is difficult to ensure the topological consistency of point cloud data between cross-scale tiles, and the risk of index structure failure is high. The present invention provides a method and system for dynamically updating point cloud tiles based on collaborative state control and spatial mapping, aiming to overcome the above defects. The core of the method of the present invention is to introduce a dual control mechanism of "node state-point state" and "data spatial mapping" to drive the refined and differential update of tile data at different spatial scales. Through node state control, manage node visibility, level of detail (LOD), and parent-child node association; through point state control, track and mark the operation states of specific point cloud data points inside the tile. Specifically as follows:
[0125] S810, synchronous update of point cloud data and index.
[0126] When a state change is detected, the system automatically calculates and locates all spatially associated and potentially affected tile data according to the data spatial mapping relationship within this node, triggering the update process for all these relevant tile data. While updating the content of the point cloud data of the affected tiles (such as removing deleted points, adding new points, updating modified points), it is crucial and necessary to synchronously update the point data index table, which maintains key information such as the unique identifier of the point cloud point, spatial position encoding, and attribute data offset. This synchronous operation ensures that the physical storage of the point cloud data is always consistent with its logical index structure, providing a solid foundation for subsequent efficient spatial range queries, attribute retrieval, and index-based fast rendering.
[0127] S820, rendering pipeline control for display state update.
[0128] The update of the final visualization effect (i.e., the display state) is responsible for the display rendering engine. The engine realizes the linkage with the underlying data update by flexibly controlling its rendering pipeline. Screen the tiles to be rendered according to the latest node state; organize and update the vertex data buffer (such as VBO) or shader storage buffer (SSBO) to be sent to the graphics processor according to the synchronously updated point data index table; dynamically configure the shader program, draw parameters (Draw Call), and rendering queue in the rendering pipeline. This enables the rendering engine to respond in real time to the changes in the underlying data, efficiently cull invisible content, smoothly switch LOD, and accurately present the updated point cloud state on the display terminal.
[0129] Application Example: Using the method of this invention, massive point cloud data was efficiently displayed, updated, and controlled. The original point cloud data was 56GB in size, with a scanning resolution better than 2cm. The computer configuration used was: Intel(R) Core(TM) i9-10980XE CPU@3.00GHz, 32GB of RAM. Throughout the process, the massive point cloud data achieved seamless and lag-free loading, with an interactive response time of less than 0.1 seconds. Updates to all massive point clouds were consistent across different scales.
[0130] Corresponding to the above-disclosed method for dynamic spatial management of massive point cloud data in tile format, this invention also discloses a dynamic spatial management system for massive point cloud data in tile format, which specifically includes:
[0131] The point cloud data preparation and preprocessing module is used to acquire massive amounts of point cloud data from the work area and perform preprocessing.
[0132] The massive point cloud spatial segmentation module is used to construct a spatial octree and perform spatial segmentation on the preprocessed massive point cloud data to obtain point cloud blocks, where each leaf node corresponds to a point cloud block.
[0133] The tile data construction module is used to downsample sequentially from the leaf node to the root node, so that each node corresponds to point cloud block data of a specified scale, generating a multi-scale octree, and generating corresponding tile data by adding header file information to the point cloud block of each node in the multi-scale octree.
[0134] The tile data node state creation module is used to create state control variables for each tile data node, enabling dynamic loading and unloading of tile data at different detail levels as needed, and performing lifecycle management.
[0135] The point status list creation module is used to create a multi-functional status control vector for each point cloud point in the tile data node, thereby refining the control granularity from the tile level to the point level.
[0136] The tile data spatial mapping module is used to create a point data index table in the parent node to record the correspondence between data points in the parent and child nodes, thereby realizing the spatial association and synchronous update of tile data points between the parent and child nodes.
[0137] It should be noted that for a detailed description of the massive point cloud data tile-based spatial dynamic management system provided in the embodiments of the present invention, please refer to the relevant description of the massive point cloud data tile-based spatial dynamic management method provided in the embodiments of the present invention, which will not be repeated here.
[0138] Those skilled in the art will understand that all or part of the functions of the various methods in the above embodiments can be implemented by hardware or by computer programs. When all or part of the functions in the above embodiments are implemented by computer programs, the program can be stored in a computer-readable storage medium, which may include: read-only memory, random access memory, disk, optical disk, hard disk, etc., and the program is executed by a computer to achieve the above functions. For example, the program can be stored in the memory of a device, and when the program in the memory is executed by the processor, all or part of the above functions can be achieved. In addition, when all or part of the functions in the above embodiments are implemented by computer programs, the program can also be stored in a server, another computer, disk, optical disk, flash drive, or external hard drive, etc., and can be downloaded or copied to the memory of a local device, or the system of the local device can be updated. When the program in the memory is executed by the processor, all or part of the functions in the above embodiments can be achieved.
[0139] The above examples illustrate the present invention only to aid in understanding it and are not intended to limit the scope of the invention. Those skilled in the art can make various simple deductions, modifications, or substitutions based on the principles of this invention.
Claims
1. A method for dynamic spatial management of massive point cloud data in tile format, characterized in that, The method includes: Acquire massive amounts of point cloud data from the work area and perform preprocessing; A spatial octree is constructed, and the preprocessed massive point cloud data is spatially segmented to obtain point cloud blocks, where each leaf node corresponds to a point cloud block. Starting from the leaf node, downsample sequentially from bottom to top to the root node, so that each node corresponds to point cloud block data of a specified scale, generating a multi-scale octree, and generating corresponding tile data by adding header file information to the point cloud block of each node in the multi-scale octree. Create state control variables for each tile data node to enable dynamic loading and unloading of tile data at different detail levels as needed, and perform lifecycle management; Create a multi-functional state control vector for each point cloud point in the tile data node to refine the control granularity from the tile level to the point level; Create a point data index table in the parent node to record the correspondence between data points in the parent and child nodes, so as to realize the spatial association and synchronous update of tile data points in the parent and child nodes.
2. The method for dynamic spatial management of massive point cloud data in tile format as described in claim 1, characterized in that, Acquire massive amounts of point cloud data from the work area and perform preprocessing, specifically including: First, the data quality and coordinate system compliance of the acquired point cloud data are checked. Then, the original data is stored in an appropriate format to ensure data accuracy and integrity. Next, noise reduction is performed by calculating the statistical characteristics of the neighborhood of each point, removing points whose distance from the mean exceeds several times the standard deviation, and eliminating noisy points on the surface.
3. The method for dynamic spatial management of massive point cloud data in tile format as described in claim 1, characterized in that, A spatial octree is constructed, and the preprocessed massive point cloud data is spatially partitioned to obtain point cloud blocks, where each leaf node corresponds to a point cloud block. Specifically, this includes: The spatial range and data volume of the massive point cloud are obtained by using the header information of the massive point cloud. First, the data is super-segmented using the binary search method so that the theoretical data volume of the leaf node at the end of the binary tree is less than the preset value, and the deepest layer number of the binary tree at this time is obtained. Then, the initial spatial octree is constructed according to the layer number, and the data volume of the point cloud points contained in each octree node and the information of the outer bounding shell are recorded. The initial spatial octree is filled with massive point cloud data, the point cloud data volume of each node is updated, and the spatial octree is structurally optimized by deleting nodes with a point cloud data volume of 0, deleting all leaf nodes whose parent node has a point cloud data volume of less than a preset threshold, and at the same time, the original parent node becomes a leaf node; and the spatial octree is optimized from bottom to top. Merge nodes in a spatial octree whose sum of point cloud data is less than a preset threshold to construct the optimal spatial octree structure. The massive point cloud data file is read again, and the point cloud data is split through the optimal spatial octree, so that each point cloud data is split into the corresponding spatial octree leaf node. Each leaf node corresponds to an external point cloud block file, thus realizing the physical segmentation of the massive data.
4. The method for dynamic spatial management of massive point cloud data in tile format as described in claim 3, characterized in that, Starting from the leaf nodes, downsampling is performed sequentially from bottom to top up to the root node, so that each node corresponds to point cloud block data of a specified scale, generating a multi-scale octree. Then, header information is added to the point cloud blocks of each node in the multi-scale octree to generate corresponding tile data, specifically including: Based on the anisotropic curvature Poisson sampling method, the spatial octree node point cloud data is downsampled, and the data of the parent node is all derived from the sampling of the child node data, thereby constructing a multi-scale octree. Based on the original massive point cloud header information, the point cloud data stored in the nodes of the multi-scale octree, and the hierarchical relationship of the multi-scale octree, header information is added to the point cloud block file corresponding to each node to generate tile data. Finally, the tile data is compressed in blocks.
5. The method for dynamic spatial management of massive point cloud data tiles as described in claim 4, characterized in that, An anisotropic curvature Poisson sampling method is used to downsample spatial octree node point cloud data. All data for parent nodes is derived from sampling data from child nodes, thereby constructing a multi-scale octree, specifically including: First, calculate the curvature coefficient and principal curvature direction vector of each point in the nodal point cloud data; When performing Poisson sampling on a local area, a new metric matrix M is constructed based on curvature information, and the 3D Euclidean distance L spherical neighborhood is mapped to an anisotropic irregular shape, and the neighborhood range of the current point cloud point is calculated. Based on the metric matrix M, a non-Euclidean metric space Od is constructed in the domain of node point cloud data. Suitable candidate sampling points are selected in the neighborhood of the current sampling point within the non-Euclidean metric space Od. If the candidate sampling point is not in the sampling point set C If the distance is within the specified range, the sample point is stored in the sampling point set C and used as the new current sampling point; otherwise, the corresponding candidate sampling point is discarded. It is a spatial direction vector, and its magnitude is a multiple of the spatial resolution corresponding to the current scale; The set of sampling points C formed after the sampling is completed is used as the low-scale data of the current node point cloud data, and together with the point cloud data of the sibling nodes at the same low scale, they fill the parent node point cloud data. The corresponding sampling algorithms are executed sequentially to construct a multi-scale octree.
6. The method for dynamic spatial management of massive point cloud data in tile format as described in claim 1, characterized in that, Create state control variables for each tile data node to enable dynamic loading and unloading of tile data at different detail levels on demand, and perform lifecycle management, specifically including: Create a state control variable for each tile data node, which includes four states: "visible, update, delete, and lock". The visible state value is used to control the visualization of the tile data node, the update state value is used to control the update of the tile data node, the delete state value is used to control the deletion of the tile data node, and the lock state value is used to precisely control the update range of the point cloud tile data, limit the number of point cloud data participating in the calculation during user interactive operation, and protect the point cloud data that does not need to be updated. The visibility status includes visible, invisible, and partially visible. Visibility includes: visualization of the dynamic view frustum clipping range, where only tile data within the clipping range is considered candidate visible; detail level visibility, where only tile data within a reasonable visibility range is considered candidate visible, where the visibility range is determined by the visibility range parameter of each tile data; and hidden surface removal visualization, which determines the visibility status of the current tile data based on the occlusion relationship between different tile data.
7. The method for dynamic spatial management of massive point cloud data in tile format as described in claim 1, characterized in that, Create a multi-functional state control vector for each point cloud point in the tile data node, thereby refining the control granularity from the tile level to the point level. Specifically, this includes: Create a multi-functional state control vector of 1 byte in length for each point cloud point in the tile data node, containing "delete bit, selected bit, visible bit, locked bit, update bit, extension bit 1, extension bit 2, extension bit 3"; The deletion bit is used to mark logical deletion points to avoid index reconstruction caused by physical removal; the selection bit is used to support box selection / circle selection interaction and highlight user-specified point sets in real time; the visibility bit is used to implement local point cloud display control; the lock bit is used to freeze key points to prevent accidental editing; the update bit is used to identify points to be refreshed; and the three extension bits are used to enable customization.
8. The method for dynamic spatial management of massive point cloud data in tile format as described in claim 1, characterized in that, Create a point data index table in the parent node to record the correspondence between data points in the parent and child nodes, thereby realizing the spatial association and synchronous update of tile data points between the parent and child nodes. Specifically, this includes: A point data index table is created in the parent node to record the correspondence between data points in the parent and child nodes. To further compress the data volume, an array is used. By default, the length of the parent node data index table is the same as the number of data points in the parent node. The child node point index is recorded directly in the point data index table. When the data of a node changes, the parent node and child node data are updated synchronously in the multi-scale octree according to the information in the point data index table.
9. The method for dynamic spatial management of massive point cloud data in tile format as described in claim 1, characterized in that, The method further includes: When loading and displaying massive numbers of data points, it is only necessary to load the root node data of the multi-scale octree and dynamically obtain the corresponding data through the parent and child node data indexes recorded in each tile data node. Quickly filter valid visible tile data based on the view frustum range and the visible range of node tile data; The established display node buffering mechanism accelerates tile data loading speed. By maintaining a node cache list in memory, the system preloads higher-level, lower-level, and same-level scale spatial neighbor tile data according to the current tile data node. The tile data in the node cache list is dynamically updated in real time, and expired tile data is replaced in real time.
10. The method for dynamic spatial management of massive point cloud data in tile format as described in claim 1, characterized in that, The method further includes: When a node status change is detected, all spatially related and potentially affected tile data are automatically calculated and located based on the data space mapping relationship within the corresponding node, triggering the update process for the relevant tile data; while updating the point cloud data content of the affected tiles, the point data index table is updated synchronously to ensure that the physical storage and logical index structure of the point cloud data remain consistent at all times. The rendering engine achieves linkage with underlying data updates through flexible control of the rendering pipeline; it filters tiles to be rendered based on the latest node status; it organizes and updates the vertex data buffer or shader storage buffer to be sent to the graphics processor based on the synchronously updated point data index table; and it dynamically configures the shader programs, drawing parameters, and rendering queues in the rendering pipeline.
Citation Information
Cited By
Mapping association method and system for 3D tile and BIM vector model editing
CN121808919A