RĂ©seaux de neurones dans la production de prothĂšses dentaires

Le remplacement d'une dent par un implant ou l'installation d'une couronne est une procĂ©dure douloureuse et coĂ»teuse. L'une des parties les plus difficiles de la restauration est la conception de la prothĂšse dans le systĂšme de CAO, dans laquelle les techniciens dentaires sont engagĂ©s. Chaque couronne est conçue individuellement pour le patient et sa mĂąchoire en 8 Ă  10 minutes. Dans le mĂȘme temps, chaque technicien a sa propre vision subjective de ce qu'est une bonne couronne dentaire, et l'Ă©valuation de la qualitĂ© d'une seule et mĂȘme couronne pour diffĂ©rents spĂ©cialistes du mĂȘme niveau peut varier de «bonne» Ă  «possible et meilleure».


Par consĂ©quent, il n'est pas surprenant qu'en dentisterie, l'objectif Ă©tait de supprimer le facteur humain et d'ajouter l'automatisation. Cela peut ĂȘtre fait en utilisant des rĂ©seaux de neurones. Ils ont tellement avancĂ© qu'ils peuvent reconnaĂźtre des objets, trouver des criminels dans la foule, dessiner des images par croquis et remplacer les visages des acteurs dans des films, par exemple DiCaprio par Burunov dans le film The Great Gatsby. Ils aident Ă©galement Ă  faire face aux dents, et comment cela s'est passĂ©, Stanislav Shushkevich le dira.

Stanislav Shushkevich - travaille chez Adalisk Service. Il s'agit de l'entrepreneur du plus grand fabricant amĂ©ricain de prothĂšses dentaires. Les tĂąches de l'entrepreneur comprennent l'automatisation de la production de couronnes, bridges, implants. Stanislav enseigne les rĂ©seaux de neurones profonds. À Saint HighLoad ++ 2019, Stanislav a fait une prĂ©sentation dans laquelle il a dĂ©crit en dĂ©tail et en dĂ©tail comment l'entreprise utilise une formation approfondie pour automatiser la classification des donnĂ©es d'entrĂ©e, la gĂ©nĂ©ration de conception et l'automatisation de la modĂ©lisation des couronnes.

Cet article est basé sur la transcription de son rapport, vous en apprendrez comment appliquer l'apprentissage profond et la génération de conception dans la production de prothÚses dentaires, comment stabiliser la qualité, automatiser les différentes étapes de la production à l'aide de réseaux de neurones, réduire progressivement le facteur humain et réduire le temps moyen de plusieurs fois. que le prothésiste dentaire dépense sur les couronnes et les implants.

Remarque Le groupe, dans lequel travaille Stanislav, collabore avec le Berkeley Institute (USA). Ils ont travaillé ensemble pour développer des réseaux de neurones profonds afin d'automatiser la conception d'implants dentaires. Selon les résultats de ces travaux, les chercheurs ont publié un article scientifique , mais le rapport est plus intéressant.

Terminologie dentaire


Pour vous plonger dans le cours des choses, je vais vous parler de la terminologie dentaire. Une personne a 32 dents, mais plus souvent 28, car les dents de sagesse ne poussent pas souvent ou ne tombent pas malades et sont enlevées. Il existe une numérotation continue de 1 à 32, mais il est plus pratique de diviser la mùchoire en 4 quadrants numérotés de 8 dents. Par conséquent, nous disons qu'une personne a 32 dents - de 11 à 48. Le premier chiffre est le numéro du quadrant, le second est le numéro de la dent dans le quadrant.


Schéma de numérotation des dents standard.

AprÚs réflexion spéculaire, les dents du cÎté gauche de la mùchoire sont similaires aux dents de droite, mais les dents supérieures ne sont pas similaires aux dents inférieures. Par conséquent, lorsque nous disons que nous devons générer une dent, nous entendons généralement 16 dents - 32 en deux, seulement 16.

La forme des dents d'une personne ne peut pas dĂ©terminer le sexe. Par consĂ©quent, lorsque les fouilles trouvent des dents, il n'est pas clair de qui il s'agit: hommes ou femmes. En mĂȘme temps, on peut comprendre Ă  partir des mĂąchoires du cheval s'il s'agit d'une jument ou d'un cheval - le cheval a des crocs, mais pas la jument. Ces faits «dentaires» m'amusent toujours.

Le moignon de la 36e dent est marqué en bleu - la dent malade a été sciée, le moignon est resté. En anglais, le moignon dentaire est appelé "die". Le bord du moignon est surligné en rouge, il est appelé "marge". Lorsque le dentiste met la couronne sur la dent, il est important que le bord de la couronne coïncide presque avec la marge, avec une marge pour la «colle», sinon il y aura une étape laide.


Scan tridimensionnel de l'empreinte de la mùchoire inférieure.

Pour nous, le technicien a réalisé un modÚle 3D d'une belle couronne.



Rainures sur le dessus - anatomie de la couronne. Ils ne sont pas localisĂ©s au hasard, mais par leur nombre de dents typique. Elle peut ĂȘtre dĂ©crite depuis longtemps, mais il existe une anatomie primaire, une croix orthodontique secondaire.

L'antagoniste de la mùchoire convient par le haut, et si la dent est supérieure, la mùchoire est l'antagoniste par le bas. La direction ascendante, appelée direction occlusale , est également importante pour nous. Lorsqu'un «instantané occlusal d'une dent» apparaßt dans le texte, cela signifie simplement un instantané d'en haut.

Couronnes de voyage


Comment fonctionnent les couronnes dentaires? Ceux qui se fixent des couronnes dentaires représentent grosso modo. Je vais raconter le reste du schéma général.

Dentiste - Technicien dentaire - Dentiste. Vous venez chez le dentiste, ouvrez la bouche, dit-il, réparez. Lime une dent et mord la plaque. Il ressemble à de la pùte à modeler sur un substrat - une empreinte de la mùchoire supérieure et inférieure y reste. Le dentiste envoie ce plùtre au laboratoire au technicien dentaire.

Un technicien dentaire est assis dans un laboratoire et ne communique jamais avec de vrais patients. Il construit des modÚles de dents dans un systÚme CAD / CAM sur un ordinateur. A partir du modÚle 3D fini de la dent, il réalise une véritable restauration et la renvoie au dentiste. De plus, le dentiste installe déjà la restauration en place.
Notre application du pouvoir est au centre de ce schéma.
Dentiste - Technicien dentaire + ML - Dentiste . Maintenant, le prothĂ©siste dentaire travaille dans un programme similaire Ă  AutoCAD. Mais idĂ©alement, il devrait le faire: un boĂźtier se prĂ©sente sous la forme d'un moule, un technicien le scanne et reçoit une proposition prĂȘte pour la couronne. Notre groupe ML travaille avec des prothĂ©sistes dentaires et a collectĂ© en quelques annĂ©es 5 millions de cas et 150 To de donnĂ©es sur Amazon - il y a beaucoup de choix.

Le technicien prend 10 minutes pour préparer une image 3D de la couronne, alors qu'il réfléchit à de nombreux paramÚtres:

  • forme naturelle;
  • antagoniste;
  • contacts Ă©troits;
  • ligne de marge;
  • segmentation des mĂąchoires;
  • anatomie profonde;
  • les directions;
  • arc;
  • remplir des papiers et autres.

ParamĂštres


Le naturel de la forme . C'est la premiÚre chose à laquelle un prothésiste dentaire pense - c'est pour moi le moment le plus mystérieux. Quand je montre la technique de deux dents et qu'il dit laquelle est bonne, je demande pourquoi il a décidé ainsi:

"Je ne sais pas." Je vois juste que c'est une dent naturelle, mais ce n'est pas le cas.
- Y a-t-il des critÚres formels? Un systÚme de conception automatisé a besoin de mesures formelles.
"Je ne connais aucune métrique formelle." Je vois juste que c'est une bonne dent, et celle-ci est mauvaise.

C'est ce qu'on appelle la «forme naturelle».

Dans le mĂȘme temps, le technicien veille en outre Ă  ce que la couronne ne croise pas avec l'antagoniste et se trouve bien sur le "bord" du moignon, Ă  propos d'un contact Ă©troit avec les voisins, dĂ©finit les directions et segmente la mĂąchoire.

Il existe plusieurs bonnes solutions pour chaque cas. DiffĂ©rentes techniques pour la mĂȘme mĂąchoire crĂ©eront plusieurs bonnes dents diffĂ©rentes.

Pourquoi ne pas vous faciliter la tùche: prenez une couronne dentaire réguliÚre, jouez avec la forme de l'algorithme géométrique et insérez-la dans la mùchoire? Cette tùche géométrique est simple en imagination, mais en pratique ce n'est pas si simple.

Variabilité . Dans l'image ci-dessous, trois images de couronnes.

La premiÚre à gauche est la dent humaine parfaite. En moyenne, l'écart entre l'antagoniste et le moignon dentaire est si petit que la couronne est aplatie. La distance entre cette dent et le voisin de gauche était suffisamment grande, mais la couronne devait toucher la dent voisine, donc un afflux est apparu sur la gauche. Dans la figure de droite, tout semble normal, mais la ligne du «bord» du moignon n'est pas un cercle, mais une figure spatiale complexe. Pour les méthodes géométriques, tout cela est compliqué en raison de la grande variabilité des couronnes.

Souci du détail . Un autre détail important est la taille caractéristique des entités simulées. La taille de la 36e dent (du bas de la mùchoire inférieure) est d'environ 8 mm, et 200 microns est la taille de l'anatomie uniquement. Cela signifie que si une anatomie normale est nécessaire, une précision du modÚle d'au moins 100 microns est requise. Il est coupé approximativement avec une précision de 20 microns. Nous divisons 100 microns en 8 mm - nous obtenons une précision d'environ 1%.

Tout cela crée un problÚme - le technicien passe beaucoup de temps sur de nombreux facteurs. Nous avons décidé de simplifier son travail et d'augmenter son efficacité - plus de couronnes par unité de temps. Nous avons essayé plusieurs options et choisi des réseaux de neurones qui ont simplifié le travail du technicien.

MĂ©thodes de solution


CAD / CAM . Chaque entreprise «dentaire» crée son propre systÚme. Glidewell Dental, Invisalign, Sirona - tous ont ou développent leurs propres systÚmes CAD / CAM. Les systÚmes ressemblent à AutoCAD ou KOMPAS-3D: vous avez un objet standard, vous pouvez le tirer, le caresser, le faire pivoter. Maintenant, les techniciens travaillent de cette façon et passent 10 minutes pour produire une couronne normale.

ML - fonctions harmoniques. C'est une autre façon - l'apprentissage automatique relativement simple. Par exemple, si vous regardez la couronne d'en haut, elle ressemblera à un cercle avec des rainures, puis vous pourrez essayer de la décomposer en fonctions harmoniques. Mais nous avons essayé - avec nos conditions de précision, cela ne fonctionne pas.

Par conséquent, nous nous sommes finalement tournés vers les réseaux profonds pour générer des objets en trois dimensions. Je vais vous raconter deux histoires liées à notre choix. Le premier est propédeutique . Il s'agit d'une formation ou d'une histoire éducative sur la segmentation des mùchoires. La seconde concerne la génération de couronnes .

Segmentation des mĂąchoires


La segmentation de la mĂąchoire est la coloration de chaque dent et gencive avec sa propre couleur (par exemple, dans une vue occlusale).



La segmentation est importante. Par exemple, la mĂąchoire est venue sous la forme d'un modĂšle 3D, et sur elle un moignon de dent sciĂ©. Pour que le programme comprenne oĂč placer la dent, elle doit au moins ĂȘtre positionnĂ©e par rapport au moignon. Dans ce cas, une personne s'assoit gĂ©nĂ©ralement et avec une souris clique dessus et ses voisins, et alors seulement le programme comprend oĂč mettre la dent. Avec une segmentation automatique, tout serait beaucoup plus intĂ©ressant - cela indiquerait automatiquement oĂč placer la dent.
Par conséquent, nous avons décidé de colorer nos dents en utilisant des réseaux de neurones.
La formation au réseau neuronal nécessite des données. Il existe des ensembles de données ouverts pour segmenter les visages, les poses des gens, les lettres - les gens aiment assister à des conférences et partager les succÚs de leur formation. Mais trouver un ensemble de données pour la segmentation des dents est difficile.

Il existe des entreprises qui ont des ensembles de données avec des dents déjà segmentées. Mais, bien sûr, ils ne les vendent pas ou ne les donnent pas. C'est le savoir-faire et la grande valeur de chaque entreprise.

Heureusement, nous avions un algorithme géométrique Watershed , dont je parlerai plus tard. Il peut segmenter, mais avec une efficacité de 30% - segmentation normale dans un cas sur trois. Nous avons segmenté l'algorithme avec 15 000 cas, puis filtré manuellement. AprÚs filtrage, il restait 5 000 bons cas sur lesquels nous avons formé SegNet.

Remarque SegNet est le rĂ©seau standard pour la segmentation. Un rĂ©seau particulier n'est pas si important. Il est important de savoir quoi faire, dans quel ordre et oĂč obtenir les donnĂ©es.


Voici Ă  quoi ressemble la segmentation de la mĂąchoire avec 12 dents.

Tout semble aller bien - différentes belles couleurs, les dents ne «fuient» pratiquement pas. Mais il est peu utile de segmenter uniquement les cas que nous avons déjà appris à segmenter géométriquement. Nous aimerions apprendre à segmenter tout l'espace des phases. Dans le cas d'une forte corrélation entre l'algorithme géométrique et l'algorithme de réseau neuronal, le réseau ne segmentera fondamentalement bien que les cas déjà bien segmentés.

La question principale est donc: existe-t-il une corrélation entre ce que font Watershed et SegNet? Pour répondre à cette question, vous devez savoir comment fonctionnent ces algorithmes.

Comment fonctionnent les bassins versants et SegNet


Le bassin versant fonctionne sur une surface 3D - ce sont des «vallĂ©es» sĂ©parĂ©es par des crĂȘtes avec une grande courbure spatiale. Lorsque nous nous dĂ©plaçons sur une surface 3D, Ă  certains endroits, il y a un virage serrĂ©, par exemple, oĂč deux dents s'accouplent ou une dent entre dans la gencive. À ces endroits, des «crĂȘtes» apparaissent. Le bassin versant "verse de l'eau" et il recouvre les vallĂ©es, mais ne traverse pas les "crĂȘtes".

L'algorithme ne fonctionne pas bien lorsque la courbure spatiale est rompue. Par exemple, il y a deux dents avec une tangente commune. Ils ont été scannés de façon à ce que deux dents se croisent en douceur. L'algorithme peindra deux dents d'une seule couleur.

SegNet fonctionne comme n'importe quel rĂ©seau segmentĂ©. Il sait ce qui peut ĂȘtre approximativement obtenu Ă  l'intĂ©rieur - une image segmentĂ©e ressemble gĂ©nĂ©ralement Ă  14 cercles situĂ©s dans un arc et autour de la gencive. SegNet est sujet Ă  des erreurs: lorsque les cercles sont de forme irrĂ©guliĂšre, le patient n'a pas 14 dents, mais 12 ou la dent tombe de l'arc - l'arc sur lequel les dents sont situĂ©es. La photo montre seulement 12 dents, c'Ă©tait difficile, mais l'algorithme l'a fait.

Il semble que Watershed et SegNet ne soient pas en corrélation, et tout est relativement normal.

Sous-totaux


L'optimisation est requise pour l'utilisateur final . Nous pourrions passer beaucoup de temps Ă  l'avance pour nous dĂ©barrasser de la corrĂ©lation, y rĂ©flĂ©chir, agir. Mais mĂȘme sans cela, SegNet, lors de la formation sur des cas sĂ©lectionnĂ©s, a donnĂ© environ 90% des segmentations correctes - un rĂ©seau de 9 segments de mĂąchoires sur 10 parfaitement.

Le travail manuel aide beaucoup. Vous découvrirez vos données et sélectionnez ce dont vous avez besoin.

Nous passons au plat principal.

Génération de la couronne


Pour générer la couronne, nous avons choisi ce schéma: nous prenons la vue occlusale et de là une carte monochrome des profondeurs - carte des profondeurs.


Couronne Ă  anatomie profonde (croix) et Ă  anatomie secondaire.

Sources de données


La premiÚre source de données est les dents naturelles . Les mùchoires sont nombreuses, nous savons maintenant comment les segmenter: nous découpons des dents naturelles et nous nous entraßnons sur elles.

Nous les avons pris, mais ça s'est mal passĂ©. Les dents naturelles sont trop variĂ©es . Les dents humaines ordinaires ne sont pas trĂšs belles, mĂȘme chez les jeunes. J'aimerais que la couronne soit plus belle.

La deuxiĂšme source de donnĂ©es est constituĂ©e de couronnes prĂȘtes Ă  l'emploi . Nous avons dĂ©jĂ  5 millions de cas de 150 TB. Ils sont stockĂ©s dans le cloud Amazon. Sur les 5 millions de cas, nous sĂ©lectionnons ceux qui ont terminĂ© les techniques et nous les formons. Mais cela n'a pas fonctionnĂ© non plus. Nous avons soigneusement examinĂ© notre ensemble d'entraĂźnement et constatĂ© que de la moitiĂ© aux deux tiers des couronnes finies peuvent ĂȘtre mieux faites. Cela concernait principalement la profondeur de l'anatomie sur les couronnes finies - les rainures n'Ă©taient pas suffisamment exprimĂ©es.

Ce fut une dĂ©couverte dĂ©sagrĂ©able, car nous avons pris les rĂ©sultats de spĂ©cialistes qui devraient ĂȘtre Ă©mulĂ©s. Mais nous savions dĂ©jĂ  quoi faire dans de tels cas.

Nous avons pris 10 000 cas et les avons décomposés manuellement en bons et mauvais. Reçu 5 000 bons sur lesquels vous pouvez apprendre. Mais expérimentalement, nous savions que pour la formation, il fallait de 10 à 15 mille bons cas. Pour les obtenir, vous devez trier manuellement 30 000 cas par dent - c'est trop. Par conséquent, nous avons formé un réseau auxiliaire simple qui montrait des dents et séparait le bon du mauvais.



La figure montre que les trois dents supérieures ont une anatomie profonde - la croix est clairement visible, et sur les dépressions inférieures. Sur le dernier (le plus à gauche), il n'y a aucune anatomie. Le technicien a «léché» cette couronne pour que l'anatomie disparaisse.

À l'aide d'un rĂ©seau auxiliaire, nous pouvons filtrer de trĂšs gros volumes et recevoir 10 Ă  20 000 cas par dent.

Détails techniques de génération


Amendes. La premiÚre chose qui m'est venue à l'esprit était de prendre le réseau générateur, de lui montrer l'image supérieure de la mùchoire avec un moignon de dent, de lui demander de dessiner le plus bas et d'imposer une fine L1. Mais la théorie dit que cela ne fonctionnera pas, et c'est pourquoi.


La mĂąchoire avec la matrice au-dessus est avec une dent sciĂ©e, au milieu c'est un antagoniste, et la couronne en dessous, qui devrait ĂȘtre crĂ©Ă©e Ă  la suite du rĂ©seau.

Nous avons dĂ©jĂ  dit qu'il existe de nombreuses bonnes solutions pour la mĂȘme entrĂ©e. Si vous venez d'imposer une fine L1, alors vous allez affiner le rĂ©seau pour le fait qu'il ne pouvait pas deviner l'image de la couronne dans la tĂȘte du technicien au moment oĂč il l'a conçue. Il pourrait faire une telle couronne, ou il pourrait en faire une autre, aussi bonne. Une amende pour une autre bonne couronne n'est pas nĂ©cessaire.
La pénalité «nue» de L1 est une mauvaise idée.
Discriminateur C'est une bonne idée de former un discriminateur qui dit "Bon" à toutes les bonnes couronnes et "Mauvais" aux mauvaises couronnes. Il tiendra compte de la surface complexe de bonnes couronnes (surface dans l'espace des couronnes). De plus, le GAN, en fin de compte, écrase le bruit haute fréquence.

Notre perte ressemble Ă  ceci: Loss = D_GAN + L1 + AntagonistIntersectionPenalty .

D_GAN - prend en compte la surface complexe de possibles bonnes décisions. AntagonistIntersectionPenalty ajoutée afin que la dent ne croise pas avec l'antagoniste.

Il est important que L1 apparaisse soudainement. Vous venez de lire qu'il devrait gùcher quelque chose, mais si vous l'ajoutez de maniÚre limitée, il ne gùte pas. La raison en est que le GAN est assez instable pendant l'entraßnement, et L1 rapporte que la dent ressemble de toute façon à une tache blanche au milieu du cadre. Au stade initial de l'entraßnement, il se stabilise - tout converge mieux, semble lisse et net.

Note technique. Nous nous sommes battus pendant longtemps, essayant de former un filet pour toutes les dents du dos ou un filet pour quelques dents. Mais nous sommes arrivés à la conclusion que vous devez former votre réseau pour chaque dent, pour chaque petite donnée localisée. Nous avons une telle opportunité.
Une dent - un réseau.
C'est important - c'est votre compromis entre la stabilité de la solution et les ressources utilisées. Si vous dépensez 200 Mo de mémoire vidéo supplémentaires, alors (généralement) rien ne se passera. Mais vous garderez un réseau distinct pour chaque dent et vous l'entraßnerez au besoin.

Sous-totaux


Nous avons de nouveau utilisé les réseaux auxiliaires et le travail manuel :

  • triĂ©s Ă  la main, ont divisĂ© 10 000 cas en «bons et mauvais»;
  • sur les rĂ©sultats du tri manuel, nous avons Ă©tudiĂ© le rĂ©seau auxiliaire;
  • cas non marquĂ©s en vrac.

Hourra, nous sommes entrés en production!


AprÚs tout ce que nous avons fait, nous sommes entrés en production. Ce n'est pas tout à fait une vraie production - le groupe Recherche & Production, mais cela crée 100 couronnes par jour.

Remarque Au moment de la publication de l'article, les réseaux générateurs sont déjà inclus dans ce produit .

Le groupe travaille depuis mai - plusieurs milliers de couronnes ont été fabriquées par des GAN. Un technicien appuie sur un bouton et une image de la couronne est générée en 20 secondes. Le technicien vérifie l'exactitude du formulaire, resserre généralement les contacts et l'envoie à un verre.

Nous avons obtenu un gain de temps substantiel. La couronne est préparée en 8-10 minutes, et avec la participation du GAN - en 4 minutes. Le GAN couvre 80% des cas - si le technicien n'aime pas ce que le GAN a suggéré, il modÚle la couronne avec ses mains et passe 8 minutes.

Les leçons


Optimisation pour l'utilisateur final . Dans le processus, il est utile de penser aux mesures, aux métriques, à la fonction de perte et aux corrélations. Mais vous avez tout fait correctement si vous avez terminé le travail et obtenu le résultat escompté.

Utilisation de réseaux auxiliaires.

Travail manuel. Il y a un dicton dans ML: " Connaissez vos détails." Grùce au travail manuel, vous découvrirez ce qu'il y a dans vos données. Le travail manuel est généralement récompensé parce que vous «alimentez» votre réseau avec exactement ce dont vous avez besoin.

Équilibre «qualitĂ© - ressources» . Si possible, optez pour la qualitĂ©. Ne soyez pas gourmand - ajoutez autant de rĂ©seaux que nĂ©cessaire.

Non loin se trouve la prochaine conférence Saint HighLoad ++ . Les 6 et 7 avril à Saint-Pétersbourg, nous entendrons certainement des exemples d'utilisation de réseaux de neurones et d'apprentissage automatique dans une production complexe et, bien sûr, des moyens d'atteindre des performances élevées. Si vous souhaitez simplement partager cette expérience - plutÎt soumettre un rapport , il reste trÚs peu de temps avant la date limite de l'appel à communications. Ou suivez les annonces de rapports que nous sommes sur le point de commencer à approuver le programme dans la liste de diffusion afin de décider à temps de participer à la conférence.

Source: https://habr.com/ru/post/fr486028/


All Articles