• Nenhum resultado encontrado

Ferramenta multithread de visualização interativa para auxílio na detecção do foco epileptogênico

N/A
N/A
Protected

Academic year: 2021

Share "Ferramenta multithread de visualização interativa para auxílio na detecção do foco epileptogênico"

Copied!
7
0
0

Texto

(1)

Ferramenta multithread de visualização interativa para auxílio na detecção do foco epileptogênico

Cleber Roberto Milani1, Gerson Geraldo H. Cavalheiro1, Lucas Ferrari de Oliveira1

1

Departamento de Informática – Instituto de Física e Matemática Universidade Federal de Pelotas (UFPel)

Pelotas – RS – Brazil

{cmilani.ifm,gerson.cavalheiro,lucas.ferrari}@ufpel.edu.br

Abstract. This paper presents a tool developed to assist pre-surgical

evaluation of intractable epilepsy patients. The tool implements a volumetric visualization technique and an interactive manipulation interface. Due to inherent computational cost of application basis algorithm, the implementation employed multithreading programming techniques in multi- core processors.

Resumo. Este artigo apresenta uma ferramenta desenvolvida para auxiliar a

avaliação pré-cirúrgica de pacientes com epilepsia intratável. A ferramenta implementa uma técnica de visualização volumétrica 3D e uma interface de manipulação interativa. Devido ao custo computacional inerente ao algoritmo base da aplicação, a implementação empregou técnicas de multiprogramação leve em processadores multi-core.

1. Introdução

A epilepsia é uma enfermidade presente no cotidiano de milhões de pessoas em todo o mundo.

As drogas antiepilépticas obtêm êxito no controle de cerca de 60 a 80% dos casos. Nos demais, faz-se necessária intervenção cirúrgica, a qual, por sua vez, requer uma avaliação prévia realizada com base em informações complementares de diferentes exames [Oliveira 2005].

Um processo tradicionalmente aplicado é a comparação visual, lado a lado, de imagens de SPECT (Single Photon Emission Computed Tomography, Tomografia Computadorizada por Emissão de Fóton Único) do paciente tomadas quanto este se encontra em crise com outras obtidas nos intervalos entre as crises. Essas imagens são chamadas, respectivamente, de imagens críticas e intercríticas. O objetivo nesse caso é verificar quais as partes do cérebro que entram em atividade especificamente durante uma crise epiléptica para, assim, identificar o foco epileptogênico. Entretanto, essa técnica, além de ser um processo laborioso e exaustivo, confere limitações à reprodutibilidade dos estudos, uma vez que depende dos conhecimentos e experiências prévios do investigador.

Ao longo dos anos, diversas ferramentas computacionais vêm sendo desenvolvidas para automatizar e auxiliar a avaliação pré-cirúrgica. Um método bastante empregado na avaliação da epilepsia é o SISCOM (Subtraction Ictal SPECT Co-registered to MRI, Subtração de SPECT Crítico Co-registrado em imagens de Ressonância Magnética). Esse método permite detectar o foco epiléptico a partir da subtração de imagens funcionais de SPECT e localizá-lo anatomicamente no exame de Ressonância Magnética (RM) [O’ Brien et al. 1998].

Oliveira (2005) propôs um método que utiliza o SISCOM somado à fusão de imagens em três dimensões para produzir imagens alinhadas referentes aos cortes nas posições Coronal

(2)

(eixo X), Transversal ou Axial (eixo Y) e Sagital (eixo Z) do cérebro do paciente. A importância do alinhamento e a metodologia desenvolvida, bem como a origem das imagens, são discutidas em Oliveira (2005). Essa técnica representa avanços no sentido de que a visualização 3D (tri- dimensional) é de grande utilidade para a análise qualitativa durante a fase de tomada de decisão.

Entretanto, no trabalho de Oliveira (2005) não foi desenvolvida uma ferramenta para a visualização e interação com as imagens resultantes do método por ele proposto. Já ferramentas comerciais com suporte à visualização de imagens médicas, como o VolView [VolView 2007], além de possuírem custo elevado, não permitem exibir o resultado final da fusão entre as imagens alinhadas. Dentro desse contexto, a ferramenta descrita neste artigo tem como objetivo prover uma aplicação de visualização 3D interativa para a fusão de imagens proposta por Oliveira (2005). Dessa forma, pode-se oferecer uma visualização do problema próxima da real, com auxílio de cores para destacar as zonas epileptogênicas.

O restante deste artigo está organizado da seguinte forma: as seções 2 e 3 apresentam, respectivamente, os requisitos identificados para desenvolvimento do software proposto e a implementação da ferramenta propriamente dita. A Seção 4 descreve os resultados da avaliação da ferramenta. Na Seção 5 são colocadas as conclusões.

2. Requisitos de Projeto

O primeiro requisito refere-se à visualização dos dados propriamente dita. Em geral, a aquisição dos dados volumétricos na medicina produz imagens compostas por fatias paralelas uniformemente espaçadas. O volume é então gerado através do empilhamento dessas fatias, mantendo o espaço original entre elas e mapeando os pixels em voxels. Isso é feito através da técnica de reconstrução volumétrica, a qual utiliza um algoritmo de Ray-tracing e permite a visualização 3D e interativa das imagens de maneira realística [Schroeder et al. 2002]. O algoritmo de reconstrução utilizado neste projeto foi o Ray-casting, uma versão simplificada do Ray-tracing implementada no VTK.

Outro requisito identificado foi a elaboração de uma interface amigável para permitir ao usuário alterar, dinamicamente em tempo de execução, os parâmetros aplicados à reconstrução dos exames. Além disso, aplicações para visualização interativa requerem uma taxa de resposta e repetição de entre 10 e 20 frames (quadros) por segundo, pois somente dessa forma é possível uma navegação satisfatória [Robb 1999]. Entretanto, o atendimento desse requisito tem como empecilho o elevado custo computacional dos algoritmos de Ray-casting, cuja complexidade, em geral, é de O(n3), onde n refere-se ao tamanho da entrada [Schroeder et al. 2002].

Por outro lado, Santos (1994) observa que, embora o custo computacional desse tipo de aplicação seja elevado, é também paralelizável e pode, portanto, ser explorado em arquiteturas paralelas com ganho de desempenho. Paiva et al. (1999) afirma que o alto custo computacional dos algoritmos de Ray-casting pode ser paralelizado, uma vez que os valores dos pixels são determinados através do lançamento de raios independentes entre si. Este aspecto é bastante interessante, considerando-se a crescente popularização de arquiteturas paralelas.

De fato, a literatura apresenta propostas de soluções ao problema do custo computacional na visualização de imagens médicas utilizando recursos de programação paralela.

Manssour et al. (2005) apresenta uma abordagem para visualização de imagens em arquiteturas paralelas do tipo aglomerado de computadores (clusters), utilizando para tal programação paralela através da biblioteca MPI (Message Passing Interface, Interface para Passagem de Mensagens). Em Rößler et al. (2006) é apresentado um framework para visualização de múltipos volumes que emprega o potencial de cálculo oferecido por arquiteturas dotadas de GPU (Graphics Processing Unit, Unidade de Processamento Gráfico).

(3)

Atualmente, observa-se que processadores multi-core vêm adquirindo status de commodity. Com isso, o custo de computadores pessoais paralelos passou a ser acessível não apenas a hospitais e clínicas, mas também a consultórios privados e mesmo a médicos. Em conseqüência, o desenvolvimento de programas paralelos voltados a esse público, ou desenvolvimento de versões paralelas de aplicações já existentes, é uma necessidade premente.

Tem-se ainda o fato de que diversas bibliotecas de programação multithread estão disponíveis para facilitar a exploração do paralelismo em arquiteturas multi-core. Logo, explorar o paralelismo inerente ao algoritmo de Ray-casting, através da programação multithread em arquiteturas multi-core, apresenta-se como uma solução viável para o problema apresentado.

Por fim, optou-se por desenvolver a ferramenta sob os princípios de software livre utilizando, para tal, bibliotecas e aplicações disponíveis da mesma forma. Essa decisão tem como objetivo oferecer uma solução de baixo custo e que possa ser modificada para atender necessidades locais, o que não é possível com softwares proprietários como o VolView, cuja licença custa US$ 2.500,00 e o código-fonte não é aberto. Outra característica observada na escolha dos padrões e bibliotecas foi a portabilidade. Dessa forma, a ferramenta proposta pôde ser desenvolvida compatível com os sistemas operacionais MS Windows XP, Linux e Mac OS X 10.4.10.

3. Ferramenta Desenvolvida

A ferramenta foi escrita em linguagem C++ e o padrão POSIX Threads (pthreads) foi adotado como suporte à programação multithread. O padrão para formato de imagem utilizado é o Analyze 7.5 [Clinic 2007]. As bibliotecas VTK (Visualization ToolKIT) [VTK 2007] e FLTK (Fast Light ToolKIT) [FLTK 2007] foram empregadas para descrição dos algoritmos de visualização e construção da interface, respectivamente. Maiores detalhes a respeito da implementação podem ser obtidos em Milani (2007).

A ferramenta desenvolvida oferece duas opções para visualização do foco epileptogênico - a primeira através dos volumes reconstruídos e outra, auxiliar, por meio de fatias bi-dimensionais. A janela principal da aplicação (Figura 1) subdivide-se em três cenas: a esquerda contendo a reconstrução da pele do paciente, a direita o foco epileptogênico e uma central que exibe o resultado do alinhamento das outras duas, ou seja, o foco epileptogênico localizado anatomicamente. A interação com os volumes pode ser individual ou de maneira simultânea, bastando para isso o usuário indicar no quadrante direito inferior quais volumes devem sofrer influência da interação. De maneira análoga, a visualização em fatias bi- dimensionais exibe três cenas, uma para o eixo Axial, outra para o Coronal e a última relativa ao eixo Sagital (Figura 2).

A implementação do Ray-casting no VTK é feita através de um pipeline de visualização no qual são definidas diversas propriedades para a reconstrução das imagens. Dado que a quantidade de informações presentes em um exame é bastante grande, oferecer ao usuário a possibilidade de variar algumas dessas propriedades, em tempo de execução, pode facilitar a interpretação do mesmo. Isso porque, dessa forma, tem-se diferentes visões de uma mesma situação. As propriedades que apresentam essa característica, como iluminação e interpolação, por exemplo, foram disponibilizadas para manipulação através da interface com o usuário.

Existem ainda parâmetros relacionados ao desempenho gerenciáveis em tempo de execução. O primeiro deles é o número de threads utilizado na reconstrução de cada cena, o segundo o número de frames por segundo desejado durante a interação. A alteração desses parâmetros ocorre através do menu desempenho. O fato de permitir a configuração do número de threads faz com que a ferramenta apresente escalabilidade de software. A alteração da taxa de frames por segundo desejada faz com que a aplicação, ao reconstruir a cena para interação, utilize níveis de detalhamento diferenciados, visando atender a taxa de quadros definida pelo

(4)

usuário. No momento em que a interação termina, a cena é novamente reconstruída com sua qualidade normal. O gerenciamento do nível de detalhes é realizado pelo próprio VTK.

Figura 1. Janela principal da ferramenta

Figura 2. Visualização em fatias bi-dimensionais dos exames alinhados

4. Avaliação e Resultados

A avaliação da ferramenta considerou o ganho de desempenho obtido com o uso de recursos de threads e a qualidade das imagens reconstruídas. A qualidade dos resultados obtidos foi avaliada por meio de comparação entre as imagens geradas pela ferramenta desenvolvida e as apresentadas pelo software proprietário VolView. Realizou-se ainda a compilação da aplicação em sistemas operacionais variados para verificação da portabilidade. As configurações das arquiteturas utilizadas são apresentadas na Figura 3. Na execução dos testes, as arquiteturas de modelo 1 a 7 executavam o SO Windows XP e a arquitetura 8 rodava Mac OS X 10.4.10. A avaliação completa dos resultados encontra-se documentada em Milani (2007). Observe-se que, de modo a facilitar a comparação das execuções nos diferentes ambientes, todas as compilações foram realizadas sem nenhum parâmetro de otimização.

(5)

Figura 3. Configurações das arquiteturas utilizadas na fase de testes

Tabela 1. Tempo médio gasto na reconstrução das três cenas em arquiteturas variadas, incluindo operações de E/S.

Threads Tempo total de reconstrução em segundos

J1 J2 J3 A1 A2 A3 A4 A5 A6 A7 A8

1 1 1 6,557 7,182 5,475 5,308 3,037 3,919 5,237 21,201 1 1 2 6,550 7,196 5,447 5,052 2,861 3,662 4,897 21,298 1 2 1 6,528 7,220 5,316 4,721 2,689 3,426 4,600 21,363 1 2 2 6,534 7,224 5,284 4,467 2,510 3,175 4,248 21,336 2 1 1 6,524 7,231 5,378 5,030 2,891 3,709 4,911 21,355 2 1 2 6,542 7,239 5,356 4,785 2,707 3,457 4,592 21,345 2 2 1 6,554 7,278 5,232 4,452 2,536 3,222 4,287 21,357 2 2 2 6,553 7,310 5,191 4,205 2,361 2,980 3,965 21,003 4 4 4 6,580 7,314 5,206 4,187 2,413 3,052 4,038 21,061 8 8 8 6,586 7,439 5,200 4,203 2,408 3,050 4,008 21,226

A Tabela 1 apresenta o tempo total gasto na reconstrução das três cenas com seus parâmetros default e variando o número de threads. O tempo apresentado é aquele que, efetivamente, o usuário teria de aguardar ao solicitar o carregamento dos exames para visualização na ferramenta, incluindo o consumido por operações de entrada e saída. Embora essas operações não sejam constantemente realizadas durante o processo interativo (como a

(6)

leitura dos arquivos, por exemplo), todas elas são obrigatoriamente executadas no momento da primeira reconstrução. As colunas J1, J2 e J3 representam o número de threads utilizados na reconstrução da fisionomia, exames alinhados e foco epileptogênico, respectivamente. As colunas A1, A2 etc., fazem referência às configurações de arquiteturas definidas no quadro da Figura 3.

Nas arquiteturas multi-core, em geral, o resultado mais satisfatório foi obtido ao reconstruir as três cenas com 2 threads cada. Apenas a arquitetura A4 não seguiu o padrão, obtendo resultados melhores com o uso de 4 threads por janela. A redução aproximada do tempo de processamento nesse caso foi de 21% e o speedup de 1,27. Entretanto, observa-se que os ganhos com o uso de 2 threads por janela foram bastante semelhantes. A arquitetura A8 apresentou o desempenho menos satisfatório do grupo. Ao comparar o menor tempo de processador gasto por uma arquitetura dual-core (configuração 5 com 2 threads por cena) com o tempo médio necessário para a reconstrução na arquitetura single-core modelo 1, observou-se redução no tempo de processamento de 64%. Os resultados obtidos em computadores portáteis dual-core são também satisfatórios. Na configuração 6, a redução no tempo de processamento comparando-se a execução seqüencial com a multithread foi de 24% com speedup igual a 1.31 e eficiência de 65%. A arquitetura A7, por sua vez, apresentou redução de 25% no tempo de processamento, speedup de 1.32 e eficiência igual a 66%.

Por fim, a comparação entre o desempenho das arquiteturas A1 e A2 indica que a presença de hardware para aceleração gráfica 3D não influencia o desempenho da ferramenta, uma vez que a implementação realizada não faz uso do mesmo. Logo, não há necessidade de hardware especial para execução da aplicação desenvolvida.

5. Conclusão

A ferramenta desenvolvida apresentou resultados satisfatórios em relação à portabilidade, desempenho, escalabilidade e resultado visual gerado. A portabilidade de hardware foi comprovada com a execução da ferramenta em arquiteturas single-core e multi-core de fabricantes diversos. Nessa amostra encontram-se processadores que, além de divergir em relação ao número de núcleos, possuem diferentes conjuntos de instruções. Foram testados ainda processadores de 32 e 64 bits, logrou-se êxito nos dois casos. Já a portabilidade de software foi atestada ao compilar e executar a ferramenta com sucesso nos sistemas operacionais MS Windows XP, Debian Linux e Mac OS X 10.4.10

A exploração do paralelismo inerente ao algoritmo de Ray-casting, dividindo-o em fluxos independentes de execução, trouxe ganho de desempenho em arquiteturas dotadas de processadores com tecnologia Hyper Threading e processadores multi-core, enquanto naquelas com processador single-core a variação no tempo de execução foi desprezível. A taxa de frames por segundo colocada como adequada para aplicações interativas foi alcançada na ferramenta desenvolvida. Isso foi possível ao adicionar-se à exploração do paralelismo técnicas que permitem reconstruir o volume com nível menor de detalhamento durante a interação. Essa taxa pode ainda ser alterada em tempo de execução através da interface com o usuário.

A escalabilidade, por sua vez, é também uma característica presente na ferramenta desenvolvida. Trata-se de escalabilidade de software. A abordagem aplicada para obter-se tal propriedade foi a de desenvolver a aplicação de maneira que se permita manipular, dinamicamente em tempo de execução, o número de threads. Logo, havendo aumento do número de processadores ou cores na arquitetura, pode-se configurar o software para explorá-los eficientemente através da divisão em um número maior de fluxos de execução.

Por fim, a comparação com o software proprietário VolView permite dizer que o resultado final do projeto foi também satisfatório. Além de os exames reconstruídos apresentarem qualidade bastante próxima, puderam-se oferecer na aplicação desenvolvida as

(7)

principais funcionalidades do VolView, tais como a modificação em tempo de execução dos parâmetros da reconstrução e a visualização dos exames em forma de volumes 3D ou fatias 2D.

O objetivo de desenvolver um método de visualização complementar ao SISCOM e à fusão de imagens em 3D foi, portanto, atingido de maneira satisfatória. Com a conclusão deste projeto, encontra-se disponível uma ferramenta computacional, distribuída como software livre, que implementa eficientemente essa nova abordagem de visualização para auxílio detecção do foco epileptogênico.

Referências

Clinic, M. (2007) “ANALYZE

TM

7.5 File Format”, Biomedical Imaging Resource, http://www.mayo.edu/bir/PDF/ANALYZE75.pdf, Acesso em 02 de jul.

FLTK (2007) “Fast Light Toolkit” http://www.fltk.org, Acesso em 02 mai.

Manssour, I., Fernandes, L., Freitas, C., Serra, G. e Nunes, T. (2005) “High performance approach for inner structures visualisation in medical data”, IJCAT, v. 22, p.23-33.

Milani, C. (2007) “Ferramenta multithread para reconstrução volumétrica de imagens em medicina nuclear para auxílio na detecção de zonas epileptogênicas”. 129f.

Trabalho acadêmico (Graduação em Ciência da Computação) – Instituto de Física e Matemática, Universidade Federal de Pelotas, Pelotas.

Oliveira, L. (2005) “Fusão de Imagens 3D para Localização e Quantificação de Zona Epileptogênica”. 151f. Tese (Doutorado em Clínica Médica) – Faculdade de Medicina de Ribeirão Preto, Universidade de São Paulo, Ribeirão Preto.

O' Brien, T., So, E., Mullan, B., Hause, M., Brinkmann, B., Bohnen, N., Hanson, D., Cascino, G., Jack, C. J. e Sharbrough, F. (1998) “Subtraction Ictal SPECT co- registered to MRI improves clinical usefulness of SPECT in localizing the surgical seizure focus”, Neurology, v.50, n.2, p.445-454.

Paiva, A., Seixas, R. e Gattass, M. (1999) “Introdução à Visualização Volumétrica”.

107f. Trabalho acadêmico (Graduação em Ciência da Computação) - Departamento de Ciência da Computação, PUC-Rio, Rio de Janeiro.

Robb, R. (1999) “Visualization in biomedical computing”, Parallel Computing, v.25, Issue 13-14, p.2067-2110.

Rößler, F., Tejada, E., Fangmeier, T., Ertl, T. e Knauff, M. (2006) “GPU-based Multi- Volume Rendering for the Visualization of Functional Brain Images”, Proceedings of SimVis 2006, p.305-318.

Santos, E. (1994) “Avaliação do algoritmo de Ray Tracing em Multicomputadores”, 181p. Dissertação (Mestrado) – Escola Politécnica da Universidade de São Paulo, Departamento de Engenharia de Computação e Sistemas II, São Paulo.

Schroeder, W., Martin, K., e Lorensen, B. (2002) “The Visualization Toolkit - An Object Oriented Approach to 3D Graphics”, Kitware Inc., 3ª ed.

VolView (2007) “Kitware VolView, Interactive and Intuitive Volume Visualization”

http://www.kitware.com/products/volview, Acesso em 10 de jun.

VTK (2007) “The Visualization Tool Kit” http:// public.kitware.com/VTK, Acesso em

31 de jan.

Referências

Documentos relacionados

A gera¸c˜ao seguinte de set-top, tamb´em conhecida como Enhanced TV Set-top Boxes, j´a possui canal de retorno lento, implementado por meio de uma linha telefˆonica, e permite

Vetor viral não replicante (adenovírus) Doses/ intervalo 2 doses 4-12 semanas Efeitos colaterais mais frequentes Dor local, náuseas, mialgia CORONAVAC Laboratório

Sejam p e p’ as abscissas do ob je to e da imagem, respectivamente.. um espelho esférico côncavo com raio de cur vatura de 30cm, conforme a figura. b) real, distante 20cm do vértice.

OBS : Devemos diferenciar também características radiológicas dos achados da atelectasia pulmonar e do derrame pleural: enquanto que no primeiro as estruturas mediastinais

Para obter mais informações sobre ambiente, saúde e segurança em relação a este produto e a suprimentos Xerox, entre em contato com o Centro Xerox de Atendimento ao Cliente (Rio

A esta argumentação poderá, no entanto, sempre opor-se que a relação essencial entre amor e saudade não permite romper o vicioso círculo que a mesma envolve, ou seja, que Deus,

Como pontos fortes, destacam-se a existência de iniciativas já em- preendidas em torno da aprovação de um Código de classificação e uma Ta- bela de temporalidade e destinação

Para que qualquer das infrações referidas no artigo 4. o ou no título III seja punível, não é necessário que seja efetivamente cometida uma infração terrorista, nem