Three-dimensional model hole filling method, device, computer equipment and storage medium

By determining and utilizing the key vertex information in the three-dimensional model for vulnerability filling, the vulnerability problems caused by incomplete data in the three-dimensional model are solved, and the filling efficiency and effect are improved.

CN114529676BActive Publication Date: 2025-03-28BEIJING ZHONGSHENG HEYUAN INTELLIGENT TECHNOLOGY CO LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210158157.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-02-21
Publication Date
2025-03-28
Estimated Expiration
2042-02-21

AI Technical Summary

Technical Problem

Due to incomplete data used to build a three-dimensional model, there are vulnerabilities in the generated three-dimensional model, affecting its display effect.

Method used

By obtaining the target three-dimensional model and performing vulnerability detection, after determining the vulnerability set, the first target vertex, the second target vertex and the third target vertex are determined in turn, and the vulnerability is filled based on the distance and angle information of these vertices.

Benefits of technology

It effectively avoids the problem of poor filling effect caused by excessive filling of patches, ensures the shape of patches after filling, and improves the efficiency and effect of loophole filling of the three-dimensional model.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114529676B_ABST
    Figure CN114529676B_ABST
Patent Text Reader

Abstract

The present disclosure provides a method, apparatus, computer equipment and storage medium for filling holes in a three-dimensional model, wherein the method comprises: performing hole detection on an acquired target three-dimensional model to determine at least one hole set; determining a first target vertex in the target hole set for the target hole set; determining a second target vertex in the target hole set according to the distances between each vertex in the target hole set other than the first target vertex and the first target vertex; determining angle information between any other vertex in the target hole set other than the first target vertex and the second target vertex, and a line connecting the first target vertex and the second target vertex, and determining a third target vertex in the target hole set based on the angle information; filling holes in the target hole set based on the first target vertex, the second target vertex and the third target vertex, and returning to the step of determining the first target vertex until the target hole set is filled.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to the technical field of gap filling of three-dimensional models, and in particular to a gap filling method, device, computer equipment and storage medium for three-dimensional models. Background Art

[0002] With the rapid development of technologies such as virtual reality and augmented reality, people have put forward higher requirements for the visualization of objects. Two-dimensional plane data has gradually been unable to meet people's needs due to its limitations in visualization effects. Therefore, three-dimensional models generated based on three-dimensional reconstruction technology are increasingly used in various industrial scenarios.

[0003] Due to factors such as incomplete data used to build three-dimensional models, the final generated three-dimensional model often has some holes that need to be filled. The existence of these holes has a great impact on the display effect of the three-dimensional model. Therefore, how to fill the holes in the three-dimensional model has become an urgent problem to be solved in this field. Summary of the invention

[0004] The embodiments of the present disclosure at least provide a method, apparatus, computer device and storage medium for filling holes in a three-dimensional model.

[0005] In a first aspect, an embodiment of the present disclosure provides a method for filling a hole in a three-dimensional model, comprising:

[0006] Acquire a target three-dimensional model, and perform vulnerability detection on the target three-dimensional model to determine at least one vulnerability set of the target three-dimensional model; wherein the vulnerability set is composed of multiple vertices of the target three-dimensional model;

[0007] For a target vulnerability set, determining a first target vertex in the target vulnerability set;

[0008] Determine a second target vertex in the target vulnerability set according to distances between the first target vertex and each of the other vertices in the target vulnerability set except the first target vertex;

[0009] Determine angle information between any other vertex in the target vulnerability set except the first target vertex and the second target vertex and a line connecting the first target vertex and the second target vertex, and determine a third target vertex in the target vulnerability set based on the angle information;

[0010] Based on the first target vertex, the second target vertex and the third target vertex, the target vulnerability set is filled, and the step of determining the first target vertex is returned to be executed until the target vulnerability set is completely filled.

[0011] In this way, after determining the first target vertex of the target hole set in the detected three-dimensional model, the second target vertex can be determined according to the distance between the other vertices in the target hole set except the first target vertex and the first target vertex, so that when filling holes, the problem of poor filling effect caused by the filling surface being too large can be avoided; then, according to the angle information between any other vertex in the target hole set except the first target vertex and the second target vertex, the first target vertex and the second target vertex are connected, and the third target vertex is determined, so that the shape of the surface when adjusting the hole is relatively standardized; the hole is filled according to the determined first target vertex, second target vertex and third target vertex. In this way, the hole filling of the three-dimensional model can be completed through a relatively simple calculation process, which improves the filling efficiency and filling effect of the hole of the three-dimensional model.

[0012] In a possible implementation, the method includes determining the first target vertex according to the following method:

[0013] Randomly select a vertex from other vertices in the target vulnerability set except the determined first target vertex as the first target vertex; or,

[0014] According to a preset order, the second target vertex or the third target vertex in the last hole filling process is used as the first target vertex.

[0015] In a possible implementation manner, determining a second target vertex in the target vulnerability set according to distances between the first target vertex and other vertices in the target vulnerability set except the first target vertex includes:

[0016] For a first to-be-screened vertex other than the first target vertex in the target vulnerability set, determining a target distance between the first to-be-screened vertex and the first target vertex in a target direction; wherein the target direction includes a horizontal direction and / or a vertical direction;

[0017] The second target vertex is determined based on the target distances respectively corresponding to the first vertices to be screened.

[0018] In this way, by screening the target distance, the problem of poor filling effect caused by the excessively large area of ​​the triangular facets finally generated to fill the target hole set can be avoided, so that the display effect of the three-dimensional model after the final filling is more coordinated.

[0019] In a possible implementation manner, determining angle information between any other vertex in the target vulnerability set except the first target vertex and the second target vertex and a line connecting the first target vertex and the second target vertex includes:

[0020] For any second to-be-screened vertex in the target vulnerability set except the first target vertex and the second target vertex, respectively determine a first line segment and a second line segment formed by connecting the second to-be-screened vertex with the first target vertex and the second target vertex; and determine a third line segment formed by connecting the first target vertex and the second target vertex;

[0021] The angle information is determined based on a first target angle between the first line segment and the third line segment and a second target angle between the second line segment and the third line segment.

[0022] In a possible implementation manner, determining a third target vertex in the target vulnerability set based on the angle information includes:

[0023] respectively determining target angle differences between the first target angle and the second target angle and a preset angle;

[0024] The second to-be-screened vertex whose target angle difference meets a preset condition is determined as the third target vertex.

[0025] In this way, by screening the target angle difference, the shape of the triangular facets finally generated to fill the target hole set can be made more uniform, so that the display effect of the three-dimensional model after the filling is finally completed is more coordinated.

[0026] In a possible implementation, the step of filling the target vulnerability set based on the first target vertex, the second target vertex, and the third target vertex includes:

[0027] Determine, according to the first target vertex, the second target vertex, and the third target vertex, a triangular facet for filling the target hole set;

[0028] When it is detected that the triangular facets do not overlap with the previously determined historical triangular facets, gap filling is performed on the target gap set based on the determined triangular facets.

[0029] In this way, since the triangle patch is the smallest unit that can be divided in the three-dimensional model, the filling effect of generating the triangle patch to fill the target hole set is better, and the display effect of the three-dimensional model after the filling is finally completed is more coordinated.

[0030] In a possible implementation, the target vulnerability set is a vulnerability set of a target shape.

[0031] In a second aspect, the present disclosure also provides a three-dimensional model hole filling device, including:

[0032] An acquisition module, used to acquire a target three-dimensional model, and perform vulnerability detection on the target three-dimensional model to determine at least one vulnerability set of the target three-dimensional model; wherein the vulnerability set is composed of multiple vertices of the target three-dimensional model;

[0033] A first determination module, configured to determine, with respect to a target vulnerability set, a first target vertex in the target vulnerability set;

[0034] A second determination module, configured to determine a second target vertex in the target vulnerability set according to distances between the first target vertex and each of the other vertices in the target vulnerability set except the first target vertex;

[0035] A third determination module is used to determine angle information between any other vertex in the target vulnerability set except the first target vertex and the second target vertex and a line connecting the first target vertex and the second target vertex, and determine a third target vertex in the target vulnerability set based on the angle information;

[0036] The vulnerability filling module is used to fill the target vulnerability set based on the first target vertex, the second target vertex and the third target vertex, and return to execute the step of determining the first target vertex until the target vulnerability set is filled.

[0037] In a possible implementation manner, the first determination module is used to determine the first target vertex according to the following steps:

[0038] Randomly select a vertex from other vertices in the target vulnerability set except the determined first target vertex as the first target vertex; or,

[0039] According to a preset order, the second target vertex or the third target vertex in the last hole filling process is used as the first target vertex.

[0040] In a possible implementation manner, when determining the second target vertex in the target vulnerability set according to the distances between the first target vertex and each of the other vertices in the target vulnerability set except the first target vertex, the second determination module is configured to:

[0041] For a first to-be-screened vertex other than the first target vertex in the target vulnerability set, determining a target distance between the first to-be-screened vertex and the first target vertex in a target direction; wherein the target direction includes a horizontal direction and / or a vertical direction;

[0042] The second target vertex is determined based on the target distances respectively corresponding to the first vertices to be screened.

[0043] In a possible implementation manner, the third determination module, when determining the angle information between any other vertex in the target vulnerability set except the first target vertex and the second target vertex and the line connecting the first target vertex and the second target vertex, is used to:

[0044] For any second to-be-screened vertex in the target vulnerability set except the first target vertex and the second target vertex, respectively determine a first line segment and a second line segment formed by connecting the second to-be-screened vertex with the first target vertex and the second target vertex; and determine a third line segment formed by connecting the first target vertex and the second target vertex;

[0045] The angle information is determined based on a first target angle between the first line segment and the third line segment and a second target angle between the second line segment and the third line segment.

[0046] In a possible implementation manner, the third determination module, when determining the third target vertex in the target vulnerability set based on the angle information, is configured to:

[0047] respectively determining target angle differences between the first target angle and the second target angle and a preset angle;

[0048] The second to-be-screened vertex whose target angle difference meets a preset condition is determined as the third target vertex.

[0049] In a possible implementation manner, the vulnerability filling module, when filling the target vulnerability set based on the first target vertex, the second target vertex, and the third target vertex, is used to:

[0050] Determine, according to the first target vertex, the second target vertex, and the third target vertex, a triangular facet for filling the target hole set;

[0051] When it is detected that the triangular facets do not overlap with the previously determined historical triangular facets, gap filling is performed on the target gap set based on the determined triangular facets.

[0052] In a possible implementation, the target vulnerability set is a vulnerability set of a target shape.

[0053] In a third aspect, an embodiment of the present disclosure further provides a computer device, comprising: a processor, a memory and a bus, wherein the memory stores machine-readable instructions executable by the processor, and when the computer device is running, the processor and the memory communicate via the bus, and when the machine-readable instructions are executed by the processor, the steps of the above-mentioned first aspect, or any possible implementation of the first aspect are performed.

[0054] In a fourth aspect, an embodiment of the present disclosure further provides a computer-readable storage medium, on which a computer program is stored. When the computer program is executed by a processor, the steps of the above-mentioned first aspect or any possible implementation of the first aspect are executed.

[0055] For a description of the effects of the above-mentioned three-dimensional model hole filling device, computer equipment, and computer-readable storage medium, please refer to the description of the above-mentioned three-dimensional model hole filling method, which will not be repeated here.

[0056] In order to make the above-mentioned objectives, features and advantages of the present disclosure more obvious and easy to understand, preferred embodiments are specifically cited below and described in detail with reference to the attached drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0057] In order to more clearly illustrate the technical solutions of the embodiments of the present disclosure, the drawings required for use in the embodiments are briefly introduced below.

[0058] Figure 1 A flow chart of a method for filling holes in a three-dimensional model provided by an embodiment of the present disclosure is shown;

[0059] Figure 2 A flowchart showing a specific method for determining a target three-dimensional model in the three-dimensional model hole filling method provided by an embodiment of the present disclosure;

[0060] Figure 3 A schematic diagram of a target three-dimensional model in the three-dimensional model hole filling method provided by an embodiment of the present disclosure is shown;

[0061] Figure 4a A schematic diagram of a target vulnerability set in a vulnerability filling method for a three-dimensional model provided by an embodiment of the present disclosure is shown;

[0062] Figure 4b A schematic diagram showing the determination of a first line segment, a second line segment, and a third line segment in the three-dimensional model hole filling method provided by an embodiment of the present disclosure;

[0063] Figure 5 A flowchart showing a specific method for determining a second target vertex in a target vulnerability set in a vulnerability filling method for a three-dimensional model provided by an embodiment of the present disclosure;

[0064] Figure 6 A flowchart showing a specific method for determining angle information in the method for filling a hole in a three-dimensional model provided by an embodiment of the present disclosure;

[0065] Figure 7 A flowchart showing a specific method for determining a third target vertex in the three-dimensional model hole filling method provided by an embodiment of the present disclosure;

[0066] Figure 8 A schematic diagram of the architecture of a three-dimensional model hole filling device provided by an embodiment of the present disclosure is shown;

[0067] Fig. 9 A schematic diagram of the structure of a computer device provided by an embodiment of the present disclosure is shown. DETAILED DESCRIPTION

[0068] In order to make the purpose, technical solution and advantages of the embodiments of the present disclosure more clear, the technical solution in the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings in the embodiments of the present disclosure.

[0069] It should be noted that similar reference numerals and letters denote similar items in the following drawings, and therefore, once an item is defined in one drawing, further definition and explanation thereof is not required in subsequent drawings.

[0070] The term "and / or" herein only describes an association relationship, indicating that three relationships may exist. For example, A and / or B may represent the following three situations: A exists alone, A and B exist at the same time, and B exists alone. In addition, the term "at least one" herein represents any combination of at least two of any one or more of a plurality of. For example, including at least one of A, B, and C may represent including any one or more elements selected from the set consisting of A, B, and C.

[0071] Research has found that due to factors such as incomplete data used to build three-dimensional models, the final generated three-dimensional model often has some holes that need to be filled. The existence of these holes has a great impact on the display effect of the three-dimensional model. Therefore, how to fill the holes in the three-dimensional model has become an urgent problem to be solved in this field.

[0072] Based on the above research, the present disclosure provides a method, device, computer equipment and storage medium for filling holes in a three-dimensional model. After determining the first target vertex of the target hole set in the detected three-dimensional model, the second target vertex can be determined according to the distance between the other vertices in the target hole set except the first target vertex and the first target vertex, so that when filling holes, the problem of poor filling effect caused by the filling surface being too large can be avoided; then, according to the angle information between any other vertex in the target hole set except the first target vertex and the second target vertex, the first target vertex and the second target vertex are connected, and the third target vertex is determined, so that the shape of the surface when adjusting the hole is relatively standardized; the hole is filled according to the determined first target vertex, second target vertex and third target vertex. In this way, the hole filling of the three-dimensional model can be completed through a relatively simple calculation process, which improves the filling efficiency and filling effect of the hole of the three-dimensional model.

[0073] To facilitate understanding of this embodiment, a method for filling holes in a three-dimensional model disclosed in an embodiment of the present disclosure is first introduced in detail. The execution subject of the method for filling holes in a three-dimensional model provided in an embodiment of the present disclosure is generally a computer device with certain computing capabilities, and the computer device includes, for example: a terminal device or a server or other processing device, and the terminal device can be a user equipment (User Equipment, UE), a mobile device, a user terminal, a terminal, a personal digital assistant (Personal Digital Assistant, PDA), a handheld device, a computing device, a vehicle-mounted device, a wearable device, etc. In some possible implementations, the method for filling holes in a three-dimensional model can be implemented by a processor calling a computer-readable instruction stored in a memory.

[0074] See also Figure 1 FIG. 1 is a flow chart of a method for filling a hole in a three-dimensional model provided by an embodiment of the present disclosure, wherein the method includes S101 to S105, wherein:

[0075] S101: Acquire a target three-dimensional model, and perform vulnerability detection on the target three-dimensional model to determine at least one vulnerability set of the target three-dimensional model; wherein the vulnerability set is composed of multiple vertices of the target three-dimensional model.

[0076] S102: For a target vulnerability set, determine a first target vertex in the target vulnerability set.

[0077] S103: Determine a second target vertex in the target vulnerability set according to distances between the first target vertex and each of the other vertices in the target vulnerability set except the first target vertex.

[0078] S104: Determine angle information between any other vertex in the target vulnerability set except the first target vertex and the second target vertex and a line connecting the first target vertex and the second target vertex, and determine a third target vertex in the target vulnerability set based on the angle information.

[0079] S105: Based on the first target vertex, the second target vertex and the third target vertex, fill the holes in the target hole set, and return to the step of determining the first target vertex until the target hole set is filled.

[0080] The following is a detailed description of the above steps.

[0081] For S101, the target three-dimensional model can be a three-dimensional model obtained by three-dimensionally reconstructing real scene data of the target scene. When performing vulnerability detection on the target three-dimensional model, a vulnerability detection algorithm can be used to perform vulnerability detection on the target three-dimensional model to obtain at least one vulnerability set of the target three-dimensional model.

[0082] Exemplarily, taking the target scenario as a converter station, in order to improve the operation and maintenance efficiency of the converter station, the converter valves, converter transformers, smoothing reactors, AC switchgear, AC filters and AC reactive compensation devices, DC switchgear, DC filters, control and protection devices, external grounding electrodes and remote communication systems in the converter station can be three-dimensionally reconstructed to obtain a target three-dimensional model corresponding to the converter station.

[0083] In a possible implementation, Figure 2 As shown, the target 3D model can be determined by the following steps:

[0084] S201: Acquire real scene data captured by an AR device.

[0085] S202: Perform three-dimensional reconstruction on the real scene data according to a three-dimensional reconstruction algorithm to obtain a target three-dimensional model corresponding to the real scene data.

[0086] Exemplarily, the schematic diagram of the target three-dimensional model can be as follows: Figure 3 As shown, the target three-dimensional model includes: a plurality of vertices located on the surface of the three-dimensional model, and a mesh formed by the mutual connection relationship between the vertices.

[0087] S102: For a target vulnerability set, determine a first target vertex in the target vulnerability set.

[0088] Here, the target vulnerability set may be a vulnerability set of a target shape, and the target shape may be, for example, a concave shape or a U shape.

[0089] Exemplarily, the schematic diagram of the target vulnerability set can be as follows: Figure 4a As shown, Figure 4a In the figure, each vertex forms a "concave" area, and the "concave" area is the hole to be filled in the target three-dimensional model.

[0090] Specifically, when determining the first target vertex, any of the following methods may be used:

[0091] Method 1: Randomly select a vertex from the other vertices in the target vulnerability set except the determined first target vertex as the first target vertex

[0092] For example, taking the vertices included in the target vulnerability set as vertex 1, vertex 2, vertex 3 and vertex 4, and vertex 1 being determined as the first target vertex in the last vulnerability filling, when determining the first target vertex, a vertex can be randomly selected from vertex 2, vertex 3 and vertex 4 as the first target vertex for this vulnerability filling.

[0093] Method 2: According to the preset order, the second target vertex or the third target vertex in the last hole filling process is used as the first target vertex

[0094] Specifically, if the second target vertex in the Nth hole filling process is used as the first target vertex in the N+1th hole filling process, then the third target vertex in the Nth hole filling process can be used as the first target vertex in the N+2th hole filling process; or, if the third target vertex in the Nth hole filling process is used as the first target vertex in the N+1th hole filling process, then the second target vertex in the Nth hole filling process can be used as the first target vertex in the N+2th hole filling process, where N is a positive integer.

[0095] Exemplarily, taking the vertices included in the target vulnerability set as vertex 1, vertex 2, vertex 3 and vertex 4, vertex 1 is determined as the first target vertex in the first vulnerability filling, vertex 2 is determined as the second target vertex in the first vulnerability filling, and vertex 3 is determined as the third target vertex in the first vulnerability filling, then when determining the first target vertex in the second vulnerability filling process, vertex 2 can be used as the first target vertex; alternatively, vertex 3 can be used as the first target vertex.

[0096] In practical applications, each vertex can be traversed in turn until each vertex is used as the first target vertex to fill the gap.

[0097] S103: Determine a second target vertex in the target vulnerability set according to distances between the first target vertex and each of the other vertices in the target vulnerability set except the first target vertex.

[0098] In a possible implementation, Figure 5 As shown, the second target vertex in the target vulnerability set can be determined by the following steps:

[0099] S501: For a first to-be-screened vertex other than the first target vertex in a target vulnerability set, determine a target distance between the first to-be-screened vertex and the first target vertex in a target direction; wherein the target direction includes a horizontal direction and / or a vertical direction.

[0100] Here, when determining the target distance between the first vertex to be screened and the first target vertex in the horizontal direction, the target distance in the horizontal direction can be determined based on the absolute value of the difference between the horizontal coordinate of the first vertex to be screened in the three-dimensional coordinate system corresponding to the target three-dimensional model and the horizontal coordinate of the first target vertex in the three-dimensional coordinate system corresponding to the target three-dimensional model; when determining the target distance between the first vertex to be screened and the first target vertex in the vertical direction, the target distance in the vertical direction can be determined based on the absolute value of the difference between the vertical coordinate of the first vertex to be screened in the three-dimensional coordinate system corresponding to the target three-dimensional model and the vertical coordinate of the first target vertex in the three-dimensional coordinate system corresponding to the target three-dimensional model.

[0101] For example, taking the horizontal coordinate of the first vertex to be screened in the three-dimensional coordinate system corresponding to the target three-dimensional model as 5, and the horizontal coordinate of the first target vertex in the three-dimensional coordinate system corresponding to the target three-dimensional model as 8, the target distance in the horizontal direction is 3.

[0102] In another possible implementation, when determining the target distance, the straight-line distance between the first vertex to be screened and the first target vertex may be used as the target distance.

[0103] S502: Determine the second target vertex based on the target distances respectively corresponding to the first vertices to be screened.

[0104] Specifically, when determining the second target vertex based on the target distance, the first vertex to be screened whose corresponding target distance meets a preset screening condition may be determined as the second target vertex. The preset screening condition may be, for example, the minimum target distance.

[0105] Exemplarily, taking the preset screening condition of minimum target distance as an example, vertex 2 having the minimum target distance to vertex 1 may be determined as the second target vertex.

[0106] S104: Determine angle information between any other vertex in the target vulnerability set except the first target vertex and the second target vertex and a line connecting the first target vertex and the second target vertex, and determine a third target vertex in the target vulnerability set based on the angle information.

[0107] In a possible implementation, Figure 6 As shown, the angle information can be determined by the following steps:

[0108] S601: For any second vertex to be screened in the target vulnerability set except the first target vertex and the second target vertex, respectively determine a first line segment and a second line segment formed by connecting the second vertex to be screened with the first target vertex and the second target vertex; and determine a third line segment formed by connecting the first target vertex and the second target vertex.

[0109] Exemplarily, the schematic diagram for determining the first line segment, the second line segment, and the third line segment may be as follows: Figure 4b As shown, Figure 4b In the figure, the first target vertex is point A, the second target vertex is point B which is closest to point A in the vertical direction, the second vertex to be screened is point C, the first line segment is CA formed by connecting the second vertex to be screened C and the first target vertex point A; the second line segment is CB formed by connecting the second vertex to be screened C and the second target vertex B; the third line segment is AB formed by connecting the first target vertex A and the second target vertex B.

[0110] S602: Determine the angle information based on a first target angle between the first line segment and the third line segment and a second target angle between the second line segment and the third line segment.

[0111] Here, the angle information includes the angle size of the first target angle and the angle size of the second target angle.

[0112] Continuing from the above example, Figure 4b , the first target angle between the first line segment and the third line segment is ∠CAB, and the second target angle between the second line segment and the third line segment is ∠CBA.

[0113] In a possible implementation, Figure 7 As shown, the third target vertex can be determined by the following steps:

[0114] S701: Determine target angle differences between the first target angle and the second target angle and a preset angle respectively.

[0115] S702: Determine the second to-be-screened vertex whose target angle difference meets a preset condition as the third target vertex.

[0116] Here, the preset angle may be 90° or the like, and the preset condition may be, for example, that the absolute value of the target angle difference is the smallest.

[0117] For example, taking the preset angle as 90°, the preset condition as the minimum absolute value of the target angle difference, the second vertices to be screened as vertex D and vertex E, and the target angle differences corresponding to vertex D and vertex E are 5° and 20° respectively, vertex D can be used as the third target vertex.

[0118] S105: Based on the first target vertex, the second target vertex and the third target vertex, fill the holes in the target hole set, and return to the step of determining the first target vertex until the target hole set is filled.

[0119] In one possible implementation, when filling the target vulnerability set, a triangular facet used to fill the target vulnerability set can be determined based on the first target vertex, the second target vertex, and the third target vertex; when it is detected that the triangular facet does not overlap with the previously determined historical triangular facets, the target vulnerability set is filled based on the determined triangular facets.

[0120] Specifically, after determining the triangle patch based on the first target vertex, the second target vertex and the third target vertex, the currently determined triangle patch can be compared with the historical triangle patches that have been used to fill the gap. If there is an overlap, it means that the gap corresponding to the currently determined triangle patch has been filled, and there is no need to use the current triangle patch to fill the gap.

[0121] In one possible implementation, in order to ensure that holes are not filled repeatedly, after any area in the target hole set is filled with triangles, the area of ​​the target hole set can be updated according to a hole detection algorithm, and the hole filling can continue to be performed on the updated target hole set.

[0122] Specifically, if the detection result obtained by using the vulnerability detection algorithm does not include the target vulnerability set (the detection result may be that there is no vulnerability, or there are other vulnerability sets except the target vulnerability set), it can be determined that the target vulnerability set has been filled.

[0123] The method for filling holes in a three-dimensional model provided by the embodiment of the present disclosure can determine the second target vertex according to the distance between the other vertices in the target hole set except the first target vertex and the first target vertex after determining the first target vertex in the detected three-dimensional model, so as to ensure that when filling holes, the problem of poor filling effect caused by the filling surface being too large is avoided; then, the third target vertex is determined according to the angle information between any other vertex in the target hole set except the first target vertex and the second target vertex, and the line connecting the first target vertex and the second target vertex, so as to ensure that the shape of the surface when filling holes is relatively standardized; and the holes are filled according to the determined first target vertex, second target vertex and third target vertex. In this way, the filling of holes in the three-dimensional model can be completed through a relatively simple calculation process, which improves the filling efficiency and filling effect of the holes in the three-dimensional model.

[0124] Those skilled in the art will appreciate that, in the above method of specific implementation, the order in which the steps are written does not imply a strict execution order and does not constitute any limitation on the implementation process. The specific execution order of the steps should be determined by their functions and possible internal logic.

[0125] Based on the same inventive concept, the embodiment of the present disclosure also provides a three-dimensional model hole filling device corresponding to the three-dimensional model hole filling method. Since the principle of solving the problem by the device in the embodiment of the present disclosure is similar to the above-mentioned three-dimensional model hole filling method in the embodiment of the present disclosure, the implementation of the device can refer to the implementation of the method, and the repeated parts will not be repeated.

[0126] Reference Figure 8 , which is a schematic diagram of the architecture of a three-dimensional model hole filling device provided by an embodiment of the present disclosure, the device includes: an acquisition module 801, a first determination module 802, a second determination module 803, a third determination module 804, and a hole filling module 805; wherein,

[0127] The acquisition module 801 is used to acquire a target three-dimensional model, and perform vulnerability detection on the target three-dimensional model to determine at least one vulnerability set of the target three-dimensional model; wherein the vulnerability set is composed of multiple vertices of the target three-dimensional model;

[0128] A first determination module 802 is used to determine a first target vertex in the target vulnerability set for the target vulnerability set;

[0129] A second determination module 803, configured to determine a second target vertex in the target vulnerability set according to distances between the first target vertex and each of the other vertices in the target vulnerability set except the first target vertex;

[0130] A third determination module 804 is used to determine angle information between any other vertex in the target vulnerability set except the first target vertex and the second target vertex and a line connecting the first target vertex and the second target vertex, and determine a third target vertex in the target vulnerability set based on the angle information;

[0131] The vulnerability filling module 805 is used to fill the target vulnerability set based on the first target vertex, the second target vertex and the third target vertex, and return to the step of determining the first target vertex until the target vulnerability set is filled.

[0132] In a possible implementation manner, the first determining module 802 is configured to determine the first target vertex according to the following steps:

[0133] Randomly select a vertex from other vertices in the target vulnerability set except the determined first target vertex as the first target vertex; or,

[0134] According to a preset order, the second target vertex or the third target vertex in the last hole filling process is used as the first target vertex.

[0135] In a possible implementation manner, the second determination module 803, when determining the second target vertex in the target vulnerability set according to the distances between the first target vertex and other vertices in the target vulnerability set except the first target vertex, is configured to:

[0136] For a first to-be-screened vertex other than the first target vertex in the target vulnerability set, determining a target distance between the first to-be-screened vertex and the first target vertex in a target direction; wherein the target direction includes a horizontal direction and / or a vertical direction;

[0137] The second target vertex is determined based on the target distances respectively corresponding to the first vertices to be screened.

[0138] In a possible implementation manner, the third determination module 804, when determining the angle information between any other vertex in the target vulnerability set except the first target vertex and the second target vertex and the line connecting the first target vertex and the second target vertex, is used to:

[0139] For any second to-be-screened vertex in the target vulnerability set except the first target vertex and the second target vertex, respectively determine a first line segment and a second line segment formed by connecting the second to-be-screened vertex with the first target vertex and the second target vertex; and determine a third line segment formed by connecting the first target vertex and the second target vertex;

[0140] The angle information is determined based on a first target angle between the first line segment and the third line segment and a second target angle between the second line segment and the third line segment.

[0141] In a possible implementation manner, the third determination module 804, when determining the third target vertex in the target vulnerability set based on the angle information, is configured to:

[0142] respectively determining target angle differences between the first target angle and the second target angle and a preset angle;

[0143] The second to-be-screened vertex whose target angle difference meets a preset condition is determined as the third target vertex.

[0144] In a possible implementation manner, the vulnerability filling module 805, when filling the target vulnerability set based on the first target vertex, the second target vertex, and the third target vertex, is used to:

[0145] Determine, according to the first target vertex, the second target vertex, and the third target vertex, a triangular facet for filling the target hole set;

[0146] When it is detected that the triangular facets do not overlap with the previously determined historical triangular facets, gap filling is performed on the target gap set based on the determined triangular facets.

[0147] In a possible implementation, the target vulnerability set is a vulnerability set of a target shape.

[0148] The hole filling device of the three-dimensional model provided by the embodiment of the present disclosure can determine the second target vertex according to the distance between the other vertices in the target hole set except the first target vertex and the first target vertex after determining the first target vertex in the detected three-dimensional model, so as to ensure that when filling holes, the problem of poor filling effect caused by the filling surface being too large is avoided; then, according to the angle information between any other vertex in the target hole set except the first target vertex and the second target vertex, and the connecting line of the first target vertex and the second target vertex, the third target vertex is determined, thereby ensuring that the shape of the surface when filling holes is relatively standardized; and the holes are filled according to the determined first target vertex, second target vertex and third target vertex. In this way, the hole filling of the three-dimensional model can be completed through a relatively simple calculation process, which improves the filling efficiency and filling effect of the holes in the three-dimensional model.

[0149] For descriptions of the processing flow of each module in the device and the interaction flow between each module, reference may be made to the relevant descriptions in the above method embodiment, which will not be described in detail here.

[0150] Based on the same technical concept, the embodiment of the present disclosure also provides a computer device. Fig. 9 As shown, it is a schematic diagram of the structure of a computer device 900 provided in an embodiment of the present disclosure, including a processor 901, a memory 902, and a bus 903. Among them, the memory 902 is used to store execution instructions, including a memory 9021 and an external memory 9022; the memory 9021 here is also called an internal memory, which is used to temporarily store the operation data in the processor 901, and the data exchanged with the external memory 9022 such as a hard disk. The processor 901 exchanges data with the external memory 9022 through the memory 9021. When the computer device 900 is running, the processor 901 communicates with the memory 902 through the bus 903, so that the processor 901 executes the following instructions:

[0151] Acquire a target three-dimensional model, and perform vulnerability detection on the target three-dimensional model to determine at least one vulnerability set of the target three-dimensional model; wherein the vulnerability set is composed of multiple vertices of the target three-dimensional model;

[0152] For a target vulnerability set, determining a first target vertex in the target vulnerability set;

[0153] Determine a second target vertex in the target vulnerability set according to distances between the first target vertex and each of the other vertices in the target vulnerability set except the first target vertex;

[0154] Determine angle information between any other vertex in the target vulnerability set except the first target vertex and the second target vertex and a line connecting the first target vertex and the second target vertex, and determine a third target vertex in the target vulnerability set based on the angle information;

[0155] Based on the first target vertex, the second target vertex and the third target vertex, the target vulnerability set is filled, and the step of determining the first target vertex is returned to be executed until the target vulnerability set is completely filled.

[0156] The present disclosure also provides a computer-readable storage medium, which stores a computer program, and when the computer program is executed by a processor, the steps of the method for filling a hole in a three-dimensional model described in the above method embodiment are executed. The storage medium can be a volatile or non-volatile computer-readable storage medium.

[0157] The present disclosure also provides a computer program product that carries a program code. The program code includes instructions that can be used to execute the steps of the three-dimensional model hole filling method described in the above method embodiment. For details, please refer to the above method embodiment, which will not be repeated here.

[0158] The computer program product may be implemented in hardware, software or a combination thereof. In one optional embodiment, the computer program product is implemented as a computer storage medium. In another optional embodiment, the computer program product is implemented as a software product, such as a software development kit (SDK).

[0159] Those skilled in the art can clearly understand that, for the convenience and simplicity of description, the specific working process of the system and device described above can refer to the corresponding process in the aforementioned method embodiment, and will not be repeated here. In the several embodiments provided in the present disclosure, it should be understood that the disclosed system, device and method can be implemented in other ways. The device embodiments described above are merely schematic. For example, the division of the units is only a logical function division. There may be other division methods in actual implementation. For example, multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some communication interfaces, and the indirect coupling or communication connection of the device or unit can be electrical, mechanical or other forms.

[0160] The units described as separate components may or may not be physically separated, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed on multiple network units. Some or all of the units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.

[0161] In addition, each functional unit in each embodiment of the present disclosure may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.

[0162] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a non-volatile computer-readable storage medium that is executable by a processor. Based on this understanding, the technical solution of the present disclosure, or the part that contributes to the prior art or the part of the technical solution, can be embodied in the form of a software product, which is stored in a storage medium and includes several instructions for 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 disclosure. The aforementioned storage medium includes: various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.

[0163] Finally, it should be noted that the above-described embodiments are only specific implementation methods of the present disclosure, which are used to illustrate the technical solutions of the present disclosure, rather than to limit them. The protection scope of the present disclosure is not limited thereto. Although the present disclosure is described in detail with reference to the above-described embodiments, ordinary technicians in the field should understand that any technician familiar with the technical field can still modify the technical solutions recorded in the above-described embodiments within the technical scope disclosed in the present disclosure, or can easily think of changes, or make equivalent replacements for some of the technical features therein; and these modifications, changes or replacements do not make the essence of the corresponding technical solutions deviate from the spirit and scope of the technical solutions of the embodiments of the present disclosure, and should be included in the protection scope of the present disclosure. Therefore, the protection scope of the present disclosure should be based on the protection scope of the claims.

Claims

1. A method for filling holes in a three-dimensional model, characterized in that: include: Acquire a target three-dimensional model, and perform vulnerability detection on the target three-dimensional model to determine at least one vulnerability set of the target three-dimensional model; wherein the vulnerability set is composed of multiple vertices of the target three-dimensional model; For a target vulnerability set, determining a first target vertex in the target vulnerability set; Determine a second target vertex in the target vulnerability set according to distances between the first target vertex and each of the other vertices in the target vulnerability set except the first target vertex; Determine angle information between any other vertex in the target vulnerability set except the first target vertex and the second target vertex and a line connecting the first target vertex and the second target vertex, and determine a third target vertex in the target vulnerability set based on the angle information; Based on the first target vertex, the second target vertex and the third target vertex, the target vulnerability set is filled, and the step of determining the first target vertex is returned to be executed until the target vulnerability set is filled; The step of determining the angle information between any other vertex in the target vulnerability set except the first target vertex and the second target vertex and the line connecting the first target vertex and the second target vertex includes: For any second to-be-screened vertex in the target vulnerability set except the first target vertex and the second target vertex, respectively determine a first line segment and a second line segment formed by connecting the second to-be-screened vertex with the first target vertex and the second target vertex; and determine a third line segment formed by connecting the first target vertex and the second target vertex; The angle information is determined based on a first target angle between the first line segment and the third line segment and a second target angle between the second line segment and the third line segment.

2. The method according to claim 1, characterized in that The method comprises determining the first target vertex according to the following method: Randomly select a vertex from other vertices in the target vulnerability set except the determined first target vertex as the first target vertex; or, According to a preset order, the second target vertex or the third target vertex in the last hole filling process is used as the first target vertex.

3. The method according to claim 1 or 2, characterized in that: The determining a second target vertex in the target vulnerability set according to the distances between the first target vertex and other vertices in the target vulnerability set except the first target vertex, comprises: For a first to-be-screened vertex other than the first target vertex in the target vulnerability set, determining a target distance between the first to-be-screened vertex and the first target vertex in a target direction; wherein the target direction includes a horizontal direction and / or a vertical direction; The second target vertex is determined based on the target distances respectively corresponding to the first vertices to be screened.

4. The method according to claim 1, characterized in that: The step of determining a third target vertex in the target vulnerability set based on the angle information includes: respectively determining target angle differences between the first target angle and the second target angle and a preset angle; The second to-be-screened vertex whose target angle difference meets a preset condition is determined as the third target vertex.

5. The method according to claim 1, characterized in that The step of filling the target vulnerability set based on the first target vertex, the second target vertex, and the third target vertex includes: Determine, according to the first target vertex, the second target vertex, and the third target vertex, a triangular facet for filling the target hole set; When it is detected that the triangular facets do not overlap with the previously determined historical triangular facets, gap filling is performed on the target gap set based on the determined triangular facets.

6. The method according to claim 1, characterized in that The target vulnerability set is a vulnerability set of a target shape.

7. A device for filling holes in a three-dimensional model, characterized in that: include: An acquisition module, used to acquire a target three-dimensional model, and perform vulnerability detection on the target three-dimensional model to determine at least one vulnerability set of the target three-dimensional model; wherein the vulnerability set is composed of multiple vertices of the target three-dimensional model; A first determination module, configured to determine, with respect to a target vulnerability set, a first target vertex in the target vulnerability set; A second determination module, configured to determine a second target vertex in the target vulnerability set according to distances between the first target vertex and each of the other vertices in the target vulnerability set except the first target vertex; A third determination module is used to determine angle information between any other vertex in the target vulnerability set except the first target vertex and the second target vertex and a line connecting the first target vertex and the second target vertex, and determine a third target vertex in the target vulnerability set based on the angle information; a vulnerability filling module, configured to fill the target vulnerability set based on the first target vertex, the second target vertex and the third target vertex, and return to the step of determining the first target vertex until the target vulnerability set is filled; Wherein, the third determination module is specifically used for: For any second to-be-screened vertex in the target vulnerability set except the first target vertex and the second target vertex, respectively determine a first line segment and a second line segment formed by connecting the second to-be-screened vertex with the first target vertex and the second target vertex; and determine a third line segment formed by connecting the first target vertex and the second target vertex; The angle information is determined based on a first target angle between the first line segment and the third line segment and a second target angle between the second line segment and the third line segment.

8. A computer device, characterized in that: include: A processor, a memory and a bus, wherein the memory stores machine-readable instructions executable by the processor, and when the computer device is running, the processor and the memory communicate via the bus, and when the machine-readable instructions are executed by the processor, the steps of the method for filling holes in a three-dimensional model as described in any one of claims 1 to 6 are performed.

9. A computer-readable storage medium, characterized in that: The computer-readable storage medium stores a computer program, which, when executed by a processor, executes the steps of the method for filling holes in a three-dimensional model as described in any one of claims 1 to 6.

Citation Information

Patent Citations

  • Hole filling method and device for three-dimensional model

    CN111768353A

  • Technique for filling holes in a three-dimensional model

    US20140253551A1