Aula 5 - Segmentação de Imagens Parte 1 Prof. Adilson Gonzaga 1
Segmentação Agrupamento de partes de uma imagem em unidades homogêneas relativamente a determinadas características. Segmentação é o processo que subdivide uma Imagem em suas partes constituintes. Baseado em duas propriedades dos níveis de cinza: 1 Descontinuidade 2 Similaridade Dois tipos básicos de Segmentos: 1 Fronteiras 2 Regiões 2
Detecção de Descontinuidades: a) Detecção de Pontos Isolados: Operação com Templates -1-1 -1-1 8-1 -1-1 -1 R = 9 i= 1 w i. z i Dizemos que um ponto foi detectado na posição da máscara se: R > T onde T é um Limiar não-negativo. Se um nível de cinza de alto valor está isolado em uma região, o filtro passa-alta é usado para detectar esse ponto, aumentando sua diferença. 3
b) Detecção de linhas: Operação com Templates. -1-1 -1-1 -1 2-1 2-1 2-1 -1 2 2 2-1 2-1 -1 2-1 -1 2-1 -1-1 -1 2-1 -1-1 2-1 -1-1 2 Linhas Horizontais 45º Linhas - 45º Verticais Algoritmo: Aplica-se cada máscara à Imagem obtendo-se os resultados R 1 = Linhas Horizontais R 2 = 45 o R 3 = Linhas Verticais R 4 = - 45 0 Se em um certo ponto da Imagem R i > R j para todos os j # i, diz-se que esse ponto está mais provavelmente associado com uma linha na direção da máscara i. 4
c) Detecção de Bordas: Uma Borda é o limite entre duas regiões com propriedades relativamente distintas de nível de cinza. A magnitude da primeira derivada pode ser usada na detecção da presença de uma borda em uma Imagem. A segunda derivada pode ser usada para determinar se um píxel da borda localiza-se no lado escuro ou claro da Imagem. A segunda derivada possui um cruzamento por zero no ponto intermediário da transição dos níveis de cinza. 5
O gradiente de uma imagem: Imagem Gradiente O gradiente aponta na direção da mudança de intensidade mais rápida. A direção do gradiente é dada por: Ou seja, a direção é perpendicular à borda no ponto. A Força da Borda ( edge strength ) é dada pela Magnitude do gradiente.
(Robert, Sobel, Prewitt, etc...) - Magnitude do Gradiente: (Primeira Derivada) = = y x G G y y x f x y x f y x f ), ( ), ( ), ( Operadores Gradiente 7 (Primeira Derivada) - Direção do Gradiente: (relativamente a x) y y x f x y x f y x f + ), ( ), ( ), ( ) ( tan ), ( 1 x y G G y x = θ
Efeitos do ruído Considere uma única linha ou coluna de uma imagem Plotando a intensidade como função da posição: Onde está a Borda?
Solução: suavizar primeiro Gaussiana Onde está a Borda? Procurar por picos em:
Teorema da Derivada da convolução Isso reduz uma operação: Derivada da Gaussiana
Laplaciano da Gaussiana (LoG) Derivada segunda da Gaussiana Operador Laplaciano da Gaussiana Onde está a borda? Passagem por zero (Zero-crossings)
Filtros de detecção de bordas 2D Laplaciano da Gaussiana Gaussiana Derivada da Gaussiana é o operador Laplaciano:
Detector de Bordas de Canny Algoritmo: 1. Suavizar a imagem usando um filtro Gaussiano para reduzir ruídos. 2. Computar o gradiente g(x,y) e a direção do gradiente em cada ponto. Os pontos de bordas calculados originam cristas na imagem de magnitudes do gradiente. 3. Supressão de Não-Máximos: Buscar os pontos de maior valor das cristas e fazer igual a zero os outros pontos. 4. Estabelecer 2 Thresholds T1<T2. Valores da crista maiores que T2 são considerados Bordas Fortes e valores entre T1 e T2 são Bordas Fracas. 5. Incorporar às Bordas Fortes as Bordas Fracas que sejam 8-conectadas a elas. 13
Detector de Bordas de Canny Imagem original (Lena)
Detector de Bordas de Canny Norma do gradiente
Detector de Bordas de Canny thresholding
Detector de Bordas de Canny Afinamento das bordas thinning ( supressão de não-máximos)
Supressão de Não-máximos Verificar se o pixel é um máximo local ao longo da direção do gradiente Verificar os pixels p e r
Prever o próximo Ponto de borda Tangente à curva de borda Assumir que o ponto marcado é um ponto de borda. Contruir a tangente à curva de borda (normal ao gradiente no ponto) e usar isto para prever os próximos pontos (aquí tanto r ou s). (Forsyth & Ponce)
d) Deteção de Cantos ( Corner detection) Corners contêm mais bordas do que as linhas. Um ponto em uma linha é difícil corresponder em outra.
Corners contêm mais bordas do que as linhas. Um corner é mais fácil
Os Detectores de Borda normalmente falham nos Corners
Corners Um canto ( corner ) pode ser definido como a intersecção de duas bordas ( edges ). Um corner também pode ser definido como um ponto para o qual existem duas direções dominantes diferentes em uma vizinhança local do ponto. Ou seja: Sobre o ponto de corner, o gradiente é mal definido. Próximo ao ponto de corner, o gradiente tem dois valores diferentes.
Alguns Detectores de Cantos (Corner Detector) Detector de corner de Moravec Detector de corner de Harris Detector de corner Shi-Tomasi ou Kanade-Tomasi corner detector. Wang and Brady corner detection SUSAN corner detector Trajkovic and Hedley corner detector Haralick Corner Detector 24
Corner Detection 25
e) Detecção de Fronteira: ( Boundary ) A fronteira dos objetos é, talvez, a parte mais importante da hierarquia das estruturas que une os dados de uma imagem com a sua interpretação. As técnicas de Detecção de Bordas detectam descontinuidades de Intensidade. Na prática, os píxels de borda detectados, raramente caracterizam completamente uma fronteira de um objeto, devido ao ruído, a quebra de fronteiras por motivo de iluminação não uniforme e outros efeitos que causam descontinuidades. A utilização do Conhecimento torna-se um fator relevante na maioria dos casos. 26
Análise Local (Similaridade): - Analisar a vizinhança ( 3 x 3 ou 5 x 5 ) de um pixel (x,y) de uma imagem gradiente. - Todos os pontos similares são unidos formando uma fronteira de pixels que possuam propriedades comuns. - As propriedades usadas para a similaridade dos pixel são: A magnitude do gradiente: G [ f x, y) ] G[ f ( x, y )] T ( 1 1 A direção do gradiente: α x, y) α( x, y ) < ( 1 1 A onde T é um valor de limiar. onde A é um ângulo de limiar. - A vizinhança é deslocada sobre toda a imagem. 27
Exemplo Localizar retângulos compatíveis com o tamanho de placa de carro. b) Detector de Sobel para bordas verticais. c) Detector de Sobel para bordas horizontais. d) Ligação de todos os pontos que possuam a magnitude de gradiente maior que 25 e cujas direções de gradiente não diferem de 15 o, eliminando-se pequenos segmentos isolados. 28
Seguidor de Borda ( Edge Following ): - Sendo (x,y) a posição de um pixel sobre a borda de uma imagem gradiente. - Avaliar os pixels na vizinhança de 8 de (x,y) e escolher o de maior magnitude do gradiente. - Deslocar a vizinhança de 8, centrada neste novo pixel, e reavaliar no sentido do deslocamento, o gradiente de maior valor. - Repetir a operação até que o pixel inicial seja reencontrado. - Interpolar os pontos através de polinômios de baixa ordem. 29
Correlação não Linear: A fronteira a ser detectada é tratada como um Template, sobre uma imagem gradiente. Este Template é deslocado sobre a imagem e para cada posição é computado o número de correspondências. Se este número excede um limiar, a posição da fronteira é assumida como a posição do Template. 30
Detecção de Fronteira por Divida-e-Conquiste: Útil quando a fronteira tem pouca curvatura e o ruído é baixo. Conhecidos dois pontos da fronteira (1 e 2), pesquisar ao longo da perpendicular da reta que os une, o ponto de mais alta magnitude do gradiente (3). Repetir o processo para cada segmento formado pelos pontos (2 e 3) (1 e 3), determinando os outros elementos pertencentes à fronteira (4, 5,...). 31
f) Detecção de curvas. TRANSFORMADA DE HOUGH : (HT) Aplicada sobre uma imagem gradiente. Técnica para a detecção de curvas que possam ser descritas de forma paramétrica (linha reta, círculo, etc...). 32
Detecção de Retas: TRANSFORMADA DE HOUGH : (HT) Uma linha reta que conecte uma seqüência de pixels pode ser expressa por: y = mx + c m coeficiente angular slope c intersecção com y intercept A equação da reta acima pode ser reescrita da seguinte forma: c = - mx + y 33
TRANSFORMADA DE HOUGH : (HT) c = - mx + y y = m x + c 34
Exemplo: Espaço da Imagem Pontos Definem as Retas Transformando y x y = mx + c c = - mx + y 3 1 3 = m. 1 + c c = -1 m + 3 2 2 2 = m. 2 + c c = -2 m + 2 3 4 3 = m. 4 + c c = -4 m + 3 0 4 0 = m. 4 + c c = -4 m 35
Espaço de Parâmetros 3 pontos de mesmos coeficientes (m,c) = (-1,4) definem 3 pontos colineares no Plano de Imagem. y = mx + c y = -1x + 4 Espaço de Parâmetros Espaço da Imagem 36
Principal Problema com a Representação no Espaço de Parâmetros (m,c) Tanto m como c podem variar de ( m, c) complicando a solução computacional. Utilização de Coordenadas Polares. Espaço da Imagem Espaço de Parâmetros ρ = x. cosθ + y. senθ Equação da reta 37
Propriedades da HT com coordenadas Polares: Propriedade 1 : Um ponto no espaço da imagem corresponde a uma senóide no espaço de parâmetros. Propriedade 2 : Um ponto no espaço de parâmetros corresponde a uma reta no espaço da imagem. Propriedade 3 : Pontos que caem na mesma reta do espaço da imagem correspondem a curvas com o mesmo ponto em comum no espaço de parâmetros. Propriedade 4 : Pontos que caem na mesma curva no espaço de parâmetros correspondem às retas que passam por um ponto no espaço da imagem. 38
HT com coordenadas polares. A = pontos 1,3 e 5 são colineares B = pontos 2,3 e 4 são colineares 39
Algoritmo da Transformada de Hough: 1. Quantizar o espaço de parâmetros ( ρ, θ ) apropriadamente, formando um arranjo acumulador A( ρ, θ ) inicialmente zerado. Exemplo: 90 θ 90 θ = 10 2D ρ 2D ρ = 2 Onde D é a resolução linear da Imagem 40
2. Para cada ponto (x, y) na imagem gradiente cuja magnitude seja superior a um determinado limiar (pixel de borda), incrementar as células de arranjo acumulador que satisfaçam a equação da reta: θ de θ ρ = x.cosθ + y.sen θ Obs: variar e calcular, aproximando em ρ ρ No Arranjo Acumulador, fazer: A ( ρ, θ ) A ( ρ, θ ) + 1 3 Inspecionar o Arranjo Acumulador As células com os valores mais altos correspondem a pontos colineares na imagem, definindo uma reta por célula, cuja equação é dada por: ρ = x.cosθ + y.sen θ e o valor da célula representa o número de pontos na imagem que pertencem àquela reta. 41
Exemplo: Imagem Imagem Gradiente Retas obtidas através da Transformada de Hough. 42
Arranjo Acumulador para a Imagem anterior: ρ = x.cosθ + y.sen θ Exemplo: ( 45) = x.cos120 + y sen120 Equação de uma reta. ( 45) = x.( 0,5) + y(0,86) y = 0,58x 52,3 43
Detecção de outras curvas através da HT: Qualquer curva que possa ser representada por sua equação parametrizada, pode ser detectada através da transformada de Hough. Circunferência (x a) 2 + (y b) 2 = r 2 arranjo acumulador A ( a, b, r) Elipse 2 ( x x0 ) ( y y + 2 2 a b ) 2 0 0 = arranjo acumulador A ( a, b, x 0,y 0 ) Transformada de Hough Generalizada (GHT): Permite a detecção de curvas de qualquer formato através da parametrização do possível centro da curva: A(x c,y c ) 1 44