segmentação de imagens médicas baseada no uso das … · também existem técnicas de...

7

Click here to load reader

Upload: hoangdieu

Post on 03-Jan-2019

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Segmentação de Imagens Médicas Baseada no Uso das … · Também existem técnicas de segmentação que se baseiam na detecção dos contornos dos objetos que fazem parte da imagem

Segmentação de Imagens Médicas Baseada no Uso das Bibliotecas ITK e VTK

Diego R. Medaglia (FAPERGS), Isabel Harb Manssour (Orientadora) Pontifícia Universidade Católica do Rio Grande do Sul, Faculdade de Informática

Av. Ipiranga, 6681 - Prédio 30 - Bloco C 90619-900 - Porto Alegre/RS - Brasil

[email protected], [email protected]

Resumo

Com o aperfeiçoamento das técnicas de aquisição

de imagens médicas, tais como a Tomografia Computadorizada e a Ressonância Magnética, a capacidade e a fidelidade do diagnóstico por imagens foram ampliadas.Um banco de imagens médicas pode se beneficiar de técnicas de processamento de imagens para classificar as imagens e permitir o reconhecimento de padrões. A segmentação é uma técnica usada neste tipo de aplicação, pois permite isolar regiões da imagem que possuem características em comum, ajudando a classificá-las de acordo com as estruturas que a compõem. O principal objetivo deste trabalho é apresentar o projeto e o desenvolvimento de uma ferramenta para segmentação interativa de imagens médicas. Esta aplicação permite a leitura de imagens DICOM e foi implementada usando o VTK e o ITK, ajudando no projeto de um sistema que gerencie um banco de imagens médicas. 1. Introdução

Com a evolução das técnicas de aquisição de imagens médicas, tais como a tomografia computadorizada (CT) e a ressonância magnética (MRI), que fornecem informações mais detalhadas do ponto de vista de resolução e de distinção de tecidos, a capacidade e a fidelidade do diagnóstico por imagens foram ampliadas. Nos últimos anos os pesquisadores da área de Computação Gráfica, Processamento de Imagens e Visão Computacional vêm desenvolvendo técnicas de visualização, processamento e análise destas imagens. Tais técnicas permitem que os médicos visualizem, classifiquem, analisem e manipulem tanto as imagens bidimensionais como as representações tridimensionais dos órgãos em estudo [20,21]. Aplicações deste tipo visam facilitar o

diagnóstico médico que pode ser feito também à distância. A criação de bancos de imagens, que possam ser consultados pelas características das imagens auxiliaria ainda mais o diagnóstico.

Os bancos de imagens se beneficiam do uso de técnicas de processamento de imagem para reconhecimento de padrões e classificação de imagens. Uma das técnicas utilizadas é a segmentação, pois permite isolar uma região da imagem que possua características comuns, ajudando, assim, a classificar imagens de acordo com as estruturas presentes nas mesmas, tais como órgãos ou estruturas patológicas. O banco de imagens propiciaria, dessa maneira, uma pesquisa baseada em padrões e estruturas presentes nas imagens.

O objetivo deste trabalho é apresentar o projeto e o desenvolvimento de uma ferramenta que disponibiliza um filtro de segmentação interativo. Foi implementado para este fim um leitor de séries DICOM [2], um visualizador de fatias desse mesmo formato e a funcionalidade de segmentar imagem usando como base a técnica de Region-Growing. Esta ferramenta de segmentação foi desenvolvida no âmbito do projeto PROAVIM - Processamento, Análise e Visualização de Imagens Médicas - da Faculdade de Informática da PUCRS. O projeto visa à criação de um framework para as citadas funcionalidades para atender a demanda do Hospital São Lucas da PUCRS, em Porto Alegre. O trabalho resultante deste projeto será utilizado para a criação de um banco de imagens, propiciando ao usuário uma interface amigável que permita visualização, análise e processamento das imagens.

A Seção 2 apresenta alguns trabalhos relacionados. A ferramentas desenvolvida, incluindo sua modelagem e funcionalidades é descrita na Seção 3. A Seção 4 contém as conclusões e trabalhos futuros.

Page 2: Segmentação de Imagens Médicas Baseada no Uso das … · Também existem técnicas de segmentação que se baseiam na detecção dos contornos dos objetos que fazem parte da imagem

2. Fundamentos e Trabalhos Relacionados

Nesta seção são apresentadas algumas técnicas de segmentação (Seção 2.1) e algumas ferramentas descritas na literatura que já implementam estas técnicas (Seção 2.2).

2.1. Técnicas de Segmentação

Segmentação pode ser definida como uma técnica

que separa os elementos de uma imagem em regiões que apresentam a mesma propriedade ou característica [8,9]. Essas regiões podem ser caracterizadas por pixels, contorno ou textura, definindo assim três principais classes de técnicas de segmentação: baseada em região, contorno e textura.

Na segmentação baseada em regiões, é considerado o conteúdo dos pixels da imagem, definindo regiões por inclusão dos pixels que contenham certas características. Já na segmentação baseada em contorno, a característica levada em conta é a definição geométrica dos elementos da imagem. Finalmente, a segmentação por textura considera regularidades e repetição de características como critério de caracterização de uma região.

A segmentação pode também ser dividida quanto ao papel do usuário no processo, definindo assim três grupos: automática, manual e interativa. Como os algoritmos de segmentação automática tendem a apresentar resultados diferentes daqueles que seriam apresentados pela segmentação manual feita por um usuário experiente, a técnica mais usada é a segmentação interativa, automatizando parte do processo e deixando que o usuário ajude com sua experiência e bom senso.

Uma técnica de segmentação bastante conhecida é a segmentação por crescimento de região (Region-Growing) através da conexão de limiares (connected threshold). Nesse método semi-automático de segmentação, a região é segmentada a partir de um ponto de partida (seed) informado pelo usuário, visitando os pixels vizinhos e verificando se estes se incluem numa faixa de valores de intensidade também informados pelo usuário. Enquanto houver novos pixels que pertençam à região, o algoritmo continua. A presença de ruído pode prejudicar o funcionamento deste algoritmo.

Também existem técnicas de segmentação que se baseiam na detecção dos contornos dos objetos que fazem parte da imagem. Neste caso, podem ser usados algoritmos de detecção de bordas. Um problema que

pode ocorrer nesta técnica é a existência de descontinuidades.

Morfologia matemática também é usada para extrair componentes da imagem. Neste caso, operadores morfológicos auxiliam na detecção de componentes da imagem, facilitando a descrição dos objetos [6].

2.2. Ferramentas de Segmentação

Algumas ferramentas que dão suporte ao processo

de segmentação já foram desenvolvidas e descritas na literatura. Um exemplo é o VolView [3], uma ferramenta comercial implementada com o VTK e ITK. O VolView permite ler vários formatos de dados, incluindo o DICOM, e disponibiliza segmentação.

O Dual-T-Snakes é uma metodologia para segmentação de imagens 2D bastante poderosa, mas não eficiente para imagens com ruído. Um aperfeiçoamento desta técnica foi desenvolvido por Giraldi et. al. [4]. Apesar dos resultados positivos alcançados, aparentemente não foi desenvolvida uma interface para a fácil aplicação deste algoritmo.

Uma técnica de segmentação específica para imagens de mamografia foi desenvolvida por Santos [6]. A segmentação neste caso foi implementada tomando como base a técnica da transformada Watershed.

O CTMRedit é um exemplo de ferramenta para visualização, segmentação e interpolação de imagens de CT e MRI [7]. Pode ser usado gratuitamente, mas para sua utilização é necessário ter instalado o Matlab versão 5.0 ou superior.

3. Ferramenta Desenvolvida

Nesta seção o protótipo implementado é

apresentado. Inicialmente, na Seção 3.1, é brevemente descrito o projeto dentro do qual este trabalho foi elaborado. Na Seção 3.2 é apresentado o ambiente de desenvolvimento, incluindo todos os toolkits utilizados. A modelagem e a interface da aplicação são descritas, respectivamente, nas seções 3.3 e 3.4. Uma comparação com alguns sistemas existentes é realizada na Seção 3.5. 3.1. Contexto dentro do Projeto

Atualmente está sendo desenvolvido um projeto de

pesquisa na Faculdade de Informática da PUCRS com o objetivo de desenvolver novas ferramentas para dar suporte à análise, processamento e visualização de

Page 3: Segmentação de Imagens Médicas Baseada no Uso das … · Também existem técnicas de segmentação que se baseiam na detecção dos contornos dos objetos que fazem parte da imagem

imagens médicas. O objetivo principal é implementar técnicas de processamento e análise de imagens para a construção de uma aplicação que dê suporte à classificação de imagens e reconhecimento de padrões para a criação de um banco de imagens médicas. O presente trabalho consiste na primeira ferramenta que foi implementada para este projeto com o auxílio de uma bolsa de iniciação científica. O seu objetivo é auxiliar na extração de características das imagens para permitir a classificação das mesmas.

3.2. Ambiente de Desenvolvimento

A ferramenta foi implementada usando a

linguagem de programação C++, seguindo o paradigma orientado a objetos [10]. Para auxiliar no seu desenvolvimento foram utilizados três toolkits open-source: o VTK (Visualization Toolkit), o ITK (Insight Toolkit) e o FLTK (Fast Light Toolkit).

O VTK [1,11] é um toolkit desenvolvido e disponibilizado gratuitamente pela Kitware Inc., possuindo código fonte aberto e é totalmente portável. Ele consiste em uma biblioteca de classes implementadas em C++ e utilizada para o processamento de imagens e visualização científica, que possui diversos níveis de interface para linguagens interpretadas, incluindo Tcl/Tk, Java e Phyton.

O ITK [12,13] disponibiliza uma série de algoritmos para processamento de imagens n-dimensionais, e foi criado pela National Library of Medicine (NLM) como referência de coleção de algoritmos para o processamento das imagens do Projeto do Humano Visível (Visible Human Project) e de imagens médicas em geral. Integra-se bem com o VTK, e usa programação genérica para prover mais flexibilidade ao programa. O uso do ITK foi necessário porque ele disponibiliza os filtros adequados para implementar a segmentação de imagens médicas

O FLTK [14] é um toolkit para rápida criação de interfaces gráficas para Windows/XWindow. Foi usado por ser código aberto e de fácil aprendizado. Além disso, é portável, foi desenvolvido sob a Licença Pública Geral GNU e é otimizado, tanto em tamanho de código como em desempenho.

O ambiente de desenvolvimento Microsoft Visual Studio .NET 2003 foi utilizado juntamente com o gerente de configuração CMake [15], desenvolvido pela própria Kitware para depuração e implementação.

3.3. Modelagem Como a ferramenta de segmentação implementada consiste numa primeira etapa do projeto que começou a ser desenvolvido na nossa instituição em agosto de 2005 (Seção 3.1), suas funcionalidades são simples e podem ser resumidas através do diagrama de casos de uso apresentado na Figura 1. Este diagrama, bem como o diagrama de classes da Figura 2, é descrito utilizando a Unified Modeling Language (UML) [17,18]

Figura 1: Diagrama de casos de uso.

O diagrama de classes da aplicação apresentado na Figura 2 inclui algumas classes do VTK, apesar de também terem sido utilizadas classes do ITK. Durante a sua modelagem, procurou-se tomar como base o padrão Model-View-Controller (MVC) [18]. MVC consiste em uma tríade de classes extremamente usadas em sistemas interativos para construção de interfaces com o usuário A implementação do padrão MVC mantém o núcleo funcional do sistema independente da interface, facilitando tanto a extensão do sistema como a alteração da interface.

De acordo com o padrão MVC, o modelo corresponde a algumas classes do VTK e do ITK em conjunto com outras desenvolvidas especificamente para a aplicação em questão. Objetos FLTK são usados nas classes responsáveis pela interface do sistema.

A janela principal da aplicação consiste em uma instância da classe UserInterface, que contém objetos do FLTK. A classe GeradorDeImagens auxilia a UserInterface para a geração das miniaturas (thumbnails), enquanto que a classe GeradorDeNomes provê as funcionalidades de descobrir os nomes dos

Page 4: Segmentação de Imagens Médicas Baseada no Uso das … · Também existem técnicas de segmentação que se baseiam na detecção dos contornos dos objetos que fazem parte da imagem

arquivos que pertencem à mesma série DICOM na pasta especificada pelo usuário.

A classe Segmenter, responsável pela funcionalidade de segmentação, possui objetos ITK e conta com a ajuda de um objeto SegmenterInterface, para que o usuário forneça parâmetros para o algoritmo. Esta classe se relaciona com a classe Viewer que contém os objetos VTK que são responsáveis pela visualização da imagem. Objetos vtkImageViewer, vtkRenderWindowInteractor e vtkRenderWindowInteractor controlam a interação com o usuário, possibilitando que este escolha pixels na imagem através de clique do mouse. A classe PickerCallback, que estende a classe vtkCommand do VTK, é responsável pela transmissão das coordenadas dos pixels para a interface da ferramenta de segmentação (SegmenterInterface) cada vez que o usuário clica na imagem. Isso é feito sobrescrevendo a rotina de picking implementada pelo VTK.

Figura 2: Diagrama de classes.

3.4. Interface e Funcionalidades A ferramenta de segmentação possui uma interface

simples, desenvolvida com o FLTK, que permite ao usuário carregar uma pasta com uma série DICOM através de um selecionador de pastas provido pelo FLTK. O processo de carregar a série DICOM é feito por objetos do ITK: indicando uma pasta, o ITK irá identificar quais arquivos pertencem à série, gerando uma lista de nomes de arquivos. A seguir, através do uso da biblioteca GDCM [16], é feita a leitura seqüencial dos arquivos da série, montando miniaturas das fatias através de conversão de cada um dos arquivos para uma imagem JPEG. Posteriormente, essas são exibidas em um painel como botões, como mostra a Figura 3. Adicionalmente, pode-se observar que o nome do paciente, idade, data do estudo e instituição onde foi realizado o mesmo são exibidos na parte inferior da janela.

Figura 3: Interface do sistema.

Selecionando uma das fatias por um clique de mouse, uma janela de visualização, juntamente com uma janela de controle para segmentação (intitulada “Segmentador”) são abertas, como mostra a Figura 4.

Figura 4: Janela de controle da segmentação.

Page 5: Segmentação de Imagens Médicas Baseada no Uso das … · Também existem técnicas de segmentação que se baseiam na detecção dos contornos dos objetos que fazem parte da imagem

A janela de visualização exibe, através de objetos VTK, a fatia selecionada. A imagem é obtida pela conexão entre esses objetos VTK e os objetos leitores do ITK. Na janela de visualização é possível “selecionar” um pixel (picking) com um clique do mouse de maneira que suas coordenadas, bem como sua intensidade, sejam listadas na janela de controle. Isto é feito para escolher um ponto de partida (ou seed) para o algoritmo de segmentação. Os sliders na janela de controle para segmentação são utilizados para escolher os critérios de inclusão do pixel na imagem resultante através da definição dos limiares de intensidade máximos e mínimos, e para escolher o valor de substituição dos pixels na nova imagem. Clicando no botão “Segmentar” é acionado o procedimento para a segmentação, no qual é utilizado o algoritmo de crescimento de região já explicado na Seção 2.1. Essa escolha foi feita por ser uma técnica simples de ser implementada com a ajuda do ITK e por envolver interação com o usuário.

A partir do resultado da segmentação é criada uma nova imagem contendo apenas os pixels que foram incluídos na região segmentada, cuja intensidade foi provida pelo usuário. Um exemplo de segmentação é apresentado na Figura 5. Para gerar esta imagem foi selecionado um pixel de intensidade 95 nas coordenadas 255,187 da imagem original, e foram usados com parâmetro os valores mínimo e máximo de 81 e 269, respectivamente, e 269 como valor de substituição.

Figura 5: Resultado da segmentação aplicada a uma imagem do encéfalo.

A Figura 6 exibe uma fatia axial de tomografia computadorizada. Sobre esta imagem foi aplicado o filtro de segmentação, selecionando o pixel de intensidade 479 na posição 262, 299. Usando valores mínimo e máximo de 87 e 2542, respectivamente, se obteve o resultado é exibido na Figura 7.

Figura 6: Fatia de tomografia computadorizada.

Figura 7: Resultado da segmentação aplicada à imagem de tomografia da Figura 6.

Page 6: Segmentação de Imagens Médicas Baseada no Uso das … · Também existem técnicas de segmentação que se baseiam na detecção dos contornos dos objetos que fazem parte da imagem

Para efeito de comparação, uma outra segmentação foi feita sobre o mesmo ponto de partida mas com um valor mínimo mais alto, no caso, 353. O resultado está apresentado na Figura 8.

Figura 8: Resultado da segmentação aplicada à imagem da Figura 6 com valor de mínimo

mais alto se comparado à Figura 7.

3.5. Comparação com Outras Aplicações

A aplicação desenvolvida é um protótipo de uma ferramenta de segmentação baseada nos toolkits VTK e ITK. Porém, pretende-se, através da integração com os próximos trabalhos do projeto PROAVIM, que esta ferramenta seja útil para os profissionais da saúde. Portanto, por enquanto, é difícil fazer uma comparação com as funcionalidades disponíveis em aplicações comerciais ou até mesmo de código aberto desenvolvidas por grandes organizações. No entanto, algumas vantagens comentadas a seguir já se tornam aparentes.

Como é baseada em toolkits de código aberto, pode ser distribuída gratuitamente, diferentemente do VolView, que é uma ferramenta comercial. Além disso, sua independência de outros programas pesados (e pagos), como o Matlab, também a torna mais acessível. Como o projeto PROAVIM tem como um dos objetivos o desenvolvimento de uma interface gráfica amigável, futuramente espera-se que às vantagens apontadas anteriormente some-se a uma interface que facilite a interação dos usuários finais

com funcionalidades desenvolvidas no presente trabalho.

4. Conclusões e Trabalhos Futuros

A ferramenta desenvolvida pode ser considerada como uma primeira experiência na nossa instituição de uso do ITK e seus algoritmos, bem como de sua integração com o VTK, que já estava sendo usado dentro desta linha de pesquisa [5]. A leitura de arquivos DICOM foi investigada e implementada e foram integradas as bibliotecas VTK, ITK e FLTK. Desta forma, a inclusão de novos filtros (tal como para redução de ruído), torna-se mais fácil, facilitando também a inclusão de novas funcionalidades. Através do que está disponível atualmente é possível verificar uma série de imagens DICOM e facilmente realizar uma segmentação semi-interativa em qualquer uma destas imagens.

Futuramente, esta ferramenta de segmentação será integrada com outras ferramentas desenvolvidas anteriormente, que incluem a visualização de volumes, a elaboração de diferentes cortes e a extração de medidas [5]. Além disso, pretende-se usar a sobreposição de imagens para exibir os resultados da segmentação em relação à imagem original e validar os resultados obtidos junto a profissionais da área da saúde. 5. Agradecimentos

Este trabalho foi financiado pela FAPERGS e PUCRS. 6. Referências

[1] Avila, Lisa S. et al. The VTK user's guide: updated for VTK version 4.2. Upper Saddle River, NJ: Kitware, 2003. 324 p.

[2] National Electrical Manufacturers Association - Digital Imaging and Communications in Medicine (DICOM)

Part 1: Introduction and Overview. Disponível em http://medical.nema.org/dicom/2006/06_01pu.pdf (Julho, 2006)

[3] Kitware Inc. VolView – Interactive and Intuitive Volume Visualization. Disponível em http://www.kitware.com/products/volview.html (Julho, 2006).

Page 7: Segmentação de Imagens Médicas Baseada no Uso das … · Também existem técnicas de segmentação que se baseiam na detecção dos contornos dos objetos que fazem parte da imagem

[4] Giraldi, G., Strauss, E., and Oliveira, A. 2003. Dual-t-snakes model for medical imaging segmentation. Pattern Recognition Letter. v. 24, n. 7. Apr. 2003. p. 993-1003.

[5] Iglezias, Leandro M.; Czekster, Ricardo M.; Manssour, Isabel H. Uma Ferramenta Interativa para Visualização e Exploração de Imagens Médicas. In: CLEI2005 - XXXI Conferencia Latinoamericana de Informática, 2005, Cali, Colombia. 2005.

[6] Vivian Toledo Santos. Segmentação de Imagens Mamográficas para Detecção de Nódulos em Mamas Densas. Dissertação de Mestrado, USP. 2002.

[7] Mark Hasegawa-Johnson; Jul Cha. CTMRedit: a matlab GUI for viewing, segmenting, and interpolating CT and MRI Images. Disponível em http://www.icsl.ucla.edu/~spapl/CTMRedit/index.html (Julho, 2006)

[8] Nedel, C.; Manssour, I.;Freitas, C. Image Acquisition and Processing. In: SIBGRAPI’99-XII Brazilian Symposium on Computer Graphics and Image Processing, 1999, Campinas, Brasil.

[9] Russ, John C. The Image Processing Handbook. 3. ed. Raleigh : CRC, c1999. 771 p.

[10] Deitel, Harvey M. C++: How to Program. 4. ed. Upper Saddle River, NJ: Prentice Hall, c2003. 1321 p.

[11] Schroeder, Will. The Visualization Toolkit: an object-oriented approach to 3D graphics. Upper Saddle River, NJ: Prentice-Hall, 1996. 826 p

[12] Insight into Images: principles and practice for segmentation, registration, and image analysis. Wellesley, MA: A. K. Peters, c2004. 393 p.

[13] The ITK Software Guide Second Edition Updated for ITK version 2.4. Disponível em: http://www.itk.org/ItkSoftwareGuide.pdf (Julho 2006).

[14] FLTK 1.1.7 Programing Manual. Disponível em: http://www.fltk.org/doc-1.1/fltk.pdf (Julho 2006).

[15] CMake-Cross platform make. Disponível em: http://www.cmake.org/HTML/Index.html. (Julho 2006).

[16] Gdcm Home Page. Disponível em: http://www-creatis.insa-lyon.fr/Public/Gdcm/. (Julho 2006).

[17] Larman, Craig. Utilizando UML e padrões. 2. ed. Porto Alegre:Bookman, 2004. 607 p.

[18] Booch, Grady. The unified modeling language user guide. Reading, MA: Addison-Wesley, c1999. 482 p.

[19] Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., And Stal, M. 1996. Pattern-Oriented Software Architecture, A System of Patterns. John Wiley & Sons.

[20] Sonka, Milan; Fitzpatrick, Michael (eds). Handbook of medical imaging. Bellingham, WA: SPIE, 2000.

[21] Sonka, Milan; Hlavac, Vaclac; Boyle, Roger. Image processing, analysis, and machine vision. 2. ed. Pacific Grove: PWS, 1999. 770 p.