Calibração de uma Rede de Câmaras baseada em Odometria Visual

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamanho: px
Começar a partir da página:

Download "Calibração de uma Rede de Câmaras baseada em Odometria Visual"

Transcrição

1 UNIVERSIDADE TÉCNICA DE LISBOA INSTITUTO SUPERIOR TÉCNICO Calibração de uma Rede de Câmaras baseada em Odometria Visual Nuno Miguel Pinto Leite (Licenciado) Dissertação para a obtenção do Grau de Mestre em Engenharia Electrotécnica e de Computadores Júri: Presidente: Orientador: Co-orientador: Vogal: Doutor Carlos Jorge Ferreira Silvestre Doutor José António da Cruz Pinto Gaspar Doutor Alessio Del Bue Doutor Paulo Luis Serras Lobato Correia Novembro de 2009

2

3 Resumo Este trabalho apresenta duas metodologias para efectuar a calibração de uma rede de câmaras. A calibração compreende a determinação de parâmetros intrínsecos e extrínsecos. As metodologias propostas, ao contrario das alternativas mais comuns actualmente disponíveis, permitem a calibração de câmaras com campos de visão não sobrepostos, em um único referencial, o referencial de mundo. Utiliza-se um robot com a capacidade de estimar a sua pose num referencial do mundo. Este robot está equipado com uma câmara calibrada, que pode ser posicionada e orientada de forma a observar pontos também observados pelas câmaras da rede. As metodologias propostas têm como base as correspondências de pontos de referência invariantes na escala (SIFT) e a sua reconstrução 3D usando vslam, e focam o problema de transportar sistema de coordenadas do robot para o das câmaras fixas. Para resolver o problema de calibração de uma rede de câmaras, propõe-se utilizar os pontos 3D reconstruídos que sejam visíveis nas imagens das câmaras fixas. De forma a testar a validade do nosso método foram construídos e utilizados cenários em VRML, por terem pouco ruído nas imagens que geram, e por oferecerem Ground Truth para validação da metodologia proposta.

4 ii

5 Abstract This work presents two methodologies to estimate the calibration of a network of cameras, possibly with nonoverlapping fields of view. The calibration comprises both the intrinsic and extrinsic parameters of the cameras and is based on a mobile robot with the capability of estimating its pose in a global frame. The robot is equipped with one calibrated camera which we assume that can be oriented in a manner to observe world points also seen by the network of cameras. Our methodologies are based on matched scale invariant features (SIFT) reconstructed to 3D points using e.g. vslam, and focus on the problem of transporting the robot coordinate system to the fixed cameras. The reconstructed 3D points and their images on the fixed cameras are proposed as a solution for the calibration problem. In order to test the validity of our methodology we constructed a VRML scenario, thus having low noise images and ground truth information.

6 iv

7 Conteúdo Resumo Abstract i iii 1 Introdução Trabalho Relacionado Metodologias Propostas Organização da Tese Introdução Teórica Modelo de uma câmara Pontos característicos de uma imagem Detecção de extremos na escala de espaço Selecção de pontos chave Orientação em pontos chave Descritores em pontos chave Auto-localização e reconstrução do cenário Modelo do Processo Modelo de Observação Processo de Estimação Calibração de uma rede de câmaras Calibração baseada num par de imagens Factorização Calibração baseada em uma imagem e vslam Primeiro método de estimação da matriz de projecção Segundo método de estimação da matriz de projecção Estimação da pose das câmaras Cenário virtual e criação de Ground Truth Ground truth Ruído de correspondência e erro de reconstrução

8 vi CONTEÚDO 4 Resultados Calibração de parâmetros intrínsecos Calibração baseada em duas imagens Ruído na correspondência de pontos entre imagens Estudo do erro de reconstrução Calibração baseada em uma imagem e vslam Conclusões 39 A Decomposição da matriz de Projecção 41 Bibliografia 44

9 Lista de Figuras 2.1 (a) Modelo Câmara Pontual - pinhole, (b) Representação alternativa de modelo pinhole, tendo plano de imagem à frente do centro de projecção, (c) Sensor CCD de uma câmara Em cada oitava da escala do espaço a imagem inicial é repetidamente convolvida com uma máscara Gaussiana, de forma a criar um conjunto de imagens da escala no espaço, como se vê no lado esquerdo da imagem. As imagens na segunda oitava têm por base a sub-amostragem com factor 2 da imagem com filtragem σ = 2 da primeira oitava O máximo e o mínimo local das imagens da diferença de Gauss, são detectadas comparando um pixel (marcado por X na imagem) com os seus 26 vizinhos (marcados por um circulo na imagem), numa região 3x3 no qual se utiliza as imagens com escalas adjacentes O robot encontra-se a obter medidas da sua posição X v, e da posição dos pontos de referência p i Rede de câmaras, formada por 3 câmaras estáticas. Para calibrar a rede, é utilizado o robot incorporado com uma câmara Duas projecções x 1,x 2 do ponto p. Transformação Euclidiana entre duas imagens dada por (R,T). A intersecção da linha (o 1,o 2 ) com cada plano de imagem tem o nome de epipolo e 1,e 2. As linhas l 1, l 2 são as linhas epipolares, e são a intersecção entre o plano (o 1,o 2,p) e os dois planos de imagem Quatro possíveis soluções da estimação de E. Entre a solução da esquerda e da direita, a baseline é invertida. Entre as soluções de cima e de baixo, a câmara B é rodada 180 o. Notar que só em (a) é que o ponto está a frente das duas câmaras Imagens do interior da sala com exposições de quadros de Picasso Exemplo de back-projection de um ponto(pimg) na imagem da câmara. O ponto C identifica o centro da câmara Dados para a calibração baseada no conhecimento da estrutura 3D (direita) e em pontos clicados sobre a imagem (esquerda). A imagem tem dimensão Segunda colecção de dados para calibração. O padrão de calibração inserido no VRML é observado de vários pontos de vista. As imagens têm dimensão Resultado da calibração do factor de escala. Os círculos denotam calibração por método LSQ utilizando os dados da Fig.4.1, os pontos denotam calibração com toolbox de J. Y. Bouguet utilizando as imagens da Fig

10 viii LISTA DE FIGURAS 4.4 Teste de calibração baseada em duas imagens, por factorização da matriz essencial. A colecção de pontos 3D (pontos azuis) é projectada para uma câmara base e para uma câmara que é colocada em vários pontos sobre uma superfície esférica. A estes pares de pontos é adicionado ruído gaussiano com variância 0.0, 0.1 e 0.5 [pix] (a, b e c). Os gráficos mostram as poses estimadas (vermelho) sobrepostas com o ground truth (preto). As duas linhas de gráficos mostram duas vistas diferentes Tipos de erro. Erro em pontos 2D correspondentes (esquerda). Erro em pontos 3D e poses de câmara reconstruídos (direita) As trajectorias efectuadas pela câmara movel encontram-se a vermelho Movimento rectilineo: (a) media do erro (b) variância do erro Movimento circular: (a) media do erro (b) variância do erro Gráficos com o erro de reconstrução: (a) media do erro (b) variância do erro Experiência de Calibração. Imagens adquiridas por três câmaras estáticas da rede de câmaras (a,b,c), e três exemplos de imagens adquiridas pela câmara móvel (d,e,f). Os círculos amarelos, com os pontos pretos no centro representam os pontos SIFT utilizados para efectuar a calibração. A sub-figura (g) mostra ground-truth e reconstrução. O ground-truth contém pontos 3D (púrpura) e localizações de câmaras móveis / fixas (representadas por linhas em azul claro, começadas por pontos pretos). A reconstrução contém câmaras móveis e fixas (pirâmides vermelhas e azuis, centros das câmaras marcados a preto). As posições das câmaras reconstruídas aparecem também projectadas no plano do pavimento. A sub-figura (h) contém uma ampliação das localizações de câmaras ground-truth e reconstruídas

11 Capítulo 1 Introdução Os avanços tecnológicos permitem actualmente efectuar instalações de grandes redes de câmaras. No entanto o processamento automático da informação adquirida pelas várias câmaras é ainda um processo pouco desenvolvido, estando essencialmente a ser explorado em (muitos) projectos de investigação. Um dos aspectos que se espera vir a dinamizar a investigação e o desenvolvimento de processamento de informação de redes de câmaras, é a existência de metodologias práticas de calibração das redes. Espera-se em particular que a calibração permita facilitar a correlação de eventos detectados entre as várias câmaras. Um dos principais problemas que se encontra na calibração de redes de câmaras é a necessidade de realizar a calibração para cada câmara utilizando somente pontos de vista fixos. Considerando por exemplo um cenário estático e com poucas variações de iluminação, então o ponto de vista fixo implica que a informação obtida pela câmara fixa se resume a uma imagem. E é a partir desta informação que desejamos estimar a pose da câmara e em alguns casos inclusive os parâmetros intrínsecos, i.e. parâmetros internos relativos à óptica e electrónica das câmaras. Um outro problema específico das redes, é a calibração tendo por base um único referencial, i.e. um referencial universal. Por outras palavras, pretende-se em geral que a pose de todas as câmaras se refira a um único referencial, de forma que eventos detectados em uma câmara possam ser interpretados pelas restantes. No caso de existir sobreposição de campos de visão, esta ligação entre câmaras pode ser obtida simplesmente pela correspondência de pontos homólogos, i.e. pontos de imagem relativos aos mesmos pontos 3D. Em muitos casos a sobreposição é demasiado pequena, ou mesmo inexistente. Neste trabalho desejamos calibrar câmaras com campos de visão totalmente separados, ou com pequenas sobreposições, e portanto precisamos de um elemento de ligação entre as câmaras. Neste trabalho seleccionámos a utilização de um robot móvel, equipado com uma câmara e com capacidade de auto-localização. Este robot transporta o sistema de coordenadas universal, e ao observar o cenário de forma semelhante aos pontos de vista das câmaras (fixas) da rede, permite realizar a respectiva calibração. 1.1 Trabalho Relacionado Têm sido efectuados recentemente diversos trabalhos de investigação sobre a calibração de redes de câmaras. Muitos dos trabalhos de investigação têm sido baseados essencialmente na hipótese que existe sobreposição dos

12 2 Introdução campos de visão das várias câmaras. Encontrando esses pontos correspondentes, é possível estimar com precisão a relação entre as câmaras [6]. No caso de não existir uma sobreposição de campos de visão, mas poder ser criada por movimento das câmaras, por exemplo com câmaras pan-and-tilt, ainda é possível criar panoramas [13]. As imagens consecutivas são ligadas por homografias e no final realiza-se um alinhamento global, bundle adjustment [15], do conjunto de câmaras de forma a minimizar os erros acumulados de estimação. Existem também trabalhos baseados em plataformas móveis. Em [12] utiliza-se uma plataforma móvel para transportar um padrão, e a calibração é obtida registando o padrão em todas as imagens. Utilizam-se os dados de auto-localização da plataforma móvel. Notar que esta solução implica que a plataforma móvel seja vista por cada uma das câmaras. Em [14, 1] uma plataforma móvel é deslocada por uma cidade e adquire imagens omnidireccionais em cruzamentos de ruas. Assume-se que imagens consecutivas têm pontos de vista semelhantes. Do registo das imagens extrai-se então a localização das várias câmaras. 1.2 Metodologias Propostas Nesta dissertação propomos duas metodologias de calibração de redes de câmaras: (i) localização relativa de uma câmara fixa em relação à câmara transportada por um robot móvel (as duas câmaras têm parâmetros intrínsecos conhecidos), (ii) localização de uma câmara fixa dada a reconstrução 3D, realizada por um robot móvel e uma imagem adquirida com um conteúdo semelhante à da câmara fixa. Nas metodologias propostas assumimos portanto que dispomos de um robot equipado com uma câmara, e que essa câmara adquire imagens com pontos de vista similares aos das câmaras pertencentes à rede. Notar que não impomos a utilização de padrões de calibração transportados por um robot, nem padrões fixos de grandes dimensões, nem impomos que as câmaras pertencentes à rede vejam o robot, ou que o robot tenha que ver as câmaras fixas. De forma a efectuar a calibração da rede de câmaras, uma das metodologias propostas segue uma abordagem que necessita da reconstrução de alguns pontos 3D do cenário. A reconstrução de pontos 3D implica em geral duas etapas, nomeadamente a correspondência de pontos característicos entre imagens e posteriormente a estimação da localização desses mesmos pontos. Para efectuar a correspondência entre imagens diferentes propomos a utilização de pontos característicos obtidos pela Scale-invariant feature transform, conhecidos simplesmente por SIFT features [10]. As SIFT features constituem actualmente o estado da arte, em termos de pontos característicos de uma imagem, tendo por fim tarefas de correspondência robustas. Para estimar a localização 3D de pontos 2D escolhidos numa imagem, e seguidos (correspondidos) em sequências de imagens, propomos a utilização de visual Simultaneous Localization and Mapping (vslam) [5, 8, 2]. Dada a localização tridimensional, e as imagens de alguns pontos do ambiente observado pela rede de câmaras, é possível obter a calibração de cada uma das câmaras da rede de câmaras. Há, contudo, que estudar a robustez das metodologias face ao ruído nas observações que sempre existe. De forma a efectuar testes às metodologias propostas, foram criados ambientes de simulação. Estes ambientes de simulação foram desenvolvidos em VRML, pela versatilidade de criação de cenários e movimentações de observadores (robots), por permitir obter imagens com um baixo nível de ruído, e sobretudo por oferecer ground truth para a validação das metodologias propostas.

13 1.3 Organização da Tese Organização da Tese No capítulo 2 introduzem-se ferramentas de modelação de câmaras, e de detecção, registo e reconstrução de pontos característicos em imagens. No capítulo 3 apresenta-se a metodologia de calibração de câmaras em rede, baseada num robot móvel equipado com uma câmara de vídeo, que observa um cenário semelhante ao observado pela rede de câmaras (fixas) a calibrar. No capítulo 4 apresentam-se resultados experimentais de processos prévios à calibração, e de calibração, e finalmente no capítulo 5 apresentam-se conclusões e propostas de trabalho futuro. O trabalho descrito nesta dissertação foi parcialmente publicado nas Quartas Jornadas de Engenharia de Electrónica e Telecomunicações e de Computadores [9].

14 4 Introdução

15 Capítulo 2 Introdução Teórica Nesta introdução teórica apresenta-se terminologia e notação, e descrevem-se processos e metodologias necessários à calibração de uma rede de câmaras. Em particular introduzimos: o modelo de projecção das câmaras, a detecção de pontos característicos em imagens, e a auto-localização e reconstrução de cenário em simultâneo a realizar por um robot móvel. 2.1 Modelo de uma câmara O modelo mais utilizado em visão por computador para modelar câmaras é o modelo de câmara pontual, ou pinhole camera model em terminologia inglesa (ver Fig.2.1(a)). É um modelo simples e suficientemente preciso para modelar a maior parte das câmaras equipadas com lentes de pequena angular existentes no mercado. Este modelo considera que os raios de luz emitidos ou reflectidos por um dado objecto e capturados por uma câmara pontual, passam todos por um ponto, pinhole, sendo depois projectados numa superfície plana, isto é, no plano da imagem π. O modelo de câmara pontual é assim composto por um plano, o plano da imagem, e por um ponto no espaço euclidiano, o centro da projecção. A distância entre o plano da imagem e o centro de projecção é denominada de distância focal f. A linha perpendicular ao plano da imagem que passa pelo centro de projecção é denominada de eixo óptico. O ponto de intersecção entre o eixo óptico e o plano da imagem é denominado de ponto principal ou centro da imagem. O modelo de câmara pontual é descrito em geometria projectiva como um mapeamento entre o espaço projectivo P 3 e o plano projectivo P 2. O mapeamento realiza uma projecção perspectiva. Considerando um ponto 3D, M P 3 e a respectiva imagem, m P 2, a relação dos dois pontos é dada simplesmente por: m = PM, (2.1) ou, descrevendo com mais detalhe as dimensões dos elementos da equação: x 1 x 2 x 3 = X p 11 p 12 p 13 p 14 p 21 p 22 p 23 p 24 Y Z. (2.2) p 31 p 32 p 33 p 34 1

16 6 Introdução Teórica (a) (b) (c) Figura 2.1: (a) Modelo Câmara Pontual - pinhole, (b) Representação alternativa de modelo pinhole, tendo plano de imagem à frente do centro de projecção, (c) Sensor CCD de uma câmara. Seguindo a convenção típica de dispositivos de aquisição de imagem, o modelo pinhole que a seguir detalhamos considera que o plano de imagem está à frente do centro de projecção (ver Fig.2.1(b)). O referencial ortonormado da câmara é definido por centro de projecção, eixo óptico que coincide com o eixo Z, e dois eixos, horizontal e vertical, X e Y, ligados ao desenho do sensor de imagem (ver Fig.2.1(c)). Como indicado nas equações anteriores, considerando um ponto 3D no mundo, com coordenadas (X w,y w,z w ) T, a sua projecção, no plano de imagem, em coordenadas da imagem (u,v), é obtida por aplicação da matriz de projecção P. Esta matriz, inclui os parâmetros intrínsecos, K, e parâmetros extrínsecos, [ c R W, c t W ]: λ u v 1 = K [ ] c R c W t W X w Y w Z w 1 (2.3) onde c R W é a matriz (3 3) de rotação do mundo definida no referencial da câmara, c t W são as coordenadas da origem do referencial do mundo, expressas no referencial da câmara, e K, a matriz de dimensão (3 3) é matriz de parâmetros intrínsecos da câmara. Os parâmetros intrínsecos expressos na matriz K, dependem apenas da própria câmara. Transformam as coordenadas métricas no referencial da câmara, relativas à intersecção dos raios ópticos com o plano de imagem,

17 2.2 Pontos característicos de uma imagem 7 em coordenadas discretas de imagem com unidades em pixels: f k u f k θ u 0 K = 0 f k v v = s u s u 0 0 s v v (2.4) onde, o f é a distância focal (em milímetros), o ponto (u 0,v 0 ) T (em pixels) são as coordenadas da intersecção do eixo óptico com o plano de imagem, ou ponto central, k u e k v são factores de escalamento da dimensão dos pixels, na horizontal e na vertical (inverso de milímetros), e k θ é o factor de skew entre os eixos da imagem (em radianos). Alternativamente aos parâmetros (f,k u,k v,k θ ), podem também ser utilizados os parâmetros (s u,s v ) que representam respectivamente as distâncias focais horizontal e vertical (medidas em pixel) e um parâmetro, s = f k θ de skew, em que s 0 indicará a não ortogonalidade dos eixos vertical e horizontal do sensor de imagem. Nos sensores de imagem actuais s terá normalmente valor zero. 2.2 Pontos característicos de uma imagem Para efectuar a correspondência entre as imagens é necessário em primeiro lugar localizar e identificar em cada imagem pontos de interesse que possam ser localizados e identificados nas imagens seguintes. Para este efeito foram escolhidos os pontos característicos SIFT, ou SIFT features em terminologia inglesa, introduzidas por David Lowe [10]. As razões da escolha prendem-se com o facto de as SIFT features serem actualmente consideradas o estado da arte na correspondência de pontos entre imagens, devido à sua precisão e robustez na determinação de correspondências entre imagens, suportando mudanças de escala, rotação, translação e luminosidade, para além de tolerarem níveis significativos de ruído nas imagens. A identificação de SIFT features é composta por quatro etapas principais: detecção de extremos na escala de espaço, selecção de pontos chave, atribuição de orientação aos pontos, e construção de descritores. Estes passos são descritos em detalhe nas secções seguintes Detecção de extremos na escala de espaço A primeira etapa do processo de obtenção de pontos característicos de uma imagem consiste na detecção de candidatos a pontos de interesse, os chamados pontos chave ou Keypoints em terminologia inglesa. A detecção dos pontos candidatos é realizada essencialmente por uma pesquisa de extremos locais na escala de espaço da imagem. A detecção dos extremos locais na escala de espaço compreende a aplicação de vários filtros Gaussianos, um por cada escala, e a subtracção das imagens filtradas, obtendo-se finalmente Difference of Gaussian (DoG) Images: D (x,y,σ) = L(x,y,k i σ) L(x,y,k j σ) (2.5) onde L(x,y,kσ), define a imagem original I(x,y) convolvida com o filtro passa baixo Gaussiano G(x,y,kσ) na escala kσ, isto é: L(x,y,kσ) = G(x,y,kσ) I(x,y). (2.6) Notar em particular que a imagem DoG entre as escalas k i σ e k j σ avalia essencialmente componentes espectrais de I(x, y), sendo portanto necessário manter representações (amostragens) adequadas às frequências em

18 8 Introdução Teórica Figura 2.2: Em cada oitava da escala do espaço a imagem inicial é repetidamente convolvida com uma máscara Gaussiana, de forma a criar um conjunto de imagens da escala no espaço, como se vê no lado esquerdo da imagem. As imagens na segunda oitava têm por base a sub-amostragem com factor 2 da imagem com filtragem σ = 2 da primeira oitava. causa. Para frequências elevadas é necessária a resolução máxima da imagem. Para frequências baixas podem ser utilizadas imagens sub-amostradas, e portanto optimizados recursos computacionais em termos de memória e de tempo de processamento. Para pequenos incrementos de frequência, a amostragem (resolução) deve ser mantida aproximadamente constante. David Lowe [10] propõe sub-amostragem a cada duplicação da frequência espacial, oitava, mantendo a resolução constante para frequências interiores à oitava (ver Fig.2.2). Criadas as imagens DoG podem então identificar-se candidatos a pontos chave determinando os máximos e mínimos locais no espaço de escala. A identificação é feita comparando cada pixel de uma imagem, com os seus vizinhos da mesma imagem, e com os pixels próximos nas imagens com escalas vizinhas (Fig.2.3). Se o ponto for máximo ou mínimo, para todos os pontos vizinhos, então é considerado candidato a ponto chave Selecção de pontos chave Na etapa anterior foram produzidos excessivos candidatos a pontos chave, e muitos deles são instáveis. Por esse motivo, nesta etapa é realizada uma análise detalhada aos dados dos pontos vizinhos associados a cada candidato. Com esta analise conseguimos detectar os candidatos instáveis, sendo assim descartados. Inicialmente para cada candidato a ponto chave, é feita uma interpolação dos dados da vizinhança, de forma a determinar com maior precisão a sua posição. Esta interpolação é feita usando a expansão quadrática de Taylor: D (x) = D + T DT x x xt 2 D x 2 x (2.7) Para efectuar a localização de um extremo ˆx, é determinada a derivada deste funcional em ordem a x. Igualandose a derivada a zero, é possível obter o extremo, resolvendo esta equação. Se o resultado obtido for maior do que

19 2.2 Pontos característicos de uma imagem 9 Figura 2.3: O máximo e o mínimo local das imagens da diferença de Gauss, são detectadas comparando um pixel (marcado por X na imagem) com os seus 26 vizinhos (marcados por um circulo na imagem), numa região 3x3 no qual se utiliza as imagens com escalas adjacentes. 0.5, em qualquer dimensão, então é uma indicação de que o extremo deste ponto chave, está perto de outro candidato a ponto chave. Neste caso, o candidato é alterado, e a interpolação é realizada sobre esse ponto. Caso contrário, a compensação é adicionada ao seu candidato a ponto chave, de forma a obter a interpolação da estimativa para a localização do extremo. De forma a rejeitar os pontos chave com baixo contraste, o valor da segunda ordem da expansão de Taylor, D(x), tem que ser inferiores a 0.03, desta forma o candidato a ponto chave é descartado. Caso contrário o ponto chave é mantido, e a sua localização torna-se definitiva, sendo dada por y + ˆx na escala σ, onde y é o local original do ponto chave à escala σ. A função da diferença de Gauss irá obter resultados fortes ao longo das fronteiras, mesmo que o candidato a ponto chave seja instável para pequenas quantidades de ruído. Por conseguinte, a fim de aumentar a estabilidade, é necessário eliminar os pontos chave que têm localizações mal definidas, mas têm respostas muito fortes nas fronteiras. Para os extremos mal definidos da função da diferença de gauss, a principal curvatura, em toda a fronteira, seria muito maior do que a principal curvatura ao longo dela. Para encontrar estas curvaturas principais, iremos calcular os valores próprios da matriz Hessian de segunda ordem H. H = [ D xx D xy D xy D yy ] (2.8) Os valores próprios de H são proporcionais às principais curvaturas de D. Considerando que α é o maior valor próprio, e o β é o menor valor próprio, então a razão entre os dois valores próprios é r = α β. O traço de H, ou seja, D xx +D yy, é dado pela soma dos dois valores próprios, enquanto que com D xx D yy +Dxy 2 determina-se o determinante. A razão R = Tr(H)2 (r+1)2 Det(H) é igual a R = r, e depende, apenas, da razão entre os valores próprios. R toma um valor mínimo quando os valores próprios são iguais. Por isso quanto maior for a diferença entre os valores próprios, maior é a diferença entre as curvaturas principais de D, e maior será o valor de R. Pode-se concluir que se um um valor próprio for superior a (r th+1) 2 (Lowe usa r th = 10), então este candidato a ponto chave é rejeitado. r th

20 10 Introdução Teórica Orientação em pontos chave Nesta etapa, a cada ponto chave é atribuída uma ou mais orientações, baseadas nas direcções do gradiente local da imagem. Esta etapa é fundamental, para a invariância de rotação do descritor do ponto chave. Para uma imagem original convolvida com um ruído Gaussiano L(x, y), na escala σ, o gradiente de magnitude m(x,y), e a orientação θ(x,y), são determinados pela Eq:2.10. m(x,y) = (L(x + 1,y) L(x 1,y)) 2 + (L(x,y + 1) L(x,y 1)) 2 (2.9) ( ) (L(x,y + 1) L(x,y 1)) θ (x,y) = tan 1 (L(x + 1,y) L(x 1,y)) (2.10) A magnitude e a orientação do gradiente são calculados, para cada pixel numa região vizinha e em redor do ponto chave da imagem original, convolvida com um ruído Gaussiano L(x,y). É criado um histograma para a orientação, no qual é composto por 36 blocos de 10 o cada, em que cada amostra da vizinhança é adicionada ao histograma. Os picos do histograma vão corresponder a orientação dominante, que vão ser atribuídos aos pontos chave. No caso de serem atribuídas mais do que uma orientação ao ponto chave, então é criado um novo ponto chave com a mesma localização, e a dimensão original, mas com uma orientação diferente Descritores em pontos chave Nas etapas anteriores foi identificada a localização à escala, e a orientação de pontos chave. A variância existente nas características destes pontos asseguram a unicidade local (na imagem) em relação a localização, escala, e orientação. Nesta quarta e última etapa pretendem-se criar vectores descritores associados a pontos chave, que sejam bastante distintivos entre imagens e portanto permitam o registo de correspondências minimizando as possibilidades de erro. O processo desta etapa é bastante semelhante ao da etapa anterior, e começa por criar um conjunto de histogramas para as orientações dos pixels (4 4) vizinhos. Desta forma são obtidos 16 histogramas, tendo cada histograma 8 blocos, o que faz com que os vectores descritores sejam compostos por = 128 elementos. Estes vectores são normalizados de forma a serem invariantes, perante alterações de luminosidade. Realizadas as quatro etapas constituintes que compõem a obtenção de pontos característicos SIFT, passa então a ser possível encontrar pontos correspondentes entre imagens obtidas em poses distintas. Basta para tal encontrar pontos chaves em ambas as imagens e comparar os respectivos descritores, vectores de características, com base em uma métrica de comparação de vectores. Estes pontos correspondentes serão a base do processo auto-localização e reconstrução do cenário que a seguir se detalha. 2.3 Auto-localização e reconstrução do cenário O método utilizado para efectuar a calibração de câmaras tem por base uma metodologia visual de autolocalização e reconstrução de cenários para robots móveis, em terminologia inglesa visual Simultaneous Localisation and Mapping, vslam. Como o nome indica, vslam efectua a auto-localização do robot e reconstrói o cenário, desconhecendo a posição onde o robot inicia o movimento e o mapa do mundo no qual está localizado. O vslam utiliza a câmara incorporada no robot para captar pontos de referência, baseados em pontos de chave

21 2.3 Auto-localização e reconstrução do cenário 11 Figura 2.4: O robot encontra-se a obter medidas da sua posição X v, e da posição dos pontos de referência p i detectados nas imagens adquiridas ao longo do movimento. Pode-se ver de uma forma simplificada na Fig.2.4 o ambiente em que o SLAM funciona Modelo do Processo Na Fig.2.4 o X v representa o vector de estado da posição do robot, que irá ser utilizado como base para escrever a equação que modela o movimento do robot x v (K + 1) = F v (K) x v (K) + u v (K + 1) + v v (K + 1) (2.11) onde F v (K) representa a matriz da dinâmica, u v (K) é um vector de controlo de entrada, e v v (K) é um vector temporal, não correlacionado do erro do ruído com media zero. Na Fig.2.4 o p i, representa a localização dos pontos de referência (o vslam considera que todos os pontos de referência são fixos). O vector de estados dos pontos de referência é dado pela equação: p i (K + 1) = p i (K) = p i. (2.12) O vector de estado aumentado x(k) contém a informação do vector de estado do robot, e do vector de estado de todos os pontos de referência, sendo assim dado pela Eq [ x(k) = x T v (k) p T 1... p T N ] T (2.13) O vector de estado aumentado, do modelo de transição é descrito pela Eq.2.14 e Eq.2.15.

22 12 Introdução Teórica x v (k + 1) p 1. = F v (k) I p x v p 1. + u v (k + 1) 0 p1. + v v (k + 1) 0 p1. (2.14) p N I pn p N 0 pn 0 pn x(k + 1) = F(k)x(k) + u(k + 1) + v(k + 1) (2.15) Modelo de Observação O robot encontra-se equipado com uma câmara, com a qual são obtidas diversas imagens de pontos, que vão ser classificados como pontos de referência. A informação adquirida dos pontos de referência, irá ser guardada na seguinte forma Eq z i (k) = H i (k) + w i (k) = H pi p H v x v (k) + w i (k) (2.16) Onde, w i (k) é um vector temporal não correlacionado do erro do ruído com media zero, H i é a matriz das observações, e relaciona a saida do sensor z i com o vector de estado x(k) quando observa diversos pontos de referência Processo de Estimação De forma a solucionar o problema da estimação do vslam, é utilizado um filtro de Kalman, que efectua uma estimação da localização do robot, e dos pontos de referência. O filtro de Kalman, calcula recursivamente estimativas do vector de estado x(k), que está a evoluir de acordo com a Eq.2.14, e que está a ser observado, de acordo com o modelo de observação, descrito na Eq O filtro de Kalman, calcula uma estimativa que é equivalente à média condicional ˆx(p q) = E[x(p) Z q ] (p q) onde Z q é a sequência de observações tiradas até ao instante de tempo q. O erro de estimação é estipulado por x(p q) = ˆx(p q) x(p). O algoritmo recursivo do filtro de Kalman, realiza-se em três fases: 1. Predição: Tendo em conta os modelos descritos nas Eq.2.14 e Eq.2.16, e uma estimativa ˆx(k k) do estado x(k) no instante de tempo k, juntamente com uma estimativa da covariância P(k k), o algoritmo gera inicialmente uma previsão para a estimativa do estado, e para o estado de observação (relativa a todos os pontos de referência), e estima o estado de covariância no instante de tempo k + 1, de acordo com a seguinte Eq ˆx(k + 1 k) = F(k)ˆx(k k) + u(k) (2.17) ẑ i (k + 1 k) = H i (k)ˆx(k + 1 k) (2.18) P(k + 1 k) = F(k)P(k k)f T (k) + Q(k) (2.19) 2. Observação: Seguindo a previsão, uma observação z i (k + 1) de todos os pontos de referência do verdadeiro estado x(k + 1) é construído de acordo com a Eq Assumindo uma associação correcta dos pontos de

23 2.3 Auto-localização e reconstrução do cenário 13 referência, uma inovação é calculada do seguinte modo υ i (k + 1) = z i (k + 1) ẑ i (k + 1 k) (2.20) juntamente com uma inovação associada dada pela matriz covariância S i (k + 1) = H i (k)p(k + 1 k)h T i (k) + R i (k + 1) (2.21) 3. Actualização: O estado estimado, e o correspondente estado da covariância estimada, são actualizados de acordo com ˆx(k + 1 k + 1) = ˆx(k + 1 k) + W i (k + 1)υ i (k + 1) (2.22) P(k + 1 k + 1) = P(k + 1 k) W i (k + 1)S i (k + 1)Wi T (k + 1) (2.23) onde o ganho da matriz W i (k + 1) é dado por W i (k + 1) = P(k + 1 k)h T i (k)s 1 i (k + 1) (2.24) A actualização do estado estimando da matriz de covariância, é de primordial importância para a utilização do vslam. Compreender a estrutura, e a evolução do estado da matriz de covariância, é a componente-chave para a utilização do vslam.

24 14 Introdução Teórica

25 Capítulo 3 Calibração de uma rede de câmaras Definindo rede de câmaras como um conjunto de câmaras fixas, posicionadas arbitrariamente no cenário, a calibração da rede consiste na estimação de parâmetros intrínsecos e os parâmetros extrínsecos (localização e orientação), de cada uma das câmaras pertencentes à rede. Os parâmetros extrínsecos, são estimados em relação a um referencial global. Para a obtenção da calibração, não é assumido qualquer tipo de sobreposição de imagens das diversas câmaras da rede[4]. Foram testadas duas metodologias distintas, de forma a efectuar a calibração da rede de câmaras. 1. A primeira estratégia baseia-se num par de imagens, uma imagem captada por uma câmara da rede, F i e outra imagem captada pela câmara móvel, C i. Ambas as imagens devem ter uma grande sobreposição no cenário observado (notar que pode não existir sobreposição de campos de visão das câmaras fixas). Ver Fig.3.1. Para utilizar esta estratégia é necessário ter o conhecimento prévio dos parâmetros intrínsecos das câmaras da rede. 2. A segunda metodologia abordada, tem como base a posição tridimensional de pontos de referência, e as coordenadas nas imagens das câmaras fixas desses mesmos pontos, que são vistos tanto pela câmara móvel, C i, como pelas câmaras estáticas, F i, como se pode ver na Fig3.1. Assume-se, nestas duas metodologias, que a câmara móvel está calibrada e que ao longo do seu movimento pode ser redireccionada para adquirir imagens semelhantes, às das câmaras fixas (i.e. com grandes sobreposições dos campos de visão). Não é necessário que o robot seja visto pelas câmaras fixas. Considera-se sim, que o robot tem as suas próprias coordenadas globais, e que se consegue localizar ao longo do seu deslocamento. Existem diversos métodos para auto-localizar robots moveis, como por exemplo por odometria, GPS diferencial ou SLAM / vslam [5, 8]. Neste trabalho foi adoptado o método de vslam (secção 2.3). Ambas as metodologias de calibração compreendem 2 etapas essenciais: (i) estimação das matrizes de projecção que representam as câmaras da rede, F i no referencial do mundo (Fig.3.1); (ii) obtenção dos parâmetros dessas mesmas câmaras.

26 16 Calibração de uma rede de câmaras Figura 3.1: Rede de câmaras, formada por 3 câmaras estáticas. Para calibrar a rede, é utilizado o robot incorporado com uma câmara 3.1 Calibração baseada num par de imagens Nesta secção descreve-se uma das estratégias que podem ser utilizadas de forma a efectuar a calibração de uma rede de câmaras. Esta estratégia baseia-se na utilização da geometria epipolar, de forma a obter a matriz Fundamental que representa a matriz de projecção da câmara, e posteriormente é efectuada a factorização da matriz Essencial de forma a obter os parâmetros de calibração da câmara. A aplicação deste método implica que os parâmetros intrínsecos das câmaras da rede sejam conhecidos,tal como as coordenadas dos pontos chaves determinados pelas SIFT nas imagens adquiridas pelas câmaras da rede. A geometria epipolar é a geometria de projecção entre dois planos de imagem. Esta geometria é independente do panorama da estrutura, e só depende dos parâmetros intrínsecos e extrínsecos das câmaras que obtêm as imagens [7]. Como se pode ver na Fig.3.2 a geometria epipolar é constituída por um plano epipolar formado a partir de três pontos: os dois centros ópticos o 1 e o 2 e um ponto p visível pelas duas câmaras. Esse plano intersecta o plano de imagem das câmaras e origina uma recta epipolar l. A recta l 1 está limitada pelo epipolo e 1 (ponto na imagem da câmara 1 onde se vê o centro óptico da câmara 2) e pelo ponto na imagem x 1 (ponto na imagem 1 onde se vê o ponto p). O mesmo acontece se falarmos num ponto da imagem da câmara 2. A geometria epipolar permite retirar uma dimensão ao espaço de procura do ponto correspondente, visto que o ponto correspondente na segunda imagem só pode estar numa linha da imagem e não em qualquer ponto do plano da imagem. Dado ser nulo o volume de um plano pode-se escrever: o 1 p [ o 1 o 2 o 2 p] = 0 (3.1) Assim dado um ponto da imagem 1, x 1 então o seu correspondente na outra imagem, x 2 tem de estar sobre recta epipolar l 2 e pode ser calculado por: x 1 [t] R x T 2 = 0 (3.2)

27 3.1 Calibração baseada num par de imagens 17 Figura 3.2: Duas projecções x 1,x 2 do ponto p. Transformação Euclidiana entre duas imagens dada por (R,T). A intersecção da linha (o 1,o 2 ) com cada plano de imagem tem o nome de epipolo e 1,e 2. As linhas l 1, l 2 são as linhas epipolares, e são a intersecção entre o plano (o 1,o 2,p) e os dois planos de imagem. onde, R é uma matriz rotação entre câmaras, e t é o vector translação entre câmaras, [t] é uma forma matricial baseada em t que permite realizar um produto externo Reescrevendo a Eq.3.2 é assim obtida a matriz fundamental, F, que é uma matriz (3 3) e de característica 2. x T 2 Fx 1 = 0 (3.3) A matriz Essencial obtêm-se da mesma forma da matriz Fundamental, mas na equação da matriz Essencial Eq.3.4 são retirados os parâmetros intrínsecos aos pontos correspondentes, Eq.3.5. ˆx T 2 Eˆx 1 = 0 (3.4) ˆx = K i x. (3.5) Tal como a matriz Fundamental, a matriz Essencial é uma matriz (3 3) de característica 2. Podemos relacionar assim a matriz Fundamental com a matriz Essencial pela equação: E = K 1 FK 2 (3.6) A estimação de E é então realizada retirando os parâmetros intrínsecos ao pontos correspondentes e resolvendo o problema de minimização: E = arg E min n ) T 2 (ˆx 2j Eˆx 1j j=1 (3.7) s.a. E F = 1 Este problema de minimização é resolvido usando um conjunto de equações lineares da forma Ae = 0 onde e é um vector coluna de nove entradas que contem a solução da matriz E. A matriz de medição A é descrita por, Eq. 3.8:

28 18 Calibração de uma rede de câmaras [ x 1 x 2 x 1 y 2 x 1 y 1 x 2 y 1 y 2 y 1 x 2 y 2 1 A ] n e 11 e 12 e 13 e 21 e 22 e 23 e 31 e 32 1 e = 0 (3.8) e tem como entradas as coordenadas dos pontos correspondentes ˆx 1 e ˆx 2. A matriz Essencial E é uma reformulação do vector solução e, cujo valor é determinado à parte do factor escala, Eq Isto quer dizer que o sistema tem ainda a restrição de e = Factorização E = e 11 e 12 e 13 e 21 e 22 e 23 e 31 e (3.9) A factorização da matriz Essencial permite obter os parâmetros de rotação, R, e de translação, t, entre duas câmaras. É aplicada a factorização SVD que subdivide a matriz Essencial em três matrizes Eq.3.10, onde U e V são matrizes ortogonais, D é matriz diagonal. A matriz diagonal mostra que E é de rank 2 pois D = diag(1,1,0). [U,D,V ] = SV D(E) (3.10) E = UDV T (3.11) E = RS (3.12) A matriz Essencial pode ser também decomposta na multiplicação da matriz rotação R com a matriz antisimétrica S. A matriz rotação R é determinada segundo a Eq.3.14 e a matriz anti-simétrica S é determinada segundo a Eq.3.15, onde Z e Y são duas matrizes descritas a seguir Eq A matriz S contém o vector t também, Eq O vector t pode ser encontrado de duas maneiras. Por S, Eq.3.16, ou através da terceira coluna de U, Eq Z = Y = (3.13) R = UY V T ou R = UY T V T (3.14) S = V ZV T (3.15)

29 3.2 Calibração baseada em uma imagem e vslam 19 S = Vector translação tirando da matriz anti-simétrica S: 0 t z t y t z 0 t x t y t x 0 (3.16) t = (t x,t y,t z ) (3.17) Vector translação tirando da terceira coluna de U: t = U (:,3) (3.18) A factorização da Essencial origina duas hipóteses para a matriz rotação, e origina um vector translação com norma igual a 1. Desta forma, existem quatro combinações possíveis [R,t]. Para encontrar a estimativa correcta é necessário reconstruir um ponto tridimensional e analisar se é positiva a profundidade desse ponto em relação às duas câmaras, isto é, se o ponto está à frente das duas câmaras, Fig.3.3. Figura 3.3: Quatro possíveis soluções da estimação de E. Entre a solução da esquerda e da direita, a baseline é invertida. Entre as soluções de cima e de baixo, a câmara B é rodada 180 o. Notar que só em (a) é que o ponto está a frente das duas câmaras. 3.2 Calibração baseada em uma imagem e vslam Nesta secção são abordados dois métodos para estimar as matrizes de projecção das câmaras da rede. Estes métodos assumem que: (i) existe sobreposição entre imagens das câmaras fixas e imagens das câmaras moveis, (ii) foi obtida uma boa estimação da estrutura do cenário com o vslam.

30 20 Calibração de uma rede de câmaras Primeiro método de estimação da matriz de projecção Para utilizar este método é necessário ter informação da posição 3D de pontos de referencia (em relação ao referencial do mundo) e as respectivas coordenadas 2D dos pontos de referencia nas imagens das câmaras da rede. Com estes dados podem ser obtidas as matrizes de projecção das câmaras da rede. A projecção de um ponto de referencia 3D, M, no referencial do mundo, para um ponto da imagem, m, é determinado por: m = P M (3.19) onde P representa a matriz de projecção, e m e M definem as coordenadas homogéneas dos pontos da imagem e dos pontos no mundo. Reorganizando a equação de projecção de um ponto de forma a M = [M;1] = [X Y Z 1] T, e as coordenadas na imagem como m = λ[u v 1] T, e considerando P = [p T 1 p 14 ;p T 2 p 24 ;p T 3 p 34 ], onde p T 1,p T 2,p T 3 são vectores de dimensão 1 3, considerando p i4 escalares, e assumindo p 34 = 1, irá ser então finalmente reescrita a Eq.3.19 em duas equações com onze variáveis: { M T.p p p 2 + 0p 24 u.m T.p 3 = u 0.p p 14 + M T.p 2 + 1p 24 v.m T.p 3 = v. (3.20) Assim usando n pontos, serão criadas 2n equações com 11 variáveis. Com o pressuposto de determinar as 11 variáveis, são necessários pelo menos 6 pontos correspondentes. A Eq.3.20 repetida para os n pontos, pode ser reescrita de forma linear matricial: M1 T u 1 M1 T 0 0 M 1 T 1 v 1 M1 T M2 T u 2 M2 T 0 0 M 2 T 1 v 2 M2 T..... Mn T u n Mn T p 1 p 14 p 2 p 24 p 3 = u 1 v 1 u 2 v 2. u n (3.21) 0 0 M T n 1 v n M T n v n que pode ser resolvida por p = (A T A) 1 A T b. Reorganizando o vector [p 1 ; p 14 ;p 2 p 24 ;p 3 ;1], em uma matriz de dimensão 3 4, obtemos finalmente a matriz de projecção de uma câmara de rede Segundo método de estimação da matriz de projecção Neste segundo método tal como no anterior, é necessário ter informação da posição 3D dos pontos de referencia (em relação ao referencial do mundo) e as respectivas coordenadas 2D dos pontos de referencia nas imagens das câmaras da rede. Irá ser utilizada a equação Eq.2.1 que é também é utilizada no primeiro método, de forma a relacionar os pontos 2D com os pontos 3D, com a matriz de projecção da câmara. Esta matriz tal como no primeiro método irá ser de dimensão 3 4. A equação Eq.3.19 pode ser reescrita na forma m P M = 0, utilizando coordenadas homogéneas. Esta equação irá permitir uma solução linear simples de P, na qual as colunas j da matriz P podem ser descritas por P jt, sendo assim dada pela Eq.3.22.

31 3.2 Calibração baseada em uma imagem e vslam 21 P M i = P 1T Mi P 2T Mi P 3T Mi (3.22) ( ) T Se for considerado que m i = x i, y i, w i, então m P M = 0 pode ser dado pela Eq.3.23 m i P M i = y i P 3T Mi w i P 2T Mi w i P 1T Mi x i P 3T Mi x i P 2T Mi y i P 1T Mi (3.23) Como P j T Mi = M T i P j para j = 1,...,3, temos então um conjunto de três equações que correspondem as entradas da matriz P. Em forma matricial temos: 0 T w i MT i y i MT i w i MT i 0 T x i MT i y i MT i x i MT i 0 T P 1 P 2 P 3 = 0 (3.24) Como alternativa, pode-se optar por utilizar apenas as duas primeiras equações isto porque as três equações são linearmente dependentes. [ 0 T w i MT i y i MT i w i MT i 0 T x i MT i ] P 1 P 2 P 3 = 0 (3.25) Para um conjunto de n pontos correspondentes, irá ser obtida uma matriz A de dimensão 2n 12, na qual a matriz P é calculada como a solução de AP = 0. São necessários pelo menos 6 pontos correspondentes para determinar P Estimação da pose das câmaras Depois de ter sido obtida a matriz de projecção da câmara pelo primeiro ou pelo segundo método, pretende-se obter os parâmetros intrínsecos e extrínsecos da câmara. A estrutura da matriz de projecção da câmara, é dada por: P = K[R C] (3.26) onde K é a matriz dos parâmetros intrínsecos da câmara, R é a orientação da câmara e C é o centro da câmara. De forma a estimar estes parâmetros vamos inicialmente remover da matriz P os parâmetros intrínsecos, a matriz K. Para conseguirmos fazer isto, teremos que percorrer três etapas: 1. Efectuar uma factorização QR; 2. Transformar QR em RQ; 3. Corrigir o sinal de K;

32 22 Calibração de uma rede de câmaras Factorização QR Para efectuar a factorização QR foram estudados e implementados 3 métodos capazes de transformar uma matriz A com colunas linearmente independentes, em uma matriz ortonormada Q e uma matriz triangular superior R, tal como se pode observar na seguinte equação: [ A = ] [ v 1 v 2 v 3 = ] q 1 q 2 q 3 r 11 r 12 r 13 0 r 22 r r 33 = QR (3.27) A decomposição consiste portanto na determinação de é pretendido determinar o q 1, q 2, q 3, r 11, r 12, r 13, r 22, r 23 e r 33. Para este efeito foram então implementados e estudados os seguintes métodos de factorização: 1. Factorização de Gram-Schmidt 2. Transformação de Householder 3. Matrizes de rotação de Givens 1. Factorização de Gram-Schmidt Para implementar o método de factorização de Gram-Schmidt, são utilizadas as colunas da matriz A, sendo utilizado inicialmente a primeira coluna de A de forma a determinar os valores da primeira coluna de Q e de R (q 1 e r 11 ), ficando assim: r 11 = v 1 v 1 é a norma de v 1 q 1 = v1 r 11 Para determinar a segunda coluna de Q e de R (q 2, r 12 e r 22 ) é utilizada a 2 a coluna de A e primeira coluna estimada da matriz Q(q 1 ): r 12 = q 1.v 2, q 1.v 2 é o produto interno entre os dois vectores r 22 = v 2 r 12 q 1 q 2 = (v2 r12q1) r 22 Por fim para determinar a terceira coluna de Q e de R (q 3, r 13, r 23 e r 33 ), é utilizada a 3 a coluna de A, e as duas primeiras colunas estimadas para a matriz Q, sendo assim as três entradas da 3 a coluna de R dada por: r 13 = q 1.v 3, q 1.v 3 é o produto interno entre os dois vectores r 23 = q 2.v 3, q 2.v 3 é o produto interno entre os dois vectores r 33 = v 3 r 13 q 1 r 23 q 2 q 3 = (v 3 r 13 q 1 r 23 q 2 ) Assim desta forma conseguimos determinar a partir de uma matriz A duas matrizes, no qual a primeira é uma matriz ortonormada, e a segunda uma matriz triangular superior.

33 3.2 Calibração baseada em uma imagem e vslam Transformação de Householder A ideia da factorização de Householder é similar ao método de eliminação de Gauss. Este método baseia-se numa propriedade, na qual se utiliza um vector e reflecte-se sobre um plano, e é com base nesta propriedade que se determina a matriz Q e R. Assim de forma a efectuar a factorização, vamos considerar que [ v = A(:,i) + sign(a(:,i)) A(:,i) ] T no qual podemos verificar que [ H v A(:,i) = +sign(a(:,i)) A(:,i) ] T onde H v geometricamente é a reflexão no plano definido por v, e podemos assim utilizar estas matrizes para determinar a matriz R, e a matriz Q. Assim inicialmente teremos que determinar v 1 desta forma: [ v 1 = A(:,1) + sign(a(:,1)) A(:,1) ] T e de seguida vamos determinar H v1 = eye(3) 2v 1v T 1 v 1 v T 1 [ ] T Agora vamos determinar [ v 2 = H v1 (2 : 3,2) + sign(h v1 (2,2)) H v1 (2 : 3,2) 1 0 ] T De forma a simplificar a equação que determina a matriz H v2, vamos considerar uma matriz auxiliar H v2aux = eye(2) 2v 2v T 2 v 2 v T 2 [ 1 0 ] T utilizando assim esta matriz auxiliar [ [ H v2 = ] [ 0 H v2aux (1,1) H v2aux (1,2) ] [ 0 H v2aux (2,1) H v2aux (2,2) ] ]. Agora que obtivemos as matrizes de Householder já podemos obter as matriz Q e R, da seguinte forma: Q = H v1 H v2 R = H v1 H v2 A 3. Matrizes de rotação de Givens Este método de factorização é baseado nas matrizes de rotação de Givens segundo os três eixos das coordenadas que são:

34 24 Calibração de uma rede de câmaras Q z = cos(θ) sin(θ) 0 sin(θ) cos(θ) Q y = cos(θ) sin(θ) 0 sin(θ) cos(θ) Q x = cos(θ) sin(θ) 0 sin(θ) cos(θ) estas matrizes irão ser multiplicadas à direita da matriz A, que se pretende decompor, de forma a quando é feita a multiplicação das três matrizes de rotação de Givens, se obter uma matriz triangular superior, assim: Quando se multiplica Q x por A, vamos colocar 0 na entrada A 32 ; Quando se multiplica Q y por A, vamos colocar 0 na entrada A 31 ; Quando se multiplica Q z por A, vamos colocar 0 na entrada A 21 ; Conseguimos obter assim a matriz ortonormada Q = Q T z Q T y Q T x, e matriz triangular superior AQ z Q y Q x = R. Transformar QR em RQ Nesta subsecção pretendemos converter o produto de duas matrizes, no qual a primeira é uma matriz ortonormada e a segunda uma triangular superior, pelo produto de duas matrizes, no qual a primeira é uma triangular superior e a segunda uma ortonormada. Factorização QR: Q U Factorização RQ: K R Para efectuar esta transformação vamos recorrer a uma matriz auxiliar S, que é definida da seguinte forma: S = esta matriz respeita as propriedades S T = S e S.S = I (i.e. S 1 = S). Aplicando uma factorização QR a P T 1:3,1:3.S, e fazendo algumas operações algébricas, tais como, P 1:3,1:3 = S.U T.Q T = S.U T.S.S.Q T = (SU T S).(SQ) = K.R. K = S.U T.S, e R = S.Q T. Com estas operações conseguimos assim obter uma factorização RQ, ficado assim

35 3.3 Cenário virtual e criação de Ground Truth 25 Correcção da diagonal de K Para finalizar a estimação da pose da câmara, é necessário efectuar uma correcção à diagonal da matriz K. Isto deve-se ao facto de quando a matriz K é gerada existir uma ambiguidade em relação ao sinal das entradas correspondestes à diagonal. Esta ambiguidade é retirada tendo em conta que as entradas da diagonal da matriz têm necessariamente que ser positivas. Assim para resolver este problema cria-se uma matriz D, no qual a sua diagonal contem os sinais das entradas da diagonal da matriz K D = diag{sign(k 1,1 ),sign(k 2,2 ),sign(k 3,3 )} assim utilizando esta matriz é possível corrigir a ambiguidade existente na factorização da seguinte forma: K K.D, R D.R, t = K 1.P 1:3,4. onde a seta significa que a variável à esquerda toma o valor da expressão à direita. No anexo A, mostra-se uma implementação realizada em Matlab do algoritmo de factorização de uma matriz de projecção, baseada na factorização RQ do próprio Matlab. 3.3 Cenário virtual e criação de Ground Truth Para se poder efectuar testes aos métodos utilizados para realizar a calibração foi necessário criar um ambiente de simulação, no qual fosse possível efectuar uma navegação com uma câmara móvel num ambiente que permitisse a detecção de pontos chave nas imagens adquiridas pela câmara móvel e pelas câmaras da rede. De forma a criar o ambiente de simulação foi utilizado VRML (Virtual Reality Modeling Language), o motivo pelo qual foi escolhida esta ferramenta deve-se ao facto de desta forma ser possível determinar o ground truth do ambiente de simulação, e assim poder validar os nossos resultados. O VRML permite descrever objectos (polígonos) 3D, e os agrupar de forma a obter objectos mais complexos. Este processo é feito através de nós definidos como shapes, que são constituídos por dois atributos, a geometria e a aparência, que permite definir a estrutura tridimensional de um objecto. Através de um nó Transform é possível rodar e transladar o objecto para quais queres coordenadas do mundo VRML. Foi assim criado um ambiente de simulação no qual se criou uma sala em que se pretende simular o interior de uma galeria de exposições de quadros de Picasso. A decisão de criar uma galeria para a nossa simulação, deveuse ao facto de as pinturas de Picasso serem compostas por texturas bastante boas para a utilização das SIFT nas imagens adquiridas no interior destas galerias. A sala criada para efectuar as simulações tinha 10 5 metros de área e 3 metros de altura. O interior desta sala esta decorada com quadros nas suas paredes, e por quadros espalhados no interior da sala Ground truth No propósito de efectuar uma viável validação dos resultados obtidos dos testes realizados em ambientes desenvolvidos com o VRML, é necessário obter um Ground truth, isto é, conseguir obter informação em relação a localização 3D dos pontos de referencia, de forma a conseguirmos comparar com a estimativa de localização desses mesmos pontos determinados pelo método de estimação.

36 26 Calibração de uma rede de câmaras Figura 3.4: Imagens do interior da sala com exposições de quadros de Picasso Apesar do VRML ser uma ferramenta muito boa para desenvolver ambientes de simulação, tem o problema de não permitir obter informações precisas de pontos do ambiente desenvolvido, possibilitando apenas saber a posição do robot e das câmaras da rede. É assim necessário desenvolver um método para obter a localização 3D dos pontos de referencia. Utilizando a informação que é possível adquirir no VRML, mais concretamente os parâmetros extrínsecos e os parâmetros intrínsecos da câmara do robot, as imagens adquiridas pelo robot ao longo do seu movimento, as coordenadas 2D dos pontos de referencia nas imagens adquiridas pelo robot ao longo do seu movimento, e a lista de polígonos que tinha sido desenvolvida de forma a criar a sala em VRML. Com toda esta informação pode então ser efectuada a back-projection dos pontos característicos identificados pelas SIFT nas imagens adquiridas pelo robot, isto é, dado um ponto x da imagem adquirida pelo robot, podemos determinar um conjunto de pontos no espaço (recta) que correspondem a este ponto. O conjunto de pontos no espaço correspondem a uma linha recta no espaço que passa no centro da câmara e pelo ponto 2D da imagem que esta localizada a uma distancia focal do centro da câmara. Esta linha tem um ponto que irá coincidir com um dos planos dos polígonos da nossa lista, como se pode ver na Fig.3.5. Para determinar os pontos da linha no espaço, é necessário criar uma equação da recta que une o centro da câmara com o ponto da imagem. Esta equação é composta pelo centro da câmara, onde PC = 0 (P matriz da câmara e C centro da câmara), e pelo ponto P + x, em que P + é a pseudo-inversa da matriz P e é dado por P + = P T (PP T ) 1, assim a linha é formada pela junção destes dois pontos, e é dada pela equação: X (λ) = P + x + λc (3.28) Neste caso, como as câmaras são consideradas finitas, pode ser utilizado uma expressão alternativa, conside-

37 3.3 Cenário virtual e criação de Ground Truth 27 Figura 3.5: Exemplo de back-projection de um ponto(pimg) na imagem da câmara. O ponto C identifica o centro da câmara. rando P = [M p 4 ], e o centro da câmara passa a ser dado por C = M 1 p 4. Fazendo o back-projection de um pondo da imagem x, vamos intersectar um plano no ponto D = ((M 1 x) T,0), onde D vai providenciar o segundo ponto a utilizar para definir a nova expressão da recta, podendo assim escrever a seguinte Eq.3.29 da recta. X (µ) = µ ( M 1 x 0 ) + ( M 1 p 4 1 ) = ( M 1 (µx p 4 ) 1 ) (3.29) Finalmente, é necessário verificar se o ponto se encontra à frente ou atrás do plano principal da câmara. Considerado que a matriz da câmara P = [M p 4 ] e que o ponto da imagem x = w(x,y,1) T = PX, em que X = (X,Y,Z,1) T. Então w = P 3T X = P 3T (X C) se PC = 0. Se a matriz da câmara estiver normalizada de forma a que o detm > 0 e m 3 = 1 (m3 é a direcção do raio principal), então pode-se interpretar o w como a profundidade do ponto X a partir centro da câmara, com a direcção do raio principal. Considerando então um ponto 3D X = [X Y Z 1] T e a matriz da câmara P = [M p 4 ] para uma câmara finita, e supondo que P[X Y Z 1] T = w[x y 1] T, então: depth (X : P) = sign(det M)w T m 3 é a profundidade do ponto X em frente ao plano principal da câmara Ruído de correspondência e erro de reconstrução O registo de pontos entre imagens, realizado pela correspondência de pontos característicos SIFT, apesar da robustez está naturalmente sujeito a erro de localização dos próprios pontos característicos. A back-projection permite avaliar este erro de correspondência. Neste sentido, tendo duas imagens nas quais foram detectados pontos característicos SIFT, e tendo realizado a correspondência dos pontos, podemos determinar um erro de correspondência realizando a back-projection dos pontos de uma imagem e re-projectando na outra. No capítulo de resultados experimentais este aspecto será mais detalhado. Para além do registo de pontos, também a reconstrução realizada pelo vslam está naturalmente sujeita a ruído, não só pelo facto de partir de pontos característicos que têm intrinsecamente ruído mas também pelo facto de vslam, como qualquer processo, incorporar erro numérico. Uma forma de avaliar o erro de reconstrução de estrutura 3D e de auto-localização da câmara móvel passa de novo pela utilização de back-projection. Os pontos identificados numa imagem, e seguidos nas seguintes, são transformados em pontos 3D. Estes pontos 3D são

38 28 Calibração de uma rede de câmaras também reconstruídos pelo vslam. A diferença entre os valores 3D será uma estimativa do erro. Também este aspecto será mais detalhado no capítulo de resultados experimentais.

39 Capítulo 4 Resultados Nesta secção mostram-se resultados de diversos testes efectuados aos métodos de calibração de uma rede de câmaras propostos nos capítulos anteriores. Os testes estão divididos em várias classes: (i) calibração de parâmetros intrínsecos da câmara móvel, (ii) teste de calibração de câmaras em rede por factorização da matriz essencial, (iii) estudo do ruído na localização de pontos característicos (SIFT), (iv) estudo do ruído na reconstrução 3D de pontos característicos, (v) teste de calibração de câmaras em rede baseado em uma imagem e vslam. 4.1 Calibração de parâmetros intrínsecos Apesar de nesta dissertação serem essencialmente considerados cenários virtuais criados a partir de VRML, e portanto serem conhecidos com grande precisão parâmetros do cenário e das câmaras inseridas no cenário, na prática pequenas diferenças de utilização do software de rendering implicam por exemplo incerteza na calibração de parâmetros intrínsecos, nominal, das câmaras. Um caso habitual de alteração dos parâmetros por operação do software surge da alteração de dimensão, resize da janela de visualização. O resize motiva uma modificação na matriz de parâmetros intrínsecos (ponto principal e factores de escala) que precisa ser conhecida pelos algoritmos de calibração de uma rede de câmaras, propostos no capítulo 3. Foram assim consideradas duas formas de calibração das câmaras móveis e fixas colocadas no cenário virtual: uma baseada no conhecimento da estrutura 3D do cenário, e a outra baseada na observação em várias poses de um padrão plano (xadrez) de calibração tal como é indicado pela toolbox de calibração de J. Y. Bouguet [3]. A calibração baseada na estrutura do cenário utiliza vértices (X,Y,Z) de polígonos tridimensionais (quadros) cujas as projecções são indicadas manualmente sobre a imagem (ver Fig.4.1). A fórmula de calibração é a indicada na Sec.3.2.2, i.e. uma forma de mínimos quadrados (LSQ). Esta estimação contém os parâmetros intrínsecos e extrínsecos que formam a matriz de projecção. A utilização de um padrão de calibração utilizando a toolbox de calibração de J.Y. Bouguet implica a observação do padrão em várias poses, ou a partir de várias posições. Ver Fig.4.2. A toolbox de calibração fornece os parâmetros intrínsecos da câmara, e também as poses relativas em relação ao padrão de calibração. A Fig.4.3 mostra os resultados obtidos considerando ambas as formas de calibração versus o campo de visão (FOV) configurado em VRML. Mais precisamente, a figura mostra o factor de escalamento horizontal de metros para pixels, s u, definido no Cap.2 na Eq.2.4. A figura mostra em particular que as duas formas de calibração

40 30 Resultados Figura 4.1: Dados para a calibração baseada no conhecimento da estrutura 3D (direita) e em pontos clicados sobre a imagem (esquerda). A imagem tem dimensão Figura 4.2: Segunda colecção de dados para calibração. O padrão de calibração inserido no VRML é observado de vários pontos de vista. As imagens têm dimensão Scale VRML fov Figura 4.3: Resultado da calibração do factor de escala. Os círculos denotam calibração por método LSQ utilizando os dados da Fig.4.1, os pontos denotam calibração com toolbox de J. Y. Bouguet utilizando as imagens da Fig.4.2.

41 4.2 Calibração baseada em duas imagens 31 permitem obter resultados muito similares para os cinco valores de FOV testados em VRML, FOV {0.15,0.3,0.6,1.2,1.6}. Na tabela seguinte mostram-se os valores do factor de escalamento horizontal s u, i.e. os resultados ilustrados graficamente na Fig.4.3, e também os valores do factor de escalamento vertical s v. LSQ Bouguet FOV s u s v s u s v No caso de câmaras com pixels quadrados s u = s v, o que de facto se verifica, aproximadamente, na tabela. Atendendo à formula indicada na Eq.2.4, podemos por exemplo indicar a matriz de parâmetros intrínsecos para o caso de FOV = 0.15: s u s u 0 K = 0 s v v = (4.1) onde u 0 = (W + 1)/2 e v 0 = (H + 1)/2, ou seja são o ponto central da imagem, neste caso supondo que o canto superior esquerdo da imagem tem coordenadas (1,1) como por exemplo acontece no Matlab. 4.2 Calibração baseada em duas imagens A primeira metodologia de calibração de câmaras em rede baseia-se na factorização da matriz essencial. A matriz essencial é calculada a partir de pontos correspondentes observados em ambas as imagens. Assumem-se conhecidos os parâmetros intrínsecos. São estimadas somente poses relativas entre as câmaras. Na experiência descrita nesta secção, uma câmara é colocada em vários pontos de uma superfície esférica, enquanto uma câmara base se mantém num ponto fixo. A câmara posicionada em vários locais representa a variedade de poses que se podem encontrar num cenário real para uma câmara de rede. A câmara colocada num ponto fixo representa a câmara montada num robot móvel que foi estacionado num ponto fixo para permitir a calibração de uma câmara de rede. Nesta experiência a câmara do robot serve para calibrar todas as câmaras de rede sobre a superfície esférica, porque o cenário foi construído de forma que todas as câmaras da superfície esférica observam aproximadamente a mesma colecção de pontos 3D que a própria câmara do robot. Para avaliar a robustez da metodologia proposta, foi adicionado ruído gaussiano aos pontos observados pelas várias câmaras. Mais precisamente, o cenário foi definido por uma colecção de pontos 3D conhecidos que são projectados sobre as câmaras (ver pontos azuis, centrais, na Fig. 4.4). O ruído gaussiano tem as variâncias seguintes σ = 0.0, 0.1 ou 0.5 [pix]. A Fig. 4.4 mostra resultados de calibração, i.e. a pose estimada para cada uma das câmaras (de rede) sobre sobre a superfície esférica. As poses estimadas estão indicadas a vermelho, enquanto o ground truth está representado a preto. Os resultados mostram que são tolerados somente níveis moderados de ruído. Por exemplo para o ruído com

42 32 Resultados (a) ruído nulo (b) ruído 0.1 pix (c) ruído 0.5 pix Figura 4.4: Teste de calibração baseada em duas imagens, por factorização da matriz essencial. A colecção de pontos 3D (pontos azuis) é projectada para uma câmara base e para uma câmara que é colocada em vários pontos sobre uma superfície esférica. A estes pares de pontos é adicionado ruído gaussiano com variância 0.0, 0.1 e 0.5 [pix] (a, b e c). Os gráficos mostram as poses estimadas (vermelho) sobrepostas com o ground truth (preto). As duas linhas de gráficos mostram duas vistas diferentes. variância de 0.5pix, verifica-se que algumas das câmaras reconstruídas tem erro de orientação claramente visível (Fig. 4.4(c)). Considerando que a diminuição do nível de ruído não é em geral um aspecto controlável, a observação da grande sensibilidade da calibração ao ruído nos dados mostra que é importante juntar mais informação ou informação mais precisa. Notar que na segunda metodologia de calibração proposta, a documentar experimentalmente mais à frente, apesar de incorporar também a calibração de parâmetros intrínsecos, baseia-se efectivamente em mais informação, dado ser uma calibração realizada sobre sequências de imagens processadas por vslam. 4.3 Ruído na correspondência de pontos entre imagens Nesta secção descrevemos um teste realizado para analisar a incerteza na localização dos pontos característicos SIFT, e consequentemente o ruído no registo (correspondência) de pontos em imagens consecutivas. Para este efeito foram realizados dois movimentos com a câmara, um rectilíneo e o outro circular. Para ambos os movimentos foram detectados e correspondidos pontos característicos SIFT. Paralelamente, os pontos característicos SIFT detectados na primeira imagem foram back-projected para o cenário, de forma a calcular as respectivas coordenadas 3D. Conhecidas as coordenadas 3D e as matrizes de projecção da câmara móvel, obtemos as localizações esperadas (2D) para os pontos característicos. O valor médio e a variância da diferença entre as localizações esperadas e as obtidas por correspondência, representam o ruído na correspondência. Como referido, no primeiro teste a câmara adquire as imagens efectuando um movimento rectilíneo, mantendo sempre com a mesma orientação, perpendicular ao movimento da câmara, captando assim grandes sobreposições

43 4.3 Ruído na correspondência de pontos entre imagens 33 Figura 4.5: Tipos de erro. Erro em pontos 2D correspondentes (esquerda). Erro em pontos 3D e poses de câmara reconstruídos (direita). entre imagens consecutivas, tal como se pode observar na imagem do lado direito da Fig.4.6. No segundo teste efectuado, foram captadas imagens durante um movimento circular (pode-se verificar o seu movimento na imagem do lado esquerdo da Fig.4.6). Também neste teste a câmara se encontra sempre com a mesma orientação, e portanto capta imagens consecutivas com grandes sobreposições. Figura 4.6: As trajectorias efectuadas pela câmara movel encontram-se a vermelho A realização de back-projection, que se encontra descrito na secção 3.3.1, implica alguns pressupostos: são conhecidos os parâmetros intrínsecos da câmara (determinados por exemplo na secção 4.1); conseguimos saber os parâmetros extrínsecos exactos da câmara ao longo do seu movimento; apenas vamos fazer a correspondência entre os pontos que são registados na primeira imagem, e que as SIFT conseguem encontrar ao longo do seu movimento. Considerando assim que temos todos estes dados, vamos inicialmente determinar a posição 3D dos pontos registados pelas SIFT, na primeira imagem captada ao longo do movimento. Para efectuar este primeiro passo, iremos então utilizar a back-projection. Necessitamos em particular de utilizar as matrizes de projecção que podem ser facilmente obtidas pela Eq.3.26, dado termos acesso aos parâmetros intrínsecos e extrínsecos da câmara. Outro dado que também é necessário conhecer para implementar a back-projection são os pontos que as SIFT registaram na primeira imagem. Obtida a posição 3D dos pontos registados pelas SIFT, vamos apenas necessitar de mais um passo para conseguirmos obter a posição dos pontos registados, nas imagens seguintes. Neste passo, temos então acesso à posição 3D dos pontos que estão a ser registados, M, e às matrizes de projecção, P, ao longo do movimento, e portanto podemos determinar as coordenadas 2D nas imagens, m, simplesmente pela Eq Assumindo que as matrizes de projecção criadas para o cenário têm um erro nulo ou negligenciável, obtemos desta forma coordenadas de

44 34 Resultados pontos correspondentes ao longo do movimento, praticamente sem ter incorporado qualquer erro. A Fig.4.7 mostra os gráficos com a media e o desvio padrão do erro para o primeiro teste (movimento rectilíneo da câmara), e a Fig.4.8 mostra os gráficos com a media e o desvio padrão do erro para o segundo teste. (a) (b) Figura 4.7: Movimento rectilineo: (a) media do erro (b) variância do erro (a) (b) Figura 4.8: Movimento circular: (a) media do erro (b) variância do erro Pode-se verificar através da analise dos gráficos nas Fig.4.7 e na Fig.4.8, que o erro cometido pelo registo de pontos característicos SIFT ao longo de uma sequência de imagens cresce sistematicamente no caso de movimento rectilíneo, enquanto que no caso do movimento circular o próprio erro é periódico, sendo praticamente nulo em configurações iguais à inicial ou duais em termos de localização. Este resultado é esperado dado o facto de os pontos característicos SIFT serem correspondidos, mesmo quando sujeitos a translações e rotações, no entanto perderem precisão na detecção e depois no registo aquando de modificações mais significativas da transformação.

45 4.4 Estudo do erro de reconstrução Estudo do erro de reconstrução Nesta secção pretende-se analisar o ruído de reconstrução associado ao vslam [11] quando apoiado sobre pontos característicos SIFT. Para serem obtidos os dados necessários para este teste, utilizou-se a mesma técnica que na secção anterior (secção 4.3): seleccionaram-se pontos característicos SIFT na primeira imagem, e por back-projection em conjunto com um cenário conhecido, obtiveram-se as respectivas posições 3D. Neste teste são então utilizados os pontos 2D determinados para cada imagem, como dados de input no software de vslam utilizado, obtendo-se assim a posição 3D dos mesmos pontos. No sentido de avaliar precisamente o erro de reconstrução dos pontos 3D pelo SLAM, foram estimados os valores da media do erro e do desvio padrão do erro segundo cada eixo e em todas as iterações do movimento, e com estes valores foram construídos gráficos de forma a facilitar uma melhor analise. Os gráficos estão apresentados na Fig.4.9(a)(b). (a) (b) Figura 4.9: Gráficos com o erro de reconstrução: (a) media do erro (b) variância do erro Analisando o gráfico da Fig.4.9(a) podemos verificar que o erro médio tem valores muito próximos de zero, e no gráfico da Fig.4.9(b) verificamos que o desvio padrão do erro como era de esperar ao inicio toma valores muito elevados, mas ao fim de 20 iterações acaba por estabilizar para valores próximos de zero. 4.5 Calibração baseada em uma imagem e vslam Nesta secção testamos a segunda metodologia proposta para calibração de câmaras em rede (Sec.3.2). Esta metodologia tem por base o algoritmo vslam, que reconstrói a informação 3D de pontos característicos da imagem. De forma resumida, neste teste utiliza-se: (i) pontos característicos SIFT, registados e correspondidos ao longo das imagens captadas pela câmara movel (Sec.2.2); (ii) algoritmo de vslam, para reconstruir em 3D os pontos característicos Sec.2.3; (iii) factorização da matriz de projecção descrita na Sec.3.2.2; (iv) o cenário virtual, criado com o VRML (Sec.3.3); e (v) os parâmetros intrínsecos obtidos na Sec.4.1 são utilizados na câmara móvel. No teste foram colocadas três câmaras estáticas no interior da sala criada em VRML (Sec.3.4) e é colocado um robot a navegar à frente das câmaras, tal como é mostrado na Fig.3.1. As três câmaras estão montadas em linha recta, paralela à parede mais larga (10 metros de largura). Uma das câmaras está a meio da parede mais larga e as

46 36 Resultados outras duas câmaras estão a meio metro para cada lado da primeira câmara. As três câmaras estão a 2 metros de altura. As figuras 4.10(a,b,c) mostram as imagens adquiridas pelas câmaras estáticas. A câmara móvel move-se numa linha paralela à linha de base que une as câmaras estáticas, meio metro mais baixa e 40cm à frente. A sua primeira posição está a 3.5m da parede do lado esquerdo, e move-se 3m para a direita. A câmara captura uma imagem a cada 10cm. Na Fig.4.10(d,e,f) pode-se ver a primeira, a segunda e a ultima imagens captadas ao longo do movimento. Depois de as imagens terem sido adquiridas pela câmara móvel, são detectadas pontos correspondentes utilizando as SIFT. Os pontos identificados pelas SIFT estão representados na Fig.4.10(a,b,c,d,e,f) por círculos amarelos. Os círculos amarelos com pontos pretos no meio, indicam pontos característicos SIFT encontrados nas imagens adquiridas pela câmara móvel, que também são observados pelas câmaras estáticas. Os pontos que são identificados pelo robot, mas não são identificadas nas imagens estáticas, são representados por círculos amarelos com pontos cyan no centro. Obtidos os pontos característicos nas imagens utilizamos vslam para obter a reconstrução 3D dos pontos e o movimento próprio do robot. Com os pontos 3D estimados e os correspondentes pontos em cada imagem, é possível estimar a calibração da câmara correspondente. A Fig.4.10(g) mostra a estimação da posição das câmaras da redes e do movimento da câmara móvel, tal como a estimação da posição dos pontos 3D. A Fig.4.10(h) mostra uma ampliação da posição das câmaras estaticas e do movimento da câmara móvel. O resultado ilustrado pela Fig.4.10(h), mostra em particular um erro pequeno associado à estimação do movimento da câmara (ver pontos a preto), e um erro um pouco maior, mas ainda na ordem de grandeza de cm, na estimação das posições das câmaras fixas da rede.

47 4.5 Calibração baseada em uma imagem e vslam 37 (a) Imagem fixa 1 (b) Imagem fixa 2 (c) Imagem fixa 3 (d) 1 a imagem móvel (e) 2 a imagem móvel (f) 30 a imagem móvel (g) Ground truth e resultados (h) Detalhe posição das câmaras Figura 4.10: Experiência de Calibração. Imagens adquiridas por três câmaras estáticas da rede de câmaras (a,b,c), e três exemplos de imagens adquiridas pela câmara móvel (d,e,f). Os círculos amarelos, com os pontos pretos no centro representam os pontos SIFT utilizados para efectuar a calibração. A sub-figura (g) mostra ground-truth e reconstrução. O ground-truth contém pontos 3D (púrpura) e localizações de câmaras móveis / fixas (representadas por linhas em azul claro, começadas por pontos pretos). A reconstrução contém câmaras móveis e fixas (pirâmides vermelhas e azuis, centros das câmaras marcados a preto). As posições das câmaras reconstruídas aparecem também projectadas no plano do pavimento. A sub-figura (h) contém uma ampliação das localizações de câmaras ground-truth e reconstruídas.