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

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

Curso de Visão Computacional Marcelo Gattass

Apresentações semelhantes


Apresentação em tema: "Curso de Visão Computacional Marcelo Gattass"— Transcrição da apresentação:

1 Curso de Visão Computacional Marcelo Gattass 2009.2
Processamento de imagens capturadas para algoritmos de Visão Computacional Curso de Visão Computacional Marcelo Gattass 2009.2

2 Resumo Motivação (aplicações) Requisitos Deteção de pontos e arestas
Analise da variação local Deteção de arestas Sobel e Deteção de pontos Haris SHIFT

3 object instance recognition (matching)
Motivação object instance recognition (matching) David Lowe

4 Sample results using the Viola-Jones Detector
Motivação Sample results using the Viola-Jones Detector Notice detection at multiple scales

5 Small set of 111 Training Images
Motivação Small set of 111 Training Images

6 How do we build panorama?
Motivação How do we build panorama? We need to match (align) images Darya Frolova, Denis Simakov, The Weizmann Institute of Science, 2004

7 Matching with Features
Motivação Matching with Features Detect feature points in both images Darya Frolova, Denis Simakov, The Weizmann Institute of Science, 2004

8 Matching with Features
Motivação Matching with Features Detect feature points in both images Find corresponding pairs Darya Frolova, Denis Simakov, The Weizmann Institute of Science, 2004

9 Matching with Features
Motivação Matching with Features Detect feature points in both images Find corresponding pairs Use these pairs to align images

10 Matching with Features
Motivação Matching with Features Problem 1: Detect the same point independently in both images no chance to match! We need a repeatable detector Darya Frolova, Denis Simakov, The Weizmann Institute of Science, 2004

11 Matching with Features
Motivação Matching with Features Problem 2: For each point correctly recognize the corresponding one ? We need a reliable and distinctive descriptor Darya Frolova, Denis Simakov, The Weizmann Institute of Science, 2004

12 Example: Build a Panorama
Motivação Example: Build a Panorama M. Brown and D. G. Lowe. Recognising Panoramas. ICCV 2003

13 Motivação Photosynth

14 Busca de padrões geométricos
Motivação Mauricio Ferreira, Diogo Carneiro e Carlos Eduardo Lara Visão 2005

15 Requisitos Uma caracteristica deve ser robusta o suficiente para continuar se destacando mesmo quando a cena é capturada em diferentes condições

16 Requisitos Tom Duerig Types of invariance Illumination

17 Requisitos Tom Duerig Types of invariance Illumination Scale

18 Requisitos Tom Duerig Types of invariance Illumination Scale Rotation

19 Types of invariance Illumination Scale Rotation Affine Tom Duerig
Requisitos Tom Duerig Types of invariance Illumination Scale Rotation Affine

20 Types of invariance Illumination Scale Rotation Affine
Requisitos Tom Duerig Types of invariance Illumination Scale Rotation Affine Full Perspective

21 Tipos de características de uma imagem
Análise local Tipos de características de uma imagem Globais: histograma, conteúdo de freqüências, etc... Locais: regiões com determinada propriedade, arestas, cantos, curvas, etc... 21

22 Modelo Matemático: Função
Análise local Modelo Matemático: Função 0% 20% 40% 60% 80% 100% Níveis de cinza Posição ao longo da linha x u v L L(u,v) Função

23 Derivadas direcionais
Análise local Derivadas direcionais f(x,y) y x 23

24 Análise local Norma da derivada

25 Análise local Mínimo de formas quadráticas de matrizes simétricas positivas definidas

26 Autovetores e autovalores de matrizes simétricas positivas definidas
Análise local Autovetores e autovalores de matrizes simétricas positivas definidas

27 Minimização como um problema de autovalores
Análise local Minimização como um problema de autovalores y p x' y' x mínimo

28 Teorema Espectral (Teorema dos Eixos Principais)
Análise local Teorema Espectral (Teorema dos Eixos Principais) Toda matriz simétrica S (S = ST ) pode ser fatorada em:  - matriz diagonal real Q – matriz ortogonal, formada pelos autovetores de S MMachado

29 Estimando Orientação Local em Imagens
Análise local Estimando Orientação Local em Imagens Usando o Teorema Espectral no problema de orientação: Mudança de base por rotação J é máximo se y só tem componente na direção do autovetor de maior autovalor MMachado

30 Identificando Estruturas Lineares com PCA
Análise local Identificando Estruturas Lineares com PCA Problema. Dados os vetores v1,...,vk, em N dimensões, estimar a orientação média quando o sinal de vi é ignorado. Solução. A orientação média é dada pelo eixo principal da matriz MMachado

31 Matriz de Variância-Covariância
Análise local Matriz de Variância-Covariância N variáveis M observações Variância Covariância Matriz de Variância-Covariância MMachado

32 PCA X2 X1 Maior Componente Principal maximiza a variância
Análise local PCA Maior Componente Principal maximiza a variância X2 minimiza a variância Menor Componente Principal MarcoMachado X1

33 PCA Variância total = soma das variâncias Variância total = traço de S
Análise local PCA Variância total = soma das variâncias Variância total = traço de S Eixos principais também representam a variância total do conjunto de dados. Primeiro eixo: 1/traço(S) Segundo eixo: 2/traço(S) MarcoMachado

34 Estimando Orientação Local em Imagens
Análise local Estimando Orientação Local em Imagens Interpretação dos Autovalores 1=0, 2=0 Intensidade constante, sem estrutura 1>0, 2=0 Estrutura linear (invariante por deslocamento em uma única direção) 1>0, 2>0 A estrutura desvia do modelo de estrutura linear Ruído Curvatura Múltiplas orientações 1=2 Estrutura isotrópica

35 Comportamento local: Classificação
Análise local Comportamento local: Classificação 2 “Edge” 2 >> 1 “Corner” 1 e 2 são grandes, 1 ~ 2; aumenta em todas as direções 1 e 2 são pequenos; Quase constante em “Edge” 1 >> 2 “Flat” 1 35

36 Detecção de arestas 1 > 2

37 Operadores clássicoss
Arestas Operadores clássicoss Prewitt’s Diferencia Suaviza 37

38 Arestas Openadores clássicos Sobel’s Diferencia Suaviza 38

39 Detector de arestas Arestas 39

40 Quality of an Edge Detector
Arestas Quality of an Edge Detector Robustness to Noise Localization Too Many/Too less Responses True Edge Poor robustness to noise Poor localization Too many responses Khurram Hassan-Shafique 40

41 Arestas Canny Edge Detector Criterion 1: Good Detection: The optimal detector must minimize the probability of false positives as well as false negatives. Criterion 2: Good Localization: The edges detected must be as close as possible to the true edges. Single Response Constraint: The detector must return one point only for each edge point. Khurram Hassan-Shafique 41

42 Arestas Hai Tao 42

43 Arestas The result General form of the filter (N.B. the filter is odd so h(x) = -h(-x) the following expression is for x < 0 only) Camillo J. Taylor 43

44 Arestas Approximation Canny’s filter can be approximated by the derivative of a Gaussian Canny Derivative of Gaussian Camillo J. Taylor 44

45 Canny Edge Detector Convolution with derivative of Gaussian
Arestas Canny Edge Detector Convolution with derivative of Gaussian Non-maximum Suppression Hysteresis Thresholding Khurram Hassan-Shafique 45

46 Algorithm Canny_Enhancer
Arestas Algorithm Canny_Enhancer Smooth by Gaussian Compute x and y derivatives Compute gradient magnitude and orientation Khurram Hassan-Shafique 46

47 Arestas Canny Edge Operator Khurram Hassan-Shafique 47

48 Canny Edge Detector Arestas Khurram Hassan-Shafique 48

49 Canny Edge Detector Arestas Khurram Hassan-Shafique 49

50 Algorithm Non-Maximum Suppression
Arestas Algorithm Non-Maximum Suppression We wish to mark points along the curve where the magnitude is biggest. We can do this by looking for a maximum along a slice normal to the curve (non-maximum suppression). These points should form a curve. There are then two algorithmic issues: at which point is the maximum, and where is the next one? Khurram Hassan-Shafique 50

51 Non-Maximum Suppression
Arestas Non-Maximum Suppression Suppress the pixels in ‘Gradient Magnitude Image’ which are not local maximum Khurram Hassan-Shafique 51

52 Non-Maximum Suppression
Arestas Non-Maximum Suppression Khurram Hassan-Shafique 52

53 Non-Maximum Suppression
Arestas Khurram Hassan-Shafique 53

54 Hysteresis Thresholding
Arestas Hysteresis Thresholding Khurram Hassan-Shafique 54

55 Hysteresis Thresholding
Arestas Hysteresis Thresholding If the gradient at a pixel is above ‘High’, declare it an ‘edge pixel’ If the gradient at a pixel is below ‘Low’, declare it a ‘non-edge-pixel’ If the gradient at a pixel is between ‘Low’ and ‘High’ then declare it an ‘edge pixel’ if and only if it is connected to an ‘edge pixel’ directly or via pixels between ‘Low’ and ‘ High’ Khurram Hassan-Shafique 55

56 Hysteresis Thresholding
Arestas Hysteresis Thresholding Khurram Hassan-Shafique 56

57 Resultado de algoritmo de histerese
Arestas Resultado de algoritmo de histerese 57

58 Subpixel Localization
Arestas Subpixel Localization One can try to further localize the position of the edge within a pixel by analyzing the response to the edge enhancement filter One common approach is to fit a quadratic polynomial to the filter response in the region of a maxima and compute the true maximum. -1 1 58

59 Segmentos de reta longos
Segmentos retos longos Segmentos de reta longos Um caso especial

60 Hough Transform There are three problems in model fitting
Segmentos retos longos Hough Transform There are three problems in model fitting Given the points that belong to a line, what is the line? Which points belong to which line? How many lines are there? Hough transform is a technique for these problems The basic idea is to record all the models on which each point lies and then look for models that get many votes

61 Hough Transform – cont. Straight line case
Segmentos retos longos Hough Transform – cont. Straight line case Consider a single isolated edge point (xi, yi) There are an infinite number of lines that could pass through the points Each of these lines can be characterized by some particular equation

62 Segmentos retos longos
Hough Transform – cont. y c x m

63 Hough Transform – cont. c c m m ponto de maior contribuição
Segmentos retos longos Hough Transform – cont. c c m m ponto de maior contribuição

64 Segmentos retos longos
Hough Transform – cont.

65 Hough Transform – cont. Hough transform algorithm
Segmentos retos longos Hough Transform – cont. Hough transform algorithm 1. Find all of the desired feature points in the image 2. For each feature point For each possibility i in the accumulator that passes through the feature point Increment that position in the accumulator 3. Find local maxima in the accumulator 4. If desired, map each maximum in the accumulator back to image space

66 Hough Transform – cont. m e c  [- +] y x     
Segmentos retos longos Hough Transform – cont. m e c  [- +] x y

67 Segmentos retos longos
Hough Transform – cont. y x

68 Segmentos retos longos
Hough Transform – cont. y x

69 Segmentos retos longos
Transformada de Hough

70 Segmentos retos longos
Transformada de Hough

71 Busca de linhas longas no campo
Segmentos retos longos Busca de linhas longas no campo Outro enfoque: tese de Flávio Szenberg: Juiz Virtual

72 Modelos Os modelos utilizados na tese: Modelo de um campo de futebol
Segmentos retos longos Modelos Os modelos utilizados na tese: Modelo de um campo de futebol Modelo sem simetria

73 Filtragem para realce de linhas
Segmentos retos longos Filtragem para realce de linhas O filtro Laplaciano da Gaussiana (LoG) é aplicado à imagem, baseado na luminância. filtro gaussiano filtro laplaciano

74 Filtragem para realce de linhas
Segmentos retos longos Filtragem para realce de linhas  Problemas com linhas duplas

75 Filtragem para realce de linhas
Segmentos retos longos Filtragem para realce de linhas A transformação negativa é aplicada entre o cálculo da luminância e o filtro LoG.

76 Filtragem para realce de linhas
Segmentos retos longos Filtragem para realce de linhas Resultado de uma segmentação (threshold) feita na imagem filtrada. (em negativo para visualizar melhor)

77 Extração de segmentos de retas longos
Segmentos retos longos Extração de segmentos de retas longos O objetivo é localizar segmentos de retas longos candidatos a serem linhas da imagem do modelo. O procedimento é dividido em dois passos: Eliminação de pontos que não estão sobre nenhum segmento de reta. Determinação de segmentos de retas.

78 Eliminando pontos que não estão sobre
Segmentos retos longos Eliminando pontos que não estão sobre um segmento de reta A imagem é dividida, por uma grade regular, em células retangulares.

79 Eliminando pontos que não estão sobre
Segmentos retos longos Eliminando pontos que não estão sobre um segmento de reta Para cada célula, os autovalores 1 e 2 (1  2) da matriz de covariância, dada abaixo, são calculados. Se 2 = 0 ou 1/ 2 > M (dado) então o autovetor de 1 é a direção predominante senão a célula não tem uma direção predominante

80 Eliminando pontos que não estão sobre
Segmentos retos longos Eliminando pontos que não estão sobre um segmento de reta Podemos atribuir pesos i aos pontos (resultado do LoG).

81 Eliminando pontos que não estão sobre
Segmentos retos longos Eliminando pontos que não estão sobre um segmento de reta Células com pontos formando segmentos de retas:

82 Determinando segmentos de reta
Segmentos retos longos Determinando segmentos de reta As células são percorridas de modo que as linhas são processadas de baixo para cima e as células em cada coluna são processadas da esquerda para direita. Um valor é dado para cada célula: Se não existe uma direção predominate na célula, o valor é zero. Caso contrário, verifica-se os três vizinhos abaixo e o vizinho à esquerda da célula corrente. Se algum deles tem uma direção predominante similar ao da célula corrente, quando unidos, então a célula corrente recebe o valor da célula que tem a direção mais similar; senão, um novo valor é usado para a célula corrente.

83 Determinando segmentos de reta
Segmentos retos longos Determinando segmentos de reta São formados grupos com células de mesmo valor, representados na figura abaixo por cores distintas.

84 Extração de segmentos de reta
Segmentos retos longos Extração de segmentos de reta Cada grupo fornece um segmento de reta. A reta de equação v=au+b é encontrada por método de mínimos quadrados: O segmento é obtido limitando a reta pela caixa envoltória dos pontos usados.

85 Extração de segmentos de reta
Segmentos retos longos Extração de segmentos de reta Os segmentos de reta que estão sobre a mesma reta suporte são unidos, formando segmentos longos, usando mínimos quadrados. No final do processo, tem-se um conjunto de segmentos de reta. f1 f2 f3 f4 f5 f6 f7

86 Extração de segmentos de reta
Segmentos retos longos Extração de segmentos de reta Sobrepondo as linhas extraída na imagem, temos o seguinte resultado:

87 Reconhecimento dos segmentos
Segmentos retos longos Reconhecimento dos segmentos A partir do conjunto de segmentos, as linhas do modelo são detectadas e o modelo reconhecido [Grimson90]. Método baseado na Transformada de Hough. Método de reconhecimento baseado em modelo. Conjunto de restrições

88 Reconhecimento dos segmentos
Segmentos retos longos Reconhecimento dos segmentos Método de Reconhecimento baseado em Modelo f1 f2 f3 f4 f5 f6 f7 Visualização F1 F6 F2 F3 F4 F5 F7 Modelo Árvore de Interpretação F1 F2 F3 F4 F5 F6 F7 f1: F1 F7 F6 F5 F4 F3 F2 F1 F7 F6 F5 F4 F3 F2 F1 F7 F6 F5 F4 F3 F2 F1 F7 F6 F5 F4 F3 F2 F1 F7 F6 F5 F4 F3 F2 F1 F7 F6 F5 F4 F3 F2 F1 F7 F6 F5 F4 F3 F2 f2: F1 F2 F3 F4 F5 F6 F7

89 Reconhecimento dos segmentos
Segmentos retos longos Reconhecimento dos segmentos Discardando nós Visualização Modelo Árvore de Interpretação F1 f4 F5 F7 f2 F2 F6 F4 f5 f7 f1 f3 F3 f6 F1 F2 F3 F4 F5 F6 F7 f1: f2: F1 F2 F3 F4 F5 F6 F7 F1 F2 F3 F4 F5 F6 F7 F1 F2 F3 F4 F5 F6 F7 F1 F2 F3 F4 F5 F6 F7 F1 F2 F3 F4 F5 F6 F7 F1 F2 F3 F4 F5 F6 F7 F1 F2 F3 F4 F5 F6 F7 F1 F2 F3 F4 F5 F6 F7 O nó {f1: F1, f2:F6 , f3:F3} é discardado por que viola a restrição: A linha representante de F6 deve estar entres as linhas que representam F1 e F3, na visualização. f3: F1 F2 F3 F4 F5 F6 F7

90 Reconhecimento dos segmentos
Segmentos retos longos Reconhecimento dos segmentos Problema relacionado com a perspectiva

91 Reconhecimento dos segmentos
Segmentos retos longos Reconhecimento dos segmentos Problema relacionado com a perspectiva

92 Reconhecimento dos segmentos
Segmentos retos longos Reconhecimento dos segmentos Escolhendo a melhor solução f1 f2 f3 f4 f5 f6 f7 Visualização F1 F6 F2 F3 F4 F5 F7 Modelo Em geral, existem diversas interpretações possíveis; Escolhemos a interpretação onde a soma dos comprimentos dos segmentos representativos é máxima. f1 : F f2 : F3 f3 :  f4 :  f5 : F f6 : F f7 : F1 Vencedor f1 : F f2 :  f3 :  f4 : F f5 : F f6 : F f7 : F1

93 Reconhecimento dos segmentos
Segmentos retos longos Reconhecimento dos segmentos f1 f2 f3 f4 f5 f6 f7 Visualização Resultado final Modelo F1 F5 F7 F2 F6 F4 F3 f1 : F f2 : F3 f3 :  f4 :  f5 : F f6 : F f7 : F1 ou F7 F1 F6 F2 F3 F4 F5 Modelo f1 : F f2 : F3 f3 :  f4 :  f5 : F f6 : F f7 : F1

94 Cálculo da transformação projetiva planar
Segmentos retos longos Cálculo da transformação projetiva planar Uma transformação projetiva planar H (homografia) correspondente às linhas reconhecidas é encontrada (usando pontos de interseção e pontos de fuga como pontos de referência). pontos de interseção pontos de fuga H Modelo reconstruído

95 Detector de cantos

96 Comportamento local: Classificação
Cantos Comportamento local: Classificação 2 “Edge” 2 >> 1 “Corner” 1 e 2 são grandes, 1 ~ 2; aumenta em todas as direções 1 e 2 são pequenos; Quase constante em “Edge” 1 >> 2 “Flat” 1 96

97 Harris Detector: Mathematics
Cantos Harris Detector: Mathematics Measure of corner response: (k – empirical constant, k = ) 97

98 Harris Detector: Mathematics
Cantos Harris Detector: Mathematics 1 “Corner” “Edge” “Flat” R > 0 R < 0 |R| small 2 R depends only on eigenvalues of M R is large for a corner R is negative with large magnitude for an edge |R| is small for a flat region 98

99 Algoritmo Comparação dos gráficos 2 “Edge” “Corner” R < 0 R > 0
Cantos Algoritmo Comparação dos gráficos 2 “Edge” “Corner” R < 0 R > 0 “Flat” “Edge” |R| small R < 0 1 99

100 Algoritmo Comparação dos gráficos 2 “Edge” “Corner” R < 0 R > 0
Cantos Algoritmo Comparação dos gráficos 2 “Edge” “Corner” R < 0 R > 0 “Flat” “Edge” |R| small R < 0 1 100

101 Algoritmo Comparação dos gráficos 2 “Edge” “Corner” R < 0 R > 0
Cantos Algoritmo Comparação dos gráficos 2 “Edge” “Corner” R < 0 R > 0 “Flat” “Edge” |R| small R < 0 1 101

102 Harris Detector The Algorithm:
Cantos Harris Detector The Algorithm: Find points with large corner response function R (R > threshold) Take the points of local maxima of R 102

103 Harris Detector: Workflow
Cantos Harris Detector: Workflow 103

104 Harris Detector: Workflow
Cantos Harris Detector: Workflow Compute corner response R 104

105 Harris Detector: Workflow
Cantos Harris Detector: Workflow Find points with large corner response: R>threshold 105

106 Harris Detector: Workflow
Cantos Harris Detector: Workflow Take only the points of local maxima of R 106

107 Harris Detector: Workflow
Cantos Harris Detector: Workflow 107

108 Example: Gradient Covariances
Cantos Example: Gradient Covariances Corners are where both eigenvalues are big from Forsyth & Ponce Detail of image with gradient covar- iance ellipses for 3 x 3 windows Full image 108

109 Example: Corner Detection (for camera calibration)
Cantos Example: Corner Detection (for camera calibration) courtesy of B. Wilburn 109

110 Example: Corner Detection
Cantos Example: Corner Detection courtesy of S. Smith SUSAN corners 110

111 Harris Detector: Summary
Cantos Harris Detector: Summary Average intensity change in direction [u,v] can be expressed as a bilinear form: Describe a point in terms of eigenvalues of M: measure of corner response A good (corner) point should have a large intensity change in all directions, i.e. R should be large positive 111

112 Harris Detector: Some Properties
Cantos Harris Detector: Some Properties Rotation invariance Ellipse rotates but its shape (i.e. eigenvalues) remains the same Corner response R is invariant to image rotation

113 Harris Detector: Some Properties
Cantos Harris Detector: Some Properties Partial invariance to affine intensity change Only derivatives are used => invariance to intensity shift I  I + b Intensity scale: I  a I R x (image coordinate) threshold

114 Harris Detector: Some Properties
Cantos Harris Detector: Some Properties But: non-invariant to image scale! All points will be classified as edges Corner !

115 Harris Detector: Some Properties
Cantos Harris Detector: Some Properties Quality of Harris detector for different scale changes Repeatability rate: # correspondences # possible correspondences C.Schmid et.al. “Evaluation of Interest Point Detectors”. IJCV 2000

116 SIFT (Scale Invariant Feature Transform)

117 A 500x500 image gives about 2000 features
SIFT SIFT stages: Scale-space extrema detection Keypoint localization Orientation assignment Keypoint descriptor detector descriptor matching ( ) local descriptor A 500x500 image gives about 2000 features

118 1. Detection of scale-space extrema
SIFT 1. Detection of scale-space extrema For scale invariance, search for stable features across all possible scales using a continuous function of scale, scale space. SIFT uses DoG filter for scale space because it is efficient and as stable as scale-normalized Laplacian of Gaussian.

119 SIFT Scale space  doubles for the next octave K=2(1/s)

120 Detection of scale-space extrema
SIFT Detection of scale-space extrema

121 Keypoint localization
Pontos Keypoint localization X is selected if it is larger or smaller than all 26 neighbors

122 2. Accurate keypoint localization
SIFT 2. Accurate keypoint localization Reject points with low contrast and poorly localized along an edge Fit a 3D quadratic function for sub-pixel maxima

123 Accurate keypoint localization
SIFT Accurate keypoint localization Change sample point if offset is larger than 0.5 Throw out low contrast (<0.03)

124 Eliminating edge responses
SIFT Eliminating edge responses Let Keep the points with r=10

125 SIFT Maxima in D

126 Remove low contrast and edges
SIFT Remove low contrast and edges

127 3. Orientation assignment
SIFT 3. Orientation assignment By assigning a consistent orientation, the keypoint descriptor can be orientation invariant. For a keypoint, L is the image with the closest scale, orientation histogram

128 Orientation assignment
SIFT Orientation assignment

129 Orientation assignment
SIFT Orientation assignment

130 Orientation assignment
SIFT Orientation assignment

131 Orientation assignment
SIFT Orientation assignment

132 SIFT SIFT descriptor

133 4. Local image descriptor
SIFT 4. Local image descriptor Thresholded image gradients are sampled over 16x16 array of locations in scale space Create array of orientation histograms (w.r.t. key orientation) 8 orientations x 4x4 histogram array = 128 dimensions Normalized, clip values larger than 0.2, renormalize σ=0.5*width

134 FIM


Carregar ppt "Curso de Visão Computacional Marcelo Gattass"

Apresentações semelhantes


Anúncios Google