Upload
alvaro-vieira
View
56
Download
0
Embed Size (px)
Citation preview
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 1/44
1
UNIVERSIDADE FEDERAL DA BAHIAINSTITUTO DE MATEMÁTICA
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
Daniel Vitor Oliveira Rodrigues
Estudo comparativo de funções de Green paradetecção de arestas
Salvador2009
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 2/44
2
Daniel Vitor Oliveira Rodrigues
Estudo comparativo de funções de Green paradetecção de arestas
Monografia apresentada ao Curso de graduaçãoem Ciência da Computação, Departamento deCiência da Computação, Instituto de Matemática,Universidade Federal da Bahia, como requisitoparcial para obtenção do grau de Bacharel emCiência da Computação.Orientador: Perfilino Eugênio Ferreira Júnior
Salvador2009
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 3/44
3
Dedico este estudo:
aos meus pais, Valdemar e Vera Lúcia.
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 4/44
4
AGRADECIMENTOS
Muitos me ajudaram a concluir esse trabalho. Gostaria de sinceramente agradecer em
especial...
... a Deus, pois nada é possível sem ele;
... à minha mãe pelas palavras de consolo, apoio, confiança e incentivo;
... ao meu pai pela ajuda e paciência;
... à minha irmã Aline por acreditar no meu potencial;
... ao meu orientador pela disponibilidade e atenção;
... aos meus colegas de faculdade pelas “sugadas”, conversas e amizade;
Agradeço também a todos aqueles que indiretamente me ajudaram com este trabalho e de
alguma forma somaram a minha formação.
Muito Obrigado!
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 5/44
5
"A mente que se abre a uma nova idéia jamais voltará ao seu tamanho original".
(Albert Einstein)
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 6/44
6
RESUMO
Após o trabalho de Canny, que propôs um filtro de detecção de arestas com desempenhosuperior aos anteriormente relatados na literatura e formalizou três medidas de desempenhobaseadas em três critérios para um filtro ótimo, tornou-se possível avaliar formalmente o
desempenho de um filtro e, conseqüentemente passou-se a procurar um filtro que obtivesseum desempenho superior ao proposto no seu trabalho. O trabalho de Torreão propôs um filtrobaseado em funções de Green, construído pela combinação de operadores diferenciais queobteve desempenho superior ao de Canny. Neste contexto, este trabalho propõe utilizar estamesma abordagem para através de outras combinações de operadores diferenciais, criar eimplementar novos filtros de detecção de arestas.
Palavras-chave: Funções de Green; Detecção de arestas; Operadores diferenciais; Filtrode Canny
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 7/44
7
ABSTRACT
After Canny’s work, that proposed a edge detector filter with performance superior to theones previously proposed in literature and formalized three performance measures based onthree optimal filter criteria, it became possible to formally evaluate a filter's performance,
which resulted in a widespread search for a filter with an even superior performance.Torreão’s work proposed a filter based on the Green’s functions, built by combiningdifferential operators, which resulted in a performance superior to Canny's filter. In thiscontext, this work proposes the usage of this same approach to create and implement newedge detection filters with different differential operators combinations.
Keywords: Green’s functions; Edge detection; Differential operator; Canny’s filter
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 8/44
8
LISTA DE FIGURAS
2.1 As áreas da computação visual ....................................................................................... 14
2.2 Exemplo de utilização de filtragem para detecção de arestas ........................................ 16
3.1 Uso do filtro de Canny ...................................................................................................23
4.1 Função de Green G2 .......................................................................................................26
4.2 Função de Green G3 ........................................................................................................28
4.3 Filtros D2 (- - -) e D3 (---) para o mesmo valor de u .......................................................29
4.4 Filtro D23 .........................................................................................................................30
4.5 Comparação visual entre o filtro de Canny (esquerda) e o filtro D23 (direita) .............. 31
4.6 Comparação visual entre o filtro de Canny (esquerda) e o filtro D12 (direita) .............. 33
4.7 Comparação visual entre o filtro de Canny (esquerda) e o filtro D13 (direita) .............. 34
4.8 Comparação visual entre os filtros: (a) Filtro de Canny, (b) Filtro D23 ,(c) Filtro .........35 D12 e (d) Filtro D13
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 9/44
9
SUMÁRIO
1 Introdução ........................................................................................................................ 11
2 Conceitos relacionados à detecção de arestas ............................................................... 13
2.1 Processamento de imagens................................................................................................ 13
2.2 Filtros ................................................................................................................................ 142.3 Detecção de arestas ........................................................................................................... 15
2.4 Calibração de câmeras....................................................................................................... 16
3 O filtro de canny .............................................................................................................. 18
3.1 Os critérios de um filtro ótimo .......................................................................................... 18
3.1.1 O primeiro critério .......................................................................................................... 18
3.1.2 O segundo critério .......................................................................................................... 19
3.1.3 O terceiro critério............................................................................................................ 20
3.2 Obtenção do filtro ótimo ................................................................................................... 21
3.2.1 Medidas de desempenho................................................................................................. 21
3.2.2 Aproximação do filtro ótimo de canny ............................................................................ 22
4 Funções de Green para detecção de arestas.................................................................. 24
4.1 Apresentação dos operadores diferenciais do trabalho de Torreão ................................... 24
4.1.1 O operador diferencial D2 ............................................................................................... 24
4.1.2 O operador diferencial D3 ............................................................................................... 27
4.1.3 O operador diferencial D23.............................................................................................. 29
4.2 Construção de novos operadores diferenciais ................................................................... 31
4.2.1 O operador diferencial D12.............................................................................................. 32
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 10/44
10
4.2.2 O operador diferencial D13.............................................................................................. 33
5 Conclusão ......................................................................................................................... 36
Referências Bibliográficas ..................................................................................................... 38
Apêndice A – Código-Fonte dos filtros ................................................................................. 39
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 11/44
11
1 INTRODUÇÃO
Atualmente, uma área da computação visual que devido ao crescimento de sua utilização
se tornou de grande importância e alvo de ampla pesquisa computacional é a área de
processamento de imagens, sendo utilizada em diversos ramos, tais como: medicina, controle,agropecuária, entretenimento, etc. Devido ao aumento da demanda da utilização e da
dependência de várias áreas em relação a obter informações a partir de imagens, vários
algoritmos e técnicas foram desenvolvidos para filtrar, restaurar, comprimir, descomprimir,
diferenciar e reconhecer imagens.
Uma imagem adquire as características de um objeto, ou seja, as variações nos tons de
cinza da imagem. São utilizadas várias técnicas de processamento de imagens para extrair
informações desses objetos. Uma dessas técnicas, a detecção de bordas ou arestas de uma
imagem é essencial para a análise de imagens e é implementada através de vários algoritmos
que visam diferentes propósitos, através de fórmulas matemáticas diferenciadas, e
basicamente derivam a imagem para acentuar suas arestas. Estas técnicas são o foco principal
deste trabalho.
Os algoritmos de detecção de arestas são utilizados para diversos fins, podendo ser
empregados como um fim, quando se quer obter apenas as arestas de uma imagem para, por
exemplo, a partir de uma imagem extraída de um satélite, calcular a área ou perímetro dos
objetos presentes nesta imagem, ou como um passo intermediário ou pré-processamento para
passos subseqüentes, ou seja, quando a detecção de bordas é necessária para se utilizar
posteriormente outra técnica de processamento de imagens, por exemplo, para calibrar
automaticamente uma câmera utilizada numa partida de futebol é necessário usar um filtro
para realçar as linhas do campo (bordas) e detectá-las, utilizando os pontos de interseção
dessas linhas posteriormente para determinar os parâmetros intrínsecos e extrínsecos da
câmera para calibrá-la.
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 12/44
12
Diante da dificuldade de implementar um algoritmo de detecção de bordas que possua um
bom desempenho (chamado de filtro ótimo por Canny) (CANNY, 1986) em contextos
diferentes, ou seja, funcione bem com imagens que possuam características diferentes, vemos
a necessidade de comparar o desempenho desses algoritmos com o objetivo de verificar qual a
técnica que obtém melhores resultados globais aplicadas a diferentes contextos.
Nesse contexto, esse trabalho propõe formalizar e implementar alguns filtros de detecção
de arestas baseados em funções de Green e comparar visualmente os seus resultados.
Os próximos capítulos serão organizados da seguinte forma: O capítulo 2 apresenta os
conceitos básicos necessários para a compreensão do trabalho. O capítulo 3 apresenta o
trabalho proposto por Canny e a formalização de seus critérios para a obtenção de um filtro de
detecção de arestas ótimo. O capítulo 4 apresenta inicialmente a abordagem da utilização de
operadores diferenciais baseados em funções de Green para a obtenção de filtros de detecção
de arestas e, posteriormente, apresenta um filtro construído pela combinação de operadores
proposta por (TORREAO; AMARAL, 2002). Posteriormente, o capítulo 4 apresenta novos
filtros criados a partir de novas combinações de operadores diferenciais. Por fim, no capítulo5, são apresentados as considerações finais e os trabalhos futuros.
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 13/44
13
2 CONCEITOS RELACIONADOS ÀDETECÇÃO DE ARESTAS
O objetivo deste capítulo é apresentar os principais conceitos utilizados e que são
necessários para a compreensão do trabalho.
2.1 PROCESSAMENTO DE IMAGENS
O campo do processamento de imagens consiste em desenvolver técnicas de compreensão
dos mecanismos de visão natural e artificial e em fornecer ferramentas cujo desempenho
aproxima-se o mais possível das extraordinárias capacidades do sistema visual humano
(FACON, 2002). A área do processamento de imagens juntamente com as de processamento
de dados, computação gráfica e visão computacional compõem a computação visual conforme
ilustrado na figura 2.1. No processamento de imagens a entrada é composta por uma imagem
que após ser processada dá origem a uma outra imagem como saída. Com o passar do tempo,
inúmeras atividades corriqueiras passaram a ser automatizadas fazendo-se uso de técnicas de
processamento de imagens. Estas técnicas podem necessitar de conhecimento prévio ou até de
processamento em tempo real. São exemplos de aplicações:
• Aplicações industriais - O campo industrial utiliza processamento de imagens para
várias atividades tais como: Pilotagem de robôs para escolha e manipulação de peças,
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 14/44
14
além de escolha de melhor trajetória para evitar obstáculos. Inspeção visual para medir e
fazer o controle da qualidade do produto, detectando possíveis defeitos.
• Reconhecimento de padrões - As técnicas utilizadas são: Reconhecimento de
caracteres para leitura automática. Reconhecimento de impressões digitais e de
assinaturas.
Figura 2.1: As áreas da computação visual
2.2 FILTROS
Um filtro é uma aplicação do espaço das imagens no espaço das imagens, a fim de
melhorar ou interpretar uma imagem. Filtragem é um conjunto de técnicas destinadas a
corrigir e realçar uma imagem digital. As técnicas de filtragem podem ser divididas em doisgrupos: Correção ou Restauração e Melhoria ou Realce. As técnicas de realce de imagens são
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 15/44
15
relacionadas com expansão de contraste, realce de bordas e suavização. Alguns dos objetivos
principais do realce de uma imagem são a obtenção de:
• Imagem com um bom contraste• Contornos nítidos
• Detalhes importantes
• Pouco ruído
Os métodos de realce diferem dos de restauração pelo fato de que os primeiros são
essencialmente projetados para manipular a imagem a partir das características psicofísicas do
sistema de referência que é a visão humana. Esses métodos podem ser divididos em duas
categorias principais que são:
• Os métodos “ponto por ponto”
1. Modificação de histograma
2. Modificação de contraste
•
Os métodos de vizinhança ou locais1. Suavização do ruído
2. Realce de contornos e de detalhes (FACON, 2002).
2.3 DETECÇÃO DE ARESTAS
Aresta ou bordas são definidas como descontinuidades na intensidade do nível de cinza
dos pixels de uma imagem. As técnicas de detecção de arestas consistem em detectar
variações nos níveis de cinza, ou seja, se há taxa de mudança nos níveis de cinza (ver figura
2.2). Elas utilizam técnicas de filtragem para detectar a mudança da intensidade dos níveis de
cinza. Uma imagem I(x,y) é uma seqüência de regiões de tamanhos diversos, onde os níveis
de cinza são constantes, e de fronteiras, encontros de várias regiões, marcando uma transição
entre elas. Do ponto de vista matemático, as regiões são caracterizadas por derivadas suaves e
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 16/44
16
pouco acentuadas e as fronteiras por derivadas fortes e acentuadas. O princípio é derivar a
imagem para acentuar as bordas contidas na imagem (FACON, 2002).
Figura 2.2: Exemplo de utilização de filtragem para detecção de arestas
2.4 CALIBRAÇÃO DE CÂMERAS
A calibração de uma câmera envolve estimar os parâmetros intrínsecos e extrínsecos
(internos ou externos). Entendemos como parâmetros intrínsecos os que são necessários para
ligar as coordenadas de pixel de um ponto na imagem com as respectivas coordenadas no
frame da câmera. Podemos citar:
• Distância focal;
• Localização do centro da imagem, em coordenadas de pixel;
• Tamanho efetivo horizontal e vertical do pixel;
• Coeficientes de distorção
Já os parâmetros extrínsecos são os que definem a localização e orientação do frame decâmera com relação a um frame de mundo conhecido. Podemos citar:
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 17/44
17
• Vetor de translação;
• Matriz de rotação (ou os seus parâmetros livres).
Na calibração de câmeras são utilizados vários sistemas de coordenadas, são eles:
• O sistema de coordenadas do mundo (SCM), utilizado para descrever a cena com
origem no ponto O e referencial (X, Y,Z);
• O sistema de coordenadas da câmera (SCC), que tem origem em O’, no centro óptico,
referencial (X’, Y’, Z’), tem plano xy paralelo ao plano de projeção e f é a distância
desse plano de projeção a O’;
• O sistema de coordenadas da imagem (SCI) que é um sistema bidimensional no planode projeção, tem origem C obtida pela projeção do centro óptico O’ sobre o plano de
projeção e referencial (x,y);
• O sistema de coordenadas em pixel (SCP) que define a posição de um ponto em
relação a matriz de pixels, tem sistema de coordenadas (u, v) e normalmente se situa
num canto da imagem.
Um exemplo de método de calibração de câmeras é o método de Tsai (Tsai, 1987). Este
método se baseia nas seguintes restrições:
• Os pontos de entrada são coplanares;
• O SCM e o SCC tem a mesma orientação, logo R é uma matriz de rotação;
• Todos os pontos de calibração se situam no plano Z = 0 (SCM);
• Os parâmetros intrínsecos da câmera, com exceções da distância focal e coeficiente de
distorção, devem ser conhecidos, de modo que a partir de um ponto do SCP sejapossível determinar o ponto equivalente no plano de projeção.
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 18/44
18
3 O FILTRO DE CANNY
3.1 OS CRITÉRIOS DE UM FILTRO ÓTIMO
Segundo (CANNY, 1986), um filtro de detecção de arestas precisa atender a três critérios
básicos. Esses critérios podem ser enunciados como:
1. Boa detecção
2. Boa localização espacial
3. Resposta única
3.1.1 O PRIMEIRO CRITÉRIO
O primeiro critério define que o detector de arestas deve ter baixa probabilidade de falha
na detecção de arestas, ou seja, baixa probabilidade de escolher pixels que estão fora das
arestas. Este critério é chamado de Taxa de detecção e consiste na maximização da razão
sinal/ruído. Ao analisarmos a razão sinal/ruído (SNR), podemos afirmar que quanto maior elafor, maior será a probabilidade de se detectar as bordas verdadeiras dessa imagem.
A resposta de um filtro f(x) a uma borda G(x) com centro em H(x) é dada por uma integral
de convolução, sendo que essa resposta é limitada por [-w,w] e tem valor zero fora desse
intervalo:
(1)
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 19/44
19
Para o ruído n(x), considerando a raiz quadrada da reposta do filtro e sendo n0 ² a
amplitude quadrática média do ruído por unidade de comprimento e assumindo que a borda
está centrada em x = 0 temos:
(2)
Logo a razão sinal/ruído (SNR) é representada por:
(3)
3.1.2 O SEGUNDO CRITÉRIO
O segundo critério define que as distâncias entre os pixels da borda encontrados pelo
detector e os pixels da borda verdadeira deve ser mínima, ou seja, os pixels da borda devem
estar bem localizados. Este critério é chamado de Localização (L) e é definido como sendo o
inverso da distância entre um ponto detectado e a respectiva posição verdadeira, logo quanto
maior for L, mas próximo das posições verdadeiras estarão os pontos detectados pelo filtro
(DO VALE; DAL POZ, 2002).
(4)
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 20/44
20
Podemos concluir que por esses dois primeiros critérios, um filtro de bordas precisa
maximizar tanto a razão sinal/ruído (SNR) como a localização (L) e, portanto deve maximizar
o produto entre eles.
(5)
3.1.3 O TERCEIRO CRITÉRIO
Por fim, o terceiro critério para um filtro ótimo define que o detector de bordas não pode
identificar múltiplas bordas onde existe somente uma, ou seja, deve haver apenas um único
pixel de borda para um único pixel de borda verdadeira. Este critério é chamado de critério de
resposta única e consiste em maximizar a distância (Xmax ) entre máximos adjacentes na
resposta do filtro f(x) devido ao ruído (CANNY, 1986).
(6)
Assim, ao maximizar o produto entre SNR e L, deve-se também garantir que Xmax seja
maior possível, aumentando a possibilidade de separação de máximos verdadeiros dos falsos
de saída do filtro f(x) (DO VALE; DAL POZ, 2002).
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 21/44
21
3.2 OBTENÇÃO DO FILTRO ÓTIMO
3.2.1 MEDIDAS DE DESEMPENHO
Segundo (CANNY, 1986), as medidas de desempenho Σ(f) e Λ(f ') estão relacionadas
respectivamente com o primeiro e o segundo critérios, os critérios de detecção e localização:
(7)
Demonstra-se que Σ(f) e Λ(f ') variam inversamente ao longo do espaço-escala, ou seja,
quando se tenta maximizar a detecção perde-se em localização, já quando se tenta maximizar
a localização perde-se em detecção.
Ao utilizar apenas os dois primeiros critérios não se obtém um filtro ótimo, pois se obtém
um resultado truncado por produzir muitos máximos locais devido à grande largura de banda,
o que inflinge o primeiro critério. O terceiro critério utiliza o Xmax para restringir a escolha de
f(x) segundo a expressão:
Xmax [f(x)] = kW (8)
onde k varia no intervalo [0,1] e W é o coeficiente da largura do operador.
A forma do filtro f(x) depende, então, da injunção de respostas múltiplas, isto é, depende
das distâncias entre as respostas adjacentes (Xmax ). Em geral, o ideal é que as respostas
adjacentes estejam o mais distante possível, facilitando a separação do pico verdadeiro dos
falsos. Segundo (Canny, 1986), quanto menor o espaçamento entre as respostas adjacentes,mais íngreme é a função f(x) na origem. Assim, um filtro muito íngreme, em relação à
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 22/44
22
origem, ou seja, que tenha uma maior declividade da função f(x) na origem, beneficia o
critério de localização, mas não é favorável aos outros critérios. Por outro lado, um filtro
menos íngreme, em relação à origem, ou seja, menor declividade da função f(x) na origem, é
desfavorável ao critério de localização, mas os critérios de detecção e de resposta única são
beneficiados (DO VALE; DAL POZ, 2002).
Portanto, conclui-se que uma solução analítica é inviável e se pode afirmar que para se
obter um filtro ótimo, é necessário obter um conjunto de parâmetros que balanceie os três
critérios mencionados.
3.2.2 APROXIMAÇÃO DO FILTRO ÓTIMO DECANNY
Devido à dificuldade de se obter uma solução analítica, foi desenvolvida uma variante. A
ação do filtro ótimo de Canny pode ser aproximada pela primeira derivada da função
Gaussiana G’(x), também chamada de DoG (Derivative of Gaussian). A função Gaussiana é
dada por:
(9)
Portanto, a aproximação do filtro ótimo de Canny para a detecção de bordas de imagens
digitais é a primeira derivada da função Gaussiana, conseguido pela convolução da imagem
de entrada com G’, devido à forma analítica simples que possui e a semelhança dos
resultados. A imagem de saída (ver figura 3.1) desse processo terá suas bordas realçadas,
mesmo na presença de ruídos, incorporadas no modelo de bordas da imagem (Miranda;
Camargo Neto, 2008).
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 23/44
23
Figura 3.1: Uso do filtro de Canny
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 24/44
24
4 FUNÇÕES DE GREEN PARADETECÇÃO DE ARESTAS
Com o passar do tempo, vários trabalhos foram apresentados, propondo diversos tipos de
filtros para detecção de arestas. No entanto, por ser baseado num modelo matemático formalcom critérios de desempenho bem definidos o filtro para detecção de arestas de Canny se
tornou o mais popular na literatura. (TORREAO; AMARAL, 2002) propôs uma nova
abordagem para utilizar operadores diferenciais na obtenção de arestas através de um filtro
que possui desempenho superior aos relatados na literatura. Este filtro é baseado em funções
de Green de equações de casamento de imagens e além de ser mais simples que o processo de
otimização de Canny possui um melhor desempenho1.
4.1 APRESENTAÇÃO DOS OPERADORESDIFERENCIAIS DE TORREÃO
4.1.1 O OPERADOR DIFERENCIAL D2
Segundo (TORREAO; AMARAL, 2002), dado o sinal I (x), a derivada deste sinal é
expressa por
1 Conforme pode ser visto em (TORREÃO; AMARAL, 2002).
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 25/44
25
(10)
Suponha que exista um sinal Ĩ (x) tal que
(11)
e expandindo o 1° membro de (11) até 2ª ordem, temos:
(12)
A solução que satisfaz esta equação diferencial é dada por
(13)
onde a função de Green, G2(ξ) que é representada e dada por (figura 4.1) e (14)
respectivamente.
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 26/44
26
Figura 4.1: Função de Green G2
(14)
De forma análoga, supondo existir Î (x) tal que
(15)
e tem a solução dada por
(16)
Usando Ĩ (x) e Î (x), pode-se escrever I '(x) como
(17)
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 27/44
27
Desta forma, obtém-se o operador diferencial de convolução
(18)
4.1.2 O OPERADOR DIFERENCIAL D3
De forma similar, a abordagem utilizada pode ser estendida para a expansão da terceira
ordem de Taylor
(19)
obtendo-se no final a função de Green, G3(ξ), que é representada e dada por (figura 4.2) e (20)
respectivamente.
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 28/44
28
Figura 4.2: Função de Green G3
(20)
onde Ф é um parâmetro livre, α = 1.596/ u, β = 0.702/ u, γ = 1.807/ u, e
(21)
E por fim, obtém-se o operador diferencial de convolução
(22)
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 29/44
29
4.1.3 O OPERADOR DIFERENCIAL D23
Um melhor operador de detecção de arestas pode ser construído pela combinação dos
operadores diferenciais D2 e D3 num único operador diferencial chamado D23.
Figura 4.3: Filtros D2 (- - -) e D3 (---) para o mesmo valor de u.
Este operador obtém melhores resultados por conseguir um melhor equilíbrio entre a
precisão da detecção e a robustez contra o ruído.
O operador D23 é obtido pela generalização da derivada do sinal I (x)
(23)
onde η é um parâmetro real. E é dado por
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 30/44
30
(24)
onde a é um parâmetro real. Substituindo I (x ± u) e I (x ± ηu), respectivamente, pelas integrais
correspondentes, envolvendo G2 e G3, chegamos ao operador D23 que é representado e dado
por (figura 4.4) e (25) respectivamente.
Figura 4.4: Filtro D23
(25)
com F (x) dado por
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 31/44
31
(26)
onde α, β , γ, Ф e A são os mesmos que em (20) e C (Ф) = 2/(uA).
A figura 4.5 faz uma comparação visual entre o filtro de canny e o filtro D23.
Figura 4.5: Comparação visual entre o filtro de Canny (esquerda) e o filtro D23
(direita)
4.2 CONSTRUÇÃO DE NOVOS OPERADORESDIFERENCIAIS
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 32/44
32
Seguindo a mesma abordagem para a combinação de operadores diferenciais apresentada
em (TORREAO; AMARAL, 2002), novos filtros de detecção de arestas podem ser
construídos ao combinar os operadores diferenciais D1, D2 e D3, criando os operadores D12 e
D13.
4.2.1 O OPERADOR DIFERENCIAL D12
O operador diferencial D12 é um filtro de detecção de arestas construído através da
combinação dos operadores D1 e D2.
Inicialmente, precisa-se obter a função de Green G1(ξ), para construir o operador D1.
Segundo (FERREIRA JUNIOR; TORREAO; CARVALHO, 2009), G1(ξ) é dada por
(27)
e de forma análoga a (17) , obtém-se o operador diferencial
(28)
Para combinar os operadores D1 e D2 utiliza-se a mesma técnica de combinação
apresentada no filtro D23 do item 4.1.3, que consiste na generalização da derivada do sinal
I (x). De (24), (27) e (14) se obtém o operador D12 que é dado por
(29)
com F (x) dado por
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 33/44
33
(30)
Na figura 4.6 compara-se visualmente o filtro de Canny e o filtro D12 e observa-se que o filtro
D12 possui arestas mais suaves e não apresenta o efeito aliasing que é bastante evidente no
filtro de Canny.
Figura 4.6: Comparação visual entre o filtro de Canny (esquerda) e o filtro D12 (direita)
4.2.2 O OPERADOR DIFERENCIAL D13
De forma similar, o operador diferencial D13 é um filtro de detecção de arestas construído
através da combinação dos operadores D1 e D3.
De (24), (27) e (20) se obtém o operador D13 que é dado por
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 34/44
34
(31)
com F (x) dado por
(32)
onde α, β , γ, Ф e A são os mesmos que em (20) e C (Ф) = 1/(uA).
Na figura 4.7 compara-se visualmente o filtro de Canny e o filtro D13 e também observa-se
que o filtro D13 possui arestas mais suaves e não apresenta o efeito aliasing do filtro de Canny.
Figura 4.7: Comparação visual entre o filtro de Canny (esquerda) e o filtro D13 (direita)
Na figura 4.8 compara-se visualmente os filtros: (a) de Canny, (b) D23 ,(c) D12 e (d) D13.
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 35/44
35
(a) (b)
(c) (d)
Figura 4.8 : Comparação visual entre os filtros: (a) Filtro de Canny, (b) Filtro D23 ,(c)Filtro D12 e (d) Filtro D13
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 36/44
36
5 CONCLUSÃO
O campo dos filtros de detecção de arestas é uma das áreas do processamento de imagens
que devido ao seu vasto uso na análise de imagens possui grande relevância e é alvo de
constantes trabalhos de pesquisa.
Este trabalho, inicialmente, apresentou o filtro e os critérios básicos para se obter um filtro
ótimo de detecção de arestas propostos no trabalho de Canny. Posteriormente, apresentou a
abordagem utilizada no trabalho de (TORREAO; AMARAL, 2002) de utilizar uma
combinação de operadores diferenciais baseados em funções de Green como filtro de
detecção de arestas. Esta abordagem obteve arestas mais suaves e, portanto um resultado
superior ao filtro de Canny (Figura 4.5). O objetivo principal desse trabalho foi utilizar esta
abordagem para criar e implementar novos filtros de detecção de arestas a partir dacombinação de outros operadores diferenciais, completando uma lacuna deixada no trabalho
acima citado, pois nele não utiliza-se a função de primeira ordem.
A grande dificuldade encontrada neste trabalho foi formalizar e modelar a combinação
dos operadores diferenciais a partir da generalização da derivada do sinal (24) e
posteriormente implementar esses novos filtros. Ao comparar visualmente os resultados da
aplicação dos novos filtros criados com o filtro de Canny, percebemos que os novos filtrostambém possuem arestas mais suaves e, portanto resultados superiores ao obtido pelo filtro de
Canny, porém como pode-se ver na figura 4.8, esses resultados não são melhores que o filtro
D23 de (TORREAO; AMARAL, 2002), pois possuem uma resposta mais fraca já que as
arestas detectadas tem uma intensidade mais baixa.
Outras possibilidades de trabalhos futuros são:
• Criar e implentar o filtro D123 a partir da combinação dos operadores diferenciais D1, D2
e D3.
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 37/44
37
• Calcular as três medidas de desempenho, propostas por Canny, dos filtros D12 , D13 e
D123.
• Utilizar os filtros propostos para detecção de linhas para calibração automática de
câmeras.
• Estender o trabalho de (TORREAO; AMARAL, 2002) ao caso de funções de Green
com u sendo uma função afim (na abordagem utilizada u é uma constante).
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 38/44
38
REFERÊNCIAS BIBLIOGRÁFICAS
CANNY, J. A Computational Approach to Edge Detection. IEEE Transactionson Pattern Analysis and Machine Intelligence, V. 8, n. 6, pp. 679-698, 1986.
DO VALE, G.M.; DAL POZ, A.P. Processo de detecção de bordas de Canny. 2002.
FACON, J. Processamento e análise de imagens. 2002.
FERREIRA JÚNIOR, P.E., TORREÃO, J.R.A., CARVALHO, P.C.P., A Comparative Analysis of Green’s Functions of 1D Matching Equations for Motion Synthesis, PatternRecognition Letters (2009).
MIRANDA, J.I.; CAMARGO NETO, J. Filtro de Canny para detecção de bordas:implementação Java. Campinas: Embrapa Informática Agropecuária, 2008. (EmbrapaInformática Agropecuária. Comunicado Técnico, 96).
TSAI, R. Y. (1987), ‘A versatile camera calibration technique for high-accuracy 3d machinevision metrology using off-the-shelf tv cameras and lenses’, Ieee Journal Of Robotics AndAutomation RA-3(4), 323–344.
TORREAO, J.R.A.; AMARAL, M.S., 2002. Signal differentiation through a Green’s functionapproach. Pattern Recognition Lett. 23, 1755–1759.
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 39/44
39
APENDICE A – CÓDIGO-FONTE DOSFILTROS
#include <stdio.h>
#include <stdlib.h>
#include <im.h>
#include <im_image.h>
#include <math.h>
#define sq(x) x * x
// Função de Green G2
float G2 (float Xi, float u) {
if (Xi > 0) return sin(Xi/u) * exp(-Xi/u) * 2.0 / u;
else return 0;
}
// Operador D2
float D2(float Xi, float u) { return G2(-Xi,u) - G2(Xi,u); }
// Função de Green G3
float G3(float Xi, float u) {
float A;
float fi = 0.0;
float alfa = 1.596 / u;float beta = .702 / u;
float gama = 1.807 / u;
float part;
if (Xi > 0)
{
part = cos(fi) * ((beta - alfa) + (sq(alfa) - sq(beta)
+ sq(gama) / 3)) + gama * sin(fi) * (1 - 2 * beta / 3);
A = 2.0 / (u * part);
return A * (cos(fi) * exp( -alfa * Xi ) - cos(gama * Xi
+ fi) * exp( -beta * Xi));
} else return 0.0;
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 40/44
40
}
// Operador D3
float D3(float Xi, float u) { return G3(-Xi,u) - G3(Xi,u); }
// Função de Green G12
float G12(float Xi, float u) {
float A;
float a = 1.0 / 9;
float fi = 0.0;
float alfa = 1.596 / u;
float beta = .702 / u;
float gama = 1.807 / u;
float eta = 2.808;
float part;
if (Xi > 0)
{
part = 2 * sq(a) * sin(Xi/(eta * u)) * exp(-Xi/(eta *
u))/(sq(eta) * u) + (exp(-Xi/u)/u);
return (1 + a) * part;
} else return 0.0;
}
// Operador D12float D12(float Xi, float u) { return (G12(-Xi,u) - G12(Xi,u))
/ (2 * u); }
// Função de Green G13
float G13(float Xi, float u) {
float A;
float a = 1.0 / 9;
float fi = 0.0;
float alfa = 1.596 / u;
float beta = .702 / u;
float gama = 1.807 / u;float eta = 2.808;
float part;
if (Xi > 0)
{
part = cos(fi) * ((beta - alfa) + (sq(alfa) - sq(beta)
+ sq(gama)) / 3) + gama * sin(fi) * (1 - 2 * beta / 3);
A = 2.0 / (u * part);
part = cos(fi) * exp(- alfa * Xi / (eta * u)) - cos(gama
* Xi / (eta * u) + fi) * exp(- beta * Xi / (eta
* u)) + eta * exp(- Xi / u) / (u * A * a);
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 41/44
41
return A * part;
} else return 0.0;
}
// Operador D13
float D13(float Xi, float u) { return (G13(-Xi,u) -
G13(Xi,u)); }
// Função de Green G23
float G23(float Xi, float u) {
float A;
float a = 1.0 / 9;
float fi = 0.0;
float alfa = 1.596 / u;float beta = .702 / u;
float gama = 1.807 / u;
float eta = 2.808;
float part;
if (Xi > 0)
{
part = cos(fi) * ((beta - alfa) + (sq(alfa) - sq(beta)
+ sq(gama)) / 3) + gama * sin(fi) * (1 - 2 *
beta / 3);
A = 2.0 / (u * part);
part = cos(fi) * exp(- alfa * Xi / (eta * u)) - cos(gama
* Xi / (eta * u) + fi) * exp(- beta * Xi / (eta
* u)) + eta * sin(Xi / u) * exp(- Xi / u) * 2.0
/ (u * A * a);
return A * part;
} else return 0.0;
}
// Operador D23
float D23(float Xi, float u) { return (G23(-Xi,u) –
G23(Xi,u)); }
int main(int argc, const char *argv[]) {
imFile * ifile, * ofile;
imImage * im, * imOut;
int error;
int w, x, y, i, addr, sum;float sumFX1, sumFX2, sumFY1, sumFY2, sumX, sumY;
float inc, boundary, Xi;
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 42/44
42
void **data, * ptr_data;
float u = .042;
const int m_size = 5;
const int m_bound = m_size >> 1;
float MR[m_size], ML[m_size];
ifile = imFileOpen(argv[1],&error);
im = imFileLoadImage(ifile,0,&error);
imFileClose(ifile);
if (argc > 4) u = atof(argv[4]);
data = (void**) malloc(sizeof(void*));
*data = (void*) malloc(im->size);
boundary = 0.7;inc = boundary / m_bound;
// mascara de convolucao - esquerda-->direita
for (i = 0, Xi = -boundary; Xi <= boundary && i < m_size;
i++, Xi += inc)
{
//MR[i] = D12(Xi,u); //Utilizar o filtro D12
//MR[i] = D13(Xi,u); //Utilizar o filtro D13
MR[i] = D23(Xi,u); //Utilizar o filtro D23
}
// mascara de convolucao - esquerda<--direira
for (i = 0; i < m_size; i++)
{
ML[i] = -MR[i];
}
for (w = 0; w < im->depth; w++)
{
ptr_data = (unsigned char*)im->data[0] +
w * im->plane_size;
for(y = 0; y < im->height; y++)
{
for(x = 0; x < im->width; x++)
{
sumFX1 = sumFX2 = 0.0;
sumFY1 = sumFY2 = 0.0;
addr = y * im->width + x;
//convolucao sobre eixo Ox - varrendo da esquerda-->direitafor (i = -m_bound; i <= m_bound; i++)
{
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 43/44
43
if (x + i >= 0 && x + i < im->width)
{
sumFX1 += (float) *((unsigned
char*)ptr_data + addr + i)
* MR[i + m_bound];}
}
if (sumFX1 < 0) sumFX1 = 0.0;
else sumFX1 /= 2 * u;
//convolucao sobre eixo Ox - varrendo da esquerda<--direita
for (i = m_bound; i >= -m_bound; i--)
{
if (x + i >= 0 && x + i < im->width)
{
sumFX2 += (float) *((unsigned char*)ptr_data + addr + i)
* ML[i + m_bound];
}
}
if (sumFX2 < 0) sumFX2 = 0.0;
else sumFX2 /= 2 * u;
//convolucao sobre eixo Oy - varrendo de cima-->baixo
for (i = -m_bound ; i <= m_bound; i++)
{
if (y + i >= 0 && y + i < im->height){
sumFY1 += (float) *((unsigned
char*)ptr_data + addr + im->width
* i) * MR[i + m_bound];
}
}
if (sumFY1 < 0) sumFY1 = 0.0;
else sumFY1 /= 2 * u;
//convolucao sobre eixo Oy - varrendo de cima<--baixo
for (i = m_bound ; i >= -m_bound; i--){
if (y + i >= 0 && y + i < im->height)
{
sumFY2 += (float) *((unsigned
char*)ptr_data + addr + im->width
* i) * ML[i + m_bound];
}
}
if (sumFY2 < 0) sumFY2 = 0.0;
else sumFY2 /= 2 * u;
sumX = (sumFX1 + sumFX2) / 2;
sumY = (sumFY1 + sumFY2) / 2;
5/7/2018 Estudo comparativo de funções de Green para Detecção de Arestas-Filtro de Green - slidepdf.com
http://slidepdf.com/reader/full/estudo-comparativo-de-funcoes-de-green-para-deteccao-de-arestas-filtro-de-green 44/44
44
sum = (int) floor(sqrt(sq(sumX)
+ sq(sumY)));
if (sum > 255) sum = 255;else if (sum < 0) sum = 0;
addr = w * im->plane_size + y * im->width
+ x;
*((unsigned char*)data[0] + addr) =
(unsigned char)sum;
}
}
}
ofile = imFileNew(argv[2],argv[3],&error);
imOut = imImageCreate(im->width, im->height,
im->color_space, im->data_type);
imOut->data = data;
error = imFileSaveImage(ofile,imOut);
imImageDestroy(imOut);
imImageDestroy(im);
imFileClose(ofile);
return 0;
}