Point cloud data processing method and device, equipment and medium

By streaming blocking and parallel processing of point cloud data collected by laser SLAM devices, voxelized grids and hierarchical bounding box trees are constructed, which solves the efficiency and memory limitation problems of laser SLAM devices when processing large-scale point cloud data, and realizes rapid identification and removal of dynamic objects and generates efficient three-dimensional scene images.

CN119596270AActive Publication Date: 2025-03-11REALSEE (BEIJING) TECHNOLOGY CO LTD

Patent Information

Application Number
CN202411640549.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-15
Publication Date
2025-03-11
Estimated Expiration
2044-11-15

AI Technical Summary

Technical Problem

When laser SLAM devices collect environmental point cloud data, they are disturbed by dynamic objects, and as the number of laser sensor lines increases, the amount of point cloud data increases rapidly, resulting in the challenge of quickly and robustly processing large-scale point cloud data.

Method used

By performing point cloud stream blocking processing on the input point cloud data, a distributed system adopts parallel processing method to construct voxelized grids and hierarchical enclosing box trees, determine the number of intersections between the light segment and the voxel grid, and determine whether it belongs to the voxel grid of a dynamic object based on the number of intersections and the number of points in the voxel grid.

Benefits of technology

It realizes fast and robust processing of large-scale point cloud data, reduces memory requirements, and improves the efficiency of dynamic object recognition, helping to quickly generate three-dimensional scene images of static environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119596270A_ABST
    Figure CN119596270A_ABST
Patent Text Reader

Abstract

The embodiment of the invention discloses a point cloud data processing method and device, equipment and a medium, and the method comprises the steps: carrying out the point cloud streaming partitioning of input point cloud data, and obtaining a plurality of point cloud blocks; based on the point cloud data, determining a plurality of light segments between the plurality of laser emission point positions and the plurality of point cloud positions; based on density information of scanning points in the point cloud data, constructing voxelization grids for each point cloud block to obtain a plurality of voxel grids; based on the hierarchical bounding box tree of each voxel grid, determining the number of times of intersection between the plurality of light segments and each voxel grid in the plurality of voxel grids; determining whether each voxel grid belongs to the voxel grid of the dynamic object or not based on the number of intersection times between the plurality of light segments and each voxel grid and the number of scanning points in each voxel grid; and outputting voxel grids which do not belong to the dynamic object. According to the embodiment of the invention, the requirement on the memory capacity of the data processing terminal is low, and voxel grids which do not belong to dynamic objects can be output.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to point cloud processing technology, and in particular to a method, device, equipment and medium for processing point cloud data. Background Art

[0002] Laser SLAM (Simultaneous Localization and Mapping) is an efficient method for acquiring three-dimensional point cloud data and is widely used in robotics, geographic information, surveying and measurement, and other fields.

[0003] Common laser SLAM devices include handheld SLAM, backpack SLAM, vehicle-mounted SLAM or drone SLAM. However, dynamic objects such as pedestrians or vehicles are common in the acquisition environment, which causes interference to the point cloud data collected from the environment. On the other hand, with the rapid advancement of laser sensors, such as 32-line, 64-line and even 128-line laser radars and some non-repetitive scanning laser radars, the amount of laser point cloud data has exploded.

[0004] Since there may be point clouds of dynamic objects in the point cloud data collected by the laser SLAM device, and as the number of lines of the laser SLAM device increases, the number of scanning points in the point cloud data collected per unit time increases significantly. Therefore, when generating the three-dimensional structure of the static environment based on the point cloud data collected by the laser SLAM device, how to quickly and robustly process large-scale point cloud data is faced with huge challenges. In the related method of removing dynamic object voxels in point cloud data, a voxel structure is constructed based on the point cloud data, and then a voxel-by-voxel judgment is performed to determine whether it belongs to a dynamic object. This method of removing dynamic object voxels requires loading all point cloud data, which is limited by memory and cannot be processed quickly. Summary of the invention

[0005] The embodiments of the present disclosure provide a method, device, equipment and medium for processing point cloud data to solve the above problems.

[0006] A first aspect of an embodiment of the present disclosure provides a method for processing point cloud data, comprising:

[0007] Perform point cloud streaming block processing on the input point cloud data to obtain multiple point cloud blocks;

[0008] Based on the point cloud data, determining a plurality of light segments between a plurality of laser emission point positions and a plurality of point cloud positions;

[0009] Using a distributed system and parallel processing, based on density information of scan points in the point cloud data, construct a voxel grid for each of the plurality of point cloud blocks to obtain a plurality of voxel grids and the number of scan points in each of the plurality of voxel grids;

[0010] Using the distributed system in a parallel processing manner, constructing a hierarchical bounding box tree for each voxel grid in the plurality of voxel grids, and determining the number of intersections between the plurality of light segments and each voxel grid in the plurality of voxel grids based on the hierarchical bounding box tree of each voxel grid;

[0011] Determining whether each voxel grid is a voxel grid of a dynamic object based on the number of intersections between the plurality of light segments and each voxel grid and the number of scan points in each voxel grid by using the distributed system in a parallel processing manner;

[0012] Outputs a voxel grid that is not part of a dynamic object.

[0013] In some embodiments of the present disclosure, the step of performing point cloud streaming block processing on the input point cloud data to obtain a plurality of point cloud blocks includes:

[0014] Based on the point cloud data, determining a bounding box of a scene corresponding to the point cloud data;

[0015] The bounding box of the scene is divided into blocks to obtain the multiple point cloud blocks.

[0016] In some embodiments of the present disclosure, constructing a voxel grid for each point cloud block in the plurality of point cloud blocks based on the density information of the scan points in the point cloud data, and obtaining a plurality of voxel grids and the number of scan points in each voxel grid in the plurality of voxel grids includes:

[0017] Constructing a sparse grid for the scene based on a preset point cloud resolution to obtain a plurality of sparse grids;

[0018] Determining an average point cloud density of the plurality of sparse grids based on the number of scan points in the point cloud data;

[0019] Performing mesh division on the plurality of sparse grids based on the average point cloud density to obtain the plurality of voxel grids;

[0020] Based on the positions of the multiple voxel grids and the multiple point cloud positions, the number of scanning points in each voxel grid is determined.

[0021] In some embodiments of the present disclosure, the gridding the plurality of sparse grids based on the average point cloud density to obtain the plurality of voxel grids includes:

[0022] The plurality of sparse grids are meshed based on the average point cloud density and a preset scale factor to obtain the plurality of voxel grids.

[0023] In some embodiments of the present disclosure, determining the number of scanning points in each voxel grid based on the positions of the multiple voxel grids and the multiple point cloud positions includes:

[0024] Obtaining a spatial coordinate value range of each voxel grid, and obtaining spatial coordinates of a plurality of points, wherein the plurality of point cloud positions include spatial coordinates of a plurality of points;

[0025] The number of scanning points in each voxel grid is determined based on the spatial coordinate value range of each voxel grid and the spatial coordinates of the multiple points.

[0026] In some embodiments of the present disclosure, between the step of determining a plurality of light segments between a plurality of laser emission point positions and a plurality of point cloud positions based on the point cloud data and the step of determining whether each voxel grid belongs to a voxel grid of a dynamic object based on the number of intersections between the plurality of light segments and each voxel grid and the number of scanning points in each voxel grid, the following further comprises:

[0027] Performing intersection detection between the plurality of point cloud blocks and the plurality of light segments, and determining at least one candidate light segment corresponding to each point cloud block from the plurality of light segments based on the intersection detection result;

[0028] Obtaining the number of intersections between at least one candidate ray segment corresponding to each point cloud block and each voxel grid of the corresponding point cloud block;

[0029] Based on the number of intersections between at least one candidate light segment corresponding to each point cloud block and each voxel grid of the corresponding point cloud block, and the number of scanning points in each voxel grid of the corresponding point cloud block, the number of intersections between the multiple light segments and each voxel grid of the corresponding point cloud block is determined.

[0030] In some embodiments of the present disclosure, determining whether each voxel grid belongs to a voxel grid of a dynamic object based on the number of intersections between the plurality of light segments and each voxel grid and the number of scanning points in each voxel grid includes:

[0031] Acquire a voxel grid from the voxel grids;

[0032] In response to a ratio between the number of intersections between the plurality of light segments and the currently acquired voxel grid and the number of scan points in the currently acquired voxel grid being greater than a preset threshold, determining that the currently acquired voxel grid belongs to a voxel grid of a dynamic object;

[0033] In response to a ratio between the number of intersections between the multiple light segments and the currently acquired voxel grid and the number of scanning points in the currently acquired voxel grid being less than or equal to the preset threshold, it is determined that the currently acquired voxel grid does not belong to the voxel grid of a dynamic object.

[0034] A second aspect of the embodiments of the present disclosure provides a point cloud data processing device, comprising:

[0035] The streaming point cloud block module is used to perform point cloud streaming block processing on the input point cloud data to obtain multiple point cloud blocks;

[0036] A light segment determination module, used to determine a plurality of light segments between a plurality of laser emission point positions and a plurality of point cloud positions based on the point cloud data;

[0037] a voxelized grid construction module, configured to construct a voxelized grid for each of the plurality of point cloud blocks based on density information of scan points in the point cloud data by using a distributed system in a parallel processing manner, and obtain a plurality of voxel grids and the number of scan points in each of the plurality of voxel grids;

[0038] an intersection number determination module, configured to construct a hierarchical bounding box tree for each voxel grid in the plurality of voxel grids by using the distributed system in a parallel processing manner, and determine the number of intersections between the plurality of light segments and each voxel grid in the plurality of voxel grids based on the hierarchical bounding box tree of each voxel grid;

[0039] a voxel type determination module, configured to determine whether each voxel grid is a voxel grid of a dynamic object based on the number of intersections between the plurality of light segments and each voxel grid and the number of scanning points in each voxel grid by using the distributed system in a parallel processing manner;

[0040] Output module, used to output voxel grids that are not part of dynamic objects.

[0041] In some embodiments of the present disclosure, the streaming point cloud blocking module is used to determine the bounding box of the scene corresponding to the point cloud data based on the point cloud data; the streaming point cloud blocking module is also used to block the bounding box of the scene to obtain the multiple point cloud blocks.

[0042] In some embodiments of the present disclosure, the voxelized grid construction module is used to construct a sparse grid for the scene based on a preset point cloud resolution to obtain multiple sparse grids; the voxelized grid construction module is also used to determine the average point cloud density of the multiple sparse grids based on the number of scanning points in the point cloud data; the voxelized grid construction module is also used to grid the multiple sparse grids based on the average point cloud density to obtain the multiple voxel grids; the voxelized grid construction module is also used to determine the number of scanning points in each voxel grid based on the positions of the multiple voxel grids and the multiple point cloud positions by utilizing the distributed system in a parallel processing manner.

[0043] In some embodiments of the present disclosure, the voxelized grid construction module is used to perform grid division on the multiple sparse grids based on the average point cloud density and a preset scale factor to obtain the multiple voxel grids.

[0044] In some embodiments of the present disclosure, the voxelized grid construction module is used to utilize the distributed system to adopt a parallel processing method to obtain the spatial coordinate value range of each voxel grid and the spatial coordinates of multiple points, wherein the multiple point cloud positions include the spatial coordinates of multiple points; the voxelized grid construction module is also used to utilize the distributed system to adopt a parallel processing method to determine the number of scanning points in each voxel grid based on the spatial coordinate value range of each voxel grid and the spatial coordinates of the multiple points.

[0045] In some embodiments of the present disclosure, the intersection number determination module is used to use the distributed system to adopt a parallel processing method to perform intersection detection between the multiple point cloud blocks and the multiple light segments, and determine at least one candidate light segment corresponding to each point cloud block from the multiple light segments based on the intersection detection result; the intersection number determination module is also used to use the distributed system to adopt a parallel processing method to obtain the number of intersections between at least one candidate light segment corresponding to each point cloud block and each voxel grid of the corresponding point cloud block; the intersection number determination module is also used to use the distributed system to adopt a parallel processing method to determine the number of intersections between the multiple light segments and each voxel grid of the corresponding point cloud block based on the number of intersections between at least one candidate light segment corresponding to each point cloud block and each voxel grid of the corresponding point cloud block, and the number of scanning points in each voxel grid of the corresponding point cloud block.

[0046] In some embodiments of the present disclosure, the voxel type determination module is used to obtain a voxel grid from the voxel grids by using the distributed system in a parallel processing manner; the voxel type determination module is also used to determine that the currently acquired voxel grid belongs to a voxel grid of a dynamic object in response to the ratio of the number of intersections between the multiple light segments and the currently acquired voxel grid to the number of scanning points in the currently acquired voxel grid being greater than a preset threshold; the voxel type determination module is also used to determine that the currently acquired voxel grid does not belong to a voxel grid of a dynamic object in response to the ratio of the number of intersections between the multiple light segments and the currently acquired voxel grid to the number of scanning points in the currently acquired voxel grid being less than or equal to the preset threshold.

[0047] According to a third aspect of the present disclosure, an electronic device is provided, including:

[0048] A memory for storing a computer program product;

[0049] The processor is used to execute the computer program product stored in the memory, and when the computer program product is executed, the above-mentioned point cloud data processing method is implemented.

[0050] According to a fourth aspect of the embodiments of the present disclosure, a computer-readable storage medium is provided, on which computer program instructions are stored. When the computer program instructions are executed by a processor, the above-mentioned point cloud data processing method is implemented.

[0051] According to a fifth aspect of the embodiments of the present disclosure, a computer program product is provided, comprising computer program instructions, which, when executed by a processor, enable the processor to execute the above-mentioned method for processing point cloud data.

[0052] The point cloud data processing method, device, equipment and medium of the disclosed embodiments use a laser SLAM device to acquire point cloud data of the surrounding environment. If the data processing terminal loads all the point cloud data and then determines whether it belongs to a dynamic object voxel by voxel, not only does it place extremely high demands on the memory capacity of the data processing terminal, but the efficiency of determining whether the voxel belongs to a dynamic object is also low. Therefore, the input point cloud data is subjected to point cloud streaming block processing to obtain multiple point cloud blocks, and a distributed system is used to adopt a parallel processing method to generate a hierarchical bounding box tree for each voxel grid according to the multiple point cloud blocks, and multiple light segments between multiple laser emission point positions and multiple point cloud positions are obtained. Furthermore, according to the number of intersections between the multiple light segments and each voxel grid, as well as the number of points in each voxel grid, it is possible to quickly and accurately determine whether each voxel grid belongs to a dynamic object, and only output voxel grids that do not belong to dynamic objects, which helps to quickly generate a three-dimensional scene image of the surrounding static environment. The disclosed embodiment performs streaming segmentation on the point cloud data input in real time, streaming construction of a hierarchical bounding box tree for each voxel grid, and streaming determination of whether each voxel grid belongs to a voxel grid of a dynamic object. This not only has low requirements on the memory capacity of the data processing terminal, but can also quickly determine which voxels in the point cloud data input in real time belong to dynamic objects.

[0053] The technical solution of the present disclosure is further described in detail below through the accompanying drawings and embodiments. BRIEF DESCRIPTION OF THE DRAWINGS

[0054] The accompanying drawings, which constitute a part of the specification, illustrate embodiments of the present disclosure and, together with the description, serve to explain the principles of the present disclosure.

[0055] The present disclosure may be more clearly understood from the following detailed description with reference to the accompanying drawings, in which:

[0056] Figure 1 A schematic diagram of a process of processing point cloud data in one embodiment of the present disclosure;

[0057] Figure 2 is a flowchart of step S1 in some embodiments of the present disclosure;

[0058] Figure 3 is a flowchart of step S3 in some embodiments of the present disclosure;

[0059] Figure 4 is a flowchart of step S3-4 in some embodiments of the present disclosure;

[0060] Figure 5 is a schematic diagram of generating corresponding candidate light segments according to multiple point cloud blocks in an example of the present disclosure;

[0061] Figure 6is a flowchart of step S5 in some embodiments of the present disclosure;

[0062] Figure 7 It is a structural block diagram of a device for processing point cloud data in one embodiment of the present disclosure;

[0063] Figure 8 The structure block diagram of an electronic device in one embodiment of the present disclosure is shown in FIG. DETAILED DESCRIPTION

[0064] Various exemplary embodiments of the present disclosure will now be described in detail with reference to the accompanying drawings. It should be noted that the relative arrangement of components and steps, numerical expressions and numerical values ​​set forth in these embodiments do not limit the scope of the present disclosure unless otherwise specifically stated.

[0065] Those skilled in the art can understand that the terms "first" and "second" in the embodiments of the present disclosure are only used to distinguish different steps, devices or modules, etc., and neither represent any specific technical meaning nor indicate the necessary logical order between them.

[0066] It should also be understood that in the embodiments of the present disclosure, “plurality” may refer to two or more than two, and “at least one” may refer to one, two, or more than two.

[0067] It should also be understood that any component, data or structure mentioned in the embodiments of the present disclosure can generally be understood as one or more, unless explicitly limited or otherwise indicated in the context.

[0068] In addition, the term "and / or" in the present disclosure is only a description of the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: A exists alone, A and B exist at the same time, and B exists alone. In addition, the character " / " in the present disclosure generally indicates that the associated objects before and after are in an "or" relationship.

[0069] It should also be understood that the description of the various embodiments in the present disclosure focuses on the differences between the various embodiments, and the same or similar aspects thereof can be referenced to each other, and for the sake of brevity, they will not be described one by one.

[0070] The following description of at least one exemplary embodiment is merely illustrative in nature and is in no way intended to limit the present disclosure, its application, or uses.

[0071] Technologies, methods, and equipment known to ordinary technicians in the relevant art may not be discussed in detail, but where appropriate, the technologies, methods, and equipment should be considered as part of the specification.

[0072] It should be noted that like reference numerals and letters refer to similar items in the following figures, and therefore, once an item is defined in one figure, it need not be further discussed in subsequent figures.

[0073] The embodiments of the present disclosure can be applied to electronic devices such as terminal devices, computer systems, servers, etc., which can operate with many other general or special computing system environments or configurations. Examples of well-known terminal devices, computing systems, environments and / or configurations suitable for use with electronic devices such as terminal devices, computer systems, servers, etc. include, but are not limited to: personal computer systems, server computer systems, thin clients, thick clients, handheld or laptop devices, microprocessor-based systems, set-top boxes, programmable consumer electronics, network personal computers, small computer systems, large computer systems, and distributed cloud computing technology environments including any of the above systems, etc.

[0074] Electronic devices such as terminal devices, computer systems, servers, etc. can be described in the general context of computer system executable instructions (such as program modules) executed by computer systems. Generally, program modules can include routines, programs, object programs, components, logic, data structures, etc., which perform specific tasks or implement specific abstract data types. Computer systems / servers can be implemented in a distributed cloud computing environment, where tasks are performed by remote processing devices linked through a communication network. In a distributed cloud computing environment, program modules can be located on local or remote computing system storage media including storage devices.

[0075] It should be noted that in the point cloud data processing method and device in the embodiments of the present disclosure, the point cloud data can be processed by using a distributed system in a parallel processing manner. The following embodiments clearly state that the steps of processing by using a distributed system in a parallel processing manner can greatly improve the data processing efficiency, and the remaining steps can also be processed by using a distributed system in a parallel processing manner to improve the data processing efficiency.

[0076] Figure 1 FIG. 1 is a flow chart of a method for processing point cloud data in one embodiment of the present disclosure. Figure 1 As shown, the method for streaming point cloud data includes the following steps:

[0077] S1: Perform point cloud streaming block processing on the input point cloud data to obtain multiple point cloud blocks. The point cloud streaming block processing is to stream read the point cloud data for block, and can stream read the position information of the scanning points in the point cloud data and write it into the corresponding point cloud blocks.

[0078] Use laser SLAM equipment to scan the surrounding environment in real time, so as to obtain point cloud data of the surrounding environment in real time.

[0079] For the point cloud data currently input to the laser SLAM device, the point cloud in the point cloud data is stream-blocked by a preset point cloud block method to obtain multiple point cloud blocks, and the value range of each coordinate of each point cloud block in a preset three-dimensional coordinate system (such as the coordinate system of the laser SLAM device) can be obtained. Among them, the preset point cloud block method is pre-set and can be related to the effective point cloud acquisition range and point cloud positioning accuracy of the laser SLAM device.

[0080] In addition, the position information of the scan points in the point cloud data can be streamed in and written into the corresponding point cloud block according to the position information of the scan points.

[0081] S2: Based on the point cloud data, determine a plurality of light segments between a plurality of laser emission point positions and a plurality of point cloud positions.

[0082] The point cloud data currently input to the laser SLAM device includes multiple laser emission point positions and multiple point cloud positions obtained by laser scanning. Each laser emission point position and each point cloud position can be represented by three-dimensional coordinates. For example, each laser emission point position and each point cloud position can be represented by the corresponding three-dimensional coordinate value in the laser SLAM device coordinate system.

[0083] According to the correspondence between multiple laser emission point positions and multiple point cloud positions, as well as the three-dimensional coordinates of each laser emission point position and the three-dimensional coordinates of each point cloud position, multiple light segments generated by laser scanning between the multiple laser emission point positions and the multiple point cloud positions, and expressions of the multiple light segments can be obtained, and then the three-dimensional coordinates of each point on the multiple light segments can be obtained.

[0084] S3: Using a distributed system and parallel processing, based on the density information of the scanning points in the point cloud data, a voxel grid is constructed for each point cloud block in the multiple point cloud blocks to obtain multiple voxel grids and the number of points included in each voxel grid in the multiple voxel grids.

[0085] By using a distributed system and parallel processing, for each point cloud block in the multiple point cloud blocks, a preset voxel grid construction method is used, and according to the density information of the scanning points in the point cloud data, a voxel grid of each point cloud block is constructed by streaming processing, thereby obtaining multiple voxel grids. The voxel grid of each point cloud block is constructed by streaming processing, and the point cloud data of each point cloud block can be read in a streaming manner, and each point cloud block is divided into multiple voxel grids of the same shape by the same division method, and the adjacent faces of adjacent voxel grids are tangent. Each voxel grid can be a cube or a cuboid.

[0086] By using a distributed system and parallel processing, after obtaining multiple voxel grids, the value range of each coordinate of each voxel grid can be determined according to the value range of each coordinate of each point cloud block in a preset three-dimensional coordinate system and the position of each voxel grid in each point cloud block.

[0087] In an example of the present disclosure, the input point cloud data is subjected to point cloud streaming block processing to obtain a plurality of point cloud blocks including point cloud block A, and point cloud block A is equally divided into O segments in the x-coordinate axis direction, equally divided into P segments in the y-coordinate axis direction, and equally divided into Q segments in the z-coordinate axis direction. Wherein, O, P, and Q are all integers greater than 1.

[0088] The x-coordinate value range of point cloud block A is [x m ,x n ], the range of y coordinate value is [y m ,y n ], the z coordinate range is [z m ,z n ], where (x m ,y m ,z m ) is the three-dimensional coordinate of a vertex of point cloud block A, (x n ,y n ,z n ) is the distance from vertex (x n ,y n ,z n ) is the 3D coordinate of the other vertex that is farthest away.

[0089] Point cloud block A's point cloud block (O i ,P i ,Q i )’s x-coordinate value range is [x m* (O i -1) / O,x m* O i / O], the y coordinate value range is [y m* (P i -1) / P,y m* P i / P], the z coordinate value range is [z m* (Q i -1) / Q,z m* Q i / Q], where 1≤O i ≤O,1≤P i ≤P,1≤Q i ≤Q.

[0090] By using a distributed system and parallel processing, the voxel grid to which each point in the point cloud data belongs can be obtained based on the value range of each coordinate of each voxel grid and the three-dimensional coordinates of each point in the point cloud data. The number of points included in each voxel grid can be obtained by counting the number of points included in each voxel grid.

[0091] S4: Using a distributed system and parallel processing, a hierarchical bounding box tree is constructed for each voxel grid in the plurality of voxel grids, and based on the hierarchical bounding box tree of each voxel grid, a number of intersections between the plurality of light segments and each voxel grid in the plurality of voxel grids is determined.

[0092] A distributed system is used to adopt parallel processing to construct a bounding volume hierarchy (BVH) tree for each voxel grid in multiple voxel grids. BVH uses an axis-aligned bounding box (AABB) as the basis for space division. Since a voxel grid can be regarded as an AABB, this embodiment uses the voxel grid as the basis for space division.

[0093] A distributed system is used to adopt parallel processing to select a voxel grid from multiple voxel grids, and the BVH tree of the voxel grid is used to detect whether each light segment in multiple light segments intersects with the voxel grid. The detection method is the same as the detection of whether light intersects with AABB well known to technicians in this field, and will not be elaborated on.

[0094] S5: Using a distributed system and parallel processing, based on the number of intersections between the plurality of light segments and each voxel grid and the number of points in each voxel grid, determine whether each voxel grid belongs to a voxel grid of a dynamic object.

[0095] Since the number of light rays passing through the voxels of dynamic objects is much greater than the number of points in the voxels, a distributed system is used to adopt parallel processing. For each voxel grid, the number of intersections voxel_hit_count between multiple light segments and the voxel grid is obtained, and the number of points in the voxel grid pt_count_in_voxel is obtained. Then, based on the numerical relationship between voxel_hit_count and pt_count_in_voxel, it is possible to quickly determine whether the voxel grid belongs to a dynamic object.

[0096] S6: Output voxel grids that are not part of dynamic objects.

[0097] Only voxel grids that do not belong to dynamic objects are output, while voxel grids that belong to dynamic objects are not output, thereby achieving streaming removal of voxels of dynamic objects, which helps to quickly and accurately generate the static 3D structure of the scene.

[0098] In this embodiment, after using a laser SLAM device to obtain point cloud data of the surrounding environment, if the data processing terminal loads all the point cloud data and then determines whether it belongs to a dynamic object voxel by voxel, not only will the memory capacity of the data processing terminal be extremely high, but the efficiency of determining whether the voxel belongs to a dynamic object is low. Therefore, the input point cloud data is processed in a point cloud streaming manner to obtain multiple point cloud blocks, and a distributed system is used to adopt a parallel processing method to generate a hierarchical bounding box tree for each voxel grid according to the multiple point cloud blocks, and obtain multiple light segments between multiple laser emission point positions and multiple point cloud positions. Furthermore, based on the number of intersections between the multiple light segments and each voxel grid, as well as the number of points in each voxel grid, it is possible to quickly and accurately determine whether each voxel grid belongs to a dynamic object, and only output voxel grids that do not belong to dynamic objects, which helps to quickly generate a three-dimensional scene image of the surrounding static environment. The disclosed embodiment performs streaming segmentation on the point cloud data input in real time, streaming construction of a hierarchical bounding box tree for each voxel grid, and streaming determination of whether each voxel grid belongs to a voxel grid of a dynamic object. This not only has low requirements on the memory capacity of the data processing terminal, but can also quickly determine which voxels in the point cloud data input in real time belong to dynamic objects.

[0099] Figure 2 is a flow chart of step S1 in some embodiments of the present disclosure. Figure 2 As shown, step S1 includes the following steps:

[0100] S1-1: Based on the point cloud data, determine the bounding box of the scene corresponding to the point cloud data.

[0101] According to the position of each point in the point cloud data, the AABB generation method can be used to generate the AABB of the scene corresponding to the point cloud data.

[0102] S1-2: Divide the bounding box of the scene into blocks to obtain multiple point cloud blocks.

[0103] The AABB of the scene is divided according to a preset block size to obtain multiple point cloud blocks in the scene.

[0104] In some examples of the present disclosure, the point cloud data corresponds to a scene of 100 meters * 100 meters * 30 meters, and the preset block size is 16 meters * 16 meters * 16 meters. Then the scene can be divided into Point cloud blocks. Among them, Indicates rounding up. The position of each point in the point cloud data is read in streaming mode, and the point cloud block to which each point belongs is determined based on the 3D coordinates of each point and the value range of each point cloud block on the three coordinate axes, and then written in streaming mode to the point cloud file corresponding to the point cloud block to which it belongs.

[0105] In this embodiment, after generating a bounding box corresponding to the scene for the real-time input point cloud data, the bounding box is streamed into multiple point cloud blocks. The streaming processing method can reduce the memory capacity requirements of the laser SLAM device, help improve the efficiency of judging whether each voxel grid in multiple point cloud blocks belongs to a dynamic object, and thus help to quickly and accurately generate the static three-dimensional structure of the scene.

[0106] Figure 3 FIG. 1 is a flow chart of step S3 in some embodiments of the present disclosure. Figure 3 As shown, step S3 includes the following steps:

[0107] S3-1: Construct a sparse grid for the scene based on a preset point cloud resolution to obtain multiple sparse grids.

[0108] The lower limit of the point cloud resolution can be set according to the laser ranging accuracy of the laser SLAM device, and an appropriate point cloud resolution can be set based on the lower limit of the point cloud resolution. Then, multiple sparse grids can be constructed for the corresponding scenes of the real-time input point cloud data according to the set point cloud resolution.

[0109] In one example of the present disclosure, if the laser ranging accuracy of the laser SLAM device is C1*C2*C3 (cm 3 ). Where C1, C2 and C3 are all integers greater than 1, the lower limit of the point cloud resolution can be C1*C2*C3 (cm 3 ).

[0110] S3-2: Determine an average point cloud density of multiple sparse grids based on the number of points in the point cloud data.

[0111] Each point of the point cloud can be regarded as a discrete sampling point in space. In order to calculate the number of times a ray intersects a certain point, voxel sampling of the point cloud data is required. If the voxel grid is too large, although less memory is occupied when processing the point cloud data, the accuracy of determining the number of times a ray intersects a certain point is low; if the voxel grid is too small, although the accuracy of determining the number of times a ray intersects a certain point is high, more memory is occupied when processing the point cloud data. In this embodiment, the voxel grid size is determined according to the point cloud density, which can balance the memory usage when processing the point cloud data and the accuracy of determining the number of times a ray intersects a certain point.

[0112] In one example of the present disclosure, the point cloud may be formed at a resolution greater than the actual point cloud resolution, for example, 1*1*1 (m 3 ) resolution to build a sparse grid, and by counting the average number of points in 1 cubic meter, the average point cloud density of multiple sparse grids can be estimated.

[0113] S3-3: Using a distributed system and parallel processing, multiple grids are meshed based on the average point cloud density to obtain multiple voxel grids.

[0114] Meshing multiple sparse grids according to the average point cloud density to obtain multiple voxel grids can balance the memory usage when processing point cloud data and the accuracy of determining the number of times a ray intersects a point.

[0115] In addition, by using a distributed system and parallel processing, a unique identifier can be set for each voxel grid in each point cloud block according to the value range of each point cloud block on the three coordinate axes and the spatial size of the voxel grid. For example, a unique identifier can be set for each voxel grid in a point cloud block by the following formula (1):

[0116] id=x+dimx*y+z*(dimx*dimy) formula (1)

[0117] Among them, id represents the unique identifier of the voxel grid, (dimx, dimy, dimz) is the value range on the x-axis, y-axis and z-axis, and (x, y, z) is the coordinate of the voxel grid.

[0118] Using the distributed system and parallel processing, for the currently acquired point cloud block, read a scan point in the point cloud block and perform the following calculations:

[0119] Calculate its voxel coordinates, for example, the x coordinate can be calculated by the following formula (2):

[0120] x=(point.x-box.min.x) / voxel_size Formula (2)

[0121] Among them, point.x is the x coordinate of the scan point in the voxel grid coordinates, box.min.x represents the minimum coordinate value of the bounding box on the x coordinate axis, and voxel_size represents the size of the voxel grid.

[0122] The y and z coordinates of the voxel grid are calculated in a similar way to the x coordinate of the voxel grid. Just replace x with y or z in the formula.

[0123] S3-4: Using a distributed system and parallel processing, based on the positions of multiple voxel grids and the positions of multiple point clouds, determine the number of points included in each voxel grid.

[0124] By utilizing a distributed system and adopting a parallel processing approach, the value range of each sparse grid on the three coordinate axes can be determined based on the value range of each point cloud block on the three coordinate axes, and the value range of each voxel grid on the three coordinate axes can be determined based on the value range of each sparse grid on the three coordinate axes. Furthermore, based on the value range of each voxel grid on the three coordinate axes and the three-dimensional coordinate value of each point, the voxel grid to which each point belongs can be determined, thereby determining the number of points included in each voxel grid.

[0125] In this embodiment, each point of the point cloud can be regarded as a discrete sampling point in space. In order to calculate the number of intersections between a ray and a certain point, voxel sampling of the point cloud data is required. If the voxel grid is too large, although less memory is occupied when processing the point cloud data, the accuracy of determining the number of intersections between a ray and a certain point is low; if the voxel grid is too small, although the accuracy of determining the number of intersections between a ray and a certain point is high, more memory is occupied when processing the point cloud data. Therefore, multiple sparse grids are divided into multiple voxel grids according to the average point cloud density, which can balance the memory usage when processing the point cloud data and the accuracy of determining the number of intersections between a ray and a certain point. By counting the number of points included in each voxel grid, it is helpful to quickly determine the number of intersections between the ray segment and each voxel grid, and then help to quickly determine whether each voxel grid belongs to the voxel grid of a dynamic object, thereby helping to improve the rapid and accurate generation of the static three-dimensional structure of the scene.

[0126] In some embodiments of the present disclosure, step S3-3 specifically includes: meshing the multiple sparse grids based on the average point cloud density and a preset scale factor to obtain a plurality of voxel grids.

[0127] Since the average point cloud density of multiple sparse grids can represent the average number of points included in each sparse grid, the average space occupied by each point cloud can be determined based on the average point cloud density, and then the scale factor for enlarging the space occupied by each point cloud can be determined.

[0128] Each sparse grid can be divided by the following formula (3):

[0129] voxel_size=point_size*scale formula (3)

[0130] voxel_size indicates the spatial size of the voxel grid, point_size indicates the spatial size of each point cloud, and scale indicates the scale factor. If scale is too large, the voxel will be too large, which may cause mosaic effect (jaggies) when detecting whether the voxel belongs to a dynamic object, or even delete too many point clouds, thereby reducing the detection accuracy. For example, 1 <scale<10。

[0131] In this embodiment, since the average point cloud density can determine the average space size occupied by each point cloud, multiple sparse grids are divided into grids according to the average point cloud density and the scale factor to obtain multiple voxel grids of reasonable space size.

[0132] Figure 4 is a flow chart of step S3-4 in some embodiments of the present disclosure. Figure 4 As shown, step S3-4 includes the following steps:

[0133] S3-4-1: Using a distributed system and parallel processing, obtain the spatial coordinate value range of each voxel grid and the spatial coordinates of multiple points. The multiple point cloud positions include the spatial coordinates of multiple points.

[0134] By utilizing a distributed system and adopting a parallel processing approach, the value range of each voxel grid on the x-axis, the value range on the y-axis, and the value range on the z-axis can be determined according to the position of each voxel grid in each point cloud block and the spatial coordinate value orientation of each point cloud block.

[0135] S3-4-2: Using a distributed system and parallel processing, based on the spatial coordinate range of each voxel grid and the spatial coordinates of multiple points, determine the number of points included in each voxel grid.

[0136] By utilizing a distributed system and parallel processing, the voxel grid to which each point belongs can be quickly determined based on the value range of each voxel grid on the x-axis, the value range on the y-axis, the value range on the z-axis, and the coordinate value of each point. This can then lead to the counting of the number of points in each voxel grid including the input point cloud data.

[0137] In this embodiment, based on the range of spatial coordinate values ​​of each voxel grid and the spatial coordinates of multiple points, the number of points included in each voxel grid can be quickly and accurately determined, which helps to quickly and accurately determine the number of intersections between multiple light segments and each voxel grid, and further helps to quickly and accurately determine whether each voxel grid belongs to a voxel grid of a dynamic object, thereby helping to quickly generate a three-dimensional scene image of the surrounding static environment.

[0138] In some embodiments of the present disclosure, between steps S2 and S5, the following steps may also be included: using a distributed system to adopt a parallel processing method to perform intersection detection between multiple point cloud blocks and multiple light segments, and determining at least one candidate light segment corresponding to each point cloud block from the multiple light segments based on the intersection detection result; using a distributed system to adopt a parallel processing method to obtain the number of intersections between at least one candidate light segment corresponding to each point cloud block and each voxel grid of the corresponding point cloud block; using a distributed system to adopt a parallel processing method to determine the number of intersections between multiple light segments and each voxel grid of the corresponding point cloud block based on the number of intersections between at least one candidate light segment corresponding to each point cloud block and each voxel grid of the corresponding point cloud block and the number of points in each voxel grid of the corresponding point cloud block.

[0139] The light segment between the laser emission point position and the laser point position is sparse relative to the entire space. The amount of calculation for the light segment is equivalent to the amount of point cloud data (each point has an emission position, forming a light ray). The length of the light segment depends on the point cloud detection distance and the distribution of space objects.

[0140] Generally speaking, the distribution of point clouds can be regarded as a sparse sampling on spatial objects, so these light segments themselves are sparse. For each voxel grid, the light segments that need to be tested for the number of intersections with each voxel grid include: 1. Light segments corresponding to all points in the current voxel grid; 2. Light segments whose point clouds are not in the current voxel grid but whose light passes through the current voxel grid. For the first type of light segment, since it must intersect with the current voxel grid, no additional calculation is required, and the number of intersections is determined directly based on the number of points included in the current voxel grid. For the second type of light segment, the light segment and AABB intersection algorithm can be used to quickly determine whether each light segment intersects with the point cloud block to which the current voxel grid belongs, thereby determining the above-mentioned at least one candidate light segment and the number of intersections between the at least one candidate light segment and each voxel grid.

[0141] Figure 5 FIG. 1 is a schematic diagram of generating corresponding candidate light segments according to multiple point cloud blocks in an example of the present disclosure. Figure 5 As shown, the distributed system adopts parallel processing to build corresponding bounding boxes for different point cloud blocks, and obtains the light segments corresponding to all scanning points in each point cloud block. The distributed system adopts parallel processing to perform intersection tests on all light segments corresponding to the point cloud data in each point cloud block and the bounding boxes corresponding to other point cloud blocks, and the candidate light segments corresponding to each point cloud block can be obtained according to the intersection test results.

[0142] The number of intersections determined by the first type of ray segments and the second type of ray segments are summed up to obtain the number of intersections between all ray segments and the current voxel grid.

[0143] In this embodiment, by performing intersection detection between multiple point cloud blocks and multiple light segments, at least one candidate light segment that intersects with each point cloud block can be quickly determined, and based on the number of intersections between at least one candidate light segment and the corresponding voxel grid, and the number of points in the corresponding voxel grid, the number of intersections between the multiple light segments and the corresponding voxel grid can be quickly and accurately determined.

[0144] Figure 6 FIG. 5 is a flow chart of step S5 in some embodiments of the present disclosure. Figure 6 As shown, step S5 includes the following steps:

[0145] S5-1: Using a distributed system and parallel processing, a voxel grid is obtained from each voxel grid.

[0146] S5-2: In response to a ratio between the number of intersections between the plurality of light segments and the currently acquired voxel grid and the number of points in the currently acquired voxel grid being greater than a preset threshold, determining that the currently acquired voxel grid belongs to a voxel grid of a dynamic object.

[0147] S5-3: In response to a ratio between the number of intersections between the plurality of light segments and the currently acquired voxel grid and the number of points in the currently acquired voxel grid being less than or equal to a preset threshold, determining that the currently acquired voxel grid does not belong to a voxel grid of a dynamic object.

[0148] For each voxel grid, it can be calculated by the following formula (4):

[0149] factor=voxel_hit_count / pt_count_in_voxel formula (4)

[0150] Among them, factor represents the ratio between the number of intersections between multiple light segments and the currently acquired voxel grid and the number of points in the currently acquired voxel grid, voxel_hit_count represents the number of intersections between the voxel grid and the light, and pt_count_in_voxel represents the number of points in the voxel grid.

[0151] When the factor is greater than a preset threshold, it is determined that the currently acquired voxel grid belongs to the voxel grid of the dynamic object; otherwise, it is determined that the currently acquired voxel grid does not belong to the voxel grid of the dynamic object.

[0152] Figure 7 FIG. 1 is a structural block diagram of a point cloud data processing device in one embodiment of the present disclosure. Figure 7 As shown, the device for streaming point cloud data includes:

[0153] The streaming point cloud block module 100 is used to perform point cloud streaming block processing on the input point cloud data to obtain multiple point cloud blocks;

[0154] A light segment determination module 200, for determining a plurality of light segments between a plurality of laser emission point positions and a plurality of point cloud positions based on the point cloud data;

[0155] The voxelized grid construction module 300 is used to construct a voxelized grid for each point cloud block in the plurality of point cloud blocks based on the density information of the scan points in the point cloud data by using a distributed system in a parallel processing manner, and obtain a plurality of voxel grids and the number of scan points in each voxel grid in the plurality of voxel grids;

[0156] The intersection number determination module 400 is used to construct a hierarchical bounding box tree for each voxel grid in the plurality of voxel grids by using a distributed system in a parallel processing manner, and determine the number of intersections between the plurality of light segments and each voxel grid in the plurality of voxel grids based on the hierarchical bounding box tree of each voxel grid;

[0157] A voxel type determination module 500 is used to determine whether each voxel grid is a voxel grid of a dynamic object based on the number of intersections between multiple light segments and each voxel grid and the number of scanning points in each voxel grid by using a distributed system and adopting a parallel processing method;

[0158] The output module 600 is used to output the voxel grid that does not belong to the dynamic object.

[0159] In some embodiments of the present disclosure, the streaming point cloud blocking module 100 is used to determine the bounding box of the scene corresponding to the point cloud data based on the point cloud data; the streaming point cloud blocking module 100 is also used to block the bounding box of the scene to obtain multiple point cloud blocks.

[0160] In some embodiments of the present disclosure, the voxelized grid construction module 300 is used to construct a sparse grid for a scene based on a preset point cloud resolution to obtain multiple sparse grids; the voxelized grid construction module 300 is also used to determine the average point cloud density of the multiple sparse grids based on the number of scanning points in the point cloud data; the voxelized grid construction module 300 is also used to grid the multiple sparse grids based on the average point cloud density to obtain multiple voxel grids; the voxelized grid construction module 300 is also used to determine the number of scanning points in each voxel grid based on the positions of the multiple voxel grids and the multiple point cloud positions by using a distributed system and adopting parallel processing.

[0161] In some embodiments of the present disclosure, the voxelized grid construction module 300 is used to perform grid division on a plurality of sparse grids based on an average point cloud density and a preset scale factor to obtain a plurality of voxel grids.

[0162] In some embodiments of the present disclosure, the voxelized grid construction module 300 is used to obtain the spatial coordinate value range of each voxel grid and the spatial coordinates of multiple points by utilizing a distributed system and adopting a parallel processing method, wherein the multiple point cloud positions include the spatial coordinates of multiple points; the voxelized grid construction module 300 is also used to determine the number of scanning points in each voxel grid based on the spatial coordinate value range of each voxel grid and the spatial coordinates of multiple points by utilizing a distributed system and adopting a parallel processing method.

[0163] In some embodiments of the present disclosure, the intersection number determination module 400 is used to perform intersection detection between multiple point cloud blocks and multiple light segments by using a distributed system using parallel processing, and determine at least one candidate light segment corresponding to each point cloud block from the multiple light segments based on the intersection detection result; the intersection number determination module 400 is also used to obtain the number of intersections between at least one candidate light segment corresponding to each point cloud block and each voxel grid of the corresponding point cloud block by using a distributed system using parallel processing; the intersection number determination module 400 is also used to determine the number of intersections between multiple light segments and each voxel grid of the corresponding point cloud block based on the number of intersections between at least one candidate light segment corresponding to each point cloud block and each voxel grid of the corresponding point cloud block and the number of scanning points in each voxel grid of the corresponding point cloud block by using a distributed system using parallel processing.

[0164] In some embodiments of the present disclosure, the voxel type determination module 500 is used to obtain a voxel grid from each voxel grid by using a distributed system and adopting a parallel processing method; the voxel type determination module 500 is also used to determine that the currently acquired voxel grid belongs to a voxel grid of a dynamic object in response to the ratio of the number of intersections between multiple light segments and the currently acquired voxel grid to the number of scanning points in the currently acquired voxel grid being greater than a preset threshold; the voxel type determination module 500 is also used to determine that the currently acquired voxel grid does not belong to a voxel grid of a dynamic object in response to the ratio of the number of intersections between multiple light segments and the currently acquired voxel grid to the number of scanning points in the currently acquired voxel grid being less than or equal to a preset threshold.

[0165] It should be noted that the specific implementation of the device for streaming point cloud data in the embodiment of the present disclosure is similar to the specific implementation of the method for streaming point cloud data in the embodiment of the present disclosure, and the technical effect of the device for streaming point cloud data in the embodiment of the present disclosure is similar to the technical effect of the method for streaming point cloud data in the embodiment of the present disclosure. Please refer to the description of the method for streaming point cloud data for details. In order to reduce redundancy, it is not repeated here.

[0166] In addition, an embodiment of the present disclosure further provides an electronic device, including:

[0167] Memory for storing computer programs;

[0168] The processor is used to execute the computer program stored in the memory, and when the computer program is executed, the point cloud data processing method described in any of the above embodiments of the present disclosure is implemented.

[0169] Below, reference Figure 8 To describe the electronic device according to the embodiment of the present disclosure. Figure 8 As shown, the electronic device includes one or more processors and memory.

[0170] The processor may be a central processing unit (CPU) or other forms of processing units having data processing capabilities and / or instruction execution capabilities, and may control other components in the electronic device to perform desired functions.

[0171] The memory may store one or more computer program products, and the memory may include various forms of computer-readable storage media, such as volatile memory and / or non-volatile memory. The volatile memory may include, for example, random access memory (RAM) and / or cache memory (cache), etc. The non-volatile memory may include, for example, read-only memory (ROM), hard disk, flash memory, etc. One or more computer program products may be stored on the computer-readable storage medium, and the processor may run the computer program product to implement the point cloud data processing method of each embodiment of the present disclosure described above and / or other desired functions.

[0172] In one example, the electronic device may further include: an input device and an output device, and these components are interconnected via a bus system and / or other forms of connection mechanisms (not shown).

[0173] In addition, the input device may also include, for example, a keyboard, a mouse, and the like.

[0174] The output device can output various information to the outside, including the determined distance information, direction information, etc. The output device can include, for example, a display, a speaker, a printer, a communication network and a remote output device connected thereto, and the like.

[0175] Of course, to simplify, Figure 8 Only some of the components related to the present disclosure in the electronic device are shown, and components such as a bus, an input / output interface, etc. are omitted. In addition, according to specific application situations, the electronic device may further include any other appropriate components.

[0176] In addition to the above-mentioned methods and devices, an embodiment of the present disclosure may also be a computer program product, which includes computer program instructions, which, when executed by a processor, enable the processor to execute the steps of the method for processing point cloud data according to various embodiments of the present disclosure described in the above part of this specification.

[0177] The computer program product may be written in any combination of one or more programming languages ​​to write program code for performing the operations of the disclosed embodiments, including object-oriented programming languages ​​such as Java, C++, etc., and conventional procedural programming languages ​​such as "C" or similar programming languages. The program code may be executed entirely on the user computing device, partially on the user device, as a separate software package, partially on the user computing device and partially on a remote computing device, or entirely on a remote computing device or server.

[0178] In addition, an embodiment of the present disclosure may also be a computer-readable storage medium on which computer program instructions are stored. When the computer program instructions are executed by a processor, the processor executes the steps of the method for processing point cloud data according to various embodiments of the present disclosure described in the above part of this specification.

[0179] The computer readable storage medium can adopt any combination of one or more readable media. The readable medium can be a readable signal medium or a readable storage medium. The readable storage medium can include, for example, but is not limited to, a system, device or device of electricity, magnetism, light, electromagnetic, infrared, or semiconductor, or any combination of the above. More specific examples (non-exhaustive list) of readable storage media include: an electrical connection with one or more wires, a portable disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above.

[0180] The basic principles of the present disclosure are described above in conjunction with specific embodiments. However, it should be noted that the advantages, strengths, effects, etc. mentioned in the present disclosure are only examples and not limitations, and it cannot be considered that these advantages, strengths, effects, etc. are required by each embodiment of the present disclosure. In addition, the specific details disclosed above are only for the purpose of illustration and ease of understanding, and are not limitations. The above details do not limit the present disclosure to the necessity of adopting the above specific details to be implemented.

[0181] Each embodiment in this specification is described in a progressive manner, and each embodiment focuses on the differences from other embodiments. The same or similar parts between the embodiments can be referred to each other. For the system embodiment, since it basically corresponds to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment.

[0182] The block diagrams of the devices, apparatuses, equipment, and systems involved in this disclosure are only illustrative examples and are not intended to require or imply that they must be connected, arranged, and configured in the manner shown in the block diagrams. As will be appreciated by those skilled in the art, these devices, apparatuses, equipment, and systems can be connected, arranged, and configured in any manner. Words such as "including," "comprising," "having," and the like are open words, referring to "including but not limited to," and can be used interchangeably therewith. The words "or" and "and" used herein refer to the words "and / or," and can be used interchangeably therewith, unless the context clearly indicates otherwise. The word "such as" used herein refers to the phrase "such as but not limited to," and can be used interchangeably therewith.

[0183] The method and apparatus of the present disclosure may be implemented in many ways. For example, the method and apparatus of the present disclosure may be implemented by software, hardware, firmware, or any combination of software, hardware, and firmware. The above order of steps for the method is for illustration only, and the steps of the method of the present disclosure are not limited to the order specifically described above, unless otherwise specifically stated. In addition, in some embodiments, the present disclosure may also be implemented as a program recorded in a recording medium, which includes machine-readable instructions for implementing the method according to the present disclosure. Therefore, the present disclosure also covers a recording medium storing a program for executing the method according to the present disclosure.

[0184] It should also be noted that in the apparatus, device and method of the present disclosure, each component or each step can be decomposed and / or recombined. Such decomposition and / or recombination should be regarded as equivalent solutions of the present disclosure.

[0185] The above description of the disclosed aspects is provided to enable any person skilled in the art to make or use the present disclosure. Various modifications to these aspects will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects without departing from the scope of the present disclosure. Therefore, the present disclosure is not intended to be limited to the aspects shown herein, but rather to the widest scope consistent with the principles and novel features disclosed herein.

[0186] The above description has been given for the purpose of illustration and description. In addition, this description is not intended to limit the embodiments of the present disclosure to the forms disclosed herein. Although multiple example aspects and embodiments have been discussed above, those skilled in the art will recognize certain variations, modifications, changes, additions and sub-combinations thereof.

Claims

1. A method for processing point cloud data, characterized in that: include: Perform point cloud streaming block processing on the input point cloud data to obtain multiple point cloud blocks; Based on the point cloud data, determining a plurality of light segments between a plurality of laser emission point positions and a plurality of point cloud positions; Using a distributed system and parallel processing, based on density information of scan points in the point cloud data, construct a voxel grid for each of the plurality of point cloud blocks to obtain a plurality of voxel grids and the number of scan points in each of the plurality of voxel grids; Using the distributed system in a parallel processing manner, constructing a hierarchical bounding box tree for each voxel grid in the plurality of voxel grids, and determining the number of intersections between the plurality of light segments and each voxel grid in the plurality of voxel grids based on the hierarchical bounding box tree of each voxel grid; Determining whether each voxel grid is a voxel grid of a dynamic object based on the number of intersections between the plurality of light segments and each voxel grid and the number of scan points in each voxel grid by using the distributed system in a parallel processing manner; Outputs a voxel grid that is not part of a dynamic object.

2. The method according to claim 1, characterized in that: The point cloud data is subjected to point cloud streaming block processing to obtain a plurality of point cloud blocks, including: Based on the point cloud data, determining a bounding box of a scene corresponding to the point cloud data; The bounding box of the scene is divided into blocks to obtain the multiple point cloud blocks.

3. The method according to claim 2, characterized in that The step of constructing a voxel grid for each of the plurality of point cloud blocks based on the density information of the scan points in the point cloud data, and obtaining a plurality of voxel grids and the number of scan points in each of the plurality of voxel grids, comprises: Constructing a sparse grid for the scene based on a preset point cloud resolution to obtain a plurality of sparse grids; Determining an average point cloud density of the plurality of sparse grids based on the number of scan points in the point cloud data; Performing mesh division on the plurality of sparse grids based on the average point cloud density to obtain the plurality of voxel grids; Based on the positions of the multiple voxel grids and the multiple point cloud positions, the number of scanning points in each voxel grid is determined.

4. The method according to claim 3, characterized in that The step of meshing the plurality of sparse grids based on the average point cloud density to obtain the plurality of voxel grids comprises: The plurality of sparse grids are meshed based on the average point cloud density and a preset scale factor to obtain the plurality of voxel grids.

5. The method according to claim 3, characterized in that: The determining the number of scanning points in each voxel grid based on the positions of the multiple voxel grids and the multiple point cloud positions includes: Obtaining a spatial coordinate value range of each voxel grid, and obtaining spatial coordinates of a plurality of points, wherein the plurality of point cloud positions include spatial coordinates of a plurality of points; The number of scanning points in each voxel grid is determined based on the spatial coordinate value range of each voxel grid and the spatial coordinates of the multiple points.

6. The method according to any one of claims 1 to 5, characterized in that: Between the step of determining a plurality of light segments between a plurality of laser emission point positions and a plurality of point cloud positions based on the point cloud data and the step of determining whether each voxel grid belongs to a voxel grid of a dynamic object based on the number of intersections between the plurality of light segments and each voxel grid and the number of scanning points in each voxel grid, the method further includes: Performing intersection detection between the plurality of point cloud blocks and the plurality of light segments, and determining at least one candidate light segment corresponding to each point cloud block from the plurality of light segments based on the intersection detection result; Obtaining the number of intersections between at least one candidate ray segment corresponding to each point cloud block and each voxel grid of the corresponding point cloud block; Based on the number of intersections between at least one candidate light segment corresponding to each point cloud block and each voxel grid of the corresponding point cloud block, and the number of scanning points in each voxel grid of the corresponding point cloud block, the number of intersections between the multiple light segments and each voxel grid of the corresponding point cloud block is determined.

7. The method according to any one of claims 1 to 5, characterized in that: The determining, based on the number of intersections between the plurality of light segments and the voxel grids and the number of scanning points in the voxel grids, whether the voxel grids belong to the voxel grids of the dynamic object comprises: Acquire a voxel grid from the voxel grids; In response to a ratio between the number of intersections between the plurality of light segments and the currently acquired voxel grid and the number of scan points in the currently acquired voxel grid being greater than a preset threshold, determining that the currently acquired voxel grid belongs to a voxel grid of a dynamic object; In response to a ratio between the number of intersections between the multiple light segments and the currently acquired voxel grid and the number of scanning points in the currently acquired voxel grid being less than or equal to the preset threshold, it is determined that the currently acquired voxel grid does not belong to the voxel grid of a dynamic object.

8. A point cloud data processing device, characterized in that: include: The streaming point cloud block module is used to perform point cloud streaming block processing on the input point cloud data to obtain multiple point cloud blocks; A light segment determination module, used to determine a plurality of light segments between a plurality of laser emission point positions and a plurality of point cloud positions based on the point cloud data; A voxelized grid construction module is used to utilize a distributed system to adopt a parallel processing method, based on the density information of the scan points in the point cloud data, to perform streaming voxelized gridding on each of the plurality of point cloud blocks, to obtain a plurality of voxel grids and the number of scan points in each of the plurality of voxel grids; an intersection number determination module, configured to construct a hierarchical bounding box tree for each voxel grid in the plurality of voxel grids by using the distributed system in a parallel processing manner, and determine the number of intersections between the plurality of light segments and each voxel grid in the plurality of voxel grids based on the hierarchical bounding box tree of each voxel grid; a voxel type determination module, configured to determine whether each voxel grid is a voxel grid of a dynamic object based on the number of intersections between the plurality of light segments and each voxel grid and the number of scanning points in each voxel grid by using the distributed system in a parallel processing manner; Output module, used to output voxel grids that are not part of dynamic objects.

9. An electronic device, characterized in that: include: a memory for storing a computer program product; A processor is used to execute the computer program product stored in the memory, and when the computer program product is executed, it implements the method described in any one of claims 1 to 7.

10. A computer-readable storage medium having computer program instructions stored thereon, characterized in that: When the computer program instructions are executed by a processor, the method described in any one of claims 1 to 7 is implemented.

Citation Information

Patent Citations

  • Cross-country automatic trolley long-distance real-time positioning system and method based on laser radar

    CN115372989A

  • Method and device for generating three-dimensional grid, equipment, medium and program product

    CN115690120A

  • Point cloud data processing method and device, equipment and medium

    CN118279122A

  • NeRF three-dimensional reconstruction method and system based on 3D point cloud

    CN118447167A

  • Laser SLAM method and device based on multi-frame space occupancy rate and medium

    CN118518093A

Cited By

  • Grid pickup method and related equipment

    CN120233926A