Você está na página 1de 45

See

discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/233809039

ALVES, F.F. - Reconhecimento de imagens 2D


utilizando um modelo estatístico de formas

Dataset · November 2012


DOI: 10.13140/2.1.3877.4729

READS

211

2 authors:

Fernando Freitas Alves Amaury Kruel Budri


Universidade Federal do ABC (UFABC) Universidade Federal do ABC (UFABC)
1 PUBLICATION 0 CITATIONS 3 PUBLICATIONS 0 CITATIONS

SEE PROFILE SEE PROFILE

All in-text references underlined in blue are linked to publications on ResearchGate, Available from: Fernando Freitas Alves
letting you access and read them immediately. Retrieved on: 03 August 2016
Carta de apresentação

Santo André, 05 de outubro de 2012.

Ao Ilustríssimo Pró-Reitor de Pesquisa,

Prof. Dr. Klaus Werner Capelle

Encaminho o relatório do aluno Fernando Freitas Alves referente ao projeto de

pesquisa junto ao programa de Iniciação Científica na modalidade PDPD no edital nº

01/2011.

O orientado concluiu todas as fases do projeto. O método de reconhecimento

implementado alcançou relativo sucesso. O processo de reconhecimento comete vários erros.

Entretanto, embora o método, como implementado, não tenha apresentado um desempenho

comparável ao estado da arte para sua finalidade original, em suas etapas intermediárias foi

bem sucedido. O processo de esqueletização e representação vetorial de pontos críticos

resolve de forma elegante o problema de segmentação de imagens. Os resultados obtidos

evidenciam a aplicação do estudante. No decorrer dos meses foi evidente seu progresso. O

estudante fez uma pesquisa bibliográfica eficiente, encontrando artigos que ajudaram bastante

o desenvolvimento da pesquisa. Demonstrou uma capacidade de apreender o conhecimento e

aplicá-lo no contexto da pesquisa. O orientado implementou vários algoritmos, como Djikstra,

k-means, introduziu algumas melhorias no algoritmo de esqueletização encontrado na

literatura. Considero portanto que os objetivos do programa PDPD foram alcançados.

Prof. Dr. Amaury Kruel Budri


2
FERNANDO FREITAS ALVES

Reconhecimento de Imagens 2D
Utilizando um Modelo Estatístico de Formas

Relatório

Trabalho apresentado ao curso de Bacharelado em


Ciência e Tecnologia da Universidade Federal do ABC
como requisito parcial para a conclusão do projeto de
Iniciação Científica.

Orientador
Prof. Dr. Amaury Kruel Budri
Centro de Engenharia, Modelagem e
Ciências Sociais Aplicadas
UFABC

São Bernardo do Campo – SP


2012

3
4
Dedico este trabalho aos que acreditam na ciência
e no futuro próspero da humanidade.

5
AGRADECIMENTOS

Agradeço à minha família pela sustentação,


aos meus amigos pela credibilidade,
ao meu orientador tanto pela crença
quanto pela preocupação e acompanhamento constante,

à Universidade Federal do ABC

e a todos os que direta ou indiretamente


contribuíram para a realização desta pesquisa.

6
“Aprenda como se você fosse viver para sempre.
Viva como se você fosse morrer amanhã.”

Mahatma Gandhi

7
RESUMO

Este projeto propõe um algoritmo original de assimilação gráfica e aplica isso ao


reconhecimento de formas através das silhuetas dos objetos. A ideia principal é assimilar o
esqueleto gráfico das imagens comparando seus segmentos com uma lista de classe com
formas específicas. Nossa motivação está no fato das imagens visualmente semelhantes
possuírem segmentos semelhantes em seus esqueletos gráficos. Partindo do princípio da teoria
da confabulação proposta por Hetch-Nielsen, esses segmentos são assimilados pela
maximização de uma probabilidade condicional bayesiana. Os esqueletos são gerados a partir
da transformação em eixo medial das distâncias euclidianas de cada ponto interno da silhueta
à sua borda. Eles são limpos por um procedimento simples e então são segmentados para se
encontrar pontos críticos.

Palavras-chave: reconhecimento de imagem, esqueletização, confabulação, cogência.

8
ABSTRACT

This project proposes a novel graph matching algorithm and apply it to shape recognition
based on object silhouettes. The main idea is to match skeleton graphs by comparing their
segments with a specific shape class list. Our motivation is on the fact that visually similar
images have similar segments on their skeleton graph. Assuming the confabulation theory by
Hetch-Nielsen, this segments are matched by the maximization of a bayesian conditional
probability. The skeletons are generated from the medial axis transform of the euclidian
distances of each silhouette internal point to its edge. They are pruned by a simple procedure
and then segmented to find critical points.

Keywords: image recognition, skeletonization, confabulation, cogency.

9
LISTA DE SIGLAS

2D 2 Dimensões
3D 3 Dimensões
BMP Device Independent Bitmap
CSV Comma-Separated Values
DAG Directed Acyclic Graph
DTW Dynamic Time Warping
JPEG Joint Photographic Experts Group
MAT Medial Axis Transform
TD Transformada de Distância
TDE Transformada de Distância Euclidiana

10
SUMÁRIO

1. INTRODUÇÃO ..........................................................................................................................13
1.1. Justificativa ...........................................................................................................................14
1.2. Objetivos ...............................................................................................................................14
1.2.1. Objetivo geral ..................................................................................................................14
2. REVISÃO DA LITERATURA ..................................................................................................15
2.1. Transformada de Distância ...................................................................................................15
2.2. Esqueletização ......................................................................................................................16
2.3. Directed Acyclic Graph (DAG) ..............................................................................................17
2.4. Dynamic Time Warping (DTW) .............................................................................................18
2.5. Algoritmo de Floyd-Warshall ................................................................................................19
2.6. Suavização de Laplace ..........................................................................................................20
3. MATERIAIS E MÉTODOS ......................................................................................................20
3.1. Banco de Imagens .................................................................................................................20
3.2. Esqueletização ......................................................................................................................21
3.2.1. Biblioteca de leitura .........................................................................................................21
3.2.2. Interior, exterior e borda ..................................................................................................22
3.2.3. Vizinhança ......................................................................................................................22
3.2.4. Mapa de distâncias...........................................................................................................23
3.2.5. Transformação do Eixo Medial (MAT) .............................................................................24
3.2.6. Vetorização .....................................................................................................................26
3.2.7. Pontos críticos .................................................................................................................26
3.2.8. Hierarquização.................................................................................................................28
3.2.9. Segmentação ...................................................................................................................29
3.3. Reconhecimento ....................................................................................................................29
3.3.1. Dissimilaridade e semelhança entre segmentos.................................................................30
3.4. Treinamento ..........................................................................................................................34
4. CRONOGRAMA .......................................................................................................................36
4.1. Cronograma Proposto ...........................................................................................................36
4.2. Cronograma Realizado..........................................................................................................36
5. RESULTADOS ..........................................................................................................................37
6. CONCLUSÃO ............................................................................................................................39
7. DISCUSSÃO E TRABALHOS FUTUROS ...............................................................................40

11
REFERÊNCIAS BIBLIOGRÁFICAS ........................................................................................... 41

12
1. INTRODUÇÃO
Pesquisas nas áreas de Gráficos Computacionais e Modelagem Geométrica têm encontrado
interconexões fortes com a Inteligência Artificial, Tecnologia do Conhecimento, Visão
Computacional e Processamento de Imagens. Uma das forças motoras neste processo tem sido
a crescente complexidade dos aplicativos. Um campo de pesquisa atuando sozinho não seria o
suficiente para trazer resultados eficientes. Novas tecnologias para aquisição e processamento
de dados levam a problemas novos e cada vez mais desafiadores. Tais soluções exigirão a
combinação de técnicas de diferentes ramos da ciência.
Uma abordagem contemporânea ao reconhecimento de objetos envolve em corresponder
formas a um banco de dados repleto de objetos modelos. Estruturas conceituais destes objetos
modelos têm sido definidas como hierárquicas. Estas correspondências hierárquicas indexam
os objetos em grandes categorias mais abrangentes e menos específicas. Tal processo é bem
reconhecido por aumentar consideravelmente a eficiência da correspondência.
Em nossos cérebros, as correspondências dos processos neurais associadas com o objeto
reconhecido não são diferentes daqueles associados com a linguagem. Assim como as
palavras são formadas a partir de uma combinação de letras, objetos visuais são formados a
partir de uma combinação de características individuais, tais como linhas ou texturas. Por si
só, estas características revelam pouco sobre a identidade do objeto específico a que
pertencem, assim como letras individuais não transmitem o significado de uma palavra. Suas
características devem ser combinadas de maneira específica, como em sílabas e palavras, para
criar uma percepção unificada do objeto. Isto deve ser feito independentemente de mudanças
na orientação de estímulo, iluminação e posição. No entanto, apesar destas complexidades, o
cérebro realiza esta tarefa sem esforço. O processamento visual do cérebro consiste em duas
fases: a primeira etapa envolve a transformação do estímulo visual em impulsos neurais; a
segunda envolve a ligação desta representação com a sua categoria (rosto, carro, etc.) e a sua
identidade específica (pai, mãe, marca do carro, etc.).
A teoria da confabulação, proposta por Hecht-Nielsen em [1] [2], se baseia na premissa de
que todos os aspectos de cognição, tal como a visão, podem ser explicados por meio da
interação entre diferentes áreas do cérebro. Cada uma delas é responsável pela representação
mental de um objeto. Segundo essa teoria, cada hemisfério do córtex cerebral humano pode
ser dividido em aproximadamente 2000 módulos funcionais controlados de maneira
independente. Cada um destes módulos seria responsável por representar um atributo de um
objeto, seja ele visual, auditivo, abstrato ou qualquer outro. Esta representação se dá através

13
de um subconjunto de neurônios. Sua ativação está associada à seleção de um único símbolo
dentre um conjunto de milhares de símbolos associados pelo módulo. Neste contexto, o
conhecimento adquirido é representado por meio de conexões entre os símbolos armazenados.
Este processo de aprendizagem segue o princípio Hebiano: os elos entre dois símbolos são
fortalecidos na medida em que os dois conjuntos de neurônios, cada um representando um
símbolo, são ativados. A hipótese básica dessa teoria propõe que o processo cognitivo
envolve apenas um tipo de processamento da informação: a confabulação [3] [4]. Este
processo determina que o símbolo “vencedor” seja aquele com o maior nível de ativação
dentro do módulo.
Utilizando esse processamento, este projeto busca fazer o reconhecimento de imagens
através da comparação interna de seus detalhes, ou mais especificamente, de partes que os
objetos das imagens representam e então utilizar de um meio probabilístico para a cogência
das mesmas.

1.1. Justificativa
O reconhecimento de imagens é uma ciência e tecnologia nova que é cada vez mais
desenvolvida por pesquisadores cada vez mais especializados em todos os ramos por possuir
uma gama enorme de aplicações em todas as áreas do cotidiano. Exemplos de aplicações
incluem o controle de processos (como robôs industriais ou veículos autônomos), detecção de
eventos, organização de informação, modelagem de objetos ou ambientes de interação
(atrelado à interação homem-computador). Suas usabilidades vão desde o reconhecimento de
placas de carro para facilitar o gerenciamento de estacionamentos a um guia computo-visual
que possa identificar os objetos à frente informando sobre suas localizações para uma pessoa
com deficiência visual.

1.2. Objetivos

1.2.1. Objetivo geral


Este projeto busca investigar a eficiência da abordagem de maximização da cogência para
o reconhecimento de imagens. Para isto, será implementado o método apresentado por Wilder
em [5].
O reconhecimento de imagens será feito na classificação de objetos usando a abstração de
suas formas. Tal abstração será dada no mapeamento de estruturas esqueléticas para a
categorização e reconhecimento de diferentes objetos. Cada objeto pertencerá a uma classe

14
específica. Estes possuirão características visuais em comum no seu modelamento deste mapa
esquelético.
Esta abordagem se baseia na teoria de que a percepção visual humana está pelo menos em
parte fundamentada nos geons [6]. Os geons servirão de guia para uma predefinição da forma
específica do objeto. Isto assimilará o resto da imagem com traços característicos mais
simples que o objeto em si. Isto auxilia na abstração e categorização do elemento a ser
identificado. Também permitirá que no futuro possamos evoluir de forma suave para um
reconhecimento 3D.
Ao invés de se utilizar a maximização da probabilidade a posteriori, utilizado por Wilder
[5], será utilizada a maximização da cogência. A motivação está em Ungerleider [7], que
relaciona o reconhecimento de imagens e linguagem. Linguagem é algo processado com
sucesso pela abordagem de cogência.
Unificando as teorias do processamento de imagem no cérebro humano, como mencionado
por Ungerleider [7], com a teoria da confabulação, se torna possível a informatização do
mecanismo de reconhecimento visual. Pode-se assim viabilizar um algoritmo computacional
voltado para inúmeras aplicações ao cotidiano.

2. REVISÃO DA LITERATURA
Durante o decorrer das atividades, conforme previsto, foi feita uma ampla revisão
bibliográfica para se conhecer os diferentes métodos empregados neste projeto.

2.1. Transformada de Distância


A transformada de distância (TD) foi introduzida por Rosenfeld [8]. É um processo que, a
partir de uma imagem binária que contém fundo e objetos, gera outra imagem chamada "mapa
de distâncias" cujo valor de cada pixel pertencente ao objeto é a distância ao pixel mais
próximo que pertença ao fundo. É uma operação geométrica fundamental em processamento
de imagens e visão computacional Fabbri [9]. As aplicações da TD incluem: operações
morfológicas (erosão e dilatação) [10], segmentação [11], dimensão fractal multi-escala [12]
[13], navegação robótica [14], entre outras.
O cálculo da TD pode ser feito com um cálculo exato ou inexato das distâncias. Um
algoritmo de TD é exato quando, para qualquer tipo de imagens, fornece um mapa de
distâncias livre de erros, se o mapa contém erros para alguma imagem, o algoritmo é
considerado inexato [9]. Para o cálculo das distâncias é necessário usar uma métrica de

15
distância. Existem muitas métricas que podem ser usadas dependendo da aplicação. A mais
comum é a distância euclidiana (TDE) principalmente por sua invariância a rotação [9]. Um
dos problemas com o uso desta métrica é o alto custo computacional. Diversos algoritmos
foram propostos para melhorar a eficiência deste cálculo. Um dos primeiros foi proposto por
Danielsson em [15], em 1980, fornecendo um cálculo inexato que foi aperfeiçoado depois por
muitos autores. Existem outros mais recentes que, por seu impacto na melhora da eficiência,
foram adotados como um padrão para o cálculo da TDE. O algoritmo proposto por Maurer em
[16] e o algoritmo proposto por Saito em [17], melhorado por Meijster [18], estão entre os
mais rápidos da literatura e são aplicáveis para imagens de 2 e 3 dimensões.
Uma operação derivada da TD é a rotulação dos valores. Isto quer dizer que cada posição
no mapa de distâncias, além do valor da distância, vai conter a posição do pixel que ficou
mais próximo a ele no cálculo da TD. Esta operação é importante em diagramas de voronoi
[19], esqueletização [19], análise de curvatura [20] [21], transformada watershed [22] entre
outras. Semelhante à TDE, o custo computacional é muito alto e ainda proibitivo para
algumas imagens, especialmente para imagens em três dimensões.
Como não buscamos uma eficiência na velocidade do processo, neste artigo é utilizado um
método lento, porém eficiente para a geração da TDE, denominado “método bolha”.

2.2. Esqueletização
A esqueletização é um procedimento que surgiu na década de 60, primeiramente
introduzida por Blum em [23]. O esqueleto constitui um conjunto de pontos no interior de um
objeto de uma imagem, de modo a representá-lo. A definição de esqueleto diz que um ponto
pertence ao esqueleto se ele é o centro de um círculo máximo que toca a borda do objeto em
pelo menos dois pontos distintos. O problema é a dificuldade de se implementar círculos no
plano discreto e a sua aproximação é extremamente cara de forma computacional. A maioria
dos algoritmos de esqueletização encontrados na literatura [24] [25] [26] [27] [28] [29],
utiliza o mesmo conceito aplicado ao centro de um losango, de um quadrado, ou uma
combinação de ambos. Os esqueletos possuem várias aplicações em processamento de
imagens, tais como: agrupamento, segmentação, vetorização, descrição de formas,
reconhecimento de caracteres, inspeção e outras.
Neste projeto, o algoritmo de esqueletização que será utilizado se baseia no princípio de
que todo ponto interno ao esqueleto é um ponto da TDE que for um máximo local dentro sua
vizinhança em uma das quatro direções possíveis dentro de um espaço discretizado.

16
2.3. Directed Acyclic Graph (DAG)
Um grafo é uma coleção de pontos ou vértices que se interconectam através de linhas. Se
essas linhas possuem direções, elas são denominadas como arcos e o grafo resultante é
denominado como grafo dirigido. Se as linhas não possuem direções, elas são denominadas
como conexões e o grafo como não dirigido.
Um caminho em um grafo direcionado é qualquer sequência de arcos onde o vértice final
de um é o vértice inicial do próximo.
Um ciclo é um caminho em que seu vértice inicial coincide com seu vértice final. Grafos
que não possuem ciclos são denominados acíclicos.
Algumas vezes, números são associados com os arcos. Esses números são chamados de
pesos ou custos. Considerando um caminho representado por uma sequência de arcos, o custo
do caminho é definido como a soma dos pesos de cada arco dessa sequência.
Grafos acíclicos dirigidos ou DAG (Directed Acyclic Graph) [30] são muito utilizados em
diferentes tipos de estruturas nos ramos da matemática e da ciência da computação em
inúmeras aplicabilidades. Neste projeto, eles serão utilizados para se encontrar a melhor
relação entre duas séries de dados através do cálculo de menor caminho possível dentro do
grafo. Cada vértice será a relação que cada item de uma série possui com outro item da outra
série. Os pesos dos arcos serão explicados mais adiante.

Figura 1.

17
2.4. Dynamic Time Warping (DTW)
Dynamic Time Warping (DTW) [31] é uma técnica bem conhecida utilizada para encontrar
um alinhamento ótimo entre duas sequências. Trata-se da parametrização de um DAG onde os
vértices são posições em uma matriz de comparação entre duas séries de dados através dos
seguintes pesos para os arcos:
( )
(( )( )) { (1)

onde ( ) é um vértice na linha e coluna e( ) é outro vértice na linha e coluna da


matriz de comparação. As comparações na matriz geralmente são definidas como a diferença
entre um elemento de uma série e um elemento de outra série. Depois dessa parametrização, a
DTW encontra o menor caminho possível dentro do DAG e resulta a correspondência (série de
vértices) desse caminho.
Intuitivamente, as sequências são deformadas de forma não linear para combinarem entre
si. Originalmente, a DTW foi utilizada para comparar diferentes padrões em reconhecimento
automático de fala. Em campos como mineração de dados e recuperação de informação, a
DTW tem sido aplicada com sucesso para lidar com deformações temporais e diferentes
velocidades associadas com dados dependentes de tempo.
Neste projeto, ela será utilizada para correlacionar duas sequências de distâncias
euclidianas da TDE. As distâncias euclidianas remetem à espessura de um segmento do
esqueleto da imagem. Dessa maneira, será comparada a forma entre os segmentos de duas
imagens diferentes. Essa comparação será utilizada na dissimilaridade que será explicada
adiante.

Gráfico 1.

18
2.5. Algoritmo de Floyd-Warshall
Neste projeto, vamos usar uma formulação de programação dinâmica diferente para
encontrar o caminho mais curto entre todos os pares de vértices em um grafo orientado.
Conhecido como o algoritmo de Floyd-Warshall, é executado em tempo ( ). Ele
considera os vértices intermediários de um caminho mais curto em que um vértice intermédio
de um caminho simples 〈 〉 é qualquer vértice de diferente de ou , isto
é, qualquer vértice no conjunto { }.
O algoritmo de Floyd-Warshall conta com a observação descrita a seguir. Sob a nossa
hipótese de que os vértices são { }, vamos considerar um subconjunto
{ } para alguns dos vértices . Para qualquer par de vértices , considere todos
os caminhos de para cujos vértices intermediários são todos retirados de { }, e seja
um caminho simples de peso mínimo entre eles. O algoritmo explora uma relação entre o
caminho e caminhos mais curtos de para com todos os vértices intermediários no
conjunto { }. A relação depende ou não se é um vértice intermediário do
caminho .

 Se não é um vértice intermediário do caminho , então todos os vértices


intermediários do caminho estão no conjunto { }. Assim, um
caminho mais curto do vértice ao com todos os vértices intermediários no
conjunto { } é também o caminho mais curto do ao com todos os
vértices intermediários no conjunto { }.

 Se é um vértice intermediário do caminho , então decompomos em → → .


Como o vértice não é um vértice intermédio de caminho , todos os vértices
intermediários de estão no conjunto { }. Portanto, é o caminho
mais curto de para com todos os vértices intermédios no conjunto {
}. Da mesma forma, é um caminho mais curto do vértice para com todos os
vértices intermédios no conjunto { }.

Com base nas observações acima, podemos computar os valores (peso/distância do


menor caminho do vértice ao ) de uma matriz de caminhos em ordem de incrementação do
valor de . A entrada do algoritmo é uma matriz de dimensões cujos valores são as
distâncias dos caminhos diretos. A saída é uma matriz de caminhos mais curtos de mesmas
dimensões cujos valores são para a linha e coluna .

19
2.6. Suavização de Laplace
A suavização de Laplace (ou Laplace smoothing) é uma técnica geralmente utilizada para
se evitar que cálculos probabilísticos resultem em zero por um devido fator nulo dentro de
uma série em um produtório. Um parâmetro da série de parâmetros ( ) é
definido como:

(2)

onde é o parâmetro de suavização e ( ) é uma série de observações


com experimentos.

3. MATERIAIS E MÉTODOS
A priori, é necessário um banco de imagens vasto e variado com imagens devidamente
tratadas. Essas diferentes imagens devem representar a mesma classe de objeto (elefantes,
gatos, barcos, garfos, facas, etc.). O tratamento destas imagens deve manipulá-las de tal forma
que seja possível distinguir as formas de suas figuras, pois o algoritmo exige uma distinção
específica da figura e seu fundo que a contém (neste caso, a cor branca será o fundo).
A posteriori, utilizando-se um algoritmo de geração de esqueletos [32], torna-se possível
efetuar uma análise de suas propriedades de maneira eficiente. Tais propriedades formarão
vetores com disposições hierárquicas. Esta metodologia dispor-se-á como a ferramenta de
assimilação através da maximização da cogência.

3.1. Banco de Imagens


O banco de imagens é formando por imagens que permitam distinguir a silhueta da figura
objeto. Os arquivos das imagens devem estar todos no formato BMP (ou Device Independent
Bitmap). Imagens de outros formatos devem ser convertidas.
Como o algoritmo de geração de esqueleto exige uma silhueta de qualquer cor em cima de
um fundo branco, alguns formatos de imagem não são adequados. Um exemplo destes
formatos é o JPEG (ou ). Ele utiliza métodos de
compressão que transforma certos pixels em outras cores, podendo mudar o fundo da imagem.
Imagens em que foi utilizada a técnica de anti-aliasing (antiserrilhamento) também devem ser
evitadas ou filtradas. Esta técnica faz com que os pixels de fundo sejam confundidos
erroneamente pelo algoritmo por mudar a coloração do fundo em volta da figura. Nestes
casos, a não filtração fará com que o algoritmo não consiga distinguir a silhueta da figura.

20
Ambos também fazem com que certas figuras percam informação através da indistinção de
detalhes desfigurados.
Neste projeto, tomamos uma série de imagens capturadas avulsamente em diversos sites
pela internet para base de testes iniciais bem como o banco de dados de Sebastian em [33]
para a base de treinamento e testes finais. Em nenhuma delas houve restrição de direitos
autorais. Elas se dividem em diversas classes, dentre elas: barcos, automóveis, guarda-sóis,
sapatos, móveis, pás ou colheres, peixes, aviões ou aves, quadrúpedes e humanoides.
Algumas delas também foram preparadas especificamente para facilitar os testes de
implementação dos algoritmos. Outras possuem o mesmo objeto, porém com orientações de
45° para que o algoritmo seja capaz de identificar o mesmo esqueleto independente de
diversas variações. Por fim, todas foram manipuladas para que seus fundos sejam brancos
com boa distinção da silhueta. A taxa de bits de todas as imagens foi mantida em 32 bits.

Figura 2.

3.2. Esqueletização
O foco da esqueletização é extrair a região interior à figura que representa a forma geral
do objeto. Para isto, o algoritmo deve reconhecer este interior. Todo o trabalho de
esqueletização estará voltado a ele. Este esqueleto deve então ser divido em vetores em uma
organização hierárquica.
Para entender todos os procedimentos e métodos empregados, alguns conceitos prévios
são necessários. Eles serão tratados com o desenvolver da explicação.

3.2.1. Biblioteca de leitura


Uma biblioteca adicional voltada para a leitura de arquivos em formato BMP é necessária
para iniciar a análise de seus conteúdos. É através dela que podemos obter acesso à lista
21
completa de pixels dentro de uma imagem. Toda informação dos pixels necessária será a sua
localização e a sua respectiva cor. O conjunto de pixels deve ser organizado em uma matriz de
disposição.
Uma biblioteca funcional para este projeto na linguagem de programação C/C++ pode ser
encontrada em [34].

3.2.2. Interior, exterior e borda


Na matriz de pixels, é possível definir algumas características que agrupam e diferenciam
certos pixels que se tornarão úteis para a análise do conteúdo da imagem. Como o banco de
imagens já foi tratado para que todas as imagens possuam fundo branco, definiremos que todo
pixel branco não faz parte do objeto. Estes pixels serão tratados como pixels externos. O
conjunto desses pixels é definido como exterior e é dado por

⋃ ( ) (3)

onde é o pixel na linha e coluna da matriz de pixels, é a altura e é a largura da


imagem, é a função que retorna a cor de um dado pixel.
Os pixels que não fazem parte do exterior da imagem possuem cores diferentes de branco.
Eles serão tratados como pixels internos. O conjunto desses pixels é definido como interior e
é dado por

⋃ ( ) (4)

Existe também um conjunto de pixels que delimita o exterior do interior. Definido como
borda, este conjunto é um subconjunto do exterior. Ele é composto por todo pixel do exterior
que possui um pixel vizinho pertencente ao interior da imagem e é dado por

⋃ | | | | (5)

3.2.3. Vizinhança
A vizinhança de tamanho de um pixel é o conjunto de pixels que o contornam em um
quadrado. O quadrado formado por esse conjunto possui lado de tamanho .

22
É definida como vizinhança de um pixel, quando for omitido seu tamanho, ou
vizinhança 1 deste pixel, sua vizinhança de tamanho . Ela é também reconhecida em [35]
como 8-vizinhança por possuir pixels vizinhos.

Figura 3.

3.2.4. Mapa de distâncias


À primeira característica que definirá os padrões das figuras é fornecido o nome de
distância de um pixel. Trata-se do quadrado da distância euclidiana de um pixel da figura até
a borda mais próxima. Ela é dada por

( ) ( ) ( )
(6)
( ) ( ) ( ) ( )

Para minimizar o tempo de execução do algoritmo, deve-se evitar o cálculo da raiz na


distância euclidiana convencional. Mesmo esta distância possuindo um valor maior, servirá
para os devidos fins.

Perceba também que essa definição tornaria o algoritmo muito lento se tivesse que
verificar a distância de todos os pixels da borda para um único pixel interno. Desta forma,
utiliza-se um “método bolha” no incremento da iteração de e . Eles devem começar com
os valores de e , tomando-os como referencial ao longo que vão expandindo em seu raio de
vizinhança um a um enquanto . Desta forma, o cálculo de desigualdade será feito
apenas para todos os itens da vizinhança de tamanho . Outra forma de visualizar isto é
incrementando enquanto e são incrementados dentro dos limites da vizinhança .

Esta distância nem sempre será a menor. Deve-se então continuar incrementando o
tamanho da vizinhança. Esta incrementação deve parar somente quando o quadrado de seu
tamanho for igual à distância encontrada. Para cada incremento, deve-se continuar calculando
a distância dos pixels da borda dentro da vizinhança e verificar se algum deles possui valor
menor do que a distância encontrada previamente.

23
Existem casos que dois pixels vizinhos não diagonais possuem distâncias iguais. Isto
interferirá no cálculo do esqueleto.
Para resolver isto, multiplica-se todas as distâncias por 4 e cria-se um critério de
incrementação nas distâncias vizinhas da seguinte maneira:

1. Se o vizinho com distância igual estiver em uma vizinhança latitudinal, ou seja, a direita
ou a esquerda do pixel em questão, sua distância deve ser incrementada em 1;
2. Se o vizinho com distância igual estiver em uma vizinhança longitudinal, ou seja, acima
ou abaixo do pixel em questão, sua distância deve ser incrementada em 2.

Todas as distâncias devem ser armazenadas na mesma matriz de pixels.

Figura 4.

3.2.5. Transformação do Eixo Medial (MAT)


A transformação do eixo medial, tratada aqui como MAT (ou Medial Axis Transform), é o
passo principal que começa a dar forma à identificação do objeto. Ela é o esqueleto da figura.
Através de sua definição de representatividade do objeto e de sua minimização, torna-se
aplicável o princípio de comparação deste projeto.

24
Ela é composta por um conjunto de pixels que devem conter uma distância euclidiana que
possa presumir as bordas da figura sem que haja outros pixels que contenham a mesma
informação. De modo topológico, o raio de sua distância não deve ser subconjunto do raio da
distância de nenhum outro pixel. Esta definição é equivalente ao método grassfire descrito em
[36].
Um procedimento rápido está em definir como pixel da MAT todo pixel que corresponde a
uma cumeeira entre seus pixels vizinhos. Ele será um máximo local na sua vizinhança em
uma única direção levando em conta suas distâncias.

Figura 5.

Após efetuar esse procedimento em todos os pixels da figura, é necessário fazer uma
limpeza pois alguns pixels não são importantes para o esqueleto e devem ser retirados. Para
identificá-los, baseando-se em [37] [38], deve-se utilizar uma tabela com todas as
configurações possíveis da 8-vizinhança para um único pixel. Esta tabela definirá quais
configurações tornam o pixel importante para manter a conexidade do esqueleto. Todo pixel
não importante deve ser retirado da . Por exemplo: um pixel que fica entre apenas outros
dois da (pixel com apenas dois vizinhos) em uma única direção é importante para a
conexidade do esqueleto; sem ele, o esqueleto seria cortado naquele ponto, criando duas
linhas desconectadas. Este procedimento deve ser feito com todos os pixels da MAT.

Figura 6.

25
3.2.6. Vetorização
Um vetor é um segmento unilinear do esqueleto. Ele é composto por um conjunto de pixels
coligados, definido como . Um vetor começa e termina em pixels com apenas um vizinho
ou com três ou mais. Os pixels que possuírem apenas dois vizinhos serão o interior do vetor,
enquanto os outros serão suas extremidades. Desta forma, divide-se a em diversos
vetores coligados. Cada vetor representará uma parte da figura com suas próprias
propriedades, como por exemplo, na figura da silhueta de um corpo humano, destacam-se os
vetores dos membros, do tronco e da cabeça (figura 7).

Figura 7.

3.2.7. Pontos críticos


Após a vetorização da , como visto em [39], existem certos pontos que são
considerados críticos dentro de uma imagem. Definimos esses pontos através de algumas
propriedades peculiares que devem ser consideradas:

3. Existe um momento em que há bifurcação de segmentos de uma figura onde um segmento


se divide em dois ou mais segmentos. Definimos um ponto na MAT da imagem onde esse
momento ocorre como ponto crítico de bifurcação ou nó de junção (junction node, em
inglês);
4. Existe um momento em que há uma mudança no padrão da espessura de um único
segmento de uma figura. Definimos um ponto na MAT da imagem onde esse momento
ocorre como ponto crítico de distância;

26
5. Existe um momento em que há uma mudança no padrão da direção de um único segmento
de uma figura. Definimos um ponto na MAT da imagem onde esse momento ocorre como
ponto crítico de curvatura;
6. Existe um momento em que um único segmento de uma figura termina. Definimos um
ponto na MAT da imagem onde esse momento ocorre como ponto crítico final ou nó
final (end node, em inglês).

Esses pontos críticos são denominados assim por serem importantes para o
reconhecimento da imagem. Cada propriedade definida pelos pontos críticos serve como
comparação à outra imagem.
Seja um pixel pertencente ao vetor , um ponto crítico de distância é encontrado
sempre que satisfazer a seguinte condição:
( ) ( ) ( ( ))
(5)
( ( )) ( ( ))⁄

Utilizando o método proposto por Yin em [40], a curvatura num dado ponto é
proporcional à área encontrada entre seus pixels vizinhos (figura 8). Dessa forma, um ponto
crítico de curvatura é encontrado sempre que seus pixels vizinhos formarem uma área
excessivamente grande.

Figura 8.
Um meio de encontrar essa área está em traçar uma reta do último vizinho de um lado do
ponto ao último vizinho do outro lado do ponto , ambos vizinhos dentro da faixa
estipulada arbitrariamente, e somar a distância calculada de cada ponto dentro dessa faixa até
a reta traçada. Cada ponto de um vetor deve ter sua área armazenada. Neste projeto, é
fixado em 12 e se torna um ponto crítico quando sua área é a maior dentre todas dos pixels
de .

27
Figura 9.

3.2.8. Hierarquização
Os vetores de uma MAT devem ser categorizados não só por semelhança, mas por
importância também. Hierarquicamente, deve-se definir como mais importante o vetor que
contém o pixel mais distante da figura. Este pixel carrega mais informação do que todos os
outros. Seu vetor será tratado como vetor pai de todos os outros vetores. A partir desse pixel,
cada vizinho unidirecional que pertence ao esqueleto pertencerá ao seu vetor. Se existirem
mais de dois vizinhos, cada um gerará uma ramificação nova. Cada ramificação do vetor em
questão será tratada como vetor filho. Cada vetor filho também terá seus próprios filhos
28
através de suas outras ramificações. A cada vizinho da , deve ser feita essa mesma
verificação. O resultado será uma série de adoção de pixels até que cada ramificação encontre
um fim na linha do esqueleto. Esse último ponto final de um vetor possui 7 vizinhos que não
fazem parte do esqueleto. Cada segmento terá sua importância hierárquica através de seu
nível de encadeamento. Quanto mais distante do primeiro vetor pai, menos importante se
torna.

3.2.9. Segmentação
A segmentação do esqueleto é um problema relevante. O algoritmo implementado permite
realizar com sucesso essa tarefa. Trata-se da capacidade de separar os segmentos da MAT
como objetos unívocos. Através dessa separação, se torna possível a aplicação da análise
necessária para a comparação entre diferentes segmentos.

Comparar segmentos é um método dinâmico de se resolver o problema de comparação


entre imagens por completo. Cada comparação deve retornar um resultado específico que será
unificado através dos resultados das comparações de outros segmentos.

Figura 10.

3.3. Reconhecimento
Definimos classe como o objeto que uma imagem representa. Logo, a classe nada mais é
do que uma memória acolhida da comparação de várias imagens de mesma
representatividade.

Como descrito em [41], de acordo com o método bayesiano, a probabilidade de uma


imagem ser da classe é a máxima a posteriori (MAP ou Maximum a Posteriori
Estimation):

29
̂( | ) ̂( ) ∏ ̂( | ) (7)

sendo o conjunto de classes memorizadas, o vetor e o total de vetores da imagem.

Escrevemos ̂ ao invés de porque não conhecemos os verdadeiros valores dos


parâmetros ( ) e ( | ), mas estimamo-los através do treinamento como será visto
adiante.

Na equação (7), muitas probabilidades condicionais são multiplicadas. Isso pode resultar
em um estouro negativo de ponto flutuante (float pointing underflow, em inglês) em um
computador. Por esse motivo, torna-se mais viável executar o cálculo por adição de
logaritmos das probabilidades ao invés de multiplicá-las. A classe com o valor mais alto da
probabilidade logarítmica ainda é a mais provável, uma vez que logaritmo é uma função
monótona. Outro ponto importante na comparação entre imagens é que a probabilidade a
priori ( ) da classe não é interessante para o objetivo deste projeto, pois não há a
necessidade de se identificar a frequência relativa da classe. Desta maneira, o cálculo
atualmente implementado é:

∑ ̂( | ) (8)

A equação (8) possui uma interpretação simples. Cada parâmetro condicional ̂ ( | ) é


um peso que indica o quão bom um indicador é para . Quanto mais indicadores bons,
mais evidências existem de que a imagem é da classe .

Para se estimar a probabilidade condicional ̂ ( | ), dois métodos diferentes para


comparação foram implementados. Cada método é único e obtém em um resultado próprio.
Essa comparação será analisada mais adiante.

3.3.1. Dissimilaridade e semelhança entre segmentos


O primeiro método leva em conta o grau de dissimilaridade entre os vetores. Tal
dissimilaridade é mensurada comparando diversas propriedades, cada uma com um peso
arbitrário que será levado em conta na fórmula de semelhança:

1. Tamanho (peso: 2)
Esta propriedade trata do módulo da diferença das relações entre o tamanho do vetor e à
soma dos tamanhos de todos os vetores do esqueleto respectivo, dada pela fórmula:

30
( ) ( )
( ) | | (9)
∑ ( ) ∑ ( )

onde é o tamanho do vetor e e são o total de vetores do esqueleto de cada imagem.


Esse valor representa o quão grande um vetor é relativo ao esqueleto inteiro da imagem.
Essa diferença é interpretada como um grau de dissimilaridade para os tamanhos de dois
vetores de imagens diferentes.

2. Espessura (peso: 6)
Esta propriedade trata do formato de um vetor. Ela se baseia na distância de cada pixel do
vetor. Sua dissimilaridade é calculada através do módulo da diferença da distância relativa de
um ponto um vetor a outro ponto correspondente de outro vetor. A distância relativa do ponto
de um vetor é dada pela fórmula:
( ) ( ) ( ) (10)

A diferença entre duas distância relativas é dada por:


( ) | ( ) ( )| (11)

Essa comparação retorna uma matriz de comparações entre cada ponto

( ) do vetor com todos os pontos ( ) do vetor :

( ) ( ) ( )

( ) ( ) ( ) ( ) (12)

( ( ) ( ) ( ))

Para se calcular a semelhança total entre a imagem e a classe, aplica-se uma técnica
descrita em [31] chamada DTW (Dynamic Time Warping). Trata-se de uma técnica que
retorna a correspondência do caminho mais curto de um grafo acíclico dirigido (DAG ou
Directed Acyclic Graph) da matriz de comparações utilizando os pesos de conexões:

( ( ) ( ))

( ) (13)
{

Aplicando a DTW na matriz, obtém-se a melhor relação entre os vetores (figura 10).

31
Utilizando a lista de correspondência entre os pontos dos vetores, definimos então a
correspondência como:

( ) ( ( )) (14)

Figura 11.

Deve-se então levar em conta apenas as comparações entre os itens correspondidos e


então aplicá-las na fórmula:

| ( ) ( )|
( ) ∑ ⁄ (15)
| ( ) ( )|
onde é o número de correspondências. Essa fórmula retorna uma proporção de
dissimilaridade entre as taxas de crescimento de distâncias dos vetores dados. Contudo, para
que não haja comparações errôneas por vetores inversos, deve-se fazer a mesma comparação
para um dos vetores invertidos, definida como . Então o valor da propriedade será:

( ) ( ) (16)

3. Curvatura (peso: 2)
Esta propriedade trata do formato de um vetor. Ela se baseia na curvatura que o vetor tem
em determinados pontos. Utiliza-se o mesmo método proposto para se encontrar um ponto
crítico de curvatura, no entanto, calcula-se a área para todos os pontos do segmento.
A comparação dessa propriedade entre os vetores é feita análoga ao item anterior,
utilizando a mesma correspondência obtida pela DTW (aqui já definida se é normal ou
invertida) das taxas de distâncias:

32
| ( ) ( )|
( ) ∑ ⁄ (17)
| ( ) ( )|

Para que as comparações sejam mais próximas, antes de encontrar o valor de cada
propriedade, deve-se aumentar ambos os vetores para o mínimo múltiplo comum entre seus
tamanhos. Dessa forma, cada item dos vetores será repetido vezes onde .

O grau de semelhança entre dois vetores será então o inverso unitário da média das
dissimilaridades de suas propriedades multiplicadas pelos seus respectivos pesos:

∑ ( ) ( )
( ) (18)
∑ ( )

onde é valor do peso da propriedade.

Computa-se a semelhança entre cada vetor ( ) da classe com cada

vetor ( ) da imagem e armazena-se em uma matriz de comparação:

( ) ( ) ( )

( ) ( ) ( ) ( ) (19)

( ( ) ( ) ( ))

Para se calcular a semelhança total entre a imagem e a classe, deve-se obter os menores
valores da matriz sem que um valor não esteja na mesma linha ou coluna do valor obtido
anteriormente. Esse critério nos oferece certeza de que todo vetor será considerado apenas
uma vez, ou seja, a relação será de um para um até que termine todos os vetores de um dos
esqueletos das imagens. Utilizando a lista de correspondência entre os vetores da imagem e os
da classe dada pela semelhança total, definimos então a correspondência do vetor como:

( ) (20)

onde segue o critério descrito.


Levando em conta a frequência relativa de um vetor em uma classe (visto adiante):

( ) (21)

33
onde e são a frequência com que o vetor surgiu durante o treinamento da classe ea
frequência com essa classe foi treinada, respectivamente, podemos finalmente, estipular a
probabilidade condicional:
( ) ( )
̂( | ) { (22)

O termos aditivos 1 e 2 no numerador e denominador, respectivamente, da equação 23 é


uma técnica chamada suavização de Laplace (ou Laplace smoothing), em que o parâmetro de
suavização é 1 e o número de estados é 2, representando o estado do vetor pertencer ou não à
imagem.

Perceba que ⁄ é o mesmo que considerar que um vetor aconteceu apenas uma vez
durante o treinamento. Isso é exatamente o que acontece quando não se encontra um par para
no outro esqueleto.

Para cada vetor , com ( ), que não tenha correlação, deve-se multiplicar a
probabilidade condicional estipulada pelo fator da probabilidade de não acontecer na
imagem:

(∑ ̂( | ) ∑ ) (23)

3.4. Treinamento
O treinamento de uma classe consiste na geração de uma imagem síntese para cada classe
através da comparação feita entre várias imagens de mesma representatividade para cada
classe respectiva.

Gera-se e grava-se uma lista de vetores comparados entre as imagens. Cada


correspondência dos vetores com maior semelhança assimila-os para um único vetor da
classe. Esse vetor será a média dos valores de cada propriedade dos vetores correspondentes
de tal forma que seja sempre considerado o número de vezes que o vetor foi assimilado.
Alguns vetores de uma imagem podem não possuir correspondência nenhuma com a outra
pelo fato dessa imagem possuir um número maior de vetores. Esses vetores são adicionados
na lista como novos vetores para a classe. A frequência com que os vetores são assimilados
durante o treinamento também é armazenada. Dessa forma, os vetores com maior frequência
serão mais significativos durante a comparação, o que os torna a priori um bom indicador
para a classe.

34
Como o desenvolvimento do projeto utiliza duas formas diferentes de reconhecimento
entre imagens, o processo de treinamento descrito foi utilizado apenas no método de
dissimilaridade e semelhança. Para o método de caminhos e pontos críticos, cada imagem está
dentro de um grupo de classe. Cada imagem é armazenada isoladamente, e a comparação para
uma classe é feita entre todas as imagens armazenadas para aquele grupo. A imagem que
obtiver maior probabilidade na comparação retornará sua classe do grupo como
reconhecimento.

35
4. CRONOGRAMA

4.1. Cronograma Proposto


2011 2012
Etapa
09 10 11 12 01 02 03 04 05 06 07 08
1. Criar um banco de imagens 2D
X X

2. Implementar o algoritmo de geração


X X X
de esqueletos: Feldman & Singh
3. (2006)
Implementar um mecanismo de
X X X
maximização de cogência
4. Treinar o mecanismo de maximização
X
de cogência
5. Avaliar o método implementado para
X
reconhecimento de imagens 2D
6. Publicar os resultados
X X

7. Revisão bibliográfica
X X X X X X X X X X X X

4.2. Cronograma Realizado


2011 2012
Etapa
09 10 11 12 01 02 03 04 05 06 07 08
1. Criar um banco de imagens 2D
X X X X X X

2. Implementar e aprimorar o algoritmo


X X X X X X X X X X X
de geração de esqueletos proposto
3. Implementar um mecanismo de
X X X X
maximização de cogência
4. Treinar o mecanismo de maximização
X X
de cogência
5. Avaliar o método implementado para
X X
reconhecimento de imagens 2D
6. Publicar os resultados
X

7. Revisão bibliográfica
X X X X X X X X X X X X

36
5. RESULTADOS
Para obter a matriz de distâncias da figura, um arquivo CSV (ou Comma-Separated
Values) torna-se suficiente para armazená-las. Para a esqueletização e vetorização, a criação
de arquivos de imagem no formato BMP retorna com eficácia o esqueleto da figura destacado
e seus vetores com cores diferentes para simbolizar cada segmento. Através destes arquivos
unidos à análise do tempo de processamento para cada imagem, podemos evidenciar a
efetividade do algoritmo.

Figura 12.

Foram selecionadas as imagens do banco de dados [33] que tiveram os melhores


esqueletos gerados. Elas são compostas em 16 classes: pássaro, osso, camelo, criança, carro
clássico, cachorro, pessoa, elefante, garfo, copo, martelo, mão, coração, coelho, arraia e
tartaruga. Essa seleção abrange 90 imagens de treinamento e 37 de teste. O algoritmo acertou
16 imagens de teste. A precisão do reconhecimento foi de 40,54%.
Em [42] pode-se encontrar os arquivos de imagens e resultados obtidos ao longo do
trabalho.

37
Tabela 1. Alguns dos primeiro método de
reconhecimento (dissimilaridade e semelhança)

Pássaro Osso Coração Garfo Copo Carro Coelho Pessoa


C
TREINAMENTO
TESTE

38
6. CONCLUSÃO
O método de comparação de imagens resultou em erros indesejados. Uma das razões está
no fato do mecanismo de reconhecimento levar em conta diferentes critérios. O problema
multicritério depende de pesos arbitrários para cada critério. Isto torna o processo impreciso e
dependente do conjunto de imagens de treinamento. Outra fonte de erros é o algoritmo DTW
que nem sempre retorna uma correspondência ideal.
O processo de elaboração do esqueleto muitas vezes resulta em grafos ruidosos, com várias
ramificações espúrias relacionadas com pequenas perturbações do contorno. O processo de
eliminação dessas ramificações mostrou-se eficiente. Porém, em alguns casos, o mecanismo
pode introduzir diferenças dos esqueletos de imagens similares, o que também é uma fonte de
erro de reconhecimento.
A abordagem utilizada de representação do esqueleto por pontos críticos mostrou-se muito
interessante. É uma representação compacta com poucos pontos, o que permite implementar
algoritmos computacionalmente complexos. Verifica-se que é uma representação que
apresenta uma variação relativamente grande para imagens semelhantes, o que dificulta o
processo de reconhecimento de imagens. Entretanto, resultou num procedimento eficiente
para segmentação de imagens, que é outro processo relevante para processamento e
reconhecimento de imagens. Desta forma, vislumbra-se que, em associação com outras
técnicas, pode contribuir para métodos eficientes de reconhecimento.

39
7. DISCUSSÃO E TRABALHOS FUTUROS
Um dos problemas da abordagem de vetores de pontos críticos é utilizar um ponto central
da imagem como referência. Isto produz vetores diferentes para imagens semelhantes,
simplesmente porque o ponto central de referência pode ser muito diferente para imagens
semelhantes. Uma alternativa é o emprego de caminhos entre os pontos extremos da imagem.
Este método é mais robusto e confiável. Permitiria filtrar com maior facilidade pontos críticos
com grandes variações entre imagens semelhantes.

Figura 13.

40
REFERÊNCIAS BIBLIOGRÁFICAS
1. HECHT-NIELSEN, R. Cogent Confabulation. Neural Network Letter, 03 nov. 2004.

2. HECHT-NIELSEN, R. The Mechanism of Thought. IBM Research: Almaden, 10 mai.


2006. Disponivel em: <http://www.almaden.ibm.com/institute/2006/agenda.shtml>.
Acesso em: 29 fev. 2012.

3. HECHT-NIELSEN, R. Confabulation Theory: The Mecanism of Thought. University of


California, São Diego, EUA: Springer, 2007.

4. HECHT-NIELSEN, R. et al. Confabulation Theory. Physics of Life Reviews, University


of California, São Diego, EUA, n. 5, p. 106-120, abr. 2008. ISSN 1571-0645.

5. WILDER, J.; FELDMAN, J.; SINGH, M. Superordinate shape classification using


natural shape statistics. Elsevier. Rutgers University, New Brunswick, EUA. 2011.

6. CLEARY, A. M.; LANGLEY, M. M.; SEILER, K. R. Recognition without picture


identification: Geons as components of the pictorial memory trace. Psychonomic
Bulletin & Review, Iowa State University, Iowa, EUA, n. 5, nov. 2004.

7. UNGERLEIDER, L. G.; BELL, A. H. Uncovering the visual “alphabet”: Advances in our


understanding of object perception. Elsevier, National Institutes of Health, Bethesda,
EUA, out. 2010.

8. ROSENFELD, A.; PFALTZ, J. L. Distance Functions on Digital Pictures. Pattern


Recognition. Laboratoire d’Informatique Fondamentale de Marseille – University of
Maryland, p. 33-61, 1968. Disponivel em: <http://pageperso.lif.univ-
mrs.fr/~edouard.thiel/rech/1968-rosenfeld-pfaltz.pdf>. Acesso em: 20 mai. 2012.

9. FABBRI, R. et al. 2D Euclidean Distance Transform Algorithms: A Comparative Survey.


ACM Computing Surveys, Nova York, EUA, v. 40, n. 1, fev. 2008.

10. PARKER, J. R. Algorithms for Image Processing and Computer Vision. 1ª. ed. :
Wiley, 1996.

11. VINCENT, L.; SOILLE, P. Watersheds in digital spaces: An efficient algorithm based on
immersion Simulations. IEEE Transactions on Pattern Analysis and Machine
Intelligence, v. 13, 1991.

12. BACKES, A. R.; BRUNO, O. M. Fractal and Multi-Scale Fractal Dimension analysis: a
comparative study of Bouligand- Minkowski method. UFLA. Lavras, MG, p. 74-83.
2008.

13. BACKES, A. R.; CASANOVA, D.; BRUNO, O. M. Plant leaf identification based on
volumetric fractal dimension. International Journal of Pattern Recognition and

41
Artificial Intelligence, v. 23, p. 1145-1160, 2009.

14. CHIN, Y. et al. Vision guided AGV using distance transform. Nanyang Technological
University. Singapura. 2001.

15. DANIELSSON, P. E. Euclidean distance mapping. Computer Graphics and Image


Processing. Nova York, EUA: Springer, v. 14, 1980. 227-248 p.

16. MAURER, C. Q. R.; RAGAVHAN, V. A linear time algorithm for computing the Euclidean
distance transform in arbitrary dimensions. IEEE Transactions on Pattern Analysis
and Machine Intelligence, v. 2, n. 25, p. 265-270, 2003.

17. SAITO, T.; TORIWAKI, J. New algorithms for Euclidean distance transformations of an n-
dimensional digitised picture with applications. Pattern Recognition, v. 27, n. 11, p.
1551-1565, 1994.

18. MEIJSTER, A.; ROERDINK, J.; HESSELINK, W. A general algorithm for computing
distance transforms in linear time. University of Groningen. Groningen, Holanda.
2000.

19. GUAN, W.; MA, S. A list-processing approach to compute voronoi diagrams and the
euclidean distance transform. IEEE Transactions on Pattern Analysis and Machine
Intelligence, Washington, EUA, v. 20, n. 7, p. 757-761, 1998.

20. FALCÃO, A. X.; COSTA, L. F.; CUNHA, B. S. Multiscale skeletons by image foresting
transform and its applications to neuromorphometry. Pattern Recognition 35, n. 7,
2002.

21. TORRES, R. S.; FALCÃO, A. X.; COSTA, L. F. A graph-based approach for multiscale
shape analysis. Pattern Recognition, v. 37, n. 6, 2004.

22. BEUCHER, S.; MEYER, F. The morphological approach to segmentation: The watershed
transformation. Mathematical Morphology in Image Processing, 1993.

23. BLUM, H. A transformation for extracting new descriptors of shape. Massachusetts


Institute of Technology. Massachusetts, EUA, p. 362-380. 1967.

24. ARCELLI, C.; CORDELLA, L. P.; LEVIALDI, S. From local maxima to connected
skeletons. IEEE Transactions on Pattern Analysis and Machine Intelligence, v.
PAMI-3, n. 2, p. 134-143, 1981.

25. ARCELLI, C.; BAJA, G. S. A one-pass two-operation process to detect the skeletal pixels
on the 4-distance transform. IEEE Transactions on Pattern Analysis and Machine
Intelligence, v. 11, n. 4, p. 411-414, 1989.

26. LEYMARIE, F.; LEVINE, M. D. Simulating the grassfire transform using an active contour
model. IEEE Transactions on Pattern Analysis and Machine Intelligence, v. 14, n. 1,

42
p. 56-75, 1992.

27. MARAGOS, P. Morphological skeleton representation and coding of binary images. IEEE
Transactions on Acoustics, Speech and Signal Processing, v. 34, p. 1228-1244,
1986.

28. XIA, Y. Skeletonization via the realization of the fire front's propagation and extinction in
digital binary shapes. IEEE Transactions on Pattern Analysis and Machine
Intelligence, v. 11, n. 10, p. 1076-1086, 1989.

29. ZHANG, T. Y.; SUEN, C. Y. A fast parallel algorithm for thinning digital patterns.
Communications of the ACM, v. 27, n. 3, p. 236-239, 1984.

30. CHRISTOFIDES, N. Graph Theory: An Algorithmic Approach, 1975.

31. MÜLLER, M. Information Retrieval for Music and Motion, v. XVI, p. 69, 2007. ISSN
978-3-540-74048-3.

32. FELDMAN, J.; SINGH, M. Bayesian estimation of the shape skeleton. PNAS, 2006.
Disponivel em: <www.pnas.org/cgi/doi/10.1073/pnas.0608811103>. Acesso em: 8 out.
2011.

33. SEBASTIAN, T. B.; KLEIN, P. N.; KIMIA, B. B. Recognition of Shapes by Editing Shock
Graphs. Brown University, 2001. Disponivel em:
<http://www.lems.brown.edu/vision/researchAreas/SIID/>. Acesso em: 30 jul. 2012.

34. KALYTTA, B. Windows Bitmap File Loader. Kalytta, 2006. Disponivel em:
<http://www.kalytta.com/bitmap.h>. Acesso em: 05 out. 2011.

35. SOUZA, A. F. Esqueletos 8-isotrópico. INPE. São José dos Campos, SP, p. 93. 2002.
(INPE-8856-TDI/804).

36. OGNIEWICZ, R. L.; KÜBLER, O. Hierarchic Voronoi Skeletons. Swiss Federal Institute
of Technology ETH. Zürich, Suíça. 1995. (CH-8092).

37. VINCENT, L. Eficient Computation of Various Types of Skeletons. Medical Imaging.


Divisão de Ciências Aplicadas, Pierce Hall, Cambridge, EUA: SPIE, v. 5, 1991. 297-311
p.

38. VINCENT, L. Algorithmes Morphologiques Base de Files d'Attente et de Lacets


Extension aux Graphes. Ecole Nationale Supérieure des Mines de Paris. Paris, França.
1990.

39. LATECKI, L. J. et al. Skeletonization Using SSM of the Distance Transform. Temple
University. Philadelphia, EUA. 2007. (ICIP 2007).

40. YIN, P.-Y. Algorithms for straight line fitting usingk-means. Pattern Recognition Letters,

43
v. 19, p. 31-41, 1998.

41. MANNING, C. D.; RAGHAVAN, P.; SCHÜTZE, H. An Introduction to Information


Retrieval. Cambridge, Inglaterra: Cambridge University Press, 2009. 258-262 p.

42. ALVES, F. F. Reconhecimento de Imagens 2D - Pasta de compartilhamento. Google


Drive, 2012. Disponivel em:
<https://drive.google.com/?authuser=0#folders/0B4f3aigRrfhVTTYxdjI4RXFHb3c>.
Acesso em: 5 out. 2012.

44

Você também pode gostar