Method, device and storage medium for rapidly optimizing rigid body matching using multithreading

By using multi-threading technology to optimize rigid body matching in optical motion capture technology, the problem of easy misjudgment of side-length matching in the existing technology is solved, and more accurate rigid body matching and higher accuracy are achieved.

CN114004884BActive Publication Date: 2025-03-28SHENZHEN REALIS MULTIMEDIA TECH CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202111180069.3
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2021-10-09
Publication Date
2025-03-28
Estimated Expiration
2041-10-09

AI Technical Summary

Technical Problem

In the existing optical motion capture technology, relying solely on the side length matching of rigid body marking points is likely to lead to misjudgment, especially in the case of multi-marking points, low-precision 3D point capture or similar side length rigid bodies.

Method used

Multi-threading technology is used to optimize rigid body matching, and more accurate matching is achieved by declaring a three-dimensional array and generating multi-threaded calculation of the probability scores of the labeled point candidates of each rigid body.

Benefits of technology

By utilizing the geometric relationship of the entire rigid body, it reduces misjudgment and improves the accuracy and accuracy of rigid body matching.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114004884B_ABST
    Figure CN114004884B_ABST
Patent Text Reader

Abstract

The present invention discloses a method, device and storage medium for rapidly optimizing rigid body matching using multithreading. The method comprises: obtaining the number of marking points R of each rigid body and the number of candidate 3D points C of the marking points of each rigid body; declaring a three-dimensional array S[R][C][R] for each rigid body; generating R×C×R threads for each rigid body, each thread is responsible for filling the value of the three-dimensional array as S[i][j][k], and each thread calculates the probability score of the kth edge matched by the jth candidate 3D point of the i-th marking point of the current rigid body; generating R×C threads for each rigid body, wherein each thread calculates the probability score of the jth candidate 3D point of the i-th marking point of the current rigid body point; generating R threads for each rigid body, wherein each thread finds the probability score of the i-th marking point of the current rigid body, and takes the j-th candidate 3D point with the highest score as the accurate matching 3D point.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of motion capture, and in particular to a method, a device and a storage medium for rapidly optimizing rigid body matching by using multithreading. Background Art

[0002] In current optical motion capture technology, it is necessary to use markers on a rigid body to determine the point pose of an object. The point pose includes 3D rotation and translation. More than one rigid body will be in the motion capture system. The camera of the motion capture system detects the markers on the rigid body, converts the markers into two-dimensional coordinates, and then calculates the 3D points from these two-dimensional coordinates.

[0003] Then, from the calculated 3D points, the distance between the 3D points and the side length between the rigid body markers are matched, and finally the posture is calculated. Since there may be a large number of markers in the scene, the accuracy of capturing 3D points is not high enough, or the rigid bodies have similar side lengths, matching based solely on side lengths is prone to misjudgment. Summary of the invention

[0004] In view of the above-mentioned deficiencies in the prior art, an object of the present invention is to provide a method for rapidly optimizing rigid body matching using multithreading, by which more accurate rigid body matching can be achieved.

[0005] In view of this, the first aspect of the present application provides a method for quickly optimizing rigid body matching using multithreading, the method comprising: obtaining the number of marker points R of each rigid body and the number of candidate 3D points C of the marker points of each rigid body; declaring a three-dimensional array S[R][C][R] for each rigid body, wherein the first dimension represents each marker point, the second dimension represents the candidate 3D point of each marker point, and the third dimension represents the edge of each marker point; generating R×C×R threads for each rigid body, each thread is responsible for filling in the value of the three-dimensional array as S[i][j][k], wherein, i∈[1, R], j∈[1, C], k∈[1, R], each thread calculates the probability score of the jth candidate 3D point of the i-th marked point of the current rigid body matching the k-th edge; R×C threads are generated for each rigid body, wherein each thread calculates the probability score of the j-th candidate 3D point of the i-th marked point of the current rigid body point and records it in S[i][j][k]; R threads are generated for each rigid body, wherein each thread finds the probability score of the i-th marked point of the current rigid body, and takes the j-th candidate 3D point with the highest score as the exact matching 3D point.

[0006] Optionally, in combination with the first aspect, in a possible implementation, each thread calculates the probability score of the jth candidate 3D point of the i-th marker point of the current rigid body matching the k-th edge, specifically including: calculating mi and m k The distance between i and m k The distance between them is the length of the kth edge, where m i 、m k is the marking point in the rigid body, i, k∈[1,R]; calculate m i The j-th candidate 3D point and m k The distance between each candidate point; Determine the m i The j-th candidate 3D point and m k The distance between each candidate point and the matching possibility score of the length of the k-th edge are neutralized, and the possibility score of the best match is determined.

[0007] Optionally, in combination with the first aspect, in a possible implementation, R×C threads are generated for each rigid body, wherein each thread calculates the possibility score of the j-th candidate 3D point of the i-th marking point of the current rigid body point by specifically using the following formula:

[0008]

[0009] The likelihood score of the j-th candidate 3D point of the i-th marking point of the current rigid body point is the sum of the likelihood scores of all edge matches.

[0010] Optionally, in combination with the first aspect, in a possible implementation, generating R threads for each rigid body, wherein each thread finds the possibility score of the i-th marking point of the current rigid body specifically includes: calculating according to the following formula:

[0011]

[0012] Optionally, in combination with the first aspect, in a possible implementation, the edge of each marking point is the distance between the marking points of two rigid bodies in the same rigid body.

[0013] The second aspect of the present application provides a device for rapidly optimizing rigid body matching using multithreading, characterized in that the device for rapidly optimizing rigid body matching using multithreading comprises: an acquisition module, used to acquire the number of marking points R of each rigid body, and the number of candidate 3D points C of the marking points of each rigid body; a processing module, used to declare a three-dimensional value S[R][C][R] for each rigid body, wherein the first dimension represents each marking point, the second dimension represents the candidate 3D point of each marking point, and the third dimension represents the edge of each marking point; the processing module is also used to generate R×C×R threads for each rigid body, and each thread is responsible for filling in the value of the three-dimensional array as S[i] [j][k], wherein i∈[1, R], j∈[1, C], k∈[1, R], each thread calculates the probability score of the jth candidate 3D point of the i-th marked point of the current rigid body matching the k-th edge; the processing module is further used to generate R×C threads for each rigid body, wherein each thread calculates the probability score of the j-th candidate 3D point of the i-th marked point of the current rigid body point and records it in S[i][j][k]; the processing module is further used to generate R threads for each rigid body, wherein each thread finds the probability score of the i-th marked point of the current rigid body, and takes the j-th candidate 3D point with the highest score as the exact matching 3D point.

[0014] Optionally, in combination with the second aspect, in a possible implementation, the processing module is specifically used to: calculate m i and m k The distance between i and m k The distance between them is the length of the kth edge, where m i 、m k is the mark point in the rigid body, i, k∈[1,R]; calculate m i The j-th candidate 3D point and m k The distance between each candidate point; Determine the m i The j-th candidate 3D point and m k The distance between each candidate point and the matching possibility score of the length of the k-th edge are neutralized, and the possibility score of the best match is determined.

[0015] Optionally, in combination with the second aspect, in a possible implementation, the processing module specifically uses the following formula to calculate the probability score of the j-th candidate 3D point of the i-th marking point of the current rigid body point by each thread:

[0016]

[0017] The likelihood score of the j-th candidate 3D point of the i-th marking point of the current rigid body point is the sum of the likelihood scores of all edge matches.

[0018] Optionally, in combination with the second aspect, in a possible implementation, the processing module specifically uses the following formula to calculate the probability score of each thread finding the i-th marking point of the current rigid body:

[0019]

[0020] The third aspect of the present invention also provides a non-volatile computer-readable storage medium, characterized in that the non-volatile computer-readable storage medium stores computer-executable instructions, which, when executed by one or more processors, enable the one or more processors to execute the above-mentioned method of quickly optimizing rigid body matching using multi-threading.

[0021] The present invention discloses a method, device and storage medium for rapidly optimizing rigid body matching using multithreading. The method for rapidly optimizing rigid body matching using multithreading includes: obtaining the number of marking points R of each rigid body and the number of candidate 3D points C of the marking points of each rigid body; declaring a three-dimensional value S[R][C][R] for each rigid body, wherein the first dimension represents each marking point, the second dimension represents the candidate 3D point of each marking point, and the third dimension represents the edge of each marking point; generating R×C×R threads for each rigid body, and each thread is responsible for filling in the value of the three-dimensional array as S[i][j][k], wherein i∈[1, R], j∈ [1, C], k∈[1, R], each thread calculates the probability score of the jth candidate 3D point of the i-th marked point of the current rigid body matching the k-th edge; generates R×C threads for each rigid body, wherein each thread calculates the probability score of the jth candidate 3D point of the i-th marked point of the current rigid body point and records it in S[i][j][k]; generates R threads for each rigid body, wherein each thread finds the probability score of the i-th marked point of the current rigid body, and takes the j-th candidate 3D point with the highest score as the accurate matching 3D point. This method of using multi-threading to quickly optimize rigid body matching can achieve more accurate matching using the geometric relationship of the entire rigid body, thereby achieving more accurate rigid body matching. BRIEF DESCRIPTION OF THE DRAWINGS

[0022] The present invention will be further described below with reference to the accompanying drawings and embodiments, in which:

[0023] Figure 1 A schematic diagram of a flow chart of a method for rapidly optimizing rigid body matching using multithreading provided by the present invention;

[0024] Figure 2A schematic diagram of the structure of a device for rapidly optimizing rigid body matching using multithreading provided by the present invention;

[0025] Figure 3 A schematic diagram of the structure of a device for rapidly optimizing rigid body matching using multithreading provided by the present invention. DETAILED DESCRIPTION

[0026] The embodiment of the present application provides a method for rapidly optimizing rigid body matching using multithreading, through which more accurate rigid body matching can be achieved.

[0027] The technical solutions in the embodiments of the present application will be described below in conjunction with the accompanying drawings in the embodiments of the present application. In the present application, "at least one" refers to one or more, and "multiple" refers to two or more. "And / or" describes the association relationship of the associated objects, indicating that there may be three relationships, for example, A and / or B, which can represent: A exists alone, A and B exist at the same time, and B exists alone, where A and B can be singular or plural. The character " / " generally indicates that the associated objects before and after are in an "or" relationship. "At least one of the following" or its similar expressions refers to any combination of these items, including any combination of single or plural items. For example, at least one of a, b or c can represent: a, b, c, a and b, a and c, b and c or a and b and c, where a, b and c can be single or multiple. It is worth noting that "at least one" can also be interpreted as "one or more items".

[0028] It should be noted that, in this application, words such as "exemplary" or "for example" are used to indicate examples, illustrations or descriptions. Any embodiment or design described as "exemplary" or "for example" in this application should not be interpreted as being more preferred or more advantageous than other embodiments or designs. Specifically, the use of words such as "exemplary" or "for example" is intended to present related concepts in a specific way.

[0029] The first, second, etc. descriptions appearing in the embodiments of the present application are only used for illustration and distinction of the description objects. There is no order, nor do they indicate any special limitation on the number of devices in the embodiments of the present application, and cannot constitute any limitation on the embodiments of the present application.

[0030] In current optical motion capture technology, it is necessary to use markers on a rigid body to determine the point pose of an object. The point pose includes 3D rotation and translation. More than one rigid body will be in the motion capture system. The camera of the motion capture system detects the markers on the rigid body, converts the markers into two-dimensional coordinates, and then calculates the 3D points from these two-dimensional coordinates.

[0031] Then, from the calculated 3D points, the distance between the 3D points and the side length between the rigid body markers are matched, and finally the posture is calculated. Since there may be a large number of markers in the scene, the accuracy of capturing 3D points is not high enough, or the rigid bodies have similar side lengths, matching based solely on side lengths is prone to misjudgment.

[0032] In view of this, the present invention provides a method for rapidly optimizing rigid body matching using multithreading. The method provided by the present invention uses the geometric relationship of the entire rigid body to make a more accurate match, but this method will greatly increase the amount of calculation, so multithreading is used to accelerate the calculation. For details, please refer to Figure 1 , the method comprising:

[0033] S101, obtaining the number R of marking points of each rigid body and the number C of candidate 3D points of the marking points of each rigid body.

[0034] Specifically, first define the following variables:

[0035] R The number of markers for each rigid body, m i , i∈[1,R] is the marker point in the rigid body, C is the number of candidate points in 3D points for each rigid body marker

[0036] According to the similarity of the rigid body side length, the probability score of the 3D point in the scene belonging to each rigid body point is calculated. The closer the side length value and the value between the 3D points are, the higher the score. Record the C most likely 3D points for each rigid body mark point. The method of determining the probability score is not limited. For example, when the side length value and the value between the 3D point are less than or equal to the first preset threshold, the score is equal to 90; when the side length value and the value between the 3D point are greater than the first preset threshold and less than or equal to the second preset threshold, the score is equal to 80......

[0037] S102. Declare a three-dimensional array S[R][C][R] for each rigid body.

[0038] Declare a three-dimensional array S[R][C][R] for each rigid body. The first dimension represents each marker point of the rigid body, the second dimension represents the candidate 3D points of each marker point, and the third dimension represents the edge of each marker point, that is, the distance to other points on the same rigid body.

[0039] S103. Generate R×C×R threads for each rigid body, and each thread is responsible for filling the value of the three-dimensional array as S[i][j][k].

[0040] Generate R×C×R threads for each rigid body, and each thread is responsible for filling in the value in S: S[i][j][k], i∈[1, R], j∈[1, C], k∈[1, R]. Each thread calculates the probability score of the jth candidate 3D point of the i-th marker point of the current rigid body matching the k-th edge.

[0041] Specifically, each thread calculates the probability score of the jth candidate 3D point of the i-th marker point of the current rigid body matching the k-th edge, including:

[0042] Calculate m i and m k The distance between i and m k The distance between them is the length of the kth edge, where m i 、m k is a marker point in the rigid body, i, k∈[1,R];

[0043] Calculate m i The j-th candidate 3D point and m k The distance between each candidate point;

[0044] Determine the m i The j-th candidate 3D point and m k The distance between each candidate point and the length of the k-th edge are used to calculate the matching probability score, and the best matching probability score is determined. Specifically, the score with the highest matching probability score is the best matching probability score.

[0045] S104 , generating R×C threads for each rigid body, wherein each thread calculates the likelihood score of the j-th candidate 3D point of the i-th marking point of the current rigid body point.

[0046] Generate R×C threads for each rigid body, where each thread calculates the likelihood score of the jth candidate 3D point of the i-th marker point of the current rigid body point.

[0047] Generate R×C threads for each rigid body, where each thread calculates the probability score of the jth candidate 3D point of the i-th marker point of the current rigid body point using the following formula:

[0048]

[0049] The likelihood score of the jth candidate 3D point of the i-th marker point of the current rigid body point is the sum of the likelihood scores of all edge matches. This value can be recorded in S[i][j][0] or other variables.

[0050] S105 . Generate R threads for each rigid body, wherein each thread finds the possibility score of the i-th marked point of the current rigid body, and takes the j-th candidate 3D point with the highest score as the exact matching 3D point.

[0051] Generate R threads for each rigid body, where each thread finds the possibility score of the i-th marked point of the current rigid body and takes the j-th candidate 3D point with the highest score as the exact matching 3D point.

[0052] Specifically, R threads are generated for each rigid body, wherein each thread finds the probability score of the i-th marking point of the current rigid body specifically including:

[0053] Calculated according to the following formula:

[0054]

[0055] The present invention provides a method for rapidly optimizing rigid body matching by using multithreading, the method comprising: obtaining the number R of marking points of each rigid body and the number C of candidate 3D points of the marking points of each rigid body; declaring a three-dimensional array S[R][C][R] for each rigid body, wherein the first dimension represents each marking point, the second dimension represents the candidate 3D point of each marking point, and the third dimension represents the edge of each marking point; generating R×C×R threads for each rigid body, each thread being responsible for filling in the value of the three-dimensional array S[i][j][k], wherein i∈[1, R], j∈[1, C], k∈[1, R], each thread calculates the probability score of the jth candidate 3D point of the i-th marked point of the current rigid body matching the k-th edge; generates R×C threads for each rigid body, wherein each thread calculates the probability score of the j-th candidate 3D point of the i-th marked point of the current rigid body point, and records it in S[i][j][k]; generates R threads for each rigid body, wherein each thread finds the probability score of the i-th marked point of the current rigid body, and takes the j-th candidate 3D point with the highest score as the exact matching 3D point.

[0056] The above provides a method for rapidly optimizing rigid body matching using multithreading. From the perspective of the device, the following provides a device 20 for rapidly optimizing rigid body matching using multithreading. For details, please refer to Figure 2 , the device comprises:

[0057] An acquisition module 201 is used to acquire the number R of marking points of each rigid body and the number C of candidate 3D points of the marking points of each rigid body;

[0058] A processing module 202 is used to declare a three-dimensional array S[R][C][R] for each rigid body, in which a first dimension represents each marker point, a second dimension represents a candidate 3D point for each marker point, and a third dimension represents an edge of each marker point;

[0059] The processing module 202 is further used to generate R×C×R threads for each rigid body, each thread is responsible for filling the value of the three-dimensional array as S[i][j][k], where i∈[1, R], j∈[1, C], k∈[1, R], and each thread calculates the probability score of the jth candidate 3D point of the i-th marked point of the current rigid body matching the k-th edge;

[0060] The processing module 202 is further used to generate R×C threads for each rigid body, wherein each thread calculates the likelihood score of the jth candidate 3D point of the i-th marking point of the current rigid body point;

[0061] The processing module 202 is further used to generate R threads for each rigid body, wherein each thread finds the possibility score of the i-th marked point of the current rigid body, and takes the j-th candidate 3D point with the highest score as the exact matching 3D point.

[0062] Furthermore, the processing module 202 is specifically configured to:

[0063] Calculate m i and m k The distance between i and m k The distance between them is the length of the kth edge, where m i 、m k is a marker point in the rigid body, i, k∈[1,R];

[0064] Calculate m i The j-th candidate 3D point and m k The distance between each candidate point;

[0065] Determine the m i The j-th candidate 3D point and m k The distance between each candidate point and the matching possibility score of the length of the k-th edge are neutralized, and the possibility score of the best match is determined.

[0066] Furthermore, the processing module 202 specifically uses the following formula to calculate the likelihood score of the jth candidate 3D point of the i-th marking point of the current rigid body point:

[0067]

[0068] The likelihood score of the j-th candidate 3D point of the i-th marking point of the current rigid body point is the sum of the likelihood scores of all edge matches.

[0069] Furthermore, the processing module 202 specifically uses the following formula to calculate the probability score of the i-th marking point of the current rigid body:

[0070]

[0071] Figure 3 4 is a schematic diagram of the structure of a device for rapidly optimizing rigid body matching using multithreading provided by an embodiment of the present application. The device 400 for rapidly optimizing rigid body matching using multithreading may have relatively large differences due to different configurations or performances, and may include one or more processors (central processing units, CPU) 410 (for example, one or more processors) and a memory 420, and one or more storage media 430 (for example, one or more mass storage devices) storing application programs 433 or data 432. Among them, the memory 420 and the storage medium 430 may be short-term storage or permanent storage. The program stored in the storage medium 430 may include one or more modules (not shown in the figure), and each module may include a series of instruction operations in the device 400 for rapidly optimizing rigid body matching using multithreading. Furthermore, the processor 410 may be configured to communicate with the storage medium 430, and execute a series of instruction operations in the storage medium 430 on the device 400 for rapidly optimizing rigid body matching using multithreading.

[0072] The device 400 for rapidly optimizing rigid body matching using multithreading may also include one or more power supplies 440, one or more wired or wireless network interfaces 430, one or more input and output interfaces 460, and / or one or more operating systems 431, such as Windows Serve, Mac OS X, Unix, Linux, FreeBSD, etc. It will be appreciated by those skilled in the art that Figure 3 The structure of the device for rapidly optimizing rigid body matching using multithreading shown does not constitute a limitation of the device for rapidly optimizing rigid body matching using multithreading, and may include more or fewer components than shown in the figure, or a combination of certain components, or a different arrangement of components.

[0073] The present application also provides a computer-readable storage medium, which may be a non-volatile computer-readable storage medium or a volatile computer-readable storage medium. Instructions are stored in the computer-readable storage medium. When the instructions are executed on a computer, the computer executes the steps of the method for rapidly optimizing rigid body matching using multi-threading.

[0074] 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 units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.

[0075] If the integrated unit is implemented in the form of a software functional unit 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 perform all or part of the steps of the method described 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.

[0076] In the embodiments provided in this application, it should be understood that the disclosed methods can be implemented in other ways without exceeding the spirit and scope of this application. The current embodiment is only an illustrative example and should not be used as a limitation. The specific content given should not limit the purpose of this application. For example, some features can be ignored or not executed.

[0077] The technical means disclosed in the present application are not limited to the technical means disclosed in the above-mentioned implementation methods, but also include technical solutions composed of any combination of the above technical features. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principles of this application, and these improvements and modifications are also regarded as the protection scope of this application.

[0078] The above is a detailed introduction to a method, device and storage medium for rapidly optimizing rigid body matching using multithreading provided in the embodiments of the present application. Specific examples are used herein to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method and its core idea of ​​the present application. At the same time, for those of ordinary skill in the art, according to the idea of ​​the present application, there will be changes in the specific implementation methods and application scope. In summary, the content of this specification should not be understood as a limitation on the present application. Although the present application has been described in detail with reference to the aforementioned embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions recorded in the aforementioned embodiments, or replace some of the technical features therein by equivalents; and these modifications or replacements do not deviate the essence of the corresponding technical solutions from the spirit and scope of the technical solutions of the embodiments of the present application.

Claims

1. A method for rapidly optimizing rigid body matching using multithreading, characterized in that: The method for rapidly optimizing rigid body matching using multithreading includes: Get the number of marker points R of each rigid body and the number of candidate 3D points C of the marker points of each rigid body; Declare a three-dimensional array S[R][C][R] for each rigid body, in which the first dimension represents each marker point, the second dimension represents the candidate 3D point of each marker point, and the third dimension represents the edge of each marker point; Generate R×C×R threads for each rigid body, each thread is responsible for filling the value of the three-dimensional array as S[i][j][k], where i∈[1, R], j∈[1, C], k∈[1, R], and each thread calculates the probability score of the jth candidate 3D point of the i-th marker point of the current rigid body matching the k-th edge; Generate R×C threads for each rigid body, where each thread calculates the likelihood score of the jth candidate 3D point of the i-th marker point of the current rigid body point; Generate R threads for each rigid body, where each thread finds the possibility score of the i-th marked point of the current rigid body, and takes the j-th candidate 3D point with the highest score as the exact matching 3D point; The calculation by each thread of the probability score of the jth candidate 3D point of the i-th marker point of the current rigid body matching the k-th edge specifically includes: Calculate m i and m k The distance between i and m k The distance between them is the length of the kth edge, where m i 、m k is a marker point in the rigid body, i, k∈[1,R]; Calculate m i The j-th candidate 3D point and m k The distance between each candidate point; Determine the m i The j-th candidate 3D point and m k The distance between each candidate point and the possibility score of the length of the k-th edge matching, and determine the possibility score of the best match; R×C threads are generated for each rigid body, wherein each thread calculates the possibility score of the jth candidate 3D point of the i-th marking point of the current rigid body point using the following formula: The generating of R threads for each rigid body, wherein each thread finds the probability score of the i-th marking point of the current rigid body specifically includes: Calculated according to the following formula:

2. The method for rapidly optimizing rigid body matching using multithreading according to claim 1, characterized in that: The edge of each marking point is the distance between the marking points of two rigid bodies in the same rigid body.

3. A device for rapidly optimizing rigid body matching using multithreading, characterized in that: The device for rapidly optimizing rigid body matching using multithreading comprises: An acquisition module is used to obtain the number R of marking points of each rigid body and the number C of candidate 3D points of the marking points of each rigid body; A processing module is used to declare a three-dimensional array S[R][C][R] for each rigid body, in which the first dimension represents each marker point, the second dimension represents the candidate 3D point of each marker point, and the third dimension represents the edge of each marker point; The processing module is further used to generate R×C×R threads for each rigid body, each thread is responsible for filling the value of the three-dimensional array as S[i][j][k], where i∈[1, R], j∈[1, C], k∈[1, R], and each thread calculates the probability score of the jth candidate 3D point of the i-th marked point of the current rigid body matching the k-th edge; The processing module is further used to generate R×C threads for each rigid body, wherein each thread calculates the likelihood score of the jth candidate 3D point of the i-th marking point of the current rigid body point; The processing module is further used to generate R threads for each rigid body, wherein each thread finds the possibility score of the i-th marked point of the current rigid body, and takes the j-th candidate 3D point with the highest score as the exact matching 3D point; The processing module is specifically used for: Calculate m i and m k The distance between i and m k The distance between them is the length of the kth edge, where m i 、m k is a marker point in the rigid body, i, k∈[1,R]; Calculate m i The j-th candidate 3D point and m k The distance between each candidate point; Determine the m i The j-th candidate 3D point and m k The distance between each candidate point and the possibility score of the length of the k-th edge matching, and determine the possibility score of the best match; The processing module specifically uses the following formula to calculate the probability score of the jth candidate 3D point of the i-th marking point of the current rigid body point: The likelihood score of the jth candidate 3D point of the i-th marker point of the current rigid body point is the sum of the likelihood scores of all edge matches; The processing module specifically uses the following formula to calculate the probability score of the i-th marking point of the current rigid body:

4. A non-volatile computer-readable storage medium, characterized in that: The non-volatile computer-readable storage medium stores computer-executable instructions, which, when executed by one or more processors, enable the one or more processors to execute the method for fast optimization of rigid body matching using multi-threading as described in any one of claim 1 or claim 2.

Citation Information

Patent Citations

  • Online three-dimensional reconstructing and locating method for rigid body

    CN102768767A

  • Three-dimensional point cloud matching method and device based on parallel architecture and computer equipment

    CN111325663A