Escolar Documentos
Profissional Documentos
Cultura Documentos
discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/233809039
READS
211
2 authors:
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
01/2011.
comparável ao estado da arte para sua finalidade original, em suas etapas intermediárias foi
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
Reconhecimento de Imagens 2D
Utilizando um Modelo Estatístico de Formas
Relatório
Orientador
Prof. Dr. Amaury Kruel Budri
Centro de Engenharia, Modelagem e
Ciências Sociais Aplicadas
UFABC
3
4
Dedico este trabalho aos que acreditam na ciência
e no futuro próspero da humanidade.
5
AGRADECIMENTOS
6
“Aprenda como se você fosse viver para sempre.
Viva como se você fosse morrer amanhã.”
Mahatma Gandhi
7
RESUMO
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.
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
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.
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)
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 .
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)
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.
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)
⋃ ( ) (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.
( ) ( ) ( )
(6)
( ) ( ) ( ) ( )
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.
Figura 4.
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.
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.
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.
29
̂( | ) ̂( ) ∏ ̂( | ) (7)
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)
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)
∑ ( ) ∑ ( )
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)
( ) ( ) ( )
( ) ( ) ( ) ( ) (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.
| ( ) ( )|
( ) ∑ ⁄ (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)
∑ ( )
( ) ( ) ( )
( ) ( ) ( ) ( ) (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)
( ) (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)
⁄
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.
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
7. Revisão bibliográfica
X X X X X X X X X X X 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.
37
Tabela 1. Alguns dos primeiro método de
reconhecimento (dissimilaridade e semelhança)
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.
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.
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.
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.
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).
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.
44