You are on page 1of 5

Renderização de Dados Volumétricos por Software

ANDRÉ LUIZ MIRANDA DA ROSA

EPUSP - Escola Politécnica da USP – Engenharia Elétrica – LSI (Laboratório de Sistemas Integráveis)
Avenida Prof. Luciano Gualberto, Travessa 3, nº 380 – CEP – 05508-900 – São Paulo/SP, Brasil.
amiranda@lsi.usp.br

Resumo. A utilização de redes de computadores, como a Internet, permite construir aplicações baseadas em
CSCW, na qual usuários remotos colaboram entre si na execução de determindas tarefas, como a discussão de
diagnósticos médicos através da segunda opinião médica. Este projeto tem o objetivo de desenvolver um
módulo de visualização colaborativa de dados volumétricos, adquiridos por exemplo por tomografia
computadorizada, para futura integração com a Aplicação Colaborativa de Segunda Opinião Médica em atual
desenvolvimento pelo núcleo de Telemedicina do LSI-USP. Como a plataforma colaborativa utiliza a
linguagem de programação multiplataforma Java, o módulo foi implementado na mesma linguagem para que
possa ocorrer a integração. Foram utilizadas bibliotecas gráficas baseadas em OpenGL para Java, permitindo
assim a renderização do volume por software e evitando assim a necessidade de aquisição de placas gráficas
próprias para renderização volumétrica, como a VolumePro.

1. Introdução obter um melhor entendimento da estrutura, ou falta da


mesma, contida nos dados volumétricos.
Médicos especialistas diagnosticam muitas doenças De acordo com Dachille [4] e Manssour et al. [5],
olhando para pessoas doentes ou para uma parte doente de utilizando dados volumétricos, usuários cientistas podem
seus corpos. Mas a informação visual pode ser olhar dentro dos objetos para descobrir e analisar
incrementada com técnicas de imageamento, comumente características antes inacessíveis ou desconhecidas.
baseadas em procedimentos não-invasivos. Tomografias
Este método permite, por meio de voxels
computadorizadas, por exemplo, mostram o interior do
(elementos de volume) a interpretação de dados de grande
corpo de um paciente como um série de planos individuais
magnitude que outra técnica não permitiria. Vários métodos
de imagens em fatias. Para o diagnóstico, os médicos
geram imagens calculando uma cor e opacidade para cada
colocam essas imagens em quadros luminosos e tentam
voxel, e juntando as contribuições dos voxels projetando um
reconstruir, num difícil ato mental, a cena tridimentional.
mesmo pixel no plano da imagem [6], permitindo um
Este procedimento carrega um alto risco de erros. A
controle minucioso do detalhe que se deseja observar.
informação adquirida destas imagens depende fortemente
da experiência e treinamento do médico especialista e do Várias técnicas de visualização com capacidade de
seu conhecimento do objeto de atual investigação [1]. “ver através” dos volumes e de gerar imagens em tempo
real têm sido desenvolvidas. Algumas conhecidas são Ray
Visualização computacional consiste na apresentação
Casting [2, 6] e Shear-Warp [7], entre outras.
da informação por meio de recursos gráficos e interativos da
computação gráfica, de forma a facilitar o entendimento de A técnica do Ray Casting permite a visualização
conjuntos de dados numéricos de alta complexidade. Uma de dados volumétricos através de renderização direta, onde
família de técnicas de visualização importante que tem gerado diversos raios são emitidos do observador em direção ao
muito interesse no âmbito da pesquisa é a visualização volume. Conforme cada raio atravessa o volume, cálculos
volumétrica [2]. são efetuados para a definição da cor. Neste método, a
intensidade da transparência é de fundamental importância,
A utilização de algoritmos de visualização
pois apresenta o efeito de visualizar diversas estruturas
volumétrica tem se mostrado uma ótima técnica de
internas ao mesmo tempo.
exploração de dados, principalmente dados não estruturados
sobre modelos geométricos [3]. O algoritmo de Shear-Warp baseia-se na fatoração
da matriz de visualização, o que permite o processamento
1.1. Visualização Volumétrica paralelo de fatia por fatia. A visualização é obtida através
Visualização volumétrica é um método de da aplicação de um cisalhamento (shearing) nas fatias do
projeção de um conjunto de dados multidimensionais em volume, transformando os dados para um sistema de
um plano de visualização bidimensional, com o intuito de se
coordenadas intermediário cuja principal característica é os segmentação a partir de áreas pré-marcadas sobre as fatias,
raios de visão são perpendiculares às fatias do volume. permitindo assim a extração de medidas para auxílio no
futuro diagnóstico.
Com a utilização da técnica de visualização
volumétrica, uma sequência de fatias de imagens,
2. Objetivo
adquiridas por exemplo por por tomografia
computadorizada, pode ser visualizada de forma
tridimensional e em qualquer ângulo de visualização, O objetivo deste projeto é desenvolver um módulo de
melhorando assim a capacidade de intrepretação das renderização volumétrica de dados por software, para
imagens como um todo e auxiliando médicos especialistas futura integração com a Aplicação Colaborativa de
e até mesmo estudantes novatos a interpretar melhor o Segunda Opinião Médica em atual desenvolvimento pelo
exame e assim a reduzir os erros de diagnóstico. núcleo de Telemedicina do LSI-USP.
O modelo de renderização baseado em software se
1.2. Volume Pro torna mais viável a muitos tipos de aplicações pois não é
necessária a aquisição de placas gráficas de alto custo
A VolumePro é o primeiro sistema para renderização especiais para renderização volumétrica, como a
volumétrica em tempo real e num único chip para PCs no VolumePro, e somente a utilização de placas aceleradoras
mundo [8]. É uma placa aceleradora que não precisa de pré- gráficas 3D com suporte a OpenGL, que são muito mais
processamento e qualquer modificação nos dados torna-se acessíveis a maioria da população.
imediatamente visível. Por ser um hardware especial para
aceleração da renderização volumétrica, a mesma oferece 3. Implementação
maior rapidez que os algorítmos de renderização baseados em
software, mas oferem a desvantagem de terem um maior custo.
Portanto, a ultilização de sistemas de renderização baseados em Como a plataforma colaborativa utiliza a linguagem de
software se torna mais acessível para um grande escopo de programação multiplataforma Java, o módulo foi
aplicações. implementado na mesma linguagem para que possa ocorrer
a integração futura. Para sua implementação, foi utilizada a
1.3. Trabalhos Colaborativos Auxiliados por LWJGL (Lightweight Java Game Library), uma bilbioteca
Computador para a implementação de jogos com qualidade profissional
em Java. A LWJGL permite ao desenvolvedor acessar
Há um campo de pesquisa multi-disciplinar
bibliotecas de alta performance como a OpenGL (Open
(envolvendo disciplinas como Interação Homem-Computador,
Graphics Library) e OpenAL (Open Audio Library) e
Multimídia e Sistemas Distribuídos) que utiliza ferramentas e
utilizar o estado da arte em gráficos e sons 3D para Java.
técnicas para suportar o trabalho de várias pessoas com
Adicionalmente, a LJWGL permite também acessar
objetivos específicos e possui a finalidade de facilitar a
controles como gamepads, volantes de direção e joysticks
comunicação e a produtividade em grupo. Este campo é
[9]. A LJWGL é um software livre, sob a licença BSD, o
chamado Trabalho Colaborativo Auxiliado por Computador
que significa que tem código aberto e está disponível
(CSCW – Computer-Supported Cooperative Work),
gratuitamente a todos os usuários.
A utilização de redes de computadores, como a
Como a LWJGL permite a chamada de primitivas
Internet, permite construir aplicações baseadas em CSCW,
OpenGL diretamente, também não foi necessária a
na qual usuários remotos colaboram entre si na execução
utilização de suas funções de mais alto nível e portanto
de determindas tarefas, como a discussão de diagnósticos
somente foi utilizado o acesso aos métodos OpenGL que a
médicos através da segunda opinião médica.
biblioteca oferece.
Em atual desenvolvimento pelo núcleo de
O algorítmo implementado parte do pressuposto
Telemedicina do LSI-USP, a plataforma CSCW ( que já
que será feita a visualização volumétrica de várias imagens
dispõe de módulos de chat, vídeo-conferência e quadro-
em sequência e na mesma resolução, adquiridas por
negro bidmensional colaborativo) pode ser melhorada e
exemplo por Tomografia Computadorizada ou através das
ampliada com a adição de um novo módulo para
imagens do projeto Visible Human, um projeto que
visualização colaborativa de dados volumétricos entre os
disponibiliza uma base de imagens digitais que são
usuários participantes. Com isso, além de poderem efetuar
fotografias em alta resolução de secções anatômicas de
anotações e outras opções colaborativas em cada imagem
corpos humanos, cortados milimetricamente [10].
do conjunto de fatias do exame, os participantes poderão
Particularmente para a demontração deste projeto,
visualizar o modelo 3D do exame do paciente cada qual
foram utilizadas as imagens da cabeça do Visible Human,
com seu próprio ângulo de visualização.
já segmentadas com a retirada do gelo através de um
Támbém poderão ser implementadas novas
projeto anterior do LSI [11]. Os arquivos estão em formato
ferramentas colaborativas, como o cálculo do volume e
JPG, mas também é possível a utilização de arquivos em
formato DICOM (Digital Imaging Communication in Figura 1: Renderização Volumétrica colorida do Visible
Medicine), um padrão largamente utilizado para exames Human em média resolução e com plano de corte diagonal.
médicos como Tomografias Computadorizadas.
O algorítmo implementado faz inicialmente um
pré-processamento através do carregamento das imagens
em matrizes 3D, cada qual com proporções iguais a
largura, altura e quantidade de fatias das imagens. Para
cada canal de cor das imagens é necessária uma matriz,
portanto são três matrizes para carregar os valores RGB de
cada pixel das imagens, armazenados sequencialmente
cada qual em sua prórpia matriz; as matrizes dos canais R,
G ou B. Caso seja necessário utilizar um canal Alfa, o que
não é o caso deste projeto, deve-se utilizar uma nova matriz
para tal.
Desta forma, é criado um modelo em OpenGL, através
de primitivas de pontos, sendo que cada voxel se torna um
ponto com o valor de cor calculado com os valores R, G e
B relativos a posição deste voxel nas matrizes
correspondentes. Portanto, é possível visualizar uma
nuvem de pontos colocados uns aos lados dos outros,
através de uma distância na qual permita que cada voxel
assuma o tamenho de um pixel na tela do usuário. Com a
Figura 2: Renderização Volumétrica colorida do Visible
utilização de transformas OpenGL, foi também criado um
Human em média resolução e com plano de corte diagonal
modelo de interação com o mouse e teclado que permite ao
e transversal.
usuário transladar, rotacionar e escalar o modelo para
qualquer direção.

4. Resultados Finais

A seguir são mostradas imagens resultantes do algoritimo


implementado:

Figura 3: Renderização Volumétrica em níveis de cinza do


Visible Human em média resolução e sem plano de corte.

O modelo a uma certa distância permite que cada


voxel seja visualizado como pixels um exatamente ao lado
do outro, sem intervalos, portanto o volume pode ser
visualizado corretamente. Mas com a transformada de aumentará o custo com aquisição de novos equipamentos;
escala, a distância entre os voxels aumenta em relação a o que pode inviabilizar sua utilização para muitos casos.
proximidade do volume com o ponto de visualização do
usuário, ocorrendo um efeito indesejável na visualização 6. Referências
do volume como um todo. A seguir é mostrado uma
imagem deste efeito:
[1] MEINZER , H., MEETZ, K., SCHEPPELMANN,
D., ENGELMANN, U., BAUR, H. J., "The
Heidelberg Ray Tracing Model", German Cancer
Research Center, Heidelberg. 1991. IEEE
Computer Graphics & Applications.

[2] M. Levoy, “Efficient Ray Tracing of Volume


Data”, ACM Transactions on Graphics, v. 9, no. 3
(1990), 245-261, New York.

[3] R.B. Seixas, M. Gattass, L.H. Figueiredo, L.F.


Martha, “Visualização Volumétrica com
Otimizações de Ray Casting e Detecção de
Bordas”, Anais do VIII SIBGRAPI (1995) 281-
286.
Figura 4: Efeito indesejável de afastamento dos voxels
causado pela proximidade do volume ao ponto de vista do [4] F. Dachille, “Volume Visualization Algorithms
usuário. and Architectures”, Research Proficiency Exam,
State University of New York at Stony Brook,
Como este algoritimo de visualização direta não disponível em http://www.cs.sunysb.edu/~dachille
oferece nenhuma técnica de otimização para não processar
os voxels ocultos, ele se torna extremanente simples e ao [5] I.H. Manssour, C.M.D.S. Freitas, “Visualização
mesmo tempo não oferece uma boa velocidade de Volumétrica”, Revista de Informatica Teórica e
renderização, frequentemente a uns 15 frames por segundo Aplicada, Porto Alegre, RS, v. 9, n. 2 (2002) 97-
para imagens de baixa resolução (183 x 148 pixels e 150 126.
fatias) e uns 3 frames por segundo em média resolução
(438 x 354 pixels e 150 fatias), dependendo do processador [6] M. Levoy, H. Fuchs, S. M. Pizer, J. Rosenman,
e placa de vídeo utilizada. Portanto, este algoritmo ainda E.L. Chaney, G.W. Sherouse, V. Interrante, J.
não é indicado para renderizações em tempo real como as Kiel, “Volume Rendering in Radiation Treatment
utilizadas na Realidade Virtual e Realidade Aumentada. Planning”, Proceedings of the First Conference on
Um outro resultado constatado é a grande Visualization in Biomedical Computing, Atlanta,
memória necessária pra armazenar o volume, o que pode March, 1990.
ser impreticável para a visualização de volumes muito
grandes.
[7] P. Lacroute, M. Levoy, “Fast Volume Rendering
Using a Shear-Warp Factorization of the Viewing
5. Trabalhos Futuros Transformation”, Proceedings of SIGGRAPH
(1994) 451–457.
Como trabalhos futuros, sugere-se a otimização do
algoritimo para não processar os voxels ocultos (o que trará [8] M. Cabral, “Caverna Digital”, disponível em
uma maior velocidade de renderização e permitirá sua http://www.ime.usp.br/~mcabral/CAVE.html
utilização em aplicações em tempo real) e a adição de
controle dos tamanhos dos pixels (utilizados pra [9] LWJGL - Lightweight Java Game Library,
representar cada voxel) em relação ao ponto de vista do disponível em http://lwjgl.org/
usuário, tornando os voxels sempre “colados” uns aos
outros e evitando o efeito indesejável de espaços vazios. [10] “Visible Human Project”, disponível em
Quanto à velocidade de processamento, também http://www.vhd.org.br
poderá ser estudada a possibilidade de paralelizar o
algorítmo, o que neste caso tornará a renderização muito [11] I. A. Souza, C. S. Júnior, M. B. Binatto, T. T.
mais eficiente e rápida, mas que ao mesmo tempo Lopes, M. K. Zuffo, “ Direct Volume Rendering of
the Visible Human Dataset on Distributed
Multiprojection Immersive Environment”.
Laboratório de Sistemas Integráveis – EPUSP.

You might also like