Systems, methods, and devices for automatic oral appliance design
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- MODJAW
- Filing Date
- 2024-06-21
- Publication Date
- 2026-04-29
AI Technical Summary
Existing methods for designing oral appliances are time-consuming, prone to errors, and lack precision, leading to poor fitting, discomfort, and inefficiency in treating dental and temporomandibular issues due to manual design processes that fail to accurately consider contact relations and motion of the jaw.
A system comprising a computer-readable storage medium with program instructions and processors that generate a model of an oral appliance by receiving a dental arch model, detecting the cementoenamel junction, determining the insertion axis, identifying undercuts, and generating internal and external surfaces, using texture data and machine learning models for accurate segmentation and smoothing.
The system enables the precise and efficient design of oral appliances, ensuring proper fitting, comfort, and effectiveness by automating the detection of critical features and surfaces, thereby improving the accuracy and speed of the design process.
Smart Images

Figure EP2024067555_26122024_PF_FP_ABST
Abstract
Description
SYSTEMS, METHODS, AND DEVICES FOR AUTOMATIC ORAL APPLIANCE DESIGNTechnical Field
[0001] This application relates to systems, methods, and devices for automatic design of an oral appliance.Background Art
[0002] The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.
[0003] Oral appliances are commonly used for a variety of purposes. However, there are problems with existing approaches to making such devices. Accordingly, there is a need for improved systems, methods, and devices.Summary
[0004] In a first aspect, it is proposed a system for generating a model of an oral appliance, the system comprising:- a computer readable storage medium having program instructions stored thereon; and- one or more processors configured to execute the program instructions to cause the system to: receive a model of a dental arch of a patient, optionally wherein the model of the dental arch of the patient comprises a 3D mesh of the dental arch, detect a cementoenamel junction associated with the dental arch; determine an insertion axis for an oral appliance configured for use with the dental arch; detect undercuts associated with the dental arch; generate internal and external surfaces for the oral appliance; perform smoothing on one or more of the internal or external surfaces; and output a model of the oral appliance.
[0005] In some embodiments, the one or more processors are further configured to execute the program instructions to cause the system to determine a posterior area and an anterior area of the dental arch and: for the posterior area, detect support cusps and determine a cutting plane; and for the anterior area, subtract a functionally generated surface from the posterior area.
[0006] In some embodiments, detecting undercuts associated with the dental arch occurs prior to determining the insertion axis for the oral appliance.
[0007] In some embodiments, the one or more processors are further configured to execute the program instructions to cause the system to receive texture data associated with the dental arch of the patient, wherein the texture data comprises one or more images of the dental arch of the patient, and optionally wherein the texture data comprises color, grayscale, or infrared data, and optionally wherein the color data comprises more than one channel; and wherein the cementoenamel junction is determined based at least in part on the texture data.
[0008] In some embodiments, the one or more processors are further configured to execute the program instructions to cause the system to detect the cementoenamel junction based on the texture data by distinguishing between teeth of the patient and gums of the patient in the texture data, optionally using one or more of binary masking, adaptive thresholding, Sobel filtering, Laplacian filtering, or Canny edge detection.
[0009] In some embodiments, the one or more processors are further configured to execute the program instructions to cause the system to detect undercuts associated with the dental arch by: determining a normal for each face of the model of the dental arch; and determining a sign of the dot product of the normal vector and an observation direction vector, optionally wherein the observation direction vector comprises the insertion axis.
[0010] In some embodiments, the insertion axis is determined to provide a desired homogeneity of the undercuts, optionally, to maximize the homogeneity of the undercuts such that they are distributed on both the sides of the teeth.
[0011] In some embodiments, the one or more processors are further configured to execute the program instructions to determine the insertion axis by: computing, for each of a plurality of candidate axes, distances from the cementoenamel junction and the undercuts;determining a score for each of the plurality of candidate axes based on the distances; and wherein the candidate axis with the highest score is determined to be the insertion axis.
[0012] In some embodiments, the one or more processors are further configured to execute the program instructions to generate the internal surface based on the cementoenamel junction and the shape of the teeth as determined based on the model.
[0013] In some embodiments, the one or more processors are further configured to execute the program instructions to generate the internal surface using a convex hull algorithm.
[0014] In some embodiments, the one or more processors are further configured to execute the program instructions to segment teeth of the patient based on the model of the dental arch.
[0015] In some embodiments, segmenting the teeth can be based on a machine learning model.
[0016] In some embodiments, the one or more processors are further configured to execute the program instructions to generate the internal surface by eroding the teeth from the model of the dental arch.
[0017] In some embodiments, the one or more processors are further configured to execute the program instructions to detect support cusps based on a machine learning model.
[0018] In some embodiments, the one or more processors are further configured to execute the program instructions to perform smoothing using Laplacian smoothing.
[0019] In some embodiments, the oral appliance comprises at least one of an occlusal splint, a neuromuscular relaxation splint, an aligner, a night guard, an anterior bite splint, a posterior bite splint, a dynamic assist orthosis, an anterior repositioning splint, a nocturnal lingual envelope, a mandibular advancement device, a mouth guard, a mandibular repositioning device, an occlusal pad, an occlusal stamp, a partial injection splint, a Kois deprogrammer, a snap-on smile, an equilibration splint, a balancing splint, an occlusal orthosis, a interocclusal device, a sport gutter, a sport splint, an athletic gutter, an athletic splint, a sport guard, a muscular relaxation flat splint, a Michigan splint, a stabilization splint, an anterior repositioning occlusal splint, a waking lingual envelope, a sleeping lingual envelope, an occlusal add-on, an equilibration guide, a preparation guide, an anterior deprogrammer, a lucia jig, or gingival cutting guide.
[0020] In a second aspect, it is proposed a method for generating a model of an oral appliance, said method being performed by the system as described previously. The steps performed by such method may be steps performed by the one or more processors of the system as described in the first aspect and / or in any of the previously described embodiments.Brief Description of the Drawings
[0021] These and other features, aspects, and advantages of the disclosure are described with reference to drawings of certain embodiments, which are intended to illustrate, but not to limit, the present disclosure. It is to be understood that the accompanying drawings, which are incorporated in and constitute a part of this specification, are for the purpose of illustrating concepts disclosed herein and may not be to scale.
[0022] FIG. 1A shows an example of a 2D texture image according to some embodiments.
[0023] FIG. 1 B shows an example of the red, green, and blue channels of the image shown in FIG. 1A.
[0024] FIG. 1C shows an example result of such binary filtering.
[0025] FIG. 1 D illustrates an example of the output of a binary mask after postprocessing is applied.
[0026] FIG. 2A shows examples of various 2D texture projections.
[0027] FIG. 2B shows the green channel of the images shown in FIG. 2A.
[0028] FIG. 2C shows the result of performing a binary filtering process on the images of FIG. 2B.
[0029] FIG. 3 shows examples of selection using a graph cuts algorithm and the resulting extracted teeth.
[0030] FIG. 4A shows an extracted cementoenamel junction separation path.
[0031] FIG. 4B shows the 3D projection of FIG. 4A, with brightly colored areas representing the teeth and darkly colored areas representing the gums.
[0032] FIG. 4C shows the cementoenamel junction path overlaid onto the 3D mesh of the patient's teeth and gums.
[0033] FIG. 4D shows the result of extracting the teeth from the 3D mesh of the patient's teeth and gums based on the cementoenamel junction path.
[0034] FIG. 5 shows an example of a 3D mesh.
[0035] FIG. 6 illustrates the general concept of an undercut.
[0036] FIG. 7 illustrates one difficulty with undercut detection.
[0037] FIGS. 8A and 8B shows an example of an object with various faces and undercuts.
[0038] FIGS. 8C-8E illustrate examples of undercut identification according to some embodiments.
[0039] FIG. 8F illustrates an oral appliance in a removed state (left) and in an inserted state (right).
[0040] FIG. 9A illustrates an example path around the teeth that considers both inward-facing surfaces and outward-facing surfaces.
[0041] FIG. 9B shows the distance above the cementoenamel junction of the high limits of the undercuts (e.g., the highest point above the cementoenamel junction where the undercut begins) with respect to the cementoenamel junction line, following along the path 1 ,2, 3, 4 indicated in FIG. 9A.
[0042] FIG. 10 illustrates an example of the output of convex hull algorithms according to some embodiments.
[0043] FIG. 11 is a flowchart that illustrates an example expansion process according to some embodiments.
[0044] FIG. 12 illustrates an example of expansion according to some embodiments.
[0045] FIG. 13 illustrates an example of a 3D mandibular arch in which the grooves and separation between teeth are labeled.
[0046] FIG. 14 shows an example of normal vectors of surfaces associated with two teeth (e.g., two molars).
[0047] FIGS. 15A-C illustrate examples of segmentation according to some embodiments.
[0048] FIG. 16 is a flowchart that illustrates an example of segmentation according to some embodiments.
[0049] FIG. 17 shows an example of an erosion process according to some embodiments.
[0050] FIG. 18 illustrates an example of teeth eroded according to such a method.
[0051] FIG. 19 shows an example of teeth that have been segmented using K- means clustering.
[0052] FIG. 20 shows an example of a functionally generated surface for maxillary teeth.
[0053] FIG. 21 A is a flowchart that illustrates an example process according to some embodiments.
[0054] FIG. 21 B is a flowchart that illustrates another example process according to some embodiments.
[0055] FIG. 22 is a table that illustrates examples of some parameters and considerations for oral appliance design.
[0056] FIG. 23 depicts a flow chart for training an artificial intelligence or machine learning model according to some embodiments.
[0057] FIG. 24 illustrates an example of training and using an AI / ML model according to some embodiments.
[0058] FIG. 25 is a block diagram depicting an embodiment of a computer hardware system configured to run software for implementing one or more embodiments disclosed herein.Detailed Description of Embodiments
[0059] Embodiments of the disclosure will now be described with reference to the accompanying figures. The terminology used in the description presented herein is not intended to be interpreted in any limited or restrictive manner, simply because it is being utilized in conjunction with a detailed description of embodiments of the disclosure. Furthermore, embodiments of the disclosure may include several novel features, no single one of which is solely responsible for its desirable attributes or essential to practicing the embodiments of the disclosure herein described. For purposes of this disclosure, certain aspects, advantages, and novel features of various embodiments are described herein. It is to be understood that not necessarily all such advantages may be achieved in accordance with any particular embodiment. Thus, for example, those skilled in the art will recognize that one embodiment may be carried out in a manner that achieves one advantage or group of advantages as taught herein without necessarily achieving other advantages as may be taught or suggested herein.
[0060] Oral appliances can be used to treat a wide variety of conditions. For example, occlusal splints can be used to address various issues. For example, a night guard can be used on a temporary basis to address tooth grinding while sleeping. A hard occlusal stabilization splint can be used to protect the teeth of individuals who experience frequent orsevere clenching or grinding. An occlusal splint can be used for individuals who suffer from temporomandibular dysfunction to promote a more stable temporomandibular joint position and to retrain muscles. In some cases, the use of an occlusal splint can reduce neuromuscular reflex activity. In some cases, a dental practitioner may make use of an occlusal splint prior to prosthodontic and / or orthodontic treatment, for example by observing wear on the occlusal splint.
[0061] Occlusal splints are merely one example. Oral appliances can include, for example and without limitation, occlusal splints, neuromuscular relaxation splints, aligners, night guards, anterior bite splits, posterior bite splits, dynamic assist orthosis, , anterior repositioning splints, nocturnal lingual envelopes, mandibular advancement devices, mouth guards, mandibular repositioning devices, occlusal pads, occlusal stamps, partial injection splints, Kois deprogrammers, snap-on smiles, equilibration splints, balancing splints, occlusal orthosis, interocclusal devices, sport gutters, sport splints, athletic gutters, athletic splints, sport guards, muscular relaxation flat splints, Michigan splints, stabilization splints, anterior repositioning occlusal splits, waking lingual envelopes, sleeping lingual envelopes, occlusal add-ons, equilibration guides, preparation guides, gingival cutting guides, and so forth.
[0062] While oral appliances can have a wide variety of uses, it can be important that at least some types of oral appliances be carefully fitted to the patient. For example, while a night guard may not need to be fitted to an individual patient (for example, a night guard may simply be provided in a variety of sizes that can fit most mouths, though a fitted night guard can be advantageous), other types of oral appliances such as those intended to offer treatment or relief for certain dental or temporomandibular issues, should preferably be tailored to the individual patient.
[0063] Conventionally, a dental professional would design an oral appliance manually, possibly with the aid of computer-aided drafting software. However, such an approach can be time-consuming and prone to error. For example, poor fitting, lack of rigidity, too much rigidity, poor selection of insertion angle, poor selection of undercuts, and so forth can result in an oral appliance that is less effective, difficult to insert, difficult to remove, uncomfortable to wear, and so forth. Moreover, a dental professional may lack important information such as contact relations between mandibular and maxillary teeth, motion of the jaw, and so forth.
[0064] The design of oral appliances has historically relied on the judgment of specialists about the aesthetics of the oral appliance and its proper functioning. However, as mentioned above, there can be a large number of considerations when designing an oralappliance. It can be important to consider the overall design of the oral appliance to ensure proper functioning while providing an oral appliance that is effective, comfortable, and so forth. For example, it can be important to ensure that desired teeth are covered (for example, all teeth of an arch), that the oral appliance is sufficiently smooth, and so forth. In a human- designed oral appliance, the specialist can design an oral appliance considering functional and aesthetic factors, and can also consider manufacturing parameters, such as minimum thicknesses, possible moldings, milling diameter, and so forth.
[0065] Accordingly, there is a need for improved systems, methods, and devices for developing and creating oral appliances.Oral Appliance Boundary Determination
[0066] One important aspect of oral appliance design is the determination of oral appliance boundary (also referred to as the oral appliance limit. The oral appliance boundary can be defined as the lowermost (in the case of a mandibular oral appliance) or uppermost (in the case of maxillary oral appliance) edge of an oral appliance, for example the edge of the oral appliance nearest the gums. In some cases, the cementoenamel junction, which can be approximated as where the gums meet the teeth, can be detected and used for determining the oral appliance boundary. The cementoenamel junction can be the same as or similar to the cervical line or dental neck.
[0067] In some embodiments, texture information can be used to determine the cementoenamel junction. A 3D mesh of the interior of the mouth can be captured using, for example, an intraoral scanner, dental molds, and so forth. In some embodiments, texture data (e.g., one or more images, which can be color, grayscale, and so forth) of the mouth can also be captured. In some embodiments, the texture data can include color image data. In some cases, the texture data can include, additionally or alternatively, infrared data. In some embodiments, geometric characteristics can be considered. Generally, any data which has high variation between the gums and teeth can be used. In the case of color image data, identification of the cementoenamel junction can be based on color differences. For example, a path at the interface of the cementoenamel junction can be determined based on a color difference between the gums and teeth. In some embodiments, after determining the cementoenamel junction, the path can be projected onto a 3D mesh, 3D point cloud, etc., of the patient’s teeth and gums. In some embodiments, such projections may not be necessary. For example, if the texture data and the 3D mesh data are captured at the same time, the 3D locations of each pixel in the texture data can be known, thereby enabling a more direct generation of the path of the cementoenamel junction. In some embodiments, more than onetype of texture data can be associated with the same mesh. The term “mesh” is used throughout the application to refer to 3D representations. This is done for the sake of readability. The approaches described herein can be readily applied to a mesh, point cloud, and so forth. For example, a mesh can include information about the relations between vertices, while a point cloud can include the locations of vertices but may not include information about the relationships between points.
[0068] In some embodiments, a single type of texture information can be used. For example, a single color, only infrared, and so forth. In some embodiments, multiple types of texture data can be used, for example multiple colors, infrared, geometric characteristics, or any other suitable data. Considering multiple types texture information data (e.g., multiple color channels) can improve detection of the cementoenamel junction.
[0069] The cementoenamel junction separation can be visible in a color or grayscale texture image. For example, teeth can appear white, yellow, gray, etc., while the gums, palate, and floor can generally have a pinkish color. In the case of a grayscale image, the teeth can typically appear relatively bright while the gums, palate, and floor can appear relatively dark.
[0070] In some embodiments, the channels (e.g., red, green, and blue) of a color image can be analyzed separately when determining the cementoenamel junction. For example, the green and blue channels may offer fairly clear delineation between the teeth and gums, while the red channel may lack such a clear separation (for example, the gums and other soft tissue can have a high value for the red channel because of their pinkish color, and the teeth can also have a high red value because they are generally a relatively bright white, yellow, or grayish color). Thus, in some embodiments, the red channel may not be used. The green and blue channels can be preferable because, for example, the teeth can generally have relatively high values for green and blue channels because of their white, yellow, or grayish color, while the gums and other soft tissue can generally have relatively low green and blue values because the gums and soft tissue are typically a pinkish color. In some embodiments, a threshold value can be assigned such that any value above the threshold is considered to correspond to teeth and any value below the threshold is considered to correspond to the gums, palate, or floor. Values equal to the threshold can be assigned to either the gums or to the teeth, depending upon the specific implementation. In some embodiments, the threshold value can be in between valid values for the color channels. For example, in some embodiments, a value for a red, green, or blue channel can be an integervalue from 0 (e.g., no presence of the color) to 255 (e.g., maximum saturation), and a threshold value can be a non-integer value such as, for example, 100.5.
[0071] Using a binary filtering process, values below the threshold can be assigned a value of, for example, zero, which in some embodiments can represent black, and values above the threshold can have a value of, for example, one, which can represent, for example, white. It will be appreciated that the actual values, colors, or both can vary, so long as areas below and above the threshold are distinguished from one another.
[0072] In some embodiments, grayscale images can be used. In some embodiments, color images can be used without separating the color image into individual color channels. For example, in some embodiments, brightness, hue, saturation, and so forth can be used. For example, brightness values, hue values, saturation values, and so forth can be converted to a binary (e.g., black and white) representation. For example, hues falling in a particular range or ranges can be defined as soft tissue and a different range or ranges can be defined as teeth. As another example, brightness values above a threshold amount can be defined as teeth and brightness values below the threshold can be defined as soft tissue.
[0073] In some embodiments, a grayscale or color texture data can be captured with the aid of an optical color filter that can selectively block or allow the passage of light of different colors (e.g., light within a particular wavelength range or ranges). For example, in some embodiments, a an optical color filter can be used that removes some or substantially all red and / or other color(s) from the texture data. In some cases, the use of an optical filter or filters during texture data capture can facilitate identification of the cementoenamel junction. For example, the use of an optical filter or filters during texture data capture can have a similar effect as separating out the red, green, and blue color channels of a color image and working with only one or two of the color channels. In some embodiments, in addition or alternatively to optical color filters, other types of optical filters may be used. For example, in some embodiments, a polarizing filter can be used. A polarizing filter may reduce reflections, scattered light, and so forth, which may help to separate the teeth and gums, for example by eliminating or reduced reflections from the gums and / or other soft tissue that may incorrectly be identified as teeth.
[0074] FIG. 1A shows an example of a 2D texture image according to some embodiments. As shown in FIG. 1 A, the teeth and gums can be distinguished based on color. In some embodiments, for automatic detection of the cementoenamel junction, it can be beneficial to look at a single color channel. FIG. 1 B shows an example of the red, green, and blue channels of the image shown in FIG. 1 A. As can be seen in FIG. 1 B, the green channelcan have the clearest separation between the teeth and gums, while the red channel shows fairly poor separation, although determination of the cementoenamel junction from even the red channel may still be possible. The blue channel can generally have a less apparent separation than the green channel because, for example, the gums, palate, and floor can have a purple hue and thus a significant blue channel. As mentioned above, a binary filter can be applied so that each pixel is either black or white (or any other colors or values as desired). FIG. 1 C shows an example result of such binary filtering. As can be seen in FIG. 1 C, the gums and other soft tissue are mostly black, while the teeth are mostly white. The cementoenamel junction can be determined as the meeting points between black pixels and white pixels.
[0075] While FIG. 10 shows the general outline of the cementoenamel junction, there are various artifacts (e.g., white spots or regions) that appear in the soft tissue as well as various dark spots that appear on the teeth. Such spots can be the result of, for example, lighting used during image capture, white spots on the patient’s gums, palate, or floor, and so forth.
[0076] In some embodiments, post-processing can be applied to correct such aberrations in the initial determination. For example, if a white spot is below a certain size, it may be made black. If a black spot is below a certain size, it may be made white. In some embodiments, the shape of an area can be used to determine if it is an artifact. For example, in the image shown in FIG. 1 A, the teeth run generally vertically from the top of the image to the bottom of the image and have a width that is substantially less than the height. FIG. 1 D illustrates an example of the output of a binary mask after post-processing is applied. While some artifacts remain, the image is noticeably improved from the image shown in FIG. 1 C.
[0077] While the process outlined above can be effective, it can be difficult to generalize such an approach. For example, in some cases, texture data (which can be single dimensional or multidimensional, for example one color or multiple colors or one or multiple colors and / or other types of texture data) may not have sufficient variation between the teeth and soft tissue to enable accurate separation of the teeth and soft tissue using a binary masking (also referred to herein as binary filtering) approach. In some embodiments, the presence of crowns, artificial teeth, and so forth may make it difficult to determine the cementoenamel junction based on texture data. FIG. 2A shows examples of various 2D texture projections. As can be seen in FIG. 2A, the teeth can be presented in a variety of shapes, directions, and so forth, and in some cases not all teeth may be relatively brightly colored or easily distinguished. For example, the presence of metallic dental appliances, tooth decay, heavy discoloration, and so forth can make it difficult to separate the teeth and softtissue based purely on color or color intensity. FIG. 2B shows the green channel of the images shown in FIG. 2A. FIG. 2C shows the result of performing a binary filtering process on the images of FIG. 2B. As can be seen in FIG. 2C, while some images could be used to obtain suitable results, other images have numerous artifacts and lack clear delineation between the teeth and soft tissue.
[0078] In some embodiments, other thresholding techniques can be used for determining the cementoenamel junction. For example, adaptive thresholding, Sobel filtering, Laplacian filtering, Canny edge detection, and / or so forth can be used to determine the cementoenamel junction. In some embodiments, multiple channels can be used in segmentation. For example, in some embodiments, all channels can be used. In some embodiments, two channels can be used. In some embodiments, selected channels (e.g., all channels or a subset of channels) can be analyzed together. In some embodiments, selected channels can be analyzed separately. For example, in some embodiments, the cementoenamel junction can be identified using the green channel of a color image, and the cementoenamel junction can be separately identified using the blue channel of the color image. In some embodiments, the teeth can be determined based at least in part on the overlap between the images. For example, if an area is white on both the binary output from processing the green channel and the binary output from processing the blue channel, that area can be considered to be part of the teeth, while an area that is white in one binary output and black in another can be considered to be an artifact and can be assigned the value of neighboring pixels in the image.
[0079] However, even with various types of conventional image processing methods available, it may be difficult to determine an image processing method that can be applied robustly and generally. Accordingly, in some embodiments, it can be desirable to train an artificial intelligence (Al) / machine learning (ML) model to identify the cementoenamel junction. For example, supervised learning can be performed on a texture analysis model. For example, a collection of texture data (e.g., images) can be annotated manually and used to train the texture analysis model to identify the cementoenamel junction. The model can receive, for example, one or more color images, grayscale images, infrared images, geometric characteristic data, images with only values for a subset of channels (e.g., one of three channels, two of three channels, etc.), and so forth. For example, an input can be an Hx 1 / 1 / x C matrix, with H representing the height in pixels of the texture data (e.g., an image), W representing the width in pixels of the texture data, and C representing the number of channels for the texture data, for example three channels for a color image with red, green, and bluechannels, or one channel for a black and white or grayscale image or an image for which only one channel has been retained. The model can be configured to output a binary image of size Hx 1 / 1 / composed of white pixels representing the teeth and black pixels representing all other areas of the image. It will be appreciated that the selection of colors for the binary output image can be selected arbitrarily so long as the teeth are generally one color and the soft tissue is generally another, different color.
[0080] In some embodiments, annotations can be made by, for example, manually tracing the cementoenamel junction. In some embodiments, an annotation process can be accelerated by, for example, using a graph cuts algorithm or similar approach so that a user can select positive areas, negative areas, or both. For example, in some embodiments, positive areas can be teeth and negative areas can be soft tissue. In some embodiments, positive areas can be soft tissue and negative areas can be teeth. In some cases, a user can correct images in which the cementoenamel junction has been determined using the approaches discussed above (e.g., color filtering and / or binary masking). Example training processes are depicted in FIGS. 23 and 24 and explained in more detail in the corresponding text.
[0081] FIG. 3 shows examples of selection using a graph cuts algorithm and the resulting extracted teeth. The quality of the extraction can depend on a number of factors, such as the quality of the source image from which the teeth are extracted, the level of care used in selecting regions to include or exclude, and so forth.
[0082] The machine learning model described above can be attractive because, for example, it can be relatively easy to annotate images for machine learning training, and the number of images that need to be annotated to receive acceptable results in a diversity of cases can be relatively small.
[0083] Once a 2D binary mask is obtained (for example using the thresholding or machine learning approaches described above), the 2D binary mask can be projected as a texture on a 3D mesh that includes a patient’s teeth and gums, thereby providing a clean separation between the teeth and gums and identifying the cementoenamel junction. As discussed above, in some embodiments, the texture data can already be associated with particular points on the mesh. This information can be associated with the binary mask such that the binary mask can be overlaid onto the mesh without a need to calculate a projection of the binary mask onto the mesh, as the locations of the pixels of the binary mask on the mesh can already be known or can be readily determined. FIG. 4A shows an extracted cementoenamel junction separation path. FIG. 4B shows the 3D projection of FIG. 4A, withbrightly colored areas representing the teeth and darkly colored areas representing the gums. FIG. 4C shows the cementoenamel junction path overlaid onto the 3D mesh of the patient’s teeth and gums. FIG. 4D shows the result of extracting the teeth from the 3D mesh of the patient’s teeth and gums based on the cementoenamel junction path.
[0084] As discussed above, in some embodiments, texture data and 3D mesh data can be captured simultaneously. In some embodiments, pixels of the texture data can be associated with particular locations in the mesh. Accordingly, in some embodiments, it may not be necessary to project the cementoenamel junction onto the mesh as the locations of the cementoenamel junction path on the mesh are already known or can be readily determined.
[0085] In some embodiments, alternative approaches can be used. For example, while the above methods rely on the use of texture data to determine the cementoenamel junction, in some embodiments, the 3D mesh can be used for detecting the cementoenamel junction. FIG. 5 shows an example of a 3D mesh. As can be seen in FIG. 5, the cementoenamel junction line is distinguishable on the mesh as an apparent groove below the teeth. This groove can be extracted to determine the cementoenamel junction. However, there can be some limitations to this approach. For example, there can be other grooves present on the surface of the mesh in areas other than the cementoenamel junction. Various approaches exist that can be used to limit or prevent the selection of other grooves, as discussed in more detail below with regard to segmentation.
[0086] Undercuts can play an important role in the design of an oral appliance. For example, undercuts can impact how well an oral appliance grips to the teeth and / or how difficult it will be to insert and / or remove the oral appliance. The number of undercuts, location of undercuts, spatial extent of undercuts, and so forth can be optimized to achieve desired insertion, retention (e.g., how well the oral appliance stays in place once inserted), and / or removal characteristics. FIG. 6 illustrates the general concept of an undercut. As shown in FIG. 6, an object 602 can have undercuts 604. A vertically oriented milling tool would be unable to access the undercuts 604 when coming from the top of FIG. 6. In an oral appliance, an insertion axis can be selected based at least in part on the resulting undercuts
[0087] One approach for identifying undercuts is to evaluate the 3D mesh of the patient’s teeth. For example, for mandibular teeth, the mesh can comprise a plurality of triangles, and each triangle can constitute a face. Each face can have a the normal vector. The normal vector can point inward toward the teeth or outward away from the teeth. Typically, the normal vector can be chosen as a normal vector pointing outward, away from the tooth with which the face is associated..
[0088] A face can be identified as belonging to an undercut if the projection (e.g., dot product) between the face’s normal vector and an observation direction vector (which can be, for example, along the insertion axis) has an appropriate sign (e.g., positive or negative, depending upon the chosen convention). While there is no conventional or standard definition of the coordinate systems for dental arch meshes, in the following discussion, “downward” can be generally understood to refer to a direction along the insertion direction of a mandibular oral appliance or approximately along the insertion direction, for example pointing generally toward the ground in the case of a mandibular oral appliance. It will be appreciated that pointing generally toward the ground can include along the direction of gravity or approximately along the direction of gravity, or within a range of angles from the direction of gravity, for example within about 30 degrees of the direction of gravity, within about 45 degrees of the direction of gravity or within about 60 degrees of the direction of gravity.
[0089] While the following discussion focuses on mandibular oral appliances, this is done only for clarity and is not intended to be interpreted in a limiting manner. The following discussion can be readily applied to maxillary arches with appropriate modification to account for the differing insertion direction, different orientation of the teeth, and so forth, as will be readily understood by one of skill in the art.
[0090] In some embodiments, a 3D representation can be a mesh, in which relations between points of the mesh are known and thus faces are already defined or readily ascertainable. If the 3D representation of the patient’s teeth is a point cloud rather than a mesh, a preliminary step can include determining faces based on the locations of points in the point cloud.
[0091] While this approach can effectively identify some undercuts, simply looking at the normal of each face can be incomplete. For example, a face merely having a normal vector that points horizontally or at least somewhat upward relative to a direction of observation does not necessarily mean that the face would be accessible. In some embodiments, incomplete identification may be acceptable. For example, in some embodiments, a rough estimation of the start of an undercut can be sufficient for defining a limit of the oral appliance.
[0092] FIG. 7 illustrates one difficulty with undercut detection. As shown in FIG. 7, an object 702 can have a variety of faces. The normal vector 704 points horizontally and the corresponding face is accessible by a vertical milling tool. The normal vector 706 has a downward component and the corresponding face cannot be accessed by a vertical milling tool. The normal vector 708 has an upward vertical component and the corresponding facecan be accessed by a vertical milling tool. The normal vector 710 has an upward vertical component. However, the face corresponding to normal vector 710 cannot be accessed by a vertical milling tool because access is blocked by the presence of an undercut corresponding to the normal vector 706. Thus, when determining undercuts, it can be important to consider not only normal vectors but also the relative positioning of faces with respect to other surfaces to determine if there is an undercut portion above a face that would prevent access to the surface even though said surface has a normal vector that points horizontally or at least partially upward. There can be additional complications that can also be considered. For example, in the example illustration of FIG. 7, the face corresponding to normal vector 710 is entirely inaccessible due to the presence of the undercut above it. However, in some cases, a face may be partially accessible. For example, if the face corresponding to normal vector 710 extended partially to the left of the vertical dashed line drawn from the upper corner of the undercut, the portion of the face corresponding to normal vector 710 would be accessible, while other portions said face that were to the right of the dashed line would be inaccessible.
[0093] In some embodiments, an algorithm can be designed to identify faces that are accessible and faces that are inaccessible. For example, consider a 3D mesh comprising a plurality of faces f. In some embodiments, upward-facing faces (relative to the direction of observation) can be determined by, for each face f, taking the dot product of the normal vector n of the face f and a reference direction vector (e.g., a vector pointed along the observation direction (although it will be appreciated that the mesh could be rotated to any desired orientation)), which can affect whether a face would be accessible or not. In such an approach, if the scalar product is of an appropriate sign (e.g., positive or negative, depending on the chosen convention), the face can be identified as an undercut face. To locate other faces that are eclipsed by the undercut face, the undercut can be projected downward along the reference vector direction, and any other faces of the plurality of faces that collide with the projection.
[0094] FIG. 8A shows an example of an object 802 with various faces. The dot product of normal vector 804 and the reference vector n is negative, indicating an undercut. The scalar products of vector 806 and reference vector n and vector 808 and reference vector n are both positive. The reference vector n can be any suitable reference vector. For example, the reference vector n can correspond to an insertion axis. As shown in FIG. 8B, projecting the face corresponding to normal vector 804 down in the direction of the reference vector n, as indicated by the hashed area, completely encompasses the face corresponding to normal vector 806 and partially encompasses the face corresponding to normal vector 808.Accordingly, the face corresponding to the normal vector 806 can be considered to be within the undercut. In some embodiments, the face corresponding to normal vector 808 can be considered to be entirely within the undercut. In some embodiments, the face corresponding to normal vector 808 can be divided into more than one surface, with any face that is encompassed by the projection being considered to be within the undercut and any face not encompassed by the projection being considered to be outside the undercut. In some embodiments, whether or not a face is divided into multiple surfaces can depend upon, for example, an amount of the face that is enveloped by the undercut. For example, if only a small portion of the face is outside the undercut, there may be limited benefit in dividing the face into multiple surfaces. However, if a significant portion of the face is outside the undercut, there may be considerable benefit to dividing the face into multiple surfaces. For example, a face can be divided into multiple faces if more than about 5%, more than about 10%, more than about 20%, more than about 30%, more than about 40%, more than about 50%, and so forth is outside the undercut.
[0095] While identifying undercuts in a robust manner as described above can offer some benefits, it may not be necessary to use such an approach. For example, in some embodiments, all faces with normal vectors having dot products with a reference vector that are of an appropriate sign depending upon the convention can be considered to be undercuts, and further considerations may not be made. For example, using only the “highest” faces (e.g., faces close to the top surface of the teeth for mandibular teeth or bottom surface of the teeth for maxillary teeth) with negative scalar products can enable analysis of the undercuts in relation to the cementoenamel junction.
[0096] In some embodiments, the insertion axis can be selected to provide a desired homogeneity of the undercuts, for example to maximize the homogeneity of the undercuts. For example, the insertion axis can be varied so that undercuts are distributed on both sides of the teeth (e.g., on the lingual side (inner surface) and on the facial and / or buccal side (outer surface)), among anterior and posterior teeth, and so forth. In some embodiments, the undercuts can be distributed over the entire dental arch. In some embodiments, undercuts can be located at up to a maximum distance from the cementoenamel junction. In some embodiments, undercuts can be located at not less than a minimum distance from the cementoenamel junction. In general, the location, size, number, and distribution of undercuts can be selected based on type of oral appliance, characteristics of the patient, manufacturing constraints, and so forth.
[0097] In some embodiments, determining the insertion axis can be accomplished by beginning with an initial insertion axis (e.g., vertical or along the direction of gravity) and then applying small rotations to the insertion axis. In some embodiments, for each candidate axis (e.g., for each rotation of the insertion axis), the undercuts are computed and the distances from the cementoenamel junction to the undercuts can be calculated. The candidate axis can be scored based on, for example, the distribution of distances from the cementoenamel junction. In some embodiments, the candidate axis with the highest score can be selected as the insertion axis. In some embodiments, the metric can be calculated based on the distances from low points of the face to the cementoenamel junction, from midpoints of the faces to the cementoenamel junction, or from high points of the faces to the cementoenamel junction.
[0098] Such a process can be used to determine favorable and / or unfavorable characteristics of the mouth, which can be used in oral appliance design. For example, an insertion axis can be determined that allows the oral appliance to be inserted without obstructions or interferences or with only limited obstructions or interferences. In some embodiments, an insertion axis can be selected so that the oral appliance can resist unseating forces that could otherwise dislodge the oral appliance from its intended location. In some embodiments, the insertion axis determination process can be used to identify unfavorable undercuts, for example undercuts that are too far from the cementoenamel junction.
[0099] FIGS. 8C-8E illustrate examples of undercut identification according to some embodiments. In some embodiments, a straight line that is parallel to the insertion axis can be moved around the tooth such that it is tangential to the tooth (e.g., so that it touches the tooth at only one location). By moving this straight line around the tooth, a survey line can be determined. The survey line can indicate where the undercuts begin. For example, in the case of mandibular teeth, any portion of the tooth above the survey line can be exposed and any portion under the survey line can be considered an undercut.
[0100] In FIGS. 8C-8E, an object 810 (e.g., a tooth) is depicted. As shown in FIG. 8C, an oral appliance can be inserted along insertion axis 812a. A reference line 816a can be parallel to the insertion axis 812a. The reference line 816a can be moved around object 810 to produce survey line 818a. The area below the survey line 818a can be an undercut region 814a. FIGS. 8D and 8E illustrate undercut regions 814b and 814c resulting from the selection of insertion axes 812b and 812c, giving rise to survey lines 818b and 818c, respectively. As with reference line 816a and insertion axis 812a, the reference line 816b can be parallel to the insertion axis 812b, and the reference line 816c can be parallel to the insertion axis 812c.
[0101] FIG. 8F illustrates an oral appliance in a removed state (left) and in an inserted state (right). The oral appliance can be inserted along the insertion axis as indicated in FIG. 8F. As shown in FIG. 8F, the oral appliance can generally conform to the shape of the teeth, except in the undercut regions.
[0102] FIG. 9A illustrates an example path around the teeth that considers both inward-facing surfaces and outward-facing surfaces. The path in FIG. 9A can be the cementoenamel junction, for example as can be determined as discussed herein. FIG. 9B shows the distance above the cementoenamel junction of the high limits of the undercuts (e.g., the highest point above the cementoenamel junction where the undercut begins) with respect to the cementoenamel junction path (e.g., the cementoenamel junction path can be defined as y = 0) , following along the path 1 ,2, 3, 4 indicated in FIG. 9A. In some embodiments, to create the plot shown in FIG. 9B, the path shown in FIG. 9A can be warped to transform the arch into a straight shape.
[0103] In some embodiments, a plot such as that of FIG. 9B that indicates the distance of the undercuts from the cementoenamel junction can be used to assess the distribution of distances between the cementoenamel junction and the undercuts and can be used in defining a limit of the oral appliance. For example, in some embodiments, a desired distance between the limit of the oral appliance and the undercuts and / or between the limit of the oral appliance and the cementoenamel junction can be maintained.
[0104] In some embodiments, profile analysis can be facilitated by, for example, determining the position of each tooth on the cementoenamel junction path, as discussed in more detail herein. In some embodiments, after selecting an insertion axis, an oral appliance boundary can be defined in relation to the undercut boundary (e.g., the survey line described above with reference to FIGS. 8C-8E). For example, the oral appliance boundary can follow or approximately follow the survey lines discussed above with respect to FIGS. 8C-8E. Typically the oral appliance boundary can extend beyond the survey line, approaching the cementoenamel junction. For example, it can be important for the oral appliance boundary to extend beyond the survey line to ensure that the oral appliance has sufficient retention to stay in place during use. In some embodiments, the oral appliance boundary can be the line of greatest contour (e.g., the survey lines discussed above with respect to FIGS. 8C-8E) with a constant added or subtracted therefrom, for example to bring the oral appliance generally closer to the cementoenamel junction. In some embodiments, rather than adding or subtracting a constant, the added or subtracted value can vary along boundary. For example, the value can be higher in some areas and lower in others, which can help to facilitate insertionof the oral appliance while ensuring that the oral appliance remains properly positioned during use. In some embodiments, there can be a desired size of the oral appliance in relation to the top of the teeth, which can be taken into account when determining the gutter.
[0105] The oral appliance can have an internal surface and an external surface. As used herein, the internal surface can be a surface of the oral appliance that faces the teeth. An external surface can be a surface opposite the teeth, e.g., a surface that faces the opposing teeth, tongue, cheek, and so forth. The internal and external surfaces can be further divided into multiple surfaces. For example, the internal surface can be divided into a lingual side, a buccal side, and a top surface. The top surface can run generally along the tops of the molars, the peaks of the incisors, and so forth. The external surface can similarly be divided into an inward-facing or lingual side, an outer-facing or buccal side, and a top surface.
[0106] Once the limit of the oral appliance is defined, an internal surface can be generated. For example, the internal surface can follow the shape of teeth of the mandibular arch, for an oral appliance to be used with the mandibular teeth.
[0107] As mentioned above, several factors can be considered in creating the internal surface. For example, there can be an offset or gap between the teeth and the oral appliance, for example about 0.03 mm. In some embodiments, one or more areas of the oral appliance may not have a gap. For example, in the case of an aligner, it can be desirable for one or more teeth to come in contact with the aligner so that the teeth can be moved into a desired position by the aligner. In some embodiments, there can be an angle between the internal surface and the insertion axis. Said angle can be zero degrees or about zero degrees, for example to prevent moving away from the undercuts or entering the undercuts. In some embodiments, one or more smoothing operations can be carried out at one or more points in creating a 3D model, as described in more detail herein.
[0108] In some embodiments, a convex hull algorithm can be used in generating the internal surface. While this can help to generate an enveloping surface around a 3D object (e.g., around the teeth), a dental arch, tooth, etc., may not be convex. For example, if a tooth has an indentation, a convex hull algorithm may produce an internal surface that is too far from the indentation. Thus, in some embodiments, a convex hull approach may not be used and other approaches may be used instead. In some embodiments, a convex hull algorithm can be used in combination with other approaches. As just one example, in some embodiments, a convex hull algorithm can be modified so that the shape produced by the convex hull is no more than a threshold distance from a vertex of the teeth.
[0109] FIG. 10 illustrates an example of the output of convex hull algorithms according to some embodiments. In FIG. 10, the path 1002 represents a convex hull for the illustrated vertices. The path 1002 may be produced using a conventional convex hull algorithm, for example. The path 1004 represents a modified convex hull as may be produced by a modified algorithm as described above. As shown in FIG. 10, the path 1004 bends inward toward vertices that are not in contact with the path 1004. In some embodiments, an algorithm can include one or more control parameters that can be used to define properties of the bending, such as how close the path should be to the vertices that would ordinarily be inside the convex hull in a conventional approach, maximum curvature, and so forth. While illustrated in two dimensions in FIG. 10, it will be appreciated that such an approach may be readily adapted to three dimensions.
[0110] In some embodiments, an algorithm can be configured to generate an enveloping surface around a 3D object. For example, the algorithm can receive as an input a 3D mesh or point cloud of a dental arch and can output a 3D mesh of an internal surface. In some embodiments, the method can include extending an initial mesh according to the orientation of the faces of the initial mesh. After extending the mesh, the enveloping surface can be trimmed at or near the gutter boundary.
[0111] FIG. 11 is a flowchart that illustrates an example expansion process according to some embodiments. The process depicted in FIG. 11 can be carried out on a computer system. At block 1102, the system can receive an initial 3D mesh. The initial 3D mesh can be, for example, a mesh representing a patient’s dental arch. At block 1104, the system can initialize a counter for the vertices in the initial 3D mesh. For example, in the illustration, the counter can start at one and proceed to N, where N is the total number of vertices in the initial 3D mesh. In some embodiments, only a portion of the initial 3D mesh may be considered. For example, in some embodiments, only portions of the initial 3D mesh corresponding to the lingual side of the teeth may be considered. At block 1106, the system can, for the ith vertex v determine triangles with which the vertex is associated. In cases where a 3D mesh is used, the relationships between vertices and triangles can be defined by the 3D mesh. In some embodiments, where a point cloud is used, the system can determine triangles in part by, for example, determining nearest neighbors of a vertex, from which triangles that include the vertex can be defined. At block 1108, the system can average the normal vectors for each triangle associated with the ith vertex. At block 1110, the system can scale the average of the normal vectors. At block 1112, the system can move the vertex along the scaled vector to produce a new vertex v- . For example, the vertices can be related as v- =vi= a( t + vi+1) / 2, where a is a scaling factor that can be used to adjust the distance of the calculated vertices from the vertices of the initial 3D mesh. At decision point 1114, the system can determine if all vertices have been accounted for. Blocks 1106 through 1112 can be repeated until all vertices in the initial mesh have been accounted for. At block 1116, the system can combine the vertices v (for i = 1 to N-1 ) to produce an expanded mesh. At block 1118, the system can perform one or more smoothing operations on the expanded mesh.
[0112] As mentioned above, the a factor can act as a control parameter for moving the internal surface closer to or farther from the dental arch. In some embodiments, a can depend upon the location along the dental arch. In some embodiments, a can vary depending upon distance from the cementoenamel junction. In some embodiments, the value of a can be 0.03 mm or about 0.03 mm, though this value may vary depending on the specific oral appliance, characteristics of the patient, manufacturing limitations, and / or other considerations.
[0113] After generating the internal surface, the volume of the oral appliance (e.g., the solid volume of the oral appliance, defined by the internal and external surfaces) can be generated. In some embodiments, the internal surface can be inflated or expanded to generate the external surface. The external surface can be opposed to the antagonist arch (e.g., for a mandibular oral appliance, the antagonist arch can be the maxillary arch, or for a maxillary oral appliance, the antagonist arch can be the mandibular arch).
[0114] The inflation or expansion of the internal and / or external surfaces can be controlled by, for example, using the parameter a discussed above.
[0115] FIG. 12 illustrates an example of the process depicted in FIG. 11. For simplicity, FIG. 12 illustrates a two dimensional process. A first surface can have a normal vector th and a second surface can have a normal vector n2. A common node x? can be scaled along a direction given by the average of the vectors ih and n2and can be scaled by the scaling factor a to give a desired expansion.
[0116] In some embodiments, rather than expanding the internal surface as described above, 3D mesh dilation can be used. For example, dilation can be performed beginning with the internal surface. For example, using an input 3D mesh, the 3D mesh can be dilated or eroded. Such a process can use one or more morphological operations. For example, a dilation object (e.g., a disk, square, sphere, cube, etc.) can be used to dilate an object. For example, in the case of a dilation operation of a square using a circular disk as the dilation object, the result can be a larger square with rounded corners, where the rounding ofthe corners has a same radius as a radius of the circular disk dilation object and wherein each side of the square is expanded by the radius of the disk.
[0117] In some embodiments, an oral appliance that takes into account the antagonist arch can be treated differently for a posterior zone (e.g., including the molars and possibly other teeth such as the premolars). In some embodiments, the canines can belong to an anterior zone. In some embodiments, the canines can be considered to be part of the posterior zone. In some embodiments, both anterior and posterior zones can be taken into account. In some embodiments, only one of the posterior and anterior zones may be taken into account.
[0118] For the posterior segment, the support cusps of the antagonist arch (e.g., maxillary arch for a mandibular oral appliance) can be determined. This determination can be used to obtain a cutting plane to flatten the oral appliance near the support cusps. For the anterior section, Boolean subtraction or another similar technique can be used to dig into the oral appliance according to the shape of the teeth (e.g., the shape of the antagonistic incisors), thereby allowing a patient to close their mouth to a selected position (e.g., closing angle) while the oral appliance is in place.
[0119] Thus, it can be beneficial to automatically identify the posterior and anterior segments so that each can be treated separately. A 3D mesh of the mandibular arch can be used as the basis for segmentation.
[0120] Segmentation of the arch can proceed in a manner similar to the detection of the cementoenamel junction using machine learning. For example, a machine learning model can be trained to segment each tooth based on a 2D texture image. This segmentation can, as described above, be projected onto each tooth of the 3D mesh.
[0121] In some embodiments, the output of such a segmentation process may not be a binary mask as described above with respect to the cementoenamel junction. In some embodiments, each tooth can be labeled. For example, each tooth can be labeled starting with one and incrementing with each identified tooth, and any non-tooth regions of the 2D texture image can be labeled with zero.
[0122] While segmentation of the teeth can proceed in a manner similar to that used for determining the cementoenamel junction, segmenting each tooth can present significant challenges. For example, while the cementoenamel junction can be identified based on color differences, such differences are not necessarily present when determining the interfaces between individual teeth, as the teeth are typically close together, and most or all are of a similar color. Thus, it may be less visually obvious where one tooth ends andanother begins. Nonetheless, a machine learning model can be trained in a supervised manner using training images that have been tagged to indicate the individual teeth.
[0123] Once a multi-label mask (e.g., a mask that labels each tooth individually) has been projected onto a corresponding 3D mesh, each tooth can be annotated so that each tooth within the 3D mesh is uniquely identified. In some embodiments, the numbering can conform to a standard such as the Universal Numbering System, FDI World Dental Federation notation, Palmer notation, or ISO 3950. In some embodiments, the numbering may conform to a different standard than those listed or may not conform to any standard. Once the teeth are segmented, the anterior and posterior sections can be determined. In some embodiments, the barycenters of the teeth can be used to locate the teeth in space.
[0124] While such an approach can be effective, in some cases there may not be a sufficiently precise identification of the separation between the posterior and anterior sections (e.g., between the premolars and the canines). Accordingly, in some embodiments, rather than or in addition to using a 2D texture, the 3D mesh itself can be segmented. For example, each space between the teeth can have a particular topology in the form of a groove. By identifying the grooves, the boundaries between teeth can be identified.
[0125] FIG. 13 illustrates an example of a 3D mandibular arch in which the grooves and separation between teeth are labeled.
[0126] After separating each tooth, the teeth can be labeled to number each tooth in order and to obtain the posterior and anterior sections.
[0127] In some cases, a patient may be missing one or more teeth. Thus, in some embodiments, a distance between teeth can be considered. For example, teeth can have a width of from about 6 mm to about 12 mm, depending upon the tooth. For example, molars can be relatively large while incisors and canines can be relatively small. Thus, if a distance between two boundaries is significantly larger than expected (e.g., about 1.5 times larger, about 2 times larger, about 3 times larger, etc.), a system can be configured to determine that one or more teeth are missing. In some embodiments, missing teeth can be determined based upon a change in topology. For example, if one or more teeth are missing, there can be a gap where the height is reduced, indicating that a tooth is missing. For example, a topmost surface can be closer than expected to the height of the cementoenamel junction. By considering and identifying missing teeth, the likelihood of misnumbering the teeth can be reduced.
[0128] In some embodiments, a boundary can be determined by considering the dot product of normal vectors of triangles that compose the faces of the teeth. For example, if the scalar product of adjacent faces is negative, it can indicate that the two faces areopposite one another. The teeth can have a variety of pits, grooves, recesses, and so forth that can make identification of boundaries and exclusion of other features challenging. Thus, in some embodiments, a further requirement can be that the separation between faces does not exceed a threshold separation value. It will be appreciated that the use of scalar products can be effective for determining boundaries between teeth. However, in some cases, scalar products can incorrectly identify boundaries or can miss boundaries. For example, teeth can have irregular shapes that can result in errors in boundary identification computed using scalar products.
[0129] FIG. 14 shows an example of normal vectors of surfaces associated with two teeth (e.g., two molars). The dot product between n3and n4can be negative and the surfaces are close together, indicating a boundary. Moreover, the horizontal component of the normal vectors n3and n4can be relatively small, indicating a strongly vertical orientation, which can be more likely to represent a boundary than normal vectors with larger horizontal components and smaller vertical components, which may indicate the presence of features on the top surface of a tooth. In the preceding description, in some embodiments, vertical can be considered to point along an insertion axis of an oral appliance, and horizontal can be orthogonal to the insertion axis.
[0130] A 3D mesh can comprise a large number of vertices and faces. However, most of these faces may not be related to boundaries between teeth. Computing normal vectors, distances, dot products, etc., for a large number of faces can be a computationally intensive process. Thus, in some embodiments, a 3D mesh can be simplified to reduce the number of calculations, for example by smoothing the 3D mesh.
[0131] However, even after smoothing, the 3D mesh can still have grooves, for example at the gum level and / or tops of the teeth. In some embodiments, a rule can be used to exclude faces that are within a threshold distance of the cementoenamel junction. In some embodiments, to avoid detecting grooves at the cementoenamel junction, the teeth can be extracted, for example as described above, and segmentation analysis can be performed on the extracted teeth.
[0132] In some embodiments, to exclude grooves along the top of the teeth, a rule can be added to exclude faces that have vertically-facing normal vectors (e.g., normal vectors with a vertical component greater than a threshold value). In some embodiments, rather than vertically-facing normal vectors, an algorithm can be configured to consider another reference vector such as the insertion axis. For example, a face can be excluded if the dot product of the face normal vector and a vector pointing along the insertion axis is greater than a thresholdvalue. For example, a face can be excluded if it is more than about 30 degrees, more than about 45 degrees, more than about 60 degrees, or any number between these numbers, or any other value as desired, from a normal vector that is orthogonal to the insertion axis normal vector or another reference vector.
[0133] FIGS. 15A-C illustrate examples of segmentation according to some embodiments. In FIG. 15A, detected narrow grooves are marked. The result shown in FIG. 15A is an example of segmentation without the use of smoothing and without imposing conditions on the orientation of the faces (e.g., without restriction based on whether a face points “upward” with respect to an insertion axis or other reference axis. In FIG. 15B, the marked areas indicate boundaries detected after imposition of an orientation condition (e.g., to ensure that the faces are not facing along the insertion axis or another reference axis. FIG. 15C illustrates an example of segmentation results when orientation conditions are imposed and when the 3D mesh undergoes a smoothing process. As can be seen in FIG. 15A, when smoothing and orientation conditions are not imposed, there can be many surfaces that are identified as boundaries but are not actually boundaries between teeth but rather represent, for example, grooves within a tooth, the cementoenamel junction, and so forth. As can be seen in FIG. 15B, when orientation conditions are imposed, there can be fewer misidentified boundaries. In FIG. 150, there are even fewer misidentified boundaries when both orientation conditions and smoothing operations are applied.
[0134] While smoothing and imposing orientation conditions can reduce misidentified boundaries, boundary identification can still be imperfect. In some embodiments, boundary identification can be further improved by, for example, selecting only the largest areas or related components to remove artifacts that might confuse the boundaries between the teeth.
[0135] FIG. 16 is a flowchart that illustrates an example of segmentation according to some embodiments. In some embodiments, steps can be carried out in a different order than those indicated in FIG. 16. In some embodiments, not all steps may be performed. In some embodiments, different steps, additional steps, or both can be performed. The process illustrated in FIG. 16 can be executed on a computer system.
[0136] At block 1602, the system can receive a 3D mesh. The 3D mesh can be, for example, a 3D mesh of the mandibular teeth and gums of a patient. At block 1604, the system can extract the teeth from the 3D mesh. For example, the system can identify the cementoenamel junction as described herein and can, based on the identified cementoenamel junction, extract the teeth. At block 1606, the system can, using the verticesof the received 3D mesh, determine faces of the 3D mesh. At block 1608, the system can determine a normal vector for each face. The system can be configured so that the normal vectors point outward from the 3D mesh. At block 1610, the system can initialize a counter. At block 1612, the system can take the scalar product of the normal vector of the / thface and a reference vector. The reference vector can be, for example, a unit vector pointing along the direction of the insertion axis. At decision point 1614, the system can determine if the normal vector points along the reference vector by more than a threshold amount. If so, the system can, at block 1640, drop the face. If not, the system can keep the face and proceed to block 1616, where the counter can be incremented so that the next face can be evaluated. At decision point 1618, the system can determine if the counter / ' is greater than the total number of faces N. If not, the system can proceed to block 1612 until each face has been evaluated. If so, the system can proceed to block 1620. At block 1620, the system can smooth the mesh. At block 1622, the system can evaluate face areas and can exclude areas that are smaller than a threshold amount. At block 1624, the system can compute scalar products of pairs of the remaining faces. At decision point 1626, the system can determine whether the scalar product is negative. If not, the system can mark the pair as not indicating a boundary at block 1628. If so, the system can, at block 1630, mark the pair as indicating a boundary. The boundary can be defined as, for example, a midpoint between the pair. After determining the boundaries, the system can, at block 1632, label the teeth. At block 1634, the system can segment the teeth into anterior and posterior sections.
[0137] In some embodiments, different approaches can be used for segmenting the teeth. For example, in some embodiments, an initial 3D mesh can include the teeth and gums. The teeth can be extracted to form a tooth mesh, for example after identifying the cementoenamel junction as described above. The teeth can then be eroded by subtracting a structural element from the tooth mesh. The structural element can have a variety of shapes, for example a vertical line, horizontal line, slanted line, circle, cross, x, etc. In some cases, the structural element can be three dimensional and can include, for example and without limitation, a cube, rectangle, sphere, torus, etc.
[0138] In an erosion process, the structural element can act as a moving mask. In a 2D approach, a pixel can be erased if at least one of the pixels under the mask is empty or a particular color (e.g., if black indicates the teeth and white indicates empty space, a black pixel can be made white if at least one of the pixels under the mask is white). A similar approach can be applied in three dimensions, such that a voxel can be removed if the structural element encompasses at least one empty voxel. A similar approach can be used todilate an object. For example, if at least one pixel or voxel encompassed by the structural element is filled, all other pixels or voxels encompassed by the structural element can be filled.
[0139] FIG. 17 shows an example of an erosion process according to some embodiments. Beginning with the structure 1702 on the left, a cross-shaped structural element 1704 can be subtracted. As a result of the subtraction, the pixels 1706, indicated by diagonal lines, can be removed, leaving behind an eroded structural element 1708. While FIG. 17 illustrates erosion of a 2D object, it will be appreciated that the process described above can be readily adapted for three dimensional objects.
[0140] In some embodiments, such operations can be carried out to produce the internal surface, the external surface, or both. For example, the teeth of the 3D mesh can be dilated to form for the internal surface. The internal surface can be dilated to produce the external surface.
[0141] FIG. 18 illustrates an example of teeth eroded according to such a method. In some cases, erosion can completely separate the teeth. However, as can be seen in FIG. 18, the erosion process may not separate the teeth completely. In some embodiments, a clustering algorithm can be used to segment the teeth. For example, K-means clustering can be used to identify the individual teeth. FIG. 19 shows an example of teeth that have been segmented using K-means clustering. In FIG. 19, Kwas chosen to be 14, though this value can vary. As can be seen in FIG. 19, such an approach can generally perform well for segmenting the teeth. However, in some cases, such an approach may fail to properly segment the teeth. For example, in FIG. 19, one of the molars is segmented into two teeth, and the adjacent premolar spills over partially into the molar, and the bulk of the central incisors is segmented into a single tooth. These issues can be addressed in a variety of manners. For example, the parameters used for the erosion process can be adjusted to achieve better separation between the teeth. In some embodiments, smoothing operations can be used, which can reduce the likelihood of segmentation errors. In some embodiments, the value of / can be varied. For example, if it is known that a patient has one or more missing teeth, the value of K can be adjusted so that the clustering operation creates a number of clusters that matches the number of teeth present.
[0142] Even though the segmentation depicted in FIG. 19 is imperfect, it may nonetheless be suitable for segmentation into anterior and posterior sections, as the precise boundaries of individual teeth may not be necessary.
[0143] After segmentation into posterior and anterior areas, further processing can be performed to develop a model for the oral appliance. For the posterior areas, the supportcusps can be detected. The support cusps can be points on the antagonist arch. In some embodiments, the support cusps can be found using a 2D texture in a process similar to that used for finding the cementoenamel junction or for segmenting the teeth. However, it can be difficult to identify the support cusps as there are no clear color indications as with the cementoenamel junction, and the orientation of the surfaces of the support cusps may not be as different from the orientation of other surfaces, as can be the case when identifying boundaries between teeth. Thus, in some embodiments, a 3D mesh of the antagonist arch can be used to identify the support cusps.
[0144] In some embodiments, a machine learning model can be trained to identify support cusps. For example, learning can be performed in a supervised or partially supervised manner in which the model is trained based on manually annotated 3D models. In some embodiments, a model can be trained to identify support cusps even on relatively smooth surfaces.
[0145] In some cases, support cusps can be identified by analyzing the movement between the antagonist arch and the main arch (e.g., the maxillary and mandibular arches, respectively) to determine where contact occurs between the teeth.
[0146] After determining the support cusps, a cutting plane for the posterior section can be determined. The cutting plane is not necessarily a strict plane. For example, the cutting plane can be a B-spline surface. Control points can be determined based on the support cusps, and a surface can be generated that passes through the support cusps.
[0147] Boolean subtraction can be used to cut away areas of the oral appliance. However, in doing so, it can be important to restrict the cutting process, as there can be a risk that a thickness of the oral appliance can be made too small to be molded, 3D printed, etc., and in some cases the cutting can reveal some points along the main arch. In some embodiments, a condition can be imposed that requires at least a minimum distance between the vertices of the top surface and the vertices of the side surfaces. In some embodiments, smoothing can be applied to the top surface, for example to improve comfort.
[0148] In some embodiments, a functionally generated surface (FGS) can represent an envelope of function of dental arch motion. The oral appliance model can be cut in the anterior area using the FGS of the patient using Boolean subtraction. FIG. 20 shows an example of a functionally generated surface for maxillary teeth.
[0149] When modifying the oral appliance model, it can be important to ensure that the antagonist teeth and / or the functionally generated surface are aligned with the main teeth. In some embodiments, alignment can be determined using, for example, x-rays, dentalmolds, jaw motion capture, and so forth. For example, in some embodiments, the relative positioning of the upper and lower dental arches can be determined using dental motion or dental relations, for example using the systems and methods described in U.S. Patent No. 10,265,149, entitled “Method and system for modeling the mandibular kinematics of a patient,” the contents of which are incorporated by reference herein in their entirety.
[0150] In some embodiments, a software-based articulator can be used to model the relative positioning of and interaction between the dental arches. In some embodiments, the software-based articulator can be an average model that represents an average patient. In some embodiments, the software-based articulator can allow for some customization of the positioning and / or interaction of the arches. In some embodiments, a software-based articulator can receive as an input recorded motion data of the patient.
[0151] As discussed herein, smoothing operations can be applied at various points during the design of an oral appliance. In some embodiments, Laplacian smoothing can be used to smooth a mesh using a relaxation factor. In some embodiments, a smoothing operation can be performed once. In some embodiments, a smoothing operation can be repeated two or more times in a row. For example, a vertex can be adjusted using a scaling factor and the distance from other vertices. For example, in some embodiments, smoothing can be performed according to the equation xi+1=some embodiments, the relaxation factor A can be small, for example from about 0.0001 to about 0.01. A larger value for A can result in greater smoothing, but may eliminate too much detail. In some embodiments, the smoothing process can be carried out by considering all vertices. However, this can result in loss of the overall shape of the oral appliance. Thus, in some embodiments, only nearest neighbors, nearest and next nearest neighbors, nearest, next nearest, and third nearest neighbors, and so forth can be considered during a smoothing operation.
[0152] In some embodiments, the number of smoothing operations, the relaxation factor, or both can be different each time smoothing is performed, although in some cases they can be the same. In some embodiments, the number of smoothing operations and the relaxation factors used at each smoothing step can be predetermined. In some embodiments, the system can be configured to dynamically determine the number of smoothing operations, the relaxation parameter, or both. For example, the number of operations, the relaxation parameter, or both can be determined based at least in part on, for example, a roughness of the mesh.
[0153] During a smoothing operation, it can be possible to decrease the internal volume of the oral appliance model. However, this could result in an oral appliance that fits poorly. Such an oral appliance may be uncomfortable for the wearer, may wear prematurely, and so forth. In some cases, the oral appliance may be unwearable because it does not fit the patient’s dental arch. Thus, in some embodiments, constraints can be placed on smoothing operations such that smoothing is only permitted in an expansion direction, thereby maintaining or possibly increasing the internal volume of the oral appliance. In some embodiments, smoothing in the expansion direction can also be restricted, for example to ensure that the oral appliance is not overly loose.
[0154] FIG. 21 A is a flowchart that illustrates an example process according to some embodiments. The example process in FIG. 21 A can be run on a computer system to generate a model of an oral appliance. The process shown is merely an example. Steps can be performed in a different order than the order shown. In some embodiments, not all steps may be performed, or a process may include additional steps.
[0155] At block 2102, the system can receive a model of a patient’s dental arch (e.g., mandibular arch). At block 2104, the system can detect the cementoenamel junction. At block 2106, the system can detect undercuts. At block 2108, the system can determine an insertion axis for the oral appliance. At block 2110, the system can generate an internal surface of the oral appliance. At block 2112, the system can generate an external surface of the oral appliance. At block 2114, the system can separate the posterior and anterior areas of the oral appliance. Blocks 2116 and 2118 can be carried out on the posterior areas. At block 2116, the system can detect support cusps. At block 2118, the system can determine a cutting plane. Block 2120 can be performed on the posterior area. At block 2120, the system can subtract a functionally generated surface from the posterior area, for example using Boolean subtraction. At block 2122, the system can perform smoothing. At block 2124, the system can output a model of the oral appliance.
[0156] While in the preceding description, blocks 2116, 2118, and 2120 were performed on the posterior area, one or more of these steps may also be applied to the anterior area. In some embodiments, applying these steps to both the posterior and anterior areas can help to eliminate or reduce interferences that may hinder mandibular movements.
[0157] FIG. 21 B is a flowchart that illustrates another example process according to some embodiments. The process shown in FIG. 21 B is broadly similar to the process depicted in FIG. 21 A. However, unlike the process of FIG. 21 A, the insertion axis can be determined prior to determining the undercuts. In some cases, determining undercuts and theinsertion axis can be an iterative process. For example, as described above, in some embodiments, the insertion axis can be varied and undercuts can be calculated each time the insertion axis is altered. In such an approach, the insertion axis can be varied to determine an insertion axis with desirable undercut characteristics.
[0158] After generating and outputting the model of the oral appliance, the model can be used for manufacturing an oral appliance, for example using molding, milling, 3D printing, or other manufacturing techniques.
[0159] The above discussion focuses primarily on the automated design of individual oral appliances. However, in some cases, a patient may wear oral appliances on both the mandibular and maxillary teeth simultaneously. For example, when using aligners to correct tooth placement, patients can wear aligners on both the maxillary and mandibular teeth simultaneously. The approaches described herein can be readily adapted to such cases. For example, as described above, the antagonist arch can be considered when designing exterior surfaces (e.g., exterior surfaces that face the teeth of the antagonist arch). In some embodiments, when a pair of oral appliances is to be designed, a system can be configured to consider interactions with the opposing oral appliance rather than the antagonist arch. For example, the shape, positioning, and so forth of the opposing oral appliance can be considered. As discussed above, in some embodiments, the thickness of an oral appliance can be variable within certain parameters (e.g., thin enough to fit comfortably in the mouth and to have sufficient flexibility to allow for relatively easy insertion and removal, thick enough to have sufficient rigidity to achieve treatment goals, and so forth). In some embodiments, the exterior surfaces of the paired arches can be covaried to simultaneously optimize both oral appliances of the oral appliance pair. For example, in some embodiments, both arches can be made thinner to make the oral appliance pair more comfortable, in some embodiments, one oral appliance can be made thinner in an area in order to accommodate the opposing oral appliance being thicker in a corresponding area.
[0160] In some cases, when designed a set of oral appliances (e.g., a set of aligners), a first aligner can be designed, and then a second aligner can be designed. For example, the first aligner can be a maxillary or mandibular aligner and the second aligner can be the other of a maxillary or mandibular aligner. In some embodiments, after designing the first aligner, the second aligner can be designed while considering the antagonist arch with the first aligner in place. In some embodiments, such a process can be iterative such that the first and second aligners can be modified to achieve desired properties for both aligners while allowing the wearer to close their mouth to a desired closure angle. In some embodiments,such an iterative design may not be used. For example, dental aligners are typically very thin and thus may not have a large impact on the wearer’s ability to close their mouth.
[0161] In an alternative approach, a plane can be determined and the two oral appliances can be designed while considering the plane. For example, the plane can define an outermost extend of the oral appliances (e.g., a plane at which the maxillary oral appliance and the mandibular oral appliance may come into contact with one another). The plane may consider, for example, a desired closure angle.
[0162] As described herein, there can be large number of factors to consider when designing an oral appliance. The particular factors to consider and their possible values can depend upon the specific type of oral appliance to be made. FIG. 22 is a table that illustrates Artificial Intelligence / Machine Learning Model Training
[0163] FIG. 23 depicts a flow chart for training an artificial intelligence or machine learning model according to some embodiments. The process 2300 can be run on a computing system. At block 2301 , the system can receive a dataset. The dataset can comprise a set of images, texture data,, 3D models, etc. In some cases, some or all of the images, texture data, 3D models, etc., included in the dataset can be annotated. For example, when training a model to identify the cementoenamel junction, some or all of the training data can be annotated to indicate the location of the cementoenamel junction. When training a model to segment the teeth, some or all of the training data can be annotated to indicate boundaries between teeth. When identifying support cusps, some of all of the training data can be annotated to indicate the locations of the support cusps. At block 2302, one or more transformations may be performed on the data. For example, data may require transformations to conform to expected input formats. For example, categorical data (e.g., tooth, gum, palate, floor, etc.) may be encoded in a particular manner. Nominal data may be encoded using one-hot encoding, binary encoding, feature hashing, or other suitable encoding methods. Ordinal data may be encoded using ordinal encoding, polynomial encoding, Helmert encoding, and so forth. Numerical data may be normalized, for example by scaling data to a maximum of 1 and a minimum of 0 or -1 . These are merely examples, and the skilled artisan will readily appreciate that other transformations are possible. At block 2303, the system may create, from the received dataset, training, tuning, and testing / validation datasets. The training dataset 2304 may be used during training to determine features for forming a predictive model. The tuning dataset 2305 may be used to select final model parameters and to prevent or correct overfitting that may occur during training with the training dataset 2304, as the trained model should be generally applicable to a broad spectrum of patients. Thetesting dataset 2306 may be used after training and tuning to evaluate the model. For example, the testing dataset 2306 may be used to check if the model is overfitted to the training dataset. The system, in training loop 2314, may train the model at block 2307 using the training dataset 2304. Training may be conducted in a supervised, unsupervised, or partially supervised manner. At 2308, the system may evaluate the model according to one or more evaluation criteria. For example, the evaluation may include determining how often the model accurately identifies the cementoenamel junction, the average deviation of the identified cementoenamel junction from the true cementoenamel junction, accuracy of tooth segmentation, accuracy of the support cusps, etc. For example, in some embodiments, criteria can include false negative rates, false positive rates, true negative rates, true positive rates, and so forth. For example, a false positive could be identifying a boundary between teeth that does not exist or identifying a support cusp that is not a true support cusp. A false negative could include, for example, not identifying a true boundary between teeth, not identifying a true support cusp, and so forth. At 2309, the system may determine if the model meets the one or more evaluation criteria. If the model fails evaluation, the system may, at 2310, tune the model using the tuning dataset 2305, repeating the training 2307 and evaluation 2308 until the model passes the evaluation at 2309. Once the model passes the evaluation at 2309, the system may exit the model training loop 2314. The testing dataset 2306 may be run through the trained model 2311 and, at block 2312, the system may evaluate the results. If the evaluation fails, at block 2313, the system may reenter training loop 2314 for additional training and tuning. If the model passes, the system may stop the training process, resulting in a trained model 2311. In some embodiments, the training process may be modified. For example, the system may not use a tuning dataset 2305. In some embodiments, the model may not use a testing dataset 2306.
[0164] FIG. 24 illustrates an example of training and using an AI / ML model according to some embodiments. The process depicted in FIG. 24 can be used for various purposes, such as identifying the cementoenamel junction, segmenting the teeth, determining support cusps, and so forth. Training data store 2402 can store data for training a model. For example, training data store 2402 can store 3D models of a patient’s teeth, gums, etc., 2D texture images, information about conditions the patient suffers from which could impact dental treatment, and so forth. For example, in some embodiments, it can be beneficial to know whether a patient has missing teeth, artificial teeth, crowns, and so forth. In some embodiments, a model can be trained using this information, which may lead to improved model outputs due to characteristics of different patient groups (e.g., patients with all teethintact, patients with one or more missing teeth, patients with one or more artificial teeth or implants, etc.). At block 2404, a system can be configured to prepare the training data if it was not previously prepared for use in training a model. As described briefly above, preparing the training data can include performing one or more normalization procedures, standardization procedures, and so forth. At block 2406, the system can extract features from the training data and, at block 2408, can train the model using the training data to produce model 2410. At block 2412, the system can evaluate the model to determine if it passes one or more criteria. At decision point 2414, if the model fails, the system can perform additional training. If, at decision point 2414, the model passes, the system can make available trained model 2416, which can be the model 2410 after training is complete.
[0165] The trained model 2416 can be used to evaluate a particular user. User data 2418 can relate to a specific user for whom the outputs of the trained model 2416 are desired. At block 2420, the system can prepare the data, for example as described above in relations to the stored training data. At block 2422, the system can extract features from the prepared user data. The system can be configured to feed the extracted features to the trained model 2416 to produce results 2424. The results 2424 can provide information about the cementoenamel junction, the locations of support cusps, segmentation of the teeth, and so forth.
[0166] In some embodiments, the user data 2418, the results 2424, and other information about the user (e.g., information about the user’s outcomes after using the oral appliance, information about whether the results were suitable for use in producing the oral appliance, etc.) can be used to train the model. At block 2426, the system can user prepare the user data 2418 and the results 2424 for use in training. Preparing the data can include, for example, anonymizing the data. For example, any information about the patient’s name, social security number, or other information that could personally identify the patient can be removed. In some embodiments, the system can store the prepared data in training data store 2402. In some embodiments, the prepared data can be stored, additionally or alternatively, in another database or data store. In some embodiments, the system can retrain the model periodically, continuously, or whenever an operator indicates to the system that the model should be retrained. Thus, in some embodiments, the trained model 2416 can evolve over time, which can result in, for example, improved segmentation, identification of the support cusps, identification of the cementoenamel junction, and so forth over time as the model is trained on additional data. While continuous training, periodic training, and so forth are anticipated, it will be appreciated that in some cases, such retraining may not be used or maybe used on a relatively infrequent basis. For example, healthcare industry regulatory requirements may limit the changes that can be made to a model that is used for patient care. Computer Systems
[0167] FIG. 25 is a block diagram depicting an embodiment of a computer hardware system configured to run software for implementing one or more embodiments disclosed herein. Unless contacts clearly dictates otherwise, references to computing systems 2520 may also refer to portable devices 2515.
[0168] In some embodiments, the systems, processes, and methods described herein are implemented using a computing system, such as the one illustrated in FIG. 25. The example computer system 2502 is in communication with one or more computing systems 2520 and / or one or more data sources 2522 via one or more networks 2518. While FIG. 25 illustrates an embodiment of a computing system 2502, it is recognized that the functionality provided for in the components and modules of computer system 2502 may be combined into fewer components and modules, or further separated into additional components and modules.
[0169] The computer system 2502 can comprise a module 2514 that carries out the functions, methods, acts, and / or processes described herein. The module 2514 is executed on the computer system 2502 by a central processing unit 2506 discussed further below.
[0170] In general, the word “module,” as used herein, refers to logic embodied in hardware or firmware or to a collection of software instructions, having entry and exit points. Modules are written in a program language, such as JAVA, C or C++, Python, or the like. Software modules may be compiled or linked into an executable program, installed in a dynamic link library, or may be written in an interpreted language such as BASIC, PERL, LUA, or Python. Software modules may be called from other modules or from themselves, and / or may be invoked in response to detected events or interruptions. Modules implemented in hardware include connected logic units such as gates and flip-flops, and / or may include programmable units, such as programmable gate arrays or processors.
[0171] Generally, the modules described herein refer to logical modules that may be combined with other modules or divided into sub-modules despite their physical organization or storage. The modules are executed by one or more computing systems and may be stored on or within any suitable computer readable medium or implemented in-whole or in-part within special designed hardware or firmware. Not all calculations, analysis, and / or optimization require the use of computer systems, though any of the above-describedmethods, calculations, processes, or analyses may be facilitated through the use of computers. Further, in some embodiments, process blocks described herein may be altered, rearranged, combined, and / or omitted.
[0172] The computer system 2502 includes one or more processing units (CPU) 2506, which may comprise a microprocessor. The computer system 2502 further includes a physical memory 2510, such as random-access memory (RAM) for temporary storage of information, a read only memory (ROM) for permanent storage of information, and a mass storage device 2504, such as a backing store, hard drive, rotating magnetic disks, solid state disks (SSD), flash memory, phase-change memory (PCM), 3D XPoint memory, diskette, or optical media storage device. Alternatively, the mass storage device may be implemented in an array of servers. Typically, the components of the computer system 2502 are connected to the computer using a standards-based bus system. The bus system can be implemented using various protocols, such as Peripheral Component Interconnect (PCI), Micro Channel, SCSI, Industrial Standard Architecture (ISA) and Extended ISA (EISA) architectures.
[0173] The computer system 2502 includes one or more input / output (I / O) devices and interfaces 2512, such as a keyboard, mouse, touch pad, and printer. The I / O devices and interfaces 2512 can include one or more display devices, such as a monitor, that allows the visual presentation of data to a user. More particularly, a display device provides for the presentation of GUIs as application software data, and multi-media presentations, for example. The I / O devices and interfaces 2512 can also provide a communications interface to various external devices. The computer system 2502 may comprise one or more multimedia devices 2508, such as speakers, video cards, graphics accelerators, and microphones, for example.
[0174] The computer system 2502 may run on a variety of computing devices, such as a server, a Windows server, a Structure Query Language server, a Unix Server, a personal computer, a laptop computer, and so forth. In other embodiments, the computer system 2502 may run on a cluster computer system, a mainframe computer system and / or other computing system suitable for controlling and / or communicating with large databases, performing high volume transaction processing, and generating reports from large databases. The computing system 2502 is generally controlled and coordinated by an operating system software, such as Windows XP, Windows Vista, Windows 7, Windows 8, Windows 10, Windows 11 , Windows Server, Unix, Linux (and its variants such as Debian, Linux Mint, Fedora, and Red Hat), SunOS, Solaris, Blackberry OS, z / OS, iOS, macOS, or other operating systems, including proprietary operating systems. Operating systems control and schedulecomputer processes for execution, perform memory management, provide file system, networking, and I / O services, and provide a user interface, such as a graphical user interface (GUI), among other things.
[0175] The computer system 2502 illustrated in FIG. 25 is coupled to a network 2518, such as a LAN, WAN, or the Internet via a communication link 2516 (wired, wireless, or a combination thereof). Network 2518 communicates with various computing devices and / or other electronic devices. Network 2518 is communicating with one or more computing systems 2520 and one or more data sources 2522. The module 2514 may access or may be accessed by computing systems 2520 and / or data sources 2522 through a web-enabled user access point. Connections may be a direct physical connection, a virtual connection, and other connection type. The web-enabled user access point may comprise a browser module that uses text, graphics, audio, video, and other media to present data and to allow interaction with data via the network 2518.
[0176] Access to the module 2514 of the computer system 2502 by computing systems 2520 and / or by data sources 2522 may be through a web-enabled user access point such as the computing systems’ 2520 or data source’s 2522 personal computer, cellular phone, smartphone, laptop, tablet computer, e-reader device, audio player, or another device capable of connecting to the network 2518. Such a device may have a browser module that is implemented as a module that uses text, graphics, audio, video, and other media to present data and to allow interaction with data via the network 2518.
[0177] The output module may be implemented as a combination of an all-points addressable display such as a cathode ray tube (CRT), a liquid crystal display (LCD), a plasma display, or other types and / or combinations of displays. The output module may be implemented to communicate with input devices 2512 and they also include software with the appropriate interfaces which allow a user to access data through the use of stylized screen elements, such as menus, windows, dialogue boxes, tool bars, and controls (for example, radio buttons, check boxes, sliding scales, and so forth). Furthermore, the output module may communicate with a set of input and output devices to receive signals from the user.
[0178] The input device(s) may comprise a keyboard, roller ball, pen and stylus, mouse, trackball, voice recognition system, or pre-designated switches or buttons. The output device(s) may comprise a speaker, a display screen, a printer, or a voice synthesizer. In addition, a touch screen may act as a hybrid input / output device. In another embodiment, a user may interact with the system more directly such as through a system terminal connectedto the score generator without communications over the Internet, a WAN, or LAN, or similar network.
[0179] In some embodiments, the system 2502 may comprise a physical or logical connection established between a remote microprocessor and a mainframe host computer for the express purpose of uploading, downloading, or viewing interactive data and databases on-line in real time. The remote microprocessor may be operated by an entity operating the computer system 2502, including the client server systems or the main server system, an / or may be operated by one or more of the data sources 2522 and / or one or more of the computing systems 2520. In some embodiments, terminal emulation software may be used on the microprocessor for participating in the micro-mainframe link.
[0180] In some embodiments, computing systems 2520 who are internal to an entity operating the computer system 2502 may access the module 2514 internally as an application or process run by the CPU 2506.
[0181] In some embodiments, one or more features of the systems, methods, and devices described herein can utilize a URL and / or cookies, for example for storing and / or transmitting data or user information. A Uniform Resource Locator (URL) can include a web address and / or a reference to a web resource that is stored on a database and / or a server. The URL can specify the location of the resource on a computer and / or a computer network. The URL can include a mechanism to retrieve the network resource. The source of the network resource can receive a URL, identify the location of the web resource, and transmit the web resource back to the requestor. A URL can be converted to an IP address, and a Domain Name System (DNS) can look up the URL and its corresponding IP address. URLs can be references to web pages, file transfers, emails, database accesses, and other applications. The URLs can include a sequence of characters that identify a path, domain name, a file extension, a host name, a query, a fragment, scheme, a protocol identifier, a port number, a username, a password, a flag, an object, a resource name and / or the like. The systems disclosed herein can generate, receive, transmit, apply, parse, serialize, render, and / or perform an action on a URL.
[0182] A cookie, also referred to as an HTTP cookie, a web cookie, an internet cookie, and a browser cookie, can include data sent from a website and / or stored on a user’s computer. This data can be stored by a user’s web browser while the user is browsing. The cookies can include useful information for websites to remember prior browsing information, such as a shopping cart on an online store, clicking of buttons, login information, and / or records of web pages or network resources visited in the past. Cookies can also includeinformation that the user enters, such as names, addresses, passwords, credit card information, etc. Cookies can also perform computer functions. For example, authentication cookies can be used by applications (for example, a web browser) to identify whether the user is already logged in (for example, to a web site). The cookie data can be encrypted to provide security for the consumer. Tracking cookies can be used to compile historical browsing histories of individuals. Systems disclosed herein can generate and use cookies to access data of an individual. Systems can also generate and use JSON web tokens to store authenticity information, HTTP authentication as authentication protocols, IP addresses to track session or identity information, URLs, and the like.
[0183] The computing system 2502 may include one or more internal and / or external data sources (for example, data sources 2522). In some embodiments, one or more of the data repositories and the data sources described above may be implemented using a relational database, such as Sybase, Oracle, CodeBase, DB2, PostgreSQL, and Microsoft® SQL Server as well as other types of databases such as, for example, a NoSQL database (for example, Couchbase, Cassandra, or MongoDB), a flat file database, an entity-relationship database, an object-oriented database (for example, InterSystems Cache), a cloud-based database (for example, Amazon RDS, Azure SQL, Microsoft Cosmos DB, Azure Database for MySQL, Azure Database for MariaDB, Azure Cache for Redis, Azure Managed Instance for Apache Cassandra, Google Bare Metal Solution for Oracle on Google Cloud, Google Cloud SQL, Google Cloud Spanner, Google Cloud Big Table, Google Firestore, Google Firebase Realtime Database, Google Memorystore, Google MongoDB Atlas, Amazon Aurora, Amazon DynamoDB, Amazon Redshift, Amazon ElastiCache, Amazon MemoryDB for Redis, Amazon DocumentDB, Amazon Keyspaces, Amazon Neptune, Amazon Timestream, or Amazon QLDB), a non-relational database, or a record-based database.
[0184] The computer system 2502 may also access one or more databases 2522. The databases 2522 may be stored in a database or data repository. The computer system 2502 may access the one or more databases 2522 through a network 2518 or may directly access the database or data repository through I / O devices and interfaces 2512. The data repository storing the one or more databases 2522 may reside within the computer system 2502.Additional Embodiments
[0185] In the foregoing specification, the systems and processes have been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broaderspirit and scope of the embodiments disclosed herein. The specification and drawings are, accordingly, to be regarded in an illustrative rather than restrictive sense.
[0186] Indeed, although the systems and processes have been disclosed in the context of certain embodiments and examples, it will be understood by those skilled in the art that the various embodiments of the systems and processes extend beyond the specifically disclosed embodiments to other alternative embodiments and / or uses of the systems and processes and obvious modifications and equivalents thereof. In addition, while several variations of the embodiments of the systems and processes have been shown and described in detail, other modifications, which are within the scope of this disclosure, will be readily apparent to those of skill in the art based upon this disclosure. It is also contemplated that various combinations or sub-combinations of the specific features and aspects of the embodiments may be made and still fall within the scope of the disclosure. It should be understood that various features and aspects of the disclosed embodiments can be combined with, or substituted for, one another in order to form varying modes of the embodiments of the disclosed systems and processes. Any methods disclosed herein need not be performed in the order recited. Thus, it is intended that the scope of the systems and processes herein disclosed should not be limited by the particular embodiments described above.
[0187] It will be appreciated that the systems and methods of the disclosure each have several innovative aspects, no single one of which is solely responsible or required for the desirable attributes disclosed herein. The various features and processes described above may be used independently of one another or may be combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of this disclosure.
[0188] Certain features that are described in this specification in the context of separate embodiments also may be implemented in combination in a single embodiment. Conversely, various features that are described in the context of a single embodiment also may be implemented in multiple embodiments separately or in any suitable sub-combination. Moreover, although features may be described above as acting in certain combinations and even initially claimed as such, one or more features from a claimed combination may in some cases be excised from the combination, and the claimed combination may be directed to a sub-combination or variation of a sub-combination. No single feature or group of features is necessary or indispensable to each and every embodiment.
[0189] It will also be appreciated that conditional language used herein, such as, among others, “can,” “could,” “might,” “may,” “for example,” and the like, unless specificallystated otherwise, or otherwise understood within the context as used, is generally intended to convey that certain embodiments include, while other embodiments do not include, certain features, elements and / or steps. Thus, such conditional language is not generally intended to imply that features, elements and / or steps are in any way required for one or more embodiments or that one or more embodiments necessarily include logic for deciding, with or without author input or prompting, whether these features, elements and / or steps are included or are to be performed in any particular embodiment. The terms “comprising,” “including,” “having,” and the like are synonymous and are used inclusively, in an open- ended fashion, and do not exclude additional elements, features, acts, operations, and so forth. In addition, the term “or” is used in its inclusive sense (and not in its exclusive sense) so that when used, for example, to connect a list of elements, the term “or” means one, some, or all of the elements in the list. In addition, the articles “a,” “an,” and “the” as used in this application and the appended claims are to be construed to mean “one or more” or “at least one” unless specified otherwise. Similarly, while operations may be depicted in the drawings in a particular order, it is to be recognized that such operations need not be performed in the particular order shown or in sequential order, or that all illustrated operations be performed, to achieve desirable results. Further, the drawings may schematically depict one or more example processes in the form of a flowchart. However, other operations that are not depicted may be incorporated in the example methods and processes that are schematically illustrated. For example, one or more additional operations may be performed before, after, simultaneously, or between any of the illustrated operations. Additionally, the operations may be rearranged or reordered in other embodiments. In certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the embodiments described above should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems may generally be integrated together in a single software product or packaged into multiple software products. Additionally, other embodiments are within the scope of the following claims. In some cases, the actions recited in the claims may be performed in a different order and still achieve desirable results.
[0190] Further, while the methods and devices described herein may be susceptible to various modifications and alternative forms, specific examples thereof have been shown in the drawings and are herein described in detail. It should be understood, however, that the embodiments are not to be limited to the particular forms or methods disclosed, but, to the contrary, the embodiments are to cover all modifications, equivalents,and alternatives falling within the spirit and scope of the various implementations described and the appended claims. Further, the disclosure herein of any particular feature, aspect, method, property, characteristic, quality, attribute, element, or the like in connection with an implementation or embodiment can be used in all other implementations or embodiments set forth herein. Any methods disclosed herein need not be performed in the order recited. The methods disclosed herein may include certain actions taken by a practitioner; however, the methods can also include any third-party instruction of those actions, either expressly or by implication. The ranges disclosed herein also encompass any and all overlap, sub-ranges, and combinations thereof. Language such as “up to,” “at least,” “greater than,” “less than,” “between,” and the like includes the number recited. Numbers preceded by a term such as “about” or “approximately” include the recited numbers and should be interpreted based on the circumstances (for example, as accurate as reasonably possible under the circumstances, for example ±5%, ±10%, ±15%, etc.). For example, “about 3.5 mm” includes “3.5 mm.” Phrases preceded by a term such as “substantially” include the recited phrase and should be interpreted based on the circumstances (for example, as much as reasonably possible under the circumstances). For example, “substantially constant” includes “constant.” Unless stated otherwise, all measurements are at standard conditions including temperature and pressure.
[0191] As used herein, a phrase referring to “at least one of” a list of items refers to any combination of those items, including single members. As an example, “at least one of: A, B, or C” is intended to cover: A, B, C, A and B, A and C, B and C, and A, B, and C. Conjunctive language such as the phrase “at least one of X, Y and Z,” unless specifically stated otherwise, is otherwise understood with the context as used in general to convey that an item, term, etc. may be at least one of X, Y or Z. Thus, such conjunctive language is not generally intended to imply that certain embodiments require at least one of X, at least one of Y, and at least one of Z to each be present. The headings provided herein, if any, are for convenience only and do not necessarily affect the scope or meaning of the devices and methods disclosed herein.
[0192] Accordingly, the claims are not intended to be limited to the embodiments shown herein but are to be accorded the widest scope consistent with this disclosure, the principles and the novel features disclosed herein.
Claims
Claims1 . A system for generating a model of an oral appliance, the system comprising: a computer readable storage medium having program instructions stored thereon; and one or more processors configured to execute the program instructions to cause the system to: receive a model of a dental arch of a patient; detect a cementoenamel junction associated with the dental arch; determine an insertion axis for an oral appliance configured for use with the dental arch; detect undercuts associated with the dental arch; generate internal and external surfaces for the oral appliance; perform smoothing on one or more of the internal or external surfaces; and output a model of the oral appliance.
2. The system according to claim 1 , wherein the one or more processors are further configured to execute the program instructions to cause the system to determine a posterior area and an anterior area of the dental arch and: for the posterior area, detect support cusps and determine a cutting plane; and for the anterior area, subtract a functionally generated surface from the posterior area.
3. The system according to any one of claims 1 and 2, wherein detecting undercuts associated with the dental arch occurs prior to determining the insertion axis for the oral appliance.
4. The system according to any one of claims 1 to 3, wherein: the one or more processors are further configured to execute the program instructions to cause the system to receive texture data associated with the dental arch of the patient, wherein the texture data comprises one or more images of the dental arch of the patient, and optionally wherein the texture data comprises color, grayscale, or infrared data, and optionally wherein the color data comprises more than one channel; and wherein the cementoenamel junction is determined based at least in part on the texture data.
5. The system according to claim 4, wherein the one or more processors are further configured to execute the program instructions to cause the system to detect the cementoenamel junction based on the texture data by distinguishing between teeth of the patient and gums of the patient in the texture data, optionally using one or more of binary masking, adaptive thresholding, Sobel filtering, Laplacian filtering, or Canny edge detection.
6. The system according to any one of claims 1 to 5, wherein the one or more processors are further configured to execute the program instructions to cause the system to detect undercuts associated with the dental arch by: determining a normal for each face of the model of the dental arch; and determining a sign of the dot product of the normal vector and an observation direction vector.
7. The system according to any one of claims 1 to 6, wherein the insertion axis is determined to provide a desired homogeneity of the undercuts, optionally, to maximize the homogeneity of the undercuts such that they are distributed on both the sides of the teeth.
8. The system according to any one of claims 1 to 7, wherein the one or more processors are further configured to execute the program instructions to determine the insertion axis by: computing, for each of a plurality of candidate axes, distances from the cementoenamel junction and the undercuts; determining a score for each of the plurality of candidate axes based on the distances; and wherein the candidate axis with the highest score is determined to be the insertion axis.
9. The system according to any one of claims 1 to 8, wherein the one or more processors are further configured to execute the program instructions to generate the internal surface based on the cementoenamel junction and the shape of the teeth as determined based on the model.
10. The system according to any one of claims 1 to 9, wherein the one or more processors are further configured to execute the program instructions to generate the internal surface using a convex hull algorithm.
11. The system according to any one of claims 1 to 10, wherein the one or more processors are further configured to execute the program instructions to segment teeth of the patient based on the model of the dental arch.
12. The system according to claim 11 , wherein segmenting the teeth can be based on a machine learning model.
13. The system according to any one of claims 10 or 11 , wherein the one or more processors are further configured to execute the program instructions to generate the internal surface by eroding the teeth from the model of the dental arch.
14. The system according to any one of claims 1 to 13, wherein the one or more processors are further configured to execute the program instructions to detect support cusps based on a machine learning model.
15. The system according to any one of claims 1 to 14, wherein the one or more processors are further configured to execute the program instructions to perform smoothing using Laplacian smoothing.
16. The system according to any one of claims 1 to 15, wherein the oral appliance comprises at least one of an occlusal splint, a neuromuscular relaxation splint, an aligner, a night guard, an anterior bite splint, a posterior bite splint, a dynamic assist orthosis, an anterior repositioning splint, a nocturnal lingual envelope, a mandibular advancement device, a mouth guard, a mandibular repositioning device, an occlusal pad, an occlusal stamp, a partial injection splint, a Kois deprogrammer, a snap-on smile, an equilibration splint, a balancing splint, an occlusal orthosis, a interocclusal device, a sport gutter, a sport splint, an athletic gutter, an athletic splint, a sport guard, a muscular relaxation flat splint, a Michigan splint, a stabilization splint, an anterior repositioning occlusal splint, a waking lingual envelope, a sleeping lingual envelope, an occlusal add-on, an equilibration guide, a preparation guide, an anterior deprogrammer, a lucia jig, or gingival cutting guide.