Segmentação Automática dos Dentes com o MeshSegNet e o OrtogOnBlender

Cicero Moraes
3D Designer, Arc-Team Brazil, Sinop-MT

Issam Dakir
Cirurgião Dentista, Marrocos

ISBN: 978-65-00-29233-6

_images/SegmentaDentes_1.jpg

O presente capítulo tem por objetivo apresentar o sistema de segmentação automática dos dentes, baseado em ferramentas de código aberto.

Atenção

Este material utiliza a seguinte licença Creative Commons: Atribuição 4.0 Internacional (CC BY 4.0).

Introdução

O OrtogOnBlender foi desenvolvido originalmente para o estudo de planejamento de cirurgias ortognáticas, mas com o passar do tempo e o acúmulo de conhecimento por parte dos usuários, houve uma série de adaptações da ferramenta para outros fins como a rinoplastia, a reconstrução facial forense, a confecção de próteses faciais, as cirurgias de reconstruções faciais e a ortodontia.

Por contar com uma base de usuários majoritariamente composta por cirurgiões dentistas, uma das demandas mais solicitadas são as de segmentação dos dentes para estudos de setups e afins. É sabido que a atividade de segmentação pode consumir um tempo considerável quando efetuada manualmente, dada a complexidade estrutural de uma arcada. Foi justamente por isso, que estudos acerca de segmentação automática, ao menos parcial foram iniciadas no grupo de usuários e desenvolvedores.

Como quase todas as ferramentas presentes no OrtogOnBlender, a solução em segmentação deveria ser de código aberto e multiplataforma. Depois de muita pesquisa e estudos, descobriu-se a suíte MeshSegNet [A10] [A11] que se adequava a todos os parâmetros pretendidos. O funcionamento dos comandos utiliza inteligência artificial que reconhece cada estrutura de dente presente no modelo 3D, baseado em dezenas de digitalizações tridimensionais que alimentaram o aprendizado do algoritmo.

Os autores estudaram o passo-a-passo disponível na documentação oficial e adequaram as ferramentas para que rodassem no Linux, no Windows e no Mac OS X. Em seguida foi desenvolvida uma interface gráfica disponível na aba OthersOnBlender para facilitar o acesso por parte dos usuários. A adptação da ferramenta a situações tão distintas contou com o auxílio do desenvolvedor (@Tai-Hsien) do MeshSegNet que orientou e ajustou pequenos trechos do código, permitindo que o mesmo se fizesse funcional de modo multiplataforma.

Como Funciona - Conceito

O script funciona da seguinte forma, o modelo proveniente de uma digitalização intraoral é importado ao Blender. Uma vez selecionado, seja a arcada superior ou inferior, o modelo é exportado como STL, utilizando uma programação em Python.

_images/SegmentaDentes_2.png

Funcionamento básico da integração do MeshSegNet com o Blender

Em seguida a malha passar por uma análise em passos no MeshSegNet, onde os dentes são segmentados e o resultado da computação é um arquivo VTK pigmentado com cores diferentes para cada dente segmentado. A estrutura do arquivo VTK é muito ampla e rica em definições e o Blender conta com poucos scripts que lêem esse formato. Nenhum deles importava a malha com pigmentação, de modo que um importador foi desenvolvido e adicionado ao OrtogOnBlender em linguagem Python, para que a arcada segmentada pudesse ser importada novamente ao Blender (Fig. 1).

Como Funciona - Na Prática

Aviso

O segmentador dos dentes não funciona na versão 2.80 do Blender. O usuário que desejar testá-lo terá que fazê-lo na versão 2.91.

_images/SegmentaDente_importa.png

Digitalização intraoral importada

Inicialmente é necessário importar o modelo (Fig. 2) utilizando o comando File -> Import e selecionando o formado desejado. Parte considerável dos usuários trabalha majoritariamente com os formatos STL e PLY.

_images/SegmentaDente_UI.png

Interface do segmentador dos dentes

A interface do comando é muito simples, basta selecionar a arcada desejada e clicar sobre o botão que indica a estrutura. Neste caso, como se trata da parte superior, basta clicar em Maxilla (Fig. 3).

_images/SegmentaDente_gera.png

Saída dos comandos no terminal

O processo de segmentação poderá ser acompanhado no terminal com as saídas de comandos (Fig. 4). Se tudo der certo será impressa no terminal uma mensagem com o tempo total do processo em segundos, minutos e algumas informações acerca do computador utilizado, como a memória RAM, o modelo do processador e o sistema operacional.

_images/SegmentaDente_gerado.png

Modelo segmentado

Pouco tempo depois o processo é finalizado resultando em um modelo pigmentado (Fig. 5).

_images/SegmentaDente_vertices.png

Vertex Groups

A segmentação resultante separou as estruturas reconhecidas em Vertex Groups nomeados segundo a ordem de geração, não compatíveis com os números dos dentes (Fig. 6).

_images/SegmentaDente_seleciona.png

Seleção por Vertex Groups

Caso o usuário deseje selecionar um grupo específico basta entrar em Edit Mode, clicar sobre o nome do Vertex Group e em seguida clicar em Select (Fig. 7).

Teste de Desempenho

Para avaliar o funcionamento da ferramentas em sistemas operacionais diferentes, foram efetuados testes de desempenho. Estes foram rodados em um mesmo notebook contendo três sistemais operacionais diferentes (Windows, Linux e Mac OS X). Uma descrição detalhada da abordagem tomada para o teste no mesmo computador pode ser lida no capítulo Fotogrametria 3D - Desempenho nos Sistemas Operacionais: Windows, Linux e Mac OS X [A22]. Basicamente trata-se de um notebook contendo um processador i7-8565U com 20 GB de RAM.

Duas malhas correspondentes as arcada superior e inferior foram selecionadas. Executaram-se 5 testes em cada uma das malhas e o tempo em segundos foi armazenado em uma planilha, de modo a gerar uma média de tempo em cada sistema operacional.

Tempo de Segmentação em Segundos

Arch

Windows

Mac OS X

Linux

Upper #1

54

63

75

Upper #2

45

51

74

Upper #3

47

51

74

Upper #4

44

50

74

Upper #5

43

51

73

Lower #1

50

51

77

Lower #2

43

51

74

Lower #3

43

51

74

Lower #4

44

72

74

Lower #5

40

51

75

Average

45

52

74

O único sistema que não apresentou grande variação nos tempos foi o Linux. No Windows e no Mac OS X alguns dos valores foram bem diferentes da média, mas isso não influenciou significativamente o resultado final.

_images/SegmentaDentes_Graf.png

Desempenho final em cada sistema operacional

O Windows apresentou o melhor desempenho (45 segundos), seguido bem de perto pelo Mac OS X (52 segundos). O Linux foi claramente mais lento dos que os demais (74 segundos) (Fig. 8).

Conclusão

A ferramenta de segmentação dos dentes não tem como objetivo separar as estruturas com acurácia total, mas tornar o processo mais simples e rápido para o usuário. É possível que essa solução forneça uma espécie de “pré-segmentação”, resultando em um corte prévio das regiões desejadas e deste modo, oferecendo ao usuário a possibilidade de ajustar as linhas, retirando partes desnecessárias ou complementando com novos cortes.

Os autores buscaram integrar o MeshSegNet ao OrtogOnBlender e fazê-lo funcional nos três sistemas operacionais mais populares do mercado de computadores. A etapa mostrou-se bem sucedida e o próximo é buscar a adequação da ferramenta frente às necessidades dos usuários.