Method and device for rapidly detecting undercut area of tooth model
By distinguishing the vertices of the tooth model into possible occlusion points and certain occlusion points, and establishing buffer blocks to narrow the traversal range, the problem of slow detection of concave areas in the existing technology is solved, and efficient detection of concave areas is achieved .
Patent Information
- Application Number
- CN202411263753.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-09-10
- Publication Date
- 2024-12-31
AI Technical Summary
The prior art is too slow to detect the concave area of the dental model and cannot meet the actual needs. It is mainly due to the need to traverse the model vertices and patches, resulting in a large amount of computing.
By distinguishing the vertices of the tooth model into possible occlusion points and certain occlusion points, and establishing buffer blocks, the visibility of vertices and patches within the index traversal is used to determine the concave area, narrow the range of grid traversal, and improve detection speed .
On the basis of ensuring the accuracy of the detection of concave areas, the detection speed is significantly improved and is suitable for models with large scale vertex and patches.
Smart Images

Figure CN119228874A_ABST
Abstract
Description
Technical Field
[0001] The present invention belongs to the technical field of tooth correction, and relates to a method and a device for quickly detecting an undercut area of a tooth model. Background Art
[0002] The undercut area refers to a concave structure on the surface of the tooth preparation. During the orthodontic treatment, the undercut area will directly affect the wearing and removal of the braces. Therefore, it is necessary to accurately detect the undercut area on the tooth preparation model to facilitate the filling of the undercut operation on the model to cooperate with further orthodontic treatment.
[0003] The popular definition of undercut area is "the part that is blocked from a visual direction is undercut", so the undercut area can be detected by calculating the invisible part in a fixed direction, and the ray intersection method is often used to determine whether the face vertex is visible. However, this method usually requires traversing the model vertices and faces, which is very computationally intensive, resulting in a very slow detection speed and cannot meet actual needs. Summary of the invention
[0004] In view of the problems existing in the prior art, the present application provides a method and device for quickly detecting undercut areas of a tooth model.
[0005] The present invention first divides the vertices of the tooth model into possible occlusion points and certain occlusion points. The so-called certain occlusion points refer to the invisible parts in a certain position direction, which is consistent with the definition of undercuts. Therefore, the undercut points of the tooth model are certain occlusion points. Possible occlusion points refer to vertices that are a certain distance from the occlusal surface of the tooth in a certain position direction. Because the undercut parts of the tooth model are mostly in the part of the tooth close to the gums, they are far away from the occlusal surface of the tooth.
[0006] By establishing a buffer zone, the vertices of the tooth model are divided into different buffer zones, and the visibility of the vertices and facets within a certain range is traversed using an index to determine the undercut area. This method can not only ensure the accuracy of undercut area detection, but also greatly improve the detection speed based on the original method. The present invention provides the following technical solutions:
[0007] A first aspect of the present invention provides a method for quickly detecting an undercut area of a tooth model, comprising the following steps:
[0008] Step S100: obtaining an initial positioning orientation, and rotating the model from the initial positioning orientation to a fixed positioning orientation.
[0009] Step S200: traverse each vertex on the tooth model, establish a buffer corresponding to the model, determine the position index of each vertex in the buffer and the maximum value of each block in the buffer.
[0010] Step S300: Calculate the visibility of all vertices of the model and divide them into possible occlusion points and certain occlusion points.
[0011] Step S400: Calculate the block index of the model face in the buffer.
[0012] Step S500: traverse possible occlusion points, draw rays based on a fixed positioning direction, perform ray intersection calculation with the facets in the same buffer zone, and determine whether it is a certain occlusion point of the tooth model.
[0013] Furthermore, in the step S100, the tooth model is adjusted from the initial position direction to the fixed position direction, including:
[0014] Determining the rotation angle and the rotation axis of the tooth model;
[0015] After the undercut region of the tooth model is detected, the model is rotated along the original rotation axis by the negative value of the original angle to restore the model to its original state.
[0016] The initial positioning direction is an artificially determined positioning direction, and the fixed positioning direction is a unit vector parallel to the z-axis.
[0017] Furthermore, in step S200, determining the maximum value of each block in the buffer and the position index of each vertex in the buffer includes:
[0018] Obtaining a bounding box of the tooth model, and obtaining the maximum and minimum values of the vertices of the bounding box;
[0019] Determine the size of the buffer and the shrinkage factor of the tooth model, and calculate the index corresponding to the vertex of the model in the buffer according to the xy coordinates of the vertex;
[0020] The maximum value of each block in the buffer is the maximum z coordinate value of all vertex sets in the same buffer block.
[0021] The determining of a buffer size and a scaling factor corresponding to the model comprises:
[0022] Take 25% of the number of vertices of the model as the length and width of the buffer, and determine the size of the buffer = L*W;
[0023] Get the maximum vertex coordinates (Xmax, Ymax, Zmax) and the minimum vertex coordinates (Xmin, Ymin, Zmin) of the model bounding box;
[0024] Determines the scale factor of the model in the buffer
[0025] Furthermore, in step S200, the position index calculation formula of the vertex in the buffer block is:
[0026]
[0027] Furthermore, in step S200, the maximum value of each block is the maximum z coordinate value of the vertex set in the same buffer block in the model.
[0028] Furthermore, in step S300, dividing the tooth model into possible occlusion points and certain occlusion points includes:
[0029] The block index of each vertex of the model in the buffer is calculated to obtain the maximum value of the buffer block where the vertex is located; if the vertex meets the first determination condition, it is set as a possible occlusion point, and if it meets the second determination condition, it is set as a certain occlusion point.
[0030] The first determination condition includes that the difference between the z coordinate value of the vertex and the maximum value of the buffer block in which it is located is less than a distance threshold d, and the distance threshold is preset to 1 / 50 of the height of the bounding box; the second determination condition includes that the angle between the vertex normal vector and the fixed position direction is greater than 90°.
[0031] Furthermore, in the step S400, the block index of the tooth model surface in the buffer is calculated, including:
[0032] Calculate the buffer block indexes corresponding to the three vertices of the triangle patch of the model;
[0033] Calculate the buffer block index corresponding to the centroid of the triangle patch of the model;
[0034] Calculate the buffer zone index corresponding to the midpoints of the three edges of the triangular patch of the model;
[0035] The buffer block indexes corresponding to the points are mapped to the buffer block indexes corresponding to the face patch.
[0036] Further, in the step S500, the possible occlusion points are traversed, and a ray is made with the certain possible occlusion point as an endpoint and the fixed position direction as a ray direction, and the intersection with the point and the surface is calculated. If there is an intersection with the surface, it means that the possible occlusion point is occluded, and according to the undercut definition as an undercut point, it is set as a certain occlusion point; if there is no intersection, it means that the possible occlusion point is not occluded and is not the undercut point of the model; including:
[0037] According to the buffer index corresponding to the vertex, traverse the triangles in the buffer;
[0038] A ray intersecting with the face is determined, and the vertex is used as an endpoint of the ray and the first positioning direction is used as the direction of the ray to perform ray intersection.
[0039] A second aspect of the present invention relates to a device for quickly detecting undercut areas of a tooth model, comprising a memory and one or more processors, wherein the memory stores executable code, and when the one or more processors execute the executable code, the above-mentioned undercut detection method is implemented.
[0040] A third aspect of the present invention relates to a computer-readable storage medium, wherein the medium stores a computer program for executing the above method.
[0041] The present invention provides a method and device for quickly detecting undercut areas of tooth models. Based on the original ray intersection method, the present invention distinguishes between possible occlusion points and certain occlusion points by setting up a buffer zone, thereby greatly improving the detection speed of undercut areas of tooth models while ensuring the accuracy of undercut area detection.
[0042] The advantages of the present invention are: by establishing a buffer zone and distinguishing possible and certain blocking points, the range of grid traversal is reduced and the speed of detecting undercut areas is improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0043] Figure 1 It is a schematic flow diagram of the method of the present invention;
[0044] Figure 2 is a schematic diagram of an embodiment of the present invention rotating in a certain positioning direction;
[0045] Figure 3 is a schematic diagram of specific positions of individual vertices in a buffer in an embodiment of the present invention;
[0046] Figure 4 is a schematic diagram of the occlusion of vertices in the same buffer zone in an embodiment of the present invention;
[0047] Figure 5 is a schematic diagram of the vertices, centroids and edge midpoints of a face in an embodiment of the present invention;
[0048] Figure 6 yes Figure 5 A partial enlarged view of . DETAILED DESCRIPTION
[0049] In order to more clearly understand the above-mentioned objects, features and advantages of the present disclosure, the embodiments of the present disclosure and the features in the embodiments will be further described below in conjunction with the accompanying drawings of the present disclosure.
[0050] It should be noted that the expressions “first”, “second”, etc. mentioned in the present disclosure are only used for descriptive purposes and should not be understood as limiting the order of description or interdependence of the objects being described.
[0051] Example 1
[0052] Reference Figure 1 The present embodiment relates to a method for quickly detecting undercut areas of a tooth model, comprising the following steps.
[0053] Step S100: obtaining an initial positioning direction, and mapping the model from the initial positioning direction to a fixed positioning direction.
[0054] In this embodiment, the fixed positioning direction is the z-axis direction, which is the projection direction established by the depth buffer and the ray direction in the ray intersection calculation. The initial positioning direction is an artificially set positioning direction. If the undercut detection is performed according to the initial positioning direction, the subsequent operations will be very time-consuming and complicated. Therefore, the initial positioning direction can be deflected to the first positioning direction by rotating the model, which can greatly save the detection time while ensuring the detection accuracy.
[0055] For details about the implementation examples, please refer to Figure 2 .like Figure 2 As shown, the seating direction vector 111 represents the initial seating direction of the tooth model 100, and the vector 110 represents the fixed seating direction.
[0056] S101: Determine the axis of rotation of the model.
[0057] The axis about which the model rotates is the normal vector of the plane formed by the initial positioning direction and the fixed positioning direction.
[0058] First, determine the angle α of the model rotation, which is the angle between the initial position direction vector 111 and the fixed position direction vector 110; secondly, determine the axis 113 of the model rotation, which is the normal vector of the plane 112 formed by the initial position direction vector 111 and the fixed position direction vector 110.
[0059] After the model is rotated according to the determined rotation angle α and around the axis 113, the fixed positioning direction becomes the new positioning direction of the model. After the undercut area detection is completed, the model is rotated by -α around the axis before, and the initial positioning direction can be restored. The obtained undercut area is also formed under the initial positioning direction.
[0060] Step S200: traverse each vertex on the tooth model to determine the maximum value of each block in the buffer and the position index of each vertex in the buffer.
[0061] S201: Determine the size of the buffer zone according to the size of the bounding box of the model.
[0062] Get the maximum vertex coordinates (Xmax, Ymax, Zmax) and minimum vertex coordinates (Xmin, Ymin, Zmin) of the model bounding box.
[0063] The length L and width W of the preset buffer are both 25% of the number of vertices of the model, and the size of the buffer block is L*W.
[0064] Determine the scaling factor S of the model in the buffer. The calculation formula of the scaling factor is as follows:
[0065] (X max -X min )>(Y max -Y min ), scaling factor In some embodiments, there is (X max -X min )<(Y max -Y min ), that is, the length of the bounding box in the X-axis direction is less than the length in the Y-axis direction, the scaling factor
[0066] S202: Determine the index of each vertex in the cache block. Figure 3 , let point P(xi,yi,zi) be a vertex in the model, then the index vpos of point P in the buffer is calculated as
[0067]
[0068] Among them, X max and Y max represents the horizontal and vertical coordinates of the maximum vertex of the model bounding box, S represents the scaling factor of the model, and L represents the length of the buffer. According to the above formula, the index vposp of vertex P in the buffer can be obtained, and point P stores zi in the buffer.
[0069] S203: The value in the buffer block is the maximum z coordinate of the vertices in the block. The maximum value of each buffer block is the maximum z coordinate of all vertex sets in the same block in the fixed position direction.
[0070] Step S300: Calculate the visibility of the model vertices and divide them into possible occlusion points and certain occlusion points.
[0071] If the vertex satisfies the first and second determination conditions, it is a certain occlusion point; if it only satisfies the first determination condition, it is a possible occlusion point.
[0072] like Figure 3As shown, it is assumed that vertices A, B, C, and D are all vertices of the model, such as Figure 4 As shown, according to step S200, the above four vertices are in the same buffer block after index calculation.
[0073] Vertex A represents the highest point in the buffer block (with the largest z coordinate value), and vertices B, C, and D are vertices with the same index in the same buffer. The following is the judgment process for vertices in the same block. Z max -Z min Indicates the height of the bounding box.
[0074] If the height difference between vertex B and vertex A is Z B -Z A It is less than the distance threshold d, that is, it does not meet the first determination condition and is classified as a possible occlusion point; the height differences between vertex C and vertex D and vertex A are both greater than the distance threshold d, which meets the first determination condition.
[0075] The angle between the normal vector of vertex C and the fixed position direction is less than 90 degrees, which does not meet the second determination condition and is classified as a possible occlusion point; the angle between the normal vector of vertex D and the fixed position direction is greater than 90 degrees, which meets the second determination condition and is classified as a certain occlusion point.
[0076] Step S400: Calculate the block index of the model face in the buffer.
[0077] The index of the buffer block where the model face is located is calculated. The index is the number of the buffer block, and the index of each face is stored.
[0078] like Figure 5 , Figure 6 As shown, taking face 400 as an example, points O, P, and Q are three vertices of face 400, 401 is the centroid of face 400, and points OQ, PQ, and OP are the midpoints of the three edges OQ, PQ, and OP of the face respectively.
[0079] 1. Calculate the position indexes of the three vertices of the patch in the buffer block according to the coordinates of the three vertices of the patch, which are vpos O ,vpos P ,vpos Q If the three vertices of the patch 400 are in three different blocks, the patch 400 corresponds to the indexes of the three buffers respectively. Similarly, if the three vertices of the patch 400 are in two different blocks, the patch 400 corresponds to the indexes of the two buffers respectively.
[0080] 2. Calculate the position index of the center of gravity 401 of the patch in the buffer. Obtain the center of gravity coordinates (xc, yc, zc) of the patch and substitute them into the formula Get the buffer block index vpos of the center of gravity of the patch c .
[0081] 3. Calculate the buffer block index where the midpoints of the three edges of the patch are located according to the midpoint coordinates of the three edges of the patch, which are vpos OQ ,vpos PQ ,vpos OP .
[0082] From the above steps, the index in the buffer block corresponding to the patch 400 is
[0083] vpos c ,vpos O ,vpos P ,vpos Q ,vpos OP ,vpos PQ ,vpos OP Traverse each patch in the model and calculate the buffer block index corresponding to each patch.
[0084] Step S500: traverse possible occlusion points, draw rays based on a fixed position direction, and perform ray intersection calculation with the facets in the same buffer.
[0085] After step S200 and step S300, all vertices in the model except the maximum value vertex in the buffer block are divided into two categories: possible occlusion points and certain occlusion points. Since the maximum value vertex in the buffer block is located on the upper surface of the model in a fixed position direction, there is no possibility of occlusion undercuts, so it can be ignored. According to the definition of undercuts, certain occlusion points must be undercut points, so certain occlusion points are also screened out from the ray intersection calculation, and only possible occlusion points are calculated and checked.
[0086] like Figure 5 , Figure 6 As shown, a ray 510 for intersection calculation with the face patch is determined with a possible occlusion point C as the endpoint and the fixed position direction 110 as the ray direction. After step S400, the index of the buffer zone in which all the face patches in the model are located has been determined.
[0087] Calculate the index of the buffer block where the possible occlusion point is located, and find the model face in the same buffer block. Determine whether ray 510 intersects with the face in the buffer. If there is a face that intersects with ray 510, it indicates that the possible occlusion point C is blocked in the fixed position direction, and vertex C is classified as a certain occlusion point, that is, an inverted concave point; if there is no face that intersects with ray 510, it indicates that the possible occlusion point C is not blocked in the fixed position direction, it is not a certain occlusion point, and it is not an inverted concave point.
[0088] In summary, the method for quickly detecting undercut areas of a tooth model provided by the embodiments of the present disclosure includes the following advantages:
[0089] 1. The undercut of the tooth model can be obtained under different initial positioning directions to help doctors obtain the best treatment plan.
[0090] 2. According to the definition of undercut, the vertices and faces of the tooth mesh model are divided into different buffer blocks, and only the vertices and faces in the buffer blocks are judged and ray intersection operations are performed instead of the entire model, which greatly reduces the amount of calculation.
[0091] 3. According to the first and second determination conditions, all vertices in the model are divided into certain occlusion points and possible occlusion points, which greatly improves the detection speed while ensuring the accuracy of undercut detection, and can be applied to models with extremely large vertex and facet scales.
[0092] Example 2
[0093] The present embodiment relates to a device for realizing rapid detection of undercut areas of a tooth model, the device comprising a memory and one or more processors, the memory storing executable codes, and the one or more processors executing the executable codes to realize a method for rapid detection of undercut areas of a tooth model described in Example 1.
[0094] Example 3
[0095] This embodiment provides a computer-readable storage medium, wherein the storage medium stores computer instructions, and the instructions are used to execute the method for quickly detecting undercut areas of a tooth model described in Example 1.
[0096] The above embodiments are merely illustrative of the solutions of the present invention and do not limit its application. Although the above embodiments have been described in detail, it is still possible for those skilled in the art to modify or replace the technical steps in these embodiments, and these modifications or replacements will not change the core essence of the corresponding technical solutions, nor will they exceed the technical scope of the embodiments of the present invention.
Claims
1. A method for quickly detecting undercut areas of a tooth model, characterized in that: The steps include: Acquire an initial positioning direction, and correspond the tooth model from the initial positioning direction to a fixed positioning direction; Traversing each vertex on the tooth model, determining the maximum value of each block in the buffer and the position index of each vertex in the buffer; Calculating the visibility of the vertices of the tooth model and dividing them into possible occlusion points and certain occlusion points; Calculate the block index of the tooth model patch in the buffer; The possible occlusion points of the tooth model are traversed, rays are drawn based on a fixed position direction, and ray intersection calculations are performed with the facets in the same buffer zone to determine whether it is a certain occlusion point of the tooth model.
2. The method according to claim 1, characterized in that The step of adjusting the tooth model from an initial positioning direction to a fixed positioning direction includes: Determining the rotation angle and the rotation axis of the tooth model; After the undercut region of the tooth model is detected, the model is rotated along the original rotation axis by the negative value of the original angle to restore the model to its original state.
3. The method according to claim 1, characterized in that The step of determining the maximum value of each block in the buffer and the position index of each vertex in the buffer includes: Obtaining a bounding box of the tooth model, and obtaining the maximum and minimum values of the vertices of the bounding box; Determine the size of the buffer and the shrinkage factor of the tooth model, and calculate the index corresponding to the vertex of the model in the buffer according to the xy coordinates of the vertex; The maximum value of each block in the buffer is the maximum z coordinate value of all vertex sets in the same buffer block.
4. The method according to claim 1, characterized in that: The dividing the tooth model into possible occlusion points and certain occlusion points comprises: The block index of each vertex of the model in the buffer is calculated to obtain the maximum value of the buffer block where the vertex is located; if the vertex meets the first determination condition, it is set as a possible occlusion point, and if it meets the second determination condition, it is set as a certain occlusion point.
5. The method according to claim 4, characterized in that: The first determination condition includes that the difference between the z coordinate value of the vertex and the maximum value of the buffer block in which it is located is less than a distance threshold d, and the distance threshold is preset to 1 / 50 of the height of the bounding box; the second determination condition includes that the angle between the vertex normal vector and the fixed position direction is greater than 90°.
6. The method according to claim 1, characterized in that: The calculating the block index of the tooth model patch in the buffer includes: Calculate the buffer block indexes corresponding to the three vertices of the triangle patch of the model; Calculate the buffer block index corresponding to the centroid of the triangle patch of the model; Calculate the buffer zone index corresponding to the midpoints of the three edges of the triangular patch of the model; The buffer block indexes corresponding to the points are mapped to the buffer block indexes corresponding to the face patch.
7. The method according to claim 1, characterized in that The screening of the possible occlusion points to find a certain occlusion point among the possible occlusion points includes: Traverse the possible occlusion points, take the possible occlusion point as the endpoint, draw a ray with the fixed position direction as the ray direction, and intersect the point with the surface. If there is an intersection with the surface, it is set as a certain occlusion point, including: According to the buffer index corresponding to the vertex, traverse the triangles in the buffer; A ray intersecting with the face is determined, and the vertex is used as an endpoint of the ray and the first positioning direction is used as the direction of the ray to perform ray intersection.
8. A device for quickly detecting undercut areas of a tooth model, comprising a memory and one or more processors, wherein the memory stores executable code, and when the one or more processors execute the executable code, it is used to implement a method for quickly detecting undercut areas of a tooth model as described in any one of claims 1 to 7.
9. A computer-readable storage medium storing a computer program, wherein when the program is executed by a processor, the method for quickly detecting an undercut area of a tooth model as claimed in any one of claims 1 to 7 is implemented.
Citation Information
Patent Citations
Automatic filling algorithm of a tooth undercut mesh model on the basis of an included angle of normal vectors
CN108961398A
Method and equipment for filling tooth model undercut
CN112190353A
Method and apparatus for trimming dental model
CN112353512A
Inverted concave detection method, electronic equipment and storage medium
CN118154608A
Automatic determination of trim-line for aligners
US20230218370A1