A three-dimensional mesh model denoising method, device and equipment and storage medium

By filtering the surface normal vectors and iteratively updating the vertex coordinates of the 3D mesh model, the problem of not being able to retain small-sized features in the existing technology is solved, achieving finer-grained denoising and avoiding smooth transitions and volume shrinkage.

CN116645278BActive Publication Date: 2026-05-29ZG TECH CO LTD

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
ZG TECH CO LTD
Filing Date
2023-04-13
Publication Date
2026-05-29

AI Technical Summary

Technical Problem

Existing technologies cannot effectively preserve small-sized features during the denoising process of 3D mesh models, resulting in problems such as smooth transition and volume shrinkage in the denoised model.

Method used

By acquiring the mesh data of polygonal facets of a 3D mesh model, surface normal vector filtering is performed to determine the compensation parameters of vertices, and vertex coordinates are iteratively updated based on neighborhood information, while preserving small-size features.

Benefits of technology

It achieves the preservation of small-size features of the 3D mesh model during the denoising process, avoiding smooth transitions and volume shrinkage, and improving the denoising effect.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116645278B_ABST
    Figure CN116645278B_ABST
Patent Text Reader

Abstract

The application provides a three-dimensional network model denoising method and device, equipment and storage medium, and relates to the technical field of computer graphics. The method comprises the following steps: acquiring mesh data of a plurality of polygon patches in a three-dimensional mesh model to be denoised; filtering a surface normal vector of each polygon patch according to the mesh data of each polygon patch and neighborhood information of each polygon patch, to obtain a filtered surface normal vector of each polygon patch; determining a compensation parameter of each vertex in each polygon patch according to the filtered surface normal vector of each polygon patch, vertex coordinates of each vertex in the mesh data of each polygon patch, and neighborhood information of each vertex; and iteratively updating the vertex coordinates of each vertex according to the compensation parameter of each vertex, to obtain updated vertex coordinates of each vertex, and then obtain a denoised three-dimensional mesh model. By applying the embodiment of the application, small size features in the three-dimensional mesh model can be retained.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computer graphics technology, and more specifically, to a method, apparatus, device, and storage medium for denoising three-dimensional mesh models. Background Technology

[0002] With the rapid development of 3D scanning and modeling technologies, people have placed high demands on obtaining accurate geometric models. However, in the process of obtaining 3D models using 3D scanning equipment, noise of varying complexity is inevitably introduced. Therefore, denoising of 3D mesh models is an indispensable step in digital geometry research.

[0003] Currently, the main method for denoising meshes is a two-step process. Specifically, the face normals of the mesh are first adjusted, and then the positions of the corresponding vertices are updated based on the adjusted face normals. The updated vertex positions are the denoised vertex coordinates.

[0004] Although existing solutions can achieve mesh denoising, they cannot preserve small-sized features in the 3D mesh model. Summary of the Invention

[0005] The purpose of this application is to address the shortcomings of the prior art by providing a method, apparatus, device, and storage medium for denoising three-dimensional mesh models, which can preserve small-sized features in the three-dimensional mesh model.

[0006] To achieve the above objectives, the technical solutions adopted in the embodiments of this application are as follows:

[0007] In a first aspect, embodiments of this application provide a method for denoising a three-dimensional mesh model, the method comprising:

[0008] Obtain mesh data of multiple polygonal patches in the 3D mesh model to be denoised, wherein the mesh data includes face normal vectors and vertex coordinates of multiple vertices;

[0009] Based on the mesh data of each polygonal facet and the neighborhood information of each polygonal facet, the face normal vector of each polygonal facet is filtered to obtain the filtered face normal vector of each polygonal facet.

[0010] Based on the face normal vectors of each polygonal facet after filtering, the vertex coordinates of each vertex in the mesh data of each polygonal facet, and the neighborhood information of each vertex, the compensation parameters of each vertex in each polygonal facet are determined.

[0011] The vertex coordinates of each vertex are iteratively updated based on the compensation parameters of each vertex to obtain the updated vertex coordinates of each vertex.

[0012] Based on the updated vertex coordinates, the denoised 3D mesh model is obtained.

[0013] Optionally, determining the compensation parameters for each vertex in each polygonal patch based on the filtered face normal vectors of each polygonal patch, the vertex coordinates of each vertex in the mesh data of each polygonal patch, and the neighborhood information of each vertex includes:

[0014] Based on the neighborhood information of the first vertex in the first polygonal patch and the filtered face normal vectors of each polygonal patch, the face normal vector of the vertex neighborhood patch corresponding to the first vertex is determined, wherein the first polygonal patch is any polygonal patch in the three-dimensional mesh model, and the first vertex is any vertex in the first polygonal patch.

[0015] The vertex normal vector of the first vertex is determined based on the face normal vector of each vertex's neighborhood face and the area of ​​each vertex's neighborhood face.

[0016] The compensation parameters of the first vertex are determined based on the vertex normal vector, the vertex coordinates of the first vertex, and the vertex coordinates of the neighboring vertices of the first vertex.

[0017] Optionally, determining the vertex normal vector of the first vertex based on the face normal vector of each vertex's neighborhood face and the area of ​​each vertex's neighborhood face includes:

[0018] The surface normal vector of each vertex neighborhood patch is multiplied by its area to obtain the first result of each vertex neighborhood patch;

[0019] The first results of the neighborhood patches of each vertex are added together to obtain the second result;

[0020] Divide the second result by the sum of the areas of the neighborhood patches of each vertex to determine the vertex normal vector.

[0021] Optionally, determining the compensation parameters of the first vertex based on the vertex normal vector, the vertex coordinates of the first vertex, and the vertex coordinates of the neighboring vertices of the first vertex includes:

[0022] Subtract the vertex coordinates of each neighboring vertex of the first vertex from the vertex coordinates of the first vertex to obtain the third result corresponding to each neighboring vertex;

[0023] The third result corresponding to each of the neighboring vertices is multiplied by the vertex normal vector of the first vertex to obtain the fourth result corresponding to each of the neighboring vertices.

[0024] The fourth result corresponding to each of the neighboring vertices is multiplied by the vertex normal vector of the first vertex to obtain the fifth result corresponding to each of the neighboring vertices.

[0025] The fifth results corresponding to each of the neighboring vertices are added together to determine the compensation parameters for the first vertex.

[0026] Optionally, the step of iteratively updating the vertex coordinates of each vertex according to the compensation parameters of each vertex to obtain the updated vertex coordinates of each vertex includes:

[0027] The offset distance is determined based on the face normal vector of the vertex neighborhood face corresponding to the first vertex, the vertex coordinates of the first vertex, and the centroid of each vertex neighborhood face.

[0028] The vertex coordinates of the first vertex are iteratively updated based on the compensation parameters of the first vertex, the weight information of the compensation parameters, and the offset distance to obtain the updated vertex coordinates of the first vertex.

[0029] Optionally, the step of filtering the face normal vectors of each polygonal face based on the mesh data and neighborhood information of each polygonal face to obtain the filtered face normal vectors of each polygonal face includes:

[0030] Based on the neighborhood information of the first polygonal patch, determine the face neighborhood patches of the first polygonal patch;

[0031] Based on the surface normal vector and centroid of the first polygonal facet, and the surface normal vector and centroid of each of the facet neighboring facets, the surface normal vector of the first polygonal facet is iteratively filtered to obtain the filtered surface normal vector of the first polygonal facet.

[0032] Optionally, before acquiring the mesh data of multiple polygonal patches in the 3D mesh model to be denoised, the method further includes:

[0033] Based on the angle information of the triangular facets in the three-dimensional mesh model and the angle information of the triangular facets that are neighbors of the triangular facets, the quality factor corresponding to each neighboring triangular facet is determined.

[0034] The triangular faces to be merged are determined based on the quality factor of each neighboring triangular facet and the preset threshold.

[0035] The triangular facets are merged with the triangular facets to be merged to obtain the three-dimensional mesh model containing the four-corner facets.

[0036] Secondly, embodiments of this application also provide a three-dimensional mesh model denoising device, the device comprising:

[0037] The acquisition module is used to acquire the mesh data of multiple polygonal patches in the 3D mesh model to be denoised, wherein the mesh data includes face normal vectors and vertex coordinates of multiple vertices;

[0038] The filtering module is used to filter the surface normal vectors of each polygonal face based on the mesh data and the neighborhood information of each polygonal face, so as to obtain the filtered surface normal vectors of each polygonal face.

[0039] The first determining module is used to determine the compensation parameters of each vertex in each polygonal patch based on the surface normal vector of each polygonal patch after filtering, the vertex coordinates of each vertex in the mesh data of each polygonal patch, and the neighborhood information of each vertex.

[0040] The update module is used to iteratively update the vertex coordinates of each vertex according to the compensation parameters of each vertex, so as to obtain the updated vertex coordinates of each vertex.

[0041] The second determining module is used to obtain the denoised 3D mesh model based on the updated vertex coordinates of each vertex.

[0042] Optionally, the first determining module is specifically configured to determine the surface normal vector of the vertex neighboring surface corresponding to the first vertex based on the neighborhood information of the first vertex in the first polygonal surface and the filtered surface normal vectors of each polygonal surface, wherein the first polygonal surface is any polygonal surface in the three-dimensional mesh model, and the first vertex is any vertex in the first polygonal surface; determine the vertex normal vector of the first vertex based on the surface normal vector of each vertex neighboring surface and the area of ​​each vertex neighboring surface; and determine the compensation parameters of the first vertex based on the vertex normal vector of the first vertex, the vertex coordinates of the first vertex, and the vertex coordinates of the neighboring vertices of the first vertex.

[0043] Optionally, the first determining module is further configured to multiply the surface normal vector of each vertex neighborhood patch by its area to obtain a first result for each vertex neighborhood patch; add the first results of each vertex neighborhood patch to obtain a second result; and divide the second result by the sum of the areas of each vertex neighborhood patch to determine the vertex normal vector of the first vertex.

[0044] Optionally, the first determining module is further configured to subtract the vertex coordinates of each neighboring vertex of the first vertex from the vertex coordinates of the first vertex to obtain a third result corresponding to each neighboring vertex; multiply the third result corresponding to each neighboring vertex by the vertex normal vector of the first vertex to obtain a fourth result corresponding to each neighboring vertex; perform a dot product of the fourth result corresponding to each neighboring vertex with the vertex normal vector of the first vertex to obtain a fifth result corresponding to each neighboring vertex; and add the fifth results corresponding to each neighboring vertex to determine the compensation parameter of the first vertex.

[0045] Optionally, the updating module is specifically used to determine the offset distance based on the face normal vector of the vertex neighborhood face corresponding to the first vertex, the vertex coordinates of the first vertex, and the centroid of each vertex neighborhood face; and to iteratively update the vertex coordinates of the first vertex based on the compensation parameters of the first vertex, the weight information of the compensation parameters, and the offset distance to obtain the updated vertex coordinates of the first vertex.

[0046] Optionally, the filtering module is specifically used to determine the face neighboring face of the first polygonal face based on the neighborhood information of the first polygonal face; and to perform iterative filtering on the face normal vector of the first polygonal face based on the face normal vector and centroid of the first polygonal face, and the face normal vector and centroid of each of the face neighboring face, to obtain the filtered face normal vector of the first polygonal face.

[0047] Optionally, the device further includes: a merging module;

[0048] The merging module is used to determine the quality factor corresponding to each neighboring triangular facet based on the angle information of the triangular facets in the three-dimensional mesh model and the angle information of the triangular facets that are neighbors of the triangular facets; determine the triangular facets to be merged based on the quality factor corresponding to each neighboring triangular facet and a preset threshold; and merge the triangular facets with the triangular facets to be merged to obtain the three-dimensional mesh model containing the four-corner facets.

[0049] Thirdly, embodiments of this application provide an electronic device, including: a processor, a storage medium, and a bus. The storage medium stores machine-readable instructions executable by the processor. When the electronic device is running, the processor communicates with the storage medium via the bus, and the processor executes the machine-readable instructions to perform the steps of the three-dimensional mesh model denoising method described in the first aspect.

[0050] Fourthly, embodiments of this application provide a computer-readable storage medium storing a computer program, which, when executed by a processor, performs the steps of the three-dimensional mesh model denoising method described in the first aspect.

[0051] The beneficial effects of this application are:

[0052] This application provides a method, apparatus, device, and storage medium for denoising a three-dimensional mesh model. The method includes: acquiring mesh data of multiple polygonal faces in a three-dimensional mesh model to be denoised, wherein the mesh data includes face normals and vertex coordinates of multiple vertices; filtering the face normals of each polygonal face based on the mesh data of each polygonal face and the neighborhood information of each polygonal face to obtain filtered face normals of each polygonal face; determining compensation parameters for each vertex in each polygonal face based on the filtered face normals of each polygonal face, the vertex coordinates of each vertex in the mesh data of each polygonal face, and the neighborhood information of each vertex; iteratively updating the vertex coordinates of each vertex based on the compensation parameters of each vertex to obtain updated vertex coordinates of each vertex; and obtaining the denoised three-dimensional mesh model based on the updated vertex coordinates of each vertex.

[0053] The denoising method for 3D mesh models provided in this application involves filtering the surface normal vectors of each polygonal facet in the 3D mesh model. After obtaining the filtered surface normal vectors of each polygonal facet, compensation parameters for each vertex in each polygonal facet are determined based on the vertex coordinates and neighborhood information of each vertex. The vertex coordinates of each vertex include the vertex coordinates of its neighboring vertices. In other words, this application introduces not only the surface normal vectors of the vertex's neighboring facets but also the vertex coordinates of the neighboring vertices during the vertex coordinate update stage. This allows for finer-grained vertex updates and preserves small-scale features in the 3D mesh model. Attached Figure Description

[0054] To more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of the present invention and should not be regarded as a limitation on the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.

[0055] Figure 1 A flowchart illustrating a three-dimensional mesh model denoising method provided in an embodiment of this application;

[0056] Figure 2 A schematic diagram of a neighboring patch of a polygonal patch provided in an embodiment of this application;

[0057] Figure 3 A schematic diagram of a vertex neighborhood patch provided in an embodiment of this application;

[0058] Figure 4 A flowchart illustrating another method for denoising a three-dimensional network model provided in this application embodiment;

[0059] Figure 5 A flowchart illustrating another method for denoising a three-dimensional mesh model provided in this application embodiment;

[0060] Figure 6 A flowchart illustrating another method for denoising a three-dimensional mesh model provided in an embodiment of this application;

[0061] Figure 7 This is a schematic diagram of the structure of a three-dimensional mesh model denoising device provided in an embodiment of this application;

[0062] Figure 8 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation

[0063] To make the objectives, technical solutions, and advantages of the embodiments of this application clearer, the technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. The components of the embodiments of this application described and shown in the accompanying drawings can generally be arranged and designed in various different configurations.

[0064] Therefore, the following detailed description of the embodiments of this application provided in the accompanying drawings is not intended to limit the scope of the claimed application, but merely to illustrate selected embodiments of the application. All other embodiments obtained by those skilled in the art based on the embodiments of this application without inventive effort are within the scope of protection of this application.

[0065] It should be noted that similar labels and letters in the following figures indicate similar items. Therefore, once an item is defined in one figure, it does not need to be further defined and explained in subsequent figures.

[0066] Before providing a detailed explanation of the embodiments of this application, the application scenario of this application will first be introduced. Specifically, this application scenario can be used for denoising 3D mesh models. The structure of the 3D mesh model can be a triangular mesh structure, a quadrangular mesh structure, etc. It should be noted that this application does not limit the structure. Methods for denoising 3D mesh models typically include one-step, two-step, and multi-step methods. The one-step method directly moves the vertices of the 3D mesh model, which is simple and efficient, but suffers from problems such as feature blurring and poor noise removal. The multi-step method first performs some preprocessing on the mesh data of the 3D mesh model, then filters the face normal vectors of the face patches, and finally updates the vertex positions. However, the denoising process is complex. Considering both the quality and efficiency of mesh denoising, this application uses a two-step method to denoise 3D mesh models.

[0067] While existing two-step methods can achieve mesh denoising, they fail to preserve small-scale features in the 3D mesh model, leading to issues like smooth transitions and volume shrinkage in the denoised model. This application utilizes the following embodiments to denoise triangular mesh models, preserving small-scale features and avoiding these problems.

[0068] The following is an example illustration of the 3D mesh model denoising method mentioned in this application, with reference to the accompanying drawings. Figure 1 This is a flowchart illustrating a denoising method for a three-dimensional mesh model provided in an embodiment of this application. Figure 1 As shown, the method may include:

[0069] S101. Obtain the mesh data of multiple polygonal faces in the 3D mesh model to be denoised.

[0070] The mesh data includes face normals and vertex coordinates of multiple vertices. The 3D mesh model is composed of polygons formed by point clouds, typically consisting of facets corresponding to triangles, quadrilaterals, or other convex polygons. For example, the mesh data of each facet in the 3D mesh model to be denoised can be pre-stored in a database. When an instruction to denoise the 3D mesh model is received, the face normals and vertex coordinates of each polygon facet or the desired polygon facet in the 3D mesh model to be denoised are retrieved from the database. It should be noted that the mesh data may also include other types of data, such as the area of ​​a facet or the centroid coordinates of a facet; this application does not impose any limitations on this.

[0071] S102. Based on the mesh data of each polygon facet and the neighborhood information of each polygon facet, filter the face normal vector of each polygon facet to obtain the filtered face normal vector of each polygon facet.

[0072] Among them, the neighborhood information of the polygonal patch can be understood as the polygonal patch (f i The neighborhood patch (f) j ),like Figure 2 As shown, Figure 2 This is a schematic diagram of a neighboring patch of a polygonal patch provided in an embodiment of this application. From Figure 2 It can be seen that the polygonal patch is a quadrilateral patch, and the polygonal patch (f i The neighborhood patch (f) j Specifically, these can be pieces f1, f2, f3, f4, f5, f6, f7, and f8. It should be noted that... Figure 2 This is merely an example and is not intended to limit this application.

[0073] For example, the polygonal facet (f) is first determined based on its neighborhood information. i The neighborhood patches (also called face neighborhood patches) of a polygon are then used to determine the polygon patch (f) based on the index of each polygon patch and the mesh data of each polygon patch. i The grid data of ) and its neighboring patches (f j The grid data of ) is used to analyze the polygon patch (f). i The normal vector of the polygon is filtered to obtain the filtered polygon patch (f). i The surface normal vector of ) can be a filtering method such as bilateral filtering or mean filtering, which is not limited in this application.

[0074] The process of filtering the surface normal vectors of other polygonal faces can be referred to the above description. Finally, the filtered surface normal vectors of each polygonal face can be obtained.

[0075] S103. Based on the surface normal vectors of each polygonal facet after filtering, the vertex coordinates of each vertex in the mesh data of each polygonal facet, and the neighborhood information of each vertex, determine the compensation parameters of each vertex in each polygonal facet.

[0076] The neighborhood information of each vertex can be understood as the neighborhood patch of each vertex, with the vertex (coordinate v) as an example. i Taking vertex (v) as an example, let's illustrate this. i The neighborhood patches of ) need to be connected to the vertex (v) i The neighboring vertices (v) of ) j Define the face containing the ) as follows: Figure 3 As shown, Figure 3 This is a schematic diagram of a vertex neighborhood patch provided in an embodiment of this application. From Figure 3 As can be seen from this, the vertex (v) i The number of neighborhood patches of ) is 4.

[0077] For example, after obtaining the face normal vectors of each filtered polygonal face, the current vertex to be updated (e.g., v) can be determined based on the index of each polygonal face and its face normal vector. i Information such as the face normals of the neighborhood patches (also called vertex neighborhood patches) of the vertex to be updated is then combined with the information of the vertex to be updated (v). i The vertex coordinates of ) and the neighboring vertices (v j The vertex coordinates of ) determine the vertex to be updated (v) i The compensation parameters.

[0078] S104. Iteratively update the vertex coordinates of each vertex according to the compensation parameters of each vertex to obtain the updated vertex coordinates of each vertex.

[0079] S105. Based on the updated vertex coordinates of each vertex, obtain the denoised 3D mesh model.

[0080] Among them, the vertex (v) continues to be updated. i Taking the example of (v), we obtain the vertex to be updated. i After adjusting the compensation parameters, the result can be based on the vertex to be updated (v). i The vertex coordinates and compensation parameters of the vertex to be updated are used to iteratively update the vertex to obtain the updated vertex (v). i The vertex coordinates of the next vertex are determined. Referring to the above description, the compensation parameters for the next vertex are then determined. Based on the vertex coordinates of the next vertex and the compensation parameters, the vertex coordinates of the next vertex are iteratively updated to obtain the updated vertex coordinates of the next vertex. This process is repeated until all vertex coordinates in the denoised 3D mesh model are updated, meaning the denoised 3D mesh model includes the updated vertex coordinates of each vertex.

[0081] In summary, the 3D network model denoising method provided in this application filters the surface normal vectors of each polygonal facet in the 3D mesh model to obtain the filtered surface normal vectors of each polygonal facet. Then, based on the vertex coordinates of each vertex and its neighborhood information, the compensation parameters for each vertex in each polygonal facet are determined. The vertex coordinates of each vertex include the vertex coordinates of its neighboring vertices. In other words, this application, in the vertex coordinate update stage, not only introduces the surface normal vectors of the vertex's neighboring facets but also the vertex coordinates of the neighboring vertices. This allows for finer-grained vertex updates and preserves small-scale features in the 3D mesh model.

[0082] Figure 4 This is a flowchart illustrating another method for denoising a three-dimensional network model provided in an embodiment of this application. Optionally, as... Figure 4As shown, the compensation parameters for each vertex in each polygonal patch are determined based on the surface normal vector of each filtered polygonal patch, the vertex coordinates of each vertex in the mesh data of each polygonal patch, and the neighborhood information of each vertex. These parameters include:

[0083] S401. Based on the neighborhood information of the first vertex in the first polygonal facet and the filtered face normal vectors of each polygonal facet, determine the face normal vector of the vertex neighborhood facet corresponding to the first vertex.

[0084] Wherein, the first polygonal patch is any polygonal patch in the three-dimensional mesh model, and the first vertex is any vertex in the first polygonal patch.

[0085] For example, such as Figure 3 As shown, the first vertex is vertex (v) i ), vertex (v) i The neighborhood face corresponding to vertex (v) is the face connected to vertex (v). i The set of neighborhood faces of ) (Fv) v (i)), in Figure 3 In the middle, vertex (v) i The corresponding vertex neighborhood patches include patches v1, v2, v3, and v4. It's understandable that each patch has index information in the database, and this information is used to determine the vertex (v1). i After the vertex neighborhood patch corresponding to ) is obtained, it can be based on the vertex (v) i The vertex (v) is determined from the filtered face normal vectors of each polygon face by using the index information of the vertex's neighborhood face and the index information of each polygon face. i The face normal vector of the vertex neighborhood face corresponding to ).

[0086] S402. Determine the vertex normal vector of the first vertex based on the face normal vector of each vertex's neighborhood face and the area of ​​each vertex's neighborhood face.

[0087] Among them, in determining the vertex (v) i ), that is, the face normal vector of each vertex neighborhood face corresponding to the first vertex. Then, the face normal vectors of each vertex's neighborhood face can be... With area (a j Multiply by the product of the neighborhood faces of each vertex and the area of ​​each neighborhood face (a). j Determine the vertex (v) i Vertex normal vectors of )

[0088] S403. Determine the compensation parameters of the first vertex based on the vertex normal vector, the vertex coordinates of the first vertex, and the vertex coordinates of the neighboring vertices of the first vertex.

[0089] At the first vertex (v) i Vertex normal vectors of ) Once determined, the first step is to determine the vertex coordinates (v) of the first vertex. i ) and the vertex coordinates (v) of the neighboring vertices of the first vertex. j Determine the difference between the two results. j -v i Then, based on the vertex normal vector of the first vertex... The difference between the two (v) j -v i ) and the first vertex (v i The set of neighborhood points (V) i Determine the compensation parameters (R) of the first vertex. i ).

[0090] As can be seen, in the process of updating vertices, not only are the face normals of the vertex's neighborhood patches introduced, but also the vertex coordinates of the neighborhood vertices are introduced. This allows for more fine-grained updates to the vertices, preserving more of the geometric features of the 3D mesh model. In other words, it can retain small-sized features in the 3D mesh model and avoid problems such as smooth transitions and volume shrinkage in the denoised 3D mesh model.

[0091] Optionally, determining the vertex normal vector of the first vertex based on the face normal vector of each vertex's neighborhood face and the area of ​​each vertex's neighborhood face includes: multiplying the face normal vector of each vertex's neighborhood face by its area to obtain a first result for each vertex's neighborhood face; adding the first results of each vertex's neighborhood face to obtain a second result; and dividing the second result by the sum of the areas of each vertex's neighborhood face to determine the vertex normal vector of the first vertex.

[0092] Among them, the first vertex (v) is determined. i Vertex normal vectors of ) The process can be referenced using the following formula:

[0093]

[0094] The second result mentioned above is the formula above. The sum of the areas of the neighborhood faces of each vertex is the sum of the areas in the above formula. It can be seen that the first vertex (v) is used here. i The face normal vectors of each vertex face of ) approximate the first vertex (v) i Vertex normal vectors of )

[0095] Optionally, determining the compensation parameters of the first vertex based on its vertex normal vector, vertex coordinates, and vertex coordinates of its neighboring vertices includes: subtracting the vertex coordinates of each neighboring vertex from the vertex coordinates of the first vertex to obtain a third result for each neighboring vertex; multiplying the third result for each neighboring vertex by the vertex normal vector of the first vertex to obtain a fourth result for each neighboring vertex; performing a dot product of the fourth result for each neighboring vertex with the vertex normal vector of the first vertex to obtain a fifth result for each neighboring vertex; and summing the fifth results for each neighboring vertex to determine the compensation parameters of the first vertex.

[0096] Among them, the first vertex (v) is determined. i The compensation parameter (R) i The process can be referenced using the following formula:

[0097]

[0098] Here, a neighboring vertex (v) is used. j Taking a neighboring vertex (v) as an example, each neighboring vertex (v) j Similar operations can be performed. The vertex coordinates (v) of the neighboring vertices j Subtract the coordinates of the first vertex (v) i ), to obtain the third result (v) corresponding to the neighboring vertices. j -v i ), the third result (v j -v i The vertex normal vector of the first vertex Perform a vector dot product operation to obtain the neighborhood vertex (v) j The fourth and fifth results correspond to this. It's understandable that each neighboring vertex of the first vertex corresponds to a fifth result. Adding these fifth results together gives the compensation parameter (R) for the first vertex. i ).

[0099] Figure 5 This is a flowchart illustrating another method for denoising a three-dimensional mesh model provided in an embodiment of this application. Figure 5 As shown, the vertex coordinates of each vertex are iteratively updated based on the compensation parameters of each vertex to obtain the updated vertex coordinates of each vertex, including:

[0100] S501. Determine the offset distance based on the face normal vector of the vertex neighborhood face corresponding to the first vertex, the vertex coordinates of the first vertex, and the centroid of each vertex neighborhood face.

[0101] S502. The vertex coordinates of the first vertex are iteratively updated based on the compensation parameters of the first vertex, the weight information of the compensation parameters, and the offset distance to obtain the updated vertex coordinates of the first vertex.

[0102] Based on the above description, it can be concluded that Represents the first vertex (v) i The face normal vector F of the corresponding vertex neighborhood face. v (i) indicates connection to the first vertex (v) i The set of neighborhood faces of a vertex is the set of the neighborhood faces of the corresponding vertex. The updated vertex coordinates of the first vertex can be obtained from the following.

[0103]

[0104] Among them, c j Let F represent the centroid position of the vertex neighborhood patch, λ represent the weight information of the compensation parameters, and F v (i) indicates that the connection is made to vertex (v) i The set of neighborhood surfaces of ) (F v The number of facets in (i)). The offset distance mentioned above is the same as the number of facets in the formula.

[0105] For example, the number of iterations for updating the vertex coordinates of the first vertex can be set according to actual needs, and this application does not limit it.

[0106] During the iterative update process, λ k+1 =mλ k (0 < m < 1). It can be seen that in the first iteration, λ equals m, and v in the above... i This refers to the initial vertex coordinates of the first vertex, i.e., the vertex coordinates before they were updated. After the first iteration, λ and v in the above formula... i Both need to be updated. λ can be updated according to the relevant formulas given above. i This is the result of the first iteration. And so on. For example, when the number of iterations meets a preset requirement, the iteration results are... The vertex coordinates of the updated first vertex.

[0107] It can be seen that by introducing the parameter (λR) i The algorithm can update the vertex coordinates more accurately through multiple iterations and is robust to high-intensity noise.

[0108] Figure 6 This is a flowchart illustrating another method for denoising a three-dimensional mesh model provided in an embodiment of this application. Figure 6As shown, the above method filters the surface normal vectors of each polygonal face based on the mesh data and neighborhood information of each polygonal face, obtaining the filtered surface normal vectors of each polygonal face, including:

[0109] S601. Determine the face neighbor patches of the first polygonal patch based on the neighborhood information of the first polygonal patch.

[0110] S602. Based on the surface normal vector and centroid of the first polygonal facet, and the surface normal vector and centroid of each neighboring facet, perform iterative filtering on the surface normal vector of the first polygonal facet to obtain the filtered surface normal vector of the first polygonal facet.

[0111] For example, in combination Figure 2 To explain, the first polygonal patch (f) i The neighborhood of the face (f) j The first polygon consists of eight surrounding faces. The iterative filtering process for these faces can be explained using the following formula:

[0112]

[0113] w in the above ij = j W c W s W c This is called the spatial distance function, W s This is called the similarity function.

[0114]

[0115]

[0116] Where N represents the number of neighborhood patches, c i and c j These are the first polygonal facets (f) i ) and face neighbor patches (f j The center of mass of ); n i and n j These are the first polygonal facets (f) i ) and face neighbor patches (f j The surface normal vector; σ c σ represents the average distance between the first polygonal face and all its adjacent faces; s This represents the standard deviation of the projection from the center point coordinates of the first polygonal patch to its surface normal vector.

[0117] It can be seen that each iteration requires updating (w) ijThe number of iterations for this parameter can be set according to actual needs and is not limited here. Iterative filtering of the surface normal vectors of the face can improve the accuracy of filtering the surface normal vectors.

[0118] Optionally, before obtaining the mesh data of multiple polygonal faces in the 3D mesh model to be denoised, the method further includes: determining the quality factor corresponding to each neighboring triangle face based on the angle information of the triangle face in the 3D mesh model and the angle information of the triangle face that is a neighbor to the triangle face; determining the triangle face to be merged based on the quality factor corresponding to each neighboring triangle face and a preset threshold; merging the triangle face with the triangle face to be merged to obtain a 3D mesh model containing four-corner faces.

[0119] If the polygonal facets in the 3D mesh model to be denoised are triangular faces, then the triangular faces need to be converted into quadrilateral faces. For example, taking any triangular facet in the 3D network model as an example, first, the neighboring triangular faces of this triangular facet are determined. The differences between the four angles formed by each neighboring triangular facet and this triangular facet and a preset threshold (e.g., 90°) are calculated. These differences are then weighted to determine the quality factor corresponding to each neighboring triangular facet. That is, each neighboring triangular facet has a quality factor relative to this triangular facet. The quality factor of each neighboring triangular facet is compared with the preset threshold (e.g., 90°), and the neighboring triangular facet closest to the preset threshold is selected as the triangular facet to be merged. This triangular facet and the triangular facet to be merged are then merged into quadrilateral faces. After processing each triangular facet, a 3D network model containing quadrilateral faces is obtained.

[0120] By converting triangular facets into quadrilateral facets, the amount of facet data is reduced while preserving the original features, thereby shortening the network denoising time and improving the efficiency of mesh denoising.

[0121] Figure 7 This is a schematic diagram of the structure of a three-dimensional mesh model denoising device provided in an embodiment of this application. Figure 7 As shown, the device includes:

[0122] The acquisition module 701 is used to acquire the mesh data of multiple polygonal patches in the 3D mesh model to be denoised. The mesh data includes face normals and vertex coordinates of multiple vertices.

[0123] The filtering module 702 is used to filter the surface normal vectors of each polygonal face based on the mesh data and neighborhood information of each polygonal face, so as to obtain the filtered surface normal vectors of each polygonal face.

[0124] The first determining module 703 is used to determine the compensation parameters of each vertex in each polygonal patch based on the surface normal vector of each polygonal patch after filtering, the vertex coordinates of each vertex in the mesh data of each polygonal patch, and the neighborhood information of each vertex.

[0125] The update module 704 is used to iteratively update the vertex coordinates of each vertex according to the compensation parameters of each vertex, so as to obtain the updated vertex coordinates of each vertex.

[0126] The second determining module 705 is used to obtain the denoised 3D mesh model based on the updated vertex coordinates of each vertex.

[0127] Optionally, the first determining module 703 is specifically used to determine the surface normal vector of the vertex neighborhood surface corresponding to the first vertex based on the neighborhood information of the first vertex in the first polygonal surface and the filtered surface normal vectors of each polygonal surface, wherein the first polygonal surface is any polygonal surface in the three-dimensional mesh model, and the first vertex is any vertex in the first polygonal surface; determine the vertex normal vector of the first vertex based on the surface normal vector of each vertex neighborhood surface and the area of ​​each vertex neighborhood surface; and determine the compensation parameters of the first vertex based on the vertex normal vector of the first vertex, the vertex coordinates of the first vertex, and the vertex coordinates of the neighboring vertices of the first vertex.

[0128] Optionally, the first determining module 703 is further specifically used to multiply the surface normal vector of each vertex neighborhood patch by its area to obtain a first result for each vertex neighborhood patch; to add the first results of each vertex neighborhood patch to obtain a second result; and to divide the second result by the sum of the areas of each vertex neighborhood patch to determine the vertex normal vector of the first vertex.

[0129] Optionally, the first determining module 703 is further specifically configured to subtract the vertex coordinates of each neighboring vertex of the first vertex from the vertex coordinates of the first vertex to obtain a third result corresponding to each neighboring vertex; multiply the third result corresponding to each neighboring vertex by the vertex normal vector of the first vertex to obtain a fourth result corresponding to each neighboring vertex; perform a dot product of the fourth result corresponding to each neighboring vertex by the vertex normal vector of the first vertex to obtain a fifth result corresponding to each neighboring vertex; and add the fifth results corresponding to each neighboring vertex to determine the compensation parameters of the first vertex.

[0130] Optionally, the update module 704 is specifically used to determine the offset distance based on the face normal vector of the vertex neighborhood face corresponding to the first vertex, the vertex coordinates of the first vertex, and the centroid of each vertex neighborhood face; and to iteratively update the vertex coordinates of the first vertex based on the compensation parameters of the first vertex, the weight information of the compensation parameters, and the offset distance, so as to obtain the updated vertex coordinates of the first vertex.

[0131] Optionally, the filtering module 702 is specifically used to determine the face neighboring face of the first polygon face based on the neighborhood information of the first polygon face; and to perform iterative filtering on the face normal vector of the first polygon face based on the face normal vector and centroid of the first polygon face, the face normal vector and centroid of each face neighboring face, to obtain the filtered face normal vector of the first polygon face.

[0132] Optionally, the device further includes: a merging module;

[0133] This merging module is used to determine the quality factor of each neighboring triangular facet based on the angle information of the triangular facets in the 3D mesh model and the angle information of the triangular facets that are neighbors of the triangular facets; to determine the triangular facets to be merged based on the quality factor of each neighboring triangular facet and a preset threshold; and to merge the triangular facets with the triangular facets to be merged to obtain a 3D mesh model containing the four corner facets.

[0134] The above-described device is used to execute the method provided in the foregoing embodiments, and its implementation principle and technical effect are similar, so they will not be described again here.

[0135] These modules can be one or more integrated circuits configured to implement the above methods, such as one or more Application Specific Integrated Circuits (ASICs), one or more Digital Signal Processors (DSPs), or one or more Field Programmable Gate Arrays (FPGAs). Alternatively, when a module is implemented using processing element scheduler code, the processing element can be a general-purpose processor, such as a Central Processing Unit (CPU) or other processor capable of calling program code. Furthermore, these modules can be integrated together as a system-on-a-chip (SoC).

[0136] Figure 8 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application, such as... Figure 8 As shown, the electronic device may include a processor 801, a storage medium 802, and a bus 803. The storage medium 802 stores machine-readable instructions executable by the processor 801. When the electronic device is running, the processor 801 communicates with the storage medium 802 via the bus 803, and the processor 801 executes the machine-readable instructions to perform the steps of the above method embodiment. The specific implementation and technical effects are similar and will not be described in detail here.

[0137] Optionally, this application also provides a computer-readable storage medium storing a computer program, which, when run by a processor, executes the steps of the above-described method embodiments.

[0138] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative; for instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.

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

[0140] Furthermore, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit. The integrated unit can be implemented in hardware or in a combination of hardware and software functional units.

[0141] The integrated units implemented as software functional units described above can be stored in a computer-readable storage medium. These software functional units, stored in a storage medium, include several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) or processor to execute some steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.

[0142] It should be noted that, in this document, relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.

[0143] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Various modifications and variations are possible for those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application. It should be noted that similar reference numerals and letters in the following figures indicate similar items; therefore, once an item is defined in one figure, it does not need further definition and explanation in subsequent figures. The above description is merely a preferred embodiment of this application and is not intended to limit this application. Various modifications and variations are possible for those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.

Claims

1. A method for denoising a three-dimensional mesh model, characterized in that, The method includes: Obtain mesh data of multiple polygonal patches in the 3D mesh model to be denoised, wherein the mesh data includes face normal vectors and vertex coordinates of multiple vertices; Based on the mesh data of each polygonal facet and the neighborhood information of each polygonal facet, the face normal vector of each polygonal facet is filtered to obtain the filtered face normal vector of each polygonal facet. Based on the face normal vectors of each polygonal facet after filtering, the vertex coordinates of each vertex in the mesh data of each polygonal facet, and the neighborhood information of each vertex, the compensation parameters of each vertex in each polygonal facet are determined. The step of determining the compensation parameters for each vertex in each polygonal patch based on the filtered face normal vectors, the vertex coordinates of each vertex in the mesh data of each polygonal patch, and the neighborhood information of each vertex includes: Based on the neighborhood information of the first vertex in the first polygonal patch and the filtered face normal vectors of each polygonal patch, the face normal vector of the vertex neighborhood patch corresponding to the first vertex is determined, wherein the first polygonal patch is any polygonal patch in the three-dimensional mesh model, and the first vertex is any vertex in the first polygonal patch. The vertex normal vector of the first vertex is determined based on the face normal vector of each vertex's neighborhood face and the area of ​​each vertex's neighborhood face. The compensation parameters of the first vertex are determined based on the vertex normal vector of the first vertex, the vertex coordinates of the first vertex, and the vertex coordinates of the neighboring vertices of the first vertex. The vertex coordinates of each vertex are iteratively updated based on the compensation parameters of each vertex to obtain the updated vertex coordinates of each vertex. Based on the updated vertex coordinates, the denoised 3D mesh model is obtained.

2. The method according to claim 1, characterized in that, Determining the vertex normal vector of the first vertex based on the face normal vector of each vertex's neighborhood face and the area of ​​each vertex's neighborhood face includes: The surface normal vector of each vertex neighborhood patch is multiplied by its area to obtain the first result of each vertex neighborhood patch; The first results of the neighborhood patches of each vertex are added together to obtain the second result; Divide the second result by the sum of the areas of the neighborhood patches of each vertex to determine the vertex normal vector.

3. The method according to claim 1, characterized in that, The step of determining the compensation parameters of the first vertex based on the vertex normal vector, the vertex coordinates of the first vertex, and the vertex coordinates of the neighboring vertices of the first vertex includes: Subtract the vertex coordinates of each neighboring vertex of the first vertex from the vertex coordinates of the first vertex to obtain the third result corresponding to each neighboring vertex; The third result corresponding to each of the neighboring vertices is multiplied by the vertex normal vector of the first vertex to obtain the fourth result corresponding to each of the neighboring vertices. The fourth result corresponding to each of the neighboring vertices is multiplied by the vertex normal vector of the first vertex to obtain the fifth result corresponding to each of the neighboring vertices. The fifth results corresponding to each of the neighboring vertices are added together to determine the compensation parameters for the first vertex.

4. The method according to claim 1, characterized in that, The step of iteratively updating the vertex coordinates of each vertex according to the compensation parameters of each vertex to obtain the updated vertex coordinates of each vertex includes: The offset distance is determined based on the face normal vector of the vertex neighborhood face corresponding to the first vertex, the vertex coordinates of the first vertex, and the centroid of each vertex neighborhood face. The vertex coordinates of the first vertex are iteratively updated based on the compensation parameters of the first vertex, the weight information of the compensation parameters, and the offset distance to obtain the updated vertex coordinates of the first vertex.

5. The method according to any one of claims 1-4, characterized in that, The step of filtering the surface normal vectors of each polygonal facet based on the mesh data and neighborhood information of each polygonal facet to obtain the filtered surface normal vectors of each polygonal facet includes: Based on the neighborhood information of the first polygonal patch, determine the face neighborhood patches of the first polygonal patch; Based on the surface normal vector and centroid of the first polygonal facet, and the surface normal vector and centroid of each of the facet neighboring facets, the surface normal vector of the first polygonal facet is iteratively filtered to obtain the filtered surface normal vector of the first polygonal facet.

6. The method according to any one of claims 1-4, characterized in that, Before acquiring the mesh data of multiple polygonal patches in the 3D mesh model to be denoised, the method further includes: Based on the angle information of the triangular facets in the three-dimensional mesh model and the angle information of the triangular facets that are neighbors of the triangular facets, the quality factor corresponding to each neighboring triangular facet is determined. The triangular faces to be merged are determined based on the quality factor of each neighboring triangular facet and the preset threshold. The triangular facets are merged with the triangular facets to be merged to obtain the three-dimensional mesh model containing the four-corner facets.

7. A denoising device for a three-dimensional mesh model, characterized in that, The device includes: The acquisition module is used to acquire the mesh data of multiple polygonal patches in the 3D mesh model to be denoised, wherein the mesh data includes face normal vectors and vertex coordinates of multiple vertices; The filtering module is used to filter the surface normal vectors of each polygonal face based on the mesh data and the neighborhood information of each polygonal face, so as to obtain the filtered surface normal vectors of each polygonal face. The first determining module is used to determine the compensation parameters of each vertex in each polygonal patch based on the surface normal vector of each polygonal patch after filtering, the vertex coordinates of each vertex in the mesh data of each polygonal patch, and the neighborhood information of each vertex. The first determining module is specifically used to determine the surface normal vector of the vertex neighboring surface corresponding to the first vertex based on the neighborhood information of the first vertex in the first polygonal surface and the filtered surface normal vectors of each polygonal surface, wherein the first polygonal surface is any polygonal surface in the three-dimensional mesh model, and the first vertex is any vertex in the first polygonal surface; determine the vertex normal vector of the first vertex based on the surface normal vector of each vertex neighboring surface and the area of ​​each vertex neighboring surface; and determine the compensation parameters of the first vertex based on the vertex normal vector of the first vertex, the vertex coordinates of the first vertex, and the vertex coordinates of the neighboring vertices of the first vertex. The update module is used to iteratively update the vertex coordinates of each vertex according to the compensation parameters of each vertex, so as to obtain the updated vertex coordinates of each vertex. The second determining module is used to obtain the denoised 3D mesh model based on the updated vertex coordinates of each vertex.

8. An electronic device, characterized in that, include: The device includes a processor, a storage medium, and a bus, wherein the storage medium stores machine-readable instructions executable by the processor, and when the electronic device is running, the processor communicates with the storage medium via the bus, and the processor executes the machine-readable instructions to perform the steps of the three-dimensional mesh model denoising method as described in any one of claims 1-6.

9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, performs the steps of the three-dimensional mesh model denoising method as described in any one of claims 1-6.