High-precision three-dimensional point cloud visualization method, electronic equipment and storage medium

Through multi-level grid processing and geo-grid engine optimization of three-dimensional point cloud data, the problems of memory limitation and low rendering efficiency are solved, efficient three-dimensional point cloud rendering is achieved, and the application of three-dimensional data in the fields of engineering and virtual reality is promoted.

CN120599115APending Publication Date: 2025-09-05CHINA SOUTHERN POWER GRID GENERAL AVIATION SERVICE CO LTD

Patent Information

Application Number
CN202510725587.0
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-05-30
Publication Date
2025-09-05

AI Technical Summary

Technical Problem

The existing technology faces memory limitations, inability to meet real-time rendering requirements, and slow data transmission speed in three-dimensional point cloud rendering, especially in large-scale point cloud data processing, which is less efficient.

Method used

Multi-level grid processing method is adopted to sample point cloud data in layer by layer and build multi-level index files, combine with geo-grid engine for data chunking and compression processing, and use multi-threaded parallel processing and asynchronous loading technology to optimize the rendering process.

Benefits of technology

It realizes efficient rapid loading and rendering of three-dimensional point cloud data, improves rendering efficiency, supports data structure optimization in different spatial scales and application scenarios, and is suitable for the fields of building visualization, urban planning and autonomous driving.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120599115A_ABST
    Figure CN120599115A_ABST
Patent Text Reader

Abstract

The invention discloses a high-precision three-dimensional point cloud visualization method, electronic equipment and a storage medium, and belongs to the technical field of geographic space information systems.The high-precision three-dimensional point cloud visualization method comprises the steps that S1, a point cloud file is input, and meta-information of the point cloud file is obtained; s2, performing scalable data geographic gridding processing on the point cloud file meta-information to obtain a basic grid object; s3, adopting a data stratified sampling method to obtain a multi-level grid object; s4, constructing a multi-level index file based on the multi-level grid, and outputting the multi-level index file; s5, performing high-availability, high-concurrency and compression processing on the output multi-level index file; and S6, performing real-time hierarchical scheduling rendering on the point cloud based on the processed multi-level index file. A point cloud is quickly split into small blocks by using a gridding technology, then parallel processing is performed, a hierarchical rendering level is generated by performing sub-sampling on a whole data set from bottom to top by using a plurality of sampling strategies, and meanwhile, a quick layering strategy is introduced, so that the throughput is remarkably improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of geographic space information systems, and in particular to a high-precision three-dimensional point cloud visualization method, electronic equipment, and storage medium. Background Art

[0002] Three-dimensional point cloud data, as a core data type in the field of contemporary computer vision and graphics, has shown broad application potential in many cutting-edge fields such as autonomous driving, autonomous robot navigation, precise terrain mapping, and cultural heritage protection. However, faced with the limitations of computer memory capacity and the bottleneck of graphics processing unit (GPU) rendering speed, how to achieve real-time visualization of large-scale, high-precision three-dimensional point cloud data remains a very challenging problem that needs to be solved urgently. Currently, KD trees, R trees, quad trees, oc trees, etc. are commonly used, and combined with pyramid structures to construct indexes for point clouds. The quality of index construction directly affects the efficiency of organizing and querying point cloud data. If the point cloud cannot be refreshed in real time, it cannot meet the needs of massive point cloud visualization.

[0003] A Chinese invention patent with authorization announcement number CN101615191B discloses a method for storing and visualizing massive point cloud data in real time. This method first loads a point cloud file into memory and limits the size of the loaded point cloud by the remaining memory capacity of the computer system. Secondly, the point cloud in memory is specially processed and an image pyramid is constructed based on the processed data. The point cloud data of the corresponding level of detail is then loaded according to the viewport.

[0004] Chinese invention patent publication number CN101908068B discloses a real-time rendering method for massive laser scanning point clouds based on quadtree indexing. This method partitions the point cloud into blocks, similar to the image pyramid construction described in the technical solution of patent publication number CN101615191B. Next, an index is established based on the quadtree depth. The partitioned point cloud data is then associated with the leaf nodes of the quadtree. Finally, during rendering, filtering and rendering are performed based on the viewport size.

[0005] Obviously, the existing technical solutions are essentially to pre-process and analyze the data, and then filter and render the point cloud within the viewport range. Regarding the authorization announcement number CN101615191B, the point cloud is loaded and stored directly in the memory according to the memory size. On the one hand, this causes a surge in computer memory and causes jams, and does not mention how to choose the optimal strategy to choose how much data to load. On the other hand, it does not consider how to deal with the part of the point cloud to be loaded that exceeds the memory size. The block mechanism in the authorization announcement number CN101908068B requires the input of the quadtree depth value in advance, and then the point cloud is blocked based on this. Moreover, the efficiency of editing the points in the point cloud based on the quadtree index is low, because the internal quadtree needs to be rebuilt every time a point is deleted or added, and its hierarchical structure also needs to be re-serialized. No corresponding optimization strategy is given in this technical solution.

[0006] Therefore, due to the problems faced by point cloud rendering, such as memory limitations, inability to meet real-time rendering requirements, and slow data transmission speed, there is an urgent need for an efficient and high-precision three-dimensional point cloud visualization rendering method. Summary of the Invention

[0007] The purpose of the present invention is to overcome the shortcomings of point cloud rendering in the prior art, such as memory limitations, inability to meet real-time rendering requirements, and slow data transmission speed, and to provide a high-precision three-dimensional point cloud visualization method, electronic device, and storage medium.

[0008] In order to achieve the above-mentioned object of the invention, the present invention provides the following technical solutions:

[0009] A high-precision three-dimensional point cloud visualization method includes the following steps:

[0010] S1: Input a point cloud file and obtain the point cloud file metadata, wherein the point cloud file metadata includes the coordinate range and number of point clouds;

[0011] S2: performing scalable data geographic gridding processing on the point cloud file metadata to obtain a basic grid object;

[0012] S3: Using a data layered sampling method, the top-level grid is reconstructed and data is thinned based on the basic grid object to obtain a multi-level grid object;

[0013] S4: constructing a multi-level index file based on the multi-level grid, and outputting the multi-level index file;

[0014] S5: Perform high availability, high concurrency and compression processing on the output multi-level index file;

[0015] S6: Perform real-time layered scheduling rendering of the point cloud based on the processed multi-level index file.

[0016] Using the above technical solution, gridding technology is used to quickly split the point cloud into small blocks, and then processed in parallel. The hierarchical rendering levels are generated by sub-sampling the entire data set from bottom to top using multiple sampling strategies. At the same time, a fast layering strategy is introduced to significantly improve the throughput.

[0017] As a preferred solution of the present invention, step S2 includes: building a geographic grid engine, which is used to grid the point cloud file metadata, including encoding and decoding of point cloud data and querying grid codes within a preset coordinate range.

[0018] As a preferred solution of the present invention, the geographic grid engine supports plug-in.

[0019] As a preferred solution of the present invention, step S2 also includes: obtaining the occupied geographic grid code array according to the recorded coordinate range, mapping the unit block in a linear coding manner, and counting the number of point clouds falling into each grid unit to obtain a basic grid object.

[0020] As a preferred embodiment of the present invention, step S3 includes the following steps:

[0021] S31: First, according to the base mesh object, obtain the parent mesh object according to the height domain layering;

[0022] S32: Obtain a non-sampling point array in the parent grid object according to the current grid object and the data layered sampling method, and save the non-sampling point array as a point cloud of the level layer;

[0023] S33: Output the 3D model generated by the sampled node data, record the number of point clouds, update the sampling points to the point cloud of the next higher level, i.e., level 1, and repeat steps S31-S33 until all basic mesh objects are layered and thinned.

[0024] As a preferred solution of the present invention, the multi-level index file in step S4 is organized according to the multi-level grid, and contains at least the point cloud file metadata and a JSON file of the tree structure of the block objects.

[0025] As a preferred embodiment of the present invention, step S5 includes:

[0026] S51: Data segmentation and preprocessing: First, segment the multi-level index file into multiple blocks, compress each block independently, support streaming processing, and then write header information. Add a compression identification header to the beginning of the compressed file. At the same time, perform redundancy detection, scan byte by byte through a sliding window, identify the longest repeated string, and generate a data pointer.

[0027] S52: Encoding conversion: First, dynamically build the encoding tree, count the character frequencies of the current data block, and generate the optimal encoding table. Then, perform data replacement, encode the original character set and data pointer according to the encoding rules, and generate a binary compression stream.

[0028] S53: Compressed data encapsulation: First, an end flag is added to the end of each block of data to mark the end of the current block. Next, a data checksum is generated, and the position checksum of the original data is calculated and written to the end of the compressed file for subsequent decoding of the data. At the same time, the original file size is recorded, and a 4-byte field is added to store the length of the uncompressed data for decompression verification.

[0029] S54: Streaming output and resource release: By refreshing the buffer, the real-time streaming data is written to the output stream, and at the same time, the sliding serial port and encoding resources are released to complete the writing of the tail of the file.

[0030] As a preferred embodiment of the present invention, step S6 includes:

[0031] S61: Fast root-level spatial index positioning: Based on the root-level bounding box information in the multi-level index file, the spatial topology of the 3D scene is parsed, and the view focus is aligned with the root bounding box through the spatial coordinate transformation matrix to complete the initial scene positioning;

[0032] S62: Dynamic View Analysis and Multi-resolution Scheduling: Builds a view frustum based on camera parameters to calculate mesh object visibility weights, uses a spatial index structure to quickly cull invisible areas, and dynamically selects the optimal level of detail mesh object based on screen space error and viewpoint distance, triggering asynchronous data loading requests.

[0033] S63: Task Slicing and Scheduling: First, a task pool is created and the rendering task is split into independent subtask units and stored in a priority task pool. The main thread has a single-frame task execution limit of 50ms. Timed-out tasks are automatically suspended and thread control is released, inserted into the microtask queue and wait for the next frame to be scheduled. The renderer idle callback is used to coordinate processing with the Worker background thread. The task state machine is recorded for seamless recovery of interrupted tasks.

[0034] S64: Multi-machine caching and preloading optimization: Maintains a memory cache pool for frequently accessed data, dynamically eliminating low-value data based on recent usage frequency; pre-loads next-level mesh object data and adjacent-level mesh object data, silently updates via background threads, and instantly switches between dual caches when the viewpoint changes.

[0035] S65: GPU instanced rendering acceleration: Merge vertex, normal, and color data into a cross-frame persistent buffer; generate texture coordinate offsets based on instance ID and level index; batch generate instance parameters through compute shaders.

[0036] The present invention also provides an electronic device, comprising a processor and a memory, wherein the processor is configured to execute a computer program stored in the memory to implement any one of the above-described high-precision three-dimensional point cloud visualization methods.

[0037] The present invention also provides a computer-readable storage medium, which stores at least one instruction. When the at least one instruction is executed by a processor, it implements any one of the high-precision three-dimensional point cloud visualization methods described above.

[0038] Compared with the prior art, the present invention has the following advantages:

[0039] It supports scenarios such as architectural visualization, urban planning, and high-precision maps for autonomous driving, enables dynamic loading of massive point cloud data, and promotes the large-scale application of three-dimensional data in engineering, transportation, virtual reality, and other fields; through multi-scale grid data structure and LOD dynamic mechanism, it achieves rapid loading of millions of point clouds and improves rendering efficiency; it innovatively proposes a geographic grid engine and supports plug-ins, so that its large-scale point cloud data can switch grid divisions and optimize point cloud data structures at different spatial scales and different application scenarios, achieving rapid data loading and application. BRIEF DESCRIPTION OF THE DRAWINGS

[0040] Various other advantages and benefits will become apparent to those skilled in the art upon reading the detailed description of the preferred embodiment below. The accompanying drawings are for illustration purposes only and are not to be considered as limiting the present invention. Throughout the drawings, the same reference numerals are used to denote the same components. In the drawings:

[0041] Figure 1 This is a flowchart of a high-precision three-dimensional point cloud visualization method according to Example 1 of the present invention;

[0042] Figure 2 A schematic diagram of constructing a multi-level index file for a high-precision three-dimensional point cloud visualization method according to Example 1 of the present invention;

[0043] Figure 3 A conversion diagram of Coordinate, Voxel, and VoxelID in a high-precision three-dimensional point cloud visualization method according to Example 2 of the present invention;

[0044] Figure 4 This is a diagram showing the design principles of a grid coding plug-in for a high-precision three-dimensional point cloud visualization method according to Example 2 of the present invention;

[0045] Figure 5 This is a schematic diagram of point cloud meshing according to a high-precision three-dimensional point cloud visualization method described in Example 3 of the present invention;

[0046] Figure 6 This is a structural block diagram of an electronic device described in Example 10 of the present invention. DETAILED DESCRIPTION

[0047] The technical solutions in the embodiments of the present invention will be clearly and completely described below in conjunction with the drawings in the embodiments of the present invention. Obviously, the described embodiments are only a part of the embodiments of the present invention, not all of the embodiments. The components of the embodiments of the present invention generally described and shown in the drawings herein can be arranged and designed in various different configurations. Therefore, the following detailed description of the embodiments of the present invention provided in the drawings is not intended to limit the scope of the claimed invention, but merely represents selected embodiments of the present invention. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without making creative work are within the scope of protection of the present invention.

[0048] It should be noted that similar numbers and letters represent similar items in the following figures. Therefore, once an item is defined in one figure, it does not need to be further defined or explained in subsequent figures. At the same time, in the description of the present invention, the terms "first" and "second" are used only to distinguish the description and should not be understood as indicating or implying relative importance, or implying any actual relationship or order between these entities or operations. In addition, the terms "connected" and "connected" can refer to direct connection between components or indirect connection through other components.

[0049] Definitions of abbreviations and key terms;

[0050] Point cloud data (Big Data) refers to a collection of vectors in a three-dimensional coordinate system. Scanned data is recorded as points, each containing three-dimensional coordinates, some of which may also contain color information (RGB) or reflection intensity information (intensity).

[0051] Graphics Processing Unit (GPU): also known as display core, display chip, or video processor, is a coprocessor used to process images and graphics operations. It is widely used in personal computers, workstations, and some mobile devices (such as smartphones and tablets).

[0052] Input / output (I / O): Usually refers to the input and output of data between internal memory and external memory or other peripheral devices.

[0053] Example 1

[0054] A high-precision 3D point cloud visualization method, such as Figure 1 As shown, the following steps are included:

[0055] S1: Input a point cloud file and obtain the point cloud file metadata, wherein the point cloud file metadata includes the coordinate range and number of point clouds;

[0056] S2: performing scalable data geographic gridding processing on the point cloud file metadata to obtain a basic grid object;

[0057] Specifically, the geographic grid is a collection of polygonal grid cells that reproduce the earth's surface. It can be used to represent the location information of land features in geographic space and integrate other types of spatiotemporal data. Geographic grid calculations generally proceed from coarse to fine, gradually dividing the earth's surface and approximating the earth's curved surface with polygonal grids of a certain size. Its goal is to integrate the positioning of geographic space and the description of geographic features, and to control the error range within the range of the grid cell. Each grid cell will be coded, and there is a one-to-one correspondence between the grid and the code. The three-dimensional geographic grid not only considers longitude and latitude, but also includes the altitude dimension in the segmentation and coding range.

[0058] The point cloud data is subjected to scalable data gridding processing, and a geographic grid engine is first constructed. The geographic grid engine is used to grid the point cloud data and obtain the grid code occupied by the point cloud data. The geographic grid engine is implemented based on a plug-in construction concept, supports geographic division rules defined by different standards and specifications, as well as custom division rules, and provides data encoding and decoding and basic range query grid code functions.

[0059] The point cloud data is subjected to scalable data gridding processing. First, the basic metadata of the point cloud data, including the coordinate range and number of the point cloud, is obtained according to the point cloud file header. The occupied geographic grid code array is obtained according to the recorded coordinate range, and the unit blocks are mapped in a linear coding manner. The number of points falling into each grid unit is counted respectively. The point cloud data is read for gridding processing, and a multi-threading mechanism is used for dynamic loop parallel reading of the point cloud data. The acquisition of the occupied geographic grid code array is based on the grid code obtained by the encoding function of the geographic grid engine based on the coordinate point data in all point cloud files.

[0060] S3: Using a data layered sampling method, the top-level grid is reconstructed and data is thinned based on the basic grid object to obtain a multi-level grid object;

[0061] Specifically, the purpose of layered sampling is to avoid loading all mesh data at the beginning of scheduling rendering for high-precision and massive point cloud data. Through data layered sampling, the top-level mesh is reconstructed and data is thinned out based on the existing base mesh. This allows the point cloud data to be loaded from the top-level mesh according to the distance from the 3D scene camera. As the distance from the 3D scene camera decreases, more refined point cloud data is loaded.

[0062] Data tiering includes:

[0063] S31: First, according to the base mesh object, obtain the parent mesh object according to the height domain layering;

[0064] S32: Obtaining a non-sampling point array (i.e., a sampled structure) in the parent grid object according to the current grid object and the data layered sampling method, and saving the non-sampling point array as a point cloud of the level layer;

[0065] S33: Output the 3D model generated by the sampled node data, record the number of point clouds, update the sampling points to the point cloud of the next higher level, i.e., level 1, and repeat steps S31-S33 until all basic mesh objects are layered and thinned.

[0066] S4: constructing a multi-level index file based on the multi-level grid, and outputting the multi-level index file;

[0067] Specifically, the multi-level index file is constructed by dividing the height domain of the geographic grid code array obtained in step S2 into a hierarchical grid index file according to its coding rule. The grid index file is mainly used for fast retrieval to realize hierarchical scheduling rendering, wherein the index file is organized according to the spatial data structure; it contains at least the point cloud file metadata and the tile object (tile) tree structure JSON file to express it.

[0068] The point cloud file metadata includes the pointer to the 3D model generated by all points in the grid in the point cloud file, the bounding volume of the point cloud data (bounding volume facilitates real-time layered rendering and rapid positioning of the point cloud), an array of all height domain tile objects (children) of the point cloud, and the position affine transformation matrix of the entire point cloud data, stored in column-first order and used to convert from the local coordinate system of the tile object (tile) to the coordinate system of the parent tile object (tile);

[0069] Each tile object includes the geographic grid code described in S2, the number of grid points, the three-dimensional model generated by all points of the grid, and the affine transformation matrix (used to calculate the position of the grid object based on the position transformation matrix of the parent tile object) and the set of sub-tile objects (tiles) if the tile object (tile) is divided according to the height domain, such as Figure 2 shown.

[0070] S5: Perform high availability, high concurrency and compression processing on the output multi-level index file;

[0071] Specifically, by building high-availability, high-concurrency and data compression services, we can optimize the data storage and transmission of the entire system. For data compression:

[0072] S51: Data Blocking and Preprocessing: First, block processing is performed to split the input data into multiple blocks. Each block is compressed independently to support streaming processing (such as network transmission). Then, header information is written, and a compression identification header (including file type, timestamp, compression algorithm identifier, etc.) is added to the beginning of the compressed file. At the same time, redundancy detection is performed, and a sliding window is used to scan byte by byte to identify the longest repeated string and generate a data pointer.

[0073] S52: Encoding conversion: First, dynamically build a coding tree, count the character frequencies of the current data block, and generate an optimal coding table. Then, perform data replacement, encode the original character set and data pointer according to the encoding rules, and generate a binary compression stream.

[0074] S53: Compressed data encapsulation: First, add a block end marker to the end of each block of data to mark the end of the current block. Then generate data checksums, calculate the position checksum of the original data, and write it to the end of the compressed file to facilitate subsequent data decoding. At the same time, the original file size is recorded, and a 4-byte field is added to store the length of the uncompressed data for decompression verification.

[0075] S54: Streaming output and resource release: By refreshing the buffer, the real-time streaming data is written to the output stream to avoid data loss, and at the same time, the sliding serial port, encoding resources, etc. are released to complete the writing of the end of the file.

[0076] S6: Perform real-time layered scheduling rendering of the point cloud based on the processed multi-level index file.

[0077] S61: Fast positioning of the root-level spatial index: Based on the root-level bounding box information in the point cloud multi-level index file obtained in the previous step, the spatial topology of the 3D scene is analyzed. The view focus is aligned with the root bounding box using the spatial coordinate transformation matrix to complete the initial scene positioning and ensure the spatial consistency of the view frustum and the index structure.

[0078] S62: Dynamic View Analysis and Multi-resolution Scheduling: Constructs a view frustum based on camera parameters (position, orientation, FOV, near / far planes), and uses a spatial index structure to quickly cull invisible areas. It also dynamically selects the optimal level of detail (LOD) mesh object based on screen space error (SSE) and viewpoint distance, triggering asynchronous data loading requests. It also supports multi-threaded incremental loading, prioritizing high-priority blocks within the visible area.

[0079] S63: Task slicing and scheduling:

[0080] Dynamic allocation of task pool: First, create a task pool and decompose the rendering task into independent subtask units (such as mesh segmentation, texture loading, and instanced drawing), and store them in the priority task pool;

[0081] Preemptive time-slicing execution: The main thread has a single-frame task execution limit of 50ms. Timed-out tasks are automatically suspended and thread control is released, inserted into the microtask queue and wait for the next frame to be scheduled. The renderer idle callback is used to coordinate with the Worker background thread to ensure smooth page rendering.

[0082] Breakpoint resume execution: record task state machine (such as incomplete vertex buffer, texture to be bound), and achieve seamless recovery of interrupted tasks;

[0083] S64: Multi-machine cache and preloading optimization:

[0084] LRU cache eviction mechanism: maintains a memory cache pool for frequently accessed data and dynamically evicts low-value data based on recent usage frequency, reducing I / O latency and alleviating server pressure.

[0085] Double-buffer preloading mechanism: By preloading the next level of mesh object data and the adjacent level mesh object data, the data is silently updated through background threads. When the viewpoint changes, the double buffer switches instantly, achieving a "zero wait" visual effect.

[0086] S65: GPU instanced rendering acceleration:

[0087] Uniform Buffer Object (UBO) encapsulation: combines vertex, normal, and color data into a persistent buffer across frames, reducing CPU-GPU communication overhead;

[0088] Dynamic calculation of texture index: Generate texture coordinate offset based on instance ID and level index, and realize multiple instance reuse of a single texture atlas;

[0089] GPU Driven Rendering: Batch generate instance parameters (such as position and scale) through compute shaders, avoiding CPU-side loop logic.

[0090] Example 2

[0091] This embodiment is a preferred embodiment of the geographic grid engine in the scalable data geographic gridding process in embodiment 1:

[0092] Coordinate represents a coordinate point in three-dimensional space. Each point is in a grid voxel (Voxel). A grid voxel (Voxel) represents a grid object, and VoxelID represents the grid code of this grid voxel (Voxel). Coordinate, Voxel and VoxelID can be converted to each other, such as Figure 3 As shown;

[0093] The grid coding plug-in design principle supports the configuration of different geocoding methods and spatial height coding method combinations, such as Figure 4 As shown;

[0094] The design concept of abstracting the voxel base class is used by other subclasses to inherit and implement the base class methods, thus achieving plug-in design. Abstract inheritance is a core concept in the design of many programming languages ​​and will not be described in detail here.

[0095] Example 3

[0096] This embodiment is one of the preferred embodiments for grid division in embodiment 1:

[0097] The BeiDou position code is used for spatial segmentation. The division rule is to place the origin of the BeiDou two-dimensional grid on the earth's surface at the intersection of the Yidao plane and the prime meridian plane. The two-dimensional grid in the non-polar region (88° south latitude to 88° north latitude) on the earth's surface is divided into ten levels. The method is as follows:

[0098] First-level grid division: The first-level grid is divided according to the 1:1 million map in GB / T13989-2012, with a cell size of 6°×4°;

[0099] Second-level grid division: The first-level 6°×4° grid is divided into 12×8 second-level grids according to longitude and latitude, corresponding to a 30'×30' grid, which is approximately equal to a 55.66km×55.66km grid at the Earth's equator;

[0100] Third-level grid division: The second-level grid is divided into 2×3 third-level grids according to longitude and latitude, corresponding to the 15'×10' grid of the 1:50,000 map sheet, which is approximately equal to the 27.83km×18.55km grid at the Earth's equator;

[0101] Fourth-level grid division: Divide the third-level grid into 15×10 fourth-level grids, which is approximately equal to a 1.85km×1.85km grid at the Earth's equator.

[0102] Fifth-level grid division: Divide the fourth-level grid into 15×15 fifth-level grids according to longitude and latitude, which is approximately equal to a 123.69m×123.69m grid at the Earth's equator;

[0103] Sixth-level grid division: Divide the fifth-level grid into 2×2 sixth-level grids according to longitude and latitude, which is approximately equal to a 61.84m×61.84m grid at the Earth's equator;

[0104] Seventh-level grid division: Divide the sixth-level grid into 8×8 seventh-level grids according to longitude and latitude, which is approximately equal to the 7.73m×7.73m grid at the Earth's equator;

[0105] Eighth-level grid division: Divide the seventh-level grid into 8×8 eighth-level grids according to longitude and latitude, which is approximately equivalent to a 0.97m×0.97m grid at the Earth's equator;

[0106] Ninth-level grid division: Divide the eighth-level grid into 8×8 ninth-level grids, which is approximately equivalent to a 12.0 cm×12.0 cm grid at the Earth's equator.

[0107] Tenth-level grid division: Divide the ninth-level grid into 8×8 tenth-level grids according to longitude and latitude, which is approximately equal to the 1.5cm×1.5cm grid at the earth's equator.

[0108] For the grid coding, please refer to the Beidou grid position code coding rules, which will not be repeated here. The following is the point cloud gridding, such as Figure 5 shown.

[0109] Example 4

[0110] This embodiment is a preferred embodiment of data stratified sampling in embodiment 1:

[0111] First, based on the base mesh object, get the parent mesh object according to the height field layer.

[0112] According to the parent mesh object and the bounding box size of the level, the maximum sampling distance d is set. For meshes of different height domain levels, the minimum sampling radius r = d / 2 is adaptive.level ;

[0113] Based on the size of the bounding box of the point cloud data obtained in step S2, sort the points from small to large based on the distance from the point to the center of the bounding box;

[0114] The first point in the sorted grid object array is used as the sampling point. When the difference between the distance from the candidate point Pt to the center point center and the distance from any sampling point to the center point is greater than the specified sampling radius r, or the difference between the candidate point and all sampling points is greater than the sampling radius r, the candidate point is added to the sampling point array; otherwise, the candidate point is treated as a non-sampling point. Repeat the above steps for all candidate points.

[0115] Save the non-sampling point array as a point cloud of the level layer, output the sampled node data to generate a 3D model output, and record the number of points;

[0116] Update the sampling points to the point cloud of the next higher level, i.e., level-1 layer, and repeat the above steps to complete the layered thinning of all basic mesh objects.

[0117] Example 5

[0118] This embodiment is another preferred embodiment for data stratified sampling in embodiment 1:

[0119] First, based on the base mesh object, get the parent mesh object according to the height field layer.

[0120] Perform DBSCAN clustering on the point cloud within the same basic mesh object to generate initial triangular facets. At the same time, during the calculation process, calculate the normal vector distribution and curvature variance of the point cloud data in the basic mesh object for subsequent simplification priority determination.

[0121] Hierarchical Quadric Edge Collapse Simplification: The Quadric Edge Collapse algorithm is used to simplify the point cloud data within the grid, and the simplified point data is stored in the non-sampling point array. The formula for error matrix fusion is as follows:

[0122]

[0123] Where L is the current grid level, and λ is the level weight coefficient (e.g., λ = 0.1 when L = 27).

[0124] Save the non-sampling point array as a point cloud of the level layer, output the sampled node data to generate a 3D model output, and record the number of points;

[0125] Update the sampling points to the point cloud of the next higher level, i.e., level 1, and repeat the above steps to complete the layered thinning of all basic mesh objects.

[0126] Example 6

[0127] This embodiment is a preferred embodiment for constructing a multi-level index file:

[0128] The multi-level index file is stored in JSON format, and the content code structure is as follows:

[0129]

[0130]

[0131] The content attribute is the direction of the 3D model, boundingVolume is the bounding box size of the point cloud data (boundingVolume facilitates real-time layered rendering and fast positioning of point clouds), children is an array of all height domain block objects of the point cloud (children), and transform is the position affine transformation matrix of the entire point cloud data; properties are the current grid properties, including code (grid code obtained by height domain division) and size (number of point clouds in the grid).

[0132] Example 7

[0133] This embodiment is a preferred embodiment of the multi-level index file constructed by output in Example 1: a .bin file is used to store the geometric properties (such as XYZ coordinates) and physical properties (such as intensity values) of the point cloud in a continuous binary sequence, without a file header or metadata description, and only contains pure data; optionally, a three-dimensional model format such as gltf and glb can be used to save and output the point cloud three-dimensional model.

[0134] Example 8

[0135] This embodiment is a preferred embodiment of embodiment 1 for building high-availability, high-concurrency and data compression services: it is implemented using gzip compression technology, by performing gzip compression on the point cloud model file pointed to by the content in the multi-level index file using the above-mentioned block grid strategy, performing file segmentation, streaming processing and memory optimization, and adding file headers, tails and verification mechanisms to ensure data security.

[0136] Example 9

[0137] This embodiment is a preferred embodiment of embodiment 1 for real-time hierarchical scheduling rendering of point clouds:

[0138] Regarding tile priority scheduling: First, through the near-view priority strategy, tiles closer to the camera are loaded and rendered first because they have a greater impact on visual accuracy. For example, when the camera distance is less than 50 meters, centimeter-level detail tiles (L3 level) are loaded, and when the distance is greater than 500 meters, meter-level coarse tiles (L0 level) are switched to. The visibility weight is calculated by using the camera's frustum to calculate the mesh object visibility weight. The formula is as follows:

[0139]

[0140] Where d is the distance attenuation coefficient, usually 0.6-0.8, and the priority of the mesh object is determined according to the visibility weight to schedule rendering.

[0141] At the same time, for the rendering layer, dynamic adjustment is made based on the screen space error (SSE). First, the priority is dynamically adjusted based on the pixel error of the tile on the screen:

[0142] SSE = Screen Resolution × Mesh Geometry Size / Camera Distance

[0143] When SSE exceeds a threshold (such as 8 pixels), the tile level is automatically increased (such as from L1 to L2).

[0144] For time slicing and task slicing optimization, for Web programs, we use setTimeout or requestIdleCallBack in the browser host API to implement batch processing, ensuring a stable frame rate greater than or equal to 60FPS and smooth rendering, and combining Web Workers to enable multi-threading for multi-task scheduling.

[0145] Example 10

[0146] like Figure 6 As shown, an electronic device includes at least one processor and a memory communicatively connected to the at least one processor; the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform one of the aforementioned embodiments. The input and output interfaces may include a display, a keyboard, a mouse, and a USB interface for inputting and outputting data; and the power supply is used to provide power to the electronic device.

[0147] Those skilled in the art will understand that all or part of the steps of implementing the above-mentioned method embodiment can be completed by hardware related to program instructions, and the aforementioned program can be stored in a computer-readable storage medium. When the program is executed, it executes the steps of the above-mentioned method embodiment; and the aforementioned storage medium includes: mobile storage devices, read-only memories (ROM), magnetic disks or optical disks, and other media that can store program codes.

[0148] When the above-mentioned integrated unit of the present invention is implemented in the form of a software functional unit and sold or used as an independent product, it can also be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the embodiment of the present invention, or the part that contributes to the prior art, can be embodied in the form of a software product, which is stored in a storage medium and includes a number of instructions for enabling a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the methods described in each embodiment of the present invention. The aforementioned storage medium includes: various media that can store program codes, such as mobile storage devices, ROMs, magnetic disks, or optical disks.

[0149] The preferred embodiments of the present disclosure are described in detail above in conjunction with the accompanying drawings. However, the present disclosure is not limited to the specific details of the above embodiments. Within the technical concept of the present disclosure, various simple modifications can be made to the technical solutions of the present disclosure, and these simple modifications all fall within the scope of protection of the present disclosure.

[0150] It should also be noted that the various specific technical features described in the above specific embodiments can be combined in any appropriate manner without contradiction. In order to avoid unnecessary repetition, the present disclosure will not further describe various possible combinations.

[0151] In addition, the various embodiments of the present disclosure may be arbitrarily combined, and as long as they do not violate the concept of the present disclosure, they should also be regarded as the contents disclosed by the present disclosure.

Claims

1. A high-precision three-dimensional point cloud visualization method, characterized in that: The following steps are involved: S1: Input a point cloud file and obtain the point cloud file metadata, wherein the point cloud file metadata includes the coordinate range and number of point clouds; S2: performing scalable data geographic gridding processing on the point cloud file metadata to obtain a basic grid object; S3: Using a data layered sampling method, the top-level grid is reconstructed and data is thinned based on the basic grid object to obtain a multi-level grid object; S4: constructing a multi-level index file based on the multi-level grid, and outputting the multi-level index file; S5: Perform high availability, high concurrency and compression processing on the output multi-level index file; S6: Perform real-time layered scheduling rendering of the point cloud based on the processed multi-level index file.

2. A high-precision three-dimensional point cloud visualization method according to claim 1, characterized in that: Step S2 includes: building a geographic grid engine, which is used to perform gridding processing on the metadata of the point cloud file, including encoding and decoding of point cloud data and querying grid codes within a preset coordinate range.

3. A high-precision three-dimensional point cloud visualization method according to claim 2, characterized in that: The geographic grid engine supports plug-ins.

4. A high-precision three-dimensional point cloud visualization method according to claim 2, characterized in that: Step S2 also includes: obtaining the occupied geographic grid code array according to the recorded coordinate range, mapping the unit blocks in a linear coding manner, and counting the number of point clouds falling into each grid unit to obtain a basic grid object.

5. The high-precision three-dimensional point cloud visualization method according to claim 1, characterized in that: Step S3 includes the following steps: S31: First, according to the base mesh object, obtain the parent mesh object according to the height domain layering; S32: Obtain a non-sampling point array in the parent grid object according to the current grid object and the data layered sampling method, and save the non-sampling point array as a point cloud of the level layer; S33: Output the 3D model generated by the sampled node data, record the number of point clouds, update the sampling points to the point cloud of the next higher level, i.e., level 1, and repeat steps S31-S33 until all basic mesh objects are layered and thinned.

6. A high-precision three-dimensional point cloud visualization method according to claim 1, characterized in that: The multi-level index file in step S4 is organized according to the multi-level grid, and contains at least the point cloud file metadata and a JSON file of the tree structure of the block objects.

7. The high-precision three-dimensional point cloud visualization method according to claim 1, characterized in that: Step S5 includes: S51: Data segmentation and preprocessing: First, segment the multi-level index file into multiple blocks, compress each block independently, support streaming processing, and then write header information. Add a compression identification header to the beginning of the compressed file. At the same time, perform redundancy detection, scan byte by byte through a sliding window, identify the longest repeated string, and generate a data pointer. S52: Encoding conversion: First, dynamically build the encoding tree, count the character frequencies of the current data block, and generate the optimal encoding table. Then, perform data replacement, encode the original character set and data pointer according to the encoding rules, and generate a binary compression stream. S53: Compressed data encapsulation: First, an end flag is added to the end of each block of data to mark the end of the current block. Next, a data checksum is generated, and the position checksum of the original data is calculated and written to the end of the compressed file for subsequent decoding of the data. At the same time, the original file size is recorded, and a 4-byte field is added to store the length of the uncompressed data for decompression verification. S54: Streaming output and resource release: By refreshing the buffer, the real-time streaming data is written to the output stream, and at the same time, the sliding serial port and encoding resources are released to complete the writing of the tail of the file.

8. The high-precision three-dimensional point cloud visualization method according to claim 1, characterized in that: Step S6 includes: S61: Fast root-level spatial index positioning: Based on the root-level bounding box information in the multi-level index file, the spatial topology of the 3D scene is parsed, and the view focus is aligned with the root bounding box through the spatial coordinate transformation matrix to complete the initial scene positioning; S62: Dynamic View Analysis and Multi-resolution Scheduling: Builds a view frustum based on camera parameters to calculate mesh object visibility weights, uses a spatial index structure to quickly cull invisible areas, and dynamically selects the optimal level of detail mesh object based on screen space error and viewpoint distance, triggering asynchronous data loading requests. S63: Task Slicing and Scheduling: First, a task pool is created and the rendering task is split into independent subtask units and stored in a priority task pool. The main thread has a single-frame task execution limit of 50ms. Timed-out tasks are automatically suspended and thread control is released, inserted into the microtask queue and wait for the next frame to be scheduled. The renderer idle callback is used to coordinate processing with the Worker background thread. The task state machine is recorded for seamless recovery of interrupted tasks. S64: Multi-machine caching and preloading optimization: Maintains a memory cache pool for frequently accessed data, dynamically eliminating low-value data based on recent usage frequency; pre-loads next-level mesh object data and adjacent-level mesh object data, silently updates via background threads, and instantly switches between dual caches when the viewpoint changes. S65: GPU instanced rendering acceleration: Merge vertex, normal, and color data into a cross-frame persistent buffer; generate texture coordinate offsets based on instance ID and level index; batch generate instance parameters through compute shaders.

9. A computer-readable storage medium, characterized in that The computer-readable storage medium stores at least one instruction, and when the at least one instruction is executed by a processor, the high-precision three-dimensional point cloud visualization method according to any one of claims 1 to 8 is implemented.

10. An electronic device, characterized in that: The electronic device includes a processor and a memory, and the processor is used to execute a computer program stored in the memory to implement the high-precision three-dimensional point cloud visualization method according to any one of claims 1 to 8.

Citation Information

Patent Citations

  • Storage and real-time visualization implementation method of mass cloud data

    CN101615191B

  • Quadtree-based massive laser scanning point cloud real-time drawing method

    CN101908068B

Cited By

  • Mass point cloud real-time visualization method for uniform sampling

    CN120807809A

  • Two-dimensional and three-dimensional integrated rendering method and device for multi-type map services

    CN121280587A

  • Three-dimensional visualization analysis method for real scene of ancient earthquake exploring groove

    CN121392176A

  • Meteorological data visualization method and device, electronic equipment and storage medium

    CN121636635A

  • Rapid access and dynamic display method and system for super-large-scale three-dimensional data

    CN122066574A