Grid vertex interpolation method applied to three-dimensional grid model and related device
By using the method of extrapolating vertices, the problem that midpoint interpolation cannot accurately represent complex geometric shapes is solved, and higher quality 3D mesh model reconstruction is achieved.
Patent Information
- Application Number
- CN202410591451.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-05-10
- Publication Date
- 2025-11-11
AI Technical Summary
In the simplification process of existing 3D mesh models, the midpoint interpolation method cannot accurately represent complex geometric changes, resulting in poor reconstruction quality.
The extrapolation vertex method is used to perform sub-partitioning by predicting the median points near the grid edges, thereby improving the ability to represent complex geometric shapes.
It can more accurately represent the complex geometric changes on the surface of a 3D mesh model, thereby improving the reconstruction quality.
Smart Images

Figure CN120931479A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of graphics data processing technology, specifically to a mesh vertex interpolation method and related apparatus applied to a three-dimensional mesh model. Background Technology
[0002] A 3D mesh model consists of a geometric component and an attribute component. The geometric component includes data such as the set of 3D vertices and their connectivity, and the correspondence between 3D vertices in a 2D texture map. The attribute component includes data such as texture, reflectivity, and normal vectors. 3D mesh models have been widely used in computer graphics, visualization, and other fields.
[0003] Currently, in applications such as the transmission and storage of 3D mesh models, to reduce the bitrate generated by 3D mesh model compression, downsampling is typically used in lossy compression processes to reduce the number of vertices in the 3D mesh model, thereby simplifying the 3D mesh model. The simplified 3D mesh model may lose surface details. During the reconstruction of the 3D mesh model, interpolation is used to generate more vertices, and the displacement vector of each vertex relative to the original 3D mesh model surface is identified. This process is also known as sub-partitioning.
[0004] The common vertex interpolation method is midpoint interpolation, which means that for each mesh edge, the average position of the two vertices is used as the interpolation vertex, and then subdivision is performed. This method works well for smooth 3D spatial regions, but it cannot accurately represent more complex geometric changes. Summary of the Invention
[0005] Embodiments of this application provide a mesh vertex interpolation method and apparatus, electronic device, computer-readable storage medium, and computer program product for use in three-dimensional mesh models, which can more accurately predict the true shape of the surface of a three-dimensional mesh model.
[0006] In a first aspect, embodiments of this application provide a mesh vertex interpolation method applied to a three-dimensional mesh model. The method includes: acquiring three-dimensional mesh data to be subdivided; predicting subdivision vertices for each mesh edge in the three-dimensional mesh data; wherein the subdivision vertices corresponding to each mesh edge include interpolated vertices or extrapolated vertices, the interpolated vertices being the median points of the mesh edges, and the extrapolated vertices being adjacent to the median points of the mesh edges; and performing subdivision processing on the three-dimensional mesh data based on the predicted subdivision vertices.
[0007] Secondly, embodiments of this application provide a mesh vertex interpolation device for a three-dimensional mesh model. The device includes: an acquisition module configured to acquire three-dimensional mesh data to be subdivided; a prediction module configured to predict subdivision vertices for each mesh edge in the three-dimensional mesh data; wherein the subdivision vertices corresponding to each mesh edge include interpolated vertices or extrapolated vertices, the interpolated vertices being the median points of the mesh edges, and the extrapolated vertices being adjacent to the median points of the mesh edges; and a processing module configured to perform subdivision processing on the three-dimensional mesh data based on the predicted subdivision vertices.
[0008] Thirdly, embodiments of this application provide an electronic device, including: one or more processors; and a memory for storing one or more programs, which, when executed by the one or more processors, enable the electronic device to implement the mesh vertex interpolation method applied to a three-dimensional mesh model as described above.
[0009] Fourthly, embodiments of this application provide a computer-readable storage medium storing computer-readable instructions that, when executed by a computer's processor, cause the computer to perform the mesh vertex interpolation method applied to a three-dimensional mesh model as described above.
[0010] Fifthly, embodiments of this application provide a computer program product, including a computer program that, when executed by a processor, implements the mesh vertex interpolation method applied to a three-dimensional mesh model as described above.
[0011] In the technical solution provided in the embodiments of this application, the sub-partitioning process can predict the extrapolation vertices of the median points near the mesh edges. Compared with the prior art, which performs sub-partitioning by interpolating the midpoints of the vertices, the method of predicting extrapolation vertices can more accurately express the complex geometric changes on the surface of the three-dimensional mesh model, thereby more accurately predicting the true shape of the surface of the three-dimensional mesh model and improving the reconstruction quality of the three-dimensional mesh model. Attached Figure Description
[0012] Figure 1 This is a schematic diagram illustrating the coding process of an exemplary 3D mesh model;
[0013] Figure 2 This is a schematic diagram illustrating an exemplary derivation process of a displacement vector;
[0014] Figure 3 This is an example illustration of the effect of downsampling processing;
[0015] Figure 4 This is a schematic diagram illustrating an exemplary decoding process for a 3D mesh model;
[0016] Figure 5 This is an example of the effect of an existing sub-partitioning method;
[0017] Figure 6 This is an example of comparing the different prediction results obtained by performing vertex interpolation and vertex extrapolation on the surface of a 3D mesh model.
[0018] Figure 7 This is a flowchart of an exemplary mesh vertex interpolation method applied to a 3D mesh model;
[0019] Figure 8 This illustration shows the effect of the normal vector pointing of each vertex of a grid edge predicting a sub-partition vertex under an exemplary model surface shape after downsampling;
[0020] Figure 9 This is another exemplary flowchart of a mesh vertex interpolation method applied to a 3D mesh model;
[0021] Figure 10 This is an exemplary schematic diagram illustrating the effect of determining a reference vertex by extrapolating and predicting the near-end extensions of each adjacent edge of a reference segment.
[0022] Figure 11 This is an example of how the reference vertex corresponding to the extrapolation prediction reference line segment is determined using the median plane;
[0023] Figure 12 This is a block diagram of an exemplary mesh vertex interpolation device applied to a 3D mesh model;
[0024] Figure 13 A schematic diagram of the structure of a computer system suitable for implementing the electronic device of the present application is shown. Detailed Implementation
[0025] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.
[0026] The block diagrams shown in the accompanying drawings are merely functional entities and do not necessarily correspond to physically independent entities. That is, these functional entities can be implemented in software, in one or more hardware modules or integrated circuits, or in different network and / or processor devices and / or microcontroller devices.
[0027] The flowcharts shown in the accompanying drawings are merely illustrative and do not necessarily include all content and operations / steps, nor do they necessarily have to be performed in the described order. For example, some operations / steps can be broken down, while others can be combined or partially combined; therefore, the actual execution order may change depending on the specific circumstances.
[0028] In this application, "multiple" refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A alone, A and B simultaneously, or B alone. The character " / " generally indicates that the preceding and following related objects have an "or" relationship.
[0029] The terms "first," "second," "third," and "fourth," etc., used in the specification, claims, and accompanying drawings of this application are used to distinguish different objects, not to describe a specific order. The terms "comprising" and "having," and any variations thereof, are intended to cover non-exclusive inclusion. For example, a process, method, system, product, or apparatus that includes a series of steps or units is not limited to the listed steps or units, but may optionally include steps or units not listed, or may optionally include other steps or units inherent to these processes, methods, products, or apparatuses.
[0030] In this application embodiment, the terms "module" or "unit" refer to a computer program or part of a computer program that has a predetermined function and works with other related parts to achieve a predetermined goal, and can be implemented wholly or partially using software, hardware (such as processing circuitry or memory), or a combination thereof. Similarly, a processor (or multiple processors or memory) can be used to implement one or more modules or units. Furthermore, each module or unit can be part of an overall module or unit that includes the functionality of that module or unit.
[0031] To facilitate understanding of the technical solutions proposed in the embodiments of this application, it is first necessary to introduce the encoding and decoding process of the three-dimensional mesh model.
[0032] Please see Figure 1 , Figure 1 This is a schematic diagram illustrating an exemplary encoding process for a 3D mesh model. Typically, during encoding, the geometric data and texture map of the 3D mesh model are compressed separately. For example... Figure 1As shown, on the one hand, the geometric data of the 3D mesh model is preprocessed to generate a sampled and simplified basic layer mesh, which contains a new set of mesh vertices and a set of connection relationships, as well as geometric information such as the displacement vectors of the new mesh vertices, the texture map coordinates corresponding to the new mesh vertices, and the connection relationships between these coordinates. This geometric information is used as input information and input to the mesh encoder for compression encoding to obtain the mesh compressed bitstream.
[0033] Texture map coordinates, also known as UV coordinates, are used to describe the correspondence between vertices in the base layer mesh and their corresponding texture coordinates. Displacement vectors are used to express the difference between known vertices and the original geometry of the 3D mesh model. Known vertices are understood as vertices in the base layer mesh input to the mesh encoder, for example, in... Figure 2 In the derivation of the illustrated displacement vector, the basic layer mesh is obtained by sequentially downsampling and subdivision processing of the original 3D mesh, and the known vertices associated with the displacement vector include the vertices added during the subdivision process.
[0034] Downsampling is used to significantly reduce the number of vertices required to represent a 3D mesh model while maintaining its basic geometry, thereby simplifying the 3D mesh model. Figure 3 This is an exemplary illustration of the effect of downsampling, showing the new geometry obtained after downsampling the geometry shown in the right figure. The new geometry maintains the basic geometry of the 3D mesh model while reducing the number of vertices. For example, an exemplary downsampling method could be to merge the current vertex and its connected vertices to output a new vertex. The connectivity of the new vertex is determined by the connectivity of the original vertex's neighboring vertices. Figure 3 The new vertex O' shown is obtained by merging the current vertex O and the vertices A, B, C, and D connected to the current vertex. The new vertex O' is then connected to the vertices N1, N2, N3, N4, and N5 that were connected to the original vertices A, B, C, and D. This embodiment does not limit the specific implementation method of the downsampling process.
[0035] Subpartitioning increases the number of vertices to represent more nuanced geometric changes in the original mesh, which in turn increases the data volume. Understandably, a simplified mesh model reduces the data volume compared to the original, complex 3D mesh model. However, for the surface of a complex 3D mesh model, a small number of vertices often cannot effectively represent the complex geometry. Therefore, subpartitioning increases the number of vertices to represent more nuanced geometric changes in the original mesh.
[0036] It should be noted that in the encoding and decoding process of the 3D mesh model in the example above, preprocessing may include one or more of downsampling and sub-partitioning processes. In practical applications, the encoding process can choose whether to perform downsampling or sub-partitioning based on the actual application requirements.
[0037] And as Figure 1 As shown, on the other hand, since the geometric data of the 3D mesh model changes after preprocessing, the corresponding texture map also needs to be changed accordingly. Therefore, the transferred texture map corresponding to the basic layer mesh is generated through texture transfer processing. The transferred texture map is used as input information and input to a 2D image or video encoder for compression encoding to obtain a texture map compressed bitstream.
[0038] Please continue reading Figure 4 , Figure 4 This is a schematic diagram illustrating an exemplary decoding process for a 3D mesh model. The decoding process corresponds to the encoding process. On one hand, the mesh decoder decodes the compressed mesh stream to obtain the geometric data and displacement vectors of the base layer mesh. The geometric data of the base layer mesh includes the vertex position information and connectivity of the base layer mesh, as well as the texture map coordinates and connectivity of the base layer mesh. On the other hand, the texture map compressed stream is decoded by a 2D image or video decoder to obtain the reconstructed texture map of the base layer mesh.
[0039] By decoding the geometric data and displacement vectors of the basic layer mesh, the geometry of the reconstructed 3D mesh model is restored. That is, the vertices of the reconstructed 3D mesh model are determined by the decoded vertices and their corresponding displacement vectors, thus making the vertices of the reconstructed 3D mesh model closer to the original geometry of the 3D mesh model. Furthermore, by decoding the texture map coordinates and connectivity of the basic layer mesh, the facet information on the reconstructed texture map is mapped onto the surface of the reconstructed 3D mesh model's geometry, thereby obtaining the reconstructed 3D mesh model and completing the rendering and presentation of the 3D mesh model.
[0040] Sub-partitioning techniques can be applied to both the encoding and decoding processes of 3D mesh models. For example, during the encoding process, sub-partitioning is typically applied after downsampling, while during the decoding process, sub-partitioning is applied when reconstructing the 3D mesh model.
[0041] In existing technical implementations, midpoint interpolation is used to add new mesh vertices during the sub-partitioning process. For example... Figure 5As shown, the sub-partitioning process iterates through two rounds of midpoint interpolation on the original mesh. The vertices obtained from each round of midpoint interpolation have their geometric positions calculated as the average of the two vertices on each edge of each mesh, thus generating a large number of new vertices. It should be noted that the embodiments of this application do not limit the mesh shape of the 3D mesh model to triangles; it can be any polygon, such as other regular or irregular polygons.
[0042] Depend on Figure 5 It can also be seen that the subdivision process uses midpoint interpolation, which does not change the geometry of the original mesh. The purpose of adding vertices is to express more subtle geometric changes in the original mesh.
[0043] This vertex interpolation method is effective for representing smooth 3D spatial regions geometrically, but it cannot accurately represent more complex geometric shape changes. For example... Figure 6 As shown, on the original mesh surface, the mesh edge BEC exhibits a relatively sharp geometric shape change, which is simplified to mesh edge BC after downsampling. For the interpolation prediction point E, different prediction results are obtained through vertex interpolation and vertex extrapolation methods, resulting in prediction points E1 and E2. Vertex interpolation is also known as midpoint interpolation, and the interpolated prediction point E1 is the median point of the simplified mesh edge BC. Vertex extrapolation is the mesh vertex interpolation scheme proposed in this embodiment, and the extrapolated prediction point E2 is located near the median point of mesh edge BC. Correspondingly, the magnitudes of the displacement vectors derived from these two prediction points are also different; the magnitude of the displacement vector corresponding to the extrapolated prediction point E2 is significantly smaller than the magnitude of the displacement vector corresponding to the interpolated prediction point E1. Therefore, it can be determined that the geometry of the original mesh edge BEC can be more accurately expressed through the extrapolated prediction point E2 and its displacement vector.
[0044] The following section will provide a detailed description of the mesh vertex interpolation scheme proposed in this application for three-dimensional mesh models.
[0045] Please see Figure 7 , Figure 7 This is a flowchart illustrating an exemplary mesh vertex interpolation method applied to a 3D mesh model. This method can be specifically executed by a device used to encode or decode the 3D mesh model.
[0046] It should be noted that the devices used for encoding or decoding 3D mesh models can be user-end devices such as smartphones, computers, smart voice interaction devices, smart TVs, vehicle terminals, and aircraft, without any restrictions. The devices used for encoding or decoding 3D mesh models can also be servers, such as independent physical servers, server clusters or distributed systems composed of multiple physical servers, or cloud servers providing basic cloud computing services such as cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network services, cloud communication, middleware services, domain name services, security services, and big data and artificial intelligence platforms, without any restrictions.
[0047] like Figure 7 As shown, this exemplary mesh vertex interpolation method applied to a 3D mesh model includes S710-S730, which are described in detail below:
[0048] S710: Obtain the 3D mesh data to be subdivided.
[0049] As mentioned earlier, sub-partitioning is typically an iterative process, resulting in a large number of new vertices. For the first round of sub-partitioning, the 3D mesh data to be sub-partitioned is the simplified 3D mesh data obtained by downsampling the geometric data of the original 3D mesh model. For subsequent rounds of sub-partitioning, the 3D mesh data to be sub-partitioned is the 3D mesh data obtained in the previous round of sub-partitioning.
[0050] S720 predicts sub-partition vertices for each grid edge in the 3D grid data; wherein, the sub-partition vertices corresponding to each grid edge include interpolation vertices or extrapolation vertices, the interpolation vertices are the median points of the grid edges, and the extrapolation vertices are the median points of the grid edges.
[0051] This embodiment predicts sub-partition vertices for each grid edge in the 3D mesh data. These sub-partition vertices can be interpolated vertices or extrapolated vertices. In other words, vertex interpolation prediction or vertex extrapolation prediction can be used to predict the sub-partition vertices corresponding to grid edges.
[0052] In this embodiment, there are multiple ways to determine which method to use to predict the sub-partition vertices for each grid edge.
[0053] For example, considering that a larger mesh area will result in greater shape changes when using vertex interpolation, while vertex extrapolation will better match the original shape of the 3D mesh model, in some exemplary embodiments, it can be determined whether to perform vertex extrapolation prediction in this round of partitioning based on the transmission identifier. If yes, the corresponding extrapolated vertices are predicted for each mesh edge in the 3D mesh data. If no, the median point of each mesh edge in the 3D mesh data is used as the corresponding interpolated vertex.
[0054] As can be understood, the transmission identifier, also known as the transmission flag, is a preset parameter used to control the overall process of sub-partitioning. For example, the transmission identifier indicates that extrapolation is used to predict extrapolated vertices only for a certain round of sub-partitioning, such as indicating that extrapolated vertices are only considered for the first round of sub-partitioning. Using the transmission identifier to control the overall sub-partitioning process in each round has advantages such as simplicity and convenience.
[0055] In other exemplary embodiments, each round of sub-partitioning processing adaptively determines whether to use vertex interpolation to predict interpolated vertices or vertex extrapolation to predict extrapolated vertices for each mesh edge in the 3D mesh data. By adaptively controlling the sub-partitioning processing in each round, the geometry of the 3D mesh model can be expressed more flexibly, thus adapting more flexibly to changes in the geometry of the 3D mesh model.
[0056] For example, first determine the adjacent edges of each grid edge. For grid edges whose normal vectors point to the same side direction, predict the corresponding extrapolation vertices. For grid edges whose normal vectors do not point to the same side direction, use the median point as the corresponding interpolation vertex.
[0057] For ease of understanding, a critical edge in 3D mesh data includes other mesh edges connected to the two vertices of that edge. If the normal vectors of the vertices of adjacent edges point in the same direction, it indicates that the original mesh shape is more complex, resembling a convex or concave shape rather than a smooth 3D spatial region. Using interpolation prediction methods in this case would further alter the geometry. Figure 8 It indicates Figure 6 After downsampling, the simplified model surface shape is such that if the predicted sub-vertex is for grid edge BC, its neighboring edges are grid edges AB and CD. Since the normal vectors of vertices A, B, C, and D all point to the outside of grid edge BC, the corresponding extrapolation vertex is predicted for grid edge BC.
[0058] S730 performs sub-partitioning of the 3D mesh data based on the predicted sub-partition vertices.
[0059] This embodiment performs sub-partitioning processing on the 3D mesh data based on the predicted sub-partition vertices; that is, it is the specific process of performing sub-partitioning processing. This can be understood as the process of further dividing the 3D mesh data into sub-meshes based on the predicted sub-partition vertices. The detailed process will not be elaborated in this embodiment.
[0060] Therefore, in the technical solution provided in this embodiment, the sub-partitioning process can predict the extrapolation vertices of the median points near the mesh edges. Compared with the existing technology that performs sub-partitioning by interpolating the midpoints of the vertices, the method of predicting extrapolation vertices can more accurately express the complex geometric changes on the surface of the three-dimensional mesh model, thereby more accurately predicting the true shape of the surface of the three-dimensional mesh model and improving the reconstruction quality of the three-dimensional mesh model.
[0061] In another exemplary embodiment, such as Figure 9 As shown, the process of using the grid edges of the extrapolation vertices to be predicted in the 3D grid data as extrapolation prediction reference segments, and predicting the corresponding extrapolation vertices for the extrapolation prediction reference segments includes S910-S930, which are described in detail below:
[0062] S910, determine the reference vertices on the near-end extensions of each adjacent edge of the extrapolation prediction reference line segment to obtain the reference vertex set.
[0063] First, it should be noted that the proximal extension of the adjacent side of the extrapolation prediction reference segment refers to the extension line closer to the midpoint of the extrapolation prediction reference segment. For example... Figure 10 As shown, the extrapolation prediction reference line segment BC has four adjacent edges. The near-end extension of adjacent edge AB is line segment BE2, the near-end extension of adjacent edge FB is line segment BE1, the near-end extension of adjacent edge GC is line segment CE4, and the near-end extension of adjacent edge DC is line segment CE3.
[0064] In this embodiment, the reference vertex is determined on the near-end extension line of each adjacent edge of the extrapolation prediction reference line segment. This can also be achieved in various other ways.
[0065] For example, in some exemplary embodiments, the location of the reference vertex is determined as the position on the extension line of the near end of the adjacent edge of the extrapolation prediction reference segment, where the distance from the near end point of the adjacent edge is a preset length proportion of the adjacent edge. The near end point of the adjacent edge refers to the vertex of the adjacent edge that is closer to the median point of the extrapolation prediction reference segment. The preset length proportion of the adjacent edge can be 0.5, indicating that the distance from the reference vertex to the near end point of the adjacent edge is half the length of the adjacent edge. The preset length proportion of the adjacent edge can also be other proportion values, such as 0.4, 0.6, etc., and is not limited here.
[0066] For example, in other exemplary embodiments, the location where the near-end extension of the adjacent edge of the extrapolation prediction reference segment intersects the median plane is determined as the location of the reference vertex. The median plane passes through the median point of the extrapolation prediction reference segment and is perpendicular to the extrapolation prediction reference segment. For example... Figure 11 As shown, on the proximal extension of the adjacent edge AB, the position of the reference vertex E1 is the intersection point of the proximal extension and the median plane.
[0067] S920 determines the location of candidate extrapolation prediction points based on the positions of each reference vertex in the reference vertex set.
[0068] This embodiment provides multiple methods to determine the location of candidate extrapolation prediction points based on the positions of each reference vertex in the reference vertex set.
[0069] For example, in some exemplary embodiments, the average or weighted average of the positions of each reference vertex in the reference vertex set can be calculated, and the calculated result can be used as the position of the candidate extrapolation prediction point.
[0070] When calculating the weighted average, the weights of each reference vertex in the reference vertex set can be determined according to preset rules, and the sum of the weights of each reference vertex should be 1. For example, the preset rules indicate that the weights of each reference vertex are determined based on the lengths of its neighboring edges. The smaller the distance, the closer the neighboring edge is to the median point of the extrapolated prediction reference segment, and the larger its corresponding weight. Of course, the preset rules can also include other elements, such as directly calculating the distance between each reference vertex and the median point of the extrapolated prediction reference segment; the smaller the distance, the larger the corresponding weight. This embodiment does not restrict the allocation method of the weights of each reference vertex in the reference vertex set.
[0071] For example, in some other exemplary embodiments, the corresponding reference vertices in the reference vertex set can be sorted in ascending order of adjacent edge length to obtain a vertex sorting sequence. Then, a preset number of reference vertices are selected from the vertex sorting sequence, and the selected reference vertices are subjected to position fusion processing to obtain the location of the candidate extrapolation prediction point.
[0072] It is understandable that the preset number is a positive integer value. When the preset number is 1, that is, the reference vertex on the near-end extension line of the nearest side that is closer to the median point of the extrapolation prediction reference line segment is taken as the candidate extrapolation prediction point.
[0073] Since the selected preset number of reference vertices are reference vertices on the near-end extensions of the adjacent edges that are closer to the median of the extrapolation prediction reference line segment, the position of the candidate extrapolation prediction point obtained by performing position fusion processing on these reference vertices is also closer to the median of the extrapolation prediction reference line segment.
[0074] The selected preset number of reference vertices undergo position fusion processing. This can be achieved by averaging or weighted averaging the position information of these reference vertices to obtain the locations of candidate extrapolation prediction points. In the case of weighted averaging, the weights corresponding to each reference vertex can be determined according to the preset rules in the aforementioned example, which will not be elaborated further here.
[0075] For example, in some exemplary embodiments, the vertical distance between each reference vertex in the reference vertex set and the median vertical line is obtained, and then the reference vertex set is subjected to position fusion processing based on the obtained vertical distance to obtain the location of the candidate extrapolation prediction point.
[0076] The median perpendicular line is a line perpendicular to the median point of the extrapolation prediction reference segment. See [link to relevant documentation]. Figure 10 The exemplary median perpendicular line is a vertical line perpendicular to the median point of the extrapolation prediction reference segment BC. The closer a reference vertex is to the median perpendicular line, the closer that reference vertex is to the median point of the extrapolation prediction reference segment.
[0077] Based on the obtained vertical distances, a position fusion process is performed on the reference vertex set. This can be achieved by averaging or weighted averaging these vertical distances to obtain a mean distance, which is then used to determine the location of candidate extrapolation prediction points. When using a weighted averaging, the weight of each reference vertex can be determined according to the preset rules described in the previous example, or it can be determined based on the vertical distance; for example, reference vertices with smaller vertical distances have larger weight values. This embodiment does not restrict the method of allocating the weights of each reference vertex.
[0078] Among the various methods provided above for predicting candidate extrapolation prediction points for extrapolation prediction reference segments, the candidate extrapolation prediction points are obtained based on the reference vertices on the near-end extensions of the adjacent edges. This allows the candidate extrapolation prediction points to be closer to the median point of the extrapolation prediction reference segment. The magnitude of the displacement vector generated based on this candidate extrapolation prediction point is also smaller, thus enabling a more accurate representation of the mesh shape changes in the 3D mesh model.
[0079] S930, determine the location of the extrapolation vertex based on the location of the candidate extrapolation prediction point and the location of the median point of the extrapolation prediction reference segment.
[0080] This embodiment further fuses the candidate extrapolation prediction points and the median point of the extrapolation prediction reference line segment to obtain the final extrapolation vertex.
[0081] For example, the fusion method can be to use the location of the median point of the extrapolation prediction reference line segment as the reference position, adjust the location of the candidate extrapolation prediction point, and use the adjusted location point as the location of the extrapolation vertex.
[0082] For example, the position of the candidate extrapolation prediction point can be adjusted according to the formula E'=E0+f(E1,E0), where f(E1,E0)=a*(E1-E0).
[0083] In the formula above, E' represents the extrapolation vertex, E0 represents the median of the extrapolation prediction reference segment, E1 represents the candidate extrapolation prediction point, and a represents the adjustment coefficient, which is generally a preset value less than or equal to 1. That is, by determining the positional difference between the candidate extrapolation prediction point and the median of the extrapolation prediction reference segment, and by determining the product of this positional difference and the preset adjustment coefficient, the sum of this product and the position of the median of the extrapolation prediction reference segment is calculated to obtain the position of the extrapolation vertex.
[0084] Of course, in other exemplary embodiments, other methods can be used to adjust the location of the candidate extrapolation prediction point, and this is not limited here. For example, by calculating the sum of the above product and the location of the median point of the extrapolation prediction reference line segment, after obtaining the corresponding sum, further adjustments can be made based on the sum, such as increasing or decreasing the preset position parameter, thereby obtaining the location of the extrapolation vertex.
[0085] Therefore, this embodiment determines reference vertices on the near-end extensions of each adjacent edge of the extrapolation prediction reference line segment to obtain a reference vertex set. Then, based on the positions of each reference vertex in the reference vertex set, the positions of candidate extrapolation prediction points are determined. Finally, based on the positions of the candidate extrapolation prediction points and the position of the median point of the extrapolation prediction reference line segment, the positions of the final extrapolation vertices are determined. The extrapolation vertices obtained in this way can more accurately represent complex geometric changes, thereby more accurately predicting the true state of the surface of the 3D mesh model, improving the reconstruction quality of the 3D mesh model while reducing the coding bitrate.
[0086] Figure 12 This is a block diagram of an exemplary mesh vertex interpolation device applied to a 3D mesh model. The device can be configured on a device used for encoding or decoding a 3D mesh model. The device includes:
[0087] The acquisition module 1210 is configured to acquire the 3D mesh data to be subdivided.
[0088] The prediction module 1220 is configured to predict sub-partition vertices for each grid edge in the 3D grid data; wherein, the sub-partition vertices corresponding to each grid edge include interpolation vertices or extrapolation vertices, the interpolation vertices are the median points of the grid edges, and the extrapolation vertices are the median points of the grid edges.
[0089] Processing module 1230 is configured to perform sub-partitioning processing of 3D mesh data based on the predicted sub-partitioned vertices.
[0090] In another exemplary embodiment, the grid edges of the extrapolation vertex to be predicted are used as extrapolation prediction reference segments, and the prediction module 1220 further includes:
[0091] The first determining unit is configured to determine reference vertices on the near-end extensions of each adjacent edge of the extrapolation prediction reference line segment, thereby obtaining a set of reference vertices;
[0092] The second determining unit is configured to determine the location of the candidate extrapolation prediction point based on the location of each reference vertex in the reference vertex set;
[0093] The third determining unit is configured to determine the location of the extrapolation vertex based on the location of the candidate extrapolation prediction point and the location of the median point of the extrapolation prediction reference line segment.
[0094] In another exemplary embodiment, the first determining unit is further configured to: determine the position of the reference vertex on the near-end extension line of the adjacent edge of the extrapolation prediction reference line segment, and the distance from the near-end point of the adjacent edge is a preset length ratio of the adjacent edge.
[0095] In another exemplary embodiment, the first determining unit is further configured to: determine the position where the median plane intersects on the near-end extension line of the adjacent edge of the extrapolation prediction reference line segment; wherein the median plane passes through the median point of the extrapolation prediction reference line segment and is perpendicular to the extrapolation prediction reference line segment.
[0096] In another exemplary embodiment, the second determining unit is further configured as follows:
[0097] Sort the corresponding reference vertices in the reference vertex set according to the order of the length of the adjacent edges from smallest to largest to obtain the vertex sorting sequence;
[0098] A preset number of reference vertices are selected from the vertex sorting sequence, and the selected reference vertices are subjected to position fusion processing to obtain the location of the candidate extrapolation prediction point.
[0099] In another exemplary embodiment, the second determining unit is further configured as follows:
[0100] Obtain the perpendicular distance between each reference vertex in the reference vertex set and the median perpendicular line; where the median perpendicular line is the perpendicular line to the median point of the extrapolation prediction reference line segment;
[0101] Based on the vertical distance, the reference vertex set is subjected to position fusion processing to obtain the location of the candidate extrapolation prediction point.
[0102] In another exemplary embodiment, the third determining unit is further configured to: use the location of the median point of the extrapolation prediction reference line segment as the reference location, adjust the location of the candidate extrapolation prediction point, and use the adjusted location point as the location of the extrapolation vertex.
[0103] In another exemplary embodiment, the third determining unit is further configured as follows:
[0104] Determine the positional difference between the candidate extrapolation prediction point and the median point of the extrapolation prediction reference segment;
[0105] Determine the product of the position difference and the preset adjustment coefficient;
[0106] Calculate the sum of the product and the location of the median point of the extrapolation prediction reference segment to obtain the location of the extrapolation vertex.
[0107] In another exemplary embodiment, the prediction module 1220 further includes a fourth determination module, which is configured to:
[0108] The transmission identifier determines whether vertex extrapolation prediction is performed in this round of partitioning.
[0109] If so, predict the corresponding extrapolation vertices for each grid edge in the 3D grid data;
[0110] If not, the median point of each grid edge in the 3D grid data is used as the corresponding interpolation vertex.
[0111] In another exemplary embodiment, the prediction module 1220 further includes a fifth determining module, which is configured to:
[0112] Determine the nearest edges of each mesh edge in the 3D mesh data;
[0113] For grid edges where the normal vectors of all vertices of adjacent edges point to the same side, predict the corresponding extrapolation vertices.
[0114] Furthermore, the normal vectors of the vertices of adjacent edges do not specify the mesh edges in the same direction; instead, the median point is used as the corresponding interpolation vertex.
[0115] It should be noted that the mesh vertex interpolation device for 3D mesh models provided in the above embodiments and the mesh vertex interpolation method for 3D mesh models provided in the above embodiments belong to the same concept. The specific operation methods of each module and unit have been described in detail in the method embodiments and will not be repeated here. In practical applications, the mesh vertex interpolation device for 3D mesh models provided in the above embodiments can be assigned to different functional modules as needed, that is, the internal structure of the device can be divided into different functional modules to complete all or part of the functions described above. This is not a limitation here.
[0116] In the mesh vertex interpolation device for 3D mesh models provided in the above embodiments, the sub-partitioning process can predict the extrapolation vertices of the median points adjacent to the mesh edges. Compared with the prior art, which performs sub-partitioning by interpolating the midpoints of the vertices, the extrapolation vertex prediction method can more accurately express the complex geometric changes on the surface of the 3D mesh model, thereby more accurately predicting the true shape of the surface of the 3D mesh model and improving the reconstruction quality of the 3D mesh model.
[0117] Embodiments of this application also provide an electronic device, including: one or more processors; and a memory for storing one or more programs, which, when executed by the one or more processors, cause the electronic device to implement the mesh vertex interpolation method for a three-dimensional mesh model provided in the above embodiments.
[0118] Figure 13 A schematic diagram of a computer system suitable for implementing the embodiments of this application is shown. It should be noted that... Figure 13 The computer system 1300 of the electronic device shown is merely an example and should not impose any limitation on the functionality and scope of use of the embodiments of this application.
[0119] like Figure 13As shown, the computer system 1300 includes a Central Processing Unit (CPU) 1301, which can perform various appropriate actions and processes based on programs stored in Read-Only Memory (ROM) 1302 or programs loaded from storage portion 1308 into Random Access Memory (RAM) 1303, such as performing the methods described in the above embodiments. Various programs and data required for system operation are also stored in RAM 1303. The CPU 1301, ROM 1302, and RAM 1303 are interconnected via bus 1304. An Input / Output (I / O) interface 1305 is also connected to bus 1304.
[0120] The following components are connected to I / O interface 1305: an input section 1306 including a keyboard, mouse, etc.; an output section 1307 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and speakers, etc.; a storage section 1308 including a hard disk, etc.; and a communication section 1309 including a network interface card such as a LAN (Local Area Network) card, modem, etc. The communication section 1309 performs communication processing via a network such as the Internet. A drive 1310 is also connected to I / O interface 1305 as needed. Removable media 1311, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., are installed on drive 1310 as needed so that computer programs read from them can be installed into storage section 1308 as needed.
[0121] Specifically, according to embodiments of this application, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this application include a computer program product comprising a computer program carried on a computer-readable medium, the computer program including a computer program for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via communication section 1309, and / or installed from removable medium 1311. When the computer program is executed by central processing unit (CPU) 1301, it performs various functions defined in the system of this application.
[0122] It should be noted that the computer-readable medium shown in the embodiments of this application can be a computer-readable signal medium, a computer-readable storage medium, or any combination of the two. More specific examples of computer-readable storage media may include, but are not limited to: electrical connections having one or more wires, portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM), flash memory, optical fiber, portable compact disc read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination of the above. The computer program contained on the computer-readable medium can be transmitted using any suitable medium, including but not limited to: wireless, wired, etc., or any suitable combination of the above.
[0123] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this application. Each block in a flowchart or block diagram may represent a module, segment, or portion of code, which contains one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, can be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.
[0124] The units described in the embodiments of this application can be implemented in software or hardware, and the described units can also be located in a processor. The names of these units do not necessarily limit the specific unit itself.
[0125] Another aspect of this application provides a computer-readable storage medium storing a computer program that, when executed by a processor, implements the mesh vertex interpolation method applied to a three-dimensional mesh model as described above. This computer-readable storage medium may be included in the electronic device described in the above embodiments, or it may exist independently and not incorporated into the electronic device.
[0126] Another aspect of this application provides a computer program product or computer program including computer instructions stored in a computer-readable storage medium. A processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the mesh vertex interpolation method for a three-dimensional mesh model provided in the various embodiments described above.
[0127] The above content is merely a preferred exemplary embodiment of this application and is not intended to limit the implementation of this application. Those skilled in the art can easily make corresponding modifications or alterations based on the main concept and spirit of this application. Therefore, the scope of protection of this application should be determined by the scope of protection claimed in the claims.
[0128] It is understood that in the specific embodiments of this application, data related to three-dimensional mesh models are involved. When the above embodiments of this application are applied to specific products or technologies, user permission or consent is required, and the collection, use and processing of related data must comply with the relevant laws, regulations and standards of the relevant countries and regions.
Claims
1. A mesh vertex interpolation method applied to a three-dimensional mesh model, characterized in that, The method includes: Obtain the 3D mesh data to be subdivided; For each grid edge in the three-dimensional grid data, sub-partition vertices are predicted; wherein, the sub-partition vertices corresponding to each grid edge include interpolated vertices or extrapolated vertices, wherein the interpolated vertices are the median points of the grid edges, and the extrapolated vertices are adjacent to the median points of the grid edges; The sub-partitioning process of the 3D mesh data is performed based on the predicted sub-partitioned vertices.
2. The method according to claim 1, characterized in that, The process of using the grid edges of the extrapolation vertices to be predicted as extrapolation prediction reference segments, and predicting the corresponding extrapolation vertices for the extrapolation prediction reference segments, includes: Reference vertices are determined on the near-end extensions of each adjacent edge of the extrapolation prediction reference line segment to obtain a set of reference vertices; Based on the positions of each reference vertex in the reference vertex set, the positions of candidate extrapolation prediction points are determined; The location of the extrapolation vertex is determined based on the location of the candidate extrapolation prediction point and the location of the median point of the extrapolation prediction reference line segment.
3. The method according to claim 2, characterized in that, The step involves determining reference vertices on the near-end extensions of each adjacent edge of the extrapolation prediction reference line segment to obtain a set of reference vertices, including: The position on the near-end extension line of the adjacent edge of the extrapolation prediction reference line segment, and the distance from the near-end point of the adjacent edge is a preset length ratio of the adjacent edge, is determined as the location of the reference vertex.
4. The method according to claim 2, characterized in that, The step involves determining reference vertices on the near-end extensions of each adjacent edge of the extrapolation prediction reference line segment to obtain a set of reference vertices, including: The location where the median plane intersects the near-end extension of the adjacent edge of the extrapolation prediction reference segment is determined as the location of the reference vertex; wherein the median plane passes through the median point of the extrapolation prediction reference segment and is perpendicular to the extrapolation prediction reference segment.
5. The method according to claim 2, characterized in that, The step of determining the location of the candidate extrapolation prediction point based on the location of each reference vertex in the reference vertex set includes: Sort the corresponding reference vertices in the reference vertex set according to the order of adjacent edge length from smallest to largest to obtain the vertex sorting sequence; A preset number of reference vertices are selected from the vertex sorting sequence, and the selected reference vertices are subjected to position fusion processing to obtain the location of the candidate extrapolation prediction point.
6. The method according to claim 5, characterized in that, The step of selecting a preset number of reference vertices from the vertex sorting sequence and performing position fusion processing on the selected reference vertices to obtain the location of the candidate extrapolation prediction point includes: The position information of the preset number of reference vertices is averaged to obtain the location of the candidate extrapolation prediction point.
7. The method according to claim 2, characterized in that, The step of determining the location of the candidate extrapolation prediction point based on the location of each reference vertex in the reference vertex set includes: Obtain the vertical distance between each reference vertex in the reference vertex set and the median perpendicular line; wherein, the median perpendicular line is a perpendicular line to the median point of the extrapolation prediction reference line segment; Based on the vertical distance, the reference vertex set is subjected to position fusion processing to obtain the location of the candidate extrapolation prediction point.
8. The method according to claim 7, characterized in that, The step of performing position fusion processing on the reference vertex set based on the vertical distance to obtain the location of the candidate extrapolation prediction point includes: The average value of the vertical distance is calculated to obtain the mean distance; The location of the candidate extrapolation prediction point is determined based on the mean distance.
9. The method according to claim 2, characterized in that, Determining the location of the extrapolation vertex based on the locations of the candidate extrapolation prediction points and the median point of the extrapolation prediction reference segment includes: Using the median point of the extrapolation prediction reference line segment as the reference position, the position of the candidate extrapolation prediction point is adjusted, and the adjusted position point is taken as the position of the extrapolation vertex.
10. The method according to claim 9, characterized in that, The step of using the median point of the extrapolation prediction reference line segment as a reference position, adjusting the position of the candidate extrapolation prediction point, and using the adjusted position point as the position of the extrapolation vertex includes: Determine the positional difference between the candidate extrapolation prediction point and the median point of the extrapolation prediction reference segment; Determine the product of the position difference and the preset adjustment coefficient; The sum of the product and the location of the median point of the extrapolation prediction reference segment is calculated to obtain the location of the extrapolation vertex.
11. The method according to claim 1, characterized in that, The step of predicting sub-partition vertices for each grid edge in the three-dimensional grid data includes: The transmission identifier determines whether vertex extrapolation prediction is performed in this round of partitioning. If so, predict the corresponding extrapolation vertex for each grid edge in the three-dimensional grid data; If not, the median point of each grid edge in the three-dimensional grid data is used as the corresponding interpolation vertex.
12. The method according to claim 1, characterized in that, The step of predicting sub-partition vertices for each grid edge in the three-dimensional grid data includes: Determine the nearest edges of each mesh edge in the three-dimensional mesh data; For grid edges where the normal vectors of all vertices of adjacent edges point to the same side, predict the corresponding extrapolation vertices. Furthermore, the normal vectors of the vertices of adjacent edges do not specify the mesh edges in the same direction; instead, the median point is used as the corresponding interpolation vertex.
13. A mesh vertex interpolation device applied to a three-dimensional mesh model, characterized in that, The device includes: The acquisition module is configured to acquire the 3D mesh data to be subdivided. The prediction module is configured to predict sub-partition vertices for each grid edge in the three-dimensional grid data; wherein, the sub-partition vertices corresponding to each grid edge include interpolated vertices or extrapolated vertices, the interpolated vertices are the median points of the grid edges, and the extrapolated vertices are adjacent to the median points of the grid edges; The processing module is configured to perform sub-partitioning processing of the 3D mesh data based on the predicted sub-partitioned vertices.
14. An electronic device, characterized in that, include: One or more processors; A memory for storing one or more programs that, when executed by one or more processors, cause the electronic device to perform the method of any one of claims 1-12.
15. A computer-readable storage medium, characterized in that, It stores computer-readable instructions that, when executed by the computer's processor, cause the computer to perform the method of any one of claims 1-12.
16. A computer program product, comprising a computer program, characterized in that, When the computer program is executed by a processor, it implements the method of any one of claims 1-12.