Visão Computacional lmarcos/courses/visao.
Transcript of Visão Computacional lmarcos/courses/visao.
Visão Computacional
http://www.dca.ufrn.br/~lmarcos/courses/visao
Shape from X
• X = estéreo
• X = shading (sombreamento)
• X = fotométrico estéreo
• X = motion
• X = textura (regiões com textura uniforme)
• X = line-drawing
Gradiente 2D
• 1D
• 2D
x
y
yx
y
x
y
x
fDireção
fsMagnitude
yxfnyxf
yxfynxf
xfnxfxfxfyy
xx
1
22
000101
01
tan)(:
)(:
),(),(
),(),(
)()()()(
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 ou cálculo variacional):
• Exemplo:110
101
011
Estéreo x Motion
Motion Paralax
Motion Paralax
Motion Paralax
Motion Paralax
Motion Paralax
Motion Paralax
Motion Paralax
Diferenças principais de estéreo
• Correspondência:– Uma vez que imagens são tomadas a uma taxa
alta, disparidades são muito menores que em estéreo
• Reconstrução:– Diferente de estéreo, o deslocamento 3D entre a
cena e a câmera não é necessariamente causado por uma transformação 3D de corpo rígido
Tempo de impacto
Tempo de impacto
• É possível determinar o tempo que a barra levaria para atingir a câmera apenas usando informação de imagem, isto é, sem saber seu tamanho real nem sua velocidade no espaço 3D?
• Resposta?LV
D
D0
t=0t=
fD0-Vt
l
Calculando tempo • Seja L o tamanho real da barra, V sua
velocidade (constante) e f a distância focal• A origem do sistema é o centro de projeção• Posição inicial da barra D(0) = D0 em t = 0
• Posição no tempo t é: D = D0 - Vt
• D0, L, V, f são todos desconhecidos
• Seja l(t) o tamanho aparente da barra (na imagem) LV
D
D0
t=0t=f
D0-Vt
l
Calculando o tempo
= V/D (1)
• l(t) = fL/D
• l´(t) = dl(t)/dt = -fL/D2 (dD/dt) =
fLV /D2
• divida l(t) por l´(t) e usando (1), obtemos:
• l(t)/l´(t) =
• Sabendo l(t) e l´(t), determinamos
LVD
D0
t=0t=f
D0-Vt
l
Assumpção
• Existe apenas um movimento relativo, rígido, entre a câmera e a cena
• As condições de iluminação da cena não mudam de acordo com o tempo
Campo de movimento (motion field)
• Motion field é o campo vetorial 2D de velocidades dos pontos da imagem induzido pelo movimento relativo entre a câmera de vicualização e a cena observada.
• Pode ser entendido como a projeção do campo vetorial 3D de velocidades dos pontos na cena no plano imagem (imagine a projeção dos vetores 3D na imagem)
Motion field
• Seja a imagem de um ponto P dada por:
p=fP/Z
• O movimento relativo entre P e a câmera pode ser dado por V = -T - x P, sendo T o componente translacional de motion e a velocidade angular.
• Uma vez que o movimento é rígido, e T são os mesmos para qualquer ponto P.
Motion field
• Traduzindo em componentes:
Vx = -Tx -yZ+ zY
Vy = -Ty -zZ+ xZ
Vz = -Tz -xZ+ yX
• Derivando p=fP/Z, obtemos:
v = f(ZV-VzP)/Z2
Equações básicas do motion field
vx = (Tzx-Txf)/Z-yf+zy+(xxy)/f-(yx2)/f
vy = (Tzy-Tyf)/Z-xf+zx-(yxy)/f+(xy2)/f
• Note que a equação é a soma de dois componentes separados, um de movimento translacional e outro de movimento rotacional
Noção de fluxo ótico
• Estimar o campo de movimento a partir das variações de intensidade na imagem, causadas por um movimento de corpo rígido ocorrido entre a câmera e a cena
• Assumir brilho contínuo e diferenciável quantas vezes necessário
Fluxo ótico• Consideremos que o brilho aparente de um
objeto móvel é constante no tempo.• A irradiância da imagem é proporcional à
radiância da cena na direção do eixo ótico• Assumindo o mesmo fator ao longo da
imagem, a constância do brilho aparente da cena pode ser escrita como sendo a estacionaridade do brilho da imagem E sobre o tempo: dE/dt=0
Fluxo ótico
• O brilho E é função da posição espacial e do tempo => E(x,y,t)
• Uma vez que x e y são funções de t, a derivada total de dE/dt não deve ser confundida com a derivada parcial E/ t
• A derivada total dE[x(t),y(t),t)]/dt é:
(E/x)(dx/dt)+(E/y)(dy/dt)+E/ t=0
Fluxo ótico
• As derivadas parciais do brilho da imagem são simplesmente as componentes do gradiente espacial espacial da imagem (E)
• As derivadas temporais dx/dt, dy/dt e dz/dt são as componentes do motion field v
• A equação anterior pode então ser escrita:
(E)tv+Et=0
• Subscrito t denota diferenciação no tempo
Fluxo ótico
• Fluxo ótico é o campo vetorial sujeito à restrição da equação anterior e definido sumariamente como o movimento aparente do padrão de brilho da imagem
• É uma aproximação para o campo de movimento que pode ser calculado a partir de imagens que variam no tempo, considerando as simplificações
Fluxo ótico (outro ponto de vista)
• Sistema visual pode ser discreto, mas produz sensação de movimento contínuo
• A saída espelha o fluxo contínuo do mundo imageado ao longo da retina
• Esta informação contínua pode ser entendida como o fluxo ótico
• Fluxo ótico ou campo de velocidade instantânea define uma “velocidade retinal” a todo ponto no campo visual, com a qual ele cruza o campo.
Shape from motion• Fluxo ótico pode ser calculado apenas
usando informação local
• Modelar movimento da imagem como variação contínua da intensidade da imagem, função de posição e tempo f(x,y,t) que pode ser expandida (Taylor) como:
...),,(
),,(
22
22
2
2
ydy
fdx
x
fdt
t
fdy
y
fdx
x
ftyxf
dttdyydxxf Termos ignorados
Shape from motion
• Se considerarmos que a intensidade de um ponto na imagem não muda se o movermos para outro local (translação apenas):
• Assim, a equação fundamental é dada por:
),,(),,( tyxfdttdyydxxf
t
f
t
dy
y
f
t
dx
x
f
Shape from motion
f / x, f / y e f / t são quantidades que podem ser medidas e dx/dt e dy/dt são as estimativas que estamos procurando (velocidades nas direções x e y).
Fluxo óptico
• Fazendo obtém-se
• ou
• onde é o gradiente (espacial) da imagem e V=(u,v) é o termo velocidade
dt
dyv
dt
dxu ;
vy
fu
x
f
t
f
fVt
f
f
Explicação
• Considere câmera fixa e objeto movendo
• A taxa de variação no tempo da intensidade de um ponto na imagem é (em primeira ordem) explicada como sendo a taxa de variação no espaço da intensidade da cena multiplicada pela velocidade com que pontos na cena movem relativos à câmera.
• Algo como a segunda lei de Newton ?
Explicação
• Esta equação também indica que o vetor velocidade (u,v) deve estar numa linha perpendicular ao vetor (fx,fy), que são as derivadas parciais com respeito a x e y.
• Se as derivadas forem precisas, a magnitude da velocidade na direção (fx,fy) é:
22yx
t
ff
fV
Fluxo ótico por relaxação
• Equação do fluxo ótico restringe velocidade mas não a determina unicamente.
• Uso de relaxação par calcular o fluxo ótico (pressupõe suavidade da variação)
• Suavidade pode ser medida usando derivadas parciais ao quadrado como termo de erro: ux
2, uy2,vx
2,vy2
Fluxo ótico por relaxação
• Usando multiplicadores de Lagrange, minimizar o erro no fluxo dado por:
E2(x,y) = (fxu + fyv + ft)2 + (ux2+uy
2+vx2+vy
2)
• Diferenciando em relação a u e v, obtemos equações para a variação do erro com relação a u e v que devem ser zero
Fluxo ótico por relaxação
• Sendo 2u = u-uav e 2v = v-vav, obtém-se:
(2+ fx2)u + fx fyv = 2 uav - fxft
fx fyu + (2+ fy2)v = 2 vav - fyft
• Podem ser resolvidas para u e v:
u = uav - fx (P/D)
v = vav - fy (P/D)
sendo P = fx uav + fyvav + ft
D = 2 + fx2 + fy
2
Integrando motion (relaxação)
• t=0
• Inicialize uk,vk em zero
• Até que algum erro seja satisfeito, faça
u(x,y,t) = uav (x,y,t-1) - fx (P/D)
v(x,y,t) = vav (x,y,t-1) - fy (P/D)
• fim;
Integrando motion (relaxação)vários quadros
• t=0
• Inicialize todos os u(x,y,0) e v(x,y,0)
• Para t = 1 até um máximo de frames, faça
• fim;
• Obs:
D
Pfvv
D
Pfuu
ykav
k
xkav
k
1
1
222
;
yx
tavyavx
ffD
fvfufP