Reconstrução de Voxel Data no OrtogOnBlender¶
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 |
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.
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].
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.
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).
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).
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).
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.
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.
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).
É 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.
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¶
Na seção CT-Scan Reconstruction do OrtogOnBlender o usuário selecionará a opção VOXEL_FULL SLICER! (Fig. 11);
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;
Ao clicar em Organize o OrtogOnBlender vai varrer o diretório e os subdiretórios listando todos os arquivos DICOMs disponíveis;
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;
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;
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.
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.
É 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).
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.
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/.