Click here to load reader

Visão Computacional

  • View
    24

  • Download
    5

Embed Size (px)

DESCRIPTION

Visão Computacional. Features (características) http://www.dca.ufrn.br/~lmarcos/courses/visao. Sinopse. Conceito de features Arestas, contornos, curvas Features não geométricas. O que são features?. Feature global - PowerPoint PPT Presentation

Text of Visão Computacional

  • Viso ComputacionalFeatures (caractersticas)http://www.dca.ufrn.br/~lmarcos/courses/visao

  • SinopseConceito de featuresArestas, contornos, curvasFeatures no geomtricas

  • O que so features?Feature globalUma propriedade global de uma imagem ou parte dela, por exemplo, mdia dos nveis de cinza, rea em pixel.Feature localParte de uma imagem com propriedades especiais, por exemplo, um crculo, uma linha, ou uma regio com textura numa imagem de intensidade, uma superfcie plana numa imagem de profundidade

  • DefinioFeatures (caractersticas) de imagem so partes detectveis locais da imagem com algum significado (meaningful)Seqncia de operaes iniciais dos sistemas de viso:Deteco (realce) de featuresLocalizao de features

  • Significado (meaningful)Associadas a elementos de interesse na cena via o processo de formao de imagensVariao alta da intensidade causada pelos contornosRegies com nvel de intensidade uniformeAlgumas vezes procuramos features que no se traduzem a alguma caracterstica na imagem mas refletem arranjos particulares dos pixels com certas propriedades desejadas (invarincia, coisas fceis de detectar).

  • DetectveisDeve existir um algoritmo de localizao, caso contrrio, a feature no serve para nadaFeatures diferentes so associadas a algoritmos de deteco diferentes;A sada geralmente so os descritores das features, especificando posio e outras propriedades essenciais da feature. Ex: descritor de linha contm o ponto central, seu tamanho e orientao.

  • Arestas (bordas)So pixels (ou regies) da imagem onde o valor da intensidade possui uma variao bruscaProblema de deteco de arestas:dada uma imagem (considere com erro), localizar as arestas geradas pelos elementos da cena (no pelo erro)

  • Por que aresta interessa?Contornos de elementos de interesse na cena objetos slidos, marcas em superfcies, sombrasLinhas, curvas e contornos (elementos bsicos para muitos algoritmos) so cadeias de pixels de arestasLine drawing (wire frame) so imagens comuns e sugestivas para seres humanos

  • AlgoritmoSuavizao do rudosuprimir rudos sem destruir arestasassumir rudo branco ou gaussianoRealce de arestasprojetar um filtro que responda a arestasvalor alto nas arestas e baixo fora delasLocalizao de arestasdecidir que mximos locais no filtro so arestasafinar arestas grossas para um pixel de larguraestabelecer um valor mnimo para aresta (treshold)

  • Detetor de arestas de CannySeja f(x,y) uma imagem, com rudo branco ou gaussianoPara eliminar (ou diminuir) rudo, convoluir com o filtro gaussiano

  • Gaussiano Espao Freqncia

  • Gradiente do Gaussiano Espao Freqncia

  • Laplaciano do Gaussiano Espao Freqncia

  • CannyEnto f*g suprime erro antes da deteco de arestas, ou seja, limita f em banda, mas ainda uma boa aproximao de fEnto, para detectar arestas, basta aplicar diferenciao

  • CannyComo o filtro gaussiano linear, leva-se a diferenciao para a mscara da gaussiana e ento aplica-se o resultado (outra mscara) imagem original.

    O resultado o mesmo que se fosse primeiro suavizado e depois diferenciado.

  • Algoritmo de CannyAplicar CannyEnhancer a I(i,j)Aplicar NonMaxSuppression ao resultadoAplicar HysteresisThresh ao resultado

  • Funo CannyEnhancerAplicar suavizao gaussiana a I(i,j) (filtro linear com kernel gaussiano discretizado)J=I*GPara cada pixel (i,j):a) calcule as componentes do gradiente Jy e Jxb) estime a magnitude da aresta (strenght)Es(i,j)=(Jx2(i,j)+Jy2(i,j))1/2c) estime a orientao da normal da aresta E(i,j)=atan2(Jy,Jx)

  • Funo NonMaxSuppresionConsidere as direes dk = 0, 45, 90, 135oPara cada pixel em es(i,j)ache a direo dk que melhor aproxima a direo de E(i,j) (a normal aresta)se Es(i,j) for menor que pelo menos um dos dois vizinhos ao longo de dk faa In(i,j)=0 (supresso); caso contrrio, faa In(i,j)= Es(i,j)Sada imagem In(i,j) de pontos de arestas afinadas, isto , Es(i,j) aps supresso de pontos de aresta no mximos (max. locais)

  • Eliminando mximos locais (tresholding)A imagem afinada ainda contm mximos locais criados por erroUma idia seria descartar pixels com valores menor que um treshold. Problemas:se tentarmos capturar arestas verdadeiras que sejam fracas, algum erro pode ainda passar (contornos falsos)os valores dos mximos verdadeiros podem flutuar ao longo de uma aresta, acima e abaixo do treshold, fragmentando a aresta resultante.

  • Funo HysteresisTreshEntrada a imagem In(i,j), E(i,j) e l e h, dois tresholds l h comeando de In(i,j), tente achar uma cadeia de mximos locais conectados em ambas as direes perpendiculares normal aresta desde que In(i,j) > l. Marque todos os pontos visitados e salve a lista das posies dos pixels no contorno conectado encontrado.

  • Sada do algoritmoConjunto de listas de arestas, cada uma descrevendo a posio de um contorno conectado na imagemImagem de orientaoImagem de magnitude

  • GeneralidadesHysteresis reduz probabilidade de falsos contornos, uma vez que estes devem produzir uma resposta maior que h para ocorreremReduz probabilidade de quebra, requerendo flutuaes muito maiores que no caso de simples thresholdingTracking de arestas, achando mximos em arestas conectados, ou contornos conectados

  • Algoritmo RobertsEdgeDetector(Input: imagem I(i,j) e treshold )Aplique remoo de rudos caso deseje (Is)filtrar Is(i,j) com as mscaras de roberts 1-1 -1 1-1 1 1-1 obtendo duas imagens I1(i,j) e I2(i,j)estime a magnitude do gradiente em cada pixel como G(i,j)=(I12(i,j)+I22(i,j))1/2marque como aresta todos o pixels em que G(i,j)>.

  • Algoritmo SobelEdgeDetectorMesmo que Roberts, exceto as mscaras do segundo passo

    Prewitt: similar

  • Detectando cantosConsidere o gradiente espacial da imagem dado por (Ex,Ey)t , com Ex=E/x e Ey=E/y;Considere um pixel p genrico na imagem, uma vizinhana Q de p e uma matriz C: Ex2 ExEy ExEy Ey2 onde as somatrias so tomadas sobre a vizinhana Q.A matriz C caracteriza a estrutura dos nveis de cinza da imagem, em cada pixel.C=

  • Auto-valores e auto-vetoresA matriz C simtrica, portanto pode ser diagonalizada por uma rotao do eixo de coordenadas, sem perda de generalidades: 1 0 0 2Os dois auto-valores 1 e 2 so no negativos (assumamos 1 > 2).C=

  • Interpret. geomtrica de 1 e 2 1) Considere uma vizinhana Q uniforme: o gradiente desaparece em toda a vizinhana, C vira uma matriz nula e 1=2=02) Assuma que Q contm um aresta degrau ideal preto para branco; temos ento 2=0, 1>0 e o auto-vetor associado com 1 paralelo ao gradiente da imagemO posto (rank) de C deficiente nos dois casos (0 e 1, respectivamente).

  • Interpret. geomtrica de 1 e 2 3) Considere que Q contm o canto de um quadrado preto contra um fundo branco: como tem duas direes principais em Q, espera-se que 1>2>0 e que quanto maior forem, mais forte (maior contraste) sero as linhas da imagem correspondentePosto de C 2

  • Interpret. geomtrica de 1 e 2 Auto-vetores codificam direes das arestas e auto-valores codificam sua magnitude.Um canto identificado por duas arestas fortes, ento sendo 1>2, um canto uma localizao onde o menor deles grande

  • Algoritmo Corners(Input: I(x,y), threshold 2, e tamanho de Q)Calcule o gradiente na imagem I(x,y) Para cada pixel p:a) componha a matriz C numa vizinhana 2n+1b) calcule 2, o menor dos auto-valores de Cc) se 2>, salve coordenadas de p numa lista LOrdene L em ordem decrescente de 2Passando na lista (ordenada), para cada ponto corrente p, apague todos os pontos que aparecem depois na lista mas que pertenam tambm vizinhana de p.

  • GeneralidadesO threshold pode ser estimado a partir do histograma de 2.O tamanho da vizinhana Q no trivial, no havendo um critrio para sua definio.Experincias indicam um tamanho entre 2 e 10 como sendo adequado na maioria dos casos prticos

  • Operadores de textura Frei e ChenA probabilidade de operadores de aresta encontrarem uma evidncia zero de uma aresta em qualquer lugar da imagem muito pequena, devido ao rudo superposto em variaes de baixa freqnciaAlgumas vezes, gradiente no funciona como esperado

  • Operadores de Frei e ChenConsidere o conjunto de operadores:

  • Operadores de Frei e ChenSeja gk = f * hk, ento:

    Definindo

    Se >threshold, reporte/rotule aresta

  • Magnitude do gradiente xThreshold de Frei-Chen

  • Deteco de linhas e curvasDada a sada de um operador de arestas, encontrar todas as instncias de uma dada curva (linha ou elipse) ou parte dela (segmentos de linha ou arcos de elipses)AgrupamentoQuais pontos da imagem compem cada instncia da curva alvo na imagemModel fittingDado um conjunto de pontos na imagem provavelmente pertencente a uma instncia nica da curva alvo, encontrar a melhor curva que interpola os pontos

  • Transformada de Hough (linhas)Transforma deteco de linhas em um problema de interseo de linhasQualquer linha y=mx+n identificada por um par (m,n), representada por um ponto no plano (m,n) , o espao de parmetrosPor outro lado, qualquer ponto p=(x,y) na imagem corresponde a uma linha n=-mx+y no espao de parmetrosVariando (m,n), pode-se representar todas as linhas possveis que passam em p

  • Transformada de Hough (linhas)Uma linha definida por k pixels colineares p1,...pk, identificada no espao de parmetros pela interseo das linhas associadas a p1,...,pkp1p2xymnnm=tan

  • Transformada de Hough (linhas)Basta transformar interseo de linhas em um problema de deteco de pico, procurando por um mximo de

Search related