Redes neurais na produção de próteses

Substituir um dente por um implante ou instalar uma coroa é um procedimento doloroso e caro. Uma das partes mais difíceis da restauração é o design da prótese no sistema CAD, na qual os técnicos dentários estão envolvidos. Cada coroa é projetada individualmente para o paciente e sua mandíbula em 8 a 10 minutos. Ao mesmo tempo, cada técnico tem sua própria visão subjetiva do que é uma boa coroa dentária, e a avaliação da qualidade de uma mesma coroa para diferentes especialistas do mesmo nível pode variar de "bom" a "possível e melhor".


Portanto, não surpreende que em odontologia o objetivo fosse remover o fator humano e adicionar automação. Isso pode ser feito usando redes neurais. Agora, eles avançaram tanto que conseguem reconhecer objetos, encontrar criminosos na multidão, desenhar desenhos pelo esboço e substituir os rostos dos atores nos filmes, por exemplo, DiCaprio por Burunov no filme O Grande Gatsby. Eles também ajudam a lidar com os dentes e como aconteceu, Stanislav Shushkevich dirá.

Stanislav Shushkevich - trabalha no Adalisk Service. Este é o fornecedor do maior fabricante de próteses dos EUA. As tarefas do contratado incluem a automação da produção de coroas, pontes, implantes. Stanislav ensina redes neurais profundas. No Saint HighLoad ++ 2019, Stanislav fez uma apresentação na qual descreveu em detalhes e em detalhes como a empresa usa treinamento profundo para automatizar a classificação de dados de entrada, geração de projetos e automação de modelagem de coroas.

Este artigo é baseado na transcrição de seu relatório, a partir dele você aprenderá como aplicar aprendizagem profunda e geração de design na produção de próteses, como estabilizar a qualidade, automatizar várias etapas da produção usando redes neurais, reduzir gradualmente o fator humano e reduzir o tempo médio por várias vezes. que o técnico dental gasta em coroas e implantes.

Nota O grupo, no qual Stanislav trabalha, colabora com o Instituto Berkeley (EUA). Eles trabalharam juntos para desenvolver redes neurais profundas para automatizar o design de implantes dentários. De acordo com os resultados deste trabalho, os pesquisadores publicaram um artigo científico , mas o relatório é mais interessante.

Terminologia dentária


Para imergir você no curso dos assuntos, eu falarei sobre terminologia dentária. Uma pessoa tem 32 dentes, mas com mais frequência 28, porque os dentes do siso geralmente não crescem ou adoecem e são removidos. Existe uma numeração contínua de 1 a 32, mas é mais conveniente dividir a mandíbula em 4 quadrantes numerados de 8 dentes. Portanto, dizemos que uma pessoa tem 32 dentes - de 11 a 48. O primeiro dígito é o número do quadrante, o segundo é o número do dente no quadrante.


Esquema padrão de numeração de dentes.

Após a reflexão especular, os dentes do lado esquerdo da mandíbula são semelhantes aos da direita, mas os superiores não são semelhantes aos inferiores. Portanto, quando dizemos que precisamos gerar um dente, geralmente queremos dizer 16 dentes - 32 ao meio, apenas 16.

A forma dos dentes de uma pessoa não pode determinar o sexo. Portanto, quando as escavações encontram dentes, não está claro quem são eles: homens ou mulheres. Ao mesmo tempo, pode-se entender pelas mandíbulas do cavalo se é uma égua ou um cavalo - o cavalo tem presas, mas a égua não. Tais fatos "dentais" sempre me divertem.

O coto do 36º dente está marcado em azul - o dente doente foi serrado, o coto permaneceu. Em inglês, o toco de dente é chamado de "morrer". A borda do toco é destacada em vermelho, é chamada de "margem". Quando o dentista coloca a coroa no dente, é importante que a borda da coroa quase coincida com a margem, com uma margem para "cola"; caso contrário, haverá um passo feio.


Escaneamento tridimensional da impressão da mandíbula inferior.

Para nós, o técnico fez um modelo 3D de uma linda coroa.



Sulcos no topo - anatomia da coroa. Eles estão localizados não aleatoriamente, mas pelo número típico de dentes. Pode ser descrito por um longo tempo, mas existe uma anatomia primária, uma cruz ortodôntica secundária.

O antagonista da mandíbula é adequado por cima e, se o dente for superior, a mandíbula é antagonista por baixo. A direção ascendente, chamada de direção oclusal , também é importante para nós. Quando um “instantâneo oclusal de um dente” aparece no texto, significa simplesmente um instantâneo de cima.

Coroas de viagem


Como fazem as coroas dentárias? Aqueles que se colocam coroas dentárias representam aproximadamente. Vou contar o resto do esquema geral.

Dentista - Técnico em Odontologia - Dentista. Você vem ao dentista, abre a boca, ele diz conserto. Lixa um dente e dá uma mordida no prato. Parece plasticina em um substrato - uma impressão da mandíbula superior e inferior permanece nela. O dentista envia esse molde ao laboratório para o técnico em odontologia.

Um técnico dental senta-se em um laboratório e nunca se comunica com pacientes reais. Ele constrói modelos de dentes em um sistema CAD / CAM em um computador. A partir do modelo 3D acabado do dente, ele faz uma restauração real e a envia de volta ao dentista. Além disso, o dentista já está instalando a restauração no local.
Nossa aplicação de energia está no centro desse esquema.
Dentista - Técnico em Odontologia + ML - Dentista . Agora, o técnico em odontologia trabalha em um programa semelhante ao AutoCAD. Mas, idealmente, ele deve fazer isso: um estojo vem na forma de um molde, um técnico o escaneia e recebe uma proposta pronta para a coroa. Nosso grupo ML trabalha com técnicos de prótese dentária e, ao longo dos anos, coletou 5 milhões de casos e 150 TB de dados que estão na Amazônia - há muito por onde escolher.

O técnico leva 10 minutos para preparar uma imagem 3D da coroa, enquanto pensa em muitos parâmetros:

  • forma natural;
  • antagonista;
  • contatos apertados;
  • linha de margem;
  • segmentação de mandíbula;
  • anatomia profunda;
  • direções;
  • arco;
  • preenchimento de papéis e outros.

Parâmetros


A naturalidade da forma . Esta é a primeira coisa que um técnico em odontologia pensa - para mim esse é o momento mais misterioso. Quando mostro a técnica de dois dentes e ele diz qual é bom, pergunto por que ele decidiu:

"Eu não sei." Só vejo que esse dente é natural, mas não é.
- Existe algum critério formal? Um sistema de design automatizado precisa de métricas formais.
"Não conheço métricas formais." Só vejo que este é um dente bom, e este é ruim.

Isso é chamado de "forma natural".

Ao mesmo tempo, o técnico cuida adicionalmente de que a coroa não se cruze com o antagonista e fique bem na "borda" do tronco, sobre o contato estreito com os vizinhos, defina direções e segure a mandíbula.

Existem várias boas soluções para qualquer caso. Diferentes técnicas para a mesma mandíbula criarão vários dentes bons.

Por que não tornar mais fácil: pegue uma coroa de dente comum, "brinque" com a forma do algoritmo geométrico e insira-a na mandíbula? Essa tarefa geométrica é simples na imaginação, mas na prática não é tão simples.

Variabilidade . Na figura abaixo estão três imagens de coroas.

O primeiro à esquerda é o dente humano perfeito. Em média, a diferença entre o antagonista e o coto é tão pequena que a coroa é achatada. A distância entre esse dente e o vizinho à esquerda era grande o suficiente, mas a coroa precisava tocar no dente vizinho, de modo que um afluxo apareceu à esquerda. Na figura certa, tudo parece normal, mas a linha da “borda” do toco não é um círculo, mas uma figura espacial complexa. Para métodos geométricos, tudo isso é complicado devido à grande variabilidade das coroas.

Atenção aos detalhes . Outro detalhe importante é o tamanho característico dos recursos simulados. O tamanho do 36º dente (da parte inferior da mandíbula inferior) é de aproximadamente 8 mm e 200 mícrons é o tamanho apenas da anatomia. Isso significa que, se for necessária anatomia normal, é necessária uma precisão de modelo de pelo menos 100 mícrons. É cortado aproximadamente com uma precisão de 20 mícrons. Dividimos 100 mícrons em 8 mm - obtemos uma precisão de cerca de 1%.

Tudo isso cria um problema - o técnico gasta muito tempo com muitos fatores. Decidimos simplificar seu trabalho e aumentar a eficiência - mais coroas por unidade de tempo. Tentamos várias opções e escolhemos redes neurais, o que simplificou o trabalho do técnico.

Métodos de solução


CAD / CAM . Cada empresa "odontológica" cria seu próprio sistema. Glidewell Dental, Invisalign, Sirona - todos têm ou estão desenvolvendo seus próprios sistemas CAD / CAM. Os sistemas se parecem com AutoCAD ou KOMPAS-3D: você tem um objeto padrão, pode puxar, acariciar e girá-lo. Agora, os técnicos trabalham dessa maneira e gastam 10 minutos para produzir uma coroa normal.

ML - funções harmônicas. Essa é outra maneira - o aprendizado de máquina relativamente simples. Por exemplo, se você observar a coroa de cima, ela parecerá um círculo com ranhuras e poderá tentar decompô-la em funções harmônicas. Mas tentamos - com nossas condições de precisão, isso não funciona.

Portanto, no final, nos voltamos para redes profundas para gerar objetos tridimensionais. Vou contar duas histórias relacionadas à nossa escolha. O primeiro é propedêutico . Esta é uma história educacional ou de treinamento sobre a segmentação da mandíbula. O segundo é sobre a geração da coroa .

Segmentação da mandíbula


A segmentação da mandíbula é a coloração de cada dente e gengiva com sua própria cor (por exemplo, em uma visão oclusal).



A segmentação é importante. Por exemplo, a mandíbula veio na forma de um modelo 3D e nele um toco de dente de serra. Para que o programa entenda onde colocar o dente, ele deve pelo menos ser posicionado em relação ao coto. Nesse caso, uma pessoa geralmente se senta e, com um mouse, clica nela e em seus vizinhos, e só então o programa entende onde colocar o dente. Com a segmentação automática, tudo seria muito mais interessante - indicaria automaticamente onde colocar o dente.
Portanto, decidimos manchar nossos dentes usando redes neurais.
O treinamento em rede neural requer dados. Existem conjuntos de dados abertos para segmentar rostos, poses de pessoas, cartas - as pessoas gostam de participar de conferências e compartilhar sucessos no treinamento entre si. Mas é difícil encontrar um conjunto de dados para a segmentação dos dentes.

Existem empresas que possuem conjuntos de dados com dentes já segmentados. Mas eles, é claro, não os vendem ou os distribuem. Este é o know-how e o grande valor de cada empresa.

Felizmente, tínhamos um algoritmo geométrico de Watershed , que discutirei mais adiante. Ele pode segmentar, mas com uma eficiência de 30% - segmentação normal em um em cada três casos. Segmentamos o algoritmo com 15 mil casos e depois filtramos manualmente. Após a filtragem, restaram 5 mil bons casos nos quais treinamos a SegNet.

Nota SegNet é a rede padrão para segmentação. Uma rede específica não é tão importante. É importante o que fazer, em que sequência e onde obter os dados.


É assim que é a segmentação da mandíbula com 12 dentes.

Tudo parece estar bem - cores bonitas e diferentes, os dentes praticamente não “vazam”. Mas é pouco útil segmentar apenas os casos que já aprendemos a segmentar geometricamente. Gostaríamos de aprender a segmentar todo o espaço de fase. No caso de uma forte correlação entre o algoritmo de rede geométrico e o neural, a rede basicamente segmentará apenas os casos que já estão bem segmentados.

Portanto, a principal questão é: existe uma correlação entre o que a Watershed e a SegNet estão fazendo? Para responder a essa pergunta, você precisa saber como esses algoritmos funcionam.

Como funcionam a bacia hidrográfica e a SegNet


A bacia hidrográfica trabalha em uma superfície 3D - esses são "vales" separados por sulcos com grande curvatura espacial. Quando nos movemos em uma superfície 3D, em alguns lugares há uma curva acentuada, por exemplo, onde dois dentes acasalam ou um dente entra na gengiva. Nesses lugares, surgem "cumes". A bacia hidrográfica "derrama água" e cobre os vales, mas não atravessa os "cumes".

O algoritmo não funciona bem onde a curvatura espacial é interrompida. Por exemplo, existem dois dentes com uma tangente comum. Eles foram escaneados para que dois dentes passassem suavemente um pelo outro. O algoritmo pintará dois dentes com uma cor.

SegNet funciona como qualquer rede segmentada. Ele sabe o que pode ser obtido aproximadamente dentro - uma imagem segmentada geralmente se parece com 14 círculos localizados em um arco e ao redor da gengiva. A SegNet é propensa a erros: quando os círculos têm uma forma irregular, o paciente não tem 14 dentes, mas 12 ou o dente sai do arco - o arco no qual os dentes estão localizados. A imagem mostra apenas 12 dentes, foi difícil, mas o algoritmo fez isso.

Parece que Watershed e SegNet não se correlacionam e tudo é relativamente normal.

Subtotais


A otimização é necessária para o usuário final . Poderíamos gastar muito tempo com antecedência para nos livrarmos da correlação, pensarmos e agirmos. Mas mesmo sem isso, a SegNet, ao treinar em casos selecionados, forneceu cerca de 90% das segmentações corretas - uma rede de 9 de 10 segmentos de mandíbulas perfeitamente.

O trabalho manual ajuda muito. Você descobrirá seus dados e selecionará o que precisa.

Passamos para o prato principal.

Geração Crown


Para gerar a coroa, escolhemos este esquema: tomamos a vista oclusal e dela um mapa monocromático de profundidades - mapa de profundidades.


Coroa com anatomia profunda (cruz) e com anatomia secundária.

Fontes de dados


A primeira fonte de dados são dentes naturais . Existem muitos moldes das mandíbulas, agora sabemos como segmentá-las: cortamos dentes naturais e treinamos neles.

Nós os pegamos, mas acabou mal. Dentes naturais são muito variados . Dentes humanos comuns não são muito bonitos, mesmo entre os jovens. Eu gostaria que a coroa fosse melhor.

A segunda fonte de dados são coroas prontas . Já temos 5 milhões de casos de 150 TB. Eles são armazenados na nuvem da Amazon. Dos 5 milhões de casos, selecionamos aqueles que concluíram as técnicas e treinamos nelas. Mas também não deu certo. Analisamos cuidadosamente nosso conjunto de treinamento e descobrimos que de metade a dois terços das coroas acabadas podem ser realizadas melhor. Isso preocupava principalmente a profundidade da anatomia das coroas acabadas - os sulcos não eram suficientemente expressos.

Essa foi uma descoberta desagradável, porque levamos os resultados de especialistas que deveriam ser emulados. Mas já sabíamos o que fazer nesses casos.

Pegamos 10 mil casos e os dividimos manualmente em bons e ruins. Recebeu 5 mil bens nos quais você pode aprender. Mas, experimentalmente, sabíamos que para o treinamento são necessários de 10 a 15 mil casos bons. Para obtê-los, você precisa separar manualmente 30 mil casos por dente - isso é demais. Por isso, treinamos uma rede auxiliar simples que mostrava dentes e separava os bons dos ruins.



A figura mostra que os três dentes superiores têm uma anatomia profunda - a cruz é claramente visível e nas depressões inferiores. No último (mais à esquerda), não existe anatomia. O técnico "lambeu" esta coroa para que a anatomia desaparecesse.

Com a ajuda de uma rede auxiliar, podemos filtrar volumes muito grandes e receber de 10 a 20 mil casos por dente.

Detalhes técnicos da geração


Multas. A primeira coisa que me ocorreu foi pegar a rede geradora, mostrar a imagem superior da mandíbula com um toco de dente, exigir que ela desenhasse a inferior e impor uma fina L1. Mas a teoria diz que não vai funcionar, e é por isso.


A mandíbula com matriz acima está com um dente serrado, no meio é um antagonista e abaixo está a coroa, que deve ser criada como resultado da rede.

Já dissemos que existem muitas boas soluções para a mesma entrada. Se você apenas impuser um L1 fino, multará a rede pelo fato de que não foi possível adivinhar a imagem da coroa na cabeça do técnico no momento em que ele a projetou. Ele poderia fazer uma coroa, ou ele poderia fazer outra, também boa. Não é necessária multa por outra boa coroa.
A penalidade "nua" de L1 é uma má idéia.
Discriminador É uma boa ideia treinar um discriminador que diga "Bom" para todas as coroas boas e "Ruim" para coroas ruins. Ele levará em conta a superfície complexa das boas coroas (superfície no espaço das coroas). Além disso, o GAN esmaga o ruído de alta frequência.

Nossa perda é assim: Loss = D_GAN + L1 + AntagonistIntersectionPenalty .

D_GAN - leva em consideração a superfície complexa de possíveis boas decisões. AntagonistIntersectionPenalty adicionado para que o dente não se cruze com o antagonista.

É importante que L1 apareça de repente. Você acabou de ler que deve estragar alguma coisa, mas se você adicioná-lo de maneira limitada, não estraga. O motivo é que o GAN é bastante instável durante o treinamento, e L1 relata que o dente, em qualquer caso, parece uma mancha branca no meio do quadro. Na fase inicial do treinamento, ele se estabiliza - tudo converge melhor, parece suave e arrumado.

Nota técnica. Lutamos por um longo tempo, tentando treinar uma rede para todos os dentes de trás ou uma rede para alguns dentes. Mas chegamos à conclusão de que você precisa treinar sua rede para cada dente, para cada pequeno pedaço de dados localizado. Temos essa oportunidade.
Um dente - uma rede.
Isso é importante - esse é o seu compromisso entre a estabilidade da solução e os recursos utilizados. Se você gastar 200 MB extras de memória de vídeo, (normalmente) nada acontecerá. Mas você manterá uma rede separada para cada dente e treinará-a conforme necessário.

Subtotais


Novamente usamos redes auxiliares e trabalho manual :

  • ordenados à mão, dividiram 10 mil casos em “bons e ruins”;
  • nos resultados da classificação manual, estudamos a rede auxiliar;
  • Casos não marcados peneirados em massa.

Viva, entramos em produção!


Depois de tudo o que fizemos, entramos em produção. Essa não é uma produção real - o grupo de Pesquisa e produção, mas cria 100 coroas por dia.

Nota No momento da publicação do artigo, as redes geradoras já estavam incluídas neste produto .

O grupo trabalha desde maio - vários milhares de coroas foram feitas por GANs. Um técnico pressiona um botão e uma imagem da coroa é gerada em 20 segundos. O técnico verifica a exatidão do formulário, geralmente aperta os contatos e o envia para uma bebida.

Temos um ganho substancial no tempo. A coroa é preparada em 8 a 10 minutos e com o envolvimento do GAN - em 4 minutos. O GAN cobre 80% dos casos - se o técnico não gostar do que o GAN sugeriu, ele modela a coroa com as mãos e passa 8 minutos.

As lições


Otimização para o usuário final . No processo, é útil pensar em medidas, métricas, função de perda e correlações. Mas você fez tudo certo se trouxe o trabalho ao fim e obteve o resultado esperado.

Uso de redes auxiliares.

Trabalho manual. Existe um ditado em ML: " Conheça seus detalhes". Usando trabalho manual, você descobrirá o que está em seus dados. O trabalho manual geralmente é recompensado porque você “alimenta” sua rede exatamente com o que precisa.

Equilibre "qualidade - recursos" . Se possível, mude para a qualidade. Não seja ganancioso - adicione quantas redes você precisar.

Não muito longe é a próxima conferência Saint HighLoad ++ . Nos dias 6 e 7 de abril em São Petersburgo, definitivamente ouviremos exemplos do uso de redes neurais e aprendizado de máquina em produção complexa e, é claro, maneiras de obter alto desempenho. Se você deseja apenas compartilhar essa experiência - envie um relatório , há muito pouco tempo antes do prazo para a Chamada de Trabalhos. Ou siga os anúncios de relatórios que estamos prestes a aprovar o programa na lista de e-mails para decidir a tempo de participar da conferência.

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


All Articles