Point cloud matching method, device, equipment and chip

By partitioning the point clouds, the corresponding sub-clouds are obtained and only these sub-clouds are matched in the matching process, which solves the problem of low point cloud matching efficiency in the existing technology and achieves more efficient point cloud matching.

CN119941805APending Publication Date: 2025-05-06HUAWEI TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202311462637.8
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2023-11-03
Publication Date
2025-05-06

AI Technical Summary

Technical Problem

In the prior art, point cloud matching method requires the construction of K-dimensional trees, resulting in high CPU computing overhead, long time and low processing efficiency.

Method used

By partitioning the first point cloud and the second point cloud, the first sub-cloud and the second sub-cloud with corresponding relationships are obtained, and only these sub-clouds are matched in the point cloud matching process, reducing the amount of matching point cloud data and improving matching efficiency.

Benefits of technology

It effectively reduces the amount of data in the point cloud that needs to be matched, improves the efficiency of point cloud matching, reduces CPU computing overhead, and shortens matching time.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119941805A_ABST
    Figure CN119941805A_ABST
Patent Text Reader

Abstract

The invention discloses a point cloud matching method and device, equipment and a chip, and belongs to the technical field of computers. The method comprises the following steps: acquiring a first point cloud and a second point cloud which need to be matched, wherein the first point cloud and the second point cloud comprise the same feature points; partitioning the first point cloud and the second point cloud to obtain a first sub-cloud and a second sub-cloud which have a corresponding relation; and performing point cloud matching on the first sub-cloud and the second sub-cloud corresponding to the first sub-cloud. For the first point cloud and the second point cloud which need to be matched, the first point cloud and the second point cloud are firstly partitioned to obtain the first sub-cloud and the second sub-cloud which have the corresponding relationship, and the first sub-cloud and the second sub-cloud which have the corresponding relationship can be matched in the subsequent point cloud matching process, so that the data volume of the point cloud which needs to be matched is effectively reduced, and the matching efficiency is improved. And the point cloud matching efficiency is improved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technology, and in particular to point cloud matching methods, devices, equipment and chips. Background Art

[0002] With the development of computer technology, more and more application scenarios involve point cloud registration. Taking robot navigation as an example, point cloud registration is used to align different point clouds in space, so that the shape of the building can be estimated based on the aligned point cloud, and the three-dimensional map required for navigation can be constructed based on the building shape. Point cloud matching is required in the process of point cloud registration.

[0003] In the related art, for the first point cloud and the second point cloud that need to be matched, a K-dimensional tree (KD-Tree) is constructed according to each second feature point in the second point cloud, and the K-dimensional tree is searched according to the coordinates of any first feature point in the first point cloud, and the retrieved second feature point is used as the second feature point matching the any first feature point. The above operation is repeated for multiple first feature points to achieve matching between point clouds.

[0004] However, the above point cloud matching method needs to construct a K-dimensional tree based on all the second feature points included in the second point cloud. The number of second feature points involved is large, and the central processing unit (CPU) used to construct the K-dimensional tree has high computational overhead, is time-consuming, and has low processing efficiency. Summary of the invention

[0005] The present application provides a point cloud matching method, device, equipment and chip to solve the problems existing in the related technologies. The technical solution is as follows:

[0006] In a first aspect, a point cloud matching method is provided, the method comprising: obtaining a first point cloud and a second point cloud to be matched, the first point cloud and the second point cloud comprising the same feature points; partitioning the first point cloud and the second point cloud to obtain a first sub-cloud and a second sub-cloud having a corresponding relationship; and performing point cloud matching on the first sub-cloud and the second sub-cloud corresponding to the first sub-cloud.

[0007] For the first point cloud and the second point cloud that need to be matched, partitioning is first performed to obtain the first sub-cloud and the second sub-cloud that have a corresponding relationship. In the subsequent point cloud matching process, the first sub-cloud and the second sub-cloud that have a corresponding relationship can be matched, which effectively reduces the data volume of the point clouds that need to be matched and improves the point cloud matching efficiency.

[0008] In a possible implementation, partitioning the first point cloud and the second point cloud to obtain a first sub-cloud and a second sub-cloud having a corresponding relationship includes: dividing the first point cloud into N first sub-clouds according to the spatial features of the first point cloud; dividing the second point cloud into N second sub-clouds according to the spatial features of the second point cloud, and the kth first sub-cloud of the first point cloud and the kth second sub-cloud of the second point cloud have a corresponding relationship, N is a positive integer greater than 1, and k is a positive integer not greater than N. The partitioning is performed according to the spatial features so that the first sub-cloud and the second sub-cloud corresponding to the first sub-cloud are located in the same area, and the accuracy of subsequent point cloud matching based on the first sub-cloud and the second sub-cloud in the same area is high.

[0009] In a possible implementation, the first point cloud is divided into N first sub-clouds according to the spatial features of the first point cloud, including: determining the index value of each first feature point according to the coordinates of each first feature point included in the first point cloud; and dividing the first feature points with the same index value into the same first sub-cloud to obtain N first sub-clouds. The index value is calculated according to the coordinates, and the point cloud can be divided according to the index value, and the division operation has low complexity and high efficiency.

[0010] In a possible implementation, the index value of each first feature point is determined according to the coordinates of each first feature point included in the first point cloud, including: determining a reference number, the reference number indicating the number of first sub-clouds; and calculating the index value of any first feature point according to the coordinates and the reference number of any first feature point. The reference number of first sub-clouds to be segmented is first determined, and in the subsequent process of segmenting the first point cloud and the second point cloud respectively according to the reference number and the coordinates, the numbers of the first sub-clouds and the second sub-clouds obtained by segmentation can be unified to achieve the correspondence between the numbers of the first point cloud and the second point cloud.

[0011] In a possible implementation, the coordinates include three-dimensional coordinates, and the index value of any first feature point is calculated based on the coordinates of any first feature point and a reference number, including: dividing the multiple coordinate values ​​included in the three-dimensional coordinates by the reference number respectively to obtain multiple quotients; and obtaining the index value by adding the integer values ​​of each quotient. The distance between two first feature points in the same area is close, and although the calculated quotients have different decimal places, the integer places are the same. Therefore, the index value can be determined based on the integer places, so that the index values ​​of the first feature points that are close to each other are the same, so that they are located in the same first sub-cloud. The calculation process of the index value is simple and efficient.

[0012] In a possible implementation, before performing point cloud matching on the first sub-cloud and the second sub-cloud corresponding to the first sub-cloud, the method further includes: determining the first evaluation results of the N first sub-clouds according to the number of first feature points included in each of the N first sub-clouds, the first evaluation results indicating the uniform distribution degree of the N first sub-clouds; determining the second evaluation results of the N second sub-clouds according to the number of second feature points included in each of the N second sub-clouds, the second evaluation results indicating the uniform distribution degree of the N second sub-clouds; adjusting the N first sub-clouds and the N second sub-clouds according to the first evaluation results and the second evaluation results, and performing point cloud matching on the first sub-cloud and the second sub-cloud corresponding to the first sub-cloud according to the adjusted N first sub-clouds and the N second sub-clouds. After partitioning to obtain the N first sub-clouds and the N second sub-clouds, the N first sub-clouds and the N second sub-clouds are also evaluated for uniform distribution, so that in the case of uneven distribution, timely adjustments can be made to avoid the situation where the number of feature points included in the first sub-cloud or the second sub-cloud is too high, thereby effectively controlling the number of point clouds of each first sub-cloud and the second sub-cloud.

[0013] In a possible implementation, point cloud matching is performed on a first sub-cloud and a second sub-cloud corresponding to the first sub-cloud, including: respectively calculating the distance value between any first feature point included in the first sub-cloud and each second feature point included in the second sub-cloud corresponding to the first sub-cloud, and determining the second feature point with the smallest distance value as the second feature point matching any first feature point. For a first sub-cloud and a second sub-cloud corresponding to the first sub-cloud located in the same area, the distance between any first feature point and each second feature point can be calculated to achieve point cloud matching, and the matching process is highly efficient and has low computational complexity.

[0014] In a possible implementation, before respectively calculating the distance values ​​between any first feature point included in the first sub-cloud and each second feature point included in the second sub-cloud corresponding to the first sub-cloud, it also includes: comparing a first total number of first feature points included in the first sub-cloud with a quantity threshold, and comparing a second total number of second feature points included in the second sub-cloud corresponding to the first sub-cloud with the quantity threshold; when both the first total number and the second total number are not higher than the quantity threshold, performing the operation of respectively calculating the distance values ​​between any first feature point included in the first sub-cloud and each second feature point included in the second sub-cloud corresponding to the first sub-cloud.

[0015] In one possible implementation, point cloud matching is performed on a first sub-cloud and a second sub-cloud corresponding to the first sub-cloud, including: searching in an index tree according to the coordinates of any first feature point in the first sub-cloud, determining a second feature point matching any first feature point according to the search results, and constructing an index tree based on the coordinates of each second feature point included in the second sub-cloud corresponding to the first sub-cloud. The second feature point matching any first feature point can be determined by searching in the index tree, and the point cloud matching process is simple. Moreover, the operations involved in point cloud matching are not limited, and the distance between any first feature point and each second feature point can be calculated separately, or the index tree can be used for retrieval, which is widely applicable.

[0016] In a possible implementation, before searching in the index tree according to the coordinates of any first feature point in the first sub-cloud, the method further includes: comparing the first total number of first feature points included in the first sub-cloud with the quantity threshold, and comparing the second total number of second feature points included in the second sub-cloud corresponding to the first sub-cloud with the quantity threshold; when either the first total number or the second total number is higher than the quantity threshold, performing a search in the index tree according to the coordinates of any first feature point in the first sub-cloud. Before performing point cloud matching, the number of feature points included in the first sub-cloud and the second sub-cloud is also judged according to the quantity threshold. When the number of feature points included in the first sub-cloud and the second sub-cloud is small, a matching method with a computational advantage for calculating the distance between the first feature point and the second feature point is selected. When the number of feature points included in the first sub-cloud and the second sub-cloud is large, an index tree method with high computational efficiency is selected, and the matching process is highly flexible.

[0017] In a second aspect, a point cloud matching device is provided, including: an acquisition module, used to acquire a first point cloud and a second point cloud that need to be matched, the first point cloud and the second point cloud include the same feature points; a partitioning module, used to partition the first point cloud and the second point cloud to obtain a first sub-cloud and a second sub-cloud that have a corresponding relationship; a matching module, used to perform point cloud matching on the first sub-cloud and the second sub-cloud corresponding to the first sub-cloud.

[0018] In a possible implementation, a partitioning module is used to divide the first point cloud into N first sub-clouds according to the spatial features of the first point cloud; and divide the second point cloud into N second sub-clouds according to the spatial features of the second point cloud. There is a corresponding relationship between the kth first sub-cloud of the first point cloud and the kth second sub-cloud of the second point cloud, N is a positive integer greater than 1, and k is a positive integer not greater than N.

[0019] In a possible implementation, a partitioning module is used to determine the index value of each first feature point according to the coordinates of each first feature point included in the first point cloud; and divide the first feature points with the same index value into the same first sub-cloud to obtain N first sub-clouds.

[0020] In a possible implementation, the partitioning module is used to determine a reference number, where the reference number indicates the number of first sub-clouds; and to calculate an index value of any first feature point according to the coordinates of any first feature point and the reference number.

[0021] In a possible implementation, the coordinates include three-dimensional coordinates, and the partition module is used to divide the multiple coordinate values ​​included in the three-dimensional coordinates by the reference number respectively to obtain multiple quotients; and to obtain the index value by adding the values ​​of the integer bits of each quotient.

[0022] In a possible implementation, the partitioning module is further used to determine a first evaluation result of the N first sub-clouds according to the number of first feature points included in each of the N first sub-clouds, the first evaluation result indicating the uniform distribution degree of the N first sub-clouds; determine a second evaluation result of the N second sub-clouds according to the number of second feature points included in each of the N second sub-clouds, the second evaluation result indicating the uniform distribution degree of the N second sub-clouds; adjust the N first sub-clouds and the N second sub-clouds according to the first evaluation result and the second evaluation result, and the matching module is further used to perform a point cloud matching operation on the first sub-clouds and the second sub-clouds corresponding to the first sub-clouds according to the adjusted N first sub-clouds and N second sub-clouds.

[0023] In a possible implementation, the matching module is used to respectively calculate the distance values ​​between any first feature point included in the first sub-cloud and each second feature point included in the second sub-cloud corresponding to the first sub-cloud, and determine the second feature point with the smallest distance value as the second feature point matching any first feature point.

[0024] In a possible implementation, the matching module is further used to compare a first total number of first feature points included in the first sub-cloud with a quantity threshold, and to compare a second total number of second feature points included in a second sub-cloud corresponding to the first sub-cloud with the quantity threshold; when both the first total number and the second total number are not higher than the quantity threshold, an operation of respectively calculating the distance values ​​between any first feature point included in the first sub-cloud and each second feature point included in the second sub-cloud corresponding to the first sub-cloud is performed.

[0025] In one possible implementation, a matching module is used to search in an index tree according to the coordinates of any first feature point in the first sub-cloud, and determine a second feature point that matches any first feature point according to the search results. The index tree is constructed based on the coordinates of each second feature point included in the second sub-cloud corresponding to the first sub-cloud.

[0026] In a possible implementation, the matching module is further used to compare a first total number of first feature points included in the first sub-cloud with a quantity threshold, and to compare a second total number of second feature points included in a second sub-cloud corresponding to the first sub-cloud with the quantity threshold; when either the first total number or the second total number is higher than the quantity threshold, an operation of retrieving in the index tree according to the coordinates of any first feature point in the first sub-cloud is performed.

[0027] In a third aspect, a point cloud matching device is provided, the device comprising a processor, the processor being used to load and execute at least one instruction so that the point cloud matching device executes the method in the first aspect or any possible implementation manner of the first aspect.

[0028] In a possible implementation, the device includes a memory, which is coupled to a processor, and the memory stores at least one instruction.

[0029] In a fourth aspect, a computer-readable storage medium is provided, in which at least one instruction is stored, and the instruction is loaded and executed by a processor to implement the point cloud matching method in the first aspect or any possible implementation of the first aspect.

[0030] In the fifth aspect, a computer program (product) is provided, which includes a computer program / instructions, and the computer program / instructions are executed by a processor to enable a computer to implement the point cloud matching method in the first aspect or any possible implementation of the first aspect.

[0031] In a sixth aspect, a communication device is provided, the device comprising: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other through an internal connection path, the memory is used to store instructions, the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals, and when the processor executes the instructions stored in the memory, the processor executes the method in the first aspect or any possible implementation of the first aspect.

[0032] Optionally, there are one or more processors and one or more memories.

[0033] Optionally, the memory may be integrated with the processor, or the memory may be provided separately from the processor.

[0034] In the specific implementation process, the memory can be a non-transitory memory, such as a read-only memory (ROM), which can be integrated with the processor on the same chip or can be set on different chips. This application does not limit the type of memory and the setting method of the memory and the processor.

[0035] In a seventh aspect, a chip is provided, comprising a processor for calling and executing program instructions or codes stored in a memory, so that a communication device equipped with the chip executes the methods in the above aspects.

[0036] In an eighth aspect, another chip is provided, comprising: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected via an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute the methods in the above aspects.

[0037] It should be understood that the beneficial effects achieved by the technical solutions of the second to eighth aspects of the present application and the corresponding possible implementation methods can be referred to the above-mentioned technical effects of the first aspect and its corresponding possible implementation methods, and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS

[0038] Figure 1 A flow chart of point cloud registration provided in an embodiment of the present application;

[0039] Figure 2 A schematic diagram of an implementation environment provided for an embodiment of the present application;

[0040] Figure 3 A flow chart of a point cloud matching method provided in an embodiment of the present application;

[0041] Figure 4 A schematic diagram of point cloud acquisition provided in an embodiment of the present application;

[0042] Figure 5 A schematic diagram of the distribution of a first sub-cloud provided in an embodiment of the present application;

[0043] Figure 6 A schematic diagram of another distribution of a first sub-cloud provided in an embodiment of the present application;

[0044] Figure 7 A schematic diagram of a point cloud matching process provided in an embodiment of the present application;

[0045] Figure 8 A schematic diagram of the relationship between a first sub-cloud and a second sub-cloud provided in an embodiment of the present application;

[0046] Fig. 9 A schematic diagram of the structure of an index tree provided in an embodiment of the present application;

[0047] Fig.10 A flowchart of point cloud matching provided in an embodiment of the present application;

[0048] Fig.11 A schematic diagram of the structure of a point cloud matching device provided in an embodiment of the present application;

[0049] Fig.12 A schematic diagram of the structure of a network device provided in an embodiment of the present application;

[0050] Fig.13 A schematic diagram of the structure of another network device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0051] The terms used in the implementation method of this application are only used to explain the specific embodiments of this application, and are not intended to limit this application. In order to make the purpose, technical solution and advantages of this application clearer, the implementation method of this application will be further described in detail below with reference to the accompanying drawings.

[0052] With the development of computer technology, the application scenarios of point cloud registration are becoming more and more extensive. For example, computer vision, robot navigation and three-dimensional reconstruction will widely use point cloud registration for map construction, positioning and posture estimation. Among them, point cloud registration is a technology that aligns multiple point clouds to find the corresponding relationship between multiple point clouds, so as to realize the spatial alignment of two point clouds according to the corresponding relationship. Point cloud registration includes coarse registration and fine registration. Coarse registration aligns point clouds when the relative pose of two point clouds is unknown, and is used to roughly align two point clouds, and the alignment deviation is large. The algorithm used in the coarse registration process is, for example, the normal distribution transform (NDT). By calculating the relationship between the distance and normal vector of each feature point in the point cloud and the surrounding feature points, the point cloud is converted into a feature representation of a Gaussian distribution, so as to perform registration between point clouds according to the feature representation. Fine registration is to align the two point clouds to a high degree to reduce the spatial position difference between the two point clouds. The algorithm used in fine registration is, for example, iterative closest point (ICP).

[0053] In a possible implementation, point cloud matching is also involved in the process of point cloud registration. Figure 1 A flowchart of point cloud registration provided in an embodiment of the present application is provided. Figure 1 , two point clouds to be registered are shown, namely the reference point cloud and the point cloud to be registered. Figure 1After obtaining the point cloud to be registered, the transfer matrix will be initialized first. The transfer matrix indicates the relationship between the point cloud to be registered and the reference point cloud, such as rotation, translation and scaling. The feature points included in the point cloud to be registered are transformed according to the transfer matrix to unify the reference point cloud and the point cloud to be registered into the same coordinate system. After that, the average distance error between the reference point cloud and the point cloud to be registered can be calculated based on the feature points after coordinate transformation and the feature points included in the reference point cloud, and whether the convergence condition is met can be judged based on the average distance error. If the convergence condition is not met, the reference point cloud and the point cloud to be registered are matched, and the centroid of the point set is calculated based on the matched point cloud. The rotation matrix is ​​solved by the quaternion method based on the calculated centroid, and then the coordinate transformation of the point cloud to be registered is continued according to the rotation matrix.

[0054] In the first related technology, a K-dimensional tree (KD-Tree) is constructed for the reference point cloud, and the coordinates of the feature points included in the point cloud to be registered are searched in the K-dimensional tree to determine the feature points closest to the feature points, thereby achieving point cloud matching. The above method requires the construction of a K-dimensional tree for all feature points included in the reference point cloud. The number of feature points included in the K-dimensional tree is large, the construction complexity is high, and the CPU calculation overhead for executing the K-dimensional tree construction is large and time-consuming.

[0055] In the related technology 2, the distance between the feature point in the point cloud to be registered and all the feature points in the reference point cloud is calculated, and the minimum distance is found to determine the feature point in the reference point cloud closest to the feature point, thereby achieving point cloud matching. When the number of feature points in the point cloud is large, the amount of calculation increases sharply, resulting in low efficiency of point cloud matching.

[0056] The embodiment of the present application provides a point cloud matching method, which partitions a first point cloud and a second point cloud to be matched into a first sub-cloud and a second sub-cloud that have a corresponding relationship, and achieves matching between the first point cloud and the second point cloud by performing point cloud matching on the first sub-cloud and the second sub-cloud that have a corresponding relationship. Figure 2 , which shows a schematic diagram of the implementation environment of the point cloud matching method provided in the embodiment of the present application, and the implementation environment includes a point cloud acquisition device 21 and a matching device 22. Among them, a communication connection can be established between the point cloud acquisition device 21 and the matching device 22 via a wired or wireless network. The point cloud acquisition device 21 transmits a signal to the target object whose shape needs to be collected, receives the first point cloud and the second point cloud obtained by reflection from the target object, and then sends the first point cloud and the second point cloud to the matching device 22. The matching device 22 obtains the first point cloud and the second point cloud, and then executes the method of the embodiment of the present application to partition the first point cloud and the second point cloud, obtains the first sub-cloud and the second sub-cloud that have a corresponding relationship, and performs point cloud matching on the first sub-cloud and the second sub-cloud.

[0057] In a possible implementation, the point cloud acquisition device 21 may be any device for collecting point clouds. For example, when the point cloud acquisition device 21 acquires point clouds according to the principle of laser measurement, the point cloud acquisition device 21 may be a laser radar. When the point cloud acquisition device 21 acquires point clouds according to the principle of photogrammetry, the point cloud acquisition device 21 may be a camera. Exemplarily, the matching device 22 may be any device with a data processing function, and the matching device 22 may be a terminal device such as a desktop, a laptop or a smart phone, or a server, such as a central server, an edge server, or a local server in a local data center. The server may be a physical server or a cloud server that provides cloud computing services. The matching device 22 may be an independent device or a network card configured in the above-mentioned device, etc., which is not limited in the embodiment of the present application. In addition, the point cloud acquisition device 21 and the matching device 22 may be two independent devices, and the point cloud acquisition device 21 and the matching device 22 may also be integrated on the same device, for example, a mobile phone may both transmit signals for point cloud acquisition and match the collected point clouds.

[0058] The point cloud matching method provided in the embodiment of the present application can be applied to the above Figure 2 In the implementation environment shown in FIG. 1 , the method can be executed by the matching device 22. The flowchart of the point cloud matching method is as follows: Figure 3 As shown, including S301-S303.

[0059] S301, obtaining a first point cloud and a second point cloud to be matched, wherein the first point cloud and the second point cloud include the same feature points.

[0060] In a possible implementation, a point cloud acquisition device transmits a signal to a target object to be measured, generates a point cloud according to the reflected signal, and the obtained point cloud includes a plurality of feature points, and the feature points indicate the surface characteristics of the target object. Among them, the first point cloud and the second point cloud are point clouds collected from the same target object in different batches. Different batches may have different collection times. For example, a point cloud acquisition device configured on a car transmits a signal to building A at time A, and obtains point cloud A formed by signal reflection. The car moves forward to building A for a period of time, and the point cloud acquisition device transmits a signal to building A at time B, and obtains point cloud B formed by signal reflection. Then point cloud A and point cloud B are point clouds collected at different times. Point clouds collected at different times may have different collection positions as shown in the above example, or may have different collection angles. For example, the point cloud acquisition device is a device that can rotate 360 ​​degrees. The point cloud acquisition device transmits a signal to the target object at time C to obtain point cloud C, and then rotates 10 degrees at time D to transmit a signal to the target object to obtain point cloud D. Then point cloud C and point cloud D also belong to point clouds collected from different batches. Different batches may also be different devices. For example, in the process of collecting building A, two point cloud collection devices are respectively configured on the left and right sides of building A. The two point cloud collection devices collect point clouds of building A at the same time to obtain two point clouds. Different batches may also be different devices used to collect point clouds at different times, which is not limited in the embodiments of the present application.

[0061] Since the first point cloud and the second point cloud are acquired from the same target object, the first point cloud and the second point cloud include feature points reflected at the same position, that is, the same feature points. Figure 4 A signal transmission schematic diagram provided in an embodiment of the present application, Figure 4 The target object is a building. Due to the limited coverage of the point cloud acquisition device during the acquisition process, it is necessary to transmit signals to the target object at different positions and angles to achieve coverage of the target object. Figure 4 When the point cloud acquisition device transmits signals to the target object at position 1 and position 2 respectively, the point clouds acquired twice include the same feature points falling in the same area. The same area is, for example, Figure 4 The front of the building.

[0062] The embodiment of the present application does not limit the order of acquiring the first point cloud and the second point cloud, which can be acquired synchronously. After the point cloud acquisition device rotates 360 degrees to scan and obtain multiple point clouds, the multiple point clouds are sent to the matching device. The matching device determines the first point cloud and the second point cloud that need to be matched based on whether there are the same feature points in the multiple point clouds. Alternatively, the matching device can also asynchronously acquire the first point cloud and the second point cloud. For example, the matching device first acquires the acquired second point cloud, and when the first point cloud is received, the point cloud with the same feature points is searched according to the first point cloud to obtain the second point cloud.

[0063] Continue with Figure 4 Taking the building shown as an example, the point cloud acquisition device rotates around the building to construct the shape of the building based on the point cloud covering the building. After acquiring multiple point clouds, the multiple point clouds are aligned and registered to obtain the three-dimensional coordinate points of the building composed of multiple point clouds, and during the registration, the point cloud acquisition device continues to be used to collect point clouds at position 1 to obtain the first point cloud, and the first point cloud is sent to the matching device. The matching device searches for point clouds with the same feature points from the three-dimensional coordinate points of the building based on the received first point cloud to obtain a second point cloud. Therefore, the second point cloud can be a point cloud that has not been registered, or it can be a point cloud that has been registered. In addition, the point cloud matching of the second point cloud and other point clouds during the registration process can adopt the point cloud matching method provided in the embodiment of the present application, or other matching methods, which is not limited in the embodiment of the present application.

[0064] S302, partitioning the first point cloud and the second point cloud to obtain a first sub-cloud and a second sub-cloud that have a corresponding relationship.

[0065] Since the first point cloud and the second point cloud are acquired from the same target object, there is a spatial correspondence between the first point cloud and the second point cloud, that is, there is an overlapping area. The matching device can first partition the first point cloud and the second point cloud, and divide the first feature points located in the same area into the same first sub-cloud, and divide the second feature points located in the same area into the same second sub-cloud. Since the number of first feature points included in the first sub-cloud is less than the number of first feature points included in the first point cloud, the amount of point cloud data that needs to be matched is reduced.

[0066] The embodiments of the present application do not limit the process of partitioning the first point cloud and the second point cloud, including but not limited to: dividing the first point cloud into N first sub-clouds according to the spatial characteristics of the first point cloud; dividing the second point cloud into N second sub-clouds according to the spatial characteristics of the second point cloud, and there is a corresponding relationship between the kth first sub-cloud of the first point cloud and the kth second sub-cloud of the second point cloud, N is a positive integer greater than 1, and k is a positive integer not greater than N.

[0067] Since the process of segmenting the first point cloud is similar to the process of segmenting the second point cloud, the first point cloud is used as an example for illustration. Exemplarily, the process of the matching device segmenting the first point cloud into N first sub-clouds includes: determining the index value of each first feature point according to the coordinates of each first feature point included in the first point cloud; and dividing the first feature points with the same index value into the same first sub-cloud to obtain N first sub-clouds.

[0068] In one possible case, the matching device obtains a reference number, which indicates the number of first sub-clouds; the index value of any first feature point is calculated based on the coordinates of any first feature point and the reference number. Among them, the reference number indicates how many first sub-clouds the first point cloud needs to be divided into. When the matching device partitions the first point cloud and obtains ten first sub-clouds distributed in ten areas, the reference number is 10. The embodiment of the present application does not limit the setting method of the reference number, which can be set based on experience, for example, it can be set to 10 based on experience, or it can be set in combination with the implementation environment or randomly. The implementation environment can be the number of multiple first feature points included in the first point cloud and the upper limit of the data processing capacity of the matching device. Taking the number of multiple first feature points as 10,000 as an example, since the processing module of the matching device also needs to perform other tasks in parallel, the matching device supports processing 500 first feature points. In this case, the matching device determines the reference number as 20 based on 10,000 divided by 500. Alternatively, the number of first sub-clouds that need to be divided is determined according to the area of ​​the first point cloud to obtain the reference number.

[0069] Regardless of the method by which the matching device obtains the reference quantity, the index value can be determined based on the reference quantity, thereby obtaining the reference number of first sub-clouds. Taking the coordinates of the first feature point as a three-dimensional coordinate including x-axis, y-axis and z-axis coordinate values ​​as an example, the process of determining the index value is, for example, dividing the multiple coordinate values ​​included in the three-dimensional coordinates by the reference quantity respectively to obtain multiple quotients; the index value is obtained by adding the integer values ​​of each quotient, and the calculation process is shown in Formula 1.

[0070]

[0071] Where (x, y, z) indicates the coordinates of the first feature point, N refers to the reference number, the floor() function is used to round down, the calculation result is the integer digit of the quotient, and index refers to the index value. For example, if the x coordinate value of the first feature point is 21 and N is 10, then By rounding down, the index values ​​of the first feature points that are close to each other and located in the same area are made to be the same. For example, there is another first feature point whose x coordinate value is 23. Although 23 is different from 21, the results of rounding down are both equal to 2.

[0072] The integer digit of the quotient corresponding to the y-axis in formula 1 needs to be multiplied by 10 to advance by 1 digit. For example, if the integer digit of y is 1, then The integer digit of the quotient corresponding to the z axis in formula 1 needs to be multiplied by 100 to advance two digits. For example, if the integer digit of z is 4, then

[0073]

[0074] By performing a shift operation on the values ​​of the integer digits of different quotients, so that different digits of the index value correspond to the integer digits of different quotients, it is ensured that the values ​​of the integer digits of the coordinate values ​​of the first feature point with the same index value are the same, that is, the positions of the first coordinate points with the same index value are close, avoiding the situation where the integer digits of the coordinate values ​​of the first feature points that are far away have different values, but the sum value is the same, resulting in the same index value. For example, the first feature point A (21, 11, 43), the first feature point B (32, 22, 21), the reference number is 10, the values ​​of the integer digits of the quotient of the reference number of the first feature point A and the coordinate value of the second feature point B and the integer digits of the quotient of the reference number are 2, 1, 4 respectively, the values ​​of the integer digits of the quotient of the reference number of the second feature point B and the coordinate value of the first feature point A and the second feature point B are 3, 2, 2 respectively, and the sum value of the first feature point A and the second feature point B is 7. Therefore, in the addition process, the shift operation can be used to obtain the index value 412 of the first feature point A and the index value 223 of the first feature point B. In addition, the matching device may determine the index value based on all coordinate values ​​among the multiple coordinate values, or may determine the index value based on part of the coordinate values, for example, determining the index value based on calculation results of the coordinate values ​​of the x-axis and the y-axis.

[0075] In one possible case, the matching device may also determine the index value of each first feature point based on the coordinates of each first feature point and the reference distance, where the reference distance indicates the size of the area where the first sub-cloud is located. The process of determining the reference distance is similar to the process of determining the reference quantity. Please refer to the above-mentioned content on determining the reference quantity, which will not be repeated here. Similar to the process of determining the index value based on the reference quantity, the matching device may also determine the index value based on the reference distance based on all coordinate values ​​and partial coordinate values. Next, taking the partial coordinate value as the coordinate value of the x-axis as an example, the matching device may divide the coordinate value of the x-axis by the reference distance, and use the integer digits of the quotient as the index value of the first feature point to partition the first point cloud according to the distance.

[0076] After calculating the index value of each first feature point, the matching device can divide the first feature points with the same index value into the same point cloud subset. For example, if the index values ​​of multiple first feature points such as the first feature point 1, the first feature point 2, the first feature point 3, etc. are all 412, then the divided first sub-cloud includes the first feature point 1, the first feature point 2, the first feature point 3, etc. Figure 5A distribution diagram of a first sub-cloud provided in an embodiment of the present application, Figure 5 The first point cloud is divided into 6 first sub-clouds, and the area corresponding to the divided first sub-clouds includes a rectangle. Figure 6 Another distribution diagram of the first sub-cloud provided in the embodiment of the present application, corresponding to determining the index value according to the reference distance and the coordinate value of the x-axis, see Figure 6 , the first point cloud is divided into three rectangles, and the length of each rectangle on the x-axis is the reference distance. In addition, in the process of partitioning the first point cloud, the matching device may partition the first point cloud into first sub-clouds located in different rectangular areas, or into first sub-clouds located in different spherical areas, or other area shapes, which is not limited in the embodiments of the present application.

[0077] Exemplarily, the matching device can partition the second point cloud into N second sub-clouds based on a similar operation as partitioning the first point cloud into N first sub-clouds, and the reference number or reference distance used in the partitioning process for the second point cloud and the first point cloud is the same, and the coordinates of the first feature point and the second feature point are coordinates located in the same coordinate system, which can be the coordinate system of the second point cloud or the first point cloud, for example, the first point cloud is placed in the coordinate system of the second point cloud, or the second point cloud is placed in the coordinate system of the first point cloud, which can also be a world coordinate system.

[0078] Optionally, among the N first sub-clouds and the N second sub-clouds obtained by partitioning the first sub-cloud and the second sub-cloud, there is a sub-cloud that falls in the same area, and there is a corresponding relationship between the first sub-cloud and the second sub-cloud that fall in the same area. Figure 5 For example, the N first sub-clouds include a first sub-cloud that falls in the black area, and the N second sub-clouds also include a second sub-cloud that falls in the black area. Then, there is a corresponding relationship between the first sub-cloud and the second sub-cloud that fall in the black area.

[0079] S303: performing point cloud matching on the first sub-cloud and the second sub-cloud corresponding to the first sub-cloud.

[0080] In one possible case, before performing point cloud matching, the matching device will also verify the N first sub-clouds and N second sub-clouds obtained by partitioning, and the verification process includes but is not limited to: determining a first evaluation result of the N first sub-clouds based on the number of first feature points included in each of the N first sub-clouds, the first evaluation result indicating the uniform distribution degree of the N first sub-clouds; determining a second evaluation result of the N second sub-clouds based on the number of second feature points included in each of the N second sub-clouds, the second evaluation result indicating the uniform distribution degree of the N second sub-clouds; adjusting the N first sub-clouds and the N second sub-clouds based on the first evaluation results and the second evaluation results, and performing a point cloud matching operation on the first sub-clouds and the second sub-clouds corresponding to the first sub-clouds based on the adjusted N first sub-clouds and N second sub-clouds.

[0081] Since the process of determining the first evaluation result is similar to the process of determining the second evaluation result, the process of determining the first evaluation result is taken as an example to illustrate the process. The determination process can be carried out in the following two ways, including but not limited to the following two ways.

[0082] Determination method 1: in the case where the first evaluation result includes variance, the variance of the N first sub-clouds is determined according to the first total number of first feature points included in each first sub-cloud.

[0083] Exemplarily, the matching device counts the average of the first total number of N first sub-clouds based on the first total number of first feature points included in each first sub-cloud, determines the square value of the difference between the first total number of each first sub-cloud and the average number, and averages the multiple square values ​​to obtain the variance of the N first sub-clouds. Since the average number indicates the number of first feature points that each first point cloud should include when the multiple first feature points included in the first point cloud are evenly distributed to the N first point clouds, the more uniform the distribution of each first point cloud is, the closer the first total number of each first point cloud is to the average number, the smaller the difference between the first total number and the average number is, and the smaller the calculated variance is.

[0084] Determination method two: in the case where the first evaluation result includes the first sub-cloud number, compare the first total number of first feature points included in each first sub-cloud with the reference threshold respectively; and determine the first sub-cloud number of the first sub-cloud whose first total number exceeds the reference threshold.

[0085] The reference threshold value may be set based on experience and is used to indicate the number of first feature points expected to be included in each first sub-cloud. Afterwards, the matching device determines the relationship between the first total number of each first sub-cloud and the reference threshold value. When the first total number is greater than the reference threshold value, the matching device adds 1 to the number of first sub-clouds. When the first total number is not greater than the reference threshold value, the matching device does not adjust the number of first sub-clouds, thereby determining the number of first sub-clouds exceeding the reference threshold value among the N first sub-clouds.

[0086] The matching device may perform similar operations to obtain the second evaluation result corresponding to the determination process of the first evaluation result. For the first evaluation result and the second evaluation result determined by the determination method 1 or the determination method 2, the matching device may also use different methods to adjust the N first sub-clouds and the N second sub-clouds according to the first evaluation result and the second evaluation result. For the case where the first evaluation result corresponding to the determination method 1 includes the variance of the N first sub-clouds and the second evaluation result includes the variance of the N second sub-clouds, the matching device may respectively compare the size relationship between the variance of the N first sub-clouds and the first threshold value set based on experience, and the size relationship between the variance of the N second sub-clouds and the first threshold value. When any one of the variances of the N first sub-clouds and the variances of the N second sub-clouds is greater than the first threshold value, it is determined that the N first sub-clouds and the N second sub-clouds are unevenly distributed and need to be adjusted. When the variances of the N first sub-clouds and the variances of the N second sub-clouds are not greater than the first threshold value, it is determined that the N first sub-clouds and the N second sub-clouds are evenly distributed and no adjustment is required.

[0087] In the case where the first evaluation result corresponding to the second determination method includes the first sub-cloud number, and the second evaluation result includes the second sub-cloud number, the matching device can respectively compare the size relationship between the first sub-cloud number and the second threshold value set based on experience, and the size relationship between the second sub-cloud number and the second threshold value, and the second threshold value indicates the upper limit of the tolerance of the matching device. In the case where either the first sub-cloud number or the second sub-cloud number is greater than the second threshold value, it is determined that the N first sub-clouds and the N second sub-clouds are unevenly distributed and need to be adjusted. On the contrary, in the case where both the first sub-cloud number and the second sub-cloud number are not greater than the second threshold value, it is determined that the N first sub-clouds and the N second sub-clouds are evenly distributed and no adjustment is required.

[0088] Optionally, the matching device may also jointly determine method one and method two to obtain a first evaluation result including the number of first sub-clouds and the variance of the N first sub-clouds, and a second evaluation result including the number of second sub-clouds and the variance of the N second sub-clouds. In this case, the matching device determines that the N first sub-clouds and the N second sub-clouds need to be adjusted when any comparison result between the variance and the number of sub-clouds indicates that adjustment is required.

[0089] Exemplarily, the matching device may adjust the reference number or reference distance used in the partitioning process, and redetermine the index value based on the adjusted reference number or reference distance to obtain a new first sub-cloud and a new second sub-cloud. It is also possible to determine a target area that needs to be adjusted based on the N first sub-clouds and the N second sub-clouds, and divide the first sub-cloud and the second sub-cloud in the target area to obtain multiple first sub-clouds and multiple second sub-clouds. For example, the number of first sub-clouds and second sub-clouds falling in area A are both greater than the reference threshold, and area A is the target area. The matching device divides the first sub-cloud in area A into a first sub-cloud 1 falling in area A1 and a first sub-cloud 2 falling in area A2, and divides the second sub-cloud into a second sub-cloud 1 falling in area A1 and a first sub-cloud 2 falling in area A2.

[0090] Regardless of whether the matching device adjusts the N first sub-clouds and the N second sub-clouds, the matching device can perform point cloud matching based on the N first sub-clouds and the N second sub-clouds. In one possible case, since the matching device determines the index value of the feature points in the process of dividing the feature points included in each sub-cloud, each first sub-cloud corresponds to an index value. Since the index value is calculated based on the coordinates, when the index values ​​corresponding to the first sub-cloud and the second sub-cloud are the same, it means that the first sub-cloud and the second sub-cloud are located in the same area. Therefore, the matching device can determine the first sub-cloud and the second sub-cloud that have a corresponding relationship based on the index value.

[0091] In a possible implementation, the matching device may determine the first sub-cloud and the second sub-cloud with the same index value as the first sub-cloud and the second sub-cloud with a corresponding relationship. The N first sub-clouds and the N second sub-clouds may also be sorted according to the index values ​​to obtain labels from 1 to N. Figure 6 For example, when N is 3, the numbers of the three first sub-clouds from left to right are 1, 2, and 3. When the numbers of the first sub-cloud and the second sub-cloud are the same, for example, both are equal to k, it is determined that there is a corresponding relationship between the first sub-cloud and the second sub-cloud, where k is a positive integer not greater than N.

[0092] Optionally, there may be multiple groups of corresponding first sub-clouds and second sub-clouds among the N first sub-clouds and the N second sub-clouds, or there may be one group of corresponding first sub-clouds and second sub-clouds. This embodiment of the present application is not limited to this. Next, point cloud matching of any group of corresponding first sub-clouds and second sub-clouds is taken as an example for explanation.

[0093] In one possible case, the matching device first compares the first total number of first feature points included in the first sub-cloud with the quantity threshold, and compares the second total number of second feature points included in the second sub-cloud corresponding to the first sub-cloud with the quantity threshold; and selects a matching method according to the comparison result. Exemplarily, when both the first total number and the second total number are not higher than the quantity threshold, the matching device may select matching method 1, respectively calculating the distance value between any first feature point included in the first sub-cloud and each second feature point included in the second sub-cloud corresponding to the first sub-cloud, and determining the second feature point with the smallest distance value as the second feature point matched by any first feature point.

[0094] Figure 7 A schematic diagram of point cloud matching provided in an embodiment of the present application, Figure 7 The black circle on the left is the first feature point included in the first sub-cloud, and the white circle on the right is the second feature point included in the second sub-cloud. Figure 7 The first sub-cloud and the second sub-cloud in are located in the same area, for example Figure 8 As shown, Figure 8 Temporarily shown in black Figure 7 The first feature point that needs to be calculated for distance, Figure 7 The second characteristic point shown in Figure 8 A part of the second feature point in . Figure 8 , the first sub-cloud and the second sub-cloud are both located in the rectangular area. The matching device can be as follows Figure 7 As shown, the distance between any first feature point and each second feature point included in the second sub-cloud is calculated respectively, and the calculation formula is, for example, Formula 2.

[0095]

[0096] Among them, the dist() function is used to calculate the distance, i is the identifier of the first feature point, j is the identifier of the second feature point, a refers to the first total number of first feature points included in the first sub-cloud, and b refers to the second total number of second feature points included in the second sub-cloud. The matching device calculates the distance between any first feature point and each second feature point through formula 2, and determines the second feature point with the smallest distance as the second feature point that matches any first feature point to achieve neighbor point matching. Matching method 1 can be called brute force calculation in some cases.

[0097] In one possible implementation, when either the first total or the second total is higher than the quantity threshold, the matching device may select matching method two, search in the index tree according to the coordinates of any first feature point in the first sub-cloud, determine the second feature point that matches any first feature point according to the search results, and construct the index tree based on the coordinates of each second feature point included in the second sub-cloud corresponding to the first sub-cloud.

[0098] Fig. 9 A schematic diagram of constructing an index tree provided in an embodiment of the present application, Fig. 9 The left picture shows the second feature points included in the second sub-cloud, which are A, B,…,F respectively. Fig. 9 In the example, A(2,3) is used as the starting point. B, C, D, E, and F are divided into two groups according to whether the x value is less than 2, namely B with a value less than 2 and C, D, E, and F with a value greater than 2. C is selected as the leaf node among C, D, E, and F. Since the y values ​​of D, E, and F are all less than the y value of C, D, E, and F are all located on the right. By switching the x value and y value continuously, we get the following: Fig. 9 The index tree is shown in the right figure. Fig. 9 Taking xy coordinates as an example, the generation process of the index tree is described. In one possible case, in the process of establishing the index tree according to each second feature point, the matching device constructs it with xyz three-dimensional coordinates, that is, the index tree is divided into x-axis-y-axis-z-axis, etc. In addition, the index tree can be Fig. 9 The K-dimensional tree shown may also have other structures.

[0099] Optionally, the index tree constructed by the matching device includes each second feature point in the second sub-cloud. For any first feature point that needs to be matched, the matching device can search in the index tree according to the coordinates of any first feature point, such as (3, 4, 0). The matching device first determines whether it is on the left or right side of the index tree according to the x value of 3. After determining that it is on the right side, it determines whether it is on the left or right side according to the y value of 4, etc. By searching in sequence through the three-dimensional coordinates, the second feature point closest to any first feature point is obtained, that is, the matched second feature point.

[0100] Since the matching efficiency of matching method 1 is higher than that of matching method 2 when the number of feature points of the first sub-cloud and the second sub-cloud is small, the matching method suitable for the number of feature points can be selected by combining the first total number and the second total number with the quantity threshold, and then when the number of feature points is small, the efficient matching method 1 is adopted, and when the number of feature points is large, the matching method 2 is switched to improve the matching efficiency. In addition, in the case where there may be multiple groups of corresponding first sub-clouds and second sub-clouds in N first sub-clouds and N second sub-clouds, the matching device can traverse multiple first sub-clouds in sequence, and perform point cloud matching on each first sub-cloud and the second sub-cloud corresponding to the first sub-cloud, and the matching methods used by different first sub-clouds can be the same or different.

[0101] In a possible case, the matching device can also perform matching according to a point cloud matching method, for example, directly using matching method 1, calculating the distance between any first feature point and each second feature point in the second sub-cloud, and determining the second feature point with the shortest distance as the second feature point matched by any first feature point according to the calculated distance. Since matching method 1 does not involve operations such as judgment in the index tree, point cloud matching based on matching method 1 is suitable for heterogeneous scenarios, such as Fig.10 As shown, Fig.10 The dashed box indicates that the operation can be parallelized by heterogeneous scenarios such as the graphics processing unit (GPU) / embedded neural processing unit (NPU), and the solid box indicates that it can be processed by the CPU. The point cloud matching is uniformly performed using matching method 1. The matching process can be interactively executed by different modules, sharing the data processing tasks of different modules, and the processing efficiency is high.

[0102] In summary, the point cloud matching method provided in the embodiment of the present application first partitions the first point cloud and the second point cloud that need to be matched, and determines the first sub-cloud and the second sub-cloud in the same area, that is, the first sub-cloud and the second sub-cloud that have a corresponding relationship. In the subsequent point cloud matching process, only the sub-clouds with a corresponding relationship can be matched, which effectively reduces the amount of data of the point cloud that needs to be matched and improves the point cloud matching efficiency. The partitioning process is not limited. The number of first sub-clouds that need to be divided can be determined first, or the size of each area can be determined first. The partitioning process is flexible and diverse. The number of feature points included in the point cloud is compared with the number threshold to select a matching method that is more suitable for the number of feature points, which improves the calculation efficiency. For the case of directly calculating the distance between each first feature point and the second feature point for point cloud matching, it is suitable for heterogeneous scenarios and has high versatility.

[0103] The point cloud matching method of the embodiment of the present application is introduced above. Corresponding to the above method, the embodiment of the present application also provides a point cloud matching device. Fig.11 Schematic diagram of the structure of a point cloud matching device provided in an embodiment of the present application. Fig.11 As shown in the following multiple modules, the Fig.11 The point cloud matching device shown can perform the above Figure 3 It should be understood that the device may include more additional modules than the modules shown or omit some of the modules shown, and the embodiments of the present application are not limited to this. Fig.11 As shown, the device comprises:

[0104] An acquisition module 1101 is used to acquire a first point cloud and a second point cloud that need to be matched, wherein the first point cloud and the second point cloud include the same feature points;

[0105] A partitioning module 1102 is used to partition the first point cloud and the second point cloud to obtain a first sub-cloud and a second sub-cloud that have a corresponding relationship;

[0106] The matching module 1103 is used to perform point cloud matching on the first sub-cloud and the second sub-cloud corresponding to the first sub-cloud.

[0107] In one possible implementation, the partitioning module 1102 is used to divide the first point cloud into N first sub-clouds according to the spatial characteristics of the first point cloud; and divide the second point cloud into N second sub-clouds according to the spatial characteristics of the second point cloud, and there is a corresponding relationship between the kth first sub-cloud of the first point cloud and the kth second sub-cloud of the second point cloud, N is a positive integer greater than 1, and k is a positive integer not greater than N.

[0108] In a possible implementation, the partitioning module 1102 is used to determine the index value of each first feature point according to the coordinates of each first feature point included in the first point cloud; and divide the first feature points with the same index value into the same first sub-cloud to obtain N first sub-clouds.

[0109] In a possible implementation, the partitioning module 1102 is configured to determine a reference number, where the reference number indicates the number of first sub-clouds; and calculate an index value of any first feature point according to the coordinates of any first feature point and the reference number.

[0110] In a possible implementation, the coordinates include three-dimensional coordinates, and the partition module 1102 is used to divide the multiple coordinate values ​​included in the three-dimensional coordinates by the reference number respectively to obtain multiple quotients; and obtain the index value by adding the values ​​of the integer bits of each quotient.

[0111] In a possible implementation, the partitioning module 1102 is further used to determine a first evaluation result of the N first sub-clouds according to the number of first feature points included in each of the N first sub-clouds, the first evaluation result indicating the uniform distribution degree of the N first sub-clouds; determine a second evaluation result of the N second sub-clouds according to the number of second feature points included in each of the N second sub-clouds, the second evaluation result indicating the uniform distribution degree of the N second sub-clouds; adjust the N first sub-clouds and the N second sub-clouds according to the first evaluation result and the second evaluation result, and the matching module 1103 is further used to perform a point cloud matching operation on the first sub-clouds and the second sub-clouds corresponding to the first sub-clouds according to the adjusted N first sub-clouds and N second sub-clouds.

[0112] In a possible implementation, the matching module 1103 is used to respectively calculate the distance values ​​between any first feature point included in the first sub-cloud and each second feature point included in the second sub-cloud corresponding to the first sub-cloud, and determine the second feature point with the smallest distance value as the second feature point matching any first feature point.

[0113] In a possible implementation, the matching module 1103 is further used to compare a first total number of first feature points included in the first sub-cloud with a quantity threshold, and to compare a second total number of second feature points included in a second sub-cloud corresponding to the first sub-cloud with the quantity threshold; when both the first total number and the second total number are not higher than the quantity threshold, an operation of respectively calculating the distance values ​​between any first feature point included in the first sub-cloud and each second feature point included in the second sub-cloud corresponding to the first sub-cloud is performed.

[0114] In one possible implementation, the matching module 1103 is used to search in the index tree according to the coordinates of any first feature point in the first sub-cloud, determine the second feature point matching any first feature point according to the search results, and the index tree is constructed based on the coordinates of each second feature point included in the second sub-cloud corresponding to the first sub-cloud.

[0115] In a possible implementation, the matching module 1103 is further used to compare a first total number of first feature points included in the first sub-cloud with a quantity threshold, and to compare a second total number of second feature points included in a second sub-cloud corresponding to the first sub-cloud with the quantity threshold; when either the first total number or the second total number is higher than the quantity threshold, an operation of retrieving in the index tree according to the coordinates of any first feature point in the first sub-cloud is performed.

[0116] The above-mentioned device first partitions the first point cloud and the second point cloud that need to be matched to obtain the first sub-cloud and the second sub-cloud that have a corresponding relationship. In the subsequent point cloud matching process, it can be achieved by matching the sub-clouds that have a corresponding relationship, which effectively reduces the data volume of the point clouds that need to be matched and improves the point cloud matching efficiency.

[0117] It should be understood that the above Fig.11 When the device provided realizes its functions, only the division of the above-mentioned functional modules is used as an example for illustration. In practical applications, the above-mentioned functions can be assigned to different functional modules as needed, that is, the internal structure of the device is divided into different functional modules to complete all or part of the functions described above. In addition, the device and method embodiments provided in the above embodiments belong to the same concept, and their specific implementation process is detailed in the method embodiment, which will not be repeated here.

[0118] See also Fig.12 , Fig.12 A schematic diagram of the structure of a network device 1200 provided by an exemplary embodiment of the present application is shown. Fig.12 The network device 1200 shown is used to perform the above Figure 3 The operations involved in the point cloud matching method shown in FIG. 1 are as follows: The network device 1200 is, for example, a switch, a router, etc. The network device 1200 can be implemented by a general bus architecture.

[0119] like Fig.12 As shown, the network device 1200 includes at least one processor 1201 , a memory 1203 , and at least one communication interface 1204 .

[0120] Processor 1201 is, for example, a general-purpose central processing unit (CPU), a digital signal processor (DSP), a network processor (NP), a graphics processing unit (GPU), a neural-network processing units (NPU), a data processing unit (DPU), a microprocessor, or one or more integrated circuits for implementing the solution of the present application. For example, processor 1201 includes an application-specific integrated circuit (ASIC), a programmable logic device (PLD) or other programmable logic devices, transistor logic devices, hardware components, or any combination thereof. PLD is, for example, a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof. It can implement or execute various logic blocks, modules, and circuits described in conjunction with the disclosure of the embodiments of the present application. The processor can also be a combination that implements a computing function, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.

[0121] Optionally, the network device 1200 further includes a bus. The bus is used to transmit information between the components of the network device 1200. The bus may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus. The bus may be divided into an address bus, a data bus, a control bus, etc. For ease of representation, Fig.12 Only one thick line is used in the diagram, but this does not mean that there is only one bus or only one type of bus.

[0122] The memory 1203 is, for example, a read-only memory (ROM) or other types of static storage devices that can store static information and instructions, or a random access memory (RAM) or other types of dynamic storage devices that can store information and instructions, or an electrically erasable programmable read-only memory (EEPROM), a compact disc read-only memory (CD-ROM) or other optical disc storage, optical disc storage (including compressed optical disc, laser disc, optical disc, digital versatile disc, Blu-ray disc, etc.), a magnetic disk storage medium or other magnetic storage device, or any other medium that can be used to carry or store the desired program code in the form of instructions or data structures and can be accessed by a computer, but is not limited thereto. The memory 1203 is, for example, independent and connected to the processor 1201 via a bus. The memory 1203 can also be integrated with the processor 1201.

[0123] The communication interface 1204 uses any transceiver-like device for communicating with other devices or communication networks, and the communication network can be Ethernet, a radio access network (RAN) or a wireless local area network (WLAN), etc. The communication interface 1204 may include a wired communication interface and may also include a wireless communication interface. Specifically, the communication interface 1204 may be an Ethernet interface, a fast Ethernet (FE) interface, a gigabit Ethernet (GE) interface, an asynchronous transfer mode (ATM) interface, a wireless local area network (WLAN) interface, a cellular network communication interface or a combination thereof. The Ethernet interface may be an optical interface, an electrical interface or a combination thereof. In an embodiment of the present application, the communication interface 1204 may be used for the network device 1200 to communicate with other devices.

[0124] In a specific implementation, as an embodiment, the processor 1201 may include one or more CPUs, such as Fig.12 0 and CPU1 shown in FIG. Each of these processors may be a single-CPU processor or a multi-CPU processor. A processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (e.g., computer program instructions).

[0125] In a specific implementation, as an embodiment, the network device 1200 may include multiple processors, such as Fig.12 1 and 1205. Each of these processors may be a single-core processor (single-CPU) or a multi-core processor (multi-CPU). A processor herein may refer to one or more devices, circuits, and / or processing cores for processing data (such as computer program instructions).

[0126] In a specific implementation, as an embodiment, the network device 1200 may also include an output device and an input device. The output device communicates with the processor 1201 and can display information in a variety of ways. For example, the output device may be a liquid crystal display (LCD), a light emitting diode (LED) display device, a cathode ray tube (CRT) display device, or a projector. The input device communicates with the processor 1201 and can receive user input in a variety of ways. For example, the input device may be a mouse, a keyboard, a touch screen device, or a sensor device.

[0127] In some embodiments, the memory 1203 is used to store the program code 1210 for executing the solution of the present application, and the processor 1201 can execute the program code 1210 stored in the memory 1203. That is, the network device 1200 can implement the point cloud matching method provided by the method embodiment through the processor 1201 and the program code 1210 in the memory 1203. The program code 1210 may include one or more software modules. Optionally, the processor 1201 itself may also store the program code or instruction for executing the solution of the present application.

[0128] In a specific embodiment, the network device 1200 of the embodiment of the present application may correspond to the computing device in the above-mentioned various method embodiments.

[0129] in, Figure 3 Each step of the point cloud matching method shown is completed by an integrated logic circuit of hardware or software instructions in the processor of the network device 1200. The steps of the method disclosed in conjunction with the embodiment of the present application can be directly embodied as being executed by a hardware processor, or can be executed by a combination of hardware and software modules in the processor. The software module can be located in a mature storage medium in the art such as a random access memory, a flash memory, a read-only memory, a programmable read-only memory or an electrically erasable programmable memory, a register, etc. The storage medium is located in the memory, and the processor reads the information in the memory and completes the steps of the above method in conjunction with its hardware. To avoid repetition, it will not be described in detail here.

[0130] See also Fig.13 , Fig.13 FIG. 1 shows a schematic diagram of the structure of a network device 1300 provided by another exemplary embodiment of the present application. Fig.13 The network device 1300 shown is used to perform the above Figure 3 All or part of the operations involved in the point cloud matching method shown. The network device 1300 is, for example, a switch, a router, etc. The network device 1300 can be implemented by a general bus architecture.

[0131] like Fig.13 As shown, the network device 1300 includes: a main control board 1310 and an interface board 1330 .

[0132] The main control board is also called a main processing unit (MPU) or a route processor card. The main control board 1310 is used to control and manage various components in the network device 1300, including routing calculation, device management, device maintenance, and protocol processing functions. The main control board 1310 includes: a central processing unit 1311 and a memory 1312.

[0133] The interface board 1330 is also called a line processing unit (LPU), a line card or a service board. The interface board 1330 is used to provide various service interfaces and implement data packet forwarding. Service interfaces include but are not limited to Ethernet interfaces, POS (Packet over SONET / SDH) interfaces, etc., and Ethernet interfaces are, for example, Flexible Ethernet Clients (FlexE Clients). The interface board 1330 includes: a central processing unit 1331, a network processor 1332, a forwarding table entry memory 1334 and a physical interface card (physical interface card, PIC) 1333.

[0134] The central processor 1331 on the interface board 1330 is used to control and manage the interface board 1330 and communicate with the central processor 1311 on the main control board 1310 .

[0135] The network processor 1332 is used to implement the forwarding processing of the message. The network processor 1332 can be in the form of a forwarding chip. The forwarding chip can be a network processor (NP). In some embodiments, the forwarding chip can be implemented by an application-specific integrated circuit (ASIC) or a field programmable gate array (FPGA). Specifically, the network processor 1332 is used to forward the received message based on the forwarding table stored in the forwarding table entry memory 1334. If the destination address of the message is the address of the network device 1300, the message is sent to the CPU (such as the central processor 1331) for processing; if the destination address of the message is not the address of the network device 1300, the next hop and the output interface corresponding to the destination address are found from the forwarding table according to the destination address, and the message is forwarded to the output interface corresponding to the destination address. Among them, the processing of the uplink message may include: processing of the message input interface, forwarding table search; the processing of the downlink message may include: forwarding table search, etc. In some embodiments, the central processor can also perform the function of the forwarding chip, such as implementing software forwarding based on a general-purpose CPU, so that the forwarding chip is not required in the interface board.

[0136] The physical interface card 1333 is used to implement the docking function of the physical layer, and the original traffic enters the interface board 1330 from it, and the processed message is sent from the physical interface card 1333. The physical interface card 1333 is also called a daughter card, which can be installed on the interface board 1330 and is responsible for converting the optical signal into a message and forwarding the message to the network processor 1332 for processing after checking the legitimacy of the message. In some embodiments, the central processor 1331 can also perform the functions of the network processor 1332, such as implementing software forwarding based on a general-purpose CPU, so that the network processor 1332 is not required in the physical interface card 1333.

[0137] Optionally, the network device 1300 includes multiple interface boards, for example, the network device 1300 further includes an interface board 1340, and the interface board 1340 includes: a central processor 1341, a network processor 1342, a forwarding table entry memory 1344, and a physical interface card 1343. The functions and implementation methods of the components in the interface board 1340 are the same or similar to those of the interface board 1330, and are not described in detail here.

[0138] Optionally, the network device 1300 further includes a switching fabric board 1320. The switching fabric board 1320 may also be referred to as a switch fabric unit (SFU). When the network device 1300 has multiple interface boards, the switching fabric board 1320 is used to complete data exchange between the interface boards. For example, the interface board 1330 and the interface board 1340 may communicate via the switching fabric board 1320.

[0139] The main control board 1310 is coupled to the interface board. For example, the main control board 1310, the interface board 1330, the interface board 1340, and the switching network board 1320 are connected to the system backplane through a system bus to achieve intercommunication. In a possible implementation, an inter-process communication (IPC) channel is established between the main control board 1310 and the interface board 1330 and the interface board 1340, and the main control board 1310 and the interface board 1330 and the interface board 1340 communicate through the IPC channel.

[0140] Logically, the network device 1300 includes a control plane and a forwarding plane. The control plane includes a main control board 1310 and a central processing unit 1311. The forwarding plane includes various components for performing forwarding, such as a forwarding table entry memory 1334, a physical interface card 1333, and a network processor 1332. The control plane performs functions such as a router, generating a forwarding table, processing signaling and protocol messages, and configuring and maintaining the status of the network device. The control plane sends the generated forwarding table to the forwarding plane. On the forwarding plane, the network processor 1332 forwards the message received by the physical interface card 1333 based on the forwarding table sent by the control plane. The forwarding table sent by the control plane can be stored in the forwarding table entry memory 1334. In some embodiments, the control plane and the forwarding plane can be completely separated and not on the same network device.

[0141] It is worth noting that there may be one or more main control boards, and when there are multiple boards, they may include a primary main control board and a backup main control board. There may be one or more interface boards. The stronger the data processing capability of the network device, the more interface boards are provided. There may also be one or more physical interface cards on the interface board. There may be no switching network board, or there may be one or more switching network boards. When there are multiple switching network boards, they can jointly realize load sharing and redundant backup. In a centralized forwarding architecture, network devices may not need switching network boards, and the interface board is responsible for processing the service data of the entire system. In a distributed forwarding architecture, network devices may have at least one switching network board, and data exchange between multiple interface boards is realized through the switching network board, providing large-capacity data exchange and processing capabilities. Therefore, the data access and processing capabilities of network devices with distributed architectures are greater than those of network devices with centralized architectures. Optionally, the network device may have only one board, that is, no switching board, and the functions of the interface board and the main control board are integrated on the board. In this case, the central processor on the interface board and the central processor on the main control board can be combined into one central processor on the board to perform the functions of the two. This type of network device has low data exchange and processing capabilities (for example, low-end switches or routers and other network devices). The specific architecture to be adopted depends on the specific networking deployment scenario, and no limitation is made here.

[0142] In a specific embodiment, the network device 1300 corresponds to the above Fig.11 In some embodiments, Fig.11 The partition module 1102 in the point cloud matching device shown is equivalent to the central processor 1311 or the network processor 1332 in the network device 1300 .

[0143] The embodiment of the present application also provides a communication device, which includes: a transceiver, a memory, and a processor. The transceiver, the memory, and the processor communicate with each other through an internal connection path, the memory is used to store instructions, and the processor is used to execute the instructions stored in the memory to control the transceiver to receive signals and control the transceiver to send signals, and when the processor executes the instructions stored in the memory, the processor executes the point cloud matching method.

[0144] It should be understood that the processor may be a CPU, or other general-purpose processors, DSPs, ASICs, FPGAs or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc. A general-purpose processor may be a microprocessor or any conventional processor, etc. It is worth noting that the processor may be a processor supporting an advanced RISC machines (ARM) architecture.

[0145] Further, in an optional embodiment, the memory may include a read-only memory and a random access memory, and provide instructions and data to the processor. The memory may also include a non-volatile random access memory. For example, the memory may also store information about the device type.

[0146] The memory may be a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memory. Among them, the nonvolatile memory may be a ROM, a programmable read-only memory (programmable ROM, PROM), an erasable programmable read-only memory (erasable PROM, EPROM), an EEPROM or a flash memory. The volatile memory may be a RAM, which is used as an external cache. By way of example but not limitation, many forms of RAM are available. For example, static random access memory (static RAM, SRAM), dynamic random access memory (dynamic random access memory, DRAM), synchronous dynamic random access memory (synchronous DRAM, SDRAM), double data rate synchronous dynamic random access memory (doubledata rate SDRAM, DDR SDRAM), enhanced synchronous dynamic random access memory (enhanced SDRAM, ESDRAM), synchronous connection dynamic random access memory (synchlink DRAM, SLDRAM) and direct memory bus random access memory (direct rambus RAM, DR RAM).

[0147] The embodiment of the present application also provides a point cloud matching device, the device includes a processor, the processor is used to load and run at least one instruction, so that the point cloud matching device implements the point cloud matching method provided in the embodiment of the present application. Optionally, the device also includes a memory, the memory is coupled to the processor, and the memory is used to store at least one instruction.

[0148] An embodiment of the present application also provides a computer-readable storage medium, in which at least one instruction is stored. The instruction is loaded and executed by a processor so that a computer implements any of the point cloud matching methods described above.

[0149] The embodiments of the present application also provide a computer program (product), which, when executed by a computer, can enable a processor or a computer to execute the corresponding steps and / or processes in the above method embodiments.

[0150] An embodiment of the present application also provides a chip, which includes a processor for calling and executing instructions stored in a memory from the memory, so that a communication device equipped with the chip executes any of the point cloud matching methods described above.

[0151] An embodiment of the present application also provides another chip, including: an input interface, an output interface, a processor and a memory, wherein the input interface, the output interface, the processor and the memory are connected via an internal connection path, and the processor is used to execute the code in the memory. When the code is executed, the processor is used to execute any of the point cloud matching methods described above.

[0152] In the above embodiments, it can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in this application is generated in whole or in part. The computer can be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions can be stored in a computer-readable storage medium, or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions can be transmitted from a website site, computer, server or data center to another website site, computer, server or data center by wired (e.g., coaxial cable, optical fiber, digital subscriber line) or wireless (e.g., infrared, wireless, microwave, etc.) mode. The computer-readable storage medium can be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integration. The available medium can be a magnetic medium (e.g., a floppy disk, a hard disk, a tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state hard disk Solid State Disk), etc.

[0153] It should be noted that the information (including but not limited to user device information, user personal information, etc.), data (including but not limited to data used for analysis, stored data, displayed data, etc.) and signals involved in this application are all authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions. For example, the first point cloud and the second point cloud involved in this application are obtained with full authorization.

[0154] Those of ordinary skill in the art will appreciate that, in conjunction with the various method steps and modules described in the embodiments disclosed herein, they can be implemented in software, hardware, firmware, or any combination thereof. In order to clearly illustrate the interchangeability of hardware and software, the steps and components of each embodiment have been generally described in terms of function in the above description. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Those of ordinary skill in the art may use different methods to implement the described functions for each specific application, but such implementation should not be considered to be beyond the scope of this application.

[0155] A person skilled in the art will understand that all or part of the steps to implement the above embodiments may be accomplished by hardware or by instructing related hardware through a program, and the program may be stored in a computer-readable storage medium, and the above-mentioned storage medium may be a read-only memory, a disk or an optical disk, etc.

[0156] When software is used for implementation, it can be implemented in whole or in part in the form of a computer program product. The computer program product includes one or more computer program instructions. As an example, the method of the embodiment of the present application can be described in the context of a machine executable instruction, and the machine executable instruction is such as included in the program module executed in the device on the real or virtual processor of the target. Generally speaking, a program module includes a routine, a program, a library, an object, a class, a component, a data structure, etc., which performs a specific task or realizes a specific abstract data structure. In various embodiments, the function of the program module can be merged or divided between the described program modules. The machine executable instruction for the program module can be executed in a local or distributed device. In a distributed device, the program module can be located in both a local and a remote storage medium.

[0157] The computer program code for implementing the method of the embodiment of the present application can be written in one or more programming languages. These computer program codes can be provided to the processor of a general-purpose computer, a special-purpose computer, or other programmable point cloud matching device, so that when the program code is executed by the computer or other programmable point cloud matching device, the functions / operations specified in the flow chart and / or block diagram are implemented. The program code can be executed entirely on the computer, partially on the computer, as a separate software package, partially on the computer and partially on a remote computer, or entirely on a remote computer or server.

[0158] In the context of the embodiments of the present application, computer program codes or related data may be carried by any appropriate carrier to enable a device, apparatus or processor to perform the various processes and operations described above. Examples of carriers include signals, computer-readable media, and the like.

[0159] Examples of signals may include electrical, optical, radio, acoustic or other forms of propagated signals, such as carrier waves, infrared signals, etc.

[0160] A machine-readable medium may be any tangible medium that contains or stores a program for or related to an instruction execution system, apparatus, or device. A machine-readable medium may be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium may include, but is not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination thereof. More detailed examples of machine-readable storage media include an electrical connection with one or more wires, a portable computer 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 storage device, a magnetic storage device, or any suitable combination thereof.

[0161] Those skilled in the art can clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and modules described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0162] In the several embodiments provided in the present application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are only schematic. For example, the division of the module is only a logical function division. There may be other division methods in actual implementation, such as multiple modules or components can be combined or integrated into another system, or some features can be ignored or not executed. In addition, the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or modules, or it can be an electrical, mechanical or other form of connection.

[0163] The modules described as separate components may or may not be physically separated, and the components displayed as modules may or may not be physical modules, that is, they may be located in one place or distributed on multiple network modules. Some or all of the modules may be selected according to actual needs to achieve the purpose of the embodiments of the present application.

[0164] In addition, each functional module in each embodiment of the present application can be integrated into one processing module, or each module can exist physically separately, or two or more modules can be integrated into one module. The above integrated modules can be implemented in the form of hardware or software functional modules.

[0165] If the integrated module is implemented in the form of a software function module and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application is essentially or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, and the computer software product is stored in a storage medium, including a number of instructions to enable a computer device (which can be a personal computer, a server, or a network device, etc.) to execute all or part of the steps of the method in each embodiment of the present application. The aforementioned storage medium includes: U disk, mobile hard disk, read-only memory (ROM), random access memory (RAM), disk or optical disk and other media that can store program code.

[0166] In the present application, the terms "first", "second", etc. are used to distinguish between identical or similar items having substantially the same effects and functions. It should be understood that there is no logical or temporal dependency between "first", "second", and "nth", nor is there a limitation on quantity and execution order. It should also be understood that although the following description uses the terms first, second, etc. to describe various elements, these elements should not be limited by the terms. These terms are only used to distinguish one element from another. For example, without departing from the scope of the various described examples, a first image may be referred to as a second image, and similarly, a second image may be referred to as a first image. Both the first image and the second image may be images, and in some cases, may be separate and different images.

[0167] It should also be understood that in the various embodiments of the present application, the size of the serial number of each process does not 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 embodiments of the present application.

[0168] The term "at least one" in this application means one or more, and the term "multiple" in this application means two or more, for example, multiple second messages means two or more second messages. The terms "system" and "network" are often used interchangeably herein.

[0169] It should be understood that the terms used in the description of the various examples herein are only for describing specific examples and are not intended to be limiting. As used in the description of the various examples and the appended claims, the singular forms "a", "an", and "the" are intended to include the plural forms as well, unless the context clearly indicates otherwise.

[0170] It should also be understood that the term "and / or" used herein refers to and encompasses any and all possible combinations of one or more of the associated listed items. The term "and / or" is 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 this application generally indicates that the associated objects before and after are in an "or" relationship.

[0171] It should also be understood that the term “comprise” (also known as “includes,” “including,” “comprises” and / or “comprising”) when used in this specification specifies the presence of stated features, integers, steps, operations, elements, and / or components, but does not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and / or groups thereof.

[0172] It should also be understood that the terms "if" and "if" may be interpreted to mean "when" or "upon" or "in response to determining" or "in response to detecting." Similarly, the phrases "if it is determined that ..." or "if [a stated condition or event] is detected" may be interpreted to mean "upon determining that ..." or "in response to determining that ..." or "upon detecting [a stated condition or event]" or "in response to detecting [a stated condition or event]," depending on the context.

[0173] It should be understood that determining B based on A does not mean determining B only based on A. B can also be determined based on A and / or other information.

[0174] It should also be understood that the references to "one embodiment", "an embodiment", or "a possible implementation" throughout the specification mean that specific features, structures, or characteristics related to the embodiment or implementation are included in at least one embodiment of the present application. Therefore, the references to "in one embodiment" or "in an embodiment", or "a possible implementation" throughout the specification do not necessarily refer to the same embodiment. In addition, these specific features, structures, or characteristics may be combined in any suitable manner in one or more embodiments.

Claims

1. A point cloud matching method, characterized in that: The method comprises: Acquire a first point cloud and a second point cloud to be matched, wherein the first point cloud and the second point cloud include the same feature points; Partitioning the first point cloud and the second point cloud to obtain a first sub-cloud and a second sub-cloud having a corresponding relationship; Point cloud matching is performed on the first sub-cloud and a second sub-cloud corresponding to the first sub-cloud.

2. The method according to claim 1, characterized in that Partitioning the first point cloud and the second point cloud to obtain a first sub-cloud and a second sub-cloud having a corresponding relationship includes: Dividing the first point cloud into N first sub-clouds according to the spatial features of the first point cloud; The second point cloud is divided into N second sub-clouds according to the spatial features of the second point cloud, the kth first sub-cloud of the first point cloud and the kth second sub-cloud of the second point cloud have a corresponding relationship, N is a positive integer greater than 1, and k is a positive integer not greater than N.

3. The method according to claim 2, characterized in that The dividing the first point cloud into N first sub-clouds according to the spatial features of the first point cloud includes: Determine an index value of each first feature point according to the coordinates of each first feature point included in the first point cloud; The first feature points with the same index value are divided into the same first sub-cloud to obtain the N first sub-clouds.

4. The method according to claim 3, characterized in that The step of determining the index value of each first feature point according to the coordinates of each first feature point included in the first point cloud includes: determining a reference number, the reference number indicating the number of the first sub-clouds; An index value of any first feature point is calculated according to the coordinates of any first feature point and the reference quantity.

5. The method according to claim 4, characterized in that The coordinates include three-dimensional coordinates, and the index value of any first feature point calculated according to the coordinates of any first feature point and the reference quantity includes: Dividing the plurality of coordinate values ​​included in the three-dimensional coordinates by the reference quantity respectively to obtain a plurality of quotients; The index value is obtained by adding the values ​​of the integer digits of each quotient.

6. The method according to any one of claims 2 to 5, characterized in that: Before performing point cloud matching on the first sub-cloud and the second sub-cloud corresponding to the first sub-cloud, the method further includes: Determining a first evaluation result of the N first sub-clouds according to the number of first feature points included in each of the N first sub-clouds, wherein the first evaluation result indicates a uniform distribution degree of the N first sub-clouds; determining a second evaluation result of the N second sub-clouds according to the number of second feature points included in each of the N second sub-clouds, wherein the second evaluation result indicates a uniform distribution degree of the N second sub-clouds; The N first sub-clouds and the N second sub-clouds are adjusted according to the first evaluation result and the second evaluation result, and a point cloud matching operation is performed on the first sub-cloud and the second sub-cloud corresponding to the first sub-cloud according to the adjusted N first sub-clouds and the N second sub-clouds.

7. The method according to any one of claims 1 to 6, characterized in that: The performing point cloud matching on the first sub-cloud and a second sub-cloud corresponding to the first sub-cloud includes: The distance values ​​between any first feature point included in the first sub-cloud and each second feature point included in the second sub-cloud corresponding to the first sub-cloud are calculated respectively, and the second feature point with the smallest distance value is determined as the second feature point matching the any first feature point.

8. The method according to claim 7, characterized in that Before respectively calculating the distance values ​​between any first feature point included in the first sub-cloud and each second feature point included in the second sub-cloud corresponding to the first sub-cloud, the method further includes: comparing a first total number of first feature points included in the first sub-cloud with a quantity threshold, and comparing a second total number of second feature points included in a second sub-cloud corresponding to the first sub-cloud with the quantity threshold; When both the first total number and the second total number are not higher than the quantity threshold, an operation of respectively calculating the distance value between any first feature point included in the first sub-cloud and each second feature point included in the second sub-cloud corresponding to the first sub-cloud is performed.

9. The method according to any one of claims 1 to 6, characterized in that: The performing point cloud matching on the first sub-cloud and a second sub-cloud corresponding to the first sub-cloud includes: A search is performed in an index tree according to the coordinates of any first feature point in the first sub-cloud, and a second feature point matching the any first feature point is determined according to the search result. The index tree is constructed based on the coordinates of each second feature point included in the second sub-cloud corresponding to the first sub-cloud.

10. The method according to claim 9, characterized in that Before searching in the index tree according to the coordinates of any first feature point in the first sub-cloud, the method further includes: Comparing a first total number of first feature points included in the first sub-cloud with a quantity threshold, and comparing a second total number of second feature points included in a second sub-cloud corresponding to the first sub-cloud with the quantity threshold; When either the first total number or the second total number is higher than the quantity threshold, an operation of searching in an index tree according to the coordinates of any first feature point in the first sub-cloud is performed.

11. A point cloud matching device, characterized in that: The device comprises: An acquisition module, used for acquiring a first point cloud and a second point cloud to be matched, wherein the first point cloud and the second point cloud include the same feature points; A partitioning module, used for partitioning the first point cloud and the second point cloud to obtain a first sub-cloud and a second sub-cloud having a corresponding relationship; A matching module is used to perform point cloud matching on the first sub-cloud and a second sub-cloud corresponding to the first sub-cloud.

12. The device according to claim 11, characterized in that The partitioning module is used to divide the first point cloud into N first sub-clouds according to the spatial characteristics of the first point cloud; and divide the second point cloud into N second sub-clouds according to the spatial characteristics of the second point cloud. There is a corresponding relationship between the kth first sub-cloud of the first point cloud and the kth second sub-cloud of the second point cloud, N is a positive integer greater than 1, and k is a positive integer not greater than N.

13. The device according to claim 12, characterized in that The partitioning module is used to determine the index value of each first feature point according to the coordinates of each first feature point included in the first point cloud; and divide the first feature points with the same index value into the same first sub-cloud to obtain the N first sub-clouds.

14. The device according to claim 13, characterized in that The partitioning module is used to determine a reference number, where the reference number indicates the number of the first sub-clouds; and calculate an index value of any first feature point according to the coordinates of any first feature point and the reference number.

15. The device according to claim 14, characterized in that The coordinates include three-dimensional coordinates, and the partition module is used to divide the multiple coordinate values ​​included in the three-dimensional coordinates by the reference number respectively to obtain multiple quotients; and to obtain the index value by adding the values ​​of the integer bits of each quotient.

16. The device according to any one of claims 12 to 15, characterized in that: The partitioning module is further used to determine a first evaluation result of the N first sub-clouds according to the number of first feature points included in each of the N first sub-clouds, the first evaluation result indicating the uniform distribution degree of the N first sub-clouds; determine a second evaluation result of the N second sub-clouds according to the number of second feature points included in each of the N second sub-clouds, the second evaluation result indicating the uniform distribution degree of the N second sub-clouds; adjust the N first sub-clouds and the N second sub-clouds according to the first evaluation result and the second evaluation result; the matching module is further used to perform a point cloud matching operation on the first sub-cloud and the second sub-cloud corresponding to the first sub-cloud according to the adjusted N first sub-clouds and N second sub-clouds.

17. The device according to any one of claims 11 to 16, characterized in that: The matching module is used to respectively calculate the distance values ​​between any first feature point included in the first sub-cloud and each second feature point included in the second sub-cloud corresponding to the first sub-cloud, and determine the second feature point with the smallest distance value as the second feature point matching the any first feature point.

18. The device according to claim 17, characterized in that The matching module is further configured to compare a first total number of first feature points included in the first sub-cloud with a quantity threshold, and to compare a second total number of second feature points included in a second sub-cloud corresponding to the first sub-cloud with the quantity threshold; and when both the first total number and the second total number are not higher than the quantity threshold, perform an operation of respectively calculating the distance values ​​between any first feature point included in the first sub-cloud and each second feature point included in the second sub-cloud corresponding to the first sub-cloud.

19. The device according to any one of claims 11 to 16, characterized in that: The matching module is used to search in an index tree according to the coordinates of any first feature point in the first sub-cloud, and determine a second feature point matching any first feature point according to the search result. The index tree is constructed based on the coordinates of each second feature point included in the second sub-cloud corresponding to the first sub-cloud.

20. The device according to claim 19, characterized in that The matching module is further used to compare a first total number of first feature points included in the first sub-cloud with a quantity threshold, and to compare a second total number of second feature points included in a second sub-cloud corresponding to the first sub-cloud with the quantity threshold; when either the first total number or the second total number is higher than the quantity threshold, an operation of searching in an index tree according to the coordinates of any first feature point in the first sub-cloud is performed.

21. A point cloud matching device, characterized in that: The device includes a processor, which is used to load and execute at least one instruction so that the point cloud matching device implements the point cloud matching method as described in any one of claims 1-10.

22. A chip, characterized in that: The chip includes a processor, which is used to run program instructions or codes so that a device containing the chip executes the point cloud matching method as described in any one of claims 1-10.