Reconstrução de Voxel Data no OrtogOnBlender

_images/Voxel_capa.jpg
  • Cicero Moraes 3D Designer, Arc-Team Brazil, Sinop-MT

  • Marcos Graf Cirurgião-Dentista, Bombinhas-SC

  • Rodrigo Dornelles Cirurgião Plástico, Núcleo de Plástica Avançada - NPA, São Paulo-SP

  • Everton da Rosa Cirurgião BMF, Hospital de Base, Brasília-DF

DOI

https://doi.org/10.6084/m9.figshare.13670134


O presente capítulo tem por objetivo apresentar a reconstrução de tomografias por voxel data a partir de arquivos DICOM via add-on OrtogOnBlender.

Importante

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

Introdução

Os arquivos DICOM fornecem ao usuário a possibilidade de visualizar estruturas internas com uma ampla gama de níveis permitindo em muitos casos, como na saúde humana, segmentar ou definir tecidos específicos a serem reconstruídos em 3D, como por exemplo, ossos, vias aéreas e tecido mole em geral.

O uso do formato DICOM no OrtogOnBlender se dá majoritariamente na reconstrução de malhas 3D que passarão por osteotomia (boolean) e simulação de deformação de tecido mole (rig).

O problema da reconstrução de malhas 3D mora justamente na limitação da região de interesse a ser reconstruída. Muitos usuários não compreendem como uma tomografia que lhes é apresentada com detalhes de vasos sanguíneos, raízes de dentes bem definidas e até cabelos não resultem em uma malha igualmente limpa e bem definida quando efetuado o processo de reconstrução.

_images/Voxel_compara.jpg

Comparação entre uma reconstrução de malha 3D (à esquerda) e o voxel (à direita).

Ao se comparar as reconstruções (Fig. 1) é possível, em um primeiro momento, atestar que a reconstrução de uma malha 3D (à esquerda) resulta em um modelo simplificado com a estrutura geral do tecido de interesse (mole, ossos e dentes) ao passo que o voxel (à direita) conta com um grande detalhamento dos tecidos, permitindo ao usuário visualizar detalhes dos músculos e da massa encefálica, por exemplo.

Grosso modo, comparar uma malha 3D a um voxel é como comparar uma impressão 3D monocromática a um holograma. A primeira é uma representação simplificada e sólida do original, o segundo tem mais detalhes, mas não é sólido, apesar de tridimensional.

O fato é que cada abordagem oferece vantagens e o usuário pode explorá-las da melhor forma possível.

A exemplo do que já acontece com o crânio composto, onde uma digitalização de arcada em alta resolução substitui a estrutura em mais baixa resolução advinda da tomografia, o usuário pode complementar o planejamento com os dados do voxel data em uma mesma cena ampliando as potencialidades do mesmo. Com o voxel é possível identificar detalhes de uma estrutura que podem não ser reconstruídas em uma malha 3D, como um vaso ou uma variação de densidade de tecido. Ao ter todo o conjunto de dados disponíveis o planejamento pode ser elevado a outro patamar de confiabilidade.

Como Funciona - Aspectos Gerais

O Blender 3D não oferece suporte nativo ao formato de arquivo DICOM, mas graças a flexibilidade no desenvolvimento, o OrtogOnBlender resolveu a limitação e passou a oferecer suporte tanto a visualização, quanto a reconstrução por malha 3D e voxel data [MdRD20].

_images/Voxel_explica.jpg

Voxel Data importado pelo OrtogOnBlender.

O funcionamento segue um princípio bem simples (Fig. 2), as fatias de um arquivo DICOM são convertidas em imagens (A), utilizando os dados contidos em cada um dos arquivos originais o algoritmo extrai a localização de cada uma das fatias posicionando-as no espaço tridimenisional, além de tratar as cores aplicando transparência (B). Por ser uma imagem cada fatia tem a espessura 0 (zero), mas pela sobreposição das várias camadas cria-se a ideia de volume (C), resultando na região de interesse (D).

Importante

O número de fatias é bastante elevado, geralmente na casa das centenas. No exemplo acima descrito foram utilizadas apenas algumas fatias (A, B), ocultando-se outras que se encontravam entre as mesma para evitar poluição visual.

_images/Voxel_axial.jpg

Fatias axiais.

Inicialmente a ferramenta de voxel fornecida pelo OrtogOnBlender permitia apenas a reconstrução das fatias do plano axial (Fig 3). Se o volume for visto pelo topo é possível visualizar a estrutura da peça (Top), o problema é que, por serem imagens sem espessura nada se vê se observado pela frente e pela direita (Front e Right). Para o exemplo aqui presente, foi necessário ativar o wireframe para que as fatias fossem visualizadas pela frente e lateral, caso contrário nada se veria na cena. No entanto, mesmo se tratando de um volume formado por planos sem espessura, ao se orbitar a peça ainda que levemente, é possível visualizar a estrutura tomografada (Ortho).

_images/Voxel_full.jpg

Fatias completas nos planos axial, coronal e sagital.

Para evitar a falta de informação em qualquer um dos planos de visualização foi implementado no algoritmo do OrtogOnBlender a geração dos demais planos, ou seja, o coronal e o sagital (Fig. 4). Se observados isoladamente cada um dos planos apresenta as mesmas falhas em pontos diferentes, mas quando todos eles são agrupados no mesmo espaço a peça reconstruída é visualizada completamente (FULL).

_images/Voxel_planos.jpg

Exemplo de renderização nos planos.

Diferentemente do Slicer [Sli] e outros softwares de visualização de arquivos DICOM, que criam pequenos cubos efetivamente volumétricos para a formação do voxel, o OrtogOnBlender gera o modelo pela intersecção das fatias. O resultado é suficientemente bom, de modo que a intersecção das fatias só é vista com o uso de um zoom de alto valor (Fig. 5).

_images/Voxel_mode.jpg

Modos de visualização do voxel.

Até a presente versão (2021-01-28) o usuário tem à sua disposição quatro configurações de visualização (Fig. 6):

  • Default: com todos os tecidos visíveis;

  • Bone: com apenas os ossos visíveis;

  • Muscle: com os ossos e os músculos visíveis

  • Skin: com pele mais densa e clara.

Importante

Os modos de visualização costumam funcionar muito bem em tomografias médicas (CT-Scan) e geralmente funcionam também em tomografias cone beam (CBCT), mas é possível que em alguns casos a apresentação não seja bem sucedida, principalmente nas tomografias cone beam, sendo necessária uma edição manual do shader [Foub]. Mais estudos serão necessários para a adequação do algoritmo ao modelo do tomógrafo.

_images/Voxel_AO.jpg

Voxel Data com e sem Ambient Occlusion (AO).

Há ainda a opção de ativar o Ambient Occlusion (AO) [Foua] para evidenciar a profundidade na visualização da malha (Fig. 7). Apesar de melhorar a questão da profundidade, nem sempre o AO é a melhor opção, seja pela confusão que pode causar em modelos com transperência, seja pela lentidão que pode ocorrer em alguns computadores com GPUs menos potentes.

_images/Voxel_plus_Voxel.jpg

Composição de voxel data com voxel data.

Por se tratar de um conjunto de planos com shaders próprios, é possível fazer composição de voxel data com voxel data utilizando configurações de material diferentes, cruzando com segmentação por cálculo booleano (Fig. 8).

_images/Voxel_boolean.jpg

Osteotomia efetuada por boolean.

É permitido ao usuário explorar as vantagens do voxel e da malha 3D (mesh) em uma mesma cena, um exemplo possível é isolar peças anatômicas como uma mandíbula (Fig. 9) e proceder com a osteotomia digital da mesma. A mandíbula do voxel data conta com mais dados estruturais do que a reconstruída em malha 3D, o que pode ser particularmente útil para identificar regiões críticas como aquelas compostas por densidades diferentes ou mesmo a identificação de vasos e outras partes. No caso da imagem de exemplo a malha em questão está oculta e serviu apenas para proceder com a booleana de intersecção.

_images/Voxel_compose.jpg

Exemplos de composição com o voxel data.

Outrossim, composições de voxel e malha são possíveis e podem gerar modelos úteis e didáticos, seja a junção da malha reconstruída com o voxel (Fig. 10, A) ou o voxel com fotogrametria (B, C) ou ainda uma junção da malha reconstruída a partir da tomografia com o voxel e uma fotogrametria (D). Se for bem estruturado o modelo final oferece ao usuário uma ampla gama de informações extraindo o melhor de cada abordagem.

A fotogrametria, ou seja, a digitalização de uma face em 3D a partir de fotografias é outro exemplo de abordagem com a vantagem da texturização ou coloração da estrutura, ainda que não conte com elementos internos como a tomografia. No entanto, é uma abordagem que vem a somar no planejamento ao passo que fornece um rosto mais compatível com a realidade, posto que as tomografias usadas no meio médico ainda não fornecem a textura (coloração) da pele, seja por reconstrução de malha ou por voxel data.

Como Funciona na Prática

_images/Voxel_gui.png

Interface do VOXEL-FULL SLICER.

  1. Na seção CT-Scan Reconstruction do OrtogOnBlender o usuário selecionará a opção VOXEL_FULL SLICER! (Fig. 11);

  2. Em CT-Scan Preparing é necessário clicar no ícone do diretório e escolher a pasta onde se encontram os arquivos DICOM. Em seguida clicar em Accept;

  3. Ao clicar em Organize o OrtogOnBlender vai varrer o diretório e os subdiretórios listando todos os arquivos DICOMs disponíveis;

  4. No terminal serão apresentados os estudos relacionados a tomografia em questão com os dados do nome do paciente, número de fatias e o nome do arquivo .txt relacionado ao grupo de fatias;

  5. O sistema escolherá o estudo com o maior número de fatias, mas essa escolha automática pode ser alterada, caso o usuário julgue necessário;

  6. Assim que o estudo for selecionado, basta clicar em Import DICOM Slices e a importação se fará, inicialmente com as fatias axiais e posteriormente com as fatias coronais e sagitais. Nesse ínterim a interface do Blender ficará inacessível (tratava), até que o processo seja finalizado.

Aviso

O usuário pode desabilitar a opção Decrease to 300! e assim reconstruir o volume com a matriz nas dimensões originais, no entanto, isso pode aumentar consideravelmente o tempo da reconstrução, bem como gerar travamento em computadores com GPUs menos pontentes.

Importante

O sistema de organização é o mesmo apresentado no capítulo Sistema de Reconstrução de Tomografia Computadorizada Baseado no Slicer 3D e no DicomToMesh, especificamente em Como Funciona. Em caso de dúvida é recomendado que o leitor consulte o capítulo citado.

Parte das ferramentas da seção View/Shader/Material foram abordadas no tópico anterior. O Ambient Occlusion vem desabilitado por padrão de modo a evitar lentidão em computadores com GPUs mais lentas.

O Use Scene World permite clarear o voxel data quando observado pela parte inferior. A ferramenta vem desabilitada por padrão, posto que ao ser acionado o background do 3D View passa a ser cinza-claro, o que pode causar desconforto visual para alguns usuários.

Logo abaixo estão as opções de shaders para visualizar os ossos (Bone), músculos (Muscle), pele (Skin) e retornar ao padrão (Default).

Caso o usuário opte por ver apenas uma fina fatia em cada plano, o add-on oferece a possibilidade de fazê-lo ao clicar no botão Prepare Planes!.

Testes e Resultados

Os autores selecionaram aleatoriamente 30 tomografias computadorizadas, de modo a testar uma amostra heterogênea e apresentar uma média geral do tempo necessário para a reconstrução em três sistemas operacionais diferentes. A configuração do notebook e dos sistemas operacionais utilizados estão presentes no capítulo intitulado Fotogrametria 3D - Desempenho nos Sistemas Operacionais: Windows, Linux e Mac OS X, mais precisamente na Descrição Técnica.

Em linhas gerais trata-se de um notebook com processador i7 de 1.80 GHz, 20 GB de memória RAM com armazenamento SSD SATA de 480 GB.

Para simular uma situação que é de praxe para a maioria dos usuários, os arquivos DICOM foram gravados em um HD externo e acessados via USB.

O teste foi feito em duas etapa, primeiramente levantou-se o tempo da organização dos arquivos e posteriormente o tempo da reconstrução dos mesmos em um objeto 3D. O fator final é uma junção dos dois valores.

_images/Voxel_grafico_512x300.png

Comparação em relação ao método padrão anterior (10 tomografias).

Em um primeiro momento foram utilizadas apenas 10 tomografias para a comparação de abordagens diferentes na reconstrução de voxel data.

As 10 tomografias separadas foram testadas na primeira ferramenta desenvolvida para a visualização pixels tomográficos, a VOXEL-FULL. Esse sistema utiliza a organização baseada em cópia de arquivos, o que já colocava a ferramenta em desvantagem, posto que em média essa etapa levou 101 segundos frente a média de 36 segundos necessária pelo outro sistema (VOXEL-FULL SLICER) baseado em varredura de diretórios (Fig. 12).

Aviso

Se tratam de dois sistemas distindos, o mais antigo nomeado de VOXEL-FULL e o mais novo nomeado de VOXEL-FULL SLICER. Os nomes parecidos podem eventualmente gerar confusão.

Na segunda parte do teste a ferramenta VOXEL-FULL levou em média 882 segundos para reconstruir a tomografia. Isso acontece porque a mesma utiliza a tomografia em suas dimensões originais e isso pode ser problemático em matrizes maiores de 512x512x512, gerando modelos que rodem muito lentamente em computadores com GPUs de baixo poder de processamento.

Inicialmente o sistema VOXEL-FULL SLICER havia sido programado para reduzir a tomografia, caso a matriz fosse maior do que 512x512x512. No entanto, mesmo após a redução, a órbita na visualização apresentava lentidão em muitos casos. Em face a essas dificuldades foram efetuados vários testes até que uma nova matriz, com resolução suficientemente satisfatória foi escolhida. O novo valor padronizado foi o de 300x300x300.

Em linhas gerais a redução da matriz não apenas repercutiu em uma melhor visualização em tempo real, como tornou o processo muito mais rápido. Comparando as matrizes, a de 512 levou em média 586 segundos para ser reconstruída ao passo que a de 300 levou 247. Ao final o processo todo, envolvendo organização + reconstrução resultou em: 612 segundos vs. 282 segundos.

Ao se comparar os processos do VOXEL-FULL versus o VOXEL-FULL SLICER (300) chegou-se a 882 segundos do primeiro, frente a 282 segundos, ou seja, o sistema baseado no Slicer é 3,13 vezes mais rápido que o anterior.

_images/Voxel_bug_plano.jpg

Reconstrução de voxel data com erro de rotação de eixo.

É importante deixar registrado que um dos motivos para a criação da ferramenta baseada no Slicer, além do tempo, eram problemas relacionados a reconstrução dos planos axial, sagital e coronal em rotações incompatíveis com a real posição dos mesmos (Fig. 13).

_images/Voxel_erro.png

Planilha de testes com reconstruções problemáticas em vermelho.

Das 10 tomografias escolhidas para os testes iniciais, o sistema anterior (VOXEL-FULL) apresentou problema de rotação em 7 deles (Fig. 14, células em vermelho), ao passo o novo sistema (VOXEL-FULL SLICER) reconstruiu todos os volumes sem apresentar o mesmo erro.

Definido o valor padrão da matriz e feita a comparação com a abordagem utilizada anteriormente, os testes se voltaram ao desempenho nos sistemas operacionais Linux, Windows e Mac OS X, agora utilizando as 30 tomografias.

_images/Voxel_grafico_todos.png

Comparação entre sistemas operaiconais diferentes (30 tomografias).

Resultado organização dos arquivos (Fig. 15):

  • 1º Mac OS X: 29 segundos.

  • 2º Linux: 44 segundos.

  • 3º Windows: 56 segundos.

Resultados da reconstrução 3D:

  • 1º Linux: 310 segundos.

  • 2º Windows 422 segundos.

  • 3º Mac OS X: 565 segundos.

Resultado final, juntando as etapas:

  • 1º Linux: 354 segundos (5m54s).

  • 2º Windows 478 segundos (7m58s).

  • 3º Mac OS X: 593 segundos (9m53s).

Conclusão

A nova ferramenta se mostrou funcional em 100% das reconstruções efetuadas, além de ser 3 vezes mais rápida que a abordagem utilizada anteriormente. No entanto, ainda que o processo tenha se mostrado mais célere que a opção anterior, o mesmo ainda é lento se compararmos com o tempo que os editores de DICOM como o Slicer levam para renderizar um modelo baseado em voxel data.

A grande vantagem dessa metodologia é que ela oferece ao usuário um objeto de cena que pode ser explorado de maneiras diversas e muitas vezes bem mais flexível do que aquelas oferecidas pelos editores do mercado, vide o exemplo da composição de voxel data, bem como a junção de várias abordagens em uma só cena (voxel+mesh+fotogrametria).

Agradecimentos

Agradecimentos ao Dr. Richard Gravalos e ao Dr. Davi Sandes Sobral, por cederem as suas tomografias ao estudo aqui apresentado.

Foua

Blender Foundation. Blender 2.91 manual - ambient occlusion. URL: https://docs.blender.org/manual/en/2.79/render/blender_render/world/ambient_occlusion.html.

Foub

Blender Foundation. Blender 2.91 manual - material. URL: https://docs.blender.org/manual/en/latest/render/materials/introduction.html.

MdRD20

Cicero Moraes, Everton da Rosa, and Rodrigo Dornelles. OrtogOnBlender - O que é e Aspectos Técnicos. Volume 1. Cicero André da Costa Moraes, 2020. ISBN 978-65-00-05349-4. p. 24-26.

Sli

Slicer. Slicer. URL: https://www.slicer.org/.