FACULDADE DE INFORMÁTICA DE PRESIDENTE
PRUDENTE
CONTORNOS ATIVOS SNAKES PARA A SEGMENTAÇÃO DE
IMAGENS DIGITAIS
FAGNER DANIEL DE MELO
Presidente Prudente – SP
2005
FACULDADE DE INFORMÁTICA DE PRESIDENTE
PRUDENTE
CONTORNOS ATIVOS SNAKES PARA A SEGMENTAÇÃO DE
IMAGENS DIGITAIS
FAGNER DANIEL DE MELO
Trabalho monográfico apresentado no
curso de graduação, Bacharelado em
Ciência da Computação, como requisito
parcial para sua conclusão.
Área de concentração: Processamento
Gráfico.
Orientadores:
MSc. Francisco Assis da Silva
MSc. Leandro Luiz de Almeida
Presidente Prudente – SP
2005
FICHA CATALOGRÁFICA
004
MELO, Fagner Daniel.
Contornos Ativos Snakes para a Segmentação
de Imagens Digitais Fagner Daniel de Melo. –
Presidente Prudente: UNOESTE: Universidade do
Oeste Paulista, 2005.
84p. : il
Monografia (Graduação) – Universidade do
Oeste Paulista – UNOESTE, Presidente
Prudente, SP, 2005.
Bibliografia
1. Segmentação de Imagens, 2. Contornos
Ativos. 3. Snake. I. Autor. II. Título.
DEDICATÓRIA
Dedico este trabalho a minha mãe Maria Rodrigues de Melo e ao meu
pai Antonio de Melo, que nunca mediram esforços e sempre estiveram presentes em
todos os momentos de sua realização. Aos meus irmãos Fabio, Fernando e Flávia
pelo carinho e confiança.
AGRADECIMENTOS
A minha família que, em todos os momentos de realização desta
pesquisa, esteve presente. A minha namorada que esteve sempre presente ao meu
lado com toda a sua irreverência.
Agradecimentos também ao professor orientador, MSc. Francisco Assis
da Silva e ao professor Co-Orientador, MSc. Leandro Luiz de Almeida que, na
rigidez de seus ensinamentos, fez aprimorar meus conhecimentos.
Em especial ao professor, Dr. Almir Olivette Artero, pela amizade e
auxílio no desenvolvimento do projeto.
Aos meus amigos Amandia, Diogo, Eli, Julierme, Marco Aurélio, Rafael,
Sidney e Vanderlei pelo companheirismo e os muitos momentos de alegria
compartilhados.
EPÍGRAFE
“[...] A imaginação é mais importante que o conhecimento. [...]”
Albert Einstein
MELO, Fagner Daniel. Contornos Ativos Snakes para a Segmentação de
Imagens Digitais. Presidente Prudente: UNOESTE, 2005. Monografia de
Graduação.
Orientador: MSc. Francisco Assis da Silva
Co-Orientador: MSc. Leandro Luiz de Almeida
RESUMO
Há alguns anos os métodos de detecção de bordas vêem se tornando um
importante recurso utilizado no processo de Segmentação de Imagens. Concentramse grandes esforços em experimentos de novas técnicas, que buscam suprir alguns
problemas encontrados nos métodos mais antigos, cujos resultados são publicações
nos mais conceituados periódicos científicos, tais como o método Gradient Vector
Flow e o T-Snakes. O método de Contornos Ativos Snake é uma solução para a
segmentação de imagens digitais, que possui a característica de movimentar uma
curva de maneira dinâmica sobre a imagem, até que se alinhe às bordas do objeto
de interesse. Este projeto apresenta o desenvolvimento de um novo método de
contornos ativos Snake que, baseado no modelo tradicional proposto por Kass,
Witkin e Terzopoulos, e nas suas evoluções, solucione os problemas dos métodos
tradicionais de forma simples e com desempenho computacional significativo. Para
tanto apresenta-se uma ferramenta para a execução dos métodos Snakes
desenvolvidos, de acordo com algumas energias envolvidas no processo, e que
servirá de base para aplicações em áreas específicas.
MELO, Fagner Daniel. Contornos Ativos Snakes para a Segmentação de
Imagens Digitais. Presidente Prudente: UNOESTE, 2005. Graduation Monograph.
Adviser: MSc. Francisco Assis da Silva
Co-Adviser: MSc. Leandro Luiz de Almeida
ABSTRACT
The some years ago the edges detention methods it became an important resource
used in the Images Segmentation process. Great efforts are concentrated in
experiments of new techniques to supply some problems found in the old methods,
whose resulted are publications in the best scientific periodic such as the Gradient
method Flow Vector and the T-Snakes. The Active Contours Snake method is a
solution for the segmentation of digital images. It has the characteristic to motion a
curve in a dynamic way on the image until found the edges of the interest object. This
project presents the development of a new Snake active contours method that based
in the traditional model by Kass, Witkin and Terzopoulos and in its evolutions, solves
the problems of the traditional methods of simple form and with significant
computational performance. A tool for the execution of the developed Snakes
methods is presented, in accordance with some involved energies in the process,
and that it will serve of base for applications in specific areas.
LISTA DE FIGURAS
FIGURA 1 – Representação da segmentação por Detecção de Bordas (OLIVEIRA,
2000). .................................................................................................................14
FIGURA 2 - Aplicação do Modelo Snake. .................................................................15
FIGURA 3 – Representação de uma Imagem Digital (RIBEIRO, 1998)....................19
FIGURA 4 – Arranjo matricial com respectivos níveis de cinza.................................20
FIGURA 5 – Representação: Imagem original e imagem com ruído (RIBEIRO, 1998).
...........................................................................................................................21
FIGURA 6 – Aplicação do filtro da média (RIBEIRO, 1998). .....................................22
FIGURA 7 – Aplicação do filtro da mediana (RIBEIRO, 1998). .................................24
FIGURA 8 – Curva de grau dois, definida a partir de três pontos (OLIVEIRA, 2000).
...........................................................................................................................25
FIGURA 9 – Representação da ação da curva do modelo de contornos ativos
(SILVA, 2003).....................................................................................................28
FIGURA 10 – Direção da força elástica atuando sobre um ponto pi. (OLIVEIRA,
2000) ..................................................................................................................32
FIGURA 11 – Ponto de contorno vi sobre a ação da energia de continuidade
(OLIVEIRA, 2000). .............................................................................................34
FIGURA 12 – Ação da força balão sobre um contorno inicial. ..................................35
FIGURA 13 – Utilização da matriz Egrad (7 x 7) para a obtenção da energia baseada
em gradiente (OLIVEIRA, 2000). .......................................................................38
FIGURA 14 – (a) Imagem original contendo alguns objetos (bordas) e algumas
terminações e (b) Snake obtida (OLIVEIRA, 2000)............................................39
FIGURA 15 – Algoritmo para contornos ativos (TRUCCO, 1998). ............................43
FIGURA 16 – (a) Imagem original com seu contorno inicial e (b) contorno final obtido
com o método original (XU; PRINCE, 1997). .....................................................44
FIGURA 17 – Determinação de uma nova força baseada no fluxo do vetor gradiente
(GVF) (XU; PRINCE, 1997)................................................................................45
FIGURA 18 – (a) contorno inicial, (b) contorno final obtido com o modelo de energias
tradicional, (c) contorno inicial (definido longe das bordas do objeto), (d)
contorno final utilizando GVF (XU; PRINCE, 1997). ..........................................47
FIGURA 19 – (a) contorno inicial (passando através das bordas do objeto), (b)
contorno obtido utilizando GVF (c) contorno inicial, aplicado no interior de um
conjunto de pontos (contorno subjetivo) e (d) resultado obtido utilizando GVF
(XU; PRINCE, 1997). .........................................................................................48
FIGURA 20 – (a) Imagem médica e o contorno inicial, (b) contorno final utilizando
GVF (OLIVEIRA, 2000). .....................................................................................48
FIGURA 21 – Triangulação Coxeter-Freudental. ......................................................49
FIGURA 22 – Representação do novo modelo em um determinado estado de
evolução (MACHADO, 2003). ............................................................................51
FIGURA 23 – Extração de atributos para objetos previamente segmentados via
extração de bordas (SÁ, 2005). .........................................................................53
FIGURA 24 – Contagem e mensuração automática de fibras musculares sem um
pré-processamento. ...........................................................................................54
FIGURA 25 – Contagem e mensuração automática de fibras musculares após a
etapa de pré-processamento. ...........................................................................54
FIGURA 26 – Utilização de contornos ativos para a determinação da área do disco
ótico. ..................................................................................................................55
FIGURA 27 – Utilização de contornos na análise de avalanches de neve, (a)
contorno obtido em um momento e (b) contornos obtidos em momentos
diferentes mostram a evolução da avalanche de neve. .....................................55
FIGURA 28 – Em análise o ponto p1: a deformação é iterativa e ocorre deslocando o
ponto analisado para um novo ponto central, que é o produto vetorial entre os
snaxels de p0p1 e p1p2. O processo segue iterativamente para todos os pontos
iterativamente.....................................................................................................58
FIGURA 29 – Em análise o ponto p1: a deformação é iterativa e ocorre deslocando o
ponto analisado em direção ao baricentro da curva. O processo segue
iterativamente para todos os pontos iterativamente...........................................59
FIGURA 30 – Representação da direção dos vetores normais para o processo de
expansão da curva.............................................................................................61
FIGURA 31 – Aplicação da energia externa utilizando-se de um limiar de duas
classes de tons de cinza. O histograma representa a quantidade de tons de
cinza da imagem original e da imagem sob o efeito limiar. ................................62
FIGURA 32 – Aplicação da energia externa utilizando-se de um limiar de duas faixas
de tons de cinza. O histograma representa a quantidade de tons de cinza da
imagem original e da imagem sob o efeito limiar (OLIVEIRA, 2000). ................63
FIGURA 33 – Aplicação da força de rotação.............................................................65
FIGURA 34 – Convolução Aperiódica. ......................................................................66
FIGURA 35 – Aplicação do filtro da média. ...............................................................67
FIGURA 36 – Exemplo da substituição do pixel mediano. ........................................67
FIGURA 37 – Aplicação do filtro da mediana. ...........................................................68
FIGURA 38 – Máscara do Operador Laplaciano.......................................................68
FIGURA 39 – Aplicação do Filtro Laplaciano com a operação de Negação de Cores
...........................................................................................................................68
FIGURA 40 – Aplicação do Filtro de Binarização pela Média Global. .......................69
FIGURA 41 – Aplicação do Filtro Limiar igual a 5. ....................................................70
FIGURA 42 – Agrupamento de Níveis de Cinza. ......................................................70
FIGURA 43 – Equação do Filtro Limiar. ....................................................................70
FIGURA 44 – Interface principal da Ferramenta de Segmentação por Contornos
Ativos Snake. .....................................................................................................71
FIGURA 45 – Representação da Classe TSnakes....................................................72
FIGURA 46 – Representação da Classe Snakes......................................................73
FIGURA 47 – Representação gráfica da estrutura de dados do projeto. ..................74
FIGURA 48 – Imagem recém aberta pela ferramenta...............................................77
FIGURA 49 – Configuração da Snake inicial.............................................................77
FIGURA 50 (a) – Deformação da Snake. ..................................................................78
FIGURA 50 (b) – Divisão da Snake...........................................................................78
FIGURA 51 – Contorno final dos objetos. .................................................................79
FIGURA 52 – Passos de uma situação crítica do experimento e resolução via Junção
de duas Snakes. ................................................................................................81
SUMÁRIO
1 INTRODUÇÃO......................................................................................................11
1.1
1.2
1.3
1.4
1.5
Classificação dos Métodos de Segmentação....................................................12
Modelo Baseado em Bordas e Contornos Ativos ..............................................13
Objetivos, Justificativas e Motivações do Projeto..............................................16
Trabalhos Correlatos e suas Aplicações ...........................................................17
Estrutura desta Monografia ...............................................................................18
2 CONCEITOS BÁSICOS .......................................................................................19
2.1 Imagem Digital ..................................................................................................19
2.2 Pré-Processamento...........................................................................................20
2.2.1 Ruídos ............................................................................................................21
2.2.2 Filtros..............................................................................................................21
2.2.2.1 Filtros da Média ...........................................................................................22
2.2.2.2 Filtro da Mediana .........................................................................................23
2.3 Curvas Splines ..................................................................................................24
3 O MODELO DE CONTORNOS ATIVOS ..............................................................27
3.1 Energia Interna..................................................................................................30
3.1.1 Modelo baseado na elasticidade e rigidez da curva .......................................30
3.1.2 Modelo Baseado na Continuidade e Força Balão ..........................................32
3.1.2.1 Energia de Continuidade .............................................................................33
3.1.2.2 Força Balão..................................................................................................34
3.2 Energia Externa.................................................................................................36
3.2.1 Energia da Intensidade da Imagem ................................................................36
3.2.2 Energia do Gradiente da Imagem...................................................................37
3.2.3 Energia das Terminações...............................................................................39
3.2.4 Outras energias externas ...............................................................................40
3.3 Energia Confinada.............................................................................................40
3.4 Normalização das Energias ..............................................................................41
3.5 Algoritmo Greedy ..............................................................................................41
4 OS MODELOS: GRADIENT VECTOR FLOW (GVF) E T-SNAKES ....................44
4.1 A nova força externa: Gradient Vector Flow......................................................44
4.2 O modelo T-Snakes ..........................................................................................49
5 APLICAÇÕES DOS MÉTODOS SNAKES ...........................................................52
5.1
5.2
5.3
5.4
Sistema Semi-Automático para Análise de Imagens Digitais ............................52
Contagem e Mensuração de Fibras Musculares ...............................................53
Medição do Disco Ótico ....................................................................................55
Análise de Avalanches ......................................................................................55
6 O PROJETO: DESENVOLVENDO UM MODELO DISCRETO DE SNAKE ........56
6.1 Energias Desenvolvidas....................................................................................57
6.1.1 Energias Internas ...........................................................................................57
6.1.1.1 Força Tradicional .........................................................................................57
6.1.1.2 Força Baricentro ..........................................................................................59
6.1.1.3 Força Mista ..................................................................................................60
6.1.1.4 Força Balão Tradicional e Força Balão Baricentro.......................................61
6.1.2 Energia Externa ..............................................................................................61
6.1.3 Energia Confinada ..........................................................................................64
6.1.3.1 Força de Rotação ........................................................................................64
6.1.3.2 Criação de Pontos Intermediários................................................................65
6.2 Filtros de Pré-Processamento Desenvolvidos...................................................65
6.2.1 Filtro da Média................................................................................................66
6.2.2 Filtro da Mediana ............................................................................................67
6.2.3 Filtro Laplaciano .............................................................................................68
6.2.4 Binarização pela Média: Local e Global..........................................................69
6.2.5 Filtro Limiar.....................................................................................................69
7 A FERRAMENTA DESENVOLVIDA ....................................................................71
7.1 Estruturas Utilizadas .........................................................................................72
7.2 Preenchimento dos Campos e Passos para a Deformação..............................75
7.3 Considerações Adicionais .................................................................................79
8 EXPERIMENTOS E RESULTADOS.....................................................................80
9 CONCLUSÕES.....................................................................................................82
REFERÊNCIAS BIBLIOGRÁFICAS.........................................................................83
11
1
INTRODUÇÃO
A segmentação (BALAN, 2003), é um processo essencial para análise
e identificação de características marcantes em uma imagem. Seu objetivo é
identificar os objetos que compõem uma cena, sendo, na maioria dos casos, o
grande responsável pelo sucesso ou fracasso dos resultados obtidos da análise.
Esta etapa consiste em abstrair objetos para utilizá-los em processos posteriores
como classificação, reconhecimento, dentre outros.
Algumas das ocorrências que dificultam a tarefa de segmentar uma
imagem de forma eficiente são (MIYASAKI, 2003):
•
Existência de ruído na imagem: o nível de ruído em uma imagem
pode ser devido a vários fatores: deficiência dos dispositivos de
imageamento, interferências eletromagnéticas, entre outros;
•
Baixo contraste na imagem: em algumas situações os objetos
presentes na imagem não apresentam uma boa separação nos tons
de cinza ou mesmo cores;
•
Falta de uma iluminação adequada: pode levar ao aparecimento de
áreas de sombra, que podem induzir a segmentação de um único
objeto em dois pedaços (área clara e área escura).
Para tanto existe a etapa que visa garantir em grande parte a correção
das imperfeições resultantes das imagens, sendo esta definida de préprocessamento de imagens. A função desta etapa é aprimorar as qualidades da
imagem para a etapa de segmentação, sendo feita por meio de filtros especializados
que visam a sua suavização (MARQUES, 1999).
Além da etapa de pré-processamento na segmentação de imagens,
pode-se utilizar uma outra etapa, que é também conhecida como pósprocessamento. O pós-processamento é utilizado para completar a tarefa de
segmentação, para os casos em que esta não obtiver bons resultados (OLIVEIRA,
2000).
12
Para o processo de segmentação são utilizadas duas propriedades
básicas: similaridade e descontinuidade. A similaridade procura pixels com a mesma
tonalidade ou pertencentes à mesma faixa de intensidade nos níveis de cinza. A
descontinuidade procura pixels que possuam tonalidades diferentes nos níveis de
cinza.
1.1
Classificação dos Métodos de Segmentação
De acordo com Gonzalez (GONZALEZ, 1987), os métodos de
segmentação podem ser classificados em: Limiarização, Detecção de Bordas e
Baseado em Regiões.
•
Limiarização: é considerado o método mais simples, onde todos os
pixels que pertencem a uma mesma faixa de intensidade compõem
uma mesma região. Sua funcionalidade se baseia na propriedade
de similaridade;
•
Detecção de Bordas: é usado para localizar regiões na imagem
onde os níveis de cinza dos pixels variam bruscamente; num pixel a
intensidade é uma e nos pixels imediatamente ao seu redor
possuem uma intensidade bem diferente. São conhecidas como
descontinuidades e podem aparecer na forma de pontos isolados,
linhas, segmentos ou curvas. A partir das descontinuidades são
formados os contornos dos objetos;
•
Crescimento por Regiões: tem o intuito de aumentar pequenos
grupos de pixels em grupos maiores, baseado em um conjunto
inicial, a partir deste conjunto, se junta os pixels vizinhos que
possuem propriedades semelhantes, como cor, textura, dentre
outras propriedades.
Existem vários métodos utilizados para a segmentação de imagens,
alguns muito antigos e a maioria apresentam deficiências em algumas situações.
13
Alguns, quando aplicados em imagens com altos níveis de ruídos e com diferentes
características de contexto podem não apresentar resultados satisfatórios. Sendo
assim, novos métodos que apresentem bons resultados, mesmo em situações
adversas, continuam ainda sendo investigados.
Este projeto utiliza a propriedade de descontinuidade e segue a
classificação segundo as abordagens envolvidas no processo de detecção de
bordas.
1.2
Modelo Baseado em Bordas e Contornos Ativos
Há alguns anos o assunto detecção de bordas vem desafiando
pesquisadores da área de Processamento de Imagens, cada vez mais surgem
experimentos de novas técnicas, cujos resultados são publicados nos mais
conceituados periódicos científicos mundiais. Este modelo é um dos processos
existentes para a segmentação de imagens digitais que vem apresentando
resultados satisfatórios. Por sua vez, ele tem a tarefa de dividir uma imagem em
suas unidades significativas, visando realçar as bordas de objetos de uma cena,
para posterior análise e compreensão.
De acordo com Gonzalez (GONZALEZ, 2000), a suposição inicial da
abordagem baseada em bordas é que ela é fundamental no processo de análise de
imagens, porque as bordas definem o contorno dos objetos presentes na imagem.
Sendo assim, justifica-se o grande interesse dos pesquisadores no estudo e
desenvolvimento de métodos voltados a esta área.
Como exemplo da abordagem tradicional baseada na detecção de
bordas, tem-se a figura 1, onde, dada uma imagem original com alto nível de ruído
realiza-se a segmentação por detecção de bordas mostrando os resultados obtidos
dessa segmentação.
14
(a)
(b)
(c)
(d)
FIGURA 1 – Representação da segmentação por Detecção de Bordas (OLIVEIRA, 2000).
De acordo com a figura 1 tem-se: (a) uma imagem original
apresentando alto nível de ruído, (b) imagem de bordas, (c) contorno obtido por
vetorização (utilizando linhas retas ao invés de uma abordagem via Splines) e (d)
forma esperada.
Grande parte dos métodos existentes para a segmentação de imagens
possui
algumas
restrições
quando
aplicados
em
imagens
de
diferentes
características de contexto, como altos níveis de ruídos e contraste, não
apresentando resultados satisfatórios no processo. Um modelo que, mesmo nestas
situações, apresenta uma melhor continuidade do contorno é a segmentação por
contornos ativos Snakes.
O Modelo de Contorno Ativo é uma vigorosa técnica de análise de
imagens, pois oferecem um único e poderoso método que mistura geometria, física e
teoria de aproximação.
Este modelo é caracterizado por tentar ajustar uma curva sobre a
borda de um objeto da imagem. As Snakes (KASS, 1988) são modelos que possuem
15
a capacidade de se deformar até se adequar ao objeto de interesse. A figura 2 trata
um contorno inicial (curva) e o resultado final da aplicação do modelo.
FIGURA 2 - Aplicação do Modelo Snake.
Com a deformação, as Snakes não retornam ao seu formato original,
pelo fato de que forças atuam sobre ela (KASS, 1988). Estas forças são devidas a
energias, que são conhecidas por energia interna e energia externa. A energia
interna é responsável por deformar a Snake enquanto a energia externa é
responsável por puxar, atrair a Snake em direção à borda do objeto. O termo modelo
deformável refere-se a uma curva que se deforma sob ação de forças internas e
externas.
O campo de atuação deste modelo é extensamente vasto, englobando
aplicações que envolvem detecção de bordas, modelagem de formas, segmentação
e rastreamento de movimentos.
Problemas associados principalmente com a inicialização da curva e
convergência a limites côncavos limitaram a utilidade das Snakes tradicionais. O
modelo do Fluxo de Vetor Gradiente (GVF) é uma nova força externa para contornos
ativos que resolve ambos os problemas em grande parte. Esta força externa é
computada como uma difusão dos vetores gradiente dos níveis de cinza derivados
da imagem. Com isso tem-se como resultado a insensibilidade a inicialização e uma
maior flexibilidade do contorno quando aplicada em regiões côncavas. Outro modelo
que apresenta resultados satisfatórios é o T-Snakes, que visa o tratamento de
mudanças topológicas dos objetos da imagem.
16
1.3
Objetivos, Justificativas e Motivações do Projeto
O objetivo desse projeto é realizar o desenvolvimento e implementação
de um novo modelo para a segmentação de imagens digitais via a abordagem de
contornos ativos Snake e que apresente uma evolução do modelo Snake tradicional.
Para tanto, realizou-se a investigação da utilização de contornos ativos Snakes na
segmentação de imagens digitais e conseqüentemente a análise e confronto dos
resultados obtidos desta investigação, objetivando o desenvolvimento de um modelo
com características próprias e conceitualmente simples. Um outro objetivo é realizar
experimentos dos algoritmos Snakes desenvolvidos com imagens de diferentes
características de contexto, com relação à iluminação, ruídos, topologia, cores, entre
outros. Neste contexto, desenvolveu-se uma ferramenta para auxiliar a execução
dos algoritmos implementados desta técnica, com o intuito de facilitar a realização
dos experimentos.
Esse é um importante recurso para a solução de problemas em
processamento de imagens digitais, particularmente para a etapa de segmentação
de imagens, mas muito utilizada também em rastreamento de movimento e
modelagem de formas. As aplicações que englobam esta técnica estão em
ascensão, com destaque para as áreas da medicina, cartografia e computação
gráfica. A forma suave dos objetos envolvidos nestas áreas, porém não regular,
incentiva à utilização de Snakes, devido à tendência dos contornos se deformarem e
se adequarem ao objeto, mantendo característica de suavidade da curva.
Outro fator relevante que justifica o uso desta técnica é a menor
sensibilidade a ruídos, podendo ser aplicada mais eficientemente em imagens com
altos níveis de ruídos, mantendo mesmo nestas situações uma melhor continuidade
do contorno.
As motivações que levaram a realização deste projeto se resumem ao
fato de que existem diversas propostas de segmentação de imagem, algumas muito
antigas e a maior parte delas apresentam alguma deficiência em alguma situação.
Sendo assim, a investigação de novos métodos que apresentem melhores
resultados para segmentação de imagens, como é o caso do modelo deformável
17
para localização de bordas Gradient Vector Flow GVF (Fluxo do Vetor Gradiente) e o
modelo para tratamento de mudanças topológicas T-Snakes, que vem suprindo os
problemas habituais encontrados nos modelos tradicionais, é um fator de extrema
importância. Tal investigação serviu de base para a solução adotada neste projeto.
Outra motivação é do fato de que as aplicações Snakes estão em constante
ascensão, com grande influência nas áreas de processamento de imagens,
imageamento médico, segmentação e rastreabilidade de movimentos (MIYASAKI,
2003).
1.4
Trabalhos Correlatos e suas Aplicações
Existem diversos trabalhos relacionados ao método de segmentação
por contornos ativos Snakes, sendo estes aplicados em uma vasta gama de
aplicações, como medicina, geografia, entre outros. Dentre estes, cita-se neste
projeto o trabalho de Silva (SILVA, 2003), “Geo-Snake: uma aplicação da técnica
Snake em imagens geográficas”. Este trabalho consiste em uma ferramenta para a
identificação de elementos específicos e características em imagens de satélite,
como por exemplo, a identificação de regiões e sub-regiões de mesmo relevo,
estradas, rodovias e tipos de vegetação.
Alguns trabalhos enfatizam a definição de novos modelos, que são
evolução do modelo de contornos ativos Snake tradicionais, e que buscam resolver
alguns de seus problemas e limitações para com isso garantir maior flexibilidade e
desempenho na segmentação de imagens digitais. O presente projeto segue a linha
desses novos modelos, buscando o desenvolvimento de um modelo próprio de
maneira simples e que resolva os problemas das Snakes tradicionais.
18
1.5
Estrutura desta Monografia
Após a síntese introdutória correspondente ao primeiro capítulo desta
monografia, apresentam-se os conceitos mais elaborados. O capítulo 2 fornece base
inicial para a elaboração do projeto, descrevendo os conceitos sobre imagens
digitais, pré-processamento de imagens, alguns filtros de suavização, e curvas
Splines.
O capítulo 3 corresponde a descrição do modelo de contornos ativos
tradicional, apresenta a formulação inicial proposta por Kass, Witkin e Terzopoulos
(KASS, 1988), algumas formas de se desenvolver as energias envolvidas no
processo de segmentação pelo método Snake e descrição lógica do algoritmo
Greedy. O capítulo 4 descreve os modelos Gradient Vector Flow (GVF) e o TSnakes que resolvem os problemas encontrados nas Snakes tradicionais com
grande eficiência e que serviram de base para o desenvolvimento de uma solução
própria. Algumas aplicações abordando o contexto do projeto serão apresentadas no
capítulo 5.
Descreve-se no capítulo 6 o projeto implementado, seus conceitos e
métodos que, tomando por base os conteúdos apresentados nos capítulos
anteriores, contribuíram para o desenvolvimento de uma solução autêntica para os
modelos de contornos ativos Snake. O capítulo 7 é referente à ferramenta
desenvolvida para execução de testes dos algoritmos implementados, buscando
enfatizar as estruturas utilizadas, a exploração e tradução dos conceitos teóricos
para a solução computacional e uma breve descrição da utilização da ferramenta.
Por fim, o capítulo 8 trata dos resultados obtidos por meio da realização
de experimentos com imagens diversas, vantagens e limitações do modelo proposto,
extensão do projeto para futuras versões e conclusões finais.
19
2
2.1
CONCEITOS BÁSICOS
Imagem Digital
Uma Imagem Digital é formada por um conjunto de pontos discretos de
tons de cinza e brilho, que são geralmente organizados em uma matriz de pixels
(PEREIRA, 1996). Um pixel é representado por um ponto (x, y) que corresponde à
sua localização na imagem. Como representado na figura 3.
Considera-se que, a localização (0, 0) corresponde ao canto superior
esquerdo da imagem, e f(x, y) corresponde ao tom de cinza ou cor da imagem na
posição (x, y).
Píxel
Imagem Digital
Nível de cinza do píxel
FIGURA 3 – Representação de uma Imagem Digital (RIBEIRO, 1998).
20
Uma Imagem Digital é uma imagem contínua amostrada em um
arranjo matricial M x N, sendo o valor de cada elemento da matriz o nível de cinza do
pixel correspondente no plano de imagem (figura 4).
FIGURA 4 – Arranjo matricial com respectivos níveis de cinza.
2.2
Pré-Processamento
A etapa de pré-processamento tem o objetivo do realce e suavização
de uma imagem de modo que a imagem resultante seja mais adequada para uma
aplicação específica, dada uma imagem original. A utilização de um préprocessamento (aplicação de filtros) antes da segmentação por contornos ativos
deve ser algo considerável (MENDELS, 1999), pois quanto melhor estiver à imagem
a ser segmentada maior é a possibilidade de uma segmentação eficiente.
A interpretação do resultado desta etapa normalmente é subjetiva e
dependente de conhecimento prévio do observador a respeito das imagens
analisadas. Não existem técnicas de suavização e realce capazes de resolver 100%
dos problemas que uma imagem digital possa apresentar, mas seus resultados são
relativamente satisfatórios, apresentando um bom desempenho (MARQUES, 1999).
Já estes problemas são referentes à principalmente ruídos existentes em imagens
digitais, mas também podem se influenciados por outros fatores como falta de
iluminação adequada e baixo contraste.
Serão apresentados alguns filtros na etapa de suavização para
eliminação de ruídos em imagens, sendo estes os por filtragem pela media e filtro da
mediana.
21
2.2.1 Ruídos
São causados por erros na transmissão de dados, onde os pixels
corrompidos ou são alterados para o valor máximo, ou tem alguns bits alterados,
causando uma diferença brusca de tons entre estes pixels e seus vizinhos
(RIBEIRO, 1998). A figura 5 demonstra uma imagem original sem ruído e a mesma
com alto nível de ruído.
Imagem Original
Imagem com Ruído
FIGURA 5 – Representação: Imagem original e imagem com ruído (RIBEIRO, 1998).
2.2.2 Filtros
Os filtros de passa baixa, também conhecidos como filtros de
suavização, são empregados na remoção de ruídos de alta freqüência espacial em
imagens digitais. Ruídos estes que são geralmente introduzidos durante o processo
de conversão analógico-digital (RIBEIRO, 1998).
Entre as técnicas de suavização conhecidas, existem as de suavização
conservativa, que são técnicas de redução de ruídos que têm seu nome derivado do
fato de empregar um algoritmo simples e rápido de filtragem que elimina o ruído de
forma a manter os detalhes de altas freqüências como os contornos da imagem.
Essa técnica é especialmente desenvolvida para remover picos de ruídos, porém
não é muito eficiente na redução de ruído aditivo.
22
2.2.2.1 Filtros da Média
O filtro da média é implementado da seguinte maneira, tem-se uma
janela que percorre toda a imagem, o elemento central dessa janela recebe a média
de todos os elementos da janela (RIBEIRO, 1998). Por exemplo, tem-se a janela 3x3
abaixo:
A média dos valores é: (12 + 238 + 244 + 244 + 245 + 245 + 247 + 250
+ 252) / 9 = 219. Assim o valor do pixel central que era 12 será 219.
A figura 6 mostra o exemplo da aplicação do filtro da média.
Imagem Original
Imagem com Ruído
Imagem após filtro 3x3
Imagem após filtro 5x5
FIGURA 6 – Aplicação do filtro da média (RIBEIRO, 1998).
23
2.2.2.2 Filtro da Mediana
Uma das principais limitações do filtro da média, em situações onde o
objetivo é a remoção de ruídos em imagens, está na sua incapacidade de preservar
bordas e detalhes finos de imagem. Para contorná-la, uma técnica alternativa é o
filtro da mediana. Nesta técnica, o nível de cinza do pixel central da janela é
substituído pela mediana dos pixels situados em sua vizinhança.
Neste filtro o pixel central é substituído pelo valor mediano de seus
vizinhos. O processo consiste em ordenar na forma crescente ou decrescente os
valores dos pixels e pegar o valor mediano (RIBEIRO, 1998). Por exemplo (Janela
3x3):
Ordenando os valores tem-se: 12, 238, 244, 244, 245, 245, 247, 250,
252. O quinto valor é o mediano, ou seja, o valor 245.
Um dos maiores problemas do filtro da mediana é o seu custo
computacional, pois para encontrar o pixel mediano é necessário que se ordenem
todos os valores da vizinhança, sendo relativamente mais lento do que o filtro da
média.
24
A figura 7 mostra o exemplo com a aplicação do filtro da mediana:
Imagem Original
Imagem com Ruído
Imagem após filtro media3x3
Imagem após filtro mediana 3x3
FIGURA 7 – Aplicação do filtro da mediana (RIBEIRO, 1998).
Este
método
apresenta
desempenho
particularmente
bom
em
situações onde a imagem é contaminada por bastante ruído .
2.3
Curvas Splines
Um dos motivos da escolha de Splines no método de segmentação por
contornos ativos é o fato de que elas são suficientemente flexíveis para representar
qualquer tipo de curva, preservando características da suavidade do objeto. A curva
é definida exclusivamente por um conjunto de pontos de controle, que funcionam
como pontos de atração sobre a curva (OLIVEIRA, 2000).
25
Segundo Angel (ANGEL, 1997), a interpolação utilizando Splines
propõe que o contorno do objeto seja dividido em um conjunto de partes ou
segmentos, sendo estes pequenas curvas ou arcos, que podem ser representados
adequadamente por polinômios de graus pequenos.
A figura 8 mostra a obtenção de uma curva de grau dois, tendo como
objetivo mostrar a sua forma de construção.
FIGURA 8 – Curva de grau dois, definida a partir de três pontos (OLIVEIRA, 2000).
Tendo definidos os pontos da curva p0 e p1 são tomadas às direções
das curvas, que são derivadas dos dois pontos que a definem. O objetivo é obter
uma curva suave, sem quebras bruscas do contorno. Através da interseção dos
vetores direção, que foram originados dos pontos p0 e p1, define-se o terceiro ponto
(v), sendo a curva de grau dois, definida por:
p(t) = b0 + b1t + b2t2, t∈ [-1,1]
(1)
Onde:
b0 =
p 0 + p1
+
2
v−
p 0 + p1
2
,
2
b1 =
p1 − p 0
2
e
p 0 + p1
−v
2
b2 =
2
Na figura 8 o ponto v atua como um ponto de atração da curva e
quando o mesmo é movido, arrasta também a curva em sua direção.
A interpolação utilizando uma Spline Cúbica consiste em repartir o
26
intervalo em k subintervalos e, em seguida, obter k polinômios de grau três para
cada um deles.
Algumas condições para a definição destes polinômios são (SILVA,
2004):
1. Em cada ponto de controle, devem ser iguais às inclinações dos
polinômios que nele incidem, de modo a proporcionar a suavidade
desejada;
2. Em cada ponto de controle, também precisam ser iguais às
curvaturas dos polinômios que neles incidem, constituindo no
conceito de energia potencial mínima.
A segmentação pelo método Snake possui grande dependência da
topologia dos objetos da imagem a ser segmentada. Objetos com menos curvas e
concavidades são relativamente mais fáceis de serem segmentados do que os
topologicamente mais complexos. A definição da Snake via a abordagem de Splines
viabiliza a segmentação para qualquer que seja o objeto, pois garante a suavidade
da curva desde o processo de deformação até a localização do contorno do objeto,
com isso tem-se como resultado final uma curva que melhor represente o objeto
real.
27
3
O MODELO DE CONTORNOS ATIVOS
O modelo de contornos ativos, em sua formulação original proposta por
Kass, Witkin e Terzopoulos (KASS, 1988), foi o método proposto para resolver o
problema de localização de bordas de objetos em imagem. A partir da sua
formulação foi possível resolver vários problemas de visão computacional e análise
de imagens.
Este modelo leva em consideração a propriedade da descontinuidade e
tem o objetivo de identificar bordas de objetos que compõem uma imagem, sendo
em geral aplicados conjuntamente com técnicas de filtragem e suavização usadas
na detecção de pontos de bordas. Estes métodos se iniciam em uma configuração
mais ou menos arbitrária, um contorno inicial, que evolui até contornar o objeto de
interesse. Devido a este comportamento dinâmico que se tem à definição de
“modelos deformáveis”.
A segmentação utilizando contornos ativos é caracterizada por tentar
ajustar uma curva, no caso desse projeto uma Spline, sobre uma imagem. A
movimentação da Spline ocorre de forma a tentar minimizar a energia funcional
(TRUCCO, 1998) que é dada pela combinação das energias da curva e da imagem,
trata-se de um modelo baseado em conceitos físicos. Devido ao fato da Spline se
mover constantemente buscando encontrar a borda e se ajustar aos níveis mínimos
de energia, a técnica é também conhecida como Snakes.
Algumas vantagens com a utilização de Snakes para a segmentação
de imagens, segundo a visão de Pichumani (PICHUMANI, 1997):
•
São fáceis de manipular, pelo fato das forças externas se
comportarem de uma forma intuitiva;
•
São autônomas e auto-adaptáveis na busca pelo estado de menor
energia;
•
São menos sensíveis ao ruído.
Podem
ser
utilizadas
para
seguir
dinamicamente
objetos
em
28
dimensões temporais, assim como em espaciais. Aplicação em rastreamento de
objetos.
Segundo Xu e Prince (XU; PRINCE, 1998), os modelos de contornos
ativos podem ser de dois tipos: modelos paramétricos, como as Snakes e modelos
geométricos ou implícitos, como os Level Set Methods (Métodos de Ajuste de Nível)
e os Fast Marching Methods (Métodos de Marcha Rápida).
Esse projeto enfatiza o modelo do tipo paramétrico, que sintetizam
curvas paramétricas ou superfícies dentro de um domínio de imagem e lhes permite
se orientar a características desejadas, normalmente extremidades.
Os modelos paramétricos são constituídos de curvas elásticas que
agem sobre a imagem até encontrar a borda do objeto de interesse, sendo o
processo realizado de maneira dinâmica. Nesta composição atuam basicamente
duas forças: a força elástica e a da imagem ou de restrição. Devido a estas forças é
que a Snake pode se transformar no molde do objeto e também ser atraída para as
bordas do objeto de interesse.
A figura 9 ilustra a composição e ação desse modelo para a detecção
de objetos de uma cena:
(a)
(b)
(c)
FIGURA 9 – Representação da ação da curva do modelo de contornos ativos (SILVA, 2003).
Este modelo necessita da especificação de uma curva inicial, cuja
posição é definida pelo usuário, como se observa em (a). Junto é associada uma
função objetivo, que é denominada por energia da Snake. Esta energia é composta
de duas partes: energia interna e a energia externa. A interna considera aspectos
físicos como elasticidade, que é a capacidade em que a curva tem de se deformar
29
sob a ação de uma força e retornar ao seu formato original quando a mesma é
removida e aspectos de rigidez, que é a resistência da curva de manter-se dobrada.
A energia externa considera as características da própria imagem. Em (b) tem-se a
representação da atuação dessas energias com o processo em andamento. A
Snake se conforma quando encontrar o limite do objeto (c).
De acordo com a definição de Kass, Witkin e Terzopoulos (KASS,
1988), uma Snake é uma curva v(s)=[x(s),y(s)] que se move pela imagem buscando
minimizar a energia funcional. O x(s) e o y(s) são as coordenadas x, y ao longo do
contorno e s ∈ [0, 1] é o comprimento do arco normalizado.
1
Esnake = ∫ Eint v( s ) + Eext v( s ) ds
(2)
0
A energia interna Eint é totalmente definida pela curva e a energia
externa Eext é derivada da imagem. Em (2), v(s) = (x(s), y(s)) é a representação
paramétrica do contorno.
A energia funcional definida em (2) é uma combinação de energias
interna e externa, a ferramenta matemática indicada para a sua solução é o cálculo
variacional, que determina o mínimo de um funcional (assim como o cálculo provê
um método para a determinação do mínimo de uma função ordinária) (Trucco, 98).
A correspondência do modelo com o contorno só é alcançada pela procura de um
vetor que minimize a soma dessas energias. A conformidade com o contorno é
alcançada quando a soma for igual à zero.
Uma discretização de (2) permite definir a energia da Snake como:
Esnake = ∑ Eint + Eext
(3)
Outras energias podem ser inseridas em (3), sendo comum à definição
de uma energia devida a certo conhecimento sobre a forma que o contorno do
objeto apresenta. Esta energia é conhecida como energia confinada, segundo Sonka
(SONKA, 1998).
30
E snake = ∑ Einterna + Eexterna + Econfinada
(4)
Cada uma destas energias principais pode ser composta de outras
energias, de forma a obter o comportamento desejado em cada situação.
3.1
Energia Interna
A energia interna é obtida a partir da própria curva, tendo como um de
seus principais objetivos deformar a Snake e manter a suavidade da curva. Neste
contexto, serão apresentados alguns modelos e definições desta energia. Seguem
abaixo os modelos com base na elasticidade e rigidez da curva e com base na
continuidade e força balão.
3.1.1 Modelo baseado na elasticidade e rigidez da curva
Este modelo foi proposto por Sonka (SONKA, 1998) sendo um modelo
relativamente simples para a energia interna. É baseado em conceitos de
elasticidade e rigidez da curva.
2
Einterna
dv
d 2v
= α ( s)
+ β ( s) 2
ds
ds
2
(5)
Por definição tem-se:
α(s) especifica a elasticidade da curva ou resistência ao se esticar.
β(s) especifica a rigidez da curva ou resistência ao se torcer.
Na implementação torna-se necessário o cálculo da curvatura, que,
utilizando a parametrização v(s) = (x(s), y(s)) é dada por:
31
k=
x ' y"− x" y'
( x' 2 + y ' 2 )3/ 2
(6)
Utilizando diferenças finitas tem-se as seguintes aproximações
(WILLIAMS; SHAH, 1992) para os termos em (5).
2
dv
2
≈ vi − vi −1 = ( xi − xi −1 ) 2 + ( yi − yi −1 ) 2
ds
(7)
e
2
d 2v
2
v
v
v
≈
−
2
+
= ( x i−1 − 2 x i + x i +1 ) 2 + ( y i−1 − 2 y i + y i+1 ) 2
i
−
i
i
+
1
1
2
ds
(8)
Na equação (7) e (8), assume-se que os pontos estejam igualmente
espaçados em intervalos unitários. Quando isso não ocorrer, a equação (7) precisa
ser dividida por d2 e a equação (8) por d4, onde d é a distância entre os pontos
(SILVA, 2004).
Como visto na equação (5), enquanto o termo α(s) controla a tensão ao
longo da curva, β(s) controla a rigidez. Assim, para o caso de β(s) = 0, tem-se uma
descontinuidade no local, o que possibilita o aparecimento de um canto. Quando
α(s) e β(s) forem iguais à zero tem-se uma quebra no contorno.
A tensão ao longo da curva pode ser medida por meio de uma função
que mede o comprimento do contorno, porém, observa-se que a Snake apresenta
um melhor comportamento se os pontos de controle são também mantidos
igualmente espaçados (Young, 1995). Partindo desta observação, uma forma mais
conveniente para a definição da energia é tomar a soma dos quadrados das
distâncias entre os pontos adjacentes. Uma energia assim definida deve apresentar
uma resposta mais rápida, se comparada com a energia obtida com o comprimento
total da curva. A energia elástica pode então ser escrita como:
n
Eelastica = k1 ∑ distancia( pi , pi−1 )2
i =1
(9)
32
onde: k1 é uma constante, a ser ajustada e, pi e pi-1 são pontos de controle
adjacentes.
A energia definida em (9) atua em um ponto de controle xi puxando-o
em direção da reta que liga os seus dois vizinhos xi-1 e xi+1, conforme mostra a figura
10. Isto pode ser realizado pela definição das componentes em X e Y desta energia.
EelasticaX ,i = k1[( xi−1 − xi ) + ( xi+1 − xi )]
(10)
E elasticaY ,i = k1 [ ( y i −1 − y i ) + ( y i +1 − y i )]
(11)
e
A figura 10 mostra geometricamente o comportamento desta energia.
pi+1
Força elástica sobre xi
pi
pi-1
FIGURA 10 – Direção da força elástica atuando sobre um ponto pi. (OLIVEIRA, 2000)
A energia interna deve ser capaz de forçar a preservação da forma do
contorno e também manter constante a distância entre os pontos do contorno
(OLIVEIRA, 2000).
3.1.2 Modelo Baseado na Continuidade e Força Balão
Uma outra forma de definir a energia interna é apresentada em
Mackiewich (MACKIEWICH, 2005), que a define como sendo a soma de uma
33
energia de continuidade (continuity energy) e uma força balão (ballon force). A
energia interna é então escrita como:
Einterna (vi ) = cEcont (vi ) + bEbal (vi )
(12)
onde: Econt(vi) é a energia de continuidade, que força a forma do contorno e, Ebal(vi) é
a força balão, que faz o contorno esticar ou encolher. Os parâmetros c e b são
pesos, utilizados para ajustar cada um destes termos. As energias Eext , Eint , Econt e
Ebal podem ser representadas por meio de matrizes, nas quais o elemento vi ocupa a
posição central. As dimensões pequenas destas matrizes definem uma pequena
região de processamento em torno deste elemento conforme mostra a figura 11, que
sugere a utilização de uma matriz 7x7.
3.1.2.1 Energia de Continuidade
A energia de continuidade Econt faz com que um contorno aberto tome a
forma de uma linha reta, enquanto que um contorno fechado é forçado a tomar a
forma de um círculo. A energia para cada elemento cjk(vi) na matriz Econt(vi) pode ser
escrita como MACKIEWICH (2005) :
c jk (vi ) =
1
p jk (vi ) − γ (vi −1 + vi +1
I (V )
2
(13)
onde:
1 n
I (V ) = ∑ v i+1 − v i
n i =1
2
(14)
é um fator de normalização, dado pela distância média entre os pontos de V
(contorno); A normalização é importante em (13) para que a Econt(vi) seja
independente do tamanho, localização e orientação de v. Em (13), pjk(vi) é o ponto
na imagem que corresponde espacialmente ao elemento da matriz de energia cjk(vi).
O parâmetro γ = 0.5 para um contorno aberto e, neste caso, o ponto de energia
mínima é exatamente o meio entre os pontos vi-1 e vi+1, conforme apresentado na
34
figura 11. Para o caso de contornos fechados, γ é definido como:
γ =
1
⎛ 2π ⎞
2 cos⎜ ⎟
⎝ n ⎠
(15)
Neste caso o ponto de mínima energia na matriz Econt(vi) é aquele que
empurra V, para a posição que mais torna o contorno parecido com um círculo.
vi-2
vi-1
Matriz
vi
definida
pela
Vizinhança de vi
vi’
vi+1
Contorno
Círculo
Centróide do contorno
vi+2
FIGURA 11 – Ponto de contorno vi sobre a ação da energia de continuidade (OLIVEIRA, 2000).
Na figura 11, o ponto vi é o local de menor energia na matriz, porque
está mais próximo do círculo que passa pelos pontos vi-1 e vi+1 (considera-se
também a necessidade de manter o afastamento eqüidistante entre os pontos do
contorno).
3.1.2.2 Força Balão
A força balão é definida para controlar a expansão e a contração do
contorno. Espera-se que a força balão auxilie um contorno inicial a se expandir até
35
as proximidades das bordas do objeto.
A figura 12 mostra a ação desta força, sobre uma imagem e um
suposto contorno inicial.
ti
Objeto
com
intensidade
Força
balão
ni
Contorno final (V)
uniforme
Contorno inicial (V)
FIGURA 12 – Ação da força balão sobre um contorno inicial.
A força balão deve ser grande em regiões homogêneas e pequena nas
regiões de bordas dos objetos (MACKIEWICH, 2005).
Cada elemento cjk(vi) da matriz Ebal(vi) pode ser expresso como o
produto vetorial :
c jk (vi ) = ni ⊗ (vi − p jk (vi ))
(16)
onde ni é o vetor normal de V no ponto vi e pjk(vi) é o ponto na vizinhança de vi
correspondente a entrada cjk(vi) na matriz energia. Assim, a força balão se torna
pequena nos pontos afastados de vi na direção ni. O vetor ni pode ser obtido a partir
de uma rotação do vetor tangente ti, dado por (figura 12):
ti =
vi − vi −1
v −v
+ i +1 i
vi − vi −1
vi +1 − vi
(17)
36
3.2
Energia Externa
Como visto, a energia externa é totalmente obtida a partir da imagem,
tendo diversas formas para sua definição. Algumas formas consideram as
informações referentes aos níveis de cinza dos pixels, outras consideram pixels de
bordas da imagem, entre outras formas.
Segundo Mackiewich (MACKIEWICH, 2005), levar em consideração a
informação dos níveis de cinza e também dos pontos de borda resultam na definição
da energia externa como sendo:
E externa (vi ) = mE mag (vi ) + gE grad (vi )
(18)
onde: Emag(vi) representa a energia que empurra o contorno para áreas com os
maiores níveis de cinza, enquanto que Egrad(vi) é a energia que empurra o contorno
em direção aos pontos de borda. Os parâmetros m e g são utilizados para ajustar a
participação de cada termo. O parâmetro m pode ainda ser ajustado para fazer o
contorno ser atraído por áreas escuras ou claras, dependendo do sinal adotado.
Outras energias podem ser também utilizadas para compor a energia
externa e, uma outra definição é (Sonka, 1998):
Eexterna(vi) = lEline(vi) + gEgrad(vi) + tEterm(vi)
(19)
As duas primeiras energias em (19) correspondem as duas energias
em (18), respectivamente, enquanto que Eterm(vi) é uma energia devida a presença
de terminações (pontas de linhas e cantos de objetos).
3.2.1 Energia da Intensidade da Imagem
A matriz de energia Emag(vi) ou Eline(vi) tem seus elementos cjk(vi)
definidos pelos valores dos níveis de cinza nos pontos correspondentes na imagem,
37
na vizinhança de vi (a matriz c é sobreposta à imagem no ponto vi, por isto a
definição de pontos correspondentes na imagem).
cjk(vi) = I(pjk(vi))
(20)
De forma a aumentar esta energia, pode-se tomar o quadrado das
intensidades dos níveis de cinza, e assim, a energia de intensidade fica:
n
E mag = k 2 ∑ imagem( xi , yi ) 2
i =1
(21)
3.2.2 Energia do Gradiente da Imagem
Os elementos c jk (vi ) da matriz de energia Egrad (vi ) podem ser
definidos por:
c jk (vi ) = − ∇I ( p jk (vi ))
(22)
Novamente pode ser realizada a definição das componentes em X e Y
desta energia, dadas por:
EgradX ,i = k3 [(imagem( xi +1 , yi ) − imagem( xi −1 , yi )]
(23)
EgradX ,i = k3 [(imagem( xi , yi +1 ) − imagem( xi , yi −1 )]
(24)
e
Na figura 13, o ponto vi que está na posição p4,4 da matriz deve ser
movido para a posição p2,6 (vi ) , que possui o maior gradiente.
38
Egrad (7 x 7)
FIGURA 13 – Utilização da matriz
para a obtenção da energia baseada em gradiente
(OLIVEIRA, 2000).
Observa-se que a direção do gradiente na borda do objeto deve ser
igual à norma da direção do contorno, assim, o valor de cada elemento da matriz
Egrad (vi ) pode ser definido pelo produto vetorial (OLIVEIRA, 2000):
c jk (vi ) = −ni ⊗ ∇I ( p jk (vi ))
(25)
onde ni é o vetor normal do contorno de vi .
Uma forma equivalente de definir os gradientes é utilizar localmente os
conhecidos operadores de gradiente, neste caso a energia, fica definida como:
Emag (i, j ) = g H (i, j )2 + gV (i, j )2
(26)
onde:
gH =
gV =
1
1
∑ ∑ Sobel
k =−1 I =−1
1
H
1
∑ ∑ Sobel
k =−1 I =−1
V
(i, j ) I t (i + k , j + l )
(i, j ) I t (i + k , j + l )
(27)
(28)
39
3.2.3 Energia das Terminações
As terminações das linhas e cantos dos objetos podem também ser
utilizados para influenciar o traçado do contorno, principalmente para a definição de
contornos subjetivos (OLIVEIRA, 2000), como os que aparecem na figura 14.
FIGURA 14 – (a) Imagem original contendo alguns objetos (bordas) e algumas terminações e (b)
Snake obtida (OLIVEIRA, 2000).
Uma possível definição para esta energia pode ser feita da seguinte
forma (SONKA, 1998): seja g uma versão ligeiramente suavizada da imagem f,
tomando ψ ( x, y ) as direções dos gradientes sobre a spline na imagem suavizada (g),
faça:
n( x, y ) = (cosψ ( x, y ),sin( x, y ))
(29)
nR ( x, y ) = ( − sinψ ( x, y ),cos( x, y ))
(30)
e
os vetores ao longo e perpendicular, respectivamente, às direções do gradiente
ψ ( x, y ) , então,
Eterm
ou ainda,
2
2
∂ψ ∂ g / ∂n R
=
=
∂ nR
∂ g / ∂n
(31)
40
Eterm =
(∂ 2 g / ∂y 2 )(∂g / ∂x) 2 − 2(∂ 2 g / ∂x∂y )(∂g / ∂x)(∂g / ∂y ) + (∂ 2 g / ∂x 2 )(∂g / ∂y )2
((∂g / ∂x) 2 + (∂g / ∂y ) 2 )
3
(32)
2
3.2.4 Outras energias externas
Diversas energias externas foram propostas para tentar modelar o
comportamento do contorno. Algumas dessas energias são (MARQUES, 1998):
A energia obtida com a soma de funções gaussianas centradas nos
pontos de bordas detectadas na imagem.
E (vk ) = −
1
M
∑ G (v
k
x∈ X
− x)
(33)
onde: G é a função gaussiana e M é o número de pontos de borda.
Uma energia baseada em redes elásticas, que pode ser definida por:
E (vk ) = −
1
M
∑ log ∑ G(v
x∈ X
i
− x)
(34)
i
Um modelo para a extração de regiões coloridas em imagens naturais
é apresentado em Ngoi e Jia (NGOI, 1999). Neste caso, as cores são utilizadas para
compor uma nova energia.
3.3
Energia Confinada
A energia confinada representa alguma informação que se possui à
respeito da forma do objeto, assim, para o caso de se desejar segmentar objetos
quadrados, é preciso que alguma atenção seja dada nos cantos da feição (atuando
na suavidade e rigidez da curva nestes locais). Observa-se que a energia confinada
41
é bem particular para cada tipo de aplicação (OLIVEIRA, 2000).
3.4
Normalização das Energias
Quando as energias definidas anteriormente são colocadas juntas na
equação (4), elas precisam operar de maneira a fazer que o contorno seja
empurrado para os limites do objeto na imagem. Além da necessidade de
determinações dos sinais de cada uma das componentes de energias, uma
normalização delas no intervalo [0,1] também se mostra atraente (MACKIEWICH,
2005).
3.5
Algoritmo Greedy
Este algoritmo apresenta um método para definir uma Snake sobre um
contorno em uma imagem digital. O algoritmo opera de forma local, na tentativa de
se obter uma solução global ótima. A grande vantagem do algoritmo está na sua
simplicidade (e conseqüentemente, baixo custo computacional), dispensando ainda
o conhecimento do cálculo variacional. Em seguida são apresentadas algumas
suposições iniciais e o algoritmo (OLIVEIRA, 2000).
A energia funcional é definida por :
(
)
E = ∫ α ( s ) Econt + β ( s ) Ecurv + γ ( s ) Eimage ds
(35)
Onde: Econt, Ecurv e Eimage são, respectivamente, as energias de continuidade do
contorno, a energia devida à suavidade (rigidez) da curva e a energia da imagem,
devida a atração das bordas. Como em (5), Econt é definida por :
E cont
dv
=
ds
2
Que no caso discreto pode ser escrita como :
(36)
42
Econt = || pi - pi-1 ||2
(35)
Com o objetivo de prevenir a formação de aglomerados de pontos de
contornos (é importante manter a eqüidistância entre os pontos do contorno), a
equação (35) pode ser modificada para:
E cont
⎞
⎛_
= ⎜ d − pi − pi −1 ⎟
⎠
⎝
2
(36)
_
Onde: d é a distância média entre os pares de pontos pi e pi-1. Quando || pi _
pi-1 || >> d , tem-se Econt ≈ || pi - pi-1 ||2.
O termo de suavidade deve ser capaz de impedir um excesso de
oscilações no contorno, o que, conforme já apresentado, pode ser feito através do
cálculo da curvatura, que pode ser aproximada (a curvatura pode ser aproximada
pela segunda derivada do contorno) por :
Ecurv = || pi-1 – 2pi + pi+1 ||2
(37)
Finalmente o termo Eimage pode ser obtido por meio do gradiente (38),
conforme já apresentado em (22).
Eimage = - || ∇I ||
_
(38)
_
Tomando I a imagem e p 1, ......, p N o conjunto contendo as posições
iniciais dos pontos do contorno. Deseja-se encontrar o contorno p1,......,pN, que
melhor se ajusta sobre o contorno da imagem, por meio da minimização da energia
funcional E.
N
E = ∑ (α i Econt + β i Ecurv + γ i Eimage )
i =1
(39)
com αi, βi e γi ≥ 0 e Econt, Ecurv e Eimage como em (36), (37) e (38), respectivamente.
O núcleo do algoritmo é constituído de dois passos (TRUCCO, 1998) e
as interações terminam quando um número predefinido dos pontos alcança um local
mínimo.
43
Observa-se que este algoritmo funciona bem apenas quando o
contorno inicial já está próximo do local da solução desejada (SILVA, 2004).
1. A vizinhança sobre a qual a energia funcional é localmente
minimizada é pequena (geralmente se utiliza janelas 3x3, 5x5 ou
7x7 centradas em cada ponto do contorno). A minimização da
energia é feita por comparações diretas dos valores da energia
funcional em cada localização.
2. Durante o segundo passo, o algoritmo procura por cantos
(curvaturas máximas ao logo do contorno). Se uma curvatura
máxima é encontrada em um ponto pj, βj recebe o valor zero,
desconsiderando a contribuição do termo de suavidade Ecurv no
ponto pj e tornando possível o aparecimento de um canto.
A figura 15 mostra o algoritmo definido segundo estas condições
(TRUCCO, 1998).
Algoritmo snake (snake algorithm)
A entrada é formada pela imagem I, que contém um contorno fechado de interesse e um
conjunto de pontos
p1, ...., pN definindo a posição inicial e a forma da Snake. Seja f a quantidade mínima de
pontos da Snake que precisam ser movidos em cada interação antes da convergência e
U(p) uma pequena vizinhança do ponto p.
_
_
no início, pi = p i ,
d = d , αi = βi = 1
e
γi = 1.2
Enquanto um número maior que f de pontos da Snake se movem na interação:
1 - para cada i = 1,....,N, encontre a localização de U(pi) para o qual o funcional E definido
em (36) é mínimo, e mova o ponto pi da snake para a localização;
2 – para cada i = 1,....,N, calcule a curvatura k da snake nos pontos pi, como
k = | pi-1 –2pi + pi+1 |
e verifique o máximos locais. Faça β = 0 para todos pj que a curvatura é um máximo local e
excedam um valor mínimo defindio pelo usuário;
_
3 – calcule o valor de d , média das distâncias;
FIGURA 15 – Algoritmo para contornos ativos (TRUCCO, 1998).
44
4
OS MODELOS: GRADIENT VECTOR FLOW (GVF) E T-SNAKES
Há duas dificuldades de chave com algoritmos de contorno ativos
tradicionais (XU; PRINCE, 1997), apresentados no capítulo anterior. A primeira se
refere ao contorno inicial que deve, em geral, estar perto do verdadeiro limite ou
então convergirá num provável resultado errado. A segunda é que os contornos
ativos têm dificuldades de progredirem em regiões de limite côncavo.
A figura 16 mostra uma imagem com um objeto que possui uma
concavidade e o resultado obtido utilizando o modelo tradicional de forças.
(a)
(b)
FIGURA 16 – (a) Imagem original com seu contorno inicial e (b) contorno final obtido com o método
original (XU; PRINCE, 1997).
Embora existam muitos métodos como os multiresolution e forças de
pressão, por exemplo, que foram propostos para resolver esses problemas
tradicionais, eles ou resolvem um problema ou resolvem ambos, mas, criando
dificuldades novas (XU; PRINCE, 1997).
Sendo assim, os modelos GVF e T-Snakes são evoluções da Snake
tradicional
que
além
de
resolverem
os
problemas
tradicionais
possuem
características e inovações próprias, sendo considerados atualmente os métodos
robustos, de melhor desempenho e mais flexíveis da literatura.
4.1
A nova força externa: Gradient Vector Flow
Essa nova de força externa para modelos de contorno ativos,
45
focalizando os problemas listados acima e os resolvendo em grande parte, pode ser
observada na figura 17.
FIGURA 17 – Determinação de uma nova força baseada no fluxo do vetor gradiente (GVF) (XU;
PRINCE, 1997).
As principais vantagens do GVF são que ele permite capturar a curva
em uma grande distância e, ainda pode forçá-la em regiões côncavas (XU; PRINCE,
1997).
Tal campo aponta em direção às bordas dos objetos quando próximo a
elas, mas varia suavemente sobre regiões homogêneas, se estendendo até a
fronteira da imagem. Estas propriedades garantem um maior alcance de captura da
Snake, de ambos os lados das bordas do objeto, além de forçá-la em direção a
regiões côncavas devido a um processo simultâneo de difusão (PIMENTEL, 2000).
É definido um campo de distribuição de bordas f(x, y) derivado de uma
imagem em tons de cinza I(x, y) com a propriedade de apresentar valores elevados
próximo às bordas de objetos (PIMENTEL, 2000).
f(x, y) = -Eext(x, y)
(40)
46
O gradiente ∇f tem vetores que apontam para as bordas e que, sobre
as bordas, são normais às mesmas. Estes vetores apresentam maiores magnitudes
apenas na vizinhança imediata das bordas. Sobre regiões homogêneas, onde I(x, y)
é praticamente constante, ∇f tende a zero e não há informação sobre bordas
próximas ou distantes (XU e PRINCE, 1997).
O campo GVF é então definido como o campo vetorial g(x, y) = (u(x, y),
v(x, y)) que minimiza a função de energia
(
)
E = ∫ ∫ µ u x2 + u y2 + v x2 + v y2 + ∇f
2
g − ∇f dxdy
2
(41)
Quando |∇f| é pequena, a energia é dominada pelas derivadas parciais
do campo vetorial, gerando um campo suave. Por outro lado, quando |∇f| é grande,
o segundo termo se domina integrando, e é minimizado quando g = ∇f. Isto produz o
efeito desejado de manter g praticamente igual ao gradiente da distribuição de
bordas quando este é alto, porém forçando o campo a variar suavemente em regiões
homogêneas. O parâmetro µ controla a relação entre o primeiro e o segundo termos
e é ajustado de acordo com o nível de ruído presente na imagem (maior nível de
ruído, maior µ) (XU; PRINCE, 1997).
O campo GVF pode ser determinado pela solução das equações de
Euler:
µ∇ 2u − (u − f x )( f x2 + f y2 ) = 0
(42a)
µ∇ 2 v − (v − f y )( f x2 + f y2 ) = 0
(42b)
Observa-se que em regiões homogêneas da imagem o segundo termo
das equações é nulo, e u e v são determinadas pela equação de Laplace. Assim,
nestas regiões o campo GVF resultante é interpolado a partir das bordas da região,
refletindo uma espécie de competição entre os vetores de borda, o que produz
vetores resultantes apontando para regiões côncavas de objetos (XU; PRINCE,
1997).
As equações (42) são tratadas tendo u e v como funções do tempo e
47
resolvendo (PIMENTEL, 2000):
(
2
(
2
2
)
(43a)
2
)
(43b)
ut ( x, y, t ) = µ∇ 2u ( x, y, t ) − (u ( x, y, t ) − f x ( x, y )) f x ( x, y ) + f y ( x, y )
vt ( x, y, t ) = µ∇ 2 v( x, y, t ) − (v( x, y, t ) − f v ( x, y )) f x ( x, y ) + f y ( x, y )
A solução em regime permanente destas equações parabólicas
lineares desacopladas é a solução desejada das equações de Euler (42). As
equações (43a e 43b) são conhecidas como equações gerais de difusão, presentes
na modelagem de diversos processos físicos como condução de calor, balanço de
massa em reatores e mecânica de fluídos (PIMENTEL, 2000).
Após a determinação do campo GVF, basta substituir a força potencial
externa tradicional por g(x, y) (PIMENTEL, 2000).
A figura 18 mostra alguns resultados obtidos com a inserção desta
nova energia.
FIGURA 18 – (a) contorno inicial, (b) contorno final obtido com o modelo de energias tradicional, (c)
contorno inicial (definido longe das bordas do objeto), (d) contorno final utilizando GVF (XU; PRINCE,
1997).
48
A figura 19 mostra que o método apresenta bons resultados mesmo
quando o contorno inicial cruza as fronteiras do objeto e, também, quando o
contorno do objeto é definido por um conjunto de pontos (contorno subjetivo).
FIGURA 19 – (a) contorno inicial (passando através das bordas do objeto), (b) contorno obtido
utilizando GVF (c) contorno inicial, aplicado no interior de um conjunto de pontos (contorno subjetivo)
e (d) resultado obtido utilizando GVF (XU; PRINCE, 1997).
A figura 20 mostra os resultados obtidos com este modelo, quando
aplicado sobre uma imagem médica (interior de um órgão - coração) (OLIVEIRA,
2000).
FIGURA 20 – (a) Imagem médica e o contorno inicial, (b) contorno final utilizando GVF (OLIVEIRA,
2000).
49
4.2
O modelo T-Snakes
O modelo T-Snakes visa uma segmentação de imagens capaz de lidar
com mudanças topológicas nos objetos. A capacidade de lidar com mudanças de
topologia é importante para poder segmentar objetos de contornos múltiplos e com
furos, concavidades ou ramificações. Esta capacidade permite que a Snake seja
dividida para criar múltiplos contornos ou, ainda, fundir vários em um só. Estas
operações são conhecidas como Split e Merge, respectivamente (MACHADO, 2003).
Define-se 3 componentes básicos para o modelo: triangulação, um
modelo discreto de Snake e uma função característica (MACHADO, 2003).
A triangulação busca a decomposição do domínio da imagem em
células para representá-las com objetos geométricos mais simples de dimensão n. A
triangulação utilizada neste projeto é a Coxeter-Freudental, considerada muito
simples, pois se diferem somente pela orientação e reflexão das células. Sendo
assim, decompõe-se a imagem em uma grade com quadrados iguais e divide-se
cada quadrado em 2 triângulos ou células simples (GIRALDI, 2005). A figura 21
representa a decomposição da imagem em células triangulares.
FIGURA 21 – Triangulação Coxeter-Freudental.
O componente modelo discreto de Snake é a força discreta, que é
baseada na Snake tradicional e que tem a finalidade da deformação em direção às
bordas do objeto. A força interna de tensão age para manter um espaçamento
uniforme entre os nós do modelo. A força interna de rigidez relaciona-se à suavidade
da Snake. O modelo possui também uma força interna normal usada para atrair a
Snake em direção às bordas dos objetos, procurando evitar que a Snake pare em
locais mínimos. A força externa ou força dos dados da imagem é definida em função
das características de interesse na imagem, no caso aqui considerando as bordas
dos objetos da cena.
50
A equação de evolução para o T-Snakes, que é aplicada a cada snaxel
a cada evolução, é o resultado de uma combinação entre estas forças. Uma
abordagem mais detalhada sobre estas forças e os parâmetros por elas utilizados
pode ser vista em Giraldi (2000).
A função característica permite a classificação dos triângulos da grade
utilizando os valores 0 ou 1 de seus vértices. A Snake não poderá atingir um
triângulo cujos vértices tenham valores iguais a 1 (nós queimados), e estes pontos
são os já visitados pela Snake. Por sua vez os nós da malha formados por triângulos
com valores iguais a 0 (não queimado) correspondem a regiões atingíveis pela
Snake (MACHADO, 2003). Os triângulos onde a função característica contém
valores de 0 e 1 são denominados triângulos de borda.
Para o algoritmo, projeta-se a Snake inicial fornecida pelo usuário
sobre a malha queimando os pontos externos a ela através da função que determina
se o nó está interno ou externo ao polígono. Esse processo é referente à
convergência da Snake. Para a deformação em expansão são queimados os nós
internos a Snake.
Em cada iteração do algoritmo de contração atualiza-se a posição das
snaxels através da ação das forças internas e externas, garantindo a evolução da
Snake. Ao final de cada iteração faz-se uma atualização da função característica e
determina-se o conjunto de nós da malha que serão queimados durante a evolução.
Os vértices do triângulo que possuírem todos os valores 1 ou 0 estão fora ou dentro
da Snake respectivamente e os triângulos onde a função característica muda de
valor são denominados triângulos de borda. A determinação dos triângulos de borda
corresponde ao limite onde as snaxels poderão se deformar, tanto para a contração
quanto para expansão. A condição de parada do algoritmo se faz quando todas as
snaxels estiverem sobre a borda do objeto (MACHADO, 2003).
A figura 22 demonstra a evolução da Snake, destacando os nós
queimados, internos e triângulos de borda num determinado estado de passo de
contração.
51
FIGURA 22 – Representação do novo modelo em um determinado estado de evolução (MACHADO,
2003).
Este modelo possui algumas limitações. A restrição à evolução imposta
pela condição de entropia usada, ou seja, “se um nó é queimado ele permanece
queimado”. Esta política é vantajosa no tratamento de mudanças topológicas, porém
tem a desvantagem de limitar a evolução da Snake em apenas expansão ou apenas
contração. Outra limitação é o fato do método de reparametrização da Snake
(projeção sobre a malha) ser extrínseco, isto é, depender não somente da forma do
contorno, mas também da maneira como o espaço foi dividido (decomposição
simplicial), bem como do seu posicionamento neste espaço.
52
5
5.1
APLICAÇÕES DOS MÉTODOS SNAKES
Sistema Semi-Automático para Análise de Imagens Digitais
A extração de informações em imagens é extremamente importante na
área biológica, onde a extração de atributos das imagens pode auxiliar no
diagnóstico de doenças. Atualmente a análise de imagens biológicas é realizada de
forma manual, ou apoiada por sistemas muito automatizados, que não inserem o
potencial humano no processo de análise e, conseqüentemente, não contemplam
todas as necessidades do usuário. Neste contexto, esta aplicação é um
processamento digital de imagens para extrair atributos de imagens médicas e
biológicas de forma semi-automática, auxiliando a obtenção de medidas dos objetos
(células e outros) imageados e apoiando a documentação das medidas extraídas. A
extração de atributos é composta principalmente pelas medidas de área, perímetro e
demais características dos objetos que pertencem à imagem, que possibilitam um
diagnostico mais preciso de uma pessoa com determinada doença (SÁ, 2005).
Existe certa dependência desta aplicação em relação às características
da imagem que se extrairão os atributos, uma vez que estas são imagens
fotográficas e possuem uma ampla gama de detalhes e imperfeições. Sendo assim,
a utilização do método Snake para a segmentação da imagem é um fator muito
interessante, pois após uma boa segmentação a imagem perde totalmente as
possíveis imperfeições originais e o processo de extração de seus atributos se torna
relativamente mais apropriado e eficiente, como é apresentada na figura 23.
53
FIGURA 23 – Extração de atributos para objetos previamente segmentados via extração de bordas
(SÁ, 2005).
5.2
Contagem e Mensuração de Fibras Musculares
O uso de imageamento em tomografia computadorizada, ressonância
magnética e radiografia são já relativamente comuns na área da medicina. A
aplicação dos métodos Snakes na contagem e mensuração de fibras musculares
possui resultados satisfatórios. As fibras, entretanto, não estando bem definidas
fazem com que o processo automático de procura das bordas "extravase" para
outras fibras ou mesmo não consiga delimitar uma fibra completamente, como
apresentado na figura 24, sendo realizado a contagem e mensuração automática em
uma imagem original em tons de cinza, sem prévio tratamento (MIYASAKI, 2003).
54
FIGURA 24 – Contagem e mensuração automática de fibras musculares sem um pré-processamento.
Uma idéia natural que surge é tentar fazer o fechamento das “bordas”
de cada fibra, para então submeter à imagem à contagem e mensuração
automaticamente usando o programa Image (MIYASAKI, 2003). O resultado após o
pré-processamento da imagem é apresentado na figura 25.
FIGURA 25 – Contagem e mensuração automática de fibras musculares após a etapa de préprocessamento.
55
5.3
Medição do Disco Ótico
A figura 26 mostra a sua aplicabilidade para medir o disco ótico (retina).
Trata-se de uma tarefa importante, que tem por objetivo monitorar mudanças na
forma e área do disco, que, em muitos casos, indicam problemas como o glaucoma
(atualmente, a segunda maior causa de cegueira) (SILVA, 2004).
FIGURA 26 – Utilização de contornos ativos para a determinação da área do disco ótico.
5.4
Análise de Avalanches
Em Ladret (1999) é sugerida a utilização de Snakes como uma boa
ferramenta para a análise de avalanches de neve. A figura 27 mostra esta aplicação
(SILVA, 2004).
(a)
(b)
FIGURA 27 – Utilização de contornos na análise de avalanches de neve, (a) contorno obtido em um
momento e (b) contornos obtidos em momentos diferentes mostram a evolução da avalanche de
neve.
56
6
O PROJETO: DESENVOLVENDO UM MODELO DISCRETO DE SNAKE
Uma definição em termos computacionais retrata uma Snake como um
conjunto
de
N
pontos
{vi (t ) = (xi (t ), yi (t )), i = 0, K , N − 1} ,
de
controle,
ou
snaxels,
cujas
posições:
são interligadas e variam no decorrer do tempo
(MACHADO, 2003).
Os modelos de energias utilizado no desenvolvimento do projeto são
baseados na Snake tradicional e em suas otimizações, e possui a característica de
atuar sobre a curva de maneira simples. Desenvolveu-se a deformação da Snake
tanto para processos de contração quanto para expansão, possuindo a
característica de manter, da melhor forma possível, as snaxels com critérios de
espaçamento equivalentes. Há um grande esforço em manter uma a eqüidistância
das snaxels, pois, de acordo com a literatura os algoritmos apresentam um melhor
comportamento nestas situações (YOUNG, 1995).
É de extrema importância a definição de alguns filtros de préprocessamento para uma melhor segmentação de objetos com alto nível de
detalhes, pois estes induzem a deformação erronia da Snake em encontrar
contornos que não são realmente os do objeto em questão. Neste contexto, também
foram desenvolvidos seis filtros de pré-processamento da imagem, estes seguem
descritos na seção 6.2.
Para a configuração inicial da Snake são considerados dois tipos de
polígonos fechados: circular e definido pelo usuário. Assim, a criação da Snake por
intermédio de um polígono circular é realizada por uma equação que descreve um
círculo, dado um ponto e seu raio. Para esta configuração também é necessário
especificar a quantidade de snaxels, que serão dispostos pela curva de maneira
eqüidistante. A configuração por um polígono definido pelo usuário descreve a curva
inicial pela interligação de snaxels escolhidas manualmente.
No entanto, a curva inicial depende de uma combinação de energias
para proporcionar a sua evolução até as bordas de interesse. A deformação da
Snake é feita através da ação da energia interna normal, de tensão, rigidez e da
energia externa, iterativamente sobre todos os snaxels.
57
Teoricamente tem-se a energia interna normal e de tensão agindo de
forma conjunta para movimentar e manter um espaçamento uniforme entre os
snaxels. A força interna de rigidez relaciona-se à suavidade da Snake, sendo
normalmente descrita através de Splines sobre as snaxels. Por fim, a energia
externa é definida em função das características de interesse na imagem, neste
caso as bordas (critérios de intensidade do nível de cinza dos pixels).
Em especial, foram desenvolvidos procedimentos para divisão de uma
Snake em outras, possibilitando a segmentação de vários objetos com somente uma
curva inicial, e procedimentos para junção de Snakes, unindo-as para a
segmentação de um objeto em comum. Estes dois procedimentos são acionados
quando houver sobreposição dos pontos de controle da curva.
6.1
Energias Desenvolvidas
As energias desenvolvidas são dispostas tanto para o modelo
convencional ou de contração quanto para o Balloon ou de expansão.
Independentemente do método escolhido para a segmentação é possível que se
realize a subdivisão de uma Snake em várias e a junção de várias em uma só.
6.1.1 Energias Internas
São derivadas da própria curva e possuem a finalidade de deformá-la
de forma a manter um critério de espaçamento de pontos de controle e garantir a
suavidade em se confrontar com a borda do objeto de interesse.
6.1.1.1 Força Tradicional
Esta força se baseia no modelo tradicional proposto por Kass, Witkin e
Terzopoulos e é definida pela componente da força elástica, onde tem o objetivo de
movimentar os pontos de controle em direção ao fechamento da curva ou contração
da Snake. Esta força possui a característica de que uma curva aberta tome a forma
de um segmento de reta e uma curva fechada tome a forma de um ponto.
58
A grande vantagem desta força é o fato de que a cada passo da
deformação da curva os pontos são mantidos com critérios de espaçamento
equivalentes. É muito importante que os pontos de controle sejam mantidos
igualmente espaçados e que haja uma quantidade suficiente destes pontos de
controle, pois a representação do contorno do objeto será melhor representada
nestas situações.
Para a deformação da curva define-se basicamente o cálculo mediante
o produto vetorial dos vetores correspondem aos três pontos de controle vizinhos.
Desta forma, a força elástica atua em um ponto de controle pi puxando-o em direção
ao centro da reta (ponto central), que interliga os seus dois vizinhos pi-1 e pi+1,
conforme mostra a figura 28.
Snake Inicial
FIGURA 28 – Em análise o ponto p1: a deformação é iterativa e ocorre deslocando o ponto analisado
para um novo ponto central, que é o produto vetorial entre os snaxels de p0p1 e p1p2. O processo
segue para todos os pontos iterativamente.
O processo deve ser definido para as componentes em X e Y de todos
os pontos de controle da curva. A definição do ponto central e a atração dos pontos
em sua direção é quem garante que os pontos de controle se deformarão mantendo
a equivalência de distância de seus vizinhos.
O produto vetorial desta força elástica é definido através das equações
para as componentes x e y dos pontos de controle:
⎡⎛ x + x ⎞⎤
EelasticaX ,i = k1 ⎢⎜ i −1 i +1 ⎟⎥
2
⎠⎦
⎣⎝
⎡⎛ y + y ⎞⎤
EelasticaY ,i = k1 ⎢⎜ i −1 i +1 ⎟⎥
2
⎠⎦
⎣⎝
(44)
A constante k define o quanto o ponto de controle deve ser atraído em
59
direção ao ponto central, uma vez que se k for relativamente grande pode ser que
ultrapasse as fronteiras do objeto em análise.
A grande desvantagem desta força é a não deformação em objetos
com limites côncavos, onde o máximo obtido é um segmento de reta nestas regiões.
Outra desvantagem é a não existência de uma força de rigidez referente a uma
maior suavização da curva.
6.1.1.2 Força Baricentro
A força baricentro também é definida pela força elástica, atuando de
forma a puxar os pontos de controle em direção ao baricentro da curva. O baricentro
é o ponto central da curva calculado através das médias dos componentes x e y de
todos os pontos.
Para a deformação dos pontos de controle é baseada na equação da
“Maior Distância” sendo realizada de maneira a movimentar no máximo em 1 pixel
em direção ao baricentro, podendo evidentemente a movimentação ser menor.
Primeiramente deve-se definir a maior distância entre os pontos e o baricentro da
curva e depois realizar a parametrização de todos os pontos em relação a maior
distância, proporcional a todos os pontos. Direção da força elástica atuando sobre
um ponto pi é apresentada na figura 29.
FIGURA 29 – Em análise o ponto p1: a deformação é iterativa e ocorre deslocando o ponto analisado
em direção ao baricentro da curva. O processo segue para todos os pontos iterativamente.
Esta força elástica é definida através das equações para as
componentes x e y dos pontos de controle, atraindo os pontos de controle em
direção ao baricentro (baricentro em x e y) da curva.
60
⎛ baricentroX − x ⎞
EelasticaX ,i = x ± ⎜
⎟
⎝ maiordis tan ciaX ⎠
⎛ baricentroY − y ⎞
EelasticaY ,i = y ± ⎜
⎟
⎝ maiordis tan ciaY ⎠ (45)
Se o ponto em análise for maior do que o baricentro da imagem para
os seus componentes x e y, então a operação utilizada será a subtração do ponto
em análise com a distância que este deve se deslocar em direção ao baricentro,
caso contrário à operação utilizada será a adição. É importante ressaltar que os
pontos de controle se deslocaram no máximo em 1 pixel (ponto de controle que tiver
a maior distância do baricentro da curva) e garantindo a proporção para as
distâncias menores.
Esta força possui a característica da deformidade em regiões
côncavas, pelo fato de serem atraídas, a cada iteração, para o baricentro da curva.
Esta deformação em concavidades não segue nenhuma relação com o objeto em
questão, sendo insuficiente para a maioria dos casos. Porém, esta força não
mantém os pontos de controle igualmente espaçados o que acarreta em uma
deformação ruim para alguns casos. A força Baricentro desempenha apenas o fator
de deformação da curva ou força elástica, a força de rigidez para uma melhor
suavização do contorno não foi estabelecida.
6.1.1.3 Força Mista
Desenvolvida por meio da união da força Tradicional e Baricentro.
Sendo assim, apresenta como características certa invasão em regiões côncavas do
objeto e a preservação de critérios de eqüidistância entre os pontos de controle,
proporcionando uma melhor segmentação de objetos que contenham pouca
concavidade. Esta força se apresenta como certo avanço em relação ao modelo
tradicional, mas, a segmentação de objetos com concavidades maiores ainda não
possuem resultados satisfatórios, pois essa força não age de forma “intuitiva” na
busca por regiões ou bordas ainda não exploradas.
61
6.1.1.4 Força Balão Tradicional e Força Balão Baricentro
A força balão preserva as mesmas características do modelo de força
tradicional ou baricentro, mas ao invés dos pontos de controle serem deformados
para o processo de contração da curva se estabelece o processo de sua expansão.
Neste contexto, para o desenvolvimento da força balão são
estabelecidas rotações de 180º da direção em que os pontos de controle
originalmente se deformariam, provocando conseqüentemente seu afastamento do
baricentro (para a força baricentro) ou a substituição do elemento k da equação (44)
pelo fator negativo de k (para a força tradicional).
A direção dos pontos de controle pode ser representada e
desenvolvida pelo vetor normal ao segmento de reta que liga os pontos vizinhos ao
ponto em análise. A representação gráfica da atuação da força balão de ambos os
casos pode ser observada na figura 30.
FIGURA 30 – Representação da direção dos vetores normais para o processo de expansão da curva.
6.1.2 Energia Externa
A energia externa é obtida a partir da própria imagem e considera os
pixels de borda, ou seja, a energia do gradiente da imagem. Sendo assim, possui a
característica que empurra a curva em direção aos pontos de borda do objeto em
segmentação, até encontrar uma forte descontinuidade dos tons de cinza que
conseqüentemente representa a borda do objeto de interesse.
62
Define-se então o confronto da curva com a borda do objeto através da
quebra brusca dos tons de cinza da imagem. Este por sua vez é estabelecido
através de um limiar de faixas de cinzas (variando de 2 até 255 – conforme a
necessidade do usuário), onde se busca num processo iterativo classificar o ponto
de controle em análise em uma classe de 0 a 255 e verificar se os n pontos vizinhos
pertencem à mesma classe (máscara de convolução).
Para sintetização do conceito abordado é apresentado o exemplo da
figura 31, onde se aplicará a energia do gradiente com um limiar de duas faixas de
tons de cinza. Com um limiar de duas faixas tem-se a representação da classe 0
(primeira faixa) de 0 a 127 e da classe 1 um (segunda faixa) de 128 a 255.
FIGURA 31 – Aplicação da energia externa utilizando-se de um limiar de duas classes de tons de
cinza. O histograma representa a quantidade de tons de cinza da imagem original e da imagem sob o
efeito limiar.
Para este exemplo é como se fossem consideradas, ao invés da
imagem original que contém uma grande quantidade de níveis de cinza, a imagem
com o efeito limiar de duas classes de cinza, onde os pixels com valores de 0..127
(faixa 0) pertencem à cor preta ou com valor 0, e os com valores de 128..255 (faixa
1) pertencentes à cor branca ou valor 255. A possível conformidade com a borda do
objeto será dada quando um ponto de controle da curva sair de uma classe 0
63
partindo para a classe 1 ou vice e versa, caracterizando uma descontinuidade.
A figura 32 representa a conformidade de um ponto de controle da
curva com a borda do objeto, definindo o seu critério de parada. O ponto vi que está
na posição p4,4 da matriz deve ser movido para a posição p2,6, (vi’) devido à
mudança limiar da classe 1 para a classe 0. Para a verificação é utilizado uma
máscara de convolução de N x N dimensões onde todos os pontos da máscara de
convolução devem pertencer a mesma classe limiar de vi, se algum ponto não
pertencer a mesma classe se encontrou um ponto de borda. A figura 31 é aplicada
uma máscara de convolução de dimensão 7x7.
FIGURA 32 – Aplicação da energia externa utilizando-se de um limiar de duas faixas de tons de
cinza. O histograma representa a quantidade de tons de cinza da imagem original e da imagem sob o
efeito limiar (OLIVEIRA, 2000).
A classe do ponto em análise vi é calculada pela da equação abaixo:
Classe de vi = Valor Inteiro (nível de cinza de vi dividido (256 dividido limiar))
Continuação do Exemplo:
Classe do ponto vi = Valor Inteiro (255 dividido (256 dividido 2));
Classe do ponto vi = Valor Inteiro (255 dividido 128);
Classe do ponto vi = 1.
{valor real = 1,99}
64
Quando algum elemento da máscara de convolução possuir a faixa
diferente da faixa do ponto em análise, este deve ser movimentado para a posição
do elemento de faixa diferente, onde provavelmente se encontrou a borda do objeto.
No exemplo acima a classe do elemento da máscara de convolução p2,6 é igual à
zero, com isso o ponto vi em análise (p4,4) deve ser movido para a posição p2,6,
(vi’) devido à mudança limiar da classe 1 para a classe 0 (descontinuidade = força
gradiente).
6.1.3 Energia Confinada
Apesar do fato da energia interna baricentro proporcionar certa
deformação da curva em limites côncavos esta não é realizada de forma “intuitiva” e
muito dependente do objeto a ser segmentado. Sendo assim, a energia confinada
busca o tratamento e melhoramento dos problemas encontrados nos modelos
tradicionais, principalmente no que diz respeito à deformação da curva em regiões
côncavas. Tal energia, assim como os modelos de segmentação via abordagem de
contornos
ativos
Snake
mais
robustos
da
literatura,
possui
energias
e
funcionalidades adicionais que permitam tal tratamento, de forma a buscar por
regiões de contorno ainda não exploradas. Define-se então uma nova energia:
E snake = ∑ Einterna + Eexterna + Econfinada
(46)
6.1.3.1 Força de Rotação
A força de rotação busca por pontos de controle da curva que ainda
não estão sob a borda do objeto onde, através de rotações dos vetores, procura-se
encontrar a borda atribuindo ao ponto de controle da curva o ponto de borda
encontrado.
Aplica-se esta força quando um ponto de controle pi encontrar a borda
do objeto e os seus pontos vizinhos ainda não o encontraram. Então, se estabelece
uma rotação de 45º nos sentidos horários e anti-horários do vetor composto pelos
pontos pi e pi+1 (podendo ser realizado também para o vizinho anterior) na busca
por um ponto de borda do objeto.
65
Tal força proporciona a sua ação de forma “intuitiva”, percorrendo
iterativamente os pontos de controle buscando encontrar de imediato um novo ponto
de borda.
A figura 33 apresenta a ação desta força sobre um vetor composto
pelos pontos pi e pi+1 em análise num processo iterativo:
FIGURA 33 – Aplicação da força de rotação.
6.1.3.2 Criação de Pontos Intermediários
A criação de pontos intermediários estabelece uma distância máxima
entre os pontos de controle. Ao se ultrapassar a distância máxima insere-se na curva
um ponto intermediário, permitindo uma melhor segmentação de objetos com alto
nível de detalhes e curvaturas finas. Deve-se ter uma quantidade razoável de pontos
de controle para segmentar um objeto de forma satisfatória, principalmente em
regiões curvilíneas.
6.2
Filtros de Pré-Processamento Desenvolvidos
O objetivo é que após o pré-processamento, a imagem resultante deve
ser mais adequada para a tarefa de segmentação.
Para o processamento da imagem original são aplicados templates de
acordo com uma máscara de convolução específica, deslocando-o por toda a
imagem de forma seqüencial e causando a transformação dos pixels. Utilizou-se no
projeto máscaras de organização ímpar (3x3, 5x5, etc.) com convolução aperiódica,
onde o resultado é substituído pelo “pixel do centro” da máscara. Para a utilização
de máscaras de organização par (2x2, 4x4, etc.) o resultado deve substituir o
66
“primeiro pixel” da máscara.
Na convolução aperiódica centra-se o template com o primeiro pixel da
imagem atribuindo o valor 0 aos valores inexistentes na imagem, como mostra a
figura 34 com uma máscara de convolução 3x3.
FIGURA 34 – Convolução Aperiódica.
Neste
contexto,
apresentam-se
os
filtros
espaciais
de
pré-
processamento desenvolvidos, suas funcionalidades, templates e o resultado que
este proporciona na imagem. Para a transformação da imagem deve-se percorrê-la
seqüencialmente por todos os seus pixels e aplicando o template específico. O
resultado será uma nova imagem processada.
6.2.1 Filtro da Média
O filtro da média é um tipo de filtro passa baixa que através de uma
máscara realiza a média da vizinhança. Uma Máscara de Média é tal que seus
pesos são positivos e a soma é igual a 1.
Dado uma imagem f(x,y) de N x N pixels:
g ( x, y ) =
1
M
∑ f ( n, m )
( n , m )∈S
onde:
S é o conjunto de coordenadas dos pontos na vizinhança de (x,y), incluindo (x,y);
M é o número total de pontos da vizinhança.
(47)
67
Exemplos de filtros passas baixa:
A figura 35 apresenta o resultado da aplicação desse filtro em uma
imagem original e o seu resultado.
FIGURA 35 – Aplicação do filtro da média.
6.2.2 Filtro da Mediana
Substitui o nível de cinza de cada pixel pelo nível de cinza mediano em
uma vizinhança do pixel.
O nível mediano de um conjunto de valores é tal que exista metade dos
valores menores e metade dos valores maiores. O exemplo da aplicação do filtro da
média é apresentado na figura 36. O pixel central de valor 15 será substituído pelo
valor 20 (nível mediano):
FIGURA 36 – Exemplo da substituição do pixel mediano.
A figura 37 apresenta o resultado da aplicação desse filtro em uma
imagem original e o seu resultado.
68
FIGURA 37 – Aplicação do filtro da mediana.
6.2.3 Filtro Laplaciano
Outra aplicação importante da convolução espacial de uma máscara
com a imagem é o realce (Sharpening) ou Filtragem Passa Alta. É chamada de
Máscara de Realce porque tende a realçar mudanças abruptas de Níveis de Cinza
na Imagem.
A Máscara do Filtro Passa Alta deve ter o peso central positivo e os
pesos periféricos negativos tal que a soma seja igual a Zero.
O exemplo de um filtro passa alta (Operador Laplaciano) é
representado na figura 38:
FIGURA 38 – Máscara do Operador Laplaciano.
A figura 39 apresenta o resultado da aplicação desse filtro em uma
imagem original e o seu resultado.
.
FIGURA 39 – Aplicação do Filtro Laplaciano com a operação de Negação de Cores.
69
6.2.4 Binarização pela Média: Local e Global
O objetivo é transformar uma imagem que possui diversos tons de
cinza em uma imagem em preto e branco, tendo um fator limiar dos níveis de cinza
da imagem. O limiar é resultado da média dos pixels realizada globalmente na
imagem ou localmente através de convolução consecutivas (filtro da média), onde os
pixels da imagens que possuírem o nível de cinza menor que a média serão
transformados para o valor 0 (preto) e os maiores que a média em valor 255
(branco).
Dado uma imagem f(x,y) de N x N pixels:
g ( x, y ) =
1
M
∑ f ( n, m )
(48)
( n , m )∈S
onde:
M é o número total de pontos da vizinhança;
S é o conjunto de coordenadas dos pontos na vizinhança de (x,y), incluindo (x,y);
Se f(x,y) < g(x,y)
então g(x,y) = 0;
senão g(x,y) = 255.
Na figura 40 tem-se uma imagem original com vários tons de cinza e o
resultado da aplicação do filtro de binarização pela média global.
FIGURA 40 – Aplicação do Filtro de Binarização pela Média Global.
6.2.5 Filtro Limiar
Transforma a imagem que contém diversos tons de cinza (0..255) em
uma nova imagem com uma quantidade menor de tons de cinza, de acordo com a
quantidade de limiares (grupos) especificados. A transformação é realizada através
de agrupamentos de faixa de cinza.
70
No exemplo mostrado na figura 41 tem-se uma imagem original e a
aplicação do filtro limiar com cinco limiares de níveis de cinza (5 grupos):
FIGURA 41 – Aplicação do Filtro Limiar igual a 5.
Sendo assim, os pixels da imagem que tinham o nível de cinza entre os
grupos gerados serão transformados de acordo com a figura 42, gerando uma nova
imagem com apenas cinco tons de cinza:
FIGURA 42 – Agrupamento de Níveis de Cinza.
Dado uma imagem f(x,y) de N x N pixels se aplicada à equação da
figura 43, percorre-se todos os pixels da imagem original (f(x,y) de 0..n-1, 0.n-1) e
gera-se uma nova imagem (g(x,y)):
FIGURA 43 – Equação do Filtro Limiar.
71
7
A FERRAMENTA DESENVOLVIDA
A ferramenta para segmentação de imagens por contornos ativos
Snakes foi implementada utilizando a linguagem C++Builder 5, sob a utilização da
programação orientada a objetos (OOP). O objetivo desta ferramenta é ilustrar a
dinâmica de funcionamento dos algoritmos implementados. É importante ressaltar
que a ferramenta atua apenas na etapa de segmentação de objetos pertencentes a
imagens digitais, não tendo uma aplicação específica em alguma área, mas, por sua
vez pode futuramente ser utilizada para esses fins, pois a programação orientada a
objetos possui como principal característica a reusabilidade de suas classes,
métodos e afins.
A utilização de uma interface simples e sugestiva permite aos usuários
um melhor entendimento dos passos realizados para a segmentação de um objeto.
Esta ferramenta é de caráter semi-automático, ou seja, são de extrema importância
a parametrização e experiência do usuário para a obtenção de resultados
satisfatórios. A figura 44 mostra a interface do sistema, com seus botões de
acionamento e campos devidamente rotulados, e painéis que referenciam as
imagens no processo de atuação da Snake e o seu resultado final.
FIGURA 44 – Interface principal da Ferramenta de Segmentação por Contornos Ativos Snake.
72
7.1
Estruturas Utilizadas
A ferramenta possui duas classes principais. A primeira é a classe
“TSnakes” que é referente a configuração do objeto a ser segmentado, método a ser
utilizado na segmentação, matriz que representa a imagem, lista que contém todas
as Snakes para tal segmentação e seus métodos para deformação e filtragem de
pré-processamento da imagem. A classe T-Snakes é mostrada na figura 45.
FIGURA 45 – Representação da Classe TSnakes.
A segunda é a classe “Snake”, mostrada na figura 46, possui a
configuração de cada curva, possui uma variável de instância para a cor e espessura
da curva, quantidade de pontos, lista de pontos de controle da curva com suas
respectivas posições (x, y) na imagem e seus métodos para manipulação dos dados.
73
FIGURA 46 – Representação da Classe Snakes.
74
Computacionalmente, as estruturas principais internas (não são de
interface) utilizadas na implementação do novo modelo e da ferramenta são:
•
Listas
Duplamente
Encadeadas
Circular:
utilizadas
para
a
representação das várias Snakes que podem estar em execução
simultaneamente e para a representação da lista de pontos de
controle da Snake. Cada elemento da lista possui um ponteiro
referenciando o elemento anterior e posterior, além da informação
principal. Como mostra a figura 47:
Objeto da Classe TSnake
Classe TSnake
Representação Lista de Snakes
Objeto da Classe Snake
Classe Snake
Representação da Curva (Lista de Pontos de Controle)
FIGURA 47 – Representação gráfica da estrutura de dados do projeto.
•
Matrizes: formam a representação da imagem, uma vez que uma
imagem é uma matriz de pixels de dimensões N x N,
correspondentes à altura e largura respectivamente. Cada elemento
da matriz possui a cor de cada pixel da imagem real;
•
Registros:
são
estruturas
criadas
pelo
desenvolvedor
que
correspondem a um conjunto de elementos. Por exemplo, o registro
Pontos possui os elementos x (PontosÆx) e y (PontosÆy)
75
correspondentes a sua localização na imagem.
7.2
Preenchimento dos Campos e Passos para a Deformação
Para melhor entendimento do funcionamento da Ferramenta serão
apresentados seus campos e como se realiza a segmentação de um objeto.
Corresponde aos filtros de pré-processamento da
imagem original, uma que vez que uma imagem préprocessada deve estar mais adequada para a tarefa de
segmentação.
Os
Filtros
são:
Média,
Mediana,
Laplaciano, Binarização Global e Local, e Filtro Mediano.
Para melhor entendimento dos filtros leia o capítulo
anterior.
Botões para abrir uma nova imagem a ser segmentada
(a ferramenta suporta apenas imagens .bmp - BitMaps),
salvar uma imagem segmentada (somente com o
contorno do objeto segmentado) e limpar a imagem em
atividade (limpar as Snakes e voltar ao estado inicial).
Informa a configuração da curva inicial definida pelo
usuário. Esta pode ser Circular (dados um ponto central
e o raio) ou ainda Aleatória (dados todos os pontos da
curva). A configuração da Curva Inicial depende da
quantidade de pontos iniciais (campo “Pontos”).
Informam a quantidade de pontos a serem gerados na
curva inicial, a cor da curva e sua respectiva espessura.
Após
parametrizar
estes
campos
e
configurar
a
localização da curva inicial deve-se efetuar a sua
geração no campo “Gerar Snake Inicial”.
76
Corresponde ao critério para a localização da borda do
objeto, onde o usuário deve informar o número de
limiares de cores. Para maior entendimento leia o
capítulo anterior em “Energia Externa”.
Informa
o
método
(Tradicional,
Baricentro,
Balão
Tradicional, Balão Baricentro e Misto) a ser utilizado para
a segmentação de imagens, tempo de pausa na
deformação e distância mínima entre os pontos (se os
pontos se distanciarem além da distância mínima é
criado um novo ponto intermediário), respectivamente.
Inicia a deformação de uma Snake na busca do contorno
do objeto, segundo o método escolhido. Possibilita a
parada forçada da deformação e a visualização do
resultado final da segmentação (borda do objeto).
A ferramenta foi desenvolvida de modo que se possa visualizar a
deformação da Snake desde sua configuração inicial até o confronto com a borda do
objeto de interesse, enfatizando de maneira clara o seu funcionamento. É possível a
segmentação de diversos objetos simultaneamente através da definição de várias
Snakes independentes, tanto para o processo de expansão quanto para contração
da curva. Também há a possibilidade de segmentar vários objetos com somente
uma Snake (para os casos de contração da curva, onde a curva se subdivide de
maneira dinâmica entre todos os objetos) ou ainda a junção de várias Snakes em
uma só (para os casos de expansão da curva).
Para maior sintetização dos conceitos e funcionamento da ferramenta
são apresentados os passos básicos para a segmentação de um objeto de 2 cores,
sem que haja a necessidade de um pré-processamento:
1. Abrir a imagem a ser segmentada. A figura 48 representa uma
imagem recém aberta pela ferramenta;
77
FIGURA 48 – Imagem recém aberta pela ferramenta.
2. Escolher o tipo da seleção (Circular ou Aleatória) da Curva Inicial;
3. Configurar a quantidade de Pontos de Controle iniciais, a cor e a
espessura da Snake;
4. Configurar os pontos iniciais obre a imagem de forma a envolver o
objeto. Se a seleção for do tipo “Circular”, então o usuário deve
fornecer o ponto central e o raio, com isso a ferramenta irá gerar
como curva inicial um circulo com a quantidade de pontos de
controle definidos no campo “Pontos”. Se o tipo for “Aleatório” o
usuário deve selecionar os pontos de controle da Snake Inicial um a
um, com no mínimo 25 pontos;
5. Gerar a Snake Inicial. A figura 49 representa a geração da Snake
inicial pela configuração “Circular”;
FIGURA 49 – Configuração da Snake inicial.
6. Definir o Limiar de Cores: como a imagem é binarizada (somente
duas cores), o número de limiares escolhido deverá ser igual a
78
dois. Com isso a Snake se deformará até sair de uma faixa limiar de
cores para a outra faixa, e conseqüentemente se confrontar com a
borda do objeto de interesse;
7. Escolher o método a ser utilizado na segmentação (podendo ser de
contração ou expansão da curva), o tempo de execução e a
distância mínima para a criação de pontos intermediários. Os
métodos estão dispostos e seguem as características de acordo
com as forças apresentadas no capítulo 6;
8. Iniciar a Deformação. A figura 50 (a) representa a deformação da
Snake pelo método da Força Mista e a figura 50 (b) a divisão em
duas Snakes para a segmentação de dois objetos.
FIGURA 50 (a) – Deformação da Snake.
FIGURA 50 (b) – Divisão da Snake.
9. Visualizar o Resultado Final. Na figura 51 tem-se o contorno final
segmentado pelo método de contornos ativos Snake via a
ferramenta desenvolvida no projeto;
79
FIGURA 51 – Contorno final dos objetos.
10. Salvar o contorno do objeto segmentado pelo método de contornos
ativos Snake.
7.3
Considerações Adicionais
Pelo fato da ferramenta desenvolvida ser de caráter semi-automático é
necessário que haja uma boa habilidade do usuário para a segmentação de imagens
mais complexas, principalmente das que exigem critérios de pré-processamento.
Pode ser que dependendo do objeto a ser segmentado obtenha-se
como resultado final um contorno inconstante, isso se deve pelo fato da ferramenta
não ser implementada com a abordagem de Splines que, teoricamente deixariam o
contorno do objeto mais suave e próximo da realidade.
80
8
EXPERIMENTOS E RESULTADOS
Para a realização de experimentos foram utilizadas imagens com
diferentes características de contexto e de naturezas distintas. Sendo assim, foi
considerado no processo de segmentação, realizado por meio da ferramenta
proposta, as seguintes imagens: preto e branco, coloridas, geométricas, abstratas e
fotográficas. Estas por sua vez são pertencentes a diferentes áreas como imagens
de ressonância magnética, imagens de células e fibras musculares da área da
medicina; imagens de formas simples como quadrados, círculos, triângulos e
imagens abstratas da área da geometria em geral; entre outras. A ferramenta
apresentou, em geral, resultados satisfatórios para todos os tipos de imagens.
A segmentação de imagens fotográficas é um processo que requer
grande habilidade do usuário na especificação de filtros de pré-processamento antes
da tarefa de segmentação por contornos ativos pela ferramenta, pelo fato destas
imagens apresentarem altos níveis de detalhes. Contudo, a ferramenta obteve
resultados satisfatórios mesmo nestas situações.
Em experimentos com imagens que possuem concavidade na região
próxima ao baricentro da curva a segmentação não pode ser efetuada por completo
com somente uma Snake, pelo fato de as forças desenvolvidas se confrontarem e de
certa forma se anularem. A solução adotada foi a utilização de mais Snakes, onde
ao encontrarem provocam a fusão das Snakes em uma só, segmentando os objetos
que possuem estas características.
Este experimento pode ser demonstrado na figura 52. O passo 1
mostra que a curva não conseguiu a deformação em contração correta do objeto e
foi necessária a configuração de uma nova Snake (passo 2) para que se tenha a
fusão posterior num processo de expansão das curvas.
Os passos de 3 a 5 demonstram as Snakes se deformando na busca
pela borda do objeto e o processo de junção de ambas. O resultado final da
segmentação é apresentado no passo 6.
81
FIGURA 52 – Passos de uma situação crítica do experimento e resolução via Junção de duas
Snakes.
82
9
CONCLUSÕES
O método de contornos ativos é uma vigorosa técnica para o processo
de segmentação de imagens digitais que vem apresentando resultados satisfatórios
nas diversas áreas de atuação.
O presente projeto é uma ferramenta de segmentação de imagens,
atuando num processo inicial e retornando parâmetros para a viabilização de
processos posteriores, como análise, reconhecimento e classificação. Por exemplo:
pode ser aplicada para cálculos de perímetros e área de objetos de uma imagem,
modelagem de forma e objetos 3D, rastrear movimentos de vídeos, entre outros.
A forma como o método é implementado, através da definição de
energias, facilita a modificação do método original, possibilitando diversas
adaptações e, conseqüentemente, a obtenção de melhores resultados em cada área
de aplicação.
Além das Energias tradicionais conhecidas na literatura que foram
estudas (intensidade, força balão, etc.), foram criadas outras energias para a
solução de alguns problemas tradicionais de segmentação em regiões côncavas. As
energias desenvolvidas são: a Energia da Rotação e a Energia de Pontos
Intermediários.
Para projetos futuros pode-se realizar a implementação, testes e
verificação da viabilidade do uso de curvas Splines e Bezier na tentativa de uma
maior suavização do contorno das segmentações, definição de algoritmos de pósprocessamento da segmentação por Snakes (quando não produzir o resultado
esperado) e implementação e aplicação dos métodos Snake Gradient Vector Flow e
T-Snakes.
83
REFERÊNCIAS BIBLIOGRÁFICAS
ANGEL, E. Interactive Computer Graphics Top-Down Approach with Opengl.
New York: Pearson, 1999.
BALAN, A. G. R. Técnicas de Segmentação de Imagens Aéreas para Contagem
de População de Aves. São Paulo: [s.n.], 2003.
GIRALDI, G.A. Dual T-Snakes. Thesis Developed at COPPE-UFRJ (Brazil). Disponível em
<http://virtual01.lncc.br/~giraldi/Tese/>. Acesso em 12 de Agosto de 2005.
GONZALEZ, R. C.; Woods, R. E. Processamento Digital de Imagens. São Paulo:
Edgard Blücher, 2000.
MARQUES, J, S. A Link Between Image-Based and Feature-Based Active
Contours. SIGNAL PROCESSING, nº 67, p. 271- 278, 1998.
MACKIEWICH, B. Active Contour Models (“Snakes”).
Disponível em
<http://www.cs.sfu.ca/people/Faculty/Atkins/papers/blairthesis/main/node28.html>.
Acesso em 05 de Abril de 2005.
MENDELS, F., HENEGHAN, C., THIRAN J. P. Identification of the Optic Disk
Boundary in Retinal Images using Active Contours, submitted, 1999.
NGOI, K. P., JIA, J.C. An Active Contour Model for Color Region Extraction in
Natural Scenes, IMAGE AND VISION COMPUTING, p. 955-966, 1999.
PICHUMANI, R. Construction of A Three-Dimensional Geometric Model for
Segmentation and Visualization of Cervical Spine Images. Ph.D thesis, Medical
Informatics of Stanford University, 1997.
RIBEIRO, B. Suavização de Imagens – Image Smoothing. Disponível em
<http://www.ic.uff.br/~aconci/suavizacao.pdf>. Acesso em 30 de Abril de 2005
SANTOS, V. T. Segmentação de Imagens Mamográficas para Detecção de
Nódulos em Mamas Densas. São Paulo: [s.n.], 2002.
SONKA, M.; HLAVAC, V.; BOYLE, R. Image Processing, Analysis and Machine
Vision. Chapamn & Hall Computing: London, 1998.
TRUCCO, E.; VERRI, A. Introductory Techniques for 3-D Computer Vision.
Prentice Hall: New Jersey, 1998.
WILLIAMS, D.; SHAH M. A Fast Algorithm for Active Contours and Curvature
Estimation. CVGIP:IMAGE UNDERSTANDING, vol. 55, nº 1, January, p. 14-26,
1992.
KASS, M.; WITKIN, A.; TERZOPOULOS, D. Snakes: Active Contour Models. In:
INTERNATIONAL JOURNAL OF COMPUTER VISION, 1988.
XU, C.; PRINCE, J. L., Gradient Vector Flow: A New External Force for Snakes,
IEEE PROC. CONF. ON COMP. VIS. PATT. RECOG., p. 66-71, 1997.
XU, C.; PRINCE, J. L. Generalized Gradient Vector Flow External Forces for
Active Contours. SIGNAL PROCESSING, nº 71, p. 131-139, 1998.
84
YOUNG,
D.
Active
Contour
Models
(Snakes).
Disponível
em
<http://www.cogs.svsx.ac.uk/users/davidy/teachvision/vision7.html>. Acessado em
22 de Outubro de 2005.
PIMENTEL, B. Segmentação de Imagens Médicas utilizando modelos de Active
Contour. Departamento de Ciência da Computação da Universidade Federal de
Minas
Gerais.
Disponível
em
<http://www.verlab.dcc.ufmg.br/projetos/brunosp/modsnake.htm>. Acesso em 27 de
Abril de 2005.
PEREIRA, A. Estudo e Implementação de Filtros para Processamento Digital
de Imagem. Bacharelado em Ciência da Computação, Faculdade de Informática de
Presidente Prudente – FIPP, p.11-12, 1996. (Monografia em Bacharelado em
Ciência da Computação).
MACHADO, C. C. M.; GALVÃO, L. R.; VANDERLEI, T. A.; SANTOS W. Y. R. Uma
ferramenta de extração de bordas utilizando T-Snakes. Centro de Informática,
Universidade Federal de Pernambuco – UFPE. Recife – PE, 2003.
MARQUES, O. F.; VIEIRA H. N., Processamento Digital de Imagens. Rio de
Janeiro: Brasport, 1999.
MIYASAKI, R., Splines e Contorno Ativo em Aplicações de Imagens Médicas.
UNESP - Licenciatura em Matemática. Presidente Prudente, 2003.
OLIVEIRA, M. C. F., Segmentação de Imagens por Contornos Ativos Snakes,
Instituto de Ciências Matemáticas e de Computação, 2000.
SÁ, A. O., Sistema Semi-Automático para Análise de Imagens, Bacharelado em
Ciência da Computação, Faculdade de Informática de Presidente Prudente – FIPP,
2005. (Monografia em Bacharelado em Ciência da Computação).
SILVA, F. A.; ALMEIDA, L. L.; PEREIRA, J. R.;BARBEIRO, T. L. S., Contornos
Ativos – Snakes, Departamento de Engenharia Elétrica, Escola de Engenharia de
São Carlos – USP, 2004.
SILVA, J. P. M., Geo-Snake : uma aplicação da técnica snake em imagens
geográficas. Escola de Informática – Curso em Ciência da Computação. Pelotas,
2003. (Monografia em Bacharelado em Ciência da Computação).
Download

Contornos Ativos Snakes para Segmentação de Imagens