Visão Computacional Shape from Shading http://www.dca.ufrn.br/~lmarcos/courses/visao Gradiente 2D x f ( x n, y ) f ( x , y ) x y f ( x, y n ) f ( x , y ) y x y Magnitude: s ( f ) 2x 2y y Direção: ( f ) tan x 1 Na prática, uma aproximação P1(x1,y1) P0(x0,y0) Gradiente de superfícies • Vetor (p,q) tal que: p f f ;q x y Normal p p f q x f q y Shape from X • • • • • • X = shading (sombreamento) X = motion (movimento) X = textura (regiões com textura uniforme) X = line-drawing X = fotométrico estéreo X = estéreo Shape from shading Relaxação • Inicializa orientação para cada elemento (aos seus píxels na imagem baseado na intensidade) • Orientação dos vizinhos é “relaxada” umas contra as outras até que cada uma convirja par a uma orientação única Shape from shading • Estimar a forma, dada apenas uma imagem Luz Observador N i e g n0 Funções de refletividade • Considere uma fonte de luz distante • Considere os ângulos i (incidente), e (emissor) e g (fase) na figura anterior • Reflectância de uma superfície é a fração do fluxo de energia incidente refletido em uma dada direção dL • Formalmente, a função de refletividade é: r dE onde L é radiância que sai e E o fluxo incidente • A quantidade de interesse é a irradiância da imagem, dada por: L = r dE Função de refletividade • Consideremos funções de reflexão mais simples, lambertianas, proporcional apenas ao cosseno do ângulo de incidência da luz • Consideremos a função de refletividade relacionada ao gradiente da superfície, medido em relação a um sistema de coordenadas orientado no observador • Conceito de espaço-gradiente é essencial O espaço-gradiente • Refere-se à orientação física da superfície, não da intensidade local, não confundir com gradiente da intensidade • Espaço gradiente é o espaço bidimensional da inclinação das superfícies da cena • É definido, para uma superfície expressa por – z=f(x,y) como o vetor (p,q): ( z ) ( z ) p ;q x y O espaço-gradiente • Qualquer plano na imagem pode ser expresso em termos de seu gradiente • Equação geral do plano é: Ax+By+Cz+D=0 A B D • Então: z x y C C C • da equação anterior: -z = px +qy+K • Espaço gradiente é o espaço vetorial (p,q) 2D • Gradiente perpendicular ao eixo ótico é (0,0) Gradiente de superfícies • Vetor (p,q) tal que: p ( z ) ( z ) ;q x y Normal p p f q x f q y Espaço gradiente (,0) (0,-) (0,0) (0,) (-,0) Direção atan2(q,p) é a direção de mudança mais rápida da profundidade da superfície à medida que x e y mudam. p 2 q 2 é a taxa de variação. Mapa de reflectância • O mapa de reflectância R(p,q) representa esta variação de brilho percebido de acordo com a orientação da superfície • R(p,q) dá a radiância da cena como uma função do gradiente da superfície • R(p,q) é usualmente mostrado como contornos de radiância constante da cena (curvas de nível ou de mesma intensidade) Lu z Casos importantes Observ ador N i g e n0 • Superfície lambertiana, com o observador e fonte de luz na mesma direção (i=e) • Superfície lambertiana plana possui intensidade constante para ângulos de iluminação constantes • Ângulos constantes ocorrem a círculos concêntricos • Superfícies mais brilhantes são as iluminadas na direção normal, de frente para o observador, portanto de gradientes (0,0). Mapa de reflectância q p L u z Mapa de Reflectância Obse rvado r N i e g n0 • Neste caso, ângulo incidente e de emissão são os mesmos (fonte perto do observador) • Olhando no plano (x,y), significa um vetor para a fonte de luz de (0,0,-1) • Em um dado ponto (p,q) no espaço gradiente, a normal à superfície é (p,q,-1) • R = r0 cos i, onde r0 é a constante de proporcionalidade R a radiância no sistema de coordenadas com origem no observador Lu z Mapa de reflectância Observ ador N i g e n0 • Seja ns e n vetores unitários na direção da fonte e da normal à superfície, respectivamente n ( p, q,1) (1 p 2 q 2 ) • Desde que cos i = ns . n, então: r0 R( p, q) (1 p 2 q 2 ) • Então cos i determina o brilho na imagem e seu gráfico determina o espaço gradiente da imagem, visto anteriormente Mapa de reflectância • No caso de direção de iluminação qualquer seja ela dada por (ps, qs, -1), tome o produto escalar entre esta direção e direção da normal à superfície: R = r0 ns .n • ou r ( p p q q 1) R( p, q) 0 s s (1 p 2 q 2 )(1 ps2 qs2 ) • O ângulo de fase g é constante ao longo do espaçogradiente, desde que se use projeção ortográfica (observador longe da cena) e luz longe da cena Mapa de reflectância q p Shape from shading • Informação local ajuda a determinar orientação da superfície (restrições: reflectância e suavidade) • Suponha uma estimação da orientação da superfície num certo ponto, dada por (p(x,y),q(x,y)) • Se a normal não estiver precisa, a equação I(x,y)=R(p,q) estará com um certo erro • Parece razoável encontrar p e q que minimizem a diferença (I-R)2 • Outro requerimento é que p(x,y) e q(x,y) variem de forma suave, que pode ser medido pelas derivadas parciais quadráticas (px2, py2, qx2, qy2) Shape from shading • Para uma superfície suave, ambos termos devem ser pequenos; o objetivo é minimizar o erro num ponto: E(x,y)=(I(x,y) – R(p,q))2+ (px2+py2+qx2+qy2) • Onde o multiplicador de Lagrange incorpora a restrição de suavidade. Shape from shading • Diferenciando E(x,y) com relação a p e q, e aproximando as derivadas numericamente R p R q( x, y ) qav ( x, y ) T ( x, y, p, q) q p( x, y ) pav ( x, y ) T ( x, y, p, q) • onde T ( x, y , p , q ) I x, y R p, q , e 1 1 pav x, y p x 1, y p x 1, y p x, y 1 p x, y 1 4 1 qav x, y q x 1, y q x 1, y q x, y 1 q x, y 1 4 Solução por Gauss-Seidel • • Calcule o lado esquerdo usando uma estimativa de p e q Use o calculado para determinar uma nova estimativa para p e q Ou Shape from shading (algoritmo) • Inicialize p0(x,y) e q0(x,y) (nas bordas); • k=0; n=100; • while (k++<n || Emax<Emin) – – R p p T p R k k 1 q qav T q k k 1 av – compute E, para todos os pontos e tome o máximo deles como Emax Recuperando a forma de uma esfera Mapa de agulhas 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 • Equação de reflectância restringe a possível orientação da superfície ao resultado do mapa de reflectância • Usando mais de uma fonte, pode-se determinar a orientação de forma única • Cada luz dá uma contribuição diferente a um mesmo ponto na cena (proporcional à radiância) f(x). • Se a reflectância não é conhecida, três equações são necessárias para determinar a reflectância, junto com a normal (unitária). Estéreo fotométrico • Variação da posição de iluminação Luz Luz N Observador N Observador Fotométrico Estéreo • Seja nk (k=1,2,3) o vetor posição de cada fonte de luz, então: Ik(x,y) = r0(nk . n) • I é intensidade normalizada. Em forma matricial, fica: I= r0 N n • onde I = [I1(x,y), I2(x,y), I3(x,y)]T • n11 n12 n13 • e N= n21 n22 n23 • n31 n32 n33 Fotométrico Estéreo • I=fc, onde c é a constante de normalização apropriada • Se c não for conhecida, pode ser assumida como parte de r0, sem afetar o cálculo da normal • Se as 3 fontes não forem coplanares com o ponto, a matriz N possui uma inversa. • Basta resolver para r0 e n, usando a equação: Ik(x,y) = r0(nk . n) Estéreo fotométrico (Ballard) • R1 ( p1 , q1 ) R2 ( p2 , q2 ) r0 ( ps1 p1 qs1q1 ) (1 p q )(1 p q ) 2 1 2 1 2 s1 2 s1 , r0 ( ps 2 p2 qs 2 q2 ) (1 p22 q22 )(1 ps22 qs22 ) • mas p1 = p2 e q1 = q2 • ps1 e ps2 são conhecidos, portanto, é possível encontrar uma solução (duas equações e duas incógnitas) 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