TRABALHO FINAL DE VISÃO
COMPUTACIONAL E REALIDADE AUMENTADA
TEMA :
DETERMINAÇÃO DO FLUXO ÓPTICO EM
DADOS SÍSMICOS
1.
INTRODUÇÃO
4.
CONCLUSÕES
5.
REFERENCIAS
A técnica conhecida como
fluxo óptico (optical flow) constitui uma importante ferramenta para estimar o
movimento em uma seqüência de imagens [1].
O fluxo óptico pode
ser definido como o campo de velocidade 2D, descrevendo o movimento aparente
na imagem, que resulta de movimentos independentes de objetos na cena ou
de um observador em movimento
(Figura 1) . Ou seja, dado um conjunto de imagens, seu fluxo óptico pode ser
entendido como a distribuição da velocidade aparente do movimento dos padrões
de intensidade, tomando as imagens
em sequência. Dessa forma, a variação de fluxo óptico surge a partir de um
movimento relativo de objetos e outros elementos de imagem, e proporciona
informações importantes sobre a cena visualizada e sua respectiva taxa de
mudança.
A descontinuidade
no fluxo pode ajudar na segmentação de imagens em regiões que correspondam
a diferentes objetos. Outras aplicações de fluxo óptico incluem correspondência
de pontos, navegação exploratória, e avaliação de tempo para colisão [2].

Figura 1 – A imagem na
posição t é a mesma imagem na posição t+δt
Os
métodos para a computação do fluxo óptico podem ser divididos em três grandes
grupos principais: técnicas diferenciais, técnicas de correlação
e técnicas baseadas em freqüência [2] . Neste trabalho, foram examinadas duas abordagens baseadas em técnicas
diferenciais, nas quais a hipótese inicial para a computação do fluxo
óptico é de que a intensidade
entre quadros diferentes em uma seqüência de imagens é aproximadamente
constante em um intervalo de tempo pequeno. Consequentemente, em um pequeno intervalo de tempo o deslocamento
será mínimo.
Se considerarmos I(x,y,t) a intensidade do pixel
localizado na posição (x,y) no tempo t, assume-se, por hipótese, que o
intervalo de tempo entre as duas imagens é muito pequeno e a intensidade é
aproximadamente constante, ou seja
![]()
A
equação acima pode ser expandida por série de Taylor, da seguinte maneira
![]()
sendo O2 um termo de alta ordem. Agrupando
os termos e eliminando o termo de alta ordem O2, temos
![]()
![]()
Dividindo os dois lados da equação por ¶t,
temos
![]()
Mas sabemos que
são os dois componentes do vetor velocidade procurado.
Esse vetor representa a velocidade do pixel em (x,y) no tempo t. Além disso,
constitui
o gradiente da função nas direções x e y. Dessa forma, podemos reescrever a
equação anterior da seguinte maneira
![]()
sendo essa equação chamada de
equação de restrição do movimento do fluxo óptico.
Entretanto, somente
a equação de restrição do movimento não é suficiente para estimar os
componentes de v, pois o número de incógitas a serem descobertas é maior que o
número de equações disponíveis. Tal fato é uma consequência do problema da
abertura [1] : de maneira geral a intensidade local em um ponto da imagem para
medirmos a velocidade completa naquele ponto, mas existe informação suficiente
para medirmos a componente normal ao ponto. Por essa razão, é necessário que
adicionemos outras restrições ao modelo para acharmos todas as componentes do
vetor velocidade. Nesse ponto, surgem as metodologias de Lucas-Kanade e
Horn-Schunck para a estimativa dos valores de v.
Nesta seção, são detalhados os
fundamentos teóricos necessários à compreensão do presente trabalho. São
examinados os métodos de estimação do fluxo óptico através dos métodos de
Lucas-Kanade e Horn-Schunck, assim como são fornecidos detalhes a respeito das
medidas de desempenho utilizadas neste trabalho.
Trata-se de um método não-iterativo que assume uma fluxo
óptico constante local. Assumindo que o fluxo (Vx,Vy) é constante
em pequenas janelas de tamanhos m x m e com m>1, sendo o mesmo centrado nestas
janelas. Através da numeração dos pixels de 1...n, podemos encontrar o seguinte
conjunto de equações

Dessa forma, como existem mais equações que incógnitas, o
sistema passa a ser sobre-determinado. Em notação matricial, temos

![]()
Para resolver esse sistema
sobre-determinado, podemos utlizar o método dos mínimos quadrados
ou ![]()
O que implica em

sendo i=1,...n.
O método Lucas-Kanade é considerado razoavelmente robusto na
presença de ruídos, mas a malha de pontos do campo de velocidade não é tão
densa quanto o esperado na presente aplicação.
Para simplificar o processo de obtenção do campo de vetores
v, o método de Horn-Shunck assume que a superfície a ser trabalhada é plana e também
que a iluminação incidente sobre a superfície é uniforme. Também é assumido que
a reflexão varia suavemente e não existe descontinuidades no fluxo das
velocidades [2]. Dessa maneira, no modelo existem duas restrições: a restrição
de iluminação constante, a qual assume que a iluminação total é constante nas
duas imagens e a restrição de suavização, que assume que pontos vizinhos
apresentam velocidades semelhantes.
Consideremos a restrição de iluminação constante. Se a
iluminação de uma imagem no ponto (x,y), no plano da imagem no tempo t é
descrito por E(x,y,t), ao movermos a cena da imagem a iluminação de um ponto
particular no modelo, temos

Expandindo a equação acima pela regra da cadeia, temos
,
sendo
as componentes u e v do vetor de velocidade
procurado.
O que resulta em uma única equação com duas variáveis
desconhecidas
![]()
Se cada ponto se movesse de forma independente, seria quase
impossível recuperar o campo de movimento. Dessa maneira, a restrição de
suavização considera que pontos vizinhos têm velocidades semelhantes e a
velocidade varia suavemente na maior parte do campo.
Uma maneira de expressar esta
restrição é minimizar o quadrado da magnitude do gradiente da velocidade do
fluxo nas duas direções

A estimativa das derivadas parciais Ex, Ey e Et é realizada
pela média das quatro primeiras regiões adjacentes da imagem, da seguinte
maneira



O problema passa a ser então um problema de minimização, ou
seja, achar o valor eb que minimize a expressão
![]()
com a restrição

Uma solução direta para este problema é computacionalmente
cara, portanto é necessária uma abordagem interativa [6]. Geralmente,
utiliza-se a abordagem iterativa de Gauss-Seidel, a qual utiliza os valores das
derivadas estimadas e a média dos vizinhos obtidos na iteração anterior para
estimar os novos valores para a iteração atual. Dessa maneira, novos valores
são obtidos a partir das equações abaixo.



A medida mais comum de
desempenho na área de fluxo óptico é o erro angular (AE – Angular Error)
[3]. O erro angular entre dois vetores (u0,v0) e (u1,v1)
é o ângulo no espaço 3D entre (u0,v0 ,1) e (u1,v1
,1). Geralmente é calculado através da normalização dos vetores, seguido do
cálculo do produto escalar entre os dois e finalmente, da tomada do cosseno
inverso desse valor escalar. A meta do AE é fornecer uma medida relativa de
performance que evita divisões por zero em caso de fluxos nulos. A média dos
erros angulares em uma imagem fornece o AAE (Average Angular Error),
utilizado neste trabalho.
Outra medida bastante usada é
o erro definido por sqrt( (u0 -u1)2 + (v0
-v1)2), a qual fornece uma medida mais absoluta de
performance [3]. A média dessa medida foi utilizada como critério de
performance nesse trabalho. Para a interpolação, foi utilizada a interpolação
bilinear [6].
Inicialmente, para testar os
algoritmos descritos neste trabalho, foram utilizadas algumas imagens de teste
bastante simples, além de imagens disponíveis em uma base de imagens para
testes de fluxo óptico (disponível em http://vision.middlebury.edu/flow)
[3]. Foi verificado que a implementação disponível em OpenCV do método de
Lucas-Kanade não gerava uma malha de vetores densa, baseado-se em feições
achadas na imagem para determinar o fluxo de movimento. Com isso, apenas
imagens com feições bastante características (por exemplo, cantos, arestas)
obtiveram resultado razoável (Figura 2). Para imagens sísmicas e imagens de
baixo contraste, este método não apresentou bons resultados.

Figura 2 – Resultado de um
teste realizado utilizando a implementação do método de Lucas-Kanade (obtido a
partir da sequência “Urban”, frames 13 e 14)
O método de Horn-Schuck,
implementado em C++ utilizando a biblioteca de manipulação de imagens CImg [7],
apresentou melhores resultados em uma variedade maior de imagens. As figuras 3,
4 e 5 apresentam alguns campos obtidos utilizando-se essa implementação.

Figura 3 – Fluxo óptico obtido
através do método de Horn-Schunck, mostrando uma rotação simples de uma esfera

Figura 4 – Fluxo obtido a
partir da sequência de imagens “Army” , frames 7 e 8
Os dados sísmicos
utilizados neste trabalho correspondem a 7 secções (fatias) de um dado sísmico
3D. A deformação de cada fatia foi realizada a partir de uma deformação radial
sintética, em que todos os vetores tendem a apontar para o centro da imagem,
tal como na Figura 5.

Figura 5 –Fluxo sintético
aplicado às imagens sísmicas
Os testes do método de Horn-Schunck
foram realizados variando-se o valor do parâmetro alpha e também o tamanho
máximo que cada componente de velocidade pode ter. Para alpha, esses valores
correspondem a 1,2,4,16,32 e 64, enqueanto que os tamanhos máximos das
componentes são 0.1, 0.5, 2.5, 4.0 e 5.0. O número de iterações realizadas em
cada teste foi 400. A Figura 6 mostra o resultado obtido para o arquivo
fault2_CROSSLINE_2453.

Figura 6 – Fluxo obtido
utilizando a partir da imagem fault2_CROSSLINE_2453, com a = 32 e tamanho máximo = 1.0.
O erro angular médio para este caso foi 3.04 e o erro médio quadrático ficou em
0.054027
|
alpha |
AAE/n |
Erro médio/n |
|
1 |
3,105141143 |
0,055331571 |
|
2 |
2,702839143 |
0,047801286 |
|
4 |
2,240175714 |
0,039438714 |
|
8 |
1,752179857 |
0,030770286 |
|
16 |
1,296418286 |
0,022738714 |
|
32 |
0,967287857 |
0,01696 |
|
64 |
0,972443857 |
0,017050429 |
|
alpha |
AAE/n |
Erro médio/n |
|
1 |
6,734126 |
0,136654857 |
|
2 |
5,981259714 |
0,119014429 |
|
4 |
5,033561143 |
0,098692571 |
|
8 |
3,984154857 |
0,077368143 |
|
16 |
3,036029571 |
0,058686 |
|
32 |
2,631265286 |
0,050920429 |
|
64 |
3,759745429 |
0,072422714 |
|
Alpha |
AAE/n |
Erro médio/n |
|
1 |
6,343426 |
0,155768 |
|
2 |
5,642463 |
0,136625 |
|
4 |
4,774084 |
0,114346 |
|
8 |
3,834534 |
0,091144 |
|
16 |
3,048398 |
0,072202 |
|
32 |
3,033998 |
0,0724 |
|
64 |
5,587048 |
0,13221 |
|
Alpha |
AAE/n |
Erro médio/n |
|
1 |
6,607674 |
0,397518 |
|
2 |
5,887683 |
0,35305 |
|
4 |
5,039051 |
0,303064 |
|
8 |
4,237859 |
0,255611 |
|
16 |
3,752052 |
0,222191 |
|
32 |
4,211391 |
0,221674 |
|
64 |
8,522003 |
0,372678 |
|
Alpha |
AAE/n |
Erro médio/n |
|
1 |
16,71007 |
1,666282 |
|
2 |
15,49354 |
1,461734 |
|
4 |
13,8477 |
1,236428 |
|
8 |
11,89009 |
1,014787 |
|
16 |
10,10927 |
0,837142 |
|
32 |
9,948751 |
0,765847 |
|
64 |
14,13222 |
0,924888 |
|
Alpha |
AAE/n |
Erro médio/n |
|
1 |
26,27266 |
2,997773 |
|
2 |
25,14178 |
2,643088 |
|
4 |
23,51202 |
2,259035 |
|
8 |
21,46852 |
1,887177 |
|
16 |
19,45598 |
1,587057 |
|
32 |
18,73891 |
1,434734 |
|
64 |
21,1927 |
1,50793 |
Esses resultados
indicam que, para pequenos deslocamentos, que são mais comumente encontrados em
dados sísmicos, o método apresenta desempenho razoável, com erro angular médio
de poucos graus. À medida que o deslocamento aumenta, entretanto, esse erro vai
aumentando, o que implica que para deslocamentos cujas componentes vetoriais
são maiores que 4, o método não apresenta um desempenho tão bom.
O uso de tecnologias para a
análise de dados sísmicos variantes no tempo vêm crescendo em aceitação nos
últimos anos. A grande aceitação do emprego
da análise sísmica 4D pela indústria de petróleo é evidenciada pelo grande
número de publicações recentes nas principais conferências e revistas
científicas da área geofísica que testemunham casos de sucesso da aplicação de
tais tecnologias.
Com base nos resultados
observados, podemos concluir que o método de Horn-Schunck permite recuperar com
razoável precisão os deslocamentos de pequena magnitude ocorridos em pares de
imagens sísmicas deformadas a partir de um campo sintético. Os resultados
mostraram que para deslocamentos da ordem de sub-pixels, comumente encontrados
em dados sísmicos, o método é capaz de estimar o fluxo óptico com um erro
tolerável. Com o intuito de avaliar melhor a metodologia, entretanto, novas
investigações se fazem necessárias, como, por exemplo, o uso de dados sísmicos
com campos de deslocamentos naturais. Para trabalhos futuros, pretende-se
realizar a extensão da presente implementação do algoritmo de Horn-Schunck para
dados sísmicos tridimensionais e a implementação de outras técnicas de
estimativa de fluxo óptico, tais como as técnicas variacionais.
Alternativamente, o uso de deformações baseadas na interpolação através de
funções de base radial, proposto em [4], deverá ser bastante útil para obter
deslocamentos mais próximos dos que naturalmente ocorrem em dados sísmicos.
[1] BARRON, J. L., THACKER, N. A. Tutorial:
Computing 2D and 3D Optical Flow. Imaging Science and Biomedical Engineering Division,
Medical School, University of Manchester. Manchester, 2005.
[2] FARIA,
Alexandre Wagner. Fluxo Óptico. Universidade Federal de Minas Gerais.
Disponível em http://www.verlab.dcc.ufmg.br/_media/cursos/visao/2007-1/alunos/alexandrewagner/optical_flow_article.pdf?id=cursos%3Avisao%3A2007-1%3Aalunos%3Aalexandrewagner%3Aindex&cache=cache
[3] BAKER, Simon, SCHARSTEIN, Daniel, et al. A
database and Evaluation Methodology for Optical Flow. In
Proc. Eleventh IEEE International Conference on Computer Vision (ICCV 2007),
[4] BOER, Aukje,SCHOOT, Martijin S., BIJL, Hester.
New method for mesh moving based on radial basis
function interpolation. European Conference on Computational Fluid
Dynamics, ECCOMAS CFD 2006.
[6] Interpolação bilinear. Disponível em http://en.wikipedia.org/wiki/Bilinear_interpolation
[7] Biblioteca para
processamento de imagens CImg. Disponível em http://cimg.sourceforge.net/reference