Robótica MO810/MC959 http://www.ic.unicamp.br/~lmarcos/mo810
Gradiente 1D Uma dimensão: Duas dimensões: Módulo ou intensidade x y ou inclinação ou direção ou tangente Módulo ou intensidade
Na prática, uma aproximação P0(x0,y0) P1(x1,y1)
Gradiente 2D
Vários tipos de gradiente Roberts: Prewit Sobel
Gradiente e imagem Gradiente mede variação da intensidade Gradiente realça arestas Pode-se derivar outras máscaras para outras direções (tudo é mesmo uma aproximação dada pelo cálculo infinitesimal): Exemplo:
Laplaciano Aproximação:
Problemas com o Laplaciano Informação direcional não disponível Aumenta o ruído nas imagens (duplica), lembre-se que é uma aproximação Prejudicado por picos e vales bruscos Solução: suavizar imagem antes com o gaussiano G => muitos cálculos. Juntar 2 e G num único filtro: L(G(I(x,y))) = LoG(I(x,y))
Filtro Gaussiano G0: G1: Gradiente do gaussiano G2: Laplaciano do gaussiano
Exemplos de máscara gaussiana Normalized Gaussian (norma 1) (G0 1D) double gn[3][7]={/*3 sigmas diferentes*/ {0.0000, 0.0003, 0.1065, 0.7866, 0.1065, 0.0003, 0.0000 }, {0.0513, 0.1219, 0.2049, 0.2436, 0.2049, 0.1219, 0.0513 }, {0.1063, 0.1403, 0.1658, 0.1752, 0.1658, 0.1403, 0.1063 }}; Normalized Gaussian first derivative (norma 1) (G1 1D) double dgn[3][7]={/*3 sigmas diferentes*/ {0.0000, 0.0025, 0.4975,-0.0000,-0.4975,-0.0025,-0.0000 }, {0.1278, 0.2023, 0.1700,-0.0000,-0.1700,-0.2023,-0.1278 }, {0.2083, 0.1834, 0.1083,-0.0000,-0.1083,-0.1834,-0.2083 }}; Normalized LoG (by norma 1) (G2 1D) double lgn[3][7]={ /*3 sigmas diferentes*/ { 0.0000, 0.0028, 0.2228,-0.5488, 0.2228, 0.0028, 0.0000 }, { 0.1320, 0.0570,-0.1629,-0.2962,-0.1629, 0.0570, 0.1320 }, {-0.0000,-0.1246,-0.2354,-0.2800,-0.2354,-0.1246,-0.0000 }};
Gráficos
Gradiente de superfícies Vetor (p,q) tal que: Normal p p f q x f q y
Shape from shading Mapa de reflectância dão a direção da luz Luz Observador Mapa de reflectância dão a direção da luz
Recuperando a forma de uma esfera
Mapa de reflectância
Recuperando a forma de uma bacia
Mapa de reflectância
Processo iterativo Resultado mapa de normais ou diagrama de agulhas Em cada posição, vetor normal indica a direção da normal à superfície.
Problemas Alguns casos, mais de uma solução Dependente do tipo de iluminação Bordas complicam Necessidade de inicialização (n0)
Estéreo fotométrico Variação da posição de iluminação Luz Luz Observador N Luz Observador
Estéreo fotométrico e mas p1 = p2 e q1 = q2 ps1 e ps2 são conhecidos, portanto, é possível encontrar uma solução
Shape from line-drawing
Shape from line-drawing
Shape from line-drawing 1) Detetor de arestas 2) Binarização 3) Tentar encontrar estruturas que permitam reconstruir a forma (cantos, etc) 4) Tentar achar a orientação espacial destas estruturas. 5) Tentar juntar as estruturas no espaço
Shape from line-drawing
Shape from motion Imagem como uma série de Taylor: Se considerarmos que a intensidade da imagem não muda se movermos a imagem de um ponto a outro: Assim: (eq. fundamental) Ignorados
Fluxo óptico Fazendo obtém-se ou onde é o gradiente (espacial) da imagem
Explicação Considere câmera fixa e objeto movendo A taxa de variação no tempo da intensidade de um ponto na imagem é explicada como sendo a taxa variação no espaço da intensidade da cena multiplicada pela velocidade com que o ponto se move em relação à câmera. Algo como a segunda lei de Newton ?
Integrando motion (relaxação) Estime u(x,y,o),v(x,y,0) Até que algum erro seja satisfeito, faça fim; Obs:
Shape from stereo Duas ou mais imagens da mesma cena Tomadas de pontos de vista diferentes Percepção da 3a dimensão
Calibração de câmera
Restrições de ortonormalidade
Princípio básico da reconstrução estéreo (triângulos)
Transformações Objetos guardam relações com o mundo real Rotação, translação e escala Se conseguirmos determinar pontos correspondentes, pode-se determinar os triângulos e a 3a dimensão Casamento de todos os pontos
Disparidade estéreo P(x,y, z) f b yl y yr xl xr x O b Figura 2.1 - Modelo estéreo f b
Premissas (x, y, z) = coordenadas de um ponto no espaço Origem imagem esquerda (xl, yl) em (0, 0, f) Ponto focal esquerdo em (0, 0, 0) Imagem direita (xr, yr) com origem em (b, 0, f) Ponto focal direito em (b, 0, 0) b = linha de base f = distância focal (dos centros aos planos imagens)
Disparidade e Profundidade d = xl - xr, yl y (x,y,z) yr xl xr x O b Figura 2.1 - Modelo estéreo xr xl f b
Generalizando (movendo origem) (0,0,0) (d,0,0)
Calculando a disparidade
Observações z é inversamente proporcional a d z é diretamente proporcional a b fixado um erro na determinação de d: precisão na determinação de z cresce de forma direta com b. com o crescimento de b, imagens tendem a ser muito diferentes uma da outra ponto visível numa imagem pode não ser noutra, mesmo com vergência
Mais observações d é proporcional à distância focal f à medida que f cresce, imagens também aumenta a distância do ponto projetado nas imagens ao centro destas e em conseqüência a disparidade
Determinando altura dos pontos
Restrição epipolar
Linhas epipolares
Orientação relativa (interior)
Orientação relativa 9 incógnitas para R 3 incógnitas para T Total de 12 incógnitas (ou graus de liberdade) 3 equações (restrições normalidade de R) + 1 equação (restrição de ortogonalidade de R) 4 pontos correspondentes no sistema de câmera Total de 12 restrições seria OK?
Orientação relativa P(x, y, z) P(x, y, z) yl y P(x, y, z) yr xl xr x O b Figura 2.1 - Modelo estéreo yl y P(x, y, z) yr xl xr x O b Figura 2.1 - Modelo estéreo Mínimo de 5 pontos = 5x2 = 10 10 + 4 = 14 > 13 1 incógnita para S
Solução 5 pontos com coordenadas de mundo conhecidas (não coplanares) e seus correspondentes nas imagens
Orientação absoluta (exterior)
Algoritmos estéreos 1) Extração de feições ou características das imagens; 2) Estabelecimento de correspondência (matching) entre as feições extraídas; 3) Reconstrução tridimensional.
Random Dot Stereograms http://www.nottingham.ac.uk/~etzpc/sirds.html
Corresp. estéreo (matching) estereogramas de pontos randômicos evidências da fase de correspondências correlação de áreas ou de características (ou elementos) as imagens são pré-filtradas (eliminar altas frequencias e realce de características) Ideal: correspondênca para todos os pixels nas imagens (na prática impossível).
Possivel método 1) determinar detalhes inconfundíveis (contornos, certos ângulos, linhas) 2) tentar sua localização na outra imagem 3) usar as diferenças observadas nos tons de cinza entre pixels vizinhos (textura) para tentar a correspondência Valores da luminância de pixels correspondentes a um mesmo ponto na superfície podem ser diferentes nas duas imagens diferença na quantização, sistemas de aquisição, pontos de vista ou ângulos de iluminação, distorções na aquisição, má localização dos elementos, ruídos, ocultação de um elemento numa das imagens.
Métodos de matching Matching baseado em áreas (completo) correlacão entre janelas minimização de erros relaxação Matching baseado em elementos encontrar elementos correlação entre elementos (esparso)
Filtragem
CORRELAÇÃO de ELEMENTOS encontrar numa das imagens elementos que possuam características semelhantes a dados elementos (pixels ou grupos de pixels) da outra imagem, através do cômputo de valores de correlaçã
CORRELAÇÃO DE SINAIS Nishihara (1982) primitiva “and” em espaço de escalas
JANELAS ADAPTATIVAS 1) restringir tamanho de janela por contornos e por um tamanho máximo 2) Cálculo da disparidade para cada ponto da imagem com precisão a nível de píxel. 3) Completar o mapa de disparidade iterativamente 4) Densificar o mapa de disparidade
CORRELAÇÃO DE CANTOS 1) Extração de elementos tais como sequências de arestas ou aproximações de polígonos e localizar cantos nestes. 2) Aplica-se um operador diferencial e relaciona-se pontos que são cantos por limiarização (thresholding). 3) Uso de um modelo explícito da estrutura local da imagem na vizinhança dos cantos e procurar similares numéricos para tal modelo por uma minimização não linear.
CORRESPONDÊNCIA de ARESTAS 1) Extração de arestas. Definição de estruturas lineares compostas or sequencias de pixels. 2) Cálculos de valores de correlação nestas estruturas 3) Pode-se eliminar algumas arestas pelo tamanho da estrutura (comprimento), pela curvatura, etc...
VARREDURA DE LINHAS EPIPOLARES COM USO DE PROGRAMAÇÃO DINÂMICA Divide-se o espaço de disparidade dentro de cada linha epipolar em dois sub-espaços Resolve-se o problema em um deles e depois no outro Inter e intra-scan-line
UTILIZAÇÃO DE SNAKES tracking de objetos em sequências de imagens snake minimiza energia numa spline, guiada por restrições de forças externas e influenciada pelas forças da imagem que a empurram em direção a elementos (features) tais como linhas e arestas snakes são contornos ativos que estacionam-se nas proximidades de arestas, localizando-as de forma precisa. Usa-se a continuidade de espaços de escala para enlarguecer a região de captura nos arredores de um elemento, ou seja, uma borração inicial da imagem com um filtro.
MATCHING POR NÍVEIS DE CINZA E RELAXAÇÃO
CLIQUE MAXIMAL Considere o grafo completo completo cujos nós são os píxels (ou elementos) de cada imagem Ligações ou ramos estão definidos entre cada par deste conjunto de nós, nos dois sentidos. Uma esfera, onde os pontos sobre a superfície de cada hemisfério é o conjunto de píxels de cada uma das duas imagens respectivamente, havendo arestas ligando a todos. Estabelecer um subgrafo que indique a melhor semelhança entre cada píxel destas imagensO subgrafo solução é denominado clique maximal.
Matching recursivo (LM)