MAC499 - Trabalho de Formatura Supervisionado
Plataforma Modular para Exploração de Imagens Médicas Tomográficas
Aluno: | Marcos Bonci Cavalca |
Supervisor: | Marcel Parolin Jackowski |
Curso: | Bacharelado em Ciência da Computação |
Tipo de trabalho: | Iniciação Científica |
Data: | 15 de Junho de 2009 |
Arquivos
Proposta
Introdução
Já há várias décadas, em todo o mundo, métodos de tomografia computadorizada são utilizados em larga escala pela comunidade médica e também pela comunidade acadêmica. Enquanto o uso para fins diagnósticos é largamente difundido como a principal aplicação desse tipo de tecnologia, há também outras aplicações que já se beneficiam ou podem vir a se beneficiar amplamente desse mesmo tipo de tecnologia.
Tradicionalmente, tanto em meio físico quanto digital, o resultado de leituras por aparelhos de tomografia era analisado por especialistas quadro a quadro, ou seja, em nível bidimensional, freqüentemente alinhando em seqüência miniaturas das imagens adquiridas. Ainda hoje esse método básico de visualização é o mais utilizado.
Nos últimos anos, porém, tanto os aparelhos de aquisição de imagens quanto os aparelhos utilizados para a visualização dessas imagens vêm sofrendo avanços significativos. No lado da aquisição, os aparelhos são capazes de capturar mais dados, em menos tempo e com maior resolução e precisão. No lado da visualização, os computadores pessoais já são tão poderosos que, como base de comparação, podemos observar que até alguns modelos de celulares são capazes de ter uma utilidade relativamente avançada nessa área.
Unindo os avanços nas duas pontas do processo, temos um potencial gigantesco para avanços no desenvolvimento e popularização de novas formas de visualização e manipulação desse tipo de dados. É necessário, porém, garantir o foco tanto nas possibilidades quanto na utilidade real dessas possibilidades. Essa é uma dificuldade constante no processo de desenvolvimento em que o desenvolvedor típico é completamente diferente do usuário típico. Ao mesmo tempo em que isso desacelera a inovação, isso gera também uma tendência à redundância e ao desenvolvimento isolado, de forma que cada programa desenvolvido serve a um propósito menos amplo do que poderia.
Objetivo
O objetivo deste trabalho é dar início ao desenvolvimento de uma plataforma que permita reduzir essa distância entre desenvolvedor e usuário, e conseqüentemente proporcionar uma aproximação entre desenvolvedores da mesma área.
Na intenção de alcançar esse objetivo maior, foram adotadas as seguintes metas:
- Sistemas-alvo: A plataforma deve ser capaz de ser executada ao menos nos três principais sistemas operacionais utilizados atualmente.
- Automatização simplificada: Para toda funcionalidade já incorporada, deve haver um modo simples de automatizar toda operação através de "scripts", de forma a agilizar a inserção de novas funcionalidades, promover a reutilização, e possivelmente aproximar o usuário do processo de desenvolvimento.
- Modularidade: A plataforma deve estar pronta para receber novos módulos, de forma que tais módulos possam acessar toda a funcionalidade já incorporada.
- Grande alcance: Se possível, o projeto deve agregar uma equipe de desenvolvedores voluntários em colaboração através da Internet.
Atividades Realizadas
O projeto está em desenvolvimento desde agosto de 2008. Até o momento, não houve ainda desenvolvimento efetivo de software. Mesmo assim, durante esse período houve grande progresso através de atividades de familiarização, experimentação, pesquisa e discussão. Mais especificamente:
- Familiarização com tópicos relativos à aquisição e à visualização de imagens médicas, através de conversas com o orientador e reuniões do grupo ANIME (Grupo de Análise de Imagens Médicas do IME-USP).
- Experimentação de diversas tecnologias de software (linguagens e bibliotecas) para utilização no projeto. Após experimentação inicial, foi a adotada a linguagem C++ e a biblioteca Qt. Inicialmente, a biblioteca VTK (Visualization Toolkit) foi considerada como requisito. Nas últimas semanas, foi decidido que a linguagem utilizada será Python (para maior dinamicidade de desenvolvimento) e, enquanto a compatibilidade com extensões baseadas em VTK deve ser mantida, o projeto pode basear-se em Panda3D para exibição.
- Visita ao Hospital das Clínicas para observar o processo de aquisição de imagens e os sistemas de computador em uso no processo. Mais visitas ainda serão agendadas.
- Pesquisa e observação de pacotes de software atuais na área de visualização. Infelizmente não foi possível avaliar nenhum pacote proprietário de software, sendo que estes provavelmente dominam o mercado atual. Mesmo assim, foi possível avaliar vários pacotes de software livre e formar assim uma base de comparação sólida para identificar itens desejáveis presentes em vários desses pacotes e, ao mesmo tempo, encontrar falhas aparentes.
- Discussão com o orientador sobre a natureza do projeto, ambições de longo prazo, possibilidades de curto prazo e requisitos iniciais para o sucesso do desenvolvimento. Inicialmente o objetivo do projeto era apenas a implementação de uma interface simples e eficiente de visualização e a experimentação de novos métodos de interação com o usuário, incluindo, por exemplo, o uso de dispositivos como o Nintendo Wii Remote. Com o tempo, ficou claro que, devido tanto a restrições práticas como a falhas de planejamento, o projeto sofreria de redundância ou de impossibilidade de ser completado de forma satisfatória. A partir daí, decidiu-se por uma reavaliação das prioridades, de forma que o desenvolvimento a longo prazo tornou-se prioridade.
Cronograma
Segue a lista de atividades planejadas para o segundo semestre de 2009:
- Avaliação final das ferramentas a serem utilizadas: Serão analisadas as capacidades da biblioteca Panda3D em relação aos requisitos do projeto. Caso eles não sejam suficientes ou satisfatórios, uma ferramenta substituta será escolhida (possivelmente a própria biblioteca VTK, considerada inicialmente).
- Preparação para divulgação e desenvolvimento distribuído: A partir do momento em que o projeto estiver pronto para entrar no estágio da programação propriamente dita, ele estará pronto também para receber mais desenvolvedores, mesmo que a divulgação em si seja feita apenas mais tarde. Primeiro será definido um nome para o projeto. Em seguida será escolhido um sistema de colaboração de código e um site de hospedagem de projetos compatível com esse sistema. Finalmente, uma página de apresentação e divulgação será criada.
- Início do desenvolvimento do software: Será iniciado o desenvolvimento do software propriamente dito, concomitante com o desenvolvimento dos respectivos testes. Como meta inicial, o projeto deverá ser capaz de exibir imagens médicas segundo o método "clássico" (quadro a quadro).
- Avaliação do funcionamento interno do software: Nesse ponto será realizada uma avaliação do software implementado até o momento. Caso o funcionamento interno não satisfaça os objetivos prioritários, será feita uma discussão para identificação das falhas e em seguida uma refatoração interna de acordo com as conclusões alcançadas.
- Pôster e apresentação: Será preparado um pôster e uma apresentação para exibir os objetivos principais do projeto (citados nesta proposta), as conclusões sobre as análises e reflexões feitas e os avanços alcançados até o fim deste ano letivo.
- Monografia: Finalmente, será redigida a monografia detalhando os aspectos da execução do projeto e a experiência pessoal como aluno.
Cronograma por mês:
Julho | 1. Avaliação de ferramentas 2. Preparação para divulgação 3. Desenvolvimento |
Agosto | 2. Preparação para divulgação 3. Desenvolvimento |
Setembro | 3. Desenvolvimento 4. Avaliação do funcionamento |
Outubro | 4. Avaliação do funcionamento 5. Pôster 6. Monografia |
Novembro | 6. Monografia |
Estrutura da Monografia
Em linhas gerais, a monografia planejada terá a seguinte estrutura:
- Introdução: Uma breve introdução, de conteúdo semelhante à seção de introdução desta proposta.
- Pesquisa realizada e conclusões iniciais: Exposição das atividades realizadas antes do início do desenvolvimento do software e conclusões alcançadas a partir das análises realizadas e das dificuldades iniciais enfrentadas.
- Processo de desenvolvimento: Descrição detalhada do processo de desenvolvimento utilizado e a relação com a pesquisa, as dificuldades e os objetivos gerais.
- Resultados alcançados e expectativas: Exposição dos resultados alcançados em relação à expectativa inicial, em relação à expectativa revista e finalmente em relação à expectativa futura quanto à continuidade de longo prazo do projeto.
- Conclusão: Exposição da percepção do projeto em relação à análise inicial e às conclusões alcançadas na pesquisa, e percepção da importância do projeto.
- Bibliografia: Bibliografia.
- Experiência pessoal: Ao fim, será apresentada uma seção descrevendo a percepção pessoal sobre a participação no projeto, sua importância na formação como aluno, a interação pessoal durante todo o processo e a relação do projeto com o curso de graduação.