Uma ferramenta para apoiar a visualização da anatomia cardíaca

Propaganda
Uma ferramenta para apoiar a visualização da anatomia cardíaca com Realidade Aumentada
Nayara Consuelo Gomes Rangel
Luiz Augusto dos Santos Carvalho
Instituto de Ciência e Tecnologia
Universidade Federal de São Paulo – UNIFESP
São José dos Campos, Brasil
[email protected]
Instituto de Ciência e Tecnologia
Universidade Federal de São Paulo – UNIFESP
São José dos Campos, Brasil
[email protected]
Ezequiel Roberto Zorzal
Regina Célia Coelho
Instituto de Ciência e Tecnologia
Universidade Federal de São Paulo – UNIFESP
São José dos Campos, Brasil
[email protected]
Instituto de Ciência e Tecnologia
Universidade Federal de São Paulo – UNIFESP
São José dos Campos, Brasil
[email protected]
Resumo—Este trabalho apresenta uma ferramenta para apoiar a
visualização da anatomia cardíaca utilizando técnicas de
Realidade Aumentada. O usuário pode interagir livremente com
o modelo tridimensional do coração humano e visualizar suas
estruturas. Além disso, o usuário pode utilizar a ferramenta para
cortar o modelo em tempo real e visualizar as estruturas internas
do órgão.
Palavras-chave- coração;
Aumentada; educação.
anatomia
cardíaca;
Realidade
I.
INTRODUÇÃO
É comum a busca de inovações na área da educação,
principalmente o desenvolvimento de novas ferramentas que
podem tornar o aprendizado em geral mais interessante e eficaz
[1, 2]. Os métodos utilizados atualmente para o estudo da
anatomia cardíaca são em sua maioria baseados em figuras
bidimensionais impressas em livros [3]. Outro fator negativo é
que o aluno raramente tem contato com aplicações sofisticadas
que simula o coração humano, por serem caras e a maioria
possuírem poucos recursos [4, 5]. Além disso, não é sempre
que o aluno pode analisar um coração funcionando em um
corpo humano devido a diversos fatores éticos e operacionais.
Considerando essas dificuldades, desenvolveu-se uma
ferramenta para apoiar a visualização da anatomia cardíaca
usando Realidade Aumentada (RA), que atualmente é uma
tecnologia acessível, por ser simples de utilizar e de baixo
custo.
A RA, em sua maneira mais comum, permite a visualização
de objetos virtuais em ambientes reais por meio de
computadores equipados com uma câmera de vídeo, ou mesmo
a partir de dispositivos portáteis, tais como tablets e celulares.
O papel da RA é a tentativa de trazer modelos virtuais para o
ambiente real, aproximando assim o usuário de alguns
elementos que não poderiam estar disponíveis no mundo real
[6]. Além disso, a RA pode desenvolver o sentido de percepção
espacial nos usuários [7]. Mantendo essa linha, pode-se
aproveitar essa tecnologia para inserir no ambiente real,
elementos virtuais que são úteis para profissionais em
formação, com fins educativos e até mesmo para o
entretenimento [8- 12].
Compreender a complexidade da anatomia humana, mesmo
em parte, é algo que requer muito tempo e estudo. Neste artigo
serão discutidas as possibilidades de usar essa tecnologia para
desenvolver uma ferramenta que auxilia no ensino da anatomia
básica cardíaca, proporcionando um ambiente dedicado ao
estudo do coração humano. A ferramenta apresentada neste
trabalho traz um modelo tridimensional do coração para o
ambiente real, permitindo o estudo da sua anatomia de um
modo simples e fácil. Uma vez que é possível interagir com o
modelo para visualizar as estruturas que são realçadas e realizar
cortes em tempo real no modelo virtual permitindo a
visualização das estruturas internas.
Este trabalho está organizado em seis seções. Na Seção II
são apresentados alguns trabalhos relacionados. Uma breve
explicação sobre anatomia cardíaca é apresentada na Seção III.
Algumas considerações sobre as tecnologias envolvidas na
implementação da ferramenta e os modelos externos utilizados
são apresentadas na Seção IV. A Seção V apresenta o
funcionamento da ferramenta e a explicação detalhada sobre os
algoritmos implementados. Finalmente, na Seção VI são
apresentas as conclusões e considerações sobre trabalhos
futuros.
II.
TRABALHOS RELACIONADOS
Já existem alguns projetos sobre o ensino da anatomia
usando RA, todos apresentam resultados positivos. Pode-se
citar o projeto LearnAR [13] (Figura 1) que é uma ferramenta
Web com RA para ensinar diversas disciplinas, como a
biologia, anatomia e geometria.
Figura 1. Ambiente da ferramenta LearnAR para o ensino de anatomia [13].
Para utilizar a ferramenta LearnAR, o usuário precisa
imprimir o marcador para cada finalidade diferente e apresentálo a uma câmera de vídeo conectada a um computador comum.
Quando o marcador é reconhecido, a ferramenta integra no
ambiente real, modelos tridimensionais didáticos com alguma
informação útil relacionado ao modelo em tempo real.
A empresa Total Immersion [14] também desenvolveu uma
ferramenta semelhante usando RA que mostra o coração
humano. O usuário pode interagir livremente com o coração
enquanto as informações sobre o órgão são apresentadas. Esta
ferramenta fornece informações sobre saúde, doenças comuns,
curiosidades sobre o órgão e também algumas informações
úteis sobre cada estrutura de válvula e a câmara do coração. O
modelo tridimensional e todas as animações desta aplicação
são bastante sofisticados e realistas, tornando o ambiente
verdadeiramente envolvente e convincente. A Figura 2
apresenta a ferramenta em uso.
Figura 4. Ferramenta desenvolvida para visualização e simulação de sinais
cardíacos usando RA mostrando a animação do coração de acordo com os
dados capturados do ECG[15].
Todos os projetos analisados são interessantes por diversos
motivos, seja a utilidade, melhorar o sentido espacial em
estudantes ou por ter baixo custo. Todas as ferramentas podem
ser usadas para fins de educação em diferentes níveis. Alguns
são mais úteis na educação básica para alunos do ensino
fundamental e ensino médio, como o LearnAR [13] e as
ferramentas da Total Immersion [14]. E alguns podem ser
utilizados para a formação médica, tais como a ferramenta da
Total Immersion e particularmente o trabalho de Lamounier et.
al. [15]. No entanto, nenhum deles permite ao usuário executar
os cortes nos órgãos em tempo real para uma melhor
visualização das estruturas internas.
III.
Figura 2. Ferramenta desenvolvida pela Total Immersion para o ensino de
anatomia cardíaca [14].
Também, pode-se citar uma ferramenta desenvolvida para
visualização e simulação de sinais cardíacos, utilizando
técnicas de RA. A ferramenta [15] foi desenvolvida pela
Universidade Federal de Uberlândia e permite a visualização
da mecânica dos batimentos cardíacos de acordo com dados de
um eletrocardiograma (ECG). Sinais cardiológicos (ECG) são
uma importante fonte de dados para vários diagnóstico de
doenças do coração. Com base nisto, essa ferramenta é útil para
a formação médica, uma vez que o aplicativo é capaz de
mostrar o comportamento do coração de acordo com cada sinal
cardiológico de entrada. Nas Figuras 3 e 4, é possível visualizar
o software em operação.
ANATOMIA CARDÍACA BÁSICA
O coração humano é um órgão extremamente fascinante e
complexo, sua principal função é bombear o sangue por todo o
corpo. Ele está localizado no peito, ligeiramente inclinado
para a direita e para baixo. O coração funciona como uma
bomba hidráulica, onde o átrio e o ventrículo do lado direito
levam o sangue rico em dióxido de carbono para os pulmões,
onde depois de algumas trocas gasosas serão enriquecidos
com oxigênio, voltando ao coração, na aurícula esquerda.
Este átrio bombeia o sangue para o ventrículo esquerdo,
que bombeia, pela aorta, este sangue rico em oxigênio para o
corpo [16]. Algumas das estruturas envolvidas no processo
mencionado acima foram evidenciadas no modelo utilizado
para a representação da anatomia cardíaca (Figura 5). São
eles: aorta, veia cava, tronco pulmonar, átrio esquerdo, átrio
direito, ventrículo direito, veia cava inferior e veias
pulmonares.
Figura 5. Coração humano com algumas estruturas destacadas.
Figura 3. Ferramenta desenvolvida para visualização e simulação de sinais
cardíacos. Interface do sistema com imagem ECG capturada[15].
As estruturas internas, embora presentes, não foram
destacadas, pois isso será feito em trabalhos futuros. A
interface também sofrerá alterações para suportar a mudança
entre as estruturas internas e externas para melhorar o
processo de aprendizagem.
IV.
AQUISIÇÃO DO MODELO
Para implementar o ambiente de RA na aplicação (chamada
Projeto S2) foi usada a toolkit OsgArt 2 [17]. Ela é uma
biblioteca de código aberto, escrita em C/C++, e que funciona
em conjunto com a biblioteca de RA ARToolkit [18],
permitindo a inclusão de
modelos tridimensionais da
biblioteca OpenSceneGraph (OSG) [19], que também possui
código aberto. A OsgArt 2 funciona de forma muito
semelhante a ARToolKit, porém possibilitando o
desenvolvimento de ambientes de RA muito sofisticados, uma
vez que a biblioteca é capaz de carregar inúmeros formatos de
modelos tridimensionais (via plugins OSG) e por contar com a
vasta gama de funcionalidades da OSG. O viewer da OSG
também pode ser facilmente integrado a vários frameworks de
interfaces, facilitando, assim, a construção de interfaces
gráficas sofisticadas.
Foram utilizados dois modelos tridimensionais no ambiente
de RA desenvolvido. Um deles é o modelo do coração, que foi
adquirido no repositório livre na Web chamado 3dVia [20], sob
licença da Creative Commons. O outro modelo tridimensional
usado é de um bisturi que foi criado usando a ferramenta
comercial Autodesk Maya versão 2012 [21]. Ambos os
modelos foram convertidos para extensões compatíveis com a
OSG usando a ferramenta osgconversion fornecida pela
biblioteca OpenSceneGraph. Portanto, ambos os modelos
podem ser carregados e manipulados apropriadamente no
ambiente OsgArt 2 e podem sofrer modificações adicionais em
tempo real.
V. PROJETO S2
O ambiente de RA do projeto S2 foi implementado usando
a linguagem C++ e faz uso das bibliotecas: OSG 3.01 [18],
Boost 1.47.0 [22], ARToolKit [18], OsgArt 2.0 release
candidate 3 [17] e Qt 4.7.4 (framework) [23]. Para a aplicação
de shaders foi utilizada a GLSL (OpenGL Shading Language)
[24].
A. Algoritmo
Usando a biblioteca OsgArt 2.0 é possível carregar o
modelo na cena para ser livremente rotacionado utilizando o
marcador, permitindo a visualização tridimensional completa
(em todos os ângulos e por todos os lados) do modelo do
coração. Isso é feito por algoritmos de reconhecimento de
padrões e geometria espacial fornecida pela biblioteca de RA e
bibliotecas gráficas, respectivamente. Na Figura 6 é possível
ver o modelo do coração no ambiente de RA.
Para a ferramenta de corte trabalhar apropriadamente, foi
necessário utilizar um algoritmo para detecção de colisão para
determinar a profundidade de cada corte no coração. Há vários
algoritmos que poderiam ser usados para tal finalidade, tais
como limite de caixa (bounding box), limite de esfera
(bounding sphere), colisão com polígono convexo, colisão por
vértice, entre outros. No entanto, alguns deles apresentam
resultados insatisfatórios para aplicação nesse caso em
particular. O limite de caixa é um método simples
computacionalmente. Nele, cada objeto é colocado dentro de
uma caixa (a menor caixa que caiba o objeto dentro) e a colisão
entre os objetos ocorre quando duas dessas caixas se colidem.
No entanto, esse algoritmo não apresentou um resultado
satisfatório para o projeto quando se esperou uma resposta em
tempo real.
Figura 6. Modelo de coração no ambiente de RA.
Os métodos de colisão de polígonos e colisão por vértices
também consomem muito tempo de processamento e podem
diminuir o desempenho do sistema, comprometendo o
resultado final [25].
Pelas razões apresentadas anteriormente, o cálculo de
colisão entre dois objetos nas cenas foi realizado pelo método
de limite de esfera. Esse algoritmo apresentou o efeito desejado
sem comprometer o tempo de resposta de interação com o
ambiente desenvolvido. Neste método, cada objeto é colocado
dentro de uma esfera fazendo com que o centro da esfera
coincida com o centro do objeto, e seu raio seja a distância do
centro do objeto até o ponto mais distante do seu centro [25],
como mostrado na Figuras 7. Com esta informação é possível
verificar a colisão calculando a interseção entre as esferas
(Figura 8).
(a)
(b)
Figura 7. Modelo de coração humano (a) e do bisturi (b) dentro de uma
esfera delimitadora.
Figura 8. Exemplo de colisão entre o esferas delimitadoras do coração
humano e do bisturi.
Se o teste de colisão for positivo, a aplicação considera as
coordenadas do ponto central da esfera referente ao bisturi
como o plano de corte do coração e a profundidade. Com a
informação de posição dos objetos e o teste de colisão positivo,
é possível realizar o corte no coração em tempo real. Isso é
feito com o uso de shaders (GLSL) que interrompem o pipeline
de renderização para aplicar o efeito desejado.
Shaders são pequenos programas ou conjunto de algoritmos
que determinam como as propriedades da superfície
tridimensional dos objetos serão renderizadas e como a
iluminação interage com a superfície do objeto em um
programa de computador para manipulação de cenas
tridimensionais. Há basicamente dois tipos principais de
shaders: vertex shaders e fragment shaders. Os vertex shaders
descrevem as características dos vértices, como posição,
coordenadas de textura, etc, enquanto os fragmente shaders (ou
pixel shaders) descrevem as características do pixel, como cor,
sombreamento, textura, etc [24].
fragmento. Nesse código também é calculada a contribuição de
todas as luzes da cena neste ponto.
Na linha 11 há um teste para verificar se a posição atual no
eixo y (profundidade) é maior ou igual à cut_depth. Se esse
teste for verdadeiro (true), na linha 12 o valor alpha passado
como um parâmetro uniform ao programa fragment shader é
atribuído ao canal alfa da variável final_color, que armazena a
cor atual do fragmento considerando as contribuições de luz,
fornecendo, portanto, o efeito de transparência, ou corte, do
coração quando o valor de alpha for zero.
Na Figura 10 é possível ver, em dois ângulos de
visualização diferentes, como esta parte do algoritmo trabalha,
sendo que tudo o que está na frente da linha branca (bisturi)
será cortado em tempo real.
Na linguagem GLSL as declarações de variáveis podem ter
um qualificador de armazenamento que deve ser especificado
na frente do tipo. No projeto S2 foram usados os qualificadores
de armazenamento varyings e uniforms.
Um qualificador varying faz uma correspondência entre um
veretx shader e um fragmente shader para dados interpolados.
Um qualificador uniform é um valor uniforme que não é
alterado pela primitiva que estiver sendo processada e faz a
ligação entre um shader OpenGL e a aplicação [24]. Neste
caso, conhecendo a coordenada de profundidade do bisturi, é
possível determinar um plano de recorte do coração pelo
algoritmo de fragmente shader apresentado na Figura 9.
Figura 10. Imagem ilustrando como o bisturi determina a profundidade do
corte em dois pontos de vista diferente.
Na linha 14 a cor atual que foi calculada é atribuída como
cor do fragmento.
O shader é calculado em tempo real para qualquer valor de
profundidade dada pela posição do bisturi. Na Figura 11 é
possível ver alguns exemplos de cortes do coração a partir de
várias profundidades diferentes.
Figura 9. Algoritmo de fragment shader para realizar cortes no modelo de
coração.
Na primeira linha do código é declarada uma varying
chamada current_position que é um vetor de três posições
obtido no vertex shader que armazena a posição atual em que o
shader está sendo aplicado. Na segunda linha do programa foi
definido um uniform float chamado cut_depth que corresponde
à posição do bisturi que é fornecido ao shader quando uma
colisão entre o coração e o bisturi for encontrada. Finalizando a
declaração de variáveis externas, na linha três há o valor alpha
que também é definido como um uniform float para o programa
shader. Esse valor é modificado pelo usuário em tempo real
usando a interface do projeto S2.
Na função principal do fragment shader (função main) é
definido um vetor de quatro posições que armazenará a cor do
Figura 11. Coração cortado em diferentes profundidades.
Um resultado da aplicação deste algoritmo para um valor
de alpha igual a zero (transparência total) pode ser visto na
Figura 12.
Figura 12. Exemplo de corte do coração humano com alpha igual a zero.
B. Utilização da ferramenta
A interface da ferramenta é amigável e intuitiva.
Atualmente a ferramenta funciona apenas na plataforma Linux,
porém é possível adaptá-la facilmente para funcionar em outras
plataformas. Ao iniciar o programa, a aplicação
automaticamente tentará acessar uma câmera de vídeo para
mostrar o vídeo na widget da função principal da aplicação.
Para cada marcador registrado no programa, um modelo
tridimensional deverá ser mostrado. Foram registrados dois
marcadores, sendo um para o modelo do coração e outro para o
modelo do bisturi.
Para realizar um corte no coração é necessário mostrar o
marcador associado com o bisturi e o marcador associado com
o coração, para a câmera. Movendo o marcador do bisturi para
perto e para longe da câmera e mantendo certa proximidade do
modelo do coração, é possível realizar o corte em diferentes
profundidades em tempo real.
A barra vertical localizada no lado esquerdo da janela
gráfica varia o valor de alpha que será aplicado ao corte no
coração, permitindo definir diferentes níveis de transparência
no modelo, como ilustrado nas Figuras 13 e 14.
Figura 14. Exemplo de corte no modelo do coração humano usando o modo
de transparência total (alpha igual a zero).
C. Desempenho
A ferramenta foi desenvolvida e testada em um computador
com processador Intel Core i7 com 4 núcleos de 1.73GHz,
6GB de memória RAM e 1GB GPU nVidia GT 335M. Durante
os testes foi alcançado um desempenho de 300-400 fps com
ambos os modelos tridimensionais carregados na cena e
permitindo cortes no modelo do coração em tempo real. Boa
parte do desempenho alcançado foi devido ao sistema de
multiprocessamento que foi implementado na ferramenta,
dividindo os cálculos em diferentes threads. Foi utilizada uma
thread para o vídeo de fundo, outra para o cálculo da colisão, e
outra para fazer o corte. Dessa forma, foi possível alcançar o
desempenho descrito.
VI. CONCLUSÃO E TRABALHOS FUTUROS
Os experimentos com RA como base para o
desenvolvimento de ferramentas educacionais foram
satisfatórios, uma vez que eles apresentaram baixo custo
computacional, fácil usabilidade e resposta em tempo real. É
possível também que o usuário tenha contato com um modelo
de coração que permita um aprendizado diferenciado desde que
ele possua controle completo do objeto, permitindo a
visualização das estruturas cardíacas, uma vez que o usuário
pode realizar cortes no modelo do coração de uma maneira
simples e fácil.
Para versões futuras da ferramenta as estruturas internas do
coração serão destacadas e o modelo, que atualmente é
estático, também poderá sofrer deformações para simular o
ciclo cardíaco completo. Também poderão ser permitidos
cortes no coração em diferentes ângulos, de acordo com a
inclinação do bisturi, fornecendo uma melhor visualização de
algumas estruturas internas do coração. Outra melhoria na
ferramenta poderia ser permitir que a porção do coração que
não aparece na cena seja associada a outro marcador. Usando
uma versão análoga do algoritmo atual pode ser possível
visualizar ambas as porções cortadas do coração.
Figura 13. Exemplo do modelo de coração humano com visão parcial das
estruturas internas.
Versões futuras da aplicação do algoritmo de colisão serão
usadas para separar estruturas individuais do coração em
diferentes modelos, melhorando ainda mais a experiência de
aprendizado.
AGRADECIMENTOS
Este projeto está sendo desenvolvido na Universidade
Federal de São Paulo – UNIFESP e em parceria com o
Hospital Municipal Dr. José de Carvalho Florence de São José
dos Campos, Brasil. Ele tem o financiamento da Fundação de
Amparo à Pesquisa - FAPESP (Proc. No. 2012/01505-6).
[9]
[10]
[11]
REFERÊNCIAS
[12]
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
R. Budhiraja, S. Verma, and A. Pandey, "Designing interactive
presentation systems for classrooms", in Proc. SIGDOC, 2010, pp.259260.
E. Woods, M. Billinghurst, J. Looser, G. Aldridge, D. Brown, B. Garrie.,
and C. Nelles, “Augmenting the science centre and museum experience”
in Proceedings of the 2nd international conference on Computer
graphics and interactive techniques in Australasia and South East Asia,
June 15-18, 2004, Singapore
R. Grasset , A. Dünser , M. Billinghurst, “Edutainment with a mixed
reality book: a visually augmented illustrative childrens' book” in
Proceedings of the 2008 International Conference on Advances in
Computer Entertainment Technology, December 03-05, 2008,
Yokohama, Japan
H. Kaufmann, D. Schmalstieg, and M. Wagner, “Construct3D: A
Virtual Reality Application for Mathematics and Geometry Education”,
in Education and Information Technologies, 2000 5:4, pp. 263-276.
H. Kaufmann, D. Schmalstieg, “Mathematics and geometry education
with collaborative augmented reality”, in ACM SIGGRAPH 2002
conference abstracts and applications, July 21-26, 2002, San Antonio,
Texas
R. Azuma, “A Survey of Augmented Reality”, in Teleoperators and
Virtual Environments, 1997, Vol. 6, No. 4, pp. 355-385.
A.A Rizzo, J.G. Buckwalter, U. Neumann, C. Kesselman, M. Thiebaux,
P. Larson, and van A. Rooyen, “The Virtual Reality Mental Rotation
Spatial Skills Project”, In CyberPsychology and Behavior, 1(2), 1998,
pp. 113-120.
V.S. Pantelidis, “Reasons to Use Virtual Reality in Education”, in VR
in the Schools 1(1), 1995. URL: http://www.soe.ecu.edu/vr/reas.html
(Revised 2000).
[13]
[14]
[15]
[16]
[17]
[18]
[19]
[20]
[21]
[22]
[23]
[24]
[25]
J. Fischer, M. Neff, D. Freudenstein and D. Bartz, ” Medical Augmented
Reality based on Commercial Image Guided Surgery ”, in Eurographics
Symposium on Virtual Environments (2004).
W. Winn, “A Conceptual Basis for Educational Applications of Virtual
Reality”,
Technical
Report
TR
93-9:
http://www.hitl.washington.edu/publications/r-93-9/, 1993.
F. Mantovani, “VR Learning: Potential and Challenges for the Use of
3D Environments in Education and Training”, In Towards
CyberPsychology: Mind, Cognitions and Society in the Internet Age,
Giuseppe Riva & Carlo Galimberti (Eds.), Amsterdam, IOS Press, 2001.
M. Roussos, A. Johnson, T. Moher, J. Leigh, C. Vasilakis, and C.
Barnes, “Learning and Building Together in an Immersive Virtual
World”, in PRESENCE 8(3), 1999, pp. 247-263, MIT Press.
LearnAR – http://www.learnar.org – last access 2012/02/28
Total Immersion - http://www.t-immersion.com – 2012/02/28
E. Lamounier, A.A.B. Bucioli, A. Cardoso, A. Andrade, A. Soares, “On
the Use of Augmented Reality Techniques in Learning and
Interpretation of Cardiologic Data”, Paper presented at the 32nd Annual
International Conference of the IEEE EMBS, Buenos Aires, Argentina.
2010.
D.M. McQueen, C. S. Peskin, “A three-dimensional computer model of
the human heart for studying cardiac fluid dynamics”, ACM
SIGGRAPH Computer Graphics, February 2000, v.34 n.1.
OsgArt 2 – http:// www.osgart.org/ - last access 2011/12/01
ARToolKit – http://www.hitl.washington.edu/artoolkit/ - last access
2011/12/01
OpenSceneGraph – http://www.openscenegraph.org - last access
2011/12/01
3dVia - http://www.3dvia.com/ - last access 2012/02/28
Autodesk Maya – http://www.autodesk.com/maya - last access
2012/02/28
Boost – http://www.boost.org- last access 2011/12/01
Qt Framework – http://www.qt.nokia.com- last access 2011/12/01
GLSL – http://www.opengl.org/documentation/glsl - last access
2011/12/01
R. Weller, M. Sagardia, D. Mainzer, T. Hulin, G. Zachmann, and
Carsten Preusch,. “A benchmarking suite for 6-DOF real time collision
response algorithms”, in Proceedings of the 17th ACM Symposium on
Virtual Reality Software and Technology (VRST '10), 2010, ACM, New
York, NY, USA, 63-70.
Download