Point cloud search method and device, computer equipment and storage medium

By building a point cloud octree and index linked list, combined with the adjacent point search method within the radius, the problem of low search efficiency in high-precision point cloud data is solved, and more efficient point cloud data search is achieved.

CN119647564APending Publication Date: 2025-03-18PING AN TECH (SHENZHEN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411718884.4
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-11-27
Publication Date
2025-03-18

AI Technical Summary

Technical Problem

The existing intraradius proximity point search method has the problem of low search efficiency in high-precision point cloud data.

Method used

By building a point cloud octree and generating an index linked list, search the point cloud octree within the radius to determine whether the target node is within the search range. If it is there, directly determine the sample points through the index linked list. If it is not there, search for each sample point.

Benefits of technology

It improves the efficiency of searching adjacent points within the radius, reduces the search of all sample points in the search range, and improves the performance of processing high-complexity point cloud data.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119647564A_ABST
    Figure CN119647564A_ABST
Patent Text Reader

Abstract

The invention relates to the technical field of artificial intelligence, and discloses a point cloud search method and device, computer equipment and a storage medium, and the method comprises the steps: constructing a point cloud octree; constructing an index parameter of each node in the point cloud octree to obtain an index linked list of the point cloud octree; searching adjacent points in the radius of the point cloud octree to obtain a target node; judging whether the target node is located in a search range or not; if the target node is located in the search range, determining a sample point corresponding to the target node as a target sample point based on the index chain table; and if the target node is not located in the search range, searching each sample point in the target node to obtain a target sample point.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of artificial intelligence, and in particular to a point cloud search method, device, computer equipment and storage medium. Background Art

[0002] With the development of science and technology, 3D point cloud technology has been widely used in 3D modeling, autonomous driving, robotics, metaverse and other scenarios. As one of the important components of 3D point cloud technology, the radius neighbor search scheme has always attracted widespread attention from industry insiders.

[0003] The search for neighboring points within the radius means that given a query point, a 3D sphere is drawn with the query point as the center, and the points in the sphere are all neighboring points within the radius of the query point. Among them, the search method for neighboring points within the radius mainly searches the points in the 3D sphere one by one to obtain the neighboring points within the radius of the query point.

[0004] However, with the continuous improvement of the accuracy of point cloud cameras, the amount and complexity of the acquired point cloud data are also increasing, resulting in the problem of low search efficiency in the existing method for searching for neighboring points within a radius. Summary of the invention

[0005] The embodiments of the present invention provide a point cloud search method, device, computer equipment and storage medium to solve the problem of low search efficiency in the existing method for searching neighboring points within a radius.

[0006] A point cloud search method, the method comprising: Construct point cloud octree; Constructing index parameters of each node in the point cloud octree to obtain an index linked list of the point cloud octree; Searching for neighboring points within a radius on the point cloud octree to obtain a target node; Determine whether the target node is within the search range; If the target node is within the search range, based on the index linked list, a sample point corresponding to the target node is determined as a target sample point; If the target node is not within the search range, each sample point in the target node is searched separately to obtain the target sample point.

[0007] In the above method, optionally, constructing the index parameter of each node in the point cloud octree to obtain the index linked list of the point cloud octree includes: Obtain a first index parameter of each leaf node in the point cloud octree, where the first index parameter includes an index value of each sample point corresponding to the leaf node; Based on the first index parameter, obtain a second index parameter of each intermediate node in the point cloud octree; Based on the second index parameter, an index linked list of the point cloud octree is obtained.

[0008] In the above method, optionally, the step of searching the point cloud octree for neighboring points within a radius to obtain a target node includes: The intermediate nodes and / or leaf nodes within the search range are obtained, and the intermediate nodes and / or leaf nodes are determined to be target nodes. The search range is the spatial range of searching for adjacent points within the radius of the point cloud octree based on a preset search center point and search radius.

[0009] In the above method, optionally, the determining whether the target node is within the search range includes: Based on the index linked list, the target node index parameter is obtained, where the index parameter includes the three-dimensional coordinates of each sample point corresponding to the target node; Calculate and obtain a first target distance between the three-dimensional coordinates of each of the sample points and the search center point of the search range; Determining whether the distance of each of the first targets is less than the search radius; If each of the first target distances is smaller than the search radius, it is determined that the target node is within the search range.

[0010] In the above method, optionally, the determining whether the target node is within the search range includes: Based on the index linked list, the index parameters of the target node are obtained, where the index parameters of the target node include the angular coordinates of eight corners of the cube corresponding to the target node; Calculate and obtain a second target distance between each of the angular coordinates and the search center point of the search range; Determining whether the distance of each second target is less than the search radius; If each of the second target distances is smaller than the search radius, it is determined that the target node is within the search range.

[0011] The above method may optionally include determining the sample point corresponding to the target node as the target sample point based on the index linked list, including: Obtaining the index parameter of the target node in the index linked list; Determine the leaf node corresponding to the index value as the target sample point.

[0012] In the above method, optionally, each leaf node of the point cloud octree contains a preset number of sample points.

[0013] A point cloud search device, comprising: Octree acquisition unit, used to construct point cloud octree; An index linked list acquisition unit constructs an index parameter of each node in the point cloud octree to obtain an index linked list of the point cloud octree; A neighboring point search unit, used to search the point cloud octree for neighboring points within a radius to obtain a target node; A range determination unit, used to determine whether the target node is within the search range; A first sample point confirmation unit, configured to determine, when the target node is within the search range, a sample point corresponding to the target node as a target sample point based on the index linked list; The second sample point confirmation unit is used to search each sample point in the target node respectively to obtain a target sample point when the target node is not located in the search range.

[0014] A computer device comprises a memory, a processor and a computer program stored in the memory and executable on the processor, wherein the processor implements the above-mentioned point cloud search method when executing the computer program.

[0015] A computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the point cloud search method described above is implemented.

[0016] The above-mentioned point cloud search method, device, computer equipment and storage medium construct an index linked list for the intermediate nodes and leaf nodes in the acquired point cloud octree, and then search the point cloud octree for neighboring points within the radius, so as to obtain the target node within the search range, and then directly determine the sample points corresponding to the target node as the target sample points through the index linked list, and search the sample points corresponding to the target nodes that are not within the search range separately to obtain the target sample points within the search range. It can be seen that in the present invention, for the target node within the search range, the sample points corresponding to the target node are directly determined as the target sample points through the index linked list, and there is no need to search the sample points corresponding to the target node separately. It is only necessary to search the target node, and the sample points corresponding to the target node that is not within the search range are searched separately. Therefore, compared with the method of searching all sample points within the search range separately, the purpose of improving the search efficiency can be achieved. BRIEF DESCRIPTION OF THE DRAWINGS

[0017] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings required for use in the description of the embodiments of the present invention will be briefly introduced below. Obviously, the accompanying drawings in the following description are only some embodiments of the present invention. For ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without paying creative labor.

[0018] Figure 1 It is a flowchart of a point cloud search method disclosed in Embodiment 1 of the present invention; Figure 2 This is a schematic diagram of constructing a point cloud octree disclosed in Embodiment 1 of the present invention; Figure 3 It is a partial flow chart of a point cloud search method disclosed in the first embodiment of the present invention; Figure 4 It is a structural diagram of an index list disclosed in the first embodiment of the present invention; Figure 5 It is a partial flow chart of a point cloud search method disclosed in the first embodiment of the present invention; Figure 6 It is a partial flow chart of a point cloud search method disclosed in the first embodiment of the present invention; Figure 7 It is a partial flow chart of a point cloud search method disclosed in the first embodiment of the present invention; Figure 8 is a structural schematic diagram of a point cloud search device disclosed in Embodiment 2 of the present invention; Fig. 9 It is a schematic diagram of the structure of a computer device disclosed in Embodiment 3 of the present invention. DETAILED DESCRIPTION

[0019] The following will be combined with the drawings in the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. Obviously, the described embodiments are part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of the present invention.

[0020] The present invention discloses a point cloud search method, device, computer equipment and storage medium, which constructs an index linked list for the intermediate nodes and leaf nodes of the acquired point cloud octree, and then searches the point cloud octree for neighboring points within the radius, so as to obtain the target node within the search range, and then directly determines the sample points corresponding to the target node as the target sample points through the index linked list, and searches the sample points corresponding to the target node that are not within the search range separately to obtain the target sample points within the search range. It can be understood that the target node in the present invention refers to a node that can be searched through the neighboring point search within the radius, that is, the sub-cube corresponding to the node in the octree at least has a spatial overlap with the search range of the neighboring point search within the radius, so as to search and obtain the target node, and then directly determine the sample points corresponding to the target node as the target sample points through the index linked list. It can be seen that in the present invention, for the target node within the search range, the sample point corresponding to the target node is directly determined as the target sample point through the index linked list, and there is no need to search the sample points corresponding to the target node separately. It is only necessary to search the target node, and the sample points corresponding to the target node that is not within the search range are searched separately. Therefore, compared with the method of searching all the sample points within the search range separately, the purpose of improving the search efficiency can be achieved.

[0021] Embodiment 1 like Figure 1 The figure is a flow chart of a point cloud search method disclosed in the first embodiment of the present invention. The method is applicable to searching for neighboring points within a radius of point cloud data, for example, searching for neighboring points within a radius of 3D point cloud data obtained after the car turns on the automatic driving mode. The details are as follows: S101: Build a point cloud octree.

[0022] In a specific implementation, in this embodiment, point cloud data can be acquired through a point cloud acquisition device, such as a three-dimensional laser scanner or a photographic scanner, and then a point cloud octree is constructed based on the point cloud data.

[0023] Among them, the process of constructing a point cloud octree based on point cloud data can be as follows: Construct a cube that can contain all point cloud data, use the cube as the root node of the point cloud octree, and divide the cube along the perpendicular bisectors of the length, width, and height of the cube to obtain eight identical sub-cubes. Use these eight sub-cubes as child nodes of the root node, which is the middle node of the point cloud octree. After that, divide the cube along the perpendicular bisectors of the length, width, and height of each sub-cube to obtain eight sub-cubes corresponding to each sub-cube, and so on. When the number of samples in the obtained sub-cube is less than the threshold, the sub-cube will no longer be divided and the sub-cube will be used as the leaf node of the point cloud octree. In other words, the sample points in the point cloud octree are all present in the leaf nodes. Refer to Figure 2 As shown, point C is the center point of the cube corresponding to the point cloud octree, E is the edge length of the cube, and the edge length of the sub-cube obtained after the cube is divided once is E / 2. Similarly, only the leaf nodes are divided to obtain the point cloud octree. Based on this, the point cloud octree can be constructed.

[0024] It should be noted that, in this embodiment, the number of sample points in each leaf node in the point cloud octree can be set according to actual needs, that is, the above-mentioned threshold is set, so that when the number of samples in the sub-cube obtained by segmentation is less than the threshold, the sub-cube is used as the leaf node of the point cloud octree.

[0025] S102: constructing index parameters of each node in the point cloud octree to obtain an index linked list of the point cloud octree.

[0026] In the specific implementation, in this embodiment, it is necessary to construct index parameters for the intermediate nodes and leaf nodes in the point cloud octree respectively, and then construct the index parameters corresponding to the intermediate nodes and leaf nodes to obtain the index linked list of the point cloud octree. Among them, the index parameters of the leaf node at least include the information of each sample point in the sub-cube corresponding to the leaf node, such as the three-dimensional coordinates of the sample point, and the index parameters of the intermediate node at least include the edge length of the sub-cube corresponding to the intermediate node and the information of all samples in the sub-cube, that is, the information of the sample points contained in all leaf nodes corresponding to the intermediate node. Based on this, the index linked list of the point cloud octree can be constructed.

[0027] It should be noted that the index linked list in this embodiment can be a linked list outside the data nodes of the independent point cloud octree, but has a mapping relationship with the nodes in the point cloud octree, or the index linked list in this embodiment can also be a part of the data structure of the point cloud octree, for example, annotating each node of the point cloud octree with index parameters in the form of annotations, and the index parameters in each node together constitute an index list. In this embodiment, the existence form of the index list is not specifically limited.

[0028] S103: Search the point cloud octree for neighboring points within the radius to obtain the target node.

[0029] The target node may be an intermediate node or a leaf node of the point cloud octree.

[0030] In a specific implementation, in this embodiment, the point cloud octree can be searched for neighboring points within the radius by using a preset search center point and search radius, and the intermediate nodes or leaf nodes within the search range are directly determined as target nodes. In other words, the searched target node can be multiple nodes, and the subsequent steps of the point cloud search method are executed according to the searched multiple target nodes.

[0031] It should be noted that in this embodiment, the point cloud octree is searched within the radius, which is actually the cube corresponding to the point cloud octree. When the spatial range of the sub-cube corresponding to the middle node of the point cloud octree overlaps with the spatial range of the search for neighboring points within the radius, the middle node is the target node. Among them, the spatial range of the sub-cube corresponding to the middle node of the point cloud octree overlaps with the spatial range of the search for neighboring points within the radius, including the spatial range of the sub-cube corresponding to the middle node of the point cloud octree partially overlaps with the spatial range of the search for neighboring points within the radius, or the spatial range of the sub-cube corresponding to the middle node of the point cloud octree completely overlaps with the spatial range of the search for neighboring points within the radius.

[0032] S104: Determine whether the target node is within the search range.

[0033] In a specific implementation, in this embodiment, whether the target node is within the search range can be determined by determining the degree of spatial overlap between the spatial range of the sub-cube corresponding to the target node and the search range. When the spatial range of the sub-cube corresponding to the target node completely overlaps with the search range, that is, when the spatial range of the sub-cube corresponding to the target node is within the space of the search range, step S105 is executed, that is, based on the index linked list, the sample point corresponding to the target node is determined as the target sample point. When the spatial range of the sub-cube corresponding to the target node partially overlaps with the search range, step S106 is executed, that is, each sample point in the target node is searched separately to obtain the target sample point.

[0034] S105: Based on the index linked list, determine the sample point corresponding to the target node as the target sample point.

[0035] Based on the obtained index parameter of the target node in the index linked list, the sample point in the sub-cube space corresponding to the target node is obtained according to the index parameter to determine the sample as the target sample point. It can be seen that for the target node located in the search range, the sample point in the sub-cube space corresponding to the target node is directly determined as the target sample point through the index linked list, and there is no need to search the sample points in the sub-cube space corresponding to the target node one by one to obtain the target sample point.

[0036] S106: Search each sample point in the target node separately to obtain the target sample point.

[0037] For target nodes that are not within the search range, it is necessary to search for sample points within the sub-cube space range corresponding to the target node one by one, and then filter out target sample points within the search range from the sub-cube space range corresponding to the target node. In this way, the search for neighboring points within the radius of the point cloud data can be efficiently realized.

[0038] In summary, the present invention discloses a point cloud search method, which constructs an index linked list for the intermediate nodes and leaf nodes of the acquired point cloud octree, and then searches the point cloud octree for neighboring points within a radius to obtain a target node within the search range, and then directly determines the sample points corresponding to the target node as the target sample points through the index linked list, and searches the sample points corresponding to the target node that are not within the search range separately to obtain the target sample points within the search range. It can be understood that the target node in the present invention refers to a node that can be searched through the neighboring point search within the radius, that is, the sub-cube corresponding to the node in the octree at least has a spatial overlap with the search range of the neighboring point search within the radius, so as to search and obtain the target node, and then directly determine the sample points corresponding to the target node as the target sample points through the index linked list. It can be seen that in the present invention, for the target node within the search range, the sample point corresponding to the target node is directly determined as the target sample point through the index linked list, and there is no need to search the sample points corresponding to the target node separately. It is only necessary to search the target node, and the sample points corresponding to the target node that is not within the search range are searched separately. Therefore, compared with the method of searching all the sample points within the search range separately, the purpose of improving the search efficiency can be achieved.

[0039] based on Figure 1 In the specific implementation, step S102 can be implemented by the following steps: Figure 3 As shown: S301: Obtain the first index parameter of each leaf node in the point cloud octree.

[0040] The first index parameter includes the index value of each sample point corresponding to the leaf node.

[0041] In a specific implementation, the index value of the sample point in this embodiment can be the three-dimensional coordinate of the sample point in the cubic space of the point cloud octree, or the index value of the sample point can also be the sample point number of the sample point in the point cloud octree. Based on this, all sample points in the leaf node can be obtained through the first index parameter of the leaf node.

[0042] Specifically, the first index parameter can be expressed in the following way, such as Figure 4 As shown: Among them, Head represents the starting index value, Tail represents the ending index value, and each index value between the starting index value and the ending index value corresponds to a sample point in the sub-cube of the leaf node. That is to say, the number of sample points contained in the sub-cube corresponding to the leaf node is the same as the number of index values ​​contained in the corresponding sub-list.

[0043] S302: Based on the first index parameter, obtain a second index parameter of each intermediate node in the point cloud octree.

[0044] In the specific implementation, the first index parameters of the leaf nodes corresponding to the intermediate nodes are connected in the form of a linked list to obtain the second index parameter of the intermediate node, and so on to obtain the second index parameter of each intermediate node. Figure 4 As shown, each sublist corresponds to a first index parameter, and the sublists of the leaf nodes corresponding to the intermediate nodes are connected to obtain the second index parameter. For example, taking the leaf nodes as the first-layer nodes of the octree as an example, the first index parameters of the first-layer leaf nodes are connected in the form of a linked list as the second index parameters of the corresponding intermediate nodes.

[0045] In one embodiment, the second index parameter may also include the center point and edge length of the sub-cube corresponding to the middle node, as shown below: For example, the data structure of the intermediate node is represented as: in, is the intermediate node, Indicates the center of the subcube corresponding to the middle node, Indicates the edge length of the subcube corresponding to the intermediate node, Indicates the starting index value, Indicates the end index value, Indicates the number of sample points.

[0046] If the octree has L layers and the root node is the first layer, then we build a linked list of intermediate nodes starting from the second to last layer (L-1). If an intermediate node in the L-1 layer Contains M child nodes. Sorting these M child nodes results in a set as shown below: Then, this formula represents the intermediate node The starting index value is the starting index value of the first child node, and the ending index value is the ending index value of the last child node, as shown below: At the same time, the number of samples of the intermediate node is the sum of the number of samples of the child nodes, expressed as follows: In addition to calculating the current Attributes, you also need to link all child nodes together. Figure 4 As shown, the idea of ​​linking leaf nodes is that the tail node of the previous leaf node is the head node of the next leaf node, as shown below. This formula represents the The tail node of the leaf node points to the +1 head node of the leaf node, so that a linked list can be constructed.

[0047] S303: Based on the second index parameter, obtain an index linked list of the point cloud octree.

[0048] In a specific implementation, in this embodiment, after obtaining the second index parameter of each intermediate node in the point cloud octree, an index linked list of the point cloud octree is obtained, that is, the second index parameter of each intermediate node in the point cloud octree together constitutes the index linked list of the point cloud octree.

[0049] To summarize, in this embodiment, by establishing an index linked list, when searching for neighboring points within a radius of the point cloud octree, the sample points in the sub-cube space of the leaf node corresponding to the intermediate node can be directly obtained based on the index parameters of the searched intermediate node in the index linked list. There is no need to search the sample points in the sub-cube space of the leaf node corresponding to the intermediate node one by one, thereby achieving the purpose of improving the search efficiency of the neighboring point search within the radius.

[0050] based on Figure 1 In the specific implementation, step S103 can be implemented in the following way: The point cloud octree is searched for neighboring points within a radius, intermediate nodes and / or leaf nodes within the search range are obtained, and the intermediate nodes and / or leaf nodes are determined to be target nodes. The search range is the spatial range for searching neighboring points within a radius of the point cloud octree based on a preset search center point and search radius.

[0051] In a specific implementation, in this embodiment, a search sphere can be used to search for neighboring points within a radius on the point cloud octree, wherein the center point of the search sphere is the position of the search point obtained by searching for neighboring points within the radius, and the radius of the search sphere is set as needed. In addition to the above method, in this embodiment, the KNN neighboring point algorithm can also be used to search for neighboring points within a radius on the point cloud octree, and the specific method for searching neighboring points within a radius is not limited in this embodiment.

[0052] based on Figure 1 In the specific implementation, step S104 can be implemented by the following steps: Figure 5 As shown: S501: Based on the index linked list, obtain the index parameter of the target node.

[0053] The index parameters include the three-dimensional coordinates of each sample point corresponding to the target node.

[0054] In a specific implementation, in this embodiment, when the target node is obtained, the corresponding index parameter can be obtained from the data of the target node, and then the three-dimensional coordinates of each sample point corresponding to the target node can be obtained from the index parameter of the target node, or the index parameter corresponding to the target node can be obtained through the mapping relationship between the target node and the index linked list, and then the three-dimensional coordinates of each sample point corresponding to the target node can be obtained from the index parameter of the target node. For example, the nodes in the point cloud octree are assigned node numbers, and the index parameters in the index linked list are assigned parameter numbers. When the node number of the target node is Z-001, the index parameter with the parameter number Z-001 is obtained from the index linked list. Based on this, the index parameter of the target node can be obtained.

[0055] S502: Calculate and obtain a first target distance between the three-dimensional coordinates of each sample point and the search center point of the search range.

[0056] In a specific implementation, in this embodiment, the first target distance between each sample point and the search center point can be calculated by the Euclidean distance algorithm. Similarly, the first target distance between each sample point and the search center point in the cube of the target node is obtained, and the subsequent steps of the point cloud search method are executed according to the obtained first target distance.

[0057] S503: Determine whether the distance of each first target is less than the search radius.

[0058] Specifically, in this embodiment, whether the first target distance is less than the search radius can be determined by the following formula: in It is the Euclidean distance function. Refers to the sample point corresponding to the target node, is the search center point, Indicates that all sample points belong to the target node.

[0059] When the distances from all sample points corresponding to the target node to the search center point are less than the search radius, step S504 is executed, i.e., it is determined that the target node is within the search range; when there are sample points among the sample points corresponding to the target node whose distances from the search center point are greater than the search radius, it is determined that the target node is not within the search range.

[0060] S504: Determine that the target node is within the search range.

[0061] For a target node within the search range, the sample points in the subcube space corresponding to the target node are directly determined as the target sample points through the index linked list, without the need to search the sample points in the subcube space corresponding to the target node one by one to obtain the target sample points.

[0062] To sum up, the establishment of an index linked list in this embodiment allows, when searching for neighboring points within a radius of the point cloud octree, to directly obtain sample points in the sub-cube space of the leaf node corresponding to the intermediate node based on the index parameters of the searched intermediate node in the index linked list. There is no need to search the sample points in the sub-cube space of the leaf node corresponding to the intermediate node one by one, thereby achieving the purpose of improving the search efficiency of searching for neighboring points within a radius.

[0063] based on Figure 1 In the specific implementation, step S104 can also be implemented by the following steps: Figure 6 As shown: S601: Based on the index linked list, obtain the index parameter of the target node.

[0064] The index parameters of the target node include the angular coordinates of the eight corners of the cube corresponding to the target node.

[0065] In a specific implementation, in this embodiment, when the target node is obtained, the corresponding index parameter can be obtained from the data of the target node, and then the angular coordinates of the eight corners of the cube corresponding to the target node can be obtained from the index parameter, or the index parameter corresponding to the target node can be obtained through the mapping relationship between the target node and the index linked list, and then the angular coordinates of the eight corners of the cube corresponding to the target node can be obtained from the index parameter. For example, the nodes in the point cloud octree are assigned node numbers, and the index parameters in the index linked list are assigned parameter numbers. When the node number of the target node is Z-001, the index parameter with the parameter number Z-001 is obtained from the index linked list. Based on this, the index parameter of the target node can be obtained.

[0066] S602: Calculate and obtain a second target distance between each angular coordinate and the search center point of the search range.

[0067] In a specific implementation, in this embodiment, the second target distance between each corner coordinate and the search center point can be calculated by the Euclidean distance algorithm. Similarly, the second target distance between each corner coordinate and the search center point in the cube of the target node is obtained, and the subsequent steps of the point cloud search method are executed according to the obtained second target distance.

[0068] S603: Determine whether the distance of each second target is less than the search radius.

[0069] If each second target distance is smaller than the search radius, execute step S604, i.e., determine that the target node is within the search range. If some second target distances are larger than the search radius, determine that the target node is not within the search range, and need to search for sample points in the target node that are within the search range separately to obtain the target sample points.

[0070] S604: Determine that the target node is within the search range.

[0071] For a target node within the search range, the sample points in the subcube space corresponding to the target node are directly determined as the target sample points through the index linked list, without the need to search the sample points in the subcube space corresponding to the target node one by one to obtain the target sample points.

[0072] In summary, in this embodiment, only the distances from the four corners of the sub-cube of the target node to the search center point need to be calculated, without calculating the distance from each sample point to the search center point, which can further improve the search efficiency of the neighboring point search within the radius.

[0073] based on Figure 1 In the specific implementation, step S105 can be implemented by the following steps: Figure 7 As shown: S701: Obtain the index parameter of the target node in the index linked list.

[0074] In a specific implementation, in this embodiment, when the target node is obtained, the corresponding index parameters can be obtained from the data of the target node, and then the angular coordinates of the eight corners of the cube corresponding to the target node can be obtained from the index parameters, or the index parameters corresponding to the target node can be obtained through the mapping relationship between the target node and the index linked list, and then the angular coordinates of the eight corners of the cube corresponding to the target node can be obtained from the index parameters.

[0075] S702: Obtain a target sample point corresponding to the target node in the index parameter.

[0076] In a specific implementation, the index parameters in this embodiment may include data of the sample points. Therefore, when the index parameters of the target node are acquired, the sample points corresponding to the target node can be obtained, and then the target sample points can be obtained.

[0077] That is to say, after the target node is searched, the sample points of the corresponding index parameters are directly obtained through the index linked list, and then these sample points are determined as target sample points, without searching each sample point again, so as to achieve the purpose of improving the search efficiency.

[0078] It should be understood that the order of execution of the steps in the above embodiment does not necessarily mean the order of execution. The execution order of each process should be determined by its function and internal logic, and should not constitute any limitation on the implementation process of the embodiment of the present invention.

[0079] Embodiment 2 like Figure 8 FIG. 1 is a schematic diagram of the structure of a point cloud search device disclosed in Embodiment 2 of the present invention, which is specifically as follows: Specifically, the point cloud search device in this embodiment includes the following units: An octree acquisition unit 801 is used to construct a point cloud octree; An index linked list acquisition unit 802 constructs an index parameter of each node in the point cloud octree to obtain an index linked list of the point cloud octree; A neighboring point search unit 803 is used to search the neighboring points within a radius of the point cloud octree to obtain a target node; A range determination unit 804 is used to determine whether the target node is within the search range; A first sample point confirmation unit 805 is configured to determine, when the target node is within the search range, a sample point corresponding to the target node as a target sample point based on the index linked list; The second sample point confirmation unit 806 is configured to search each sample point in the target node separately to obtain a target sample point when the target node is not within the search range.

[0080] In one implementation, the index linked list acquisition unit 802 is specifically used to: Obtain a first index parameter of each leaf node in the point cloud octree, where the first index parameter includes an index value of each sample point corresponding to the leaf node; Based on the first index parameter, obtain a second index parameter of each intermediate node in the point cloud octree; Based on the second index parameter, an index linked list of the point cloud octree is obtained.

[0081] In one implementation, the neighboring point searching unit 803 is specifically configured to: The intermediate nodes and / or leaf nodes within the search range are obtained, and the intermediate nodes and / or leaf nodes are determined to be target nodes. The search range is the spatial range of searching for adjacent points within the radius of the point cloud octree based on a preset search center point and search radius.

[0082] In one implementation, the range determination unit 804 is specifically configured to: Based on the index linked list, the target node index parameter is obtained, where the index parameter includes the three-dimensional coordinates of each sample point corresponding to the target node; Calculate and obtain a first target distance between the three-dimensional coordinates of each of the sample points and the search center point of the search range; Determining whether the distance of each of the first targets is less than the search radius; If each of the first target distances is smaller than the search radius, it is determined that the target node is within the search range.

[0083] In one implementation, the range determination unit 804 is specifically configured to: Based on the index linked list, the index parameters of the target node are obtained, where the index parameters of the target node include the angular coordinates of eight corners of the cube corresponding to the target node; Calculate and obtain a second target distance between each of the angular coordinates and the search center point of the search range; Determining whether the distance of each second target is less than the search radius; If each of the second target distances is smaller than the search radius, it is determined that the target node is within the search range.

[0084] In one implementation, the first sample point confirmation unit 805 is specifically configured to: Obtaining the index parameter of the target node in the index linked list; Determine the leaf node corresponding to the index value as the target sample point.

[0085] In one implementation, each leaf node of the point cloud octree contains a preset number of sample points.

[0086] For the specific definition of the point cloud search device, please refer to the relevant definition of the point cloud search method above, which will not be repeated here. Each module in the above-mentioned point cloud search device can be implemented in whole or in part by software, hardware and a combination thereof. The above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory of the computer device in the form of software, so that the processor can call and execute the operations corresponding to the above modules.

[0087] Embodiment 3 Embodiment 3 of the present application discloses a computer device, which may be a server, and its internal structure diagram may be as follows: Fig. 9 As shown. The computer device includes a processor, a memory, a network interface and a database connected through a system bus. Among them, the processor of the computer device is used to provide computing and control capabilities. The memory of the computer device includes a non-volatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program and a database. The internal memory provides an environment for the operation of the operating system and the computer program in the non-volatile storage medium. The network interface of the computer device is used to communicate with an external terminal through a network connection. When the computer program is executed by the processor, a point cloud search method is implemented.

[0088] In one embodiment, a computer device is provided, including a memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the processor implements the following steps when executing the computer program: Construct point cloud octree; Constructing index parameters of each node in the point cloud octree to obtain an index linked list of the point cloud octree; Searching for neighboring points within a radius on the point cloud octree to obtain a target node; Determine whether the target node is within the search range; If the target node is within the search range, based on the index linked list, a sample point corresponding to the target node is determined as a target sample point; If the target node is not within the search range, each sample point in the target node is searched separately to obtain the target sample point.

[0089] Embodiment 4 Embodiment 4 of the present application discloses a computer-readable storage medium, when the instructions in the computer-readable storage medium are executed by a processor in a computer device, the computer device can execute the steps of any embodiment of a point cloud search method disclosed in the present invention. The computer-readable storage medium can be non-volatile or volatile.

[0090] In one embodiment, a computer readable storage medium is provided, on which a computer program is stored, and when the computer program is executed by a processor, the following steps are implemented: Construct point cloud octree; Constructing index parameters of each node in the point cloud octree to obtain an index linked list of the point cloud octree; Searching for neighboring points within a radius on the point cloud octree to obtain a target node; Determine whether the target node is within the search range; If the target node is within the search range, based on the index linked list, a sample point corresponding to the target node is determined as a target sample point; If the target node is not within the search range, each sample point in the target node is searched separately to obtain the target sample point.

[0091] Those of ordinary skill in the art can understand that all or part of the processes in the above-mentioned embodiment methods can be completed by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, any reference to memory, storage, database or other media used in the embodiments provided in this application may include non-volatile and / or volatile memory. Non-volatile memory may include read-only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable programmable ROM (EEPROM) or flash memory. Volatile memory may include random access memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in many forms, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous link (Synchlink) DRAM (SLDRAM), memory bus (Rambus) direct RAM (RDRAM), direct memory bus dynamic RAM (DRDRAM), and memory bus dynamic RAM (RDRAM), etc.

[0092] Those skilled in the art can clearly understand that for the convenience and simplicity of description, only the division of the above-mentioned functional units and modules is used as an example. In actual applications, the above-mentioned functions can be distributed and completed by different functional units and modules as needed, that is, the internal structure of the device can be divided into different functional units or modules to complete all or part of the functions described above.

[0093] The embodiments described above are only used to illustrate the technical solutions of the present invention, rather than to limit the same. Although the present invention has been described in detail with reference to the aforementioned embodiments, those skilled in the art should understand that the technical solutions described in the aforementioned embodiments may still be modified, or some of the technical features may be replaced by equivalents. Such modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present invention, and should all be included in the protection scope of the present invention.

Claims

1. A point cloud search method, characterized in that: The method comprises: Construct point cloud octree; Constructing index parameters of each node in the point cloud octree to obtain an index linked list of the point cloud octree; Searching for neighboring points within a radius on the point cloud octree to obtain a target node; Determine whether the target node is within the search range; If the target node is within the search range, based on the index linked list, a sample point corresponding to the target node is determined as a target sample point; If the target node is not within the search range, each sample point in the target node is searched separately to obtain the target sample point.

2. The point cloud search method according to claim 1, characterized in that: The step of constructing the index parameter of each node in the point cloud octree to obtain the index linked list of the point cloud octree includes: Obtain a first index parameter of each leaf node in the point cloud octree, where the first index parameter includes an index value of each sample point corresponding to the leaf node; Based on the first index parameter, obtain a second index parameter of each intermediate node in the point cloud octree; Based on the second index parameter, an index linked list of the point cloud octree is obtained.

3. The point cloud search method according to claim 1, characterized in that: The step of searching the point cloud octree for neighboring points within a radius to obtain a target node includes: The intermediate nodes and / or leaf nodes within the search range are obtained, and the intermediate nodes and / or leaf nodes are determined to be target nodes. The search range is the spatial range of searching for adjacent points within the radius of the point cloud octree based on a preset search center point and search radius.

4. The point cloud search method according to claim 1, characterized in that: The determining whether the target node is within the search range includes: Based on the index linked list, the target node index parameter is obtained, where the index parameter includes the three-dimensional coordinates of each sample point corresponding to the target node; Calculate and obtain a first target distance between the three-dimensional coordinates of each of the sample points and the search center point of the search range; Determining whether the distance of each of the first targets is less than the search radius; If each of the first target distances is smaller than the search radius, it is determined that the target node is within the search range.

5. The point cloud search method according to claim 1, characterized in that: The determining whether the target node is within the search range includes: Based on the index linked list, the index parameters of the target node are obtained, where the index parameters of the target node include the angular coordinates of eight corners of the cube corresponding to the target node; Calculate and obtain a second target distance between each of the angular coordinates and the search center point of the search range; Determining whether the distance of each second target is less than the search radius; If each of the second target distances is smaller than the search radius, it is determined that the target node is within the search range.

6. The point cloud search method according to claim 1, characterized in that: Based on the index linked list, determining the sample point corresponding to the target node as the target sample point includes: Obtaining the index parameter of the target node in the index linked list; Determine the leaf node corresponding to the index value as the target sample point.

7. The point cloud search method according to any one of claims 1 to 6, characterized in that: Each leaf node of the point cloud octree contains a preset number of sample points.

8. A point cloud search device, characterized in that: include: Octree acquisition unit, used to construct point cloud octree; An index linked list acquisition unit constructs an index parameter of each node in the point cloud octree to obtain an index linked list of the point cloud octree; A neighboring point search unit, used to search the point cloud octree for neighboring points within a radius to obtain a target node; A range determination unit, used to determine whether the target node is within the search range; A first sample point confirmation unit, configured to determine, when the target node is within the search range, a sample point corresponding to the target node as a target sample point based on the index linked list; The second sample point confirmation unit is used to search each sample point in the target node respectively to obtain a target sample point when the target node is not located in the search range.

9. A computer device comprising a memory, a processor, and a computer program stored in the memory and executable on the processor, characterized in that: When the processor executes the computer program, the point cloud search method according to any one of claims 1 to 7 is implemented.

10. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the point cloud search method according to any one of claims 1 to 7 is implemented.