A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Fases do Processo Detecção de Bordas Vetorização Reconhe- cimento.

Apresentações semelhantes


Apresentação em tema: "Fases do Processo Detecção de Bordas Vetorização Reconhe- cimento."— Transcrição da apresentação:

1 Fases do Processo Detecção de Bordas Vetorização Reconhe- cimento

2 Fase 1 - Detecção de Bordas
Objetivos: Distinguir os pixels de borda dos demais Manter os contornos dos objetos conectados (de forma a contorná-lo passando apenas por pixels “de borda”) Reduzir ao máximo a expessura dos contornos

3 Gradiente da Luminosidade
L = 0.30R G B Gradiente 255, L > t 0, L <= t L = {

4 Kernels para Cálculo de Gradiente
??? Prewitt Sobel t = 60 t = 180 t = 240 Diferença muito pequena O método de Sobel deixa um pouco menos de ruído

5 Uso do Gaussiano antes do Gradiente (Sobel)
Sem Gaussiano Gaussiano n = 1 Gaussiano n = 2 Gaussiano n = 3 Faz muita diferença. A diferença de ruído entre frames consecutivos diminui a medida que aplicamos gaussianos com kernels maiores. Como o filtro gaussiano borra a imagem, os detalhes são perdidos (para o caso da detecção de bordas é uma boa, já que detalhes não são importantes).

6 Método de Canny Intensidade O método tenta pegar o pixel de máxima intensidade na direção perpendicular à borda (direção do gradiente).

7 Método de Canny G1 G1 G2 G2 G1: Se > ‘s, então = borda
Gy α Gx G1: Se > ‘s, então = borda G2: Se > ‘s, então = borda α = arctan(|Gy| / |Gx|)

8 Método de Canny Parece ser o melhor método até agora.
Sem Gaussiano Gaussiano n = 1 Gaussiano n = 2 Gaussiano n = 3 Parece ser o melhor método até agora. Como nos métodos anteriores, a diferença de ruído entre frames consecutivos diminui a medida que aplicamos gaussianos com kernels maiores. Com uma quantidade de pixels brancos menores, a vetorização dos segmentos de borda fica mais rápida.

9 Fase 2 - Vetorização Processo: Pixels de borda

10 Método M Idéia: a partir de um pixel inicial qualquer, percorrer todos os pixels de borda conectados em todas as direções até que um deles saia do limite definido por duas retas paralelas com uma distância máxima pré-definida. Pixels de borda

11 Método M p2 d θ p0 p1 θ = arcsen(d / dist(p0, p1))

12 Método M Otimizações: O método percorre os pixels em apenas quatro direções: , ,  e  evitando assim fazer curvas (e melhorando a performance). O método termina de processar um conjunto conectado de pixels assim que encontra um ciclo (para simplificar e melhorar a performance). Pixels de borda

13 Método M Vantagens: O método acha qualquer contorno fechado.
O método gera segmentos já conectados (grafos) eliminando a necessidade de um pós-processamento. Desvantagens: O método descarta ciclos possivelmente melhores que os ciclos escolhidos. O método não acha nenhum contorno que não esteja totalmente conectado.

14 Erosão Dilatação A idéia é conectar os segmentos que tiveram algum tipo de falha no processo de detecção de borda. Mexendo um pouco nos parâmetros da erosão, podemos conectar segmentos que não estejam totalmente alinhados (quase nunca estarão).

15 Teste da Técnica de Erosão + Dilatação
Imagem de teste Resultado Porcentagem de frames nos quais o objeto estrela foi reconhecido corretamente: Sem dilatação+erosão: 54% Com dilatação+erosão: 95% Conclusão: Vale muito a pena!

16 Fase 3 - Reconhecimento Problema: = ?

17 Tabelas de ângulos acumulados
|θ| = arccos( ) (X0 - X1) (X2 - X1) + (Y0 - Y1) (Y2 - Y1) (X0 - X1)2 + (Y0 - Y1) (X2 - X1)2 + (Y2 - Y1)2 θ (X1, Y1) (X0, Y0) (X2, Y2) Se (Y2 - Y0) (X1 - X0) < (Y1 - Y0) (X2 - X0) então θ é negativo senão θ é positivo θ2 Exemplo: θ1 Ângulo acumulado = θ1 + θ2

18 Tabelas de ângulos acumulados
% do perímetro Ângulo acumulado 0.15 72º 0.25 -72º 0.35 0.45 -144º 0.55 0.65 -216º 0.75 0.85 -288º 0.95 A idéia é percorrer todo o polígono começando por um ponto qualquer. A medida que a parte percorrida vai somando as porcentagens de perímetro da tabela, verificar se o ângulo acumulado está próximo do valor correspondente.

19 Outras idéias não testadas ou que não funcionaram
Como usar o Laplaciano para detectar bordas (problema das linhas duplas). Vetorização por detecção de cantos (usando os autovalores da matriz ???) – não deu certo. Redução do número de cores da imagem inicial antes de rodar o algoritmo de detecção de bordas – problemas com o IM 3.0. Pesquisar técnicas para resolver o problema das sombras. Outras técnicas de reconhecimento sem vetorização.

20 Problema das Sombras A sombra “amortece” a variação de intensidade fazendo com que o gradiente não detecte a borda.

21 Conclusão É difícil!!!

22 Bibliografia Livro do Forsyth
Some Experiments in Image Vectorization - Javier Jimenez, Jose L. Navalon Line Net Global Vectorization: an Algorithm and Its Performance Evaluation - Jiqiang Song, Feng Su1, Jibing Chen, Chiewlan Tai, Shijie Cai1 Vectorization in Graphics Recognition: To Thin or not to Thin - Karl Tombre, Salvatore Tabbone


Carregar ppt "Fases do Processo Detecção de Bordas Vetorização Reconhe- cimento."

Apresentações semelhantes


Anúncios Google