Seminário
Introdução à Visão
Computacional
- The Cyclops Project CPGCC - INE -UFSC
Domínio do Espaço - Parte I
2. Domínio
do Espaço
Parte I - Operações utilizando Convolução
E3. Detecção de Bordas com Convolução Simples
• E3.1 Roberts
• E3.2 Sobel
• E3.3 Robinson
E3’ Operadores Avançados de Detecção de Bordas
• E 3.4 Canny
E3’’ Detecção de Estruturas Salientes
• E 3.5 Sha’aShua
E3. Operações de Detecção de
Bordas
O que é borda ?
É o contorno entre um objeto e o fundo indicando o limite entre
objetos sobrepostos
Variações de intensidade complexas que ocorrem em uma região são
geralmente chamadas de textura. Bordas são definidas como picos da
magnitude do gradiente, ou seja, são variações abruptas da textura
que ocorrem ao longo de curvas dadas pelos valores do gradiente da
imagem.
As bordas são regiões da imagem onde ocorre uma mudança de
intensidade em um certo intervalo do espaço, em uma certa direção.
Isto corresponde a regiões de alta derivada espacial.
E3. Operações de Detecção de
Bordas
E3. Operações de Detecção de
Bordas
O borda unidimensional
E3. Operações de Detecção de
Bordas
O borda bidimensional
E3. Operações de Detecção de
Bordas
Como realizamos a detecção ?
Como uma borda é definida por uma mudança no nível de
cinza, quando ocorre uma denscontinuidade na intensidade, ou
quando o grandiente da imagem tem uma variação abrupta, um
operador que é sensível a estas mudanças operará como um
detector de bordas.
Um operador de derivada faz exatamente esta função. Uma
interpretação de uma derivada seria a taxa de mudança de uma
função, e a taxa de mudança dos níveis de cinza em uma
imagem é maior perto das bordas e menor em áreas
constantes.
E3. Operações de Detecção de
Bordas
Como realizamos a detecção ?
Se pegarmos os valores da intensidade da imagem e acharmos os pontos onde
a derivada é um ponto de máximo, nós teremos marcado suas bordas.
Dado que as imagens são em duas dimensões, é importante considerar
mudanças nos níveis de cinza em muitas direções. Por esta razão, derivadas
parciais das imagens são usadas, com as respectivas direções X e Y. Uma
estimativa da direção atual da borda pode ser obtida usando as derivadas x e
y como os componentes da direção ao longo dos eixos, e computar o vetor
soma.
O operador envolvido é o gradiente, e se a imagem é vista como uma função
de duas variáveis A(x,y) então o gradiente é definido como:
E3. Operações de Detecção de
Bordas
Como implementamos a detecção ?
Um detector de bordas gera:
• uma imagem de gradientes expresso em tons de
cinza (sempre!)
• uma imagem de bordas (onde os pixel com
gradientes irrelevantes foram eliminados)
• uma matriz de vetores de orientação do gradiente
(onde na posição de cada pixel está um valor
indicando a direção principal do gradiente naquele
ponto)
E3.1. Operador de Roberts
É o mais antigo e simples algoritmos de detecção de
bordas. Utiliza um par de matrizes 2x2 para encontrar os
gradientes nas direções x e y:
E3.1. Operador de Roberts
Para determinar onde o pixel avaliado é ou não um pixel de
borda, o gradiente é calculado da seguinte forma:
Se a magnitude calculada é maior do que um valor limite
(parâmetro), o pixel é considerado ser parte de um borda.
E3.1. Operador de Roberts
A direção do gradiente da borda, perpendicular à
direção da borda, é encontrada com a seguinte
fórmula:
E3.1. Operador de Roberts
Problemas:
• O pequeno tamanho da máscara para o operador de
Roberts torna o mesmo fácil de se implementar e rápido
para calcular a máscara de resposta. As respostas,
porém, são muito sensíveis ao ruído na imagem.
• Como a máscara é de tamanho par, a imagem resultante
terá uma linha e uma coluna a menos que a imagem
original
• de fato, o operador calcula o gradiente na posição de um pixel
virtual entre as suas linhas e colunas...
• encher resultante com uma linha e uma coluna pretas...
E3.2. Operador de Sobel
Utiliza duas máscaras para encontrar os
gradientes vertical e horizontal das bordas.
E3.2. Operador de Sobel
• A fórmula para encontrar o gradiente e o ângulo são muito
similares ao operador de Roberts.
• A computação de |G| se torna mais complexa. Na prática |G| é
aproximada da seguinte forma: |G|= |Gx| + |Gy|.
• O módulo do gradiente é proporcional a derivada local da
intensidade.
• O ângulo do gradiente corresponde direção de máxima
variação da intensidade
• Devido as máscaras serem 3X3 ao invés de 2X2, Sobel é muito
menos sensível ao ruído do que Roberts e os resultados são
mais precisos.
E3.3. Operador de Robinson
É similar em operação ao de Sobel, porém usa um conjunto de oito
máscaras, onde quatro delas são as seguintes:
As outras quatro são simplesmente negações destas quatro.
E3.3. Operador de Robinson
• A magnitude do gradiente é o valor máximo obtido ao
aplicar-se cada uma das as oito máscaras ao pixel.
• O ângulo do gradiente pode ser aproximado como o ângulo
na linha de zeros na máscara fornecendo a resposta
máxima.
• Este algoritmo aumenta a precisão de |G|, mas requer
mais computação do que Roberts e Sobel,devido ao
número de máscaras que deve ser aplicado.
• Por outro lado, a determinação do ângulo é simplificada
porque escolhe-se um dentre 8 valores possíveis ao invés
de calculá-lo.
E3.4. Operador de Canny
Proposto por J. Canny em: A computational approach to edge
detection, IEEE Transactions on pattern analysis and machine
intelligence, 8(6), pp 679 – 698 (1986)
Definiu um conjunto de requisitos que um detector de bordas
deveria atender:
1.Taxa de erro: o detector de bordas deve detectar e achar
somente bordas, nenhuma borda deve faltar;
2.Localização: a distância entre os pixels de borda encontradas
pelo detector de bordas e a borda real deve ser a menor possível;
3.Resposta: o detector de bordas não deve identificar múltiplos
pixels de borda onde somente existir um único pixel.
E3.4. Operador de Canny
E3.4. Operador de Canny
O detector de bordas de Canny é um filtro de convolução f que
uniformiza o ruído e localiza as bordas. O problema é identificar
um filtro que otimize os três critérios do detector de bordas:
• Se considerarmos uma borda de uma dimensão variando
no contraste e então convolucionando a borda com a
função de uniformização de Gauss, o resultado será uma
variação contínua do valor inicial ao final, com uma
inclinação máxima no ponto onde existe um "degrau".
• Se esta continuidade é diferenciada em relação a x, esta
inclinação máxima será o máximo da nova função em
relação a original.
E3.4. Operador de Canny
E3.4. Operador de Canny
Os máximos da convolução da máscara e da imagem indicarão bordas
na imagem. Este processo pode ser realizado através do uso de uma
função de Gauss de 2-Dimensões na direção de x e y. Os valores e o
tamanho das máscaras de Gauss dependem da escolha do sigma
(variância) na eq:
E3.4. Operador de Canny
• A aproximação do filtro de Canny para detecção de bordas é G'.
• Convolucionando a imagem com G' obtemos uma imagem I que
mostrará as bordas, mesmo na presença de ruído.
• A convolução é relativamente simples de ser implementada, mas é
cara computacionalmente, especialmente se for em 2D.
• Uma convolução de Gauss de 2D pode ser separada em duas
convoluções de Gauss de 1D.
• O custo computacional do detector de bordas de Canny é
relativamente alto e os resultados são geralmente pósprocessados para maior clareza.
• Entretanto, o algoritmo é mais eficiente no processamento de
imagens com ruídos ou com bordas difusas.
E3.4. Algoritmo do Operador de
Canny
1.Ler a imagem I a ser processada;
2.Criar uma máscara de Gauss de 1D G para convolucionar I. A variância s
de Gauss é um parâmetro fornecido ao detector de bordas;
3.Criar uma máscara de 1-D para a primeira derivada de Gauss nas direções
x e y; nomear como Gx e Gy. O mesmo valor s é usado;
4.Convolucionar a imagem I com G percorrendo as linhas na direção x (Ix)
e percorrer as colunas na direção y (Iy);
5.Convolucionar Ix, com Gx, para dar I´x, o componente x e de I
convolucionado com a derivada de Gauss, e convolucionar Iy, com Gy para
dar I´y;
6.O resultado num ponto é a combinação dos componentes I´x e I´y. A
magnitude do resultado é computada para cada pixel (x,y).
E 3.5 Estruturas Salientes Sha´aShua
•
Introdução
•
Estruturas Salientes
•
A Rede de Saliência
•
O Cálculo da Saliência
•
Exemplos
•
Alguns Problemas
•
Conclusão
E 3.5 Estruturas Salientes Sha´aShua
•
Percepção humana detecta estruturas e formatos
salientes naturalmente
•
Shashua e Ullman propõem um método para se obter
esta percepção
•
Rede de Saliência
•
Avalia a saliência de curvas
•
Baseia-se no comprimento e variação de curvatura
•
Corrige espaços em branco e tremidos nas linhas
•
Gera um Mapa de Saliência
•
Representa os locais salientes da imagem
E 3.5 Estruturas Salientes Sha´aShua
•
Saliência Local
•
Elemento se destaca através de suas propriedades
locais
•
•
•
•
Orientação
Cor
Contraste
Saliência Global
•
Um conjunto de elementos locais torna uma
estrutura globalmente saliente quando se pode
relacioná-los de alguma forma
E 3.5 Estruturas Salientes Sha´aShua
E 3.5 Estruturas Salientes Sha´aShua
E 3.5 Estruturas Salientes Sha´aShua
E 3.5 Estruturas Salientes - Sha´aShua
Requisitos da Rede de Saliência
•
O tempo de detecção de estruturas salientes
não pode depender da complexidade das
curvas de fundo
•
As curvas salientes podem conter falhas e
inconsistências
•
O número de computações deve ser pequeno
E 3.5 Estruturas Salientes - Sha´aShua
Requisitos da Rede de Saliência
•
Locais destacados no mapa de saliência não
precisam ser curvas explícitas na imagem
inicial
•
A medida de saliência não deve ser modificada
após alterações de tamanho, posição e
orientação
E 3.5 Estruturas Salientes - Sha´aShua
A Rede de Saliência
•
Processo computacional
•
•
•
Possui tamanho proporcional ao tamanho da imagem
Realiza iterações locais entre os pontos
•
•
•
•
•
•
Trata os pixels de uma imagem como pontos conectados de
uma rede
Reduz ruídos
Completa espaços em branco
Agrupa segmentos de curvas
Suaviza curvas
Mede a saliência das curvas
Gera um mapa de saliência
•
Exibe a curva mais saliente
E 3.5 Estruturas Salientes - Sha´aShua
O Cálculo da Saliência
•
•
Shashua e Ullman definiram uma função para
calcular a saliência dos fragmentos de uma
curva - Gera Rede de Saliência
•
Cresce de acordo com o comprimento da curva
•
Decresce com a variação da curvatura e com a
quantidade de fragmentos
A medida final é a soma das contribuições das
medidas de saliência dos segmentos
E 3.5 Estruturas Salientes - Sha´aShua
O Cálculo da Saliência
E 3.5 Estruturas Salientes - Sha´aShua
O Cálculo da Saliência
•
Para cada pixel existe um conjunto fixo de
elementos de orientação que conecta o pixel
aos seus vizinhos.
•
Virtual
•
•
Corresponde a uma área vazia na imagem
Real
•
Corresponde a uma área preenchida
E 3.5 Estruturas Salientes - Sha´aShua
O Cálculo da Saliência
E 3.5 Estruturas Salientes - Sha´aShua
O Cálculo da Saliência
E 3.5 Estruturas Salientes - Sha´aShua
O Cálculo da Saliência
E 3.5 Estruturas Salientes - Sha´aShua
O Cálculo da Saliência
E 3.5 Estruturas Salientes - Sha´aShua
O Cálculo da Saliência
Convolução de Gauss
Threshold
Mapa de Saliência
Curva mais Saliente
Download

Métodos no Domínio do Espaço - Parte II (Bordas)