t ecnicas de vis~ao aplicadas a navegac ~ao em rob otica m ovel

Transcrição

t ecnicas de vis~ao aplicadas a navegac ~ao em rob otica m ovel
Universidade de Coimbra
Faculdade de Ci^encias e Tecnologia
Departamento de Engenharia Electrotecnica
~ APLICADAS A
TECNICAS DE VISAO
~ EM ROBOTICA
NAVEGACAO
MOVEL
Tese de Mestrado
Inacio de Sousa Adelino da Fonseca
Licenciado em Engenharia Electrotecnica
Coimbra
Marco de 1998
ii
Dissertac~ao
submetida ao Departamento de Engenharia Electrotecnica
da Universidade de Coimbra
satisfazendo parcialmente os requisitos
para a obtenc~ao do grau de
mestre
iii
iv
Trabalho desenvolvido sob orientaca~o do Dr. Jorge Manuel Miranda Dias - professor
Auxiliar do Departamento de Engenharia Electrotecnica da Universidade de Coimbra
v
vi
Agradecimentos
Desejo dar os meus agradecimentos:
Dr. Jorge Dias, que me disponibilizou o seu apoio, orientac~ao, e o material necessario
para efectuar este trabalho.
Eng. Paulo Peixoto pelo apoio e discuss~ao sobre o problema da determinac~ao do
uxo optico, e ajudas sobre o sistema FreeBSD.
Eng. Paulo Menezes, pela sua ajuda com alguns problemas de instalaca~o do FreeBSD.
a todo o pessoal do ISR, em especial ao Eng. Jorge Batista.
Eng. Lus Almeida, pelo seu apoio e interesse, e pela sua ajuda nos problemas de
hardware que foram aparecendo.
a todo o pessoal do laboratorio, por partilharem muitas horas de trabalho.
Eng. Rui Cortes~ao, pelo seu apoio e amizade ao longo deste tempo. E pela sua
ajuda na teoria de ltros de Kalman, LATEX, FreeBSD.
ao ISEC, onde eu trabalho, que me deu o suporte nanceiro para efectuar esta tese.
ao PRODEP, que me nanciou de 20 Dezembro de 1995 a 20 de Setembro de 1996.
ao meu amigo Lus Marques e esposa, por aqueles pequenos detalhes.
ao meu amigo Emlio, esposa e a pequena lhota In^es.
vii
a Fatima, Susana, Cristina, Nuno Cid, Pedro, ...
a todos os meus amigos, e a minha famlia.
viii
Resumo
O desenvolvimento de sistemas roboticos de elevada exibilidade esta fortemente dependente do estado de desenvolvimento dos sistemas sensoriais. Actualmente esta a ser efectuado um grande esforco de investigac~ao para que os sistemas roboticos sejam autonomos
a nvel das decis~oes de alto nvel a executar. No campo dos sistemas sensoriais, a vis~ao por
computador assume papel preponderante, pois permite melhorar a autonomia do sistema
tal como se prova pelos resultados experimentais apresentados neste trabalho.
Nesta tese, pretende-se apenas estudar o problema da navegaca~o com um robot movel,
utilizando vis~ao.
O problema da navegaca~o pode ser estudado de diferentes perspectivas. Uma passa
pelo reconhecimento de pontos de refer^encia (\landmarks"), que denem locais a atingir
ou a evitar. Eventualmente, estes pontos de refer^encia podem ajudar a localizac~ao do
robot num mapa que represente o meio ambiente. Outra das perspectivas, passa pela
utilizac~ao de informaca~o din^amica, i.e., utilizaca~o de medidas da velocidade em imagens.
Neste trabalho optou-se pela segunda alternativa, baseando o processo de navegac~ao
no controlo das velocidades de rotaca~o e translaca~o do veculo, usando a informac~ao
visual. As soluc~oes apresentadas s~ao baseadas no uxo optico medido em duas c^amaras,
e a diferenca entre ambos os uxos medidos permite controlar a atitude do robot movel.
O objectivo principal e a obtenca~o de algoritmos que possam ser realizados em programas
de computador mas cujo tempo de execuc~ao seja pequeno, e podendo ser utilizado na
malha de controlo de um sistema de controlo. Para obter um processo ainda mais rapido,
s~ao utilizadas imagens log-polar, onde e calculado o uxo optico.
Uma das vantagens da utilizac~ao de imagens log-polar e a facilidade da detecc~ao de
campos de velocidades divergentes, cujo modulo e directamente proporcional ao raio meix
dido relativamente ao centro da imagem. O metodo de navegac~ao descrito neste trabalho
explora uma tecnica de calculo de uxo optico, baseado num esquema multi-resoluca~o,
de modo a obter um campo de uxo de vectores velocidade com coer^encia local. S~ao
apresentados os resultados obtidos atraves de algoritmos baseados na restric~ao do brilho
(\brightness constraint") e no modelo de velocidade am, ambos aplicados a imagens
log-polar. Os algoritmos de detecca~o de uxo optico geram o sinal de erro que permite
controlar a trajectoria de um robot movel dispondo de um sistema de vis~ao activa, e que
ja foi utilizado em outros trabalhos [J. Dias e C. Paredes 95] e [J. Dias e C. Paredes 96].
Outro dos assuntos abordados neste trabalho, ainda no campo da navegac~ao, passa
pela detecc~ao da posic~ao do foco de expans~ao FOE (\Focus of Expansion"), o que permite
explorar a possibilidade de controlar a posic~ao do sensor visual segundo uma direcc~ao de
translac~ao preferida (\Navigation by prefered direction"). Esta tecnica de alinhamento
do sensor permite recuperar de uma forma mais ecaz, a informaca~o visual sobre o meio
ambiente [Alberto Elfes 95]. Note-se que tipicamente, no caso das pessoas, os olhos
mant^em-se alinhados com a direcc~ao do seu movimento, e neste caso esta tecnica simula
este comportamento.
x
Conteudo
v
Agradecimentos
vii
Resumo
ix
1 Introduc~ao
1
1.1 O enquadramento do trabalho . . . . . . . . . . . . . . . . . . . . . . .
1.1.1 Navegac~ao baseada em uxo optico normal . . . . . . . . . . . .
1.1.2 Medida de desempenho de algoritmos de calculo de uxo optico
1.1.3 Transformac~ao Log-polar . . . . . . . . . . . . . . . . . . . . . .
1.1.4 Detecc~ao do foco de expans~ao - FOE . . . . . . . . . . . . . . .
1.1.5 Detecc~ao de obstaculos e tempo ate colis~ao . . . . . . . . . . . .
1.2 A estrutura da tese . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 Transformac~ao Log-polar
2.1 Perspectiva geometrica . . . . . . . . . . . . . . . . .
2.2 Transformac~ao Log-Polar . . . . . . . . . . . . . . . .
2.2.1 Transformac~oes Conformais . . . . . . . . . .
2.2.2 Transformac~ao Log-Polar generica . . . . . . .
2.2.3 Uma transformac~ao Log-polar mais elaborada
2.2.4 A transformaca~o log-polar discreta . . . . . .
2.3 Retina din^amica (ou transformaca~o log-polar
din^amica) . . . . . . . . . . . . . . . . . . . . . . . .
xi
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
2
3
5
6
7
8
9
11
11
12
12
15
16
19
. . . . . . . . . . . . 21
2.4 Campo de movimento induzido numa c^amara . . . .
2.5 Algumas propriedades da transformaca~o Log-Polar .
2.5.1 Campo de movimento no plano Log-polar . .
2.6 O efeito de sub-amostragem produzido pelo log-polar
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Detecc~ao de Movimento nas Imagens
3.1 Campo de movimento induzido numa c^amara por uma superfcie planar . .
3.2 Calculo do uxo optico . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Filtragem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.2 Metodos que utilizam o gradiente . . . . . . . . . . . . . . . . . . .
3.2.3 Algoritmo de uxo optico normal . . . . . . . . . . . . . . . . . . .
3.2.4 Algoritmo de uxo optico usando o modelo am . . . . . . . . . . .
3.2.5 Algoritmo de uxo optico de Horn e Schunck Revisto . . . . . . . .
3.2.6 Calculo de uxo optico usando correlaca~o . . . . . . . . . . . . . . .
3.2.7 Resultados experimentais com imagens sinteticas . . . . . . . . . .
3.2.8 Medida do desempenho de algoritmos de calculo de uxo optico
em imagens log-polar e cartesianas . . . . . . . . . . . . . . . . . .
4 Determinac~ao de Par^ametros do Movimento
4.1 Introduc~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Estimac~ao do foco de expans~ao . . . . . . . . . . . . . . . . . . .
4.2.1 Equac~oes de velocidade expressas em coordenadas polares
4.2.2 Detecc~ao da direcca~o do foco de expans~ao . . . . . . . . .
4.2.3 Detecc~ao da posica~o do foco de expans~ao . . . . . . . . . .
4.2.4 Resultados de simulaca~o . . . . . . . . . . . . . . . . . . .
4.2.5 Resultados com o sistema experimental . . . . . . . . . . .
4.2.6 Principais conclus~oes sobre a detecca~o do foco de expans~ao
4.3 Controlo do alinhamento de uma c^amara . . . . . . . . . . . . . .
5 Navegac~ao utilizando vis~ao articial
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
25
26
29
33
34
35
38
38
40
44
48
49
51
56
65
66
68
70
73
73
77
78
78
85
93
5.1 Introduc~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.2 Motivac~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
xii
5.2.1 Sensores de imagens esfericos . . . . . . . . . . . . . . .
5.2.2 Caso especial da utilizaca~o de um sistema de vis~ao activa
5.3 Navegac~ao com duas c^amaras . . . . . . . . . . . . . . . . . . .
5.4 Navegac~ao com duas c^amaras e espelhos . . . . . . . . . . . . .
5.4.1 Espelhos como simuladores de varias c^amaras . . . . . .
5.5 Resultados Simulados e Experimentais . . . . . . . . . . . . . .
5.5.1 Resultados simulados . . . . . . . . . . . . . . . . . . . .
5.5.2 Resultados experimentais . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
95
102
109
112
112
117
117
120
6 Conclus~oes e trabalho Futuro
127
A Denico~es e convenc~oes
131
B O Sistema do Robot Movel
133
C Cinematica dos sistemas autonomos utilizados
137
6.1 Conclus~oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
6.2 Trabalho futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
C.1 Introduc~ao . . . . . . . . . . . . . . . . .
C.1.1 Transformac~oes entre referenciais
C.1.2 Relac~oes de velocidade . . . . . .
C.2 Cinematica (directa e inversa) . . . . . .
C.2.1 Caso do sistema de vis~ao activa .
C.2.2 Caso dos Pan & Tilt . . . . . . .
C.3 Matrizes \skew symmetric" . . . . . . .
C.4 A inu^encia da velocidade angular . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
137
138
139
142
142
146
150
153
D Pormenores da realizac~ao pratica
155
E Filtros - e - -
163
E.1 Introduc~ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
E.2 Filtro - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
E.2.1 Filtro - - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
xiii
Bibliograa
167
xiv
Lista de Tabelas
2.1 Passos necessarios para estudar os par^ametros dos ltros necessarios a ltragem das imagens, antes da transformac~ao log-polar. . . . . . . . . . . . 31
3.1
3.2
3.3
3.4
3.5
Resultados para a sequ^encia \Translating Tree" usando imagens Log-Polar
Resultados para a sequ^encia \Translating Tree" usando imagens cartesianas
Resultados para a sequ^encia \Diverging Tree" usando imagens Log-Polar .
Resultados para a sequ^encia \Diverging Tree" usando imagens cartesianas
Resultados da estimac~ao do uxo optico usando imagens log-polar para
as sequ^encias de translac~ao e divergente, usando tecnicas descritas em
[J. Barron e D. Fleet 94] . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.6 Aplicac~ao do metodo de Fleet a sequ^encia divergente e de translaca~o da
arvore, usando diferentes bases para a transformac~ao log-polar (mantendo
a mesma resoluca~o angular) . . . . . . . . . . . . . . . . . . . . . . . . . .
57
58
59
60
62
63
B.1 Par^ametros para controlar a velocidade da plataforma movel . . . . . . . . 133
xv
Captulo 1
Introduc~ao
O desenvolvimento de sistemas roboticos de elevada exibilidade esta fortemente dependente do estado de desenvolvimento dos sistemas sensoriais. Actualmente esta a ser efectuado um grande esforco de investigac~ao para que os sistemas roboticos sejam autonomos
a nvel das decis~oes de alto nvel a executar. No campo dos sistemas sensoriais, a vis~ao por
computador assume papel preponderante, pois permite melhorar a autonomia do sistema
tal como se prova pelos resultados experimentais apresentados neste trabalho.
Nesta tese, pretende-se apenas estudar o problema da navegaca~o com um robot movel,
utilizando vis~ao.
O problema da navegaca~o pode ser estudado de diferentes perspectivas. Uma passa
pelo reconhecimento de pontos de refer^encia (\landmarks"), que denem locais a atingir
ou a evitar. Eventualmente, estes pontos de refer^encia podem ajudar a localizac~ao do
robot num mapa que represente o meio ambiente. Outra das perspectivas, passa pela
utilizac~ao de informaca~o din^amica, i.e., utilizaca~o de medidas da velocidade em imagens.
Neste trabalho optou-se pela segunda alternativa, baseando o processo de navegac~ao
no controlo das velocidades de rotaca~o e translaca~o do veculo, usando a informac~ao
visual. As soluc~oes apresentadas s~ao baseadas no uxo optico medido em duas c^amaras,
e a diferenca entre ambos os uxos medidos permite controlar a atitude do robot movel.
O objectivo principal e a obtenca~o de algoritmos que possam ser realizados em programas
de computador mas cujo tempo de execuc~ao seja pequeno, e podendo ser utilizado na
malha de controlo de um sistema de controlo. Para obter um processo ainda mais rapido,
1
2
~
CAPITULO 1. INTRODUCAO
s~ao utilizadas imagens log-polar, onde e calculado o uxo optico.
Uma das vantagens da utilizac~ao de imagens log-polar e a facilidade da detecca~o de
campos de velocidades divergentes, cujo modulo e directamente proporcional ao raio medido relativamente ao centro da imagem. O metodo de navegac~ao descrito neste trabalho
explora uma tecnica de calculo de uxo optico, baseado num esquema multi-resoluca~o,
de modo a obter um campo de uxo de vectores velocidade com coer^encia local. S~ao
apresentados os resultados obtidos atraves de algoritmos baseados na restric~ao do brilho
(\brightness constraint") e no modelo de velocidade am, ambos aplicados a imagens
log-polar. Os algoritmos de detecca~o de uxo optico geram o sinal de erro que permite
controlar a trajectoria de um robot movel dispondo de um sistema de vis~ao activa, e que
ja foi utilizado em outros trabalhos [J. Dias e C. Paredes 95] e [J. Dias e C. Paredes 96].
Outro dos assuntos abordados neste trabalho, ainda no campo da navegac~ao, passa
pela detecc~ao da posica~o do foco de expans~ao FOE (\Focus of Expansion"), o que permite
explorar a possibilidade de controlar a posic~ao do sensor visual segundo uma direcc~ao de
translac~ao preferida (\Navigation by prefered direction"). Esta tecnica de alinhamento
do sensor permite recuperar de uma forma mais ecaz, a informaca~o visual sobre o meio
ambiente [Alberto Elfes 95]. Note-se que tipicamente, no caso das pessoas, os olhos
mant^em-se alinhados com a direcc~ao do seu movimento, e neste caso esta tecnica simula
este comportamento.
1.1 O enquadramento do trabalho
Nesta secc~ao sera dada uma breve panor^amica de algumas aplicac~oes da vis~ao na navegaca~o de \robots" e o enquadramento deste trabalho neste domnio de aplicaca~o. Concretamente, ser~ao referenciados trabalhos que utilizam a informac~ao visual como sinal de
erro no controlo do processo de navegaca~o, tecnicas de detecca~o de uxo optico e seu
desempenho, transformac~oes log-polar, e a detecc~ao do foco de expans~ao normalmente
designado por FOE .
1.1. O ENQUADRAMENTO DO TRABALHO
3
1.1.1 Navegac~ao baseada em uxo optico normal
O uxo optico normal e uma tecnica de estimac~ao de movimento nas imagens, de tal modo
que Cornelia Fermuller e Yiannis Aloimonos [C. Fermuller e Y. Aloimonos 92] usaram-na
para estimar movimentos 3-D e inferir da posic~ao do FOE de modo a efectuar acco~es
de seguimento (\tracking"). No nosso caso utilizamos uxo am de modo a detectar a
posic~ao do FOE para estimar a direcc~ao preferida de posicionamento do sensor visual.
V. Sundareswaran e P. Bouthemy [V. Sundareswaran e P. Bouthemy 94] apresentaram duas tecnicas de alinhamento do eixo optico de uma c^amara, utilizando para isso
informac~ao visual. Uma das tecnicas usa o foco de expans~ao e a outra incorpora os
par^ametros do modelo am nas equaco~es de controlo. As tecnicas permitem alinhar o
eixo optico com sucesso, sem conhecimento previo do movimento efectuado pelo sistema
onde a c^amara se encontra. No nosso caso a tecnica de alinhamento do sensor visual
utiliza tambem a posic~ao do FOE na imagem para inferir um melhor posicionamento
do sensor visual, no entanto a nossa tecnica de estimac~ao do FOE e diferente da descrita neste artigo, e apresenta resultados promissores na presenca de algumas restric~oes ao
movimento do sensor visual.
David Coombs e outros [D. Coombs e H. Herman 95] descrevem um processo de detecc~ao de obstaculos em tempo real baseado em uxo optico divergente e periferico, calculado atraves do uxo optico normal. Neste trabalho o uxo optico periferico foi usado
para controlar a atitude do veculo relativamente as paredes de um corredor, e o uxo
optico divergente para estimar o tempo ate impacto, no caso de um obstaculo. No artigo
os autores relatam experi^encias, com o robot a uma velocidade nominal de 30cm/s, efectuando trajectorias durante 20 minutos sem colidir com obstaculos. No nosso trabalho
explora-se a forma de controlar a atitude do veculo atraves do uxo optico medido em
imagens log-polar, apresentando resultados praticos pouco satisfatorios na presenca de
movimentos de rotac~ao.
O calculo do uxo optico usando apenas a restric~ao do brilho, conduz normalmente a
algoritmos cujas soluc~oes podem ser instaveis, uma vez que esta restrica~o por si so, n~ao
verica a coer^encia local do movimento. Soluc~oes mais estaveis podem ser obtidas atraves
de algum processo que controle localmente os valores obtidos para o uxo optico.
4
~
CAPITULO 1. INTRODUCAO
Um exemplo da aplicac~ao destas tecnicas e apresentado no trabalho efectuado por
Peter Nordlund e Tomas Uhlin [P. Nordlund e T. Uhlin 95]. Nesse trabalho e apresentado um algoritmo baseado em uxo optico que permite estimar e seguir um objecto em
movimento. O sistema construdo e capaz de manter o objecto no centro da imagem
atraves do controlo de um sistema de vis~ao activa. O metodo de detecca~o de movimento
utiliza um algoritmo baseado no modelo am para a velocidade projectada na imagem.
No calculo do movimento, a imagem e previamente estabilizada. No nosso caso n~ao utilizamos vis~ao activa, uma vez que o processo seria demasiado complicado de estabilizar,
devido a diculdade acrescida da utilizac~ao do movimento do robot movel, i.e., seria neste
caso bastante difcil anular o uxo induzido devido aos movimentos do robot movel.
Um exemplo de navegac~ao tambem com alguma relev^ancia, foi apresentado pelos autores [Ricardo e Michel 91], onde foram implementadas as seguintes tarefas: seguir uma
parede, chegar perto dum objecto, virar numa esquina, etc. Nesta abordagem, e utilizado
uxo optico, extracc~ao de contornos de objectos, etc, e o campo potencial para realizar o
controlo do veculo.
Neste momento, interessa referir que para alem da abordagem proposta nesta tese,
existem outras diferentes, que pretendem resolver o mesmo problema da navegac~ao local
atraves do uso de \landmarks". Tais exemplos podem ser consultados nos trabalhos dos
autores [Davison e Murray 95] e [Davison e Murray 97].
No controlo moderno, os algoritmos de controlo s~ao implementados em computadores digitais, o que implica sempre uma amostragem de entidades analogicas. A teoria
de sistemas de eventos discretos (\Discrete Event System"), que permite representar um
sistema e a sua din^amica com um automato nito n~ao determinstico apresenta uma
alternativa a outros metodos de controlo discreto. Um desses exemplos e descrito em
[Luca Bogoni e Ruzena Bajcsy 94], onde s~ao apresentadas metodologias para investigar a
funcionalidade em tarefas de manipulaca~o de objectos. A descric~ao da funcionalidade da
tarefa e feita atraves da teoria dos sistemas de eventos discretos, permitindo descrever
varias tarefas a implementar, sendo a sua transic~ao assegurada pelo \automato discreto". No nosso caso optamos por um controlo deste genero atraves da especicaca~o de
um automato discreto com varios estados que permite denir em concreto o controlo a
efectuar, na presenca de determinadas entradas do sistema.
1.1. O ENQUADRAMENTO DO TRABALHO
5
Jose Santos Victor e G. Sandini [J. Santos-Victor e G. Sandini 95] prop~oem uma tecnica
de uxo optico divergente para efectuar navegaca~o. Neste trabalho, o robot encontra-se
equipado com duas c^amaras montadas lateralmente e o controlo da atitude do robot e
efectuado com base no sinal de erro obtido pela comparaca~o dos uxos obtidos em cada
c^amara. O trabalho inspira-se em estudos efectuados sobre insectos voadores que "adoptam" um esquema semelhante de navegaca~o.
1.1.2 Medida de desempenho de algoritmos de calculo de uxo
optico
E importante conhecer o desempenho das tecnicas de calculo de uxo optico, na medida em
que esse conhecimento facilita a escolha do algoritmo a utilizar. Devido ao uxo optico ser
por natureza uma medida com rudo, convem de certa forma saber ate que ponto pode ser
ou n~ao viavel a sua utilizaca~o em algoritmos de controlo. Nesta ordem de ideias optamos
por realizar um estudo do seu comportamento tanto em imagens cartesianas como em
imagens log-polar.
Na literatura, ja existiam alguns trabalhos nesta area, tais como os apresentados por
J.L. Barron e outros [J. Barron e D. Fleet 94] que testaram diferentes tecnicas de uxo optico, usando sequ^encias de imagens sinteticas e reais, relatando diferentes medidas comparativas. As tecnicas de uxo optico testadas, baseiam-se em metodos diferenciais, metodos de correspond^encia de regi~oes, metodos de detecca~o de energia e fase.
Os metodos baseados em equac~oes diferenciais de primeira ordem testados foram: Horn
and Schunck [Horn e Schunck 81] e Lucas and Kanade [B. Lucas e T. Kanade 81]. Os
metodos testados, que utilizam tecnicas baseadas em equac~oes diferenciais de segunda
ordem foram: Nagel [H.H. Nagel 83, H.H. Nagel 87] e Uras, Girosi, Verri, and Torre [S. Uras e F. Girosi 88]. As outras tecnicas testadas foram: Anandan, Heeger, Waxman, Wu, and Bergholm e Fleet and Jepson (ver [J. Barron e D. Fleet 94] para mais
refer^encias). No nosso caso utilizamos as denic~oes apresentadas neste artigo, para estender a sua aplicaca~o a imagens log-polar, podendo assim analisar-se o desempenho dos
algoritmos que utilizem uxo optico medido neste tipo de imagens. Os resultados demonstram que o uxo optico e na realidade uma medida bastante ruidosa quer em imagens
6
~
CAPITULO 1. INTRODUCAO
cartesianas quer em imagens log-polar. No entanto chegamos a conclus~ao que em imagens
log-polar esses erros podem ser atenuados atraves de uma boa especicaca~o, como por
exemplo, saber qual o tipo de uxo que se pretende medir, e atraves deste conhecimento
escolher de uma forma correcta os par^ametros da amostragem log-polar.
1.1.3 Transformac~ao Log-polar
Inspirados no homem, bem como em outros mamferos, muitos investigadores recorrem a
vis~ao articial como uma forma potencial de apreender o meio ambiente, uma vez que a
informac~ao presente em imagens digitais e muito rica. No entanto para se levar a cabo
determinadas tarefas, muita dessa informac~ao e superua, e de modo a se eliminar esses
dados muitas das vezes recorre-se a determinadas tecnicas. Pode-se salientar de entre
muitas, por exemplo a diminuic~ao da resoluca~o das imagens (pir^amides de imagens), bem
como a transformaca~o log-polar. Qualquer destas duas permite reduzir de certa forma o
numero de dados a processar.
Nesta ordem de ideias, nos optamos neste trabalho por estudar as propriedades da
transformaca~o log-polar para permitir suprimir alguma da informac~ao que poderia n~ao
ter grande inu^encia para o m em vista.
De entre muitos autores que estudaram este tipo de transformac~ao salientamos os que
se seguem, por ser aqueles que a nosso ver apresentam maior relev^ancia.
Carl F. R. Weiman [Carl Weiman 94], apresentaram experi^encias em tempo real, onde
usaram um sistema baseado em vis~ao activa binocular. Para efectuar o processamento
da imagem utilizaram ltros de Gabor aplicados a imagens log-polar. Este documento e
uma excelente refer^encia sobre tecnicas de transformac~ao log-polar.
G. Sandini, C.Capurro, F.Panerai [G. Sandini e C. Capurro 95], usaram imagens logpolar para controlar activamente um sistema equipado com sensores visuais. As soluc~oes apresentadas usam medidas de correlac~ao, que servem para controlar os a^ngulos de
verg^encia das c^amaras.
No nosso caso pretendemos medir o uxo optico, mas atraves da utilizac~ao da transformaca~o log-polar a imagens cartesianas, para permitir uma maior velocidade de processamento.
1.1. O ENQUADRAMENTO DO TRABALHO
7
1.1.4 Detecc~ao do foco de expans~ao - F OE
Em navegac~ao atraves de vis~ao, o conhecimento do par^ametro FOE , pode ser utilizado
para determinar e controlar o nosso proprio movimento no espaco. Esta detecca~o e importante, porque assim e possvel estimar alguns dos par^ametros de velocidade da c^amara.
Outra possibilidade e a utilizac~ao do conhecimento da posica~o do FOE para alinhar o
sensor visual com o vector de velocidade de translaca~o, optimizando assim a capacidade
de detecc~ao de fenomenos transitorios na frente da c^amara.
M. Tistarelli, E. Grosso and G. Sandini [M. Tistarelli e E. Grosso 90], apresentaram
um metodo para determinar a posica~o do FOE usando uma tecnica de mnimos quadrados
para determinar a intercepca~o das rectas obtidas da elongac~ao dos vectores de uxo optico.
Neste trabalho n~ao foram apresentados resultados experimentais.
Rami Guissin, Shimon Ullman [R. Guissin e S. Ullman 91], apresentaram um metodo
para determinar a posic~ao do FOE onde e utilizada uma tecnica de procura directa no
campo de uxo optico obtido das imagens. O metodo utiliza uma tecnica de procura 1D
para seleccionar a direcc~ao da recta que passa pelo centro da imagem e pelo FOE . E
possvel utilizar o algoritmo para movimentos com/sem restrico~es da c^amara. No caso de
movimentos sem restric~oes e necessario des-rotacionar o campo de velocidades de modo a
cancelar a velocidade observada no centro da imagem. Esta tecnica aparentemente obtem
boas performances para casos simulados.
Michal Irani, Benny Rousso e Shmuel Peleg [M. Irani e B. Rousso 94], apresentaram
um metodo para determinar a posic~ao do FOE que se baseia no calculo do movimento
efectuado por uma regi~ao da imagem. O movimento calculado nessa regi~ao e ent~ao usado
para anular o uxo de rotac~ao da imagem, de tal forma que as regi~oes detectadas aparecem
ent~ao como estacionarias. As imagens obtidas, teoricamente, est~ao apenas afectadas de
movimentos de translaca~o. O metodo usado utiliza algoritmos baseados em modelos de
velocidade am, e n~ao existe a partida, conhecimento do movimento efectuado.
Yiannis Aloimonos e Zoran Duric [Y. Aloimonos e Z. Duric 94], apresentaram um
metodo para determinar o FOE utilizando uxo optico normal para restringir a translac~ao
do observador. Para resolver o problema das rotac~oes, foi apresentado neste artigo uma
vers~ao modicada do algoritmo apresentado por Horn and Weldon, 1987.
8
~
CAPITULO 1. INTRODUCAO
No nosso caso a detecc~ao do FOE e feita atraves do uxo am, utilizando um metodo
de pesquisa no campo de uxo optico. N~ao foi resolvido o problema das rotac~oes na
totalidade, uma vez que o algoritmo funciona sobre o efeito duma restrica~o, que no nosso
caso e vericada devido ao modo de locomoc~ao do robot movel.
1.1.5 Detecc~ao de obstaculos e tempo ate colis~ao
No nosso trabalho n~ao abordamos este tema, no entanto ca em aberto uma futura implementac~ao de algoritmos que permitam detectar obstaculos e o tempo ate colis~ao atraves
de informac~ao visual. No entanto estes dois conceitos t^em a nosso ver alguma relev^ancia
no desenvolvimento de tarefa de navegaca~o, pelo que optamos por descrever brevemente
alguns dos trabalhos ja realizados, para uma maior informaca~o do leitor.
Massimo Tistarelli e Giulio Sandini [M. Tistarelli e G. Sandini 93], apresentaram um
artigo onde estimam o tempo ate impacto utilizando imagens log-polar. No entanto esta
tecnica apresenta alguma instabilidade devido ao rudo introduzido no calculo do uxo
optico, que advem do uso de uma tecnica diferencial de segunda ordem.
Nicola Ancona e Tomaso Poggio [N. Ancona e T. Poggio 93], usaram um esquema
baseado em uxo optico para detectar a expans~ao e rotac~ao entre imagens, de modo a
obter assim uma estimativa do tempo ate colis~ao. O metodo foi utilizado em imagens
reais com sucesso.
Thomas Cord e Dirk Pallmer [T. Cord e D. Pallmer 94], apresentaram um metodo
para estimac~ao da profundidade que requer um movimento controlado da c^amara ao longo
do seu eixo optico. As sequ^encias de imagens s~ao analisadas de modo a calcular os vectores
translac~ao de pontos caractersticos.
P. Fornland [P. Fornland 95], apresentou um metodo de detecca~o de obstaculos no
qual a c^amara movimenta-se paralelamente ao ch~ao. Os par^ametros da c^amara est~ao
linearmente relacionados com as derivadas de primeira ordem da sequ^encia de imagens.
O movimento e estimado atraves do metodo RANSAC [Roth, Gerhard e Levine 92].
1.2. A ESTRUTURA DA TESE
9
1.2 A estrutura da tese
A presente dissertac~ao e composta por seis captulos, incluindo este, onde e descrito o
trabalho efectuado, bem como o conteudo dos captulos que se seguem.
No captulo 2, s~ao apresentados os modelos de projecca~o utilizados para representar
as c^amaras, e as tecnicas de transformac~ao log-polar. Sera efectuada uma descric~ao das
propriedades do log-polar, bem como a relac~ao entre as coordenadas utilizadas. Este
captulo introduz os fundamentos necessarios a compreens~ao do trabalho apresentado nos
captulos que se seguem.
No captulo 3, s~ao descritos os algoritmos de detecca~o de movimento, especialmente aqueles que se baseiam em modelos de gradiente. E introduzido neste captulo um
algoritmo baseado no uxo optico normal, atraves da introduca~o de um pre- e pos- processamento e dum sistema de votac~ao que melhora os resultados obtidos atraves do algoritmo de uxo optico normal. S~ao tambem apresentados os algoritmos de Horn e Schunck
[Horn e Schunck 81], os algoritmos baseados no modelo am e um algoritmo de calculo
de uxo optico baseado em tecnicas de correlaca~o cujos resultados s~ao mais robustos, mas
cujo processo em si e mais lento. Neste captulo e tambem introduzido o modelo am
para o plano log-polar. De seguida, e efectuado um estudo do desempenho de alguns algoritmos de calculo de uxo optico no plano log-polar e cartesiano. As medidas efectuadas
s~ao id^enticas as utilizadas por J.L. Barron e outros [J. Barron e D. Fleet 94].
No captulo 4 e apresentado um metodo para determinar alguns par^ametros do
movimento, tal como a detecc~ao da posica~o do FOE , que permite identicar a direcc~ao
de translac~ao do sensor visual.
Finalmente com base na detecc~ao da posic~ao do FOE e apresentado um metodo para
efectuar um processo de alinhamento e estabilizaca~o duma c^amara montada num robot
movel em movimento puramente translacional - detecc~ao da direcc~ao preferida -.
10
~
CAPITULO 1. INTRODUCAO
No captulo 5, e dado particular ^enfase a implementac~ao/construc~ao de algoritmos de
navegac~ao, a din^amica do sistema, e ao uso do uxo optico como medida para calculo do
erro usado para controlo da din^amica do sistema. E tambem aqui discutida a realizaca~o
da aplicac~ao em tempo real.
Finalmente, no captulo 6 ser~ao apresentadas as conclus~oes deste trabalho.
Captulo 2
Transformac~ao Log-polar
Neste captulo, descreve-se a forma de aplicar a transformaca~o log-polar a imagens contnuas
e discretas, fornecendo assim os fundamentos necessarios para uma correcta compreens~ao
do trabalho que e apresentado nos restantes captulos.
2.1 Perspectiva geometrica
Neste modelo a imagem obtida pelas c^amaras e representada pelo plano I e o ponto de
perspectiva central pelo ponto O (ver gura 2.1). Por denic~ao, a projecca~o de um ponto
3D P (X; Y; Z ) no plano I, e expressa matematicamente por:
u = fx XZ
v = fy YZ
(2.1)
onde fx e fy correspondem a dist^ancia focal afectada do factor de escala horizontal e
vertical. As imagens representadas na g. 2.2 s~ao exemplos de imagens geradas por
alguns modelos de perspectiva e correspondentes a variantes do modelo expresso pelas
equac~oes ( 2.1).
11
12
~ LOG-POLAR
CAPITULO 2. TRANSFORMACAO
2.2 Transformac~ao Log-Polar
Os sistemas de vis~ao baseados em imagens com resoluc~ao espacial homogeneas, t^em diculdades em fornecer respostas em tempo real, quando se encontram na presenca de
um meio ambiente mutavel. A realizac~ao de um sistema visual com um comportamento
reactivo, necessita de alguma selectividade espacial nas imagens. Esta selectividade pode
ser obtida atraves duma amostragem espacialmente variavel. Nessa situac~ao, a imagem
e \separada" numa zona central de grande informac~ao espacial - a fovea - e numa zona
cuja resoluc~ao espacial decresce a medida que o raio ao centro aumenta. O modelo mais
convincente, para este tipo de comportamento, e a transformac~ao log-polar.
Basicamente, um modelo deste genero pode ser obtido atraves duma transformaca~o
que transforma os pontos medidos relativamente ao centro da imagem cartesiana, de uma
forma proporcional a sua dist^ancia a esse centro, e tambem proporcional a resoluca~o
angular medida relativamente a um eixo. Esta transformac~ao na sua forma mais simples
resume-se a uma transformac~ao entre coordenadas cartesianas para coordenadas polares,
seguida da aplicac~ao da func~ao logaritmo a coordenada radial ( 2 <+, 2 [0; 2[,
a; b > 1). Este tipo de transformac~ao reduz signicativamente, a quantidade de dados
a tratar, e pode desta forma ser um meio de gerar sinais de \feedback" visuais, que
possam ser usados em navegac~ao (ver o Anexo A para as notac~oes utilizadas nas secc~oes
seguintes).
2.2.1 Transformac~oes Conformais
Muitos dos problemas de engenharia, podem ser tratados e resolvidos atraves de
metodos de analise complexa. A transformaca~o conformal insere-se neste domnio da
matematica e e um metodo bastante utilizado na engenharia em geral para resolver problemas da teoria de potencial em duas dimens~oes, pois permite simplicar as resoluc~oes.
Segundo as denico~es de [Erwin Kreyszig 79], uma transformac~ao diz-se conformal
ou que preserva ^angulos, se esta mantiver o valor dos a^ngulos entre curvas orientadas,
quer em valor, quer em direcc~ao, isto e, as imagens de duas quaisquer curvas orientadas que se intersectem num ponto, mant^em a mesma relac~ao geometrica angular apos a
~ LOG-POLAR
2.2. TRANSFORMACAO
13
[CAM]
P
p
f
O
Z
0
u
X
v
I
Y
Figura 2.1: Modelo de perspectiva geometrica
Figura 2.2: Imagens sinteticas geradas por (da esquerda para a direita): modelo
geometrico, modelo ortograco, modelo semi-esferico. As respectivas equaco~es do modelo s~ao dadas por: u = X:Su , v = Y:Sv para o modelo ortograco e por u = XS :Su ,
v = YS :Sv para o modelo semi-esferico, onde Xs = X p(X +Yr +Z ) , Ys = Y p(X +Yr +Z ) e
Zs = Z p(X +Yr +Z ) , sendo r o raio da esfera.
2
2
2
2
2
2
2
2
2
~ LOG-POLAR
CAPITULO 2. TRANSFORMACAO
14
transformac~ao.
Esta transformac~ao contem propriedades interessantes para o domnio deste trabalho,
na medida em que nos permite vericar que tipo de informac~ao pode ser preservada pela
transformac~ao, e que se expressa pelos seguintes teoremas:
Teorema 2.1 Se uma funca~o complexa ! = f (z) = u(x; y) + i:v(x; y) onde z = x + i:y
esta denida num domnio D do plano complexo Z , ent~ao para cada ponto de D existe um
ponto correspondente no plano W . Desta forma, existe uma transformac~ao do plano Z
para o plano W . A func~ao f (z ) dene uma transformac~ao conformal, excepto nos pontos
onde f 0(z ) e zero, se e se so f (z ) e uma func~ao analtica.
Teorema 2.2 A func~ao f (z) = u(x; y)+i:v(x; y) onde z = x+i:y e analtica num domnio
D, se as func~oes u(x; y) e v(x; y) de variaveis reais x e y tiverem derivadas continuas de
primeira ordem, que satisfacam as equac~oes de Cauchy-Riemann num domnio D, isto e,
@u
@x
= @v
@y e
@u
@y
@v
= , @x
(2.2)
ou se a funca~o estiver expressa em coordenadas polares, z = ei , e f (z ) = u(; ) +
i:v(; ), ent~ao as equaco~es de Cauchy-Riemann ser~ao dadas por:
@u
@
1 @u @v
= 1 @v
@ e , @ = @
(2.3)
A demonstrac~ao destes teoremas sai do domnio deste tese, mas podera ser consultada
em [Erwin Kreyszig 79].
Um exemplo de transformaca~o muito utilizada em vis~ao por computador (transformac~oes 2D para 2D) corresponde a transformaca~o log-polar. A transformac~ao log-polar
utilizada no desenvolvimento desta tese, pela forma como foi denida n~ao apresenta a
propriedade de transformac~ao conformal, mas este facto n~ao e muito preocupante, porque n~ao se pretende medir ^angulos entre objectos. A sua denica~o pode ser dada como
(! = + i):
z = x + iy = f ,1(!) = a :cos() + i:a :sin():
(2.4)
e na proxima secc~ao abordaremos mais em pormenor este assunto. No entanto, pode-se
denir uma transformac~ao log-polar com a propriedade conformal, i.e., se z = ei , ent~ao
~ LOG-POLAR
2.2. TRANSFORMACAO
15
a sua transformac~ao ! no domnio log-polar e
! = + i: = f (z ) = loga (z ) = loga () + i: lna
(2.5)
e a sua transformac~ao inversa e descrita por,
z = x + i:y = f ,1(!) = a :cos(: ln a) + i:a :sin(: ln a):
(2.6)
2.2.2 Transformac~ao Log-Polar generica
Assuma-se ent~ao um ponto (u; v) da imagem, expressa em coordenadas cartesianas. O par
(; ) especica o mesmo ponto, mas em coordenadas polares 1. O ponto (u; v) no plano
cartesiano, pode ser representado por um numero complexo z , e pelas suas coordenadas
polares (; ), atraves de:
z = u + i:v = :ei:
(2.7)
com
p
= u2 + v2
(2.8)
= tan,1 uv
A transformac~ao logartmica complexa (ou transformaca~o log-polar) e, desta forma, denida como
w = ln(z )
(2.9)
para cada z 6= 0, onde <(w) = ln() e =(w) = + 2k. Para z 6= 0 existe uma
singularidade que sicamente num sensor de imagem corresponderia a uma zona em que os
\pixels" teriam de ser innitesimamente pequenos e innitamente numerosos no centro do
sensor - uma congurac~ao que sicamente n~ao e realizavel - . Para excluir a periodicidade
da parte imaginaria, e assumido k = 1 de modo a restringir os valores possveis de =(w)
ao intervalo [0; 2[. Ao plano (ln(); ) tambem se chama de plano w. Facilmente se
demonstra que uma rotac~ao centrada na origem do plano z resulta num deslocamento na
direcc~ao no plano w e que uma multiplicaca~o por um factor de escala no plano z , resulta
num deslocamento na direcc~ao ln() no plano w.
1
Assumindo as notac~oes indicadas no Ap^endice A.
~ LOG-POLAR
CAPITULO 2. TRANSFORMACAO
16
Esta denic~ao pode ser extensvel a outros casos, de modo a permitir trabalhar imagens com diferentes \aspect ratio", ou quando e necessario efectuar amostragens com
diferentes espacamentos nos eixos horizontal e vertical. Esta transformaca~o podera ser
extremamente util para imagens com diferentes resoluco~es nos dois eixos, caso se pretenda
transformar toda a imagem cartesiana para o plano log-polar. Neste caso a formula geral
para a transformac~ao e dada por (n~ao se trata de uma transformaca~o conformal):
8
<
u(; ) = a cos()
(2.10)
v(; ) = b sin()
As constantes a e b controlam a evoluc~ao da transformac~ao na direcc~ao radial, e para
valores particulares podem ser obtidos respectivamente transformac~oes em crculos ou em
elipses para os casos de a = b ou a 6= b. Esta e a transformac~ao log-polar utilizada nas
implementac~oes praticas descritas neste trabalho.
Como a transformac~ao log-polar vai corresponder a uma sub-amostragem da imagem e
muito comum simular transformac~oes log-polar com o uso de pequenas celulas receptoras
de forma circular centradas no ponto de amostragem log-polar. O valor do pixel no plano
log-polar e neste caso dado atraves da media dos \pixels" que pertencem a respectiva
celula circular. Na proxima secc~ao sera apresentado um processo semelhante ao descrito.
Na maioria dos casos o calculo desta media e omitido para permitir um maior velocidade
de processamento.
:
2.2.3 Uma transformac~ao Log-polar mais elaborada
Um dos metodos propostos por [M. Blackburn e H. Nguyen 94] e [Carl Weiman 94] permite que a transformaca~o log-polar seja realizada atraves de crculos conc^entricos radiais.
Em cada crculo conc^entrico existem crculos de amostragem angular, sendo o valor do
pixel de cada amostra no plano log-polar dado pela media dos \pixels" que se encontram
dentro do respectivo crculo para a respectiva amostra angular. Por outras palavras, a
posica~o dos pontos, espacialmente variante e obtida atraves duma amostragem regular
e duma grelha de crculos conc^entricos com N amostras em cada crculo radial. Para
cada um destes crculos conc^entricos com dist^ancia constante ao centro da imagem cartesiana, s~ao efectuadas N amostras angulares, e para cada uma destas amostras, o valor
~ LOG-POLAR
2.2. TRANSFORMACAO
17
Figura 2.3: Representac~ao graca duma transformac~ao log-polar, atraves do uso duma
tecnica de crculos conc^entricos. Neste caso o numero de amostras angulares e de 50.
de amostragem e obtido dos \pixels" que se encontram num crculo centrado na posic~ao
da amostra angular. A gura 2.3, representa gracamente este tipo de amostragem
log-polar.
O numero de amostras em cada crculo e constante, conforme ilustrado na Fig. 2.3.
Para um dado N , a componente radial do -esimo crculo e dada por:
= fovea 1 + p
= foveaa
(2.11)
3N
onde = 0, ..., N , 1 e fovea indica o raio mnimo do crculo quando = 0, e e escolhido
de forma a evitar a sobreposic~ao dos crculos de amostras angulares consecutivas (neste
caso e uma condic~ao universal), e o raio dos crculos R 1 (para o caso = 0). O valor
de fovea e assim dado por:
(2.12)
fovea 3 N
2
Sobre o mesmo crculo conc^entrico s~ao tiradas N amostras espacadas periodicamente por:
P = 2N
(2.13)
e para cada uma destas amostras esta associado um crculo cujo raio e dado por:
R = 23
(2.14)
N
!
18
~ LOG-POLAR
CAPITULO 2. TRANSFORMACAO
1 2π
2 Nθ
Amostra radial K+1
Amostra radial K
2π
Nθ
Figura 2.4: Entre dois crculos conc^entricos consecutivos as amostras angulares s~ao deslocadas de meio perodo.
que e igual para as N amostras (para o mesmo ). Entre dois crculos conc^entricos
consecutivos as amostras angulares s~ao deslocadas de meio perodo (veja-se Fig. 2.4),
porque com este esquema, mesmo na hipotese de se usar um numero de amostras angulares
baixo, conseguir-se-a mesmo assim uma boa representac~ao da imagem original (pode-se
considerar que seria como se tivesse usado o dobro das amostras angulares), onde a formula
matematica e dada por:
2 + odd( )
= N
(2.15)
2
!
com = 0, ..., N , 1.
A transformac~ao para os ndices do plano Log-Polar e assim dada por:
log = loga fovea
log = (1+odd )
2
N
( )
2
(2.16)
Alguns investigadores, propuseram diferentes soluc~oes para efectuar a transformaca~o
log-polar, de modo a conseguir eliminar a singularidade presente na origem. Por exemplo, [A.S. Roger e and E.L. Schwartz 90], propuseram uma transformaca~o log-polar sem
a inclus~ao da fovea.
Outros investigadores, como por exemplo [Carl Weiman 94], propuseram uma forma
eciente de ultrapassar o problema da singularidade. Segundo esses investigadores, a zona
da fovea, representada na Fig. 2.3 pelo crculo central, seria transformada atraves duma
~ LOG-POLAR
2.2. TRANSFORMACAO
19
estrutura rectangular uniformemente preenchida com celulas, cujas areas seriam iguais
a area da celula log-polar mais proxima (o que neste caso seria para = 0). A este
processo eles chamaram de \Isotropic central ll". Um dos benefcios, desta abordagem,
advem do facto, de assim se poder utilizar coordenadas lineares no centro da imagem,
com igual espacamento, permitindo tambem a efectuaca~o de reconhecimento de padr~oes
atraves dum processo invariante a translaca~o. No entanto a descontinuidade, presente na
transic~ao entre a zona de coordenadas (u; v) e a zona de coordenadas (loga (); ), levanta
um problema a transformac~ao da imagem nessa transic~ao, por exemplo a translaca~o e
a rotac~ao. As equac~oes para este processo s~ao semelhantes as equac~oes anteriormente
apresentadas na zona periferica, e para a regi~ao central denida pela restric~ao < fovea
s~ao utilizadas as coordenadas cartesianas.
2.2.4 A transformac~ao log-polar discreta
Para os casos praticos da aplicaca~o do log-polar em vis~ao por computador, o plano W
sera referido como o plano imagem log-polar. As variaveis N e N denem a resoluc~ao
radial e angular da imagem log-polar. A transformac~ao log-polar, sera apenas aplicada a
toda a imagem excepto a zona da fovea. Mas primeiro comecemos com a transformac~ao
geral. No caso discreto, a cada pixel (; ) no plano log-polar, corresponde um pixel (u; v)
no plano imagem. O valor da intensidade do pixel (; ) no plano log-polar e obtido
atraves da aplicac~ao de uma mascara gaussiana, cuja mascara de dimens~ao n n, deve
ser centrada no pixel (u; v) (veja-se Ap^endice D). Denindo o valor incremental angular:
2
(2.17)
= N
a transformada e baseada nas seguintes equac~oes:
8
<
:
u = fovea:a : cos(: )
v = fovea:b : sin(: )
8
>
<
>
:
= arctan ab tan(: )
= fovea a2 cos2(: ) + b2 sin2(: )
q
(2.18)
O valor de fovea e uma constante para permitir que n~ao exista sobreposic~ao de \pixels"
para = 0 (neste caso , apenas assumem valores inteiros). Este valor deve ser escolhido
de forma a que o permetro do crculo para = 0 tenha no mnimo N amostras, pois so
~ LOG-POLAR
CAPITULO 2. TRANSFORMACAO
20
ζ
v
ρ
γ
θ
u
Figura 2.5: Transformaca~o Log-polar e a representac~ao da estrutura de amostragem para
um caso em que a = b.
assim se garante que existem N \pixels" diferentes para N amostras angulares (no caso
em que a = b). Este valor limiar e dado por:
:
fovea N
(2.19)
2
A aplicac~ao desta restric~ao, resulta num crculo central, na imagem do plano cartesiano,
cuja informac~ao la contida n~ao e transformada para o plano log-polar, tal como pode ser
visto atraves da Fig. 2.5. As dimens~oes deste crculo podem ser controladas atraves
do valor do numero de amostras segundo a direcca~o (N ), ou atraves dos valores da
base da func~ao logaritmo. As constante a, b controlam a evoluca~o das amostras segundo
a direcc~ao radial . Da aplicac~ao das equaco~es 2.18 para = 0, ..., N , 1 e = 0,
..., N , 1, resulta a estrutura de amostragem representada na Fig. 2.5 (para a = b).
Outro pormenor importante, e o facto de a resoluc~ao na direcc~ao do log-polar ser sempre
constante para todos os valores radiais, o que resulta numa imagem no plano log-polar
com mais informac~ao sobre a zona central da imagem cartesiana, mas decrescendo para
a periferia. No caso descrito acima, s~ao usadas as variaveis N , a, b, para controlar a
amostragem.
Para o caso de uma transformac~ao log-polar com a = b, pode-se denir fovea max , que permite indicar qual a zona da imagem cartesiana que sera transformada, onde
2
fovea e o raio da zona central n~ao amostrada (fovea) e max a dimens~ao da imagem
cartesiana em \pixels" (assumindo uma imagem quadrangular). A transformac~ao de
^
~ LOG-POLAR DINAMICA)
^
2.3. RETINA DINAMICA
(OU TRANSFORMACAO
21
Figura 2.6: Exemplo duma imagem log-polar. Na esquerda encontra-se a imagem cartesiana, e a direita a imagem log-polar resultante da amostragem pela estrutura representada
na Fig. 2.5
coordenadas polares (; ) para coordenadas log-polares (; ) e dada por:
!
= loga (2.20)
fovea
conforme pode ser visto na Fig. 2.5. A base a do logaritmo e dada na depend^encia de
N por
1 ln max
,
a
= exp
(2.21)
fovea:aN ,1 = max
2
N , 1 2
!!
fovea
Dada uma imagem digital quadrada I (u; v) contendo max max \pixels", pode-se vericar que para um dado fovea max
2 , a transformac~ao n~ao tem uma correspond^encia
unvoca. A Fig. 2.6 mostra um exemplo da transformac~ao log-polar para o que foi descrito anteriormente. Na Fig. 2.7 apresenta-se tambem exemplos da amostragem log-polar
quando a = b, a > b e a < b.
2.3 Retina din^amica (ou transformac~ao log-polar
din^amica)
Na secc~ao 2.2.2 foi denida a transformac~ao log-polar (eq. 2.10). Suponha-se agora, que
e necessario efectuar a transformac~ao, n~ao centrada no ponto (0; 0), mas sim, centrada
num ponto generico (ui ; vi ). A primeira vista, o problema parece simples de resolver,
uma vez que apenas e necessario efectuar a transformac~ao centrada no ponto dado. No
~ LOG-POLAR
CAPITULO 2. TRANSFORMACAO
22
Estrutura de
Amostragem
Log-Polar
a=b
a>b
a<b
Figura 2.7: Exemplos de transformac~oes Log-Polar, quando a = b, a > b, e a < b (veja-se
eq. 2.10).
entanto, o que nos interessa, e obter a nova imagem log-polar utilizando apenas a imagem
log-polar obtida da transformac~ao centrada num ponto (u0 ; v0), para isso e necessario
desenvolver a transformac~ao entre os dois planos log-polar.
Denic~ao 2.1 Uma retina centrada num ponto (u0; v0), e equivalente a uma transfor-
mac~ao log-polar centrada em (u0 ; v0). O termo \retina din^amica" representa a mudanca
do ponto central, onde a transformac~ao log-polar e efectuada.
Suponha-se, ent~ao, que se tem a retina original centrada no ponto (u0 ; v0 ), com variaveis independentes (; ), e que se pretende obter uma retina centrada no ponto (u1 ; v1)
com variaveis independentes ( ; ). Para a primeira retina (ou transformac~ao log-polar)
0
0
^
2.4. CAMPO DE MOVIMENTO INDUZIDO NUMA CAMARA
23
tem-se:
u(; ) = a cos() + u0
v(; ) = a sin() + v0
e para a segunda retina (ou transformaca~o log-polar):
(2.22)
u( ; ) = a cos( ) + u1
v( ; ) = a sin( ) + v1
0
0
0
0
0
0
0
(2.23)
0
Tendo em conta que o novo ponto central (u1; v1 ) pode ser descrito atraves da equac~ao
( 2.22), para um determinado (0 ; 0) atraves de:
a0 cos(0 ) = u1 , u0
a0 sin(0 ) = v1 , v0
(2.24)
a partir de ( 2.22) e ( 2.23) e tendo em conta que se pretende obter a nova imagem
log-polar ( ; ) em funca~o da imagem log-polar (; ), resolvendo para (; ) obtemos:
0
0
"
2
0
0
= tan,1 a sin( )+a0 sin(0 )
0
0
2
#
= 21 loga a cos( ) + a0 cos(0 ) + a sin( ) + a0 sin(0 )
0
0
!
(2.25)
a cos( )+a0 cos(0 )
0
0
Em conclus~ao, no domnio contnuo, esta propriedade permite transformar uma imagem log-polar que tenha sido obtida atraves de um determinado ponto central da imagem
cartesiana numa outra imagem log-polar com outro ponto central, sem ser necessario reutilizar a imagem cartesiana. Em termos praticos sendo as imagens discretas, a utilizaca~o
da retina din^amica oferece alguns problemas de difcil resoluc~ao.
2.4 Campo de movimento induzido numa c^amara
Neste momento e importante estudar o efeito resultante nas imagens a nvel da velocidade
projectada, quando uma c^amara se movimenta num meio ambiente estatico. Para isso
descreve-se de seguida o comportamento do modelo para a projecc~ao da velocidade no
plano imagem, dados os par^ametros de movimento duma c^amara.
~ LOG-POLAR
CAPITULO 2. TRANSFORMACAO
24
(u,v)
Vx
X
Z
Y
f
Vz
Wx
P(X,Y,Z)
p
Wz
Vy
Wy
Figura 2.8: Orientac~ao das velocidades 3D da c^amara
Assuma-se assim, um modelo de perspectiva geometrica conforme descrito na secca~o
2.1, com a equac~ao ( 2.1) que relaciona os pontos 3D com os pontos 2D. A c^amara
possui duas componentes de movimento: a translacional v~ = [vx ; vy ; vz ]T e a rotacional
~! = [!x ; !y ; !z ]T (veja-se a Fig. 2.8). Devido ao movimento da c^amara, o ponto P da
cena com um vector ~p = [X; Y; Z ]T associado, aparenta um movimento relativo a c^amara
_ Y_ ; Z_ ]T pode
com translac~ao ,v~ e com rotac~ao ,~! . Neste caso a velocidade 3D, ~v = [X;
ser expressa por:
~v = ,v~ , ~! ~p
(2.26)
t
t
t
Este e o vector de movimento 3D, que gera o vector de movimento 2D no plano imagem.
Na realidade, estes vectores ser~ao projectados no plano imagem dando origem a uma
imagem do campo de movimento (o uxo optico teorico). Para projectar os vectores de
velocidade 3D e necessario utilizar a equac~ao 2.1 diferenciada em ordem a t:
u_ = X_ Zfx , fxZZ_ X
v_ = Y_Zfy , fyZZ_ Y
2
(2.27)
2
e efectuando a substituica~o de ~v na equaca~o, obt^em-se o uxo induzido na imagem devido
ao proprio movimento da c^amara:
h
u_ v_
T
i
= 1 :A:v~ + B:~!
Z
t
(2.28)
~ LOG-POLAR
2.5. ALGUMAS PROPRIEDADES DA TRANSFORMACAO
25
onde a sua expans~ao e dada por:
2
2
4
3
2
3
5
4
6
6
56
4
, fx 0 u
u_
=1
Z 0 ,fy v
v_
2
3
vx
vy +
vz
2
7
7
7
5
4 vu
fy
, fx + ufx v ffxy
, vufx
,u ffxy
fy + vfy
2
2
3
6
6
56
4
wx
wy
wz
3
7
7
7
5
(2.29)
Obviamente, esta express~ao representa o uxo optico analtico no plano imagem, onde
o primeiro termo representa o efeito do movimento de translac~ao, enquanto que o segundo
e o uxo induzido devido ao movimento de rotac~ao da c^amara. E importante referir, que
o efeito associado a translac~ao depende da profundidade Z (apenas pode ser obtida a
direcc~ao do movimento de translac~ao em vez das suas componentes), e portanto, no caso
da velocidade ser conhecida, pode-se estimar a profundidade relativamente ao referencial
da c^amara.
2.5 Algumas propriedades da transformac~ao Log-Polar
A transformaca~o log-polar apresenta algumas propriedades interessantes, que torna este
processo numa ferramenta bastante util para aplicar no campo da vis~ao por computador.
Algumas dessas propriedades est~ao ligadas ao efeito de rotaca~o, e a mudanca do factor
de escala (relativamente ao centro da imagem). As imagens da Fig. 2.9 ilustram a
propriedade da rotac~ao, que no plano log-polar corresponde a um deslocamento vertical.
Mas, no entanto, a mais importante e a projecca~o do campo de movimento no plano
log-polar, quando o observador efectua movimentos de rotac~ao ou de translaca~o. O que
nos interessa aqui, e observar o que acontece ao campo de uxo optico para alguns tipos de
movimento. E importante referir que atraves das equac~oes obtidas na secc~ao 2.4 facilmente se prova as armac~oes que se seguem, atraves da restric~ao dos pontos tridimensionais
ao tipo de superfcie em quest~ao.
Note-se que o uxo optico gerado no plano imagem duma c^amara, quando esta efectua
movimentos de translac~ao na direcc~ao do seu eixo optico, e divergente, e o seu modulo
aumenta com a dist^ancia ao centro da imagem. Neste caso, existe um ponto designado
de foco de expans~ao (FOE ), que esta situado no centro do uxo optico divergente na
Fig. 2.10 (coincidente com o centro da imagem). Este campo de vectores, no plano
~ LOG-POLAR
CAPITULO 2. TRANSFORMACAO
26
Imagem original
Imagem rodada 90º
Imagem rodada 180º
Imagem rodada 270º
Cartesiano
Log-Polar
Figura 2.9: O efeito da rotac~ao. A imagem cartesiana e rodada, e o consequente efeito no
plano log-polar e uma translac~ao na direcc~ao .
log-polar sera constitudo por um campo de vectores com modulo variavel, mas com a
mesma orientac~ao angular, tal como pode ser visto na Fig. 2.10, e se for efectuado um
histograma na direcc~ao resultara numa funca~o horizontal constante para cada um dos
valores de .
Campos de vectores de uxo optico deste tipo, s~ao bastante importantes para este trabalho.
2.5.1 Campo de movimento no plano Log-polar
Os metodos de amostragem com resoluca~o espacial variavel, possuem algumas caractersticas interessantes. Uma dessas, em particular, e o estudo do calculo do uxo optico
(veja-se Cap. 3). Na realidade, com a amostragem log-polar, e possvel detectar de uma
forma mais ecaz algumas formas de uxo optico que com outras tecnicas normais n~ao
e possvel. Portanto, nesta secc~ao, vai-se efectuar o estudo das relac~oes entre o uxo no
plano cartesiano e no plano log-polar.
@(t)
Para relacionar o uxo optico ( @(t)
@t ; @t ) no plano log-polar com o uxo no plano
~ LOG-POLAR
2.5. ALGUMAS PROPRIEDADES DA TRANSFORMACAO
Cartesiano
log-polar
Cartesiano
~! = 0, vx = vy = 0, vz 6= 0
log-polar
~! = 0, vy = vz = 0, vx 6= 0
Cartesiano
27
log-polar
~! = 0, vx = vz = 0, vy 6= 0
Figura 2.10: Relac~ao entre os uxos opticos dos dois planos, para diferentes tipos de
movimento. Da esquerda para a direita, e representado o uxo no plano imagem seguido
do seu equivalente no plano log-polar. As duas imagens da esquerda representam o uxo
optico divergente, que no plano log-polar e constante. As imagens do centro, e da direita,
correspondem a um uxo horizontal e vertical crescente respectivamente, que no plano
log-polar da origem a vectores com o mesmo modulo, mas com orientaco~es diferentes.
@v(;;t)
cartesiano ( @u(;;t)
@t ; @t ), deve-se diferenciar a equaca~o 2.10 em ordem a t, que resulta
na seguinte equac~ao, que representa a relaca~o entre os dois campos de vectores
2
3
2
32
3
5
4
54
5
@(t)
ln(a) cos() ,a sin()
a
@t
= @(t)
b ln(b) sin() b cos()
@t
na realidade a matriz J representa o Jacobiano da matriz da equac~ao 2.10:
4
@u(;;t)
@t
@v(;;t)
@t
2
J=
4
@u(;;t) @u(;;t)
@
@
@v(;;t) @v(;;t)
@
@
(2.30)
3
(2.31)
5
Usando a notac~ao u_ = @u(;;t)
@t , e efectuando a transformac~ao inversa da eq. 2.30
resulta na relac~ao do campo de vectores do plano cartesiano com o plano log-polar:
2
4
3
2
5
4
_
1
=
cos()2 ln( ab ) + ln(b)
_
cos()
sin()
a
b
, sin() ln(b) cos() ln(a)
a
b
32
54
u_
v_
3
5
(2.32)
e como pode ser visto, a detecc~ao do uxo optico no plano log-polar e igual ao uxo do
plano imagem, mas dividido pela dist^ancia radial (a e b ) relativamente ao centro da
~ LOG-POLAR
CAPITULO 2. TRANSFORMACAO
28
imagem (a matriz representa apenas uma transformac~ao de rotaca~o). Esta propriedade e
de grande utilidade, porque permite detectar campos de uxos crescentes radialmente a
partir do centro da imagem, enquanto que com outras tecnicas sera muito difcil.
No caso em que os par^ametros que controlam a evoluca~o da componente radial s~ao
iguais (a = b), obtemos as seguintes relac~oes:
2
4
e
3
2
32
5
4
54
u_ = a ln(a) cos() , sin()
v_
ln(a) sin() cos()
2
4
3
2
32
5
4
54
cos()
sin()
_
1
ln(a)
ln(a)
=
_
a , sin() cos()
u_
v_
_
_
3
(2.33)
5
3
(2.34)
5
E importante vericar a diferenca entre uma transformaca~o polar e log-polar. Rescrevendo as equac~oes indicadas acima, para o caso polar:
2
4
3
2
32
5
4
54
_
cos() sin()
=
cos()
_
, sin()
u_
v_
3
(2.35)
5
Analisando a equac~ao ( 2.35), verica-se que o uxo optico radial apresenta algumas
diferencas, quando comparado com o caso log-polar. Certamente a utilizaca~o da funca~o
logaritmo na direcc~ao radial e a origem deste facto. Na secc~ao 4.2 veremos esta diferenca,
de uma forma mais explcita.
Como em situac~oes praticas, se utiliza a vers~ao discreta das equac~oes ( 2.33) e ( 2.34)
(para a = b) ent~ao teremos:
2
4
e
3
2
32
5
4
54
u_
ln(a) cos(: ) ,: sin(: )
= fovea:a
v_
ln(a) sin(: ) : cos(: )
2
4
cos(:)
_
1
ln(a)
=
sin(:)
a
fovea
_
, 3
2
5
4
sin(:)
ln(a)
cos(:)
32
54
u_
v_
_
_
3
5
(2.36)
3
5
(2.37)
2.6. O EFEITO DE SUB-AMOSTRAGEM PRODUZIDO PELO LOG-POLAR
29
2.6 O efeito de sub-amostragem produzido pelo logpolar
Nesta secc~ao, analisa-se a transformac~ao log-polar no domnio da frequ^encia e pretendese conhecer a partida as especicac~oes dos eventuais ltros que ser~ao necessarios para
efectuar a transformac~ao log-polar discreta de uma forma conveniente. Assume-se que a
forma conveniente e evitar fenomenos de \aliasing".
Para efectuar o estudo, assuma-se a partida dois sinais bidimensionais contnuos. O
primeiro sinal I (u; v), que e o sinal original, encontra-se representado no domnio cartesiano. O segundo sinal I2(; ) foi obtido do sinal contnuo I (u; v) atraves da transformaca~o
log-polar contnua denida pela equaca~o 2.10 (com b = a > 1).
Para o sinal I (u; v) o seu espectro FT fI g(!u ; !v ) e dado por:
FT fI g(!u ; !v ) =
Z
+1 Z +1
,1 ,1
I (u; v):e,j!u u :e,j!v v dudv:
(2.38)
onde !u = 2fu e !v = 2fv . Utilizando a relaca~o entre I (u; v) e I2(; ) e efectuando-se
uma mudanca de variavel, a mesma transformada pode ser expressa por:
FT fI g(!u ; !v ) =
onde
Z
+1 Z 2
,1 0
2
4
I2(; ):e,j!u a cos() :e,j!v a sin() jJ jdd
(2.39)
3
5
jJ j = a ln(a) cos() ,a sin() = a2 ln a > 0 e I2(; ) = I (a cos(); a sin())
a ln(a) sin() a cos()
que apos as respectivas simplicac~oes, pode ser representada por:
FT fI g(!u ; !v ) = ln a
+1 2 Z 2
cos() ,j!v a sin()
,
j!
a
u
a
I2(; ):e
:e
d d
,1
0
Z
(2.40)
que corresponde a um espectro do sinal com coordenadas cartesianas.
Por outro lado, suponha-se agora o sinal I2(; ) que foi obtido do sinal contnuo
I (u; v) atraves da transformac~ao log-polar contnua. Aplicando a transformada de Fourier
indicada na eq. ( 2.38) ao sinal I2(; ), sabendo que ] , 1; +1[ e [0; 2[, o espectro
do sinal em coordenadas polares e dado por:
FT fI2g(! ; ! ) =
Z
+1 Z 2
,1 0
I2(; ):e,j! :e,j! dd
(2.41)
~ LOG-POLAR
CAPITULO 2. TRANSFORMACAO
30
Comparando as express~oes 2.41 e 2.40, verica-se que existe um factor de escala a2 ln a
que advem da amostragem logartmica.
Como o objectivo e pretender conhecer qual o ltro que se deve aplicar de modo a evitar
\aliasing" e tendo em conta que de facto o processo de amostragem logartmica possui
papel preponderante, vamos estudar em separado o efeito da amostragem logartmica e
angular.
Por simplicidade, para o estudo da amostragem logartmica, considere-se um sinal
unidimensional discreto. Assuma-se desta forma um sinal discreto original xoriginal [n]
com n = 0, ..., N , 1 elementos, amostrado atraves duma func~ao logartmica n = foveaa
com fovea > 0 e = 0, ..., N , 1. Apos a aplicac~ao desta transformac~ao obtem-se o
sinal pretendido x[] = xoriginal [foveaa ].
No entanto, para uma melhor compreens~ao, considere-se ainda sem perda de generalidade, que xoriginal [n] foi obtido dum sinal periodico contnuo x(t) com perodo T0 e que
permite representar completamente o sinal x(t), i.e.,
T
(2.42)
xoriginal [n] = x(t) t , TN0 n dt
0
onde () representa a funca~o delta de Dirac. O sinal discreto e equivalente a uma amostragem logartmica tera deste modo a seguinte forma:
T
a dt
x[] = x(t) t , T0fovea
(2.43)
N
0
Este novo sinal pode n~ao representar correctamente o sinal x(t) devido ao espacamento
das amostras n~ao cumprir o teorema da amostragem [Alan Oppenheim 79]. Este facto
tera maior probabilidade de ocorr^encia quando tende para N , 1, pois para as duas
amostras nais e que existe um maior espacamento. Este espacamento dene a frequ^encia
de amostragem de valor mais baixo e portanto a mais crtica. Por outro lado, dado o
espacamento entre amostras ser variavel, pode-se considerar que a amostragem logartmica
possui uma frequ^encia de amostragem variavel com a posic~ao da amostra.
Para determinar as especicac~oes do ltro vai-se considerar inicialmente um novo sinal
x1[m], obtido de xoriginal [n] atraves de uma amostragem logartmica, mas que contenha na
totalidade todos os elementos de xoriginal [n]. Para tal e necessario denir os par^ametros
da nova funca~o de amostragem. Estes par^ametros est~ao directamente relacionados com
Z
Z
0
0
2.6. O EFEITO DE SUB-AMOSTRAGEM PRODUZIDO PELO LOG-POLAR
Tipo de
sinal
original
Express~ao
do sinal
desejado
x[] =
Numero de Variavel Filtro
amostras de controlo
T0 x(t) t , T0 n dt
0
N
N
n
T0 x(t) t , T0 foveabm dt
0
N
M
m
T0 foveabp dt
T0
0 x(t) t ,
N
N
M
T0 foveaa dt
T0
0 x(t) t ,
N
N
M
xoriginal [n] =
Contem na
totalidade o x1 [m] =
sinal original
Desejado,
mas obtido x2[] =
de x1[m]
31
R
R
R
R
Tabela 2.1: Passos necessarios para estudar os par^ametros dos ltros necessarios a ltragem das imagens, antes da transformac~ao log-polar.
o espacamento das duas amostras nais, uma vez que estas devem estar presentes no
sinal x1 [m]. Considere-se ent~ao uma nova func~ao de amostragem dada por exemplo, por
n = foveabm onde m = 0, ...,M , 1, isto para um determinado b e M . Os valores de b e
M podem ser obtidos atraves da restric~ao na periferia da func~ao foveabm, i.e.,
fovea:bM ,1 = N , 1
fovea:bM ,2 = N , 2
(2.44)
,1 + 1. Apos a
obtendo-se assim para b e M respectivamente b = NN ,,21 e M = logb Nfovea
aplicaca~o desta transformac~ao obtem-se o sinal pretendido x1[m] = xoriginal [foveabm ], que
representa na totalidade x(t).
Desta forma o sinal x1[m] pode ser dado por:
x1[m] =
T0
Z
0
bm dt
x(t) t , T0fovea
N
!
(2.45)
Para obter o sinal x[] a partir de x1[m] e necessario efectuar uma interpolaca~o de N
seguida duma decimac~ao de M , isto porque o sinal x1 [m] tem M amostras e pretende-
~ LOG-POLAR
CAPITULO 2. TRANSFORMACAO
32
se obter no nal um sinal com N amostras. Por esta raz~ao deve-se substituir m pela
seguinte relaca~o:
(2.46)
m = NM , m = p = 0 N , 1
pelo que o sinal x2[] sera assim dado por:
bp dt
x2[] = x(t) t , T0 fovea
(2.47)
N
0
Atraves das equac~oes 2.43 e 2.47 vericamos que ambas representam o mesmo sinal
se a condic~ao a = bp se vericar. Nessa situac~ao o ltro que se deve aplicar depende do
factor de decimac~ao, que neste caso era de M , i.e., a frequ^encia de corte do ltro deve ser
de M . A tabela 2.1 apresenta os passos tomados para se obter esta conclus~ao.
Neste momento, e importante voltar agora ao caso log-polar em 2D, mas primeiro
deve-se estudar a amostragem angular da transformaca~o log-polar.
Para a amostragem angular, o maior factor de decimaca~o acontece na periferia. Nessa
zona a dist^ancia entre amostras angulares e de ' N2 foveaaN ,1 \pixels", o que origina
um factor de decimaca~o de:
2 aN ,1 , 1
(2.48)
K=N
fovea
e para se evitar \aliasing", a frequ^encia de corte do ltro deve ser de K .
Deste modo, para o caso log-polar, a frequ^encia de corte e dada por N , onde N =
max (K; M ). Esta e uma das restric~oes mais severas, devido a amostragem espacial variante, no entanto e possvel desenhar varios ltros para diferentes pontos de amostragem
radial (i.e. a frequ^encia de corte do ltro depende da dist^ancia radial).
E importante referir, que o sinal resultante tera componentes de frequ^encia acima de
, por isso deve-se ter cuidado, quando se utilizam tecnicas de diferenciac~ao. Neste caso
2
deve-se ltrar o sinal nal com um ltro com frequ^encia de corte 2 , perdendo-se assim
alguma informac~ao.
Z
T0
!
Captulo 3
Detecc~ao de Movimento nas Imagens
Neste captulo, e abordado o calculo do uxo optico numa sequ^encia de imagens temporais
apresentando um algoritmo para o seu calculo, bem como a sua extens~ao para imagens
log-polar.
Como o tema principal desta tese e a navegac~ao num espaco especco utilizando
vis~ao din^amica para testar e desenvolver o metodo de navegac~ao, e necessario ter um
estimador do sinal que e resultado do uxo optico na sequ^encia temporal de imagens
que se v~ao adquirindo. Interessa portanto estudar quais os metodos mais adequados e
expeditos para este objectivo. Esta foi a principal motivac~ao para se efectuar este estudo,
tendo tambem em conta que se pretende explorar imagens log-polar. Este ultimo ponto
e decisivo, porque o calculo do uxo optico atraves de imagens log-polar e mais rapido
do que com imagens cartesianas, e consequentemente podem ser obtidos algoritmos com
tempos de execuc~ao muito pequenos. Por conseguinte, e importante abordar o problema
tendo em conta a necessidade de encontrar respostas para:
Das tecnicas de calculo de uxo optico, qual e a mais indicada para usar em imagens
log-polar?
Sera necessario utilizar algum processo adicional para compensar o facto do calculo
do uxo ser baseado em tecnicas diferenciais?
Sera possvel estimar o movimento usando apenas uxo optico normal?
33
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
34
Z
Cam
po d
em
X
ovim
ento
Y
fluxo
optico
ou c
amp
o de
velo
cida
de
Figura 3.1: Relac~ao entre o campo de movimento e o uxo optico
Como ser~ao os resultados inuenciados pelos par^ametros do log-polar?
Nas secc~oes deste captulo tentaremos dar respostas a estas quest~oes.
Consideraveis esforcos t^em sido efectuados no desenvolvimento de tecnicas diferenciais
para o calculo de uxo optico (ou estimaca~o da velocidade projectada usando imagens).
Com base no conhecimento deste uxo e possvel desenvolver tecnicas para o seguimento
de objectos que se movimentam no espaco, determinaca~o de par^ametros de movimento
(\egomotion") ou de navegac~ao com base na informac~ao din^amica obtida a partir de
imagens. Estes problemas s~ao difceis de resolver, uma vez que a velocidade projectada
no plano imagem e a projecca~o da velocidade tridimensional do objecto, que em alguns
casos n~ao pode ser totalmente estimada, como podemos vericar pela Fig. 3.1.
3.1 Campo de movimento induzido numa c^amara por
uma superfcie planar
Reporte-se o leitor a secca~o 2.4, onde foi previamente introduzida a relac~ao entre o campo
de movimento projectado numa imagem e o induzido por uma c^amara em movimento.
Nesta secc~ao e feita uma extens~ao a essa relac~ao para um conjunto de pontos tridimensionais que pertencem a uma superfcie planar.
Os resultados obtidos s~ao interessantes para o calculo de par^ametros de movimento e
navegac~ao, pois as muitas superfcies podem ser representadas como conjunto de pequenos
3.2. CALCULO
DO FLUXO OPTICO
35
planos. Por exemplo, a superfcie das paredes do corredor, onde se pretende efectuar a
navegaca~o, podem modelar-se como planos, ou conjunto de planos.
Assuma-se ent~ao que alguns dos pontos projectados na imagem pertencem a um plano.
Todos esses pontos satisfazem uma restric~ao geometrica correspondente a equac~ao dum
plano Z = C + D:X + E:Y , que pode ser expressa em termos das coordenadas da imagem,
usando a equac~ao 2.1 como:
1 = + :u + :v
(3.1)
Z
e substituindo este resultado na equac~ao 2.29 obt^em-se:
2
4
3
2
3
5
4
5
u_
a + a :u + a3:v + ac :u2 + bc :u:v
= 1 2
v_
b1 + b2:u + b3:v + ac :u:v + bc:v2
(3.2)
onde
a1 = ,fx Vx , fx Wy b1 = ,fy Vy + fy Wx
a2 = ,fxVx + Vz b2 = ,fy Vy , ffxy Wz
(3.3)
a3 = ,fxVx + ffyx Wz b3 = ,fy Vy + Vz
ac = , Wfxy + Vz
bc = Vz + Wfyx
A equaca~o 3.2 descreve o uxo de movimento na imagem representado parametricamente
atraves de oito par^ametros, e gerado por um movimento tridimensional dum plano na cena.
Estes par^ametros s~ao o suporte para os metodos \am", \translacional" e \movimento de
uma superfcie plana" para a determinaca~o do uxo optico no plano imagem, como sera
apresentado nas secc~oes que se seguem. O modelo descrito pela equaca~o 3.2, pode ser
utilizado com um metodo de mnimos quadrados para estimar o uxo optico, e assim o
problema da abertura pode ser ultrapassado atraves deste modelo especco. Este assunto
sera explicado mais tarde.
3.2 Calculo do uxo optico
Para estimar o uxo optico em imagens discretas e necessario ter alguns cuidados como
veremos mais a frente nesta secc~ao. Existem ja alguns trabalhos neste campo, tal como o
trabalho feito por Peixoto [Peixoto 95], onde atraves do calculo do uxo am se estuda a
coer^encia do movimento em sequ^encias de imagens. Este trabalho tem como ponto alto, a
36
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
detecc~ao de dois tipos de movimento (movimento dum objecto na presenca de movimento
de fundo), e a sua possvel remoc~ao. No nosso caso n~ao pretendemos detectar varios
movimentos distintos, mas sim utilizar o modelo am para estimar o foco de expans~ao
como veremos na secc~ao 4.2.
Convem neste momento referir que existem pelo menos quatro grandes estrategias
algortmicas para a determinac~ao do uxo optico, que s~ao baseados:
1. no gradiente : as tecnicas baseadas no gradiente assumem que a intensidade da
imagem se conserva entre imagens. Esta tecnica e a utilizada neste trabalho, e sera
abordada em detalhe nesta secc~ao.
2. na correlac~ao : considera que a distribuica~o local da intensidade das imagens se
mant^em entre estas. Normalmente este calculo e efectuado sobre duas imagens consecutivas separadas temporalmente por um intervalo de tempo 4t muito pequeno.
A tecnica consiste na determinaca~o da posica~o relativa de um pixel, ponto ou caracterstica entre duas imagens temporalmente consecutivas. O uxo optico sera o vector deslocamento entre as posic~oes consecutivas entre as duas imagens. Para achar
este vector e necessario efectuar uma procura de entre alguns candidatos da segunda
imagem e achar o melhor de todos. Alguns investigadores [D. Marr e Poggio 79],
[Barnard e Thompson 80] e [Burt, Xen e Xu 83], usaram as seguintes estrategias
para achar esse candidato:
os candidatos pertencem a uma area onde se considera que no maximo existiu
um deslocamento de x e y \pixels" (velocidades maximas admissveis). A esta
regi~ao chama-se a janela de procura.
O melhor candidato e dado atraves da maxima correlaca~o que usa uma area
a volta do pixel da imagem no tempo t, e a area correspondente em redor
do pixel candidato da imagem t + 4t. Pelo facto do uso de uma janela este metodo considera que a distribuic~ao local da intensidade das imagens se
mantem constante.
3. em energia espaco temporal : neste processo o calculo do uxo optico e baseado
na resposta de ltros sintonizados para determinadas velocidades, considerando-se
3.2. CALCULO
DO FLUXO OPTICO
37
assim que as frequ^encias espaco temporais, est~ao relacionadas com a velocidade dos
\pixels" atraves da seguinte formula:
!t = !u u_ + !v v:_
(3.4)
onde as variaveis u_ , v_ , referem as duas componentes ortogonais da velocidade 2D,
!u , !v s~ao as componentes ortogonais da frequ^encia espacial do estmulo visual, e
!t e a frequ^encia temporal correspondente. A equaca~o 3.4 foi deduzida atraves
da transformada de Fourier aplicada a duas imagens duma sequ^encia temporal,
considerando que existe conservaca~o da intensidade dos "pixels" entre as imagens
[D. Hegger 87].
Segunda a equaca~o 3.4, se o sinal for visto no espaco !u , !v , !t , temos a equac~ao
de um plano. A velocidade (u;_ v_ ) pode ser determinada se o plano for determinado.
Heeger [D. Hegger 87] utiliza doze ltros de Gabor sintonizados em frequ^encias
centrais que est~ao contidas dentro de um cilindro no espaco !u , !v , !t , onde o
eixo do cilindro e o eixo !t . Cada ltro esta sintonizado para dar a sua maxima
resposta para um determinado valor do uxo optico, e desta forma atraves do uso de
diferentes ltros podem-se obter respostas diferentes, que dependem da frequ^encia
espaco temporal das imagens. O melhor dos doze ltros, da origem ao resultado
escolhido, denindo assim os par^ametros do plano.
4. na fase : e um processo semelhante a tecnica da energia espaco temporal, pelo facto
de utilizar ltros sintonizaveis (neste caso passa-banda), no entanto a velocidade
(u; v) e denida em termos do valor da fase para a sada do ltro (normalmente
tecnicas de passagem por zero).
No nosso caso interessa-nos em especial os metodos baseados no gradiente, pois permitem a partir algoritmos com um menor tempo de execuca~o, se bem que, eventualmente,
com um maior erro de calculo. Este ultimo ponto pode ser decisivo pois pode tornar
instavel a soluc~ao encontrada para o problema em causa. Para responder a esta quest~ao,
no nal desta secca~o sera apresentado um estudo realizado para conhecer o desempenho dos algoritmos de uxo optico em imagens cartesianas e log-polar. Neste estudo s~ao
apresentados resultados de comparac~ao entre quatro metodos de calculo do uxo optico.
38
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
3.2.1 Filtragem
Quando se pretende estimar o uxo optico numericamente, e extremamente importante
que se efectue uma ltragem da imagem discreta para eliminar algum do rudo. O processo de ltragem pode ser realizado para seleccionar uma parte do espectro do sinal e/ou
para remover o rudo de alta frequ^encia que normalmente existe nas imagens discretas.
Considerando que a imagem cont^em a densidade espectral concentrada nas baixas frequ^encias, pode-se remover a maior parte do rudo efectuando uma ltragem passa-baixo.
Conforme explicado na secc~ao 2.6, quando e necessario decimar um sinal, deve-se evitar
o fenomeno de \aliasing" atraves da limitaca~o do espectro do sinal. Como a intenc~ao e
utilizar imagens log-polar, neste caso apenas sera efectuada a ltragem espacial para garantir que quando se faz a amostragem log-polar o espectro do sinal e de banda limitada.
No entanto, efectuar uma ltragem espacial consome muito tempo, para se reduzir este
tempo, pode-se vericar que apenas e necessario ltrar uma zona da imagem a volta do
pixel que vai ser amostrado pelo processo log-polar.
3.2.2 Metodos que utilizam o gradiente
Dos metodos de calculo de uxo optico existentes, os metodos diferenciais s~ao os mais
ruidosos, mas permitem obter algoritmos com tempos de execuc~ao muito pequenos. Por
conseguinte, a maioria dos algoritmos propostos e utilizados em processos de tempo real,
exploram a diferenciac~ao dos valores de cinzento para cada pixel, de modo a efectuar a
estimac~ao do campo de velocidade. Estes metodos baseiam-se na observac~ao da mudanca
dos valores de cinzento da imagem I (u; v; t), e s~ao chamados de metodos baseados no
gradiente. A soluca~o para as equac~oes resultantes, fornecem a estimaca~o para o campo de
velocidades do plano imagem, tambem chamado de uxo optico do campo de velocidade
da imagem.
Suponha-se que (u; v) e a posic~ao na imagem dum ponto da cena no instante t, e
que (u;_ v_ ) e a velocidade desse ponto projectada na imagem. O mesmo ponto (u; v) apos
um tempo 4t mover-se-a para uma nova posic~ao (u + u:_ 4t; v + v:_ 4t). Assumindo a
3.2. CALCULO
DO FLUXO OPTICO
39
conservaca~o do brilho da imagem nesse ponto implica que
I (u; v; t) = I (u + u:_ 4t; v + v_ :4t; t + 4t)
(3.5)
Expandindo o termo da direita atraves da serie de Taylor e representando Iu = Iu(u; v; t) =
@I(u;v;t) ; I = I (u; v; t) = @I(u;v;t) ; I = I (u; v; t) = @I(u;v;t) , a equac~ao 3.5 pode ser
v
v
t
t
@u
@v
@t
reduzida a:
Iu u_ 4t + Iv v_ 4t + It4t , Err(4t2) = 0
(3.6)
Esta restric~ao assume que o brilho da imagem I (u; v; t) \sofrera" um pequena variac~ao
durante o intervalo de tempo 4t entre as duas imagens consecutivas, e que I (u; v; t)
e uma func~ao diferenciavel - ou seja obedece as condico~es de expansibilidade em serie
de Taylor. O termo Err(4t2) representa o erro existente neste calculo, pois apenas se
utilizam termos ate a primeira derivada na expans~ao da serie de Taylor. Assumindo
que este erro e desprezavel, ent~ao obteremos a equac~ao 3.7 que representa a designada
\restric~ao do brilho" (brightness constraint):
r~ I:~v + It = 0
(3.7)
~ I = [Iu ; Iv ]T
onde ~v = [u;_ v_ ]T e o uxo optico no instante de tempo t no ponto (u; v) e r
e o gradiente no mesmo ponto.
A equac~ao 3.7 representa a vers~ao vectorial da restrica~o do brilho e, no caso de apenas
se utilizar esta restric~ao para a estimac~ao do uxo optico, apenas a projecca~o do uxo
optico na direcc~ao do gradiente podera ser calculada. Este facto esta relacionado com o
designado problema da abertura e ilustrado na Fig. 3.2. Da gura, conclui-se que apenas
a componente da velocidade que e normal as arestas dos objectos podera ser detectada.
A esta componente chama-se de uxo optico normal e e dada pela equaca~o:
k ~vnormal k = , 2It 2 = , ~It
(3.8)
k rI k
Iu + Iv
q
que e obtida atraves da eq. 3.7.
Pode-se estabelecer uma relac~ao entre o uxo optico normal com o campo de velocidade
normal. Para isso assuma-se um ponto (u; v) com uma velocidade projectada dada por
40
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
~
Posicao
, final
do edge
Abertura
~
Posicao
, inical
do edge
Candidatos ao movimento
dum ponto do edge
Figura 3.2: Representaca~o do problema da abertura. O contorno da linha e observado
atraves duma pequena janela no instante t e move-se para outra posica~o no instante t +1.
O movimento efectuado pode ser uma translaca~o vertical, ou uma translaca~o mais um
deslocamento na direcc~ao da linha. No entanto, como a linha esta a ser observada atraves
duma pequena janela, apenas se pode detectar a componente do uxo optico na direcca~o
perpendicular as arestas.
~ I . O gradiente local normalizado e dado por:
~v = [u;_ v_ ]T e o respectivo gradiente r
~
~n = ~rI = ~1 : Iu :
(3.9)
k rI k k rI k Iv
A velocidade normal no ponto (u; v) e igual a:
un = ~nT :~v = ~1 (Iu :u_ + Iv :v_ ):
(3.10)
k rI k
As duas velocidades s~ao iguais se a subtracca~o da eq. 3.10 e eq. 3.8 for zero:
2
3
4
5
un , k ~vnormal k = ~1 (Iu :u_ + Iv :v_ + It) = ~1 dI
:
(3.11)
k rI k
k rI k dt
Da eq. 3.11 pode-se concluir que as velocidades s~ao iguais se o gradiente localmente for
diferente de zero e de valor elevado, ou se a soma das derivadas locais da func~ao I for
pequena ou nula. Esta e uma restrica~o pratica a efectuar a quando do calculo do uxo
optico, e e aplicado tambem no calculo do uxo optico normal conforme explicado na
secc~ao 3.2.3.
3.2.3 Algoritmo de uxo optico normal
E do conhecimento geral, que o uxo optico normal em geral n~ao e igual ao uxo optico
3.2. CALCULO
DO FLUXO OPTICO
41
real porque o uxo optico normal depende do problema da abertura. Por este facto,
e compreensvel que existam erros quer na amplitude quer na orientaca~o dos vectores
de uxo normal calculados. A quest~ao que se p~oe e a seguinte, poderemos usar algum
processo para corrigir ou atenuar estes erros? O proximo algoritmo e a nossa resposta a
esta pergunta. Atraves de experi^encias realizadas descobriu-se que para obter melhores
resultados a nvel da orientaca~o dos vectores de uxo, era necessario utilizar tr^es estados de
processamento no calculo do uxo optico normal. No entanto, este processo n~ao introduz
acrescimos signicativos a nvel do modulo dos vectores. Os tr^es estados de processamento
s~ao executados sequencialmente e consistem em:
Estado de pre-processamento - neste estado alguns dos pontos numericamente instaveis
s~ao excludos do calculo do uxo optico normal
Estado do calculo do uxo optico normal - calculo do uxo optico tal como denido
Estado de pos-processamento - um mecanismo de votaca~o baseado em tr^es nveis
duma pir^amide de uxo optico normal, para testar a coer^encia dos vectores de
uxo, e o uso de um ltro aplicado a cada ponto para melhorar a estimaca~o do
uxo.
Estes tr^es estados s~ao fundamentais, porque o calculo do uxo optico normal e efectuado
sobre imagens log-polar, onde a diferenciaca~o numerica tende a ser mais instavel. Se isso
e um facto ent~ao qual e a justicac~ao para usar imagens log-polar e uxo optico normal, e
n~ao usar um outro processo ou tecnica de determinaca~o de uxo? Bom, n~ao nos devemos
esquecer que o nosso objectivo e obter resultados em tempo real, ou caso contrario poderse-ia utilizar uma outra tecnica mais elaborada, e eventualmente mais robusta, mas com
o consequente aumento do tempo de processamento.
Estado de pre-processamento
Para cada ponto da imagem, o gradiente e calculado atraves dum operador espacial de
dimens~ao 3 3 (denido na secc~ao 3.2.8) para obter a estimaca~o de I (; ; t), I (; ; t)
e It (; ; t).
42
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
Na pratica, apenas os \pixels" com gradiente e derivada temporal superior a um limiar
ser~ao considerados, de modo a evitar os erros causados pelo rudo associado ao calculo
diferencial. Este processo corresponde ao estado de pre-processamento e e apenas utilizado
no algoritmo do uxo optico normal.
Estado do calculo do uxo optico normal
O uxo optico normal e determinado atraves da explorac~ao da restrica~o do brilho e e
denido como:
~vnormal (; ; t) = , ~It 2 [I ; I ]T :
k rI k
Este vector e calculado apos o estado de pre-processamento.
(3.12)
Estado de pos-processamento
O estado de pos-processamento, serve para garantir a coer^encia do movimento detectado
atraves do uso duma pir^amide de imagens com tr^es nveis. Subir um nvel na pir^amide
resulta numa imagem com metade das dimens~oes da imagem do nvel anterior, onde cada
pixel e obtido atraves da media dos \pixels" duma regi~ao de 2 2 da imagem no nvel
anterior. A imagem resultante e ltrada com uma funca~o gaussiana, de modo a suavizar
a imagem. Este ltro e um ltro passa-baixo para evitar fenomenos de \aliasing" (ver
ap^endice D na express~ao D.1). Para cada imagem da pir^amide, o uxo optico normal
e calculado usando os estados de pre-processamento e o estado do calculo do uxo optico
normal. A consist^encia dos vectores de movimento e efectuada atraves da analise do uxo
optico normal nos tr^es nveis da pir^amide.
No entanto, em primeiro lugar, a consist^encia do uxo optico normal e testada em
cada nvel separadamente, atraves do uso de regi~oes de n n \pixels" (a regi~ao depende
da estrutura de amostragem do log-polar e do nvel da pir^amide). O uxo (;_ _ ) e o mais
votado da regi~ao considerada, calculado nos varios nveis separadamente. As componentes
radiais e angulares do uxo (;_ _ ) s~ao dadas pelas celulas _(l ; l ) e _ (l ; l ), onde l e l
s~ao calculados como:
3.2. CALCULO
DO FLUXO OPTICO
43
1 (max fhist
l = hist,radial
radial ( )g)
;
(3.13)
,
1
l = histangular (max fhistangular ( )g)
onde histradial ( ) = 3=0 _(; ) e histangular ( ) = 3=0 _ (; ). Este processo e ilustrado
na Fig. 3.3. Em cada nvel da pir^amide um processo semelhante ao descrito pela eq.
3.13 e efectuado, mas com a diferenca nas dimens~oes da regi~ao (a regi~ao tera metade das
dimens~oes da regi~ao do nvel da pir^amide anterior). Para o primeiro nvel da pir^amide
(imagem com maior resoluca~o), a regi~ao e de 4 4 \pixels". Um processo de votac~ao
similar a este foi proposto por J.Little e outros, [J. Little, H. Bulthof e T. Poggio 88]
para o calculo do uxo optico em imagens cartesianas.
A vericac~ao da consist^encia do uxo optico normal nos tr^es nveis da pir^amide de
modo a estimar o uxo na imagem de maior resoluca~o, e efectuada da seguinte forma:
todos os \pixels" s~ao vericados nos tr^es nveis, em regi~oes correspondentes, de modo a
vericar a consist^encia angular e de amplitude. O valor resultante para o uxo da regi~ao e
calculado atraves dum processo de votac~ao, cujo criterio consiste em vericar se dois dos
tr^es vectores apresentam a mesma fase, caso contrario sera assumido um valor nulo para
o uxo na respectiva regi~ao. E importante referir que a amplitude entre dois nveis duma
pir^amide tem um factor de escala de 2, e que os vectores de uxo normal s~ao retirados
de regi~oes correspondentes em cada nvel. Estes factos s~ao tambem levados em conta a
quando da comparac~ao das fases dos tr^es vectores, uma vez que pode-se detectar uxo no
nvel mais alto sem este estar presente nos nveis anteriores.
Apos a aplicac~ao dos tr^es estados de processamento do uxo optico normal, as componentes dos vectores resultantes, s~ao continuamente includos num ltro - . O uso deste
ltro permite melhorar a estimac~ao dos vectores de uxo optico, removendo a partida
algum do rudo presente devido ao calculo numerico e para garantir uma certa coer^encia
e consist^encia a nvel temporal. O uso do ltro e util tambem para estimar os valores de
uxo em regi~oes sem textura, caso nesse local, em tempos passados, tenha possudo uxo
n~ao nulo. Neste caso o uxo para esses \pixels" e dado pela predica~o do ltro - (apenas
para 3 amostras consecutivas com uxo nulo). Para alem deste caracter preditivo o uso
do ltro previne uma variaca~o abrupta nos vectores de uxo detectados, enquanto tende
a suavizar a velocidade em termos temporais.
P
P
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
44
j
ζl
ζ
Σ
Componente Radial
k γl
k
γl
γ
γ
Σ
ζ
j ζl
Componente Angular
Figura 3.3: Vericaca~o da consist^encia dos vectores de uxo, atraves do uso de um esquema de votac~ao, tal como e usado para o 1o nvel da pir^amide
3.2.4 Algoritmo de uxo optico usando o modelo am
O segundo metodo explorado, baseia-se tambem na restric~ao do brilho, em conjunca~o com
o modelo am (ou outro) entre duas imagens consecutivas. Esta tecnica foi explorada por
Nordlund & Uhlin [P. Nordlund e T. Uhlin 95], mas para imagens cartesianas. No nosso
caso sera estendida a sua aplicac~ao a imagens log-polar.
Tal como explicado na secca~o 3.2.2, a equac~ao 3.7, assume que a restrica~o de brilho
e vericada, o que implica condico~es de iluminaca~o uniforme.
Uma forma eciente de ultrapassar este problema, pode ser a utilizac~ao de um modelo
de velocidade descrito em func~ao das coordenadas da imagem. Devido ao tempo 4t
entre imagens n~ao ser innitesimal, e natural que a equaca~o 3.7 n~ao se verique em
alguns pontos. No entanto pode-se utilizar um metodo de mnimos quadrados de modo
a minimizar o erro global cometido numa certa regi~ao da imagem (note-se que se esta a
3.2. CALCULO
DO FLUXO OPTICO
45
usar imagens log-polar):
min
8
1
<X
I :_ + I :_ + It
1 X
=0 =0
:
9
=
2
(3.14)
;
Utilizando a express~ao (3.2) a velocidade pode ser descrita de tr^es formas distintas, e para
cada uma delas, pode-se obter uma soluc~ao fechada:
_
modelo puramente translacional: = a1 ,
_
b1
2
3
2
3
4
5
4
5
_
modelo am: = a1 + a2: + a3: ,
_
b1 + b2: + b3:
2
3
2
3
4
5
4
5
modelo duma superfcie planar em movimento:
2
4
_
a + a : + a3 : + a: 2 + b::
= 1 2
,
_
b1 + b2: + b3: + a:: + b: 2
3
2
3
5
4
5
Nestes modelos temos 2, 6 e 8 par^ametros a estimar, respectivamente. Para o modelo
translacional a soluc~ao e dada pela equac~ao:
2
4
I2
I I
P
P
P
3
2
3
2
5
4
5
4
I I
a1
, ItI
:
=
I2
b1
, ItI
P
P
P
3
(3.15)
5
Para o modelo am, podemos inicialmente denir a seguinte matriz simetrica:
2
A=
6
6
6
6
6
6
6
6
6
6
6
6
6
4
e os vectores:
P
I2
I2 I2 2
P
P
simetrica
I2 I2
I2 2
P
P
P
I I
I I I I I2
P
P
P
P
I I I I 2
I I I2
I2 2
P
P
P
P
P
I I I I I I 2
I2
I2
I2 2
P
P
P
P
P
P
3
7
7
7
7
7
7
7
7
7
7
7
7
7
5
(3.16)
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
46
T
i
h
~x = a1 ; a2 ; a3; b1; b2; b3
~k = , ItI ; , ItI ; , It I ; , ItI ; , It I ; , It I h
P
P
P
P
P
P
i
T
neste caso o numero de par^ametros a estimar e de 6 e podem ser obtidos atraves da
seguinte relac~ao:
A:~x = ~k
(3.17)
Para o modelo duma superfcie planar em movimento, denindo as entidades:
q = I + I x~0 = a b
h
T
i
k~0 = ,It:q ,It:q
h
2
C=
2
4
P
P
q2 : 2
q2 :
P
P
T
i
q2:
q2: 2
3
5
2
q:I q:I q:I 2
D = q:I q:I q:I q:I q:I 2 q:I q:I a soluca~o pode ser calculada atraves de:
A DT : ~x = ~k
D C
x~0
k~0
4
P
P
P
P
P
P
P
P
P
P
P
P
2
3
2
3
2
3
4
5
4
5
4
5
q:I q:I 2
3
5
(3.18)
Para usar este metodo, de incio, descreve-se a velocidade atraves do modelo am, e se
o determinante da matriz A for nulo ou abaixo dum limiar, ent~ao sera assumido o modelo
translacional. Se ainda para este modelo o determinante da matriz A estiver abaixo dum
limiar ou for nulo ent~ao sera assumido um uxo nulo para a regi~ao considerada.
Nas equac~oes indicadas anteriormente, a soma e efectuada numa regi~ao de n m
\pixels" de modo a estimar os 6 ou 2 par^ametros ( no nossos testes praticos esta regi~ao
3.2. CALCULO
DO FLUXO OPTICO
47
possu as dimens~oes de 23 36 \pixels" para dividir a imagem log-polar no mesmo numero
de regi~oes para as duas dimens~oes da imagem).
Estes modelos usam a imagem log-polar, tal como se esta fosse uma imagem cartesiana.
Contudo na proxima secca~o podera ser visto, que se pode denir os mesmos modelos, mas
usando o facto de que as imagens utilizadas s~ao imagens log-polar.
Renamento do Algoritmo
Como neste caso s~ao utilizadas imagens log-polar, sera de esperar que se possa usar os
resultados diferenciais, tal como se estes tivessem sido tirados da imagem cartesiana no
mesmo ponto onde a amostragem log-polar e feita, mas com a diferenca, de que neste
caso o log-polar e utilizado apenas para aumentar a velocidade de calculo. Este processo
e facil de implementar, dadas as derivadas espaciais (I ; I ) e usando a eq. 2.36 pode-se
obter (Iu ; Iv ), e com a eq. 2.18, gerar as coordenadas (u; v) dadas as coordenadas (; ).
Usando o metodo desta forma, os par^ametros calculados podem ser relacionados com os
par^ametros de velocidade da c^amara, tal como foi explicado anteriormente. Contudo com
este modelo, a profundidade da cena n~ao pode possuir grandes descontinuidades porque
se assume que os pontos tridimensionais est~ao restringidos a um plano.
Vericac~ao do modelo
Apos a soluc~ao do sistema, pode-se calcular o uxo optico para cada ponto da imagem, e
desta forma vericar quais os pontos da imagem que vericam o modelo. Este facto pode
ser vericado atraves da construc~ao de uma imagem erro usando a equac~ao:
Err = I :_ + I :_ + It
2
(3.19)
O uxo optico pode ent~ao ser novamente determinado para as regi~oes da imagem que n~ao
vericaram o modelo, dando assim a possibilidade de detectar diferentes objectos (caso
estes se encontrem a diferentes profundidades).
48
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
3.2.5 Algoritmo de uxo optico de Horn e Schunck Revisto
O terceiro metodo implementado, usa um processo semelhante ao algoritmo proposto por
Horn e Schunck [J. Barron e D. Fleet 94], mas aplicado neste caso ao plano log-polar.
Este processo combina a restric~ao do brilho com uma restric~ao que garante uma certa
suavidade ao campo de velocidade estimado. O metodo dene as grandezas s(; ) e
c(; ), respectivamente de medida de contraste (transico~es abruptas) e erro na restrica~o
do uxo optico como:
2
2
s(; ) = 14 ( _ ( + 1; ) , _(; ) + _ (; + 1) , _(; ) +
[_ ( + 1; ) , _ (; )]2 + [_ (; + 1) , _ (; )]2)
h
i
h
i
2
c(; ) = I _ + I _ + It
O objectivo principal e o de encontrar os valores que minimizam a seguinte equac~ao numa
determinada regi~ao
[s(; ) + c(; )]
(3.20)
h
i
X
;
+
O 2 < , e e usado como uma forma de balancear a import^ancia entre as func~oes s(; )
e c(; ). Se o se aproxima de zero, a funca~o s(; ) tera mais peso no resultado, caso
contrario sera a func~ao c(; ).
A principal vantagem deste metodo advem do facto da minimizac~ao poder ser resolvida
atraves duma soluc~ao iterativa. A soluc~ao iterativa para obter a velocidade e assim dada
por:
k
I _ +I _ k +It
_ k+1 = _ k , I : 1+:(I
+I )
(3.21)
k
_ +I _ k +It
I
:
I
k
_ k+1 = _ , 1+:(I +I )
onde k indica o numero de iterac~oes, _0 e _ 0 indicam estimativas iniciais da velocidade
k
iniciadas a zero, _ e _ k indicam medias locais na vizinhanca dos pontos considerados. Nas
experi^encias realizadas, estas medias foram tiradas dos 8 \pixels" a volta do pixel (; ).
O valor de e o numero de iterac~oes foram obtidos atraves das experi^encias efectuadas e
s~ao um pouco heursticos. No nosso caso usaram-se 5 iterac~oes com = 3:5.
h
h
i
2
2
2
2
i
3.2. CALCULO
DO FLUXO OPTICO
49
Na pratica este metodo apresenta alguns problemas, uma vez que o uxo tem tend^encia
a ser propagado para outras regi~oes devido as medias da velocidade, e nalguns casos, as
zonas da imagem sem movimento podem assim apresentar velocidade n~ao nula. Este
processo pode ser controlado atraves duma escolha adequada para o numero de iteraco~es.
Outro problema importante, neste metodo, prende-se com as atribuic~oes iniciais na periferia da imagem, pois este uxo tambem sera propagado para outras regi~oes da imagem.
3.2.6 Calculo de uxo optico usando correlac~ao
Uma tecnica bastante importante de calculo de uxo optico, pode ser obtida atraves do
uso de correlac~ao, no entanto este metodo apenas foi testado em imagens cartesianas. O
metodo que se apresenta em baixo, assume que a cena visualizada n~ao possui grandes
descontinuidades em termos de profundidade.
A ideia e em cada imagem da sequ^encia, identicar pontos de interesse (estes pontos
v^em de zonas da imagem com alto contraste). Caso n~ao seja possvel identicar estes
pontos, o metodo falha. O operador de selecc~ao dos pontos de interesse tem por objectivo
seleccionar zonas de alto contraste como por exemplo, zonas de contornos, objectos, etc,
de modo a area em redor do ponto ser facilmente identicavel em imagens futuras. Estes
objectivos podem ser concretizados atraves do uso duma func~ao que retorne medidas da
vari^ancia direccional, retornando os pontos com maxima vari^ancia. A vari^ancia direccional
e medida em pequenas janelas quadrangulares, e neste caso e implementada atraves da
soma do quadrado da diferenca entre \pixels" adjacentes em cada uma das tr^es direcco~es
( horizontal, vertical e diagonal). O operador de interesse retorna assim o valor mnimo
de entre os tr^es valores calculados.
Em cada ponto de interesse, e denido um padr~ao de tamanho n n \pixels" na
imagem I (t), e a correlac~ao e efectuada numa janela de pesquisa com tamanho x y e
centrada no mesmo ponto da imagem I (t + 4t). O deslocamento entre o ponto original
e o ponto onde a correlaca~o e maior dene o uxo optico desse ponto.
Para extrapolar o uxo optico para toda a imagem, considera-se um modelo de uxo
am, e neste caso apenas s~ao necessarios 3 pontos para resolver o sistema de incognitas. No
entanto usando apenas 3 pontos pode resultar em soluco~es instaveis, pois a correlac~ao pode
50
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
Figura 3.4: No topo esquerdo: a imagem com os 8 pontos de interesse usados para estimar
o uxo, a imagem central mostra os pontos identicados pelo processo de correlac~ao, a
imagem a direita mostra a diferenca entre as duas imagens anteriores. Em baixo, a
esquerda encontra-se a diferenca entre a segunda imagem, e a imagem original deslocada
pelo campo de uxo estimado pelo processo de Calculo de uxo optico usando correlac~ao.
falhar em algum ponto. Para resolver este problema s~ao usados m pontos de m regi~oes
diferentes da imagem. O vector de medidas efectuado para cada ponto e [u_ i ; v_ i ; ui ; vi ]T
e usando um metodo de mnimos quadrados, pode-se obter a soluc~ao do sistema. Para
cada ponto considerado obtem-se a seguinte relac~ao matricial:
2
2
4
3
2
5
4
1 ui vi 0 0 0
u_i
=
v_i
0 0 0 1 ui vi
6
6
6
6
36
6
6
56
6
6
6
6
6
4
a1
a2
a3
b1
b2
b3
3
7
7
7
7
7
7
7
7
7
7
7
7
7
5
(3.22)
3.2. CALCULO
DO FLUXO OPTICO
51
Figura 3.5: Evoluc~ao do algoritmo de uxo optico normal. Da esquerda para a direita,
encontra-se representada a evoluc~ao da cena, e o respectivo uxo no plano log-polar.
Em geral, dado um sistema linear de equac~oes
A:~x = ~k
(3.23)
onde A e uma matriz de m n elementos (m > n), ~k e um vector de m elementos e ~x
e um vector de n incognitas, a pseudo-inversa, ou soluca~o de mnimos quadrados e dada
por:
~x = AT A ,1 AT ~k
(3.24)
Nos testes foi usado n = 6 e m = 16. Apos a soluc~ao pode-se gerar o uxo optico para
cada pixel da imagem. A Fig. 3.4 mostra um exemplo desta tecnica.
3.2.7 Resultados experimentais com imagens sinteticas
Nesta secc~ao, ser~ao apresentados alguns resultados experimentais, para o uxo optico, e
uxo optico normal descritos anteriormente.
Os primeiros exemplos nas Fig. 3.5, 3.6 e 3.7, s~ao os resultados dos algoritmos
de uxo optico normal, uxo optico usando os modelos ans, e Horn & Schunck (usam
todos uma pir^amide com tr^es nveis de imagens). As imagens s~ao sinteticas e simulam
a translac~ao de uma c^amara na direcca~o do eixo optico. Das guras, pode-se vericar
que o movimento foi detectado por qualquer um dos metodos, sendo o resultado mais
coerente, o dado pelo algoritmo am. Contudo os outros dois, tambem apresentam um
bom comportamento, no entanto dos tr^es metodos, o uxo optico normal e o mais rapido.
A performance obtida pelo algoritmo de uxo optico normal deve-se a utilizaca~o dos
estados de pre- e pos-processamento.
Uma das formas de testar a robustez dos algoritmos na detecc~ao de movimento, e a
utilizac~ao de situac~oes onde a velocidade na imagem aumente ou seja, que esteja sujeita
52
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
Figura 3.6: Evoluc~ao do algoritmo de uxo optico baseado no modelo am
Figura 3.7: Evoluca~o do algoritmo de Horn & Schunck
a uma acelerac~ao. Neste caso sera possvel detectar se os algoritmos conseguiram seguir
perfeitamente o campo de velocidades. Para isso, a mesma situaca~o foi colocada a cada
algoritmo separadamente, onde era simulada uma velocidade crescente. A velocidade
para dois \pixels" consecutivos foi medida, enquanto a sequ^encia decorria. Neste caso
a cena era oblqua relativamente a c^amara, e a Fig 3.8 mostra a evoluc~ao temporal da
velocidade para os tr^es metodos. Conforme pode ser visto, na 9a amostra, onde o pixel
apresenta velocidade n~ao nula, o metodo am detectou velocidade zero, o Horn & Schunck
detectou velocidade diferente de zero, devido ao fenomeno de propagac~ao, e nalmente, o
metodo do uxo optico normal, com a ajuda do ltro - conseguiu detectar a velocidade
crescente.
As experi^encias que se seguem demonstram os resultados para o metodo de renamento
do modelo am conforme explicado na secca~o 3.2.4, neste caso no plano log-polar, de
modo a ser utilizado na detecca~o da posic~ao do FOE .
Na imagem representada na Fig. 3.9 o observador movimenta-se para a frente em
direcc~ao ao canto da parede. Os par^ametros do modelo am para a imagem cartesiana
(256 256) s~ao:
(a1; a2; a3; b1; b2; b3) = (,0:080501; 0:001473; ,0:000403; 0:038492; 0:000294; 0:005596)
enquanto para o modelo am da imagem log-polar (usando 180 amostras angulares e
3.2. CALCULO
DO FLUXO OPTICO
53
2.5
2
velocity
1.5
1
0.5
0
1
2
3
4
5
6
Samples in time
7
8
9
2
3
4
5
6
samples in time
7
8
9
3
2.5
Velocity
2
1.5
1
0.5
0
1
Figura 3.8: Evoluc~ao temporal da velocidade para dois \pixels" consecutivos( + -uxo
optico Normal * -Modelo am o -Horn & Schunck)
54
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
Figura 3.9: No topo esquerdo, esta representada a sequ^encia. No topo direito o respectivo
uxo optico normal. Em baixo a esquerda o modelo am para a imagem cartesiana, e em
baixo a direita o modelo am para a respectiva imagem log-polar.
a = b = 1:025), foi detectado:
(a1; a2; a3; b1; b2; b3) = (,0:057809; 0:000917; ,0:000409; 0:015966; 0:000031; 0:001717)
a maior diferenca pode ser vista em termos dum valor de escalonamento entre os dois tipos
de par^ametros, e este facto acontece devido ao numero de pontos envolvidos no calculo ser
diferente, no entanto ambos os par^ametros mant^em a tend^encia do movimento detectado
(com a vantagem do log-polar necessitar de menor informaca~o).
No segundo exemplo, foram utilizadas imagens reais, e a c^amara roda para a esquerda,
o modelo am para a imagem cartesiana detectou:
(a1; a2; a3; b1; b2; b3) = (,1:053742; ,0:000685; 0:000571; ,0:007082; 0:000003; ,0:000006)
enquanto para a imagem log-polar:
(a1; a2; a3; b1; b2; b3) = (,0:173429; ,0:000018; 0:000218; ,0:011265; ,0:000040; ,0:000049)
e novamente os par^ametros n~ao s~ao iguais, mas mant^em a tend^encia do movimento efectuado.
3.2. CALCULO
DO FLUXO OPTICO
55
Figura 3.10: Em cima a esquerda encontra-se a sequ^encia. Em cima a direita o respectivo
uxo optico normal. Em baixo a esquerda, o resultado do modelo am nas imagens
cartesianas, e a direita o resultado do modelo am aplicado as respectivas imagens logpolar.
56
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
3.2.8 Medida do desempenho de algoritmos de calculo de uxo
optico em imagens log-polar e cartesianas
Barron e outros [J. Barron e D. Fleet 94] implementaram uma serie de tecnicas de calculo
de uxo optico de modo a comparar as suas performances. Nesta secca~o vamos usar as
mesmas denic~oes para analisar os uxos obtidos, mas usando imagens log-polar. Os
resultados apresentados usam as sequ^encias de imagens \Translating and Diverging Tree
sequences", no plano cartesiano e no plano log-polar (para cada caso sera apresentado o
Erro medio (Ave. Err.), Desvio padr~ao (Sta. Dev.) e Densidade (Dens.)).
O algoritmo de uxo optico normal foi implementado, usando um pir^amide com dois
nveis (Now 2L) e usando uma pir^amide com um nvel (Now 1L).
As imagens foram ltradas com tr^es tipos diferentes de ltros, um ltro gaussiano com
= 1:5, um ltro FIR com mascara
[0:051; 0:0; ,0:087; 0:0; 0:298; 0:475; 0:298; 0:0; ,0:087; 0:0; 0:051]
aplicado na direcc~ao u e de seguida na direcc~ao v, e um ltro de Wechsler [H. Wechsler 90]
denido como:
c c c c c
c b b b c
(3.25)
c b a b c
c b b b c
c c c c c
onde 0 < a < 0:5, b = 1=16 e c = 1=32 , a=16.
2
3
6
6
6
6
6
6
6
6
6
4
7
7
7
7
7
7
7
7
7
5
O processo de estimac~ao das derivadas temporais e espaciaise extremamente importante tal como pode ser visto atraves de estudos realizados por F. Bergholm [F. Bergholm 93].
Devido a esse facto, para estimar as derivadas temporais e espaciais foram usados cinco
metodos diferentes:
1. Para as derivadas espaciais: a matriz [[,1; 0; 1]; [,2; 0; 2]; [,1; 0; 1]] para a direcca~o
u e na direcc~ao v pela sua transposta, em cada caso, o resultado e dividido por 8:0.
3.2. CALCULO
DO FLUXO OPTICO
Dif.
Dif.
1
Dif.
2
Dif.
3
Dif.
4
Dif.
5
Gauss com = 1:5
Metodo Ave. Sta. Den.
Err. Dev.
Now 2L 44.32 19.26 27%
Now 1L 37.05 16.22 19%
Horn 37.63 14.97 28%
Ane 26.96 9.83 28%
Second 36.19 11.82 28%
Ane
Now 2L 45.19 17.12 27%
Now 1L 43.76 16.41 24%
Horn 44.81 16.56 28%
Ane 41.31 15.24 28%
Second 45.47 16.74 28%
Ane
Now 2L 47.49 19.50 28%
Now 1L 39.70 18.45 16%
Horn 36.16 15.25 28%
Ane 26.79 14.37 28%
Second 30.34 8.97 28%
Ane
Now 2L 44.29 19.42 28%
Now 1L 38.66 16.12 19%
Horn 38.30 15.12 28%
Ane 28.63 9.55 28%
Second 37.41 12.48 28%
Ane
Now 2L 44.22 19.36 28%
Now 1L 37.85 16.08 19%
Horn 37.90 15.03 28%
Ane 27.87 9.71 28%
Second 36.29 11.78 28%
Ane
57
ltro FIR
Ave. Sta. Den.
Err. Dev.
45.15 18.96 27%
38.33 16.44 19%
37.92 14.70 28%
27.37 10.13 28%
36.15 11.61 28%
ltro de Wechsler
Ave. Sta. Den.
Err. Dev.
44.56 19.18 27%
37.42 16.25 19%
37.90 14.87 28%
27.09 10.06 28%
36.17 11.72 28%
45.59
44.37
45.22
41.91
45.72
17.15
16.60
16.56
15.51
16.83
27%
24%
28%
28%
28%
45.27
44.05
44.88
41.54
45.59
17.17
16.41
16.68
15.38
16.78
27%
24%
28%
28%
28%
47.17
41.31
37.19
26.90
30.54
19.66
18.78
15.39
14.74
8.15
27%
16%
28%
28%
28%
47.24
40.35
36.59
26.83
30.40
19.32
18.54
15.13
14.51
8.56
27%
16%
28%
28%
28%
45.71
40.13
39.28
29.80
37.93
18.79
16.95
15.72
9.87
12.71
27%
19%
28%
28%
28%
45.28
39.07
38.82
29.13
37.62
19.06
16.35
15.21
9.69
12.55
27%
19%
28%
28%
28%
45.37
39.43
38.67
28.85
36.45
18.80
16.52
15.26
10.06
11.75
27%
19%
28%
28%
28%
44.88
38.28
38.26
28.23
36.33
19.03
16.19
14.97
9.90
11.72
27%
19%
28%
28%
28%
Tabela 3.1: Resultados para a sequ^encia \Translating Tree" usando imagens Log-Polar
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
58
Gauss com = 1:5
Ave. Sta. Den.
Err. Dev.
Now 2L 54.97 13.80 99%
Now 1L 45.62 15.91 61%
Horn 46.34 11.25 100%
Ane 20.59 8.28 100%
Second 18.30 0.94 100%
Ane
Now 2L 59.30 4.40 97%
Now 1L 59.01 4.33 86%
Horn 59.47 3.12 100%
Ane 53.84 2.96 100%
Second 53.43 0.72 100%
Ane
Now 2L 57.74 13.68 99%
Now 1L 41.84 20.20 49%
Horn 39.71 16.79 100%
Ane 10.31 18.31 100%
Second 1.09 0.58 100%
Ane
Now 2L 55.32 13.55 99%
Now 1L 46.08 15.90 60%
Horn 46.86 11.34 100%
Ane 23.89 11.05 100%
Second 19.96 1.38 100%
Ane
Now 2L 55.06 13.76 99%
Now 1L 45.64 16.02 60%
Horn 46.55 11.36 100%
Ane 22.61 10.87 100%
Second 18.65 1.19 100%
Ane
Correla. 1.55 0.93 100%
Dif. Metodo
Dif.
1
Dif.
2
Dif.
3
Dif.
4
Dif.
5
Ave.
Err.
56.33
47.26
45.49
19.20
17.16
ltro FIR
Sta. Den.
Dev.
12.93 99%
15.55 61%
10.53 100%
7.89 100%
0.66 100%
ltro de Wechsler
Ave. Sta. Den.
Err. Dev.
55.51 13.49 98%
45.78 15.68 60%
45.74 10.95 100%
19.54 7.37 100%
17.62 0.76 100%
59.95
59.74
59.93
54.82
54.09
4.22 98% 59.40 4.30 97%
4.59 89% 59.13 4.38 87%
3.06 100% 59.44 3.16 100%
2.75 100% 53.95 2.98 100%
0.52 100% 53.54 0.74 100%
58.50
44.17
37.72
9.48
1.87
12.42
19.57
16.29
15.12
0.07
99% 57.73 13.61 99%
50% 41.80 19.89 49%
100% 38.42 15.96 100%
100% 7.56 12.24 100%
100% 1.16 0.14 100%
56.13
48.51
47.21
22.99
19.00
12.87
15.39
10.60
9.14
1.20
98%
64%
100%
100%
100%
55.84
46.23
46.50
21.84
18.79
13.19
15.58
10.94
8.41
0.81
98%
60%
100%
100%
100%
56.35
47.63
46.29
21.34
17.48
12.87
15.76
10.81
9.50
0.96
98%
61%
100%
100%
100%
55.59
45.75
46.07
20.55
17.66
13.48
15.77
11.10
8.47
0.85
98%
59%
100%
100%
100%
1.55
0.93 100%
6.98
5.07 100%
Tabela 3.2: Resultados para a sequ^encia \Translating Tree" usando imagens cartesianas
3.2. CALCULO
DO FLUXO OPTICO
Dif.
Dif.
1
Dif.
2
Dif.
3
Dif.
4
Dif.
5
Gauss com = 1:5
Metodo Ave. Sta. Den.
Err. Dev.
Now 2L 30.10 9.30 28%
Now 1L 26.41 10.69 19%
Horn 27.36 10.27 28%
Ane 18.33 10.38 28%
Second 23.23 8.63 28%
Ane
Now 2L 32.88 8.84 26%
Now 1L 32.35 8.32 24%
Horn 32.60 8.95 28%
Ane 31.06 9.15 28%
Second 32.06 8.71 28%
Ane
Now 2L 29.72 9.56 28%
Now 1L 25.16 11.80 16%
Horn 23.78 10.94 28%
Ane 10.16 10.22 28%
Second 14.62 8.57 28%
Ane
Now 2L 30.43 9.29 28%
Now 1L 27.66 10.37 18%
Horn 27.96 10.42 28%
Ane 20.69 9.99 28%
Second 24.83 8.64 28%
Ane
Now 2L 30.18 9.38 28%
Now 1L 26.88 10.54 18%
Horn 27.66 10.33 28%
Ane 19.49 10.18 28%
Second 24.02 8.63 28%
Ane
59
ltro FIR
Ave. Sta. Den.
Err. Dev.
30.37 9.06 27%
27.33 10.67 19%
27.51 10.34 28%
19.12 10.53 28%
23.47 8.64 28%
ltro de Wechsler
Ave. Sta. Den.
Err. Dev.
30.37 9.21 27%
26.77 10.71 19%
27.49 10.19 28%
18.61 10.45 28%
23.31 8.64 28%
33.29
32.85
33.00
31.54
32.38
8.85
8.41
8.94
9.24
8.70
27%
24%
28%
28%
28%
32.81
32.56
32.69
31.19
32.19
8.80
8.41
8.99
9.30
8.71
27%
24%
28%
28%
28%
30.24
26.47
23.56
10.68
14.99
9.76
11.81
10.93
10.37
8.60
28%
16%
28%
28%
28%
30.20
25.67
23.80
10.46
14.72
9.49
11.80
10.96
10.26
8.58
28%
16%
28%
28%
28%
31.02
29.84
29.42
22.68
26.54
9.82
11.37
10.91
10.68
8.65
27%
20%
28%
28%
28%
30.52
28.45
28.31
21.46
25.46
9.30
10.59
10.44
10.25
8.65
27%
19%
28%
28%
28%
30.86
28.70
28.29
21.11
25.26
9.88
11.35
10.76
10.83
8.65
27%
19%
28%
28%
28%
30.34
27.50
27.94
20.14
24.44
9.15
10.64
10.39
10.36
8.64
27%
18%
28%
28%
28%
Tabela 3.3: Resultados para a sequ^encia \Diverging Tree" usando imagens Log-Polar
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
60
Gauss com = 1:5
Ave. Sta. Den.
Err. Dev.
Now 2L 37.47 13.66 97%
Now 1L 28.60 12.50 61%
Horn 30.68 11.59 100%
Ane 19.40 8.12 100%
Second 18.67 4.60 100%
Ane
Now 2L 39.09 11.71 93%
Now 1L 37.64 11.41 85%
Horn 38.49 11.75 100%
Ane 36.81 11.22 100%
Second 36.43 10.44 100%
Ane
Now 2L 38.02 14.65 99%
Now 1L 24.06 15.72 49%
Horn 24.27 13.12 100%
Ane 8.38 10.37 100%
Second 8.59 4.90 100%
Ane
Now 2L 37.51 13.60 97%
Now 1L 29.04 12.77 60%
Horn 31.11 11.75 100%
Ane 20.90 8.38 100%
Second 19.13 4.48 100%
Ane
Now 2L 37.54 13.66 97%
Now 1L 28.45 12.45 59%
Horn 30.80 11.66 100%
Ane 19.19 6.87 100%
Second 17.65 4.11 100%
Ane
Correla. 17.37 9.16 100%
Dif. Metodo
Dif.
1
Dif.
2
Dif.
3
Dif.
4
Dif.
5
Ave.
Err.
37.55
29.70
30.60
19.48
18.68
ltro FIR
Sta. Den.
Dev.
13.44 97%
12.43 63%
11.04 100%
7.59 100%
4.63 100%
ltro de Wechsler
Ave. Sta. Den.
Err. Dev.
37.52 13.67 97%
28.52 12.14 59%
30.47 11.20 100%
19.13 8.19 100%
18.23 4.53 100%
39.52
38.66
39.23
37.89
37.09
12.18
11.81
11.85
11.39
10.69
97%
90%
100%
100%
100%
39.14
37.88
38.58
36.98
36.45
11.67
11.40
11.73
11.10
10.46
93%
87%
100%
100%
100%
37.93
24.85
22.51
6.09
5.81
14.68
15.43
12.07
9.74
3.32
98% 37.86 14.59 99%
49% 24.03 15.26 48%
100% 23.56 12.78 100%
100% 7.70 11.20 100%
100% 7.60 4.40 100%
37.40
31.05
31.87
21.29
19.74
13.20
12.51
11.15
6.95
4.76
97%
67%
100%
100%
100%
37.46
29.08
30.96
20.61
18.69
13.57
12.23
11.44
7.83
4.48
97%
59%
100%
100%
100%
37.47
29.79
30.72
19.03
18.00
13.41
12.45
11.04
5.79
4.29
97%
64%
100%
100%
100%
37.41
28.36
30.49
18.76
17.44
13.66
11.96
11.18
6.31
4.16
97%
58%
100%
100%
100%
22.15 8.54 100% 44.64 23.39 100%
Tabela 3.4: Resultados para a sequ^encia \Diverging Tree" usando imagens cartesianas
3.2. CALCULO
DO FLUXO OPTICO
61
Para a derivada temporal: atraves da diferenca das imagens numa regi~ao de 3 3
\pixels" e o resultado e dividido por 9.
2. Para as derivadas espaciais: o vector 121 [1; ,8; 0; 8; 1], e usado para preencher uma
matriz de 5 5 onde cada linha e uma copia do vector. Para a derivada temporal:
atraves da diferenca das imagens numa regi~ao de 5 5 \pixels" e o resultado e
dividido por 25.
3. Para as derivadas espaciais: a matriz [[,1; 1]; [,1; 1]] para a direcc~ao u e na direcc~ao
v pela sua transposta, em cada caso, o resultado e dividido por 4:0. Para a derivada
temporal: atraves da diferenca das imagens numa regi~ao de 2 2 \pixels" e o
resultado e dividido por 4.
4. Para as derivadas espaciais: o vector 121 [1; ,8; 0; 8; 1] para a direcc~ao u e na direcc~ao
v pelo seu vector transposto. Para a derivada temporal: atraves da diferenca das
imagens numa regi~ao de 2 2 \pixels" denida pela matriz [[0; 1; 0]; [1; 0; 1]; [0; 1; 0]]
e o resultado e dividido por 4.
5. Para as derivadas espaciais: o vector [,1; 0; 1] para a direcc~ao u e na direcc~ao v
pelo seu vector transposto, o resultado e dividido por 2. Para a derivada temporal:
atraves da diferenca das imagens numa regi~ao de 2 2 \pixels" denida pela matriz
[[0; 1; 0]; [1; 0; 1]; [0; 1; 0]] e o resultado e dividido por 4.
As tabelas 3.1, 3.2, 3.3, 3.4 apresentam os resultados para as sequ^encias de imagens \translational and diverging tree sequences". Atraves dos resultados apresentados,
verica-se que o metodo para estimar as derivadas desempenha um papel bastante importante na performance da tecnica utilizada, enquanto para os ltros experimentados os
resultados apresentam performances semelhantes [F. Bergholm 93]. Em geral, pode-se
concluir que a performance da detecca~o do uxo optico feito sobre imagens log-polar e
mais baixa do que em imagens cartesianas, no entanto os calculos s~ao mais rapidos (em
media, para as imagens testadas apenas e necessario efectuar 28% dos calculos relativamente ao caso cartesiano). Os resultados para a sequ^encia de imagens divergente em
log-polar s~ao melhores quando comparados com a sequ^encia de translaca~o. Este facto
62
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
Sequ^encia Divergente
Ave. Sta. Den.
Err. Dev.
Fleet ( = 1:25)
2.43 1.84 83%
Anandan
24.20 14.66 100%
Horn (modicado) k rI k 5:0
4.98 4.01 100%
Nagel k rI k 2 5:0
5.74 5.72 100%
Lucas (2 1:0)
4.60 3.20 80%
Singh (passo = 2; n = 2; w = 2; N = 4) 18.57 7.21 100%
Metodo
Sequ^encia de translaca~o
Ave. Sta.
Den.
Err. Dev.
28.01 14.38 82%
30.94 15.52 100%
28.38 13.21 100%
37.52 30.17 100%
28.00 13.75 80%
51.48 26.37 100%
Tabela 3.5: Resultados da estimac~ao do uxo optico usando imagens log-polar
para as sequ^encias de translac~ao e divergente, usando tecnicas descritas em
[J. Barron e D. Fleet 94]
conrma que as imagens log-polar s~ao uma boa ferramenta para detectar campos de velocidades dessa natureza (em alguns algoritmos a performance e superior ao respectivo
caso cartesiano). E importante referir que a transformaca~o log-polar foi efectuada com
N = 150, e a = b = 1:025, o que representa neste caso 28% da informaca~o contida na imagem cartesiana. Entre os algoritmos am, verica-se tambem que o mais consistente e o
\metodo am por regi~oes", devido as imagens visualizadas apresentarem descontinuidades
em profundidade.
Os resultados indicados na tabela 3.5, foram obtidos atraves da implementaca~o descrita em [J. Barron e D. Fleet 94], mas usando a representac~ao log-polar da imagem. O
respectivo uxo correcto foi convertido tambem para log-polar atraves da equac~ao 2.35, e
serve de base de comparac~ao com os uxos obtidos dos respectivos algoritmos, utilizando
as medidas estatsticas indicadas anteriormente. Atraves dos resultados, pode-se constatar que estes metodos \o-line" no caso da sequ^encia de translaca~o apresentam tambem
um erro elevado, mas para o caso da sequ^encia divergente, os resultados s~ao na realidade
bastante bons (deve-se salientar que todos os metodos implementam a ltragem usando
mais do que duas imagens para estimar a derivada temporal, enquanto os metodos apresentados nas tabelas 3.1, 3.2, 3.3, 3.4 apenas usam duas imagens, e as imagens n~ao s~ao
ltradas temporalmente).
3.2. CALCULO
DO FLUXO OPTICO
Metodo de FLEET
Base
logartmica
1.025
1.020
1.015
1.010
Sequ^encia Divergente
Ave. Sta. Den.
Err. Dev.
2.43 1.84 83%
5.41 3.83 68%
12.02 7.39 51%
21.16 9.47 38%
63
Sequ^encia de Translaca~o
Ave. Sta.
Den.
Err. Dev.
28.01 14.38 82%
27.18 13.99 68%
25.80 12.53 54%
30.75 21.58 33%
Tabela 3.6: Aplicac~ao do metodo de Fleet a sequ^encia divergente e de translac~ao da arvore,
usando diferentes bases para a transformaca~o log-polar (mantendo a mesma resoluc~ao
angular)
Os resultados indicados na tabela 3.6, foram obtidos atraves do metodo de Fleet, aplicado as sequ^encias de translac~ao e divergente em log-polar, mas variando a base
logartmica da transformac~ao log-polar, mantendo a mesma resoluc~ao angular. Dos resultados torna-se evidente que a escolha da base do log-polar e decisiva para a performance
obtida para o uxo calculado. Pode-se de certa forma armar que a base do log-polar
desempenha o papel de sintonizar o uxo divergente que se pretende detectar coerentemente.
Em conclus~ao, estes resultados indicam que em geral o calculo do uxo optico sobre
imagens log-polar e mais ruidoso do que sobre imagens cartesianas, no entanto para uxos
divergentes, o log-polar apresenta boas performances com uma quantidade de calculos
inferior, o que neste caso e util, pois e esta a conguraca~o de uxo que pretendemos
detectar.
64
~ DE MOVIMENTO NAS IMAGENS
CAPITULO 3. DETECCAO
Captulo 4
Determinac~ao de Par^ametros do
Movimento
- Determinac~ao da direcc~ao de translac~ao
Este captulo reecte o nosso esforco para implementar uma soluca~o que resolva o
problema da navegaca~o de um observador movel, de modo a detectar a sua direcca~o de
translac~ao e manter a c^amara orientada para essa direcc~ao apesar das eventuais alteraco~es
de movimento do observador. O algoritmo que detecta a direcca~o do movimento explora
as propriedades geometricas da transformaca~o log-polar. Os ensaios experimentais foram
efectuados numa plataforma movel equipada com um sistema de vis~ao activa descrito no
Ap^endice B.
Um observador movel que se movimente num meio ambiente desconhecido necessita
de obter a informac~ao visual mais rica possvel, posicionando o sensor de forma a captar
a informac~ao necessaria a actividade que o observador esta a realizar. Considera-se que
a melhor informac~ao visual e por exemplo, possuir as melhores condic~oes de iluminaca~o,
de focagem e o melhor alinhamento para o sensor visual. Neste captulo, apresenta-se
um algoritmo que permite controlar o sensor visual de modo que a informac~ao visual
captada seja util, i.e., ajusta-o para uma direcca~o preferida enquanto em movimento.
65
66
~ DE PARAMETROS
^
CAPITULO 4. DETERMINACAO
DO MOVIMENTO
X
P
Z
Y
Figura 4.1: Campo de uxo optico visualizado por um observador que se movimente na
direcc~ao do polo P (neste caso direcca~o do eixo Z).
Neste trabalho considera-se como direcca~o preferida a direcca~o denida pelo centro de
perspectiva e o foco de expans~ao.
Nas tarefas de navegac~ao atraves de vis~ao, o conhecimento do foco de expans~ao pode
ser usado para determinar e controlar o nosso proprio movimento translacional no espaco.
Este facto e importante, porque com a posic~ao do foco de expans~ao e possvel estimar
alguns dos par^ametros de velocidade do agente ou observador em movimento. Outra
possibilidade pode ser a utilizac~ao desse mesmo par^ametro para alinhar o sensor visual
com a direcc~ao de translac~ao do sistema.
Num sistema de vis~ao activa podemos denir uma direcc~ao preferencial de forma a
permitir captar informac~ao importante para a navegac~ao. No nosso caso esta direcca~o
corresponde a direcca~o de translac~ao do observador. Um sistema visual que, activamente
tente manter essa direcc~ao e equivalente a manter constante a posica~o do foco de expans~ao
no centro da imagem obtida do sensor visual.
4.1 Introduc~ao
Um observador atraves da sua vis~ao (ou c^amaras no caso dum observador articial),
quando se movimenta com uma velocidade de translaca~o num meio ambiente estatico,
observa a projecc~ao dos deslocamentos nas imagens de uma forma similar ao apresentado
na Fig. 4.1. Se o observador mantiver constante a sua velocidade de translaca~o, o
~
4.1. INTRODUCAO
67
polo frontal, equivalente ao ponto central do uxo radial, sera estacionario. Tambem se
verica, que para um objecto estacionario que se encontre numa direcca~o diferente da
direcc~ao do polo frontal, as imagens retinais desses objectos movem-se mais rapidamente
em func~ao do desvio angular relativo a direcc~ao denida pelo polo frontal e pelo centro
de coordenadas (veja-se Fig. 4.1), se estiverem a mesma dist^ancia.
Contudo, se num observador os olhos, corpo ou cabeca (respectivamente c^amaras,
robot movel e sistema de vis~ao num sistema articial) induzem um movimento rotacional,
o polo P n~ao mant^em a mesma estabilidade posicional.
Uma forma de representar o efeito de projecca~o do movimento de um observador e
atraves de uma esfera [F. Bergholm 90]. A esfera que representa o mundo visvel e apenas
uma elegante idealizaca~o matematica que a partida e suciente para representar os campos
de uxo que podem ser gerados pelos movimentos do observador. Na pratica, esta estrutura de representac~ao pode ser simulada parcialmente atraves do uso de c^amaras normais.
A imagem capturada pelas c^amaras e equivalente a efectuar uma amostra da superfcie
esferica. Normalmente esta amostra possui informaca~o visual suciente para ser utilizada
no controlo da actividade do observador. Neste e no proximo captulo apresentam-se dois
algoritmos para navegac~ao com base neste princpio.
Quando um observador se movimenta no espaco, para se obter a maxima informac~ao
possvel, os olhos devem estar alinhados com a direcca~o do movimento. So desta forma e
possvel detectar obstaculos, corrigir trajectorias de navegaca~o, etc. Todos os observadores
humanos no seu dia a dia, efectuam comportamentos deste genero sem se aperceberem.
Uma das direcc~oes preferenciais do alinhamento do sensor visual e a direcc~ao de translac~ao. Desta forma o conhecimento do polo frontal e crucial para efectuar este genero
de comportamento. Neste caso o objectivo e manter o polo frontal no centro do campo
visual. Este captulo reecte o estudo da implementaca~o deste comportamento especco,
atraves de experi^encias simuladas e reais. Descreve-se neste captulo um algoritmo para
detectar a direcc~ao preferida do sensor visual dum observador movel e manter essa mesma
direcc~ao. O algoritmo detecta a direcc~ao do movimento translacional e explora as propriedades geometricas da transformac~ao log-polar para detectar o polo frontal P - veja-se
Fig. 4.1.
Nas proximas secco~es sera ent~ao introduzido em maior pormenor o processo que foi
68
~ DE PARAMETROS
^
CAPITULO 4. DETERMINACAO
DO MOVIMENTO
brevemente descrito nesta introduc~ao.
4.2 Estimac~ao do foco de expans~ao
Esta secc~ao trata do problema da estimaca~o da direcc~ao do vector de velocidade de translac~ao, atraves da medida das velocidades sobre imagens, quando um observador se movimenta num ambiente estatico. A intercepc~ao do vector de movimento translacional, com o
plano imagem gera um ponto que se denomina como foco de expans~ao ou abreviadamente
por ponto FOE [R. Guissin e S. Ullman 91], [C. Fermuller e Y. Aloimonos 91].
Em alguns casos especiais (baixa velocidade de rotac~ao) os vectores de uxo induzidos
na imagem devido ao proprio movimento do observador, apresentam algumas propriedades
geometricas, que podem ser uteis para detectar na imagem o local onde se encontra o foco
de expans~ao. Estas propriedades geometricas, baseiam-se no facto de que os vectores de
uxo s~ao radiais a partir da posic~ao do foco de expans~ao, e que a linha que passa pelo
foco de expans~ao e pelo centro da imagem apenas possu uxo radial conforme pode ser
visto na Fig. 4.2.
Usando estes factos, pode-se estabelecer um mecanismo de procura da posic~ao do
FOE . O processo baseia-se na detecc~ao da orientac~ao angular (direcc~ao F OE ) da linha
que passa pelo centro da imagem e pelo FOE , atraves dum processo de procura para cada
orientac~ao possvel, escolhendo-se a orientac~ao que apresenta menor uxo circular. De
seguida para detectar a posic~ao do FOE , faz-se uma translac~ao do sistema de coordenadas
para cada ponto pertencente a linha encontrada, ate se encontrar um ponto, do qual os
vectores de uxo s~ao radiais (a este metodo chamamos de retina din^amica).
Em navegac~ao atraves de vis~ao, o conhecimento do par^ametro FOE , pode ser utilizado
para determinar e controlar o nosso proprio movimento no espaco. No nosso caso iremos
demonstrar que e possvel detectar a direcca~o de translac~ao do nosso proprio movimento,
atraves de testes efectuados num robot movel simulado e real e com c^amaras com graus
de liberdade de \pan", \tilt" e verg^encia (veja-se Ap^endice C). No caso do robot movel
simulado, a c^amara encontra-se perto do eixo de coordenadas de rotaca~o do robot, de
modo a simplicar a detecc~ao do FOE , ou caso contrario sera impossvel medir com
~ DO FOCO DE EXPANSAO
~
4.2. ESTIMACAO
69
X
FOE
Di
rec ~
çao
θ
FO
E
Y
Figura 4.2: Propriedade geometrica dos vectores de uxo, quando o observador apresenta
uma velocidade de translaca~o.
precis~ao essa mesma posic~ao. O facto de se poder considerar que o robot se movimenta
num plano horizontal e importante, porque a velocidade translacional e perpendicular ao
vector velocidade rotacional, o que simplica a detecc~ao da direcc~ao F OE , tal como sera
descrito nas proximas secc~oes. O robot simulado e id^entico ao robot descrito no Ap^endice
B.
Em primeiro lugar, sera dada uma apresentac~ao das equac~oes de velocidade no plano
cartesiano, atraves do uso da transformaca~o de coordenadas cartesianas para coordenadas
polares de modo a adquirir o conhecimento de como se comporta o uxo induzido na
direcc~ao FOE , quando a restrica~o descrita atras e utilizada para detectar a linha (restric~ao:
vector velocidade translacional e perpendicular ao vector velocidade rotacional).
De seguida, mostra-se que existe uma relaca~o muito proxima entre os uxos induzidos
descritos em coordenadas polares e em coordenadas log-polares, o que permite expandir o
metodo ao caso de imagens log-polar. Este facto e importante, porque atraves do uso de
imagens log-polar, o processo e mais rapido do que com imagens cartesianas (um exemplo
de um trabalho com algumas semelhancas pode ser visto em [R. Guissin e S. Ullman 91]).
Finalmente, ser~ao apresentados os resultados experimentais, no nal desta secca~o 4.2.
70
~ DE PARAMETROS
^
CAPITULO 4. DETERMINACAO
DO MOVIMENTO
4.2.1 Equaco~es de velocidade expressas em coordenadas polares
Para obter a express~ao da velocidade do observador em coordenadas polares e necessario
conhecer os seus par^ametros de movimento: velocidade rotacional e translacional. A medida que o observador se movimenta no espaco tridimensional n~ao homogeneo, as imagens
adquiridas sofrem alterac~oes. Estas alteraco~es do uxo optico induzido na imagem podem
ser formuladas atraves da equac~ao 2.29. As equac~oes de velocidade no plano cartesiano
expressas em coordenadas polares, podem ser encontradas atraves da transformac~ao 2.35
aplicada a equaca~o de movimento 2.29. Apos essa transformaca~o, obtem-se a seguinte
relac~ao (onde Tcp representa a transformac~ao):
2
4
3
_
1 T pA~v + T p B~!
=
Z c t c
_
(4.1)
5
Quando o observador se movimenta com uma velocidade de translac~ao n~ao nula e uma
velocidade de rotac~ao nula, a velocidade (uxo optico teorico) (u;_ v_ ) no ponto do foco de
expans~ao e nula. Por denic~ao o FOE corresponde ao ponto de intercepc~ao do vector de
movimento translacional com o plano imagem, e tem por coordenadas:
(FOEx ; FOEy ) = fx Vx ; fy Vy
(4.2)
Vz Vz
Com esta denic~ao, a linha que passa pelo centro da imagem e pelo ponto de FOE
apresenta as seguintes relac~oes:
8
>
>
>
>
>
<
>
>
>
>
>
:
y
sin() = p(f Vfy) V+(f
V)
x x
cos() =
2
y y
2
x
p(f Vfx)2V+(f
x x
y Vy )2
(4.3)
Chama-se a atenc~ao do leitor para o seguinte facto: aquilo que se pretende numa
primeira fase e detectar a orientac~ao da recta denida pelo foco de expans~ao e pelo
centro da imagem (recta que contem a origem e o FOE ). O algoritmo para determinar
essa orientac~ao efectua uma pesquisa em todas as orientac~oes possveis, ate encontrar a
orientac~ao onde o uxo circular e menor. A equac~ao do uxo circular encontra-se na
segunda linha do sistema matricial indicado na equaca~o 4.1. No entanto, esta equaca~o
~ DO FOCO DE EXPANSAO
~
4.2. ESTIMACAO
71
depende da profundidade Z de cada ponto considerado, o que a partida inviabiliza o
processo de minimizac~ao, pois n~ao existe forma de conhecer a profundidade de cada ponto.
Tal facto pode ser ultrapassado atraves de restric~oes impostas aos vectores velocidade de
modo que a equac~ao para _ obtida a partir de 4.1 n~ao dependa de Z . Uma das restrico~es
que verica tal facto e:
vx :wx = ,vy :wy
(4.4)
Esta equac~ao pode tambem ser escrita na forma vectorial atraves de:
h
2
3
4
5
w
vx vy : x = 0
wy
i
(4.5)
o que e equivalente a armar que estes dois vectores devem ser perpendiculares 1. Note-se
que os vectores encontram-se no mesmo plano.
Utilizando as equac~oes 4.4 e 4.3, em conjunca~o com a equac~ao 4.1 obtemos (na
direcc~ao FOE ):
(4.6)
:_ = cos2()wz ffyx , ffxy , wz ffxy
h
i
e (na direcc~ao perpendicular a direcc~ao F OE ):
_ = 2 sin() wfyx , cos() wfxy + cos() sin()wz
h
fx
fy
, ffxy + vZz
i
(4.7)
Verica-se assim, que a equac~ao 4.6 n~ao depende de Z e apenas apresenta depend^encias
de !z , sendo os outros par^ametros xos para um determinado e .
De momento, interessa tambem constatar que se pode obter semelhantes resultados
para o log-polar, no entanto na secc~ao 4.2.2 sera descrito a forma de utilizar as equaco~es
4.6 e 4.7, para efectuar a detecc~ao da direcc~ao F OE .
Como sera visto na secc~ao que se segue, pode-se efectuar a mesma analise para o caso
do plano log-polar e as equaco~es obtidas s~ao muito semelhantes as equac~oes 4.6 e 4.7,
a menos de determinados factores constantes. Tal facto permite pensar que sera viavel
utilizar o uxo optico medido em imagens log-polar para estimar a posica~o do foco de
expans~ao.
No caso do robot movel, esta restric~ao e desnecessaria, porque os movimentos possveis do robot s~ao
descritos por v~t = [0; 0; vz ]T e ~! = [0; !y ; 0]T (veja-se Ap^endice B)
1
72
~ DE PARAMETROS
^
CAPITULO 4. DETERMINACAO
DO MOVIMENTO
Extens~ao para o plano log-polar
Para o caso do plano log-polar, usando a equac~ao de uxo induzido 2.29, mas agora
atraves da transformac~ao dada pela equac~ao 2.37, permite obter uma equac~ao semelhante
a equac~ao 4.1. Esta equac~ao pode ser expressa por (onde Tclp representa a transformaca~o):
2
4
_
= 1 TclpA~vt + TclpB~!
Z
_
3
(4.8)
5
Usando novamente os resultados das equac~oes 4.4, 4.3, mas agora na equaca~o 4.8,
chega-se a seguinte express~ao (na direcc~ao F OE ):
fovea
:a ::_
= fovea
a cos2 (: )w
"
z
fx , fy , a w fx
fovea
zf
fy fx
y
#
(4.9)
e a (na direcc~ao perpendicular a direcc~ao F OE ):
fovea:a : ln(a):_ = (foveaa )2 sin(: ) wfyx , cos(: ) wfxy
h
+foveaa cos(: ) sin(: )wz ffxy
i
, ffxy + foveaZ a vz
(4.10)
Estas duas equac~oes s~ao semelhantes as equaco~es do caso polar, e como para ambos os
casos, para efectuar a procura da direcca~o angular e necessario utilizar um determinado
valor angular incremental, as equaco~es na realidade, representam a mesma entidade (a
diferenca reside nos valores de escalonamento, e na amostragem radial).
Para um melhor esclarecimento dos algoritmos propostos, nas proximas secc~oes denese a variavel r como r = para o caso polar e r = foveaa para o caso log-polar e tambem
a func~ao F (r; ) como F (r; ) = r:_ para o caso polar e F (r; ) = r::_ para o log-polar.
A estimaca~o da posic~ao do FOE e feita em duas etapas em sequ^encia:
a detecc~ao da orientac~ao da linha que passa na direcca~o F OE , atraves do uso de
um algoritmo de procura que minimiza uma funca~o F (r; ), processo este que se
denomina de \Detecca~o da direcca~o F OE "
a procura em todos os pontos da linha encontrada, do ponto a partir do qual, o
uxo e radial, processo este que se denomina por \Detecc~ao da posic~ao do FOE "
~ DO FOCO DE EXPANSAO
~
4.2. ESTIMACAO
73
4.2.2 Detecc~ao da direcc~ao do foco de expans~ao
Nesta secc~ao aborda-se o problema de detectar a direcc~ao F OE , que basicamente e conseguida atraves dum algoritmo de procura unidimensional, de entre o espaco de todas as
orientac~oes possveis dentro dum crculo unitario (usando um valor incremental para
o ^angulo), usando a equaca~o 4.6 ou a equac~ao 4.9.
Para cada uma das direcco~es, atraves do uso de n pontos arbitrarios, estima-se a
seguinte quantidade:
M = cos2(: )wz ffx , ffy , wz ffx
#
"
y
atraves do uso da seguinte relac~ao:
M =
x
y
n,1 F (r ; )
k
k=0
Pn,1
k=0 rk
(4.11)
[F (rk ; ) , rk M ]2
(4.12)
P
e de seguida acumulando uma estimativa de erro E para cada direcca~o:
E =
nX
,1
k=0
Apos a construc~ao desta func~ao, a direcc~ao F OE e seleccionada como sendo a posica~o
onde a func~ao E e mnima. No caso do FOE estar presente no centro da imagem, a
func~ao E deveria ser constante, logo sem mnimos, este problema pode ser resolvido
atraves do uso dum limiar aplicado a func~ao E . No entanto os casos ambguos poder~ao
ser resolvidos, se a partida se tiver uma estimativa do movimento (i.e. ter o conhecimento
em que quadrante se encontra o FOE ).
4.2.3 Detecc~ao da posic~ao do foco de expans~ao
Apos a detecc~ao da direcc~ao da recta que passa pela posica~o do FOE , e necessario agora
utilizar um algoritmo que permita estimar a posica~o do FOE na recta previamente identicada. Para efectuar esta estimaca~o realizaram-se testes experimentais com os seguintes
algoritmos:
Algoritmo da linha - este processo apenas usa os vectores de uxo pertencentes a
linha FOE de modo a detectar o ponto onde o uxo radial muda de sentido. Se
74
~ DE PARAMETROS
^
CAPITULO 4. DETERMINACAO
DO MOVIMENTO
algum ponto for encontrado, esse e considerado como a posic~ao do FOE . Noutra
situac~ao o processo falha.
Algoritmo da FFT - explora o conceito da \Retina Din^amica" atraves da procura
em cada ponto da linha FOE , por aquele onde o respectivo histograma radial e constante. Esse ponto e o FOE . A FFT e usada para detectar a forma do histograma.
Algoritmo do Desvio Padr~ao - este algoritmo e semelhante ao algoritmo da FFT,
mas, usa neste caso, o desvio padr~ao do histograma de uxos radiais, o que permite
detectar a forma do graco do histograma. Interessa-nos tal como no Algoritmo da
FFT detectar gracos que apenas contenham uma componente DC .
Algoritmo da linha
Este algoritmo baseia-se na constatac~ao de que os vectores de uxo divergem do FOE ,
sendo assim possvel utilizar um processo de procura na linha F OE , de modo a encontrar
o local onde se verica a invers~ao do sentido dos vectores de uxo (basta apenas vericar
esta condic~ao, a nvel do uxo radial, uma vez que a linha F OE minimiza o uxo angular).
Efectuando as convenc~oes que se indicam de seguida, e possvel construir uma funca~o
unidimensional de procura, onde o FOE se encontra no ponto associado a passagem por
zero da func~ao. Considere-se para isso as seguintes convenco~es:
a dist^ancia radial dos pontos na semi-linha F OE e positiva e a dist^ancia radial dos
pontos da semi-linha = FOE + e negativa. Esta denic~ao pode ser utilizada
para denir uma variavel que constituira a abcissa da func~ao de procura e que e
utilizada para indicar qual e o ponto da recta sob analise.
o sentido positivo do uxo radial e no sentido da semi-linha F OE , e negativo no
sentido = FOE + . Pode-se assim denir a ordenada da func~ao de procura, com
a particularidade de se obter um graco muito proximo duma recta.
No caso da recta do graco da funca~o de procura passar por zero dentro dos limites
das abcissas da funca~o, o FOE encontra-se dentro da imagem, caso contrario podera ser
atribudo ao respectivo limite, dependendo do declive.
~ DO FOCO DE EXPANSAO
~
4.2. ESTIMACAO
75
Como e obvio, na presenca de rotac~oes, o que foi descrito anteriormente e invalido,
mas nesse caso em vez duma linha teremos uma parabola, tal como foi constatado experimentalmente. Nesta situaca~o, apenas e necessario encontrar o ponto mnimo ou maximo
da parabola, conforme a concavidade desta, ou ent~ao o local onde esta intercepta o eixo
do x. Este pressuposto apenas foi validado experimentalmente para pequenos valores de
wx , wy e wz , n~ao sendo verdadeiro noutros casos.
Para estimar o FOE , foi assim utilizado um algoritmo de mnimos quadrados que permite identicar a forma que mais se aproxima do graco da func~ao de procura construda,
usando o modelo
y = a:x2 + b:x + c
(4.13)
cuja soluc~ao e dada por (usando m pontos):
2
6
6
6
4
m,1 x4[k]
k=0
Pm,1
3
k=0 x [k]
Pm,1
2
k=0 x [k]
P
m,1 x3[k]
k=0
Pm,1
2
k=0 x [k]
Pm,1
k=0 x[k]
P
m,1 x2[k]
k=0
Pm,1
k=0 x[k]
P
m
3
7
7
7
5
2
3
2
6
6
6
4
7
7
7
5
6
6
6
4
a
: b =
c
m,1 y[k]:x2 [k]
k=0
Pm,1
k=0 y[k]:x[k]
Pm,1
k=0 y[k]
P
3
7
7
7
5
(4.14)
onde a,b,c s~ao encontrados atraves da resoluca~o do sistema (a func~ao parabolica representa tambem uma linha, quando necessario, pelo que e suciente usar este modelo, para
contemplar os dois casos descritos anteriormente).
Algoritmo da FFT
Este algoritmo utiliza o conceito da \Retina Din^amica" introduzido na secca~o 2.3. Para
estimar a posic~ao do FOE , a retina e centrada em cada ponto pertencente a linha F OE , e
para cada um destes pontos, e efectuado um histograma dos uxos radiais. Note-se que o
uxo radial para cada ponto inspeccionado e denido relativamente ao centro da retina, e
por isso diferente do uxo radial denido relativamente ao centro da imagem (uxo radial
detectado pelo algoritmo de calculo do uxo optico). Esta diferenca pode ser vista atraves
da Fig. 4.3. Para efectuar o histograma e necessario projectar o uxo optico segundo a
direcc~ao radial da retina que esta a ser inspeccionada. Se a retina se encontrar centrada
no FOE , o uxo optico sera radial, e apenas para este caso, o histograma apresentara
um valor constante para qualquer das direcc~oes envolvidas no calculo. Caso contrario,
76
~ DE PARAMETROS
^
CAPITULO 4. DETERMINACAO
DO MOVIMENTO
B
A
Figura 4.3: Exemplo do conceito da \Retina Din^amica" aplicada ao caso log-polar, atraves
da utilizac~ao de 8 direcc~oes distintas (o ponto A indica o centro do log-polar e o ponto B
o centro da retina din^amica).
o histograma apresentara termos modulados. Estes termos, aparecem no histograma,
porque quando a retina n~ao se encontra centrada no FOE , a componente radial utilizada
no histograma e diferente para diferentes direcc~oes angulares, mesmo que o modulo do
uxo seja igual. A sugest~ao para este processo, e neste caso, utilizar o algoritmo da FFT ,
para detectar qual dos histogramas apresenta apenas um termo constante.
O conceito da retina din^amicae facilmente aplicavel a imagens cartesianas discretas, ou
a imagens log-polar continuas, no entanto, quando se utilizam imagens log-polar discretas,
a descric~ao apresentada na secc~ao 2.3 n~ao pode ser usada devido a falta de amostras,
quando se pretende mudar o ponto de aplicaca~o da retina. Qual sera ent~ao a soluc~ao? De
modo a evitar efectuar uma amostragem log-polar para cada retina, e neste caso efectuada
a seguinte aproximac~ao: para realizar o histograma s~ao apenas inspeccionadas 8 direcc~oes
angulares (0; 450; 900; ...) da imagem log-polar (usando apenas 4 pontos para cada direcca~o
radial). Para cada direcc~ao inspeccionada, e necessario converter o uxo optico para a
respectiva direcc~ao radial da retina. Tal processo passa-se como se a amostragem logpolar tivesse sido efectuada no local onde se encontra o centro da retina din^amica (isto
apenas e valido, se o numero de amostras angulares da imagem log-polar for elevado). A
Fig. 4.3 exemplica o que foi referido.
~ DO FOCO DE EXPANSAO
~
4.2. ESTIMACAO
77
1.2e−05
"FOEln00.txt"
1e−05
8e−06
6e−06
4e−06
2e−06
0
0
20
40
60
80
100
120
140
160
180
Figura 4.4: Neste exemplo, ~v = [0; 0; 1]T (cm/s) e ~! = 0. A esquerda encontra-se o
resultado da detecc~ao da direcc~ao FOE , e a direita o campo de uxo optico com a linha
FOE , onde o quadrado a preto indica a posic~ao detectada para o FOE . As dist^ancias
focais s~ao fx = fy = 15:0cm=pixel. Neste caso foram utilizadas 180 amostras angulares.
Devido a zona da fovea, que n~ao e transformada para o plano log-polar, e neste caso
bastante difcil detectar a posic~ao do FOE , se este se encontrar nessa zona (e bastante
difcil neste caso usar um esquema de interpolac~ao, para obter informac~ao na zona da
fovea).
Algoritmo do Desvio Padr~ao
Este algoritmo e bastante semelhante ao anterior, no entanto, em vez de usar uma FFT
para detectar a forma do graco dos histogramas, utiliza o desvio padr~ao de modo a
seleccionar qual o histograma que possu um graco constante. O FOE encontra-se
assim no ponto que deu origem ao histograma com um menor valor de desvio padr~ao.
Nas experi^encias realizadas, em geral, e utilizado um metodo de interpolac~ao de modo a
extrapolar o valor da vari^ancia na zona da fovea. No entanto a utilizac~ao da interpolac~ao
normalmente conduz a resultados mais instaveis.
4.2.4 Resultados de simulac~ao
Neste secc~ao, s~ao apresentados os resultados da detecc~ao do FOE , atraves do uso de uxo
optico simulado obtido directamente da equac~ao 2.29. No primeiro exemplo, apenas se
78
~ DE PARAMETROS
^
CAPITULO 4. DETERMINACAO
DO MOVIMENTO
0.006
"FOEln.txt"
0.005
0.004
0.003
0.002
0.001
0
0
20
40
60
80
100
120
140
160
180
Figura 4.5: Neste exemplo, ~v = [1; 1; 1]T e ~! = [0; 0; 0:1]T (graus=s). A direcc~ao F OE
detectada foi de 42o, uma diferenca de 3o, e mesmo na presenca de uma rotac~ao de
elevado valor.
usa uma translaca~o (Fig 4.4), na Fig. 4.5 e efectuada uma rotac~ao em torno do eixo z e
na Fig. 4.6, a detecca~o torna-se mais difcil porque a rotac~ao e no eixo x, e para este caso
o FOE n~ao foi detectado correctamente, porque a restrica~o 4.4 n~ao e vericada (note-se
que se usa aqui uxo optico sem rudo).
4.2.5 Resultados com o sistema experimental
Em geral, a detecca~o do FOE depende da tecnica de detecc~ao do uxo optico. Assim
sendo, uma das chaves para um sucesso na detecc~ao do FOE e a performance da tecnica
de uxo optico utilizada. De modo aos resultados da posic~ao do FOE serem coerentes,
a percentagem de vectores de uxo deve ser elevada, e nas experi^encias realizadas, os
melhores resultados foram obtidos atraves da utilizac~ao do metodo am e am por regi~oes.
Nas Figuras 4.8, 4.9, 4.10, 4.11 e 4.12 apresentam-se os resultados com imagens
sinteticas para os metodos ans, no plano cartesiano e log-polar.
4.2.6 Principais conclus~oes sobre a detecc~ao do foco de expans~ao
Dos algoritmos propostos para detectar a posica~o do FOE , as seguintes conclus~oes podem
ser retiradas:
~ DO FOCO DE EXPANSAO
~
4.2. ESTIMACAO
79
0.0045
"FOEln.txt"
0.004
0.0035
0.003
0.0025
0.002
0.0015
0.001
0.0005
0
0
20
40
60
80
100
120
140
160
180
Figura 4.6: Neste exemplo, ~v = [1; 1; 1]T e ~! = [0:1; 0; 0]T (graus=s). A direcc~ao F OE
detectada foi de 326o, o que e bastante erroneo, no entanto a restrica~o vx :wx = ,vy :wy
n~ao foi vericada.
0.045
0
"FOEln.txt"
"FOE.txt"
−0.1
0.04
−0.2
0.035
−0.3
0.03
−0.4
0.025
−0.5
0.02
−0.6
0.015
−0.7
0.01
−0.8
0.005
−0.9
0
−1
0
20
40
60
80
100
120
140
160
180
0
20
40
60
80
100
120
140
Figura 4.7: Neste exemplo, ~v = [1; 1; 1]T e ~! = [,0:1; 0:1; 0]T . A direcc~ao F OE detectada
foi de 46o, (um erro de 1o), porque a restrica~o vx :wx = ,vy :wy e vericada neste caso.
80
~ DE PARAMETROS
^
CAPITULO 4. DETERMINACAO
DO MOVIMENTO
1
0.4
0.9
data
interpolated
0.2
0.8
0
0.7
−0.2
0.6
0.5
−0.4
0.4
−0.6
0.3
−0.8
0.2
−1
0.1
0
−1.2
0
20
40
60
80
100
120
140
160
180
0
50
100
150
200
250
Figura 4.8: Experi^encia com o modelo am por regi~oes. Neste exemplo, ~v = [1:0; 0; 0:2]T
e !~ = [0; 0:04; 0]T . A direcc~ao F OE detectada foi 10:0o, e o ponto FOE em
(28:852341; 5:087448). Este resultado assume fx = fy = 10:0
a detecc~ao do FOE depende fortemente da estabilidade do algoritmo de uxo optico
usado.
para valores de rotac~ao elevados, apesar de se vericar a restric~ao imposta pela
equac~ao 4.4, a detecc~ao da orientac~ao F OE e bastante instavel.
o algoritmo da linha e o que apresenta resultados menos satisfatorios, porque apenas
usa o uxo da linha FOE .
o algoritmo da FFT n~ao pode ser utilizado no plano log-polar, porque o histograma
apresenta uma resoluc~ao angular baixa.
o algoritmo do desvio padr~ao e de todos, o melhor, n~ao so a nvel da estabilidade,
mas tambem a nvel da interpolaca~o que permite obter o FOE caso ele se encontre
na zona da fovea.
no geral, os algoritmos propostos apresentam melhores resultados quando aplicados
a imagens cartesianas, no entanto o tempo de processamento e mais elevado do que
~ DO FOCO DE EXPANSAO
~
4.2. ESTIMACAO
1.6
81
0.4
data
interpolated
1.4
0.2
1.2
0
1
0.8
−0.2
0.6
−0.4
0.4
−0.6
0.2
0
−0.8
0
20
40
60
80
100
120
140
160
180
0.025
0
50
100
150
200
250
0.06
Log−Polar, data
Log−Polar, interpolated
0.04
0.02
0.02
0.015
−0.02
0
−0.04
0.01
−0.06
−0.08
0.005
−0.1
−0.12
0
0
20
40
60
80
100
120
140
160
180
−0.14
−150
−100
−50
0
50
100
150
Figura 4.9: Experi^encia com o modelo am. O movimento efectuado e id^entico ao
da Fig 4.8. As imagens do topo representam a detecca~o no plano cartesiano. A
direcc~ao FOE detectada foi 350:0o, e o FOE =(54:810425; ,10:335442). As imagens
em baixo referem-se ao caso log-polar, onde a direcc~ao F OE detectada foi 346:0o, e o
FOE =(52:330307; ,14:952591).
82
~ DE PARAMETROS
^
CAPITULO 4. DETERMINACAO
DO MOVIMENTO
0.25
0.15
data
interpolated
interpola
0.1
0.2
0.05
0
0.15
−0.05
−0.1
0.1
−0.15
−0.2
0.05
−0.25
0
−0.3
0
20
40
60
80
100
120
140
160
180
0.0035
0
50
100
150
200
250
0.04
data
interpolated
0.03
0.003
0.02
0.0025
0.01
0.002
0
0.0015
−0.01
−0.02
0.001
−0.03
0.0005
−0.04
0
0
20
40
60
80
100
120
140
160
180
−0.05
−150
−100
−50
0
50
100
150
Figura 4.10: Experi^encia com o modelo am. O movimento efectuado e ~v =
[10:0; 10:0; 4:0]T e ~! = [0; 0; 0]T ,fx = fy = 15:0. O FOE real neste caso encontra-se
em (37:5; 37:5). Na sequ^encia do topo os pontos a branco indicam a posica~o do FOE
detectada. As imagens do centro representam a detecc~ao efectuada sobre imagens cartesianas, onde a direcc~ao FOE detectada foi de 50:0o, e o FOE =(33:318420; 39:707352).
Em baixo encontra-se o resultado para o caso log-polar. A direcc~ao F OE detectada foi
de 34:0o, e o FOE =(14:960556; 10:091019). Neste caso o log-polar n~ao detectou de forma
correcta a posic~ao do FOE .
~ DO FOCO DE EXPANSAO
~
4.2. ESTIMACAO
83
^
Variancia
FFT com 256 amostras angulares
FFT com 256 amostras angulares
FFT com 256 amostras angulares
Figura 4.11: O movimento e ~v = [2:0; ,2:0; 1:0]T , ~! = [0; 0; 0]T ,fx = fy = 10:0. a
posic~ao real do FOE e (20,-20). Os resultados para o plano cartesiano s~ao: algoritmo
da linha (19.292419,-19.977890), algoritmo da FFT (19,-21), algoritmo do desvio padr~ao (18.000000,-19.000000). Usando imagens log-polar obt^em-se: algoritmo da linha
(8.006317,-7.731613), algoritmo do desvio padr~ao sem interpolac~ao (24.000000,-23.000000)
e com interpolaca~o (7.955401,-8.238059).
84
~ DE PARAMETROS
^
CAPITULO 4. DETERMINACAO
DO MOVIMENTO
Variancia
^
Figura 4.12: O algoritmo do desvio padr~ao para o caso do exemplo apresentado na Fig.
4.11
^
4.3. CONTROLO DO ALINHAMENTO DE UMA CAMARA
85
no caso do log-polar, e em geral a precis~ao dos resultados em imagens log-polar e
suciente.
4.3 Controlo do alinhamento de uma c^amara
Nesta secc~ao apresenta-se o algoritmo de alinhamento do sensor visual com o vector de
movimento translacional - detecc~ao da direcca~o preferida de visualizac~ao. Para conseguir
tal comportamento, utilizou-se um dos algoritmos de detecc~ao do FOE proposto na secc~ao
anterior e atraves dum controlador tenta-se manter a posic~ao do FOE no centro das
imagens (Fig. 4.14). O algoritmo de detecc~ao utiliza imagens log-polar e para efectuar
o controlo utilizou-se um sistema de eventos discretos com dois estados, que se encontra
representado na Fig. 4.13. Um dos estados inicia o processo para efectuar a estimativa
das coordenadas X e Y do FOE . O outro estado monitoriza a posic~ao desejada da
c^amara, que foi calculada na malha de realimentaca~o do controlador indicado na Fig.
4.14, utilizando as estimativas de X e Y obtidas no primeiro estado.
O sinal obtido a sada do controlador indica o erro angular relativamente a posica~o
da c^amara. No diagrama 4.14 existem dois sinais de erro X e Y o que poderia levar o
leitor a pensar num sistema de duas entradas duas sadas. No entanto ambos os sinais
s~ao desacoplados, i.e., tudo se passa como se estivesse na presenca de dois sistemas com
uma entrada uma sada. O sinal de erro do X controla o ^angulo de \Pan" da c^amara,
enquanto o sinal de erro do Y o \tilt". Denindo as func~oes de erro como:
erroX [n] = X [n] , Xdesejado
erroY [n] = Y [n] , Ydesejado
(4.15)
o controlador para cada um dos sistemas pode-se ser descrito atraves da seguinte express~ao:
u[n] = kperro[n] + ki
m
X
k=0
erro[n , k] + kd (erro[n] , erro[n , 1])
(4.16)
onde os kp, ki e kd s~ao ajustados experimentalmente e a funca~o erro sera substituda pela
respectiva func~ao em cada caso. As acc~oes do controlador s~ao executadas repartidamente
86
~ DE PARAMETROS
^
CAPITULO 4. DETERMINACAO
DO MOVIMENTO
Modelo para o controlo do alinhamento
α1
α0
0
1
α2
α3
Σ u ={ α 0 , α 1 , α 2 , α 3 }
Descric~ao dos Estados
0: C^amara em repouso e sistema movel em movimento
1: Controlo da c^amara - c^amara e sistema movel em movimento
Descric~ao dos eventos
0: Estima as coordenadas do FOE
1: Estimac~ao do FOE concluda
2: O motor que controla a posic~ao da c^amara ainda n~ao chegou a posica~o nal
indicada pelo controlador
3: O motor que controla a posic~ao da c^amara chegou a posica~o pretendida
e encontra-se parado
Figura 4.13: Modelo do sistema de eventos discreto para o controlo do alinhamento da
c^amara.
por cada um dos estados discretos, i.e., no estado 0 adquirem-se as imagens para estimar o
FOE , enquanto no estado 1 posiciona-se a c^amara na posica~o calculada pelo controlador.
Salienta-se que a posic~ao das c^amaras e controlada por motores de passo.
Na maioria dos casos, o alinhamento da c^amara foi bem sucedido, devido a cena,
altamente texturada e ao movimento entre imagens ser bastante pequeno, o que permite
uma maior estabilidade na detecc~ao do uxo optico. A Fig. 4.15 apresenta um exemplo
da sequ^encia efectuada pela c^amara.
A Fig. 4.16 apresenta os resultados para o alinhamento duma c^amara agora num
ambiente real. Neste caso a c^amara foi alinhada com o vector de translaca~o do robot e
manteve-se bastante estavel como pode ser visto. No entanto para que tal acontecesse,
^
4.3. CONTROLO DO ALINHAMENTO DE UMA CAMARA
+
Desejado{X,Y}
erro{X,Y}
+
87
PID
^
Controlo da camara
-
X,Y
Filtro de
Kalman
Estimador
do FOE
Imagens
Log-Polar
Imagens
Figura 4.14: Controlador utilizado para o controlo do alinhamento da c^amara. Note-se
que algumas acc~oes do controlador s~ao efectuadas no estado 0, enquanto outras no estado
1.
foi necessario colocar desenhos texturados no ch~ao, de modo a existir textura para uma
melhor estimac~ao do uxo optico e consequentemente uma melhor estimativa da posica~o
do FOE .
O controlo subjacente a este processo passa pela tentativa de estabilizar a posica~o do
FOE no centro da imagem. Denindo a func~ao erro como a diferenca das coordenadas
relativamente ao centro da imagem, e utilizando um PID, pode-se assim controlar os
movimentos de \pan" e \tilt" da c^amara. O sistema experimental encontra-se representado na Fig 5.13, onde os espelhos s~ao usados para a navegac~ao e os Pan & Tilt para as
experi^encias de alinhamento da c^amara usando o FOE .
88
~ DE PARAMETROS
^
CAPITULO 4. DETERMINACAO
DO MOVIMENTO
Figura 4.15: Sequ^encia de alinhamento de uma c^amara com o vector de movimento translacional de um robot, na iterac~ao 0, 11, 17, 21, 25, 29, 33, 37, 41, 45, 49 e 53. O ponto a
branco indica a posic~ao do FOE detectado na imagem log-polar que foi depois reconvertido para a imagem cartesiana.
^
4.3. CONTROLO DO ALINHAMENTO DE UMA CAMARA
89
Figura 4.16: Sequ^encia de alinhamento de uma c^amara com o vector de movimento translacional de um robot. O ponto a preto indica a posic~ao do FOE detectado na imagem
log-polar que foi depois reconvertido para a imagem cartesiana.
90
~ DE PARAMETROS
^
CAPITULO 4. DETERMINACAO
DO MOVIMENTO
180
160
140
120
100
80
60
40
20
0
0
20
40
60
80
100
120
140
160
180
0
20
40
60
80
100
120
140
160
180
200
150
100
50
0
−50
−100
−150
−200
Figura 4.17: Em cima encontra-se representada a coordenada x do FOE , enquanto em
baixo temos os comandos em numero de passos enviados para o motor de \Pan" do
sistema. Estes gracos foram obtidos para o exemplo descrito na Fig. 4.16.
^
4.3. CONTROLO DO ALINHAMENTO DE UMA CAMARA
91
160
140
120
100
80
60
40
20
0
0
20
40
60
80
100
120
140
160
180
0
20
40
60
80
100
120
140
160
180
200
150
100
50
0
−50
−100
−150
−200
Figura 4.18: Em cima encontra-se representada a coordenada y do FOE , enquanto em
baixo temos os comandos em numero de passos enviados para o motor de \Tilt" do
sistema. Estes gracos foram obtidos para o exemplo descrito na Fig. 4.16.
92
~ DE PARAMETROS
^
CAPITULO 4. DETERMINACAO
DO MOVIMENTO
Captulo 5
Navegac~ao utilizando vis~ao articial
5.1 Introduc~ao
Neste captulo explora-se a vis~ao por computador para conduzir um robot movel atraves
dos corredores de ligaca~o de salas de um ambiente estruturado, tal como encontramos em
interiores de edifcios. O prototipo tem como objectivo evitar qualquer embate com as
superfcies das paredes do corredor. Para levar a cabo tal tarefa e proposta uma soluc~ao
com base no equilbrio de uxo optico de c^amaras divergentes.
Numa primeira abordagem para solucionar o problema foi utilizado o uxo optico
medido em imagens obtidas por duas c^amaras para controlar a plataforma movel. Cada
uma das c^amaras adquire imagens de uma das paredes. Com base na diferenca dos uxos
calculados em cada uma das imagens, poder-se-a detectar se o robot se encontra mais
afastado ou mais perto duma das paredes. Desta forma, prova-se que e possvel controlar
os movimentos de rotac~ao e translaca~o do robot movel.
Uma extens~ao a esta abordagem e proposta, baseando-se na utilizac~ao das duas
c^amaras, mas agora associando a cada c^amara dois espelhos que permitem simular quatro
c^amaras virtuais (duas c^amaras virtuais por cada c^amara real). Cada um destes espelhos
tem por func~ao fornecer uma imagem da superfcie da mesma parede do corredor. De seguida, atraves de sinais de controlo sintetizados de cada uma das duas imagens da mesma
parede, pode-se estimar de uma forma muito simples um sinal proporcional a orientac~ao
93
94
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
que a superfcie da parede faz com o robot movel. A unica restric~ao a soluc~ao, advem
do facto da alterac~ao da orientac~ao das paredes do corredor necessitar de manter uma
certa continuidade. Esta imposic~ao tem a ver com o facto das imagens obtidas pelos dois
espelhos terem um deslocamento espacial horizontal. Por este facto, os locais onde se
d~ao as transico~es das paredes com diferentes orientac~oes s~ao os pontos mais delicados,
uma vez que um espelho fornece imagens de uma zona com uma determinada orientaca~o,
enquanto as imagens obtidas pelo outro apresentam outra orientaca~o distinta. Desta forma o sistema desenvolvido e incapaz de navegar em locais onde a orientaca~o das paredes
apresentem descontinuidades muito altas.
Na proxima secc~ao vamos analisar o problema do posicionamento das c^amaras em
relac~ao ao centro dum referencial de locomoc~ao. Para tal e introduzido o conceito de
esfera de imagem virtual, cujo centro coincide com o referencial de locomoc~ao. Pretendese estudar a forma de posicionar c^amaras convencionais na superfcie dessa esfera, de modo
a obter amostras do sinal captado nessa esfera de imagens. Inicialmente o estudo e feito
a nvel de um equador da esfera, utilizando c^amaras divergentes e de seguida estuda-se o
efeito da mudanca do ^angulo de verg^encia das mesmas c^amaras.
Finalmente s~ao descritas as duas abordagens indicadas anteriormente e de seguida s~ao
apresentados os resultados nais.
5.2 Motivac~ao
Como e do conhecimento geral, a utilizac~ao do uxo optico como medida para um controlo
de uma plataforma movel apresenta alguns problemas, na medida em que por exemplo, o
uxo optico induzido pelo movimento do observador tem de ser separado do uxo gerado
por um objecto que se movimenta livremente no meio ambiente. Trata-se aqui de um problema de segmentac~ao (separac~ao de uxos nas imagens). Uma forma ecaz, de resolver
o problema, pode ser obtida atraves de correlac~ao, no entanto este processo envolve um
elevado custo computacional. Na soluc~ao apresentada pressup~oe-se que o universo em que
o observador se movimenta e estatico, sendo o uxo optico gerado atraves do movimento
do observador movel, utilizado como medida para recuperar alguma informac~ao do meio
~
5.2. MOTIVACAO
95
ωz
[Cam. Cima]
[Esfera]
ou
[Cyclop]
ωx
f
X
r
[Cam. Esquerda]
Z
X
Z
[Cam. Direita]
Y
Y
Z
X
Y
Vr
[Cam. Baixo]
Figura 5.1: Modelo para um sistema de navegac~ao num mundo tridimensional.
ambiente.
5.2.1 Sensores de imagens esfericos
Para fundamentar as restantes secc~oes deste captulo, suponha que se pretende controlar
a atitude dum veculo no espaco tridimensional relativamente ao meio ambiente, a medida
que este se movimenta. Considerando o sistema de referenciais representado na Fig. 5.1 e
modelando o sensor visual por uma superfcie esferica com um raio r, apenas e necessario
controlar as tr^es velocidades indicadas na gura (n~ao considerando o grau de liberdade
de \swing" do veculo) para atingir qualquer ponto do espaco. Bom, mas na realidade
n~ao temos um sensor esferico, contudo podemos simular um, caso se utilizem c^amaras
convencionais cujas posic~oes obedecam a geometria do hipotetico sensor esferico. Desta
forma, a pergunta que se p~oe a partida, e quantas c^amaras se devem utilizar e onde se
devem colocar na superfcie esferica para adquirir a informaca~o necessaria ao controlo do
veculo. Segundo [Nelson, R.C., Aloimonos, J. 87] e [F. Bergholm 90], o uxo medido
ao longo da superfcie da esfera que apresenta maior relev^ancia para o efeito, e o uxo
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
96
’
[Esfera Vista de tras]
[Esfera Vista de Cima]
eixo Y
A
eixo Z
A
ey
ez
P
ex
P
θ
0
Equador horizontal
ex
α
eixo X
0
eixo X
Equador vertical
Figura 5.2: Decomposica~o do vector velocidade ~p_ nos referenciais descritos pelos versores
e~ ; e~ ; e~ . A esquerda, corte da superfcie esferica segundo um plano contendo os eixos x
e y. A direita, corte da superfcie esferica segundo um plano contendo os eixos x e z
x
y
z
medido segundo o equador e perpendicular a direcc~ao de movimento do veculo. Vamos
ent~ao de seguida efectuar a analise do uxo projectado na esfera.
Considere-se uma esfera de raio unitario em movimento com velocidade expressa por
(~v; !~ ) com ~v; !~ 2 <3. Seja d a dist^ancia do ponto central de projecc~ao da esfera a um
p
ponto tridimensional A com vector ~x. Ent~ao d = x2 + y2 + z 2 e a seguinte relac~ao e
valida:
~x_ = ~! ~x + (~v=d) : k ~x k
(5.1)
Verica-se que qualquer ponto P ao longo da linha de projecca~o do ponto A pode ser
descrito atraves de ~p = ~x; > 0 e 2 <, em particular se P pertencer a superfcie da
esfera tem modulo unitario o que implica =k ~x k,1. A velocidade do ponto A projectada
em P e assim dada por:
~p_ = ~! ~p + (~v=d)
(5.2)
Este vector de velocidade ~p_ pode ser decomposto em tr^es componentes descritas em qualquer sistema de coordenadas ortogonal adequado para o efeito. Como neste momento
interessa estudar o comportamento do uxo ao longo do equador horizontal da esfera
(exemplo esquerdo da Fig. 5.2), vamos descrever o vector velocidade segundo um referencial posicionado nesse equador da esfera, onde o versor e~ tem o mesmo sentido da
direcc~ao radial do ponto A considerado (veja-se Fig. 5.1 e 5.2). Desta forma o ponto
x
~
5.2. MOTIVACAO
97
P na superfcie da esfera e correspondente a projecc~ao de A na sua superfcie, pode ser
denido pelas coordenadas (cos (); sin (); 0). Os versores do referencial s~ao dados por
e~ = [, sin (); cos (); 0]T , e~ = [0; 0; 1]T e o versor e~ n~ao tem interesse uma vez que a
velocidade segundo esta direcca~o n~ao pode ser estimada na superfcie da esfera. Assim a
partir de ( 5.2) temos:
y
z
8
<
:
x
e~ :~p_ = !z + cos ()vy =d , sin ()vx =d ! fluxo paralelo ao equador horizontal
e~ :~p_ = !x sin () , !y cos () + vz =d ! fluxo normal ao equador horizontal
y
z
(5.3)
No nosso caso as velocidades da esfera s~ao dadas por ~v = [0; vy ; 0]T ou ~v = [0; vr ; 0]T e
~! = [!x ; 0; !z ]T pelo que as equaco~es anteriores tomam a seguinte forma:
8
<
:
e~ :~p_ = !z + cos ()vy =d ! fluxo paralelo ao equador horizontal
e~ :~p_ = !x sin ()
! fluxo normal ao equador horizontal
(5.4)
y
z
Pelas equac~oes ( 5.4) conclumos que o uxo normal ao equador permite estimar a velocidade angular !x uma vez que o uxo n~ao depende da profundidade d. Outra conclus~ao
importante a tirar e que o uxo paralelo ao equador tem um comportamento sinusoidal
ao longo desse mesmo equador (note-se que e modulado pela profundidade do respectivo
ponto). Tambem e importante salientar que o uxo paralelo ao equador apos a remoca~o
do factor !z , permite estimar sinais inversamente proporcionais a profundidade em cada
ponto visualizado na superfcie da esfera.
O estudo realizado para o equador horizontal pode ser feito para a mesma circunfer^encia contida no plano Y = 0 (exemplo direito da Fig. 5.2, equador vertical) e apos
se efectuar a decomposica~o da velocidade ~p_ segundo as direcc~oes dos versores e~ e e~ , a
partir de ( 5.2) obtemos:
y
8
<
:
e~ :~p_ = !z : cos () , !x : sin () + vy =d ! fluxo normal ao equador vertical
e~ :~p_ = 0
! fluxo paralelo ao equador vertical
z
y
z
(5.5)
Apos toda esta analise, a pergunta que se segue e, como se pode controlar o sistema,
usando as velocidades medidas na superfcie esferica? Bom, ja se referiu anteriormente da
possibilidade da velocidade medida na esfera ser inversamente proporcional a profundida-
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
98
Primeiro caso
Segundo caso
Eixo Y
Eixo Y
p1
θ
p2
Eixo X
p1
Eixo X
−θ
p2
Figura 5.3: Representac~ao dos pontos relevantes para efectuar o controlo da velocidade
!z .
de, pelo que n~ao sera de estranhar uma possvel comparac~ao entre as velocidades medidas
em diferentes pontos da esfera, desde que se remova o efeito da velocidade de rotac~ao. Por
conseguinte, e perfeitamente natural que se comparem dois pontos laterais divergentes,
de modo a nos permitir controlar as velocidades !z e !x .
No entanto, por simplicidade, para ja considere-se apenas o controlo da velocidade !z .
Analisando a Fig. 5.3, para o primeiro caso, onde o uxo e~ :~p_ paralelo ao equador e
utilizado (equaca~o ( 5.4)), temos:
y
e~ :~p_ 2 + e~ :~p_ 1 = 2!z + vy
y
y
e~ :~p_ 2 , e~ :~p_ 1 = vy
y
y
1
d2
entre os dois pontos
1
d2
, d1 que depende da velocidade !z
1
+ d1 onde e impossvel estimar a diferenca de profundidade
1
Estes resultados a partida indiciam uma depend^encia da velocidade !z , que por sua vez
e prejudicial ao controlo do sistema.
Vericando agora o segundo caso da mesma gura, e utilizando os dois pontos de vista
da mesma posic~ao lateral, obtemos:
e~ :~p_ 2 + e~ :~p_ 1 = 2!z + cos ()vy
y
y
e~ :~p_ 2 , e~ :~p_ 1 = cos ()vy
y
y
1
d2
1
d2
+ d1 - que depende da velocidade !z
1
, d1 , e possvel comparar as profundidades relativas
1
entre os dois pontos, mesmo na presenca das velocidades de rotaca~o !z e !x
~
5.2. MOTIVACAO
99
Destas duas analises, a conclus~ao a retirar e a seguinte: para controlar a velocidade
!z e necessario utilizar quatro c^amaras, duas para cada ponto de vista lateral, caso se
pretenda remover a inu^encia \maleca" da velocidade !z . Note-se que o controlo pode
ser efectuado de forma independente, i.e., obteve-se uma medida proporcional a orientaca~o
da linha denida pelos dois pontos visualizados, com o referencial de locomoca~o.
Quanto ao controlo da velocidade !x apenas s~ao necessarias duas c^amaras posicionadas
da forma representada na Fig. 5.1 atraves de [cam: Cima] e [cam: Baixo], porque o
valor de !x pode ser estimado atraves do uxo obtido nas c^amaras laterais, tal como foi
explicado anteriormente. Convem, no entanto vericar que de facto atraves do uso do uxo
e~ :~p_ normal ao equador vertical dado pela eq. ( 5.5), a diferenca entre o uxo medido nos
pontos de cima e de baixo da esfera permite comparar as profundidades relativas desses
mesmos pontos. Apos efectuar esse calculo temos:
(5.6)
,2!x + vy d1 , d1
2
1
onde !x pode ent~ao ser removido atraves da estimaca~o obtida pelo uxo normal ao equador
horizontal ~ez :~p_ dado pela equac~ao 5.4, onde o termo restante verica de facto tal criterio.
Em resumo, no total s~ao necessarias seis c^amaras, quatro para controlar a velocidade !z
e duas para a velocidade !x .
Note-se no entanto, que se optar-se por medir as velocidades na superfcie da esfera
so no momento em que o sistema se movimenta com velocidade linear, ent~ao apenas e
necessario utilizar quatro c^amaras no total para efectuar o controlo do sistema. Estas
c^amaras devem estar posicionadas como se encontra representado na Fig. 5.1. Com
as c^amaras direita e esquerda o sistema pode controlar a velocidade !z e com as outras
duas a velocidade !x . Contudo apenas com estas quatro c^amaras e impossvel controlar
o sistema, enquanto se efectua movimentos de rotaca~o. Uma das formas de resolver este
problema e atraves do uso de mais duas c^amaras horizontais, tal como foi referido.
Contudo, existe nesta analise simplicaco~es que convem n~ao levar em conta, uma vez
que na realidade n~ao temos a possibilidade de garantir que o centro do sensor esferico
se encontra coincidente com o referencial de locomoca~o. Para isso vamos numa primeira
fase considerar um pequeno deslocamento. De seguida analisa-se mais em pormenor esta
situac~ao.
y
100
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
xcyclop
ω
p cyclop
v
Mcam
[cyclop]
[cam]
r
Esfera virtual
f
Pos
cyclop
p’cam
Figura 5.4: Pequenas superfcies da esfera virtual de raio r obtidas atraves de sensores
esfericos reduzidos.
Simulac~ao de uma esfera virtual atraves de pequenos sensores esfericos
Dada a impossibilidade referida, podemos tentar construir o sensor esferico atraves do uso
de pequenos sensores esfericos, dado que estes s~ao mais faceis de posicionar. Para simular
o sensor esferico virtual a partir de pequenos sensores esfericos e necessario relacionar as
velocidades medidas em cada um dos sensores.
Considere-se ent~ao um pequeno sensor esferico com raio f representado na Fig. 5.4
e centrado num referencial [cam] que permite simular parte da superfcie esferica de raio
r que neste momento e considerada como um sensor esferico virtual (esfera no referencial
[cyclop]). Comparando as relac~oes entre as velocidades medidas na esfera pequena (de
raio f ) e as medidas na esfera virtual (de raio r) para o mesmo ponto tridimensional,
temos:
_
~p_ cyclop = k ~x~xcyclop k r
(5.7)
cyclop
sendo ~x_ cyclop = !~ ~xcyclop + ~v . Nesta situaca~o vericam-se as seguintes relac~oes:
8
>
>
>
<
>
>
>
:
~ cyclop +cyclop RcamM~ cam
~xcyclop = Pos
k M~ cam k =k ~xcyclop , P~ oscyclop k
~ cyclop +cyclop RcamM~ cam + ~v
~x_ cyclop = ~! Pos
(5.8)
onde cyclopRcam e uma matriz de transformac~ao que representa a orientac~ao relativa dos
referenciais associados a cada uma das esferas. A velocidade do mesmo ponto medida na
~
5.2. MOTIVACAO
101
esfera pequena e:
_
~p_0 cam = M~ cam f
(5.9)
k M~ cam k
Dado que a relac~ao entre M~_ cam e ~x_ cyclop e dada por:
_
cyclopR M
(5.10)
cam ~ cam = ~x_ cyclop
expressando a velocidade p~_0cam em funca~o da velocidade ~x_ cyclop obtem-se:
,1 ~x_ cyclop
f
(5.11)
p~_0cam = cyclop Rcam
k M~ cam k
no entanto, descrevendo esta velocidade no referencial [cyclop], obtem-se nalmente a
relac~ao pretendida:
k ~xcyclop k
f
p~_0 cyclop =cyclop Rcamp~_0cam = p~_ cyclop
(5.12)
~ cyclop k r
k ~xcyclop , Pos
Comparando neste momento as equac~oes ( 5.7) e ( 5.12) as principais diferencas encontramse no factor fr que se pode considerar a partida conhecido, e o factor desconhecido
k
G = k~xcyclopk~xcyclop
,P~ oscyclop k que representa a relac~ao entre a profundidade do ponto tridimensional medida na esfera imaginaria e a profundidade medida na esfera pequena. Contudo
repare-se que estas velocidades s~ao velocidades tridimensionais e portanto nas respectivas
esferas apenas s~ao medidas as velocidades no plano tangente a esfera, o que corresponde
a retirar a componente radial, respectivamente a componente na direcca~o ~pcyclop e p~0cam.
Desta forma as duas velocidade estimadas em cada um dos sensores nunca ser~ao iguais.
Este facto tem a ver com a decomposic~ao da velocidade ser efectuada segundo referenciais
com diferentes orientaco~es, onde n~ao e possvel estimar as componentes radiais das velocidades. Existe ainda o problema da projecca~o na esfera pequena variar com a variac~ao
da profundidade do mesmo ponto. Como e obvio tal situac~ao n~ao se passa no caso da
esfera virtual.
Contudo, estes problemas s~ao facilmente solucionados se os vectores p~0cam e ~pcyclop
k~xcyclop k
cyclop (r , f ) e G =
forem colineares. Nesta situac~ao P~ oscyclop = k~~xxcyclop
k
k~xcyclop k,(r,f) 1 para
k ~xcyclop k >> r.
A ttulo de exemplo, se r = 15cm, f = 25mm e k ~xcyclop k >> 1; 5m este factor sera
G = 12
11 1; 0(90) e na presenca de velocidades baixas pode ser desprezado.
h
i
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
102
x
plano imagem
ω
ps
v
^k
f
pc
’
eixo optico
Z
[Camera]
esfera
Figura 5.5: Representac~ao das diferencas entre o pequeno sensor esferico e uma c^amara
convencional.
Simulac~ao do sensor esferico atraves de c^amaras convencionais
Como na realidade os pequenos sensores esfericos v~ao ser simulados atraves de c^amaras
convencionais e importante estudar as diferencas entre ambos.
Considerando a representaca~o da Fig. 5.5, a velocidade ~x_ \sentida" no ponto p~s
da esfera e ~p_ s = k~x~x_ k f , mas projectada na esfera apenas se pode estimar a velocidade
~p_ p = ~p_ s , ~p_ s:x^ x^ = k~x~x_ k f , k~x_~x:^xk f x^ onde ( k~x_~x:^xk f x^) e a componente radial. Para o caso
da c^amara, diferenciando a lei de projecc~ao geometrica p~c = ~xf:k^ ~x em ordem a t, pode-se
expressar ~p_ c = ~xf:k^ ~x_ , (~x:fk^) ~x_ :k^ ~x, que infelizmente n~ao coincide com a velocidade ~p_ p
estimada na superfcie da esfera. Contudo se o vector ~x e o versor k^ forem colineares as
duas velocidades s~ao iguais. Desta forma, apenas se pode utilizar a zona da imagem onde
o sensor e tangente a superfcie esferica, porque so nesse situaca~o ambas as velocidades
podem ser aproximadas.
2
5.2.2 Caso especial da utilizac~ao de um sistema de vis~ao activa
Apesar das analises efectuadas anteriormente, n~ao foi considera um situaca~o, que se prende
com o facto das c^amaras n~ao se posicionarem de uma forma tangente ao sensor esferico
virtual. Um dos exemplos que n~ao obedece a essa situaca~o, e um sistema de vis~ao activa.
Portanto e de alguma forma relevante que se efectue um estudo mais detalhado, para esta
possibilidade, dado o facto de no nosso laboratorio existirem equipamentos que obedecem
~
5.2. MOTIVACAO
103
a essas especicac~oes. Note-se que para esta situac~ao, o centro de projecc~ao das c^amaras
n~ao se situa no centro da esfera virtual e as c^amaras n~ao s~ao tangentes a superfcie da
mesma esfera.
Portanto convem agora utilizar o modelo das c^amaras convencionais. Para estimar
a informac~ao medida nas imagens, e necessario determinar o uxo induzido nas imagens
devido ao movimento do veculo. Para isso, admitindo que todas as c^amaras t^em a mesma
dist^ancia focal f , a relac~ao de rotac~ao entre o referencial da c^amara direita e esquerda
relativamente ao referencial [Cyclop] e respectivamente dada por Rri , Rli:
2
3
6
6
6
4
7
7
7
5
0 0 1
Rri = ,1 0 0
0 ,1 0
0 0 ,1
Rli = 1 0 0
0 ,1 0
2
3
6
6
6
4
7
7
7
5
(5.13)
A translac~ao dos referenciais pode ser expressa para a c^amara direita e esquerda respec~ = [r , f; 0; 0]T e OF
~ = [,r + f; 0; 0]T . As velocidades do
tivamente pelos vectores OF
veculo s~ao dadas pelos vectores ~v = [0; vr ; 0]T e !~ = [!x ; 0; !z ]T , pelo que as velocidades
associadas a um ponto tridimensional p~ = [Xi ; Yi; Zi ]T (onde o ndice i indica c^amara
direita ou esquerda quando substitudo respectivamente por i = r, i = l), s~ao neste caso
dadas por (veja-se ap^endice C):
r
l
i
2
6
6
6
4
X_
Y_
Z_
2
3
~
= Rri,1 ,~v , ~! Rri p~ + OF
7
7
7
5
h
r
r
i
r
6
6
6
4
X_
Y_
Z_
3
7
7
7
5
~
= Rli,1 ,~v , ~! Rlip~ + OF
h
l
i
l
l
(5.14)
Substituindo este resultado na equac~ao 2.27 obter-se-ia o uxo induzido em ambas as
imagens, i.e., u_ l (u; v), v_ l (u; v), u_ r (u; v) e v_ r (u; v). Como se pretende comparar as profundidades dos pontos visualizados, convem que esses pontos sejam pontos correspondentes,
logo pertencentes a uma mesma recta perpendicular a ambos os planos imagem. Este
facto signica que os uxos comparados devem ser u_ r (u; v), v_ r (u; v), u_ l (,u; v) e v_ l (,u; v)
(veja-se Fig. 5.6). Somando os respectivos uxos u_ obtem-se:
2
u
Zr ) (r , f ) (5.15)
u_ r (u; v) + u_ l (,u; v) = 2!z fx + f + fx vr (ZZlZ, Zr ) + fx !z (Zl +
Zr Zl
x
r l
!
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
104
[Cam. Direita]
[Cam. Esquerda]
(u,v)
(-u,v)
X
Z
Z
X
Y
Y
Figura 5.6: Os uxos comparados u_ r (u; v), v_ r (u; v), u_ l (,u; v) e v_ l (,u; v).
1
0.5
0
-0.5
14
-1
12
0
2
10
4
6
8
Zl
6
10
4
12
14
8
Zr
2
0
,Zr . A vantagem
Figura 5.7: Medida da dist^ancia efectuada pelo sistema, neste caso , ZZll+Z
r
desta medida deve-se ao facto de ser independente das velocidades do sistema, contrariamente a apresentada na Fig. 5.8.
~
5.2. MOTIVACAO
105
Subtraindo os uxos u_ obtem-se:
u_ r (u; v) , u_ l (,u; v) = 2 !xfvfx + fx vr (ZZlZ+ Zr ) + fx !z (Zl Z, ZZr ) (r , f )
y
r l
r l
(5.16)
Somando os respectivos uxos v_ obtem-se:
v_ r (u; v) + v_ l (,u; v) = ,2 !xfufy
x
(5.17)
Subtraindo os uxos v_ obtem-se:
v_ r (u; v) , v_ l (,u; v) = 2 !fz uv
x
(5.18)
Dados os resultados apresentados nas equac~oes 5.15, 5.16, 5.17 e 5.18, as seguintes
conclus~oes podem ser tomadas:
as c^amaras devem ter par^ametros fx, fy id^enticos, caso contrario os resultados obti-
dos n~ao permitem tirar as conclus~oes que se seguem, uma vez que as equaco~es 5.15
a 5.18 ir~ao possuir termos que dependem da profundidade em cada pixel.
as equac~oes 5.17 e 5.18 permitem estimar as velocidades de rotaca~o !x e !z , ja que
os termos presentes nas equaco~es n~ao dependem da profundidade, no entanto para
efectuar a estimac~ao e necessario calibrar as c^amaras.
o primeiro termo presente nas equaco~es 5.15, 5.16 representa o efeito das rotac~oes,
e e um factor prejudicial, no entanto pode ser anulado se a estimaca~o de !x e !z for
correcta.
o terceiro termo presente nas equaco~es 5.15, 5.16 e devido as c^amaras n~ao se
encontrarem posicionadas no eixo de rotac~ao, e o seu efeito e tanto maior quanto
maior a dist^ancia ao centro (r , f ). No caso de esta dist^ancia ser nula, o terceiro
termo desaparece.Os termos dependentes da rotaca~o representam uma quantidade
indesejada em ambas as equac~oes.
no caso de se optar por um controlo em que se estimam estas quantidades apenas
na presenca da translac~ao (quando se efectuam rotac~oes com o veculo a medida de
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
106
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
14
12
2
4
10
6
8
8
Zl
10
6
12
Zr
4
14
2
Figura 5.8: Medida da dist^ancia efectuada pelo sistema, neste caso , ZZll,:ZZrr . Esta medida
e prefervel a representada na Fig. 5.7, devido a zona mais planar em locais onde Zl
e Zr s~ao aproximadamente iguais, e nos outros possu um crescimento exponencial. No
entanto o pequeno sen~ao, e o facto da medida ser proporcional a fx vr .
sinais de erro para o controlo s~ao desprezados), ent~ao dividindo ( 5.15) por ( 5.16)
obtem-se uma estimativa da profundidade independente dos par^ametros das c^amaras
e das velocidades, i.e., estaremos a medir ZZll ,+ZZrr (este resultado e importante, pois
pode ser medido sem ser efectuada nenhuma calibraca~o dos par^ametros intrnsecos
das c^amaras, a menos do seu posicionamento).
Por outro lado, se se utilizar apenas o segundo termo da equac~ao ( 5.15), estaremos
a medir uma quantidade proporcional a ZZll,:ZZrr , no entanto a constante de proporcionalidade depende de fx vr . Esta medida e prefervel se a velocidade vr de translaca~o
for constante, uma vez que a medida pode variar com vr . O facto desta prefer^encia
pode ser constatado atraves das Fig. 5.8 e 5.7. Na eventualidade de se optar por
um controlo deste genero, note-se que o facto das c^amaras n~ao se encontrarem no
centro de rotaca~o e irrelevante, pois o termo associado sera nulo.
Importa referir que as medidas efectuadas apenas contemplam o resultado para um pixel
em cada uma das imagens, pelo que efectuando uma media para todos os pontos das ima-
~
5.2. MOTIVACAO
107
,Zr , obtem-se uma estimativa proporcional a profundidade
gens para o caso da medida ZZll +Z
r
de todos os pontos visualizados
n,1 Zli ,Zri
i=0 Zli +Zri
(5.19)
n
Em termos praticos, apenas os locais onde se encontram as arestas dos objectos apresentam uxo optico normal. Este facto introduz uma restrica~o muito forte caso se pretenda
utilizar o algoritmo de uxo optico normal, uma vez que os \pixels" correspondentes indicados na Fig. 5.6 podem n~ao apresentar uxo devido a aus^encia de arestas nesses mesmos
pontos. Nesta situaca~o sera impossvel de medir correctamente as quantidades indicadas,
uma vez que e necessario utilizar o uxo desses dois pontos. Uma forma de ultrapassar
este facto pode passar pela utilizac~ao do uxo am, ja que desta forma para todos os
\pixels" da imagem e possvel calcular o uxo optico. No entanto a introduc~ao deste
metodo de calculo obriga a restringir o meio ambiente a superfcies planares, n~ao sendo
no entanto crtico, ja que as paredes do corredor podem ser aproximadas por planos.
De seguida vai-se generalizar o estudo do posicionamento das c^amaras. A ideia e
tentar que as restric~oes impostas ate agora ao posicionamento das c^amaras n~ao sejam t~ao
restritivas como as actuais.
P
Simetria entre c^amaras Convergentes e Divergentes
Apos a analise efectuada anteriormente, neste momento e importante generalizar outros
posicionamentos para as c^amaras. Pretende-se assim estudar qual o efeito da variac~ao
do ^angulo de verg^encia das c^amaras, nas equac~oes 5.15, 5.16, 5.17 e 5.18. Para isso
suponhamos que as c^amaras direita e esquerda podem ser posicionadas segundo um a^ngulo
de verg^encia simetrico (rotac~ao do eixo y do referencial das c^amaras), dando origem a um
possvel posicionamento simetrico convergente ou simetrico divergente, conforme indicado
na Fig. 5.9. Da analise efectuada na secc~ao anterior, apenas existe a necessidade de alterar
a equac~ao 5.14, de forma a incluir uma matriz de transformaca~o que representa a rotac~ao
no eixo y, para cada um dos referenciais, ou seja, Mr = Rri Ry (,vrg ) e Ml = RliRy (vrg ),
onde vrg e um a^ngulo de verg^encia, assumido como sendo simetrico para ambas as c^amaras.
Vericou-se anteriormente para vrg = 0, que e um dos casos mais simples, que as
equac~oes 5.15, 5.16, 5.17 e 5.18 dependem claramente das velocidades de rotac~ao
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
108
[Esfera Vista de Cima]
[Esfera Vista de Cima]
^
Camara
Esquerda
^
Camara
Esquerda
Vrg
^
Camara
Direita
-Vrg
^
Camara
Direita
Figura 5.9: Estudo do posicionamento das c^amaras para o caso convergente/divergente.
A esquerda apresenta-se o caso de vrg = 0 estudado na secc~ao 5.2, enquanto na Fig.
da direita temos o caso de um posicionamento simetrico divergente (vrg 2 [0; 2 [) ou
convergente (vrg 2 [ 2 ; [).
mesmo que as c^amaras se encontrem posicionadas sobre o eixo de rotaca~o, pelo que n~ao
e de esperar que estas se tornem mais simples para o caso de vrg 6= 0. No entanto
analisando as equac~oes apenas na presenca da velocidade de translac~ao e somando os
respectivos uxos u_ obtem-se:
vrg )u] (Zl , Zr )
u_ r (u; v) + u_ l (,u; v) = Vr [cos(vrg )fx +Zlsin(
(5.20)
Zr
Subtraindo os uxos u_ obtem-se:
vrg )u] (Zl + Zr )
(5.21)
u_ r (u; v) , u_ l (,u; v) = Vr [cos(vrg )fx +Zlsin(
Zr
Somando os respectivos uxos v_ obtem-se:
v_ r (u; v) + v_ l (,u; v) = sin(vrg )VrZl vZr(Zl + Zr )
(5.22)
Subtraindo os uxos v_ obtem-se:
(,Zl + Zr )
(5.23)
v_ r (u; v) , v_ l (,u; v) = , sin(vrg )VrZlv Zr
Analisando as equac~oes 5.20, 5.21, 5.22 e 5.23, podemos vericar a seguinte propriedade:
u_ r (u; v) + u_ l (,u; v) = v_ r (u; v) , v_ l (,u; v) = Zl , Zr
(5.24)
u_ r (u; v) , u_ l (,u; v) v_ r (u; v) + v_ l (,u; v) Zl + Zr
~ COM DUAS CAMARAS
^
5.3. NAVEGACAO
109
cujo resultado n~ao depende do ^angulo de verg^encia (esta equac~ao e valida para todos os
pontos a excepc~ao de alguns pontos u da imagem e posico~es de verg^encia que d~ao origem
a uma divis~ao por zero, por exemplo, para o caso de v_ para vrg = 0 ou vrg = , e para o
caso de u_ para u = 0 quando vrg = 2 ou vrg = 32 ). Este resultado e demasiado abrangente
e importante e dele podem ser tiradas as seguintes conclus~oes, se forem excludos os casos
singulares:
na presenca apenas da velocidade de translaca~o, com base no uxo medido em
posic~oes correspondentes de ambas as imagens, pode-se estimar sempre o valor dado
pela eq. 5.24.
a profundidade e medida segundo o eixo optico das c^amaras e o posicionamento
deste depende do ^angulo de verg^encia.
o valor medido e independente da posic~ao de verg^encia das c^amaras, logo estas
podem ser convergentes ou divergentes.
Um outro processo onde pode ser utilizado este mesmo princpio de posicionamento
das c^amaras e o de seguimento de objectos no espaco tridimensional.
A ttulo nal, pode-se utilizar um sistema de vis~ao activa normal para efectuar acco~es
de navegac~ao, apesar de este n~ao vericar na totalidade as restric~oes do sensor esferico
virtual.
5.3 Navegac~ao com duas c^amaras
Com base no descrito anteriormente, o primeiro processo de navegac~ao que foi testado
usa duas c^amaras posicionadas simetricamente relativamente ao eixo de rotaca~o do robot
como indicado na Fig. 5.10. Tomando como base os seguintes factos:
o movimento de rotac~ao do robot deve ser controlado para evitar o choque com as
paredes do corredor
a velocidade de translac~ao do robot pode ser controlada se for desejavel, no entanto
n~ao e um caso crtico
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
110
^
Camaras
Divergentes
^
Camaras
convergentes
Velocidade 3d
Velocidade 3d
+
-
+
Sinais de fluxo diferentes
Esquerda - , Direita +
Sinais de fluxo diferentes
Esquerda + , Direita -
Sistema deve rodar para a esquerda em ambos os casos
Figura 5.10: A gura mostra um exemplo, onde a plataforma movel deve rodar para a
esquerda, pois o uxo do lado direito e superior em modulo ao do lado esquerdo. Utilizando
a estrategia de posicionamento e de controlo, e indiferente se as c^amaras est~ao numa
posica~o convergente ou divergente.
deniu-se o sinal de \feedback" que controla a velocidade de translac~ao como
Ffeed =
X
p
u_ 2 + v_ 2
(5.25)
Este sinal e o modulo do uxo optico, que fornece informac~ao sobre os objectos texturados que estejam a ser visualizados. Assumindo uma textura homogenea e no caso do
movimento ser elevado, provavelmente existem muitos objectos em linha de vista, pelo
que sera mais cauteloso abrandar a velocidade de translac~ao.
Para efectuar o controlo do movimento de rotaca~o do robot, efectua-se o calculo indicado pela eq. 5.24 para cada pixel. De seguida somando o valor desse calculo para varios
\pixels" obtem-se:
P
Hfeed =
Pk
u_ r (u;v)+u_ l (,u;v)
ku
v
u=,ku v=,kv u_ r (u;v),u_ l (,u;v)
(2 ku + 1) (2 kv + 1)
=
Pk
ku
Zl,Zr
v
u=,ku v=,kv Zl+Zr
(2 ku + 1) (2 kv + 1)
P
(5.26)
Para as experi^encias realizadas para testes neste captulo, o algoritmo de calculo do uxo
optico utilizado e o metodo am. Com base no sinal obtido atraves da eq. 5.26 um
dos algoritmos de controlo da velocidade angular que se pode elaborar para a plataforma
movel encontra-se indicado na Fig. 5.11.
A Fig. 5.12 apresenta o sistema de eventos discretos de modo a permitir controlar a
velocidade de rotaca~o do robot movel. Este sistema discreto e necessario, pois a estimac~ao
~ COM DUAS CAMARAS
^
5.3. NAVEGACAO
111
Sistema adquire sinais
de entrada utilizando as
imagens
Sim
Robot roda para
a esquerda
Sim
Robot roda para
a direita
HFeed > Limiar
~
Nao
HFeed< -Limiar
~
Nao
Robot apenas
efectua movimentos
translacionais
Figura 5.11: Algoritmo de controlo para determinar quando e que a plataforma movel
deve efectuar movimentos de rotaca~o. A velocidade de rotaca~o e estipulada atraves duma
constante proporcional, i.e., !z = !0 + kp (HFeed , Limiar).
112
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
dos sinais de erro do sistema apenas s~ao efectuadas quando o robot movel apresenta unicamente velocidade de translac~ao. O estado 0 serve para garantir esta condic~ao, enquanto
no estado 1 se executa o plano de controlo. O processamento das imagens e efectuado a
25Hz para ambas as c^amaras e o controlo da plataforma movel a 2Hz durante o estado 0
Denindo a func~ao de erro como:
etrans: = (Ffeeddireita + Ffeedesquerda ) , Fdesejado
(5.27)
pode-se usar um controlo baseado num controlador expresso por:
u[n] = kp e[n] + ki
m
X
k=0
e[n , k] + kd (e[n] , e[n , 1])
(5.28)
onde os par^ametros kp, ki e kd s~ao ajustados experimentalmente.
A sada do controlador e utilizada para comandar a velocidade de translac~ao, a menos
de uma constante obtida atraves de uma calibrac~ao experimental. Esta calibraca~o foi
efectuada para permitir controlar o veculo dentro de certos limites de velocidade. Notese que o sinal u[n] comanda a sada em velocidade do sistema relativamente a um valor
pre-estabelecido, i.e., se u[n] = 0 a sada n~ao sera nula.
Dos teste efectuados com esta conguraca~o nunca se obtiveram resultados praticos
satisfatorios, devido a velocidade de rotac~ao, pelo que se passou a congurac~ao descrita
na proxima secc~ao.
5.4 Navegac~ao com duas c^amaras e espelhos
5.4.1 Espelhos como simuladores de varias c^amaras
A tecnica de navegaca~o baseada em espelhos, usa a congurac~ao indicada na Fig. 5.14.
Associado a cada c^amara existem dois espelhos, que simulam dois pontos de vista aproximadamente do mesmo local. Considerando que as paredes do corredor s~ao planares
(i.e. pequenas dimens~oes da parede podem ser aproximadas por um plano), com base nos
sinais de \feedback" detectados em cada um dos espelhos, obtem-se uma medida que esta
relacionada com o ^angulo de posicionamento do plano em relaca~o ao sistema de medica~o
~ COM DUAS CAMARAS
^
5.4. NAVEGACAO
E ESPELHOS
113
Modelo para o controlo da velocidade angular
α1
α0
0
1
α2
α3
Σ u ={ α 0 , α 1 , α 2 , α 3 }
Descric~ao dos Estados
0: Plataforma movel apenas se movimenta com velocidade translacional
1: Controlo da velocidade angular do robot movel
Descric~ao dos eventos
0: Estima as entidades angulares em causa enquanto o robot apenas efectua
movimentos de translac~ao. Esta estimativa e conrmada atraves da aquisic~ao
de varias amostras do sinal, uma vez que o processamento das imagens
funciona a 25Hz enquanto o controlo da plataforma movel e executado a
cad^encia de 2Hz . O sinal HFeed e obtido atraves da media das varias
amostras efectuadas.
1: Inicia o controlador da velocidade angular do sistema
2: Aguarda um tempo xo pre-estabelecido, Ts
3: Envia a plataforma movel um comando para esta executar apenas
movimentos translacionais
Figura 5.12: Modelo do sistema de eventos discreto para o controlo da posic~ao angular
do robot movel.
114
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
Figura 5.13: Sistema de navegac~ao experimental com quatro espelhos. Utiliza uma placa
de aquisic~ao com dois processadores digitais de sinal.
(conforme pode ser visto na Fig. 5.15). Esta relaca~o depende do modelo geometrico associado aos espelhos em conjunc~ao com a c^amara, e aos a^ngulos dos espelhos relativamente
a c^amara.
Desta forma e possvel decidir se o robot movel esta ou n~ao em rota de colis~ao com a
parede.
Utilizando a congurac~ao indicada na Fig. 5.14, pode-se vericar que o sistema e
simetrico, pelo que apenas e necessario analisar uma das c^amaras. Considere-se para isso
a Fig. 5.15. Indicando os sinais medidos em cada imagem dos espelhos como:
1. MMRU - uxo optico medido no espelho de proa na imagem da direita
2. MMRD - uxo optico medido no espelho de popa na imagem da direita
3. MMLU - uxo optico medido no espelho de proa na imagem da esquerda
4. MMLD - uxo optico medido no espelho de popa na imagem da esquerda
uma estrategia de controlo para este caso, que pode ser utilizada e a seguinte (apenas
considerando as estimativas da zona direita):
1. Se k MMRU , MMRD k < limiar ENTA~ O efectua movimentos de translac~ao ou
de rotac~ao para a esquerda
~ COM DUAS CAMARAS
^
5.4. NAVEGACAO
E ESPELHOS
115
Congurac~ao do sistema de navegac~ao com espelhos
Velocidade 3D
Velocidade 3D
2 Espelhos
∆x
2 Espelhos
∆x
∆x
∆x
Velocidade 3D
Velocidade 3D
^
Camara
Direita
^
Camara
Esquerda
-
+
Sinal do Fluxo Medido
Figura 5.14: Nesta Fig. para simplicidade de desenho n~ao se representou a c^amara real
atraves do modelo de perspectiva geometrica, apesar de este ser o modelo correcto.
Parede
Parede
Parede
^
1 camara
direita
2 Espelhos
MMRUMedida no espelho
de proa da direita
~ final
Posicao
,
MMRDMedida no espelho
de popa da direita
~
Posicao
Inicial
,
Movimento
em frente
Figura 5.15: Identicac~ao dos sinais medidos nos espelhos associados a c^amara direita do
sistema
116
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
Sistema adquire sinais
de entrada utilizando as
imagens
~
Nao
HFeedR > Limiar
Sim
HFeed L> Limiar
Sim
PARA O ROBOT
POSSIVEL EMBATE
~
Nao
~
Nao
Sim
HFeed L> Limiar
Robot roda para
a direita
Robot apenas
efectua movimentos
translacionais
Robot roda para
a esquerda
Figura 5.16: Algoritmo de controlo para determinar quando e que a plataforma movel
deve efectuar movimentos de rotac~ao para o caso dos espelhos.
2. Se MMRU , MMRD > limiar ENTA~ O efectua movimentos de rotac~ao para a
esquerda
3. Se MMRU , MMRD < ,limiar ENTA~ O efectua movimentos de rotac~ao: para
a esquerda ou direita (depende das medidas efectuadas nas imagens da c^amara
esquerda do sistema)
Denindo HfeedR = MMRU , MMRD e HfeedL = MMLU , MMLD o algoritmo
global de funcionamento incorporando as estimativas obtidas das quatro imagens pode
ser o descrito atraves do uxograma representado na Fig. 5.16. Salienta-se para o facto
de neste caso a velocidade de rotac~ao ser constante bem como a velocidade translacional.
O algoritmo de controlo apenas decide qual das acc~oes a tomar.
O sistema de eventos discretos e o indicado na Fig. 5.12. No estado 1 e utilizada
a estrategia de controlo indicada anteriormente, enquanto no estado 0 s~ao adquiridos os
sinais de medida necessarios a este metodo de controlo, tal como descrito na Fig. 5.12.
5.5. RESULTADOS SIMULADOS E EXPERIMENTAIS
117
450
"robot6840.txt"
400
350
300
250
200
150
100
50
0
−15
−10
−5
0
5
10
15
20
25
30
35
Figura 5.17: Evoluc~ao da posica~o Y versos X do robot.
O uxo optico e medido de igual modo ao processo sem espelhos, i.e. mede-se a
componente de uxo segundo a horizontal. No entanto, a diferenca neste caso encontra-se
no processo utilizado, i.e. essa componente e medida atraves dum processo de correlaca~o
unidimensional que detecta o deslocamento horizontal entre imagens consecutivas.
5.5 Resultados Simulados e Experimentais
Nesta secc~ao apresentam-se os resultados simulados/praticos dos dois processos. O primeiro processo foi implementado tanto em simulaca~o como numa situaca~o real, no entanto
os resultados com o equipamento existente nunca chegaram a ser sucientemente satisfatorios, pelo que n~ao s~ao aqui apresentados. Quanto ao caso da navegac~ao com quatro
espelhos, n~ao foi efectuada simulaca~o, pelo que apenas se apresentam os resultados obtidos
numa situaca~o real, que demonstram com sucesso o sistema de navegac~ao.
5.5.1 Resultados simulados
Para validar a primeira estrategia, foi desenvolvido um robot movel simulado, com par^ametros
id^enticos ao robot real, com a capacidade de gerar imagens do local onde se encontra posicionado atraves dum programa de \ray tracing" [Povray Team]. O meio ambiente e
118
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
5
"vr_wr6840.txt"
4
3
2
1
0
−1
−2
−3
−4
−5
0
20
40
60
80
100
120
140
160
180
Figura 5.18: Velocidade angular do Robot para o caso da Fig. 5.17.
programavel, e independente do processo, e neste caso especco foi programado um corredor virtual. O robot movel apenas pode ser controlado em velocidade, e possui um modelo
dum sistema de 1a ordem com uma constante de tempo programavel. A cena visualizada
pode ser alterada pelo utilizador, para isso e necessario alterar o cheiro que descreve a
cena, sem maiores alteraco~es. O simulador foi desenvolvido em sistema Unix, e segue uma
losoa de cliente/servidor. Permite varios utilizadores ligados simultaneamente ate um
maximo de 4 (este valor apenas e limitado pelo poder de calculo da maquina, uma vez que
o programa de \ray tracing" e computacionalmente pesado). Para o cliente utilizar o simulador basta usar uma ligac~ao por \sockets" num determinado porto [FreeBSD Team].
O interface e semelhante ao duma \shell" atraves do uso de comandos pre-denidos.
Nos seguintes exemplos, o robot navega num corredor, onde as paredes interceptam-se
em tri^angulo, num ponto mais a frente do robot (nota: o referencial do robot simulado
e diferente do referencial da Fig. B.1, i.e., esta rodado de 90o no sentido do ponteiro
do relogio, e a orientac~ao do robot e medida relativamente ao eixo dos Y ). O tempo de
amostragem e neste caso de 0:2 segundos, o "setup" inicial e V rgright = 10:0o, V rgleft =
,10:0o e a posic~ao inicial do robot de (X; Y; ) = (0:0; 0:0; ,10:0o), o que levaria o robot
a colidir com a parede, se este segui-se em frente. A Fig. 5.17 mostra a evoluc~ao da
posica~o do robot para o caso do processo de navegac~ao sem espelhos. Na cena de teste,
o ^angulo maximo admitido era neste caso de 45o, caso contrario o sistema era incapaz
5.5. RESULTADOS SIMULADOS E EXPERIMENTAIS
119
Figura 5.19: Imagens de ambas as c^amaras nos seguintes tempos de amostragem: 4, 87,
102 e 180, para o caso de navegac~ao sem espelhos.
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
120
40
Robot Cmds
MMLU − MMLD
MMRU − MMRD
30
20
10
0
−10
−20
−30
−40
−50
10
20
30
40
50
60
Figura 5.20: Medidas de \feedback" versos os comandos enviados para o robot, Comandos
(0)- frente (-10)- direita (10)- esquerda (tempo = 0.5s), para o processo com espelhos.
de se reorientar correctamente. Na Fig. 5.18 encontram-se as respectivas velocidades
angulares do robot, enquanto na Fig. 5.19 encontram-se representadas algumas das
imagens adquiridas ao longo do processo de navegaca~o.
5.5.2 Resultados experimentais
Nas Figuras 5.20, 5.21, 5.22, 5.23, 5.24 e 5.25 encontram-se representados os resultados
para o caso do algoritmo de navegac~ao com quatro espelhos, para um dos testes efectuado.
As Fig. 5.21 e 5.20 representam os sinais que foram gerados para este processo.
5.5. RESULTADOS SIMULADOS E EXPERIMENTAIS
121
20
MMLU
MMLD
10
0
−10
−20
−30
−40
−50
−60
20
60
40
60
80
100
120
140
160
180
200
MMRU
MMRD
50
40
30
20
10
0
−10
−20
20
40
60
80
100
120
140
160
180
200
Figura 5.21: Medidas dos sinais MMLU/MMLD e MMRU/MMRD respectivamente (tempo de aquisic~ao 0.08s ou seja 12.5Hz), para o caso da navegac~ao com espelhos.
122
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
Figura 5.22: Navegac~ao com espelhos (1a parte - imagens exteriores)
5.5. RESULTADOS SIMULADOS E EXPERIMENTAIS
Figura 5.23: Navegac~ao com espelhos (2a parte - imagens exteriores)
123
124
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
Figura 5.24: Navegac~ao com espelhos (1a parte - imagens interiores)
5.5. RESULTADOS SIMULADOS E EXPERIMENTAIS
Figura 5.25: Navegaca~o com espelhos (2a parte - imagens interiores)
125
126
~ UTILIZANDO VISAO
~ ARTIFICIAL
CAPITULO 5. NAVEGACAO
Captulo 6
Conclus~oes e trabalho Futuro
6.1 Conclus~oes
Nesta tese pretendeu-se implementar alguns processos visuais, utilizando tecnicas de vis~ao.
Concretamente o trabalho foi sendo denido a medida que o tempo foi decorrendo, tendo
no entanto como objectivo principal o desenvolvimento de um sistema que fosse capaz
de navegar num corredor. As soluco~es deveriam a partida utilizar uxo optico normal
sobre imagens log-polar. Como e evidente, sabe-se a priori, que o uxo optico normal
e ruidoso, e quando utilizado sobre imagens log-polar os sinais da provenientes tornamse ainda mais difceis de tratar. Estes sinais s~ao dependentes dos par^ametros utilizados
na transformac~ao log-polar, uma vez que esta transformaca~o funciona como um ltro que
deve ser ajustado para uma determinada gama. Devido ao rudo associado ao uxo optico
normal, o sistema nunca chegou a funcionar correctamente atraves desta tecnica.
O passo seguinte passou pela introduca~o do uxo am sobre as imagens log-polar. O
processo de navegac~ao passou a ser mais estavel, devido ao uxo am minimizar globalmente a restric~ao do brilho, captando assim a tend^encia do movimento. O facto do modelo
associado ao uxo am, ser denido para superfcies planares, n~ao e uma restrica~o severa,
uma vez que a aproximaca~o e valida se as c^amaras estiverem a visualizar uma area relativamente grande da parede. Este processo funciona no entanto com algumas restric~oes,
devido ao problema da textura necessitar de ser aproximadamente igual em ambas as
127
128
~ E TRABALHO FUTURO
CAPITULO 6. CONCLUSOES
paredes.
Finalmente, o sistema, que actualmente se encontra desenvolvido, e com resultados
satisfatorios, utiliza uma tecnica baseada em dois espelhos de modo a podermos comparar
n~ao o uxo entre as duas paredes, mas duas quantidades do uxo medido sobre a mesma
parede. Desta forma desacoplamos o problema da textura, e o processo torna-se assim
estavel. E verdade, que cam ainda alguns problemas por resolver, nomeadamente o
problema da velocidade, isto porque a data o sistema tem diculdades em navegar a uma
velocidade superior a que consegue actualmente (230mm/s). Outros problemas que se
podem apontar a esta tecnica, t^em a ver com a quest~ao da continuidade das inclinac~oes
da parede (n~ao funciona com ^angulos rectos), e com o a^ngulo inicial com que o sistema
inicia o processo, que n~ao pode ser superior a uma inclinac~ao de 35o.
Quanto a detecc~ao do FOE e realinhamento da c^amara de acordo com o vector de
velocidade de translaca~o do robot, ja foram previamente apresentadas as respectivas conclus~oes, no entanto apenas seria importante de referir, que apesar de funcionalmente o
processo apresentar um bom desempenho, a sua utilizac~ao num sistema pratico tem pouca
ou nenhuma utilidade. Isto porque a partida, ao se iniciar o movimento do robot, sabe-se
quais s~ao os par^ametros do movimento, pelo que o FOE n~ao vem apresentar nenhuma
informac~ao valiosa ao processo. Uma das aplicac~oes, em que talvez possa vir a ser util,
seria a de estabilizar a imagem relativamente a pequenos \micro-movimentos" da c^amara,
devido aos movimentos mais bruscos do robot, no entanto, para efectuar esta tarefa, era
necessaria uma elevada precis~ao no calculo do FOE , o que esta longe de ser o caso ( o
processo actual apresenta em media erros de 10%). No entanto n~ao deixa de ser uma
aplicac~ao interessante, como mostram as mais recentes c^amaras de lmagens aereas (a
estabilizaca~o n~ao e como e obvio feita por imagens, mas por inclinometros).
Em conclus~ao:
a resoluca~o das imagens log-polares e inferior a resoluc~ao das imagens cartesianas,
permitindo assim ganhar tempo para efectuar mais calculos, no entanto a que ter
em conta, o processo de transformaca~o, pois em termos praticos, a transformaca~o
requer tabelas, o que do ponto de vista computacional signica um maior numero
de acessos a memoria,
6.2. TRABALHO FUTURO
129
o processo visual de navegaca~o com uxo optico normal revelou-se instavel, devido
aos erros associados ao uxo normal,
a navegaca~o com os espelhos e estavel, no entanto, como tudo, pode ainda ser
bastante melhorada,
a detecc~ao do FOE ainda n~ao e sucientemente precisa para poder ser utilizada na
resoluc~ao de problemas mais praticos e de maior utilidade,
quanto as tecnicas de detecc~ao do uxo optico, pessoalmente, acho que enquanto
n~ao for resolvido o problema da estabilidade, isto e, ter a certeza que o pixel (u; v) se
movimentou mesmo de uma velocidade (vu ; vv ), tudo pode acontecer, e pessoalmente
sou mais a favor de uxo baseado em tecnicas de correlac~ao, do que tecnicas baseadas
na restric~ao do brilho.
6.2 Trabalho futuro
Relativamente a trabalho a desenvolver futuramente, no caso da navegaca~o autonoma,
gostaria primeiro de salientar, que normalmente um ser humano quando se desloca num
meio ambiente, utiliza como refer^encias pontos de interesse - \landmarks" -, sons, etc.
Como o que nos interessa, e a utilizaca~o da vis~ao, para efectuar navegaca~o, se decidirmos
enveredar por este caminho, o problema, neste caso, consiste em saber como s~ao seleccionadas essas \landmarks". E evidente, que na escolha das \landmarks" reside a chave
do problema, uma vez que seleccionada uma \landmark", pode-se impor como objectivo, chegar o mais perto possvel, ou manter uma dist^ancia constante, etc. A vantagem
deste processo, advem do facto de a nvel do processo visual, poder ser resolvido com
correladores, o que e um processo bem mais estavel do que o uxo optico, se bem que
mais dispendioso computacionalmente, e aqui sim, as imagens log-polar podem desempenhar um papel preponderante, conforme ja foi provado por trabalhos desenvolvidos por
[G. Sandini e C. Capurro 95]. Dos varios problemas que esta losoa possa apresentar,
um esta relacionado com a estimaca~o da dist^ancia da base movel a \landmark". As pessoas que ja trabalharam em \tracking", das quais eu faco parte, sabem perfeitamente, que
130
~ E TRABALHO FUTURO
CAPITULO 6. CONCLUSOES
e necessario uma elevada precis~ao a nvel do posicionamento dos motores de verg^encia, e
de pan do sistema que tenta efectuar o tracking. Um outro factor crtico, encontra-se a
nvel da sincronizac~ao de processos, tais como, ler a posica~o do "encoder" o mais proximo
possvel do momento de aquisic~ao da imagem, uma boa calibrac~ao, etc. O engracado, e
que relativamente a estimac~ao da dist^ancia a \landmark", esta poder ser dada apenas por
uma c^amara onde o zoom seja controlado de modo a manter constantes as dimens~oes do
padr~ao na imagem. Desta forma a dist^ancia a \landmark" seria dada em funca~o da posic~ao do motor de zoom da c^amara, eliminando assim os problemas inerentes a utilizac~ao
da triangulac~ao a quando da utilizac~ao das duas c^amaras. Existem como e evidente,
problemas a nvel do tracking da \landmark", que t^em a ver com o ponto de vista da
c^amara relativamente a \landmark". Quanto ao processo de escolha da \landmark", e
algo que a nvel computacional e \transcendental", pois requer intelig^encia por parte da
maquina (la chegaremos, mas talvez infelizmente, n~ao na minha gerac~ao). No entanto,
uma das possibilidades para a selecc~ao das \landmarks", pode passar pela simulac~ao de
dois ouvidos, de modo a implementar processos de sacada activados sonoramente. Este
pode ser de facto um caminho a seguir, integrar processos auditivos em conjunca~o com
processos visuais, uma vez que no caso dos seres humanos, podemos vericar que eles se
encontram estritamente relacionados.
Ap^endice A
Denico~es e convenc~oes
Neste trabalho s~ao usadas as seguintes notac~oes:
(u; v) - refer^encia a coordenadas cartesianas
(u;_ v_ ) - refer^encia ao uxo optico no plano cartesiano
(; ) - refer^encia a coordenadas polares
(;_ _) - refer^encia ao uxo optico no plano polar (ou plano retinal)
(; ) - refer^encia a coordenadas log-polares (num domnio contnuo)
(;_ _) - refer^encia ao uxo optico no plano log-polar (por vezes designado plano cortical)
(; ) - refer^encia a coordenadas log-polares (num domnio discreto)
(;_ _ ) - refer^encia ao uxo optico no plano log-polar (por vezes designado plano cortical)
f - dist^ancia focal da c^amara
su - factor de escala na direcc~ao u do plano cartesiano
sv - factor de escala na direcc~ao v do plano cartesiano
fx = f:su - dist^ancia focal na direcca~o do eixo u do plano cartesiano
fy = f:sv - dist^ancia focal na direcca~o do eixo v do plano cartesiano
[X; Y; Z ] - coordenadas tridimensionais no referencial c^amara
131
~ E CONVENCOES
~
APE^NDICE A. DEFINICOES
132
p
i - numero imaginario (i = ,1)
Ap^endice B
O Sistema do Robot Movel
O robot movel utilizado no trabalho e designado por ROBUTER [Robuter 92]. Os movimentos executados pela plataforma movel adv^em de dois motores DC associados a cada
uma das rodas motoras. Os movimentos permitidos por esta conguraca~o encontram-se
representados na Fig. B.1. O controlo dos motores e efectuado atraves dum sistema
de multiprocessamento baseado no processador 68020, instalado na plataforma movel. A
unica responsabilidade do PC que controla o robot, e a de enviar os par^ametros do movimento que se pretende executado. Os movimentos representados na Fig. B.1 podem
ser divididos em tr^es grupos: translacional (sem velocidade angular), rotac~ao em torno
do centro do eixo central representado na g. pelo ponto RC (sem velocidade linear),
e movimentos compostos. Para denir um dos tr^es movimentos descritos, alem de ser
necessario indicar a velocidade angular e linear, e tambem necessario indicar a durac~ao
do movimento.
Tipo de
Velocidade Linear Velocidade Angular Trajectoria Tempo de durac~ao
Movimento
(mm/s)
(mrad/s)
Raio
(unidades de 40ms)
translacional 1000; :::; 50; 0
0
0
>0
rotacional
0
1000; ::: 100; 0
0
>0
composto 1000; :::; 50; 0 1000; ::: 100; 0 > 400mm
>0
Tabela B.1: Par^ametros para controlar a velocidade da plataforma movel
133
APE^NDICE B. O SISTEMA DO ROBOT MOVEL
134
v>0
w=0
v>0
w>0
v>0
w<0
X
Y
RC
v<0
w<0
v<0
w=0
v<0
w>0
Figura B.1: Movimentos possveis de serem executados pela plataforma movel. w e a
velocidade angular, v e a velocidade linear, r e o raio da trajectoria e o ^angulo de
orientac~ao.
Os valores validos para as velocidades e duraca~o do movimento dependem do tipo de
movimento a executar, e s~ao representados na tabela B.1. Se o movimento e do tipo
composto, o raio e o arco da trajectoria podem ser obtidos atraves das seguintes relac~oes
(T designa o tempo disponvel para executar o movimento):
mm=s] 103
(B.1)
r[mm] = wv[[mrad=s
]
]
[mrad] = w[mrad=s
(B.2)
T [s]
Os movimentos descritos ate esta altura, s~ao baseados num controlo em velocidade, e
podem ser substitudos ou parados a qualquer momento por outro movimento com outros
par^ametros. A transic~ao entre os movimentos e controlada pelo sistema de multiprocessamento, assegurando um movimento global suave do robot.
As seguintes linhas s~ao exemplos de comandos que podem ser enviados a plataforma
movel, permitindo executar um controlo em velocidade:
135
Figura B.2: O sistema de navegac~ao autonomo com o sistema de vis~ao activa, para desenvolvimento de tarefas baseadas em informaca~o visual.
1. usando um movimento composto: "MOTV LA V=100 W=100 T=50";
2. usando um movimento de rotaca~o pura: "MOTV LA V=0 W=100 T=50";
3. usando um movimento linear: "MOTV LA V=100 T=50".
Outro tipo de movimentos possveis, s~ao os baseados no controlo da posic~ao da plataforma movel. Neste caso, os par^ametros especicados, denem a dist^ancia que cada uma
das rodas motrizes devem percorrer, e o tempo em que elas devem executar essa tarefa
(em unidades de 40ms)
O proximo comando exemplica uma das formas deste controlo posicional, executando
neste caso um movimento de rotaca~o em torno do ponto RC :
1. "MOVE P RC=-200,200 P=100".
Na Fig B.2 encontra-se representado o sistema fsico.
136
APE^NDICE B. O SISTEMA DO ROBOT MOVEL
Ap^endice C
Cinematica dos sistemas autonomos
utilizados
Nesta secc~ao, e desenvolvida a cinematica de posica~o/velocidade directa/inversa, para
determinar a posic~ao e orientaca~o dum sistema de vis~ao activa montado num robot movel.
O objectivo principal, e a obtenc~ao das express~oes do uxo induzido a nvel das imagens
de uma c^amara sob a inu^encia dos movimentos dos graus de liberdade disponveis.
C.1 Introduc~ao
Em termos de analise da cinematica, pode-se considerar o robot como sendo constitudo
por corpos rgidos ligados entre si (a esta ligaca~o tambem se chama de junta ou junc~ao),
que possuem capacidade de se movimentarem. Para descrever as relac~oes de translaca~o e
rotac~ao entre ligaco~es adjacentes, Denavit, e Hartenberg (DH), propuseram um metodo
que automaticamente estabelece a matriz de relac~ao entre dois referenciais duma cadeia
de referenciais [K.S.Fu 87]. Para um maior esclarecimento do que se segue, suponha-se
que se possui n +1 referenciais, numerados de 0 a n, e represente-se um referencial generico
como o i-esimo referencial.
137
138
APE^NDICE C. CINEMATICA
DOS SISTEMAS AUTONOMOS
UTILIZADOS
C.1.1 Transformac~oes entre referenciais
Com este metodo, cada sistema de coordenadas pode ser estabelecido e determinado
atraves de tr^es regras basicas:
1. O eixo Zi,1 pertence ao eixo de movimento da i-esima junc~ao.
2. O eixo Xi e normal ao eixo Zi,1, e o seu sentido aponta do eixo Zi,1, para fora.
3. O eixo Yi completa o referencial atraves da regra da m~ao direita.
A representac~ao de DH dos referenciais associados aos corpos rgidos, dependem de
quatro par^ametros associados a cada junta. Estes quatro par^ametros descrevem completamente cada junta, seja ela prismatica (translaciona na direcc~ao do eixo Z ) ou de
revoluc~ao (apenas roda em torno do eixo Z ), e s~ao denidos da seguinte forma:
1. i e o ^angulo da junc~ao do eixo Xi,1 para o eixo Xi , medido a partir do eixo Zi,1
(utilizando a regra da m~ao direita).
2. di e a dist^ancia medida da origem do (i , 1)-esimo sistema de coordenadas ao longo
do eixo Zi,1, ate a intercepc~ao dos eixos Zi,1 e Xi .
3. ai e a dist^ancia desde o ponto de intercepc~ao dos eixos Zi,1 e Xi ate a origem do
i-esimo referencial medida ao longo do eixo Xi (ou a dist^ancia mais curta entre os
eixos Zi,1 e Zi).
4. i e o ^angulo medido do eixo Zi,1, para o eixo Zi em torno do eixo Xi (usando a
regra da m~ao direita).
A partir do momento, em que cada referencial se encontra estabelecido, obedecendo
as regras do metodo DH, pode-se usar a matriz homogenea de transformac~ao entre dois
referenciais consecutivos, por exemplo, o i-esimo e o (i-1)-esimo referencial. A matriz que
relaciona os dois referenciais e dada por:
~
C.1. INTRODUCAO
139
cos i , cos i sin i sin i sin i ai cos i
i,1A = sin i cos i cos i , sin i cos i ai sin i
(C.1)
i
0
sin i
cos i
di
0
0
0
1
onde i , ai , di s~ao constantes, enquanto i e uma variavel associada as junc~oes de revoluc~ao.
No caso da junc~ao ser prismatica, a variavel da junca~o e di, enquanto i , ai e i s~ao
constantes.
A transformac~ao inversa pode ser calculada atraves de:
cos i
sin i
0
,ai
i A = , cos i sin i cos i cos i sin i ,di sin i
(C.2)
i,1
sin i sin i , sin i cos i cos i ,di cos i
0
0
0
1
A relaca~o entre o referencial nal, e o primeiro referencial, pode assim ser dada atraves
da relac~ao da matriz de cinematica directa:
2
3
6
6
6
6
6
6
4
7
7
7
7
7
7
5
2
3
6
6
6
6
6
6
4
7
7
7
7
7
7
5
n
=0 A1:1 A2: : : : :n,1An
(C.3)
nA
0
=n An,1: : : : :2A1:1 A0
(C.4)
0A
e para a transformaca~o inversa:
C.1.2 Relac~oes de velocidade
Nesta secca~o e apresentada a forma de relacionar as velocidades associadas a cada referencial, de modo a poder calcular a velocidade num determinado ponto dum referencial.
Aproximac~ao geometrica
Na representaca~o de DH, a matriz que relaciona os referenciais 0-esimo e i-esimo, pode
ser escrita da seguinte forma:
0Ri 0di
0A =
(C.5)
i
0 1
2
3
4
5
140
APE^NDICE C. CINEMATICA
DOS SISTEMAS AUTONOMOS
UTILIZADOS
onde 0 di representa a relac~ao de deslocamento do referencial i-esimo, e 0 Ri representa a
sua orientaca~o.
A aproximac~ao geometrica, e baseada no produto vectorial (veja-se a secc~ao C.4), i.e.,
se um corpo associado com um referencial, se movimenta com uma velocidade angular
~!i e uma velocidade linear ~vi , um ponto P~i = [X; Y; Z ]T , no i-esimo referencial tera uma
velocidade
P~_ i = ~!i P~i + ~vi
(C.6)
esta velocidade pode ser expressa no 0-esimo referencial atraves da matriz de orientaca~o
0Ri:
P~_ 0 =0 Ri:P~_ i =0 Ri: ~!i P~i + ~vi
(C.7)
contudo, notando que no caso em que R e uma matriz ortogonal, verica-se a seguinte
relac~ao,
R ~a ~b = (R:~a) R:~b ;
(C.8)
e porque, na representaca~o de DH, a rotaca~o e efectuada em torno do eixo Zi, e a translaca~o
tambem e segundo a direcc~ao do eixo Zi, a velocidade P~i pode ser expressa no 0-esimo
referencial como:
P~_ =k ~! k : 0R : [0; 0; 1]T 0 R :P + k ~v k 0R : [0; 0; 1]T
(C.9)
0
i
i
i i
i
i
mas 0Ri [0; 0; 1]T representa o eixo Zi no 0-esimo referencial, e 0Ri :Pi pode ser expresso
como 0 Ai:[PiT ; 1]T ,0 di .
No caso de um ponto generico pertencente ao n-esimo referencial, a inu^encia das
velocidades associadas ao i-esimo referencial na velocidade do ponto generico e dada por
(expressa no 0-esimo referencial):
P~_ =k !~ k : Z 0A :[P T ; 1]T ,0 d + k ~v k Z
(C.10)
0
i
i
n
i
n
i
esta relac~ao torna-se mais simples se o ponto P for [0; 0; 0]T ,
P~_ 0 =k ~!i k : Zi 0 dn ,0 di + k ~vi k Zi
i
(C.11)
Pode tambem ser necessario saber a velocidade angular resultante, devido as varias
velocidades angulares associadas aos referenciais. As velocidades angulares podem ser
~
C.1. INTRODUCAO
141
somadas se forem expressas relativamente ao mesmo referencial. Descrevendo todas as
velocidades no 0-esimo referencial e denindo a sua soma como !0all , ent~ao teremos:
!~ 0all = ~!0 +0 R1:~!1 + : : : +0 Rn:~!n
(C.12)
mas como estamos a usar a representaca~o DH, esta relaca~o pode ser descrita por
!~ 0all = ~!0 + Z1 k ~!1 k + : : : + Zn k ~!n k
(C.13)
tal como para a velocidade linear ~vi .
Suponha-se agora, que se pretende saber a velocidade linear ~v e a velocidade angular ~!
de qualquer ponto do n-esimo referencial, relativamente ao 0-esimo referencial em func~ao
das velocidades angulares de cada referencial. Basta para isso somar as velocidades lineares e angulares, descritas todas num mesmo referencial, por exemplo, o 0-esimo referencial
(0~!i ;0 ~vi ). Se a i-esima junta e de revoluca~o, ent~ao a sua inu^encia e dada por
2
2
Ji =
4
3
0~vi
4
5
0~!i = Ji:!i
Zi 0An:[PnT ; 1]T
Zi
se a junta for prismatica ent~ao:
2
4
0~vi
0 ~!i
,0 di
3
(C.14)
5
3
5
= Ji :vi
(C.15)
Zi
Ji =
0
Adicionando todas as inu^encias e denotando qi como !i ou vi se a junta for de
revoluc~ao ou prismatica respectivamente, ent~ao
q0
~v
= J: ...
(C.16)
~!
qi
onde J e a matriz jacobiana, dada por:
2
3
4
5
h
2
3
4
5
2
3
6
6
6
4
7
7
7
5
J = J0 : : : Jn
i
(C.17)
142
APE^NDICE C. CINEMATICA
DOS SISTEMAS AUTONOMOS
UTILIZADOS
Aproximac~ao analtica
As relac~oes de velocidade, podem ser obtidas analiticamente, atraves da denica~o da
_ Y_ ; Z_ de qualquer ponto, referenciado a um referencial,
derivada, i.e., pode-se estimar X;
se se souber o incremento innitesimal na posic~ao desse ponto. Em termos matematicos,
denindo as func~oes:
P~n(t = 0) = [X; Y; Z; 1];
P~0 (t = 0) =0 An (0; : : : ; i ; d0; : : : ; dj ):P~n (t = 0)
P~0 (t = 4t) =0 An (0 + 4t!0; : : : ; i + 4t!i; d0 + 4tv0; : : : ; dj + 4tvj ):P~n (t = 0)
(C.18)
apenas e necessario usar a denic~ao da derivada para calcular a velocidade:
P~0 (t = 4t) , P~0(t = 0)
P~_ 0 (t = 0) = 4lim
t!0
4t
(C.19)
A velocidade angular poderia tambem ser calculada, e o resultado nal e id^entico ao
expresso em C.13.
C.2 Cinematica (directa e inversa)
Nesta secc~ao, apresenta-se dois exemplos, de acordo com os sistemas usados no desenvolvimento dos trabalhos apresentados nesta tese. Relembrando as regras explicadas na
secc~ao C.1.1, a representac~ao de DH, enquanto sistematica, permite ainda assim algum
grau de liberdade na escolha de alguns par^ametros.
C.2.1 Caso do sistema de vis~ao activa
A primeira congurac~ao usa um sistema de vis~ao activa, num robot movel. Os referenciais
encontram-se representados na Fig. C.1. O Robot movel pode efectuar movimentos de
translac~ao e rotac~ao com as respectivas velocidades vr e !r . O sistema de vis~ao activa
possu quatro graus de liberdade, i.e., Pan, Tilt e verg^encia com velocidades angulares
respectivas !n , !t e !cr e !cl .
C.2. CINEMATICA
(DIRECTA E INVERSA)
143
Z
X
Y
d=0
Z
X
Z
Wcl
Y
Y
X
d=0
Dc
X
Y
Z
Dc
Wcr
Z
Y
Ab
X
Y
Z
X
Z
Y
Wt
X
At
Dn
Z
Ac
Wn
Z
Y
Y
Wr
X
Vr
X
Figura C.1: Referenciais do sistema de vis~ao activa e do robot movel, de acordo com a
representac~ao de DH.
144
APE^NDICE C. CINEMATICA
DOS SISTEMAS AUTONOMOS
UTILIZADOS
Os par^ametros do metodo de Denavit e Hartenberg para a c^amara da esquerda s~ao
assim dados por (desde os referenciais de baixo para os de cima):
2
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
4
0
0
Ac 0 0 !r
0
0
0 0 0 0
0
0
0 Dn 0 0
0
90o At 0 n !n
90o
0
0 Ab t !t
, 90o ,90o ,Dc 0 0 0
, 90o ,90o 0 0 cl !cl
0
Vr
0
0
0
0
0
3
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
5
(C.20)
onde as colunas representam respectivamente:
1. i
2. i
3. ai
4. di
5. variavel da posica~o angular (relacionada com o (i , 1)-esimo ref.)
6. variavel da velocidade angular (relacionada com o (i , 1)-esimo ref.)
7. variavel da velocidade translacional (relacionada com o (i , 1)-esimo ref.)
e para a c^amara da direita:
2
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
4
0
0
0
0
0
0
0
90o
90o
0
o
, 90 ,90o
, 90o ,90o
Ac
0
0
At
0
Dc
0
0 0 !r
0 0 0
Dn 0 0
0 n !n
Ab t !t
0 0 0
0 cr !cr
0
Vr
0
0
0
0
0
3
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
5
(C.21)
C.2. CINEMATICA
(DIRECTA E INVERSA)
145
As matrizes para os referenciais da c^amara da direita s~ao dados neste caso por:
2
1
0A = 0
1
0
0
6
6
6
6
6
6
4
2
1
1A = 0
2
0
0
6
6
6
6
6
6
4
2
cos(n )
2 A = sin(n )
3
0
0
6
6
6
6
6
6
4
0
1
0
0
0
0
1
0
0
0
Ac
1
3
0
1
0
0
0
0
1
0
Dn
0
0
1
3
7
7
7
7
7
7
5
(C.22)
7
7
7
7
7
7
5
(C.23)
0 sin(n )
0 , cos(n )
1
0
0
0
0
0
At
1
3
7
7
7
7
7
7
5
, sin(t ) , cos(t ) 0 ,Ab sin(t )
cos(Tt ) , sin(Tt ) 0 Ab cos(t )
3A =
4
(C.24)
2
3
6
6
6
6
6
6
4
7
7
7
7
7
7
5
0
0
0
0
2
4A
5
2
5A
6=
6
6
6
6
6
6
4
=
6
6
6
6
6
6
4
0
1
0
0
,1 0
0 ,1
0 0
sin(cr )
, cos(cr )
0
0
1
0
0
0
0
1
0
0
Dc
1
(C.25)
3
7
7
7
7
7
7
5
0 cos(cr )
0 sin(cr )
,1 0
0
0
(C.26)
0
0
0
1
3
7
7
7
7
7
7
5
(C.27)
146
APE^NDICE C. CINEMATICA
DOS SISTEMAS AUTONOMOS
UTILIZADOS
Cinematica directa
Usando a propriedade C.3 pode-se encontrar a seguinte relac~ao (com C = cos e S = sin):
2
6
6
4
C(n)C(t)S(cr) + S(n)C(cr) C(n)S(t) C(n)C(t)C(cr) , S(n)S(cr) S(n)Dc , C(n)Ab S(t) + Dn
S(n)C(t)S(cr) , C(n)C(cr) S(n)S(t) S(n)C(t)C(cr) + C(n)S(cr) ,C(n)Dc , S(n)Ab S(t)
S(t)S(cr)
,C(t)
S(t)C(cr)
Ab C(t) + At + Ac
0
0
0
1
(C.28)
3
7
7
5
Cinematica inversa
Usando a propriedade C.4 conclui-se que:
6A
h
0
0 = A6
i
,1
(C.29)
Relac~oes de velocidade
Para este exemplo, n~ao de apresenta o resultado, devido a matriz jacobiana possuir demasiados elementos. No entanto, tal como explicado na secc~ao C.3, tanto o metodo
geometrico como o metodo analtico d~ao o mesmo resultado. Os resultados podem ser vericados atraves do programa listado na pagina de Web http://www.isr.uc.pt/~sousa/ftp.html.
C.2.2 Caso dos Pan & Tilt
A segunda congurac~ao, usa duas unidades de Pan&Tilt, com um robot movel. Os
referenciais encontram-se representados na Fig. C.1. O Robot movel pode efectuar
movimentos de translac~ao e rotac~ao com as respectivas velocidades vr e !r . Cada unidade
de Pan&Tilt possu dois graus de liberdade, i.e., Pan, Tilt com velocidades angulares
respectivas !pr , !tr ou !pl , !tl .
Os par^ametros do metodo de Denavit e Hartenberg para a c^amara da esquerda s~ao
C.2. CINEMATICA
(DIRECTA E INVERSA)
147
Z
X
Y
d=0
X
Z
X
Y
Y
Z
Ai
d=0
Y
X
Y
X
Z
Z
Wtl
Ai
Y
At
Z
Wpl
X
Z
Y
Wtr
Dc
Y
At
X
Z
Wpr
Z
X
Dc
Z
Y
Y
Ap
X
X
Dn
Z
Ac
Y
Z
Y
Wr
X
Vr
X
Figura C.2: Referenciais dos Pan&Tilt e do robot movel, de acordo com a representac~ao
de DH.
148
APE^NDICE C. CINEMATICA
DOS SISTEMAS AUTONOMOS
UTILIZADOS
assim dados por (desde os referenciais de baixo para os de cima):
2
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
4
0
0
0
0
0
0
90
90
0
0
0
90
,90
90
90
0
Ac
0
0
Ap
,Dc
At
0
0
0 !r
0 0
0 0
0 0
0 0
pl !pl
tl !tl
0 0
0
Vr
0
0
0
0
0
0
0
0
0
0
0
0
90
90
0
0
0
90
,90
90
90
0
Ac 0 0 !r
0 0 0 0
0 Dn 0 0
Ap 0 0 0
Dc 0 0 0
At 0 pr !pr
0 Ai tr !tr
0 0 0 0
0
Vr
0
0
0
0
0
0
0
0
Dn
0
0
0
Ai
0
3
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
5
(C.30)
e para a c^amara direita:
2
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
4
3
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
5
(C.31)
As matrizes para os referenciais da c^amara da esquerda s~ao dados neste caso por:
2
1
0A = 0
1
0
0
6
6
6
6
6
6
4
2
1
1A = 0
2
0
0
6
6
6
6
6
6
4
0
1
0
0
0
0
1
0
0
0
Ac
1
3
0
1
0
0
0
0
1
0
Dn
0
0
1
3
7
7
7
7
7
7
5
7
7
7
7
7
7
5
(C.32)
(C.33)
C.2. CINEMATICA
(DIRECTA E INVERSA)
2
1
2A = 0
3
0
0
6
6
6
6
6
6
4
2
1
3A = 0
4
0
0
6
6
6
6
6
6
4
2
cos(pl )
4 A = sin(pl )
5
0
0
6
6
6
6
6
6
4
2
5A =
6
6
6
6
6
6
6
4
149
3
0
0
1
0
0
,1
0
0
0
0
Ap
1
0
0
,1
0
0 0
1 0
0 ,Dc
0 1
7
7
7
7
7
7
5
(C.34)
3
7
7
7
7
7
7
5
0 sin(pl )
0 , cos(pl )
1
0
0
0
(C.35)
0
0
At
1
3
7
7
7
7
7
7
5
, sin(tl ) 0 cos(tl ) ,Ai sin(tl )
cos(tl ) 0 sin(tl ) Ai cos(tl )
0
1
0
0
0
0
0
1
2
0
6A = 1
7
0
0
6
6
6
6
6
6
4
,1 0 0
0 0 0
0 1 0
0 0 1
(C.36)
3
7
7
7
7
7
7
5
(C.37)
3
7
7
7
7
7
7
5
(C.38)
Cinematica directa
Usando a propriedade C.3 pode-se encontrar a seguinte relaca~o:
2
0A
6=
6
6
6
6
6
6
4
sin(pl ) cos(pl ) sin(tl ) cos(pl ) cos(tl ) , cos(pl )Ai sin(tl ) + Dn
, cos(pl ) sin(pl ) sin(tl ) sin(pl ) cos(tl ) , sin(pl )Ai sin(tl ) + Dc
0
, cos(tl )
sin(tl )
Ai cos(tl ) + At + Ap + Ac
0
0
0
1
(C.39)
3
7
7
7
7
7
7
5
APE^NDICE C. CINEMATICA
DOS SISTEMAS AUTONOMOS
UTILIZADOS
150
Cinematica inversa
Usando a propriedade C.4 conclui-se que (com C = cos e S = sin):
2
6
6
A0 = 6
4
S(pl)
,C(pl)
0
,S(pl)Dn + C(pl)Dc
C(pl)S(tl) S(pl)S(tl) ,C(tl) ,S(tl)C(pl)Dn , S(tl)S(pl)Dc + C(tl)At + C(tl)Ap + C(tl)Ac + Ai
C(pl)C(tl) S(pl)C(tl) S(tl)
,C(tl)C(pl)Dn , C(tl)S(pl)Dc , S(tl)At , S(tl)Ap , S(tl)Ac
0
0
0
1
(C.40)
3
7
7
5
Relac~oes de velocidade
Usando o programa de Maple referido, a relaca~o directa da velocidade para o pan&tilt da
direita, e dada por (para um ponto P = [0; 0; 0]T no i-esimo referencial):
sin(Tpr )Ai sin(Ttr ) + Dc
0 sin(Tpr )Ai sin(Ttr ) ,1:0 cos(Tpr )Ai cos(Ttr )
,1:0 cos(Tpr )Ai sin(Ttr ) + Dn 0 ,1:0 cos(Tpr )Ai sin(Ttr ) ,1:0 sin(Tpr )Ai cos(Ttr )
2
3
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
4
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
7
5
0
0
1
0
0
0
,1:0Ai sin(Ttr )
0
1
0
0
0
1
, cos(Tpr )
sin(Tpr )
0
(C.41)
as variaveis de controlo das junc~oes s~ao dadas pelo vector
[!r ; Vr ; !pr ; !tr ]T :
(C.42)
Multiplicando a matriz pelo vector obtemos o resultado no seguinte formato vectorial
[vx ; vy ; vz ; !x ; !y ; !z ]T :
(C.43)
A relac~ao inversa da velocidade pode ser calculada atraves do programa em maple.
C.3 Matrizes \skew symmetric"
Uma matriz S diz-se que e uma matriz \skew symmetric" se e se so
ST + S = 0
(C.44)
C.3. MATRIZES \SKEW SYMMETRIC"
151
ou por outras palavras sij + sji = 0 e sii = 0. Para o caso de matrizes de 3 3 a matriz
skew simetrica tem a forma
0 ,s1 s2
S = s1 0 ,s3
,s2 s3 0
2
3
6
6
6
4
7
7
7
5
(C.45)
Se ~a = [ax ; ay ; az ]T e um vector, a matriz skew simetrica pode ser denida como S (~a):
0 ,az ay
S (~a) = az 0 ,ax
,ay ax 0
2
3
6
6
6
4
7
7
7
5
(C.46)
Uma das propriedades importante da matriz S (~a) e a linearidade. Pelo que para
quaisquer vectores ~a e ~b pertencentes a <3 e escalares e t^em-se:
S ~a + ~b = S (~a) + S ~b
(C.47)
Outra propriedade importante da matriz S (~a) e que para qualquer vector p~ = [px ; py ; pz ]T :
S (~a)~p = ~a p~
(C.48)
propriedade esta que pode ser vericada por calculos directos.
Outro facto importante, e que se R33 e uma matriz ortogonal, ent~ao usando a relaca~o
anterior teremos:
RS (~a) RT = S (R~a)
(C.49)
Considere-se que uma matriz de rotaca~o R e func~ao de uma unica variavel . Como
R e ortogonal para qualquer valor de ent~ao:
R():R()T = I
(C.50)
derivando ambos os membros da equac~ao C.50 em ordem a e usando a regra do produto
temos
dR() :R()T + R() dRT () = 0
(C.51)
d
d
152
APE^NDICE C. CINEMATICA
DOS SISTEMAS AUTONOMOS
UTILIZADOS
denindo a matriz S como
S = dRd() :R()T
(C.52)
pode-se vericar que a equac~ao C.51 e id^entica a equac~ao C.44, i.e., a matriz S e uma
matriz skew simetrica. Multiplicando a direita ambos os termos da equaca~o C.52 por
R() e usando a eq. C.50 temos
dR() = S:R():
d
Pode se vericar facilmente atraves de calculos que,
dRx(x )
dx
= S (^x):Rx(x )
dRy(y )
dy
= S (^y):Ry(y )
(C.53)
dRz(z )
dz
= S (^z ):Rz (z )
(C.54)
Suponha-se agora, que temos uma matriz de rotac~ao, relacionando dois referenciais, e
que se vai efectuar uma rotaca~o que pode ser decomposta em tr^es rotac~oes em torno de
cada um dos eixos do referencial, i.e.:
0 R (t) =0 R (0):R :R :R
i
i
x y z
(C.55)
onde x , y , z s~ao ^angulos innitesimais, e a matriz esta denida num sistema directo,
com os ^angulos obedecendo a regra da m~ao direita, derivando em ordem a t obtemos,
d0Ri (t) =0 R (0): @Rx :R :R : @x +0R (0):R : @Ry :R : @y +0R (0):R :R : @Rz : @z
i
i
x
i
x y
dt
@x y z @t
@y z @t
@z @t
(C.56)
mas 0Ri(t) e uma matriz ortogonal, pelo que se verica a eq. C.50, i.e.,
0 R (0):R :R :R :RT :RT :RT :0 R (0)T
i
x y z z y x i
=I
(C.57)
derivando esta eq. em ordem a !x , obtemos uma matriz skew dada por
x T 0
T 0
0
T
0
S =0 Ri (0): @R
@x :Rx : Ri(0) = Ri(0):S (^x): Ri(0) = S Ri(0):x^
e pode facilmente vericar-se que
x
S 0 Ri(0):x^ :Rx :Ry :Rz =0 Ri(0): @R
@x :Ry :Rz
(C.58)
(C.59)
C.4. A INFLUE^NCIA DA VELOCIDADE ANGULAR
153
derivando a eq. C.57 em ordem a !y , obtemos uma matriz skew dada por
y T T 0
T 0
:R
:R
:
R
y
):RTx :0Ri (0)T = S 0Ri(0):Rx :y^
S =0 Ri(0):Rx : @R
i(0) = Ri (0):Rx :S (^
y
x
@y
(C.60)
e pode-se vericar facilmente que
y
S 0Ri(0):Rx :y^ :Rx :Ry :Rz =0 Ri(0):Rx : @R
(C.61)
@y :Rz
e nalmente derivando a eq. C.57 em ordem a !z , obtemos uma matriz skew dada por
z T T T 0
T
0
S =0 Ri (0):Rx :Ry : @R
(C.62)
@z :Rz :Ry :Rx : Ri(0) = S Ri (0):Rx :Ry :z^
e pode-se vericar facilmente que
z
(C.63)
S 0 Ri(0):Rx :Ry :z^ :Rx :Ry :Rz =0 Ri (0):Rx :Ry : @R
@z
agora, usando as eq. C.59, C.61 e C.63 na eq. C.56 obtemos,
d0Ri (t) = S 0R (0): _ :x^ + _ :R :y^ + _ :R :R :z^ :0 R (0):R :R :R
(C.64)
i
x
y x
z x y
i
x y z
dt
onde o factor entre [: : : ] e dado por
_ x + _ z : sin (y ) x^+ _ y cos (x ) , _ z : sin (x ) cos (y ) y^+ _ y sin (x ) + _ z : cos (x ) cos (y ) z^
(C.65)
mas a medida que t ! 0 tambem x = y = z ! 0, Rx = Ry = Rz ! I e nalmente
obtem-se
h
i
d0Ri(0) = S (~! ):0 R (0)
i
dt
(C.66)
T
onde ~! =0 Ri(0): _ x ; _ y ; _ z =0 Ri(0): [!x ; !y ; !z ]T .
h
i
C.4 A inu^encia da velocidade angular
Supondo que a eq. C.5 e variavel no tempo, escrevendo a equaca~o de posic~ao,
~p0(t) =0 Ri (t):~pi +0 di(t)
(C.67)
APE^NDICE C. CINEMATICA
DOS SISTEMAS AUTONOMOS
UTILIZADOS
154
derivando a eq. anterior e usando a regra do produto obtemos (note-se que ~pi e constante):
p~_ 0(t) = 0 R_ i(t):~pi +0d_ i (t) = S (~! ) :0Ri (t):~pi +0d_ i (t) = ~! 0 Ri(t):~pi +~v = !~ ~r+~v (C.68)
onde ~r =0 Ri (t):~pi e a posic~ao do vector expressa no 0-esimo referencial e ~v = 0d_ i (t) e a
velocidade a que o i-esimo referencial se movimenta, e ~! =0 Ri : [!x ; !y ; !z ]T .
Tambem e possvel obter a func~ao aceleraca~o, notando que o seguinte se verica,
d(~a ~b) = d~a ~b + ~a d~b
(C.69)
dt
dt
dt
derivando a express~ao C.68 obtemos,
p~0(t) = !_ ~r + ! (~! ~r) + ~v_
(C.70)
~v_ e a acelerac~ao linear. O termo ! (~! ~r) e chamado de aceleraca~o centrpeta do
ponto. A direcc~ao do vector e sempre direccionada na direcca~o do eixo de rotac~ao e e
perpendicular a esse eixo. O termo !_ ~r e chamado da aceleraca~o transversal.
Contudo, num caso mais geral, quando um ponto ~pi possui velocidade, a relaca~o
anterior modica-se para:
p~_ 0 (t) = ~! ~r + ~v +0 Ri(t):~p_ i
e
(C.71)
p~0(t) = !_ ~r + ! (!~ ~r) + 2! 0Ri(t):~p_ i +0 Ri (t):~pi + ~v_
(C.72)
onde o termo 0Ri (t):~pi representa a acelerac~ao linear (a acelerac~ao do ponto). O termo
2! 0 Ri(t):~p_ i e conhecido como a acelerac~ao de Coriolis.
Ap^endice D
Pormenores da realizac~ao pratica
Para realizar a implementaca~o em tempo real, usou-se neste caso uma placa de processamento de imagem (TDMB412), com dois processadores TMS320C40s (ou C40). Apenas
um dos processadores C40, pode adquirir imagens, e sera designado como o C40 master
(TDM435), e o outro C40 sera referenciado como o C40 slave (TDM407), tal como pode
ser visto na Fig. D.3.
Os processadores TMS320C40 s~ao ideais para o processamento de sinal, em aplicac~oes
que requerem processamento massivo, e bastante repetitivo. As aplicaco~es tpicas para
multiplos C40 incluem:
1. Processamento de imagem & Vis~ao por computador
2. Processamento de sinais vindos de Radares e sonares
3. Sistemas de telecomunicaco~es & processamento de voz
4. Rudo & Analise de vibrac~ao e controlo
5. Controlo em tempo real de alta velocidade & Instrumentaca~o
6. Tratamento de imagens medicas
O processador TMS320C40 possui 6 portos de alta velocidade para efectuar comunicac~oes
entre processadores. Estes portos s~ao bidireccionais e possuem uma largura de banda de
155
156
~ PRATICA
APE^NDICE D. PORMENORES DA REALIZACAO
20MBytes/segundo. Seis canais de DMA permitem I/O paralelamente as operaco~es do
CPU. Um C40 a 50MHz e capaz de efectuar 275 milh~oes de operac~oes/seg e 50MFLOPS.
Os modos de enderecamento incluem o linear, circular e bit-reversed. O processador
utiliza tambem uma unidade de 40/32 bits de oating/xed point.
A placa de processamento TDMB412 e uma motherboard de modulos TIM-40 para o
bus do PC. Esta motherboard possui 4 slots, onde podem ser colocados varios modulos
de I/O TIM-40. O interface da motherboard com o PC hospedeiro e garantido atraves de
uma FIFO de 16-bits de barramento. A placa inclu tambem hardware especco, para
permitir efectuar debug do sistema. A placa permite ainda a interligac~ao entre varias
motherboards, atraves de um bus de alta velocidade, podendo assim construir-se varias
topologias de rede, baseadas em multiplos C40.
Os modulos de processamento TIM-40 podem ter um ou mais DSPs C40. Alguns
destes modulos s~ao especcos, e permitem realizar func~oes tais como, input/output digital/analogico, gracos, e framegrabbing.
A placa TDM435 e um modulo 3 TIM-40 que incorpora um sistema de aquisic~ao de
imagem monocromatico com uma resoluc~ao de 8 bits por pixel, um processador C40, e
um sistema de display RGB de 1024 x 1024 x 24-bit com um plano de overlay de 4-bits. O
sistema de aquisic~ao permite seleccionar uma de quatro entradas que e guardada num de
dois blocos de memoria VRAM (memoria do sistema de vdeo) de 1K x 1K, podendo ser
acedido ao mesmo tempo pelo sistema de aquisic~ao, pelo C40 e pelo sistema de display.
S~ao permitidos varios modos de acesso a memoria VRAM, acessos de 4 bytes, 1 byte, com
mascara, escrita/leitura de blocos, etc, o que da ao sistema uma elevada exibilidade. O
conector de expans~ao da memoria global, e usado para aceder a memoria incorporada na
matherboard principal, que e mapeada na zona de memoria global do C40, permitindo
assim salvaguardar varias imagens consecutivamente. O sistema permite adquirir sinais
PAL ou NTSC, e esta equipado com varios ltros antialising, que podem ser seleccionados
por software. O sistema de aquisica~o permite tambem programar o endereco inicial,
perodo entre linhas, tamanho da frame e tamanho de uma linha. O sistema de display,
permite seleccionar qualquer parte dos 2 blocos de 1K x 1K \pixels" para efectuar o
display. O diagrama de blocos encontra-se representado na Fig D.1.
A placa TDM407 e um modulo TIM-40 que incorpora um DSP C40. Este modulo pode
157
PROG. CLOCK
SYNC
PROC.
CONTROL
4MBytes
LOCAL
EDRAM
R
E
G
local bus
3
2
1
0
DIGITIZER
Video Inputs
TMS320C40
filters
global bus
jtag & comm ports
TIM-40 CONNECTORS
VRAM C
VRAM A
VRAM B
video store1
video store2 overlay store
32
32
16
MUX
MUX
8
PROG. CLOCK
4
R
G
B
H
V
RAMDAC
2
SYNC GEN
Video Outputs
Global Bus Expansion
Figura D.1: Diagrama de blocos do TDM435.
158
~ PRATICA
APE^NDICE D. PORMENORES DA REALIZACAO
1MByte
LOCAL
SRAM
local bus
TMS320C40
global bus
TIM-40 CONNECTORS
4MBytes
GLOBAL
DRAM
Figura D.2: Diagrama de blocos do TDM407.
incorporar memoria DRAM ou SRAM de modo a obter um optimo, mistura de velocidade
e espaco. A combinac~ao de memoria pode ser do tipo DRAM/SRAM, DRAM/DRAM,
SRAM/SRAM ou SRAM/DRAM mapeadas no global bus e no local bus. Num modulo
que incorpore os dois tipos de memoria, o codigo, stack e heap podem ser alocados na
memoria de 0-ws SRAM ate 1MB, enquanto outras alocac~oes de maior escala podem ser
feitas na memoria global ate 4MB. O conector de expans~ao da memoria global, e usado
para aceder a memoria incorporada na matherboard principal, que e mapeada na zona de
memoria global do C40. O diagrama de blocos encontra-se representado na Fig. D.2.
O computador hospedeiro, neste caso e um PC, que comunica com o C40 master,
atraves de um canal FIFO, e ambos os C40 podem transferir dados entre si utilizando
um canal de DMA existente e por um porto para enviar comandos. O tempo perdido na
transfer^encia por DMA e quase nulo, porque o canal tem um alta largura de banda, e
ambos os C40 podem enviar dados enquanto est~ao a efectuar processamento. O Frame
grabber pode adquirir imagens a 25 Hz. No entanto como no nosso caso existem duas
c^amaras, e o formato do vdeo de entrada e PAL interlacado, para diminuir o tempo de
aquisic~ao, apenas se capta um dos campos da imagem para cada c^amara, obtendo-se assim
159
Transtech Image Processing
TDM435 Frame Grabber
Master C40
Slave C40
HOST PC
Figura D.3: A placa de processamento de imagem e utilizada em conjunca~o com o sistema
de vis~ao activa, para desenvolver metodos de navegac~ao visuais.
um frame rate de 50 Hz para ambas as c^amaras.
Para este processo funcionar perfeitamente, as duas c^amaras devem-se encontrar sincronizadas. O tempo de aquisic~ao pode ser paralelizado, sobre o tempo de calculo do uxo
optico, uma vez que podem ser denidos varios buers onde a imagem pode ser guardada, e o C40 master permite efectuar a aquisica~o atraves de interrupca~o, que e activada
ao m de cada campo da imagem. Desta forma e possvel garantir que para a mesma
c^amara, a imagem e sempre adquirida do mesmo campo, pois caso contrario, existiria um
shift vertical entre as imagens, o que em termos de uxo optico e prejudicial, pois com
as c^amaras paradas, seria detectado uxo. O problema desta soluca~o, e que a imagem
adquirida apenas e tratada no proximo ciclo, pois para cada c^amara existem 2 buers, um
com a ultima imagem adquirida, e outro para onde a interrupc~ao \agulhou" a aquisic~ao
actual. De qualquer forma, tal n~ao e crtico, pois o atraso relativamente a imagem mais
actualizada e de 502 s. Para garantir coer^encia temporal para o ltro de kalman, a interrupc~ao guarda o tempo actual, quando inicia uma nova aquisic~ao. Assim que um novo
ciclo de processamento e executado, o C40 master efectua a transformac~ao log-polar e
calcula as derivadas temporais, fazendo de seguida o download das matrizes ao C40 slave
e recebe os resultados no proximo ciclo para a c^amara em quest~ao. O C40 slave calcula
ent~ao o uxo optico de acordo com o tipo de uxo utilizado, gera os sinais de \feedback"
160
~ PRATICA
APE^NDICE D. PORMENORES DA REALIZACAO
e efectua o upload para o C40 master no proximo ciclo para a c^amara em quest~ao. O
C40 master mantem um ltro de kalman para ambas as imagens, efectuando integraca~o
temporal, e efectua o upload para o host a uma cad^encia de 12.5Hz. Por sua vez o host
atraves dum porto serie envia os dados a um sistema unix, onde e efectuado o algoritmo
de controlo e onde s~ao enviados os comandos ao robot movel. Devido a implementaca~o
efectuada, existe um delay de 4 ciclos ( 504 ) entre a imagem actualmente adquirida e o seu
resultado, dois dos delays e devido a aquisica~o e dois devido as comunicaco~es entre master
e slave.
A transformac~ao log-polar e efectuada atraves de uma tabela, onde s~ao guardadas as
posico~es do plano cartesiano onde devem ser feitas as amostras. Os \pixels" na redondeza
do pixel amostrado, s~ao usados para efectuar uma convuls~ao gaussiana, baseada apenas
em shifts, a mascara usada e:
1 2 1
(D.1)
2 4 2
1 2 1
Uma das grandes vantagens do C40 e permitir instruc~oes paralelas (leitura, leitura/escrita,
escrita, adicionar/leitura, ...), desta forma em alguns dos processos o tempo de processamento pode ser reduzido a metade ou mais conforme o caso. Outra das vantagens, e
a de permitir aceder a 4 \pixels", apenas com um acesso a memoria de 32 bits, desta
forma, por exemplo, a implementac~ao da mascara apenas obriga a 3 acessos por cada
ponto log-polar amostrado (sem utilizar as instruc~oes paralelas). A transformaca~o logpolar e um dos casos, em que se pode aproveitar ao maximo estas capacidades, a tipo de
exemplo, a transformac~ao log-polar codicada em assembler gasta cerca 14 do tempo da
vers~ao codicada em c (isto porque o compilador de c n~ao codica instruco~es paralelas).
Para efectuar o calculo do uxo optico normal, foi usada tambem uma tabela. Em
cada entrada da tabela, e guardado o resultado da equac~ao:
E1
(D.2)
2
E1 + E22
para E1; E2 = 0, ..., 256. Desta forma para cada ponto usado e necessario efectuar menos
uma multiplicac~ao e menos uma divis~ao. Nesta implementac~ao, apenas se usa 2 nveis na
pir^amide. A imagem de maior resoluc~ao tem um tamanho de 110x150 \pixels". O tempo
2
3
6
6
6
4
7
7
7
5
161
Figura D.4: Cena de teste: Esquerda - movimento de rotac~ao e de translac~ao, e nos outros
apenas e efectuado movimento de translaca~o. Em cima: um nvel de pir^amide, Em baixo:
2 nveis na pir^amide. O algoritmo e o uxo optico normal.
de processamento anda a volta dos 10Hz, uma vez que o ltro - torna mais pesado o
processamento. A Fig. D.4 mostra os resultados obtidos por este algoritmo.
Quanto ao calculo do uxo am, n~ao merece grandes reparos, a menos que se consegue
neste algoritmo obter 25Hz para a mesma dimens~ao da imagem (sem utilizar pir^amides).
Para o caso do processo de navegaca~o com espelhos, a implementac~ao aproveita ao
maximo todas as potencialidades descritas anteriormente, conseguindo-se obter uma taxa
de processamento a 50Hz e resultados para ambas as c^amaras a 25Hz. A tipo de exemplo,
para o histograma vertical contribuem 100 linhas horizontais. O histograma nal possu
uma resoluc~ao horizontal de 384 linhas, isto porque em cada acesso se obt^em 4 \pixels"
numa palavra de 32bits, mas apenas se utilizam 2 para permitir efectuar a soma desses
162
~ PRATICA
APE^NDICE D. PORMENORES DA REALIZACAO
dois \pixels" simultaneamente atraves duma mascara que zera os outros dois. O C40
master neste caso adquire a imagem duma c^amara e efectua os dois histogramas para as
imagens dos dois espelhos dessa c^amara. De seguida envia os dois histogramas ao C40
slave que efectua os dois processos de correlaca~o para estimar o deslocamento horizontal
nas imagens. Ambos os processadores respeitam os 50Hz, no entanto o resultado da
aquisic~ao actual, so se encontra disponvel com 2 ciclos de atraso.
Em conclus~ao: a performance dos algoritmos depende claramente da experi^encia de
programac~ao do utilizador. Existe um certo tempo de aprendizagem, ate o utilizador
tirar partido de todas as potencialidades dos dois C40, uma vez que a programac~ao em
assembler deve obedecer a forma como o pipeline do processador funciona de modo a
introduzir o mnimo de wait states entre as instruc~oes. Outro tipo de implementaca~o que
deve ser evitada, e a utilizac~ao de calculos em oating point, pois as instruc~oes nativas do
processador apenas possuem precis~ao simples, caso seja necessario maior precis~ao, esta so
e possvel atraves das rotinas de emulac~ao do compilador de c, perdendo-se assim o partido
das instruc~oes paralelas. Um dos casos que pode exemplicar este problema, prende-se
com a estimac~ao do uxo am atraves do metodo dos mnimos quadrados, que teve de
utilizar a emulac~ao, n~ao sendo no entanto neste caso um problema crtico.
Ap^endice E
Filtros - e - -
E.1 Introduc~ao
Os metodos de ltragem e predica~o podem ser usados para a estimac~ao presente ou
futura de quantidades cinematicas, tais como a posic~ao, velocidade e acelerac~ao. Estas
caractersticas tornam os ltros bastante aconselhaveis na utilizaca~o de trabalhos que se
desenvolvam em torno de tarefas de tracking, ou outras, tais como seguir a trajectoria de
um corpo no espaco (ex. estimar a velocidade e acelerac~ao do uxo optico).
Existem 2 modos de abordar o problema. O primeiro e a utilizac~ao de coecientes xos
para o ltro (ltros - e - - ), e o segundo, coecientes que variam com o instante de
amostragem (ltros de kalman), que s~ao determinados a priori atraves de um modelo de
rudo e da din^amica do sistema. O primeiro processo possui vantagens computacionais,
no entanto os ltros de kalman, possuem caractersticas de alta precis~ao quando se trata
de efectuar seguimento de sinais ruidosos. O ltro usado na estimac~ao do uxo optico e
do primeiro genero, e pode ser utilizado em sistemas lineares invariantes .
Neste tipo de ltros, as variac~oes s~ao "acomodadas" ao longo do tempo atraves da sua
modelac~ao como rudo. Este facto proporciona que os sistemas lineares din^amicos com
coecientes invariaveis no tempo possuam equaco~es de estado e de medida, bastante mais
simples do que aquelas que s~ao necessarias para o caso variante no tempo. Os ganhos
associados a ambos os ltros podem ser calculados "o-line", e em ambos os casos, a
163
164
APE^NDICE E. FILTROS - E - -
implementac~ao pode ser recursiva, onde os dados adquiridos no passado s~ao includos nas
presentes estimativas. Desta forma, todos os dados s~ao utilizados, mas s~ao "esquecidos"
de forma exponencial. A estimac~ao do valor da variavel no instante k e x^(kjk) e sera
indicado como xs . Com estes ltros, pode-se predizer os valores para o proximo instante.
A predic~ao um passo a frente e denominada por xp = x(k + 1jk), e signica a estimativa
no instante k + 1 dadas as amostras ate ao instante k.
Filtros com coecientes xos tem a vantagem de uma facil implementaca~o. Um dos
exemplos mais aplicados deste tipo de ltros e o ltro - .
E.2 Filtro -
Este ltro e utilizado especialmente, quando apenas existem amostras de posic~ao do objecto e assume um modelo cuja velocidade e constante. Comecemos ent~ao por assumir
um modelo de velocidade constante: considera-se que o objecto evolu a partir de uma
velocidade inicial atraves de um processo de acelerac~oes, que s~ao constantes durante uma
amostra, mas independentes entre as varias amostras. A equaca~o do ltro - que prediz
o seu estado corrente tem a seguinte forma:
xs (k) = x^(kjk) = xp(k) + [x0 (k) , xp(k)]
(E.1)
[x (k) , x (k)]
(E.2)
vs (k) = x^_(kjk) = vs (k , 1) + qT
0
p
xp(k + 1) = x^(k + 1jk) = xs(k) + Tvs (k)
(E.3)
A variavel T simboliza o intervalo de tempo, x0 (k) e a medida efectuada no instante
k e o e s~ao os par^ametros de ganho xos. A quantidade q e normalmente denida
como a unidade, mas em casos onde existam falhas de medidas pode tomar o numero do
valor de iterac~oes desde a ultima medida efectuada. O processo de inicializaca~o pode ser
denido por:
xs (1) = xp(2) = x0(1)
vs (1) = 0
x0(1)]
vs (2) = [x0(2) ,
T
E.2. FILTRO -
165
A equac~ao ( E.1) e usada directamente quando a observac~ao e efectuada no instante
k. Os valores optimos de e s~ao deduzidos em [S.S. Blackman 86] e dependem apenas
do quociente entre o desvio padr~ao do rudo do processo, e o desvio padr~ao do rudo da
medida. A este quociente chama-se de ndice , e os ganhos e s~ao calculados na
depend^encia de atraves das seguintes express~oes:
p
2 + 8 , ( + 4) 2 + 8
=,
8
2 + 4 , p2 + 8
=
4
(E.4)
(E.5)
E.2.1 Filtro - -
O ltro - - e id^entico ao ltro - , so que e baseado num modelo de aceleraca~o constante. Por esta raz~ao o ltro efectua uma predica~o quadratica, em vez de linear. No geral
este ltro tende a ser mais sensvel ao rudo, mas apresenta um desempenho superior na
predic~ao de velocidades que variam lentamente. As suas equaco~es s~ao as seguintes:
xs (k) = x^(kjk) = xp(k) + [x0 (k) , xp(k)]
[x (k) , x (k)]
vs (k) = x^_(kjk) = vs (k , 1) + Tas (k , 1) + qT
0
p
as (k) = x^(kjk) = as (k , 1) + (qT )2 [x0(k) , xp(k)]
2
T
xp (k + 1) = x^(k + 1jk) = xs(k) + Tvs (k) + 2 as (k)
Uma das inicializac~oes possveis para o ltro e:
xs (1) = xp (2) = x0 (1)
vs (1) = as (1) = as(2) = 0
x0 (1)]
vs (2) = [x0(2) ,
T
+ x0(1)]
a3(3) = [x0(3) , 2xT0(2)
2
(E.6)
(E.7)
(E.8)
(E.9)
APE^NDICE E. FILTROS - E - -
166
Os valores optimos para e s~ao denidos como no caso anterior e dependem do
ndice . O valor optimo para e dado por:
2
= (E.10)
Bibliograa
[Alan Oppenheim 79] Alan V. Oppenheim, Alan S. Willsky, Signals and Systems, Prentice Hall International, Inc.
[Alberto Elfes 95] Alberto Elfes, Robot Navigation: Integrating Perception, Environmental Constraints and Task Execution Within a Probabilistic Framework, International
Workshop, Ressoning with Uncertainty in Robotics Conf. - RUR, 95, Amsterdam,
The Netherlands, December 1995, Springer ISBN 3-540-61376-5.
[A.S. Roger e and E.L. Schwartz 90] Roger, A. S. and Schwartz, E.L. Design considerations for a Space-Variant Sensor with Complex Logarithmic Geometry, Proc. 10th
International Conference on Pattern Recognition,Atlantic City, pp. 278-285,1990.
[Barnard e Thompson 80] S.T. Barnard and W.B. Thompson, Disparity analysis of images, IEEE Trans. Pattern Analysis and Machine Intelligence, PAMI-2:333-340,1980.
[B. Lucas e T. Kanade 81] Lucas, B. and Kanade, T., An iterative image registration technique with an application to stereo vision, Proc. DARPA Image Understanding
Workshop pp 121-130, 1981.
[Burt, Xen e Xu 83] P.J. Burt,C. Yen, and X. Xu, Multi-resolution ow-through motion
analysis, In Proc. IEEE CVPR, pp. 246-252, 1983.
[Carl Weiman 94] Carl F. R. Weiman, Log-Polar binocular vision system, NASA phase
II, SBIR Final report, December 1994.
[C. Brown 95] Christopher Brown, Tutorial on Filtering, Restoration, and State Estimation, University of Rochester, Technical Report 534, June, 1995.
167
BIBLIOGRAFIA
168
[C. Fermuller e Y. Aloimonos 91] C. Fermuller and Y. Aloimonos, Estimating 3-D motion
from image gradients, Technical Report CARTR-618 Computer Vision Laboratory,
Center for Automation Research, University of Maryland, 1991 .
[C. Fermuller e Y. Aloimonos 92] C. Fermuller and Y. Aloimonos, The Role of Fixation
in Visual Motion Analysis, Computer Vision Laboratory, Center for Automation
Research, University of Maryland,1992.
[Davison e Murray 95] David W. Murray, Ian D. Reid and Andrew J. Davison, Steering
and Navigation Behaviours using Fixation, Parks Road, Oxford University.
[Davison e Murray 97] Andrew J Davison and David W Murray, Mobile Robot Localisation Using Active Vision, Parks Road, Oxford University, 1997.
[D. Coombs e H. Herman 95] D. Coombs, M. Herman, T. Hong and M. Nashman, Realtime Obstacle Avoidance Using Central Flow Divergence and Peripheral Flow , National Institute of Standards and Technology, Nist Internal Report, June, 1995.
[D. Hegger 87] D. Heeger, A model for extraction of optical ow, Proc. International Conf.
Computer Vision, London, pg 181-190, 1987.
[D. Marr e Poggio 79] D.Marr, and T.Poggio, A computational theory of human stereo
vision, Proc. Royal Soc., London, B-204:301-308,1979.
[Erwin Kreyszig 79] Erwin Kreyszig, Advanced Engineering Mathematics, Third Edition,
ISBN 0-471-50728-8, 1979.
[E.L. Schwartz 77] E.L. Schwartz. Spatial Mapping in the Primate Sensory Projection:
Analytic Struture and Relevance to Perception, Biological Cybernetics, 25:181194,1977.
[FreeBSD Team] FreeBSD Team,
http://www.FreeBSD.org.
The
FreeBSD
Documentation
Project,
[F. Bergholm 90] F. Bergholm, Decomposition Theory and Transformations of Visual Directions, ICCV 90- Int. Conf. on Computer Vision, Dec 1990, pp. 85-90.
BIBLIOGRAFIA
169
[F. Bergholm 93] Frederik Bergholm, On Velocity Estimation and Mean Square Error,
Proc. 8th Scandinavian Conference on Image Analysis, Trans0, Norway, pp 10931100, May 1993.
[G. Sandini e C. Capurro 95] G. Sandini, C.Capurro, F.Panerai, Space variante vision for
an active camera mount, In Proc. SPIE AeroSense95, Orlando, Florida, April 1995.
[H. Wechsler 90] Harry Wechsler, Computacional Vision, Academic Press, Inc, 1990.
[Horn e Schunck 81] Horn, B.K.P., and Schunck, B.G., Determining optical ow, Articial Intelligence 17: 185-204, 1981.
[H.H. Nagel 83] Nagel, H.H., Displacement vectors derived from second-order intensity
variations in image sequences, Comput. Graph. Image. Process, 21: pp 85-117, 1983.
[H.H. Nagel 87] Nagel, H.H., On the estimation of optical ow: Relations between dierent approaches and some new results, Articial Intelligence, 33 pp 299-324, 1987.
[I. Sousa e J. Dias 96] Inacio Sousa, Jorge Dias, Helder Araujo, Normal Optical Flow Based on Log-Polar Images, 4th International Symposium on Intelligent Robotics Systems, Lisbon,22-26 July,1996.
[J. Barron e D. Fleet 94] J.L. Barron, D.J. Fleet, S.S Beauchemin,Systems and Experiment Performance of Optical Flow Techniques, International Journal of Computer
Vision, Kluwer Academic Publishers, pp 43-77, December, 1994.
[J. Batista e J. Dias 93] J.Batista,J.Dias,H.Araujo,A.de
Almeida,
Monoplanar
Camera Calibration, British Machine Vision Conference, 21-23 September,Surrey,UK,1993,Vol2,pp. 476-488.
[J. Dias e C. Paredes 95] J. Dias, C. Paredes, I. Fonseca, H. Araujo,J. Batista,A.de Almeida, Simulating pursuit with Machines - Experiments with Robots and Articial
Vision, ICRA'94, Int. Conference on Robotics and Automation, Nagoya, Japan, May
21-27, 1995.
170
BIBLIOGRAFIA
[J. Dias e C. Paredes 96] Jorge Dias, Carlos Paredes, Inacio Fonseca, Jorge Batista, Helder Ara'ujo, Simulating Pursuit with Machines, Using Active Vision and Mobile
Robots, IEEE Transactions on Robotics and Automation, IEEE Transactions on Robotics and Automation. February 1998, Volume 14, Number 1, pp 1-18.
[J. Dias e J. Batista 93] J. Dias,J. Batista,C. Simplicio, H. Araujo, A.de Almeida, Implementation of an Active Vision System, International Workshop on Mechatronical
Computer Systems for Perception and Action, Halmstad University,Sweden, pp 4553,June 1-3, 1993.
[J. Little, H. Bulthof e T. Poggio 88] J.Little , H. Bulthof, and T. Poggio. Parallel Optical
Flow using local voting, In IEEE 2nd International Conference in Computer Vision,
1988.
[J. Santos-Victor e G. Sandini 95] J. Santos-Victor, G.Sandini, F.Curotto, S.Garibaldi,
Divergent Stereo in Autonomous Navigation: From Bees to Robots VisLab-TR 01/95,
International Journal of Computer Vision, 14, pp 159-177, March 1995.
[K.S.Fu 87] K.S.Fu, R.C.Gonzalez and C.S.G.Lee, Robotics: Control, Sensing, Vision,
and Intelligence, McGraw-Hill Book Company, 1987.
[L.F. Cheong e C. Fermuller 96] L.F. Cheong, C. Fermuller, Y. Aloimonos, Spatiotemporal representations for visual navigation, Fourth European Conference on Computer
Vision 15 - 18 April 1996 at the University of Cambridge, UK.
[Luca Bogoni e Ruzena Bajcsy 94] , Luca Bogoni and Ruzena Bajcsy, Functionality Investigation using a Discrete Event System Approach Journal of Robotics and Autonomous Systems, Special issues on Discrete Event Systems Applications, Vol. 13, No.
3, pages 173-196, November 1994.
[M. Blackburn e H. Nguyen 94] Michael Blackburn and Hoa Nguyen, Autonomous Visual
Control of a Mobile Robot, NRad Robotics, Naval Command, Control and Ocean
Surveillance Center, San Diego, CA 92152-7383, presented at the 1994 ARPA Image
Understanding Workshop, November 13-16, 1994, Monterey, CA.
BIBLIOGRAFIA
171
[M. Irani e B. Rousso 94] Michal Irani, Benny Rousso and Shmuel Peleg, Recovery of
Ego-Motion Using Image Stabilization, IEEE Transactions,1994,pp. 454-460.
[M. Tistarelli e G. Sandini 93] M. Tistarelli and G. Sandini, On the advantages of polar
and log-polar mapping for direct estimation of time-to-impact from optical ow, IEEE
Transactions and PAMI, 14(4)>401-410,1993.
[M. Tistarelli e E. Grosso 90] M. Tistarelli,E. Grosso and G. Sandini, Dynamic Stereo in
Visual Navigation, University of Genoa Techical report, LIRA-TR 4/90 - October
1990.
[M.J. Hawken e A.J. Parker 94] M.J. Hawken and A.J. Parker. Spatial Receptive Field
Organization in Monkey V1 and its Relationship to the Cone Mosaic, In Models of
Neural Functions. Landy and Monshon, 1994.
[N. Ancona e T. Poggio 93] Nicola Ancona and Tomaso Poggio, Optical ow from 1D
Correlation: application to a simple Time-To-Crash Detector, Massachusetts Institute, AI Memo,N o 1375, C.B.C.L. paper N o 74, 1993.
[Nelson, R.C., Aloimonos, J. 87] Nelson, R.C., Aloimonos, J., Finding Motion Parameters From Spherical Flow Fields (Or The Advantages Of Having Eyes In The Back
Of Your Head), WCV(87), pp. 145-150.
[P. Fornland 95] Par Fornland, Direct Obstacle Detection and Motion from SpatioTemporal Derivatives, Active Perception Laboratory (CVAP), KTH, Stockholm, Prague, Czech Republic, September 1995.
[Peixoto 95] Paulo Jose Monteiro Peixoto, Estudo de Transpar^encia e coer^encia de movimento em sequ^encias de imagens, Tese de Mestrado, Dept. de Engenharia Electrotecnica, Universidade de Coimbra, 1995.
[P. Nordlund e T. Uhlin 95] P. Nordlund and T. Uhlin, Closing the Loop: Detection and
Pursuit of a Moving Object by a Moving Observer, CVAP-Computer Vision and
Active Perception Laboratory, NADA- Royal Institute of Technology, June, 1995.
BIBLIOGRAFIA
172
[Povray Team] PovRay http://www.povray.org.
Persistence
Of
Vision
Development
Team,
[Ricardo e Michel 91] Swain Oropeza Ricardo and Devy Michel, Visually-guided Navigation of a Mobile Robot in a Structured Environment LAAS-CNRS, Toulouse, France.
[R. Guissin e S. Ullman 91] Rami Guissin, Shimon Ullman, Direct Computation of the
Focus of Expansion From Velocity Field Measurements, IEEE Transactions,1991,pp.
146-155.
[Roth, Gerhard e Levine 92] Roth, Gerhard, and Levine, Martin, Minimal Subset Random Sampling for Pose Determination and Renement, AMV Strategies, pp. 1-21.
[Robuter 92] ROBOSOFT Technopole d'lzarbel F-64210 BIDART tel (33) 05 59 41 53 60
fax (33) 05 59 41 53 79 http://www.robosoft.fr.
[S.S. Blackman 86] Samuel S. Blackman, Multiple-Target Tracking with Radar Application, Artech House, Inc, ISBN 0-89006-176-3.
[S. Uras e F. Girosi 88] Uras, S., Girosi, F., Verri, A., and Torre, V., A computational
approach to motion perception, Biol. Cubern 60: pp 79-97, 1988.
[T. Cord e D. Pallmer 94] Thomas Cord and Dirk Pallmer, Distance Measuring for Mobile Robots Using Axial Motion Stereo, Forschungszentrum Informatik, in Proceedings
of the 3th International Workshop on Robotics in Alpe-Adria Region, Bled, July 1994.
[V. Sundareswaran e P. Bouthemy 94] , Venkataraman Sundareswaran, Patrick Bouthemy and Francois Chaumette, Visual servoing using dynamic image parameters
INRIA-Institut National de Recherche en Informatique et en Automatique Rapport
de recherche no 2336 -Ao^ut 1994.
[Yaakov Xiao 93] Yaakov Bar-Shalom, Xiao-Rong Li, Estimation and Tracking:
Principles,Techniques, and Software Artech House, inc, 1993.
BIBLIOGRAFIA
173
[Y. Aloimonos e Z. Duric 94] Yiannis Aloimonos and Zoran Duric, Estimating The Heading Direction Using Normal Flow, International Journal of Computer Vision, Kluwer
Publishers,1994,13:1,pp. 33-56.

Documentos relacionados